trtc-sdk-v5 5.13.0-beta.17 → 5.13.0-beta.18
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/assets/debug-dialog.js +2 -2
- package/index.d.ts +2 -88
- package/package.json +1 -1
- package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
- package/plugins/cdn-streaming/cdn-streaming.umd.js +1 -3
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/cross-room/cross-room.esm.js +1 -1
- package/plugins/cross-room/cross-room.umd.js +1 -3
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/custom-encryption.esm.js +1 -1
- package/plugins/custom-encryption/custom-encryption.umd.js +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/device-detector.esm.js +27 -15
- package/plugins/device-detector/device-detector.umd.js +14 -4
- package/plugins/device-detector/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/small-stream-auto-switcher/small-stream-auto-switcher.esm.js +1 -1
- package/plugins/small-stream-auto-switcher/small-stream-auto-switcher.umd.js +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-decoder/video-decoder.esm.js +1 -1
- package/plugins/video-decoder/video-decoder.umd.js +1 -3
- package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +1 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.umd.js +1 -3
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/beauty.esm.js +1 -1
- package/plugins/video-effect/beauty/beauty.umd.js +1 -3
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.esm.js +1 -1
- package/plugins/video-effect/video-mixer/video-mixer.umd.js +1 -3
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -3
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/video-effect/watermark/watermark.umd.js +1 -3
- package/plugins/voice-changer/package.json +1 -1
- package/plugins/voice-changer/voice-changer.esm.js +1 -1
- package/plugins/voice-changer/voice-changer.umd.js +1 -3
- package/trtc.esm.js +30 -30
- package/trtc.js +1 -1
- package/plugins/chorus/chorus.esm.d.ts +0 -13
- package/plugins/chorus/chorus.esm.js +0 -1
- package/plugins/chorus/chorus.umd.js +0 -3
- package/plugins/chorus/package.json +0 -29
package/trtc.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TRTC=t()}(this,function(){function e(e,t){return t.forEach(function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if("default"!==i&&!(i in e)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=function(e){return e&&e.Math===Math&&e},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),o={},s=function(e){try{return!!e()}catch(t){return!0}},a=!s(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),c=!s(function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}),l=c,d=Function.prototype.call,u=l?d.bind(d):function(){return d.apply(d,arguments)},h={},p={}.propertyIsEnumerable,m=Object.getOwnPropertyDescriptor,_=m&&!p.call({1:2},1);h.f=_?function(e){var t=m(this,e);return!!t&&t.enumerable}:p;var f,g,E=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},T=c,v=Function.prototype,y=v.call,S=T&&v.bind.bind(y,y),I=T?S:function(e){return function(){return y.apply(e,arguments)}},A=I,R=A({}.toString),C=A("".slice),b=function(e){return C(R(e),8,-1)},k=s,D=b,w=Object,N=I("".split),O=k(function(){return!w("z").propertyIsEnumerable(0)})?function(e){return"String"===D(e)?N(e,""):w(e)}:w,M=function(e){return null==e},P=M,L=TypeError,x=function(e){if(P(e))throw new L("Can't call method on "+e);return e},V=O,U=x,F=function(e){return V(U(e))},B="object"==typeof document&&document.all,H=void 0===B&&void 0!==B?function(e){return"function"==typeof e||e===B}:function(e){return"function"==typeof e},W=H,G=function(e){return"object"==typeof e?null!==e:W(e)},j=n,J=H,K=function(e,t){return arguments.length<2?(i=j[e],J(i)?i:void 0):j[e]&&j[e][t];var i},q=I({}.isPrototypeOf),z=n.navigator,Y=z&&z.userAgent,X=Y?String(Y):"",Q=n,Z=X,$=Q.process,ee=Q.Deno,te=$&&$.versions||ee&&ee.version,ie=te&&te.v8;ie&&(g=(f=ie.split("."))[0]>0&&f[0]<4?1:+(f[0]+f[1])),!g&&Z&&(!(f=Z.match(/Edge\/(\d+)/))||f[1]>=74)&&(f=Z.match(/Chrome\/(\d+)/))&&(g=+f[1]);var re=g,ne=re,oe=s,se=n.String,ae=!!Object.getOwnPropertySymbols&&!oe(function(){var e=Symbol("symbol detection");return!se(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ne&&ne<41}),ce=ae&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,le=K,de=H,ue=q,he=Object,pe=ce?function(e){return"symbol"==typeof e}:function(e){var t=le("Symbol");return de(t)&&ue(t.prototype,he(e))},me=String,_e=function(e){try{return me(e)}catch(t){return"Object"}},fe=H,ge=_e,Ee=TypeError,Te=function(e){if(fe(e))return e;throw new Ee(ge(e)+" is not a function")},ve=Te,ye=M,Se=function(e,t){var i=e[t];return ye(i)?void 0:ve(i)},Ie=u,Ae=H,Re=G,Ce=TypeError,be={exports:{}},ke=n,De=Object.defineProperty,we=function(e,t){try{De(ke,e,{value:t,configurable:!0,writable:!0})}catch(i){ke[e]=t}return t},Ne=n,Oe=we,Me="__core-js_shared__",Pe=be.exports=Ne[Me]||Oe(Me,{});(Pe.versions||(Pe.versions=[])).push({version:"3.45.1",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.45.1/LICENSE",source:"https://github.com/zloirock/core-js"});var Le=be.exports,xe=Le,Ve=function(e,t){return xe[e]||(xe[e]=t||{})},Ue=x,Fe=Object,Be=function(e){return Fe(Ue(e))},He=Be,We=I({}.hasOwnProperty),Ge=Object.hasOwn||function(e,t){return We(He(e),t)},je=I,Je=0,Ke=Math.random(),qe=je(1.1.toString),ze=function(e){return"Symbol("+(void 0===e?"":e)+")_"+qe(++Je+Ke,36)},Ye=Ve,Xe=Ge,Qe=ze,Ze=ae,$e=ce,et=n.Symbol,tt=Ye("wks"),it=$e?et.for||et:et&&et.withoutSetter||Qe,rt=function(e){return Xe(tt,e)||(tt[e]=Ze&&Xe(et,e)?et[e]:it("Symbol."+e)),tt[e]},nt=u,ot=G,st=pe,at=Se,ct=function(e,t){var i,r;if("string"===t&&Ae(i=e.toString)&&!Re(r=Ie(i,e)))return r;if(Ae(i=e.valueOf)&&!Re(r=Ie(i,e)))return r;if("string"!==t&&Ae(i=e.toString)&&!Re(r=Ie(i,e)))return r;throw new Ce("Can't convert object to primitive value")},lt=TypeError,dt=rt("toPrimitive"),ut=function(e,t){if(!ot(e)||st(e))return e;var i,r=at(e,dt);if(r){if(void 0===t&&(t="default"),i=nt(r,e,t),!ot(i)||st(i))return i;throw new lt("Can't convert object to primitive value")}return void 0===t&&(t="number"),ct(e,t)},ht=ut,pt=pe,mt=function(e){var t=ht(e,"string");return pt(t)?t:t+""},_t=G,ft=n.document,gt=_t(ft)&&_t(ft.createElement),Et=function(e){return gt?ft.createElement(e):{}},Tt=Et,vt=!a&&!s(function(){return 7!==Object.defineProperty(Tt("div"),"a",{get:function(){return 7}}).a}),yt=a,St=u,It=h,At=E,Rt=F,Ct=mt,bt=Ge,kt=vt,Dt=Object.getOwnPropertyDescriptor;o.f=yt?Dt:function(e,t){if(e=Rt(e),t=Ct(t),kt)try{return Dt(e,t)}catch(i){}if(bt(e,t))return At(!St(It.f,e,t),e[t])};var wt={},Nt=a&&s(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),Ot=G,Mt=String,Pt=TypeError,Lt=function(e){if(Ot(e))return e;throw new Pt(Mt(e)+" is not an object")},xt=a,Vt=vt,Ut=Nt,Ft=Lt,Bt=mt,Ht=TypeError,Wt=Object.defineProperty,Gt=Object.getOwnPropertyDescriptor,jt="enumerable",Jt="configurable",Kt="writable";wt.f=xt?Ut?function(e,t,i){if(Ft(e),t=Bt(t),Ft(i),"function"==typeof e&&"prototype"===t&&"value"in i&&Kt in i&&!i[Kt]){var r=Gt(e,t);r&&r[Kt]&&(e[t]=i.value,i={configurable:Jt in i?i[Jt]:r[Jt],enumerable:jt in i?i[jt]:r[jt],writable:!1})}return Wt(e,t,i)}:Wt:function(e,t,i){if(Ft(e),t=Bt(t),Ft(i),Vt)try{return Wt(e,t,i)}catch(r){}if("get"in i||"set"in i)throw new Ht("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var qt=wt,zt=E,Yt=a?function(e,t,i){return qt.f(e,t,zt(1,i))}:function(e,t,i){return e[t]=i,e},Xt={exports:{}},Qt=a,Zt=Ge,$t=Function.prototype,ei=Qt&&Object.getOwnPropertyDescriptor,ti=Zt($t,"name"),ii={EXISTS:ti,PROPER:ti&&"something"===function(){}.name,CONFIGURABLE:ti&&(!Qt||Qt&&ei($t,"name").configurable)},ri=H,ni=Le,oi=I(Function.toString);ri(ni.inspectSource)||(ni.inspectSource=function(e){return oi(e)});var si,ai,ci,li=ni.inspectSource,di=H,ui=n.WeakMap,hi=di(ui)&&/native code/.test(String(ui)),pi=ze,mi=Ve("keys"),_i=function(e){return mi[e]||(mi[e]=pi(e))},fi={},gi=hi,Ei=n,Ti=G,vi=Yt,yi=Ge,Si=Le,Ii=_i,Ai=fi,Ri="Object already initialized",Ci=Ei.TypeError,bi=Ei.WeakMap;if(gi||Si.state){var ki=Si.state||(Si.state=new bi);ki.get=ki.get,ki.has=ki.has,ki.set=ki.set,si=function(e,t){if(ki.has(e))throw new Ci(Ri);return t.facade=e,ki.set(e,t),t},ai=function(e){return ki.get(e)||{}},ci=function(e){return ki.has(e)}}else{var Di=Ii("state");Ai[Di]=!0,si=function(e,t){if(yi(e,Di))throw new Ci(Ri);return t.facade=e,vi(e,Di,t),t},ai=function(e){return yi(e,Di)?e[Di]:{}},ci=function(e){return yi(e,Di)}}var wi={set:si,get:ai,has:ci,enforce:function(e){return ci(e)?ai(e):si(e,{})},getterFor:function(e){return function(t){var i;if(!Ti(t)||(i=ai(t)).type!==e)throw new Ci("Incompatible receiver, "+e+" required");return i}}},Ni=I,Oi=s,Mi=H,Pi=Ge,Li=a,xi=ii.CONFIGURABLE,Vi=li,Ui=wi.enforce,Fi=wi.get,Bi=String,Hi=Object.defineProperty,Wi=Ni("".slice),Gi=Ni("".replace),ji=Ni([].join),Ji=Li&&!Oi(function(){return 8!==Hi(function(){},"length",{value:8}).length}),Ki=String(String).split("String"),qi=Xt.exports=function(e,t,i){"Symbol("===Wi(Bi(t),0,7)&&(t="["+Gi(Bi(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),i&&i.getter&&(t="get "+t),i&&i.setter&&(t="set "+t),(!Pi(e,"name")||xi&&e.name!==t)&&(Li?Hi(e,"name",{value:t,configurable:!0}):e.name=t),Ji&&i&&Pi(i,"arity")&&e.length!==i.arity&&Hi(e,"length",{value:i.arity});try{i&&Pi(i,"constructor")&&i.constructor?Li&&Hi(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(n){}var r=Ui(e);return Pi(r,"source")||(r.source=ji(Ki,"string"==typeof t?t:"")),e};Function.prototype.toString=qi(function(){return Mi(this)&&Fi(this).source||Vi(this)},"toString");var zi=Xt.exports,Yi=H,Xi=wt,Qi=zi,Zi=we,$i=function(e,t,i,r){r||(r={});var n=r.enumerable,o=void 0!==r.name?r.name:t;if(Yi(i)&&Qi(i,o,r),r.global)n?e[t]=i:Zi(t,i);else{try{r.unsafe?e[t]&&(n=!0):delete e[t]}catch(s){}n?e[t]=i:Xi.f(e,t,{value:i,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},er={},tr=Math.ceil,ir=Math.floor,rr=Math.trunc||function(e){var t=+e;return(t>0?ir:tr)(t)},nr=rr,or=function(e){var t=+e;return t!=t||0===t?0:nr(t)},sr=or,ar=Math.max,cr=Math.min,lr=function(e,t){var i=sr(e);return i<0?ar(i+t,0):cr(i,t)},dr=or,ur=Math.min,hr=function(e){var t=dr(e);return t>0?ur(t,9007199254740991):0},pr=hr,mr=function(e){return pr(e.length)},_r=F,fr=lr,gr=mr,Er=function(e){return function(t,i,r){var n=_r(t),o=gr(n);if(0===o)return!e&&-1;var s,a=fr(r,o);if(e&&i!=i){for(;o>a;)if((s=n[a++])!=s)return!0}else for(;o>a;a++)if((e||a in n)&&n[a]===i)return e||a||0;return!e&&-1}},Tr={includes:Er(!0),indexOf:Er(!1)},vr=Ge,yr=F,Sr=Tr.indexOf,Ir=fi,Ar=I([].push),Rr=function(e,t){var i,r=yr(e),n=0,o=[];for(i in r)!vr(Ir,i)&&vr(r,i)&&Ar(o,i);for(;t.length>n;)vr(r,i=t[n++])&&(~Sr(o,i)||Ar(o,i));return o},Cr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],br=Rr,kr=Cr.concat("length","prototype");er.f=Object.getOwnPropertyNames||function(e){return br(e,kr)};var Dr={};Dr.f=Object.getOwnPropertySymbols;var wr=K,Nr=er,Or=Dr,Mr=Lt,Pr=I([].concat),Lr=wr("Reflect","ownKeys")||function(e){var t=Nr.f(Mr(e)),i=Or.f;return i?Pr(t,i(e)):t},xr=Ge,Vr=Lr,Ur=o,Fr=wt,Br=function(e,t,i){for(var r=Vr(t),n=Fr.f,o=Ur.f,s=0;s<r.length;s++){var a=r[s];xr(e,a)||i&&xr(i,a)||n(e,a,o(t,a))}},Hr=s,Wr=H,Gr=/#|\.prototype\./,jr=function(e,t){var i=Kr[Jr(e)];return i===zr||i!==qr&&(Wr(t)?Hr(t):!!t)},Jr=jr.normalize=function(e){return String(e).replace(Gr,".").toLowerCase()},Kr=jr.data={},qr=jr.NATIVE="N",zr=jr.POLYFILL="P",Yr=jr,Xr=n,Qr=o.f,Zr=Yt,$r=$i,en=we,tn=Br,rn=Yr,nn=function(e,t){var i,r,n,o,s,a=e.target,c=e.global,l=e.stat;if(i=c?Xr:l?Xr[a]||en(a,{}):Xr[a]&&Xr[a].prototype)for(r in t){if(o=t[r],n=e.dontCallGetSet?(s=Qr(i,r))&&s.value:i[r],!rn(c?r:a+(l?".":"#")+r,e.forced)&&void 0!==n){if(typeof o==typeof n)continue;tn(o,n)}(e.sham||n&&n.sham)&&Zr(o,"sham",!0),$r(i,r,o,e)}},on={};on[rt("toStringTag")]="z";var sn="[object z]"===String(on),an=H,cn=b,ln=rt("toStringTag"),dn=Object,un="Arguments"===cn(function(){return arguments}()),hn=sn?cn:function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(i){}}(t=dn(e),ln))?i:un?cn(t):"Object"===(r=cn(t))&&an(t.callee)?"Arguments":r},pn=hn,mn=String,_n=function(e){if("Symbol"===pn(e))throw new TypeError("Cannot convert a Symbol value to a string");return mn(e)},fn=zi,gn=wt,En=function(e,t,i){return i.get&&fn(i.get,t,{getter:!0}),i.set&&fn(i.set,t,{setter:!0}),gn.f(e,t,i)},Tn=nn,vn=a,yn=I,Sn=Ge,In=H,An=q,Rn=_n,Cn=En,bn=Br,kn=n.Symbol,Dn=kn&&kn.prototype;if(vn&&In(kn)&&(!("description"in Dn)||void 0!==kn().description)){var wn={},Nn=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:Rn(arguments[0]),t=An(Dn,this)?new kn(e):void 0===e?kn():kn(e);return""===e&&(wn[t]=!0),t};bn(Nn,kn),Nn.prototype=Dn,Dn.constructor=Nn;var On="Symbol(description detection)"===String(kn("description detection")),Mn=yn(Dn.valueOf),Pn=yn(Dn.toString),Ln=/^Symbol\((.*)\)[^)]+$/,xn=yn("".replace),Vn=yn("".slice);Cn(Dn,"description",{configurable:!0,get:function(){var e=Mn(this);if(Sn(wn,e))return"";var t=Pn(e),i=On?Vn(t,7,-1):xn(t,Ln,"$1");return""===i?void 0:i}}),Tn({global:!0,constructor:!0,forced:!0},{Symbol:Nn})}var Un={},Fn=Rr,Bn=Cr,Hn=Object.keys||function(e){return Fn(e,Bn)},Wn=a,Gn=Nt,jn=wt,Jn=Lt,Kn=F,qn=Hn;Un.f=Wn&&!Gn?Object.defineProperties:function(e,t){Jn(e);for(var i,r=Kn(t),n=qn(t),o=n.length,s=0;o>s;)jn.f(e,i=n[s++],r[i]);return e};var zn,Yn=K("document","documentElement"),Xn=Lt,Qn=Un,Zn=Cr,$n=fi,eo=Yn,to=Et,io="prototype",ro="script",no=_i("IE_PROTO"),oo=function(){},so=function(e){return"<"+ro+">"+e+"</"+ro+">"},ao=function(e){e.write(so("")),e.close();var t=e.parentWindow.Object;return e=null,t},co=function(){try{zn=new ActiveXObject("htmlfile")}catch(t){}co="undefined"!=typeof document?document.domain&&zn?ao(zn):function(){var e,t=to("iframe"),i="java"+ro+":";return t.style.display="none",eo.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(so("document.F=Object")),e.close(),e.F}():ao(zn);for(var e=Zn.length;e--;)delete co[io][Zn[e]];return co()};$n[no]=!0;var lo=Object.create||function(e,t){var i;return null!==e?(oo[io]=Xn(e),i=new oo,oo[io]=null,i[no]=e):i=co(),void 0===t?i:Qn.f(i,t)},uo=rt,ho=lo,po=wt.f,mo=uo("unscopables"),_o=Array.prototype;void 0===_o[mo]&&po(_o,mo,{configurable:!0,value:ho(null)});var fo=function(e){_o[mo][e]=!0},go=Tr.includes,Eo=fo;nn({target:"Array",proto:!0,forced:s(function(){return!Array(1).includes()})},{includes:function(e){return go(this,e,arguments.length>1?arguments[1]:void 0)}}),Eo("includes");var To,vo,yo,So={},Io=!s(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}),Ao=Ge,Ro=H,Co=Be,bo=Io,ko=_i("IE_PROTO"),Do=Object,wo=Do.prototype,No=bo?Do.getPrototypeOf:function(e){var t=Co(e);if(Ao(t,ko))return t[ko];var i=t.constructor;return Ro(i)&&t instanceof i?i.prototype:t instanceof Do?wo:null},Oo=s,Mo=H,Po=G,Lo=No,xo=$i,Vo=rt("iterator"),Uo=!1;[].keys&&("next"in(yo=[].keys())?(vo=Lo(Lo(yo)))!==Object.prototype&&(To=vo):Uo=!0);var Fo=!Po(To)||Oo(function(){var e={};return To[Vo].call(e)!==e});Fo&&(To={}),Mo(To[Vo])||xo(To,Vo,function(){return this});var Bo={IteratorPrototype:To,BUGGY_SAFARI_ITERATORS:Uo},Ho=wt.f,Wo=Ge,Go=rt("toStringTag"),jo=function(e,t,i){e&&!i&&(e=e.prototype),e&&!Wo(e,Go)&&Ho(e,Go,{configurable:!0,value:t})},Jo=Bo.IteratorPrototype,Ko=lo,qo=E,zo=jo,Yo=So,Xo=function(){return this},Qo=function(e,t,i,r){var n=t+" Iterator";return e.prototype=Ko(Jo,{next:qo(+!r,i)}),zo(e,n,!1),Yo[n]=Xo,e},Zo=I,$o=Te,es=G,ts=function(e){return es(e)||null===e},is=String,rs=TypeError,ns=function(e,t,i){try{return Zo($o(Object.getOwnPropertyDescriptor(e,t)[i]))}catch(r){}},os=G,ss=x,as=function(e){if(ts(e))return e;throw new rs("Can't set "+is(e)+" as a prototype")},cs=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=ns(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(r){}return function(i,r){return ss(i),as(r),os(i)?(t?e(i,r):i.__proto__=r,i):i}}():void 0),ls=nn,ds=u,us=H,hs=Qo,ps=No,ms=cs,_s=jo,fs=Yt,gs=$i,Es=So,Ts=ii.PROPER,vs=ii.CONFIGURABLE,ys=Bo.IteratorPrototype,Ss=Bo.BUGGY_SAFARI_ITERATORS,Is=rt("iterator"),As="keys",Rs="values",Cs="entries",bs=function(){return this},ks=function(e,t,i,r,n,o,s){hs(i,t,r);var a,c,l,d=function(e){if(e===n&&_)return _;if(!Ss&&e&&e in p)return p[e];switch(e){case As:case Rs:case Cs:return function(){return new i(this,e)}}return function(){return new i(this)}},u=t+" Iterator",h=!1,p=e.prototype,m=p[Is]||p["@@iterator"]||n&&p[n],_=!Ss&&m||d(n),f="Array"===t&&p.entries||m;if(f&&(a=ps(f.call(new e)))!==Object.prototype&&a.next&&(ps(a)!==ys&&(ms?ms(a,ys):us(a[Is])||gs(a,Is,bs)),_s(a,u,!0)),Ts&&n===Rs&&m&&m.name!==Rs&&(vs?fs(p,"name",Rs):(h=!0,_=function(){return ds(m,this)})),n)if(c={values:d(Rs),keys:o?_:d(As),entries:d(Cs)},s)for(l in c)(Ss||h||!(l in p))&&gs(p,l,c[l]);else ls({target:t,proto:!0,forced:Ss||h},c);return p[Is]!==_&&gs(p,Is,_,{name:n}),Es[t]=_,c},Ds=function(e,t){return{value:e,done:t}},ws=F,Ns=fo,Os=So,Ms=wi,Ps=wt.f,Ls=ks,xs=Ds,Vs=a,Us="Array Iterator",Fs=Ms.set,Bs=Ms.getterFor(Us),Hs=Ls(Array,"Array",function(e,t){Fs(this,{type:Us,target:ws(e),index:0,kind:t})},function(){var e=Bs(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,xs(void 0,!0);switch(e.kind){case"keys":return xs(i,!1);case"values":return xs(t[i],!1)}return xs([i,t[i]],!1)},"values"),Ws=Os.Arguments=Os.Array;if(Ns("keys"),Ns("values"),Ns("entries"),Vs&&"values"!==Ws.name)try{Ps(Ws,"name",{value:"values"})}catch(lK){}var Gs=Te,js=Be,Js=O,Ks=mr,qs=TypeError,zs="Reduce of empty array with no initial value",Ys=function(e){return function(t,i,r,n){var o=js(t),s=Js(o),a=Ks(o);if(Gs(i),0===a&&r<2)throw new qs(zs);var c=e?a-1:0,l=e?-1:1;if(r<2)for(;;){if(c in s){n=s[c],c+=l;break}if(c+=l,e?c<0:a<=c)throw new qs(zs)}for(;e?c>=0:a>c;c+=l)c in s&&(n=i(n,s[c],c,o));return n}},Xs={left:Ys(!1),right:Ys(!0)},Qs=s,Zs=function(e,t){var i=[][e];return!!i&&Qs(function(){i.call(null,t||function(){return 1},1)})},$s=n,ea=X,ta=b,ia=function(e){return ea.slice(0,e.length)===e},ra=ia("Bun/")?"BUN":ia("Cloudflare-Workers")?"CLOUDFLARE":ia("Deno/")?"DENO":ia("Node.js/")?"NODE":$s.Bun&&"string"==typeof Bun.version?"BUN":$s.Deno&&"object"==typeof Deno.version?"DENO":"process"===ta($s.process)?"NODE":$s.window&&$s.document?"BROWSER":"REST",na="NODE"===ra,oa=Xs.left;nn({target:"Array",proto:!0,forced:!na&&re>79&&re<83||!Zs("reduce")},{reduce:function(e){var t=arguments.length;return oa(this,e,t,t>1?arguments[1]:void 0)}});var sa=Xs.right;nn({target:"Array",proto:!0,forced:!na&&re>79&&re<83||!Zs("reduceRight")},{reduceRight:function(e){return sa(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var aa=b,ca=Array.isArray||function(e){return"Array"===aa(e)},la=nn,da=ca,ua=I([].reverse),ha=[1,2];la({target:"Array",proto:!0,forced:String(ha)===String(ha.reverse())},{reverse:function(){return da(this)&&(this.length=this.length),ua(this)}});var pa=_e,ma=TypeError,_a=I([].slice),fa=_a,ga=Math.floor,Ea=function(e,t){var i=e.length;if(i<8)for(var r,n,o=1;o<i;){for(n=o,r=e[o];n&&t(e[n-1],r)>0;)e[n]=e[--n];n!==o++&&(e[n]=r)}else for(var s=ga(i/2),a=Ea(fa(e,0,s),t),c=Ea(fa(e,s),t),l=a.length,d=c.length,u=0,h=0;u<l||h<d;)e[u+h]=u<l&&h<d?t(a[u],c[h])<=0?a[u++]:c[h++]:u<l?a[u++]:c[h++];return e},Ta=Ea,va=X.match(/firefox\/(\d+)/i),ya=!!va&&+va[1],Sa=/MSIE|Trident/.test(X),Ia=X.match(/AppleWebKit\/(\d+)\./),Aa=!!Ia&&+Ia[1],Ra=nn,Ca=I,ba=Te,ka=Be,Da=mr,wa=function(e,t){if(!delete e[t])throw new ma("Cannot delete property "+pa(t)+" of "+pa(e))},Na=_n,Oa=s,Ma=Ta,Pa=Zs,La=ya,xa=Sa,Va=re,Ua=Aa,Fa=[],Ba=Ca(Fa.sort),Ha=Ca(Fa.push),Wa=Oa(function(){Fa.sort(void 0)}),Ga=Oa(function(){Fa.sort(null)}),ja=Pa("sort"),Ja=!Oa(function(){if(Va)return Va<70;if(!(La&&La>3)){if(xa)return!0;if(Ua)return Ua<603;var e,t,i,r,n="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(r=0;r<47;r++)Fa.push({k:t+r,v:i})}for(Fa.sort(function(e,t){return t.v-e.v}),r=0;r<Fa.length;r++)t=Fa[r].k.charAt(0),n.charAt(n.length-1)!==t&&(n+=t);return"DGBEFHACIJK"!==n}});Ra({target:"Array",proto:!0,forced:Wa||!Ga||!ja||!Ja},{sort:function(e){void 0!==e&&ba(e);var t=ka(this);if(Ja)return void 0===e?Ba(t):Ba(t,e);var i,r,n=[],o=Da(t);for(r=0;r<o;r++)r in t&&Ha(n,t[r]);for(Ma(n,function(e){return function(t,i){return void 0===i?-1:void 0===t?1:void 0!==e?+e(t,i)||0:Na(t)>Na(i)?1:-1}}(e)),i=Da(n),r=0;r<i;)t[r]=n[r++];for(;r<o;)wa(t,r++);return t}});var Ka="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,qa=$i,za=function(e,t,i){for(var r in t)qa(e,r,t[r],i);return e},Ya=q,Xa=TypeError,Qa=function(e,t){if(Ya(t,e))return e;throw new Xa("Incorrect invocation")},Za=or,$a=hr,ec=RangeError,tc=function(e){if(void 0===e)return 0;var t=Za(e),i=$a(t);if(t!==i)throw new ec("Wrong length or index");return i},ic=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1},rc=4503599627370496,nc=ic,oc=function(e){return e+rc-rc},sc=Math.abs,ac=function(e,t,i,r){var n=+e,o=sc(n),s=nc(n);if(o<r)return s*oc(o/r/t)*r*t;var a=(1+t/2220446049250313e-31)*o,c=a-(a-o);return c>i||c!=c?Infinity*s:s*c},cc=Math.fround||function(e){return ac(e,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)},lc=Array,dc=Math.abs,uc=Math.pow,hc=Math.floor,pc=Math.log,mc=Math.LN2,_c={pack:function(e,t,i){var r,n,o,s=lc(i),a=8*i-t-1,c=(1<<a)-1,l=c>>1,d=23===t?uc(2,-24)-uc(2,-77):0,u=e<0||0===e&&1/e<0?1:0,h=0;for((e=dc(e))!=e||Infinity===e?(n=e!=e?1:0,r=c):(r=hc(pc(e)/mc),e*(o=uc(2,-r))<1&&(r--,o*=2),(e+=r+l>=1?d/o:d*uc(2,1-l))*o>=2&&(r++,o/=2),r+l>=c?(n=0,r=c):r+l>=1?(n=(e*o-1)*uc(2,t),r+=l):(n=e*uc(2,l-1)*uc(2,t),r=0));t>=8;)s[h++]=255&n,n/=256,t-=8;for(r=r<<t|n,a+=t;a>0;)s[h++]=255&r,r/=256,a-=8;return s[h-1]|=128*u,s},unpack:function(e,t){var i,r=e.length,n=8*r-t-1,o=(1<<n)-1,s=o>>1,a=n-7,c=r-1,l=e[c--],d=127&l;for(l>>=7;a>0;)d=256*d+e[c--],a-=8;for(i=d&(1<<-a)-1,d>>=-a,a+=t;a>0;)i=256*i+e[c--],a-=8;if(0===d)d=1-s;else{if(d===o)return i?NaN:l?-Infinity:Infinity;i+=uc(2,t),d-=s}return(l?-1:1)*i*uc(2,d-t)}},fc=Be,gc=lr,Ec=mr,Tc=function(e){for(var t=fc(this),i=Ec(t),r=arguments.length,n=gc(r>1?arguments[1]:void 0,i),o=r>2?arguments[2]:void 0,s=void 0===o?i:gc(o,i);s>n;)t[n++]=e;return t},vc=H,yc=G,Sc=cs,Ic=function(e,t,i){var r,n;return Sc&&vc(r=t.constructor)&&r!==i&&yc(n=r.prototype)&&n!==i.prototype&&Sc(e,n),e},Ac=n,Rc=I,Cc=a,bc=Ka,kc=Yt,Dc=En,wc=za,Nc=s,Oc=Qa,Mc=or,Pc=hr,Lc=tc,xc=cc,Vc=_c,Uc=No,Fc=cs,Bc=Tc,Hc=_a,Wc=Ic,Gc=Br,jc=jo,Jc=wi,Kc=ii.PROPER,qc=ii.CONFIGURABLE,zc="ArrayBuffer",Yc="DataView",Xc="prototype",Qc="Wrong index",Zc=Jc.getterFor(zc),$c=Jc.getterFor(Yc),el=Jc.set,tl=Ac[zc],il=tl,rl=il&&il[Xc],nl=Ac[Yc],ol=nl&&nl[Xc],sl=Object.prototype,al=Ac.Array,cl=Ac.RangeError,ll=Rc(Bc),dl=Rc([].reverse),ul=Vc.pack,hl=Vc.unpack,pl=function(e){return[255&e]},ml=function(e){return[255&e,e>>8&255]},_l=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},fl=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},gl=function(e){return ul(xc(e),23,4)},El=function(e){return ul(e,52,8)},Tl=function(e,t,i){Dc(e[Xc],t,{configurable:!0,get:function(){return i(this)[t]}})},vl=function(e,t,i,r){var n=$c(e),o=Lc(i),s=!!r;if(o+t>n.byteLength)throw new cl(Qc);var a=n.bytes,c=o+n.byteOffset,l=Hc(a,c,c+t);return s?l:dl(l)},yl=function(e,t,i,r,n,o){var s=$c(e),a=Lc(i),c=r(+n),l=!!o;if(a+t>s.byteLength)throw new cl(Qc);for(var d=s.bytes,u=a+s.byteOffset,h=0;h<t;h++)d[u+h]=c[l?h:t-h-1]};if(bc){var Sl=Kc&&tl.name!==zc;Nc(function(){tl(1)})&&Nc(function(){new tl(-1)})&&!Nc(function(){return new tl,new tl(1.5),new tl(NaN),1!==tl.length||Sl&&!qc})?Sl&&qc&&kc(tl,"name",zc):((il=function(e){return Oc(this,rl),Wc(new tl(Lc(e)),this,il)})[Xc]=rl,rl.constructor=il,Gc(il,tl)),Fc&&Uc(ol)!==sl&&Fc(ol,sl);var Il=new nl(new il(2)),Al=Rc(ol.setInt8);Il.setInt8(0,2147483648),Il.setInt8(1,2147483649),!Il.getInt8(0)&&Il.getInt8(1)||wc(ol,{setInt8:function(e,t){Al(this,e,t<<24>>24)},setUint8:function(e,t){Al(this,e,t<<24>>24)}},{unsafe:!0})}else rl=(il=function(e){Oc(this,rl);var t=Lc(e);el(this,{type:zc,bytes:ll(al(t),0),byteLength:t}),Cc||(this.byteLength=t,this.detached=!1)})[Xc],ol=(nl=function(e,t,i){Oc(this,ol),Oc(e,rl);var r=Zc(e),n=r.byteLength,o=Mc(t);if(o<0||o>n)throw new cl("Wrong offset");if(o+(i=void 0===i?n-o:Pc(i))>n)throw new cl("Wrong length");el(this,{type:Yc,buffer:e,byteLength:i,byteOffset:o,bytes:r.bytes}),Cc||(this.buffer=e,this.byteLength=i,this.byteOffset=o)})[Xc],Cc&&(Tl(il,"byteLength",Zc),Tl(nl,"buffer",$c),Tl(nl,"byteLength",$c),Tl(nl,"byteOffset",$c)),wc(ol,{getInt8:function(e){return vl(this,1,e)[0]<<24>>24},getUint8:function(e){return vl(this,1,e)[0]},getInt16:function(e){var t=vl(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=vl(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return fl(vl(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return fl(vl(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return hl(vl(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return hl(vl(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){yl(this,1,e,pl,t)},setUint8:function(e,t){yl(this,1,e,pl,t)},setInt16:function(e,t){yl(this,2,e,ml,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){yl(this,2,e,ml,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){yl(this,4,e,_l,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){yl(this,4,e,_l,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){yl(this,4,e,gl,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){yl(this,8,e,El,t,arguments.length>2&&arguments[2])}});jc(il,zc),jc(nl,Yc);var Rl={ArrayBuffer:il,DataView:nl},Cl=K,bl=En,kl=a,Dl=rt("species"),wl=function(e){var t=Cl(e);kl&&t&&!t[Dl]&&bl(t,Dl,{configurable:!0,get:function(){return this}})},Nl=wl,Ol="ArrayBuffer",Ml=Rl[Ol];nn({global:!0,constructor:!0,forced:n[Ol]!==Ml},{ArrayBuffer:Ml}),Nl(Ol);var Pl=b,Ll=I,xl=function(e){if("Function"===Pl(e))return Ll(e)},Vl=nn,Ul=xl,Fl=s,Bl=Lt,Hl=lr,Wl=hr,Gl=Rl.ArrayBuffer,jl=Rl.DataView,Jl=jl.prototype,Kl=Ul(Gl.prototype.slice),ql=Ul(Jl.getUint8),zl=Ul(Jl.setUint8);Vl({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:Fl(function(){return!new Gl(2).slice(1,void 0).byteLength})},{slice:function(e,t){if(Kl&&void 0===t)return Kl(Bl(this),e);for(var i=Bl(this).byteLength,r=Hl(e,i),n=Hl(void 0===t?i:t,i),o=new Gl(Wl(n-r)),s=new jl(this),a=new jl(o),c=0;r<n;)zl(a,c++,ql(s,r++));return o}});var Yl=n,Xl=I,Ql=s,Zl=H,$l=hn,ed=li,td=function(){},id=K("Reflect","construct"),rd=/^\s*(?:class|function)\b/,nd=Xl(rd.exec),od=!rd.test(td),sd=function(e){if(!Zl(e))return!1;try{return id(td,[],e),!0}catch(lK){return!1}},ad=function(e){if(!Zl(e))return!1;switch($l(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return od||!!nd(rd,ed(e))}catch(lK){return!0}};ad.sham=!0;var cd,ld,dd,ud,hd=!id||Ql(function(){var e;return sd(sd.call)||!sd(Object)||!sd(function(){e=!0})||e})?ad:sd,pd=hd,md=_e,_d=TypeError,fd=function(e){if(pd(e))return e;throw new _d(md(e)+" is not a constructor")},gd=Lt,Ed=fd,Td=M,vd=rt("species"),yd=function(e,t){var i,r=gd(e).constructor;return void 0===r||Td(i=gd(r)[vd])?t:Ed(i)},Sd=c,Id=Function.prototype,Ad=Id.apply,Rd=Id.call,Cd="object"==typeof Reflect&&Reflect.apply||(Sd?Rd.bind(Ad):function(){return Rd.apply(Ad,arguments)}),bd=Te,kd=c,Dd=xl(xl.bind),wd=function(e,t){return bd(e),void 0===t?e:kd?Dd(e,t):function(){return e.apply(t,arguments)}},Nd=TypeError,Od=function(e,t){if(e<t)throw new Nd("Not enough arguments");return e},Md=/(?:ipad|iphone|ipod).*applewebkit/i.test(X),Pd=n,Ld=Cd,xd=wd,Vd=H,Ud=Ge,Fd=s,Bd=Yn,Hd=_a,Wd=Et,Gd=Od,jd=Md,Jd=na,Kd=Pd.setImmediate,qd=Pd.clearImmediate,zd=Pd.process,Yd=Pd.Dispatch,Xd=Pd.Function,Qd=Pd.MessageChannel,Zd=Pd.String,$d=0,eu={},tu="onreadystatechange";Fd(function(){cd=Pd.location});var iu=function(e){if(Ud(eu,e)){var t=eu[e];delete eu[e],t()}},ru=function(e){return function(){iu(e)}},nu=function(e){iu(e.data)},ou=function(e){Pd.postMessage(Zd(e),cd.protocol+"//"+cd.host)};Kd&&qd||(Kd=function(e){Gd(arguments.length,1);var t=Vd(e)?e:Xd(e),i=Hd(arguments,1);return eu[++$d]=function(){Ld(t,void 0,i)},ld($d),$d},qd=function(e){delete eu[e]},Jd?ld=function(e){zd.nextTick(ru(e))}:Yd&&Yd.now?ld=function(e){Yd.now(ru(e))}:Qd&&!jd?(ud=(dd=new Qd).port2,dd.port1.onmessage=nu,ld=xd(ud.postMessage,ud)):Pd.addEventListener&&Vd(Pd.postMessage)&&!Pd.importScripts&&cd&&"file:"!==cd.protocol&&!Fd(ou)?(ld=ou,Pd.addEventListener("message",nu,!1)):ld=tu in Wd("script")?function(e){Bd.appendChild(Wd("script"))[tu]=function(){Bd.removeChild(this),iu(e)}}:function(e){setTimeout(ru(e),0)});var su={set:Kd,clear:qd},au=n,cu=a,lu=Object.getOwnPropertyDescriptor,du=function(e){if(!cu)return au[e];var t=lu(au,e);return t&&t.value},uu=function(){this.head=null,this.tail=null};uu.prototype={add:function(e){var t={item:e,next:null},i=this.tail;i?i.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}};var hu,pu,mu,_u,fu,gu=uu,Eu=/ipad|iphone|ipod/i.test(X)&&"undefined"!=typeof Pebble,Tu=/web0s(?!.*chrome)/i.test(X),vu=n,yu=du,Su=wd,Iu=su.set,Au=gu,Ru=Md,Cu=Eu,bu=Tu,ku=na,Du=vu.MutationObserver||vu.WebKitMutationObserver,wu=vu.document,Nu=vu.process,Ou=vu.Promise,Mu=yu("queueMicrotask");if(!Mu){var Pu=new Au,Lu=function(){var e,t;for(ku&&(e=Nu.domain)&&e.exit();t=Pu.get();)try{t()}catch(lK){throw Pu.head&&hu(),lK}e&&e.enter()};Ru||ku||bu||!Du||!wu?!Cu&&Ou&&Ou.resolve?((_u=Ou.resolve(void 0)).constructor=Ou,fu=Su(_u.then,_u),hu=function(){fu(Lu)}):ku?hu=function(){Nu.nextTick(Lu)}:(Iu=Su(Iu,vu),hu=function(){Iu(Lu)}):(pu=!0,mu=wu.createTextNode(""),new Du(Lu).observe(mu,{characterData:!0}),hu=function(){mu.data=pu=!pu}),Mu=function(e){Pu.head||hu(),Pu.add(e)}}var xu=Mu,Vu=function(e){try{return{error:!1,value:e()}}catch(lK){return{error:!0,value:lK}}},Uu=n.Promise,Fu=n,Bu=Uu,Hu=H,Wu=Yr,Gu=li,ju=rt,Ju=ra,Ku=re;Bu&&Bu.prototype;var qu=ju("species"),zu=!1,Yu=Hu(Fu.PromiseRejectionEvent),Xu=Wu("Promise",function(){var e=Gu(Bu),t=e!==String(Bu);if(!t&&66===Ku)return!0;if(!Ku||Ku<51||!/native code/.test(e)){var i=new Bu(function(e){e(1)}),r=function(e){e(function(){},function(){})};if((i.constructor={})[qu]=r,!(zu=i.then(function(){})instanceof r))return!0}return!(t||"BROWSER"!==Ju&&"DENO"!==Ju||Yu)}),Qu={CONSTRUCTOR:Xu,REJECTION_EVENT:Yu,SUBCLASSING:zu},Zu={},$u=Te,eh=TypeError,th=function(e){var t,i;this.promise=new e(function(e,r){if(void 0!==t||void 0!==i)throw new eh("Bad Promise constructor");t=e,i=r}),this.resolve=$u(t),this.reject=$u(i)};Zu.f=function(e){return new th(e)};var ih,rh,nh,oh,sh=nn,ah=na,ch=n,lh=Yl,dh=u,uh=$i,hh=cs,ph=jo,mh=wl,_h=Te,fh=H,gh=G,Eh=Qa,Th=yd,vh=su.set,yh=xu,Sh=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(lK){}},Ih=Vu,Ah=gu,Rh=wi,Ch=Uu,bh=Zu,kh="Promise",Dh=Qu.CONSTRUCTOR,wh=Qu.REJECTION_EVENT,Nh=Qu.SUBCLASSING,Oh=Rh.getterFor(kh),Mh=Rh.set,Ph=Ch&&Ch.prototype,Lh=Ch,xh=Ph,Vh=ch.TypeError,Uh=ch.document,Fh=ch.process,Bh=bh.f,Hh=Bh,Wh=!!(Uh&&Uh.createEvent&&ch.dispatchEvent),Gh="unhandledrejection",jh=function(e){var t;return!(!gh(e)||!fh(t=e.then))&&t},Jh=function(e,t){var i,r,n,o=t.value,s=1===t.state,a=s?e.ok:e.fail,c=e.resolve,l=e.reject,d=e.domain;try{a?(s||(2===t.rejection&&Xh(t),t.rejection=1),!0===a?i=o:(d&&d.enter(),i=a(o),d&&(d.exit(),n=!0)),i===e.promise?l(new Vh("Promise-chain cycle")):(r=jh(i))?dh(r,i,c,l):c(i)):l(o)}catch(lK){d&&!n&&d.exit(),l(lK)}},Kh=function(e,t){e.notified||(e.notified=!0,yh(function(){for(var i,r=e.reactions;i=r.get();)Jh(i,e);e.notified=!1,t&&!e.rejection&&zh(e)}))},qh=function(e,t,i){var r,n;Wh?((r=Uh.createEvent("Event")).promise=t,r.reason=i,r.initEvent(e,!1,!0),ch.dispatchEvent(r)):r={promise:t,reason:i},!wh&&(n=ch["on"+e])?n(r):e===Gh&&Sh("Unhandled promise rejection",i)},zh=function(e){dh(vh,ch,function(){var t,i=e.facade,r=e.value;if(Yh(e)&&(t=Ih(function(){ah?Fh.emit("unhandledRejection",r,i):qh(Gh,i,r)}),e.rejection=ah||Yh(e)?2:1,t.error))throw t.value})},Yh=function(e){return 1!==e.rejection&&!e.parent},Xh=function(e){dh(vh,ch,function(){var t=e.facade;ah?Fh.emit("rejectionHandled",t):qh("rejectionhandled",t,e.value)})},Qh=function(e,t,i){return function(r){e(t,r,i)}},Zh=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,Kh(e,!0))},$h=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw new Vh("Promise can't be resolved itself");var r=jh(t);r?yh(function(){var i={done:!1};try{dh(r,t,Qh($h,i,e),Qh(Zh,i,e))}catch(lK){Zh(i,lK,e)}}):(e.value=t,e.state=1,Kh(e,!1))}catch(lK){Zh({done:!1},lK,e)}}};if(Dh&&(xh=(Lh=function(e){Eh(this,xh),_h(e),dh(ih,this);var t=Oh(this);try{e(Qh($h,t),Qh(Zh,t))}catch(lK){Zh(t,lK)}}).prototype,(ih=function(e){Mh(this,{type:kh,done:!1,notified:!1,parent:!1,reactions:new Ah,rejection:!1,state:0,value:null})}).prototype=uh(xh,"then",function(e,t){var i=Oh(this),r=Bh(Th(this,Lh));return i.parent=!0,r.ok=!fh(e)||e,r.fail=fh(t)&&t,r.domain=ah?Fh.domain:void 0,0===i.state?i.reactions.add(r):yh(function(){Jh(r,i)}),r.promise}),rh=function(){var e=new ih,t=Oh(e);this.promise=e,this.resolve=Qh($h,t),this.reject=Qh(Zh,t)},bh.f=Bh=function(e){return e===Lh||e===nh?new rh(e):Hh(e)},fh(Ch)&&Ph!==Object.prototype)){oh=Ph.then,Nh||uh(Ph,"then",function(e,t){var i=this;return new Lh(function(e,t){dh(oh,i,e,t)}).then(e,t)},{unsafe:!0});try{delete Ph.constructor}catch(lK){}hh&&hh(Ph,xh)}sh({global:!0,constructor:!0,wrap:!0,forced:Dh},{Promise:Lh}),nh=lh.Promise,ph(Lh,kh,!1),mh(kh);var ep=So,tp=rt("iterator"),ip=Array.prototype,rp=function(e){return void 0!==e&&(ep.Array===e||ip[tp]===e)},np=hn,op=Se,sp=M,ap=So,cp=rt("iterator"),lp=function(e){if(!sp(e))return op(e,cp)||op(e,"@@iterator")||ap[np(e)]},dp=u,up=Te,hp=Lt,pp=_e,mp=lp,_p=TypeError,fp=function(e,t){var i=arguments.length<2?mp(e):t;if(up(i))return hp(dp(i,e));throw new _p(pp(e)+" is not iterable")},gp=u,Ep=Lt,Tp=Se,vp=function(e,t,i){var r,n;Ep(e);try{if(!(r=Tp(e,"return"))){if("throw"===t)throw i;return i}r=gp(r,e)}catch(lK){n=!0,r=lK}if("throw"===t)throw i;if(n)throw r;return Ep(r),i},yp=wd,Sp=u,Ip=Lt,Ap=_e,Rp=rp,Cp=mr,bp=q,kp=fp,Dp=lp,wp=vp,Np=TypeError,Op=function(e,t){this.stopped=e,this.result=t},Mp=Op.prototype,Pp=function(e,t,i){var r,n,o,s,a,c,l,d=i&&i.that,u=!(!i||!i.AS_ENTRIES),h=!(!i||!i.IS_RECORD),p=!(!i||!i.IS_ITERATOR),m=!(!i||!i.INTERRUPTED),_=yp(t,d),f=function(e){return r&&wp(r,"normal"),new Op(!0,e)},g=function(e){return u?(Ip(e),m?_(e[0],e[1],f):_(e[0],e[1])):m?_(e,f):_(e)};if(h)r=e.iterator;else if(p)r=e;else{if(!(n=Dp(e)))throw new Np(Ap(e)+" is not iterable");if(Rp(n)){for(o=0,s=Cp(e);s>o;o++)if((a=g(e[o]))&&bp(Mp,a))return a;return new Op(!1)}r=kp(e,n)}for(c=h?e.next:r.next;!(l=Sp(c,r)).done;){try{a=g(l.value)}catch(lK){wp(r,"throw",lK)}if("object"==typeof a&&a&&bp(Mp,a))return a}return new Op(!1)},Lp=rt("iterator"),xp=!1;try{var Vp=0,Up={next:function(){return{done:!!Vp++}},return:function(){xp=!0}};Up[Lp]=function(){return this},Array.from(Up,function(){throw 2})}catch(lK){}var Fp=function(e,t){try{if(!t&&!xp)return!1}catch(lK){return!1}var i=!1;try{var r={};r[Lp]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(lK){}return i},Bp=Uu,Hp=Qu.CONSTRUCTOR||!Fp(function(e){Bp.all(e).then(void 0,function(){})}),Wp=u,Gp=Te,jp=Zu,Jp=Vu,Kp=Pp;nn({target:"Promise",stat:!0,forced:Hp},{all:function(e){var t=this,i=jp.f(t),r=i.resolve,n=i.reject,o=Jp(function(){var i=Gp(t.resolve),o=[],s=0,a=1;Kp(e,function(e){var c=s++,l=!1;a++,Wp(i,t,e).then(function(e){l||(l=!0,o[c]=e,--a||r(o))},n)}),--a||r(o)});return o.error&&n(o.value),i.promise}});var qp=nn,zp=Qu.CONSTRUCTOR,Yp=Uu,Xp=K,Qp=H,Zp=$i,$p=Yp&&Yp.prototype;if(qp({target:"Promise",proto:!0,forced:zp,real:!0},{catch:function(e){return this.then(void 0,e)}}),Qp(Yp)){var em=Xp("Promise").prototype.catch;$p.catch!==em&&Zp($p,"catch",em,{unsafe:!0})}var tm=u,im=Te,rm=Zu,nm=Vu,om=Pp;nn({target:"Promise",stat:!0,forced:Hp},{race:function(e){var t=this,i=rm.f(t),r=i.reject,n=nm(function(){var n=im(t.resolve);om(e,function(e){tm(n,t,e).then(i.resolve,r)})});return n.error&&r(n.value),i.promise}});var sm=Zu;nn({target:"Promise",stat:!0,forced:Qu.CONSTRUCTOR},{reject:function(e){var t=sm.f(this);return(0,t.reject)(e),t.promise}});var am=Lt,cm=G,lm=Zu,dm=function(e,t){if(am(e),cm(t)&&t.constructor===e)return t;var i=lm.f(e);return(0,i.resolve)(t),i.promise},um=nn,hm=Qu.CONSTRUCTOR,pm=dm;K("Promise"),um({target:"Promise",stat:!0,forced:hm},{resolve:function(e){return pm(this,e)}});var mm=nn,_m=Uu,fm=s,gm=K,Em=H,Tm=yd,vm=dm,ym=$i,Sm=_m&&_m.prototype;if(mm({target:"Promise",proto:!0,real:!0,forced:!!_m&&fm(function(){Sm.finally.call({then:function(){}},function(){})})},{finally:function(e){var t=Tm(this,gm("Promise")),i=Em(e);return this.then(i?function(i){return vm(t,e()).then(function(){return i})}:e,i?function(i){return vm(t,e()).then(function(){throw i})}:e)}}),Em(_m)){var Im=gm("Promise").prototype.finally;Sm.finally!==Im&&ym(Sm,"finally",Im,{unsafe:!0})}var Am=G,Rm=b,Cm=rt("match"),bm=function(e){var t;return Am(e)&&(void 0!==(t=e[Cm])?!!t:"RegExp"===Rm(e))},km=s,Dm=n.RegExp,wm=!km(function(){var e=!0;try{Dm(".","d")}catch(lK){e=!1}var t={},i="",r=e?"dgimsy":"gimsy",n=function(e,r){Object.defineProperty(t,e,{get:function(){return i+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var s in e&&(o.hasIndices="d"),o)n(s,o[s]);return Object.getOwnPropertyDescriptor(Dm.prototype,"flags").get.call(t)!==r||i!==r}),Nm=Lt,Om=function(){var e=Nm(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t},Mm=u,Pm=Ge,Lm=q,xm={correct:wm},Vm=Om,Um=RegExp.prototype,Fm=xm.correct?function(e){return e.flags}:function(e){return xm.correct||!Lm(Um,e)||Pm(e,"flags")?e.flags:Mm(Vm,e)},Bm=s,Hm=n.RegExp,Wm=Bm(function(){var e=Hm("a","y");return e.lastIndex=2,null!==e.exec("abcd")}),Gm=Wm||Bm(function(){return!Hm("a","y").sticky}),jm=Wm||Bm(function(){var e=Hm("^r","gy");return e.lastIndex=2,null!==e.exec("str")}),Jm={BROKEN_CARET:jm,MISSED_STICKY:Gm,UNSUPPORTED_Y:Wm},Km=wt.f,qm=s,zm=n.RegExp,Ym=qm(function(){var e=zm(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)}),Xm=s,Qm=n.RegExp,Zm=Xm(function(){var e=Qm("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}),$m=a,e_=n,t_=I,i_=Yr,r_=Ic,n_=Yt,o_=lo,s_=er.f,a_=q,c_=bm,l_=_n,d_=Fm,u_=Jm,h_=function(e,t,i){i in e||Km(e,i,{configurable:!0,get:function(){return t[i]},set:function(e){t[i]=e}})},p_=$i,m_=s,__=Ge,f_=wi.enforce,g_=wl,E_=Ym,T_=Zm,v_=rt("match"),y_=e_.RegExp,S_=y_.prototype,I_=e_.SyntaxError,A_=t_(S_.exec),R_=t_("".charAt),C_=t_("".replace),b_=t_("".indexOf),k_=t_("".slice),D_=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,w_=/a/g,N_=/a/g,O_=new y_(w_)!==w_,M_=u_.MISSED_STICKY,P_=u_.UNSUPPORTED_Y,L_=$m&&(!O_||M_||E_||T_||m_(function(){return N_[v_]=!1,y_(w_)!==w_||y_(N_)===N_||"/a/i"!==String(y_(w_,"i"))}));if(i_("RegExp",L_)){for(var x_=function(e,t){var i,r,n,o,s,a,c=a_(S_,this),l=c_(e),d=void 0===t,u=[],h=e;if(!c&&l&&d&&e.constructor===x_)return e;if((l||a_(S_,e))&&(e=e.source,d&&(t=d_(h))),e=void 0===e?"":l_(e),t=void 0===t?"":l_(t),h=e,E_&&"dotAll"in w_&&(r=!!t&&b_(t,"s")>-1)&&(t=C_(t,/s/g,"")),i=t,M_&&"sticky"in w_&&(n=!!t&&b_(t,"y")>-1)&&P_&&(t=C_(t,/y/g,"")),T_&&(o=function(e){for(var t,i=e.length,r=0,n="",o=[],s=o_(null),a=!1,c=!1,l=0,d="";r<=i;r++){if("\\"===(t=R_(e,r)))t+=R_(e,++r);else if("]"===t)a=!1;else if(!a)switch(!0){case"["===t:a=!0;break;case"("===t:if(n+=t,"?:"===k_(e,r+1,r+3))continue;A_(D_,k_(e,r+1))&&(r+=2,c=!0),l++;continue;case">"===t&&c:if(""===d||__(s,d))throw new I_("Invalid capture group name");s[d]=!0,o[o.length]=[d,l],c=!1,d="";continue}c?d+=t:n+=t}return[n,o]}(e),e=o[0],u=o[1]),s=r_(y_(e,t),c?this:S_,x_),(r||n||u.length)&&(a=f_(s),r&&(a.dotAll=!0,a.raw=x_(function(e){for(var t,i=e.length,r=0,n="",o=!1;r<=i;r++)"\\"!==(t=R_(e,r))?o||"."!==t?("["===t?o=!0:"]"===t&&(o=!1),n+=t):n+="[\\s\\S]":n+=t+R_(e,++r);return n}(e),i)),n&&(a.sticky=!0),u.length&&(a.groups=u)),e!==h)try{n_(s,"source",""===h?"(?:)":h)}catch(lK){}return s},V_=s_(y_),U_=0;V_.length>U_;)h_(x_,y_,V_[U_++]);S_.constructor=x_,x_.prototype=S_,p_(e_,"RegExp",x_,{constructor:!0})}g_("RegExp");var F_=u,B_=I,H_=_n,W_=Om,G_=Jm,j_=lo,J_=wi.get,K_=Ym,q_=Zm,z_=Ve("native-string-replace",String.prototype.replace),Y_=RegExp.prototype.exec,X_=Y_,Q_=B_("".charAt),Z_=B_("".indexOf),$_=B_("".replace),ef=B_("".slice),tf=function(){var e=/a/,t=/b*/g;return F_(Y_,e,"a"),F_(Y_,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),rf=G_.BROKEN_CARET,nf=void 0!==/()??/.exec("")[1];(tf||nf||rf||K_||q_)&&(X_=function(e){var t,i,r,n,o,s,a,c=this,l=J_(c),d=H_(e),u=l.raw;if(u)return u.lastIndex=c.lastIndex,t=F_(X_,u,d),c.lastIndex=u.lastIndex,t;var h=l.groups,p=rf&&c.sticky,m=F_(W_,c),_=c.source,f=0,g=d;if(p&&(m=$_(m,"y",""),-1===Z_(m,"g")&&(m+="g"),g=ef(d,c.lastIndex),c.lastIndex>0&&(!c.multiline||c.multiline&&"\n"!==Q_(d,c.lastIndex-1))&&(_="(?: "+_+")",g=" "+g,f++),i=new RegExp("^(?:"+_+")",m)),nf&&(i=new RegExp("^"+_+"$(?!\\s)",m)),tf&&(r=c.lastIndex),n=F_(Y_,p?i:c,g),p?n?(n.input=ef(n.input,f),n[0]=ef(n[0],f),n.index=c.lastIndex,c.lastIndex+=n[0].length):c.lastIndex=0:tf&&n&&(c.lastIndex=c.global?n.index+n[0].length:r),nf&&n&&n.length>1&&F_(z_,n[0],i,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)}),n&&h)for(n.groups=s=j_(null),o=0;o<h.length;o++)s[(a=h[o])[0]]=n[a[1]];return n});var of=X_;nn({target:"RegExp",proto:!0,forced:/./.exec!==of},{exec:of});var sf=or,af=_n,cf=x,lf=RangeError,df=I,uf=hr,hf=_n,pf=function(e){var t=af(cf(this)),i="",r=sf(e);if(r<0||Infinity===r)throw new lf("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(i+=t);return i},mf=x,_f=df(pf),ff=df("".slice),gf=Math.ceil,Ef=function(e){return function(t,i,r){var n,o,s=hf(mf(t)),a=uf(i),c=s.length,l=void 0===r?" ":hf(r);return a<=c||""===l?s:((o=_f(l,gf((n=a-c)/l.length))).length>n&&(o=ff(o,0,n)),e?s+o:o+s)}},Tf={start:Ef(!1),end:Ef(!0)},vf=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(X),yf=Tf.start;nn({target:"String",proto:!0,forced:vf},{padStart:function(e){return yf(this,e,arguments.length>1?arguments[1]:void 0)}});var Sf=u,If=$i,Af=of,Rf=s,Cf=rt,bf=Yt,kf=Cf("species"),Df=RegExp.prototype,wf=I,Nf=or,Of=_n,Mf=x,Pf=wf("".charAt),Lf=wf("".charCodeAt),xf=wf("".slice),Vf=function(e){return function(t,i){var r,n,o=Of(Mf(t)),s=Nf(i),a=o.length;return s<0||s>=a?e?"":void 0:(r=Lf(o,s))<55296||r>56319||s+1===a||(n=Lf(o,s+1))<56320||n>57343?e?Pf(o,s):r:e?xf(o,s,s+2):n-56320+(r-55296<<10)+65536}},Uf={codeAt:Vf(!1),charAt:Vf(!0)},Ff=Uf.charAt,Bf=I,Hf=Be,Wf=Math.floor,Gf=Bf("".charAt),jf=Bf("".replace),Jf=Bf("".slice),Kf=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,qf=/\$([$&'`]|\d{1,2})/g,zf=function(e,t,i,r,n,o){var s=i+e.length,a=r.length,c=qf;return void 0!==n&&(n=Hf(n),c=Kf),jf(o,c,function(o,c){var l;switch(Gf(c,0)){case"$":return"$";case"&":return e;case"`":return Jf(t,0,i);case"'":return Jf(t,s);case"<":l=n[Jf(c,1,-1)];break;default:var d=+c;if(0===d)return o;if(d>a){var u=Wf(d/10);return 0===u?o:u<=a?void 0===r[u-1]?Gf(c,1):r[u-1]+Gf(c,1):o}l=r[d-1]}return void 0===l?"":l})},Yf=u,Xf=Lt,Qf=H,Zf=b,$f=of,eg=TypeError,tg=Cd,ig=u,rg=I,ng=function(e,t,i,r){var n=Cf(e),o=!Rf(function(){var t={};return t[n]=function(){return 7},7!==""[e](t)}),s=o&&!Rf(function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[kf]=function(){return i},i.flags="",i[n]=/./[n]),i.exec=function(){return t=!0,null},i[n](""),!t});if(!o||!s||i){var a=/./[n],c=t(n,""[e],function(e,t,i,r,n){var s=t.exec;return s===Af||s===Df.exec?o&&!n?{done:!0,value:Sf(a,t,i,r)}:{done:!0,value:Sf(e,i,t,r)}:{done:!1}});If(String.prototype,e,c[0]),If(Df,n,c[1])}r&&bf(Df[n],"sham",!0)},og=s,sg=Lt,ag=H,cg=G,lg=or,dg=hr,ug=_n,hg=x,pg=function(e,t,i){return t+(i?Ff(e,t).length:1)},mg=Se,_g=zf,fg=Fm,gg=function(e,t){var i=e.exec;if(Qf(i)){var r=Yf(i,e,t);return null!==r&&Xf(r),r}if("RegExp"===Zf(e))return Yf($f,e,t);throw new eg("RegExp#exec called on incompatible receiver")},Eg=rt("replace"),Tg=Math.max,vg=Math.min,yg=rg([].concat),Sg=rg([].push),Ig=rg("".indexOf),Ag=rg("".slice),Rg=function(e){return void 0===e?e:String(e)},Cg="$0"==="a".replace(/./,"$0"),bg=!!/./[Eg]&&""===/./[Eg]("a","$0"),kg=!og(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")});ng("replace",function(e,t,i){var r=bg?"$":"$0";return[function(e,i){var r=hg(this),n=cg(e)?mg(e,Eg):void 0;return n?ig(n,e,r,i):ig(t,ug(r),e,i)},function(e,n){var o=sg(this),s=ug(e);if("string"==typeof n&&-1===Ig(n,r)&&-1===Ig(n,"$<")){var a=i(t,o,s,n);if(a.done)return a.value}var c=ag(n);c||(n=ug(n));var l,d=ug(fg(o)),u=-1!==Ig(d,"g");u&&(l=-1!==Ig(d,"u"),o.lastIndex=0);for(var h,p=[];null!==(h=gg(o,s))&&(Sg(p,h),u);){""===ug(h[0])&&(o.lastIndex=pg(s,dg(o.lastIndex),l))}for(var m="",_=0,f=0;f<p.length;f++){for(var g,E=ug((h=p[f])[0]),T=Tg(vg(lg(h.index),s.length),0),v=[],y=1;y<h.length;y++)Sg(v,Rg(h[y]));var S=h.groups;if(c){var I=yg([E],v,T,s);void 0!==S&&Sg(I,S),g=ug(tg(n,void 0,I))}else g=_g(E,s,T,v,S,n);T>=_&&(m+=Ag(s,_,T)+g,_=T+E.length)}return m+Ag(s,_)}]},!kg||!Cg||bg);var Dg="\t\n\v\f\r \u2028\u2029\ufeff",wg=x,Ng=_n,Og=Dg,Mg=I("".replace),Pg=RegExp("^["+Og+"]+"),Lg=RegExp("(^|[^"+Og+"])["+Og+"]+$"),xg=function(e){return function(t){var i=Ng(wg(t));return 1&e&&(i=Mg(i,Pg,"")),2&e&&(i=Mg(i,Lg,"$1")),i}},Vg={start:xg(1),end:xg(2),trim:xg(3)},Ug=ii.PROPER,Fg=s,Bg=Dg,Hg=Vg.trim;nn({target:"String",proto:!0,forced:function(e){return Fg(function(){return!!Bg[e]()||"
"!=="
"[e]()||Ug&&Bg[e].name!==e})}("trim")},{trim:function(){return Hg(this)}});var Wg,Gg,jg,Jg={exports:{}},Kg=Ka,qg=a,zg=n,Yg=H,Xg=G,Qg=Ge,Zg=hn,$g=_e,eE=Yt,tE=$i,iE=En,rE=q,nE=No,oE=cs,sE=rt,aE=ze,cE=wi.enforce,lE=wi.get,dE=zg.Int8Array,uE=dE&&dE.prototype,hE=zg.Uint8ClampedArray,pE=hE&&hE.prototype,mE=dE&&nE(dE),_E=uE&&nE(uE),fE=Object.prototype,gE=zg.TypeError,EE=sE("toStringTag"),TE=aE("TYPED_ARRAY_TAG"),vE="TypedArrayConstructor",yE=Kg&&!!oE&&"Opera"!==Zg(zg.opera),SE=!1,IE={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},AE={BigInt64Array:8,BigUint64Array:8},RE=function(e){var t=nE(e);if(Xg(t)){var i=lE(t);return i&&Qg(i,vE)?i[vE]:RE(t)}},CE=function(e){if(!Xg(e))return!1;var t=Zg(e);return Qg(IE,t)||Qg(AE,t)};for(Wg in IE)(jg=(Gg=zg[Wg])&&Gg.prototype)?cE(jg)[vE]=Gg:yE=!1;for(Wg in AE)(jg=(Gg=zg[Wg])&&Gg.prototype)&&(cE(jg)[vE]=Gg);if((!yE||!Yg(mE)||mE===Function.prototype)&&(mE=function(){throw new gE("Incorrect invocation")},yE))for(Wg in IE)zg[Wg]&&oE(zg[Wg],mE);if((!yE||!_E||_E===fE)&&(_E=mE.prototype,yE))for(Wg in IE)zg[Wg]&&oE(zg[Wg].prototype,_E);if(yE&&nE(pE)!==_E&&oE(pE,_E),qg&&!Qg(_E,EE))for(Wg in SE=!0,iE(_E,EE,{configurable:!0,get:function(){return Xg(this)?this[TE]:void 0}}),IE)zg[Wg]&&eE(zg[Wg],TE,Wg);var bE={NATIVE_ARRAY_BUFFER_VIEWS:yE,TYPED_ARRAY_TAG:SE&&TE,aTypedArray:function(e){if(CE(e))return e;throw new gE("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Yg(e)&&(!oE||rE(mE,e)))return e;throw new gE($g(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,i,r){if(qg){if(i)for(var n in IE){var o=zg[n];if(o&&Qg(o.prototype,e))try{delete o.prototype[e]}catch(lK){try{o.prototype[e]=t}catch(s){}}}_E[e]&&!i||tE(_E,e,i?t:yE&&uE[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,i){var r,n;if(qg){if(oE){if(i)for(r in IE)if((n=zg[r])&&Qg(n,e))try{delete n[e]}catch(lK){}if(mE[e]&&!i)return;try{return tE(mE,e,i?t:yE&&mE[e]||t)}catch(lK){}}for(r in IE)!(n=zg[r])||n[e]&&!i||tE(n,e,t)}},getTypedArrayConstructor:RE,isView:function(e){if(!Xg(e))return!1;var t=Zg(e);return"DataView"===t||Qg(IE,t)||Qg(AE,t)},isTypedArray:CE,TypedArray:mE,TypedArrayPrototype:_E},kE=n,DE=s,wE=Fp,NE=bE.NATIVE_ARRAY_BUFFER_VIEWS,OE=kE.ArrayBuffer,ME=kE.Int8Array,PE=!NE||!DE(function(){ME(1)})||!DE(function(){new ME(-1)})||!wE(function(e){new ME,new ME(null),new ME(1.5),new ME(e)},!0)||DE(function(){return 1!==new ME(new OE(2),1,void 0).length}),LE=G,xE=Math.floor,VE=Number.isInteger||function(e){return!LE(e)&&isFinite(e)&&xE(e)===e},UE=or,FE=RangeError,BE=function(e){var t=UE(e);if(t<0)throw new FE("The argument can't be less than 0");return t},HE=RangeError,WE=function(e,t){var i=BE(e);if(i%t)throw new HE("Wrong offset");return i},GE=Math.round,jE=hn,JE=ut,KE=TypeError,qE=function(e){var t=JE(e,"number");if("number"==typeof t)throw new KE("Can't convert number to bigint");return BigInt(t)},zE=wd,YE=u,XE=fd,QE=Be,ZE=mr,$E=fp,eT=lp,tT=rp,iT=function(e){var t=jE(e);return"BigInt64Array"===t||"BigUint64Array"===t},rT=bE.aTypedArrayConstructor,nT=qE,oT=function(e){var t,i,r,n,o,s,a,c,l=XE(this),d=QE(e),u=arguments.length,h=u>1?arguments[1]:void 0,p=void 0!==h,m=eT(d);if(m&&!tT(m))for(c=(a=$E(d,m)).next,d=[];!(s=YE(c,a)).done;)d.push(s.value);for(p&&u>2&&(h=zE(h,arguments[2])),i=ZE(d),r=new(rT(l))(i),n=iT(r),t=0;i>t;t++)o=p?h(d[t],t):d[t],r[t]=n?nT(o):+o;return r},sT=ca,aT=hd,cT=G,lT=rt("species"),dT=Array,uT=function(e){var t;return sT(e)&&(t=e.constructor,(aT(t)&&(t===dT||sT(t.prototype))||cT(t)&&null===(t=t[lT]))&&(t=void 0)),void 0===t?dT:t},hT=wd,pT=O,mT=Be,_T=mr,fT=function(e,t){return new(uT(e))(0===t?0:t)},gT=I([].push),ET=function(e){var t=1===e,i=2===e,r=3===e,n=4===e,o=6===e,s=7===e,a=5===e||o;return function(c,l,d,u){for(var h,p,m=mT(c),_=pT(m),f=_T(_),g=hT(l,d),E=0,T=u||fT,v=t?T(c,f):i||s?T(c,0):void 0;f>E;E++)if((a||E in _)&&(p=g(h=_[E],E,m),e))if(t)v[E]=p;else if(p)switch(e){case 3:return!0;case 5:return h;case 6:return E;case 2:gT(v,h)}else switch(e){case 4:return!1;case 7:gT(v,h)}return o?-1:r||n?n:v}},TT={forEach:ET(0),map:ET(1),filter:ET(2),some:ET(3),every:ET(4),find:ET(5),findIndex:ET(6),filterReject:ET(7)},vT=mr,yT=nn,ST=n,IT=u,AT=a,RT=PE,CT=bE,bT=Rl,kT=Qa,DT=E,wT=Yt,NT=VE,OT=hr,MT=tc,PT=WE,LT=function(e){var t=GE(e);return t<0?0:t>255?255:255&t},xT=mt,VT=Ge,UT=hn,FT=G,BT=pe,HT=lo,WT=q,GT=cs,jT=er.f,JT=oT,KT=TT.forEach,qT=wl,zT=En,YT=wt,XT=o,QT=function(e,t,i){for(var r=0,n=arguments.length>2?i:vT(t),o=new e(n);n>r;)o[r]=t[r++];return o},ZT=Ic,$T=wi.get,ev=wi.set,tv=wi.enforce,iv=YT.f,rv=XT.f,nv=ST.RangeError,ov=bT.ArrayBuffer,sv=ov.prototype,av=bT.DataView,cv=CT.NATIVE_ARRAY_BUFFER_VIEWS,lv=CT.TYPED_ARRAY_TAG,dv=CT.TypedArray,uv=CT.TypedArrayPrototype,hv=CT.isTypedArray,pv="BYTES_PER_ELEMENT",mv="Wrong length",_v=function(e,t){zT(e,t,{configurable:!0,get:function(){return $T(this)[t]}})},fv=function(e){var t;return WT(sv,e)||"ArrayBuffer"===(t=UT(e))||"SharedArrayBuffer"===t},gv=function(e,t){return hv(e)&&!BT(t)&&t in e&&NT(+t)&&t>=0},Ev=function(e,t){return t=xT(t),gv(e,t)?DT(2,e[t]):rv(e,t)},Tv=function(e,t,i){return t=xT(t),!(gv(e,t)&&FT(i)&&VT(i,"value"))||VT(i,"get")||VT(i,"set")||i.configurable||VT(i,"writable")&&!i.writable||VT(i,"enumerable")&&!i.enumerable?iv(e,t,i):(e[t]=i.value,e)};AT?(cv||(XT.f=Ev,YT.f=Tv,_v(uv,"buffer"),_v(uv,"byteOffset"),_v(uv,"byteLength"),_v(uv,"length")),yT({target:"Object",stat:!0,forced:!cv},{getOwnPropertyDescriptor:Ev,defineProperty:Tv}),Jg.exports=function(e,t,i){var r=e.match(/\d+/)[0]/8,n=e+(i?"Clamped":"")+"Array",o="get"+e,s="set"+e,a=ST[n],c=a,l=c&&c.prototype,d={},u=function(e,t){iv(e,t,{get:function(){return function(e,t){var i=$T(e);return i.view[o](t*r+i.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,n){var o=$T(e);o.view[s](t*r+o.byteOffset,i?LT(n):n,!0)}(this,t,e)},enumerable:!0})};cv?RT&&(c=t(function(e,t,i,n){return kT(e,l),ZT(FT(t)?fv(t)?void 0!==n?new a(t,PT(i,r),n):void 0!==i?new a(t,PT(i,r)):new a(t):hv(t)?QT(c,t):IT(JT,c,t):new a(MT(t)),e,c)}),GT&>(c,dv),KT(jT(a),function(e){e in c||wT(c,e,a[e])}),c.prototype=l):(c=t(function(e,t,i,n){kT(e,l);var o,s,a,d=0,h=0;if(FT(t)){if(!fv(t))return hv(t)?QT(c,t):IT(JT,c,t);o=t,h=PT(i,r);var p=t.byteLength;if(void 0===n){if(p%r)throw new nv(mv);if((s=p-h)<0)throw new nv(mv)}else if((s=OT(n)*r)+h>p)throw new nv(mv);a=s/r}else a=MT(t),o=new ov(s=a*r);for(ev(e,{buffer:o,byteOffset:h,byteLength:s,length:a,view:new av(o)});d<a;)u(e,d++)}),GT&>(c,dv),l=c.prototype=HT(uv)),l.constructor!==c&&wT(l,"constructor",c),tv(l).TypedArrayConstructor=c,lv&&wT(l,lv,n);var h=c!==a;d[n]=c,yT({global:!0,constructor:!0,forced:h,sham:!cv},d),pv in c||wT(c,pv,r),pv in l||wT(l,pv,r),qT(n)}):Jg.exports=function(){};var vv=Jg.exports;vv("Float32",function(e){return function(t,i,r){return e(this,t,i,r)}}),vv("Uint8",function(e){return function(t,i,r){return e(this,t,i,r)}});var yv=Tc,Sv=qE,Iv=hn,Av=u,Rv=s,Cv=bE.aTypedArray,bv=bE.exportTypedArrayMethod,kv=I("".slice);bv("fill",function(e){var t=arguments.length;Cv(this);var i="Big"===kv(Iv(this),0,3)?Sv(e):+e;return Av(yv,this,i,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)},Rv(function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})),(0,bE.exportTypedArrayStaticMethod)("from",oT,PE);var Dv=n,wv=u,Nv=bE,Ov=mr,Mv=WE,Pv=Be,Lv=s,xv=Dv.RangeError,Vv=Dv.Int8Array,Uv=Vv&&Vv.prototype,Fv=Uv&&Uv.set,Bv=Nv.aTypedArray,Hv=Nv.exportTypedArrayMethod,Wv=!Lv(function(){var e=new Uint8ClampedArray(2);return wv(Fv,e,{length:1,0:3},1),3!==e[1]}),Gv=Wv&&Nv.NATIVE_ARRAY_BUFFER_VIEWS&&Lv(function(){var e=new Vv(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]});Hv("set",function(e){Bv(this);var t=Mv(arguments.length>1?arguments[1]:void 0,1),i=Pv(e);if(Wv)return wv(Fv,this,i,t);var r=this.length,n=Ov(i),o=0;if(n+t>r)throw new xv("Wrong length");for(;o<n;)this[t+o]=i[o++]},!Wv||Gv);var jv=xl,Jv=s,Kv=Te,qv=Ta,zv=ya,Yv=Sa,Xv=re,Qv=Aa,Zv=bE.aTypedArray,$v=bE.exportTypedArrayMethod,ey=n.Uint16Array,ty=ey&&jv(ey.prototype.sort),iy=!(!ty||Jv(function(){ty(new ey(2),null)})&&Jv(function(){ty(new ey(2),{})})),ry=!!ty&&!Jv(function(){if(Xv)return Xv<74;if(zv)return zv<67;if(Yv)return!0;if(Qv)return Qv<602;var e,t,i=new ey(516),r=Array(516);for(e=0;e<516;e++)t=e%4,i[e]=515-e,r[e]=e-2*t+3;for(ty(i,function(e,t){return(e/4|0)-(t/4|0)}),e=0;e<516;e++)if(i[e]!==r[e])return!0});$v("sort",function(e){return void 0!==e&&Kv(e),ry?ty(this,e):qv(Zv(this),function(e){return function(t,i){return void 0!==e?+e(t,i)||0:i!=i?-1:t!=t?1:0===t&&0===i?1/t>0&&1/i<0?1:-1:t>i}}(e))},!ry||iy);var ny=nn,oy=u,sy=I,ay=x,cy=H,ly=G,dy=bm,uy=_n,hy=Se,py=Fm,my=zf,_y=rt("replace"),fy=TypeError,gy=sy("".indexOf);sy("".replace);var Ey=sy("".slice),Ty=Math.max;ny({target:"String",proto:!0},{replaceAll:function(e,t){var i,r,n,o,s,a,c,l,d,u=ay(this),h=0,p="";if(ly(e)){if(dy(e)&&(i=uy(ay(py(e))),!~gy(i,"g")))throw new fy("`.replaceAll` does not allow non-global regexes");if(r=hy(e,_y))return oy(r,e,u,t)}for(n=uy(u),o=uy(e),(s=cy(t))||(t=uy(t)),a=o.length,c=Ty(1,a),l=gy(n,o);-1!==l;)d=s?uy(t(o,l,n)):my(o,n,l,[],void 0,t),p+=Ey(n,h,l)+d,h=l+a,l=l+c>n.length?-1:gy(n,o,l+c);return h<n.length&&(p+=Ey(n,h)),p}});var vy={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},yy=Et("span").classList,Sy=yy&&yy.constructor&&yy.constructor.prototype,Iy=Sy===Object.prototype?void 0:Sy,Ay=TT.forEach,Ry=Zs("forEach")?[].forEach:function(e){return Ay(this,e,arguments.length>1?arguments[1]:void 0)},Cy=n,by=vy,ky=Iy,Dy=Ry,wy=Yt,Ny=function(e){if(e&&e.forEach!==Dy)try{wy(e,"forEach",Dy)}catch(lK){e.forEach=Dy}};for(var Oy in by)by[Oy]&&Ny(Cy[Oy]&&Cy[Oy].prototype);Ny(ky);var My=n,Py=vy,Ly=Iy,xy=Hs,Vy=Yt,Uy=jo,Fy=rt("iterator"),By=xy.values,Hy=function(e,t){if(e){if(e[Fy]!==By)try{Vy(e,Fy,By)}catch(lK){e[Fy]=By}if(Uy(e,t,!0),Py[t])for(var i in xy)if(e[i]!==xy[i])try{Vy(e,i,xy[i])}catch(lK){e[i]=xy[i]}}};for(var Wy in Py)Hy(My[Wy]&&My[Wy].prototype,Wy);Hy(Ly,"DOMTokenList");var Gy=su.clear;nn({global:!0,bind:!0,enumerable:!0,forced:n.clearImmediate!==Gy},{clearImmediate:Gy});var jy=n,Jy=Cd,Ky=H,qy=ra,zy=X,Yy=_a,Xy=Od,Qy=jy.Function,Zy=/MSIE .\./.test(zy)||"BUN"===qy&&function(){var e=jy.Bun.version.split(".");return e.length<3||"0"===e[0]&&(e[1]<3||"3"===e[1]&&"0"===e[2])}(),$y=nn,eS=n,tS=su.set,iS=function(e,t){var i=t?2:1;return Zy?function(r,n){var o=Xy(arguments.length,1)>i,s=Ky(r)?r:Qy(r),a=o?Yy(arguments,i):[],c=o?function(){Jy(s,this,a)}:s;return t?e(c,n):e(c)}:e},rS=eS.setImmediate?iS(tS,!1):tS;$y({global:!0,bind:!0,enumerable:!0,forced:eS.setImmediate!==rS},{setImmediate:rS});var nS=Uf.charAt,oS=_n,sS=wi,aS=ks,cS=Ds,lS="String Iterator",dS=sS.set,uS=sS.getterFor(lS);aS(String,"String",function(e){dS(this,{type:lS,string:oS(e),index:0})},function(){var e,t=uS(this),i=t.string,r=t.index;return r>=i.length?cS(void 0,!0):(e=nS(i,r),t.index+=e.length,cS(e,!1))});var hS=s,pS=a,mS=rt("iterator"),_S=!hS(function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,i=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach(function(e,i){t.delete("b"),r+=i+e}),i.delete("a",2),i.delete("b",void 0),!t.size&&!pS||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[mS]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==r||"x"!==new URL("https://x",void 0).host}),fS=a,gS=I,ES=u,TS=s,vS=Hn,yS=Dr,SS=h,IS=Be,AS=O,RS=Object.assign,CS=Object.defineProperty,bS=gS([].concat),kS=!RS||TS(function(){if(fS&&1!==RS({b:1},RS(CS({},"a",{enumerable:!0,get:function(){CS(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},i=Symbol("assign detection"),r="abcdefghijklmnopqrst";return e[i]=7,r.split("").forEach(function(e){t[e]=e}),7!==RS({},e)[i]||vS(RS({},t)).join("")!==r})?function(e,t){for(var i=IS(e),r=arguments.length,n=1,o=yS.f,s=SS.f;r>n;)for(var a,c=AS(arguments[n++]),l=o?bS(vS(c),o(c)):vS(c),d=l.length,u=0;d>u;)a=l[u++],fS&&!ES(s,c,a)||(i[a]=c[a]);return i}:RS,DS=Lt,wS=vp,NS=a,OS=wt,MS=E,PS=wd,LS=u,xS=Be,VS=function(e,t,i,r){try{return r?t(DS(i)[0],i[1]):t(i)}catch(lK){wS(e,"throw",lK)}},US=rp,FS=hd,BS=mr,HS=function(e,t,i){NS?OS.f(e,t,MS(0,i)):e[t]=i},WS=fp,GS=lp,jS=Array,JS=I,KS=2147483647,qS=/[^\0-\u007E]/,zS=/[.\u3002\uFF0E\uFF61]/g,YS="Overflow: input needs wider integers to process",XS=RangeError,QS=JS(zS.exec),ZS=Math.floor,$S=String.fromCharCode,eI=JS("".charCodeAt),tI=JS([].join),iI=JS([].push),rI=JS("".replace),nI=JS("".split),oI=JS("".toLowerCase),sI=function(e){return e+22+75*(e<26)},aI=function(e,t,i){var r=0;for(e=i?ZS(e/700):e>>1,e+=ZS(e/t);e>455;)e=ZS(e/35),r+=36;return ZS(r+36*e/(e+38))},cI=function(e){var t=[];e=function(e){for(var t=[],i=0,r=e.length;i<r;){var n=eI(e,i++);if(n>=55296&&n<=56319&&i<r){var o=eI(e,i++);56320==(64512&o)?iI(t,((1023&n)<<10)+(1023&o)+65536):(iI(t,n),i--)}else iI(t,n)}return t}(e);var i,r,n=e.length,o=128,s=0,a=72;for(i=0;i<e.length;i++)(r=e[i])<128&&iI(t,$S(r));var c=t.length,l=c;for(c&&iI(t,"-");l<n;){var d=KS;for(i=0;i<e.length;i++)(r=e[i])>=o&&r<d&&(d=r);var u=l+1;if(d-o>ZS((KS-s)/u))throw new XS(YS);for(s+=(d-o)*u,o=d,i=0;i<e.length;i++){if((r=e[i])<o&&++s>KS)throw new XS(YS);if(r===o){for(var h=s,p=36;;){var m=p<=a?1:p>=a+26?26:p-a;if(h<m)break;var _=h-m,f=36-m;iI(t,$S(sI(m+_%f))),h=ZS(_/f),p+=36}iI(t,$S(sI(h))),a=aI(s,u,l===c),s=0,l++}}s++,o++}return tI(t,"")},lI=nn,dI=I,uI=lr,hI=RangeError,pI=String.fromCharCode,mI=String.fromCodePoint,_I=dI([].join);lI({target:"String",stat:!0,arity:1,forced:!!mI&&1!==mI.length},{fromCodePoint:function(e){for(var t,i=[],r=arguments.length,n=0;r>n;){if(t=+arguments[n++],uI(t,1114111)!==t)throw new hI(t+" is not a valid code point");i[n]=t<65536?pI(t):pI(55296+((t-=65536)>>10),t%1024+56320)}return _I(i,"")}});var fI=nn,gI=n,EI=du,TI=K,vI=u,yI=I,SI=a,II=_S,AI=$i,RI=En,CI=za,bI=jo,kI=Qo,DI=wi,wI=Qa,NI=H,OI=Ge,MI=wd,PI=hn,LI=Lt,xI=G,VI=_n,UI=lo,FI=E,BI=fp,HI=lp,WI=Ds,GI=Od,jI=Ta,JI=rt("iterator"),KI="URLSearchParams",qI=KI+"Iterator",zI=DI.set,YI=DI.getterFor(KI),XI=DI.getterFor(qI),QI=EI("fetch"),ZI=EI("Request"),$I=EI("Headers"),eA=ZI&&ZI.prototype,tA=$I&&$I.prototype,iA=gI.TypeError,rA=gI.encodeURIComponent,nA=String.fromCharCode,oA=TI("String","fromCodePoint"),sA=parseInt,aA=yI("".charAt),cA=yI([].join),lA=yI([].push),dA=yI("".replace),uA=yI([].shift),hA=yI([].splice),pA=yI("".split),mA=yI("".slice),_A=yI(/./.exec),fA=/\+/g,gA=/^[0-9a-f]+$/i,EA=function(e,t){var i=mA(e,t,t+2);return _A(gA,i)?sA(i,16):NaN},TA=function(e){for(var t=0,i=128;i>0&&0!==(e&i);i>>=1)t++;return t},vA=function(e){var t=null;switch(e.length){case 1:t=e[0];break;case 2:t=(31&e[0])<<6|63&e[1];break;case 3:t=(15&e[0])<<12|(63&e[1])<<6|63&e[2];break;case 4:t=(7&e[0])<<18|(63&e[1])<<12|(63&e[2])<<6|63&e[3]}return t>1114111?null:t},yA=function(e){for(var t=(e=dA(e,fA," ")).length,i="",r=0;r<t;){var n=aA(e,r);if("%"===n){if("%"===aA(e,r+1)||r+3>t){i+="%",r++;continue}var o=EA(e,r+1);if(o!=o){i+=n,r++;continue}r+=2;var s=TA(o);if(0===s)n=nA(o);else{if(1===s||s>4){i+="�",r++;continue}for(var a=[o],c=1;c<s&&!(++r+3>t||"%"!==aA(e,r));){var l=EA(e,r+1);if(l!=l){r+=3;break}if(l>191||l<128)break;lA(a,l),r+=2,c++}if(a.length!==s){i+="�";continue}var d=vA(a);null===d?i+="�":n=oA(d)}}i+=n,r++}return i},SA=/[!'()~]|%20/g,IA={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},AA=function(e){return IA[e]},RA=function(e){return dA(rA(e),SA,AA)},CA=kI(function(e,t){zI(this,{type:qI,target:YI(e).entries,index:0,kind:t})},KI,function(){var e=XI(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,WI(void 0,!0);var r=t[i];switch(e.kind){case"keys":return WI(r.key,!1);case"values":return WI(r.value,!1)}return WI([r.key,r.value],!1)},!0),bA=function(e){this.entries=[],this.url=null,void 0!==e&&(xI(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===aA(e,0)?mA(e,1):e:VI(e)))};bA.prototype={type:KI,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,n,o,s,a,c=this.entries,l=HI(e);if(l)for(i=(t=BI(e,l)).next;!(r=vI(i,t)).done;){if(o=(n=BI(LI(r.value))).next,(s=vI(o,n)).done||(a=vI(o,n)).done||!vI(o,n).done)throw new iA("Expected sequence with length 2");lA(c,{key:VI(s.value),value:VI(a.value)})}else for(var d in e)OI(e,d)&&lA(c,{key:d,value:VI(e[d])})},parseQuery:function(e){if(e)for(var t,i,r=this.entries,n=pA(e,"&"),o=0;o<n.length;)(t=n[o++]).length&&(i=pA(t,"="),lA(r,{key:yA(uA(i)),value:yA(cA(i,"="))}))},serialize:function(){for(var e,t=this.entries,i=[],r=0;r<t.length;)e=t[r++],lA(i,RA(e.key)+"="+RA(e.value));return cA(i,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var kA=function(){wI(this,DA);var e=zI(this,new bA(arguments.length>0?arguments[0]:void 0));SI||(this.size=e.entries.length)},DA=kA.prototype;if(CI(DA,{append:function(e,t){var i=YI(this);GI(arguments.length,2),lA(i.entries,{key:VI(e),value:VI(t)}),SI||this.length++,i.updateURL()},delete:function(e){for(var t=YI(this),i=GI(arguments.length,1),r=t.entries,n=VI(e),o=i<2?void 0:arguments[1],s=void 0===o?o:VI(o),a=0;a<r.length;){var c=r[a];if(c.key!==n||void 0!==s&&c.value!==s)a++;else if(hA(r,a,1),void 0!==s)break}SI||(this.size=r.length),t.updateURL()},get:function(e){var t=YI(this).entries;GI(arguments.length,1);for(var i=VI(e),r=0;r<t.length;r++)if(t[r].key===i)return t[r].value;return null},getAll:function(e){var t=YI(this).entries;GI(arguments.length,1);for(var i=VI(e),r=[],n=0;n<t.length;n++)t[n].key===i&&lA(r,t[n].value);return r},has:function(e){for(var t=YI(this).entries,i=GI(arguments.length,1),r=VI(e),n=i<2?void 0:arguments[1],o=void 0===n?n:VI(n),s=0;s<t.length;){var a=t[s++];if(a.key===r&&(void 0===o||a.value===o))return!0}return!1},set:function(e,t){var i=YI(this);GI(arguments.length,1);for(var r,n=i.entries,o=!1,s=VI(e),a=VI(t),c=0;c<n.length;c++)(r=n[c]).key===s&&(o?hA(n,c--,1):(o=!0,r.value=a));o||lA(n,{key:s,value:a}),SI||(this.size=n.length),i.updateURL()},sort:function(){var e=YI(this);jI(e.entries,function(e,t){return e.key>t.key?1:-1}),e.updateURL()},forEach:function(e){for(var t,i=YI(this).entries,r=MI(e,arguments.length>1?arguments[1]:void 0),n=0;n<i.length;)r((t=i[n++]).value,t.key,this)},keys:function(){return new CA(this,"keys")},values:function(){return new CA(this,"values")},entries:function(){return new CA(this,"entries")}},{enumerable:!0}),AI(DA,JI,DA.entries,{name:"entries"}),AI(DA,"toString",function(){return YI(this).serialize()},{enumerable:!0}),SI&&RI(DA,"size",{get:function(){return YI(this).entries.length},configurable:!0,enumerable:!0}),bI(kA,KI),fI({global:!0,constructor:!0,forced:!II},{URLSearchParams:kA}),!II&&NI($I)){var wA=yI(tA.has),NA=yI(tA.set),OA=function(e){if(xI(e)){var t,i=e.body;if(PI(i)===KI)return t=e.headers?new $I(e.headers):new $I,wA(t,"content-type")||NA(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),UI(e,{body:FI(0,VI(i)),headers:FI(0,t)})}return e};if(NI(QI)&&fI({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return QI(e,arguments.length>1?OA(arguments[1]):{})}}),NI(ZI)){var MA=function(e){return wI(this,eA),new ZI(e,arguments.length>1?OA(arguments[1]):{})};eA.constructor=MA,MA.prototype=eA,fI({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:MA})}}var PA,LA=nn,xA=a,VA=_S,UA=n,FA=wd,BA=I,HA=$i,WA=En,GA=Qa,jA=Ge,JA=kS,KA=function(e){var t=xS(e),i=FS(this),r=arguments.length,n=r>1?arguments[1]:void 0,o=void 0!==n;o&&(n=PS(n,r>2?arguments[2]:void 0));var s,a,c,l,d,u,h=GS(t),p=0;if(!h||this===jS&&US(h))for(s=BS(t),a=i?new this(s):jS(s);s>p;p++)u=o?n(t[p],p):t[p],HS(a,p,u);else for(a=i?new this:[],d=(l=WS(t,h)).next;!(c=LS(d,l)).done;p++)u=o?VS(l,n,[c.value,p],!0):c.value,HS(a,p,u);return a.length=p,a},qA=_a,zA=Uf.codeAt,YA=function(e){var t,i,r=[],n=nI(rI(oI(e),zS,"."),".");for(t=0;t<n.length;t++)i=n[t],iI(r,QS(qS,i)?"xn--"+cI(i):i);return tI(r,".")},XA=_n,QA=jo,ZA=Od,$A={URLSearchParams:kA,getState:YI},eR=wi,tR=eR.set,iR=eR.getterFor("URL"),rR=$A.URLSearchParams,nR=$A.getState,oR=UA.URL,sR=UA.TypeError,aR=UA.parseInt,cR=Math.floor,lR=Math.pow,dR=BA("".charAt),uR=BA(/./.exec),hR=BA([].join),pR=BA(1.1.toString),mR=BA([].pop),_R=BA([].push),fR=BA("".replace),gR=BA([].shift),ER=BA("".split),TR=BA("".slice),vR=BA("".toLowerCase),yR=BA([].unshift),SR="Invalid scheme",IR="Invalid host",AR="Invalid port",RR=/[a-z]/i,CR=/[\d+-.a-z]/i,bR=/\d/,kR=/^0x/i,DR=/^[0-7]+$/,wR=/^\d+$/,NR=/^[\da-f]+$/i,OR=/[\0\t\n\r #%/:<>?@[\\\]^|]/,MR=/[\0\t\n\r #/:<>?@[\\\]^|]/,PR=/^[\u0000-\u0020]+/,LR=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,xR=/[\t\n\r]/g,VR=function(e){var t,i,r,n;if("number"==typeof e){for(t=[],i=0;i<4;i++)yR(t,e%256),e=cR(e/256);return hR(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,i=1,r=null,n=0,o=0;o<8;o++)0!==e[o]?(n>i&&(t=r,i=n),r=null,n=0):(null===r&&(r=o),++n);return n>i?r:t}(e),i=0;i<8;i++)n&&0===e[i]||(n&&(n=!1),r===i?(t+=i?":":"::",n=!0):(t+=pR(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},UR={},FR=JA({},UR,{" ":1,'"':1,"<":1,">":1,"`":1}),BR=JA({},FR,{"#":1,"?":1,"{":1,"}":1}),HR=JA({},BR,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),WR=function(e,t){var i=zA(e,0);return i>32&&i<127&&!jA(t,e)?e:encodeURIComponent(e)},GR={ftp:21,file:null,http:80,https:443,ws:80,wss:443},jR=function(e,t){var i;return 2===e.length&&uR(RR,dR(e,0))&&(":"===(i=dR(e,1))||!t&&"|"===i)},JR=function(e){var t;return e.length>1&&jR(TR(e,0,2))&&(2===e.length||"/"===(t=dR(e,2))||"\\"===t||"?"===t||"#"===t)},KR=function(e){return"."===e||"%2e"===vR(e)},qR=function(e){return".."===(e=vR(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},zR={},YR={},XR={},QR={},ZR={},$R={},eC={},tC={},iC={},rC={},nC={},oC={},sC={},aC={},cC={},lC={},dC={},uC={},hC={},pC={},mC={},_C=function(e,t,i){var r,n,o,s=XA(e);if(t){if(n=this.parse(s))throw new sR(n);this.searchParams=null}else{if(void 0!==i&&(r=new _C(i,!0)),n=this.parse(s,null,r))throw new sR(n);(o=nR(new rR)).bindURL(this),this.searchParams=o}};_C.prototype={type:"URL",parse:function(e,t,i){var r,n,o,s,a=this,c=t||zR,l=0,d="",u=!1,h=!1,p=!1;for(e=XA(e),t||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=fR(e,PR,""),e=fR(e,LR,"$1")),e=fR(e,xR,""),r=KA(e);l<=r.length;){switch(n=r[l],c){case zR:if(!n||!uR(RR,n)){if(t)return SR;c=XR;continue}d+=vR(n),c=YR;break;case YR:if(n&&(uR(CR,n)||"+"===n||"-"===n||"."===n))d+=vR(n);else{if(":"!==n){if(t)return SR;d="",c=XR,l=0;continue}if(t&&(a.isSpecial()!==jA(GR,d)||"file"===d&&(a.includesCredentials()||null!==a.port)||"file"===a.scheme&&!a.host))return;if(a.scheme=d,t)return void(a.isSpecial()&&GR[a.scheme]===a.port&&(a.port=null));d="","file"===a.scheme?c=aC:a.isSpecial()&&i&&i.scheme===a.scheme?c=QR:a.isSpecial()?c=tC:"/"===r[l+1]?(c=ZR,l++):(a.cannotBeABaseURL=!0,_R(a.path,""),c=hC)}break;case XR:if(!i||i.cannotBeABaseURL&&"#"!==n)return SR;if(i.cannotBeABaseURL&&"#"===n){a.scheme=i.scheme,a.path=qA(i.path),a.query=i.query,a.fragment="",a.cannotBeABaseURL=!0,c=mC;break}c="file"===i.scheme?aC:$R;continue;case QR:if("/"!==n||"/"!==r[l+1]){c=$R;continue}c=iC,l++;break;case ZR:if("/"===n){c=rC;break}c=uC;continue;case $R:if(a.scheme=i.scheme,n===PA)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=qA(i.path),a.query=i.query;else if("/"===n||"\\"===n&&a.isSpecial())c=eC;else if("?"===n)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=qA(i.path),a.query="",c=pC;else{if("#"!==n){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=qA(i.path),a.path.length--,c=uC;continue}a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=qA(i.path),a.query=i.query,a.fragment="",c=mC}break;case eC:if(!a.isSpecial()||"/"!==n&&"\\"!==n){if("/"!==n){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,c=uC;continue}c=rC}else c=iC;break;case tC:if(c=iC,"/"!==n||"/"!==dR(d,l+1))continue;l++;break;case iC:if("/"!==n&&"\\"!==n){c=rC;continue}break;case rC:if("@"===n){u&&(d="%40"+d),u=!0,o=KA(d);for(var m=0;m<o.length;m++){var _=o[m];if(":"!==_||p){var f=WR(_,HR);p?a.password+=f:a.username+=f}else p=!0}d=""}else if(n===PA||"/"===n||"?"===n||"#"===n||"\\"===n&&a.isSpecial()){if(u&&""===d)return"Invalid authority";l-=KA(d).length+1,d="",c=nC}else d+=n;break;case nC:case oC:if(t&&"file"===a.scheme){c=lC;continue}if(":"!==n||h){if(n===PA||"/"===n||"?"===n||"#"===n||"\\"===n&&a.isSpecial()){if(a.isSpecial()&&""===d)return IR;if(t&&""===d&&(a.includesCredentials()||null!==a.port))return;if(s=a.parseHost(d))return s;if(d="",c=dC,t)return;continue}"["===n?h=!0:"]"===n&&(h=!1),d+=n}else{if(""===d)return IR;if(s=a.parseHost(d))return s;if(d="",c=sC,t===oC)return}break;case sC:if(!uR(bR,n)){if(n===PA||"/"===n||"?"===n||"#"===n||"\\"===n&&a.isSpecial()||t){if(""!==d){var g=aR(d,10);if(g>65535)return AR;a.port=a.isSpecial()&&g===GR[a.scheme]?null:g,d=""}if(t)return;c=dC;continue}return AR}d+=n;break;case aC:if(a.scheme="file","/"===n||"\\"===n)c=cC;else{if(!i||"file"!==i.scheme){c=uC;continue}switch(n){case PA:a.host=i.host,a.path=qA(i.path),a.query=i.query;break;case"?":a.host=i.host,a.path=qA(i.path),a.query="",c=pC;break;case"#":a.host=i.host,a.path=qA(i.path),a.query=i.query,a.fragment="",c=mC;break;default:JR(hR(qA(r,l),""))||(a.host=i.host,a.path=qA(i.path),a.shortenPath()),c=uC;continue}}break;case cC:if("/"===n||"\\"===n){c=lC;break}i&&"file"===i.scheme&&!JR(hR(qA(r,l),""))&&(jR(i.path[0],!0)?_R(a.path,i.path[0]):a.host=i.host),c=uC;continue;case lC:if(n===PA||"/"===n||"\\"===n||"?"===n||"#"===n){if(!t&&jR(d))c=uC;else if(""===d){if(a.host="",t)return;c=dC}else{if(s=a.parseHost(d))return s;if("localhost"===a.host&&(a.host=""),t)return;d="",c=dC}continue}d+=n;break;case dC:if(a.isSpecial()){if(c=uC,"/"!==n&&"\\"!==n)continue}else if(t||"?"!==n)if(t||"#"!==n){if(n!==PA&&(c=uC,"/"!==n))continue}else a.fragment="",c=mC;else a.query="",c=pC;break;case uC:if(n===PA||"/"===n||"\\"===n&&a.isSpecial()||!t&&("?"===n||"#"===n)){if(qR(d)?(a.shortenPath(),"/"===n||"\\"===n&&a.isSpecial()||_R(a.path,"")):KR(d)?"/"===n||"\\"===n&&a.isSpecial()||_R(a.path,""):("file"===a.scheme&&!a.path.length&&jR(d)&&(a.host&&(a.host=""),d=dR(d,0)+":"),_R(a.path,d)),d="","file"===a.scheme&&(n===PA||"?"===n||"#"===n))for(;a.path.length>1&&""===a.path[0];)gR(a.path);"?"===n?(a.query="",c=pC):"#"===n&&(a.fragment="",c=mC)}else d+=WR(n,BR);break;case hC:"?"===n?(a.query="",c=pC):"#"===n?(a.fragment="",c=mC):n!==PA&&(a.path[0]+=WR(n,UR));break;case pC:t||"#"!==n?n!==PA&&("'"===n&&a.isSpecial()?a.query+="%27":a.query+="#"===n?"%23":WR(n,UR)):(a.fragment="",c=mC);break;case mC:n!==PA&&(a.fragment+=WR(n,FR))}l++}},parseHost:function(e){var t,i,r;if("["===dR(e,0)){if("]"!==dR(e,e.length-1))return IR;if(t=function(e){var t,i,r,n,o,s,a,c=[0,0,0,0,0,0,0,0],l=0,d=null,u=0,h=function(){return dR(e,u)};if(":"===h()){if(":"!==dR(e,1))return;u+=2,d=++l}for(;h();){if(8===l)return;if(":"!==h()){for(t=i=0;i<4&&uR(NR,h());)t=16*t+aR(h(),16),u++,i++;if("."===h()){if(0===i)return;if(u-=i,l>6)return;for(r=0;h();){if(n=null,r>0){if(!("."===h()&&r<4))return;u++}if(!uR(bR,h()))return;for(;uR(bR,h());){if(o=aR(h(),10),null===n)n=o;else{if(0===n)return;n=10*n+o}if(n>255)return;u++}c[l]=256*c[l]+n,2!==++r&&4!==r||l++}if(4!==r)return;break}if(":"===h()){if(u++,!h())return}else if(h())return;c[l++]=t}else{if(null!==d)return;u++,d=++l}}if(null!==d)for(s=l-d,l=7;0!==l&&s>0;)a=c[l],c[l--]=c[d+s-1],c[d+--s]=a;else if(8!==l)return;return c}(TR(e,1,-1)),!t)return IR;this.host=t}else if(this.isSpecial()){if(e=YA(e),uR(OR,e))return IR;if(t=function(e){var t,i,r,n,o,s,a,c=ER(e,".");if(c.length&&""===c[c.length-1]&&c.length--,(t=c.length)>4)return e;for(i=[],r=0;r<t;r++){if(""===(n=c[r]))return e;if(o=10,n.length>1&&"0"===dR(n,0)&&(o=uR(kR,n)?16:8,n=TR(n,8===o?1:2)),""===n)s=0;else{if(!uR(10===o?wR:8===o?DR:NR,n))return e;s=aR(n,o)}_R(i,s)}for(r=0;r<t;r++)if(s=i[r],r===t-1){if(s>=lR(256,5-t))return null}else if(s>255)return null;for(a=mR(i),r=0;r<i.length;r++)a+=i[r]*lR(256,3-r);return a}(e),null===t)return IR;this.host=t}else{if(uR(MR,e))return IR;for(t="",i=KA(e),r=0;r<i.length;r++)t+=WR(i[r],UR);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return jA(GR,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"===this.scheme&&1===t&&jR(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,i=e.username,r=e.password,n=e.host,o=e.port,s=e.path,a=e.query,c=e.fragment,l=t+":";return null!==n?(l+="//",e.includesCredentials()&&(l+=i+(r?":"+r:"")+"@"),l+=VR(n),null!==o&&(l+=":"+o)):"file"===t&&(l+="//"),l+=e.cannotBeABaseURL?s[0]:s.length?"/"+hR(s,"/"):"",null!==a&&(l+="?"+a),null!==c&&(l+="#"+c),l},setHref:function(e){var t=this.parse(e);if(t)throw new sR(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new fC(e.path[0]).origin}catch(lK){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+VR(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(XA(e)+":",zR)},getUsername:function(){return this.username},setUsername:function(e){var t=KA(XA(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var i=0;i<t.length;i++)this.username+=WR(t[i],HR)}},getPassword:function(){return this.password},setPassword:function(e){var t=KA(XA(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var i=0;i<t.length;i++)this.password+=WR(t[i],HR)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?VR(e):VR(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,nC)},getHostname:function(){var e=this.host;return null===e?"":VR(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,oC)},getPort:function(){var e=this.port;return null===e?"":XA(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""===(e=XA(e))?this.port=null:this.parse(e,sC))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+hR(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,dC))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""===(e=XA(e))?this.query=null:("?"===dR(e,0)&&(e=TR(e,1)),this.query="",this.parse(e,pC)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!==(e=XA(e))?("#"===dR(e,0)&&(e=TR(e,1)),this.fragment="",this.parse(e,mC)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var fC=function(e){var t=GA(this,gC),i=ZA(arguments.length,1)>1?arguments[1]:void 0,r=tR(t,new _C(e,!1,i));xA||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},gC=fC.prototype,EC=function(e,t){return{get:function(){return iR(this)[e]()},set:t&&function(e){return iR(this)[t](e)},configurable:!0,enumerable:!0}};if(xA&&(WA(gC,"href",EC("serialize","setHref")),WA(gC,"origin",EC("getOrigin")),WA(gC,"protocol",EC("getProtocol","setProtocol")),WA(gC,"username",EC("getUsername","setUsername")),WA(gC,"password",EC("getPassword","setPassword")),WA(gC,"host",EC("getHost","setHost")),WA(gC,"hostname",EC("getHostname","setHostname")),WA(gC,"port",EC("getPort","setPort")),WA(gC,"pathname",EC("getPathname","setPathname")),WA(gC,"search",EC("getSearch","setSearch")),WA(gC,"searchParams",EC("getSearchParams")),WA(gC,"hash",EC("getHash","setHash"))),HA(gC,"toJSON",function(){return iR(this).serialize()},{enumerable:!0}),HA(gC,"toString",function(){return iR(this).serialize()},{enumerable:!0}),oR){var TC=oR.createObjectURL,vC=oR.revokeObjectURL;TC&&HA(fC,"createObjectURL",FA(TC,oR)),vC&&HA(fC,"revokeObjectURL",FA(vC,oR))}QA(fC,"URL"),LA({global:!0,constructor:!0,forced:!VA,sham:!xA},{URL:fC});var yC=u;nn({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return yC(URL.prototype.toString,this)}});let SC=!0,IC=!0;function AC(e,t,i){const r=e.match(t);return r&&r.length>=i&&parseFloat(r[i],10)}function RC(e,t,i){if(!e.RTCPeerConnection)return;const r=e.RTCPeerConnection.prototype,n=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return n.apply(this,arguments);const o=e=>{const t=i(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),n.apply(this,[e,o])};const o=r.removeEventListener;r.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(i))return o.apply(this,arguments);const r=this._eventMap[t].get(i);return this._eventMap[t].delete(i),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,o.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function CC(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(SC=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function bC(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(IC=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function kC(){if("object"==typeof window){if(SC)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function DC(e,t){IC&&console.warn(e+" is deprecated, please use "+t+" instead.")}function wC(e){return"[object Object]"===Object.prototype.toString.call(e)}function NC(e){return wC(e)?Object.keys(e).reduce(function(t,i){const r=wC(e[i]),n=r?NC(e[i]):e[i],o=r&&!Object.keys(n).length;return void 0===n||o?t:Object.assign(t,{[i]:n})},{}):e}function OC(e,t,i){t&&!i.has(t.id)&&(i.set(t.id,t),Object.keys(t).forEach(r=>{r.endsWith("Id")?OC(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach(t=>{OC(e,e.get(t),i)})}))}function MC(e,t,i){const r=i?"outbound-rtp":"inbound-rtp",n=new Map;if(null===t)return n;const o=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&o.push(e)}),o.forEach(t=>{e.forEach(i=>{i.type===r&&i.trackId===t.id&&OC(e,i,n)})}),n}const PC=kC;function LC(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const r=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach(i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;const r="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);const n=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[n("min",i)]=r.ideal,t.optional.push(e),e={},e[n("max",i)]=r.ideal,t.optional.push(e)):(e[n("",i)]=r.ideal,t.optional.push(e))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[n("",i)]=r.exact):["min","max"].forEach(e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[n(e,i)]=r[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},n=function(e,n){if(t.version>=61)return n(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=r(e.audio)}if(e&&"object"==typeof e.video){let o=e.video.facingMode;o=o&&("object"==typeof o?o:{ideal:o});const s=t.version<66;if(o&&("user"===o.exact||"environment"===o.exact||"user"===o.ideal||"environment"===o.ideal)&&(!i.mediaDevices.getSupportedConstraints||!i.mediaDevices.getSupportedConstraints().facingMode||s)){let t;if(delete e.video.facingMode,"environment"===o.exact||"environment"===o.ideal?t=["back","rear"]:"user"!==o.exact&&"user"!==o.ideal||(t=["front"]),t)return i.mediaDevices.enumerateDevices().then(i=>{i=i.filter(e=>"videoinput"===e.kind);let s=i.find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!s&&i.length&&t.includes("back")&&(s=i[i.length-1]),s&&(e.video.deviceId=o.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=r(e.video),PC("chrome: "+JSON.stringify(e)),n(e)})}e.video=r(e.video)}return PC("chrome: "+JSON.stringify(e)),n(e)},o=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(i.getUserMedia=function(e,t,r){n(e,e=>{i.webkitGetUserMedia(e,t,e=>{r&&r(o(e))})})}.bind(i),i.mediaDevices.getUserMedia){const e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(t){return n(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(o(e))))}}}function xC(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function VC(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.track.id):{track:i.track};const n=new Event("track");n.track=i.track,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)}),t.stream.getTracks().forEach(i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.id):{track:i};const n=new Event("track");n.track=i,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else RC(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function UC(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let n=i.apply(this,arguments);return n||(n=t(this,e),this._senders.push(n)),n};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach(e=>{const t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function FC(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const n=function(e){const t={};return e.result().forEach(e=>{const i={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(t=>{i[t]=e.stat(t)}),t[i.id]=i}),t},o=function(e){return new Map(Object.keys(e).map(t=>[t,e[t]]))};if(arguments.length>=2){const r=function(e){i(o(n(e)))};return t.apply(this,[r,e])}return new Promise((e,i)=>{t.apply(this,[function(t){e(o(n(t)))},i])}).then(i,r)}}function BC(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then(t=>MC(t,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),RC(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then(t=>MC(t,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,i,r;return this.getSenders().forEach(i=>{i.track===e&&(t?r=!0:t=i)}),this.getReceivers().forEach(t=>(t.track===e&&(i?r=!0:i=t),t.track===e)),r||t&&i?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():i?i.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function HC(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const r=t.apply(this,arguments);return this._shimmedLocalStreams[i.id]?-1===this._shimmedLocalStreams[i.id].indexOf(r)&&this._shimmedLocalStreams[i.id].push(r):this._shimmedLocalStreams[i.id]=[i,r],r};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});const t=this.getSenders();i.apply(this,arguments);const r=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(r)};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{const i=this._shimmedLocalStreams[t].indexOf(e);-1!==i&&this._shimmedLocalStreams[t].splice(i,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),n.apply(this,arguments)}}function WC(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return HC(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){const i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}r.apply(this,[t])};const n=e.RTCPeerConnection.prototype.removeStream;function o(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(new RegExp(n.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},n.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(e=>e.track===t))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const n=this._streams[i.id];if(n)n.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const r=new e.MediaStream([t]);this._streams[i.id]=r,this._reverseStreams[r.id]=i,this.addStream(r)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?i.apply(this,[t=>{const i=o(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then(e=>o(this,e))}};e.RTCPeerConnection.prototype[t]=r[t]});const s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(new RegExp(r.id,"g"),n.id)}),new RTCSessionDescription({type:t.type,sdp:i})}(this,arguments[0]),s.apply(this,arguments)):s.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:o(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach(i=>{this._streams[i].getTracks().find(t=>e.track===t)&&(t=this._streams[i])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function GC(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]})}function jC(e,t){RC(e,"negotiationneeded",e=>{const i=e.target;if(!(t.version<72||i.getConfiguration&&"plan-b"===i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e})}var JC=Object.freeze({__proto__:null,shimMediaStream:xC,shimOnTrack:VC,shimGetSendersWithDtmf:UC,shimGetStats:FC,shimSenderReceiverGetStats:BC,shimAddTrackRemoveTrackWithNative:HC,shimAddTrackRemoveTrack:WC,shimPeerConnection:GC,fixNegotiationNeeded:jC,shimGetUserMedia:LC,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(i){return t(i).then(t=>{const r=i.video&&i.video.width,n=i.video&&i.video.height,o=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:o||3}},r&&(i.video.mandatory.maxWidth=r),n&&(i.video.mandatory.maxHeight=n),e.navigator.mediaDevices.getUserMedia(i)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});function KC(e,t){const i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,r){DC("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const e=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])},t=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(i=JSON.parse(JSON.stringify(i)),e(i.audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),t(i)},r&&r.prototype.getSettings){const t=r.prototype.getSettings;r.prototype.getSettings=function(){const i=t.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(r&&r.prototype.applyConstraints){const t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(i=JSON.parse(JSON.stringify(i)),e(i,"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[i])}}}}function qC(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function zC(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]});const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,n,o]=arguments;return r.apply(this,[e||null]).then(e=>{if(t.version<53&&!n)try{e.forEach(e=>{e.type=i[e.type]||e.type})}catch(Sk){if("TypeError"!==Sk.name)throw Sk;e.forEach((t,r)=>{e.set(r,Object.assign({},t,{type:i[t.type]||t.type}))})}return e}).then(n,o)}}function YC(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function XC(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),RC(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function QC(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){DC("removeStream","removeTrack"),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function ZC(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function $C(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const i=e.length>0;i&&e.forEach(e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const r=t.apply(this,arguments);if(i){const{sender:t}=r,i=t.getParameters();(!("encodings"in i)||1===i.encodings.length&&0===Object.keys(i.encodings[0]).length)&&(i.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(i).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return r})}function eb(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function tb(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function ib(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}var rb=Object.freeze({__proto__:null,shimOnTrack:qC,shimPeerConnection:zC,shimSenderGetStats:YC,shimReceiverGetStats:XC,shimRemoveStream:QC,shimRTCDataChannel:ZC,shimAddTransceiver:$C,shimGetParameters:eb,shimCreateOffer:tb,shimCreateAnswer:ib,shimGetUserMedia:KC,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!i||!i.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===i.video?i.video={mediaSource:t}:i.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(i)})}});function nb(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(i=>t.call(this,i,e)),e.getVideoTracks().forEach(i=>t.call(this,i,e))},e.RTCPeerConnection.prototype.addTrack=function(e,...i){return i&&i.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const i=e.getTracks();this.getSenders().forEach(e=>{i.includes(e.track)&&this.removeTrack(e)})})}}function ob(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const i=new Event("addstream");i.stream=t,e.dispatchEvent(i)})}),t.apply(e,arguments)}}}function sb(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,n=t.setLocalDescription,o=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],n=i.apply(this,[r]);return t?(n.then(e,t),Promise.resolve()):n},t.createAnswer=function(e,t){const i=arguments.length>=2?arguments[2]:arguments[0],n=r.apply(this,[i]);return t?(n.then(e,t),Promise.resolve()):n};let a=function(e,t,i){const r=n.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r};t.setLocalDescription=a,a=function(e,t,i){const r=o.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.setRemoteDescription=a,a=function(e,t,i){const r=s.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.addIceCandidate=a}function ab(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,i=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>i(cb(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,i,r){t.mediaDevices.getUserMedia(e).then(i,r)}.bind(t))}function cb(e){return e&&void 0!==e.video?Object.assign({},e,{video:NC(e.video)}):e}function lb(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){const t=[];for(let i=0;i<e.iceServers.length;i++){let r=e.iceServers[i];void 0===r.urls&&r.url?(DC("RTCIceServer.url","RTCIceServer.urls"),r=JSON.parse(JSON.stringify(r)),r.urls=r.url,delete r.url,t.push(r)):t.push(e.iceServers[i])}e.iceServers=t}return new t(e,i)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function db(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function ub(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const i=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&i?"sendrecv"===i.direction?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":"recvonly"===i.direction&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):!0!==e.offerToReceiveVideo||i||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function hb(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var pb=Object.freeze({__proto__:null,shimLocalStreamsAPI:nb,shimRemoteStreamsAPI:ob,shimCallbacksAPI:sb,shimGetUserMedia:ab,shimConstraints:cb,shimRTCIceServerUrls:lb,shimTrackEventTransceiver:db,shimCreateOfferLegacy:ub,shimAudioContext:hb}),mb={exports:{}};!function(e){const t={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map(e=>e.trim())},t.splitSections=function(e){return e.split("\nm=").map((e,t)=>(t>0?"m="+e:e).trim()+"\r\n")},t.getDescription=function(e){const i=t.splitSections(e);return i&&i[0]},t.getMediaSections=function(e){const i=t.splitSections(e);return i.shift(),i},t.matchPrefix=function(e,i){return t.splitLines(e).filter(e=>0===e.indexOf(i))},t.parseCandidate=function(e){let t;t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" ");const i={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let r=8;r<t.length;r+=2)switch(t[r]){case"raddr":i.relatedAddress=t[r+1];break;case"rport":i.relatedPort=parseInt(t[r+1],10);break;case"tcptype":i.tcpType=t[r+1];break;case"ufrag":i.ufrag=t[r+1],i.usernameFragment=t[r+1];break;default:void 0===i[t[r]]&&(i[t[r]]=t[r+1])}return i},t.writeCandidate=function(e){const t=[];t.push(e.foundation);const i=e.component;"rtp"===i?t.push(1):"rtcp"===i?t.push(2):t.push(i),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);const r=e.type;return t.push("typ"),t.push(r),"host"!==r&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substring(14).split(" ")},t.parseRtpMap=function(e){let t=e.substring(9).split(" ");const i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=3===t.length?parseInt(t[2],10):1,i.numChannels=i.channels,i},t.writeRtpMap=function(e){let t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);const i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==i?"/"+i:"")+"\r\n"},t.parseExtmap=function(e){const t=e.substring(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},t.parseFmtp=function(e){const t={};let i;const r=e.substring(e.indexOf(" ")+1).split(";");for(let n=0;n<r.length;n++)i=r[n].trim().split("="),t[i[0].trim()]=i[1];return t},t.writeFmtp=function(e){let t="",i=e.payloadType;if(void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){const r=[];Object.keys(e.parameters).forEach(t=>{void 0!==e.parameters[t]?r.push(t+"="+e.parameters[t]):r.push(t)}),t+="a=fmtp:"+i+" "+r.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){const t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){let t="",i=e.payloadType;return void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+="a=rtcp-fb:"+i+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"}),t},t.parseSsrcMedia=function(e){const t=e.indexOf(" "),i={ssrc:parseInt(e.substring(7,t),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substring(t+1,r),i.value=e.substring(r+1)):i.attribute=e.substring(t+1),i},t.parseSsrcGroup=function(e){const t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},t.getMid=function(e){const i=t.matchPrefix(e,"a=mid:")[0];if(i)return i.substring(6)},t.parseFingerprint=function(e){const t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},t.getDtlsParameters=function(e,i){return{role:"auto",fingerprints:t.matchPrefix(e+i,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){let i="a=setup:"+t+"\r\n";return e.fingerprints.forEach(e=>{i+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),i},t.parseCryptoLine=function(e){const t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;const t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,i){return t.matchPrefix(e+i,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,i){const r=t.matchPrefix(e+i,"a=ice-ufrag:")[0],n=t.matchPrefix(e+i,"a=ice-pwd:")[0];return r&&n?{usernameFragment:r.substring(12),password:n.substring(10)}:null},t.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},t.parseRtpParameters=function(e){const i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=t.splitLines(e)[0].split(" ");i.profile=r[2];for(let o=3;o<r.length;o++){const n=r[o],s=t.matchPrefix(e,"a=rtpmap:"+n+" ")[0];if(s){const r=t.parseRtpMap(s),o=t.matchPrefix(e,"a=fmtp:"+n+" ");switch(r.parameters=o.length?t.parseFmtp(o[0]):{},r.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+n+" ").map(t.parseRtcpFb),i.codecs.push(r),r.name.toUpperCase()){case"RED":case"ULPFEC":i.fecMechanisms.push(r.name.toUpperCase())}}}t.matchPrefix(e,"a=extmap:").forEach(e=>{i.headerExtensions.push(t.parseExtmap(e))});const n=t.matchPrefix(e,"a=rtcp-fb:* ").map(t.parseRtcpFb);return i.codecs.forEach(e=>{n.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),i},t.writeRtpDescription=function(e,i){let r="";r+="m="+e+" ",r+=i.codecs.length>0?"9":"0",r+=" "+(i.profile||"UDP/TLS/RTP/SAVPF")+" ",r+=i.codecs.map(e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",i.codecs.forEach(e=>{r+=t.writeRtpMap(e),r+=t.writeFmtp(e),r+=t.writeRtcpFb(e)});let n=0;return i.codecs.forEach(e=>{e.maxptime>n&&(n=e.maxptime)}),n>0&&(r+="a=maxptime:"+n+"\r\n"),i.headerExtensions&&i.headerExtensions.forEach(e=>{r+=t.writeExtmap(e)}),r},t.parseRtpEncodingParameters=function(e){const i=[],r=t.parseRtpParameters(e),n=-1!==r.fecMechanisms.indexOf("RED"),o=-1!==r.fecMechanisms.indexOf("ULPFEC"),s=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute),a=s.length>0&&s[0].ssrc;let c;const l=t.matchPrefix(e,"a=ssrc-group:FID").map(e=>e.substring(17).split(" ").map(e=>parseInt(e,10)));l.length>0&&l[0].length>1&&l[0][0]===a&&(c=l[0][1]),r.codecs.forEach(e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let t={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&c&&(t.rtx={ssrc:c}),i.push(t),n&&(t=JSON.parse(JSON.stringify(t)),t.fec={ssrc:a,mechanism:o?"red+ulpfec":"red"},i.push(t))}}),0===i.length&&a&&i.push({ssrc:a});let d=t.matchPrefix(e,"b=");return d.length&&(d=0===d[0].indexOf("b=TIAS:")?parseInt(d[0].substring(7),10):0===d[0].indexOf("b=AS:")?1e3*parseInt(d[0].substring(5),10)*.95-16e3:void 0,i.forEach(e=>{e.maxBitrate=d})),i},t.parseRtcpParameters=function(e){const i={},r=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute)[0];r&&(i.cname=r.value,i.ssrc=r.ssrc);const n=t.matchPrefix(e,"a=rtcp-rsize");i.reducedSize=n.length>0,i.compound=0===n.length;const o=t.matchPrefix(e,"a=rtcp-mux");return i.mux=o.length>0,i},t.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},t.parseMsid=function(e){let i;const r=t.matchPrefix(e,"a=msid:");if(1===r.length)return i=r[0].substring(7).split(" "),{stream:i[0],track:i[1]};const n=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"msid"===e.attribute);return n.length>0?(i=n[0].value.split(" "),{stream:i[0],track:i[1]}):void 0},t.parseSctpDescription=function(e){const i=t.parseMLine(e),r=t.matchPrefix(e,"a=max-message-size:");let n;r.length>0&&(n=parseInt(r[0].substring(19),10)),isNaN(n)&&(n=65536);const o=t.matchPrefix(e,"a=sctp-port:");if(o.length>0)return{port:parseInt(o[0].substring(12),10),protocol:i.fmt,maxMessageSize:n};const s=t.matchPrefix(e,"a=sctpmap:");if(s.length>0){const e=s[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:n}}},t.writeSctpDescription=function(e,t){let i=[];return i="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&i.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),i.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,22)},t.writeSessionBoilerplate=function(e,i,r){let n;const o=void 0!==i?i:2;n=e||t.generateSessionId();return"v=0\r\no="+(r||"thisisadapterortc")+" "+n+" "+o+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.getDirection=function(e,i){const r=t.splitLines(e);for(let t=0;t<r.length;t++)switch(r[t]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return r[t].substring(2)}return i?t.getDirection(i):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substring(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){const i=t.splitLines(e)[0].substring(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},t.parseOLine=function(e){const i=t.matchPrefix(e,"o=")[0].substring(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;const i=t.splitLines(e);for(let t=0;t<i.length;t++)if(i[t].length<2||"="!==i[t].charAt(1))return!1;return!0},e.exports=t}(mb);var _b=mb.exports,fb=i(_b),gb=e({__proto__:null,default:fb},[_b]);function Eb(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){const i=new t(e),r=fb.parseCandidate(e.candidate);for(const e in r)e in i||Object.defineProperty(i,e,{value:r[e]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,RC(e,"icecandidate",t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t))}function Tb(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||RC(e,"icecandidate",e=>{if(e.candidate){const t=fb.parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function vb(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(e){if(!e||!e.sdp)return!1;const t=fb.splitSections(e.sdp);return t.shift(),t.some(e=>{const t=fb.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")})}(arguments[0])){const e=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const i=parseInt(t[1],10);return i!=i?-1:i}(arguments[0]),i=function(e){let i=65536;return"firefox"===t.browser&&(i=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),i}(e),r=function(e,i){let r=65536;"firefox"===t.browser&&57===t.version&&(r=65535);const n=fb.matchPrefix(e.sdp,"a=max-message-size:");return n.length>0?r=parseInt(n[0].substring(19),10):"firefox"===t.browser&&-1!==i&&(r=2147483637),r}(arguments[0],e);let n;n=0===i&&0===r?Number.POSITIVE_INFINITY:0===i||0===r?Math.max(i,r):Math.min(i,r);const o={};Object.defineProperty(o,"maxMessageSize",{get:()=>n}),this._sctp=o}return i.apply(this,arguments)}}function yb(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const i=e.send;e.send=function(){const r=arguments[0],n=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&n>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return t(e,this),e},RC(e,"datachannel",e=>(t(e.channel,e.target),e))}function Sb(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(e=>{const i=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const i=new Event("connectionstatechange",e);t.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}})}function Ib(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const i=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:i}):t.sdp=i}return i.apply(this,arguments)}}function Ab(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function Rb(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.setLocalDescription;i&&0!==i.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return i.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return i.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>i.apply(this,[e]))})}var Cb=Object.freeze({__proto__:null,shimRTCIceCandidate:Eb,shimRTCIceCandidateRelayProtocol:Tb,shimMaxMessageSize:vb,shimSendThrowTypeError:yb,shimConnectionState:Sb,removeExtmapAllowMixed:Ib,shimAddIceCandidateNullOrEmpty:Ab,shimParameterlessSetLocalDescription:Rb});!function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=kC,r=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=parseInt(AC(i.userAgent,/Firefox\/(\d+)\./,1));else if(i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=parseInt(AC(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else{if(!e.RTCPeerConnection||!i.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=parseInt(AC(i.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,t._safariVersion=AC(i.userAgent,/Version\/(\d+(\.?\d+))/,1)}return t}(e),n={browserDetails:r,commonShim:Cb,extractVersion:AC,disableLog:CC,disableWarnings:bC,sdp:gb};switch(r.browser){case"chrome":if(!JC||!GC||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),n;if(null===r.version)return i("Chrome shim can not determine version, not shimming."),n;i("adapter.js shimming chrome."),n.browserShim=JC,Ab(e,r),Rb(e),LC(e,r),xC(e),GC(e,r),VC(e),WC(e,r),UC(e),FC(e),BC(e),jC(e,r),Eb(e),Tb(e),Sb(e),vb(e,r),yb(e),Ib(e,r);break;case"firefox":if(!rb||!zC||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),n;i("adapter.js shimming firefox."),n.browserShim=rb,Ab(e,r),Rb(e),KC(e,r),zC(e,r),qC(e),QC(e),YC(e),XC(e),ZC(e),$C(e),eb(e),tb(e),ib(e),Eb(e),Sb(e),vb(e,r),yb(e);break;case"safari":if(!pb||!t.shimSafari)return i("Safari shim is not included in this adapter release."),n;i("adapter.js shimming safari."),n.browserShim=pb,Ab(e,r),Rb(e),lb(e),ub(e),sb(e),nb(e),ob(e),db(e),ab(e),hb(e),Eb(e),Tb(e),vb(e,r),yb(e),Ib(e,r);break;default:i("Unsupported browser!")}}({window:"undefined"==typeof window?void 0:window});var bb,kb=Object.create,Db=Object.defineProperty,wb=Object.defineProperties,Nb=Object.getOwnPropertyDescriptor,Ob=Object.getOwnPropertyDescriptors,Mb=Object.getOwnPropertyNames,Pb=Object.getOwnPropertySymbols,Lb=Object.getPrototypeOf,xb=Object.prototype.hasOwnProperty,Vb=Object.prototype.propertyIsEnumerable,Ub=Reflect.get,Fb=Math.pow,Bb=(e,t,i)=>t in e?Db(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Hb=(e,t)=>{for(var i in t||(t={}))xb.call(t,i)&&Bb(e,i,t[i]);if(Pb)for(var i of Pb(t))Vb.call(t,i)&&Bb(e,i,t[i]);return e},Wb=(e,t)=>wb(e,Ob(t)),Gb=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),jb=(e,t)=>{for(var i in t)Db(e,i,{get:t[i],enumerable:!0})},Jb=(e,t,i)=>(i=null!=e?kb(Lb(e)):{},((e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of Mb(t))!xb.call(e,n)&&n!==i&&Db(e,n,{get:()=>t[n],enumerable:!(r=Nb(t,n))||r.enumerable});return e})(!t&&e&&e.__esModule?i:Db(i,"default",{value:e,enumerable:!0}),e)),Kb=(e,t,i,r)=>{for(var n,o=r>1?void 0:r?Nb(t,i):t,s=e.length-1;s>=0;s--)(n=e[s])&&(o=(r?n(t,i,o):n(o))||o);return r&&o&&Db(t,i,o),o},qb=(e,t,i)=>Bb(e,"symbol"!=typeof t?t+"":t,i),zb=(e,t,i)=>Ub(Lb(e),i,t),Yb=(e,t,i)=>new Promise((r,n)=>{var o=e=>{try{a(i.next(e))}catch(QM){n(QM)}},s=e=>{try{a(i.throw(e))}catch(QM){n(QM)}},a=e=>e.done?r(e.value):Promise.resolve(e.value).then(o,s);a((i=i.apply(e,t)).next())}),Xb=Gb((e,t)=>{var i=Object.prototype.hasOwnProperty,r="~";function n(){}function o(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function s(e,t,i,n,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new o(i,n||e,s),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function a(e,t){0===--e._eventsCount?e._events=new n:delete e._events[t]}function c(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),c.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)i.call(e,t)&&n.push(r?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},c.prototype.listeners=function(e){var t=r?r+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,o=i.length,s=new Array(o);n<o;n++)s[n]=i[n].fn;return s},c.prototype.listenerCount=function(e){var t=r?r+e:e,i=this._events[t];return i?i.fn?1:i.length:0},c.prototype.emit=function(e,t,i,n,o,s){var a=r?r+e:e;if(!this._events[a])return!1;var c,l,d=this._events[a],u=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),u){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,i),!0;case 4:return d.fn.call(d.context,t,i,n),!0;case 5:return d.fn.call(d.context,t,i,n,o),!0;case 6:return d.fn.call(d.context,t,i,n,o,s),!0}for(l=1,c=new Array(u-1);l<u;l++)c[l-1]=arguments[l];d.fn.apply(d.context,c)}else{var h,p=d.length;for(l=0;l<p;l++)switch(d[l].once&&this.removeListener(e,d[l].fn,void 0,!0),u){case 1:d[l].fn.call(d[l].context);break;case 2:d[l].fn.call(d[l].context,t);break;case 3:d[l].fn.call(d[l].context,t,i);break;case 4:d[l].fn.call(d[l].context,t,i,n);break;default:if(!c)for(h=1,c=new Array(u-1);h<u;h++)c[h-1]=arguments[h];d[l].fn.apply(d[l].context,c)}}return!0},c.prototype.on=function(e,t,i){return s(this,e,t,i,!1)},c.prototype.once=function(e,t,i){return s(this,e,t,i,!0)},c.prototype.removeListener=function(e,t,i,n){var o=r?r+e:e;if(!this._events[o])return this;if(!t)return a(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!n||s.once)&&(!i||s.context===i)&&a(this,o);else{for(var c=0,l=[],d=s.length;c<d;c++)(s[c].fn!==t||n&&!s[c].once||i&&s[c].context!==i)&&l.push(s[c]);l.length?this._events[o]=1===l.length?l[0]:l:a(this,o)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&a(this,t)):(this._events=new n,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,void 0!==t&&(t.exports=c)}),Qb=Gb((e,t)=>{var i=t.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(i).forEach(function(e){i[e].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})}),Zb=Gb(e=>{var t=function(e){return String(Number(e))===e?Number(e):e},i=function(e,i,r){var n=e.name&&e.names;e.push&&!i[e.push]?i[e.push]=[]:n&&!i[e.name]&&(i[e.name]={});var o=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var o=0;o<r.length;o+=1)null!=e[o+1]&&(i[r[o]]=t(e[o+1]))})(r.match(e.reg),o,e.names,e.name),e.push&&i[e.push].push(o)},r=Qb(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},o=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach(function(e){var t=e[0],n=e.slice(2);"m"===t&&(o.push({rtp:[],fmtp:[]}),s=o[o.length-1]);for(var a=0;a<(r[t]||[]).length;a+=1){var c=r[t][a];if(c.reg.test(n))return i(c,s,n)}}),t.media=o,t};var o=function(e,i){var r=i.split(/=(.+)/,2);return 2===r.length?e[r[0]]=t(r[1]):1===r.length&&i.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var i=[],r=e.split(" ").map(t),n=0;n<r.length;n+=3)i.push({component:r[n],ip:r[n+1],port:r[n+2]});return i},e.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(o,{})})},e.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var i,r=!1;return"~"!==e[0]?i=t(e):(i=t(e.substring(1,e.length)),r=!0),{scid:i,paused:r}})})}}),$b=Gb((e,t)=>{var i=Qb(),r=/%[sdv%]/g,n=function(e){var t=1,i=arguments,n=i.length;return e.replace(r,function(e){if(t>=n)return e;var r=i[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}})},o=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?r.push(i[t.name][s]):r.push(i[t.names[o]])}else r.push(i[t.name]);return n.apply(null,r)},s=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var r=t.outerOrder||s,n=t.innerOrder||a,c=[];return r.forEach(function(t){i[t].forEach(function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach(function(e){c.push(o(t,i,e))})})}),e.media.forEach(function(e){c.push(o("m",i.m[0],e)),n.forEach(function(t){i[t].forEach(function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach(function(e){c.push(o(t,i,e))})})})}),c.join("\r\n")+"\r\n"}}),ek=Gb(e=>{var t=Zb(),i=$b(),r=Qb();e.grammar=r,e.write=i,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList}),tk=Gb((e,t)=>{var i=t.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(i).forEach(function(e){i[e].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})}),ik=Gb(e=>{var t=function(e){return String(Number(e))===e?Number(e):e},i=function(e,i,r){var n=e.name&&e.names;e.push&&!i[e.push]?i[e.push]=[]:n&&!i[e.name]&&(i[e.name]={});var o=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var o=0;o<r.length;o+=1)null!=e[o+1]&&(i[r[o]]=t(e[o+1]))})(r.match(e.reg),o,e.names,e.name),e.push&&i[e.push].push(o)},r=tk(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},o=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach(function(e){var t=e[0],n=e.slice(2);"m"===t&&(o.push({rtp:[],fmtp:[]}),s=o[o.length-1]);for(var a=0;a<(r[t]||[]).length;a+=1){var c=r[t][a];if(c.reg.test(n))return i(c,s,n)}}),t.media=o,t};var o=function(e,i){var r=i.split(/=(.+)/,2);return 2===r.length?e[r[0]]=t(r[1]):1===r.length&&i.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var i=[],r=e.split(" ").map(t),n=0;n<r.length;n+=3)i.push({component:r[n],ip:r[n+1],port:r[n+2]});return i},e.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(o,{})})},e.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var i,r=!1;return"~"!==e[0]?i=t(e):(i=t(e.substring(1,e.length)),r=!0),{scid:i,paused:r}})})}}),rk=Gb((e,t)=>{var i=tk(),r=/%[sdv%]/g,n=function(e){var t=1,i=arguments,n=i.length;return e.replace(r,function(e){if(t>=n)return e;var r=i[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}})},o=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?r.push(i[t.name][s]):r.push(i[t.names[o]])}else r.push(i[t.name]);return n.apply(null,r)},s=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var r=t.outerOrder||s,n=t.innerOrder||a,c=[];return r.forEach(function(t){i[t].forEach(function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach(function(e){c.push(o(t,i,e))})})}),e.media.forEach(function(e){c.push(o("m",i.m[0],e)),n.forEach(function(t){i[t].forEach(function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach(function(e){c.push(o(t,i,e))})})})}),c.join("\r\n")+"\r\n"}}),nk=Gb(e=>{var t=ik(),i=rk();e.write=i,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList}),ok=Jb(Xb()),sk=((bb=sk||{})[bb.INVALID_PARAMETER=4096]="INVALID_PARAMETER",bb[bb.INVALID_OPERATION=4097]="INVALID_OPERATION",bb[bb.NOT_SUPPORTED=4098]="NOT_SUPPORTED",bb[bb.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",bb[bb.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",bb[bb.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",bb[bb.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",bb[bb.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",bb[bb.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",bb[bb.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",bb[bb.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",bb[bb.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",bb[bb.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",bb[bb.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",bb[bb.CLIENT_BANNED=16448]="CLIENT_BANNED",bb[bb.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",bb[bb.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",bb[bb.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",bb[bb.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",bb[bb.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",bb[bb.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",bb[bb.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",bb[bb.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",bb[bb.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",bb[bb.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",bb[bb.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",bb[bb.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",bb[bb.API_CALL_ABORTED=16461]="API_CALL_ABORTED",bb[bb.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",bb[bb.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",bb[bb.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",bb[bb.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",bb[bb.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",bb[bb.UNKNOWN=65535]="UNKNOWN",bb),ak=sk,ck=class extends Error{constructor(e){let{name:t="RtcError",message:i,code:r=ak.UNKNOWN,extraCode:n=0,constraint:o}=e,s="<".concat(function(e){for(let t in ak)if(ak[t]===e)return t;return"UNKNOWN"}(r)," 0x").concat(r.toString(16),">"),a="".concat(i).concat(o?" constraint: ".concat(o):"").concat(null!=i&&i.includes(s)?"":" ".concat(s));super(a),qb(this,"code"),qb(this,"extraCode"),qb(this,"message"),qb(this,"originMessage"),qb(this,"name"),qb(this,"constraint"),this.code=r,this.extraCode=n,this.name=t,this.message=a,this.constraint=o,this.originMessage=i}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},lk=ck,dk=0,uk=!0,hk=function(e){dk=e;let t=new Date;t.setTime(t.getTime()+e),JM[uk?"info":"debug"]("baseTime from server: ".concat(t," offset: ").concat(e)),uk=!1},pk=function(){return dk},mk=function(){return Date.now()+dk},_k=function(){let e=new Date;return e.setTime(mk()),e.toLocaleString()},fk=function(e){let t=String(e.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),"".concat(e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1"),":").concat(t)},gk={};jb(gk,{REPORT_TYPE:()=>CN,buildSSOPackage:()=>bN,bytes2ms:()=>bw,calculateScaleResolutionDownNumber:()=>SN,concatArrayBuffers:()=>kN,convertObjectNumberToInt:()=>gN,copyProperties:()=>Cw,deepClone:()=>aN,deepCloneBasic:()=>RN,deepMerge:()=>sN,delay:()=>EN,fibonacci:()=>Pw,formatedTime:()=>dN,getConstructorName:()=>zw,getContainerFromElement:()=>lN,getEnv:()=>Ew,getFirst16Bits:()=>wN,getInternalVersion:()=>eN,getLast16Bits:()=>DN,getLoggerUrl:()=>vw,getMediaStreamTrackInfo:()=>yN,getMuteStateFromFlag:()=>rN,getNetworkType:()=>Sw,getNumNetworkType:()=>Rw,getReconnectionTimeout:()=>Lw,getStringByteLength:()=>pN,getTurnServer:()=>nN,getUint32Version:()=>fN,getValueType:()=>xw,getViewListFromView:()=>cN,glog:()=>Nw,ipv4ToUint32:()=>oN,isArray:()=>Gw,isAudioWorkletSupported:()=>Yw,isBoolean:()=>Hw,isConstructor:()=>qw,isEmpty:()=>iN,isFunction:()=>Vw,isLangChinese:()=>Ow,isMediaStreamTrack:()=>jw,isNumber:()=>Bw,isObject:()=>Ww,isOverseaSdkAppId:()=>Tw,isPlainObject:()=>Mw,isPortrait:()=>mN,isPromise:()=>Kw,isRemoteTrack:()=>Jw,isRotate90Or270:()=>IN,isSetSinkIdSupported:()=>Xw,isString:()=>Fw,isUndefined:()=>Uw,loadImage:()=>_N,loadVideo:()=>AN,ms2bytes:()=>Dw,ms2samples:()=>ww,normalizeUrl:()=>vN,performanceNow:()=>Zw,promiseAny:()=>Qw,samples2ms:()=>kw,setNetworkType:()=>Aw,stringify:()=>uN,stringifyIncludeValue:()=>hN,throttlePromise:()=>TN});var Ek={};jb(Ek,{AUDIO_MUTE_BIT:()=>nD,AUDIO_STAT_BIT:()=>rD,AUX_STAT_BIT:()=>iD,AUX_STREAM_MSID:()=>lD,BACKEND_ENV:()=>Zk,BASE_DOC_URL:()=>Mk,BASE_HOST:()=>Dk,CAPABILITIES_KEYS:()=>XD,CLASS_NAME:()=>HD,CLOUD_CONSOLE_URL:()=>Ok,CROSS_ROOM_BIT:()=>aD,DATA_FREEZE_TIMING:()=>PD,DOC_URL:()=>Pk,DTLS_STATE_UNKNOWN:()=>TD,ENV_NAME:()=>Fk,EXCHANGE_SDP_TIMEOUT:()=>DD,IS_WORKER:()=>Ak,IS_WORKLET:()=>Rk,KIBANA_EVENT:()=>CD,LOCAL_STREAM_PUBLISH_STATE:()=>MD,LOGGER_CMD_TYPE:()=>Uk,LOGGER_DOMAIN:()=>Lk,LOGGER_DOMAIN_OVERSEA:()=>xk,LOG_LEVEL:()=>Bk,LOG_LEVEL_NAME:()=>KD,MAIN_STREAM_MSID:()=>cD,MAX_RTT:()=>QD,MICROPHONE_COMMUNICATIONS:()=>JD,MICROPHONE_DEFAULT:()=>GD,MUTE_ALL_BIT:()=>sD,NAME:()=>Xk,NETWORK_TYPE:()=>Gk,NOT_SUPPORTED_H264:()=>OD,PAUSED_RETRY_COUNT:()=>WD,PEERCONNECTION_CONNECTING_TIMEOUT:()=>UD,PEER_CONNECTION_STATE:()=>vD,PEER_LEAVE_REASON:()=>qD,RECOVER_CAPTURE_INTERVAL:()=>YD,REMOTE_STREAM_TYPE_AUX:()=>uD,REMOTE_STREAM_TYPE_MAIN:()=>dD,RENDER_FREEZE_TIMING:()=>LD,SCHEDULE_DOMAIN:()=>FD,SCHEDULE_TIMEOUT:()=>BD,SDP_SEMANTICS_PLAN_B:()=>ND,SDP_SEMANTICS_UNIFIED_PLAN:()=>wD,SECOND_HOST:()=>wk,SIGNAL_PING_PONG_INTERVAL:()=>Wk,SIGNAL_PING_TIMEOUT:()=>Hk,SIGNAL_RECONNECTION_COUNT:()=>RD,SMALL_STAT_BIT:()=>tD,SPEAKER_DEFAULT:()=>jD,STORAGE_EXPIRES_TIME:()=>jk,STREAM_TYPE_BIG:()=>xD,STREAM_TYPE_SMALL:()=>VD,SUBSCRIBE_SMALL_RETRY_COUNT:()=>zD,SYNC_USER_LIST_INTERVAL:()=>bD,Scene:()=>$k,THIRD_HOST:()=>Nk,TRANSPORT_DIRECTION:()=>Qk,TRTC_ERROR_ASSISTANCE:()=>Vk,TRTC_QUALITY_BAD:()=>fD,TRTC_QUALITY_DISCONNECTED:()=>ED,TRTC_QUALITY_EXCELLENT:()=>pD,TRTC_QUALITY_GOOD:()=>mD,TRTC_QUALITY_POOR:()=>_D,TRTC_QUALITY_UNKNOWN:()=>hD,TRTC_QUALITY_VERY_BAD:()=>gD,UPDATE_OFFER_TIMEOUT:()=>kD,VIDEO_MUTE_BIT:()=>oD,VIDEO_STAT_BIT:()=>eD,audioProfileMap:()=>Jk,defaultBigVideoProfile:()=>qk,defaultSmallVideoProfile:()=>zk,getRetryCount:()=>ID,getScriptDir:()=>Ck,innerVersion:()=>Tk,loggerProxy:()=>bk,screenProfileMap:()=>Yk,setLoggerProxy:()=>kk,setRetryCount:()=>SD,setVersion:()=>yk,version:()=>vk,videoProfileMap:()=>Kk});var Tk="4.15.00.1600",vk="5.0.0";function yk(e){vk=e;let[t,i,r]=e.split(".").map(e=>parseInt(e,10));Tk="".concat(t,".").concat(Math.min(15,i),".").concat(Math.min(15,r),".").concat(i.toString().padStart(2,"0")).concat(r.toString().padStart(2,"0"))}var Sk,Ik,Ak="undefined"!=typeof importScripts,Rk="undefined"!=typeof registerProcessor,Ck=()=>{let e=Ak?self.location.href:document.currentScript.src;return e.substring(0,e.lastIndexOf("/")+1)},bk="",kk=e=>bk=e,Dk="web.sdk.qcloud.com",wk="web.sdk.tencent.cn",Nk="web.sdk.cloud.tencent.cn",Ok="https://console.cloud.tencent.com/trtc",Mk="https://".concat(Dk,"/trtc/webrtc/v5/doc"),Pk="".concat(Mk,"/zh-cn/"),Lk="https://yun.tim.qq.com",xk="https://apisgp.my-imcloud.com",Vk="trtc_error_assistance",Uk={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},Fk={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Bk=((Ik=Bk||{})[Ik.TRACE=0]="TRACE",Ik[Ik.DEBUG=1]="DEBUG",Ik[Ik.INFO=2]="INFO",Ik[Ik.WARN=3]="WARN",Ik[Ik.ERROR=4]="ERROR",Ik[Ik.NONE=5]="NONE",Ik),Hk=18e3,Wk=2e3,Gk={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},jk=6048e5,Jk={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}},Kk={"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}},qk=Kk["480p_2"],zk=Kk["120p_2"],Yk={"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}},Xk={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"},Qk={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Zk={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},$k=((Sk=$k||{}).LIVE="live",Sk.RTC="rtc",Sk),eD=1,tD=2,iD=4,rD=8,nD=64,oD=16,sD=112,aD=128,cD="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",lD="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",dD=Xk.MAIN,uD=Xk.AUXILIARY,hD=0,pD=1,mD=2,_D=3,fD=4,gD=5,ED=6,TD="unknown",vD={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},yD=1/0;function SD(e){yD=e}function ID(){return yD}var AD,RD=30,CD={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"},bD=1e4,kD=1e4,DD=1e4,wD="unified-plan",ND="plan-b",OD=1028,MD=((AD=MD||{})[AD.UNPUBLISH=-1]="UNPUBLISH",AD[AD.PUBLISHING=0]="PUBLISHING",AD[AD.PUBLISHED=1]="PUBLISHED",AD),PD=500,LD=1e3,xD=Xk.BIG,VD=Xk.SMALL,UD=1e4,FD={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"},BD=2e3,HD={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},WD=5,GD="default",jD=GD,JD="communications",KD=Object.keys(Bk),qD=["normal leave","timeout leave","kick","role change"],zD=10,YD=2e3,XD=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],QD=1e4,ZD=function(e,t,i,r){return new(i||(i=Promise))(function(n,o){function s(e){try{c(r.next(e))}catch(t){o(t)}}function a(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){e.done?n(e.value):function(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(s,a)}c((r=r.apply(e,t||[])).next())})},$D=Symbol(32),ew=Symbol(16),tw=Symbol(8),iw=class{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(e){return ZD(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,i)=>{var r;this.reject=i,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(e,!0)||null===(r=this.pull)||void 0===r||r.call(this,e)})})}readU32(){return this.read($D)}readU16(){return this.read(ew)}readU8(){return this.read(tw)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null===(e=this.reject)||void 0===e||e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let e=null,t=this.buffer.subarray(this.consumed),i=0,r=e=>t.length<(i=e);if("number"==typeof this.need){if(r(this.need))return;e=t.subarray(0,i)}else if(this.need===$D){if(r(4))return;e=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===ew){if(r(2))return;e=t[0]<<8|t[1]}else if(this.need===tw){if(r(1))return;e=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,i)),e=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,i)),e=this.need}return this.consumed+=i,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){let t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{let e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}};iw.U32=$D,iw.U16=ew,iw.U8=tw;var rw=128;function nw(e){let t=new iw;for(;e>=128;)t.malloc(1)[0]=255&e|rw,e>>>=7;return t.malloc(1)[0]=255&e,t.buffer||new Uint8Array(0)}function ow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new iw,r=t<<3;switch(typeof e){case"boolean":let n=i.malloc(2);n[0]=r,n[1]=e?1:0;break;case"number":i.malloc(1)[0]=r,i.write(nw(e));break;case"string":i.malloc(1)[0]=2|r;let o=(new TextEncoder).encode(e);i.write(nw(o.length));let s=i.malloc(o.length);for(let e=0;e<o.length;e++)s[e]=o[e];break;case"object":let a=new iw;if(Array.isArray(e))for(let t=0;t<e.length;t++){let i=ow(e[t],t+1);i&&a.write(i)}else{let t=1;for(let i in e){let r=ow(e[i],t++);r&&a.write(r)}}0===t?a.buffer&&i.write(a.buffer):(i.malloc(1)[0]=2|r,a.buffer&&(i.write(nw(a.buffer.length)),i.write(a.buffer)))}return i.buffer||new Uint8Array(0)}var sw=class{constructor(){qb(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(e){this.buffer.push(e>>>24&255),this.buffer.push(e>>>16&255),this.buffer.push(e>>>8&255),this.buffer.push(255&e)}writeInt16(e){this.buffer.push(e>>>8&255),this.buffer.push(255&e)}writeByte(e){this.buffer.push(255&e)}writeBytes(e){for(let t=0;t<e.length;t++)this.buffer.push(e[t])}};function aw(e,t,i){e[i]=t>>>24&255,e[i+1]=t>>>16&255,e[i+2]=t>>>8&255,e[i+3]=255&t}function cw(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function lw(e,t){return e[t]}function dw(e,t,i){return(new TextDecoder).decode(function(e,t,i){return e.slice(t,t+i)}(e,t,i))}var uw=0,hw=2654435769,pw=16,mw=2,_w=7;function fw(e,t){let i=new sw,r=function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"AVQualityReportSvc.C2S";return{version:arguments.length>4&&void 0!==arguments[4]?arguments[4]:2e3,encryption:arguments.length>5&&void 0!==arguments[5]?arguments[5]:2,d2:"",d2Len:0,uinType:arguments.length>6&&void 0!==arguments[6]?arguments[6]:30,uin:"",uinLen:0,reqHead:{seqNumber:i,appId:e,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}}(t,e,uw);uw=uw+1&2147483647,i.writeInt32(0),i.writeInt32(r.version),i.writeByte(r.encryption);let n=(new TextEncoder).encode(r.d2);i.writeInt32(n.length+4),n&&i.writeBytes(n),i.writeByte(r.uinType);let o=(new TextEncoder).encode(r.uin);i.writeInt32(o.length+4),o.length&&i.writeBytes(o);let s=new sw;s.writeInt32(0),s.writeInt32(r.reqHead.seqNumber),s.writeInt32(r.reqHead.appId),s.writeByte(r.reqHead.appId>>>24&255),s.writeByte(r.reqHead.appId>>>16&255),s.writeByte(r.reqHead.appId>>>8&255),s.writeByte(255&r.reqHead.appId);for(let E=4;E<16;E++)s.writeByte(0);let a=(new TextEncoder).encode(r.reqHead.a2);s.writeInt32(a.length+4),a.length&&s.writeBytes(a);let c=(new TextEncoder).encode(r.reqHead.serviceCmd);s.writeInt32(c.length+4),c.length&&s.writeBytes(c);let l=(new TextEncoder).encode(r.reqHead.cookie);s.writeInt32(l.length+4),l.length&&s.writeBytes(l);let d=(new TextEncoder).encode(r.reqHead.imei);s.writeInt32(d.length+4),d.length&&s.writeBytes(d);let u=(new TextEncoder).encode(r.reqHead.ksid);s.writeInt32(u.length+4),u.length&&s.writeBytes(u);let h=(new TextEncoder).encode(r.reqHead.clientVersionInfo);s.writeInt16(h.length+2),h.length&&s.writeBytes(h);let p=s.length;s.data[0]=p>>>24&255,s.data[1]=p>>>16&255,s.data[2]=p>>>8&255,s.data[3]=255&p,Fw(e)&&(e=(new TextEncoder).encode(e)),s.writeInt32(e.length+4),e.length&&s.writeBytes(e);let m=new Uint8Array(s.data),_=null;1===r.encryption?_=(new TextEncoder).encode(r.uin):2===r.encryption&&(_=new Uint8Array(16)),_&&(m=function(e,t){let i=e.length,r=(i+1+mw+_w)%8;r&&(r=8-r);let n=i+1+mw+_w+r,o=new Uint8Array(n),s=0,a=new Uint8Array(8),c=new Uint8Array(8),l=new Uint8Array(8),d=0;a[0]=248&Math.floor(256*Math.random())|r,d=1;for(let h=0;h<r;h++)a[d]=255&Math.floor(256*Math.random()),d+=1;for(let h=0;h<mw;)if(d<8&&(a[d]=255&Math.floor(256*Math.random()),d+=1,h+=1),8===d){gw(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}let u=0;for(;u<i;)if(d<8&&(a[d]=e[u],d+=1,u+=1),8===d){gw(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}for(let h=0;h<_w;)if(d<8&&(a[d]=0,d+=1,h+=1),8===d){gw(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}return o}(m,_)),i.writeBytes(m);let f=new Uint8Array(i.data),g=f.length;return f[0]=g>>>24&255,f[1]=g>>>16&255,f[2]=g>>>8&255,f[3]=255&g,f}function gw(e,t,i,r,n,o){for(let s=0;s<8;s++)e[s]^=r[s];!function(e,t,i,r){let n=cw(e,0),o=cw(e,4),s=[];for(let c=0;c<4;c++)s[c]=cw(t,4*c);let a=0;for(let c=0;c<pw;c++)a+=hw,a>>>=0,n+=(o<<4)+s[0]^o+a^(o>>>5)+s[1],n>>>=0,o+=(n<<4)+s[2]^n+a^(n>>>5)+s[3],o>>>=0;aw(i,n,r),aw(i,o,r+4)}(e,t,n,o);for(let s=0;s<8;s++)n[o+s]^=i[s];for(let s=0;s<8;s++)i[s]=e[s]}var Ew=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Tw=e=>Number(e)<14e8,vw=function(e,t){let i;i=bk||(Tw(e)?xk:Lk);let r=Math.floor(Math.random()*Fb(2,31));return"".concat(i,"/v5/AVQualityReportSvc/C2S?random=").concat(r,"&sdkappid=").concat(e,"&cmdtype=").concat(t)},yw="unknown";function Sw(){if("unknown"!==yw)return yw;let{userAgent:e,connection:t}=navigator,i=(e.match(/NetType\/\S+/)||[])[0]||"";i=i.toLowerCase().replace("nettype/",""),"3gnet"===i&&(i="3g");let r=t&&t.type&&t.type.toLowerCase(),n=t&&t.effectiveType&&t.effectiveType.toLowerCase();return"slow-2"===n&&(n="2g"),r&&(yw=Iw(r,n)),yw}function Iw(e,t){if(Gk[e])return e;switch(e){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";default:return"unknown"}}function Aw(e){yw=Iw(e)}function Rw(){return Gk[Sw()]}function Cw(e,t){for(let i of Reflect.ownKeys(t))if("constructor"!==i&&"prototype"!==i&&"name"!==i){let r=Object.getOwnPropertyDescriptor(t,i)||"";Object.defineProperty(e,i,r)}return e}function bw(e){return kw(e/4,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function kw(e){return 1e3*e/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function Dw(e){return 4*ww(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function ww(e){return e*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)/1e3}var Nw="undefined"!=typeof window&&"function"==typeof window.glog?window.glog:()=>{},Ow=()=>{let e=navigator.language;return e=e.substring(0,2),"zh"===e},Mw=function(e){if(!e||"object"!=typeof e||"[object Object]"!=Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);if(null===t)return!0;let i=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Function.prototype.toString.call(i)===Function.prototype.toString.call(Object)};function Pw(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<=1?t:Pw(e-1,t,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)+t)}function Lw(e){return e>8?3e4:1e3*Pw(e)}function xw(e){return Reflect.apply(Object.prototype.toString,e,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Vw=e=>"function"==typeof e,Uw=e=>void 0===e,Fw=e=>"string"==typeof e,Bw=e=>"number"==typeof e,Hw=e=>"boolean"==typeof e,Ww=e=>"object"===xw(e),Gw=e=>"array"===xw(e),jw=e=>xw(e)==="MediaStreamTrack".toLowerCase(),Jw=e=>e.isRemote,Kw=e=>"promise"===xw(e),qw=e=>Vw(e)&&e.prototype.constructor===e,zw=e=>qw(e)?e.prototype.constructor.name:"",Yw="undefined"!=typeof AudioWorkletNode,Xw="undefined"!=typeof HTMLMediaElement&&"setSinkId"in HTMLMediaElement.prototype;function Qw(e){return new Promise((t,i)=>{let r=[];e.forEach(n=>{n.then(t).catch(t=>{r.push(t),r.length===e.length&&i(r)})})})}function Zw(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var $w=e=>+e<10?"0".concat(e):e,eN=e=>{let t=e.match(/^\d+\.\d+\.\d+/)[0];if(!t)return e;let i=t.split("."),r=$w(i[1])+$w(i[2]);return i[1]-15>0&&(i[1]="15"),i[2]-15>0&&(i[2]="15"),"".concat(i.join("."),".").concat(r)},tN=Object.prototype.hasOwnProperty;function iN(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(Mw(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(tN.call(e,t))return!1;return!0}return!1}function rN(e,t){return{userId:t,hasAudio:!!(e&rD),hasVideo:!!(e&eD),hasAuxiliary:!!(e&iD),hasSmall:!!(e&tD),audioMuted:!!(e&nD),videoMuted:!!(e&oD),audioAvailable:!(!(e&rD)||e&nD),videoAvailable:!(!(e&eD)||e&oD)}}function nN(e){let t={urls:e.url.startsWith("turn:")||e.url.startsWith("turns:")?e.url:"turn:".concat(e.url)};return!Uw(e.username)&&!Uw(e.credential)&&(t.username=e.username,t.credential=e.credential,t.credentialType="password",Uw(e.credentialType)||(t.credentialType=e.credentialType)),t}function oN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!Fw(e))return 0;let i=e.split(".");return t?(Number(i[0])<<24|Number(i[1])<<16|Number(i[2])<<8|Number(i[3]))>>>0:(Number(i[3])<<24|Number(i[2])<<16|Number(i[1])<<8|Number(i[0]))>>>0}var sN=function(e,t,i,r){if(!Ww(e)||!Ww(t))return 0;let n,o=0,s=Object.keys(t);for(let a=0,c=s.length;a<c;a++)if(n=s[a],!(Uw(t[n])||i&&i.includes(n)))if(Ww(e[n])&&Ww(t[n]))o+=sN(e[n],t[n],i,r);else{if(r&&r.includes(t[n]))continue;e[n]!==t[n]&&(e[n]=aN(t[n]),o+=1)}return o};function aN(e){if(Gw(e)){let t=[];return e.forEach((e,i)=>{t[i]=aN(e)}),t}if(Ww(e)){let t={};return Object.keys(e).forEach(i=>{t[i]=aN(e[i])}),t}return e}var cN=e=>{let t=[];if(Gw(e))t=[...e];else if(Fw(e)){let i=document.getElementById(e);i&&t.push(i)}else e&&t.push(e);return t},lN=e=>Fw(e)?document.getElementById(e):e,dN=()=>(e=>{let t=e=>e<10?"0".concat(e):"".concat(e),i=e.getFullYear(),r=e.getMonth()+1,n=e.getDate(),o=t(e.getHours()),s=t(e.getMinutes()),a=t(e.getSeconds());return"".concat(i,"/").concat(r,"/").concat(n," ").concat(o,":").concat(s,":").concat(a)})(new Date);function uN(e,t){let{keysToInclude:i,keysToExclude:r}=t;try{if(Gw(e))return"[".concat(e.map(e=>uN(e,{keysToInclude:i,keysToExclude:r})).join(","),"]");if(!Mw(e)||!Gw(i)&&!Gw(r))return JSON.stringify(e);let t={},n=new Set(i),o=new Set(r);return Object.keys(e).forEach(s=>{(0===o.size&&n.has(s)||0===n.size&&!o.has(s))&&(t[s]=Mw(e[s])||Gw(e[s])?JSON.parse(uN(e[s],{keysToExclude:r,keysToInclude:i})):e[s])}),JSON.stringify(t)}catch(AD){return"{}"}}function hN(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=[];return Object.keys(e).forEach(r=>{t===e[r]&&i.push(r)}),uN(e,{keysToInclude:i})}function pN(e){return e.replace(/[\u4e00-\u9fa5]/g,"aa").length}var mN=()=>{var e,t,i,r;return null!=(e=window.screen)&&e.orientation?!(null==(r=null==(i=null==(t=window.screen)?void 0:t.orientation)?void 0:i.type)||!r.includes("portrait")):0===window.orientation||180===window.orientation},_N=e=>Yb(null,null,function*(){return new Promise((t,i)=>{let r;if(Fw(e))r=new Image,r.crossOrigin="anonymous",r.src=e;else if(r=e,r.complete)return void t(r);r.onload=()=>t(r),r.onerror=()=>{i(new lk({code:ak.INVALID_PARAMETER,message:"load image failed, url: ".concat(e)}))}})}),fN=e=>{let t=e.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]},gN=e=>(Object.keys(e).forEach(t=>{Bw(e[t])&&(t.startsWith("uint")||t.startsWith("int"))?e[t]=Math.floor(e[t]):(Mw(e[t])||Gw(e[t]))&&gN(e[t])}),e);function EN(e,t){return new Promise(i=>{let r=setTimeout(i,e);t&&t(r)})}function TN(e,t){let i=null;return function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return i||(i=e.apply(t||this,n),i.finally(()=>i=null),i)}}function vN(e){return e.replace(/(^|[^:])\/{2,}/g,"$1/")}function yN(e){var t;try{let{width:i,height:r,frameRate:n,sampleRate:o,sampleSize:s,channelCount:a}=null==(t=e.getSettings)?void 0:t.call(e),c=e.kind===Xk.AUDIO?"".concat(o,"x").concat(s,"@").concat(a):"".concat(i,"x").concat(r,"@").concat(n),l=e.stats?" stats: ".concat(JSON.stringify(e.stats).replaceAll('"',"")):"";return"".concat(e.id," ").concat(e.readyState," muted:").concat(e.muted," ").concat(e.kind," ").concat(e.label," ").concat(c).concat(l)}catch(Sk){return""}}function SN(e,t){return e.width*e.height===t.width*t.height?1:mN()&&t.width>t.height&&e.height>t.width?Math.max(e.width/t.height,e.height/t.width,1):Math.max(e.width/t.width,e.height/t.height,1)}function IN(e){return 90===e||270===e}function AN(e){return Yb(this,null,function*(){return new Promise((t,i)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{i(r.error)}})})}function RN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakMap;if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){let i=[];return t.set(e,i),e.forEach((e,r)=>{i[r]=RN(e,t)}),i}if("[object Object]"===Object.prototype.toString.call(e)){let i={};return t.set(e,i),Reflect.ownKeys(e).forEach(r=>{i[r]=RN(e[r],t)}),i}return e}var CN=(e=>(e[e.END_REPORT=2001]="END_REPORT",e[e.LOG=2002]="LOG",e[e.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",e))(CN||{});function bN(e,t,i,r){try{let n=function(e,t,i,r){let n={data:e,random:Math.floor(2147483648*Math.random()),sdkAppId:i};return Uw(r)||(n=Wb(Hb({},n),{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(n)}}}(e,t,i,r);return fw(ow(n),i)}catch(tP){return JSON.stringify(e)}}function kN(e,t){let i=new Uint8Array(e.byteLength+t.byteLength);return i.set(new Uint8Array(e),0),i.set(new Uint8Array(t),e.byteLength),i.buffer}function DN(e){return(65535&e)>>>0}function wN(e){return(4294901760&e)>>>0}function NN(e){let t=function(e){try{let t={},i=0;t.totalLength=cw(e,i),i+=4,t.version=cw(e,i),i+=4,t.encryption=lw(e,i),i+=1,t.uinType=lw(e,i),i+=1,t.uinLength=cw(e,i),i+=4,t.uin=t.uinLength>4?dw(e,i,t.uinLength-4):"",i+=t.uinLength-4;let r=e.slice(i);if(2===t.encryption){e=function(e,t){let i=0,r=new Uint8Array(8).fill(0),n=new Uint8Array(e.slice(0,8)),o=ON(n,t),s=7&o[0],a=e.length-1-s-mw-_w,c=new Uint8Array(a),l=0,d=r,u=e.slice(0,8);i=8;let h=1;h+=s;for(let m=1;m<=mw;)if(h<8)h++,m++;else if(8===h){let r=MN(e,i,d,u,o,t);d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}let p=a;for(;p>0;)if(h<8)c[l++]=o[h]^d[h],h++,p--;else if(8===h){let r=MN(e,i,d,u,o,t);d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}for(let m=1;m<=_w;)if(h<8)o[h],d[h],h++,m++;else if(8===h){if(i>=e.length)break;let r=MN(e,i,d,u,o,t);if(!r.success)break;d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}return c}(r,new Uint8Array(16).fill(0)),t.decrypted=!0,i=0}else e=r,i=0;return t.rspHeadLength=cw(e,i),i+=4,t.seqNo=cw(e,i),i+=4,t.retCode=cw(e,i),i+=4,t.retStrLength=cw(e,i),i+=4,t.retStr=t.retStrLength?dw(e,i,t.retStrLength-4):"",i+=t.retStrLength-4,t.serviceCmdLength=cw(e,i),i+=4,t.serviceCmd=t.serviceCmdLength?dw(e,i,t.serviceCmdLength-4):"",i+=t.serviceCmdLength-4,t.cookieLength=cw(e,i),i+=4,t.cookie=t.cookieLength?dw(e,i,t.cookieLength-4):"",i+=t.cookieLength-4,t.flag=cw(e,i),i+=4,t.busiBuffLength=cw(e,i),i+=4,t.busiBuff=t.busiBuffLength?dw(e,i,t.busiBuffLength-4):"",i+=t.busiBuffLength-4,t}catch(t){}}(e);return null==t?void 0:t.busiBuff}function ON(e,t){let i=e[0]<<24|e[1]<<16|e[2]<<8|e[3],r=e[4]<<24|e[5]<<16|e[6]<<8|e[7];i>>>=0,r>>>=0;let n=hw*pw>>>0;for(let o=0;o<pw;o++)r-=(i<<4)+t[2]^i+n^(i>>>5)+t[3],r>>>=0,i-=(r<<4)+t[0]^r+n^(r>>>5)+t[1],i>>>=0,n-=hw,n>>>=0;return new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function MN(e,t,i,r,n,o){if(t+8>e.length)return{success:!1};let s=new Uint8Array(r),a=e.slice(t,t+8),c=new Uint8Array(8);for(let l=0;l<8;l++)c[l]=n[l]^a[l];return{success:!0,ivPreCrypt:s,ivCurCrypt:a,debiBuf:ON(c,o),bufPos:t+8}}var PN="undefined"!=typeof TextDecoder?new TextDecoder:void 0;function LN(e){let{url:t,body:i,method:r="POST",timeout:n,priority:o}=e;return new Promise((e,s)=>{if("fetch"in window)return fetch(t,{method:r,body:i,priority:o}).then(e=>e.clone().json().then(e=>({data:e}),()=>e.arrayBuffer().then(e=>({data:NN(new Uint8Array(e))||(PN?PN.decode(e):e)})))).then(e,s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(4===a.readyState)if(a.status>=200&&a.status<300)try{let t=JSON.parse(a.response);e({data:t})}catch(rP){e({data:a.response})}else s({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=n||5e3,a.open(r,t,!0),a.send(i)})}function xN(e){return Yb(this,null,function*(){let t=Zw(),i=JSON.stringify(e);try{if(!CompressionStream||i.length<=2800)return i;let e=new Blob([i],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),r=yield(yield(yield new Response(e)).blob()).arrayBuffer();return JM.debug("compressJSON ".concat(i.length," -> ").concat(r.byteLength," ").concat(Zw()-t,"ms")),r}catch(AD){return i}})}var VN=Object.prototype.hasOwnProperty,UN=e=>"function"==typeof e,FN=e=>void 0===e,BN=e=>"boolean"==typeof e,HN=e=>e.isRemote,WN=function(e){if(!e||"object"!=typeof e||"[object Object]"!=Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);if(null===t)return!0;let i=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Function.prototype.toString.call(i)===Function.prototype.toString.call(Object)};var GN=function(e){let{retryFunction:t,settings:i,onError:r,onRetrying:n,onRetryFailed:o,onRetrySuccess:s,context:a}=e;return function(){for(var e=arguments.length,c=new Array(e),l=0;l<e;l++)c[l]=arguments[l];let{retries:d=5,timeout:u=1e3}=i,h=0,p=-1,m=0,_=(e,i)=>Yb(this,null,function*(){let l=a||this;try{let i=yield t.apply(l,c);h>0&&s&&s.call(this,h),h=0,e(i)}catch(oL){let s=()=>{clearTimeout(p),h=0,m=2,i(oL)},a=()=>{2!==m&&h<(UN(d)?d():d)?(h++,m=1,UN(n)&&n.call(this,h,s),p=window.setTimeout(()=>{p=-1,_(e,i)},UN(u)?u(h):u)):(s(),UN(o)&&o.call(this,oL))};UN(r)?r.call(this,{error:oL,retry:a,reject:i,retryFuncArgs:c,retriedCount:h}):a()}});return new Promise(_)}},jN=class{constructor(e){qb(this,"userId"),qb(this,"remoteUserId"),qb(this,"id"),qb(this,"sdkAppId"),qb(this,"type"),qb(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal=!BN(e.isLocal)||e.isLocal,this.type=this.isLocal?"":e.type}createChild(e){return Object.setPrototypeOf(e,this)}setUserId(e){this.userId=e}setSdkAppId(e){this.sdkAppId=e}log(e,t){let i=this.isLocal?this.userId:this.remoteUserId;t.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&"main"!==this.type?"*":"").concat(this.id).concat(i?"|".concat(i):"","]")),JM.log(e,t,FN(this.userId)||function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(WN(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(VN.call(e,t))return!1;return!0}return!1}(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}},JN={};jb(JN,{ANDROID_VERSION:()=>nO,CHROME_MAJOR_VERSION:()=>cM,CHROME_VERSION:()=>lM,EDGE_VERSION:()=>uO,EDG_MAJOR_VERSION:()=>mO,EDG_VERSION:()=>pO,FIREFOX_MAJOR_VERSION:()=>lO,FIREFOX_VERSION:()=>cO,HUAWEI_VERSION:()=>YO,IE_VERSION:()=>RO,IOS_MAIN_VERSION:()=>gM,IOS_VERSION:()=>mM,IPADQQB_VERSION:()=>xO,IS_ANDROID:()=>rO,IS_ANDROID_WEBVIEW:()=>pM,IS_ANY_SAFARI:()=>uM,IS_CHROME:()=>sM,IS_CHROME_OS:()=>BO,IS_CHROMIUM_BASE:()=>oM,IS_DESKTOP_IOS_CHROME:()=>SM,IS_EDG:()=>hO,IS_EDGE:()=>dO,IS_ELECTRON:()=>GO,IS_FIREFOX:()=>aO,IS_HEADLESS_CHROME:()=>aM,IS_HONOR:()=>zO,IS_HUAWEI:()=>qO,IS_HUAWEIBROWSER:()=>KO,IS_IE:()=>AO,IS_IE8:()=>IO,IS_IOS:()=>iO,IS_IOS_13_OR_14:()=>vM,IS_IOS_15_1:()=>TM,IS_IOS_CHROME:()=>yM,IS_IPAD:()=>ZN,IS_IPADQQB:()=>LO,IS_IPAD_PRO:()=>$N,IS_IPHONE:()=>eO,IS_IPOD:()=>tO,IS_LINUX:()=>FO,IS_LOCAL:()=>IM,IS_MAC:()=>UO,IS_MACQQB:()=>MO,IS_MIBROWSER:()=>jO,IS_MQQB:()=>DO,IS_NATIVE_ANDROID:()=>sO,IS_OLD_ANDROID:()=>oO,IS_OPENHARMONY:()=>iM,IS_OPPOBROWSER:()=>ZO,IS_SAFARI:()=>dM,IS_SAFARI_15_1:()=>EM,IS_SAMSUNGBROWSER:()=>XO,IS_SOGOU:()=>gO,IS_SOGOUM:()=>_O,IS_TBS:()=>TO,IS_UCBROWSER:()=>WO,IS_VIVOBROWSER:()=>eM,IS_WECHAT:()=>CO,IS_WIN:()=>VO,IS_WQQB:()=>NO,IS_WX:()=>HO,IS_X5MQQB:()=>kO,IS_XWEB:()=>yO,MACQQB_VERSION:()=>PO,MI_VERSION:()=>JO,MQQB_VERSION:()=>wO,OPENHARMONY_VERSION:()=>rM,OPPO_VERSION:()=>$O,SAFARI_VERSION:()=>hM,SAMSUNG_VERSION:()=>QO,SOGOUM_VERSION:()=>fO,SOGOU_VERSION:()=>EO,TBS_VERSION:()=>vO,UA_DATA_STRING:()=>DM,USER_AGENT:()=>KN,VIVO_VERSION:()=>tM,WECHAT_VERSION:()=>bO,WQQB_VERSION:()=>OO,XWEB_VERSION:()=>SO,browserInfo:()=>RM,getBrowserCoreNumber:()=>xM,getBrowserInfo:()=>CM,getChromeMajorVersion:()=>nM,getDeviceModel:()=>OM,getGPUInfo:()=>NM,getOSName:()=>PM,getOSNumber:()=>LM,getOSString:()=>VM,getOSType:()=>FM,getTerminalType:()=>UM,getUserAgentData:()=>wM,isLocalStorageEnabled:()=>AM,isMobile:()=>kM,isVersionLargerThan:()=>fM,isVersionSmallerThan:()=>_M});var KN="undefined"==typeof navigator?"":navigator.userAgent,qN=e=>new RegExp(e,"i").test(KN),zN=e=>{if(qN(e)){let t=new RegExp("".concat(e,"\\/([\\d.]+)")),i=KN.match(t);if(i&&i[1])return i[1]}return""},YN=e=>{if(qN(e)){let t=new RegExp("".concat(e,"\\/(\\d+)")),i=KN.match(t);if(i&&i[1])return parseFloat(i[1])}return NaN},XN=/AppleWebKit\/([\d.]+)/i.exec(KN),QN=XN?parseFloat(XN[1]):NaN,ZN=qN("iPad"),$N="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&qN("Macintosh"),eO=qN("iPhone")&&!ZN,tO=qN("iPod"),iO=eO||ZN||tO||$N,rO=qN("Android"),nO=function(){if(rO){let e=KN.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){let t=e[1]&&parseFloat(e[1]),i=e[2]&&parseFloat(e[2]);if(t&&i)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}return NaN}(),oO=rO&&qN("webkit")&&nO<2.3,sO=rO&&nO<5&&QN<537,aO=qN("Firefox"),cO=zN("Firefox"),lO=YN("Firefox"),dO=qN("Edge"),uO=zN("Edge"),hO=qN("Edg"),pO=zN("Edg"),mO=YN("Edg"),_O=qN("SogouMobileBrowser"),fO=zN("SogouMobileBrowser"),gO=qN("MetaSr\\s"),EO=zN("MetaSr\\s"),TO=qN("TBS"),vO=zN("TBS"),yO=qN("XWEB"),SO=zN("XWEB"),IO=qN("MSIE\\s8\\.0"),AO=qN("MSIE\\/\\d+"),RO=function(){if(AO){let e=/MSIE\s(\d+)\.\d/.exec(KN),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(KN)&&/rv:11.0/.test(KN)&&(t=11),t}return NaN}(),CO=qN("(micromessenger|webbrowser)"),bO=zN("MicroMessenger"),kO=!TO&&qN("MQQBrowser")&&qN("COVC"),DO=!TO&&qN("MQQBrowser")&&!qN("COVC"),wO=DO||kO?zN("MQQBrowser"):"",NO=!TO&&qN(" QQBrowser"),OO=zN(" QQBrowser"),MO=!TO&&qN("QQBrowserLite"),PO=zN("QQBrowserLite"),LO=!TO&&qN("MQBHD"),xO=zN("MQBHD"),VO=qN("Windows"),UO=!iO&&qN("MAC OS X"),FO=!rO&&qN("Linux"),BO=qN("CrOS"),HO=qN("MicroMessenger"),WO=qN("UCBrowser"),GO=qN("Electron"),jO=qN("MiuiBrowser"),JO=zN("MiuiBrowser"),KO=qN("HuaweiBrowser"),qO=qN("Huawei")||qN("HUAWEI"),zO=qN("Honor")||qN("HONOR"),YO=zN("HuaweiBrowser"),XO=qN("SamsungBrowser"),QO=zN("SamsungBrowser"),ZO=qN("HeyTapBrowser"),$O=zN("HeyTapBrowser"),eM=qN("VivoBrowser"),tM=zN("VivoBrowser"),iM=qN("OpenHarmony"),rM=zN("OpenHarmony"),nM=()=>YN("Chrome"),oM=qN("Chrome"),sM=!dO&&!gO&&!_O&&!TO&&!yO&&!hO&&!NO&&!jO&&!KO&&!XO&&!ZO&&!eM&&oM,aM=qN("HeadlessChrome"),cM=nM(),lM=zN("Chrome"),dM=!oM&&!DO&&!kO&&!MO&&!LO&&qN("Safari"),uM=dM||iO,hM=zN("Version"),pM=/Android.*(wv|.0.0.0)/.test(KN),mM=(()=>{if($N)return hM;if(iO){let e=KN.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""})();function _M(e,t){let i=e.split(".").map(e=>Number(e)),r=t.split(".").map(e=>Number(e));for(let n=0;n<Math.max(i.length,r.length);n++){let e=i[n]||0,t=r[n]||0;if(e<t)return!0;if(e>t)return!1}return!1}function fM(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.split(".").map(e=>Number(e)),n=t.split(".").map(e=>Number(e));for(let o=0;o<Math.max(r.length,n.length);o++){let e=r[o]||0,t=n[o]||0;if(e>t)return!0;if(e<t)return!1}return i}var gM=Number(mM.split(".")[0]),EM="15.1"===hM,TM="15.1"===mM,vM=(()=>{let e=Number(mM.split(".")[0]);return 14===e||13===e})(),yM=qN("CriOS"),SM=yM&&"11.1.1"===hM,IM="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),AM=(()=>{let e;return()=>{if(void 0===e)try{e=!!window.localStorage}catch($M){e=!1}return e}})(),RM=CM();function CM(){let e=new Map([[aO,["Firefox",cO]],[hO,["Edg",pO]],[sM,["Chrome",lM]],[dM,["Safari",hM]],[TO,["TBS",vO]],[yO,["XWEB",SO]],[CO&&eO,["WeChat",bO]],[NO,["QQ(Win)",OO]],[DO,["QQ(Mobile)",wO]],[kO,["QQ(Mobile X5)",wO]],[MO,["QQ(Mac)",PO]],[LO,["QQ(iPad)",xO]],[jO,["MI",JO]],[KO,["HW",YO]],[XO,["Samsung",QO]],[ZO,["OPPO",$O]],[eM,["VIVO",tM]],[dO,["EDGE",uO]],[_O,["SogouMobile",fO]],[gO,["Sogou",EO]]]),t="unknown",i="unknown";return e.has(!0)&&([t,i]=e.get(!0)),{name:t,version:i}}var bM=null;function kM(){return bM&&"boolean"==typeof bM.mobile?bM.mobile:rO||iO||eO||ZN||iM}var DM="";function wM(){return Yb(this,null,function*(){if(bM)return bM;if(!navigator.userAgentData||"function"!=typeof navigator.userAgentData.getHighEntropyValues)return null;try{return(bM=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!DM&&(DM="UAData: ".concat(bM.platform,"/").concat(bM.platformVersion),bM.architecture&&bM.bitness&&(DM+=" ".concat(bM.architecture,"/").concat(bM.bitness)),bM.mobile&&(DM+=" mobile"),bM.model&&(DM+=" model: ".concat(bM.model.replace(/\s+/g,"/"))),bM.fullVersionList&&(DM+=" ".concat(bM.fullVersionList.filter(e=>"Not/A)Brand"!==e.brand).map(e=>"".concat(e.brand,"/").concat(e.version)).join(",")))),bM}catch(iK){return null}})}function NM(){try{let e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)return"";let i=t.getExtension("WEBGL_debug_renderer_info");if(i){let e=t.getParameter(i.UNMASKED_VENDOR_WEBGL),r=t.getParameter(i.UNMASKED_RENDERER_WEBGL);return"".concat(e," ").concat(r)}return""}catch(iK){return""}}function OM(){return(null==bM?void 0:bM.model)||""}var MM=new Map([[rO,"Android"],[iO,"iOS"],[VO,"Windows"],[UO,"MacOS"],[FO,"Linux"],[BO,"ChromeOS"]]),PM=function(){return MM.get(!0)?MM.get(!0):bM?bM.platform:"unknown"};function LM(){return VO?1:rO?2:UO?3:iO?4:FO?5:BO?6:iM?7:0}function xM(){return oM?1:dM?2:aO?3:0}var VM=()=>{let e=PM();return e+="/".concat(RM.name,"/").concat(dM?RM.version:RM.version.split(".")[0]),null!=bM&&bM.platformVersion&&(e+="/".concat(bM.platformVersion)),null!=bM&&bM.architecture&&(e+="/".concat(bM.architecture)),e};function UM(){return rO?4:eO?2:ZN?3:UO?12:VO?5:FO?13:iM?22:1}function FM(){return rO?"Android":eO?"iPhone":ZN?"iPad":UO?"Mac":VO?"Windows":FO?"Linux":"unknown"}var BM=new(Jb(Xb(),1).default),HM=(e=>(e.ROOM_DESTROY="1",e.JOIN_START="21",e.JOIN_SCHEDULE_SUCCESS="22",e.JOIN_SIGNAL_CONNECTION_START="23",e.JOIN_SIGNAL_CONNECTION_END="24",e.JOIN_SEND_CMD="25",e.JOIN_RECEIVED_CMD_RES="26",e.JOIN_SUCCESS="27",e.JOIN_FAILED="28",e.LEAVE_START="51",e.LEAVE_SEND_CMD="52",e.LEAVE_SUCCESS="53",e.PUBLISH_START="61",e.SEND_FIRST_VIDEO_FRAME="62",e.PUBLISH_FAILED="63",e.SUBSCRIBE_START="81",e.SUBSCRIBE_SUCCESS="82",e.SUBSCRIBE_FAILED="84",e.UNSUBSCRIBE_SUCCESS="83",e.LOCAL_TRACK_CAPTURE_START="101",e.LOCAL_TRACK_CAPTURE_SUCCESS="102",e.LOCAL_TRACK_CAPTURE_FAILED="103",e.LOCAL_TRACK_PUBLISHED="104",e.LOCAL_TRACK_UNPUBLISHED="105",e.LOCAL_TRACK_REPLACED="106",e.SWITCH_DEVICE_SUCCESS="107",e.TRACK_MUTED="108",e.TRACK_UNMUTED="109",e.REMOTE_TRACK_SUBSCRIBED="110",e.REMOTE_TRACK_UNSUBSCRIBED="111",e.LOCAL_TRACK_RECAPTURE="112",e.LOCAL_AUDIO_STARTED="113",e.LOCAL_AUDIO_STOPPED="114",e.REMOTE_AUDIO_STARTED="115",e.REMOTE_AUDIO_STOPPED="116",e.PLAY_TRACK_START="151",e.PLAYER_STATE_CHANGED="152",e.VIDEO_LOADED_DATA="153",e.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",e.AUDIO_CONTEXT_LONG_SUSPENDED="155",e.SIGNAL_CONNECTION_STATE_CHANGED="201",e.PEER_CONNECTION_STATE_CHANGED="202",e.SINGLE_CONNECTION_STAT="203",e.SPC_RECONNECTED="204",e.HEARTBEAT_REPORT="251",e.RECEIVED_PUBLISHED_USER_LIST="252",e.REMOTE_PUBLISH_STATE_CHANGED="253",e.AUDIO_LEVEL_INTERVAL="260",e.NETWORK_QUALITY="261",e.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",e.QUALITY_LIMITATION_CHANGED="263",e.LOG="264",e.AUDIO_PROCESSOR_DEBUG="265",e.SSO_SWITCH="266",e.SWITCH_ROOM_START="401",e.SWITCH_ROOM_SUCCESS="407",e.SWITCH_ROOM_FAILED="408",e))(HM||{}),WM=HM,GM=new class{constructor(){qb(this,"enable",!1),qb(this,"ssoFailCount",0),BM.on("22",e=>{let{schedule:t}=e;var i;null!=(i=null==t?void 0:t.config)&&i.sso&&BM.emit("266",{enable:!0})}),BM.on("266",e=>{let{enable:t}=e;this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&BM.emit("266",{enable:!1})}},jM=class e{constructor(){qb(this,"_isEnableUploadLog",!0),qb(this,"_localJoinedUser",new Map),qb(this,"_queue",[]),qb(this,"_timeoutId",-1),qb(this,"_logLevel",1),qb(this,"_logLevelToUpload",2),!Ak&&!Rk&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&-1!==this._timeoutId}installEvents(){BM.on(WM.JOIN_SCHEDULE_SUCCESS,e=>{let{schedule:t}=e;var i;null!=(i=null==t?void 0:t.config)&&i.logLevelToUpload&&Bk[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),BM.on(WM.JOIN_SUCCESS,e=>{let{room:t}=e;this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),BM.once(WM.JOIN_FAILED,()=>{this.startUpload()}),BM.on(WM.LEAVE_SUCCESS,e=>{let{room:t}=e;this.deleteJoinedUser(t.userId)})}startUpload(){-1===this._timeoutId&&this.uploadInterval()}addJoinedUser(e){this._localJoinedUser.set(e.userId,e),this.startUpload()}deleteJoinedUser(e){this._localJoinedUser.delete(e)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let e={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&0===this._localJoinedUser.size)return e;let t=0;for(;t<this._queue.length&&50!==t;t++){let i=this._queue[t];if(i.forAllJoinedClients)this._localJoinedUser.forEach(t=>{let{userId:r,sdkAppId:n}=t;e.map.has(r)?e.map.get(r).logs.push(i):e.map.set(r,{userId:r,sdkAppId:n,logs:[i]})});else if(Fw(i.userId)&&Bw(i.sdkAppId)){let{userId:t,sdkAppId:r}=i;e.map.has(t)?e.map.get(t).logs.push(i):e.map.set(t,{userId:t,sdkAppId:r,logs:[i]})}}return e.map.size>0&&(e.splicedQueue=this._queue.splice(0,t)),e}upload(){return Yb(this,null,function*(){if(0===this._queue.length||!this._isEnableUploadLog)return;let{map:e,splicedQueue:t}=this.getLogsToUpload();if(0===e.size)return;try{let t=[...e.values()];for(let e=0;e<t.length;e++){let{userId:i,sdkAppId:r,logs:n}=t[e],o={timestamp:_k(),sdkAppId:String(r),userId:i,version:vk,log:n.map(e=>e.log).join("\n")},s=JSON.stringify(o),a=GM.enable?bN(o,2002,r):s;yield this.uploadLogWithRetry(a,r,a instanceof Uint8Array,s),n.forEach(e=>e.uploaded=!0)}}catch(tP){}let i=t.filter(e=>!e.uploaded);i.length>0&&(this._queue=i.concat(this._queue))})}uploadLogWithRetry(e,t,i,r){return GN({retryFunction:()=>LN({url:vw(t,Uk.LOG),body:e,timeout:5e3,priority:"low"}).then(e=>{i&&"ok"!==e.data&&(GM.handleUploadFailed(),this.uploadLogWithRetry(r,t,!1,r))}),settings:{retries:3,timeout:2e3},onError:e=>{let{retry:t}=e;t()}})()}getPrefix(e){let t=new Date;return t.setTime(mk()),"[".concat(fk(t),"] <").concat(Bk[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){Uw(Bk[e])||(this._logLevel!==e&&this.info("setLogLevel",e),this._logLevel=e)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(e){if(Fw(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch(Sk){return""}}addLogToQueue(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3?arguments[3]:void 0,n=arguments.length>4?arguments[4]:void 0,o={log:t.reduce((e,t)=>"".concat(e," ").concat(this.logChunkToString(t)).trim(),""),level:e,userId:r,sdkAppId:n,forAllJoinedClients:i};BM.emit(WM.LOG,{log:o}),this._isEnableUploadLog&&e>=this._logLevelToUpload&&this._queue.push(o)}log(t,i){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;var s;if(i.unshift(this.getPrefix(t)),this.addLogToQueue(t,i,r,n,o),t<this._logLevel)return;let a=(null==(s=Bk[t])?void 0:s.toLowerCase())||"info";e.PRINT_LOG_TAG?console[a]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...i):console[a](...i)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}createLogger(e){return new jN(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;Bk[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};qb(jM,"PRINT_LOG_TAG",!(iO||rO||aM));var JM=new jM,KM=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})},qM=new class{constructor(){qb(this,"_prefix","TRTC"),qb(this,"_queue",new Map)}getRealKey(e){return"".concat(this._prefix,"_").concat(e)}checkStorage(){AM()&&(setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(e=>{if(e.startsWith(this._prefix))try{let t=localStorage.getItem(e);if(!t)return!1;let i=JSON.parse(t);if(i&&i.expiresIn<Date.now())return!0}catch(tP){return!1}return!1}).forEach(e=>localStorage.removeItem(e)))}doFlush(){if(AM())try{for(let[e,t]of this._queue)localStorage.setItem(e,JSON.stringify(t))}catch($M){JM.warn($M)}}getItem(e){if(!AM())return null;try{let t=localStorage.getItem(this.getRealKey(e));if(!t)return null;let i=JSON.parse(t);return i&&i.expiresIn>=Date.now()?i.value:null}catch(Sk){JM.warn(Sk)}}setItem(e,t){if(AM())try{let i={expiresIn:Date.now()+jk,value:t};this._queue.set(this.getRealKey(e),i)}catch(AD){JM.warn(AD)}}deleteItem(e){if(!AM())return!1;try{return e=this.getRealKey(e),this._queue.delete(e),localStorage.removeItem(e),!0}catch(Sk){return JM.warn(Sk),!1}}clear(){if(AM())try{localStorage.clear()}catch($M){JM.warn($M)}}},zM={};jb(zM,{HTTPS_API:()=>PL,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>ix,IS_GET_CAPABILITIES_SUPPORTED:()=>tx,IS_GET_SETTINGS_SUPPORTED:()=>ex,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>$L,IS_INSERTABLE_STREAM_SUPPORTED:()=>rx,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>fx,IS_RTC_RTP_SENDER_SUPPORTED:()=>XL,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>nx,IS_SEI_SUPPORTED:()=>ox,IS_SPC_SUPPORTED:()=>zL,basis:()=>ux,capabilityCheck:()=>mx,checkSystemRequirementsInternal:()=>kL,decodeSupportStatus:()=>bL,detectVideoCodecCapabilities:()=>Tx,detectVideoDecoderCapabilities:()=>yx,detectVideoEncoderCapabilities:()=>vx,encodeSupportStatus:()=>CL,getBrowserInfo:()=>EL,getDisplayResolution:()=>xL,isAddTransceiverSupported:()=>qL,isBrowserSupported:()=>TL,isCanvasCaptureStreamAPISupported:()=>FL,isCanvasSmallStreamSupported:()=>BL,isGetReceiversSupported:()=>jL,isGetSendersSupported:()=>JL,isGetTransceiversSupported:()=>KL,isGetUserMediaSupported:()=>VL,isMediaDevicesSupported:()=>yL,isMediaSessionSupported:()=>cx,isMediaStreamTrackGeneratorSupported:()=>RL,isMediaStreamTrackProcessorSupported:()=>AL,isReplaceTrackSupported:()=>QL,isRequestVideoFrameCallbackSupported:()=>_x,isSIMDSupported:()=>dx,isScaleResolutionDownBySupported:()=>HL,isScreenCaptureApiAvailable:()=>wL,isSelectedCandidatePair:()=>LL,isSetParametersSupported:()=>ZL,isSetSinkIdSupported:()=>NL,isSmallStreamSupported:()=>WL,isStopTransceiverSupported:()=>YL,isTRTCSupported:()=>DL,isUnifiedPlanDefault:()=>GL,isUsedInHttpProtocol:()=>IL,isWebAudioSupported:()=>UL,isWebCodecSupported:()=>ax,isWebCodecsSupported:()=>vL,isWebRTCSupported:()=>sx,isWebTransportSupported:()=>lx});var YM={};jb(YM,{AUDIO_LEVEL_SCALE:()=>HP,AudioCodecPipelineType:()=>KP,AudioDecoderDowngradeState:()=>SP,AudioPlayerMode:()=>UP,AudioType:()=>kP,BASIC_TYPE:()=>GP,BannedReason:()=>FP,CONNECTION_CLOSED_REASON:()=>lP,CheckPermissionType:()=>ZP,ClientEvent:()=>dP,CodecType:()=>qP,ConnectionEvent:()=>cP,ConnectionState:()=>yP,DECODE_FAILED_ERROR_CODE:()=>zP,DeviceType:()=>$P,FacingMode:()=>xP,FrameWorkType:()=>aP,LeaveReason:()=>BP,LocalTrackEvent:()=>hP,MULTI_VIDEO_DATA_TYPE:()=>OP,MediaType:()=>CP,MediaTypeLabel:()=>bP,MonitorEventId:()=>MP,MutedFlag:()=>gP,NetworkQualityValue:()=>PP,PlayerState:()=>pP,ReceiveMode:()=>LP,RemoteStreamType:()=>NP,RemoteTrackEvent:()=>fP,RoomEvent:()=>mP,SMALL_MODE:()=>QP,SceneNumber:()=>EP,StreamEvent:()=>uP,StreamType:()=>wP,SubscribeMediaType:()=>WP,TIMER_TYPE:()=>XP,TRACK_ACTION:()=>RP,TRACK_KIND:()=>AP,TrackEvent:()=>_P,UserRole:()=>vP,UserRoleNumber:()=>TP,VideoCodec:()=>jP,VideoCodecPipelineType:()=>JP,VideoContentHint:()=>YP,VideoDecoderDowngradeState:()=>IP,VideoPlayerMode:()=>VP,VideoType:()=>DP});var XM,QM,ZM,$M,eP,tP,iP,rP,nP,oP,sP,aP=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(aP||{}),cP=((sP=cP||{}).TRACK_ADDED="track-added",sP.TRACK_UPDATED="track-updated",sP.TRACK_SUBSCRIBED="track-subscribed",sP.STREAM_ADDED="stream-added",sP.STREAM_REMOVED="stream-removed",sP.STREAM_UPDATED="stream-updated",sP.STREAM_PUBLISHED="stream-published",sP.STREAM_SUBSCRIBED="stream-subscribed",sP.STREAM_UNSUBSCRIBED="stream-unsubscribed",sP.STATE_CHANGED="state-changed",sP.ERROR="error",sP.CONNECTION_STATE_CHANGED="connection-state-changed",sP.FIREWALL_RESTRICTION="firewall-restriction",sP.SEI_MESSAGE="sei-message",sP.CLOSED="closed",sP),lP=(e=>(e.REMOTE_LEAVE="remote user exitRoom",e.REMOTE_UNPUBLISH="remote user unpublished",e.LOCAL_LEAVE="you exitRoom",e.LOCAL_UNPUBLISH="you unpublished",e.LOCAL_UNSUBSCRIBE="you unsubscribed",e.SWITCH_ROLE="you switch role to audience",e))(lP||{}),dP=((oP=dP||{}).STREAM_ADDED="stream-added",oP.STREAM_REMOVED="stream-removed",oP.STREAM_UPDATED="stream-updated",oP.STREAM_SUBSCRIBED="stream-subscribed",oP.CONNECTION_STATE_CHANGED="connection-state-changed",oP.PEER_JOIN="peer-join",oP.PEER_LEAVE="peer-leave",oP.MUTE_AUDIO="mute-audio",oP.MUTE_VIDEO="mute-video",oP.UNMUTE_AUDIO="unmute-audio",oP.UNMUTE_VIDEO="unmute-video",oP.CLIENT_BANNED="client-banned",oP.NETWORK_QUALITY="network-quality",oP.AUDIO_VOLUME="audio-volume",oP.SEI_MESSAGE="sei-message",oP.ERROR="error",oP),uP=((nP=uP||{}).PLAYER_STATE_CHANGED="player-state-changed",nP.SCREEN_SHARING_STOPPED="screen-sharing-stopped",nP.CONNECTION_STATE_CHANGED="connection-state-changed",nP.DEVICE_AUTO_RECOVERED="device-auto-recovered",nP.ERROR="error",nP),hP=((rP=hP||{}).DEVICE_AUTO_RECOVERED="1",rP.DEVICE_RECOVER_FAILED="5",rP.DEVICE_CHANGED="2",rP.ERROR="3",rP.PUBLISH_STATE_CHANGED="4",rP.ENCODE_FAILED="6",rP.TRACK_ENDED="7",rP.RENDER="render",rP),pP=(e=>(e.PAUSED="PAUSED",e.PLAYING="PLAYING",e.STOPPED="STOPPED",e))(pP||{}),mP=((iP=mP||{}).PEER_JOIN="peer-join",iP.PEER_LEAVE="peer-leave",iP.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",iP.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",iP.BANNED="banned",iP.NETWORK_QUALITY="network-quality",iP.AUDIO_VOLUME="audio-volume",iP.SEI_MESSAGE="sei-message",iP.ERROR="error",iP.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",iP.REMOTE_PUBLISHED="remote-published",iP.REMOTE_UNPUBLISHED="remote-unpublished",iP.FIREWALL_RESTRICTION="firewall-restriction",iP.HEARTBEAT_REPORT="heartbeat-report",iP.CUSTOM_MESSAGE="custom-message",iP.LAYER_DATA="layerData",iP.FIRST_VIDEO_FRAME="first-video-frame",iP.DUMP="dump",iP.AUDIO_FRAME="audio-frame",iP.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",iP.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",iP.NTP_TIME_UPDATED="ntp-time-updated",iP),_P=(e=>(e.PLAYER_STATE_CHANGED="player-state-changed",e.MUTE="mute",e.UNMUTE="unmute",e.ERROR="error",e.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",e.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",e.FIRST_VIDEO_FRAME="first-video-frame",e.VIDEO_SIZE_CHANGED="video-size-changed",e))(_P||{}),fP=((tP=fP||{}).DECODE_FAILED="decode-failed",tP.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",tP.REMOTE_PUBLISH_CHANGED="remote-publish-changed",tP.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",tP),gP=((eP=gP||{})[eP.VIDEO=1]="VIDEO",eP[eP.SMALL=2]="SMALL",eP[eP.AUX=4]="AUX",eP[eP.AUDIO=8]="AUDIO",eP[eP.VIDEO_MUTE=16]="VIDEO_MUTE",eP[eP.AUX_MUTE=32]="AUX_MUTE",eP[eP.AUDIO_MUTE=64]="AUDIO_MUTE",eP),EP=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(EP||{}),TP=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(TP||{}),vP=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(vP||{}),yP=(e=>(e.CONNECTED="CONNECTED",e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.RECONNECTED="RECONNECTED",e.RECONNECTING="RECONNECTING",e))(yP||{}),SP=(e=>(e.INITIALIZED="INITIALIZED",e.STARTING="STARTING",e.STARTED="STARTED",e.FAILED="FAILED",e))(SP||{}),IP=(e=>(e.INITIALIZED="INITIALIZED",e.STARTING="STARTING",e.STARTED="STARTED",e.FAILED="FAILED",e))(IP||{}),AP=(e=>(e.AUDIO="audio",e.VIDEO="video",e.AUXILIARY="auxVideo",e))(AP||{}),RP=(e=>(e.ADD="add",e.REMOVE="remove",e))(RP||{}),CP=(e=>(e[e.NULL=0]="NULL",e[e.AUDIO=1]="AUDIO",e[e.AUX_VIDEO=2]="AUX_VIDEO",e[e.BIG_VIDEO=4]="BIG_VIDEO",e[e.SMALL_VIDEO=8]="SMALL_VIDEO",e))(CP||{}),bP={1:"audio",2:"auxVideo",4:"video"},kP=(($M=kP||{})[$M.opus=111]="opus",$M),DP=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(DP||{}),wP=(e=>(e.Big="big",e.Small="small",e))(wP||{}),NP=(e=>(e.Main="main",e.Aux="auxiliary",e))(NP||{}),OP=(e=>(e[e.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",e[e.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",e[e.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",e[e.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",e[e.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",e))(OP||{}),MP=((ZM=MP||{})[ZM.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",ZM[ZM.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",ZM[ZM.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",ZM[ZM.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",ZM[ZM.MUTE_AUDIO=32772]="MUTE_AUDIO",ZM[ZM.MUTE_VIDEO=32773]="MUTE_VIDEO",ZM[ZM.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",ZM[ZM.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",ZM[ZM.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",ZM[ZM.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",ZM[ZM.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",ZM[ZM.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",ZM[ZM.SWITCH_CAMERA=32780]="SWITCH_CAMERA",ZM[ZM.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",ZM[ZM.REPLACE_VIDEO=32782]="REPLACE_VIDEO",ZM[ZM.REPLACE_AUDIO=32783]="REPLACE_AUDIO",ZM[ZM.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",ZM[ZM.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",ZM[ZM.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",ZM[ZM.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",ZM[ZM.JOIN=32788]="JOIN",ZM[ZM.LEAVE=32789]="LEAVE",ZM[ZM.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",ZM[ZM.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",ZM[ZM.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",ZM[ZM.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",ZM[ZM.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",ZM[ZM.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",ZM[ZM.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",ZM[ZM.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",ZM[ZM.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",ZM[ZM.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",ZM[ZM.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",ZM[ZM.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",ZM[ZM.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",ZM[ZM.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",ZM[ZM.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",ZM[ZM.PUBLISH_AUX=32805]="PUBLISH_AUX",ZM[ZM.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",ZM[ZM.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",ZM[ZM.VIDEO_ENCODER=4004]="VIDEO_ENCODER",ZM[ZM.VIDEO_DECODER=4005]="VIDEO_DECODER",ZM),PP=(e=>(e[e.UNKNOWN=0]="UNKNOWN",e[e.EXCELLENT=1]="EXCELLENT",e[e.GOOD=2]="GOOD",e[e.POOR=3]="POOR",e[e.BAD=4]="BAD",e[e.VERY_BAD=5]="VERY_BAD",e[e.DISCONNECTED=6]="DISCONNECTED",e))(PP||{}),LP=(e=>(e[e.MANUAL=0]="MANUAL",e[e.AUTO_AUDIO=1]="AUTO_AUDIO",e[e.AUTO_VIDEO=2]="AUTO_VIDEO",e[e.AUTO_ALL=3]="AUTO_ALL",e))(LP||{}),xP=(e=>(e.user="user",e.environment="environment",e))(xP||{}),VP=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",e[e.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",e))(VP||{}),UP=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(UP||{}),FP=(e=>(e.BANNED="banned",e.KICK="kick",e.USER_TIME_OUT="user_time_out",e.ROOM_DISBAND="room_disband",e))(FP||{}),BP=((QM=BP||{})[QM.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",QM[QM.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",QM[QM.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",QM[QM.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",QM[QM.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",QM[QM.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",QM[QM.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",QM[QM.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",QM[QM.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",QM),HP=1e8,WP=class{constructor(){qb(this,"mediaType",0)}set audio(e){e?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(1&this.mediaType)}set video(e){e?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(4&this.mediaType)}set auxiliary(e){e?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(2&this.mediaType)}set smallVideo(e){e?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(8&this.mediaType)}},GP=(e=>(e.String="string",e.Number="number",e.Boolean="boolean",e.Array="array",e.Object="object",e))(GP||{}),jP=(e=>(e.H264="h264",e.H265="h265",e.VP8="vp8",e.VP9="vp9",e.AV1="av1",e))(jP||{}),JP=(e=>(e[e.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",e[e.DUMP=1]="DUMP",e[e.SEI=2]="SEI",e[e.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",e))(JP||{}),KP=(e=>(e[e.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",e[e.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",e[e.DUMP=2]="DUMP",e[e.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",e))(KP||{}),qP=(e=>(e.WebRTC="webrtc",e.WebCodecs="webcodecs",e.WebAssembly="webassembly",e))(qP||{}),zP=((XM=zP||{})[XM.SUCCESS=0]="SUCCESS",XM[XM.FAILED=1]="FAILED",XM[XM.WEBCODEC_INIT=2]="WEBCODEC_INIT",XM[XM.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",XM[XM.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",XM[XM.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",XM[XM.WASM_INIT=6]="WASM_INIT",XM[XM.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",XM[XM.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",XM[XM.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",XM[XM.TEST=10]="TEST",XM[XM.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",XM),YP=(e=>(e.NONE="",e.DETAIL="detail",e.MOTION="motion",e.TEXT="text",e))(YP||{}),XP=(e=>(e.INTERVAL="interval",e.TIMEOUT="timeout",e.RAF="raf",e.RIC="ric",e.INTERVAL_IN_WORKER="intervalInWorker",e))(XP||{}),QP=(e=>(e.CANVAS="canvas",e.API="api",e))(QP||{}),ZP=(e=>(e[e.NONE=0]="NONE",e[e.MICROPHONE=1]="MICROPHONE",e[e.CAMERA=2]="CAMERA",e[e.BOTH=3]="BOTH",e))(ZP||{}),$P=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))($P||{}),eL={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"},tL={AVOID_REPEATED_CALL:e=>"previous ".concat(e.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' is a required param when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="";return s=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(o,"' must be type of ").concat(s," when calling ").concat(r,"(), received type: ").concat(xw(n),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be '").concat(n,"' when calling ").concat(r,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(o,"' must be instanceof ").concat(s," when calling ").concat(r,"(), received type: ").concat(xw(n),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' must be one of ").concat(i.values.join("|")," when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_MIN(e){let{key:t,rule:i,fnName:r,value:n}=e;return"the min value of ".concat(t||i.name," is ").concat(i.min,", received: ").concat(n,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:i,fnName:r,value:n}=e;return"the max value of ".concat(t||i.name," is ").concat(i.max,", received: ").concat(n,".")},API_CALL_TIMEOUT:e=>"".concat(e.commandDesc||e.command," timeout observed."),SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED:e=>"SignalChannel setup failure: (errorCode: ".concat(e.errorCode,", errorMsg: ").concat(e.errorMsg," })."),ERROR_MESSAGE(e){let t="".concat(e.type," failed");return e.message&&(t="".concat(t,": ").concat(e.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:e=>"exchange sdp failed ".concat(e.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:e=>"'".concat(e,"' must be validate string when useStringRoomId is true."),INVALID_ROOMID_INTEGER:e=>"'".concat(e,"' 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(e){let{error:t,code:i}=e;return"Failed to join room - ".concat(t," code: ").concat(i)},REJOIN_ROOM_FAILED:e=>"reJoin room: ".concat(e.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:e=>"duplicate ".concat(e," stream publishing, please unpublish your prev ").concat(e," 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(e){let{message:t,userId:i,streamType:r}=e;return"failed to subscribe ".concat(i," ").concat(r," stream, reason: ").concat(t,".")},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:e=>"switchRole failed, errCode: ".concat(e.code," errMsg: ").concat(e.message,"."),CLIENT_BANNED:e=>"client was banned because of ".concat(e.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:e=>"startPublishCDNStream failed, errMsg: ".concat(e.message,"."),STOP_PUBLISH_CDN_FAILED:e=>"stopPublishCDNStream failed, errMsg: ".concat(e.message,"."),INVALID_STREAM_ID:e=>"'".concat(e,"' 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:e=>"cannot replace ".concat(e.kind," track because stream has not ").concat(e.kind," track"),NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED:e=>"startMixTranscode failed, errMsg: ".concat(e.message,"."),STOP_MIX_TRANSCODE_FAILED:e=>"stopMixTranscode failed, errMsg: ".concat(e.message,"."),MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be less than 0 when calling ").concat(r,"().")},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:e=>"'".concat(e,"' 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:e=>{let{key:t,fnName:i}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(i,"().")},INVALID_ELEMENT_ID_TYPE:e=>{let{key:t,fnName:i,type:r}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(i,"(), received: ").concat(r,".")},PLAY_FAILED:e=>"".concat(e.media," play failed, browser exception: ").concat(e.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:e=>"".concat(e,"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:e=>"".concat(e.signalResponse," failed, response code is ").concat(e.code," , errMsg: ").concat(e.message,"."),CATCH_HANDLER_ERROR(e){let{name:t,event:i}=e;return"an error was caught in ".concat(t,".on('").concat(i,"', handler), please check your code in 'handler'.")},API_NOT_EXIST(e){let{name:t}=e;return"experimental api ".concat(t," does not exist.")},REPEAT_JOIN:e=>"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(e){let{funName:t}=e;return"failed to call ".concat(t,"() because client was destroyed.")},SEI_NOT_SUPPORT:e=>"not support to sendSEIMessage".concat(!1===e?" 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:e=>{let{isSize:t,name:i,timesInSecond:r,maxSizeInSecond:n}=e;return"api ".concat(i," call ").concat(t?"size":"times"," is over ").concat(t?"".concat(n," bytes"):r," in a second.")},CONNECTION_ABORTED:e=>"connection aborted due to: ".concat(e),API_CALL_ABORTED(e){let t;return t=e.message.includes("REMOTE_STREAM_NOT_EXIST")?"Subscribe ".concat(e.userId," ").concat(e.streamType," stream aborted, reason: remote user ").concat(e.userId," unpublished stream."):"API aborted, reason: ".concat(e.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:e=>"'streamType' is required when 'userId' is not '*', calling ".concat(e,"()")},iL=(e,t)=>t?"".concat(Mk,"/").concat(e,"/").concat(t):"".concat(Mk,"/").concat(e,"/index.html"),rL=()=>{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 e=null==localStorage?void 0:localStorage.getItem(Vk);if(e){e=JSON.parse(e);let t=document.createElement("script");t.type="text/javascript",t.text=e.message,document.body.appendChild(t);let i=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:i,TRTC_ERROR_LINK:r}}return{}};function nL(e){let{key:t,data:i,link:r,addDocLink:n=!0}=e,o="",s="",a="";Vw(tL[t])?o=tL[t](i):Fw(tL[t])&&(o=tL[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:l}=rL();r?a="".concat(r.className,".html#").concat(r.fnName):l&&l[t]&&(Vw(l[t])?a=l[t](i):Fw(l[t])&&(a=l[t]));let d=o;return Ow()&&(c&&c[t]&&(Vw(c[t])?s=c[t](i):Fw(c[t])&&(s=c[t])),s&&(d=n?"".concat(s,"\n请查看文档: ").concat(iL("zh-cn",a),"\n\n"):"".concat(s,"\n\n"),d+=o)),n&&(d+=" \nRefer to: ".concat(iL("en",a),"\n")),d}var oL,sL=Jb(ek(),1),aL=class{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];qb(this,"countMap",new Map),qb(this,"distributionMap",new Map),qb(this,"version"),qb(this,"log",JM.createLogger({id:"kv"})),e&&(BM.on("102",e=>{let{track:t,cost:i}=e;this.addSuccessEvent({key:t.kind===Xk.AUDIO?501700:511700,cost:i})}),BM.on("103",e=>{let{track:t,error:i}=e;this.addFailedEvent({key:t.kind===Xk.AUDIO?501700:511700,error:i})}),BM.on("266",e=>{let{enable:t}=e;this.log.info("".concat(t?"enable":"disable"," sso")),t?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(){let e={msg_sdk_basic_info:{uint32_sdk_version:fN(this.version||vk),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(e=>{let[t,i]=e;return{uint32_key:t,uint32_count:i}}),stats_distribution:[...this.distributionMap.entries()].map(e=>{let[t,i]=e;return{uint32_key:t,distribution_items:[...i.entries()].map(e=>{let[t,i]=e;return{uint32_item_key:t,uint32_item_value:i}})}})};return this.countMap.clear(),this.distributionMap.clear(),e}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(e){let t=+String(e).slice(-3);return t>=700&&t<799}isErrorCodeKey(e){let t=+String(e).slice(-3);return t>=600&&t<699}isCountKey(e){let t=+String(e).slice(-3);return t>=0&&t<599}isNumberKey(e){let t=+String(e).slice(-3);return t>=800&&t<899}addCount(e){let{key:t,useUV:i=!1}=e;this.isCountKey(t)?i&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1):this.log.debug("".concat(t," is not count key, last 3 number should be 0~599"))}addEnum(e){let{key:t,value:i,useUV:r=!0}=e;var n;if(!this.isEnumKey(t))return this.log.debug("".concat(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=(null==(n=this.distributionMap)?void 0:n.get(t))||new Map;o.set(i,(o.get(i)||0)+1),this.distributionMap.set(t,o)}addNumber(e){let{key:t,value:i,split:r=100,useUV:n=!1,max:o=5e3}=e;var s;if(!this.isNumberKey(t))return this.log.debug("".concat(t," is not number key, last 3 number should be 800~899"));if(n&&this.countMap.has(t))return;i>o&&(i=o),this.countMap.set(t,(this.countMap.get(t)||0)+1);let a=(null==(s=this.distributionMap)?void 0:s.get(t))||new Map,c=0;if(Bw(r))c=Math.floor(i/r);else for(let l=r.length-1;l>0;l--)if(i>r[l]){c=l;break}a.set(c,(a.get(c)||0)+1),this.distributionMap.set(t,a)}addSuccessEvent(e){let{key:t,cost:i,timeKey:r,split:n}=e;if(t&&(this.addEnum({key:t,value:1,useUV:!1}),i)){let e=+String(t).slice(-3);e<800&&e>=700?this.addNumber({key:r||t+100,value:i,split:n}):r||this.log.debug("time stat ignored, ".concat(t))}}addFailedEvent(e){let{key:t,error:i}=e;if(!t)return;let r=ak.UNKNOWN;i&&(Bw(i)?r=i:(!Uw(i.extraCode)||!Uw(i.code))&&(r=i.extraCode||i.code)),this.addEnum({key:t,value:0,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},cL=(e=>(e[e.enterRoom=500700]="enterRoom",e[e.exitRoom=500701]="exitRoom",e[e.switchRole=500702]="switchRole",e[e.destroy=500703]="destroy",e[e.startLocalAudio=500704]="startLocalAudio",e[e.updateLocalAudio=500705]="updateLocalAudio",e[e.stopLocalAudio=500706]="stopLocalAudio",e[e.startLocalVideo=500707]="startLocalVideo",e[e.updateLocalVideo=500708]="updateLocalVideo",e[e.stopLocalVideo=500709]="stopLocalVideo",e[e.startScreenShare=500710]="startScreenShare",e[e.updateScreenShare=500711]="updateScreenShare",e[e.stopScreenShare=500712]="stopScreenShare",e[e.startRemoteVideo=500713]="startRemoteVideo",e[e.updateRemoteVideo=500714]="updateRemoteVideo",e[e.stopRemoteVideo=500715]="stopRemoteVideo",e[e.muteRemoteAudio=500716]="muteRemoteAudio",e[e.setRemoteAudioVolume=500717]="setRemoteAudioVolume",e[e.use=500718]="use",e[e.switchRoom=500719]="switchRoom",e[e.sendSEIMessage=5e5]="sendSEIMessage",e[e.sendCustomMessage=500001]="sendCustomMessage",e))(cL||{}),lL=(e=>(e[e.AudioMixer=550700]="AudioMixer",e[e.AIDenoiser=551700]="AIDenoiser",e[e.VirtualBackground=570700]="VirtualBackground",e[e.Beauty=571700]="Beauty",e[e.Watermark=572700]="Watermark",e[e.BasicBeauty=574700]="BasicBeauty",e[e.CDNStreaming=590700]="CDNStreaming",e[e.DeviceDetector=591700]="DeviceDetector",e[e.Debug=592700]="Debug",e[e.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",e[e.VideoMixer=594700]="VideoMixer",e[e.AudioProcessor=595700]="AudioProcessor",e))(lL||{}),dL=(e=>(e[e.AudioMixer=550701]="AudioMixer",e[e.AIDenoiser=551701]="AIDenoiser",e[e.VirtualBackground=570701]="VirtualBackground",e[e.Beauty=571701]="Beauty",e[e.Watermark=572701]="Watermark",e[e.BasicBeauty=574701]="BasicBeauty",e[e.CDNStreaming=590701]="CDNStreaming",e[e.DeviceDetector=591701]="DeviceDetector",e[e.Debug=592701]="Debug",e[e.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",e[e.VideoMixer=594701]="VideoMixer",e[e.AudioProcessor=595701]="AudioProcessor",e))(dL||{}),uL=(e=>(e[e.AudioMixer=550702]="AudioMixer",e[e.AIDenoiser=551702]="AIDenoiser",e[e.VirtualBackground=570702]="VirtualBackground",e[e.Beauty=571702]="Beauty",e[e.Watermark=572702]="Watermark",e[e.BasicBeauty=574702]="BasicBeauty",e[e.CDNStreaming=590702]="CDNStreaming",e[e.DeviceDetector=591702]="DeviceDetector",e[e.Debug=592702]="Debug",e[e.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",e[e.VideoMixer=594702]="VideoMixer",e[e.AudioProcessor=595702]="AudioProcessor",e))(uL||{}),hL=((oL=hL||{})[oL.DECODER_TYPE=514700]="DECODER_TYPE",oL[oL.DECODER_HW_SW=514701]="DECODER_HW_SW",oL[oL.DECODE_RESULT=514702]="DECODE_RESULT",oL[oL.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",oL[oL.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",oL[oL.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",oL[oL.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",oL[oL.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",oL[oL.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",oL[oL.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",oL[oL.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",oL[oL.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",oL[oL.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",oL[oL.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",oL[oL.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",oL[oL.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",oL[oL.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",oL),pL=new aL(!0),mL=new aL(!1),_L=pL,fL={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}},gL=new Map([[aO,["Firefox",cO]],[hO,["Edg",pO]],[sM,["Chrome",lM]],[dM,["Safari",hM]],[TO,["TBS",vO]],[yO,["XWEB",SO]],[CO&&eO,["WeChat",bO]],[NO,["QQ(Win)",OO]],[DO,["QQ(Mobile)",wO]],[kO,["QQ(Mobile X5)",wO]],[MO,["QQ(Mac)",PO]],[LO,["QQ(iPad)",xO]],[jO,["MI",JO]],[KO,["HW",YO]],[XO,["Samsung",QO]],[ZO,["OPPO",$O]],[eM,["VIVO",tM]],[dO,["EDGE",uO]],[_O,["SogouMobile",fO]],[gO,["Sogou",EO]]]);function EL(){let e=gL.get(!0);return{browserName:e?e[0]:"unknown",browserVersion:e?e[1]:"unknown"}}var TL=function(){return!(WO||dO||hO&&mO<80||aO&&lO<56)},vL=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(e=>e in window)},yL=function(){if(!navigator.mediaDevices)return IL()||JM.error(tL.NOT_SUPPORTED_MEDIA),!1;let e=["getUserMedia","enumerateDevices"];return e.filter(e=>e in navigator.mediaDevices).length===e.length},SL=!1;function IL(){return"http:"===location.protocol&&!IM&&(SL||JM.error(nL({key:eL.NOT_SUPPORTED_HTTP})),SL=!0,!0)}var AL=function(){return(null==window?void 0:window.OffscreenCanvas)&&(null==window?void 0:window.MediaStreamTrackProcessor)&&(null==window?void 0:window.MediaStreamTrackGenerator)},RL=function(){return!(null==window||!window.MediaStreamTrackGenerator)},CL=function(){return Yb(this,null,function*(){var e,t,i;if(fL.detail.isH264EncodeSupported&&fL.detail.isVp8EncodeSupported)return{isH264EncodeSupported:fL.detail.isH264EncodeSupported,isVp8EncodeSupported:fL.detail.isVp8EncodeSupported,isH265EncodeSupported:fL.detail.isH265EncodeSupported};let r,n=!1,o=!1,s=!1;try{let a=new RTCPeerConnection,c=document.createElement(Xk.CANVAS);c.getContext("2d");let l=c.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),r=yield a.createOffer(),n=-1!==(null==(e=r.sdp)?void 0:e.toLowerCase().indexOf("h264")),o=-1!==(null==(t=r.sdp)?void 0:t.toLowerCase().indexOf("vp8")),s=-1!==(null==(i=r.sdp)?void 0:i.toLowerCase().indexOf("h265")),a.close(),{isH264EncodeSupported:n,isVp8EncodeSupported:o,isH265EncodeSupported:s}}catch(eP){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},bL=function(){return Yb(this,null,function*(){var e;if(fL.detail.isH264DecodeSupported&&fL.detail.isVp8DecodeSupported)return{isH264DecodeSupported:fL.detail.isH264DecodeSupported,isVp8DecodeSupported:fL.detail.isVp8DecodeSupported,isH265DecodeSupported:fL.detail.isH265DecodeSupported};let t,i=!1,r=!1;try{let n=new RTCPeerConnection;qL()?(n.addTransceiver(Xk.VIDEO,{direction:"recvonly"}),t=yield n.createOffer()):t=yield n.createOffer({offerToReceiveVideo:!0}),-1!==t.sdp.toLowerCase().indexOf("h264")&&(i=!0),-1!==t.sdp.toLowerCase().indexOf("vp8")&&(r=!0);let o=-1!==(null==(e=t.sdp)?void 0:e.toLowerCase().indexOf("h265"));return n.close(),{isH264DecodeSupported:i,isVp8DecodeSupported:r,isH265DecodeSupported:o}}catch(tP){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};var kL=TN(e=>Yb(null,null,function*(){let t=Date.now(),i=sx(),r=yL(),n=vL();if(fL.detail.isWebRTCSupported=i,fL.detail.isMediaDevicesSupported=r,fL.detail.isWebCodecsSupported=n,fL.detail.isScreenShareSupported=wL(),fL.detail.isSmallStreamSupported=WL(),37===e)return Object.assign(fL.detail,yield function(){return Yb(this,null,function*(){return ML||(ML=new Promise(e=>Yb(null,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!vL())return void e(t);let i=null,r=null,n=null,o=()=>{n&&clearTimeout(n),i=null,r=null};try{i=document.createElement("canvas"),r=i.getContext("2d"),i.width=320,i.height=240;let s=0,a=()=>{!r||!i||(r.fillStyle="hsl(".concat(s%360,", 50%, 50%)"),r.fillRect(0,0,i.width,i.height),r.fillStyle="white",r.font="20px Arial",r.fillText("Frame ".concat(s),10,30),s++)};n=setTimeout(()=>{o(),e(t)},5e3);let c=[{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(c.map(e=>Yb(null,null,function*(){let t,r={type:e.type,encodeSupported:!1,decodeSupported:!1};try{t=yield new Promise((t,n)=>Yb(null,null,function*(){try{let o=new VideoEncoder({output:e=>{t(e),r.encodeSupported=!0},error:n});o.configure(e.encodeConfig),a();let s=new VideoFrame(i,{timestamp:0});o.encode(s,{keyFrame:!0}),s.close(),yield o.flush(),o.close()}catch(sP){n(sP)}}))}catch(p){return JM.warn("".concat(e.type," encoder error:"),p),r}try{yield new Promise((i,n)=>Yb(null,null,function*(){try{let o=new VideoDecoder({output:e=>{r.decodeSupported=!0,i(0),e.close()},error:n});o.configure(e.decodeConfig),o.decode(t),yield o.flush(),o.close()}catch(sP){n(sP)}}))}catch(p){JM.warn("".concat(e.type," decoder error:"),p)}return r})))).forEach(e=>{"h264"===e.type?(t.isH264EncodeSupported=e.encodeSupported,t.isH264DecodeSupported=e.decodeSupported):"vp8"===e.type&&(t.isVp8EncodeSupported=e.encodeSupported,t.isVp8DecodeSupported=e.decodeSupported)}),o(),e(t)}catch(s){o(),JM.warn("detectWebCodecsSupported failed:",s),e(t)}})),ML)})}()),fL.detail.isBrowserSupported=n,fL.result=r&&n,fL.result||JM.error("".concat(navigator.userAgent," ").concat(hN(fL.detail,!1))),px(e),_L.addNumber({key:523800,value:Date.now()-t}),fL;if(fL.result&&fL.detail.isH264EncodeSupported&&fL.detail.isVp8EncodeSupported&&fL.detail.isH265EncodeSupported&&fL.detail.isH264DecodeSupported&&fL.detail.isVp8DecodeSupported&&fL.detail.isH265DecodeSupported)return fL;let o=TL(),{encode:s,decode:a}=yield function(){return Yb(this,null,function*(){let[e,t]=yield Promise.all([CL(),bL()]);return{encode:{h264:e.isH264EncodeSupported,vp8:e.isVp8EncodeSupported,h265:e.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}(),{h264:c,vp8:l}=s,{h264:d}=a,{h265:u}=s,{vp8:h,h265:p}=a;if(!c||!l){let e=yield CL();JM.warn("detect encode again h264:".concat(c," vp8:").concat(l," result: ").concat(JSON.stringify(e))),c=e.isH264EncodeSupported,l=e.isVp8EncodeSupported}if(c&&d&&rO&&oM&&!yO&&!TO){let{encode:e,decode:t}=yield function(){return Yb(this,null,function*(){return OL||(OL=new Promise(e=>Yb(null,null,function*(){let t={encode:!1,decode:!1},i=()=>{};try{let r=document.createElement("canvas"),n=r.getContext("2d");r.width=320,r.height=240;let o=setInterval(()=>{n.fillText("test",Math.floor(320*Math.random()),Math.floor(240*Math.random()))},66),s=-1,a=-1;i=()=>{clearInterval(s),clearInterval(o),clearTimeout(a),l.close(),d.close(),c.getTracks().forEach(e=>e.stop())},a=setTimeout(()=>{i(),e(t)},2e3);let c=r.captureStream(),l=new RTCPeerConnection({}),d=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",e=>d.addIceCandidate(e.candidate)),d.addEventListener("icecandidate",e=>l.addIceCandidate(e.candidate)),l.addTrack(c.getVideoTracks()[0],c);let u=yield l.createOffer();yield l.setLocalDescription(u),yield d.setRemoteDescription(u);let h=yield d.createAnswer(),p=sL.default.parse(h.sdp),m=p.media[0].rtp.findIndex(e=>"H264"===e.codec);p.media[0].rtp=[p.media[0].rtp[m]],p.media[0].fmtp=p.media[0].fmtp.filter(e=>e.payload===p.media[0].rtp[0].payload),p.media[0].rtcpFb&&(p.media[0].rtcpFb=p.media[0].rtcpFb.filter(e=>e.payload===p.media[0].rtp[0].payload)),h.sdp=sL.default.write(p),yield d.setLocalDescription(h),yield l.setRemoteDescription(h),s=setInterval(()=>Yb(null,null,function*(){t.encode&&t.decode&&(i(),e(t));let[r,n]=yield Promise.all([l.getSenders()[0].getStats(),d.getReceivers()[0].getStats()]);t.encode||r.forEach(e=>{"outbound-rtp"===e.type&&e.mediaType===Xk.VIDEO&&e.bytesSent>0&&(t.encode=!0)}),t.decode||n.forEach(e=>{"inbound-rtp"===e.type&&e.mediaType===Xk.VIDEO&&e.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){i(),JM.warn("detectH264Supported failed",r),e({encode:!0,decode:!0})}})).then(e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&JM.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(DM)),e)),OL)})}();c=e,d=t}return fL.result=o&&i&&r&&(c||l)&&(d||h),fL.detail.isBrowserSupported=o,fL.detail.isWebRTCSupported=i,fL.detail.isH264EncodeSupported=c,fL.detail.isVp8EncodeSupported=l,fL.detail.isH265EncodeSupported=u,fL.detail.isH264DecodeSupported=d,fL.detail.isVp8DecodeSupported=h,fL.detail.isH265DecodeSupported=p,fL.result||JM.error("".concat(navigator.userAgent," ").concat(hN(fL.detail,!1))),px(),_L.addNumber({key:523800,value:Date.now()-t}),fL})),DL=function(){return fL.result},wL=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},NL="undefined"!=typeof HTMLMediaElement&&"setSinkId"in HTMLMediaElement.prototype,OL=null;var ML=null;var PL=(e,t,i)=>{"http:"===location.protocol&&!IM&&(e[t]=()=>{throw new lk({code:ak.INVALID_OPERATION,message:tL.NOT_SUPPORTED_HTTP})})},LL=function(e){return!("candidate-pair"!==e.type||!e.nominated||"in-progress"!==e.state&&"succeeded"!==e.state)&&!(Hw(e.selected)&&!e.selected)};function xL(){let e="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",i=screen.height?screen.height*window.devicePixelRatio:"";e+="".concat(t," * ").concat(i)}return e}function VL(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function UL(){let e={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let i=0;i<t.length;i++)if(t[i]in window){e.isSupported=!0;break}return e.isSupported}function FL(){return"captureStream"in HTMLCanvasElement.prototype}function BL(){return!(CO||iO||cM&&cM<63)&&!(!TL()||!FL())}function HL(){return!(cM<74||dO||gM<11||lO<46)}function WL(){return BL()||HL()}var GL=function(){if(Uw(window.RTCRtpTransceiver)||!qL()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let e=null,t=!1;try{e=new RTCPeerConnection({sdpSemantics:wD}),e.addTransceiver(Xk.AUDIO),t=!0}catch(Sk){}return null==e||e.close(),t};function jL(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function JL(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function KL(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function qL(){return!(11===gM&&!SM)&&("RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype)}var zL=!(!qL()||oM&&cM<86);function YL(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var XL="RTCRtpSender"in window;function QL(){return XL&&"replaceTrack"in window.RTCRtpSender.prototype}function ZL(){return XL&&"setParameters"in window.RTCRtpSender.prototype&&JL()}var $L="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,ex=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,tx=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,ix="undefined"!=typeof InputDeviceInfo&&"getCapabilities"in InputDeviceInfo.prototype,rx=XL&&"createEncodedStreams"in window.RTCRtpSender.prototype&&nM()>=86,nx="RTCRtpScriptTransform"in window,ox=XL&&(rx||nx),sx=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(e=>e in window).length>0};function ax(){let e={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return Uw(window.AudioDecoder)||(e.AudioDecoder=!0),Uw(window.AudioEncoder)||(e.AudioEncoder=!0),Uw(window.VideoDecoder)||(e.VideoDecoder=!0),Uw(window.VideoEncoder)||(e.VideoEncoder=!0),Uw(window.ImageDecoder)||(e.ImageDecoder=!0),e}function cx(){return"mediaSession"in navigator&&!Uw(navigator.mediaSession.setActionHandler)}function lx(){return!Uw(window.WebTransport)}function dx(){return"undefined"!=typeof WebAssembly&&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 ux(){let e={browser:"".concat(RM.name,"/").concat(RM.version),os:PM(),displayResolution:xL(),isScreenShareSupported:wL(),isWebRTCSupported:sx(),isGetUserMediaSupported:VL(),isWebAudioSupported:UL(),isWebSocketsSupported:"WebSocket"in window&&2===window.WebSocket.CLOSING,isWebCodecSupported:ax(),isMediaSessionSupported:cx(),isWebTransportSupported:lx()};return navigator.userAgent.includes("miniProgram")&&(e.browser="mini/".concat(e.browser)),e}var hx="checkResult";function px(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30;qM.setItem(hx+e,{ua:navigator.userAgent,checkResult:fL})}function mx(e){IL();let t=qM.getItem(hx+e);t&&t.ua===navigator.userAgent&&t.checkResult&&function(e,t){return!!Ww(e)&&Object.keys(t).every(t=>t in e)}(t.checkResult.detail,fL.detail)&&(fL=t.checkResult),kL(e)}function _x(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var fx="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function gx(e){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[e]}var Ex=!1;function Tx(){return Yb(this,null,function*(){var e;try{if(Ex||null==(e=null==navigator?void 0:navigator.mediaCapabilities)||!e.encodingInfo)return;let t=LM(),i=xM();if(0===t||0===i)return;Ex=!0;let r=["H264","VP8","VP9","AV1","H265"],[n,o]=yield Promise.all([vx(r),yx(r)]);n&&Object.keys(n).forEach(e=>{let r=gx(e.toLowerCase());_L.addEnum({key:513707,value:+"".concat(r).concat(+n[e].supported).concat(+n[e].powerEfficient).concat(t).concat(i),useUV:!1})}),o&&Object.keys(o).forEach(e=>{let r=gx(e.toLowerCase());_L.addEnum({key:514713,value:+"".concat(r).concat(+o[e].supported).concat(+o[e].powerEfficient).concat(t).concat(i),useUV:!1})})}catch($M){JM.info("detectVideoCodecCapabilities failed",$M)}})}function vx(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1920,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1080,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:30,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:3e3;return Yb(this,null,function*(){let o={};try{for(let s of e){let e=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:"video/".concat(s),width:t,height:i,bitrate:n,framerate:r}});o[s]=e}}catch(Ik){}return o})}function yx(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1920,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1080,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:30,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:3e3;return Yb(this,null,function*(){let o={};try{for(let s of e){let e=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:"video/".concat(s),width:t,height:i,bitrate:n,framerate:r}});o[s]=e}}catch(Ik){}return o})}var Sx=Jb(Xb(),1),Ix=Symbol("instance"),Ax=Symbol("cacheResult"),Rx=class{constructor(e,t,i){this.oldState=e,this.newState=t,this.action=i,this.aborted=!1}abort(e){this.aborted=!0,wx.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},Cx=class extends Error{constructor(e,t,i){super(t),this.state=e,this.message=t,this.cause=i}};var bx=new Map;function kx(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(r,n,o)=>{let s=i.action||n;if(!i.context){let i=bx.get(r)||[];bx.has(r)||bx.set(r,i),i.push({from:e,to:t,action:s})}let a=o.value;o.value=function(){let r=this;for(var n=arguments.length,o=new Array(n),c=0;c<n;c++)o[c]=arguments[c];if(i.context&&(r=Nx.get("function"==typeof i.context?i.context.call(this,...o):i.context)),r.state===t)return i.sync?r[Ax]:Promise.resolve(r[Ax]);r.state instanceof Rx&&r.state.action==i.abortAction&&r.state.abort(r);let l=null;Array.isArray(e)?0==e.length?r.state instanceof Rx&&r.state.abort(r):("string"!=typeof r.state||!e.includes(r.state))&&(l=new Cx(r._state,"".concat(r.name," ").concat(s," to ").concat(t," failed: current state ").concat(r._state," not from ").concat(e.join("|")))):e!==r.state&&(l=new Cx(r._state,"".concat(r.name," ").concat(s," to ").concat(t," failed: current state ").concat(r._state," not from ").concat(e)));let d=e=>{if(i.fail&&i.fail.call(this,e),i.sync){if(i.ignoreError)return e;throw e}return i.ignoreError?Promise.resolve(e):Promise.reject(e)};if(l)return d(l);let u=r.state,h=new Rx(u,t,s);wx.call(r,h);let p=e=>{var n;return r[Ax]=e,h.aborted||(wx.call(r,t),null===(n=i.success)||void 0===n||n.call(this,r[Ax])),e},m=e=>(wx.call(r,u,e),d(e));try{let e=a.apply(this,o);return function(e){return"object"==typeof e&&e&&"then"in e}(e)?e.then(p).catch(m):i.sync?p(e):Promise.resolve(p(e))}catch(oP){return m(new Cx(r._state,"".concat(r.name," ").concat(s," from ").concat(e," to ").concat(t," failed: ").concat(oP),oP instanceof Error?oP:new Error(String(oP))))}}}}var Dx="undefined"!=typeof window&&window.__AFSM__?(e,t)=>{window.dispatchEvent(new CustomEvent(e,{detail:t}))}:"undefined"!=typeof importScripts?(e,t)=>{postMessage({type:e,payload:t})}:()=>{};function wx(e,t){let i=this._state;this._state=e;let r=e.toString();e&&this.emit(r,i),this.emit(Nx.STATECHANGED,e,i,t),this.updateDevTools({value:e,old:i,err:t instanceof Error?t.message:String(t)})}var Nx=class e extends Sx.default{constructor(t,i,r){super(),this.name=t,this.groupName=i,this._state=e.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),i||(this.groupName=this.constructor.name);let n=r[Ix];n?this.name=n.name+"-"+n.count++:r[Ix]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=bx.get(e)||[],i=new Set,r=[],n=[],o=new Set,s=Object.getPrototypeOf(e);bx.has(s)&&(s.stateDiagram.forEach(e=>i.add(e)),s.allStates.forEach(e=>o.add(e))),t.forEach(e=>{let{from:t,to:i,action:o}=e;"string"==typeof t?r.push({from:t,to:i,action:o}):t.length?t.forEach(e=>{r.push({from:e,to:i,action:o})}):n.push({to:i,action:o})}),r.forEach(e=>{let{from:t,to:r,action:n}=e;o.add(t),o.add(r),o.add(n+"ing"),i.add("".concat(t," --\x3e ").concat(n,"ing : ").concat(n)),i.add("".concat(n,"ing --\x3e ").concat(r," : ").concat(n," 🟢")),i.add("".concat(n,"ing --\x3e ").concat(t," : ").concat(n," 🔴"))}),n.forEach(e=>{let{to:t,action:r}=e;i.add("".concat(r,"ing --\x3e ").concat(t," : ").concat(r," 🟢")),o.forEach(e=>{e!==t&&i.add("".concat(e," --\x3e ").concat(r,"ing : ").concat(r))})});let a=[...i];return Object.defineProperties(e,{stateDiagram:{value:a},allStates:{value:o}}),a}static get(t){let i;return"string"==typeof t?(i=e.instances.get(t),i||e.instances.set(t,i=new e(t,void 0,Object.create(e.prototype)))):(i=e.instances2.get(t),i||e.instances2.set(t,i=new e(t.constructor.name,void 0,Object.create(e.prototype)))),i}static getState(t){var i;return null===(i=e.get(t))||void 0===i?void 0:i.state}updateDevTools(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dx(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){wx.call(this,e)}};Nx.STATECHANGED="stateChanged",Nx.UPDATEAFSM="updateAFSM",Nx.INIT="[*]",Nx.ON="on",Nx.OFF="off",Nx.instances=new Map,Nx.instances2=new WeakMap;var Ox="undefined"!=typeof window,Mx=Ox&&window.requestIdleCallback||function(e){let t=Date.now();return setTimeout(()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})},1e3)},Px=Ox&&window.cancelIdleCallback||function(e){clearTimeout(e)},Lx=Ox&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),xx=class e{static generateTaskID(){return this.currentTaskID++}static run(e,t,i){null!=i&&i.fps&&(i.delay=i.delay||Number((1e3/i.fps).toFixed(2))),i=Hb("interval"===e?{delay:2e3,count:0,backgroundTask:!0}:"ric"===e?{delay:1e4,count:0}:"raf"===e?{fps:60,delay:16.6,count:0,backgroundTask:!0}:{delay:2e3,count:0,backgroundTask:!0},i);let r=Wb(Hb({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:t},i),{delay:i.delay});return this.taskMap.set(r.taskID,r),this[e](r),r.taskID}static interval(t){return t.intervalID=setInterval(()=>{t.callback(),t.loopCount+=1,e.isBreakLoop(t)},t.delay)}static intervalInWorker(t){e.sharedWorker||(e.sharedWorker=new Worker(URL.createObjectURL(new Blob(["\n const timers = new Map();\n self.onmessage = function(e) {\n const { taskId, delay, type } = e.data;\n if (type === 'start') {\n timers.set(taskId, setInterval(() => {\n self.postMessage({ type: 'tick', taskId });\n }, delay));\n } else if (type === 'stop') {\n clearInterval(timers.get(taskId));\n timers.delete(taskId);\n }\n };\n "],{type:"application/javascript"}))),e.sharedWorker.onmessage=t=>{var i;if("tick"===t.data.type){let r=e.workerTasks.get(t.data.taskId);r&&(e.isBreakLoop(r)?(null==(i=e.sharedWorker)||i.postMessage({type:"stop",taskId:r.taskID}),e.workerTasks.delete(r.taskID)):(r.callback(),r.loopCount+=1))}}),e.workerTasks.set(t.taskID,t),e.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let i=()=>{if(t.callback(),t.loopCount+=1,!e.isBreakLoop(t))return t.timeoutID=setTimeout(i,t.delay)};return t.timeoutID=setTimeout(i,t.delay)}static ric(t){let i,r=Zw(),n=()=>{if(i=Zw()-r,i>=t.delay&&(r=Zw()-Math.floor(i%t.delay),t.callback(),t.loopCount+=1),!e.isBreakLoop(t))return t.ricID=Mx(n,{timeout:t.delay})};return t.ricID=Mx(n,{timeout:t.delay})}static raf(t){let i,r=Zw(),n=()=>document.hidden&&t.backgroundTask?(i=Zw()-r,r=Zw(),t.callback(),t.loopCount+=1,e.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(n,t.delay-Math.floor(i%t.delay))):(i=Zw()-r,i>=t.delay&&(r=Zw()-Math.floor(i%t.delay),t.callback(),t.loopCount+=1),e.isBreakLoop(t)?void 0:t.rafID=requestAnimationFrame(n));if(t.rafID=requestAnimationFrame(n),t.backgroundTask){let e=()=>{if(document.hidden){let e=Zw()-r;e>=t.delay?n():t.timeoutID=setTimeout(n,t.delay-e)}};document.addEventListener("visibilitychange",e),t.onVisibilitychange=e,document.hidden&&e()}return t.taskID}static hasTask(e){return this.taskMap.has(e)}static clearTask(e){if(!this.taskMap.has(e))return!0;let{intervalID:t,timeoutID:i,rafID:r,ricID:n,onVisibilitychange:o}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),r&&Lx&&Lx(r),n&&Px(n),o&&document.removeEventListener("visibilitychange",o),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.hasTask(e.taskID)||0!==e.count&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};qb(xx,"taskMap",new Map),qb(xx,"currentTaskID",1),qb(xx,"sharedWorker",null),qb(xx,"workerTasks",new Map);var Vx=xx;Xk.SEI_MESSAGE;var Ux={LOADED_DATA:Xk.LOADEDDATA,LOADED_META_DATA:Xk.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:Xk.RESIZE,TIME_UPDATE:"time-update"},Fx={};jb(Fx,{create:()=>Hx,remove:()=>Wx});var Bx=new WeakMap;function Hx(e,t){Bx.has(e)||Bx.set(e,[]);let i=Bx.get(e),r={add:(e,n)=>("addEventListener"in t?(i.push(t.removeEventListener.bind(t,e,n)),t.addEventListener(e,n)):(i.push(t.off.bind(t,e,n)),t.on(e,n)),r)};return r}function Wx(e){let t=Bx.get(e);t&&(t.forEach(e=>e()),Bx.delete(e))}var Gx=new class{constructor(){qb(this,"_roomIdMap",new Map),qb(this,"_configs"),"undefined"==typeof registerProcessor&&(this._configs={sdkAppId:"",userId:"",version:vk,env:Fk.QCLOUD,browserVersion:RM.name+RM.version,ua:navigator.userAgent})}setConfig(e){let{sdkAppId:t,env:i,userId:r,roomId:n}=e;t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=i,this._configs.userId=r,this._roomIdMap.set(r,String(n))}logSuccessEvent(e){IM||!JM.isAbleToUpload||this._configs.env===Fk.QCLOUD&&this.uploadEventToKibana(Wb(Hb({},e),{result:"success"}))}logFailedEvent(e){if(IM||!JM.isAbleToUpload)return;let{eventType:t,code:i,error:r,userId:n}=e,o={roomId:this._roomIdMap.get(n||this._configs.userId),userId:n,eventType:t,result:"failed",code:i||(null==r?void 0:r.extraCode)||(null==r?void 0:r.code)||ak.UNKNOWN};this._configs.env===Fk.QCLOUD&&this.uploadEventToKibana(Wb(Hb({},o),{error:r}))}uploadEventToKibana(e){let t="stat-".concat(e.eventType,"-").concat(e.result);("delta-join"===e.eventType||"delta-leave"===e.eventType||"delta-publish"===e.eventType)&&(t="".concat(e.eventType,":").concat(e.delta)),this.uploadEvent({log:t,userId:e.userId}),"failed"===e.result&&(t="stat-".concat(e.eventType,"-").concat(e.result,"-").concat(e.code),this.uploadEvent({log:t,userId:e.userId,error:e.error}))}uploadEvent(e){let{log:t,userId:i,error:r}=e,n={timestamp:_k(),sdkAppId:this._configs.sdkAppId,userId:i||this._configs.userId,version:vk,log:t};r&&(n.errorInfo=r.message,r.stack&&(n.errorInfo+="\n".concat(r.stack)));let o=GM.enable?bN(n,2002,Number(this._configs.sdkAppId)):JSON.stringify(n);this.sendRequest(vw(this._configs.sdkAppId,Uk.LOG),o)}sendRequest(e,t){setTimeout(()=>LN({url:e,body:t,priority:"low"}).catch(()=>{}),2e3)}},jx=new WeakMap;function Jx(e){let{settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:n}=e;return function(e,o,s){let a=GN({retryFunction:s.value,settings:t,onError(t){let{error:r,retry:n,reject:s,retryFuncArgs:a}=t;var c;i?i.call(this,r,()=>{var t;null!=(t=jx.get(e))&&t.has(o)?n():s(r)},s,a):null!=(c=jx.get(e))&&c.has(o)?n():s(r)},onRetrying(t,i){var n;UN(r)&&r.call(this,t,i),null!=(n=jx.get(e))&&n.has(o)&&(jx.get(e).get(o).stopRetry=i)},onRetryFailed:n});return s.value=function(){let t=jx.get(e);for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return t?t.set(o,{args:r}):jx.set(e,new Map([[o,{args:r}]])),a.apply(this,r).finally(()=>{var t;return null==(t=jx.get(e))?void 0:t.delete(o)})},s}}function Kx(e){let{fnName:t,callback:i,validateArgs:r=!0}=e;return function(e,n,o){let s=o.value;return o.value=function(){for(var n,o,a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(null!=(n=jx.get(e))&&n.has(t)){let{stopRetry:n,args:s}=jx.get(e).get(t),a=!0;if(r)for(let e of s)if(!c.find(t=>t===e)){a=!1;break}a&&(i&&i.apply(this,c),n&&n(),null==(o=jx.get(e))||o.delete(t))}return s.apply(this,c)},o}}var qx=class extends Nx{constructor(e,t){super(e.id,"".concat(t,"-player")),this.options=e,this.kind=t,qb(this,"id"),qb(this,"element",null),qb(this,"track"),qb(this,"url"),qb(this,"attr"),qb(this,"mode"),qb(this,"muted"),qb(this,"_log"),qb(this,"_pausedRetryCount"),qb(this,"_isElementPlayingFired",!1),qb(this,"_interval"),qb(this,"_delayDestroyTimeoutId",0),qb(this,"_playSuccessResolve"),qb(this,"_isReplayByRecreateMediaStreamCalled",!1),qb(this,"isInAutoPlayFailedState",!1),this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=WD,this._state="STOPPED",this.bindTrackEvents(),this._log.info("create ".concat(t,"-player ").concat(this.id))}get isPlaying(){var e;return"PLAYING"===this._state&&!1===(null==(e=this.element)?void 0:e.paused)}get isPaused(){var e;return"PAUSED"===this._state||!0===(null==(e=this.element)?void 0:e.paused)}get isStopped(){return"STOPPED"===this._state}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,null!==e&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return Yb(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,t)=>{this._playSuccessResolve=e,this.element.play().then(e,t)})}catch(Sk){let t=nL({key:eL.PLAY_FAILED,data:{media:this.kind,error:Sk}});if(this._log.warn(Sk),t.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new lk({code:ak.PLAY_NOT_ALLOWED,message:t})}})}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.isStopped||(this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!uM?this._delayDestroyTimeoutId||(this._log.info("destroy element after 3 * ".concat(e)),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(Xk.ENDED),this._interval>0&&Vx.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&&(null==(e=this.element)||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():TM?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 Hx(this.element,this.element).add(Xk.PLAYING,e).add(Xk.ENDED,e).add(Xk.PAUSE,e).add(Xk.ERROR,e).add(Xk.LOADEDDATA,e).add(Xk.LOADEDMETADATA,e)}}bindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;if(e){let t=this.handleTrackEvent.bind(this);null==Fx||Fx.create(e,e).add(Xk.ENDED,t).add(Xk.MUTE,t).add(Xk.UNMUTE,t),e.readyState===Xk.ENDED&&this.handleTrackEvent({type:Xk.ENDED}),e.muted&&this.handleTrackEvent({type:Xk.MUTE})}}bindAutoPlayEvent(){BM.on(WM.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;e&&Wx(e)}unbindEvents(){this.element&&Wx(this.element),this.unbindTrackEvents(),BM.off(WM.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case Xk.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(Xk.PLAYING),this._interval&&(Vx.clearTask(this._interval),this._interval=-1);break;case Xk.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(Xk.ENDED);break;case Xk.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(Xk.PAUSE),iO&&(this._interval=Vx.run("timeout",()=>{this.element&&"PAUSED"===this._state&&this.resume()},{delay:3e3}));break;case Xk.ERROR:if(this.element&&this.element.error){this.handlePaused(Xk.ERROR);let{code:e,message:t}=this.element.error;this._log.error("".concat(this.kind," ").concat(this._log.isLocal?"local":"remote"," MediaError code: ").concat(e," message: ").concat(t," userAgent: ").concat(navigator.userAgent)),Gx.uploadEvent({log:"stat-".concat(this.kind,"-").concat(CD.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),zO||qO?this.emit(Ux.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case Xk.LOADEDDATA:this.kind===Xk.VIDEO&&this.emit(Ux.LOADED_DATA);break;case Xk.LOADEDMETADATA:this.kind===Xk.VIDEO&&this.emit(Ux.LOADED_META_DATA)}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Gx.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),_L.addSuccessEvent({key:this.kind===Xk.AUDIO?506700:516700})}).catch(()=>{var t;this._log.error("replayByRecreateMediaStream failed"),Gx.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),_L.addFailedEvent({key:this.kind===Xk.AUDIO?506700:516700,error:null==(t=this.element)?void 0:t.error}),this.emit(Ux.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn("delay ".concat(e,"ms to recreate mediaStream")),new Promise((t,i)=>{EN(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var e,t,r;this._log.warn("element onerror ".concat(null==(t=null==(e=this.element)?void 0:e.error)?void 0:t.code," fired after recreated mediaStream")),i(null==(r=this.element)?void 0:r.error)}),EN(5e3).then(()=>{var e,r;(!this.isPlaying||null!=(e=this.element)&&e.error)&&i(null==(r=this.element)?void 0:r.error),t()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return Yb(this,null,function*(){switch(e.type){case Xk.ENDED:this.handleStopped(Xk.ENDED);break;case Xk.MUTE:this.handlePaused(Xk.MUTE);break;case Xk.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(Xk.UNMUTE))}})}handlePlaying(e){var t;return this._log.debug("handlePlaying",e),null==(t=this._playSuccessResolve)||t.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}};qb(qx,"PlayerEvent",Ux),Kb([Jx({settings:{retries:2,timeout:0},onError(e,t,i,r){r[0]=(r[0]||1e3)+1e3,t()}})],qx.prototype,"doReplayByRecreateMediaStream",1),Kb([kx([],"PLAYING",{sync:!0,success(e){this.emit(Ux.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],qx.prototype,"handlePlaying",1),Kb([kx("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(Ux.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],qx.prototype,"handlePaused",1),Kb([kx([],"STOPPED",{sync:!0,success(e){this.emit(Ux.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],qx.prototype,"handleStopped",1);var zx,Yx="trtc_autoplay",Xx="".concat(Yx,"_mask"),Qx="".concat(Yx,"_wrapper"),Zx="".concat(Yx,"_header"),$x="".concat(Yx,"_content"),eV="".concat(Yx,"_action_wrapper"),tV="".concat(Yx,"_question"),iV="".concat(Yx,"_collapse"),rV="".concat(Yx,"_action_confirm"),nV="".concat(Yx,"_detail"),oV="#2473E8",sV="dialog",aV="".concat(sV,"-show"),cV="".concat(sV,"-1"),lV="".concat(sV,"-2"),dV=!1,uV=()=>!!document.querySelector(".".concat(Qx)),hV="".concat(Mk,"/").concat(Ow()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),pV="<br><a href='".concat(hV,"' target='_blank'>").concat(Ow()?"其他方案?":"Any other solution?","</a>"),mV="".concat(Ow()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(pV):"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. ".concat(pV)),_V=class{constructor(){if(qb(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),qb(this,"_dialogNode",null),qb(this,"_bodyPosition",""),qb(this,"_showDetail",!1),qb(this,"_isCollapseClicked",!1),qb(this,"_isQuestionClicked",!1),Ow()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!dV){let e=document.createElement("style");e.innerHTML=".".concat(Xx,"{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;}.").concat(Xx," div:not(.").concat(eV,"){display:block !important;}.").concat(Qx,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(Qx," a{color:").concat(oV,";}.").concat(Zx,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat($x,"{margin:8px 0;}.").concat(eV,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(iV,"{margin-right:auto;cursor:pointer}.").concat(tV,"{height:100%;line-height:16px;cursor:pointer;}.").concat(rV,"{margin-left:8px;color:#fff;background:").concat(oV,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(rV,":hover{opacity:0.9;}.").concat(iV,",.").concat(rV,",.").concat($x,",.").concat(tV,"{font-size:14px;}@media screen and (max-width:750px){.").concat(Qx,"{width:80vw;}}"),document.head.appendChild(e),dV=!0}this.addDiaLog()}createDiaLog(){let e=document.createElement("template");e.innerHTML='<div class="'.concat(Xx,"\"><div class='").concat(Qx,"'><div class='").concat(Zx,"'>").concat(location.host,"</div><div class='").concat($x,"'>").concat(this.content,"</div><div class='").concat(nV,'\' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">').concat(mV,"</div><div class='").concat(eV,"'></div></div></div>").trim();let t=document.createElement("button");t.className=rV,t.innerText=Ow()?"恢复播放":"Resume",t.onclick=this.onConfirm.bind(this);let i=document.createElement("div");i.className=tV,i.innerHTML='<?xml version="1.0" encoding="UTF-8"?>\n <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">\n <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"/>\n <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"/>\n <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"/>\n </svg>\n ',i.onclick=this.onQuestionClick.bind(this);let r=document.createElement("div");r.className=iV,r.innerText="".concat(Ow()?"详情 >":"Detail >"),r.onclick=this.onCollapseClick.bind(this);let n=e.content.firstChild,o=n.querySelector(".".concat(eV));return o.appendChild(r),o.appendChild(i),o.appendChild(t),n}addDiaLog(){uV()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(Qx)).onclick=e=>e.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",JM.info("show autoplay dialog"),Gx.uploadEvent({log:aV}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){JM.warn("confirm clicked, try resume stream"),BM.emit(WM.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let e=this._dialogNode.querySelector(".".concat(nV));e.style.visibility="".concat(this._showDetail?"hidden":"visible"),e.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||Gx.uploadEvent({log:cV}),this._isCollapseClicked=!0}onQuestionClick(){window.open(hV,"_blank"),this._isQuestionClicked||Gx.uploadEvent({log:lV}),this._isQuestionClicked=!0}},fV=class extends qx{constructor(e){super(e,Xk.VIDEO),qb(this,"stat",{}),qb(this,"_calculateTimeout",-1),qb(this,"viewMirror",!1),qb(this,"objectFit"),qb(this,"container"),qb(this,"canvas"),qb(this,"_preSize",{width:0,height:0}),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,Uw(e.viewMirror)||(this.viewMirror=e.viewMirror),Uw(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return!("PLAYING"!==this._state||this.element&&this.element.paused)&&("live"===(null==(e=this.track)?void 0:e.readyState)&&!this.track.muted)}initializeElement(){var e;let t=document.createElement(Xk.VIDEO);this.track&&2!==this.mode&&(t.srcObject=new MediaStream([this.track])),t.muted=!0,t.setAttribute("id","video_".concat(this.id)),t.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),t.setAttribute("autoplay","autoplay"),t.setAttribute("playsinline","playsinline"),this.element=t,null==(e=this.container)||e.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e="width: 100%; height: 100%; object-fit: ".concat(this.objectFit,";background-color: black;");return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var t;this.container=e,this.track&&this.elementToRender&&(null==(t=this.container)||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(Xk.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(Xk.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(Xk.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var t;return e.type===Xk.MUTE&&null!=(t=this.stat)&&t.fps&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var t,i,r,n,o,s,a,c;if(2===this.mode)return;super.handleElementEvent(e);let l=e.type;if(l===Xk.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn("".concat(this.kind," player has been remove, element ID: ").concat(null==(t=this.container)?void 0:t.id)),this.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=WD,this._log.info("view container ".concat(null==(i=this.container)?void 0:i.id," is recreated"))),this._pausedRetryCount>0&&!uV()&&(this._log.info("[".concat(WD-this._pausedRetryCount+1,"/").concat(WD,"] ").concat(this.kind," player auto resume when paused")),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let e=this.element.style.transform;l===Xk.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=e.replace("scaleX(-1)",""):l===Xk.LEAVE_PICTURE_IN_PICTURE&&!e.includes("scaleX")&&(this.element.style.transform="".concat(e," scaleX(-1)"))}l===Xk.RESIZE&&(this._preSize.height!==(null==(r=this.element)?void 0:r.videoHeight)||this._preSize.width!==(null==(n=this.element)?void 0:n.videoWidth))&&(this._log.info("video size changed to ".concat(null==(o=this.element)?void 0:o.videoWidth,"x").concat(null==(s=this.element)?void 0:s.videoHeight)),this._preSize.height=(null==(a=this.element)?void 0:a.videoHeight)||0,this._preSize.width=(null==(c=this.element)?void 0:c.videoWidth)||0,this.emit(Ux.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;var i,r,n,o;this.canvas!==e&&(null==(i=this.canvas)||i.remove(),null==e||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?t:0,2===this.mode&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?(null==(r=this.element)||r.remove(),null==(n=this.container)||n.appendChild(e)):this.element&&(null==(o=this.container)||o.appendChild(this.element)))}setAttr(e){let t=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);t.style=Object.assign({width:"100%",height:"100%"},t.style),super.setAttr(t)}get mirror(){return this.viewMirror}setRect(e,t){this.elementToRender&&(this.elementToRender.style.width="".concat(e,"px"),this.elementToRender.style.height="".concat(t,"px"))}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit="".concat(e)),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;var t;super.stop(e),null==(t=this.canvas)||t.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),2===this.mode?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(Ux.MEDIA_TRACK_CHANGED,e),null!==e&&(this.bindTrackEvents(),this.element&&2!==this.mode&&(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(_x()&&this.element&&this._calculateTimeout<0){let e=0,t=null,i=(r,n)=>{this.stat.width=n.width,this.stat.height=n.height,t&&(this.stat.fps=Math.round((n.presentedFrames-t.presentedFrames)/(r-e)*1e3)),e=r,t=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var e;return null==(e=this.element)?void 0:e.requestVideoFrameCallback(i)},2e3))};this.element.requestVideoFrameCallback(i)}}catch(Sk){this._log.warn("init stat failed",Sk)}}};function gV(e,t){return Yb(this,null,function*(){if(!e.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield e.audioWorklet.addModule(t),JM.info("worklet addModule success")}catch(Sk){throw JM.info("worklet addModule catch error. ".concat(Sk.message)),Sk}})}"undefined"!=typeof AudioContext?zx=AudioContext:"undefined"!=typeof webkitAudioContext?zx=webkitAudioContext:"undefined"!=typeof mozAudioContext&&(zx=mozAudioContext);var EV,TV=1500,vV=-1,yV=0,SV=-1,IV=!1;!function e(){try{if(EV)return;(EV=new zx({sampleRate:48e3})).onstatechange=()=>{JM.info("context state: ".concat(EV.state).concat("running"!==EV.state?" visibilityState: ".concat(document.visibilityState):"")),AV()},clearTimeout(vV)}catch(iK){JM.error("initAudioContext failed: ".concat(iK," typeof AudioContextClass: ").concat(typeof zx)),vV=setTimeout(e,1e3)}}();var AV=()=>{"suspended"===EV.state?(yV=Zw(),-1===SV&&(SV=setTimeout(()=>{"suspended"===EV.state&&(IV=!0,BM.emit("155",{isSuspended:!0}))},TV)),bV(),document.addEventListener("click",AV)):"interrupted"===EV.state?bV():(yV&&(_L.addNumber({key:507800,value:Zw()-yV,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),yV=0),-1!==SV&&(clearTimeout(SV),SV=-1,IV&&(IV=!1,BM.emit("155",{isSuspended:!1}))),document.removeEventListener("visibilitychange",AV),document.removeEventListener("click",AV))},RV=0,CV=-1;function bV(){return new Promise((e,t)=>{if("running"===EV.state)return e();Date.now()-RV<1e3?(clearTimeout(CV),CV=setTimeout(()=>{RV=Date.now(),EV.resume().then(e,t)},1e3)):(clearTimeout(CV),RV=Date.now(),EV.resume().then(e,t))}).catch(e=>{JM.warn("context resume failed: ".concat(e)),document.addEventListener("visibilitychange",AV)})}document.addEventListener("click",AV);var kV=e=>EV,DV=class{constructor(e){this.name=e,qb(this,"node"),qb(this,"node2"),qb(this,"pre",new Set),qb(this,"next",new Set),qb(this,"context"),qb(this,"connectedNodes",new Set),qb(this,"nextInputChannelMap",new Map),qb(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(e){this._channelCount=e,this.setChannelCount(this.node,e),this.setChannelCount(this.node2,e),this.next.forEach(t=>t.channelCount=e)}setChannelCount(e,t){!e||e instanceof ScriptProcessorNode||(e.channelCountMode="explicit",e.channelCount=t||this.channelCount||1)}setContext(e){this.context=e,this.node&&e.addMixWeight()}removeContext(){var e;this.node&&(null==(e=this.context)||e.reduceMixWeight()),delete this.context}replaceNode(e){var t;if(e!==this.node)try{this.node?this._disconnect():null==(t=this.context)||t.addMixWeight(),this.node=e,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(AD){JM.error(AD)}}setNode(e,t){var i;if(!this.node)try{null==(i=this.context)||i.addMixWeight(),this.node=e,this.setChannelCount(this.node),t&&(this.node2=t,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),_L.addSuccessEvent({key:502701})}catch(tP){JM.error(tP),_L.addFailedEvent({key:502701,error:tP})}}deleteNode(){var e;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,null==(e=this.context)||e.reduceMixWeight(),this.preNodeReconnect(),_L.addSuccessEvent({key:502702})}catch(Sk){JM.error(Sk),_L.addFailedEvent({key:502702,error:Sk})}}preNodeReconnect(){this.pre.forEach(e=>{e.node?e.reconnect():e.preNodeReconnect()})}connectNext(e){this.next.forEach(t=>{let i=this.nextInputChannelMap.get(t);e._connect(t.node,i)||t.connectNext(e)})}_connect(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return!(!this.node||!e)&&((this.node2||this.node).connect(e,0,t),this.connectedNodes.add(e),!0)}_disconnect(){this.connectedNodes.forEach(e=>{var t;return null==(t=this.node2||this.node)?void 0:t.disconnect(e)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.next.add(e),e.pre.add(this),this.nextInputChannelMap.set(e,t),e}},wV=class extends DV{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:256;super(),this.fftSize=e,qb(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return null==(e=this.node)||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return null==(e=this.node)||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),t=0,i=0,r="M".concat(t,",").concat(i);for(let n=0;n<e.length;n++)i=e[n]/128*100/2,r+="L".concat(t,",").concat(i),t+=1;return r}},NV=class{constructor(){qb(this,"source",new DV),qb(this,"gain",new DV),qb(this,"destination",new DV)}get volume(){var e;return(null==(e=this.gain.node)?void 0:e.gain.value)||1}setVolume(e){1!==e?(this.gain.node||this.gain.setNode(kV().createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}replaceSource(e){this.source.replaceNode(LV(e))}get track(){var e;return null==(e=this.stream)?void 0:e.getAudioTracks()[0]}get stream(){var e;return null==(e=this.destination.node)?void 0:e.stream}},OV=class extends NV{constructor(e){super(),this.context=e,qb(this,"aec",new DV("aec")),qb(this,"mixNode",new DV("mixNode")),qb(this,"silentNode",new DV("silentNode")),qb(this,"denoiser",new DV("denoiser")),qb(this,"voiceChanger",new DV("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){1!==e?(this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}},MV=class{constructor(){qb(this,"audioContext",kV()),qb(this,"destination",this.audioContext.createMediaStreamDestination()),qb(this,"inputs",new Set),qb(this,"mixWeight",0),this.destination.channelCount=1}addMixWeight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.mixWeight+=e,this.mixWeight-1==e+1>>1&&this.mixOnChange()}reduceMixWeight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.addMixWeight(-e)}close(){this.inputs.forEach(e=>e.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},PV=new WeakMap;function LV(e){let t=PV.get(e);if(t)return t;let i=kV();if(e instanceof HTMLAudioElement)t=i.createMediaElementSource(e);else{if(!(e instanceof MediaStreamTrack))return e;t=i.createMediaStreamSource(new MediaStream([e]))}return PV.set(e,t),t}var xV=class e{constructor(e){qb(this,"_volume",0),qb(this,"_volumeDb",0),qb(this,"_log"),qb(this,"_scriptProcessorNode",null),qb(this,"_audioWorkletNode",null),qb(this,"_interval",200),qb(this,"ready",this.preload());let{log:t}=e;this._log=t,BM.on(WM.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-e.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!e.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);';e.workletReady=gV(e.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return e.workletReady.then(()=>this.initAudioWorklet()).catch(e=>(this._log.error("volumeMeter preload error: ".concat(e)),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(e.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=i=>{e.lastMessageTime=Date.now(),this._volume=i.data.volume||0,this._volumeDb=i.data.volumeDb||0,!t&&i.data.cacheLen&&i.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch($M){this._log.error("volumeMeter init audio worklet error: ".concat($M)),Gx.logFailedEvent({userId:this._log.userId,eventType:CD.LOAD_WORKLET,error:$M}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=kV().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{e.lastMessageTime=Date.now();let i=t.inputBuffer.getChannelData(0),r=0;for(let e=0;e<i.length;++e)r+=i[e]*i[e];this._volume=Math.sqrt(r/i.length)||0}}catch($M){this._log.error("volumeMeter init script processor error: ".concat($M))}}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,BM.off(WM.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(100*this._volumeDb)}handleAudioLevelInterval(e){var t;let{interval:i}=e;this._interval=i,null==(t=this._audioWorkletNode)||t.port.postMessage({name:"setIntervalTime",intervalTime:i})}};qb(xV,"lastMessageTime",0),qb(xV,"audioContext",kV()),qb(xV,"workletReady");var VV=xV,UV=class extends DV{constructor(e){super(),qb(this,"_volumeMeter"),this._volumeMeter=new VV(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return Yb(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 t=e.allocationSize({planeIndex:0}),i=new Float32Array(t>>2);e.copyTo(i,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:i},[i.buffer]),e.close()}}},FV=VV,BV=Jb(Xb(),1),HV=e=>t=>t.deviceId===e,WV=class{constructor(e,t){qb(this,"kind"),qb(this,"type"),qb(this,"devices",[]),this.kind=e,this.type=t}update(e,t){let i=e.filter(e=>e.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase()));1===this.devices.length&&JV(this.devices[0])||t&&(i.forEach(e=>{if(e.deviceId&&!this.devices.find(HV(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Added");JM.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}}),this.devices.forEach(e=>{if(e.deviceId&&!i.find(HV(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Removed");JM.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}})),this.devices=i}hasDevice(e){return!!this.devices.find(t=>t.deviceId===e)}},GV=class extends BV.EventEmitter{constructor(){super(),qb(this,"audioInputs",new WV(Xk.AUDIO,"Input")),qb(this,"videoInputs",new WV(Xk.VIDEO,"Input")),qb(this,"audioOutputs",new WV(Xk.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||Vx.run("interval",()=>{this.update()},{delay:1e4}))}init(){KV().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){let i=yield KV(t);return e.audioInputs.update(i,e),e.videoInputs.update(i,e),e.audioOutputs.update(i,e),e}()})}hasBlueTooth(){var e;if((null==(e=kV())?void 0:e.outputLatency)>150)return!0;let t=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(e=>t.some(t=>e.label.toLowerCase().includes(t)))}},jV=Rk||Ak?null:new GV;function JV(e){return e.deviceId===e.groupId&&""===e.groupId}function KV(){return Yb(this,arguments,function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){if(IL()||!yL())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(0!==e){let i={audio:!1,video:!1};if(t.forEach(e=>{JV(e)&&(e.kind===Xk.AUDIO_INPUT?i.audio=!0:e.kind===Xk.VIDEO_INPUT&&(i.video=!0))}),2===e&&(i.audio=!1),1===e&&(i.video=!1),i.audio||i.video){let e;try{e=yield navigator.mediaDevices.getUserMedia(i),i.audio&&bV()}catch(tP){JM.debug("capture before getDevices failed: ",tP)}t=yield navigator.mediaDevices.enumerateDevices(),null==e||e.getTracks().forEach(e=>e.stop())}}return t.map((e,t)=>{let i={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||"".concat(e.kind,"_").concat(t)};return e.deviceId.length>0&&QV.add("".concat(e.deviceId,"_").concat(e.kind)),e.getCapabilities&&(i.getCapabilities=()=>e.getCapabilities()),i})}()})}function qV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return jV.update(e?1:0).then(e=>e.audioInputs.devices)}function zV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return jV.update(e?2:0).then(e=>e.videoInputs.devices)}var YV=!1;function XV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Yb(this,null,function*(){return(iO||dM)&&(e=!1),jV.update(e?1:0).then(e=>e.audioOutputs.devices)})}var QV=new Set;function ZV(e,t){return Yb(this,null,function*(){let i=(yield qV()).find(e=>e.deviceId===GD);return!t&&(null==i?void 0:i.groupId)===e||(null==i?void 0:i.groupId)===e&&i.label===t})}var $V,eU=class extends NV{constructor(e){super(),this.log=e,qb(this,"volumeMeter"),qb(this,"volumeMeterAfter3A"),qb(this,"volumeDestination"),qb(this,"analyser",new wV),this.volumeMeter=new UV({log:this.log}),this.volumeMeterAfter3A=new UV({log:this.log}),this.volumeDestination=new DV,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},tU=class e extends qx{constructor(e){super(e,Xk.AUDIO),qb(this,"_outputDeviceId"),qb(this,"_volume",1),qb(this,"_destination",kV().createMediaStreamDestination()),qb(this,"pipeline"),qb(this,"volumeMeterMode","worklet"),this.mode=0,e.url&&(this.url=e.url),this.pipeline=new eU(this._log)}get duration(){var e;return Math.floor(1e3*((null==(e=this.element)?void 0:e.duration)||0))}get currentTime(){var e;return Math.floor(1e3*((null==(e=this.element)?void 0:e.currentTime)||0))}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(("15.2"===mM||"15.3"===mM||"15.4"===mM)&&this.muted)return void this._log.info("audioElement is muted.");let t=$V||new Audio;t.setAttribute("autoplay","autoplay"),t.srcObject=this.getMediaStream(),t.muted=this.muted,this.url&&(t.crossOrigin="anonymous",t.src=this.url),this.element=t,Bw(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),t===$V&&($V=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(Ux.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(t){return Yb(this,null,function*(){if(this.track||this.url)return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(null==t?void 0:t.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),"worklet"===this.volumeMeterMode?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):"analyser"===this.volumeMeterMode&&this.pipeline.analyser.setNode(kV().createAnalyser()),function(){Yb(this,null,function*(){try{YV||(YV=!0,JM.info("speakers:".concat((yield XV()).map(e=>" ".concat(e.deviceId.slice(0,8),": ").concat(e.label)))))}catch(e){}})}(),zb(e.prototype,this,"play").call(this)})}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return Yb(this,null,function*(){var t,i;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield null==(i=(t=this.element).setSinkId)?void 0:i.call(t,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()}},iU=class extends tU{setTrack(e){this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(Ux.MEDIA_TRACK_CHANGED,e),e&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([e]))))}},rU=class extends tU{constructor(e){super(e),qb(this,"_sourceElement"),qb(this,"_output",new DV),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(kV().destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var t,i,r;(null==(i=null==(t=this.element)?void 0:t.error)?void 0:i.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(Ux.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=(null==(r=e.getSettings())?void 0:r.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: ".concat(e))):e<=1?this.element?(this._log.info("set element volume: ".concat(e)),this.element.volume=e):this._log.info("set element volume: no element"):iO||(this._log.info("start set pipeline volume: ".concat(e)),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),Wx(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.pipeline.destroy();let t=this._sourceElement||this.element;t&&uM&&($V=t),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}},nU=class extends Nx{constructor(e){let{userId:t,sdkAppId:i,mediaType:r,room:n,PlayerClass:o=(1===r?rU:fV)}=e;var s;super(),qb(this,"id",KM()),qb(this,"userId",""),qb(this,"isRemote"),qb(this,"mediaType"),qb(this,"room"),qb(this,"user"),qb(this,"_log"),qb(this,"_inputTrack"),qb(this,"_outputTrack"),qb(this,"isPlayCalled"),qb(this,"container",null),qb(this,"player"),qb(this,"subVideoPlayerMap"),qb(this,"muted",!1),qb(this,"abortCtrl"),qb(this,"objectFit","cover"),qb(this,"mirror"),qb(this,"rotation"),qb(this,"isScreen",!1),qb(this,"manager"),qb(this,"trackSettings"),qb(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=r,this._log=JM.createLogger({id:"".concat(this.kind[0],"t"),userId:null==(s=n||this.room)?void 0:s.userId,remoteUserId:this instanceof JB?void 0:this.userId,sdkAppId:i,type:2===this.mediaType?"auxiliary":"main",isLocal:this instanceof JB}),this.player=new o({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(Ux.PLAYER_STATE_CHANGED,e=>{BM.emit(WM.PLAYER_STATE_CHANGED,Hb({track:this},e)),this.emit("player-state-changed",e)}),this.kind===Xk.VIDEO&&(this.player.on(Ux.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(Ux.LOADED_DATA),BM.emit(WM.VIDEO_LOADED_DATA,{track:this})}),this.player.on(Ux.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(Ux.LOADED_META_DATA)}),this.player.on(Ux.MEDIA_TRACK_CHANGED,e=>{var t;null==(t=this.subVideoPlayerMap)||t.forEach(t=>t.setTrack(e))}),this.player.on(Ux.RESIZE,e=>{this.emit("video-size-changed",Hb({userId:this.userId,streamType:2===this.mediaType?"auxiliary":"main"},e))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(Ux.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||JM}get kind(){return 1===this.mediaType?Xk.AUDIO:Xk.VIDEO}get isAudio(){return this.kind===Xk.AUDIO}get strMediaType(){return 4===this.mediaType?Xk.VIDEO:2===this.mediaType?Xk.SCREEN:Xk.AUDIO}get streamType(){return 2&this.mediaType?"auxiliary":"main"}get isMediaTrackActive(){return!!this.mediaTrack&&(!this.mediaTrack.muted&&"live"===this.mediaTrack.readyState&&this.mediaTrack.enabled)}play(e,t){return Yb(this,null,function*(){let i=Gw(e)?e[0]:e;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(t))),t&&!Uw(t.muted)&&this.setPlayerMute(t.muted),t&&!Uw(t.objectFit)&&(this.objectFit=t.objectFit),void(this.player instanceof fV&&(this.player.setObjectFit(this.objectFit),this.container!==i&&i&&(this.container=i,this.player.setContainer(i)),Gw(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),t))));if(t&&!Uw(t.muted)?this.setPlayerMute(t.muted):(!this.isRemote||this.kind===Xk.VIDEO)&&this.setPlayerMute(!0),t&&!Uw(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof fV&&(this.player.setObjectFit(this.objectFit),t&&!Uw(t.poster)&&this.player.setPoster(t.poster)),this.isPlayCalled=!0,i&&(this.container=i,this.player instanceof fV&&this.player.setContainer(i)),BM.emit(WM.PLAY_TRACK_START,{track:this}),this._outputTrack){this._log.info("play with options: ".concat(JSON.stringify(t)));try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(t),Gw(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),t))}catch(nP){throw this.handleAutoPlayFailed(nP),nP}}else this.log.info("play has not mediaTrack, abort")})}setMirror(e,t){if(this.isScreen||this.kind!==Xk.VIDEO||Uw(e)||e===this.mirror)return;this.mirror=e;let i=this.player;t&&(i=t);let r=this.manager;if(Hw(this.mirror))return i.setViewMirror(this.mirror),void(!this.isRemote&&r&&(r.mirror=!1));switch(this.mirror){case"view":r&&(r.mirror=!1),i.setViewMirror(!0);break;case"publish":r&&(r.mirror=!0),i.setViewMirror(!0);break;case"both":r&&(r.mirror=!0),i.setViewMirror(!1)}}playSubContainer(e,t){return Yb(this,null,function*(){if(!this._outputTrack||this.kind===Xk.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((t,i)=>{var r;e.find(e=>i===e)||(t.stop(),null==(r=this.subVideoPlayerMap)||r.delete(i))});for(let[r,n]of e.entries()){let e=this.subVideoPlayerMap.get(n);e?t&&(Uw(t.objectFit)||e.setObjectFit(t.objectFit)):this.subVideoPlayerMap.set(n,new fV({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(r+1)})}))}let i=[...this.subVideoPlayerMap.values()];for(let e of i)e.setViewMirror(this.player.mirror),yield e.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return(null==(e=this.player)?void 0:e.getInternalAudioLevel())||0}stop(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info("stop ".concat(this.kind," player")),this.player.stop(HN(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(e=>{e.stop()}),this.container=null)}resume(){return Yb(this,null,function*(){var e;this.isPlayCalled&&(yield null==(e=this.player)?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),BM.emit(e?WM.TRACK_MUTED:WM.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){Hx(e,e).add(Xk.MUTE,this.onTrackMuted).add(Xk.UNMUTE,this.onTrackUnmuted).add(Xk.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===Xk.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){Wx(e)}setInputMediaStreamTrack(e){var t;let i=this._inputTrack;if(e!==i)return this._inputTrack=e,this.trackSettings=null==(t=e.getSettings)?void 0:t.call(e),e.enabled=!this.muted,i&&this.uninstallTrackEvent(i),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,i||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var t;e!==this._outputTrack&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",null==(t=e.getSettings)?void 0:t.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)return this.player.play().catch(e=>this.handleAutoPlayFailed(e)),void this.log.info("playing state updated, play ".concat(this.kind))}else if(!this.player.isStopped)return this.player.stop(HN(this)?this.jitterBufferDelay:0),void this.log.info("playing state updated, stop ".concat(this.kind));this.log.debug("updatePlayingState abort ".concat(this.isPlayCalled," ").concat(e," ").concat(this.player.isStopped))}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new _V;else{let e=()=>{this.resume().then(()=>{document.removeEventListener("click",e,!0)})};document.addEventListener("click",e,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof fV?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var t,i,r;if(this.isFirstVideoFrameEmitted)return;let n=null==(t=this.mediaTrack)?void 0:t.getSettings(),o=(null==n?void 0:n.width)||(null==(i=this.player.element)?void 0:i.videoWidth)||0,s=(null==n?void 0:n.height)||(null==(r=this.player.element)?void 0:r.videoHeight)||0;e===Ux.RESIZE&&!o&&!s||e===Ux.LOADED_META_DATA&&!o&&!s||(e===Ux.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,IN(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("".concat(this.kind," track is unable to provide media output"))}onTrackUnmuted(){this._log.info("".concat(this.kind," track is able to provide media output"))}onTrackEnded(){this._log.warn("".concat(this.kind," track ended"))}};Kb([kx([],Nx.INIT,{sync:!0})],nU.prototype,"close",1);var oU=Object.prototype.hasOwnProperty;var sU=function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(Mw(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(oU.call(e,t))return!1;return!0}return!1},aU=GN({retryFunction:function(e){return Yb(this,null,function*(){let t=function(e){return{audio:lU(e),video:dU(e)}}(e);JM.info("getUserMedia with constraints: ".concat(JSON.stringify(t)));let i=[],r=[],n=["label","deviceId","groupId"];t.audio&&(i=yield qV(),JM.info("microphones: ".concat(uN(i.map(e=>Wb(Hb({},e),{groupId:e.groupId.substring(0,8)})),{keysToInclude:n})))),t.video&&(r=yield zV(),JM.info("cameras: ".concat(uN(r,{keysToInclude:n}))));try{let e=yield navigator.mediaDevices.getUserMedia(t);return tx&&e.getTracks().forEach(e=>{JM.info("".concat(e.kind," capabilities: ").concat(uN(e.getCapabilities(),{keysToInclude:XD})))}),t.audio&&bV(),e}catch(nP){let{message:n}=nP;throw"NotFoundError"===nP.name&&(e.video&&r&&0===r.length&&(n=nL({key:eL.CAMERA_NOT_FOUND})),e.audio&&i&&0===i.length&&(n=nL({key:eL.MICROPHONE_NOT_FOUND}))),new lk({code:ak.INITIALIZE_FAILED,name:nP.name,message:n,constraint:nP.constraint})}})},settings:{retries:3,timeout:500},onError:e=>{let{error:t,retry:i,reject:r,retryFuncArgs:n,retriedCount:o}=e,s=o+1;"NotReadableError"===t.name||"OverconstrainedError"===t.name?(1===s?(n[0].video&&(n[0].maxResolution=!1,(!dM||n[0].width*n[0].height<=2073600)&&n[0].frameRate&&(n[0].frameRate=n[0].frameRate>10?10:5)),n[0].retryWhenExactFailed&&n[0].useExactDeviceId&&(n[0].useExactDeviceId=!1)):2===s?n[0].useDeviceIdOnly=!0:3===s&&!n[0].useExactDeviceId&&(n[0].useTrueAsConstraint=!0),i()):r(t),n[0].microphoneId&&cU(n[0].microphoneId,!1),n[0].cameraId&&cU(n[0].cameraId,!0)},onRetrying:e=>{JM.warn("getUserMedia NotReadableError observed, retrying [".concat(e,"/3]"))},onRetryFailed:e=>{Gx.logFailedEvent({eventType:CD.GET_USER_MEDIA_RETRY,error:e})},onRetrySuccess:e=>{Gx.logSuccessEvent({eventType:CD.GET_USER_MEDIA_RETRY}),Gx.uploadEvent({log:"stat-".concat(CD.GET_USER_MEDIA_RETRY,"-success-").concat(e)})}});function cU(e,t){return Yb(this,null,function*(){let i=(t?yield zV():yield qV()).find(t=>t.deviceId===e);i&&Vw(i.getCapabilities)&&JM.warn(uN(i.getCapabilities(),{keysToInclude:XD}))})}function lU(e){if(!e.audio)return!1;if(e.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:e.sampleRate};return!sU(e.microphoneId)&&(t.deviceId=e.useExactDeviceId?{exact:e.microphoneId}:e.microphoneId,e.useDeviceIdOnly)?t:(Bw(e.channelCount)&&(t.channelCount=e.channelCount),Hw(e.echoCancellation)&&!e.echoCancellation&&(t.echoCancellation=!1),Hw(e.noiseSuppression)&&!e.noiseSuppression&&(t.noiseSuppression=!1),Hw(e.autoGainControl)&&!e.autoGainControl&&(t.autoGainControl=!1),!!sU(t)||t)}function dU(e){if(!e.video)return!1;if(e.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=e,i={};return e.cameraId?i.deviceId=e.useExactDeviceId?{exact:e.cameraId}:e.cameraId:e.facingMode&&(i.facingMode=e.facingMode),e.useDeviceIdOnly&&!sU(i)?i:(e.width&&(i.width={ideal:e.width},t&&!aO&&(i.width.max=e.width)),e.height&&(i.height={ideal:e.height},t&&!aO&&(i.height.max=e.height)),aO&&UO&&e.width&&e.height&&e.width*e.height<101376&&(i.width=e.width,i.height=e.height),e.frameRate&&(i.frameRate=e.frameRate),!!sU(i)||i)}var uU=aU;function hU(e){return _U((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Yb(this,null,function*(){return yield e.apply(this,r),t.apply(this,r)})})}function pU(e){return _U((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Yb(this,null,function*(){let i=yield t.apply(this,r);return yield e.call(this,...r),i})})}function mU(e){return _U((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Yb(this,null,function*(){try{return yield t.apply(this,r)}catch(tP){e.call(this,tP)}})})}function _U(e){return function(t,i,r){return r.value=e(r.value,i),r}}var fU=(()=>{let e=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&JM.info("visibility change: ".concat(document.visibilityState)),!e&&(document.addEventListener("visibilitychange",()=>{JM.info("visibility change: ".concat(document.visibilityState)),t=document.visibilityState}),e=!0)}})(),gU=0,EU=class{constructor(){qb(this,"log",JM.createLogger({id:"fq".concat(++gU)})),qb(this,"isRunning",!1),qb(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return 0===this.length?null:this.queue[this.length-1]}push(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i,r;let n=Hb({},e),o=new Promise((e,t)=>{n.resolve=e,n.reject=t});return n.promise=o,t?this.length<=1?this.queue.push(n):null==(r=null==(i=this.lastQueueItem)?void 0:i.promise)||r.then(n.resolve,n.reject):this.queue.push(n),this.log.debug("push ".concat(this.length)),this.isRunning||this.callNext(),o}shift(){let e=this.queue.shift();return this.log.debug("shift ".concat(this.length)),e}callNext(){if(this.isRunning||0===this.length)return;this.log.debug("callNext ",this.length);let{fn:e,args:t,context:i,resolve:r,reject:n}=this.queue[0];this.isRunning=!0,e.apply(i,t).then(r,n).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},TU=new WeakMap,vU=new WeakMap;function yU(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,i,r){let n=r.value;return r.value=function(){let t=TU.get(this)||new EU;for(var i=arguments.length,r=new Array(i),o=0;o<i;o++)r[o]=arguments[o];return TU.set(this,t),t.push({fn:n,args:r,context:this},e)},r}}function SU(e){return function(t,i,r){let n=r.value;return r.value=function(){var t,i,r;let o=[];for(var s=arguments.length,a=new Array(s),c=0;c<s;c++)a[c]=arguments[c];return null==(i=null==(t=TU.get(this))?void 0:t.queue)||i.forEach(e=>o.push(e)),null==(r=vU.get(this))||r.forEach(e=>null==e?void 0:e.queue.forEach(e=>o.push(e))),o.forEach(t=>{t.reject(new lk({code:ak.API_CALL_ABORTED,message:e}))}),TU.delete(this),vU.delete(this),n.apply(this,a)},r}}function IU(e){return function(t,i,r){let n=r.value,o=t=>e(...t);return r.value=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let r=vU.get(this)||new Map,s=r.get(o(t))||new EU;return r.set(o(t),s),vU.set(this,r),s.push({fn:n,args:t,context:this})},r}}function AU(e,t){return _U((i,r)=>function(){let r=e;try{for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];let e=i.apply(this,o),a=Zw();return Kw(e)?e.then(e=>(t?_L.addSuccessEvent({key:r,cost:Zw()-a}):_L.addSuccessEvent({key:r}),e)).catch(e=>{throw _L.addFailedEvent({key:r,error:e}),e}):(_L.addSuccessEvent({key:r}),e)}catch(Ik){throw _L.addFailedEvent({key:r,error:Ik}),Ik}})}var RU={};function CU(){}jb(RU,{Events:()=>HU,Inspect:()=>OU,LastSink:()=>MU,Sink:()=>PU,Subscribe:()=>LU,TimeoutError:()=>WU,audit:()=>YF,bindCallback:()=>AF,bindNodeCallback:()=>RF,buffer:()=>tF,bufferCount:()=>eF,bufferTime:()=>OB,call:()=>bU,catchError:()=>PB,combineLatest:()=>XU,concat:()=>qU,concatMap:()=>vB,concatMapTo:()=>yB,count:()=>NF,create:()=>VU,debounce:()=>ZF,debounceTime:()=>$F,defer:()=>nF,delay:()=>MB,deliver:()=>UU,dispose:()=>DU,elementAt:()=>eB,empty:()=>kF,every:()=>oB,exhaustMap:()=>kB,exhaustMapTo:()=>DB,expand:()=>xB,filter:()=>LF,find:()=>tB,findIndex:()=>iB,first:()=>rB,fromAnimationFrame:()=>SF,fromArray:()=>uF,fromEvent:()=>fF,fromEventPattern:()=>_F,fromFetch:()=>EF,fromIterable:()=>TF,fromPromise:()=>gF,fromReadableStream:()=>yF,fromReader:()=>vF,groupBy:()=>wB,identity:()=>kU,ignoreElements:()=>xF,iif:()=>YU,inspect:()=>wU,interval:()=>hF,last:()=>nB,map:()=>lB,mapTo:()=>dB,max:()=>OF,merge:()=>JU,mergeMap:()=>AB,mergeMapTo:()=>RB,min:()=>MF,never:()=>CF,nothing:()=>CU,of:()=>dF,pairwise:()=>aB,pipe:()=>xU,race:()=>KU,range:()=>IF,reduce:()=>wF,retry:()=>WB,scan:()=>sB,setAsapScheduler:()=>cF,share:()=>jU,shareReplay:()=>zU,skip:()=>HF,skipUntil:()=>WF,skipWhile:()=>GF,startWith:()=>ZU,subject:()=>rF,subscribe:()=>FB,sum:()=>PF,switchMap:()=>_B,switchMapTo:()=>gB,take:()=>VF,takeLast:()=>BF,takeUntil:()=>UF,takeWhile:()=>FF,tap:()=>BB,throttle:()=>qF,throwError:()=>bF,timeInterval:()=>NB,timeout:()=>HB,timer:()=>pF,toPromise:()=>VB,toReadableStream:()=>UB,withLatestFrom:()=>$U,zip:()=>QU});var bU=e=>e(),kU=e=>e;function DU(){this.dispose()}var wU=()=>"undefined"!=typeof __FASTRX_DEVTOOLS__,NU=1,OU=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(e){let t=new BU(e,this,this.streamId++);return HU.subscribe({id:this.id,end:!1},{nodeId:t.sourceId,streamId:t.id}),this(t),t}},MU=class{constructor(){this.defers=new Set,this.disposed=!1}next(e){}complete(){this.dispose()}error(e){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=CU,this.error=CU,this.next=CU,this.dispose=CU,this.subscribe=CU,this.doDefer()}subscribe(e){return e instanceof OU?e.subscribe(this):e(this),this}get bindSubscribe(){return e=>this.subscribe(e)}doDefer(){this.defers.forEach(bU),this.defers.clear()}defer(e){this.defers.add(e)}removeDefer(e){this.defers.delete(e)}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}},PU=class extends MU{constructor(e){super(),this.sink=e,e.defer(this.bindDispose)}next(e){this.sink.next(e)}complete(){this.sink.complete()}error(e){this.sink.error(e)}},LU=class extends MU{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:CU,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:CU,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:CU;if(super(),this._next=t,this._error=i,this._complete=r,this.then=CU,e instanceof OU){let n={toString:()=>"subscribe",id:0,source:e};this.defer(()=>{HU.defer(n,0)}),HU.create(n),HU.pipe(n),this.sourceId=n.id,this.subscribe(e),HU.subscribe({id:n.id,end:!0}),t==CU?this._next=e=>HU.next(n,0,e):this.next=e=>{HU.next(n,0,e),t(e)},r==CU?this._complete=()=>HU.complete(n,0):this.complete=()=>{this.dispose(),HU.complete(n,0),r()},i==CU?this._error=e=>HU.complete(n,0,e):this.error=e=>{this.dispose(),HU.complete(n,0,e),i(e)}}else this.subscribe(e)}next(e){this._next(e)}complete(){this.dispose(),this._complete()}error(e){this.dispose(),this._error(e)}};function xU(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return i.reduce((e,t)=>t(e),e)}function VU(e,t,i){if(wU()){let r=Object.defineProperties(Object.setPrototypeOf(e,OU.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:i,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});HU.create(r);for(let e=0;e<i.length;e++){let t=i[e];"function"==typeof t&&t instanceof OU&&HU.addSource(r,t)}return r}return e}function UU(e,t){return function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return i=>{if(i instanceof OU){let n=VU(t=>{let o=new e(t,...r);o.sourceId=n.id,o.subscribe(i)},t,arguments);return n.source=i,HU.pipe(n),n}return t=>i(new e(t,...r))}}}function FU(e,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:e,payload:t}})}var BU=class extends PU{constructor(e,t,i){super(e),this.source=t,this.id=i,this.sourceId=e.sourceId,this.defer(()=>{HU.defer(this.source,this.id)})}next(e){HU.next(this.source,this.id,e),this.sink.next(e)}complete(){HU.complete(this.source,this.id),this.sink.complete()}error(e){HU.complete(this.source,this.id,e),this.sink.error(e)}},HU={addSource(e,t){FU("addSource",{id:e.id,name:e.toString(),source:{id:t.id,name:t.toString()}})},next(e,t,i){FU("next",{id:e.id,streamId:t,data:i&&i.toString()})},subscribe(e,t){let{id:i,end:r}=e;FU("subscribe",{id:i,end:r,sink:{nodeId:t&&t.nodeId,streamId:t&&t.streamId}})},complete(e,t,i){FU("complete",{id:e.id,streamId:t,err:i?i.toString():null})},defer(e,t){FU("defer",{id:e.id,streamId:t})},pipe(e){FU("pipe",{name:e.toString(),id:e.id,source:{id:e.source.id,name:e.source.toString()}})},update(e){FU("update",{id:e.id,name:e.toString()})},create(e){e.id||(e.id=NU++),FU("create",{name:e.toString(),id:e.id})}},WU=class extends Error{constructor(e){super("timeout after ".concat(e,"ms")),this.timeout=e}},GU=class extends MU{constructor(e){super(),this.source=e,this.sinks=new Set}add(e){e.defer(()=>this.remove(e)),1===this.sinks.add(e).size&&(this.reset(),this.subscribe(this.source))}remove(e){this.sinks.delete(e),0===this.sinks.size&&this.dispose()}next(e){this.sinks.forEach(t=>t.next(e))}complete(){this.sinks.forEach(e=>e.complete()),this.sinks.clear()}error(e){this.sinks.forEach(t=>t.error(e)),this.sinks.clear()}};function jU(){return e=>{let t=new GU(e);if(e instanceof OU){let i=VU(e=>{t.add(e)},"share",arguments);return t.sourceId=i.id,i.source=e,HU.pipe(i),i}return VU(t.add.bind(t),"share",arguments)}}function JU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(e=>{let i=new PU(e),r=t.length;i.complete=()=>{0===--r&&e.complete()},t.forEach(i.bindSubscribe)},"merge",arguments)}function KU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(e=>{let i=new Map;t.forEach(t=>{let r=new PU(e);i.set(t,r),r.complete=()=>{i.delete(t),0===i.size?e.complete():r.dispose()},r.next=e=>{i.delete(t),i.forEach(e=>e.dispose()),r.resetNext(),r.resetComplete(),r.next(e)}}),t.forEach(e=>i.get(e).subscribe(e))},"race",arguments)}function qU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(e=>{let i=0,r=t.length,n=new PU(e);n.complete=()=>{i<r&&!n.disposed?(n.doDefer(),n.subscribe(t[i++])):e.complete()},n.complete()},"concat",arguments)}function zU(e){return t=>{let i=new GU(t),r=[];return i.next=function(t){r.push(t),r.length>e&&r.shift(),this.sinks.forEach(e=>e.next(t))},VU(e=>{e.defer(()=>i.remove(e)),r.forEach(t=>e.next(t)),i.add(e)},"shareReplay",arguments)}}function YU(e,t,i){return VU(r=>e()?t(r):i(r),"iif",arguments)}function XU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(e=>{let i=t.length,r=i,n=i,o=new Array(i),s=()=>{0===--n&&e.complete()};t.forEach((t,i)=>{let n=new PU(e);n.next=t=>{r--,n.next=t=>{o[i]=t,0===r&&e.next(o)},n.next(t)},n.complete=s,n.subscribe(t)})},"combineLatest",arguments)}function QU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(e=>{let i=t.length,r=i,n=new Array(i),o=()=>{0===--r&&e.complete()};t.forEach((t,i)=>{let r=new PU(e),s=[];n[i]=s,r.next=t=>{s.push(t),n.every(e=>e.length)&&e.next(n.map(e=>e.shift()))},r.complete=o,r.subscribe(t)})},"zip",arguments)}function ZU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return e=>VU(function(i){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;for(;r<n&&!i.disposed;)i.next(t[r++]);i.disposed||i.subscribe(e)},"startWith",arguments)}var $U=UU(class extends PU{constructor(e){super(e);let t=new PU(this.sink);for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];t.next=e=>this.buffer=e,t.complete=CU,t.subscribe(XU(...r))}next(e){this.buffer&&this.sink.next([e,...this.buffer])}},"withLatestFrom"),eF=UU(class extends PU{constructor(e,t,i){super(e),this.bufferSize=t,this.startBufferEvery=i,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(e){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(t=>{t.push(e)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(e),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(e=>this.sink.next(e)),super.complete()}},"bufferCount"),tF=UU(class extends PU{constructor(e,t){super(e),this.buffer=[];let i=new PU(e);i.next=t=>{e.next(this.buffer),this.buffer=[]},i.complete=CU,i.subscribe(t)}next(e){this.buffer.push(e)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),iF=function(e,t,i,r){return new(i||(i=Promise))(function(n,o){function s(e){try{c(r.next(e))}catch(t){o(t)}}function a(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){e.done?n(e.value):function(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(s,a)}c((r=r.apply(e,t||[])).next())})};function rF(e){let t=arguments,i=jU()(VU(t=>{i.next=e=>t.next(e),i.complete=()=>t.complete(),i.error=e=>t.error(e),e&&t.subscribe(e)},"subject",t));return i.next=CU,i.complete=CU,i.error=CU,i}function nF(e){return VU(t=>t.subscribe(e()),"defer",arguments)}var oF={promise:e=>{Promise.resolve().then(e)},setImmediate:"undefined"!=typeof setImmediate?e=>setImmediate(e):null,setTimeout:e=>setTimeout(e,0)},sF="undefined"!=typeof Promise?oF.promise:oF.setImmediate?oF.setImmediate:oF.setTimeout,aF=e=>t=>{sF(()=>e(t))},cF=e=>{"function"==typeof e?sF=e:oF[e]&&(sF=oF[e])},lF=e=>aF(t=>{for(let i=0;!t.disposed&&i<e.length;i++)t.next(e[i]);t.complete()});function dF(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return VU(lF(t),"of",arguments)}function uF(e){return VU(lF(e),"fromArray",arguments)}function hF(e){return VU(t=>{let i=0,r=setInterval(()=>t.next(i++),e);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function pF(e,t){return VU(i=>{let r=0,n=setTimeout(()=>{if(i.removeDefer(o),i.next(r++),t){let e=setInterval(()=>i.next(r++),t);i.defer(()=>{clearInterval(e)})}else i.complete()},e),o=()=>clearTimeout(n);i.defer(o)},"timer",arguments)}function mF(e,t){return i=>{let r=e=>i.next(e);i.defer(()=>t(r)),e(r)}}function _F(e,t){return VU(mF(e,t),"fromEventPattern",arguments)}function fF(e,t){if("on"in e&&"off"in e)return VU(mF(i=>e.on(t,i),i=>e.off(t,i)),"fromEvent",arguments);if("addListener"in e&&"removeListener"in e)return VU(mF(i=>e.addListener(t,i),i=>e.removeListener(t,i)),"fromEvent",arguments);if("addEventListener"in e)return VU(mF(i=>e.addEventListener(t,i),i=>e.removeEventListener(t,i)),"fromEvent",arguments);throw"target is not a EventDispachter"}function gF(e){return VU(t=>{e.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function EF(e,t){return VU(nF(()=>gF(fetch(e,t))),"fromFetch",arguments)}function TF(e){return VU(aF(t=>{try{for(let i of e){if(t.disposed)return;t.next(i)}t.complete()}catch(Sk){t.error(Sk)}}),"fromIterable",arguments)}function vF(e){let t=i=>iF(this,void 0,void 0,function*(){if(i.disposed)return;let{done:r,value:n}=yield e.read();r?i.complete():(i.next(n),t(i))});return VU(e=>{t(e)},"fromReader",arguments)}function yF(e){return VU(t=>{let i=new AbortController,r=i.signal;t.defer(()=>i.abort("cancelled")),e.pipeTo(new WritableStream({write(e){t.next(e)},close(){t.complete()},abort(e){t.error(e)}}),{signal:r}).then(()=>t.complete(),e=>t.error(e))},"fromReadableStream",arguments)}function SF(){return VU(e=>{let t=requestAnimationFrame(function i(r){e.disposed||(e.next(r),t=requestAnimationFrame(i))});e.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function IF(e,t){return VU(function(i){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t+e;for(;r<n&&!i.disposed;)i.next(r++);return i.complete(),"range"},"range",arguments)}function AF(e,t){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return VU(i=>{let n=r.concat(e=>(i.next(e),i.complete()));e.apply(t,n)},"bindCallback",arguments)}function RF(e,t){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return VU(i=>{let n=r.concat((e,t)=>e?i.error(e):(i.next(t),i.complete()));e.apply(t,n)},"bindNodeCallback",arguments)}function CF(){return VU(()=>{},"never",arguments)}function bF(e){return VU(t=>t.error(e),"throwError",arguments)}function kF(){return VU(e=>e.complete(),"empty",arguments)}var DF=class extends PU{constructor(e,t,i){super(e),this.f=t;let r=()=>{this.sink.next(this.acc),this.sink.complete()};void 0===i?this.next=e=>{this.acc=e,this.complete=r,this.resetNext()}:(this.acc=i,this.complete=r)}next(e){this.acc=this.f(this.acc,e)}},wF=UU(DF,"reduce"),NF=e=>UU(DF,"count")((t,i)=>e(i)?t+1:t,0),OF=()=>UU(DF,"max")(Math.max),MF=()=>UU(DF,"min")(Math.min),PF=()=>UU(DF,"sum")((e,t)=>e+t,0),LF=UU(class extends PU{constructor(e,t,i){super(e),this.filter=t,this.thisArg=i}next(e){this.filter.call(this.thisArg,e)&&this.sink.next(e)}},"filter"),xF=UU(class extends PU{next(e){}},"ignoreElements"),VF=UU(class extends PU{constructor(e,t){super(e),this.count=t}next(e){this.sink.next(e),0===--this.count&&(this.doDefer(),this.complete())}},"take"),UF=UU(class extends PU{constructor(e,t){super(e);let i=new PU(e);i.next=()=>{i.doDefer(),e.complete()},i.complete=DU,i.subscribe(t)}},"takeUntil"),FF=UU(class extends PU{constructor(e,t){super(e),this.f=t}next(e){this.f(e)?this.sink.next(e):(this.doDefer(),this.complete())}},"takeWhile"),BF=e=>wF((t,i)=>(t.push(i),t.length>e&&t.shift(),t),[]),HF=UU(class extends PU{constructor(e,t){super(e),this.count=t}next(e){0===--this.count&&(this.next=super.next)}},"skip"),WF=UU(class extends PU{constructor(e,t){super(e),e.next=CU;let i=new PU(e);i.next=()=>{i.doDefer(),e.resetNext()},i.complete=DU,i.subscribe(t)}},"skipUntil"),GF=UU(class extends PU{constructor(e,t){super(e),this.f=t}next(e){this.f(e)||(this.next=super.next,this.next(e))}},"skipWhile"),jF={leading:!0,trailing:!1},JF=class extends PU{constructor(e,t,i){super(e),this.durationSelector=t,this.trailing=i}cacheValue(e){this.last=e,this.disposed&&this.throttle(e)}send(e){this.sink.next(e),this.throttle(e)}throttle(e){this.reset(),this.subscribe(this.durationSelector(e))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},KF=class extends PU{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:jF;super(e),this.durationSelector=t,this.config=i,this._throttle=new JF(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(e){this._throttle.disposed&&this.config.leading?this._throttle.send(e):this._throttle.cacheValue(e)}complete(){this._throttle.throttle=CU,this._throttle.complete(),super.complete()}},qF=UU(KF,"throttle"),zF={leading:!1,trailing:!0},YF=e=>UU(KF,"audit")(e,zF),XF=class extends PU{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},QF=class extends PU{constructor(e,t){super(e),this.durationSelector=t,this._debounce=new XF(this.sink),this._debounce.dispose()}next(e){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=e,this._debounce.subscribe(this.durationSelector(e))}complete(){this._debounce.complete(),super.complete()}},ZF=UU(QF,"debounce"),$F=e=>UU(QF,"debounceTime")(t=>pF(e)),eB=UU(class extends PU{constructor(e,t,i){super(e),this.count=t,this.defaultValue=i}next(e){0===this.count--&&(this.defaultValue=e,this.doDefer(),this.complete())}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("not enough elements in sequence"))}},"elementAt"),tB=e=>t=>VF(1)(GF(t=>!e(t))(t)),iB=UU(class extends PU{constructor(e,t){super(e),this.f=t,this.i=0}next(e){this.f(e)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},"findIndex"),rB=UU(class extends PU{constructor(e,t,i){super(e),this.f=t,this.defaultValue=i,this.index=0}next(e){(!this.f||this.f(e,this.index++))&&(this.defaultValue=e,this.doDefer(),this.complete())}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"first"),nB=UU(class extends PU{constructor(e,t,i){super(e),this.f=t,this.defaultValue=i,this.index=0}next(e){(!this.f||this.f(e,this.index++))&&(this.defaultValue=e)}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"last"),oB=UU(class extends PU{constructor(e,t){super(e),this.predicate=t,this.index=0}next(e){this.predicate(e,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){void 0!==this.result?(this.sink.next(this.result),super.complete()):this.error(new Error("no elements in sequence"))}},"every"),sB=UU(class extends PU{constructor(e,t,i){super(e),this.f=t,void 0===i?this.next=e=>{this.acc=e,this.resetNext(),this.sink.next(this.acc)}:this.acc=i}next(e){this.sink.next(this.acc=this.f(this.acc,e))}},"scan"),aB=UU(class extends PU{constructor(){super(...arguments),this.hasLast=!1}next(e){this.hasLast?this.sink.next([this.last,e]):this.hasLast=!0,this.last=e}},"pairwise"),cB=class extends PU{constructor(e,t,i){super(e),this.mapper=t,this.thisArg=i}next(e){super.next(this.mapper.call(this.thisArg,e))}},lB=UU(cB,"map"),dB=e=>UU(cB,"mapTo")(t=>e),uB=class extends PU{constructor(e,t,i){super(e),this.data=t,this.context=i}next(e){let t=this.context.combineResults;t?this.sink.next(t(this.data,e)):this.sink.next(e)}tryComplete(){this.context.resetComplete(),this.dispose()}},hB=class e extends PU{constructor(e,t,i){super(e),this.makeSource=t,this.combineResults=i,this.index=0}subInner(t,i){let r=this.currentSink=new i(this.sink,t,this);this.complete===e.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},pB=class extends uB{},mB=class extends hB{next(e){this.subInner(e,pB),this.next=e=>{this.currentSink.dispose(),this.subInner(e,pB)}}},_B=UU(mB,"switchMap");function fB(e){return(t,i)=>e(()=>t,i)}var gB=fB(UU(mB,"switchMapTo")),EB=class extends uB{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},TB=class extends hB{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(e){this.next2(e),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),EB),this.disposed&&0===this.sources.length&&this.currentSink.resetComplete()}tryComplete(){0===this.sources.length&&this.currentSink.resetComplete(),this.dispose()}},vB=UU(TB,"concatMap"),yB=fB(UU(TB,"concatMapTo")),SB=class extends uB{tryComplete(){this.context.inners.delete(this),super.dispose(),0===this.context.inners.size&&this.context.resetComplete()}},IB=class extends hB{constructor(){super(...arguments),this.inners=new Set}next(e){this.subInner(e,SB),this.inners.add(this.currentSink)}tryComplete(){1===this.inners.size?this.inners.forEach(e=>e.resetComplete()):this.dispose()}},AB=UU(IB,"mergeMap"),RB=fB(UU(IB,"mergeMapTo")),CB=class extends uB{dispose(){this.context.resetNext(),super.dispose()}},bB=class extends hB{next(e){this.next=CU,this.subInner(e,CB)}},kB=UU(bB,"exhaustMap"),DB=fB(UU(bB,"exhaustMapTo")),wB=UU(class extends PU{constructor(e,t){super(e),this.f=t,this.groups=new Map}next(e){let t=this.f(e),i=this.groups.get(t);void 0===i&&(i=rF(),i.key=t,this.groups.set(t,i),super.next(i)),i.next(e)}complete(){this.groups.forEach(e=>e.complete()),super.complete()}error(e){this.groups.forEach(t=>t.error(e)),super.error(e)}},"groupBy"),NB=UU(class extends PU{constructor(){super(...arguments),this.start=new Date}next(e){this.sink.next({value:e,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},"timeInterval"),OB=UU(class extends PU{constructor(e,t){super(e),this.miniseconds=t,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(e){this.buffer.push(e)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},"bufferTime"),MB=UU(class extends PU{constructor(e,t){super(e),this.buffer=[],this.delayTime=t}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(e){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:t,data:i}=e;super.next(i),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(t))}},e)}next(e){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:e})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},"delay"),PB=UU(class extends PU{constructor(e,t){super(e),this.selector=t}error(e){this.dispose(),this.selector(e)(this.sink)}},"catchError"),LB=class extends uB{tryComplete(){let e=this.context.inners.delete(this);super.dispose(),e&&this.context.checkComplete()}next(e){this.sink.next(e),this.context.expandValue(e)}},xB=UU(class extends hB{constructor(e,t){super(e,t),this.project=t,this.inners=new Set,this.sourceCompleted=!1}next(e){this.sink.next(e),this.expandValue(e)}expandValue(e){let t=new LB(this.sink,e,this);this.currentSink=t,this.complete=this.tryComplete,t.complete=t.tryComplete,this.inners.add(t),t.subscribe(this.makeSource(e,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&0===this.inners.size&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},"expand"),VB=()=>e=>new Promise((t,i)=>{let r;new LU(e,e=>r=e,i,()=>t(r))}),UB=()=>e=>{let t;return new ReadableStream({start(i){t=new LU(e,i.enqueue.bind(i),i.error.bind(i),i.close.bind(i))},cancel(){t.dispose()}})},FB=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:CU,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:CU,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:CU;return r=>new LU(r,e,t,i)},BB=UU(class extends PU{constructor(e,t){super(e),t instanceof Function?this.next=i=>{t(i),e.next(i)}:(t.next&&(this.next=i=>{t.next(i),e.next(i)}),t.complete&&(this.complete=()=>{t.complete(),e.complete()}),t.error&&(this.error=i=>{t.error(i),e.error(i)}))}},"tap"),HB=UU(class extends PU{constructor(e,t){super(e),this.timeout=t,this.id=setTimeout(()=>this.error(new WU(this.timeout)),this.timeout)}next(e){super.next(e),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),WB=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return t=>{if(t instanceof OU){let i=VU(r=>{let n=e,o=new PU(r);o.error=e=>{n-- >0?o.subscribe(t):r.error(e)},o.sourceId=i.id,o.subscribe(t)},"retry",[e]);return i.source=t,HU.pipe(i),i}return i=>{let r=e,n=new PU(i);n.error=e=>{r-- >0?t(n):i.error(e)},t(n)}}},GB=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(GB||{}),jB=class e extends nU{constructor(e,t){super({mediaType:e,PlayerClass:t}),qb(this,"isRemote",!1),qb(this,"deviceId"),qb(this,"groupId",""),qb(this,"label",""),qb(this,"sourceTrack"),qb(this,"enableAutoSwitchWhenRecapturing",!0),qb(this,"_isRecapturing",!1),qb(this,"_lastRecaptureTime",0),qb(this,"_onMuteTimeoutId",-1),qb(this,"_encodeCheckTimeoutId",-1),qb(this,"recaptureMode",0),qb(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return"publishing"===this.state.toString()}get isPublished(){return"publish"===this.state}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){Hx(e,e).add(Xk.MUTE,this.onTrackMuted).add(Xk.UNMUTE,this.onTrackUnmuted).add(Xk.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===Xk.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){Wx(e)}setStateToReady(){}capture(e){return Yb(this,null,function*(){var t;try{let i,r=Zw();BM.emit(WM.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(i=new MediaStream,i.addTrack(e.customSource)):(null==(t=this.sourceTrack)||t.stop(),i=yield uU(e));let n=i.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),BM.emit(WM.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Zw()-r}),i}catch(tP){throw BM.emit(WM.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:tP}),this.log.error("getUserMedia error observed ".concat(tP)),tP}})}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return null==(t=this.room)?void 0:t.replaceTrack(this)}get hasFlag(){var e,t;let i=rN((null==(e=this.room)?void 0:e.localPublishFlag)||0,(null==(t=this.room)?void 0:t.userId)||"");return 4===this.mediaType&&i.hasVideo||1===this.mediaType&&i.hasAudio||2===this.mediaType&&i.hasAuxiliary}publish(e,t){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([t,new Promise((t,i)=>Yb(this,null,function*(){var r,n;this.hasFlag?t():xU(fF(e,"local-publish-flag-changed"),LF(()=>this.hasFlag),UF(JU(fF(this,Nx.INIT),fF(this,"ready"))),FB(t)),!(((null==(n=null==(r=this.room)?void 0:r.networkQuality)?void 0:n.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var e,t,r,n,o,s;if(!(((null==(t=null==(e=this.room)?void 0:e.networkQuality)?void 0:t.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let e=this.kind===Xk.AUDIO,t=this.stat.bytesSent>0;if(_L[t?"addSuccessEvent":"addFailedEvent"]({key:e?503700:513702}),!e){let e={H264:513704,H265:513705,VP8:513706}[(null==(n=null==(r=this.room)?void 0:r.videoCodec)?void 0:n.toUpperCase())||"H264"];e&&_L[t?"addSuccessEvent":"addFailedEvent"]({key:e})}t||(_L.addEnum({key:e?503701:513703,value:LM()}),Gx.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(OM()||VM()),userId:this.userId}),this.log.warn(e?"encode failed":"".concat(null==(s=null==(o=this.room)?void 0:o.videoCodec)?void 0:s.toUpperCase()," encode failed")),this.emit("6",this),i(new lk({message:"".concat(this.strMediaType," encode failed"),code:e?ak.AUDIO_ENCODE_FAILED:ak.VIDEO_ENCODE_FAILED})))}},5e3))}))])}unpublish(){this.room&&this.room.localTracks.delete(this),BM.emit(WM.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return Yb(this,null,function*(){if(this.sourceTrack&&ex){let{deviceId:e,groupId:t}=this.sourceTrack.getSettings(),{label:i}=this.sourceTrack;(yield function(e){return Yb(this,arguments,function(e){let{newDeviceId:t,oldDeviceId:i,oldGroupId:r,oldLabel:n,kind:o}=e;return function*(){return t===i&&(o!==Xk.AUDIO||t!==GD||(yield ZV(r,n)))}()})}({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=i,t&&(this.groupId=t),KV().then(t=>{let i=t.find(t=>t.deviceId===e);i&&this.emit("2",i)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!(!this.deviceId||!this.sourceTrack||this.kind===Xk.AUDIO&&!function(e){if(e instanceof CanvasCaptureMediaStreamTrack||!(e instanceof MediaStreamTrack))return!1;let t=e.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("麦克风"))return!0;let i="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(Xk.AUDIO_INPUT);return!!QV.has(i)}(this.sourceTrack)||this.kind===Xk.VIDEO&&!function(e){if(e instanceof CanvasCaptureMediaStreamTrack||!(e instanceof MediaStreamTrack))return!1;let t=e.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let i="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(Xk.VIDEO_INPUT);return!!QV.has(i)}(this.sourceTrack)||this._isRecapturing||e&&UO&&dM)}onTrackMuted(){if(super.onTrackMuted(),fU(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<YD)return void setTimeout(()=>this.onTrackMuted(),YD);this._onMuteTimeoutId=setTimeout(()=>Yb(this,null,function*(){var e;if(null!=(e=this.sourceTrack)&&e.muted){if((iO||rO)&&"visible"!==document.visibilityState)return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return Yb(this,null,function*(){if(zb(e.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()&&0===this.recaptureMode){if(Date.now()-this._lastRecaptureTime<YD)return void setTimeout(()=>this.onTrackEnded(),YD);this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return Yb(this,null,function*(){var t;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),null==(t=this.sourceTrack)||t.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let i={useExactDeviceId:!0};if("user"===e||"environment"===e)i.facingMode=e;else{let t;("audio"===this.kind?yield qV():yield zV()).find(t=>t.deviceId===e)&&(t=e),i.deviceId=t}return this.capture(i).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),BM.emit(WM.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(e=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(e.message)),this.emit("5",e),BM.emit(WM.LOCAL_TRACK_RECAPTURE,{track:this,error:e})})})}getRecoverCaptureDeviceId(){return Yb(this,null,function*(){let e=this instanceof QB;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let i=(KB.get(t)||0)+1;if(KB.set(t,i),i>=3&&this.enableAutoSwitchWhenRecapturing){let r=e?(yield zV()).find(e=>!KB.has(e.deviceId)):(yield qV()).find(e=>!KB.has(e.deviceId));r&&(this.log.warn("".concat(t," capture fail ").concat(i," times, change new ").concat(r.deviceId)),t=r.deviceId)}}return t})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),null==(e=this.manager)||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Kb([kx(Nx.INIT,"ready",{ignoreError:!0,sync:!0})],jB.prototype,"setStateToReady",1),Kb([yU()],jB.prototype,"capture",1),Kb([kx("ready","publish",{ignoreError:!0,success(){this.room.localTracks.add(this),BM.emit(WM.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"})},fail(e){let t="error";if(e.cause instanceof lk){let i=e.cause;i.message.includes("timeout")?t="timeout":i.code===ak.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:e.cause||e})}}),AU(521714,!1)],jB.prototype,"publish",1),Kb([_U(e=>function(){return Yb(this,null,function*(){let t="publish"===this.state?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:t,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),kx([],"ready",{sync:!0})],jB.prototype,"unpublish",1);var JB=jB,KB=new Map;BM.on(WM.SWITCH_DEVICE_SUCCESS,e=>{e.track.deviceId&&KB.delete(e.track.deviceId)});var qB=class e extends JB{constructor(e){super(1,iU),qb(this,"mediaType",1),qb(this,"volume",0),qb(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),qb(this,"playerMuted",!0),qb(this,"pipeline"),qb(this,"earMonitorGainNode",new DV),qb(this,"_output",new DV),qb(this,"codecPipeline",[]),qb(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),qb(this,"mixedAudioReferenceMap",new Map),qb(this,"isAudioContextLongSuspended",!1),this.manager=e,this.pipeline=new OV(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),BM.on(WM.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return FV.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(t){return Yb(this,null,function*(){let i=this.trackSettings||{};_L.addEnum({key:501701,value:i.channelCount||0,useUV:!1}),_L.addEnum({key:501702,value:i.sampleRate||0,useUV:!1}),_L.addEnum({key:502700,value:0});let{sampleRate:r,channelCount:n}=i;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:r,channelCount:n}))),this.pipeline.source.channelCount=n||1,this.pipeline.replaceSource(t),yield zb(e.prototype,this,"setInputMediaStreamTrack").call(this,t),this.updatePlayingState(!!t)})}capture(t){return Yb(this,arguments,function(t){var i=this;let{deviceId:r,customSource:n,useExactDeviceId:o=!0,retryWhenExactFailed:s}=t;return function*(){let t=yield zb(e.prototype,i,"capture").call(i,{video:!1,audio:!0,microphoneId:r,echoCancellation:i.profile.echoCancellation,autoGainControl:i.profile.autoGainControl,noiseSuppression:i.profile.noiseSuppression,sampleRate:i.profile.sampleRate,channelCount:i.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:n});return bV(),t}()})}switchDevice(e){return Yb(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource){if(e!==GD)return;if(yield ZV(this.groupId,this.label))return}try{this.log.info("switchDevice audio to: ".concat(e)),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),BM.emit(WM.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(AD){throw this.log.error("switch microphone failed ".concat(AD)),this.deviceId&&this.recapture(this.deviceId),AD}}})}listenDeviceChange(){jV&&!jV.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&jV.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return Yb(this,null,function*(){if(e.deviceId===this.deviceId){let t=1===this.recaptureMode;if(this.log.warn("RecaptureMode: ".concat(GB[this.recaptureMode],". Current microphone is lost: ").concat(JSON.stringify(e))),0===this.recaptureMode){UH(this.userId,{eventId:2003,param1:6,streamType:1});let e=yield qV();e[0]?this.recapture(e[0].deviceId):t=!0}t&&jV.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){1===this.recaptureMode&&e.deviceId!==this.deviceId||(jV.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}update3A(e){return Yb(this,arguments,function(e){var t=this;let{echoCancellation:i,noiseSuppression:r,autoGainControl:n}=e;return function*(){let e=t.sourceTrack||t.mediaTrack;if(!e)return;let o=e.getConstraints(),s=!1;!Uw(i)&&i!==t.profile.echoCancellation&&(t.profile.echoCancellation=i,o.echoCancellation=i,s=!0),!Uw(r)&&r!==t.profile.noiseSuppression&&(t.profile.noiseSuppression=r,o.noiseSuppression=r,s=!0),!Uw(n)&&n!==t.profile.autoGainControl&&(t.profile.autoGainControl=n,o.autoGainControl=n,s=!0),s&&(aO||dM?yield e.applyConstraints(o).catch(e=>t._log.warn("update3A failed: ",e)):t.deviceId&&(yield t.recapture(t.deviceId)))}()})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&_L.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),iO&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(kV().createGain()),this._output.setNode(kV().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!dM&&!iO)return this.update3A({echoCancellation:e})}addDenoiser(e){var t;cM<=92&&48e3!==(null==(t=this.trackSettings)?void 0:t.sampleRate)?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(_L.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}mixAudioReference(e,t){if(this.mixedAudioReferenceMap.has(t))return;this.log.info("mixAudioReference() => ".concat(t));let i=LV(e),r=new DV,n=kV().createGain();n.gain.value=1;let o=new DV;r.pipeTo(o).pipeTo(this.pipeline.mixNode),r.setNode(i),o.setNode(n),this.mixedAudioReferenceMap.set(t,[r,o])}unMixAudioReference(e){let[t,i]=this.mixedAudioReferenceMap.get(e)||[];t&&(this.log.info("unMixAudioReference() => ".concat(e)),t.deleteNode(),null==i||i.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,t){let[i,r]=this.mixedAudioReferenceMap.get(e)||[];null!=r&&r.node&&(r.node.gain.value=t/100,this.log.info("setAudioReferenceVolume() => ".concat(e," ").concat(r.node.gain.value)))}addAudioProcessor(e,t,i){this.pipeline.silentNode.setNode(i),this.pipeline.mixNode.setNode(t),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=>{let[t,i]=e;t.deleteNode(),i.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),jV.off("audioInputAdded",this.handleMicrophoneAdded,this),jV.off("audioInputRemoved",this.handleMicrophoneRemoved,this),BM.off(WM.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(t){return Yb(this,null,function*(){try{yield zb(e.prototype,this,"recapture").call(this,t)}catch(AD){let r=(yield qV()).find(e=>e.deviceId!==t);if(!r)throw AD;yield zb(e.prototype,this,"recapture").call(this,r.deviceId)}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((e,t)=>t?t({frame:e,ntp:mk()}):e,e):e}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(e=>e)}handleAudioContextLongSuspended(e){let{isSuspended:t}=e;if(this.pipeline.isProcessEnabled)if(t){this.isAudioContextLongSuspended=!0,this.log.warn("context has suspended for ".concat(1.5," seconds, change to source audio").concat(uM?"":", non-Safari"));let e=this.sourceTrack||this.mediaTrack;e&&this.setOutputMediaStreamTrack(e)}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 t=this.sourceTrack||this.mediaTrack;t&&(e=t)}super.setOutputMediaStreamTrack(e)}},zB=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.dataView=e,this.isSEI&&(t?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let e=this.seiPayloadStartIndex,t=this.dataView.byteLength-2,i=[],r=0;for(let o=e;o<=t;o++){let e=this.dataView.getInt8(o);switch(e){case 0:case 1:case 2:case 3:2===r&&(i.push(3),r=0),0==e?r++:r=0,i.push(e);break;default:r=0,i.push(e)}}i.push(this.dataView.getInt8(this.dataView.byteLength-1));let n=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...i]).buffer);this.dataView=n}removePreventionByte(){let e=this.seiPayloadStartIndex,t=this.dataView.byteLength-1,i=[],r=0;for(let o=e;o<=t;o++)switch(this.dataView.getInt8(o)){case 0:r++,i.push(this.dataView.getInt8(o));break;case 3:2!==r&&i.push(this.dataView.getInt8(o)),r=0;break;default:i.push(this.dataView.getInt8(o)),r=0}let n=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...i]).buffer);this.dataView=n}get isSEI(){return 6===this.dataView.getUint8(4)}get seiPayloadStartIndex(){let e=6;for(let t=6;t<this.dataView.buffer.byteLength&&(e++,255===this.dataView.getUint8(t));t++);return e}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let e=0,t=6;for(let n=6;n<this.dataView.buffer.byteLength;n++){let i=this.dataView.getUint8(n);if(t++,255!==i){e+=i;break}e+=255}let i=new ArrayBuffer(e),r=new DataView(i);for(let n=0;n<i.byteLength;n++,t++)r.setInt8(n,this.dataView.getInt8(t));return r}},YB=class{constructor(){qb(this,"_seiMessageList",[]),qb(this,"_smallSeiMessageList",[]),qb(this,"_seiPayloadType",243)}encodeSEINalu(e){let t=e.byteLength,i=parseInt(String(t/255),10),r=t%255,n=[];n.push(0,0,0,1,6,this._seiPayloadType);for(let s=0;s<i;s++)n.push(255);n.push(r);let o=new DataView(e);return n.push(...new Uint8Array(o.buffer)),n.push(128),new zB(new DataView(new Uint8Array(n).buffer),!0)}sendSEI(e,t){null!=t&&t.seiPayloadType&&(this._seiPayloadType=t.seiPayloadType),this._seiMessageList.push(e),null!=t&&t.small&&this._smallSeiMessageList.push(e)}isEmpty(){return!this._seiMessageList.length}getNaluCount(e){let t=0,i=0,r=new DataView(e);for(let n=0;n<e.byteLength;n++)switch(r.getUint8(n)){case 0:t++;break;case 1:(2===t||3===t)&&i++,t=0;break;default:t=0}return i}encode(e,t){let i=t?this._smallSeiMessageList:this._seiMessageList;if(i.length>0&&e.data.byteLength>0){let t=9-this.getNaluCount(e.data);if(t<=0)return 0;let r=i.splice(0,t).reverse().map(this.encodeSEINalu.bind(this)),n=r.reduce((e,t)=>e+t.dataView.byteLength,0),o=new ArrayBuffer(n+e.data.byteLength),s=new DataView(o),a=new DataView(e.data),c=0;for(let e=0;e<r.length;e++)for(let t=0;t<r[e].dataView.byteLength;t++)s.setInt8(c++,r[e].dataView.getInt8(t));for(let i=0;i<e.data.byteLength;i++)s.setInt8(c++,a.getInt8(i));return e.data=o,r.length}return 0}},XB=class e extends JB{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,fV),qb(this,"profile",Hb({},qk)),qb(this,"avoidCropping",!1),qb(this,"_scaleResolutionDownBy"),qb(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0}),qb(this,"small"),qb(this,"isNeedToSetBandwidth"),qb(this,"muteImage"),qb(this,"manager"),qb(this,"_seiCodec",new YB),this.manager=e;let t=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&"publish"===this.state&&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(Wb(Hb({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",t),this.on("publish",t),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(ex&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return(null==(e=this._inputTrack)?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return"detail"===(null==(e=this._inputTrack)?void 0:e.contentHint)}setMute(t){return Yb(this,null,function*(){var i,r,n;if(Fw(t)){if(this.muteImage===t)return;yield null==(i=this.manager)?void 0:i.deleteWatermark("mute"),yield null==(r=this.manager)?void 0:r.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:t}),this.muteImage=t,zb(e.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield null==(n=this.manager)?void 0:n.deleteWatermark("mute"),this.muteImage=void 0),zb(e.prototype,this,"setMute").call(this,t)})}capture(e){let{deviceId:t,facingMode:i,useExactDeviceId:r=!0,customSource:n,retryWhenExactFailed:o=!0}=e;return super.capture({audio:!1,video:!0,facingMode:i||this.facingMode,cameraId:t,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:r,retryWhenExactFailed:o,customSource:n})}setProfile(e){let t=this.fallbackProfile(e);t.bitrate&&(this.isNeedToSetBandwidth=t.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(t):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(Wb(Hb({},this.profile),{width:1920,height:1080})))}applyProfile(){return Yb(this,null,function*(){var e;if(!this.mediaTrack)return;let{width:t=0,height:i=0}=(this.sourceTrack||this.mediaTrack).getSettings(),r=t*i,n=this.settings,o=n.height!==this.profile.height||n.width!==this.profile.width||n.frameRate!==this.profile.frameRate;if(o&&(16===gM&&this.deviceId?yield this.recapture(this.deviceId):(yield null==(e=this.sourceTrack||this.mediaTrack)?void 0:e.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&&"publish"===this.state&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:e=0,height:t=0}=(this.sourceTrack||this.mediaTrack).getSettings(),i=e*t;return o&&i&&r&&i===r?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:Xk.VIDEO,videoType:Xk.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},t=this.sourceTrack||this.mediaTrack;return ex&&t&&Object.assign(e,t.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:SN(this.settings,this.profile)}isAllowed2k4k(e){var t;return!(this.room&&this.room.scheduleResult&&!this.isScreen&&!(e.height*e.width<3686400))||1===(null==(t=this.room.scheduleResult.trtcAutoConf)?void 0:t["2k4k"])}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return Yb(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};if("user"===e||"environment"===e){t.facingMode=e;try{if((qO||iM)&&"environment"===e&&ix){let e=(yield zV(!0)).map(e=>{var t;return Wb(Hb({},e),{capabilities:null==(t=e.getCapabilities)?void 0:t.call(e)})}).filter(e=>{var t,i;return null==(i=null==(t=e.capabilities)?void 0:t.facingMode)?void 0:i.includes("environment")}),i=e[0];e.forEach(e=>{var t,r,n,o;let{capabilities:s}=e;(null!=(t=s.width)&&t.max&&null!=(r=s.height)&&r.max?s.width.max*s.height.max:0)>(null!=(n=i.capabilities.width)&&n.max&&null!=(o=i.capabilities.height)&&o.max?i.capabilities.width.max*i.capabilities.height.max:0)&&(i=e)}),null!=i&&i.capabilities&&(delete t.facingMode,this._log.info("switch to max res camera",i),t.deviceId=i.deviceId)}}catch(tP){this._log.warn("get max res camera failed",tP)}}else t.deviceId=e;this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(t),BM.emit(WM.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(AD){throw this.log.error("switch camera failed ".concat(AD)),this.deviceId&&this.recapture(this.deviceId),AD}})}updateSmallConfig(e){var t,i;this._log.info("update small stream config: ".concat(JSON.stringify(e)));let r=!this.small;this.small=this.fallbackProfile(e,!0),null==(t=this.manager)||t.update(),r&&(null==(i=this.room)||i.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=e.width>e.height,r=Hb({},e);return e.width*e.height<=19200&&rO&&oM&&(this.log.warn("".concat(t?"small ":"","resolution is ").concat(e.width,"*").concat(e.height,", fallback to 240*180 for android chrome")),r.width=i?240:180,r.height=i?180:240,r.bitrate=Math.max(e.bitrate,150)),e.width*e.height>921600&&vM&&(r.width=i?1280:720,r.height=i?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),_M(mM,"14.3")&&fM(mM,"14.0",!0)&&this.on("7",()=>{let e=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=e?640:480,this.profile.height=e?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>230400&&(this.profile.width=e?640:360,this.profile.height=e?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!t&&this.avoidCropping&&(oM||aO)&&!kM()&&e.width*e.height<=230400&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),r}stopSmall(){var e,t;this.small&&(delete this.small,null==(e=this.manager)||e.update(),null==(t=this.room)||t.enableSmall(!1))}listenDeviceChange(){jV&&!jV.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&jV.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return Yb(this,null,function*(){if(e.deviceId===this.deviceId){let t=1===this.recaptureMode;if(this.log.warn("RecaptureMode: ".concat(GB[this.recaptureMode],". Current camera is lost: ").concat(JSON.stringify(e))),0===this.recaptureMode){UH(this.userId,{eventId:2003,param1:7,streamType:2});let e=yield zV();e[0]?this.recapture(e[0].deviceId):t=!0}t&&jV.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return Yb(this,null,function*(){1===this.recaptureMode&&e.deviceId!==this.deviceId||(jV.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn("camera added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))})}encodeFrame(e,t){if(!this.manager)return e;let i=t?8:this.mediaType;return this.manager.encodePipeline.reduceRight((e,t)=>t?t({frame:e,mediaType:i}):e,e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(e=>e)}play(e,t){return Uw(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){jV.off("videoInputAdded",this.handleCameraAdded,this),jV.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(t){return Yb(this,null,function*(){try{yield zb(e.prototype,this,"recapture").call(this,t)}catch(AD){let r=(yield zV()).find(e=>e.deviceId!==t);if(!r)throw AD;yield zb(e.prototype,this,"recapture").call(this,r.deviceId)}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info("setContentHint ".concat(e)),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||Uw(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Kb([pU(function(e){this.setContentHint(e.contentHint||"motion")})],XB.prototype,"capture",1);var QB=XB,ZB={};jb(ZB,{REPORT_TYPE:()=>CN,buildSSOPackage:()=>bN,bytes2ms:()=>bw,calculateScaleResolutionDownNumber:()=>SN,concatArrayBuffers:()=>kN,convertObjectNumberToInt:()=>gN,copyProperties:()=>Cw,deepClone:()=>aN,deepCloneBasic:()=>RN,deepMerge:()=>sN,delay:()=>EN,fibonacci:()=>Pw,formatedTime:()=>dN,getConstructorName:()=>zw,getContainerFromElement:()=>lN,getEnv:()=>Ew,getFirst16Bits:()=>wN,getInternalVersion:()=>eN,getLast16Bits:()=>DN,getLoggerUrl:()=>vw,getMediaStreamTrackInfo:()=>yN,getMuteStateFromFlag:()=>rN,getNetworkType:()=>Sw,getNumNetworkType:()=>Rw,getReconnectionTimeout:()=>Lw,getStringByteLength:()=>pN,getTurnServer:()=>nN,getUint32Version:()=>fN,getValueType:()=>xw,getViewListFromView:()=>cN,glog:()=>Nw,ipv4ToUint32:()=>oN,isArray:()=>Gw,isAudioWorkletSupported:()=>Yw,isBoolean:()=>Hw,isConstructor:()=>qw,isEmpty:()=>iN,isFunction:()=>Vw,isLangChinese:()=>Ow,isMediaStreamTrack:()=>jw,isNumber:()=>Bw,isObject:()=>Ww,isOverseaSdkAppId:()=>Tw,isPlainObject:()=>Mw,isPortrait:()=>mN,isPromise:()=>Kw,isRemoteTrack:()=>Jw,isRotate90Or270:()=>IN,isSetSinkIdSupported:()=>Xw,isString:()=>Fw,isUndefined:()=>Uw,loadImage:()=>_N,loadVideo:()=>AN,ms2bytes:()=>Dw,ms2samples:()=>ww,normalizeUrl:()=>vN,performanceNow:()=>Zw,promiseAny:()=>Qw,samples2ms:()=>kw,setNetworkType:()=>Aw,stringify:()=>uN,stringifyIncludeValue:()=>hN,throttlePromise:()=>TN});var $B=[-1,-1,1,-1,-1,1,1,1],eH=[0,0,1,0,0,1,1,1],tH=class e extends Nx{constructor(e,t){if(super(),this.context=e,qb(this,"name"),qb(this,"input"),qb(this,"output"),qb(this,"texture"),qb(this,"ctx2d",null),qb(this,"fbo"),qb(this,"width",0),qb(this,"height",0),qb(this,"x",0),qb(this,"y",0),qb(this,"program"),qb(this,"vertexShader"),qb(this,"fragmentShader"),qb(this,"totalFrames",0),qb(this,"dropFrames",0),qb(this,"matchInputSize",!0),qb(this,"texCoordBuffer"),qb(this,"positionBuffer"),qb(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),qb(this,"cost",0),qb(this,"_canvas",null),qb(this,"_image"),qb(this,"log"),this.context.on("disconnect",this.close,this),this.name=t.name,this.log=t.logger,this.matchInputSize=!1!==t.matchInputSize,this.width=t.width||e.width,this.height=t.height||e.height,this._image=t.image,e instanceof gH)e.ctx&&t.create2d&&("function"==typeof OffscreenCanvas&&16!==gM?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);else try{let i=e.ctx;this.texCoordBuffer=this.createBuffer(eH),this.positionBuffer=this.createBuffer($B),!1!==t.createTexture&&(this.texture=i.createTexture(),this.useTexture(),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.pixelStorei(i.PACK_ALIGNMENT,1),i.pixelStorei(i.UNPACK_ALIGNMENT,1)),t.useFbo&&(this.fbo=i.createFramebuffer(),this.useBufferFrame(),this.useTexture(),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.texture,0)),t.useDefaultProgram?this.program=e.defaultProgam:(t.vertexShaderSource||t.fragmentShaderSource)&&(this.vertexShader=t.vertexShaderSource?e.createShader(i.VERTEX_SHADER,t.vertexShaderSource):e.defaultVShader,this.fragmentShader=t.fragmentShaderSource?e.createShader(i.FRAGMENT_SHADER,t.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(tP){this.context.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(tP.message||tP)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let t=this.context.ctx,i=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,i),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),i}connect(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return e.addInput(this,...i),this.output=e,e}addInput(e){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let t=Date.now();return!!(this.context instanceof fH&&this.render(e)||this.context instanceof gH&&this.render2d(e))&&(this.totalFrames++,this.cost=Date.now()-t,!0)}render2d(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&this.draw2d(this.input.image,0,0,this.width,this.height)}update(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;var t;null==(t=this.output)||t.update(e)}disconnect(){for(var e,t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];null==(e=this.output)||e.removeInput(this,...i),delete this.output}removeInput(e){delete this.input}close(){var e,t;if(this.context.off("disconnect",this.close,this),null==(e=this.output)||e.removeInput(this),delete this.output,null==(t=this.input)||t.disconnect(),this.context instanceof fH){let e=this.context.ctx;e.deleteBuffer(this.texCoordBuffer),e.deleteBuffer(this.positionBuffer),this.fbo&&e.deleteFramebuffer(this.fbo),this.texture&&e.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&e.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&e.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&e.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(null==(e=this.input)?void 0:e.texture)}useTextures(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];i.forEach((t,i)=>{t&&(e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,t))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let t=this.context.ctx,i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),i}setTexBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}setPosBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}changeBufferData(e,t){let i=this.context.ctx;i.bindBuffer(i.ARRAY_BUFFER,e),i.bufferData(i.ARRAY_BUFFER,new Float32Array(t),i.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];i.forEach((t,i)=>{e.enableVertexAttribArray(i),e.bindBuffer(e.ARRAY_BUFFER,t),e.vertexAttribPointer(i,2,e.FLOAT,!1,0,0)})}getVertexPoint(e,t){return[e/this.width*2-1,t/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,t){if(this.width!==e||this.height!==t){if(this.width=e,this.height=t,this._canvas&&(this._canvas.width=e,this._canvas.height=t),this.texture&&this.fbo){this.useTexture();let i=this.context.ctx;i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,t,0,i.RGBA,i.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,t)}}draw(e,t){this.setAttributes(e||this.positionBuffer,t||this.texCoordBuffer);let i=this.context.ctx;i.drawArrays(i.TRIANGLE_STRIP,0,4)}draw2d(t,i,r,n,o,s,a,c,l){let d=!(Uw(s)||Uw(a)||Uw(c)||Uw(l));return!(!this.ctx2d||!t)&&(t instanceof ImageData?(d?this.ctx2d.putImageData(t,i,r,s,a,c,l):this.ctx2d.putImageData(t,i,r),this.emit(e.RENDER,this.ctx2d.canvas)):(d?this.ctx2d.drawImage(t,s,a,c,l,i,r,n,o):this.ctx2d.drawImage(t,i,r,n,o),this.emit(e.RENDER,t)),"undefined"!=typeof VideoFrame&&t instanceof VideoFrame&&t.close(),!0)}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 e;let{totalFrames:t,x:i,y:r,width:n,height:o,name:s,cost:a}=this,c=Date.now(),l=(t-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:t,x:i,y:r,width:n,height:o,timestamp:c,fps:l,name:s,cost:a},Hb({parent:null==(e=this.input)?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let t=this.context.ctx,i=t.createTexture();return this.useTextures(i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),i}};qb(tH,"RENDER","render"),Kb([kx(Nx.INIT,"connected",{sync:!0})],tH.prototype,"connect",1),Kb([kx("connected",Nx.INIT,{ignoreError:!0,sync:!0})],tH.prototype,"disconnect",1),Kb([kx([],"closed",{sync:!0})],tH.prototype,"close",1);var iH=tH,rH=xU(hF(250),lB(()=>performance.now()),jU()),nH=[0,1,1,1,0,0,1,0],oH=class extends iH{constructor(e,t){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},t)),qb(this,"_intervalId",0),qb(this,"_sequence",0),qb(this,"checkGLError",!1),qb(this,"checkVisibilityChange"),e instanceof gH?this.ctx2d=e.ctx||null:e.available&&null!=t&&t.mirrorUpAndDown&&this.setTexBuffer(nH)}start(e){this.log.info("".concat(this.name," start render ").concat(e," fps")),Vx.clearTask(this._intervalId),this._intervalId=Vx.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(Vx.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof fH){let e=this.context.ctx.getError();e&&this.context.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:5,message:"".concat(this.name," req ").concat(this._sequence," render ").concat(this.totalFrames," faild ").concat(e)}))}},{fps:this.context.frameRate})}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(iH.RENDER,this.context._canvas),!0)}addInput(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];super.addInput(e,...i),this.start(this.context.frameRate)}update(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._intervalId&&(Vx.clearTask(this._intervalId),this._intervalId=0,1===e&&(this.log.info("".concat(this.name," use requestVideoFrameCallback")),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),Vx.clearTask(this._intervalId)}resize(e,t){super.resize(e,t),this.context.setSize(e,t)}close(){super.close(),Vx.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},sH=class extends oH{constructor(e,t){super(e,t),qb(this,"_videoTrack"),qb(this,"_muteOb"),qb(this,"_closedOb",fF(this,"closed")),qb(this,"_subscription"),qb(this,"_canvasContainer"),Number(hM)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=fF(this._videoTrack,"mute"),xU(fF(this._videoTrack,"ended"),UF(this._closedOb),FB(()=>{this.context.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){var e;this._subscription=xU(this._muteOb,UF(this._closedOb),gB((e=5e3,t=>{let i=performance.now();xU(rH,GF(t=>t-i<e),VF(1))(t)})),LF(()=>{var e;return!(null==(e=this._videoTrack)||!e.muted||document.hidden)}),FB(()=>{this.context.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;null==(e=this._subscription)||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info("".concat(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,t;super.close(),null==(e=this._videoTrack)||e.stop(),delete this._videoTrack,null==(t=this._canvasContainer)||t.remove()}},aH=class extends sH{render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))}},cH=class extends sH{constructor(e,t,i){super(e,{name:"smallDestination",logger:i}),this.resolution=t}resize(e,t){let i,r=e*t,n=this.resolution.width*this.resolution.height;this.log.info("big res: ".concat(e,"*").concat(t," small res: ").concat(this.resolution.width,"*").concat(this.resolution.height," ")),r>n?i=r/n:(this.log.warn("Small stream resolution is not smaller than big stream, which is invalid. big: ".concat(e," * ").concat(t," small: ").concat(this.resolution.width," * ").concat(this.resolution.height)),i=r/19200),super.resize(e/Math.sqrt(i),t/Math.sqrt(i))}},lH=class extends iH{constructor(e,t){super(e,Hb({name:"imageSource"},t)),qb(this,"_lastImage"),qb(this,"_totalFrames",0),qb(this,"_autoResize",!1),qb(this,"_canvasRendered"),qb(this,"videoCallbackId",0),qb(this,"waitingFirstFrame",!0),qb(this,"shouldUpdate",!0),this._autoResize=!1!==(null==t?void 0:t.autoResize),16===gM&&(this._canvasRendered=rF(),xU(this._canvasRendered,ZU(this._image),_B(e=>e instanceof HTMLCanvasElement?fF(e,"rendered"):kF()),UF(fF(this,"closed")),FB(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),_x()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((e,t)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=t.presentedFrames,this.update(1))}))}_render(e,t){var i;let{width:r,height:n}=this,{image:o}=this;if(o instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),({videoWidth:r,videoHeight:n}=o),!r||!n)return!1;o.width=r,o.height=n}else if(o instanceof HTMLImageElement||o instanceof ImageData||o instanceof ImageBitmap){if(({width:r,height:n}=o),o!==this._lastImage)this._lastImage=o;else if(r===this.width&&n===this.height)return!0}else o instanceof HTMLCanvasElement||o instanceof OffscreenCanvas?(({width:r,height:n}=o),this._lastImage=o):"undefined"!=typeof VideoFrame&&o instanceof VideoFrame&&(({displayWidth:r,displayHeight:n}=o),null==(i=this._lastImage)||i.close(),this._lastImage=o);if(!this._autoResize)return!0;if(this.width===r&&this.height===n&&this.totalFrames){if(t){this.useTexture();let e=this.context.ctx;e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,o)}}else{if(t){this.useTexture();let e=this.context.ctx;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,o)}this.resize(r,n)}return!0}get image(){return this._image}set image(e){var t;null==(t=this._canvasRendered)||t.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},dH=class extends lH{constructor(e,t,i){super(e,i),this._player=t,this.name="videoPlayerSource",xU(fF(this._player,Ux.PLAYER_STATE_CHANGED),UF(fF(this,"closed")),LF(e=>{let{state:t}=e;return"PLAYING"===t}),FB(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},uH=class extends dH{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(e,t,i){super(e,new fV({id:i.name,track:t,muted:!0,container:null,objectFit:"contain",log:i.logger}),i),this.name="videoTrackSource",this._player.play()}replaceTrack(e){this.waitingFirstFrame=!0,this._player.setTrack(e),this._player.play()}close(){super.close(),this._player.stop()}},hH=class extends iH{constructor(e,t,i){super(e,Wb(Hb({name:"textSource"},i),{create2d:!0})),qb(this,"hasChange",!0),qb(this,"content",""),this.ctx2d.textBaseline="top",this.content=t.content||"",t.font&&(this.font=t.font),t.color&&(this.color=t.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return(null==(e=this.ctx2d)?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return(null==(e=this.ctx2d)?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)}render(e){return!1}resize(e,t){if(!this.ctx2d)return;let{color:i,font:r}=this;super.resize(e,t),this.color=i,this.font=r}drawMultilineText(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1.2;if(!this.ctx2d)return;let r=this.ctx2d.measureText(this.content);t+=r.fontBoundingBoxAscent||r.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),o=(n?parseInt(n[1],10):16)*i,s=this.content.split("\n");for(let a=0;a<s.length;a++)this.ctx2d.fillText(s[a],e,t+a*o)}},pH=class extends Nx{constructor(e){super(),qb(this,"frameRate"),qb(this,"_canvas"),qb(this,"log"),qb(this,"hasAlpha",!1),qb(this,"name"),qb(this,"error"),this.name=e.name,this.log=e.logger.createChild({id:"vc-".concat(this.name)}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return(null==(e=this._canvas)?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return(null==(e=this._canvas)?void 0:e.height)||0}setSize(e,t){this._canvas&&(this._canvas.width=e,this._canvas.height=t)}createVideoTrackSource(e,t){return new uH(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new sH(this,e)}createVideoImageSource(e,t){return new lH(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new dH(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}createTextSource(e,t){return new hH(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return"created"===this.state}disconnect(){this.emit("disconnect")}};qb(pH,"_ids",0);var mH={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},_H=class extends pH{constructor(){super(...arguments),qb(this,"defaultProgam"),qb(this,"defaultVShader"),qb(this,"defaultFShader"),qb(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(pH._ids++)),this.ctx=this._canvas.getContext("webgl2",mH),!this.ctx)throw new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,"\n// 顶点着色器\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\n\nvoid main() {\n gl_Position = a_position;\n v_texCoord = a_texCoord;\n}\n"),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,"\n// 片元着色器\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_texture;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n} "),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let t="";return e&&(t=e.message,this.error=e,_L.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info("video context destroy".concat(t)?": ".concat(t):""),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 t;null==(t=this.ctx)||t.viewport(0,0,e,this.height),super.width=e}set height(e){var t;null==(t=this.ctx)||t.viewport(0,0,this.width,e),super.height=e}setSize(e,t){var i;null==(i=this.ctx)||i.viewport(0,0,e,t),super.setSize(e,t)}createShader(e,t){let i=this.ctx,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),r}createProgram(e,t){let i=this.ctx,r=i.createProgram();return i.attachShader(r,e),i.attachShader(r,t),i.linkProgram(r),i.getProgramParameter(r,i.LINK_STATUS)||this.log.error(i.getProgramInfoLog(r)),r}};qb(_H,"UNAVAILABLE","unavailable"),Kb([kx(Nx.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),_L.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),_L.addSuccessEvent({key:512700})}})],_H.prototype,"create",1),Kb([kx("created",Nx.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(_H.UNAVAILABLE,e),this.removeAllListeners()}})],_H.prototype,"destroy",1);var fH=_H,gH=class extends pH{constructor(){super(...arguments),qb(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(pH._ids++),this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new lk({code:ak.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 t="";e&&(t=e.message,this.error=e,_L.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info("video context destroy ".concat(t?": ".concat(t):"")),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),_L.addSuccessEvent({key:512703})}};function EH(e,t,i,r,n){arguments.length>5&&void 0!==arguments[5]&&arguments[5]&&([i,r]=[r,i]);let o={sWidth:e,sHeight:t,dWidth:i,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(0===e||0===t)return o;switch(n){case void 0:case"fill":break;case"contain":{let n=Math.min(i/e,r/t);o.dWidth=e*n,o.dHeight=t*n,o.dx=(i-o.dWidth)/2,o.dy=(r-o.dHeight)/2;break}case"cover":{let n=Math.max(i/e,r/t),s=i/n,a=r/n;o.sx=(e-s)/2,o.sy=(t-a)/2,o.sWidth=s,o.sHeight=a;break}}return o}Kb([kx(Nx.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),_L.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),_L.addSuccessEvent({key:512701})}})],gH.prototype,"create",1),Kb([kx("created",Nx.INIT,{ignoreError:!0,sync:!0})],gH.prototype,"destroy",1);var TH=class{constructor(e,t){this.node=e,this.layout=t,qb(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}},vH=class extends iH{constructor(e,t){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:t}),qb(this,"inputs",[]),qb(this,"backgroundColor","black")}addInput(e,t){let i=0,r=this.inputs.length;for(;i<r;){let e=Math.floor((i+r)/2);if(this.inputs[e].layout.zIndex<t.zIndex)i=e+1;else{if(!(this.inputs[e].layout.zIndex>t.zIndex))throw new Error("input already exists at zIndex ".concat(t.zIndex));r=e}}let n=new TH(e,t);this.inputs.splice(i,0,n)}changeInputLayout(e,t){let i=this.inputs.findIndex(t=>t.node===e);if(i<0)return;let{x:r,y:n,width:o,height:s,zIndex:a,fillMode:c,rotation:l,hidden:d}=t;if(!Uw(a)&&this.inputs.some(t=>t.layout.zIndex===a&&t.node!==e))throw new Error("input already exists at zIndex ".concat(t.zIndex));let u=this.inputs[i];Uw(r)||(u.layout.x=r),Uw(n)||(u.layout.y=n),Uw(o)||(u.layout.width=o),Uw(s)||(u.layout.height=s),Uw(l)||(u.layout.rotation=l),Uw(d)||(u.layout.hidden=d),c&&(u.layout.fillMode=c),!Uw(a)&&a!==u.layout.zIndex&&(u.layout.zIndex=a,this.inputs.sort((e,t)=>e.layout.zIndex-t.layout.zIndex))}hasInput(e){return this.inputs.some(t=>t.node===e)}hasNoInput(){return 0===this.inputs.length}resize(e,t){if(!this.matchInputSize)return void super.resize(e,t);let i=this.inputs.reduce((e,t)=>t?Object.assign(e,{width:Math.max(e.width,t.right),height:Math.max(e.height,t.bottom)}):e,{width:0,height:0});super.resize(i.width,i.height),this.context instanceof fH&&this.inputs.forEach(e=>{if(e){let t=this.layout2texCoords(e);e.positionBuffer?this.changeBufferData(e.positionBuffer,t):e.positionBuffer=this.createBuffer(t)}})}connect(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return super.connect(e,...i),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(t=>t.node!==e),0===this.inputs.length&&this.drawBackGround2d(this.backgroundColor)}render(e){let t=this.context.ctx;if(t.clearColor(0,0,0,0),this.inputs.reduce((t,i)=>i.node.requestFrame(e)||t,!1)&&t){this.useProgram(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];t&&(t.node.useTexture(),this.draw(t.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(t=>t.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];if(t.hidden)continue;let i=EH(t.node.width,t.node.height,t.width,t.height,t.fillMode,IN(t.rotation));this.draw2d(t.node.image,t.x+i.dx,t.y+i.dy,i.dWidth,i.dHeight,i.sx,i.sy,i.sWidth,i.sHeight)}return!0}return!1}debugLayout(e,t,i,r){let n=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this.ctx2d&&(n&&([i,r]=[r,i]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,t,i,r),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:t,y:i,width:r,height:n,name:o}=this,s=Date.now(),a=(e-this.lastInfo.totalFrames)/((s-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:e,x:t,y:i,width:r,height:n,timestamp:s,fps:a,name:o},Hb({parent:this.inputs.filter(e=>e).map(e=>e.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var t;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof fH)try{null==(t=this.context.ctx)||t.deleteBuffer(e.positionBuffer)}catch(tP){}})}close(){super.close(),this.removeAllInputs()}},yH=[1,0,0,0,1,1,0,1],SH=class extends iH{constructor(e,t,i,r){if(super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:t}),qb(this,"mirror",!1),qb(this,"rotation",0),i&&(this.mirror=i),r&&(this.rotation=r),e instanceof fH)try{this.setTexBuffer(yH)}catch(Ik){e.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(Ik.message||Ik)}))}}draw2d(e,t,i,r,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)),90===this.rotation?(this.ctx2d.translate(r,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/r,r/n)):180===this.rotation?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):270===this.rotation&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/r,r/n));let o=super.draw2d(e,t,i,r,n);return this.ctx2d.restore(),o}return!1}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}resize(e,t){IN(this.rotation)&&([e,t]=[t,e]),super.resize(e,t)}},IH=class extends JB{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,fV),qb(this,"inputLocalVideoTracks",new Map),qb(this,"inputLocalScreenTracks",new Map),qb(this,"cameraNodeMap",new Map),qb(this,"screenNodeMap",new Map),qb(this,"textNodeMap",new Map),qb(this,"imageNodeMap",new Map),qb(this,"videoNodeMap",new Map),qb(this,"endedIds",new Set),qb(this,"videoContext"),qb(this,"mixNode"),qb(this,"destination"),qb(this,"manager"),qb(this,"stat"),qb(this,"_checkId",0),qb(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(iH.RENDER,e=>{this.emit("render",e)}),this.mixNode=new vH(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=Vx.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new gH({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let t of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])t.shouldUpdate=!1;setTimeout(()=>{var e;return null==(e=this.destination)?void 0:e.start(this.videoContext.frameRate)},500)}setFpsAuto(){var e;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let t=null,i=0,r=!0;for(let[n,o]of this.inputLocalVideoTracks)if(o.profile.frameRate>i){if(this.endedIds.has(n)){let e=this.cameraNodeMap.get(n);e&&e.image.cancelVideoFrameCallback(e.videoCallbackId);continue}i=o.profile.frameRate,t=n}for(let[n,o]of this.inputLocalScreenTracks)if(o.profile.frameRate>i){if(this.endedIds.has(n)){let e=this.screenNodeMap.get(n);e&&e.image.cancelVideoFrameCallback(e.videoCallbackId);continue}i=o.profile.frameRate,t=n,r=!1}if(null!==t){let e=r?this.cameraNodeMap.get(t):this.screenNodeMap.get(t);e&&(e.shouldUpdate=!0,e.tryVideoFrameCallback()),this.log.info("set mix fps: ",i)}else null==(e=this.destination)||e.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,t){var i;null==(i=this.mixNode)||i.resize(e,t)}startMix(){return Yb(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),uM&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),null==(e=this.manager)||e.changeInput(this)})}addCameraSource(e,t,i){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error("There is already a cameraSource with the same ID: ".concat(e));let r,{mediaTrack:n}=t;if(!n)throw new Error("no mediaTrack, add cameraSource failed");t.recaptureMode=1,Hx(this,jV).add("videoInputRemoved",i=>{i.deviceId===t.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),t.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,i,t.mediaTrack)}),r=16===gM&&n instanceof CanvasCaptureMediaStreamTrack?this.videoContext.createVideoImageSource(n.canvas,{name:"cameraCanvasSource",logger:this.log}):this.videoContext.createVideoTrackSource(n,"cameraNodeSource"),r.resize(t.settings.width,t.settings.height),r.shouldUpdate=!1,this._connectMix(r,i,"cover"),this.inputLocalVideoTracks.set(e,t),this.cameraNodeMap.set(e,r),this.setFpsAuto()}addScreenSource(e,t,i){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error("There is already a screenSource with the same ID: ".concat(e));let{mediaTrack:r}=t;if(!r)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(r,"screenNodeSource");n.resize(t.settings.width,t.settings.height),n.shouldUpdate=!1,this._connectMix(n,i),this.inputLocalScreenTracks.set(e,t),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:t,content:i="",font:r,color:n,layout:o}=e;if(this.textNodeMap.has(t))throw new Error("There is already a textSource with the same ID: ".concat(t));let s=this.videoContext.createTextSource({content:i,font:r,color:n});s.resize(o.width,o.height),this._connectMix(s,o),this.textNodeMap.set(t,s)}addImageSource(e,t,i){if(this.imageNodeMap.has(e))throw new Error("There is already a imageSource with the same ID: ".concat(e));let r=this.videoContext.createVideoImageSource(t,{autoResize:!1,logger:this.log});r.resize(t.width,t.height),this._connectMix(r,i),this.imageNodeMap.set(e,r)}addVideoSource(e,t,i){if(this.videoNodeMap.has(e))throw new Error("There is already a videoSource with the same ID: ".concat(e));let r=this.videoContext.createVideoImageSource(t,{autoResize:!1,logger:this.log});r.resize(t.videoWidth,t.videoHeight),r.shouldUpdate=!1,this._connectMix(r,i),this.videoNodeMap.set(e,r)}updateCameraSource(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0,n=this.cameraNodeMap.get(e);if(n){if(i){if(16===gM&&i instanceof CanvasCaptureMediaStreamTrack)if(n instanceof uH){let t=n.output;n.close(),n=this.videoContext.createVideoImageSource(i.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(t),this.cameraNodeMap.set(e,n)}else n.image=i.canvas;else if(n instanceof uH)n.replaceTrack(i);else{let t=n.output;n.close(),n=this.videoContext.createVideoTrackSource(i,"cameraNodeSource"),n.connect(t),this.cameraNodeMap.set(e,n)}let{width:t,height:r}=i.getSettings();t&&r&&n.resize(t,r)}r&&n.resize(r.width,r.height),(r||i)&&this.setFpsAuto(),this._changeMixLayout(n,t)}}updateScreenSource(e,t){let i=this.screenNodeMap.get(e);i&&this._changeMixLayout(i,t)}updateTextSource(e){let{id:t,content:i,font:r,color:n,layout:o}=e,s=this.textNodeMap.get(t);s&&(Uw(i)||(s.content=i),Uw(r)||(s.font=r),Uw(n)||(s.color=n),s.resize(o.width,o.height),this._changeMixLayout(s,o))}updateImageSource(e,t,i){let r=this.imageNodeMap.get(e);r&&(i&&(r.image=i,r.resize(i.width,i.height)),this._changeMixLayout(r,t))}updateVideoSource(e,t,i){let r=this.videoNodeMap.get(e);if(r){if(i){let e=r.image;e instanceof HTMLVideoElement&&this.stopVideoElement(e),r.image=i,r.resize(i.videoWidth,i.videoHeight)}this._changeMixLayout(r,t)}}_connectMix(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"contain";if(!this.mixNode)return;let{mirror:r,rotation:n}=t;e.disconnect();let o=new SH(this.videoContext,this.log,r,n);o=e.connect(o),t.fillMode||(t.fillMode=i),o.connect(this.mixNode,t)}_changeMixLayout(e,t){if(!this.mixNode)return;let{mirror:i,rotation:r}=t,n=e.output||e;n instanceof SH&&(Uw(i)||(n.mirror=i),Uw(r)||(n.rotation=r),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,t)}removeCameraSource(e){let t=this.inputLocalVideoTracks.get(e);if(!t)return;t.close(),this.inputLocalVideoTracks.delete(e);let i=this.cameraNodeMap.get(e);i&&(i.output instanceof SH&&i.output.close(),i.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let t=this.inputLocalScreenTracks.get(e);if(!t)return;t.close(),this.inputLocalScreenTracks.delete(e);let i=this.screenNodeMap.get(e);i&&(i.output instanceof SH&&i.output.close(),i.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let t=this.textNodeMap.get(e);t&&(t.output instanceof SH&&t.output.close(),t.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let t=this.imageNodeMap.get(e);t&&(t.output instanceof SH&&t.output.close(),t.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let t=this.videoNodeMap.get(e);t&&(t.output instanceof SH&&t.output.close(),t.image instanceof HTMLVideoElement&&this.stopVideoElement(t.image),t.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),Vx.clearTask(this._checkId),null==(e=this.videoContext)||e.destroy(),delete this.mixNode,delete this.destination;for(let t of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])t.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),Wx(this);for(let t of this.videoNodeMap.values())t.image instanceof HTMLVideoElement&&this.stopVideoElement(t.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}},AH=KM();if("undefined"!=typeof navigator&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:AH,exposeOrigin:!0,permittedOrigins:["*"]})}catch(iK){}var RH=function(e){return Yb(this,null,function*(){let t=null,i=function(e){let t={preferCurrentTab:"current-tab"===e.preferDisplaySurface||!!e.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},i={width:dM?{max:e.width}:{ideal:e.width,max:e.width},height:dM?{max:e.height}:{ideal:e.height,max:e.height},frameRate:e.frameRate,displaySurface:e.preferDisplaySurface||"monitor"};if(t.video=i,e.systemAudio){let{echoCancellation:i=!0,noiseSuppression:r=!1,autoGainControl:n=!1}=e;t.audio={echoCancellation:i,noiseSuppression:r,autoGainControl:n,sampleRate:48e3}}return t}(e);JM.info("getDisplayMedia with constraints: ".concat(JSON.stringify(i)));let r=yield navigator.mediaDevices.getDisplayMedia(i);e.systemAudio&&0===r.getAudioTracks().length&&(sM&&cM<74||dM||aO)&&JM.warn("Your browser not support capture system audio");let n=r.getVideoTracks()[0];if(n){if(e.frameRate)try{yield n.applyConstraints({frameRate:{min:e.frameRate,ideal:e.frameRate},width:e.width,height:e.height})}catch(nP){JM.warn("screen applyConstraints failed: ".concat(nP))}e.captureElement&&(yield function(e,t){return Yb(this,null,function*(){var i;if("CropTarget"in window&&"fromElement"in CropTarget&&Vw(e.cropTo))try{if((null==(i=e.getCaptureHandle())?void 0:i.handle)!==AH)return;let r=yield CropTarget.fromElement(t);yield e.cropTo(r)}catch(r){JM.warn("cropTo target failed ".concat(r))}})}(n,e.captureElement))}if(e.audio){let i=function(e){let t={echoCancellation:e.echoCancellation,autoGainControl:e.autoGainControl,noiseSuppression:e.noiseSuppression,sampleRate:e.sampleRate,channelCount:e.channelCount};return Uw(e.microphoneId)||(t.deviceId=e.microphoneId),{audio:t,video:!1}}(e);JM.info("getUserMedia with constraints: ".concat(JSON.stringify(i))),t=yield navigator.mediaDevices.getUserMedia(i),r.addTrack(t.getAudioTracks()[0])}return r})},CH=class extends QB{constructor(e){super(e,2),qb(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),qb(this,"objectFit","contain"),qb(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}get isShareCurrentTab(){var e,t;try{return AH===(null==(t=null==(e=this.mediaTrack)?void 0:e.getCaptureHandle())?void 0:t.handle)}catch(tP){return}}capture(e){return Yb(this,arguments,function(e){var t=this;let{systemAudio:i=!1,autoGainControl:r,echoCancellation:n,noiseSuppression:o,audioTrack:s,videoTrack:a,captureElement:c,preferDisplaySurface:l}=e;return function*(){try{let e;return a||s?(e=new MediaStream,a&&e.addTrack(a),s&&e.addTrack(s)):(e=yield RH({audio:!1,systemAudio:i,width:t.profile.width,height:t.profile.height,frameRate:t.profile.frameRate,autoGainControl:r,echoCancellation:n,noiseSuppression:o,captureElement:c,preferDisplaySurface:l}),t.sourceTrack=e.getVideoTracks()[0]),yield t.setInputMediaStreamTrack(e.getVideoTracks()[0]),e}catch(e){throw t.log.error("getDisplayMedia error observed ".concat(e)),e instanceof lk?e:new lk({code:ak.INITIALIZE_FAILED,name:e.name,message:e.message})}}()})}switchDevice(e){return Yb(this,null,function*(){throw new Error("Method not implemented.")})}};Kb([pU(function(e){this.setContentHint(e.contentHint||"detail")})],CH.prototype,"capture",1);var bH,kH=class extends qB{constructor(e){super(e),this._log.id="s-".concat(this._log.id)}addAudioProcessor(e,t,i){this.pipeline.silentNode.setNode(i),this.pipeline.mixNode.setNode(t),this.pipeline.aec.setNode(e),this.enableTrackAEC(!1)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};function DH(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3?arguments[3]:void 0;return Yb(this,null,function*(){let n=kV();bH||(bH=gV(n,URL.createObjectURL(new Blob(['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}});'],{type:"application/javascript"})))),yield bH;let o=n.sampleRate,s=new AudioWorkletNode(n,"dumper",{numberOfInputs:e.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:o,targetSampleRate:t}});return s.channelCountMode="explicit",s.channelCount=i,r&&s.port.postMessage({port:r},[r]),e.forEach((e,t)=>e.connect(s,0,t)),new ReadableStream({start(e){s.port.onmessage=t=>{e.enqueue(t.data)}},cancel(){e.forEach(e=>e.disconnect(s)),s.port.close()}})})}var wH=class extends MV{constructor(e){super(),this.room=e,qb(this,"_localAudioTrack"),qb(this,"_localScreenAudioTrack"),qb(this,"log",JM.createLogger({id:"am"})),qb(this,"denoiser"),qb(this,"voiceChanger"),qb(this,"mixChangedDebounce"),qb(this,"audioProcessor"),qb(this,"encodePipeline",[]),qb(this,"decodePipeline",[]),qb(this,"getPCMAbortCtrlMap",new Map),qb(this,"audioFrameEventConfigMap",new Map),qb(this,"audioReferenceMap",new Map),qb(this,"isLocalAudioNeedAudioProcess",!1),qb(this,"isScreenAudioNeedAudioProcess",!1),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return null==(e=this._localAudioTrack)?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return null==(e=this._localScreenAudioTrack)?void 0:e.pipeline}dump(e){var t,i;if(!this._localAudioTrack)return;let r=[],n=[];null!=(t=this._localAudioPipline)&&t.source.node&&(r.push(this._localAudioPipline.source.node),n.push("mic")),null!=(i=this._localAudioPipline)&&i.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),n.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),n.push("mix")),this.log.info("dump audio track ".concat(n,", duration: ").concat(e));let o=new AbortController,s=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),o.abort("timeout")},1e3*e),c=()=>{for(let e=0;e<n.length;e++){let t=URL.createObjectURL(new Blob(s[e])),i=document.createElement("a");i.href=t,i.download="".concat(n[e],".pcm"),i.style.display="none",document.body.appendChild(i),i.click(),URL.revokeObjectURL(t),i.remove()}clearTimeout(a),o.abort("download")},l=DH(r).then(e=>e.pipeTo(new WritableStream({write(e){e.forEach((e,t)=>s[t]=s[t]?s[t].concat(e[0]):[e[0]])}}),o).catch(e=>c));return{then:l.then.bind(l),download:c}}getPCM(e,t){var i,r,n;if("undefined"==typeof WritableStream)return void this.log.warn("getPCM failed: browser not support WritableStream");let{enable:o,sampleRate:s=48e3,channelCount:a=1,port:c}=(""===t?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(t)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info("getPCM ".concat(t||"local"));let l,d,u=Math.floor(.04*s),h=new Float32Array(u),p=new Float32Array(u),m=0,_=new AbortController,f=""===t?null==(i=this._localAudioTrack)?void 0:i.mediaTrack:null==(n=null==(r=this.room)?void 0:r.remotePublishedUserMap.get(t))?void 0:n.remoteAudioTrack.mediaTrack;if(f)return DH([kV().createMediaStreamSource(new MediaStream([f]))],s,a,c).then(i=>i.pipeTo(new WritableStream({write(i){i[0][0]&&(m+i[0][0].length>u?(h.set(i[0][0].subarray(0,u-m),m),l=i[0][0].subarray(u-m),i[0][1]&&(p.set(i[0][1].subarray(0,u-m),m),d=i[0][1].subarray(u-m)),m+=u-m):(l&&(h.set(l,m),m+=l.length,l=void 0),d&&(p.set(d,m),d=void 0),h.set(i[0][0],m),i[0][1]&&p.set(i[0][1],m),m+=i[0][0].length),m>=u&&(m=0,e({userId:t,sampleRate:s,channelCount:a,data:1===a?h:[h,p]}),h=new Float32Array(u),p=new Float32Array(u)))}}),_).catch(e=>this.log.warn("stop getPCM reason:".concat(e)))),_;this.log.info("getPCM failed: ".concat(t||"local"," has no audio track"))}get hasScreenAudioTrack(){return!Uw(this._localScreenAudioTrack)}get hasAudioTrack(){return!Uw(this._localAudioTrack)}changeInput(e){var t,i;return e instanceof kH?(this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&null!=(t=this.audioProcessor)&&t.screenAudioWorkletNode&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((t,i)=>{e.mixAudioReference(t,i)})),e.pipeline.connect(),this.mixOnChange()):e instanceof qB?(this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&null!=(i=this.audioProcessor)&&i.localAudioWorkletNode&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((t,i)=>{e.mixAudioReference(t,i)})),e.pipeline.connect(),this.mixOnChange()):e instanceof PH?e.setOutputMediaStreamTrack(e.mediaTrack):void 0}mixAudioReference(e,t){var i;null==(i=this._localAudioTrack)||i.mixAudioReference(e,t)}unMixAudioReference(e){var t;null==(t=this._localAudioTrack)||t.unMixAudioReference(e)}setAudioReferenceVolume(e,t){var i;null==(i=this._localAudioTrack)||i.setAudioReferenceVolume(e,t)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,t;return delete this.mixChangedDebounce,Promise.all([null==(e=this._localAudioTrack)?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),null==(t=this._localScreenAudioTrack)?void 0:t.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof kH?delete this._localScreenAudioTrack:e instanceof qB&&delete this._localAudioTrack}addDenoiser(e){var t;this.denoiser=e,null==(t=this._localAudioTrack)||t.addDenoiser(e)}addAudioProcessor(e,t,i,r){var n;this.audioProcessor={localAudioWorkletNode:i,mixNode:e,silentNode:t,screenAudioWorkletNode:r},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&i&&(this._localAudioTrack.addAudioProcessor(i,e,t),this.audioReferenceMap.forEach((e,t)=>{var i;null==(i=this._localAudioTrack)||i.mixAudioReference(e,t)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&r&&(null==(n=this._localScreenAudioTrack)||n.addAudioProcessor(r,e,t),this.audioReferenceMap.forEach((e,t)=>{var i;null==(i=this._localScreenAudioTrack)||i.mixAudioReference(e,t)}))}removeDenoiser(e){var t;return delete this.denoiser,null==(t=this._localAudioTrack)?void 0:t.removeDenoiser(e)}addVoiceChanger(e,t){var i;this.voiceChanger=[e,t],null==(i=this._localAudioTrack)||i.pipeline.voiceChanger.setNode(e,t)}removeVoiceChanger(){var e;delete this.voiceChanger,null==(e=this._localAudioTrack)||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,t){var i,r;delete this.audioProcessor,null==(i=this._localAudioTrack)||i.removeAudioProcessor(e),null==(r=this._localScreenAudioTrack)||r.removeAudioProcessor(t)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>null==e?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor(e){let{processor:t,type:i}=e;var r;this.encodePipeline.includes(t)||(this.encodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:i}=e;var r;this.decodePipeline.includes(t)||(this.decodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}handleLocalTrackStarted(e){let{room:t,userId:i}=e;var r;if(t!==this.room||this.getPCMAbortCtrlMap.get(i))return;let n=this.getPCM(e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)},"");this.getPCMAbortCtrlMap.set(i,n),this.getPCMAbortCtrlMap.get(i)&&(null==(r=this._localAudioTrack)||r.on("input-media-track-changed",()=>{let e=this.getPCMAbortCtrlMap.get(i);e&&(e.abort("inputMediaTrackChanged"),e=this.getPCM(e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)},""),this.getPCMAbortCtrlMap.set(i,e))}))}handleLocalTrackStopped(e){let{room:t,userId:i}=e;if(t!==this.room)return;let r=this.getPCMAbortCtrlMap.get(i);r&&(r.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(i))}handleRemoteTrackStarted(e){let{room:t,userId:i}=e;if(t===this.room&&!this.getPCMAbortCtrlMap.get(i)){let e=this.room.audioManager.getPCM(e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)},i);this.getPCMAbortCtrlMap.set(i,e)}}handleRemoteTrackStopped(e){let{room:t,userId:i}=e;if(t!==this.room)return;let r=this.getPCMAbortCtrlMap.get(i);r&&(r.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(i))}installEvent(){BM.on("113",this.handleLocalTrackStarted,this),BM.on("114",this.handleLocalTrackStopped,this),BM.on("115",this.handleRemoteTrackStarted,this),BM.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){BM.off("113",this.handleLocalTrackStarted),BM.off("114",this.handleLocalTrackStopped),BM.off("115",this.handleRemoteTrackStarted),BM.off("116",this.handleRemoteTrackStopped)}updateAudioReference(e){let{type:t,audioReference:i,refId:r,volume:n}=e;if("add"===t){if(this.audioReferenceMap.get(r)||!i||(this.audioReferenceMap.set(r,i),!this.audioProcessor))return;this.mixAudioReference(i,r)}else if("remove"===t)this.audioReferenceMap.get(r)&&(this.audioReferenceMap.delete(r),this.unMixAudioReference(r));else if("updateVolume"===t){if(!this.audioProcessor||Uw(n))return;this.setAudioReferenceVolume(r,n)}}};function NH(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return _U((i,r)=>function(){for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return new Promise((n,s)=>{let a=setTimeout(()=>{let i=new lk({code:ak.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(r,"() timeout ").concat(e,"s")});(this.log||this._log||JM).warn(i),2===t?s(i):1===t&&n()},1e3*e);i.apply(this,o).then(n,s).finally(()=>{clearTimeout(a)})})})}var OH=class e extends nU{constructor(t,i,r){super({userId:i.userId,sdkAppId:t.sdkAppId,mediaType:r,room:t}),this.room=t,this.user=i,qb(this,"tinyId"),qb(this,"isRemote",!0),qb(this,"jitterBufferDelay",0),qb(this,"availableState"),qb(this,"remotePublishState"),qb(this,"_triggerCheckDecodeSubject",rF(fF(this,e.STATE_SUBSCRIBE))),this.tinyId=i.tinyId,this.availableState=new Nx("".concat(i.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new Nx("".concat(i.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),xU(JU(fF(this,Nx.STATECHANGED),fF(this.remotePublishState,Nx.STATECHANGED)),lB(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),FB(e=>{this.availableState.state!==(e?Nx.ON:Nx.OFF)&&(this.availableState.state=e?Nx.ON:Nx.OFF),this.updatePlayingState(e)}));let n=xU(fF(this.player,Ux.ERROR),LF(e=>e.code===MediaError.MEDIA_ERR_DECODE)),o=xU(pF(5e3),LF(()=>!(this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived)&&(!this.player.isPlaying&&!(this.kind===Xk.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1)))),s=xU(KU(n,o),UF(fF(this,Nx.INIT)));xU(this._triggerCheckDecodeSubject,LF(()=>!this.ignoreDecodeError),gB(s),FB(e=>{this.reportDecodeResult(!1,e)}))}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 e,t;return((null==(t=null==(e=this.room)?void 0:e.networkQuality)?void 0:t.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return"subscribeing"===this.state.toString()}get isSubscribed(){return this.state===e.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Nx.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),"main"===this.streamType&&"video"===this.kind&&this.room.changeType(!1,this.user)}reportDecodeResult(e,t){var i,r;let n=this.kind===Xk.AUDIO;if(_L[e?"addSuccessEvent":"addFailedEvent"]({key:n?504700:514702}),!n){let t=(null==(i=this.room)?void 0:i.downlinkVideoCodec.toUpperCase())||"H264";_L[e?"addSuccessEvent":"addFailedEvent"]({key:hL["DECODE_".concat(t,"_RESULT")]}),e||this.log.warn("".concat(null==(r=this.room)?void 0:r.downlinkVideoCodec," decode failed"))}e||(_L.addEnum({key:n?504701:514703,value:LM()}),Gx.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(OM()||VM()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===Xk.AUDIO?"audioLevel: ".concat(this.getAudioLevel()):"framesDecoded: ".concat(this.stat.framesDecoded>0))),this.emit("decode-failed",{error:t}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack))return void this.log.info("abort play, isSubscribed: ".concat(this.isSubscribed," isAvailable: ").concat(this.isRemotePublished," hasTrack: ").concat(!!this.outMediaTrack," "));super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?Nx.ON:Nx.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};qb(OH,"STATE_SUBSCRIBE","subscribe"),Kb([NH(5,1)],OH.prototype,"waitHasMediaTrack",1),Kb([kx(Nx.INIT,OH.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),BM.emit(WM.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),AU(521716,!1)],OH.prototype,"subscribe",1),Kb([kx(OH.STATE_SUBSCRIBE,Nx.INIT,{sync:!0,success(){this.log.info("unsubscribed"),BM.emit(WM.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],OH.prototype,"unsubscribe",1);var MH=OH,PH=class extends MH{constructor(e,t){super(e,t,1),qb(this,"volume",0),qb(this,"mediaType",1),qb(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=e.audioManager}get dbVolume(){return FV.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,t;return!!this.manager&&(this.manager.decodePipeline.some(e=>e)||(null==(t=null==(e=this.player.element)?void 0:e.error)?void 0:t.code)===MediaError.MEDIA_ERR_DECODE&&ax().AudioDecoder&&rx)}decodeFrame(e){if(!this.manager)return e;let t=e;for(let[i,r]of this.manager.decodePipeline.entries()){if(!r)continue;let n={frame:e,track:this};if(1===i&&this.isAvailable&&"audience"===this.room.role&&(n.onAudioFrameNTPTime=e=>{let{ntp:t,frame:i,hasLeavingTag:r}=e;this.emit("audio-frame-with-ntp",{ntp:t,frame:i,hasLeavingTag:r})}),t=r(n),!t)return}return t}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var LH=class extends MH{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4),qb(this,"mediaType",4),qb(this,"source"),qb(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",e=>{this.room.emit("first-video-frame",e)})}play(e,t){return(Hw(null==t?void 0:t.canvasRender)?t.canvasRender:17===gM)&&!this.source&&this.useCanvasPlayer(),super.play(e,t).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info("useCanvasPlayer(), has element:".concat(!!this.player.element)),!this.player.element)return;let e=new gH({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let t=new oH(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(t),this.player.setCanvas(e._canvas),_x()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let t=this.decodeFPS,i=(r=t,[15,30,45,60].reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e));var r;!Bw(t)||t<=0?this.log.debug("updateCanvasPlayerFPS() ignore decoder: ".concat(t," ")):i!==e.frameRate?(this.log.info("updateCanvasPlayerFPS() decoder: ".concat(t,", closest: ").concat(i,", current: ").concat(e.frameRate)),e.frameRate=i):this.log.debug("updateCanvasPlayerFPS() ignore ClosestFPS ".concat(i," == ").concat(e.frameRate))}get decodeFPS(){var e;let{msg_video_status:t}=(null==(e=this.room.heartbeatReport)?void 0:e.msg_down_stream_info.find(e=>e.msg_user_info.str_identifier===this.userId))||{},i=2===this.mediaType?7:this.isSmall?3:2;if(!t||0===t.length)return 0;let r=t.find(e=>e.uint32_video_stream_type===i);return(null==r?void 0:r.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 t of this.manager.decodePipeline)if(t&&!(e=t({frame:e,track:this})))return;return e}get isBig(){return 4===this.mediaType}get isSmall(){return 8===this.mediaType}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){"publish"===e||"both"===e||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},xH=class extends LH{constructor(e,t){super(e,t,2),qb(this,"mediaType",2),qb(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},VH=new Map;function UH(e,t){let i=Wb(Hb({},t),{timestamp:mk()});VH.has(e)?VH.get(e).push(i):VH.set(e,[i])}function FH(e,t,i,r){try{if(Gw(e))for(let n=0;n<e.length;n++)BH.call(this,{rule:e[n],value:t[n],key:e[n].name,fnName:i,className:r});else BH.call(this,{rule:e,value:t[0],key:e.name,fnName:i,className:r})}catch(tP){throw JM.error(tP),tP}}function BH(e){let{rule:t,value:i,key:r,fnName:n,className:o}=e;if(Uw(i)){if(t.required)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_REQUIRED,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(Uw(t.defaultValue))return;i=t.defaultValue}if(Array.isArray(t.type)){let e=!1;for(let r=0;r<t.type.length;r++)null===t.type[r]&&null===i&&(e=!0),Vw(t.type[r])&&i instanceof t.type[r]&&(e=!0),Fw(t.type[r])&&xw(i)===t.type[r].toLowerCase()&&(e=!0);if(!e)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_TYPE,data:{key:r,rule:{type:t.type.map(e=>qw(e)?zw(e):Fw(e)?e:xw(e))},fnName:n,value:i},link:{className:o,fnName:n}})})}else if(!Uw(t.type)&&xw(i)!==t.type)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_TYPE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!1===t.allowEmpty){let e=Bw(i)&&(0===i||Number.isNaN(i)),s=Fw(i)&&""===i.trim();if(e||s)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_EMPTY,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})})}if(t.notLessThanZero&&Bw(i)&&i<0)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.CANNOT_LESS_THAN_ZERO,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!Uw(t.min)&&Bw(i)&&i<t.min)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_MIN,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!Uw(t.max)&&Bw(i)&&i>t.max)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_MAX,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(Fw(t.instanceOf)){if(!i||i._name!==t.instanceOf)throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_INSTANCE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})})}else if(Vw(t.instanceOf)&&!(i instanceof t.instanceOf))throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_INSTANCE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(t.values&&!t.values.includes(i))throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PARAMETER_RANGE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});let{properties:s}=t;Mw(s)&&Ww(i)&&Object.keys(s).forEach(e=>{BH.call(this,{rule:s[e],value:i&&i[e],key:"".concat(r,".").concat(e),fnName:n,className:o})});let{arrayItem:a}=t;Mw(a)&&Gw(i)&&i.forEach((e,t)=>{BH.call(this,{rule:a,value:e,key:"".concat(r,"[").concat(t,"]"),fnName:n,className:o})}),Vw(t.validate)&&t.validate.call(this,i,r,n,o,this)}BM.on(WM.JOIN_SUCCESS,e=>{let{room:t}=e;UH(t.userId,{eventId:32788})}),BM.on(WM.LEAVE_START,e=>{let{room:t}=e;UH(t.userId,{eventId:32789})}),BM.on(WM.LOCAL_TRACK_PUBLISHED,e=>{let{track:t}=e;if(t.room){let e=32769;4===t.mediaType?e=32768:2===t.mediaType&&(e=32805),UH(t.room.userId,{eventId:e})}}),BM.on(WM.LOCAL_TRACK_UNPUBLISHED,e=>{let{track:t}=e;if(t.room){let e=32771;4===t.mediaType?e=32770:2===t.mediaType&&(e=32806),UH(t.room.userId,{eventId:e})}}),BM.on(WM.TRACK_MUTED,e=>{let{track:t}=e;t.room&&(t.kind===Xk.AUDIO?UH(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):UH(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))}),BM.on(WM.TRACK_UNMUTED,e=>{let{track:t}=e;t.room&&(t.kind===Xk.AUDIO?UH(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):UH(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))}),BM.on(WM.REMOTE_TRACK_SUBSCRIBED,e=>{let{track:t}=e;t.room&&(1===t.mediaType&&UH(t.room.userId,{eventId:32777,remoteUserId:t.userId}),4===t.mediaType&&UH(t.room.userId,{eventId:32776,remoteUserId:t.userId}),8===t.mediaType&&UH(t.room.userId,{eventId:32803,remoteUserId:t.userId}))}),BM.on(WM.REMOTE_TRACK_UNSUBSCRIBED,e=>{let{track:t}=e;t.room&&(1===t.mediaType&&UH(t.room.userId,{eventId:32779,remoteUserId:t.userId}),4===t.mediaType&&UH(t.room.userId,{eventId:32778,remoteUserId:t.userId}),8===t.mediaType&&UH(t.room.userId,{eventId:32804,remoteUserId:t.userId}))}),BM.on(WM.SWITCH_DEVICE_SUCCESS,e=>{let{track:t}=e;t.room&&UH(t.room.userId,{eventId:t.kind===Xk.VIDEO?32780:32781})}),BM.on(WM.LOCAL_TRACK_REPLACED,e=>{let{track:t}=e;t.room&&UH(t.room.userId,{eventId:t.kind===Xk.VIDEO?32782:32783})}),BM.on(WM.SIGNAL_CONNECTION_STATE_CHANGED,e=>{let t,{room:i,prevState:r,state:n}=e;switch(n){case"CONNECTED":t="RECONNECTING"===r?32795:32791;break;case"DISCONNECTED":t="RECONNECTING"===r?32796:32790;break;case"RECONNECTING":t=32794}t&&UH(i.userId,{eventId:t})}),BM.on(WM.PEER_CONNECTION_STATE_CHANGED,e=>{let t,{room:i,prevState:r,state:n,remoteUserId:o}=e,s=!!o;switch(n){case"CONNECTED":t="RECONNECTING"===r?s?32801:32798:s?32793:32792;break;case"DISCONNECTED":"RECONNECTING"===r&&(t=s?32802:32799);break;case"RECONNECTING":t=s?32800:32797}t&&UH(i.userId,{eventId:t,remoteUserId:o})}),BM.on(WM.VIDEO_CODEC_IMPLEMENTATION_CHANGED,e=>{let{implementation:t,userId:i,remoteUserId:r,codec:n,isHWCodec:o,prevImplementation:s,streamType:a}=e,c=o?1:0;s||(c=o?3:2);let l={H264:0,H265:1,VP8:2}[n.toUpperCase()],d={eventId:4004,param1:c,param2:l,streamType:a||2};r&&(d.remoteUserId=r,d.eventId=4005),UH(i,d),_L.addEnum({key:r?514701:513701,value:c}),_L.addEnum({key:r?514700:513700,value:l})}),BM.on(WM.LOCAL_TRACK_RECAPTURE,e=>{let{track:t,error:i}=e;if(t.userId){let e={eventId:2003,param1:0};t.kind===Xk.AUDIO?(e.streamType=1,i&&(e.param1=2)):(e.streamType="auxiliary"===t.streamType?7:2,i&&(e.param1=8)),UH(t.userId,e)}});var HH=Jb(Xb(),1),WH=class extends HH.EventEmitter{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"userId";super(),this.mySelfId=e,this._log=t,this.key=i,qb(this,"userMap",new Map),qb(this,"remotePublishedUserMap",new Map)}get hasRobotUser(){return!![...this.remotePublishedUserMap.values()].find(e=>e.isRobot)}getPublishedUser(e){return this.remotePublishedUserMap.get(e)}addUser(e){let t=e[this.key],{userId:i,tinyId:r,role:n}=e;if(this.userMap.has(t))return;let o={userId:i,tinyId:r,role:20===n?"anchor":"audience"};this.userMap.set(t,o),this.emit("1",o)}deleteUser(e,t){let i=this.userMap.get(e);if(!i)return;let r="peer leave [".concat(e,"]");Uw(t)||(r+=":".concat(qD[t])),this._log.info(r);let n=this.remotePublishedUserMap.get(e);if(n){let t=n.muteState;n.flag=0,this.emit("5",n.userId),this.deleteRemotePublishedUser(e),this.emit("6",{prevMuteState:t,muteState:n.muteState,flag:0})}this.userMap.delete(e),this.emit("2",i.userId)}setUserList(e){this.userMap.forEach(t=>{e.findIndex(e=>e[this.key]===t[this.key])<0&&this.deleteUser(t[this.key],0)}),e.forEach(e=>{!this.userMap.has(e[this.key])&&e[this.key]!==this.mySelfId&&this.addUser(e)})}addRemotePublishedUser(e){this.remotePublishedUserMap.has(e[this.key])||this.remotePublishedUserMap.set(e[this.key],e)}deleteRemotePublishedUser(e){this.remotePublishedUserMap.has(e)&&this.remotePublishedUserMap.delete(e)}setRemotePublishedUserList(e){this.remotePublishedUserMap.forEach(t=>{let i=t[this.key];if(e.findIndex(e=>e[this.key]===t[this.key])<0){this._log.info("remote [".concat(i,"] unpublish"));let e=t.muteState;t.flag=0,this.emit("5",t.userId),this.deleteRemotePublishedUser(i),this.emit("6",{prevMuteState:e,muteState:t.muteState,flag:0})}}),e.forEach(e=>{var t;let i=e[this.key];if(i===this.mySelfId)return;let{flag:r,userId:n,tinyId:o}=e,s=rN(r,n),a=null==(t=this.remotePublishedUserMap.get(i))?void 0:t.muteState;if(a){let e=this.remotePublishedUserMap.get(i);e&&e.flag!==r&&(e.flag=r,this._log.info("remote publish updated: ".concat(JSON.stringify(e.muteState))),this.emit("6",{prevMuteState:a,muteState:s,flag:r}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(s))),this.addUser({userId:n,tinyId:o,role:20}),this.emit("3",e),this.emit("6",{prevMuteState:rN(0,n),muteState:s,flag:r})})}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}};function GH(e){let{timesInSecond:t,maxSizeInSecond:i,getSize:r}=e;return _U((e,n)=>{let o=new WeakMap;return BM.on(WM.ROOM_DESTROY,e=>{let{room:t}=e;return o.delete(t)}),function(){let s=o.get(this);for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(s||(s={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},o.set(this,s)),0===s.timestamp?s.timestamp=Date.now():Date.now()-s.timestamp>1e3&&(s.timestamp=Date.now(),s.callCountInSecond=0,s.totalSizeInSecond=0),r&&(s.totalSizeInSecond+=r(...c)),0!==s.timestamp&&Date.now()-s.timestamp<1e3&&(s.callCountInSecond>=t||s.totalSizeInSecond>i))throw new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.CALL_FREQUENCY_LIMIT,data:{isTimes:s.callCountInSecond>=t,isSize:s.totalSizeInSecond>i,name:n,timesInSecond:t,maxSizeInSecond:i}})});s.callCountInSecond++,e.call(this,...c)}})}var jH,JH=!0,KH={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"},qH={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},zH=((jH=zH||{})[jH.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",jH[jH.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",jH[jH.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",jH[jH.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",jH[jH.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",jH[jH.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",jH[jH.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",jH[jH.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",jH[jH.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",jH[jH.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",jH[jH.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",jH[jH.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",jH[jH.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",jH[jH.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",jH[jH.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",jH[jH.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",jH[jH.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",jH[jH.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",jH[jH.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",jH[jH.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",jH[jH.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",jH[jH.INVALID_OPERATION=5100]="INVALID_OPERATION",jH[jH.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",jH[jH.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",jH[jH.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",jH[jH.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",jH[jH.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",jH[jH.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",jH[jH.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",jH[jH.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",jH[jH.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",jH[jH.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",jH[jH.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",jH[jH.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",jH[jH.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",jH[jH.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",jH[jH.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",jH[jH.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",jH[jH.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",jH[jH.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",jH[jH.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",jH[jH.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",jH[jH.DEVICE_ERROR=5300]="DEVICE_ERROR",jH[jH.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",jH[jH.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",jH[jH.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",jH[jH.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",jH[jH.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",jH[jH.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",jH[jH.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",jH[jH.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",jH[jH.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",jH[jH.SERVER_ERROR=5400]="SERVER_ERROR",jH[jH.NEED_TO_BUY=5401]="NEED_TO_BUY",jH[jH.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",jH[jH.OPERATION_FAILED=5500]="OPERATION_FAILED",jH[jH.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",jH[jH.REJOIN_FAILED=5502]="REJOIN_FAILED",jH[jH.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",jH[jH.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",jH[jH.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",jH[jH.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",jH[jH.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",jH[jH.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",jH[jH.OPERATION_ABORT=5998]="OPERATION_ABORT",jH[jH.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",jH);var YH=Wb(Hb({},tL),{INVALID_PARAMETER(e){let{fnName:t}=e;return"the parameters of the '".concat(t,"' you called does not meet the requirements, please check the API documentation.")},INVALID_PARAMETER_REQUIRED(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' is a required param when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="";return s=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(o,"' must be type of ").concat(s," when calling ").concat(r,"(), received type: ").concat(xw(n),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be '").concat(n,"' when calling ").concat(r,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(o,"' must be instanceof ").concat(s," when calling ").concat(r,"(), received type: ").concat(xw(n),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' must be one of ").concat(i.values.join("|")," when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_LESS_THAN_ZERO(e){let{key:t,rule:i,fnName:r}=e;return"'".concat(t||i.name,"' cannot be less than 0 when calling ").concat(r,"().")},INVALID_PARAMETER_MIN(e){let{key:t,rule:i,value:r}=e;return"the min value of ".concat(t||i.name," is ").concat(i.min,", received: ").concat(r,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:i,value:r}=e;return"the max value of ".concat(t||i.name," is ").concat(i.max,", received: ").concat(r,".")},INVALID_ELEMENT_ID(e){let{key:t,fnName:i}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(i,"().")},INVALID_ELEMENT_ID_TYPE(e){let{key:t,fnName:i,type:r}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(i,"(), received: ").concat(r,".")},INVALID_STREAM_ID(e){let{key:t}=e;return"'".concat(t,"' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.")},INVALID_ROOM_ID_STRING(e){let{key:t}=e;return"'".concat(t,"' must be a valid string.")},INVALID_ROOM_ID_INTEGER(e){let{key:t}=e;return"'".concat(t,"' must be an integer between [1, 4294967294].")},INVALID_ROOM_ID_INTEGER_STRING(e){let{key:t}=e;return"'".concat(t,"' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.")},INVALID_ROOM_ID_REQUIRED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",INVALID_ROOM_ID_TYPE_MISMATCH(e){let{key:t}=e;return"The type of target roomId must match the current roomId. Current room is using '".concat(t,"', but received '").concat("strRoomId"===t?"roomId":"strRoomId","'.")},INVALID_ROOM_ID_DUPLICATE(e){let{key:t}=e;return"the target '".concat(t,"' must not be the same as the current '").concat(t,"'.")},INVALID_STREAM_TYPE:e=>{let{fnName:t}=e;return"'streamType' is required when 'userId' is not '*', calling ".concat(t,"()")},INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION(e){let{fnName:t}=e;return"the API '".concat(t,"' you called does not meet the requirements, please check the API documentation.")},INVALID_OPERATION_NOT_JOINED(e){let{fnName:t}=e;return"cannot ".concat(t," because you are not enter room yet.")},INVALID_OPERATION_REMOTE_USER_NOT_EXIST(e){let{fnName:t,value:i}=e;return"cannot ".concat(t," because remote user(userId: ").concat(i.userId,") does not publishing stream.")},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST(e){let{fnName:t,value:i}=e;return"cannot ".concat(t," because remote user(userId: ").concat(i.userId,") does not publishing ").concat(i.streamType," video.")},INVALID_OPERATION_REPEAT_CALL(e){let{fnName:t}=e;return"you are already ".concat(t,"(), cannot repeated call '").concat(t,"'.")},INVALID_OPERATION_NEED_VIDEO(e){let{fnName:t}=e;return"cannot call '".concat(t,"' because the camera is not turned on.")},INVALID_OPERATION_NEED_AUDIO(e){let{fnName:t}=e;return"cannot call '".concat(t,"' because the microphone or screen share is not turned on.")},INVALID_BUFFER_EMPTY:e=>{let{key:t}=e;return"the buffer size of paramerter '".concat(t,"' 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:e=>{let{fnName:t}=e;return"you need to call ".concat(t,"() after publish stream.")},ENV_NOT_SUPPORTED(e){let{fnName:t}=e;return"the current browser does not support the capability of the function '".concat(t,"' 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(e){let{fnName:t}=e;return"cannot call ".concat(t," because the browser version is too low, please upgrade to the latest version")},DEVICE_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' got device exception").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_FOUND_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"NotFoundError, no ".concat(i," detected, please check your device and the configuration on '").concat(t,"'").concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"NotAllowedError, you have disabled ".concat(i," access, please allow the current application to use the ").concat(i).concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"NotReadableError, the ".concat(i," maybe in use by another APP, please check if the device is pre-occupied by another APP.")},DEVICE_OVERCONSTRAINED_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(i).concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_SECURITY_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=e;return"SecurityError, check whether the system security policy restricts the use of the ".concat(i,", and it is recommended to turn on the ").concat(i," after the user interacts with the page").concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_ABORT_ERROR(e){let{fnName:t,deviceType:i=XH(t),error:r}=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".concat(r?" error: ".concat(r.toString(),"."):".")},CAMERA_RECOVER_FAILED(e){let{error:t}=e;return"camera recover capture failed ".concat((null==t?void 0:t.name)||"",": ").concat((null==t?void 0:t.originMessage)||(null==t?void 0:t.message))},MICROPHONE_RECOVER_FAILED(e){let{error:t}=e;return"microphone recover capture failed ".concat((null==t?void 0:t.name)||"",": ").concat((null==t?void 0:t.originMessage)||(null==t?void 0:t.message))},OPERATION_FAILED(e){let{fnName:t,error:i}=e;return"'".concat(t,"' failed, reason: ").concat(null==i?void 0:i.toString())},FIREWALL_RESTRICTION:()=>"media connection failure due to firewall restrictions, please try to change your network.",EVENT_HANDLER_ERROR(e){let{eventName:t}=e;return"an error was caught on trtc.on('".concat(t,"', handler), please check your code on 'handler'.")},VIDEO_CONTEXT_ERROR(e){let{reason:t,error:i}=e;return"video context error ".concat(t," ").concat((null==i?void 0:i.name)||""," ").concat((null==i?void 0:i.message)||"")},SERVER_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' got server error: ").concat(null==i?void 0:i.toString(),", please check the SDK documentation.")},NEED_TO_BUY(e){let{value:t,url:i}=e;return"You need to buy packages for ".concat(t,". Refer to: ").concat(i)},ACCOUNT_NO_MONEY:e=>{let{fnParams:t}=e;return"your TRTC account run out of credit, please recharge.".concat(t.sdkAppId?" SDKAppId: ".concat(t.sdkAppId):"")},OPERATION_ABORT(e){let{fnName:t}=e;return"'".concat(t,"' abort")},UNKNOWN_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' throw unknown exception").concat(i?", error: ".concat(i.toString(),"."):".")}});function XH(e){if(!e)return"camera";let t=e.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var QH=class e extends Error{constructor(e){let{code:t,extraCode:i,message:r="",messageParams:n,fnName:o="",originError:s,data:a}=e;var c;let l;l=r||function(e){let t,{code:i,params:r,enableDocLink:n=!1}=e,s="",a=zH[i];try{t=YH[a]}catch(o){t=YH.UNKNOWN_ERROR}return Vw(t)?s=t(r):Fw(t)&&(s=t),r.fnName&&!s.includes(r.fnName)&&("."!==s[s.length-1]&&(s+="."),s+=" thrown from ".concat(r.fnName,"()")),n&&(s+=" doc:"),s}({code:t===qH.SERVER_ERROR?t:i||t,params:Hb({fnName:o,error:s},n)}),super(l),qb(this,"name","RtcError"),qb(this,"code"),qb(this,"extraCode"),qb(this,"functionName"),qb(this,"message"),qb(this,"data"),qb(this,"handler"),qb(this,"originError"),this.name=zH[t],this.code=t,this.extraCode=i,this.functionName=o,this.originError=s,this.message=l,this.data=a,5302===this.extraCode&&null!=(c=this.originError)&&c.message.includes("system")&&(this.handler=()=>{let e=document.createElement("a");VO?e.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):UO&&(e.href="x-apple.systempreferences:com.apple.preference.security?Privacy_".concat({startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"}[this.functionName])),e.href.length>0&&e.click()})}static convertFrom(t,i,r){let n=t;if(t instanceof lk){let{stack:o}=t,s={code:qH.UNKNOWN_ERROR,fnName:i,originError:t};switch(t.getCode()){case ak.INVALID_PARAMETER:s.code=qH.INVALID_PARAMETER,s.message=t.message;break;case ak.INVALID_OPERATION:s.code=qH.INVALID_OPERATION;break;case ak.NOT_SUPPORTED:case ak.NOT_SUPPORTED_H264:s.code=qH.ENV_NOT_SUPPORTED,t.getCode()===ak.NOT_SUPPORTED_H264&&(s.extraCode=t.message.includes(tL.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case ak.JOIN_ROOM_FAILED:s.messageParams={fnParams:r};case ak.SERVER_TIMEOUT:case ak.SWITCH_ROLE_FAILED:case ak.SWITCH_ROOM_FAILED:s.code=qH.SERVER_ERROR,s.extraCode=t.getExtraCode();break;case ak.API_CALL_ABORTED:s.code=qH.OPERATION_ABORT;break;case ak.DEVICE_NOT_FOUND:case ak.DEVICE_AUTO_RECOVER_FAILED:case ak.INITIALIZE_FAILED:s.code=5300,t.name&&(s.extraCode=function(e){let t;switch(e){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}(t.name));break;case ak.VIDEO_ENCODE_FAILED:s.extraCode=5505;case ak.AUDIO_ENCODE_FAILED:s.extraCode=5506,s.code=qH.OPERATION_FAILED;break;case ak.UNKNOWN:break;default:s.code=qH.OPERATION_FAILED}n=new e(s),o&&(n.stack+=o.substr(o.indexOf("\n")))}else{if(t instanceof e)return t;n=new e({code:qH.UNKNOWN_ERROR,fnName:i,originError:t})}return n}};var ZH=QH;function $H(e){return"sub"===e?"auxiliary":"auxiliary"===e?"sub":"main"}function eW(e){return e===KH.QOS_PREFERENCE_CLEAR?"detail":e===KH.QOS_PREFERENCE_SMOOTH?"motion":""}function tW(e,t){let i=t?zk:qk;return WN(e)?Hb(Hb({},i),e):Kk[e]?Kk[e]:i}var iW={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}}},rW={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}}},nW={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(e,t,i){if(Fw(e)&&!document.getElementById(e))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5009,fnName:i,messageParams:{key:t}})}},oW={name:"userId",required:!0,type:"string"},sW={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 aW(e,t){if(!e)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5101,fnName:t})}function cW(e,t,i){if(!e)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:i}})}function lW(e,t,i){if(!(/^[1-9]\d*$/.test(String(e))&&e<4294967295))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:i}})}function dW(e,t,i){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(e))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:i}})}function uW(e){var t;if(null==(t=null==e?void 0:e.option)||!t.small)return;if(!WL())return JM.warn("small stream is not supported"),void delete e.option.small;let i=tW(e.option.profile),r=tW(e.option.small,!0);return((e,t)=>e.width*e.height>=t.width*t.height&&e.frameRate>=t.frameRate&&e.bitrate>=t.bitrate)(i,r)?void 0:(JM.warn("small stream profile must be less than big stream profile. Big: ".concat(JSON.stringify(i),", Small: ").concat(JSON.stringify(r))),void delete e.option.small)}var hW={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(e,t,i){if(this._room.isJoined)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5104,fnName:i});if(e.roomId){if(Fw(e.roomId))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5016,fnName:i,messageParams:{key:t}});lW(e.roomId,i,t)}else{if(!e.strRoomId)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5015,fnName:i});dW(e.strRoomId,i,t)}},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:nW,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:iW},validate(e){var t,i;if((null==(t=null==e?void 0:e.option)||!t.videoTrack)&&IL())throw new ZH({code:qH.ENV_NOT_SUPPORTED,extraCode:5201});null!=(i=null==e?void 0:e.option)&&i.small&&uW(e)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Wb(Hb({},nW),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:iW},validate(e){var t;null!=(t=null==e?void 0:e.option)&&t.small&&uW(e)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:sW},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.audioTrack)&&IL())throw new ZH({code:qH.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:sW}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:nW,publish:{type:"boolean"},option:rW},validate(e,t,i,r,n){var o;if(null==(o=null==e?void 0:e.option)||!o.videoTrack){if(IL())throw new ZH({code:qH.ENV_NOT_SUPPORTED,extraCode:5201});if(!wL())throw new ZH({code:qH.ENV_NOT_SUPPORTED,fnName:i,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:nW,publish:{type:"boolean"},option:rW}},muteRemoteAudio:[oW,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[oW,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:nW,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(e,t,i){aW(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(cW(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new ZH({code:qH.INVALID_OPERATION,extraCode:5103,fnName:i,messageParams:{value:e}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Wb(Hb({},nW),{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(e,t,i){aW(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(cW(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new ZH({code:qH.INVALID_OPERATION,extraCode:5103,fnName:i,messageParams:{value:e}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(e,t,i){if("*"!==e.userId&&Uw(e.streamType))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5014,fnName:i})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(e,t,i){aW(this._room.isJoining||this._room.isJoined,i)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(e,t,i,r){if(!ox)throw new ZH({code:qH.ENV_NOT_SUPPORTED,fnName:i,extraCode:5207});if(!this._room.enableSEI)throw new ZH({code:qH.INVALID_OPERATION,fnName:i,extraCode:5108});if(e.byteLength>1e3)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:i});aW(this._room.isJoined,i)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(e,t,i){if(!e&&!this._room.isMainStreamPublished||e&&!this._room.isAuxStreamPublished)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:i})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(e,t,i,r){if(e.byteLength>1e3)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5017,fnName:i,messageParams:{key:t}})}}},validate(e,t,i){if(aW(this._room.isJoined,i),"live"===this._room.scene&&"audience"===this._room.role)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5107,fnName:i,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(e,t,i){if(aW(this._room.isJoined,i),this._room.useStringRoomId&&e.strRoomId===this._room.roomId||!this._room.useStringRoomId&&e.roomId===Number(this._room.roomId))throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5020,fnName:i,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(e.roomId&&this._room.useStringRoomId||!e.roomId&&e.strRoomId&&!this._room.useStringRoomId)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5019,fnName:i,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(e.roomId)lW(e.roomId,i,t);else{if(!e.strRoomId)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5015,fnName:i});dW(e.strRoomId,i,t)}},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},pW={TRTC:hW},mW=class extends Error{};function _W(e,t){let i=aN(e);for(let r=0;r<t.length;r++)sN(i[r],t[r]);return i}function fW(e){this._resolve=Promise.resolve(e)}function gW(e){this._reject=Promise.reject(e)}var EW=class e{constructor(t,i){this.instance=t,this.group=i,qb(this,"started",!1),qb(this,"ops",[]),qb(this,"startSame",()=>!0),qb(this,"mergeUpdate",_W);let r=e.instances.get(t);r?r.set(i,this):e.instances.set(t,new Map([[i,this]]))}static get(t,i){if(!i)return;let r=e.instances.get(t);return r&&r.get(i)||new e(t,i)}static gets(t,i){let r=e.instances.get(t),n=[];return r&&r.forEach((e,t)=>{i.test(t)&&n.push(e)}),n}action(e,t,i){let r=t=>{var i;return 0===e?this.started=!0:3===e&&(this.started=!1),this.ops.shift(),null==(i=this.currentOp)||i.action(),t},n=t=>{var i,r;throw this.ops.shift(),0===e&&2===(null==(i=this.currentOp)?void 0:i.type)&&this.ops.shift().reject(new mW("start failed")),null==(r=this.currentOp)||r.action(),t},o={type:e,action:()=>t(...o.args).then(r,n),args:i,resolve:fW,reject:gW};try{switch(this.state){case 1:if(0===e)throw new mW("already started");break;case 4:if(2===e)throw new mW("not started");break;default:return this.cacheOp(o)}}catch(eP){return Promise.reject(eP)}return this.ops.push(o),o.promise=t(...o.args).then(r,n)}cacheOp(e){if(1===this.ops.length)switch(this.state){case 0:case 2:if(0===e.type)throw new mW("already start");break;case 3:switch(e.type){case 2:throw new mW("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new mW("unknown state")}else switch(e.type){case 3:if(3===this.lastOpType)return this.lastOp.promise;{let e=new mW("keep stop");if(this.ops.slice(1).forEach(t=>t.reject(e)),this.ops=this.ops.slice(0,1),3===this.state)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,e.args),this.lastOp.promise;case 3:throw new mW("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new mW("start not allowed after update");case 0:throw new mW("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new mW("keep start")),new mW("already start")}}e.promise=new Promise((t,i)=>{e._resolve?e._resolve.then(t):e.resolve=t,e._reject?e._reject.catch(i):e.reject=i});let{action:t}=e;return e.action=()=>t().then(e.resolve,e.reject),this.ops.push(e),e.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}};qb(EW,"instances",new WeakMap);var TW=EW,vW=new WeakMap,yW=(e,t)=>{if(t instanceof mW){let{stack:i}=t;t=new ZH({code:qH.OPERATION_ABORT,message:"".concat(e," abort: ").concat(t.message),fnName:e}),i&&(t.stack+=i.substr(i.indexOf("\n")))}throw t};function SW(e,t){return _U((i,r)=>function(){for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];let a=TW.get(this,"string"==typeof e?e:e.call(this,...o));return a?(t&&(a.startSame=t.bind(this)),a.action(0,i.bind(this),o).catch(yW.bind(null,r))):i.apply(this,o)})}function IW(e,t){let{merge:i,debounce:r}=t||{};return _U((t,n)=>function(){for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a];let c=TW.get(this,"string"==typeof e?e:e.call(this,...s));if(!c)return t.apply(this,s);if(i&&(c.mergeUpdate=i.bind(this)),r&&r.isNeedToDebounce.apply(this,s)){let{delay:e,getKey:i}=r;return new Promise((r,o)=>{var a,l;let d=null==(a=vW.get(this))?void 0:a.get(i(...s));if(d){let{timeoutId:e,resolve:t}=d;clearTimeout(e),t()}let u=setTimeout(()=>{if(3===c.state||4===c.state)return r();c.action(2,t.bind(this),s).catch(yW.bind(null,n)).then(r,o)},e);vW.has(this)?null==(l=vW.get(this))||l.set(i(...s),{timeoutId:u,resolve:r}):vW.set(this,new Map([[i(...s),{timeoutId:u,resolve:r}]]))})}return c.action(2,t.bind(this),s).catch(yW.bind(null,n))})}function AW(e){return _U((t,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];let s="function"==typeof e?e.call(this,...n):e;if(s instanceof RegExp)return Promise.all(TW.gets(this,s).map(e=>e.action(3,()=>Promise.resolve(),n))).then(()=>t.call(this,...n));let a=TW.get(this,s);return a?a.action(3,t.bind(this),n).catch(yW.bind(null,i)):t.apply(this,n)})}var RW={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"},CW=new Set([RW.ERROR,RW.AUTOPLAY_FAILED,RW.KICKED_OUT,RW.REMOTE_USER_ENTER,RW.REMOTE_USER_EXIT,RW.REMOTE_AUDIO_AVAILABLE,RW.REMOTE_AUDIO_UNAVAILABLE,RW.REMOTE_VIDEO_AVAILABLE,RW.REMOTE_VIDEO_UNAVAILABLE,RW.CONNECTION_STATE_CHANGED,RW.PUBLISH_STATE_CHANGED,RW.SCREEN_SHARE_STOPPED,RW.DEVICE_CHANGED,RW.FIRST_VIDEO_FRAME,RW.PERMISSION_STATE_CHANGE,RW.VIDEO_SIZE_CHANGED]),bW={};jb(bW,{ScheduleRequestType:()=>PW,getAbilityConfig:()=>xW,getScheduleDomain:()=>VW,isNeedToSchedule:()=>DW,scheduleProxy:()=>OW,sendScheduleRequest:()=>NW,setIsNeedToSchedule:()=>wW,setScheduleProxy:()=>MW});var kW=null,DW=!0;function wW(e){Hw(e)&&e!==DW&&(DW=e,JM.info("setIsNeedToSchedule ".concat(e)))}function NW(e){return Yb(this,arguments,function(e){let{userId:t,sdkAppId:i,useStringRoomId:r,roomId:n,userSig:o,version:s,frameWorkType:a,role:c,latencyLevel:l}=e;return function*(){if(!DW&&kW)return{isCached:!0,result:kW};let e={delta:0,count:[1,1],msg:[],detail:[]};try{let d=new FormData;d.append("userId",String(t)),d.append("sdkAppId",String(i)),d.append("isStrGroupId",String(r)),d.append("groupId",String(n)),d.append("sdkVersion",s),d.append("userSig",String(o));let u=yield wM();null!=u&&u.model&&d.append("model",String(null==u?void 0:u.model)),c&&d.append("role",String(c)),l&&d.append("latencyLevel",String(l)),a&&d.append("frameWorkType",String(a));let h=Zw(),p=yield function(e,t,i){return new Promise((r,n)=>{let o=null;Qw([FW(e=>t.count[0]=e+1,e=>{let{error:r,retry:n,retriedCount:s,retryFuncArgs:a}=e;t.msg[0]=r.message,o||(s>=1&&(a[0]=LW(i,"config",Xk.MAIN,!0)),n())})(LW(i,"config",Xk.MAIN),e,{get timeout(){return 1e3*Pw(2+t.count[0])}}),FW(e=>t.count[1]=e+1,e=>{let{error:r,retry:n,retriedCount:s,retryFuncArgs:a}=e;t.msg[1]=r.message,o||(s>=2&&(a[0]=LW(i,"config",Xk.BACKUP,!0)),n())})(LW(i,"config",Xk.BACKUP),e,{get timeout(){return 1e3*Pw(2+t.count[1])}})]).then(e=>{o=e,r(o)}).catch(n)})}(d,e,i);p.config&&(p.config.loggerDomain&&kk(p.config.loggerDomain),Hw(p.config.scheduleCache)&&wW(!p.config.scheduleCache)),e.delta=Zw()-h;let m=function(e,t,i){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let n=performance.getEntriesByType("resource"),o=LW(e,"config",Xk.MAIN),s=LW(e,"config",Xk.BACKUP);for(let e of n)if(e.startTime>=i&&(e.name===o||e.name===s)&&e.transferSize>0){let i=e.name===o?Xk.MAIN:Xk.BACKUP,n=Math.round(e.duration),s=Math.round(e.domainLookupStart-e.startTime),a=e.redirectStart>0?Math.round(e.redirectEnd-e.redirectStart):0,c=e.fetchStart>0?Math.round(e.domainLookupStart-e.fetchStart):0,l=Math.round(e.domainLookupEnd-e.domainLookupStart),d=Math.round(e.requestStart-e.secureConnectionStart),u=Math.round(e.secureConnectionStart-e.connectStart),h=Math.round(e.responseStart-e.requestStart),p=Math.round(e.responseEnd-e.responseStart),m=[l,d,u,h,p];Gx.uploadEvent({log:"stat-schedule-net:".concat(n,"(").concat(s,"(").concat(a,"->").concat(c,")->").concat(m.join("->"),") ").concat(i),userId:t}),r=Wb(Hb({},r),{totalCost:n,local:s,dns:l,tcp:u,tls:d,request:h,response:p});break}}catch(o){JM.error("getScheduleDetailCost error",o)}return r}(Number(i),t,h);return kW=p,{isCached:!1,result:p,detailCost:m}}catch(d){let e=Gw(d)?d[0]:d,t=Bw(e.code)?e.code:0,i="schedule failed".concat(e.message?": ".concat(e.message):""),r=new lk({code:ak.SCHEDULE_FAILED,extraCode:t,message:nL({key:eL.JOIN_ROOM_FAILED,data:{error:i,code:t}})});throw JM.error(i,t),r}}()})}"undefined"!=typeof document&&document.head.insertAdjacentHTML("beforeend",Object.values(FD).map(e=>'<link rel="dns-prefetch" href="https://'.concat(e,'">')).join("\r\n")),BM.on("28",()=>wW(!0)),BM.on("63",()=>wW(!0)),BM.on("84",()=>wW(!0)),BM.on("201",e=>{"RECONNECTING"===e.state&&wW(!0)}),BM.on("202",e=>{"RECONNECTING"===e.state&&wW(!0)});var OW={main:"",backup:""};function MW(e){Gw(e)?(OW.main=e[0],OW.backup=e[1]):OW.main=e}var PW=(e=>(e.CONFIG="config",e.TRTC_AUTO_CONF="trtcAutoConf",e.AUDIO_AI_AUTH="audioAiAuth",e))(PW||{});function LW(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Xk.MAIN,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"https://".concat(OW[i]||VW(e,i,r),"/api/v1/").concat(t)}function xW(e,t,i){let r=LW(e,t),n=LW(e,t,Xk.BACKUP),o=new URLSearchParams(i).toString(),s=fetch("".concat(r,"?").concat(o)).then(e=>e.json()),a=fetch("".concat(n,"?").concat(o)).then(e=>e.json());return Qw([s,a])}function VW(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Xk.MAIN,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=Tw(e)?r?i===Xk.MAIN?FD.MAIN_OVERSEA_BACKUP:FD.BACKUP_OVERSEA:i===Xk.MAIN?FD.MAIN_OVERSEA:FD.BACKUP_OVERSEA:i===Xk.MAIN?FD.MAIN:FD.BACKUP,t}function UW(e,t,i){return new Promise((r,n)=>{LN({url:e,body:t,timeout:i.timeout,priority:"high"}).then(e=>{0===e.data.code?r(e.data.data):n({code:e.data.code,message:e.data.msg})}).catch(n)})}var FW=(e,t)=>GN({retryFunction:UW,settings:{retries:3,timeout:0},onError:t,onRetrying:e});var BW=class{constructor(){qb(this,"_log"),this._log=JM.createLogger({id:"fd"})}download(e,t){return Yb(this,null,function*(){let{type:i="blob"}=t||{};e=vN(e);try{let t,r=Zw();if(t=Vw(fetch)?yield this.downloadWithFetch(e,i):yield this.downloadWithXHR(e,i),!t||!t.data)throw new Error("data is empty");let n=Zw()-r;return this._log.info("downloaded: ".concat(e,", return type: ").concat(i,", cost: ").concat(n,"ms")),_L.addSuccessEvent({key:522700,cost:Zw()-r}),t.data}catch(tP){throw this._log.error("failed to download: ".concat(e,", error: ").concat(tP)),_L.addFailedEvent({key:522700,error:tP}),tP}})}downloadWithFetch(e,t){return Yb(this,null,function*(){this._log.info("download with fetch: ".concat(e,", return type: ").concat(t));try{let i,r=yield fetch(e);if(!r.ok){let e=new Error("network response was not ok: ".concat(r.status));throw e.status=r.status,e}return i="arraybuffer"===t?yield r.arrayBuffer():yield r.blob(),{data:i}}catch(AD){throw AD}})}downloadWithXHR(e,t){return this._log.info("download with xhr: ".concat(e,", return type: ").concat(t)),new Promise((i,r)=>{let n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType=t,n.onload=()=>{if(200===n.status||0===n.status&&n.response)i({data:n.response});else{let e=new Error("XHR failed, status: ".concat(n.status));e.status=n.status,r(e)}},n.onerror=r,n.send(null)})}loadWasm(e,t){return Yb(this,null,function*(){this._log.info("loadWasm ".concat(e,", importObject: ").concat(JSON.stringify(t)));let i=Zw(),r=null,n=null;if(Vw(WebAssembly.instantiateStreaming)&&!e.startsWith("data:application/octet-stream;base64,")&&!(e=>e.startsWith("file://"))(e)&&Vw(fetch))try{let i=fetch(e);r=(yield WebAssembly.instantiateStreaming(i,t)).instance}catch(Ik){n=Ik}if(!r)try{let i=yield this.download(e,{type:"arraybuffer"});r=(yield WebAssembly.instantiate(i,t)).instance}catch(Ik){n=Ik}if(r){let t=Zw()-i;return this._log.info("loadedWasm ".concat(e,", cost: ").concat(t,"ms")),_L.addSuccessEvent({key:522701,cost:t}),r}throw this._log.error("failed to loadWasm ".concat(e,", error: ").concat(n)),_L.addFailedEvent({key:522701,error:n}),n})}loadScript(e){this._log.info("loadScript ".concat(e));let t=Zw();return new Promise((i,r)=>{let n=document.createElement("script");n.type="text/javascript",n.onload=()=>{this._log.info("loadedScript ".concat(e,", cost: ").concat(Zw()-t,"ms")),_L.addSuccessEvent({key:522702,cost:Zw()-t,split:1e3}),i(n)},n.onerror=t=>{this._log.error("failed to loadScript ".concat(e,", error: ").concat((null==t?void 0:t.message)||JSON.stringify(t))),_L.addFailedEvent({key:522702}),r(t)},n.crossOrigin="anonymous",n.src=e,document.head.append?document.head.append(n):document.getElementsByTagName("head")[0].appendChild(n)})}};Kb([Jx({settings:{timeout:0,retries:3},onError(e,t,i){var r;404===(null==e?void 0:e.status)||null!=(r=null==e?void 0:e.message)&&r.includes("404")?(this._log.warn("download 404, stop retry"),i(e)):t()},onRetrying(e){this._log.warn("download retrying: ".concat(e))}})],BW.prototype,"download",1),Kb([Jx({settings:{timeout:3e3,retries:3},onRetrying(e){this._log.warn("loadScript retrying: ".concat(e))}})],BW.prototype,"loadScript",1);var HW=new BW;function WW(e){var t=this;let{TRTC:i,room:r,errorModule:n,assetsPath:o}=e;return{TRTC:i,LocalMixVideoTrack:IH,LocalVideoTrack:QB,LocalScreenTrack:CH,room:r,assetsPath:o,fileDownloader:HW,innerEmitter:BM,INNER_EVENT:WM,constants:Ek,environment:JN,utils:ZB,eventLogger:Gx,log:this.room.getLogger(),loggerManager:JM,errorModule:n,kvStatManager:_L,rtcDectection:zM,trtc:this,rx:RU,enums:YM,schedule:bW,getDevices:KV,initVisionTaskRegistry:function(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/mediapipe/vision.js";return Yb(t,null,function*(){window.VisionTaskRegistry||(yield HW.loadScript("".concat(e,"/").concat(i).replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(e)).preloadModels([window.VisionTaskType.ImageSegmenter])})},audioContext:kV(),deviceDetector:jV,AudioPlayer:tU,AutoPlayDialog:_V,Timer:Vx,clearStarted:(e,t)=>{let i=e.getAlias(),r=TW.instances.get(this);if(r)if(t){let e=r.get(i+t);if(!e)return;e.started=!1}else r.forEach((e,t)=>{t.startsWith(i)&&(e.started=!1)})},startGetPCM:DH,createAudioNode:LV,getNetworkTimeOffset:pk}}var GW=new WeakMap;function jW(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return _U((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{KW.call(this,t,n,i,this._name)}catch(tP){return Promise.reject(tP)}return e.apply(this,n)})}function JW(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return _U((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{KW.call(this,t,n,i,this._name)}catch(tP){throw tP}return e.apply(this,n)})}function KW(e,t,i,r){if(Gw(e))for(let n=0;n<e.length;n++)qW.call(this,{rule:e[n],value:t[n],key:e[n].name,fnName:i,className:r});else qW.call(this,{rule:e,value:t[0],key:e.name,fnName:i,className:r})}function qW(e){let{rule:t,value:i,key:r,fnName:n,className:o}=e;function s(e){return{code:qH.INVALID_PARAMETER,extraCode:e,fnName:n,messageParams:{key:r,rule:t,value:i}}}if(Uw(i)){if(t.required)throw new ZH(s(5001));if(Uw(t.defaultValue))return void(Vw(t.validate)&&t.validate.call(this,i,r,n,o,this));i=t.defaultValue}if(Array.isArray(t.type)){let e=!1;for(let r=0;r<t.type.length;r++)null===t.type[r]&&null===i&&(e=!0),Vw(t.type[r])&&i instanceof t.type[r]&&(e=!0),Fw(t.type[r])&&xw(i)===t.type[r].toLowerCase()&&(e=!0);if(!e)throw new ZH({code:qH.INVALID_PARAMETER,extraCode:5002,fnName:n,messageParams:{key:r,rule:{type:t.type.map(e=>qw(e)?zw(e):Fw(e)?e:xw(e))},value:i}})}else if(!Uw(t.type)&&xw(i)!==t.type)throw new ZH(s(5002));if(!1===t.allowEmpty){let e=Bw(i)&&(0===i||Number.isNaN(i)),t=Fw(i)&&""===i.trim();if(e||t)throw new ZH(s(5003))}if(t.notLessThanZero&&Bw(i)&&i<0)throw new ZH(s(5006));if(!Uw(t.min)&&Bw(i)&&i<t.min)throw new ZH(s(5007));if(!Uw(t.max)&&Bw(i)&&i>t.max)throw new ZH(s(5008));if(Fw(t.instanceOf)){if(!i||i._name!==t.instanceOf)throw new ZH(s(5004))}else if(Vw(t.instanceOf)&&!(i instanceof t.instanceOf))throw new ZH(s(5004));if(Array.isArray(t.values)&&!t.values.includes(i))throw new ZH(s(5005));let{properties:a}=t;Mw(a)&&Ww(i)&&Object.keys(a).forEach(e=>{qW.call(this,{rule:a[e],value:i&&i[e],key:"".concat(e),fnName:n,className:o})});let{arrayItem:c}=t;Mw(c)&&Gw(i)&&i.forEach((e,t)=>{qW.call(this,{rule:c,value:e,key:"".concat(r,"[").concat(t,"]"),fnName:n,className:o})}),Vw(t.validate)&&t.validate.call(this,i,r,n,o,this)}function zW(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{getRemoteId:t=()=>"",replaceArg:i,getKVReportKey:r,ignoreLog:n,ignoreErrorLog:o}=e;return _U((e,s)=>function(){for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];var d,u,h;function p(e,t,r){if(r&&r.includes(e))return"hided";if(i){let e=i(...c);if(c[e.argIndex]===t)return e.value}if(t===c||e in c)return t;try{return t instanceof HTMLElement?"id: ".concat(t.id," type:").concat(xw(t)):t instanceof MediaStreamTrack?yN(t):(JSON.stringify(t),t)}catch(n){return"type:".concat(xw(t))}}let m=this._log||JM;if(null!=n&&n(...c))return e.apply(this,c);c.length>0?m.info("".concat(s,"() ").concat(JSON.stringify(c,(e,t)=>p(e,t,["userSig","privateMapKey"])))):m.info("".concat(s,"()"));let _=r?r(...c):cL[s],f=(null==o?void 0:o(...c))||!1;try{let i=e.apply(this,c),r=Zw();if(Kw(i)){let e="".concat(s.includes("Plugin")?"".concat((null==(u=(d=c[0]).getName)?void 0:u.call(d))||""," "):" ");return i.then(i=>(m.info("".concat(s,"() success ").concat(e).concat(t.call(this,...c))),_L.addSuccessEvent({key:_,cost:Zw()-r}),i)).catch(i=>{var r;let n=(i=ZH.convertFrom.call(this,i,s,1===c.length?c[0]:c)).extraCode||i.code,o=null!=(r=i.message)&&r.includes(n)?"":" code:".concat(n);throw f||m.error("".concat(s,"() failed ").concat(e).concat(t.call(this,...c)," ").concat(i).concat(o," params: ").concat(JSON.stringify(c,p))),_L.addFailedEvent({key:_,error:i}),i})}return _L.addSuccessEvent({key:_}),i}catch(oP){let t=(oP=ZH.convertFrom.call(this,oP,s)).extraCode||oP.code,i=null!=(h=oP.message)&&h.includes(t)?"":" code:".concat(t);throw f||m.error("".concat(s,"() failed ").concat(oP).concat(i," params: ").concat(JSON.stringify(c,p))),_L.addFailedEvent({key:_,error:oP}),oP}})}var YW,XW=e=>_U((t,i)=>function(r,n){return Yb(this,null,function*(){let o=this._plugins.get(r);if(!o)throw this._log.error("plugin ".concat(String(r)," is not found")),new ZH({code:qH.OPERATION_ABORT,message:"plugin ".concat(String(r)," is not found"),fnName:i});if(Vw(o.constructor.isSupported)&&!o.constructor.isSupported())throw this._log.error("plugin ".concat(String(r)," is not supported")),new ZH({code:qH.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(r)," is not supported"),extraCode:5210,fnName:i});return KW.call(this,o.getValidateRule(e),[n],i,"TRTC"),t.call(this,o,n)})}),QW=0,ZW=class e{constructor(e){this.core=e,qb(this,"log"),qb(this,"customAudioReferenceMap",new Map),qb(this,"audioRefId",0),qb(this,"audioContext",kV()),qb(this,"localAudioWorkletNode"),qb(this,"screenAudioWorkletNode"),qb(this,"mixNode"),qb(this,"silentNode"),QW+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(QW)}),this.log.info("created id=".concat(this.getAlias()).concat(QW)),this.installEvent()}static getStartValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(t,i,r,n){if(!e.room.audioManager.hasAudioTrack&&!e.room.audioManager.hasScreenAudioTrack)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(e){return YW||(YW=this.doPreload(e)),YW}doPreload(e){return Yb(this,null,function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield gV(this.audioContext,i)}catch(tP){this.log.error("preload audioProcessor failed. ".concat(tP))}finally{URL.revokeObjectURL(i)}})}getName(){return e.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return e.getStartValidateRule(this.core);case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Yb(this,null,function*(){var t,i,r,n;let{room:o}=this.core,{sdkAppId:s,userId:a,userSig:c,assetsPath:l=this.core.assetsPath,audioReference:d,processLevel:u,enableDump:h,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:m=!1}=e;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=m,!l)throw new ZH({code:qH.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload("".concat(l,"/audioProcessor-wasm.js")),p&&!this.localAudioWorkletNode){let{sign:e,status:t,timestamp:i}=yield this.getAuthData(s,a,c);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",s,a,i,e,t,o)}if(m&&!this.screenAudioWorkletNode){let{sign:e,status:t,timestamp:i}=yield this.getAuthData(s,a,c);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",s,a,i,e,t,o)}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()),null==(t=this.localAudioWorkletNode)||t.port.postMessage({type:"enable"}),null==(i=this.screenAudioWorkletNode)||i.port.postMessage({type:"enable"}),o.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),Uw(d)||d.forEach(e=>{this.customAudioReferenceMap.set(e,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:e,refId:"o-".concat(this.audioRefId++)})}),Uw(u)||null==(r=this.localAudioWorkletNode)||r.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),Uw(h)||null==(n=this.localAudioWorkletNode)||n.port.postMessage({type:"dump",data:{enable:h}})})}update(e){return Yb(this,null,function*(){var t,i,r;let{audioReference:n,enableDump:o,processLevel:s}=e;Uw(n)||(this.customAudioReferenceMap.forEach((e,t)=>{this.customAudioReferenceMap.delete(t),this.core.room.audioManager.updateAudioReference({type:"remove",refId:e})}),n.forEach(e=>{this.customAudioReferenceMap.set(e,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:e,refId:"o-".concat(this.audioRefId++)})})),Uw(s)||null==(t=this.localAudioWorkletNode)||t.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:s}}),Uw(o)||(null==(i=this.localAudioWorkletNode)||i.port.postMessage({type:"dump",data:{enable:o}}),null==(r=this.screenAudioWorkletNode)||r.port.postMessage({type:"dump",data:{enable:o}}))})}stop(){return Yb(this,null,function*(){var e,t;let{room:i}=this.core;null==(e=this.localAudioWorkletNode)||e.port.postMessage({type:"disable"}),null==(t=this.screenAudioWorkletNode)||t.port.postMessage({type:"disable"}),yield i.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(e,t,i){return Yb(this,null,function*(){let r=String(Date.now()).slice(0,-3),{auth:n,sign:o,status:s,message:a}=yield function(e){return Yb(this,arguments,function(e){let{sdkAppId:t,userId:i,userSig:r,timestamp:n}=e;return function*(){let e="".concat(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Xk.MAIN;return"https://".concat(OW[t]||VW(e,t),"/api/v1/audioAiAuth")}(t),"?sdkAppId=").concat(t,"&userId=").concat(i,"&userSig=").concat(r,"×tamp=").concat(n),o=yield fetch(e),{data:{errCode:s,errMsg:a,sign:c,status:l}}=yield o.json();if("1"===l)return{auth:!0,sign:c,status:l,message:a};let d=Tw(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",u="Init RTCAudioProcessor failed.",h="";switch(s){case 1:h="Please check your params.";break;case 2:h="You need to buy packages. Refer to: ".concat(d);break;case 3:h="Server is invalid. Please contact our engineer. ";break;case 4:h="Your packages is not active. Refer to: ".concat(d);break;case 5:h="Your packages is expired. Refer to: ".concat(d);break;case 6:h="Your version is not supported."}return{auth:!1,status:l,message:a?"".concat(u," Reason: ").concat(a,". ").concat(h):"".concat(u,", ").concat(h)}}()})}({sdkAppId:e,userSig:i,userId:t,timestamp:r});if(!n)throw this.log.info("audioProcessor: ".concat(t," auth result: ").concat(n,". Message: ").concat(a)),new ZH({code:qH.INVALID_PARAMETER,message:a});return{sign:o,status:s,timestamp:r}})}initWorkletNode(e,t,i,r,n,o,s,a){e.port.postMessage({type:"init",data:{sdkAppId:String(i),userId:r,timestamp:n,sign:o,status:s}}),e.port.onmessage=e=>{var i;let{data:r}=e;switch(r.type){case"cost":let e=(null==r?void 0:r.value)>10?"info":"debug";return void this.log[e]("".concat("localAudio"===t?"":"[".concat(t,"] "),"avg cost: ").concat(r.value," max: ").concat(null==r?void 0:r.max,"(").concat(fk(new Date(null==r?void 0:r.maxCostTimestamp)),") hist: ").concat(null==(i=null==r?void 0:r.hist)?void 0:i.join(" ")));case"log":return void this.log[r.logLevel]("".concat("localAudio"===t?"":"[".concat(t,"] ")).concat(r.value));case"dump":return void BM.emit("265",{room:a,data:r.value,type:"localAudio"===t?"dump":"dump-screen-audio"})}}}handleLocalAudioStarted(e){return Yb(this,null,function*(){var t;if(this.hitTest(e.room)&&!0===(null==(t=this.core.room.scheduleResult.config)?void 0:t.audioProcessor))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(AD){this.log.warn("audio processor auto start failed, error: ".concat(AD))}})}handleLocalAudioStopped(e){return Yb(this,null,function*(){var t;!this.hitTest(e.room)||!0!==(null==(t=this.core.room.scheduleResult.config)?void 0:t.audioProcessor)||(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(e){return e===this.core.room}};qb(ZW,"updateValidateRule",{type:"object"}),qb(ZW,"stopValidateRule",{type:"object"}),qb(ZW,"Name","AudioProcessor");var $W=ZW;var eG=0,tG=class{constructor(e,t){qb(this,"player"),qb(this,"publisher"),qb(this,"mixInput"),this.mixInput=new OV(t),e.url?(this.player=new Audio(e.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(e.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(e.track),this.mixInput.connect()}updateSettings(e){this.player&&(Uw(e.volume)||(this.volume=e.volume),Uw(e.loop)||(this.loop=e.loop),Uw(e.playbackRate)||(this.playbackRate=e.playbackRate))}updateListener(e){if(this.player){if(e.onDurationChange){let{onDurationChange:t}=e;this.player.ondurationchange=e=>{t(e.target.duration)}}if(e.onTimeUpdate){let t=e.onTimeUpdate,{player:i}=this;i.ontimeupdate=()=>{t(i.currentTime,i.duration)}}e.onEnded&&(this.player.onended=e.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(e){this.player&&(e<0&&e>this.player.duration||(this.player.currentTime=e,this.publisher.currentTime=e))}play(){var e,t;return null==(e=this.publisher)||e.play(),null==(t=this.player)?void 0:t.play()}pause(){var e,t;null==(e=this.player)||e.pause(),null==(t=this.publisher)||t.pause()}stop(){var e;null==(e=this.player)||e.pause(),this.mixInput.disconnect()}setOperation(e){"pause"===e&&this.pause(),"resume"===e&&(this.pause(),this.play()),"stop"===e&&(this.pause(),this.seek(0))}set volume(e){!this.player||!this.publisher||(this.player.volume=e,this.publisher.volume=e)}set loop(e){!this.player||!this.publisher||(this.player.loop=e,this.publisher.loop=e)}set playbackRate(e){!this.player||!this.publisher||(this.player.playbackRate=e,this.publisher.playbackRate=e)}};function iG(e,t){if(t&&"function"!=typeof t)throw new ZH({code:qH.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(e," should be a function.")})}var rG=class e{constructor(e){this.core=e,qb(this,"log"),qb(this,"mixedMusicMap",new Map),qb(this,"cacheMusicMap",new Map),eG+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(eG)}),this.log.info("created id=".concat(this.getAlias()).concat(eG))}getName(){return e.Name}getAlias(){return"ax"}getGroup(e){return null==e?void 0:e.id}getValidateRule(t){switch(t){case"start":return e.startValidateRule;case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Yb(this,null,function*(){let{room:t}=this.core;this.log.info("add music source, id: ".concat(e.id," url: ").concat(e.url,", track: ").concat(e.track));let{id:i,url:r}=e;if(this.mixedMusicMap.has(i))return;let n=this.cacheMusicMap.get(i);n?e.url?n.reset():(n.mixInput.replaceSource(e.track),n.mixInput.connect()):(n=new tG(e,t.audioManager),this.cacheMusicMap.set(i,n)),n.updateListener(e),n.updateSettings(e),yield n.play(),this.mixedMusicMap.set(i,n),n.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:n.mixInput.source.node,refId:"ax-".concat(i)}),this.log.info("start mix audio track ".concat(i," success.")),_L.addEnum({key:502700,value:3}),this.kvUpload(e)})}update(e){return Yb(this,null,function*(){let{id:t,operation:i,seekFrom:r,playbackRate:n}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let o=this.mixedMusicMap.get(t);o?(o.updateSettings(e),o.updateListener(e),Uw(i)||o.setOperation(i),Uw(r)||o.seek(r),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(t," not found."))})}stop(e){return Yb(this,arguments,function(e){var t=this;let{id:i}=e;return function*(){if(t.mixedMusicMap.has(i)){t.log.info("remove music source, music id: ".concat(i));let e=t.mixedMusicMap.get(i);null!=e&&e.mixInput.source.node&&t.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.source.node,refId:"ax-".concat(i)}),null==e||e.stop(),t.mixedMusicMap.delete(i)}"*"===i&&t.destroyAllMusic()}()})}kvUpload(e){let{track:t,loop:i,volume:r,playbackRate:n,operation:o,seekFrom:s,onTimeUpdate:a,onDurationChange:c,onEnded:l}=e;t&&_L.addCount({key:502711}),i&&_L.addCount({key:502703}),r&&_L.addCount({key:502704}),n&&_L.addCount({key:502705}),o&&_L.addCount({key:502706}),s&&_L.addCount({key:502707}),"function"!=typeof a&&_L.addCount({key:502709}),"function"!=typeof l&&_L.addCount({key:502710}),"function"!=typeof c&&_L.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((e,t)=>{null!=e&&e.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.track,refId:t}),this.stop({id:t})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};qb(rG,"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(e,t,i){if(e.url&&"*"!==e.url){let t=e.url.split("?")[0],r=["mp3","ogg","wav","flac"],n=t.split(".").pop(),o=r.indexOf(n)>=0,s=t.startsWith("blob"),a=t.startsWith("data");if(!(o||s||a))throw new ZH({code:qH.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:i})}if(!e.url&&!e.track)throw new ZH({code:qH.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:i});iG("onTimeUpdate",e.onTimeUpdate),iG("onEnded",e.onEnded),iG("onDurationChange",e.onDurationChange)}}),qb(rG,"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(e,t,i){iG("onTimeUpdate",e.onTimeUpdate),iG("onEnded",e.onEnded),iG("onDurationChange",e.onDurationChange)}}),qb(rG,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),qb(rG,"Name","AudioMixer");var nG,oG=rG,sG=0,aG=class e{constructor(e){this.core=e,qb(this,"log"),qb(this,"audioContext",kV()),qb(this,"workletNode"),sG+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(sG)}),this.log.info("created id=".concat(this.getAlias()).concat(sG))}static startValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(t,i,r,n){if(!e.room.audioManager.hasAudioTrack)throw new ZH({code:qH.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(e){return nG||(nG=this.doPreload(e)),nG}doPreload(e){return Yb(this,null,function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield gV(this.audioContext,i)}catch(tP){throw this.log.error("load worklet failed",tP),tP}finally{URL.revokeObjectURL(i)}})}getName(){return e.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser_".concat(Date.now())}getValidateRule(t){switch(t){case"start":return e.startValidateRule(this.core);case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Yb(this,null,function*(){let{room:t,schedule:i}=this.core,{assetsPath:r=this.core.assetsPath}=e;if(!r)throw new ZH({code:qH.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload("".concat(r,"/denoiser-wasm.js")),!this.workletNode){let t=String(Date.now()).slice(0,-3),{auth:r,sign:n,status:o,message:s}=yield function(e,t){return Yb(this,arguments,function(e,t){let{sdkAppId:i,userId:r,userSig:o,timestamp:s}=t;return function*(){try{let{data:{errCode:t,errMsg:n,sign:a,status:c}}=yield e.getAbilityConfig(i,e.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:i,userId:r,userSig:o,timestamp:s});if("1"===c)return{auth:!0,sign:a,status:c,message:n};let l=Tw(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",d="Init RTCAIDenoiser failed.",u="";switch(t){case 1:u="Please check your params.";break;case 2:u="You need to buy packages. Refer to: ".concat(l);break;case 3:u="Server is invalid. Please contact our engineer. ";break;case 4:u="Your packages is not active. Refer to: ".concat(l);break;case 5:u="Your packages is expired. Refer to: ".concat(l);break;case 6:u="Your version is not supported."}return{auth:!1,status:c,message:n?"".concat(d," Reason: ").concat(n,". ").concat(u):"".concat(d,", ").concat(u)}}catch(n){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(n)}}}()})}(i,Wb(Hb({},e),{timestamp:t}));if(!r)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(r,". Message: ").concat(s)),new ZH({code:qH.INVALID_PARAMETER,message:s});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(e.sdkAppId),userId:e.userId,timestamp:t,sign:n,status:o}}),this.workletNode.port.onmessage=e=>{var t;let{data:i}=e;if("cost"===i.type){let e=(null==i?void 0:i.max)>20?"warn":(null==i?void 0:i.max)>10?"info":"debug";this.log[e]("avg cost: ".concat(i.value," max: ").concat(null==i?void 0:i.max,"(").concat(fk(new Date(null==i?void 0:i.maxCostTimestamp)),") hist: ").concat(null==(t=null==i?void 0:i.hist)?void 0:t.join(" ")))}else"log"===i.type&&this.log[i.logLevel]("".concat(i.value))}}this.workletNode.port.postMessage({type:"enable"}),t.audioManager.addDenoiser(this.workletNode),t.sendAbilityStatus({ai_denoise:1})})}update(){return Yb(this,null,function*(){})}stop(){return Yb(this,null,function*(){if(!this.workletNode)return;let{room:e}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield e.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};qb(aG,"updateValidateRule",{type:"object"}),qb(aG,"stopValidateRule",{type:"object"}),qb(aG,"Name","AIDenoiser");var cG=aG;var lG=Jb(Xb(),1),dG=class extends lG.EventEmitter{constructor(){super(),qb(this,"observer"),qb(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 Yb(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!rO&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(Sk){Gx.uploadEvent({log:"stat-pressure-detector-start-failed",error:Sk})}})}onPressureChange(e){let t=this.stateNum,i=e[e.length-1];this.state=i.state,(this.stateNum>3||t>3)&&JM.info("".concat(i.source,": ").concat(i.state)),this.emit("state-changed",{type:i.source,state:this.state})}destroy(){var e;try{null==(e=this.observer)||e.disconnect(),this.observer=null}catch(AD){Gx.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:AD})}}},uG=new dG;function hG(e){let[t,i]=e,r=i.byteLength,n=parseInt(String(r/255),10),o=r%255,s=[];s.push(0,0,0,1,6,t);for(let c=0;c<n;c++)s.push(255);s.push(o);let a=new DataView(i);return s.push(...new Uint8Array(a.buffer)),s.push(128),new zB(new DataView(new Uint8Array(s).buffer),!0)}function pG(e){return"empty"===e.type||0===e.data.byteLength}function mG(e){return 1===e.getInt32(0)&&6===e.getInt8(4)}function _G(e){let t=0,i=0,r=new DataView(e);for(let n=0;n<e.byteLength;n++)switch(r.getUint8(n)){case 0:t++;break;case 1:(2===t||3===t)&&i++,t=0;break;default:t=0}return i}function fG(e){let{frame:t,seiMessageList:i}=e;if(!i||0===i.length||0===t.data.byteLength)return t;let r=9-_G(t.data);if(r<=0)return t;let n=i.splice(0,r).reverse().map(hG),o=n.reduce((e,t)=>e+t.dataView.byteLength,0),s=new ArrayBuffer(o+t.data.byteLength),a=new DataView(s),c=new DataView(t.data),l=0;for(let d=0;d<n.length;d++)for(let e=0;e<n[d].dataView.byteLength;e++)a.setInt8(l++,n[d].dataView.getInt8(e));for(let d=0;d<t.data.byteLength;d++)a.setInt8(l++,c.getInt8(d));return t.data=s,t}function gG(e){let{frame:t,onSEI:i}=e;try{let e=new DataView(t.data);if(pG(t)||!mG(e))return t;let r=[],n=0,o=-1,s=-1;for(let i=0;i<t.data.byteLength;i++){let a=e.getUint8(i);if(0===a)n++;else if(1===a){if(2===n||3===n){let a=i-n;if(-1===o?o=a:-1===s&&(s=a,r.push(new zB(new DataView(e.buffer.slice(o,s)))),o=a,s=-1),6!==e.getUint8(i+1)){t.data=e.buffer.slice(a);break}}n=0}else n=0}null==i||i(r.reverse())}catch(Sk){}return t}var EG=0,TG=class e{constructor(e){this.core=e,qb(this,"log"),qb(this,"_seiMessageList",[]),qb(this,"_smallSeiMessageList",[]),qb(this,"_subStreamSeiMessageList",[]),EG++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(EG)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(EG)),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:t,mediaType:i}=e;try{return fG({frame:t,seiMessageList:8===i?this._smallSeiMessageList:2===i?this._subStreamSeiMessageList:this._seiMessageList})}catch(AD){this.log.warn(AD)}return t}decode(e){let{frame:t,track:i}=e;return gG({frame:t,onSEI:e=>{e.forEach(e=>{this.core.trtc.emit(RW.SEI_MESSAGE,{seiPayloadType:e.seiPayloadType,data:e.seiPayload.buffer,userId:i.userId,streamType:2===i.mediaType?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(e){switch(e){case"start":case"update":case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:rx?this.encode:fG,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:rx?this.decode:gG,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:t,options:i}=e;var r;let n=[i.seiPayloadType,t],o=!!i.small;i.toSubStream?this._subStreamSeiMessageList.push(n):(this._seiMessageList.push(n),o&&this._smallSeiMessageList.push(n)),null==(r=this.core.room.scriptTransformWorker)||r.postMessage({type:"sei",data:n,isMain:!i.toSubStream,small:o})}getName(){return e.Name}getAlias(){return"sei"}getGroup(){return"sei"}};qb(TG,"autoStart",!0),qb(TG,"Name","SEI");var vG=TG;function yG(e){let{frame:t,onDump:i}=e;return null==i||i(),t}function SG(e){let{frame:t,onDump:i}=e;return null==i||i(),t}var IG={"play() error: NotAllowedError:":{tips:e=>e.includes("main <video>")||e.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:e=>e.includes("↓")?"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:e=>e.includes("↓")?"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:\n 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.\n 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:\n 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.\n 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(e=>{IG["".concat(e,"()")]={tips:"Call trtc.".concat(e),color:"blue",class:"blue",textColor:"#fff"}});var AG,RG=0,CG=class e{constructor(e){this.core=e,qb(this,"_core"),qb(this,"log"),qb(this,"dumpLocalVideoMap",{}),qb(this,"dumpRemoteVideoMap",{}),qb(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++RG)}),this.log.info("created")}getName(){return e.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(e){switch(e){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return Yb(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&"true"!==(null==(e=window.sessionStorage)?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(e){return Yb(this,arguments,function(e){var t=this;let{visible:i}=e;return function*(){i?(yield t.openDebugDiaLog(),t.addVideoProcessor()):(t.closeDebugDiaLog(),t.removeVideoProcessor())}()})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return Yb(this,null,function*(){var e;if(!this.dialog)try{if(AG)yield AG;else{let t=new URLSearchParams(location.search).get("trtcDebugDialogPath")||(null==(e=window.sessionStorage)?void 0:e.getItem("TRTC_DEBUG_DIALOG_PATH"))||"https://unpkg.com/".concat("trtc-sdk-v5","@").concat(vk,"/assets/debug-dialog.js");AG=this._core.fileDownloader.loadScript(t),yield AG}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(Sk){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(Sk))}})}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):yG,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):SG,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo(e){let{frame:t,mediaType:i}=e;return yG({frame:t,onDump:()=>{if(!i)return;let e=2===i?"sub":"main",r=this.dumpLocalVideoMap[e];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>1e3*r.duration&&r.onDumpEnd())}})}decodeVideo(e){let{frame:t,track:i}=e;return SG({frame:t,onDump:()=>{if(!i)return;let e=this.dumpRemoteVideoMap["".concat(i.userId,"-").concat(i.streamType)];e&&(e.data.push(t.data.slice(0)),e.duration>0&&Date.now()-e.startTimestamp>1e3*e.duration&&e.onDumpEnd())}})}};qb(CG,"Name","Debug"),qb(CG,"autoStart",!0);var bG=CG,kG=e=>{switch(e){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},DG=class{constructor(e,t,i){qb(this,"trackDoneOB"),qb(this,"startOB"),qb(this,"stopOB"),qb(this,"inputFrameCount",0),qb(this,"decodedFrameCount",0),qb(this,"type","auto"),qb(this,"config"),qb(this,"decoder"),qb(this,"_decodeSink");let{kvStatManager:r,trtc:n}=e;this.config=i.config,this.trackDoneOB=fF(t,Nx.INIT),this.stopOB=rF(),this.startOB=rF(),"auto"===i.type?this.type="webCodecs":this.type=i.type;let o=rF();xU(this.startOB,ZU(0),_B(e=>{let i=this.pipe(t);return o.next("STARTING"),t.log.info("decoder type: ".concat(this.type)),xU(i,UF(this.stopOB),FB(()=>{},i=>{t.log.error(i),r.addFailedEvent({key:kG(this.type),error:i}),e>4?this.startOB.error(i):this.startOB.next(e+1)})),xU(i,VF(1),PB(kF))}),UF(this.stopOB),FB(()=>{t.player.setOutput(),o.next("STARTED")},e=>{o.next("FAILED")},()=>{r.addSuccessEvent({key:kG(this.type)}),r.addSuccessEvent({key:504702})}))}mock(e){this._decodeSink?this._decodeSink.error(e):this.startOB.next(0)}close(e){this.stopOB.next(e)}pipe(e){return jU()(t=>Yb(this,null,function*(){this._decodeSink=t,t.defer(()=>{var e;null==(e=this.decoder)||e.close()});let{type:i}=this;try{if("webCodecs"===i)this.decoder=new AudioDecoder({error:i=>{e.log.error(i),t.error(4)},output:i=>{this.decodedFrameCount++,t.next(i),e.player.write(i)}});this.decoder.configure(this.config)}catch(tP){e.log.error(tP),t.error("webCodecs"===i?2:6)}}))}decodeFrame(e){var t;this.inputFrameCount++,"configured"===(null==(t=this.decoder)?void 0:t.state)&&this.decoder.decode(new EncodedAudioChunk({data:e.data,timestamp:e.timestamp,type:"key"}))}},wG={type:"object"},NG=class e{constructor(e){this.core=e,qb(this,"log"),qb(this,"contextMap",new Map),qb(this,"decodeProcessorMap",new WeakMap),this.log=e.log.createChild({id:"".concat(this.getAlias())})}getAlias(){return e.Name}getGroup(e){return e.track.userId+e.track.streamType}getName(){return e.Name}getValidateRule(e){return wG}start(e){let{track:t}=e;this.decodeProcessorMap.set(t,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:e=>{let{frame:t,track:i}=e;return this.decodeProcessorMap.has(i)?this.decodeProcessorMap.get(i)({frame:t,track:i}):t},type:3})}decode(e){return t=>{let{frame:i,track:r}=t;if(r!==e.track)return i;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(i);let n=new DG(this.core,r,e);return xU(n.trackDoneOB,VF(1),FB(()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:r})})),this.contextMap.set(r,n),n.decodeFrame(i)}}stop(e){let{track:t}=e,i=this.contextMap.get(t);i&&(i.close("stop"),this.contextMap.delete(t),0===this.contextMap.size&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(e){let t=this.contextMap.get(e.track);if(t){if("mock"===e.type)return void t.mock(10);t.close("update"),this.contextMap.set(e.track,new DG(this.core,e.track,e))}}};qb(NG,"Name","TRTCAudioDecoder");var OG=NG,MG=class{constructor(){qb(this,"log"),this.log=JM.createLogger({id:"exp"})}call(e,t){return Yb(this,null,function*(){return Vw(this[e])?this[e](t):Promise.reject(new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.API_NOT_EXIST,data:{name:e}})}))})}enableAudioFrameEvent(e){return Yb(this,null,function*(){let{trtcInstance:t,enable:i,userId:r,sampleRate:n=48e3,channelCount:o=1,port:s}=e,{audioManager:a}=t.room,{getPCMAbortCtrlMap:c,audioFrameEventConfigMap:l}=a;if(l.set(r,{enable:i,sampleRate:n,channelCount:o,port:s}),i)if("*"===r)t.room.remotePublishedUserMap.forEach(e=>{if(e.remoteAudioTrack.isAvailable){if(c.get(e.userId))return;let i=a.getPCM(e=>{t.emit(RW.AUDIO_FRAME,e)},e.userId);c.set(e.userId,i)}});else{if(c.get(r))return;let e=a.getPCM(e=>{t.emit(RW.AUDIO_FRAME,e)},r);c.set(r,e)}else if("*"===r)t.room.remotePublishedUserMap.forEach(e=>{if(e.remoteAudioTrack.isSubscribed){let{userId:t}=e,i=c.get(t);null==i||i.abort("disable"),c.delete(t)}});else{let e=c.get(r);null==e||e.abort("disable"),c.delete(r)}})}};Kb([function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return _U((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return FH.call(this,t,n,i,this._name),e.apply(this,n)})}({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"}}})],MG.prototype,"enableAudioFrameEvent",1);var PG=new MG,LG=Jb(Xb(),1),xG=class extends LG.EventEmitter{constructor(){super(),qb(this,"states",{}),qb(this,"permissionChangeHandler"),qb(this,"log"),this.log=JM.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,t;this.emit("permission-state-change",{camera:null==(e=this.states.camera)?void 0:e.state,microphone:null==(t=this.states.microphone)?void 0:t.state})}}request(e){return Yb(this,null,function*(){if(this.log.info("request ".concat(e.join(", "))),0===e.length)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(e=>e.stop())})}get(e){return Yb(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 ".concat(e," permission state: ").concat(this.states[e].state)),this.states[e].state}catch(AD){return this.log.error("get ".concat(e," permission failed, error: ").concat(AD instanceof Error?AD.message:AD)),null}})}destroy(){Object.values(this.states).forEach(e=>{null==e||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},VG=new xG,UG=0,FG=new Set,BG=null;yk("5.13.0-beta.17"),qM.checkStorage();var HG=class e extends ok.EventEmitter{constructor(t,i){super(),qb(this,"_room"),qb(this,"_eventListened",new Set),qb(this,"_localVideoTrack",null),qb(this,"_localAudioTrack",null),qb(this,"_localScreenTrack",null),qb(this,"_localScreenAudioTrack",null),qb(this,"_localVideoConfig",null),qb(this,"_localScreenConfig",null),qb(this,"_localAudioConfig",null),qb(this,"_remoteVideoConfigMap",new Map),qb(this,"_remoteAudioConfigMap",new Map),qb(this,"_remoteAudioVolumeMap",new Map),qb(this,"_remoteAudioMuteMap",new Map),qb(this,"_mediaTrackMap",new WeakMap),qb(this,"_log",JM.createLogger({id:"t".concat(++UG)})),qb(this,"_plugins",new Map),qb(this,"_networkQuality",null),qb(this,"_speakerId"),qb(this,"enterRoomParams"),qb(this,"_enableAutoSwitchWhenRecapturing",!0),this._room=new t(Hb({logger:this._log,frameWorkType:e.frameWorkType},i)),this._room.videoDecodeFallbackType=i.videoDecodeFallback,Hw(i.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=i.enableAutoSwitchWhenRecapturing),this._log.info("create() ".concat(JSON.stringify(i,(e,t)=>"plugins"===e?t.map(e=>e.Name):t))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(e){return this._room.audioManager.dump(e)}}}),i.plugins&&i.plugins.forEach(e=>{this._use(e,i.assetsPath)}),this._use(oG,i.assetsPath),this._use($W,i.assetsPath),this._use(cG,i.assetsPath),this._use(OG,i.assetsPath),this._use(bG),i.enableSEI&&ox&&this._use(vG),this._room.on("audio-volume",e=>{var t,r;!e.find(e=>""===e.userId)&&this._localAudioTrack&&e.push({userId:"",volume:Math.floor(100*(null!=(t=this._localAudioTrack.getInternalAudioLevelAfter3A())?t:this._localAudioTrack.getAudioLevel())),floatVolume:null!=(r=this._localAudioTrack.getInternalAudioLevelAfter3A())?r:this._localAudioTrack.getInternalAudioLevel()}),1===i.volumeType&&e.forEach(e=>{var t;let i=""===e.userId?this._localAudioTrack:null==(t=this.room.remotePublishedUserMap.get(e.userId))?void 0:t.remoteAudioTrack;i&&(e.volume=i.dbVolume)}),i.enableDbVolume&&e.forEach(e=>{var t;let i=""===e.userId?this._localAudioTrack:null==(t=this.room.remotePublishedUserMap.get(e.userId))?void 0:t.remoteAudioTrack;i&&(e.volume=i.dbVolume)}),this.emit(RW.AUDIO_VOLUME,{result:e.sort((e,t)=>t.volume-e.volume)})}),this._room.videoManager.on("error",e=>{this._log.error(new ZH({code:qH.OPERATION_FAILED,extraCode:5504,message:e.message,originError:e}))}),this._listenEvents(),this._initActiveSpeaker(),((e,t)=>{let{emit:i}=e;e.emit=function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{return i.apply(e,n)}catch(tP){let i=nL({key:eL.CATCH_HANDLER_ERROR,data:{name:t,event:n[0]},addDocLink:!1});return JM.warn("".concat(i,"\n\n").concat(tP.stack)),!1}}})(this,"trtc")}static create(e){}static _create(t,i){!function(){var e;if(JH){JH=!1,5!==JM.getLogLevel()&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(Mk,"/en/index.html")),console.info("* Changelog: ".concat(Mk,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),JM.info("TRTC Web SDK Version:",vk),IM||JM.debug("Build Time:","2025-08-25 20:04:11");let t="UA: ".concat(navigator.userAgent," \nCPU core: ").concat(navigator.hardwareConcurrency,", GPU: ").concat(NM()),i=navigator.deviceMemory;i&&(t+=", minRAM: ".concat(i,"GB")),JM.info(t),JM.info("URL: ".concat(location.href).concat("IFRAME"===(null==(e=self.frameElement)?void 0:e.tagName)?" in iframe":"")),wM().then(e=>{e&&JM.info(DM)})}}();let r=new e(t,i||{});return FG.add(r),r.__v_skip=!0,r}get room(){return this._room}_listenEvents(){Hx(this,this._room).add("peer-join",e=>{let{userId:t}=e;this.emit(RW.REMOTE_USER_ENTER,{userId:t})}).add("peer-leave",e=>{this.emit(RW.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(RW.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(RW.ERROR,ZH.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(RW.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let t=Wb(Hb({},e),{uplinkRTT:Math.min(e.uplinkRTT,QD),downlinkRTT:Math.min(e.downlinkRTT,QD)});this.emit(RW.NETWORK_QUALITY,t)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(t=>{Hx(t,t).add("player-state-changed",i=>{let r=Wb(Hb({},i),{userId:e.userId});t.kind===Xk.VIDEO&&(r.streamType=$H(t.streamType)),this.emit(t.kind===Xk.AUDIO?RW.AUDIO_PLAY_STATE_CHANGED:RW.VIDEO_PLAY_STATE_CHANGED,r)}).add("error",e=>{e.getCode()===ak.PLAY_NOT_ALLOWED&&this.emit(RW.AUTOPLAY_FAILED,{userId:t.userId,mediaType:t.strMediaType,resume:()=>t.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(e=>{Wx(e)})}).add("remote-publish-state-changed",e=>{let{prevMuteState:t,muteState:i}=e,{userId:r}=i,n=t.audioAvailable,o=t.videoAvailable,{audioAvailable:s,videoAvailable:a}=i;s||this._remoteAudioConfigMap.delete(r),a||this._removeRemoteVideoConfig(r,"main"),i.hasAuxiliary||this._removeRemoteVideoConfig(r,"sub"),o!==a&&(a?this._onVideoAvailable({userId:r,streamType:"main"}):this._onVideoUnavailable({userId:r,streamType:"main"}),this.emit(a?RW.REMOTE_VIDEO_AVAILABLE:RW.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"main"})),n!==s&&(s?this._onAudioAvailable({userId:r}):this._onAudioUnavailable({userId:r,muteState:i}),this.emit(s?RW.REMOTE_AUDIO_AVAILABLE:RW.REMOTE_AUDIO_UNAVAILABLE,{userId:r})),t.hasAuxiliary!==i.hasAuxiliary&&(i.hasAuxiliary?this._onVideoAvailable({userId:r,streamType:"sub"}):this._onVideoUnavailable({userId:r,streamType:"sub"}),this.emit(i.hasAuxiliary?RW.REMOTE_VIDEO_AVAILABLE:RW.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"sub"}))}).add("sei-message",e=>{this.emit(RW.SEI_MESSAGE,Wb(Hb({},e),{streamType:$H(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(RW.ERROR,new ZH({code:qH.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var t,i,r,n,o,s,a;let c={2:"big",3:"small",7:"sub"},l={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||(null==(t=e.msg_down_stream_info[0])?void 0:t.msg_network_status.uint32_rtt)||(null==(i=this._networkQuality)?void 0:i.uplinkRTT)||(null==(r=this._networkQuality)?void 0:r.downlinkRTT)||0,QD),upLoss:(null==(n=this._networkQuality)?void 0:n.uplinkLoss)||0,downLoss:(null==(o=this._networkQuality)?void 0:o.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:((null==(s=e.msg_up_stream_info.msg_audio_status)?void 0:s.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:((null==(a=e.msg_up_stream_info.msg_audio_status)?void 0:a.uint32_audio_level)||0)/HP},video:e.msg_up_stream_info.msg_video_status.filter(e=>c[e.uint32_video_stream_type]).map(e=>({bitrate:(e.uint32_video_codec_bitrate||0)/1e3,width:e.uint32_video_width,height:e.uint32_video_height,frameRate:e.uint32_video_enc_fps,videoType:c[e.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(e=>({userId:e.msg_user_info.str_identifier,audio:{bitrate:(e.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(e.msg_audio_status.uint32_audio_level||0)/HP,point2pointDelay:(e.msg_audio_status.uint32_audio_p2p_delay||0)+(e.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:e.msg_audio_status.uint32_audio_cache_ms||0},video:e.msg_video_status.map(e=>({bitrate:(e.uint32_video_codec_bitrate||0)/1e3,width:e.uint32_video_width,height:e.uint32_video_height,frameRate:e.uint32_video_dec_fps,videoType:c[e.uint32_video_stream_type],point2pointDelay:(e.uint32_video_p2p_delay||0)+(e.uint32_video_cache_ms||0),jitterBufferDelay:e.uint32_video_cache_ms||0,codec:e.uint32_video_codec}))}))};this.emit(RW.STATISTICS,l)}).add("custom-message",e=>{this.emit(RW.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(RW.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(RW.FIRST_VIDEO_FRAME,Wb(Hb({},e),{streamType:$H(e.streamType)}))}).add("audio-frame",e=>{this.emit(RW.AUDIO_FRAME,e)}),Hx(this,jV).add("audioInputAdded",e=>{this.emit(RW.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(RW.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(RW.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(RW.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>Yb(this,null,function*(){if(this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),BG&&BG.deviceId===jD){let e=(yield XV()).find(e=>e.deviceId===jD);e&&BG.groupId!==e.groupId&&(BG=e,this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:e}))}})).add("audioOutputRemoved",e=>Yb(this,null,function*(){this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield XV())[0];if(!t||!BG||BG.groupId===t.groupId)return;let i=BG.deviceId===e.deviceId,r=BG.deviceId===jD&&BG.deviceId===t.deviceId;(i||r)&&(BG=t,this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))})),Hx(this,VG).add("permission-state-change",e=>{this.emit(RW.PERMISSION_STATE_CHANGE,e)})}getNetworkTime(){return mk()}use(e){let t,i;return"plugin"in e?(t=e.plugin,i=e.assetsPath):t=e,"Chorus"===t.Name&&(this.room.enableChorus=!0),this._use(t,i)}_use(t,i){let r=this._plugins.get(t.Name);if(r)return this._log.warn("duplicate install plugin",t.Name),r;let n=new t(WW.call(this,{TRTC:e,room:this._room,assetsPath:i,errorModule:{RtcError:ZH,ErrorCode:qH,CoreErrorCode:ak,ErrorCodeDictionary:zH}}));return this._plugins.set(t.Name,n),n.__v_skip=!0,t.autoStart&&this.startPlugin(t.Name),n}enterRoom(t){return Yb(this,null,function*(){var i,r;this.enterRoomParams=t;let{scene:n="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:a=!1}=t;t.proxy&&(this._room.setProxyServer(t.proxy),!Fw(t.proxy)&&t.proxy.turnServer&&(null==(r=(i=this._room).setTurnServer)||r.call(i,t.proxy.turnServer,t.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=a,Hw(t.preferHW)&&(this._room.preferHW=t.preferHW),t.playoutDelay&&(this._room.playoutDelay=t.playoutDelay),t.jitterBufferDelay&&(this._room.jitterBufferDelay=t.jitterBufferDelay);let c={sdkAppId:t.sdkAppId,userId:t.userId,userSig:t.userSig,privateMapKey:t.privateMapKey||null,latencyLevel:t.latencyLevel,role:"audience"===t.role?21:20,roomId:t.roomId||0,strRoomId:t.strRoomId||"",businessInfo:t.businessInfo||null,streamId:null,userDefineRecordId:t.userDefineRecordId||null,frameWorkType:t.frameWorkType,component:t.component,language:t.language,priority:t.priority,useVp8:t.useVp8,useH265:t.useH265,keepAlive:t.keepAlive};t.strRoomId&&!t.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(c,n,e.frameWorkType),this._checkTrackToPublish(),uG.start()})}exitRoom(){return Yb(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return Yb(this,null,function*(){if(this.room.isSwitchRoomSupported())try{yield this._room.switchRoom(e)}catch(AD){if(!(AD instanceof ck)||AD.code!==ak.API_CALL_TIMEOUT&&AD.code!==ak.SWITCH_ROOM_FAILED)throw AD;this._log.warn("switchRoom ".concat(AD.code===ak.API_CALL_TIMEOUT?"timeout":"failed",", fallback to exitRoom() and enterRoom()")),yield this._rejoinRoom(e)}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return Yb(this,null,function*(){yield this.exitRoom();let t=Hb(Hb({},this.enterRoomParams),e);yield this.enterRoom(t)})}switchRole(e,t){return Yb(this,null,function*(){null!=t&&t.privateMapKey&&(this._room.privateMapKey=t.privateMapKey),null!=t&&t.latencyLevel&&(this._room.latencyLevel=t.latencyLevel),yield this._room.switchRole(e),"anchor"===e&&this._checkTrackToPublish()})}destroy(){Wx(this),this.removeAllListeners(),this._room.destroy(),FG.delete(this),0===FG.size&&uG.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var t;return null==(t=e.destroy)?void 0:t.call(e)}),this._plugins.clear(),BM.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0};return function*(){if(e._localAudioTrack)return void e._log.warn("local audio is already started");let{publish:i=!0,mute:r,option:n}=t,o=new qB(e._room.audioManager),s={},a={muted:!0};n&&(Uw(n.microphoneId)?Uw(n.audioTrack)||(s.customSource=n.audioTrack):s.deviceId=n.microphoneId,n&&Bw(n.captureVolume)&&o.setCaptureVolume(n.captureVolume),Uw(n.profile)||(Fw(n.profile)?Jk[n.profile]&&o.setProfile(Jk[n.profile]):o.setProfile(n.profile)),Bw(n.earMonitorVolume)&&(a.muted=!(n.earMonitorVolume>0),a.volume=n.earMonitorVolume),Uw(n.echoCancellation)||(o.profile.echoCancellation=n.echoCancellation),Uw(n.noiseSuppression)||(o.profile.noiseSuppression=n.noiseSuppression),Uw(n.autoGainControl)||(o.profile.autoGainControl=n.autoGainControl),Hw(e._enableAutoSwitchWhenRecapturing)&&(o.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),o.on("5",t=>{e.emit(RW.ERROR,new ZH({code:qH.DEVICE_ERROR,extraCode:5309,messageParams:{error:t}}))}),o.on("2",t=>{e.emit(RW.DEVICE_CHANGED,{type:"microphone",action:"active",device:t})}),o.on("4",t=>{let i;t.error&&(i=ZH.convertFrom(t.error)),e.emit(RW.PUBLISH_STATE_CHANGED,Wb(Hb({},t),{error:i}))}),o.on("6",()=>{e.emit(RW.ERROR,new ZH({code:qH.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))}),e._listenOutputTrackChanged(o),e._speakerId&&o.setAudioOutput(e._speakerId),yield o.capture(s),Uw(r)||o.setMute(r),Hx(o,o).add("player-state-changed",t=>{e.emit(RW.AUDIO_PLAY_STATE_CHANGED,Wb(Hb({},t),{userId:""}))}),i&&e._room.isJoined&&e._room.publish(o).catch(()=>{}),e._localAudioTrack=o,e._localAudioConfig=Wb(Hb({},t),{publish:i}),yield e._updateAudioPlayOption({playOption:a,track:o}),BM.emit("113",{userId:"",room:e.room})}()})}updateLocalAudio(e){return Yb(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:t,mute:i,option:r}=e,n={};r&&(r.microphoneId?yield this._localAudioTrack.switchDevice(r.microphoneId):Uw(r.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(r.audioTrack)),Uw(r.captureVolume)||this._localAudioTrack.setCaptureVolume(r.captureVolume),Uw(r.earMonitorVolume)||(n.muted=!(r.earMonitorVolume>0),n.volume=r.earMonitorVolume),yield this._localAudioTrack.update3A(r)),this._room.isJoined&&!Uw(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),Uw(i)||this._localAudioTrack.setMute(i),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),sN(this._localAudioConfig,e)})}stopLocalAudio(){return Yb(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),BM.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),Wx(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0,view:null,capture:!0};return function*(){var i;if(e._localVideoTrack)return void e._log.warn("local video is already started");let{view:r,publish:n=!0,capture:o=!0,mute:s,option:a}=t,c=new QB(e._room.videoManager),l={},d={};a&&(Hw(a.avoidCropping)&&(c.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:Uw(a.useFrontCamera)?Uw(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?Xk.FACING_MODE_USER:Xk.FACING_MODE_ENVIRONMENT,Uw(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=eW(a.qosPreference)),Uw(a.profile)||(Fw(a.profile)?Kk[a.profile]&&c.setProfile(Kk[a.profile]):c.setProfile(a.profile)),Uw(a.fillMode)||(d.objectFit=a.fillMode),Uw(a.mirror)||(d.mirror=a.mirror),Uw(a.small)||(Uw(a.smallMode)||(e._room.smallMode=a.smallMode),Hw(a.small)&&!1===a.small?c.stopSmall():c.updateSmallConfig(tW(a.small,!0))),Uw(a.rotation)||c.setRotation(a.rotation),Hw(e._enableAutoSwitchWhenRecapturing)&&(c.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),c.once("first-video-frame",t=>{e.emit(RW.FIRST_VIDEO_FRAME,Wb(Hb({},t),{streamType:$H(t.streamType)}))}),c.on("5",t=>{e.emit(RW.ERROR,new ZH({code:qH.DEVICE_ERROR,extraCode:5308,messageParams:{error:t}}))}),c.on("2",t=>{e.emit(RW.DEVICE_CHANGED,{type:"camera",action:"active",device:t})}),c.on("4",t=>{let i;t.error&&(i=ZH.convertFrom(t.error)),e.emit(RW.PUBLISH_STATE_CHANGED,Wb(Hb({},t),{error:i}))}),c.on("6",()=>{e.emit(RW.ERROR,new ZH({code:qH.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))}),e._listenOutputTrackChanged(c),o?yield c.capture(l):null==(i=c.manager)||i.changeInput(c),Uw(s)||(yield c.setMute(s)),Hx(c,c).add("player-state-changed",t=>{e.emit(RW.VIDEO_PLAY_STATE_CHANGED,Wb(Hb({},t),{userId:"",streamType:"main"}))}).add("video-size-changed",t=>{e.emit(RW.VIDEO_SIZE_CHANGED,Wb(Hb({},t),{streamType:$H(t.streamType)}))}),n&&e._room.isJoined&&e._room.publish(c).catch(()=>{}),e._localVideoTrack=c,e._localVideoConfig=Wb(Hb({},t),{view:r,publish:n,capture:o}),yield e._updateVideoPlayOption({view:r,playOption:d,track:c})}()})}updateLocalVideo(e){return Yb(this,null,function*(){var t,i,r;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:n,publish:o,mute:s,capture:a,option:c}=e,l={};if(this._localVideoConfig.capture)!1!==a?null!=c&&c.cameraId?yield this._localVideoTrack.switchDevice(null==c?void 0:c.cameraId):Uw(null==c?void 0:c.useFrontCamera)?Uw(null==c?void 0:c.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(null==c?void 0:c.videoTrack)):yield this._localVideoTrack.switchDevice(null!=c&&c.useFrontCamera?Xk.FACING_MODE_USER:Xk.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(a){let e={};e.deviceId=(null==c?void 0:c.cameraId)||(null==(t=this._localVideoConfig.option)?void 0:t.cameraId),e.facingMode=null!=c&&c.useFrontCamera||null!=(i=this._localVideoConfig.option)&&i.useFrontCamera?Xk.FACING_MODE_USER:Xk.FACING_MODE_ENVIRONMENT,e.customSource=(null==c?void 0:c.videoTrack)||(null==(r=this._localVideoConfig.option)?void 0:r.videoTrack),yield this._localVideoTrack.capture(e)}c&&(Uw(c.profile)||(Fw(c.profile)?Kk[c.profile]&&this._localVideoTrack.setProfile(Kk[c.profile]):this._localVideoTrack.setProfile(c.profile),(!c.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(c.cameraId))&&Uw(c.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),Uw(c.fillMode)||(l.objectFit=c.fillMode),Uw(c.mirror)||(l.mirror=c.mirror),Uw(c.rotation)||this._localVideoTrack.setRotation(c.rotation),c.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(eW(c.qosPreference)),Uw(c.small)||(Hw(c.small)&&!c.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(tW(c.small,!0)))),this._room.isJoined&&Uw(o)&&this._localVideoConfig.publish&&a&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((null!=o?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),Uw(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:n,playOption:l,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),sN(this._localVideoConfig,e)})}stopLocalVideo(){return Yb(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),Wx(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0,view:null};return function*(){var i,r;if(e._localScreenTrack)return void e._log.warn("screen share is already started");let{view:n=null,publish:o=!0,muteSystemAudio:s,option:a}=t,c=new CH(e._room.videoManager);c.on("4",t=>{let i;t.error&&(i=ZH.convertFrom(t.error)),e.emit(RW.PUBLISH_STATE_CHANGED,Wb(Hb({},t),{error:i}))}),c.once("first-video-frame",t=>{e.emit(RW.FIRST_VIDEO_FRAME,Wb(Hb({},t),{streamType:$H(t.streamType)}))}),e._listenOutputTrackChanged(c),"main"===t.streamType&&(c.mediaType=4);let l=null,d={},u={};a&&(Uw(a.profile)||(Fw(a.profile)?Yk[a.profile]&&c.setProfile(Yk[a.profile]):c.setProfile(a.profile)),a.systemAudio&&(d.systemAudio=!0,d.echoCancellation=a.echoCancellation,d.noiseSuppression=a.noiseSuppression,d.autoGainControl=a.autoGainControl),Uw(a.fillMode)||(u.objectFit=a.fillMode),a.videoTrack&&(d.videoTrack=a.videoTrack),a.audioTrack&&(d.audioTrack=a.audioTrack),a.captureElement&&(d.captureElement=a.captureElement),a.preferDisplaySurface&&(d.preferDisplaySurface=a.preferDisplaySurface),a.qosPreference&&(d.contentHint=eW(a.qosPreference)));let h=yield c.capture(d);if(c.mediaTrack.addEventListener(Xk.ENDED,()=>{e._stopScreenShare(),e.emit(RW.SCREEN_SHARE_STOPPED)}),h.getAudioTracks()[0]){l=new kH(e._room.audioManager);let n=h.getAudioTracks()[0];null!=(i=t.option)&&i.systemAudio&&!(null!=(r=t.option)&&r.audioTrack)&&(l.sourceTrack=n),yield l.setInputMediaStreamTrack(n),Hw(s)&&l.mediaTrack&&(l.mediaTrack.enabled=!s),e._speakerId&&l.setAudioOutput(e._speakerId)}if(Hx(c,c).add("player-state-changed",t=>{e.emit(RW.VIDEO_PLAY_STATE_CHANGED,Wb(Hb({},t),{userId:"",streamType:"sub"}))}),o&&e._room.isJoined){let t=[c];l&&(t.push(l),e._checkScreenAudioEchoCancellation(c,l)),e._room.publish(...t).catch(()=>{})}e._localScreenTrack=c,e._localScreenAudioTrack=l,e._localScreenConfig=Wb(Hb({},t),{view:n,publish:o}),yield e._updateVideoPlayOption({view:n,playOption:u,track:c})}()})}updateScreenShare(e){return Yb(this,null,function*(){var t;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:i,publish:r,muteSystemAudio:n,option:o}=e,s={};if(o&&(Uw(o.fillMode)||(s.objectFit=o.fillMode),o.qosPreference)){let e=eW(o.qosPreference);this._localScreenTrack.setContentHint(e)}if(this._room.isJoined&&!Uw(r)){if(r&&!this._localScreenConfig.publish){let e=[this._localScreenTrack];this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._room.publish(...e).catch(()=>{})}if(this._localScreenConfig.publish&&!r){let e=[this._localScreenTrack];this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._room.unpublish(...e).catch(()=>{})}}null!=(t=this._localScreenAudioTrack)&&t.mediaTrack&&Hw(n)&&(this._localScreenAudioTrack.mediaTrack.enabled=!n),yield this._updateVideoPlayOption({view:i,playOption:s,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),sN(this._localScreenConfig,e)})}stopScreenShare(){return Yb(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return Yb(this,null,function*(){let{view:t,userId:i,streamType:r,option:n}=e,o="".concat(i,"_").concat(r);if(this._remoteVideoConfigMap.has(o))return void this._log.warn("remote video has already started. userId:".concat(i,", streamType:").concat(r));let s=this._room.remotePublishedUserMap.get(i);if(!s)return;let a={},c="main"===r?s.remoteVideoTrack:s.remoteAuxiliaryTrack;c.on("decode-failed",e=>{this.emit(RW.ERROR,new ZH({code:qH.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),c.on("video-size-changed",e=>{this.emit(RW.VIDEO_SIZE_CHANGED,Wb(Hb({},e),{streamType:$H(e.streamType)}))}),this._listenOutputTrackChanged(c),n&&(Uw(n.fillMode)||(a.objectFit=n.fillMode),Uw(n.mirror)||(a.mirror=n.mirror),Uw(n.poster)||(a.poster=n.poster),a.canvasRender=n.canvasRender,"main"===r&&!Uw(n.small)&&(!s.remoteVideoTrack.isSubscribing&&!s.remoteVideoTrack.isSubscribed&&s.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,c.user))),yield this._room.subscribe(c),yield this._enableVideoDecodeFallback(c,r),yield this._updateVideoPlayOption({view:t,playOption:a,track:c}),this._emitTrackEvent(c),this._remoteVideoConfigMap.set(o,{config:e}),n&&!Uw(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:c,view:t,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:null==n?void 0:n.viewRoot})})}updateRemoteVideo(e){return Yb(this,null,function*(){var t,i;let{view:r,userId:n,streamType:o,option:s}=e,a="".concat(n,"_").concat(o),c=this._remoteVideoConfigMap.get(a);if(!c||!this._room.remotePublishedUserMap.has(n))return;let l={};s&&(Uw(s.fillMode)||(l.objectFit=s.fillMode),Uw(s.mirror)||(l.mirror=s.mirror));let d=null,u=this._room.remotePublishedUserMap.get(n);if("main"===o&&null!=u&&u.muteState.hasVideo&&(d=u.remoteVideoTrack),"sub"===o&&null!=u&&u.muteState.hasAuxiliary&&(d=u.remoteAuxiliaryTrack),!d)return;let{config:h}=c;"main"===o&&s&&!Uw(s.small)&&this._room.changeType(s.small,d.user),yield this._updateVideoPlayOption({view:r,playOption:l,track:d,prevConfig:h}),sN(h,e);let p=Uw(null==s?void 0:s.receiveWhenViewVisible)?null==(t=h.option)?void 0:t.receiveWhenViewVisible:s.receiveWhenViewVisible,m=Uw(r)?h.view:r,_=Uw(null==s?void 0:s.viewRoot)?null==(i=h.option)?void 0:i.viewRoot:s.viewRoot;this._observeView({remoteTrack:d,view:m,receiveWhenViewVisible:p,viewRoot:_})})}stopRemoteVideo(e){return Yb(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Yb(this,null,function*(){let i=[],r=this._room.remotePublishedUserMap.get(e.userId);if(r){let{muteState:t,remoteVideoTrack:n,remoteAuxiliaryTrack:o}=r;"main"===e.streamType&&(n.stop(),t.hasVideo&&i.push(n)),"sub"===e.streamType&&(o.stop(),t.hasAuxiliary&&i.push(o))}for(let e of i)t&&(yield this._room.unsubscribe(e),this._mediaTrackMap.delete(e.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,t){let i="".concat(e,"_").concat(t),r=this._remoteVideoConfigMap.get(i);r&&r.observer&&r.observer.disconnect(),this._remoteVideoConfigMap.delete(i)}muteRemoteAudio(e,t){return Yb(this,null,function*(){this._remoteAudioMuteMap.set(e,t);try{if("*"===e)if(t)yield this._stopRemoteAudio({userId:e});else{let e=[...this._room.remotePublishedUserMap.values()];for(let t of e)t.muteState.hasAudio&&!this._remoteAudioConfigMap.has(t.userId)&&(yield this._startRemoteAudio({userId:t.userId}))}else t?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(tP){throw tP.code!==qH.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),tP}})}setRemoteAudioVolume(e,t){if("*"===e){this._remoteAudioVolumeMap.set("*",t),this._remoteAudioVolumeMap.forEach((e,i)=>this._remoteAudioVolumeMap.set(i,t));let e=[...this._room.remotePublishedUserMap.values()];for(let i of e)this._remoteAudioVolumeMap.set(i.userId,t),i.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:i.remoteAudioTrack})}else if(e){let i=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,t),i&&i.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:i.remoteAudioTrack})}}startPlugin(e,t){return Yb(this,null,function*(){return e.start(t)})}updatePlugin(e,t){return Yb(this,null,function*(){return e.update(t)})}stopPlugin(e,t){return Yb(this,null,function*(){return e.stop(t)})}enableAudioVolumeEvaluation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._room.enableAudioVolumeEvaluation(e,t)}on(e,t,i){if(this.listeners(e).includes(t))return this;if(this._log.debug("on",e),super.on(e,t,i),this._eventListened.add(e),this.listeners(RW.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:e}=this.room.audioManager;e.get("")||e.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];try{CW.has(e)&&this._log.debug("emit ".concat(e," ").concat(JSON.stringify(i)))}catch(tP){}return super.emit(e,...i)}off(t,i,r){if(this._log.debug("off",t),"*"===t?(this._eventListened.clear(),this.removeAllListeners()):super.off(t,i,r),(t===e.EVENT.AUDIO_FRAME||"*"===t)&&0===this.listeners(e.EVENT.AUDIO_FRAME).length){let{getPCMAbortCtrlMap:e}=this.room.audioManager;e.forEach(e=>{null==e||e.abort("off")}),e.clear()}return this}getAudioTrack(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},i=null,r="main",n=!1;if(Fw(t)?e=t:(e=t.userId,n=!0===t.processed,t.streamType&&(r=t.streamType)),e){let t=this._room.remotePublishedUserMap.get(e);t&&(i=t.remoteAudioTrack)}else i="sub"===r?this._localScreenAudioTrack:this._localAudioTrack;return i?n&&i.outMediaTrack&&i.outMediaTrack!==i.mediaTrack?i.outMediaTrack.clone():i.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},{userId:t="",streamType:i="main",processed:r=!1}=e,n=null;if(""===t)"main"===i&&this._localVideoTrack&&(n=this._localVideoTrack),"sub"===i&&this._localScreenTrack&&(n=this._localScreenTrack);else{let e=this._room.remotePublishedUserMap.get(t);e&&(n="main"===i?e.remoteVideoTrack:e.remoteAuxiliaryTrack)}return n?r&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{userId:t,streamType:i="main"}=e;if(t){let e=this._room.remotePublishedUserMap.get(t);if("main"===i&&null!=e&&e.muteState.hasVideo)return e.remoteVideoTrack.getVideoFrame();if("sub"===i&&null!=e&&e.muteState.hasAuxiliary)return e.remoteAuxiliaryTrack.getVideoFrame()}else{if("main"===i&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if("sub"===i&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var t,i;this._speakerId=e,null==(t=this._localAudioTrack)||t.setAudioOutput(e),null==(i=this._localScreenAudioTrack)||i.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(t=>t.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return Yb(this,null,function*(){(yield XV()).forEach(t=>{t.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}),BG=t)}),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 Yb(this,null,function*(){var t;let{userId:i}=e;if(this._remoteAudioConfigMap.has(i))return void this._log.warn("remote audio has already started. userId:".concat(i));let r=this._room.remotePublishedUserMap.get(i);if(!r)return;let n={},o=r.remoteAudioTrack;o.on("decode-failed",e=>{this.emit(RW.ERROR,new ZH({code:qH.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))}),this._listenOutputTrackChanged(o),this._speakerId&&o.setAudioOutput(this._speakerId);try{let r=null!=(t=this._remoteAudioVolumeMap.get(i))?t:this._remoteAudioVolumeMap.get("*"),s=Bw(r)?r:100;n.volume=s,this._remoteAudioConfigMap.set(i,e),yield this._room.subscribe(o),xU(fF(o,"decode-failed"),UF(fF(o,Nx.INIT)),FB(()=>{this.startPlugin(OG.Name,{track:o,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:n,track:o}),BM.emit("115",{userId:i,room:this.room}),o.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:o.outMediaTrack,refId:"ra-".concat(i)})}catch(rP){throw this._remoteAudioConfigMap.delete(i),rP}this._emitTrackEvent(o)})}_stopRemoteAudio(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Yb(this,null,function*(){let i=this._room.remotePublishedUserMap.get(e.userId);i&&(i.remoteAudioTrack.stop(),i.muteState.hasAudio&&t&&(yield this._room.unsubscribe(i.remoteAudioTrack)),this._mediaTrackMap.delete(i.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId)),BM.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:"ra-".concat(e.userId)})})}_enableVideoDecodeFallback(e,t){let i,r=this._room.videoDecodeFallbackType;r&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),xU(fF(e,"decode-failed"),UF(fF(e,Nx.INIT)),BB(()=>{"h265"!==this._room.downlinkVideoCodec&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:r})}),gB(fF(e,"decode-downgrade-state-changed")),FB(r=>{i=r.state,this.emit(RW.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Wb(Hb({},r),{streamType:t,userId:e.userId}))},t=>{e.log.error("fallback",t)},()=>{"STARTED"===i&&e.log.info("fallback complete")})))}_updateVideoPlayOption(e){return Yb(this,arguments,function(e){let{view:t,playOption:i,track:r,prevConfig:n}=e;return function*(){if(r.setMirror(i.mirror),Uw(t)&&n&&n.view&&!iN(i)){let e=cN(n.view);e.length>0&&(yield r.play(e,i))}if(!Uw(t)){let e=cN(t);e.length>0?yield r.play(e,i):r.stop()}}()})}_updateAudioPlayOption(e){return Yb(this,arguments,function(e){var t=this;let{playOption:i={},track:r,prevConfig:n}=e;return function*(){if(!r.isPlayCalled)try{yield r.play(null,i)}catch(Ik){}if(Uw(i.muted)||r.setPlayerMute(i.muted),Uw(i.volume)||r.setAudioVolume(i.volume/100),r instanceof qB&&r.mediaTrack){let e=!1===i.muted&&!Uw(i.volume)&&i.volume>0?"add":"remove";t.room.audioManager.updateAudioReference({type:e,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof PH){let e=i.muted?0:i.volume;if(Uw(e))return;t.room.audioManager.updateAudioReference({type:"updateVolume",refId:"ra-".concat(r.userId),volume:i.volume})}}()})}_listenOutputTrackChanged(e){0===e.listeners("output-media-track-changed").length&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e.isRemote?e.userId:"";e.outMediaTrack&&(t&&this._mediaTrackMap.get(e.outMediaTrack)===i||(this._mediaTrackMap.set(e.outMediaTrack,i),this.emit(RW.TRACK,{userId:i,streamType:$H(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,t,i;let r=[];if(null!=(e=this._localAudioConfig)&&e.publish&&this._localAudioTrack&&r.push(this._localAudioTrack),null!=(t=this._localVideoConfig)&&t.publish&&this._localVideoTrack&&r.push(this._localVideoTrack),null!=(i=this._localScreenConfig)&&i.publish&&(this._localScreenTrack&&r.push(this._localScreenTrack),this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),0!==r.length)return this._room.publish(...r).catch(()=>{})}_observeView(e){let{remoteTrack:t,view:i,receiveWhenViewVisible:r=!1,viewRoot:n}=e;if(Uw(i))return;let o=this._remoteVideoConfigMap.get("".concat(t.userId,"_").concat($H(t.streamType)));if(!o)return;let s=o.observer||void 0;if(null===i||Gw(i)&&0===i.length||!r)return null==s||s.disconnect(),void(t.isSubscribed||this._room.subscribe(t).catch(()=>{}));let a=o.visibleViewMap||new Map,c=-1;(!s||s.root!==n)&&(null==s||s.disconnect(),a.clear(),s=new IntersectionObserver(e=>{e.forEach(e=>{a.set(e.target,e.isIntersecting),t.log.info("view ".concat(e.target.id," is").concat(e.isIntersecting?"":" not"," visible"))}),clearTimeout(c),c=window.setTimeout(()=>{[...a.values()].find(e=>e)?t.isSubscribed||this._room.subscribe(t).catch(()=>{}):t.isSubscribed&&this._room.unsubscribe(t).catch(()=>{})},200)},{root:n}));let l=new Set(cN(i));a.forEach((e,t)=>{l.has(t)||(s.unobserve(t),a.delete(t))}),l.forEach(e=>{a.set(e,!0),s.observe(e)}),s.takeRecords().forEach(e=>{a.set(e.target,e.isIntersecting)}),o.visibleViewMap=a,o.observer=s}_exitRoom(){return Yb(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 t=e.includes("main")?"main":"sub",i=e.split("_".concat(t))[0];i&&this._stopRemoteVideo({userId:i,streamType:t}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),function(e){let t=GW.get(e);t&&(t.forEach(e=>clearTimeout(e)),GW.delete(e))}(this),this._room.remotePublishedUserMap.forEach(e=>{Wx(e.remoteAudioTrack),Wx(e.remoteVideoTrack),Wx(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return Yb(this,null,function*(){var e,t;if(this._localScreenTrack){if(this._room.isJoined){let t=[this._localScreenTrack];this._localScreenAudioTrack&&t.push(this._localScreenAudioTrack),yield null==(e=this._room)?void 0:e.unpublish(...t).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(!1===(null==(t=this._localScreenAudioTrack.trackSettings)?void 0:t.echoCancellation)&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),Wx(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,t){return Yb(this,null,function*(){var i,r;if(!e||!t)return;let n=null==(i=e.trackSettings)?void 0:i.displaySurface;if(!1===(null==(r=t.trackSettings)?void 0:r.echoCancellation)&&("monitor"===n||"browser"===n&&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(eP){this._log.warn("start audioProcessor plugin failed: ",eP)}}})}_onLocalTrackCaptured(e){let{track:t}=e;"audio"===t.kind&&(!BG||JV(BG))&&(this._initActiveSpeaker(),BM.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return Yb(this,null,function*(){if(BG&&!JV(BG))this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:BG});else{let e=yield XV();e[0]&&!JV(e[0])?(BG=e[0],this.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):BM.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable(e){let{userId:t}=e,i=this._remoteAudioMuteMap.has(t)?this._remoteAudioMuteMap.get(t):this._remoteAudioMuteMap.get("*");(!1===i||this._room.autoReceiveAudio&&!i)&&this._doStartRemoteAudio({userId:t}).catch(()=>{})}_onVideoAvailable(e){let{userId:t,streamType:i}=e;if(!this._room.autoReceiveVideo)return;let r=this._room.remotePublishedUserMap.get(t);if(r){let e="main"===i?r.remoteVideoTrack:r.remoteAuxiliaryTrack,t=[e];this._room.autoReceiveAudio&&r.remoteAudioTrack.isAvailable&&t.push(r.remoteAudioTrack),this._room.subscribe(...t).then(()=>{this._emitTrackEvent(e)}).catch(()=>{})}}_onAudioUnavailable(e){let{userId:t,muteState:i}=e;i.hasAudio&&i.audioMuted||this._stopRemoteAudio({userId:t},!1).catch(()=>{})}_onVideoUnavailable(e){let{userId:t,streamType:i}=e;this._stopRemoteVideo({userId:t,streamType:i},!1).catch(()=>{})}sendSEIMessage(e,t){var i;let r=this._plugins.get("SEI");r&&(r.update({buffer:e,options:Wb(Hb({seiPayloadType:243},t),{small:!(null==(i=this._localVideoTrack)||!i.small)})}),_L.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,i;null==(i=(t=this._room).sendCustomMessage)||i.call(t,e),_L.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,t){return Yb(this,null,function*(){return this._log.info("callExperimentalAPI(".concat(e,", ").concat(JSON.stringify(t),")")),PG.call(e,Hb({trtcInstance:this},t))})}static setLogLevel(e,t){JM.setLogLevel(e),Uw(t)||(t?JM.enableUploadLog():JM.disableUploadLog())}static isSupported(){return kL(e.frameWorkType)}static getPermissions(e){return Yb(this,arguments,function(e){let{request:t=!0,types:i=["camera","microphone"]}=e;return function*(){t&&(yield VG.request(i).catch(e=>{var t;return JM.error("getPermissions request failed, error: ".concat(null!=(t=null==e?void 0:e.message)?t:e))}));let[e,r]=yield Promise.all([VG.get("camera"),VG.get("microphone")]);return{camera:e,microphone:r}}()})}static getCameraList(){return zV(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getMicrophoneList(){return qV(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getSpeakerList(){return XV(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static setCurrentSpeaker(t){return Yb(this,null,function*(){if(rO&&(t===KH.SPEAKER||t===KH.HEADSET)){let i=yield e.getMicrophoneList(),r="";if(i.forEach(e=>{e.label===t&&(r=e.deviceId)}),!r)return;return void FG.forEach(e=>Yb(null,null,function*(){e._localAudioTrack&&(yield e.updateLocalAudio({option:{microphoneId:r}}))}))}(yield XV()).forEach(e=>{e.deviceId===t&&(FG.forEach(i=>{i._setCurrentSpeaker(t),i.emit(RW.DEVICE_CHANGED,{type:"speaker",action:"active",device:e})}),BG=e)})})}static _addKVStat(e){let{type:t,key:i,value:r,base:n,useUV:o,version:s,max:a}=e;switch(s&&(mL.version=s),t){case"count":mL.addCount({key:i,useUV:o});break;case"enum":mL.addEnum({key:i,value:r,useUV:o});break;case"number":mL.addNumber({key:i,value:r,split:n,max:a})}}};qb(HG,"_loggerManager",JM),qb(HG,"EVENT",RW),qb(HG,"ERROR_CODE",qH),qb(HG,"TYPE",KH),qb(HG,"frameWorkType",30),Kb([zW({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?null==e?void 0:e.assetsPath:"default"}})})],HG.prototype,"use",1),Kb([jW(pW.TRTC.enterRoom),SW("room",(e,t)=>{let[i]=e,[r]=t;return(i.roomId||i.strRoomId)===(r.roomId||r.strRoomId)&&i.userId===r.userId&&i.sdkAppId===r.sdkAppId}),_U(e=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),e.call(this,t)}),zW()],HG.prototype,"enterRoom",1),Kb([zW()],HG.prototype,"exitRoom",1),Kb([jW(pW.TRTC.switchRoom),zW(),yU()],HG.prototype,"switchRoom",1),Kb([jW(pW.TRTC.switchRole),IW("room",{merge:(e,t)=>t}),zW()],HG.prototype,"switchRole",1),Kb([zW()],HG.prototype,"destroy",1),Kb([jW(pW.TRTC.startLocalAudio),SW("audio",(e,t)=>{let[i]=e,[r]=t;var n,o;return(null==(n=null==i?void 0:i.option)?void 0:n.microphoneId)===(null==(o=null==r?void 0:r.option)?void 0:o.microphoneId)}),zW()],HG.prototype,"startLocalAudio",1),Kb([jW(pW.TRTC.updateLocalAudio),IW("audio",{debounce:{delay:200,getKey:()=>"".concat(UG,"-localAudio"),isNeedToDebounce:e=>{var t;return!Uw(null==(t=e.option)?void 0:t.captureVolume)}}}),zW()],HG.prototype,"updateLocalAudio",1),Kb([AW("audio"),zW()],HG.prototype,"stopLocalAudio",1),Kb([jW(pW.TRTC.startLocalVideo),SW("video",(e,t)=>{let[i]=e,[r]=t;var n,o;return(null==(n=null==i?void 0:i.option)?void 0:n.cameraId)===(null==(o=null==r?void 0:r.option)?void 0:o.cameraId)}),zW()],HG.prototype,"startLocalVideo",1),Kb([jW(pW.TRTC.updateLocalVideo),IW("video"),zW()],HG.prototype,"updateLocalVideo",1),Kb([AW("video"),zW()],HG.prototype,"stopLocalVideo",1),Kb([jW(pW.TRTC.startScreenShare),SW("screen",()=>!0),zW()],HG.prototype,"startScreenShare",1),Kb([jW(pW.TRTC.updateScreenShare),IW("screen"),zW()],HG.prototype,"updateScreenShare",1),Kb([zW()],HG.prototype,"stopScreenShare",1),Kb([jW(pW.TRTC.startRemoteVideo),SW(e=>"v".concat(e.userId).concat(e.streamType),()=>!0),zW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],HG.prototype,"startRemoteVideo",1),Kb([jW(pW.TRTC.updateRemoteVideo),IW(e=>"v".concat(e.userId).concat(e.streamType)),zW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],HG.prototype,"updateRemoteVideo",1),Kb([jW(pW.TRTC.stopRemoteVideo),_U(e=>function(t){return Yb(this,null,function*(){if("*"===t.userId){let e=[];return this._room.remotePublishedUserMap.forEach(t=>{this._remoteVideoConfigMap.has("".concat(t.userId,"_main"))&&e.push(this.stopRemoteVideo({streamType:"main",userId:t.userId}).catch(()=>{})),this._remoteVideoConfigMap.has("".concat(t.userId,"_sub"))&&e.push(this.stopRemoteVideo({streamType:"sub",userId:t.userId}).catch(()=>{}))}),Promise.all(e)}return e.call(this,t)})}),zW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],HG.prototype,"stopRemoteVideo",1),Kb([AW(e=>"v".concat(e.userId).concat(e.streamType))],HG.prototype,"_stopRemoteVideo",1),Kb([jW(...pW.TRTC.muteRemoteAudio),zW({getRemoteId:e=>e})],HG.prototype,"muteRemoteAudio",1),Kb([JW(...pW.TRTC.setRemoteAudioVolume),function(e,t){return _U((i,r)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];let s=GW.get(this);s||(s=new Map,GW.set(this,s));let a=t(...n),c=s.get(a);if(!c||c<=0){i.apply(this,n);let t=setTimeout(()=>{var e;null==(e=GW.get(this))||e.delete(a)},e);s.set(a,t)}else{clearTimeout(c);let t=window.setTimeout(()=>{var e;i.apply(this,n),null==(e=GW.get(this))||e.delete(a)},e);s.set(a,t)}})}(200,e=>e),zW({getRemoteId:e=>e})],HG.prototype,"setRemoteAudioVolume",1),Kb([XW("start"),pU(e=>{var t;return null==(t=e.afterStart)?void 0:t.call(e)}),SW((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t)),zW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>lL[e.getName()],ignoreLog:e=>"Debug"===e.getName(),ignoreErrorLog:e=>"AudioProcessor"===e.getName()})],HG.prototype,"startPlugin",1),Kb([XW("update"),IW((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t),{merge:(e,t)=>(sN(e[1],t[1]),e)}),zW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>dL[e.getName()]})],HG.prototype,"updatePlugin",1),Kb([XW("stop"),AW((e,t)=>{if(e.disableRandomCall)return null;let i=e.getGroup(t),r=e.getAlias();return"*"===i?new RegExp("".concat(r,".*")):r+i}),zW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>uL[e.getName()]})],HG.prototype,"stopPlugin",1),Kb([JW(...pW.TRTC.enableAudioVolumeEvaluation)],HG.prototype,"enableAudioVolumeEvaluation",1),Kb([zW()],HG.prototype,"getVideoSnapshot",1),Kb([zW()],HG.prototype,"_setCurrentSpeaker",1),Kb([SW(e=>"a".concat(e.userId),()=>!0)],HG.prototype,"_startRemoteAudio",1),Kb([_U(e=>function(t){return Yb(this,null,function*(){return"*"===t.userId?Promise.all([...this._room.remotePublishedUserMap.values()].map(e=>this._stopRemoteAudio(Wb(Hb({},t),{userId:e.userId})).catch(()=>{}))):e.call(this,t)})}),AW(e=>"a".concat(e.userId))],HG.prototype,"_stopRemoteAudio",1),Kb([AW("room")],HG.prototype,"_exitRoom",1),Kb([AW("screen")],HG.prototype,"_stopScreenShare",1),Kb([jW(...pW.TRTC.sendSEIMessage),GH({timesInSecond:30,maxSizeInSecond:8e3,getSize:function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].byteLength}})],HG.prototype,"sendSEIMessage",1),Kb([jW(pW.TRTC.sendCustomMessage),GH({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],HG.prototype,"sendCustomMessage",1),Kb([jW(pW.TRTC.create)],HG,"_create",1);var WG=HG,GG=class{constructor(){qb(this,"_set",new Set),BM.on(WM.LEAVE_SUCCESS,this.delete,this),BM.on(WM.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add(e){let{room:t,roomId:i}=e;if("rtc"===t.scene)return;let r=this.getKey(t.userId,i||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete(e){let{room:t,roomId:i}=e;if("rtc"===t.scene)return;let r=this.getKey(t.userId,t.roomId||i,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(e,t,i,r){return"".concat(i,"_").concat(t,"_").concat(e,"_").concat(r)}isJoined(e){let{userId:t,roomId:i,sdkAppId:r,room:n}=e;return"rtc"!==n.scene&&this._set.has(this.getKey(t,i,r,n.useStringRoomId))}handleSwitchRoomSuccess(e){let{room:t,currentRoomId:i,targetRoomId:r}=e;"rtc"!==t.scene&&(this._set.delete(this.getKey(t.userId,i,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function jG(){return Yb(this,null,function*(){let e,t;try{let t=yield qV();e=t&&t.length}catch(p){}try{let e=yield zV();t=e&&e.length}catch(p){}let i={microphone:e,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:n,isH264DecodeSupported:o,isVp8DecodeSupported:s,isH265EncodeSupported:a,isH265DecodeSupported:c}=this.checkSystemResult.detail,l=zM.basis(),d={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:o,vp8Encode:n,vp8Decode:s,h265Encode:a,h265Decode:c},u={browser:l.browser,os:l.os,trtc:d,devices:i},h={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};Gx.uploadEvent({log:"trtcstats-".concat(JSON.stringify(u)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(u))),Gx.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(h)),userId:this.userId}),Tx()})}var JG=Jb(Xb()),KG="1",qG="2",zG="3",YG="4",XG="5",QG="6",ZG="7",$G={CLIENT_BANNED:9,CHANNEL_SETUP_RESULT:19,CHANNEL_RECONNECT_RESULT:514,JOIN_ROOM_RESULT:20,PEER_JOIN:4134,PEER_LEAVE:4135,STREAM_ADDED:16,STREAM_REMOVED:18,UPLINK_NETWORK_STATS:22,UPDATE_REMOTE_MUTE_STAT:23,PUBLISH_RESULT:4098,PUBLISH_STATE_CHANGE_RESULT:4112,UNPUBLISH_RESULT:4100,SUBSCRIBE_RESULT:4102,UNSUBSCRIBE_RESULT:4104,SUBSCRIBE_CHANGE_RESULT:4106,MUTE_RESULT:4108,UPDATE_OFFER_RESULT:4128,START_PUBLISH_TENCENT_CDN_RES:1286,STOP_PUBLISH_TENCENT_CDN_RES:1288,START_PUBLISH_GIVEN_CDN_RES:777,STOP_PUBLISH_GIVEN_CDN_RES:779,START_MIX_TRANSCODE_RES:781,STOP_MIX_TRANSCODE_RES:783,START_PUBLISH_CDN_STREAM_RES:8196,UPDATE_PUBLISH_CDN_STREAM_RES:8198,STOP_PUBLISH_CDN_STREAM_RES:8200,USER_LIST_RES:4137,SWITCH_ROLE_RES:4110,UPDATE_CONSTRAINT_CONFIG_RES:772,REBUILD_PEER_CONNECTION_RES:4150,SPC_PUBLISH_RESULT:4146,SPC_SUBSCRIBE_RESULT:4156,ABILITY_STATUS_REPORT_RESULT:4158,SERVER_FIRST_PACKAGE_RECEIVED:5e3,RECEIVE_CUSTOM_MSG:4140,FALLBACK_CODEC:66,SEND_SWITCH_ROOM_RES:4160,SEND_SWITCH_ROOM_SUBED_REQ:4161,UPDATE_NETWORK_TIME_RESULT:5001,CUSTOM_CMD_RES:8220},ej=[$G.UPDATE_REMOTE_MUTE_STAT,$G.UPLINK_NETWORK_STATS,$G.USER_LIST_RES,$G.MUTE_RESULT,$G.SERVER_FIRST_PACKAGE_RECEIVED,$G.RECEIVE_CUSTOM_MSG,$G.UPDATE_NETWORK_TIME_RESULT],tj={CLIENT_BANNED:"client-banned",CHANNEL_SETUP_RESULT:"channel-setup-result",CHANNEL_RECONNECT_RESULT:"channel-reconnect-result",JOIN_ROOM_RESULT:"join-room-result",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",UPLINK_NETWORK_STATS:"uplink-network-stats",UPDATE_REMOTE_MUTE_STAT:"update-remote-mute-stat",PUBLISH_RESULT:"publish-result",PUBLISH_STATE_CHANGE_RESULT:"publish-state-change-result",UNPUBLISH_RESULT:"unpublish-result",SUBSCRIBE_RESULT:"subscribe-result",SUBSCRIBE_CHANGE_RESULT:"subscribe-change-result",UNSUBSCRIBE_RESULT:"unsubscribe-result",UPDATE_OFFER_RESULT:"update-offer-result",START_PUBLISH_TENCENT_CDN_RES:"start-publish-tencent-cdn-res",STOP_PUBLISH_TENCENT_CDN_RES:"stop-publish-tencent-cdn-res",START_PUBLISH_GIVEN_CDN_RES:"start-publish-given-cdn-res",STOP_PUBLISH_GIVEN_CDN_RES:"stop-publish-given-cdn-res",START_MIX_TRANSCODE_RES:"start-mix-transcode-res",STOP_MIX_TRANSCODE_RES:"stop-mix-transcode-res",START_PUBLISH_CDN_STREAM_RES:"start-publish-cdn-stream-res",UPDATE_PUBLISH_CDN_STREAM_RES:"update-publish-cdn-stream-res",STOP_PUBLISH_CDN_STREAM_RES:"stop-publish-cdn-stream-res",USER_LIST_RES:"user-list-res",SWITCH_ROLE_RES:"switch_role_res",MUTE_RESULT:"mute-result",UPDATE_CONSTRAINT_CONFIG_RES:"update-contraint-config-res",REBUILD_PEER_CONNECTION_RES:"rebuild-pc-res",SPC_PUBLISH_RESULT:"spc-publish-result",SPC_SUBSCRIBE_RESULT:"spc-subscribe-result",ABILITY_STATUS_REPORT_RESULT:"ability-status-report",SERVER_FIRST_PACKAGE_RECEIVED:"first-pkg-received",RECEIVE_CUSTOM_MSG:"receive-custom-msg",FALLBACK_CODEC:"fallback-codec",SEND_SWITCH_ROOM_RES:"send-switch-room-res",SEND_SWITCH_ROOM_SUBED_REQ:"send-switch-room-subed-res",UPDATE_NETWORK_TIME_RESULT:"update_network_time_result",CUSTOM_CMD_RES:"custom-cmd-res"},ij="publish_change",rj="join",nj="leave",oj="quality_report",sj="mute_uplink",aj="publish",cj="publish_state_change",lj="unpublish",dj="subscribe",uj="unsubscribe",hj="subscribe_change",pj="start_publishing",mj="stop_publishing",_j="start_push_user_cdn",fj="stop_push_user_cdn",gj="start_mcu_mix",Ej="stop_mcu_mix",Tj="start_publish_cdn_stream",vj="update_publish_cdn_stream",yj="stop_publish_cdn_stream",Sj="get_user_list",Ij="change_role",Aj="update_constraint_config",Rj="rebuild_pc",Cj="join/v2",bj="publish/v2",kj="subscribe/v3",Dj="ability_status_report",wj="reconnect",Nj="channel_msg",Oj="switch_room",Mj="update_network_time",Pj=new Set;var Lj=["autoTest","relayInnerIp","relayOuterIp","mcd","newRelay","clientIp"],xj=class extends JG.default{constructor(e){var t,i,r;super(),qb(this,"room"),qb(this,"sdkAppId"),qb(this,"userId"),qb(this,"userSig"),qb(this,"url"),qb(this,"backupUrl"),qb(this,"destroyed",!1),qb(this,"_socketInUse"),qb(this,"_socket"),qb(this,"_backupSocket"),qb(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[]}),qb(this,"_currentState","DISCONNECTED"),qb(this,"_isReconnecting",!1),qb(this,"_seq",0),qb(this,"_log"),qb(this,"_lastMessageTime",-1),qb(this,"_connectStartTime",-1),qb(this,"_stopConnectRetry"),qb(this,"bytesSent",0),qb(this,"bytesReceived",0),qb(this,"keepAlive",!1),qb(this,"signalDomainWhenUnifiedProxy"),qb(this,"stopKeepAliveTimeout"),qb(this,"rtt",0),this.room=e.room,this.sdkAppId=e.sdkAppId,this.userId=e.userId,this.userSig=e.userSig,this.signalDomainWhenUnifiedProxy=e.signalDomainWhenUnifiedProxy;let n=(null==(i=null==(t=this.room.scheduleResult)?void 0:t.config)?void 0:i.keepAliveClient)||0;null!=(r=this.room.joinParams)&&r.keepAlive&&!n&&(n=1),n-Pj.size>0&&this.room.enableSPC&&(this.keepAlive=!0,Pj.add(this)),this.url=e.url,this.backupUrl=e.backupUrl,this._seq=0,this._log=JM.createLogger({id:"ws",userId:this.userId,sdkAppId:this.sdkAppId}),this.onmessage=this.onmessage.bind(this),this.onerror=this.onerror.bind(this),this.onclose=this.onclose.bind(this)}get race(){return this.room.enableSPC&&!this.room.proxy_ws}get urlParam(){let e="?sdkAppId=".concat(encodeURIComponent(this.sdkAppId),"&userId=").concat(encodeURIComponent(this.userId),"&userSig=").concat(encodeURIComponent(this.userSig),"&keepAlive=").concat(encodeURIComponent(Number(this.keepAlive)));this.signalDomainWhenUnifiedProxy&&(e+="&signalDomain=".concat(encodeURIComponent(this.signalDomainWhenUnifiedProxy)));let t=new URLSearchParams(location.search);return Lj.forEach(i=>{let r=t.get("trtc_".concat(i));r&&(e+="&".concat(i,"=").concat(encodeURIComponent(r)))}),this.race?"".concat(e,"&race=1"):e}get _urlWithParam(){return"".concat(this.url).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get _backupUrlWithParam(){return"".concat(this.backupUrl).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get isConnected(){return"CONNECTED"===this._currentState}get isConnecting(){return"CONNECTING"===this._currentState}get isOnline(){return"CONNECTED"===this._currentState&&Date.now()-this._lastMessageTime<12e3}connect(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4;return function*(){if(e.isConnected)return Promise.resolve();e._log.info("connect to [".concat(e.url,", ").concat(e.backupUrl,"] ").concat(e.race?"race":"").concat(t?" timeout: ".concat(t):""," keepAlive: ").concat(Number(e.keepAlive))),e.emitConnectionStateChanged("CONNECTING"),e._connectStartTime=Zw();let i=[e.connectWS({url:e._urlWithParam,isMain:!0,timeout:t})];e.race&&e._backupUrlWithParam!==e._urlWithParam&&i.push(e.connectWS({url:e._backupUrlWithParam,isMain:!1,timeout:t})),e._socketInUse=yield Qw(i),e.unbindAndCloseSocket(e._socketInUse===e._socket?Xk.BACKUP:Xk.MAIN),e.emitConnectionStateChanged("CONNECTED")}()})}connectWS(e){let{url:t,timeout:i,isMain:r}=e,n=new WebSocket(t);this.bindSocket(n),r?this._socket=n:this._backupSocket=n;let o=-1;return new Promise((e,t)=>{n.onclose=t,n.onerror=t,n.onopen=()=>e(n),i&&(o=setTimeout(()=>{this.unbindAndCloseSocket(r?Xk.MAIN:Xk.BACKUP),t(new lk({code:ak.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))},i))}).finally(()=>{n.onclose=null,n.onerror=null,n.onopen=null,clearTimeout(o)})}bindSocket(e){e.addEventListener("close",this.onclose),e.addEventListener("error",this.onerror),e.addEventListener("message",this.onmessage)}unbindSocket(e){e.removeEventListener("close",this.onclose),e.removeEventListener("error",this.onerror),e.removeEventListener("message",this.onmessage)}unbindAndCloseSocket(e){if(e===Xk.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch(AD){}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch(AD){}this._backupSocket=null}}onclose(e){e.target===this._socketInUse&&(this._log.warn("".concat(e.target===this._socket?"main":"backup"," is closed code:").concat(e.code," ").concat(e.reason)),this.emitConnectionStateChanged("DISCONNECTED"),(!e.wasClean||1e3!==e.code)&&this.startReconnection(),this.room.isJoining&&this.emit(XG,new lk({code:ak.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onclose"})))}onerror(e){this._log.error("".concat(e.target===this._socket?"main":"backup"," error observed")),this.emitConnectionStateChanged("DISCONNECTED"),e.target===this._socketInUse&&(this.unbindAndCloseSocket(Xk.MAIN),this.unbindAndCloseSocket(Xk.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(XG,new lk({code:ak.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(e){if(!this.isConnected)return;this._lastMessageTime=Date.now(),this.bytesReceived+=pN(e.data);let t=JSON.parse(e.data),{cmd:i,data:r}=t,n=Object.values($G),o=Object.keys($G)[n.indexOf(i)],s=tj[o]||i;switch(ej.includes(i)||(this._log.debug("received ".concat(i," msg: ").concat(e.data)),s&&this._log.info("Received event: [ ".concat(s," ]"))),i){case $G.CHANNEL_SETUP_RESULT:if(0===t.code)this._signalInfo.clientIp=r.clientIp,this._signalInfo.signalIp=r.signalInnerIp,r.svrTime&&hk(r.svrTime-(new Date).getTime()),this._log.info("ChannelSetup Success ".concat(Zw()-this._connectStartTime)),_L.addSuccessEvent({key:521701,cost:Zw()-this._connectStartTime}),this._connectStartTime=-1,this.emit(KG,{signalInfo:this._signalInfo});else{let e=new lk({code:ak.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:t.code,message:nL({key:eL.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:t.code,errorMsg:t.message}})});this._log.error("".concat(t.code,", ").concat(t.message)),this.close(),_L.addFailedEvent({key:521701,error:e}),this.emit(XG,e)}break;case $G.JOIN_ROOM_RESULT:0===t.code&&(this._signalInfo.relayIp=r.relayOuterIp,this._signalInfo.relayInnerIp=r.relayInnerIp,this._signalInfo.bakRelayIps=r.bakRelayIps,this._signalInfo.relayPort=r.relayPort,this._signalInfo.tinyId=t.tinyId,this._signalInfo.endReportExtend=r.endReportExtend,this._log.info("signalIp:".concat(this._signalInfo.signalIp," clientIp:").concat(this._signalInfo.clientIp," relayIp: ").concat(this._signalInfo.relayIp))),this.emit(s,{data:t});break;default:this.emit(String(s),{data:t})}}reGetSignalChannelUrl(){return Yb(this,null,function*(){try{if(!this.room.joinParams)return;wW(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:e,backupUrl:t}=this.room.getSignalChannelUrl();this.url=e,this.backupUrl=t}catch(Sk){}})}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let e=this._socketInUse===this._socket;this.unbindAndCloseSocket(e?Xk.MAIN:Xk.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return Yb(this,null,function*(){if(!this._isReconnecting){if(!this.room.isJoined&&this.keepAlive)return void this.close();this._isReconnecting=!0;try{this._log.warn("reconnect"),yield this.connect();let{roomId:e,useStringRoomId:t}=this.room,{relayIp:i,relayInnerIp:r,relayPort:n}=this._signalInfo,{data:o}=yield this.sendWaitForResponse({command:wj,data:{roomId:e,useStringRoomId:t,relayInnerIp:r,relayOuterIp:i,relayPort:n},responseCommand:tj.CHANNEL_RECONNECT_RESULT});0===o.code?(this._log.warn("reconnect success"),this.stopReconnection(),_L.addSuccessEvent({key:521702,cost:Zw()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(_L.addFailedEvent({key:521702,error:o.code}),this._log.warn("reconnect failed, ".concat(o.code," ").concat(o.message)),this.room.reJoin())}catch(Sk){this._log.error(Sk),this.room.reJoin()}}})}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isConnected&&!this.room.isLeft){let i={cmd:e,data:t,userId:this.userId,tinyId:this._signalInfo.tinyId,seq:++this._seq},r=JSON.stringify(i);return this._socketInUse.send(r),this.bytesSent+=pN(r),i.seq}}sendWaitForResponse(e){let{command:t,data:i,timeout:r=5e3,responseCommand:n,commandDesc:o,enableLog:s=!0,addReceiveTime:a=!1}=e;return new Promise((e,c)=>{let l=()=>{clearTimeout(d),c(new lk({code:ak.API_CALL_ABORTED,message:"".concat(t," aborted due to connection closed")}))};this.once(ZG,l);let d=setTimeout(()=>{this.off(n,u),this.off(ZG,l);let e=new lk({code:ak.API_CALL_TIMEOUT,message:nL({key:eL.API_CALL_TIMEOUT,data:{commandDesc:o,command:t}})});s&&this._log.warn(e),c(e)},r),u=t=>{t.data.seq===h&&(clearTimeout(d),this.off(n,u),this.off(ZG,l),a&&(t.data.receiveTime=Date.now()),e(t))};this.on(n,u);let h=this.send(t,i)})}sendWaitForResponseWithRetry(e){let{commandDesc:t,command:i,retries:r=0,retryTimeout:n=0}=e;return GN({retryFunction:this.sendWaitForResponse,onError:e=>{let{retry:t,reject:r,error:n}=e;!this.room.isJoined||this.destroyed||n.code===ak.API_CALL_ABORTED?r(n):this.isOnline?t():(this._log.warn("retry ".concat(i," when connected")),this.once(zG,t))},onRetrying:e=>{this._log.warn("".concat(t||i," timeout observed, retrying [").concat(e,"/").concat(r,"]"))},settings:{retries:r,timeout:n},context:this})(e)}getCurrentState(){return this._currentState}getSignalInfo(){return this._signalInfo}stopReconnection(){this._isReconnecting=!1,this._stopConnectRetry&&this._stopConnectRetry()}close(){this._log.info("closed"),clearTimeout(this.stopKeepAliveTimeout),Pj.delete(this),this.stopReconnection(),this._signalInfo={tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,bakRelayIps:[],endReportExtend:void 0},this._socketInUse=null,this.bytesSent=0,this.bytesReceived=0,this._stopConnectRetry&&this._stopConnectRetry(),this.unbindAndCloseSocket(Xk.MAIN),this.unbindAndCloseSocket(Xk.BACKUP),this.emitConnectionStateChanged("DISCONNECTED"),this.emit(ZG)}destroy(){this.close(),this.destroyed=!0}getBackupRelayIpPair(){var e;let t=null==(e=this._signalInfo.bakRelayIps)?void 0:e.shift();return t&&(t.relayPort=t.relayPort||this._signalInfo.relayPort),t}clearBakRelayIps(){this._signalInfo.bakRelayIps=[]}stopKeepAliveIn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3600;if(this.keepAlive){this._log.info("stopKeepAlive in ".concat(e,"s")),this.stopKeepAliveTimeout=setTimeout(()=>{this.keepAlive=!1,this._log.info("close due to not used ".concat(e,"s")),this.close(),this.off(tj.JOIN_ROOM_RESULT,t)},1e3*e);let t=e=>{0===e.data.code&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(tj.JOIN_ROOM_RESULT,t))};this.on(tj.JOIN_ROOM_RESULT,t)}}emitConnectionStateChanged(e){e!==this._currentState&&(this._log.info("".concat(this._currentState," -> ").concat(e)),this.emit(qG,{prevState:this._currentState,state:e}),this._currentState=e,"CONNECTED"===e?this.emit(zG):"DISCONNECTED"===e&&this.emit(QG))}};Kb([Jx({settings:{retries:1/0,timeout:2e3},onError(e,t){!this.room.isDestroyed&&!this.destroyed&&t()},onRetrying(e,t){this._log.warn("retrying to connect ".concat(e)),e>=3&&e%3==0&&this.reGetSignalChannelUrl(),t&&(this._stopConnectRetry=t,(this.room.isDestroyed||this.destroyed)&&t())}})],xj.prototype,"connect",1);var Vj=Jb(Xb()),Uj=0,Fj=!1,Bj=new Set,Hj=!1,Wj=class{constructor(e){qb(this,"userId"),qb(this,"tinyId"),qb(this,"_sdpSemantics"),qb(this,"_isUplink"),qb(this,"_room"),qb(this,"_log"),qb(this,"_signalChannel"),qb(this,"_isErrorObserved",!1),qb(this,"_waitForPeerConnectionConnectedPromise"),qb(this,"_waitForPeerConnectionConnectedPromiseReject",null),qb(this,"_peerConnection",null),qb(this,"_emitter",new Vj.default),qb(this,"_currentState","DISCONNECTED"),qb(this,"_isReconnecting",!1),qb(this,"_reconnectionCount",0),qb(this,"_reconnectionTimer",-1),qb(this,"_isFirstConnection",!0),qb(this,"_prevTime",-1),qb(this,"_localAddress"),qb(this,"_remoteAddress"),this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=JM.createLogger({id:"n-mpc",userId:this._room.userId,remoteUserId:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink}),this._signalChannel=e.signalChannel}beforeConnect(){this._prevTime<0&&(this._prevTime=Zw())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,_L.addSuccessEvent({key:521705,cost:Math.min(Zw()-this._prevTime,3e4)})):this._isReconnecting&&_L.addSuccessEvent({key:521706,cost:Zw()-this._prevTime}),this._prevTime=-1}catch($M){throw this._isFirstConnection?(this._isFirstConnection=!1,_L.addFailedEvent({key:521705,error:$M})):this._isReconnecting&&this._reconnectionCount>=3&&_L.addFailedEvent({key:521706,error:$M}),$M}}initialize(){let e={iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};this._peerConnection=new RTCPeerConnection(e),this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this)}close(e){this._log.info("close connection"),this._emitter.emit("closed",e),this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),Bj.delete(this)}closePeerConnection(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._peerConnection&&(this._log.info("close pc"),this._peerConnection.onconnectionstatechange=null,this._peerConnection.close(),this._peerConnection=null,e&&this.emitConnectionStateChangedEvent("DISCONNECTED")),this._waitForPeerConnectionConnectedPromiseReject&&this._waitForPeerConnectionConnectedPromiseReject(new lk({code:ak.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return TD;let e=null;if(this._isUplink){if(!JL()||0===this._peerConnection.getSenders().length)return TD;e=this._peerConnection.getSenders()[0].transport}else{if(!jL()||0===this._peerConnection.getReceivers().length)return TD;e=this._peerConnection.getReceivers()[0].transport}return e?e.state:TD}onConnectionStateChange(e){let t=this._peerConnection.iceConnectionState,i=this.getDTLSTransportState();if(this._log.info("connectionState: ".concat(e.target.connectionState,", ICE: ").concat(t,", DTLS: ").concat(i)),e.target.connectionState===vD.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),e.target.connectionState===vD.FAILED||e.target.connectionState===vD.CLOSED){let r="connection ".concat(e.target.connectionState,". ICE Transport state: ").concat(t,", DTLS Transport state: ").concat(i),n=new lk({message:r,code:ak.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",n)}(e.target.connectionState===vD.CONNECTED||e.target.connectionState===vD.COMPLETED)&&(this.logSelectedCandidate(),Gx.logSuccessEvent({userId:this._room.userId,eventType:CD.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(e){return e!==this._currentState&&("CONNECTED"===e?(Uj=0,Fj=!1,Hj=!0,Bj.add(this)):Bj.delete(this),BM.emit(WM.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:this.userId}),this._emitter.emit("connection-state-changed",{prevState:this._currentState,state:e}),this._currentState=e,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}logSelectedCandidate(){return Yb(this,null,function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[,t]of e)if(LL(t)){let i=e.get(t.localCandidateId),r=e.get(t.remoteCandidateId);i&&(this._log.info("local candidate: ".concat(i.candidateType," ").concat(i.protocol,":").concat(i.ip||i.address,":").concat(i.port," ").concat(i.networkType||""," ").concat("relay"===i.candidateType?"relayProtocol:".concat(i.relayProtocol):"")),this._localAddress="".concat(i.ip||i.address,":").concat(i.port)),r&&(this._log.info("remote candidate: ".concat(r.candidateType," ").concat(r.protocol,":").concat(r.ip||r.address,":").concat(r.port)),this._remoteAddress="".concat(r.protocol,":").concat(r.ip||r.address));break}})}getCurrentState(){return this._currentState}waitForPeerConnectionConnected(){return this._waitForPeerConnectionConnectedPromise||(this._waitForPeerConnectionConnectedPromise=new Promise((e,t)=>{if("CONNECTED"===this._currentState)return e();this._waitForPeerConnectionConnectedPromiseReject=t;let i=t=>{"CONNECTED"===t.state&&(clearTimeout(o),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(o),n(),t(new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{BM.off(WM.LEAVE_SUCCESS,r,this),this._emitter.off("connection-state-changed",i,this)},o=setTimeout(()=>{n();let e=new lk({code:ak.API_CALL_TIMEOUT,message:"connection timeout"});var i;Uj+=1,i=this._signalChannel.isConnected,Uj>2&&!Fj&&0===Bj.size&&i&&(this._log.warn("firewall restriction"),Fj=!0,this._emitter.emit("firewall-restriction")),t(e)},UD);BM.on(WM.LEAVE_SUCCESS,r,this),this._emitter.on("connection-state-changed",i,this)}),this._waitForPeerConnectionConnectedPromise=this._waitForPeerConnectionConnectedPromise.finally(()=>{this._waitForPeerConnectionConnectedPromise=null,this._waitForPeerConnectionConnectedPromiseReject=null})),this._waitForPeerConnectionConnectedPromise}getReconnectionCount(){return this._reconnectionCount}startReconnection(){this._isReconnecting=!0,this.reconnect()}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}stopReconnection(){this._log.info("stop reconnection"),this._isReconnecting=!1,this._reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(zG,this.reconnect,this)}beforeReconnect(){if(-1!==this._reconnectionTimer)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=ID()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let e=new lk({code:this._isUplink?ak.UPLINK_RECONNECTION_FAILED:ak.DOWNLINK_RECONNECTION_FAILED,message:nL({key:this._isUplink?eL.UPLINK_RECONNECTION_FAILED:eL.DOWNLINK_RECONNECTION_FAILED})});return this.emitConnectionStateChangedEvent("DISCONNECTED"),this._emitter.emit("error",e),-1}return this._signalChannel.isConnected?(this._reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this._reconnectionCount,"]")),1):(this._log.warn("reconnect() signal channel is not connected, suspend reconnection until signal is connected"),this._signalChannel.once(zG,this.reconnect,this),-1)}on(e,t,i){this._emitter.on(e,t,i)}off(e,t,i){this._emitter.off(e,t,i)}getIsReconnecting(){return this._isReconnecting}get isH264(){var e,t;return!(null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)||!t.sdp.includes("H264"))}setOffer(e){var t;return null==(t=this._peerConnection)?void 0:t.setLocalDescription(e)}setAnswer(e){var t;return null==(t=this._peerConnection)?void 0:t.setRemoteDescription(e)}};Kb([AU(521712,!1)],Wj.prototype,"setOffer",1),Kb([AU(521713,!1)],Wj.prototype,"setAnswer",1);var Gj=Jb(nk()),jj=function(e){return Gj.default.parse(e)},Jj=function(e){return Gj.default.write(e)};function Kj(e){return Object.keys(e).filter(t=>e[t])}var qj=class e extends Wj{constructor(e){super(Wb(Hb({},e),{isUplink:!1})),qb(this,"_flag",0),qb(this,"isRobot",!1),qb(this,"role","anchor"),qb(this,"remoteAudioTrack"),qb(this,"remoteVideoTrack"),qb(this,"remoteAuxiliaryTrack"),qb(this,"ssrc",{audio:0,video:0,auxiliary:0}),qb(this,"_isSDPExchanging",!1),qb(this,"_videoCodec"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new PH(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new LH(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new xH(this._room,this)}get videoCodec(){var e,t;let i=null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)?void 0:t.sdp;return i?i.includes("H264")?"h264":"vp8":this._videoCodec||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){let e={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(8&this.remoteVideoTrack.mediaType?e.smallVideo=!0:e.video=!0),this.remoteAudioTrack.isSubscribed&&(e.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(e.auxiliary=!0),e}get muteState(){return rN(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,i,r;e!==this._flag&&(this._flag=e,null==(t=this.remoteAudioTrack)||t.onFlagChanged(),null==(i=this.remoteVideoTrack)||i.onFlagChanged(),null==(r=this.remoteAuxiliaryTrack)||r.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===Xk.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){super.initialize(),this.installEvents(),this._peerConnection.ontrack=this.onTrack.bind(this)}close(e){super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents()}installEvents(){}uninstallEvents(){this._emitter.removeAllListeners()}emitConnectionStateChangedEvent(e){var t,i;let r=this._currentState,n=super.emitConnectionStateChangedEvent(e);return n&&r!==e&&(null==(t=this.remoteVideoTrack)||t.emit("connection-state-changed",{prevState:r,state:e}),null==(i=this.remoteAuxiliaryTrack)||i.emit("connection-state-changed",{prevState:r,state:e})),n}onTrack(e){let t=e.streams[0],{track:i}=e,r=t.id===cD?Xk.MAIN:Xk.AUXILIARY;this._log.debug("ontrack ".concat(r," ").concat(i.kind));let n=Xk.AUDIO;i.kind===Xk.VIDEO&&(n=r===Xk.MAIN?Xk.VIDEO:Xk.AUXILIARY);let o=this.remoteAudioTrack;n===Xk.VIDEO?o=this.remoteVideoTrack:n===Xk.AUXILIARY&&(o=this.remoteAuxiliaryTrack),o.setInputMediaStreamTrack(i)}addRRTRLine(e){let t=e.split("\r\n"),i=new Map;t.forEach((e,r)=>{/^a=rtcp-fb:/.test(e)&&t[r+1]&&!/^a=rtcp-fb:/.test(t[r+1])&&i.set(r+1,"".concat(e.match(/^a=rtcp-fb:\d+/)[0]," rrtr"))});let r=[...i];for(let n=0;n<r.length;n++){let[e,i]=r[n];t.splice(e+n,0,i)}return t.join("\r\n")}addSPSDescription(e){let t=jj(e);return t.media.forEach(e=>{e.type===Xk.VIDEO&&e.fmtp.forEach(e=>{e.config+=";sps-pps-idr-in-keyframe=1"})}),Jj(t)}removeSDESDescription(e){let t=["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"],i=jj(e);return i.media.forEach(e=>{e.ext&&(e.ext=e.ext.filter(e=>!t.includes(e.uri)))}),Jj(i)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return Yb(this,null,function*(){var i,r;try{if(((null==(i=this._peerConnection)?void 0:i.connectionState)===vD.NEW||(null==(r=this._peerConnection)?void 0:r.connectionState)===vD.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e))return void(this._peerConnection||(this.initialize(),yield this.connect(e)));if(this._log.info("subscribe ".concat(t," ").concat(JSON.stringify(e))),this._peerConnection||this._isSDPExchanging){let t="subscribe_change";Object.values(e).find(e=>!0===e)||(t="unsubscribe"),yield this.sendSubscription(t,e)}else this.initialize(),yield this.connect(e)}catch(Ik){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(Ik.message," ").concat(JSON.stringify(this.muteState))),new lk({code:ak.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):Ik}})}unsubscribe(e){return Yb(this,arguments,function(e){var t=this;let{remoteTracks:i,streamType:r}=e;return function*(){if("CONNECTED"===t._currentState&&("main"===r&&!t.isMainStreamSubscribed||"auxiliary"===r&&!t.isAuxStreamSubscribed))return void t._log.info("".concat(r," stream already unsubscribed"));let e=Hb({},t.subscribeState);i.forEach(t=>{switch(t.mediaType){case 1:e.audio=!1;break;case 4:e.video=!1;break;case 8:e.smallVideo=!1;break;case 2:e.auxiliary=!1}});let n="subscribe_change";Object.values(e).find(e=>!0===e)||(n="unsubscribe"),t._log.info("".concat("unsubscribe"===n?n:"subscribe"," ").concat(r," [").concat(Kj(e),"]")),yield t.sendSubscription(n,e),"unsubscribe"===n&&(t.closePeerConnection(),t.emitConnectionStateChangedEvent("DISCONNECTED"))}()})}sendSubscription(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscribeState,i={srcTinyId:this.tinyId,srcUserId:this.userId},r=uj,n=tj.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=hj,n=tj.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:r,data:i,responseCommand:n,timeout:1e4}).then(t=>{let{data:i}=t;if(0!==i.code){let t=new lk({code:i.code,message:nL({key:eL.ERROR_MESSAGE,data:{type:e,message:i.message}})});throw this._log.error(t),t}})}connect(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.subscribeState;return function*(){try{yield e.exchangeSDP(t),yield e.waitForPeerConnectionConnected()}catch(AD){throw e.closePeerConnection(!0),AD}}()})}exchangeSDP(e){return Yb(this,null,function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:t,sdp:i}=this._peerConnection.localDescription,r={type:t,sdp:i,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},n=yield this._signalChannel.sendWaitForResponse({command:dj,commandDesc:"exchange sdp",data:r,responseCommand:tj.SUBSCRIBE_RESULT,timeout:DD});if(!this._peerConnection){let e=new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.CONNECTION_CLOSED})});throw this._log.warn(e),e}yield this.onSubscribeResult(n),this._isSDPExchanging=!1}catch(AD){throw this._isSDPExchanging=!1,AD}})}createOffer(){return Yb(this,null,function*(){let e={voiceActivityDetection:!1};qL()&&this._sdpSemantics===wD?(this._peerConnection.addTransceiver(Xk.AUDIO,{direction:Qk.RECVONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Qk.RECVONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Qk.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:e}=yield bL();e||(this._log.warn("remove h264 desc from sdp"),t.sdp=function(e){let t=jj(e);return t.media.forEach(e=>{var t,i;if(e.type===Xk.VIDEO){let r=new Set;e.rtp.forEach(e=>{let{payload:t,codec:i}=e;return"H264"===i&&r.add(t)}),e.fmtp.forEach(e=>{let{payload:t,config:i}=e,n=i.match(/apt=(\d+)/);n&&n[1]&&r.has(Number(n[1]))&&r.add(t)});let n=e=>{let{payload:t}=e;return!r.has(t)};e.rtp=e.rtp.filter(n),e.rtcpFb=null==(t=e.rtcpFb)?void 0:t.filter(n),e.fmtp=e.fmtp.filter(n),e.payloads=null==(i=e.payloads)?void 0:i.split(" ").filter(e=>!r.has(Number(e))).join(" ")}}),Jj(t)}(t.sdp)),t.sdp=this.addRRTRLine(t.sdp),t.sdp=this.addSPSDescription(t.sdp),t.sdp=function(e){let t=jj(e);return t.media.forEach(e=>{e.type===Xk.AUDIO&&e.fmtp.forEach(e=>{e.config+=";sprop-stereo=1;stereo=1"})}),Jj(t)}(t.sdp),this._sdpSemantics===wD&&(t.sdp=this.removeSDESDescription(t.sdp))}yield this.setOffer(t)})}onSubscribeResult(e){return Yb(this,null,function*(){let{code:t,message:i=""}=e&&e.data||{},{type:r,sdp:n}=e&&e.data&&e.data.data||{};if(t===OD)throw new lk({code:ak.NOT_SUPPORTED_H264,message:nL({key:eL.NOT_SUPPORTED_H264DECODE})});try{if(0!==t)throw new lk({code:t,message:nL({key:eL.EXCHANGE_SDP_FAILED,data:{errMsg:i}})});this._log.debug("accept remote answer: ".concat(n)),yield this.setAnswer({type:r,sdp:n}),this.updateSSRC(n)}catch(eP){throw this._log.error(eP),eP}})}updateSSRC(e){try{jj(e).media.forEach(e=>{if(e.ssrcs)if(e.type===Xk.AUDIO){let t=e.ssrcs.find(e=>{var t;return null==(t=e.value)?void 0:t.includes(cD)});t&&(this.ssrc.audio=Number(t.id))}else{let t=e.ssrcs.find(e=>{var t;return null==(t=e.value)?void 0:t.includes(cD)}),i=e.ssrcs.find(e=>{var t;return null==(t=e.value)?void 0:t.includes(lD)});t&&(this.ssrc.video=Number(t.id)),i&&(this.ssrc.auxiliary=Number(i.id))}})}catch(AD){}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return Yb(this,null,function*(){if(!(zb(e.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch(AD){let t=Lw(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},t)}})}getIsReconnecting(){return this._isReconnecting}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}getCurrentState(){return this._currentState}setDelay(e){let{audioDelay:t,videoDelay:i}=e;this.remoteAudioTrack.stat.end2EndDelay=t,this.remoteVideoTrack.stat.end2EndDelay=i}get audioReceiver(){var e;return(null==(e=this._peerConnection)?void 0:e.getReceivers()[0])||null}};Kb([_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise((t,r)=>{let n=e=>{this._emitter.off("closed",n),r(new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally(()=>{this._emitter.off("closed",n)})})})],qj.prototype,"subscribe",1),Kb([AU(521717,!1)],qj.prototype,"unsubscribe",1),Kb([pU(Wj.prototype.afterConnect),hU(Wj.prototype.beforeConnect)],qj.prototype,"connect",1);var zj=qj,Yj={voiceActivityDetection:!1},Xj=class e extends Wj{constructor(e){super(Wb(Hb({},e),{isUplink:!0})),qb(this,"localMainAudioTrack",null),qb(this,"localMainVideoTrack",null),qb(this,"localAuxAudioTrack",null),qb(this,"localAuxVideoTrack",null),qb(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),qb(this,"_isPublishingAux",!1),qb(this,"_publishingLocalAudioTrack"),qb(this,"_publishingLocalVideoTrack"),qb(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),qb(this,"flag",0)}get videoCodec(){return this._mediaSettings.videoCodec.toLowerCase()||"h264"}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get publishState(){var e,t,i,r;let n={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let o=this._peerConnection.getSenders();o&&(KL()?(n.audio=!(null==(e=o[0])||!e.track),n.bigVideo=!(null==(t=o[1])||!t.track),n.smallVideo=!(null==(i=o[2])||!i.track),n.auxVideo=!(null==(r=o[3])||!r.track)):o.forEach(e=>{e.track&&(e.track.kind===Xk.AUDIO?n.audio=!0:(n.bigVideo=!0,this._room.videoManager.hasSmall&&(n.smallVideo=!0)))}))}return n}initialize(){super.initialize(),this.installEvents()}reset(){this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),this.uninstallEvents()}close(e){super.close(e),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this._emitter.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this._emitter.on("connection-state-changed",this.handleConnectionStateChange,this)}uninstallEvents(){this._emitter.off("connection-state-changed",this.handleConnectionStateChange,this)}emitConnectionStateChangedEvent(e,t){var i,r,n;let o=this._currentState,s=super.emitConnectionStateChangedEvent(e);return s&&o!==e&&(t?t.emit("connection-state-changed",{prevState:o,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:o,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:o,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:o,state:e}))),s}publish(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,isAuxiliary:n}=e;return function*(){let e;t._peerConnection||t.initialize(),i&&(t._publishingLocalAudioTrack=i),r&&(t._publishingLocalVideoTrack=r),t._isPublishingAux=n,r&&!n&&r.small&&(e=t._room.videoManager.smallTrack),t.sendMediaSettings(),qL()?yield t.publishByTransceiver({localAudioTrack:i,localVideoTrack:r,smallTrack:e,isAuxiliary:n}):yield t.publishByAddTrack({localAudioTrack:i,localVideoTrack:r,smallTrack:e}),t._publishingLocalAudioTrack=null,t._publishingLocalVideoTrack=null,t._isPublishingAux=!1,n?(r&&(t.localAuxVideoTrack=r),i&&(t.localAuxAudioTrack=i)):(r&&(t.localMainVideoTrack=r),i&&(t.localMainAudioTrack=i)),t.installTrackMuteEvents(i,r),t.sendMutedFlag()}()})}publishByTransceiver(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,smallTrack:n,isAuxiliary:o}=e;return function*(){t._log.info("publish by transceiver");let e=new MediaStream,s=null==r?void 0:r.outMediaTrack,a=null==i?void 0:i.outMediaTrack;a&&e.addTrack(a),s&&e.addTrack(s);let c=t._peerConnection.getTransceivers();if(0===c.length)t._peerConnection.addTransceiver(a||Xk.AUDIO,{direction:Qk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(o?Xk.VIDEO:s||Xk.VIDEO,{direction:Qk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(n||Xk.VIDEO,{direction:Qk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(o&&s||Xk.VIDEO,{direction:Qk.SENDONLY,streams:[e]}),yield t.connect();else{let e=[];if(a&&(c[0].sender.track||e.push(0),yield c[0].sender.replaceTrack(a),yield t.setBandwidth({bandwidth:(null==i?void 0:i.profile.bitrate)||40,type:Xk.AUDIO})),s){let i=o?3:1;yield c[i].sender.replaceTrack(s),yield t.setBandwidth({bandwidth:r.profile.bitrate,type:Xk.VIDEO,videoType:o?Xk.AUXILIARY:Xk.BIG}),e.push(i),n&&(yield c[2].sender.replaceTrack(n),yield t.setBandwidth({bandwidth:r.small.bitrate,type:Xk.VIDEO,videoType:Xk.SMALL}),e.push(2))}yield t.setTransceiverDirection(Qk.SENDONLY,e),yield t.doPublishChange(),null==r||r.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),null==r||r.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}}()})}publishByAddTrack(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,smallTrack:n}=e;return function*(){t._log.info("publish by addtrack");let e=null==r?void 0:r.outMediaTrack,o=null==i?void 0:i.outMediaTrack;if(t._peerConnection&&"new"!==t._peerConnection.connectionState)return i&&o&&(yield t.addTrack(i)),void(e&&(yield t.addTrack(r)));let s=new MediaStream;if(o&&s.addTrack(o),e&&s.addTrack(e),o&&t._peerConnection.addTrack(o,s),e&&(t._peerConnection.addTrack(e,s),n)){let e=new MediaStream;e.addTrack(n),t._peerConnection.addTrack(n,e)}yield t.connect()}()})}enableSmall(e){return Yb(this,null,function*(){let t=this._peerConnection.getTransceivers();e?this._room.videoManager.smallTrack&&(yield t[2].sender.replaceTrack(this._room.videoManager.smallTrack),yield this.setTransceiverDirection(Qk.SENDONLY,[2])):(yield t[2].sender.replaceTrack(null),yield this.setTransceiverDirection(Qk.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()})}installTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach(e=>{e&&(null==e||e.on("mute",this.sendMutedFlag,this),null==e||e.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach(e=>{e&&(null==e||e.off("mute",this.sendMutedFlag,this),null==e||e.off("unmute",this.sendMutedFlag,this))})}unpublish(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){if(!KL())return i&&i.outMediaTrack&&!r&&t.localMainVideoTrack?(yield t.removeTrack(i),void(t.localMainAudioTrack=null)):r&&r.outMediaTrack&&!i&&t.localMainAudioTrack?(yield t.removeTrack(r),void(t.localMainVideoTrack=null)):(yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),void t.emitConnectionStateChangedEvent("DISCONNECTED",r));let e=r&&r===t.localAuxVideoTrack,n=null==r?void 0:r.outMediaTrack,o=t._peerConnection.getSenders(),s=[];i&&(e?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localAuxAudioTrack&&!t.localMainAudioTrack&&(yield o[0].replaceTrack(null),s.push(0))),n&&(e?(yield o[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=Wb(Hb({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),s.push(3)):(yield o[1].replaceTrack(null),yield o[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=Wb(Hb({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),s.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.setTransceiverDirection(Qk.INACTIVE,s),yield t.doPublishChange(!1)):yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),null==r||r.emit("connection-state-changed",{prevState:t._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Yb(this,null,function*(){let t={state:this.publishState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponse({command:cj,data:t,responseCommand:tj.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(i.data.code,i.data.message)})}doUnpublish(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._signalChannel.sendWaitForResponse({command:lj,commandDesc:"unpublish",responseCommand:tj.UNPUBLISH_RESULT,enableLog:e}).catch(e=>{if(e.getCode()===ak.API_CALL_TIMEOUT)return Promise.resolve();throw e})}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:t}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":t&&(this._mediaSettings.videoCodec="VP8");let i=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:r,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:r=this._publishingLocalVideoTrack),ex){if(i&&i.outMediaTrack){let e=i.outMediaTrack.getSettings();this._mediaSettings.audioChannel=e.channelCount||1,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=e.sampleRate||0}if(r&&r.outMediaTrack){let e=r.outMediaTrack.getSettings();this._mediaSettings.videoWidth=e.width||0,this._mediaSettings.videoHeight=e.height||0,this._mediaSettings.videoFps=e.frameRate||0,this._mediaSettings.videoBps=1e3*r.profile.bitrate,r.small&&(this._mediaSettings.smallVideoWidth=r.small.width,this._mediaSettings.smallVideoHeight=r.small.height,this._mediaSettings.smallVideoFps=r.small.frameRate,this._mediaSettings.smallVideoBps=1e3*r.small.bitrate)}if(n&&n.outMediaTrack){let e=n.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=e.width||0,this._mediaSettings.auxVideoHeight=e.height||0,this._mediaSettings.auxVideoFps=e.frameRate||0,this._mediaSettings.auxVideoBps=1e3*n.profile.bitrate}}else i&&i.outMediaTrack&&(this._mediaSettings.audioChannel=i.profile.channelCount,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=i.profile.sampleRate),r&&r.outMediaTrack&&(this._mediaSettings.videoWidth=r.profile.width,this._mediaSettings.videoHeight=r.profile.height,this._mediaSettings.videoFps=r.profile.frameRate,this._mediaSettings.videoBps=1e3*r.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:Aj,data:this._mediaSettings,responseCommand:tj.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{0!==e.data.code&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return Yb(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(t?Xk.AUXILIARY:Xk.MAIN," stream")),qL()?yield this.addTrackByTransceiver(e,t):yield this.addTrackBySender(e)})}addTrackByTransceiver(e,t){return Yb(this,null,function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===Xk.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),1===n&&null!=(i=this.localMainVideoTrack)&&i.small&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===Qk.INACTIVE&&(yield this.setTransceiverDirection(Qk.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()})}addTrackBySender(e){return Yb(this,null,function*(){if(!e.outMediaTrack)return;let t=e.outMediaTrack;KL()&&this._peerConnection.getTransceivers().findIndex(e=>"stopped"===e.direction)>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",t));let i=this._peerConnection.getSenders().find(e=>e.track&&e.track.kind===t.kind);if(i&&i.track){this._log.warn("sender already exists, remove sender first");let e=i.track;this.removeSender(i),yield this.updateOffer("remove",e)}if(t&&this._peerConnection.addTrack(t,new MediaStream([t])),t.kind===Xk.VIDEO&&e instanceof QB&&e.small){let e=new MediaStream,{smallTrack:t}=this._room.videoManager;e.addTrack(t),this._peerConnection.addTrack(t,e)}yield this.updateOffer("add",t)})}isNeedToResetOfferOrder(){if(this._sdpSemantics===ND||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,t=jj(e);for(let i=0;i<t.media.length;i++)if(0===Number(t.media[i].mid)&&t.media[i].type===Xk.VIDEO)return!0;return!1}removeSender(e){let t=null;KL()&&(t=this._peerConnection.getTransceivers().find(t=>t.sender&&t.sender.track===e.track)),this._peerConnection.removeTrack(e),t&&Vw(t.stop)&&(this._log.info("stop transceiver"),t.stop())}removeTrack(e){return Yb(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(t?Xk.AUXILIARY:Xk.MAIN," stream")),qL()?yield this.removeTrackByTransceiver(e,t):yield this.removeTrackBySender(e)})}removeTrackByTransceiver(e,t){return Yb(this,null,function*(){if(!e.outMediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===Xk.AUDIO)yield i[0].sender.replaceTrack(null);else{let r=t?3:1;yield i[r].sender.replaceTrack(null),1===r&&e.small&&(yield i[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(Qk.INACTIVE,[r])}this.updateMediaSettings(),yield this.doPublishChange()})}setTransceiverDirection(e,t){return Yb(this,null,function*(){if(!aO)return;let i=!1,r=!1;this._log.info("setting transceiver ".concat(t.join(",")," direction to ").concat(e));let n=this._peerConnection.getTransceivers();if(t.forEach(t=>{n[t].direction!==e&&(n[t].direction=e,i=!0)}),i){this._log.info("updating offer");let e=yield this._peerConnection.createOffer();yield this.setOffer(e)}let o=-1,s=this._peerConnection.remoteDescription.sdp.split("\r\n").map(i=>{if(i.match(new RegExp("a=(".concat(Qk.INACTIVE,"|").concat(Qk.RECVONLY,"|").concat(Qk.SENDONLY,")")))&&o++,t.includes(o)){if(e===Qk.INACTIVE&&i.includes("a=".concat(Qk.RECVONLY)))return r=!0,"a=".concat(e);if(e===Qk.SENDONLY&&i.includes("a=".concat(Qk.INACTIVE)))return r=!0,"a=".concat(Qk.RECVONLY)}return i}).join("\r\n");r&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:s}))})}removeTrackBySender(e){return Yb(this,null,function*(){if(!e.outMediaTrack)return;if(e.kind===Xk.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack)return this.reset(),this.initialize(),void(yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1}));let t=this._peerConnection.getSenders().find(t=>t.track===e.outMediaTrack);t&&(this.removeSender(t),e.kind===Xk.VIDEO&&e.small&&this._peerConnection.getSenders().forEach(e=>{e.track&&e.track.kind===Xk.VIDEO&&this.removeSender(e)})),yield this.updateOffer("remove",e.outMediaTrack)})}replaceTrack(e){return Yb(this,null,function*(){var t;let i,r=null==(t=this._peerConnection)?void 0:t.getSenders();if(!r||0===r.length||!e.mediaTrack)return!1;if(i=qL()?e.kind===Xk.AUDIO?r[0]:r[1]:r.find(t=>t.track&&t.track.kind===e.kind),!i)return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(e.kind," track on ").concat(n?Xk.AUXILIARY:Xk.MAIN," stream")),e.kind===Xk.AUDIO?yield i.replaceTrack(e.outMediaTrack):e.kind===Xk.VIDEO&&(n?r[3]&&(yield r[3].replaceTrack(e.outMediaTrack)):yield i.replaceTrack(e.outMediaTrack)),!0})}updateOffer(e,t){return Yb(this,null,function*(){try{let i=yield this._peerConnection.createOffer(Yj);aO&&i.sdp&&(i.sdp=this.setSDPDirection(i.sdp,"sendrecv")),yield this.setOffer(i);let r=this.updateMediaSettings(),n={action:e,trackId:t.id,kind:t.kind===Xk.VIDEO?"bigVideo":t.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:r,state:this.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug("updatedOffer: ".concat(n.sdp));let o=yield this._signalChannel.sendWaitForResponse({command:ij,data:n,responseCommand:tj.UPDATE_OFFER_RESULT,timeout:kD,commandDesc:"update offer"}),{code:s,message:a}=o.data;0!==s&&this.checkPublishResultCode(s,a),yield this.acceptAnswer(o.data.data),i.sdp&&this.updateSSRC(i.sdp)}catch(tP){throw this._log.error(tP),tP}})}setBandwidth(e){return Yb(this,arguments,function(e){var t=this;let{bandwidth:i,type:r,videoType:n,sdp:o}=e;return function*(){if(!ZL())return o?r===Xk.VIDEO?t.updateVideoBandwidthRestriction(o,i,n):t.updateAudioBandwidthRestriction(o,i):void 0;let e,s=t._peerConnection.getSenders();if(qL()){let t=0;r===Xk.VIDEO&&(t=n===Xk.SMALL?2:n===Xk.AUXILIARY?3:1),e=s[t]}else e=s.find(e=>e.track&&e.track.kind===r);if(e){let s=e.getParameters();(!s.encodings||0===s.encodings.length)&&(s.encodings=[{}]),s.encodings[0].maxBitrate=1e3*i;try{return yield e.setParameters(s),t._log.info("".concat(n||"").concat(r," bandwidth ").concat(i," kbps")),o}catch(a){if(t._log.info("failed to set bandwidth by setting maxBitrate: ".concat(a)),o)return r===Xk.VIDEO?t.updateVideoBandwidthRestriction(o,i,n):t.updateAudioBandwidthRestriction(o,i)}}return o}()})}updateVideoBandwidthRestriction(e,t,i){let r="AS";aO&&(r="TIAS",t*=1e3);let n=0,o=-1;return i===Xk.SMALL?n=1:i===Xk.AUXILIARY&&(n=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,e=>(o+=1,o===n?"".concat(e,"b=").concat(r,":").concat(t,"\r\n"):e)),e}updateAudioBandwidthRestriction(e,t){let i="AS";return aO&&(i="TIAS",t*=1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,"m=audio $1\r\nc=IN $2\r\nb=".concat(i,":").concat(t,"\r\n"))}removeBandwidthRestriction(e){return e.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"")}removeVideoOrientation(e){return e.replace(/urn:3gpp:video-orientation/,"")}connect(){return Yb(this,null,function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(Sk){throw this.closePeerConnection(!0),this.uninstallEvents(),Sk}})}exchangeSDP(){return Yb(this,null,function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(Sk){throw Sk}})}createOffer(){return Yb(this,null,function*(){try{let e=yield this._peerConnection.createOffer(Yj);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(Sk){throw Sk}})}doExchangeSDP(){let e={command:aj,responseCommand:tj.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof CH||this.localAuxVideoTrack instanceof CH,state:this.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug("sending sdp offer: ".concat(e.data.sdp)),this._signalChannel.sendWaitForResponse(e).then(e=>{let{code:t,message:i,data:r}=e.data;return 0===t?this.acceptAnswer(r):this.checkPublishResultCode(t,i)})}setSDPDirection(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all",r=jj(e);return r.media.forEach(e=>{("all"===i||e.type===i)&&(e.direction=t)}),Jj(r)}acceptAnswer(e){return Yb(this,null,function*(){var t,i,r,n,o;try{let s;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let e=(null==(t=this._publishingLocalVideoTrack)?void 0:t.profile.bitrate)||(null==(i=this.localMainVideoTrack)?void 0:i.profile.bitrate),o=(null==(r=this._publishingLocalAudioTrack)?void 0:r.profile.bitrate)||(null==(n=this.localMainAudioTrack)?void 0:n.profile.bitrate);if(e){let t=this._isPublishingAux?Xk.AUXILIARY:Xk.BIG;s=yield this.setBandwidth({bandwidth:e,type:Xk.VIDEO,sdp:s,videoType:t})}o&&(s=yield this.setBandwidth({bandwidth:o,type:Xk.AUDIO,sdp:s}))}if(s=this.removeVideoOrientation(e.sdp),null!=(o=this._publishingLocalVideoTrack)&&o.small){let{smallStreamConfig:e}=this._room;s=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||e.bitrate,type:Xk.VIDEO,videoType:Xk.SMALL,sdp:s})}let a={type:e.type,sdp:s};yield this.setAnswer(a),this._log.debug("accepted answer: ".concat(s))}catch(rP){throw this._log.error("failed to accept remote answer ".concat(rP)),rP}})}sendMutedFlag(e){var t,i,r;if(e===this.localAuxAudioTrack||e===this.localAuxVideoTrack)return;let n={audio:!(null==(t=this.localMainAudioTrack)||!t.muted),bigVideo:!(null==(i=this.localMainVideoTrack)||!i.muted),auxVideo:!(null==(r=this.localAuxVideoTrack)||!r.muted)};this._log.info("send muted state: ".concat(JSON.stringify(n))),this._signalChannel.send(sj,n)}getIsReconnecting(){return this._isReconnecting}reconnect(){return Yb(this,null,function*(){if(!(zb(e.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:lj,responseCommand:tj.UNPUBLISH_RESULT,enableLog:!1}),this.closePeerConnection(),this.initialize(),this.isMainStreamPublished&&(yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0})),this._log.warn("reconnect() uplink reconnect successfully"),this.stopReconnection()}catch(AD){let t=Lw(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},t)}})}handleConnectionStateChange(e){"CONNECTED"===e.state&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&BM.emit(WM.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{jj(e).media.forEach((e,t)=>{if(e.type===Xk.AUDIO){let t=e.ssrcs&&e.ssrcs[0];t&&(this.ssrc.audio=Number(t.id))}else{if(this._sdpSemantics===ND&&e.ssrcGroups)return void e.ssrcGroups.forEach((e,t)=>{let i=Number(e.ssrcs.split(" ")[0]);0===t?this.ssrc.video=i:1===t&&(this.ssrc.small=i)});let i=e.ssrcs&&e.ssrcs[0];if(!i)return;switch(t){case 1:this.ssrc.video=Number(i.id);break;case 2:this.ssrc.small=Number(i.id);break;case 3:this.ssrc.auxiliary=Number(i.id)}}})}catch(AD){}}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xk.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===Xk.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===Xk.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===Xk.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===Xk.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===OD?(this._log.error(tL.NOT_SUPPORTED_H264ENCODE),new lk({code:ak.NOT_SUPPORTED_H264,message:nL({key:eL.NOT_SUPPORTED_H264ENCODE})})):new lk({code:ak.UNKNOWN,message:nL({key:eL.SIGNAL_RESPONSE_FAILED,data:{signalResponse:tj.PUBLISH_RESULT,code:e,message:t}})})}};Kb([_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise((t,r)=>{let n=e=>{this._emitter.off("closed",n),r(new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally(()=>{this._emitter.off("closed",n)})})})],Xj.prototype,"publish",1),Kb([AU(521715,!1)],Xj.prototype,"unpublish",1),Kb([pU(Wj.prototype.afterConnect),hU(Wj.prototype.beforeConnect)],Xj.prototype,"connect",1);var Qj=Xj,Zj=class{constructor(e,t){this.room=e,qb(this,"_log"),qb(this,"_prevReportTime",0),qb(this,"_prevReport",{}),qb(this,"_prevStats",null),qb(this,"_prevEncoderImplementation",""),qb(this,"_prevAuxEncoderImpl",""),qb(this,"_prevQualityLimitationReason",""),qb(this,"_prevAuxQualityLimitationReason",""),qb(this,"_prevDecoderImplementationMap",new Map),qb(this,"_decodeMap",new Map),qb(this,"totalBytesSent",0),qb(this,"totalBytesReceived",0),qb(this,"_spcStats",null),this._log=t}get statInterval(){return 0===this._prevReportTime?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(e){return Yb(this,null,function*(){var t;let i={audio:{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0},video:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},small:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},auxiliary:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},rtt:0},r=e.getPeerConnection(),n=e.getSSRC();if(r)try{if((this._spcStats||(yield r.getStats())).forEach(t=>{var r,o,s;let a,c;if("outbound-rtp"===t.type)if((t.mediaType||t.kind)===Xk.VIDEO){if(t.ssrc===n.video?(a=Xk.VIDEO,c=e.localMainVideoTrack):t.ssrc===n.small?a=Xk.SMALL:t.ssrc===n.auxiliary&&(c=e.localAuxVideoTrack,a=Xk.AUXILIARY),!a)return;if(i[a].bytesSent=t.bytesSent,i[a].packetsSent=t.packetsSent,i[a].framesEncoded=t.framesEncoded,Uw(t.keyFramesEncoded)||(i[a].keyFramesEncoded=t.keyFramesEncoded),Uw(t.nackCount)||(i[a].nackCount=t.nackCount),Uw(t.pliCount)||(i[a].pliCount=t.pliCount),Uw(t.retransmittedPacketsSent)||(i[a].retransmittedPacketsSent=t.retransmittedPacketsSent),Uw(t.totalEncodeTime)||(i[a].totalEncodeTime=t.totalEncodeTime),Uw(t.totalPacketSendDelay)||(i[a].totalPacketSendDelay=t.totalPacketSendDelay),!Uw(t.encoderImplementation)&&(a===Xk.VIDEO&&this._prevEncoderImplementation!==t.encoderImplementation||a===Xk.AUXILIARY&&this._prevAuxEncoderImpl!==t.encoderImplementation)){let i=2,r=this._prevEncoderImplementation;a===Xk.AUXILIARY&&(i=7,r=this._prevAuxEncoderImpl),BM.emit("262",{userId:e.userId,streamType:i,prevImplementation:r,implementation:t.encoderImplementation,codec:e.videoCodec,isHWCodec:t.powerEfficientEncoder}),this[a===Xk.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=t.encoderImplementation,this._log.info("".concat(a===Xk.AUXILIARY?"aux ":"","encoderImplementation change to ").concat(t.encoderImplementation,"(").concat(e.videoCodec,") HWEncoder: ").concat(t.powerEfficientEncoder))}t.ssrc===n.video?!Uw(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("qualityLimitationReason change to ".concat(t.qualityLimitationReason)),BM.emit("263",{userId:e.userId,reason:t.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:null==(r=e.localMainVideoTrack)?void 0:r.isQosClearFirst}),this._prevQualityLimitationReason=t.qualityLimitationReason):t.ssrc===n.auxiliary&&!Uw(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevAuxQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(t.qualityLimitationReason)),BM.emit("263",{userId:e.userId,reason:t.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:null==(o=e.localAuxVideoTrack)?void 0:o.isQosClearFirst}),this._prevAuxQualityLimitationReason=t.qualityLimitationReason)}else i.audio.bytesSent=t.bytesSent,i.audio.packetsSent=t.packetsSent;else"candidate-pair"===t.type?LL(t)&&(this.totalBytesSent=t.bytesSent,Bw(t.currentRoundTripTime)&&(i.rtt=Math.floor(1e3*t.currentRoundTripTime))):"media-source"===t.type&&(t.kind===Xk.AUDIO?(i.audio.audioLevel=t.audioLevel||0,i.audio.totalAudioEnergy=t.totalAudioEnergy||0,t.echoReturnLoss,t.totalSamplesDuration&&(i.audio.totalSamplesDuration=t.totalSamplesDuration)):t.kind===Xk.VIDEO&&(t.trackIdentifier===e.getVideoTrackId(Xk.VIDEO)?i.video.fpsCapture=t.framesPerSecond:t.trackIdentifier===e.getVideoTrackId(Xk.AUXILIARY)?i.auxiliary.fpsCapture=t.framesPerSecond:i.small.fpsCapture=t.framesPerSecond));if(!Uw(t.audioLevel)&&null!=(s=e.localMainAudioTrack)&&s.mediaTrack&&t.trackIdentifier===e.localMainAudioTrack.mediaTrack.id&&(i.audio.audioLevel=t.audioLevel||0),!Uw(t.frameWidth)){let r=Xk.SMALL;t.trackIdentifier===e.getVideoTrackId(Xk.VIDEO)||t.ssrc===n.video?r=Xk.VIDEO:(t.trackIdentifier===e.getVideoTrackId(Xk.AUXILIARY)||t.ssrc===n.auxiliary)&&(r=Xk.AUXILIARY),i[r].frameWidth=t.frameWidth,i[r].frameHeight=t.frameHeight,i[r].framesSent=t.framesSent}}),e.localMainAudioTrack){let t=e.localMainAudioTrack.getInternalAudioLevel(),r=e.localMainAudioTrack.getInternalAudioLevelAfter3A();i.audio.audioCaptureEnergyAfter3a=r,i.audio.micAudioLevel=t,0===i.audio.audioLevel&&(i.audio.audioLevel=t)}this.totalBytesSent||(this.totalBytesSent+=i.audio.bytesSent+i.video.bytesSent+i.auxiliary.bytesSent),Object.keys(i).forEach(t=>{t===Xk.AUDIO?(e.localMainAudioTrack&&(e.localMainAudioTrack.stat=i[t]),e.localAuxAudioTrack&&(e.localAuxAudioTrack.stat=i[t])):t===Xk.VIDEO?e.localMainVideoTrack&&(e.localMainVideoTrack.stat=i[t]):t===Xk.AUXILIARY&&e.localAuxVideoTrack&&(e.localAuxVideoTrack.stat=i[t])})}catch(Ik){this._log.warn("failed to getStats on sender connection ".concat(Ik))}return 0===i.rtt&&(i.rtt=(null==(t=this.room.networkQuality)?void 0:t.uplinkRTT)||0),i})}getReceiverStats(e){return Yb(this,null,function*(){var t,i,r;let n={tinyId:e.tinyId,userId:e.userId,rtt:0,hasAudio:!1,hasVideo:!1,hasAuxiliary:!1,isSmallSubscribed:!1,audio:{bytesReceived:0,packetsReceived:0,packetsLost:0,p2pDelay:0,totalJitter:0,totalJitterCount:0,audioLevel:0,totalAudioEnergy:0,insertedSamplesForDeceleration:0,removedSamplesForAcceleration:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,freezeCount:0,totalFreezesDuration:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""}},o=e.getPeerConnection();if(o)try{let{ssrc:r}=e,{muteState:s,subscribeState:a}=e;(this._spcStats||(yield o.getStats())).forEach(t=>{var i,o;if("codec"===t.type&&this._decodeMap.set(t.id,t),"inbound-rtp"===t.type){let c=(t.mediaType||t.kind)===Xk.AUDIO;if(c){if(t.ssrc!==r.audio||!s.hasAudio)return;n.audio.packetsReceived=t.packetsReceived,n.audio.bytesReceived=t.bytesReceived,n.audio.packetsLost=t.packetsLost,t.insertedSamplesForDeceleration&&(n.audio.insertedSamplesForDeceleration=t.insertedSamplesForDeceleration),t.removedSamplesForAcceleration&&(n.audio.removedSamplesForAcceleration=t.removedSamplesForAcceleration),t.totalSamplesDuration&&(n.audio.totalSamplesDuration=t.totalSamplesDuration),t.totalSamplesReceived&&(n.audio.totalSamplesReceived=t.totalSamplesReceived),t.concealedSamples&&(n.audio.concealedSamples=t.concealedSamples),t.silentConcealedSamples&&(n.audio.silentConcealedSamples=t.silentConcealedSamples);let{remoteAudioTrack:i}=e;i.stat.packetsReceived=t.packetsReceived,i.stat.bytesReceived=t.bytesReceived,i.stat.packetsLost=t.packetsLost,n.audio.p2pDelay=i.stat.end2EndDelay,n.hasAudio=!0}else{if(aO&&0===t.bytesReceived)return;let c;t.ssrc===r.video&&s.hasVideo&&(n.video.packetsReceived=t.packetsReceived,n.video.bytesReceived=t.bytesReceived,n.video.packetsLost=t.packetsLost,n.video.framesReceived=t.framesReceived,n.video.framesDecoded=t.framesDecoded,n.video.fpsDecoded=t.framesPerSecond,n.hasVideo=!0,e.videoCodec=jP[null==(i=this._decodeMap.get(t.codecId))?void 0:i.mimeType.split("/")[1]]||"h264",n.video.codec=e.videoCodec,c=e.remoteVideoTrack,s.hasSmall&&a.smallVideo&&(n.isSmallSubscribed=!0),t.decoderImplementation&&(!this._prevDecoderImplementationMap.has(n.userId)||this._prevDecoderImplementationMap.get(n.userId)!==t.decoderImplementation)&&(this._log.info("".concat(n.userId," decoderImplementation change to ").concat(t.decoderImplementation,"(").concat(e.videoCodec,") HWDecoder: ").concat(t.powerEfficientDecoder)),BM.emit("262",{userId:this.room.userId,remoteUserId:n.userId,prevImplementation:this._prevDecoderImplementationMap.get(n.userId),implementation:t.decoderImplementation,codec:e.videoCodec,isHWCodec:t.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(n.userId,t.decoderImplementation))),t.ssrc===r.auxiliary&&s.hasAuxiliary&&(n.auxiliary.packetsReceived=t.packetsReceived,n.auxiliary.bytesReceived=t.bytesReceived,n.auxiliary.packetsLost=t.packetsLost,n.auxiliary.framesReceived=t.framesReceived,n.auxiliary.framesDecoded=t.framesDecoded,n.auxiliary.fpsDecoded=t.framesPerSecond,c=e.remoteAuxiliaryTrack,n.auxiliary.p2pDelay=c.stat.end2EndDelay,n.hasAuxiliary=!0,n.video.codec=(null==(o=this._decodeMap.get(t.codecId))?void 0:o.mimeType.split("/")[1].toLowerCase())||"h264"),c&&(c.stat.packetsReceived=t.packetsReceived,c.stat.bytesReceived=t.bytesReceived,c.stat.packetsLost=t.packetsLost,c.stat.framesReceived=t.framesReceived,c.stat.framesDecoded=t.framesDecoded,t.jitterBufferDelay&&(c.stat.jitterBufferDelay=Math.floor(t.jitterBufferDelay/t.jitterBufferEmittedCount*1e3)),n.video.p2pDelay=c.stat.end2EndDelay)}t.jitterBufferDelay&&(c?(n.audio.totalJitter=t.jitterBufferDelay,n.audio.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.video&&s.hasVideo?(n.video.totalJitter=t.jitterBufferDelay,n.video.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.auxiliary&&s.hasAuxiliary&&(n.auxiliary.totalJitter=t.jitterBufferDelay,n.auxiliary.totalJitterCount=t.jitterBufferEmittedCount))}else"candidate-pair"===t.type&&LL(t)&&(this.totalBytesReceived=t.bytesReceived,Bw(t.currentRoundTripTime)&&(n.rtt=Math.floor(1e3*t.currentRoundTripTime)));Uw(t.frameWidth)||((t.trackIdentifier===e.getMainStreamVideoTrackId()||t.ssrc===r.video)&&(n.video.frameWidth=t.frameWidth,n.video.frameHeight=t.frameHeight,e.remoteVideoTrack.stat.frameWidth=t.frameWidth,e.remoteVideoTrack.stat.frameHeight=t.frameHeight),(t.trackIdentifier===e.getAuxStreamVideoTrackId()||t.ssrc===r.auxiliary)&&(n.auxiliary.frameWidth=t.frameWidth,n.auxiliary.frameHeight=t.frameHeight,e.remoteAuxiliaryTrack.stat.frameWidth=t.frameWidth,e.remoteAuxiliaryTrack.stat.frameHeight=t.frameHeight)),!Uw(t.audioLevel)&&e.muteState.audioAvailable&&e.remoteAudioTrack.mediaTrack&&t.trackIdentifier===e.remoteAudioTrack.mediaTrack.id&&(n.audio.audioLevel=t.audioLevel||0,n.audio.totalAudioEnergy=t.totalAudioEnergy||0)}),0===n.audio.audioLevel&&e.muteState.audioAvailable&&(n.audio.audioLevel=e.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=n.audio.bytesReceived+n.video.bytesReceived+n.auxiliary.bytesReceived),Uw(null==(t=e.remoteVideoTrack.player.stat)?void 0:t.fps)||(n.video.fpsRender=e.remoteVideoTrack.player.stat.fps),Uw(null==(i=e.remoteAuxiliaryTrack.player.stat)?void 0:i.fps)||(n.auxiliary.fpsRender=e.remoteAuxiliaryTrack.player.stat.fps)}catch(eP){this._log.warn("failed to getStats on receiver connection ".concat(eP))}return 0===n.rtt&&(n.rtt=(null==(r=this.room.networkQuality)?void 0:r.uplinkRTT)||0),n})}getStats(e,t){return Yb(this,null,function*(){let i={},r=[];if(this.room.singlePC){let e=this.room.singlePC.getPeerConnection();if(!e)return{senderStats:i,receiverStats:r};let t=Zw(),n=yield e.getStats(),o=Zw();o-t>2e3&&this._log.warn("getStats cost ".concat(o-t,"ms"));let s=[],a=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source","codec"]);n.forEach(e=>a.has(e.type)&&s.push(e)),this._spcStats=s}e&&(i=yield this.getSenderStats(e));for(let[e,n]of t){let e=yield this.getReceiverStats(n);r.push(e)}return{senderStats:i,receiverStats:r}})}getDifferenceValue(e,t){if(sU(e))return t;let i=t-e;return i<0?0:i}prepareReport(e){let{stats:t,report:i,freezeMap:r}=e;var n,o,s;if(!sU(t.senderStats)){let e={uint32_audio_level:t.senderStats.audio.audioLevel*HP,uint32_audio_energy:1e6*(t.senderStats.audio.totalAudioEnergy||0),uint32_audio_codec_bitrate:t.senderStats.audio.bytesSent};t.senderStats.audio.micAudioLevel&&(e.uint32_mic_audio_level=t.senderStats.audio.micAudioLevel*HP),t.senderStats.audio.audioCaptureEnergyAfter3a&&(e.uint32_audio_capture_energy_after3a=t.senderStats.audio.audioCaptureEnergyAfter3a*HP),t.senderStats.audio.totalSamplesDuration&&(i.msg_device_info.uint32_audio_capture_cost=t.senderStats.audio.totalSamplesDuration);let r=[];if(t.senderStats.video.bytesSent){let e={uint32_video_stream_type:2,uint32_video_codec_fps:t.senderStats.video.framesSent,uint32_video_capture_fps:t.senderStats.video.fpsCapture,uint32_video_width:t.senderStats.video.frameWidth,uint32_video_height:t.senderStats.video.frameHeight,uint32_video_codec_bitrate:t.senderStats.video.bytesSent,uint32_video_enc_fps:t.senderStats.video.framesEncoded,uint32_key_frame_count:t.senderStats.video.keyFramesEncoded,uint32_nack_count:t.senderStats.video.nackCount,uint32_pli_count:t.senderStats.video.pliCount,uint32_encode_cost:1e3*(t.senderStats.video.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.video.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.video.retransmittedPacketsSent};r.push(e)}if(t.senderStats.small.bytesSent){let e={uint32_video_stream_type:3,uint32_video_codec_fps:t.senderStats.small.framesSent||0,uint32_video_capture_fps:t.senderStats.small.fpsCapture||0,uint32_video_width:t.senderStats.small.frameWidth||0,uint32_video_height:t.senderStats.small.frameHeight||0,uint32_video_codec_bitrate:t.senderStats.small.bytesSent,uint32_video_enc_fps:t.senderStats.small.framesEncoded||0,uint32_key_frame_count:t.senderStats.small.keyFramesEncoded,uint32_nack_count:t.senderStats.small.nackCount,uint32_pli_count:t.senderStats.small.pliCount,uint32_encode_cost:1e3*(t.senderStats.small.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.small.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.small.retransmittedPacketsSent};r.push(e)}if(t.senderStats.auxiliary.bytesSent){let e={uint32_video_stream_type:7,uint32_video_codec_fps:t.senderStats.auxiliary.framesSent||0,uint32_video_capture_fps:t.senderStats.auxiliary.fpsCapture||0,uint32_video_width:t.senderStats.auxiliary.frameWidth||0,uint32_video_height:t.senderStats.auxiliary.frameHeight||0,uint32_video_codec_bitrate:t.senderStats.auxiliary.bytesSent,uint32_video_enc_fps:t.senderStats.auxiliary.framesEncoded||0,uint32_key_frame_count:t.senderStats.auxiliary.keyFramesEncoded,uint32_nack_count:t.senderStats.auxiliary.nackCount,uint32_pli_count:t.senderStats.auxiliary.pliCount,uint32_encode_cost:1e3*(t.senderStats.auxiliary.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.auxiliary.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.auxiliary.retransmittedPacketsSent};r.push(e)}let n={uint32_bitrate:0,uint32_lost:0,uint32_rtt:t.senderStats.rtt};i.msg_up_stream_info={msg_audio_status:e,msg_video_status:r,msg_network_status:n}}let a=null==(n=kV())?void 0:n.playoutStats;a&&(i.msg_device_info.uint32_audio_play_cost=a.totalFramesDuration);let{statInterval:c}=this;i.msg_down_stream_info=[],t.receiverStats.forEach(e=>{let t={msg_user_info:{str_identifier:e.userId,uint64_tinyid:e.tinyId},msg_network_status:{uint32_rtt:e.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(e.hasAudio){let i={uint32_audio_p2p_delay:e.audio.p2pDelay,uint32_audio_cache_ms:e.audio.totalJitter,uint32_audio_cache_ms_count:e.audio.totalJitterCount,uint32_audio_codec_bitrate:e.audio.bytesReceived,uint32_audio_total_bitrate:e.audio.bytesReceived,uint32_audio_level:1e8*e.audio.audioLevel,uint32_audio_energy:1e6*e.audio.totalAudioEnergy,uint32_audio_receive:e.audio.packetsReceived,uint32_audio_origin_lost:e.audio.packetsLost};t.msg_audio_status=i}if(e.hasVideo){let i=r.get("".concat(e.userId,"_").concat(dD)),n=i?i.duration:0,o={uint32_video_stream_type:e.isSmallSubscribed?3:2,uint32_video_receive_fps:e.video.framesReceived,uint32_video_width:e.video.frameWidth,uint32_video_height:e.video.frameHeight,uint32_video_codec_bitrate:e.video.bytesReceived,uint32_video_receive:e.video.packetsReceived,uint32_video_origin_lost:e.video.packetsLost,uint32_video_block_time:n,uint32_video_dec_fps:e.video.framesDecoded,uint32_video_codec_fps:e.video.fpsRender,uint32_video_cache_ms:e.video.totalJitter,uint32_video_cache_ms_count:e.video.totalJitterCount,uint32_video_p2p_delay:e.video.p2pDelay,uint32_video_codec:e.video.codec};t.msg_video_status.push(o)}if(e.hasAuxiliary){let i=r.get("".concat(e.userId,"_").concat(uD)),n=i?i.duration:0,o={uint32_video_stream_type:7,uint32_video_receive_fps:e.auxiliary.framesReceived,uint32_video_width:e.auxiliary.frameWidth,uint32_video_height:e.auxiliary.frameHeight,uint32_video_codec_bitrate:e.auxiliary.bytesReceived,uint32_video_receive:e.auxiliary.packetsReceived+e.auxiliary.packetsLost,uint32_video_origin_lost:e.auxiliary.packetsLost,uint32_video_block_time:n,uint32_video_dec_fps:e.auxiliary.framesDecoded,uint32_video_codec_fps:e.video.fpsRender,uint32_video_cache_ms:e.auxiliary.totalJitter,uint32_video_cache_ms_count:e.auxiliary.totalJitterCount,uint32_video_p2p_delay:e.auxiliary.p2pDelay,uint32_video_codec:e.video.codec};t.msg_video_status.push(o)}i.msg_down_stream_info.push(t)});let l=this._prevReport,d=this._prevStats;if(this._prevReport=JSON.parse(JSON.stringify(i)),this._prevStats=JSON.parse(JSON.stringify(t)),i.msg_up_stream_info.msg_audio_status&&l.msg_up_stream_info.msg_audio_status){let e=l.msg_up_stream_info.msg_audio_status,t=i.msg_up_stream_info.msg_audio_status;if(0===e.uint32_audio_codec_bitrate)t.uint32_audio_codec_bitrate=0;else{let r=this.getDifferenceValue(e.uint32_audio_codec_bitrate,t.uint32_audio_codec_bitrate);t.uint32_audio_codec_bitrate=Math.round(8*r/c),i.msg_up_stream_info.msg_network_status.uint32_bitrate+=t.uint32_audio_codec_bitrate}null!=(o=l.msg_device_info)&&o.uint32_audio_capture_cost?i.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(l.msg_device_info.uint32_audio_capture_cost,i.msg_device_info.uint32_audio_capture_cost)/c):delete i.msg_device_info.uint32_audio_capture_cost}let u=l.msg_up_stream_info.msg_video_status;i.msg_up_stream_info.msg_video_status.forEach(e=>{let t=u.find(t=>t.uint32_video_stream_type===e.uint32_video_stream_type);if(!t||0===t.uint32_video_codec_bitrate)return e.uint32_video_codec_bitrate=0,e.uint32_video_enc_fps=0,void(e.uint32_video_codec_fps=0);let r=0,n=0,o=0;t&&e.uint32_video_codec_bitrate>=t.uint32_video_codec_bitrate&&(r=t.uint32_video_codec_bitrate,n=t.uint32_video_enc_fps,o=t.uint32_video_codec_fps);let s=this.getDifferenceValue(r,e.uint32_video_codec_bitrate);e.uint32_video_codec_bitrate=Math.round(8*s/c),i.msg_up_stream_info.msg_network_status.uint32_bitrate+=e.uint32_video_codec_bitrate,e.uint32_video_enc_fps=Math.round(this.getDifferenceValue(n,e.uint32_video_enc_fps)/c),e.uint32_video_codec_fps=Math.round(this.getDifferenceValue(o,e.uint32_video_codec_fps)/c),0===t.uint32_video_width&&0===t.uint32_video_height&&0===t.uint32_video_codec_fps&&(e.uint32_video_codec_fps=e.uint32_video_enc_fps),Uw(t.uint32_key_frame_count)||(e.uint32_key_frame_count=Math.round(this.getDifferenceValue(t.uint32_key_frame_count,e.uint32_key_frame_count))),Uw(t.uint32_nack_count)||(e.uint32_nack_count=Math.round(this.getDifferenceValue(t.uint32_nack_count,e.uint32_nack_count))),Uw(t.uint32_pli_count)||(e.uint32_pli_count=Math.round(this.getDifferenceValue(t.uint32_pli_count,e.uint32_pli_count))),Uw(t.uint32_video_arq_packets)||(e.uint32_video_arq_packets=Math.round(this.getDifferenceValue(t.uint32_video_arq_packets,e.uint32_video_arq_packets))),Uw(t.uint32_encode_cost)||(e.uint32_encode_cost=Math.round(this.getDifferenceValue(t.uint32_encode_cost,e.uint32_encode_cost)/c)),Uw(t.uint32_send_packet_cost)||(e.uint32_send_packet_cost=Math.round(this.getDifferenceValue(t.uint32_send_packet_cost,e.uint32_send_packet_cost)/c))});let h=l.msg_down_stream_info;i.msg_down_stream_info=i.msg_down_stream_info.filter(e=>h.find(t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid));let p=i.msg_down_stream_info;return p.forEach(e=>{let t=h.find(t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid);if(sU(e.msg_audio_status)||sU(t.msg_audio_status))e.msg_audio_status={};else{let i=e.msg_audio_status,r=t.msg_audio_status,n=this.getDifferenceValue(r.uint32_audio_cache_ms_count,i.uint32_audio_cache_ms_count);delete i.uint32_audio_cache_ms_count,i.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(r.uint32_audio_cache_ms,i.uint32_audio_cache_ms)/n)||0;let o=this.room.remotePublishedUserMap.get(e.msg_user_info.str_identifier);o&&(o.remoteAudioTrack.stat.jitterBufferDelay=i.uint32_audio_cache_ms),i.uint32_audio_origin_lost=this.getDifferenceValue(r.uint32_audio_origin_lost,i.uint32_audio_origin_lost),i.uint32_audio_receive=this.getDifferenceValue(r.uint32_audio_receive,i.uint32_audio_receive),i.uint32_audio_receive+=i.uint32_audio_origin_lost;let s=this.getDifferenceValue(r.uint32_audio_codec_bitrate,i.uint32_audio_codec_bitrate);i.uint32_audio_codec_bitrate=Math.round(8*s/c),i.uint32_audio_total_bitrate=Math.round(8*s/c)}if(e.msg_video_status&&t.msg_video_status){let i=t.msg_video_status;e.msg_video_status=e.msg_video_status.filter(e=>i.find(t=>t.uint32_video_stream_type===e.uint32_video_stream_type)),e.msg_video_status.forEach(e=>{let t=i.find(t=>t.uint32_video_stream_type===e.uint32_video_stream_type),r=t.uint32_video_receive,n=t.uint32_video_origin_lost,o=t.uint32_video_codec_bitrate,s=t.uint32_video_receive_fps,a=t.uint32_video_dec_fps;e.uint32_video_origin_lost=this.getDifferenceValue(n,e.uint32_video_origin_lost),e.uint32_video_receive=this.getDifferenceValue(r,e.uint32_video_receive)+e.uint32_video_origin_lost;let l=this.getDifferenceValue(o,e.uint32_video_codec_bitrate);e.uint32_video_codec_bitrate=Math.round(8*l/c);let d=this.getDifferenceValue(s,e.uint32_video_receive_fps);e.uint32_video_receive_fps=Math.round(d/c),e.uint32_video_dec_fps=Math.round(this.getDifferenceValue(a,e.uint32_video_dec_fps)/c);let u=this.getDifferenceValue(t.uint32_video_cache_ms_count,e.uint32_video_cache_ms_count);delete e.uint32_video_cache_ms_count,e.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(t.uint32_video_cache_ms,e.uint32_video_cache_ms)/u)||0})}}),null!=(s=l.msg_device_info)&&s.uint32_audio_play_cost?i.msg_device_info.uint32_audio_play_cost=2*Math.floor(this.getDifferenceValue(l.msg_device_info.uint32_audio_play_cost,i.msg_device_info.uint32_audio_play_cost)/c):delete i.msg_device_info.uint32_audio_play_cost,d&&t.receiverStats.forEach(e=>{if(e.audio.concealedSamples&&e.audio.totalSamplesReceived){let t=d.receiverStats.find(t=>t.userId===e.userId);if(t&&t.audio.concealedSamples&&t.audio.totalSamplesReceived){let i=(e.audio.silentConcealedSamples||0)-(t.audio.silentConcealedSamples||0),r=e.audio.concealedSamples-t.audio.concealedSamples,n=e.audio.totalSamplesReceived-t.audio.totalSamplesReceived,o=Math.floor((r-i)/n*1e3*c);if(o>1e3*c/5){let t=p.find(t=>t.msg_user_info.str_identifier===e.userId);t&&(t.msg_audio_status.uint32_audio_block_time=o)}}}}),i}getStatsReport(e){return Yb(this,arguments,function(e){var t=this;let{uplinkConnection:i,downlinkConnections:r,freezeMap:n}=e;return function*(){let e={msg_device_info:{},msg_up_stream_info:{msg_audio_status:{uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_capture_energy_after3a:0},msg_video_status:[],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}},msg_down_stream_info:[{msg_user_info:{str_identifier:"",uint64_tinyid:0},msg_audio_status:{uint32_audio_cache_ms:0,uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_total_bitrate:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_final_lost:0},msg_video_status:[{uint32_video_cache_ms:0,uint32_video_stream_type:0,uint32_video_receive_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_codec_bitrate:0,uint32_video_receive:0,uint32_video_origin_lost:0,uint32_video_block_time:0,uint32_video_dec_fps:0}],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}}]},o=yield t.getStats(i,r);return"{}"===JSON.stringify(t._prevReport)&&(t._prevReport=JSON.parse(JSON.stringify(e))),t.prepareReport({stats:o,report:e,freezeMap:n}),t._prevReportTime=Date.now(),e}()})}reset(){this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map}},$j=Jb(Xb());function eJ(e){return new Promise(t=>Yb(null,null,function*(){let i=setTimeout(()=>{t({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})},1e4),r=Date.now(),n="https://".concat(e,"/?t=").concat(r);try{yield fetch(n)}catch(Ik){}clearTimeout(i);let o=function(e){let t={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let i=performance.getEntriesByType("resource").reverse();for(let r of i)if(r.name===e){let e=Math.round(r.duration),i=Math.max(Math.round(r.domainLookupStart-r.startTime),0),n=r.redirectStart>0?Math.max(Math.round(r.redirectEnd-r.redirectStart),0):0,o=r.fetchStart>0?Math.max(Math.round(r.domainLookupStart-r.fetchStart),0):0,s=Math.round(r.domainLookupEnd-r.domainLookupStart),a=Math.round(r.requestStart-r.secureConnectionStart),c=Math.round(r.secureConnectionStart-r.connectStart),l=Math.round(r.responseStart-r.requestStart),d=Math.round(r.responseEnd-(r.responseStart||r.startTime));t=Wb(Hb({},t),{totalCost:e,local:i,redirect:n,httpCache:o,dns:s,tcp:c,tls:a,request:l,response:d});break}}catch(i){}return t}(n);0===o.totalCost&&(o.totalCost=Date.now()-r),t(o)}))}var tJ=class e extends $j.default{constructor(e){let{signalChannel:t,room:i}=e;super(),qb(this,"_room"),qb(this,"_signalChannel"),qb(this,"_log"),qb(this,"uplinkRTT",0),qb(this,"uplinkLoss",0),qb(this,"downlinkRTT",0),qb(this,"downlinkLoss",0),qb(this,"pingResults",{}),qb(this,"_downlinkPrevStatMap",new Map),qb(this,"_downlinkLossAndRTTMap",new Map),qb(this,"_interval",-1),qb(this,"_uplinkNetworkQuality",0),qb(this,"_downlinkNetworkQuality",0),this._room=i,this._signalChannel=t,this._log=JM.createLogger({id:"q",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this.initialize()}get uplinkNetworkQuality(){return this._uplinkNetworkQuality}set uplinkNetworkQuality(e){e!==this._uplinkNetworkQuality&&this._log.info("uplink ".concat(this.uplinkNetworkQuality," -> ").concat(e,", rtt: ").concat(this.uplinkRTT,", loss: ").concat(this.uplinkLoss," ws-rtt: ").concat(this._signalChannel.rtt)),this._uplinkNetworkQuality=e}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:t,loss:i}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info("downlink ".concat(this.downlinkNetworkQuality," -> ").concat(e,", rtt: ").concat(t,", loss: ").concat(i," ws-rtt: ").concat(this._signalChannel.rtt))}this._downlinkNetworkQuality=e}initialize(){this._signalChannel.on(tj.UPLINK_NETWORK_STATS,e=>{this.handleUplinkNetworkQuality(e)}),this._signalChannel.on(qG,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var t,i;if(0!==e.data.code)return;let r=e.data.data;if(r.delay&&this.updateDelay(r.delay),this._room.signalChannel&&r.wsRtt&&(this._room.signalChannel.rtt=r.wsRtt),!this._room.uplinkConnection)return this.uplinkNetworkQuality=0,this.uplinkLoss=0,void(this.uplinkRTT=0);let n=null==(i=null==(t=this._room)?void 0:t.uplinkConnection)?void 0:i.getPeerConnection();if(n&&this.isPeerConnectionDisconnected(n))return this.uplinkNetworkQuality=6,this.uplinkLoss=0,void(this.uplinkRTT=0);let o=r.expectAudPkg+r.expectVidPkg,s=r.recvAudPkg+r.recvVidPkg,a=o-s;0===o&&0===s||(this.uplinkLoss=a<=0?0:Math.round(a/o*100),this.uplinkRTT=r.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return Yb(this,null,function*(){if(0===this._room.remotePublishedUserMap.size)return void(this.downlinkNetworkQuality=0);let e=[...this._room.remotePublishedUserMap.values()],t=e.filter(e=>{var t;return(null==(t=e.getPeerConnection())?void 0:t.connectionState)===vD.CONNECTED});if(e.filter(e=>this.isPeerConnectionDisconnected(e.getPeerConnection())).length===e.length)return void(this.downlinkNetworkQuality=6);for(let n=0;n<t.length;n++){let e=t[n].getPeerConnection();if(!e)return;let{rtt:i,totalPacketsLost:r,totalPacketsReceived:o}=yield this.getStat(e);if(!this._downlinkPrevStatMap.has(e)){this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:o});continue}let s=0,a=this._downlinkPrevStatMap.get(e),c=r-a.totalPacketsLost,l=o-a.totalPacketsReceived;s=c<=0||l<0?0:Math.round(c/(c+l)*100),this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:o}),this._downlinkLossAndRTTMap.set(e,{rtt:i,loss:s,userId:t[n].getUserId(),audioDelay:t[n].remoteAudioTrack.stat.end2EndDelay,videoDelay:t[n].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach(e=>{this.isPeerConnectionDisconnected(e)&&(this._downlinkPrevStatMap.delete(e),this._downlinkLossAndRTTMap.delete(e))}),0===this._downlinkLossAndRTTMap.size)return this.downlinkRTT=0,this.downlinkLoss=0,void(this.downlinkNetworkQuality=0);let{rtt:i,loss:r}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=i,this.downlinkLoss=r,this.downlinkNetworkQuality=this.getNetworkQuality(r,i)})}getStat(e){return Yb(this,null,function*(){let t={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!jL())return t;let i=e.getReceivers();try{for(let e=0;e<i.length;e++)(yield i[e].getStats()).forEach(e=>{"candidate-pair"===e.type&&Bw(e.currentRoundTripTime)&&(t.rtt=Math.round(1e3*e.currentRoundTripTime)),"inbound-rtp"===e.type&&(e.mediaType===Xk.AUDIO||e.mediaType===Xk.VIDEO)&&(t.totalPacketsLost+=e.packetsLost,t.totalPacketsReceived+=e.packetsReceived)});return 0===t.rtt&&(t.rtt=this.uplinkRTT),t}catch(nP){return t}})}getAverageLossAndRTT(e){let t={rtt:0,loss:0};return Array.isArray(e)&&e.length>0&&(e.forEach(e=>{t.rtt+=e.rtt,t.loss+=e.loss}),Object.keys(t).forEach(i=>{t[i]=Math.round(t[i]/e.length)})),t}getNetworkQuality(e,t){return e>50||t>500?5:e>30||t>350?4:e>20||t>200?3:e>10||t>100?2:e>=0||t>=0?1:0}handleSignalConnectionStateChange(e){"DISCONNECTED"===e.state?(this.uplinkRTT=0,this.uplinkLoss=0,this.uplinkNetworkQuality=6):"CONNECTED"===e.state&&6===this.uplinkNetworkQuality&&(this.uplinkNetworkQuality=5)}handleUplinkConnectionStateChange(e){let{state:t}=e;"DISCONNECTED"===t?(this.uplinkLoss=0,this.uplinkRTT=0,this.uplinkNetworkQuality=6):"CONNECTED"===t&&6===this.uplinkNetworkQuality&&(this.uplinkNetworkQuality=5)}isPeerConnectionDisconnected(e){return!(!e||e.connectionState!==vD.DISCONNECTED&&e.connectionState!==vD.FAILED&&e.connectionState!==vD.CLOSED)}setUplinkConnection(e){this._room.uplinkConnection=e,this._room.uplinkConnection?this._room.uplinkConnection.on("connection-state-changed",this.handleUplinkConnectionStateChange.bind(this)):(this.uplinkNetworkQuality=0,this.uplinkRTT=0,this.uplinkLoss=0)}start(){-1===this._interval?(this._log.debug("start network quality calculating"),this._interval=Vx.run("ric",()=>{var t;this.handleDownlinkNetworkQuality();let i=[...this._downlinkLossAndRTTMap.values()];BM.emit(WM.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:i});let r=null==(t=this._room.scheduleResult.config)?void 0:t.pingDomainInfo,n={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};r&&(n=Wb(Hb({},n),{pingResults:this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold?this.pingResults:{}})),this.emit(e.EVENT_NETWORK_QUALITY,n);let o=Date.now();if(r&&(this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold)&&o-e.lastPingTime>1e3*r.interval){e.lastPingTime=Date.now();let t=r.domain.map(e=>eJ(e).then(t=>({domain:e,cost:t.totalCost})));Promise.all(t).then(e=>{this.pingResults.isPoorNetwork=e.some(e=>e.cost>700),this.pingResults.timestamp=o,this.pingResults.data=e,e.forEach(e=>{_L.addSuccessEvent({key:521718,cost:e.cost})}),this._log.warn("All ping results: ".concat(JSON.stringify(e)))}).catch(e=>{this._log.warn("Error during pinging domains: ".concat(e))})}},{delay:2e3})):this._log.info("network quality calculating is already started")}stop(){this._log.debug("stopped"),-1!==this._interval&&(Vx.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:t}=this._room;e.forEach(e=>{let{srcTinyId:i,videoDelay:r,audioDelay:n}=e,o=t.get(i);if(o){let e=this._room.remotePublishedUserMap.get(o);null==e||e.setDelay({videoDelay:r,audioDelay:n})}})}};qb(tJ,"EVENT_NETWORK_QUALITY","0"),qb(tJ,"lastPingTime",0);var iJ=tJ;var rJ=class{constructor(e){qb(this,"_frameWorkType"),qb(this,"_component"),qb(this,"_language"),qb(this,"connectionType"),qb(this,"_room"),qb(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0}),qb(this,"_keyPrefix"),qb(this,"_log"),qb(this,"_intervalId"),qb(this,"_firstPublishedUserList"),qb(this,"_networkQuality"),qb(this,"_basicInfo"),qb(this,"_pathJoinRoom"),qb(this,"_pathLeaveRoom"),qb(this,"_pathMainVideoMap"),qb(this,"_pathMainAudioMap"),qb(this,"_pathAuxiliaryMap"),qb(this,"_remoteStreamStatMap"),qb(this,"_localStreamStat"),qb(this,"_eventMap",new Map),qb(this,"_captureCostSum",0),qb(this,"_captureCostCount",0),qb(this,"isDestroyed",!1),this._frameWorkType=e.frameWorkType||30,this._component=e.component||0,this.connectionType=e.connectionType||1,this._language=e.language||0,this._room=e.room,this._keyPrefix="key_point",this._log=JM.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Vw(this[e])&&(this[e]=function(e){let{fn:t,context:i}=e;return function(){try{for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];let o=t.apply(i,r);return Kw(o)?o.catch(e=>JM.error("".concat(t.name,"() error observed ").concat(e))):o}catch(AD){JM.error("".concat(t.name,"() error observed ").concat(AD))}}}({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:vk,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:"live"===this._room.scene?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,wM().then(e=>{this._basicInfo.string_os_version=VM(),this._basicInfo.string_device_name=e&&e.mobile?e.model:this._basicInfo.string_os_version})}addEvent(e,t){return this._eventMap.set(e,t),BM.on(e,t),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(WM.JOIN_START,this.handleJoinStart).addEvent(WM.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(WM.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(WM.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(WM.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(WM.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(WM.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(WM.JOIN_FAILED,this.handleJoinFailed).addEvent(WM.LEAVE_START,this.handleLeaveStart).addEvent(WM.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(WM.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(WM.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(WM.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(WM.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(WM.PUBLISH_START,this.handlePublishStart).addEvent(WM.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(WM.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(WM.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(WM.PLAY_TRACK_START,this.handlePlayStart).addEvent(WM.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(WM.PLAYER_STATE_CHANGED,e=>{let{track:t,state:i,type:r}=e;!t.isRemote||!this.hitTest(t.room)||"PLAYING"===i&&(r===Xk.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(WM.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(WM.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(WM.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(WM.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(WM.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(WM.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(WM.REMOTE_PUBLISH_STATE_CHANGED,e=>{let{room:t,prevMuteState:i,muteState:r}=e;if(!this.hitTest(t))return;let n=i.hasAudio||i.hasVideo||i.hasSmall,o=i.hasAuxiliary,s=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!n&&s&&this.handleRemoteStreamAdded(r.userId,"main"),!o&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(WM.SINGLE_CONNECTION_STAT,e=>{let{room:t,stat:i}=e;this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=i.ice,this._pathJoinRoom.int32_dtls_cost=i.dtls,this._pathJoinRoom.int32_peer_connection_cost=i.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((e,t)=>BM.off(t,e)),this._eventMap.clear()}destroy(){this.uninstallEvents(),Vx.clearTask(this._intervalId),0===this._pathJoinRoom.uint64_start_time&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(e){this.hitTest(e.room)&&(0===this._pathJoinRoom.uint64_start_time&&(this._pathJoinRoom.uint64_start_time=Date.now()),e.params&&(Uw(e.params.frameWorkType)||(this._frameWorkType=e.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),Uw(e.params.component)||(this._component=e.params.component,this._basicInfo.uint32_component=this._component),Uw(e.params.language)||(this._language=e.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess(e){let{room:t,detailCost:i}=e;if(this.hitTest(t)&&i){let{totalCost:e,local:t,dns:r,tcp:n,tls:o,request:s,response:a}=i;this._pathJoinRoom.int32_schedule_cost=e,this._pathJoinRoom.int32_schedule_local=t,this._pathJoinRoom.int32_schedule_dns=r,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=o,this._pathJoinRoom.int32_schedule_request=s,this._pathJoinRoom.int32_schedule_response=a}}handleSignalConnectionStart(e){let{room:t}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd(e){let{room:t,error:i}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),i&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=i instanceof lk?Number(i.getExtraCode()||i.getCode()):ak.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=e.code,0!==e.code&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_end_time&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=e.room.getSignalInfo())}handleJoinFailed(e){let{room:t,error:i}=e;this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),0===this._pathJoinRoom.int32_end_ret&&(this._pathJoinRoom.int32_end_ret=i.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_recv_userlist_time&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=e.publishedUserList||[])}handleSendFirstVideoFrame(e){let{room:t}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_first_video_frame_time&&0!==this._pathJoinRoom.uint64_start_time&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(e){this.hitTest(e.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(e){this.hitTest(e.room)&&0===this._pathLeaveRoom.uint64_end_time&&(this._pathLeaveRoom.uint64_end_time=Date.now(),0!==this._pathJoinRoom.uint64_end_time?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(e){this.hitTest(e.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(e){if(this.hitTest(e.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(e){let{room:t}=e;if(this.hitTest(t)&&0===this._pathJoinRoom.uint64_end_time){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(e){let{room:t,error:i}=e;if(this.hitTest(t)){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,i&&(this._pathJoinRoom.int32_end_ret=i instanceof lk?Number(i.getExtraCode()||i.getCode()):ak.UNKNOWN)}}handleRemoteStreamAdded(e,t){var i;let r="".concat(e,"_").concat(t);if(!this._remoteStreamStatMap.has(r)){let n={userId:e,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:Wb(Hb({},oJ),{msg_user_info:new sJ({userId:e,tinyId:null==(i=this._room.remotePublishedUserMap.get(e))?void 0:i.tinyId,role:20})})};n.statsToReport.uint32_stream_type="main"===t?2:7,this._remoteStreamStatMap.set(r,n)}}handleSubscribeStart(e){let{room:t,remotePublishedUser:i,streamType:r,subscribeState:n}=e;if(!this.hitTest(t))return;let{userId:o,tinyId:s,role:a}=i,c=new sJ({userId:o,tinyId:s,role:"anchor"===a?20:21}),l=Date.now(),d="".concat(o,"_").concat(r),u=this._remoteStreamStatMap.get(d);u&&0===u.subscribeStartTime&&(u.subscribeStartTime=l),"main"===r?(i.muteState.hasVideo&&(n.video||n.smallVideo)&&!this._pathMainVideoMap.has(d)&&this._pathMainVideoMap.set(d,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:o,sendSubscribeCMDTime:l}),i.muteState.hasAudio&&n.audio&&!this._pathMainAudioMap.has(d)&&this._pathMainAudioMap.set(d,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:o,sendSubscribeCMDTime:l})):i.muteState.hasAuxiliary&&n.auxiliary&&!this._pathAuxiliaryMap.has(d)&&this._pathAuxiliaryMap.set(d,{sendSubscribeCMDTime:l})}handleSubscribed(e){let{room:t,remotePublishedUser:i,streamType:r}=e;if(this.hitTest(t)){let e="".concat(i.userId,"_").concat(r),t=this._remoteStreamStatMap.get(e);t&&0===t.subscribedTime&&(t.subscribedTime=Date.now())}}handlePlayStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room))return;let i="".concat(t.userId,"_").concat(t.streamType),r=this._remoteStreamStatMap.get(i);0===(null==r?void 0:r.playStreamTime)&&(r.playStreamTime=Date.now())}handleVideoLoadedData(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room))return;let i="".concat(t.userId,"_").concat(t.streamType),r=this._pathMainVideoMap.get(i);r&&0===r.statsToReport.uint64_combine_first_frame_time&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),i=Date.now(),r=this._pathMainVideoMap.get(t),n=this._remoteStreamStatMap.get(t);if(n){let{statsToReport:t}=n;if(t.uint32_video_render_first||"main"!==e.streamType?this.hasAuxFlag(e.userId):this.hasVideoFlag(e.userId)){let e=i-this._pathJoinRoom.uint64_start_time;t.uint32_video_render_first=e,_L.addNumber({key:516820,value:e})}}0===(null==r?void 0:r.statsToReport.uint64_render_first_frame_time)&&(r.statsToReport.uint64_render_first_frame_time=i)}handleAudioPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),i=this._pathMainAudioMap.get(t);i&&0===i.statsToReport.uint64_play_first_frame_time&&(i.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(e){this.hitTest(e.room)&&(this._networkQuality.totalUplinkLoss+=e.uplink.loss,this._networkQuality.totalUplinkRTT+=e.uplink.rtt,this._networkQuality.count++,e.downlinks.forEach(e=>{let{rtt:t,loss:i,userId:r,videoDelay:n,audioDelay:o}=e,s=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(s)s.totalRTT+=t,s.totalLoss+=i,n&&(s.totalVideoDelay=(s.totalVideoDelay||0)+n,s.videoDelayCount=(s.videoDelayCount||0)+1),o&&(s.totalAudioDelay=(s.totalAudioDelay||0)+o,s.audioDelayCount=(s.audioDelayCount||0)+1),s.count++;else{let e,s,a,c;n&&(s=n,a=1),o&&(e=o,c=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(r,{totalRTT:t,totalLoss:i,count:1,totalAudioDelay:e,totalVideoDelay:s,audioDelayCount:c,videoDelayCount:a})}}))}handleHeartbeatStats(e){if(this.hitTest(e.room)){let{msg_device_info:t,msg_up_stream_info:i,msg_down_stream_info:r}=e.report;if(i.msg_video_status[0]){let{uint32_video_codec_bitrate:e,uint32_video_enc_fps:t,uint32_video_width:r,uint32_video_height:n}=i.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=e,this._localStreamStat.totalVideoFPS+=t,this._localStreamStat.totalVideoWidth+=r,this._localStreamStat.totalVideoHeight+=n,this._localStreamStat.videoCount++}if(i.msg_audio_status){let{uint32_audio_level:e}=i.msg_audio_status;Math.floor(e/HP*100)>0&&(this._localStreamStat.totalAudioLevel+=e/HP,this._localStreamStat.audioLevelCount++)}r.forEach(e=>{let{msg_user_info:t,msg_audio_status:i,msg_video_status:r}=e,n=t.str_identifier,o=this._room.remotePublishedUserMap.get(n);if(r.forEach(e=>{let t=2===e.uint32_video_stream_type,i=7===e.uint32_video_stream_type,r="".concat(n,"_").concat(t?"main":"auxiliary"),s=this._remoteStreamStatMap.get(r);if(s&&(t&&null!=o&&o.remoteVideoTrack.isSubscribed||i&&null!=o&&o.remoteAuxiliaryTrack)){s.totalVideoFPS+=e.uint32_video_receive_fps,s.totalVideoBitrate+=e.uint32_video_codec_bitrate,s.videoCount++,0===s.statsToReport.uint32_video_width&&(s.statsToReport.uint32_video_width=e.uint32_video_width),0===s.statsToReport.uint32_video_height&&(s.statsToReport.uint32_video_height=e.uint32_video_height);let i=t?o.remoteVideoTrack:o.remoteAuxiliaryTrack;i.stat.jitterBufferDelay&&(s.videoJitterBufferDelay=i.stat.jitterBufferDelay),i.stat.framesReceived&&(s.statsToReport.uint32_video_consume_render_rate=Math.floor(i.stat.framesDecoded/i.stat.framesReceived*Fb(10,6)))}}),!iN(i)){let e="".concat(n,"_main"),t=this._remoteStreamStatMap.get(e);this._remoteStreamStatMap.has(e)&&t&&null!=o&&o.remoteAudioTrack.isSubscribed&&(t.totalAudioBitrate+=i.uint32_audio_codec_bitrate,t.audioCount++,o.remoteAudioTrack.stat.jitterBufferDelay&&(t.audioJitterBufferDelay=o.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(i.uint32_audio_level/HP*100)>0&&(t.totalAudioLevel+=i.uint32_audio_level/HP,t.audioLevelCount++))}}),t.uint32_audio_capture_cost&&(this._captureCostSum+=t.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(e){let{room:t}=e;this.hitTest(t)&&0===this._localStreamStat.publishStartTime&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart(e){let{track:t}=e;1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess(e){let{track:t}=e;1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed(e){let{track:t,error:i}=e,r={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[i.name]||(i instanceof lk?i.getExtraCode()||i.getCode():ak.UNKNOWN);1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=r,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=r,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(e){return this._firstPublishedUserList.findIndex(t=>t.userId===e&&t.flag&eD)>=0}hasAudioFlag(e){return this._firstPublishedUserList.findIndex(t=>t.userId===e&&t.flag&rD)>=0}hasAuxFlag(e){return this._firstPublishedUserList.findIndex(t=>t.userId===e&&t.flag&iD)>=0}hitTest(e){return e===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 e=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),t=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=e<<16|t}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((e,t)=>{let{userId:i}=e,r=this._networkQuality.totalDownlinkRTTAndLossMap.get(i);if(r){let{totalLoss:t,count:i,audioDelayCount:n,videoDelayCount:o,totalAudioDelay:s,totalVideoDelay:a}=r;e.statsToReport.uint32_avg_down_loss=Math.floor(t/i),n&&s&&(e.statsToReport.uint32_audio_network_p2p_delay=Math.floor(s/n),e.audioJitterBufferDelay&&(e.statsToReport.uint32_p2p_delay=Math.floor(e.statsToReport.uint32_audio_network_p2p_delay+e.audioJitterBufferDelay))),o&&a&&(e.statsToReport.uint32_video_network_p2p_delay=Math.floor(a/o))}e.videoCount>0&&(e.statsToReport.uint32_video_avg_fps=Math.floor(e.totalVideoFPS/e.videoCount),e.statsToReport.uint32_video_avg_bitrate=Math.floor(e.totalVideoBitrate/e.videoCount)),e.audioCount>0&&(e.statsToReport.uint32_audio_recv_bitrate=e.statsToReport.uint32_audio_bitrate=Math.floor(e.totalAudioBitrate/e.audioCount)),e.audioLevelCount>0&&(e.statsToReport.uint32_audio_play_db=Math.floor(e.totalAudioLevel/e.audioLevelCount*100));let{callDurationCalculator:n}=this._room;n&&(e.statsToReport.uint32_audio_play_time=n.getDuration(t,Xk.AUDIO),e.statsToReport.uint32_video_play_time=n.getDuration(t,Xk.VIDEO)),e.statsToReport.uint32_video_render_first&&(e.statsToReport.uint32_video_render_first=Math.min(e.statsToReport.uint32_video_render_first,nJ));let{badCaseDetector:o}=this._room,{dataFreeze:s,count:a}=o.getDataFreezeDuration(t),{renderFreeze:c}=o.getRenderFreezeDuration(t);e.statsToReport.uint32_video_block_count=a,e.statsToReport.uint32_video_block_time=Math.min(s,e.statsToReport.uint32_video_play_time),e.statsToReport.uint32_video_external_block_time=Math.min(c,e.statsToReport.uint32_video_play_time),o.isBlackStream(t)&&0===e.statsToReport.uint32_video_avg_fps?e.statsToReport.uint32_video_black_screen_subjective=1:e.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((e,t)=>{this.hasAudioFlag(e.userId)?e.statsToReport.uint64_play_first_frame_time-e.statsToReport.uint64_start_enter_time>nJ&&(e.statsToReport.uint64_play_first_frame_time=e.statsToReport.uint64_start_enter_time+nJ):this._pathMainAudioMap.delete(t)}),this._pathMainVideoMap.forEach((e,t)=>{this.hasVideoFlag(e.userId)?e.statsToReport.uint64_render_first_frame_time-e.statsToReport.uint64_start_enter_time>nJ&&(e.statsToReport.uint64_render_first_frame_time=e.statsToReport.uint64_start_enter_time+nJ):this._pathMainVideoMap.delete(t)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>nJ&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+nJ)}getReportData(){this._basicInfo.uint32_networkType=Rw();let e={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new sJ({userId:this._room.userId,tinyId:this._room.tinyId,role:"anchor"===this._room.role?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:oN(this._signalInfo.relayIp),uint32_client_ip:oN(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Fb(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:oN(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return gN(e),e}report(){return Yb(this,null,function*(){try{this.prepareReport();let e=this.getReportData();yield this.upload(e),this.initData()}catch($M){this._log.warn($M)}finally{this.isDestroyed&&(this._room=null)}})}upload(e){return Yb(this,null,function*(){if(0===e.msg_path_enter_room.uint64_start_time)return;let t=Number(this._room.sdkAppId),i=GM.enable?bN(e,2001,t):yield xN(e),r=i instanceof ArrayBuffer,n="".concat(vw(t,Uk.KEY_POINT),"&gzip=").concat(+r),o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(n,i));let s=[this.uploadKVStat(_L),this.uploadKVStat(mL)];o||s.push(LN({url:n,body:i,priority:"low"})),yield Promise.all(s)})}setConnectionType(e){this.connectionType=e,this._basicInfo.uint32_connection_type=e}uploadKVStat(e){return Yb(this,null,function*(){let t=e.getReportData();if(0===t.stats_count.length&&0===t.stats_distribution.length)return;t.msg_sdk_basic_info=Wb(Hb({},t.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(t);let i=GM.enable?bN(t,2003,this._room.sdkAppId):yield xN(t),r=i instanceof ArrayBuffer,n="".concat(vw(+this._room.sdkAppId,Uk.KV_STAT),"&gzip=").concat(+r),o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(n,i)),o||LN({url:n,body:i})})}};Kb([Jx({settings:{timeout:500,retries:3}})],rJ.prototype,"upload",1);var nJ=5e3,oJ={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},sJ=class{constructor(e){qb(this,"str_identifier"),qb(this,"str_tinyid"),qb(this,"uint32_role"),this.str_identifier=String(e.userId),this.str_tinyid=String(e.tinyId||0),this.uint32_role=e.role}},aJ=rJ,cJ=class{constructor(){qb(this,"_startTime"),qb(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){0===this._startTime&&(this._startTime=Zw())}stop(){0===this._endTime&&(this._endTime=Zw())}getDuration(){return 0===this._endTime?Zw()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},lJ=class{constructor(e){qb(this,"_room",null),qb(this,"_durationMap"),qb(this,"_eventMap",new Map),this._room=e.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(WM.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(WM.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(WM.REMOTE_PUBLISH_STATE_CHANGED,e=>{let{room:t,prevMuteState:i,muteState:r}=e;var n;let{userId:o}=r;if(!this.hitTest(t))return;i.hasAudio&&!r.hasAudio&&this.stopDurationItem("".concat(o,"_main"),Xk.AUDIO),i.hasVideo&&!r.hasVideo&&this.stopDurationItem("".concat(o,"_main"),Xk.VIDEO),i.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem("".concat(o,"_auxiliary"),Xk.VIDEO);let s=null==(n=this._room)?void 0:n.remotePublishedUserMap.get(o);s&&(!i.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,Xk.AUDIO,"main"),!i.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,Xk.VIDEO,"main"),!i.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,Xk.VIDEO,"auxiliary"))}),this._eventMap.forEach((e,t)=>BM.on(t,e,this))}uninstallEvents(){this._eventMap.forEach((e,t)=>BM.off(t,e,this)),this._eventMap.clear()}handleSubscribed(e){let{track:t}=e;if(!this.hitTest(t.room))return;let{userId:i,streamType:r,kind:n}=t;t.isSubscribed?this.addDuractionItem(i,n,r):this.stopDurationItem("".concat(i,"_").concat(r),n)}handleUnsubscribed(e){let{track:t}=e;this.hitTest(t.room)&&this.stopDurationItem("".concat(t.userId,"_").concat(t.streamType),t.kind)}isRecording(e){return e.findIndex(e=>0===e.endTime)>=0}addDuractionItem(e,t,i){let r="".concat(e,"_").concat(i),n=new cJ,o=this._durationMap.get(r);o?this.isRecording(o[t])||o[t].push(n):this._durationMap.set(r,{userId:e,type:i,audio:t===Xk.AUDIO?[n]:[],video:t===Xk.AUDIO?[]:[n]})}stopDurationItem(e,t){if(this._durationMap.has(e)){let i=this._durationMap.get(e)[t].find(e=>0===e.endTime);i&&i.stop()}}hitTest(e){return this._room===e}getDuration(e,t){return this._durationMap.has(e)?this._durationMap.get(e)[t].reduce((e,t)=>e+t.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},dJ=class{constructor(e){qb(this,"_room"),qb(this,"_renderFreezeMap",new Map),qb(this,"_isVideoPlayingEventFiredMap",new Map),qb(this,"_dataFreezeMap",new Map),qb(this,"_monitorFreezeData",new Map),qb(this,"_eventMap",new Map),this._room=e.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(WM.LEAVE_SUCCESS,e=>{let{room:t}=e;this.hitTest(t)&&this.stop()}).set(WM.PLAY_TRACK_START,this.onPlayTrackStart).set(WM.UNSUBSCRIBE_SUCCESS,e=>{let{room:t,streamType:i,remotePublishedUser:r}=e;if(!this.hitTest(t))return;let{userId:n}=r,o="".concat(n,"_").concat(i);this.stopDataFreeze({key:o,userId:n,type:i})}).set(WM.REMOTE_PUBLISH_STATE_CHANGED,e=>{let{room:t,prevMuteState:i,muteState:r}=e;if(!this.hitTest(t))return;let{userId:n}=r;if(i.hasVideo&&!r.hasVideo){let e="main",t="".concat(r.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:n,type:e})}if(i.hasAuxiliary&&!r.hasAuxiliary){let e="auxiliary",t="".concat(r.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:n,type:e})}}).set(WM.PLAYER_STATE_CHANGED,e=>{let{track:t,state:i,reason:r,type:n}=e;if(t.isRemote&&t.room&&this.hitTest(t.room)&&n===Xk.VIDEO){if("PLAYING"===i){let e="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.set(e,!0)}r===Xk.MUTE?this.onVideoTrackMuted(t):r===Xk.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(WM.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((e,t)=>BM.on(t,e,this))}uninstallEvents(){this._eventMap.forEach((e,t)=>BM.off(t,e,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(e){if(!e.isSubscribed)return;let{userId:t,streamType:i}=e,r="".concat(t,"_").concat(i),n=this._dataFreezeMap.get(r),o=new cJ;n?n.durationItemList.push(o):this._dataFreezeMap.set(r,{userId:t,type:i,durationItemList:[o],isFreezing(){let e=this.durationItemList[this.durationItemList.length-1];return e&&0===e.endTime}})}onVideoTrackUnmuted(e){if(!e.isSubscribed)return;let{userId:t,streamType:i}=e,r="".concat(t,"_").concat(i);this.stopDataFreeze({key:r,userId:t,type:i})}onHearBeatReport(e){let{room:t,report:i}=e;this.hitTest(t)&&i.msg_down_stream_info.forEach(e=>{let t=this._room.remotePublishedUserMap.get(e.msg_user_info.str_identifier);if(!t)return;let{userId:i,muteState:r}=t;e.msg_video_status.forEach(e=>{2===e.uint32_video_stream_type&&r.hasVideo&&!r.videoMuted&&t.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:i,fps:e.uint32_video_dec_fps,type:"main"}),7===e.uint32_video_stream_type&&r.hasAuxiliary&&t.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:i,fps:e.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze(e){let{key:t,userId:i,type:r}=e,n=this._dataFreezeMap.get(t);if(!n||!n.isFreezing())return;let o=n.durationItemList[n.durationItemList.length-1];o.stop();let s=o.getDuration();s>PD?this._monitorFreezeData.set(t,{userId:i,type:r,duration:s}):n.durationItemList.pop()}getTotalDuration(e){return e.reduce((e,t)=>{let i=t.getDuration();return e+Math.min(i,5e3)},0)}handleRenderFreeze(e){return Yb(this,arguments,function(e){var t=this;let{userId:i,fps:r,type:n}=e;return function*(){let e="".concat(i,"_").concat(n),o=t._renderFreezeMap.get(e);if(r<=2){let r=Zw();o&&!o.isFreeze&&(o.freezeTimeline.push({startTime:r,endTime:0}),o.isFreeze=!0),o||t._renderFreezeMap.set(e,{userId:i,type:n,isFreeze:!0,freezeTimeline:[{startTime:r,endTime:0}],renderFreezeTotal:0})}else if(o&&o.isFreeze){o.isFreeze=!1;let e=o.freezeTimeline.pop();if(e){e.endTime=Zw();let t=e.endTime-e.startTime;o.freezeTimeline.push(e),o.renderFreezeTotal+=Math.min(5e3,t)}}}()})}onPlayTrackStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room)||t.kind!==Xk.VIDEO||!t.isRemotePublished)return;let i="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.has(i)||this._isVideoPlayingEventFiredMap.set(i,!1)}getDataFreezeDuration(e){let t={dataFreeze:0,count:0},i=this._dataFreezeMap.get(e);if(i){if(i.isFreezing()){let e=i.durationItemList[i.durationItemList.length-1];e.stop(),e.getDuration()<PD&&i.durationItemList.pop()}t.dataFreeze=this.getTotalDuration(i.durationItemList),t.count=i.durationItemList.length}return t}getRenderFreezeDuration(e){let t=this._renderFreezeMap.get(e),i=0,r=0;if(t)if(t.isFreeze){let e=Zw()-t.freezeTimeline[t.freezeTimeline.length-1].startTime;i=t.renderFreezeTotal+Math.min(e,5e3),r=t.freezeTimeline.length}else i=t.renderFreezeTotal;return{renderFreeze:i,count:r}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(e){return!!this._isVideoPlayingEventFiredMap.has(e)&&!this._isVideoPlayingEventFiredMap.get(e)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(e){return e===this._room}destroy(){this.uninstallEvents()}},uJ=Jb(Xb(),1),hJ=class{constructor(e,t,i,r){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:4/3;this.vbMode=e,this.faceDetectorHash=t,this.visionTaskRegistry=i,this.logger=r,qb(this,"animationState"),qb(this,"originalAspect"),qb(this,"totalOffsetX",0),qb(this,"totalOffsetY",0),qb(this,"defaultScaleRatio",.1),qb(this,"isRecovering",!1),qb(this,"boundaryY",280),qb(this,"lastActionTime",0),qb(this,"restTime",400),this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3}addEvent(e,t,i){let r=[{key:570704,error:null!=i?i:t?void 0:11},{key:570705,error:null!=i?i:t?void 0:22}][e-1];r&&(t?_L.addSuccessEvent({key:r.key}):_L.addFailedEvent({key:r.key,error:r.error}))}actionCentering(e){let t=Date.now();if(this.animation(),!this.faceDetectorHash||t-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:i,videoHeight:r}=e;this.animationState.debounceThreshold=i/30,this.animationState.movementThreshold=i/20,this.boundaryY=.6*r;try{let e=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(e.detections.length<=0)return void(1===this.vbMode&&this.recoverOriginal(i,r));let t=e.detections[0].boundingBox,n=t.originX,o=t.originY,s=t.width,a=t.height;1===this.vbMode?this.dualStageCropping(i,r,n,o,s,a):2===this.vbMode&&this.movingPortrait(i,r,n,o,s,a)}catch(nP){this.logger.error(nP)}this.lastActionTime=t}calculateBoundary(e,t,i,r){let n,o;return e>t/2?(n=t-i-r,o=i-n):(n=i,o=0),{min:n,offset:o}}calculateTargetPosition(e,t,i,r,n,o){let s,a,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.4,l=e+i/2,d=t+r/2,{min:u,offset:h}=this.calculateBoundary(l,n,e,i),{min:p,offset:m}=this.calculateBoundary(d,o,t,r);return s=2*u+i,a=2*p+r,s/a>this.originalAspect?(s=a*this.originalAspect,h=l-s/2):(a=s/this.originalAspect,m=d-a/2),i/n>c&&(h=0,m=0,s=n,a=o),h=Math.max(0,Math.min(h,n-s)),m=Math.max(0,Math.min(m,o-a)),{sx:h,sy:m,cropWidth:s,cropHeight:a,timestamp:Date.now()}}processFacePositionCrop(e,t,i){if(!this.animationState.current||!this.animationState.target){let e={sx:0,sy:0,cropWidth:t,cropHeight:i,timestamp:Date.now()};return this.animationState.current=e,void(this.animationState.target=e)}let r=this.positionDistance(this.animationState.target,e),n=this.positionDistance(this.animationState.current,e),o=this.animationState.current.cropWidth/t;r>this.animationState.debounceThreshold*o&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&n>this.animationState.movementThreshold*o&&(this.animationState.target=e,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(e){if(!this.animationState.current||!this.animationState.target)return this.animationState.current=Hb({},e),void(this.animationState.target=Hb({},e));let t=this.positionDistance(this.animationState.current,e),i=this.positionDistance(this.animationState.target,e);t>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&i>this.animationState.movementThreshold&&(this.animationState.current=e,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let e=Date.now()-this.animationState.startTime,t=Math.min(e/this.animationState.duration,1),i=e=>e<.5?2*e*e:(4-2*e)*e-1;if(this.animationState.current&&this.animationState.target){let e=(this.animationState.target.sx-this.animationState.current.sx)*i(t);this.animationState.current.sx+=e,this.totalOffsetX+=e;let r=(this.animationState.target.sy-this.animationState.current.sy)*i(t);if(this.animationState.current.sy+=r,this.totalOffsetY+=r,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*i(t),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*i(t),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*i(t)),Bw(this.animationState.current.scaleOffsetX)&&Bw(this.animationState.target.scaleOffsetX)&&Bw(this.animationState.current.scaleOffsetY)&&Bw(this.animationState.target.scaleOffsetY)){let e=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*i(t);this.animationState.current.scaleOffsetX+=e;let r=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*i(t);this.animationState.current.scaleOffsetY+=r}}t>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(e,t){return Math.sqrt(Fb(e.sx-t.sx,2)+Fb(e.sy-t.sy,2))}recoverOriginal(e,t){this.animationState.target={sx:0,sy:0,cropWidth:e,cropHeight:t,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(e,t,i,r,n,o){let s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.3;if(this.isRecovering)return;let a=this.calculateTargetPosition(i,r,n,o,e,t);this.processFacePositionCrop(a,e,t),n*o/a.cropWidth/a.cropHeight>s&&this.recoverOriginal(e,t)}movingPortrait(e,t,i,r,n,o){var s,a,c,l,d,u,h,p,m,_,f,g;let E={sx:i+n/2+this.totalOffsetX,sy:r+o/2+this.totalOffsetY,cropWidth:e,cropHeight:t,scaleRatio:null!=(a=null==(s=this.animationState.current)?void 0:s.scaleRatio)?a:1,scaleOffsetX:null!=(l=null==(c=this.animationState.current)?void 0:c.scaleOffsetX)?l:0,scaleOffsetY:null!=(u=null==(d=this.animationState.current)?void 0:d.scaleOffsetY)?u:0,timestamp:Date.now()};this.animationState.target={sx:e/2,sy:r+o/2,cropWidth:e,cropHeight:t,scaleRatio:null!=(p=null==(h=this.animationState.target)?void 0:h.scaleRatio)?p:1,scaleOffsetX:null!=(_=null==(m=this.animationState.target)?void 0:m.scaleOffsetX)?_:0,scaleOffsetY:null!=(g=null==(f=this.animationState.target)?void 0:f.scaleOffsetY)?g:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(n*o/e/t/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=1-this.animationState.target.scaleRatio,(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(E)}set aspectRatio(e){this.originalAspect=e}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}},pJ=class extends uH{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:t.width,height:t.height,logger:e.log}),qb(this,"_bgTexture"),qb(this,"_waterMarkTexture"),qb(this,"_lastMaskTexture"),qb(this,"_lastMaskFbo"),qb(this,"_textureValid",!1),qb(this,"_selfieTextureValid",!1),qb(this,"_selfieSegmentationHash"),qb(this,"wasm"),qb(this,"predictReady"),qb(this,"_color"),qb(this,"_prePrograme"),qb(this,"_segmentationMask"),qb(this,"_weixin",!1),qb(this,"_centerFace"),qb(this,"_textureMatrixLocation"),qb(this,"_offsetMatrixLocation"),qb(this,"_colorLocation"),qb(this,"_enableFaceCentering",!1),qb(this,"_enableEffectOptimization",!1),qb(this,"_mat4"),qb(this,"_postProcessing"),qb(this,"_onAbort"),qb(this,"_visionTaskRegistry"),qb(this,"resolvePreditReady"),this.init(t).catch(t=>{e.log.error(t),e.destroy(new lk({code:ak.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(t.message||t)})),this.resolvePreditReady()})}init(e){return Yb(this,null,function*(){var t,i,r;this.predictReady=new Promise(e=>{this.resolvePreditReady=e});let n=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=null!=(t=e.enableFaceCentering)&&t,this._enableEffectOptimization=null!=(i=e.enableEffectOptimization)&&i,this.wasm=new n.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode="blur"===e.bg?1:e.bg instanceof HTMLImageElement?2:"color"===e.bg?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:t,y:i,width:r,height:n}=e.waterMark;this.wasm.setWaterMark(t,i,r,n)}if(e.beautyParams){let{beauty:t,brightness:i,ruddy:r}=e.beautyParams;this.wasm.setBeauty(t,i,r,null==e?void 0:e.width,null==e?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 e=this.context.createShader(o.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\nuniform sampler2D u_texture;\nuniform sampler2D mask;\n\nin vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {\n outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);\n}"),t=this.context.createShader(o.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}");this._prePrograme=this.context.createProgram(t,e),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(2===this.wasm.vbMode||3===this.wasm.vbMode)&&(null==(r=this._postProcessing)||r.init(o,this.positionBuffer,this.texCoordBuffer,4/3)),yield this.initVisionTasks(e)})}initVisionTasks(e){return Yb(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 e=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!e)return;this._centerFace=new hJ(this.wasm.vbMode,e,this._visionTaskRegistry,this.context.log)}catch(AD){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let t=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let i=this.getMaskTexture(e);if(!i)return;let r=i;this._enableEffectOptimization&&this._postProcessing&&(2===this.wasm.vbMode||3===this.wasm.vbMode)&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,r=this._postProcessing.postProcessing(i)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,r||null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),3===this.wasm.vbMode&&t.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),IN(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),t.viewport(0,0,t.canvas.width,t.canvas.height),t.drawArrays(t.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 t=this.context.ctx,{image:i}=this;this.tryVideoFrameCallback();let{videoWidth:r,videoHeight:n}=i;if(IN(this.wasm.rotation)&&!this._visionTaskRegistry&&([r,n]=[n,r]),0===r||0===n||!this.available)return!1;i.width=r,i.height=n;let o=!1;if(this.totalFrames)this.useTexture(),o=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),o=this._textureValid,this._textureValid=!0}if(this.width===r&&this.height===n&&o?t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,i):(this.resize(r,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)),this._weixin){if(t.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let e=this.getMaskTexture(this._segmentationMask);t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,e||null),t.bindFramebuffer(t.FRAMEBUFFER,this._lastMaskFbo||null)}t.drawArrays(t.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?t.copyTexSubImage2D(t.TEXTURE_2D,0,0,0,0,0,r,n):t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,0,0,r,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let e=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);1===this.totalFrames&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(e)}}catch(rP){this._onAbort&&this._onAbort(rP)}return this.totalFrames||(t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),t.drawArrays(t.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:t,offset:i}=this._centerFace;if(t&&(1===this.wasm.vbMode&&this.drawImage(t.sx,t.sy,t.cropWidth,t.cropHeight),i&&2===this.wasm.vbMode)){if(!this._mat4)return;let r=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:o=0,scaleOffsetY:s=0}=t;this._mat4.fromTranslation(r,[-i.offsetX/e.canvas.width+o,s,0]),this._mat4.scale(r,r,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,r)}}drawImage(e,t,i,r){let n=this.context.ctx;if(!this._mat4)return;let{width:o,height:s}=n.canvas,a=this._mat4.create();this._mat4.fromTranslation(a,[e/o,1-(t+r)/s,0]),this._mat4.scale(a,a,[i/o,r/s,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,a)}close(){var e;super.close();let t=this.context.ctx;this._bgTexture&&t.deleteTexture(this._bgTexture),this._waterMarkTexture&&t.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&t.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&t.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&t.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),null==(e=this.wasm)||e.close()}},mJ=class extends iH{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:"\n precision highp float;\n uniform sampler2D ySampler;\n uniform sampler2D uSampler;\n uniform sampler2D vSampler;\n varying highp vec2 textureCoord;\n const mat4 YUV2RGB = mat4(\n 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n void main() {\n vec3 yuv;\n yuv.r = texture2D(ySampler, textureCoord).r;\n yuv.g = texture2D(uSampler, textureCoord).r;\n yuv.b = texture2D(vSampler, textureCoord).r;\n gl_FragColor = vec4(yuv,1) * YUV2RGB;\n }\n ",vertexShaderSource:"\n attribute vec4 vertexPos;\n attribute vec2 texturePos;\n varying vec2 textureCoord;\n void main() {\n gl_Position = vertexPos;\n textureCoord = texturePos;\n }"}),qb(this,"yTextureRef"),qb(this,"uTextureRef"),qb(this,"vTextureRef"),qb(this,"Y"),qb(this,"U"),qb(this,"V"),this.useProgram();let t=this.context.ctx;t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.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,t){let i=this.context.ctx,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),i.uniform1i(i.getUniformLocation(this.program,e),t),r}render(e){let t=this.context.ctx,i=this.width,r=this.height;return this.useProgram(),t.viewport(0,0,i,r),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.yTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i,r,t.LUMINANCE,t.UNSIGNED_BYTE,this.Y),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.uTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i/2,r/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.U),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this.vTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i/2,r/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,t){super.resize(e,t);let i=this.context.ctx;i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,this.yTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,null),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,this.uTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,null),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,this.vTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,null)}},_J=[e=>{e.codec="avc1.42e01f"},e=>{delete e.hardwareAcceleration}],fJ=(e,t)=>{switch(e){case"webCodecs":return"videoFrame"===t?514705:514706;case"wasm":return"webgl"===t?514707:"videoFrame"===t?514708:514709}throw new Error("decoder type not supported")};var gJ=0,EJ=class{constructor(e){qb(this,"id",gJ++),qb(this,"trackDoneOB"),qb(this,"startOB"),qb(this,"stopOB"),qb(this,"decoder"),qb(this,"videoContext"),qb(this,"gop",0),qb(this,"gop_helper",0),qb(this,"waitFirstKeyFrame",!0),qb(this,"startTimestamp",0),qb(this,"startTime",0),qb(this,"startPerformanceTime",0),qb(this,"inputFrameCount",0),qb(this,"decodedFrameCount",0),qb(this,"decodeFrameCount",0),qb(this,"downgradeLevel",0),qb(this,"lastDowngradeTime",0),qb(this,"lastFrameDiff",0),qb(this,"lastDecodeFrameTimestamp",0),qb(this,"config"),qb(this,"gop_before_configure",[]),qb(this,"videoElement"),qb(this,"type","wasm"),qb(this,"goodType"),qb(this,"renderer","2d"),qb(this,"wasmOption"),qb(this,"createDecoder"),qb(this,"_decodeSink"),qb(this,"isReported",!1),qb(this,"track"),qb(this,"stateChangeOB"),qb(this,"failedReason");let{track:t,createDecoder:i}=e;if(this.stateChangeOB=rF(),this.track=t,this.createDecoder=i,this.wasmOption={yuvMode:"webgl"===e.renderer,wasmPath:e.wasmPath,workerMode:e.workerMode,canvas:e.canvas},this.config=e.config,this.videoElement=e.videoElement,this.renderer=e.renderer,this.trackDoneOB=fF(t.availableState,Nx.OFF),this.stopOB=rF(),"auto"===e.type){switch(e.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="webgl"===this.renderer}else this.type=e.type;this.changeRenderer(this.renderer),xU(this.stateChangeOB,sB((e,i)=>(e!==i&&t.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:e,state:i}),i),"INITIALIZED"),UF(this.stopOB),FB()),this.start()}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let t=xU(this.pipe(this.track),UF(this.stopOB),jU());xU(t,FB(()=>{this.track.stat.framesDecoded++},t=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(t," retryCount: ").concat(e)),_L.addFailedEvent({key:fJ(this.type,this.renderer),error:t}),e>4)this.failedReason=t,this.stateChangeOB.next("FAILED"),_L.addFailedEvent({key:514704});else{if(this.goodType)return void this.start(e);switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":if("webgl"===this.renderer)this.changeRenderer("videoFrame")}this.start(e+1)}},()=>{this.track.log.warn("".concat(this.id," decoderOB completed")),_L.addSuccessEvent({key:fJ(this.type,this.renderer)}),_L.addSuccessEvent({key:514704})})),xU(t,VF(1),FB(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(e){this._decodeSink?this._decodeSink.error(e):this.start()}close(e){this.stopOB.next(e)}changeRenderer(e){this.renderer=e,"videoFrame"===this.renderer&&!AL()&&(this.renderer="2d"),this.wasmOption.yuvMode="webgl"===this.renderer}decode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i,r;if(this.failedReason)return;this.inputFrameCount++;let n=new Uint8Array(e.data);if(0!==(o=n)[0]||0!==o[1]||0!==o[2]||1!==o[3]||n.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(n.subarray(0,5))),e;var o;let s=!1;switch(31&n[4]){case 5:case 7:s=!0}if("configured"!==(null==(i=this.decoder)?void 0:i.state))return this.track.log.debug("not configured ".concat(this.inputFrameCount)),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:e.data,timestamp:e.timestamp,type:e.type}),e;this.gop_before_configure.length>0&&!t&&(this.gop_before_configure.forEach(e=>this.decode(e,!0)),this.gop_before_configure=[]);let{timestamp:a}=e;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!s)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount," ").concat(n.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=a,this.startTime=Date.now(),this.startPerformanceTime=Zw()}switch(this.downgradeLevel){case 0: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}return(this.decodeFrameCount<10||this.decodeFrameCount%500==0)&&this.track.log.debug("decode ".concat(this.decodeFrameCount," gop: ").concat(this.gop," ").concat(a," ").concat(null==(r=e.getMetadata)?void 0:r.call(e).rtpTimestamp)),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=a,void this.decoder.decode({data:e.data,type:e.type,timestamp:this.lastDecodeFrameTimestamp})}return e}checkDowngradeByFrameDiff(){let e=this.downgradeLevel,t=this.decodeFrameCount-this.decodedFrameCount;t>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):t<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug("downgrade level ".concat(e," to ").concat(this.downgradeLevel," ").concat(this.decodeFrameCount," frameDiff: ").concat(t,", lastFrameDiff: ").concat(this.lastFrameDiff)),this.lastFrameDiff=t,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(e){let t=this.downgradeLevel;this.lastDecodeFrameTimestamp-e>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug("downgrade level ".concat(t," to ").concat(this.downgradeLevel))}pipe(e){return t=>Yb(this,null,function*(){this._decodeSink=t;let i,r=e.mediaTrack;t.defer(()=>{var t;r&&(e.player.setCanvas(),e.setInputMediaStreamTrack(r)),null==i||i.close(),null==(t=this.videoContext)||t.destroy(),delete this._decodeSink});let{renderer:n,type:o}=this;e.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(o){case"wasm":i=this.createDecoder(o,this.wasmOption);break;case"webCodecs":for(let e=0;e<=_J.length;e++){let{supported:i}=yield VideoDecoder.isConfigSupported(this.config);if(i)break;if(e===_J.length)return void t.error(3);_J[e](this.config)}i=this.createDecoder(o);break;default:throw new Error("not supported yet")}let r=0;if(i.on("videoFrame",i=>{this.decodedFrameCount++,r++,(r<=10||r%500==0)&&e.log.debug("frame ".concat(r," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(i.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&("webCodecs"===this.type?this.checkDowngradeByFrameDiff():"wasm"===this.type&&this.checkDowngradeByTimestampDiff(i.timestamp)),t.next(i)}),i.on("error",i=>{e.log.error(i),t.error("webCodecs"===o?4:8)}),yield i.initialize(this.videoElement),!this._decodeSink)return;if(i.configure(this.config),"wasm"===o&&"webgl"===n){this.videoContext=new fH({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create(),this.videoContext.on(fH.UNAVAILABLE,i=>{e.log.error(i),t.error(7)});let r=new mJ(this.videoContext);i.on("videoCodecInfo",e=>r.resize(e.width,e.height)),i.on("videoFrame",e=>{({y:r.Y,u:r.U,v:r.V}=e),1===this.downgradeLevel?this.decodedFrameCount%2==0&&r.render(this.decodedFrameCount):r.render(this.decodedFrameCount)}),e.source=r,e.player.setCanvas(this.videoContext._canvas,2)}else if("videoFrame"===n){e.player.setCanvas();let t=new MediaStreamTrackGenerator({kind:"video"}),r=t.writable.getWriter();e.setInputMediaStreamTrack(t),i.on("videoFrame",e=>r.write(e))}else{this.videoContext=new gH({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create({alpha:!1});let r=this.videoContext.createVideoImageSource();i.on("videoFrame",i=>{try{r.image=i,r.update()}catch(n){delete this.goodType,e.log.error(n),t.error(11)}});let n=new oH(this.videoContext,{name:"remotePlayer",logger:e.log});r.connect(n),e.source=r,e.player.setCanvas(this.videoContext._canvas,2)}this.decoder=i}catch(eP){e.log.error(eP),t.error("webCodecs"===o?2:6)}})}},TJ=class extends uJ.EventEmitter{constructor(e){super(),this.room=e,qb(this,"videoContext"),qb(this,"_glVideoContext"),qb(this,"_2dVideoContext"),qb(this,"destination"),qb(this,"smallVideoContext"),qb(this,"smallDestination"),qb(this,"smallTrackSource"),qb(this,"smallImageSource"),qb(this,"_isMirror",!1),qb(this,"_rotation",0),qb(this,"cameraTrack"),qb(this,"cameraNode"),qb(this,"transformNode"),qb(this,"mixNode"),qb(this,"screenTrack"),qb(this,"screenNode"),qb(this,"selfModel",!1),qb(this,"blurRadius",3),qb(this,"arTrack"),qb(this,"_enableFaceCentering",!1),qb(this,"_enableEffectOptimization",!1),qb(this,"onAbort"),qb(this,"_color"),qb(this,"Wasm"),qb(this,"waterMarkNode"),qb(this,"_waterMarkOption"),qb(this,"watermarkImageList",[]),qb(this,"_beautyParams"),qb(this,"isUsingArTrack",!1),qb(this,"mixTrack"),qb(this,"_isMixScreen",!1),qb(this,"_virtualBackground"),qb(this,"_virtualBackgroundAbortCallback"),qb(this,"virtualBackgroundInstance"),qb(this,"_bgAssetPath"),qb(this,"log",JM.createLogger({id:"vm"})),qb(this,"_mat4"),qb(this,"_postProcessing"),qb(this,"_checkId",0),qb(this,"_use2d",!1),qb(this,"_autoSwitchRenderMode",!0),qb(this,"encodePipeline",[]),qb(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new gH({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return(null==(e=this.room)?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return 0!==this._rotation}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode="auto"===e,this._autoSwitchRenderMode)return;let t="2d"===e;this._use2d!==t&&(this._use2d=t,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var e;let{width:t,height:i}=(null==(e=this.cameraTrack)?void 0:e.settings)||{};return IN(this._rotation)?{width:i,height:t}:{width:t,height:i}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new gH({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(this._glVideoContext){if(this._glVideoContext.available)return this._glVideoContext}else this._glVideoContext=new fH({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(fH.UNAVAILABLE,e=>{var t;this.emit("error",e),this.log.warn("video context unavailable",e),null==(t=this._virtualBackgroundAbortCallback)||t.call(this,e),this.update().catch(e=>{this.log.error(e)})})}catch(Sk){this.emit("error",Sk)}}initVirtualBackground(e,t,i){this.onAbort=e,this._mat4=t,this._postProcessing=i}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=Vx.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,t;null==(e=this._2dVideoContext)||e.destroy(),null==(t=this._glVideoContext)||t.destroy(),this.smallVideoContext.destroy(),Vx.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(uM||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(){let e=arguments.length>1?arguments[1]:void 0,t="videoCtxGl"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"videoCtxGl")?512700:512701;e?_L.addFailedEvent({key:t,error:e}):_L.addSuccessEvent({key:t})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let t=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else{if(!t)return!0;if(!this._use2d)return!0;this.clear()}}else{if(this._glVideoContext=new fH({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 null==(e=this.smallDestination)?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return null==(e=this.cameraTrack)?void 0:e.mediaTrack}setSmallVideo(e,t){if("api"!==this.smallMode)if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new cH(this.smallVideoContext,e,this.log),this.smallVideoContext.on(fH.UNAVAILABLE,e=>{this.log.warn("small video context lost",e)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,t)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=t:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(t),this.smallImageSource.resize(t.width,t.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:e,height:t}=this.cameraTrack.settings;this.smallTrackSource.resize(e,t),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var t;try{let i=this.cameraTrack,{small:r,player:n}=i;uM&&n.setCanvas(e);let o=e&&(null==(t=this.destination)?void 0:t.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),o=this.arTrack),this.log.info("set main output ".concat(o?o.label:"no output track")),this.setSmallVideo(r,e),i.setOutputMediaStreamTrack(o)}catch(tP){this.log.error("set main output failed",tP)}}update(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Yb(this,null,function*(){var t;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:i,profile:r}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(iH.RENDER,e=>{var t;null==(t=this.cameraTrack)||t.emit("render",e)})),16===gM?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof uH?(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 uH?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(i.width,i.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 aH(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(iH.RENDER,e=>{var t;null==(t=this.cameraTrack)||t.emit("render",e)}));let{width:e,height:t}=this.cameraResolution,i=yield this.getWatermarkImage(e,t);this._waterMarkOption={x:0,y:0,width:i.width,height:i.height,image:i},this.cameraNode=new pJ(this.videoContext,{input:this.initialTrack,width:e,height:t,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=r.frameRate,this._use2d){let e=this.cameraNode;if(e.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new SH(this.videoContext,this.log,this._isMirror,this._rotation),e=e.connect(this.transformNode),e.disconnect(),this.log.info("start mirror ".concat(this._isMirror," rotate ").concat(this.rotation))),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new vH(this.videoContext,this.log),e.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:e,height:t}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(e,t),e&&t&&this.waterMarkNode.resize(e,t)}null==(t=this.waterMarkNode)||t.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})),e=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))}e.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext._canvas)})}clearLastFrame(){var e;this.destination&&(null==(e=this.destination.ctx2d)||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var t,i,r,n,o;if(e instanceof CH)return this.log.info("change screen input",null==(t=e.mediaTrack)?void 0:t.label),this.setScreenTrack(e);if(e instanceof QB)return this.log.info("change video input",null==(i=e.mediaTrack)?void 0:i.label),this.setCameraTrack(e);if(e instanceof LH){this.log.info("change remote input",null==(r=e.mediaTrack)?void 0:r.label);let t=e.mediaTrack;return e.setOutputMediaStreamTrack(t)}if(e instanceof IH)return this.log.info("change mix input",null==(n=e.outMediaTrack)?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",null==(o=e.mediaTrack)?void 0:o.label)}removeInput(e){var t;e instanceof CH?(null==(t=this.screenNode)||t.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof QB?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 LH?e.source&&e.source.context.destroy():e instanceof IH&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return Yb(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,t){return Yb(this,null,function*(){let i=document.createElement("canvas");t&&e&&(i.height=t,i.width=e);let r=i.getContext("2d");if(!r)throw new lk({code:ak.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((e,t)=>e.zIndex-t.zIndex),this.watermarkImageList.forEach(e=>{let{image:t,x:i,y:n,width:o,height:s}=e;r.drawImage(t,i,n,o,s)}),_N(i.toDataURL())})}pushWaterMarkImageList(e){let{type:t}=e;this.watermarkImageList.some(t=>t.imageUrl===e.imageUrl&&t.height===e.height&&t.width===e.width&&t.x===e.x&&t.y===e.y&&t.type===e.type&&t.zIndex===e.zIndex)||(("mute"===t||"watermark"===t)&&(this.watermarkImageList=this.watermarkImageList.filter(e=>e.type!==t)),this.watermarkImageList.push(e))}setBeautyParams(e){return Yb(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return Yb(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return Yb(this,null,function*(){let t;try{t=yield _N((null==e?void 0:e.imageElement)||e.imageUrl)}catch(c){throw new lk({code:ak.INVALID_PARAMETER,message:"load image failed, url: ".concat(e.imageUrl)})}let{x:i=0,y:r=0,width:n=t.width,height:o=t.height,type:s="watermark",zIndex:a=2}=e;this.watermarkImageList.some(e=>e.type===s)?(this.watermarkImageList=this.watermarkImageList.filter(e=>e.type!==s),this.pushWaterMarkImageList({x:i,y:r,width:n,height:o,image:t,zIndex:a,type:s,imageUrl:e.imageUrl}),t=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:t.width,height:t.height,image:t},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(t.width,t.height),this.waterMarkNode.image=t):this.update()):(this.pushWaterMarkImageList({x:i,y:r,width:n,height:o,image:t,zIndex:a,type:s,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(e,t)=>"imageUrl"===e?void 0:t))})}deleteWatermark(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"watermark";return Yb(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(t=>t.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(e,t)=>"imageUrl"===e?void 0:t)),yield this.freshWatermark()})}freshWatermark(){return Yb(this,null,function*(){var e;null==(e=this.waterMarkNode)||e.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:t,height:i}=this.cameraResolution,r=yield this.getWatermarkImage(t,i);this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.update()})}setVirtualBackground(e){return Yb(this,null,function*(){var t,i,r;if(e){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,"image"===e.type?this._virtualBackground=yield _N(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=null!=(t=e.enableFaceCentering)?t:this._enableFaceCentering,this._enableEffectOptimization=null!=(i=e.enableEffectOptimization)?i:this._enableEffectOptimization,this._color=null!=(r=e.color)?r:[0,1,0]}else delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;if(this.log.info("".concat(this._virtualBackground?"start":"stop"," virtual background, ").concat((null==e?void 0:e.type)||"",", ").concat(this.blurRadius||"")),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new lk({code:ak.INVALID_OPERATION,message:"webgl context create failed, ".concat(this._glVideoContext.error)})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var t;this._isMixScreen=e,this._isMixScreen||(null==(t=this.screenNode)||t.close(),delete this.screenNode),this.update()}set mirror(e){var t;this._isMirror!==e&&(this._isMirror=e,this._isTransform||(null==(t=this.transformNode)||t.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var t;this._rotation!==e&&(this._rotation=e,this._isTransform||(null==(t=this.transformNode)||t.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return Yb(this,null,function*(){var e;null!=(e=this.cameraTrack)&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,null==(e=this.arTrack)||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new EJ(e)}clear(){var e,t;null==(e=this.videoContext)||e.disconnect(),null==(t=this.destination)||t.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor(e){let{processor:t,type:i}=e;var r;this.encodePipeline.includes(t)||(this.encodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:i}=e;var r;this.decodePipeline.includes(t)||(this.decodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}};Kb([mU(function(e){this.log.error("update failed",e)})],TJ.prototype,"update",1);var vJ=0,yJ=class extends Nx{constructor(e){super("room"),qb(this,"seq",++vJ),qb(this,"sdkAppId"),qb(this,"userId"),qb(this,"userSig"),qb(this,"privateMapKey"),qb(this,"latencyLevel"),qb(this,"tinyId"),qb(this,"scene"),qb(this,"roomId"),qb(this,"useStringRoomId"),qb(this,"role","anchor"),qb(this,"joinParams",null),qb(this,"localPublishFlag",0),qb(this,"localTracks",new Set),qb(this,"enableAutoPlayDialog",!0),qb(this,"autoReceiveAudio",!0),qb(this,"autoReceiveVideo",!0),qb(this,"proxy_ws"),qb(this,"proxy_wt"),qb(this,"proxy_unified"),qb(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}}),qb(this,"keyPointManager"),qb(this,"audioManager"),qb(this,"videoManager"),qb(this,"callDurationCalculator"),qb(this,"badCaseDetector"),qb(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),qb(this,"videoDecodeFallbackType"),qb(this,"smallMode","canvas"),qb(this,"enableChorus",!1),qb(this,"_isUsingCachedSchedule",!1),qb(this,"_log",JM.createLogger({id:"r".concat(this.seq)})),qb(this,"_joinedTimestamp",0),qb(this,"_sdkType"),qb(this,"heartbeatReport"),qb(this,"quality"),qb(this,"enableSEI"),qb(this,"isDestroyed",!1),this.useStringRoomId=!!e.useStringRoomId,Hw(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Hw(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Hw(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new aJ({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new lJ({room:this}),this.badCaseDetector=new dJ({room:this}),this.audioManager=new wH(this),this.videoManager=new TJ(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(4&e.mediaType)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(2&e.mediaType)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(4&e.mediaType)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(2&e.mediaType)return e;return null}getLogger(){return this._log}get isJoining(){return"joining"===this.state.toString()}get isJoined(){return"joined"===this.state}get isLeft(){return"left"===this.state}addTrack(e){return Yb(this,null,function*(){return this.publish(e)})}removeTrack(e){return Yb(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return Yb(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Fw(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Mw(e)){let{websocketProxy:t,webtransportProxy:i,loggerProxy:r,scheduleProxy:n,unifiedProxy:o}=e;this.proxy_ws=t,this.proxy_wt=i,this.proxy_unified=o,o?(MW([o,o]),kk("https://".concat(o))):(r&&kk(r),n&&MW(n))}BM.once(WM.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:OW.main,sched_back_domain:OW.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return Yb(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(t=>{e[t.userId]=t.remoteAudioTrack.stat}),e})}getTransportStats(){return Yb(this,null,function*(){var e;let t={rtt:(null==(e=this.quality)?void 0:e.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let i of this.quality.downlinkInfo)t.downlinksRTT[i.userId]=i.rtt;return t})}getRemoteVideoStats(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"main";return function*(){let i={};return e.remotePublishedUserMap.forEach(e=>{let r="auxiliary"===t?e.remoteAuxiliaryTrack:e.remoteVideoTrack;i[e.userId]=r.stat}),i}()})}checkDestroy(){if(this.isDestroyed)throw new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(tL.INVALID_DESTROY),new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.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,BM.emit(WM.ROOM_DESTROY,{room:this})}schedule(e,t){return Yb(this,null,function*(){var i,r,n,o;let s=Zw();try{let{isCached:a,result:c,detailCost:l}=yield NW({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:vk,userSig:this.userSig,role:"live"===this.scene?e.role:void 0,frameWorkType:t,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=a,this._log.info("schedule cache:".concat(+a," ").concat(uN(c,{keysToExclude:["username","credential"]}))),a&&BM.once(WM.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=Hb(Hb({},this.scheduleResult),c),Bw(null==(i=c.config)?void 0:i.retryCount)&&SD(c.config.retryCount),Fw(null==(r=c.config)?void 0:r.loggerDomain)&&kk(c.config.loggerDomain),this.videoDecodeFallbackType=(null==(n=c.config)?void 0:n.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=(null==(o=c.config)?void 0:o.smallMode)||this.smallMode,BM.emit(WM.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:l}),_L.addSuccessEvent({key:521700,cost:Zw()-s})}catch(QM){throw _L.addFailedEvent({key:521700,error:QM}),QM}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}},SJ=Jb(Xb()),IJ=Jb(nk());function AJ(e){var t;let i=[];for(let r=0;r<e.rtp.length;r++){if(["rtx","red","ulpfec"].includes(e.rtp[r].codec))continue;let n=e.fmtp.filter(t=>t.payload===e.rtp[r].payload)[0];i.push({payload:e.rtp[r].payload,codec:e.rtp[r].codec,fmtp:n?n.config:"",rate:e.rtp[r].rate,rtx:"rtx"===(null==(t=e.rtp[r+1])?void 0:t.codec)?e.rtp[r+1].payload:0,rtcpfb:((null==e?void 0:e.rtcpFb)||[]).filter(t=>t.payload===e.rtp[r].payload).map(e=>{let{type:t,subtype:i}=e;return{id:t,params:i?[i]:[]}})})}return i}var RJ=(e,t,i)=>Yb(null,null,function*(){var r;let n=jj(e),o={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:!1};o.ice.ufrag=String(n.media[0].iceUfrag),o.ice.password=n.media[0].icePwd||"",n.fingerprint&&(o.dtls.hash=n.fingerprint.type,o.dtls.fingerprint=n.fingerprint.hash,o.dtls.setup=n.setup||""),n.media[0].fingerprint&&(o.dtls.hash=n.media[0].fingerprint.type,o.dtls.fingerprint=n.media[0].fingerprint.hash),o.dtls.setup=n.media[0].setup||"";let s=n.media[0],a=n.media[1];s.ext&&(o.audio.extensions=s.ext.map(e=>({id:e.value,uri:e.uri}))),a.ext&&(o.video.extensions=a.ext.map(e=>({id:e.value,uri:e.uri})));let c={codec:s.rtp[0].codec,fmtp:s.fmtp[0].config,payload:s.fmtp[0].payload,rate:s.rtp[0].rate,channels:s.rtp[0].encoding,rtcpfb:[],rtx:0};null==(r=s.rtcpFb)||r.forEach(e=>{let{payload:t,type:i,subtype:r}=e;if(t===c.payload){let e={id:i,params:[]};r&&e.params.push(r),c.rtcpfb.push(e)}}),o.audio.codecs.push(c);let l=["h264","vp8","h265"];return t&&l.shift(),i&&l.pop(),o.video.codecs=[...AJ(a)].filter(e=>l.includes(e.codec.toLocaleLowerCase())),o.video.decoders=(yield function(){return Yb(this,null,function*(){let e=new RTCPeerConnection;e.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY});let t=yield e.createOffer();if(!t.sdp)return[];let i=AJ(jj(t.sdp).media[0]);return e.close(),i})}()).filter(e=>["h264","vp8","h265"].includes(e.codec.toLocaleLowerCase())),o}),CJ=e=>{let{serverAbility:t,clientAbility:i,offerSDP:r,enableCustomMessage:n}=e,o=jj(r),s={extmapAllowMixed:"extmap-allow-mixed",groups:o.groups,icelite:"ice-lite",media:[],msidSemantic:{semantic:"",token:"WMS"},name:"-",origin:{address:"127.0.0.1",username:"-",sessionId:String(Date.now()),sessionVersion:1,netType:"IN",ipVer:4},timing:{start:0,stop:0},version:0},a={candidates:t.candidates.map(e=>({component:1,foundation:"1",generation:0,ip:e.ip,port:e.port,priority:e.priority,transport:e.foundation,type:e.type})),connection:{version:4,ip:"0.0.0.0"},direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY,ext:t.audio.extensions.map(e=>({value:e.id,uri:e.uri})),fingerprint:{type:t.dtls.hash,hash:t.dtls.fingerprint},fmtp:[{payload:t.audio.codecs[0].payload,config:t.audio.codecs[0].fmtp}],icePwd:t.ice.password,iceUfrag:t.ice.ufrag,mid:"0",payloads:String(t.audio.codecs[0].payload),port:o.media[0].port,protocol:o.media[0].protocol,type:Xk.AUDIO,setup:t.dtls.setup,rtcpFb:t.audio.codecs[0].rtcpfb.map(e=>({payload:t.audio.codecs[0].payload,type:e.id,subtype:e.params[0]})),rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[{payload:t.audio.codecs[0].payload,codec:t.audio.codecs[0].codec,rate:t.audio.codecs[0].rate,encoding:t.audio.codecs[0].channels}]};return s.media.push(a),[1,2,3].forEach(e=>{s.media.push(bJ({mid:e,serverAbility:t,clientAbility:i,parsedOffer:o}))}),n&&s.media.push(o.media.find(e=>"dc"===e.mid)),Jj(s)},bJ=e=>{let{mid:t,serverAbility:i,clientAbility:r,parsedOffer:n,isDownlink:o=!1}=e,s={candidates:i.candidates.map(e=>({component:1,foundation:"1",generation:0,ip:e.ip,port:e.port,priority:e.priority,transport:e.foundation,type:e.type})),connection:{version:4,ip:"0.0.0.0"},direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY,ext:i.video.extensions.map(e=>({value:e.id,uri:e.uri})),fingerprint:{type:i.dtls.hash,hash:i.dtls.fingerprint},fmtp:[],icePwd:i.ice.password,iceUfrag:i.ice.ufrag,mid:String(t),payloads:"",port:n.media[0].port,protocol:n.media[0].protocol,type:Xk.VIDEO,setup:i.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(o){let e=i.video.decoders;(!e||0===e.length)&&(e=i.video.codecs),(!e||0===e.length)&&(e=r.video.decoders),e.forEach(e=>{kJ(s,e)})}else{let e;e=i.useH265?i.video.codecs.findIndex(e=>"h265"===e.codec.toLowerCase()):i.video.codecs.findIndex(e=>e.codec.toLowerCase()===(i.useVp8?"vp8":"h264"));let t=i.video.codecs[e]||r.video.codecs[0];kJ(s,t)}return s},kJ=(e,t)=>{e.payloads="".concat(e.payloads," ").concat(t.payload).trim(),e.fmtp.push({payload:t.payload,config:t.fmtp}),e.rtcpFb=[...e.rtcpFb||[],...t.rtcpfb.map(e=>({payload:t.payload,type:e.id,subtype:e.params[0]}))],e.rtp.push({payload:t.payload,codec:t.codec.toUpperCase(),rate:t.rate}),t.rtx&&(e.payloads="".concat(e.payloads," ").concat(t.rtx),e.fmtp.push({payload:t.rtx,config:"apt=".concat(t.payload)}),e.rtp.push({payload:t.rtx,codec:"rtx",rate:t.rate}))};var DJ=(e,t,i)=>{let r=IJ.default.parse(e);return r.media.forEach((e,n)=>{var o;if((e.type===Xk.AUDIO||e.type===Xk.VIDEO)&&(function(e){if(!e.rtcpFb)return;let t=[];e.rtcpFb.forEach((i,r)=>{var n;t.push(i),e.rtcpFb&&(null==(n=e.rtcpFb[r+1])?void 0:n.payload)!==i.payload&&"rrtr"!==i.type&&t.push({payload:i.payload,type:"rrtr"})}),e.rtcpFb=t}(e),function(e){e.type===Xk.VIDEO&&e.fmtp&&e.fmtp.forEach(e=>{e.config.includes("apt")||(e.config+=";sps-pps-idr-in-keyframe=1")})}(e),function(e){e.type===Xk.AUDIO&&e.fmtp&&e.fmtp.forEach(e=>{e.config+=";sprop-stereo=1;stereo=1"})}(e),function(e){let t=new Set(["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"]);e.ext&&(e.ext=e.ext.filter(e=>!t.has(e.uri)))}(e),e.type===Xk.VIDEO))if(n<4)e.payloads="",e.fmtp=[],e.rtp=[],e.rtcpFb=[],t.video.codecs.forEach(t=>kJ(e,t));else if(i){e.payloads="",e.fmtp=[],e.rtp=[],e.rtcpFb=[];let r=i.video.decoders;(!r||0===r.length)&&(r=i.video.codecs),(!r||0===r.length)&&(r=t.video.decoders),r.forEach(t=>kJ(e,t))}null!=(o=e.payloads)&&o.includes("datachannel")&&r.groups&&e.mid&&(r.groups[0].mids=r.groups[0].mids.replace(e.mid,"dc"),e.mid="dc")}),IJ.default.write(r)},wJ=Jb(Xb()),NJ=class extends wJ.EventEmitter{constructor(e){super(),this.room=e,qb(this,"mainFpsHealth",1),qb(this,"mainBitrateHealth",1),qb(this,"badMainBitrateHealthCount",0),qb(this,"lastEmitBadHealthTime",0),qb(this,"log"),!rO&&oM&&BM.on("262",this.onVideoCodecChanged,this),this.log=e.getLogger().createChild({id:"h-d"})}onVideoCodecChanged(e){let{remoteUserId:t,streamType:i,isHWCodec:r,codec:n}=e;if(!t&&7!==i&&"h264"===n){if(!r)return void this.room.off("heartbeat-report",this.onHeartbeatReport,this);this.room.listeners("heartbeat-report").includes(this.onHeartbeatReport)||this.room.on("heartbeat-report",this.onHeartbeatReport,this)}}onHeartbeatReport(e){Date.now()-this.lastEmitBadHealthTime<3e4||(e.msg_up_stream_info.msg_video_status.forEach(e=>{if(e.uint32_video_enc_fps&&e.uint32_video_capture_fps){let t=e.uint32_video_enc_fps/e.uint32_video_capture_fps;2===e.uint32_video_stream_type&&(this.mainFpsHealth=t)}if(e.uint32_video_codec_bitrate&&2===e.uint32_video_stream_type){let{localMainVideoTrack:t}=this.room;t&&(this.mainBitrateHealth=e.uint32_video_codec_bitrate/1e3/t.profile.bitrate)}}),this.log.debug("mainBitrateHealth: ".concat(this.mainBitrateHealth," mainFpsHealth: ").concat(this.mainFpsHealth)),this.mainBitrateHealth>.5&&(this.badMainBitrateHealthCount=0),this.mainFpsHealth>.9&&this.mainBitrateHealth<.5&&(this.badMainBitrateHealthCount++,this.badMainBitrateHealthCount>3&&(this.badMainBitrateHealthCount=0,this.lastEmitBadHealthTime=Date.now(),this.log.warn("bad main bitrate health: ".concat(this.mainBitrateHealth)),this.emit("1",{isAux:!1}))))}destroy(){BM.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};qb(NJ,"EVENT_BAD_HEALTH","bad_health");var OJ=NJ;function MJ(e){let{seiMessageList:t,isAudio:i,getNtpTime:r,isMain:n}=e;return new TransformStream({transform(e,o){let s=e;i?audioEncodePipeline.forEach(e=>{s=e({frame:s,ntp:r()})}):videoEncodePipeline.forEach(e=>{s=e({frame:s,seiMessageList:t,onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:s.data,userId:"",streamType:n?"main":"auxiliary"})}})}),o.enqueue(s)}})}function PJ(e){let{userId:t,streamType:i,isAudio:r}=e;return new TransformStream({transform(e,n){let o=e;r?(audioDecodePipeline.forEach(e=>{o=e({frame:o,onAudioFrameNTPTime:e=>{self.postMessage({type:"audio-ntp",data:e,userId:t,streamType:i})},onDump:()=>{self.postMessage({type:"dump",isAudio:r,data:o.data,userId:t,streamType:i})}})}),n.enqueue(o)):videoDecodePipeline.forEach(e=>{o=e({frame:o,onSEI:e=>{e.forEach(e=>{self.postMessage({type:"sei",seiPayloadType:e.seiPayloadType,data:e.seiPayload.buffer,userId:t,streamType:i})})}})}),n.enqueue(o)}})}var LJ=(e=>(e.TRACK="track",e.DATA_CHANNEL_MESSAGE="data_channel_msg",e[e.CONNECTION_STATE_CHANGED="connection-state-changed"]="CONNECTION_STATE_CHANGED",e[e.FIREWALL_RESTRICTION="firewall-restriction"]="FIREWALL_RESTRICTION",e.RECONNECTED="spc-reconnected",e.RECONNECT_FAILED="spc-reconnect-failed",e.ERROR="error",e.SEI_MESSAGE="sei-message",e.DUMP="dump",e))(LJ||{}),xJ=0,VJ=!1,UJ=new Set,FJ=1,BJ=class extends SJ.default{constructor(e){let{signalChannel:t,room:i,enableCustomMessage:r}=e;super(),qb(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),qb(this,"currentState","DISCONNECTED"),qb(this,"_room"),qb(this,"_signalChannel"),qb(this,"_peerConnection",null),qb(this,"_datachannel",null),qb(this,"_enableCustomMessage"),qb(this,"_log"),qb(this,"_downlinkMIDMap",new Map),qb(this,"_downlinkMIDUserIDMap",new Map),qb(this,"_reconnectionTimer",-1),qb(this,"reconnectionCount",0),qb(this,"clientAbility"),qb(this,"_serverAbility",null),qb(this,"addDownlinkQueue",new Set),qb(this,"removeDownlinkQueue",new Set),qb(this,"_parsedAnswer",null),qb(this,"_updateSDPPromise",null),qb(this,"_waitForPCConnectedPromise"),qb(this,"clearWaitForConnectedPromise"),qb(this,"clearConnectTimeout"),qb(this,"_isSDPLogged",!1),qb(this,"enableInsertableStreams",!1),qb(this,"insertableStreamsAbortMap",new Map),qb(this,"receiverRemoteTrackMap",new WeakMap),qb(this,"scriptTransformWorker"),qb(this,"_isRelayTried",!1),qb(this,"_rttOverCount",0),qb(this,"originOffer",null),qb(this,"autoSubscribedSsrcGroups",new Map),qb(this,"autoSubscribedUserMap",new Map),qb(this,"_h265DecodeFailed",!1),this._room=i,this._enableCustomMessage=r,this._signalChannel=t,this._log=JM.createLogger({id:"spc".concat(FJ++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(rx?this.enableInsertableStreams=!0:this.initScriptTransformWorker()),this._room.healthDetector.on("1",this.onBadHealth,this)}get isH264EncodeSupported(){let e=this._room.checkSystemResult.detail.isH264EncodeSupported;return this._serverAbility&&(e=e&&!!this._serverAbility.video.codecs.find(e=>"h264"===e.codec.toLowerCase())),e}addAbortController(e,t){var i;null==(i=this.insertableStreamsAbortMap.get(e))||i.abort("destory"),this.insertableStreamsAbortMap.set(e,t)}get isVP8EncodeSupported(){let e=this._room.checkSystemResult.detail.isVp8EncodeSupported;return this._serverAbility&&(e=e&&this._serverAbility.video.codecs.find(e=>"vp8"===e.codec.toLowerCase())),e}get isH265EncodeSupported(){let e=this._room.checkSystemResult.detail.isH265EncodeSupported;return this._serverAbility&&(e=e&&!!this._serverAbility.video.codecs.find(e=>"h265"===e.codec.toLowerCase())),e}get videoCodec(){var e,t,i;let r=null==(e=this._parsedAnswer)?void 0:e.media[1].rtp.find(e=>["h264","vp8","h265"].includes(e.codec.toLowerCase()));return r?r.codec.toLowerCase():null!=(t=this._serverAbility)&&t.useH265?"h265":null!=(i=this._serverAbility)&&i.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var e,t,i;return null!=(e=this._serverAbility)&&e.useH265&&null!=(t=this._serverAbility)&&t.video.decoders.find(e=>"h265"===e.codec.toLowerCase())&&!this._h265DecodeFailed?"h265":null!=(i=this._serverAbility)&&i.video.decoders.find(e=>"h264"===e.codec.toLowerCase())?"h264":"vp8"}get isUsingH264(){return"h264"===this.videoCodec}get isUsingH265(){return"h265"===this.videoCodec}get isUsingVP8(){return"vp8"===this.videoCodec}get is42001fSupported(){return!!this.clientAbility&&!!this.clientAbility.video.codecs.find(e=>e.fmtp.includes("42001f"))}get uplinkSSRC(){return this._peerConnection&&this._peerConnection.localDescription?(e=>{let t=jj(e),i={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return t.media.forEach((e,t)=>{var r;if(e.ssrcs&&!Uw(e.ssrcs[0].id)){let n=Number(e.ssrcs[0].id),o=Number(null==(r=e.ssrcs.filter(e=>"cname"===e.attribute)[1])?void 0:r.id);switch(t){case 0:i.audioSsrc=n;break;case 1:i.bigVideoSsrc=n,i.bigVideoRtxSsrc=o;break;case 2:i.smallVideoSsrc=n,i.smallVideoRtxSsrc=o;break;case 3:i.auxVideoSsrc=n,i.auxVideoRtxSsrc=o}}}),i})(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth(e){let{isAux:t}=e;this.useHWEncoder(!1,t?7:2)}initScriptTransformWorker(){nx&&(this.scriptTransformWorker=function(e){let t=[zB],i=[_G,pG,mG,hG,MJ,PJ,DN,kN],r="const videoEncodePipeline=[".concat(e.videoEncodePipeline.toString(),"];\n const videoDecodePipeline=[").concat(e.videoDecodePipeline.toString(),"];\n const audioEncodePipeline = [").concat(e.audioEncodePipeline.toString(),"];\n const audioDecodePipeline = [").concat(e.audioDecodePipeline.toString(),"];"),n="(()=>{".concat(t.map(e=>"const ".concat(e.name,"=(()=>").concat(e.toString(),")()")).join("\n"),"\n").concat(i.map(e=>e.toString()).join("\n"),";(").concat(()=>{let e=[],t=[],i=[],r=0;self.onmessage=n=>{switch(n.data.type){case"sei":n.data.isMain?(e.push(n.data.data),n.data.small&&i.push(n.data.data)):t.push(n.data.data);break;case"ntp-offset":r=n.data.data}},self.onrtctransform=n=>{let{options:o}=n.transformer,s=o.isReceiver?PJ({userId:o.userId,streamType:o.streamType,isAudio:o.isAudio}):MJ({getNtpTime:()=>Date.now()+r,isAudio:o.isAudio,isMain:o.isMain,seiMessageList:o.isMain?o.small?i:e:t});n.transformer.readable.pipeThrough(s).pipeTo(n.transformer.writable)}},")();").concat(r,"})()"),o=new Blob([n],{type:"text/javascript"}),s=URL.createObjectURL(o),a=new Worker(s);return URL.revokeObjectURL(s),a}({videoEncodePipeline:this._room.videoManager.encodePipeline,videoDecodePipeline:this._room.videoManager.decodePipeline,audioEncodePipeline:this._room.audioManager.encodePipeline,audioDecodePipeline:this._room.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=e=>{"sei"===e.data.type?this.emit("sei-message",e.data):e.data.type,"dump"===e.data.type&&this.emit("dump",e.data)},this.scriptTransformWorker.onerror=e=>{this._log.error("scriptTransformWorker error: ",e.message)})}get isReconnecting(){return"RECONNECTING"===this.currentState||this._reconnectionTimer>0||this.reconnectionCount>0}get dtlsTransport(){if(!this._peerConnection)return null;let e=this._peerConnection.getSenders();return 0===e.length?null:e[0].transport}getPeerConnectionConfig(e){var t;let i={encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:e,iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},r=null==(t=this._peerConnection)?void 0:t.getConfiguration().encodedInsertableStreams;return BN(r)&&(i.encodedInsertableStreams=r),this._log.debug("getPeerConnectionConfig",JSON.stringify(i)),i}initialize(e){return Yb(this,null,function*(){var t,i;let r;try{return this._peerConnection=new RTCPeerConnection(this.getPeerConnectionConfig(e)),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let e=this._peerConnection.iceConnectionState;this._log.debug("ice state: ".concat(e)),"checking"===e&&0===this.stat.iceStartTime?this.stat.iceStartTime=Date.now():"connected"===e&&0===this.stat.iceEndTime?(this.stat.iceEndTime=Date.now(),this._signalChannel.clearBakRelayIps(),_L.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):"failed"===e&&_L.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var e;let t=(null==(e=this._peerConnection)?void 0:e.signalingState)||"";this._log["closed"===t?"debug":"info"]("signaling state: ".concat(t))},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=e=>this.emit("track",e),this._enableCustomMessage&&(this._datachannel=this._peerConnection.createDataChannel("".concat(this._room.userId,"dc")),this._datachannel.binaryType="arraybuffer",this._datachannel.onopen=()=>{this._log.info("datachannel open")},this._datachannel.onclose=()=>{this._log.warn("datachannel close")},this._datachannel.onmessage=e=>{let t=new WJ(e.data);this.emit("data_channel_msg",{data:t})},this._datachannel.onerror=e=>{this._log.warn("datachannel error",e)}),this._peerConnection.addTransceiver(Xk.AUDIO,{direction:Xk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_SENDONLY}),r=yield this._peerConnection.createOffer(),this.clientAbility=yield RJ(r.sdp,(null==(t=this._room.scheduleResult.config)?void 0:t.remove264FromSDP)||!1,(null==(i=this._room.scheduleResult.config)?void 0:i.remove265FromSDP)||!1),this.originOffer=r,this.dtlsTransport&&(this.dtlsTransport.onstatechange=()=>{let{dtlsTransport:e}=this;e&&(this._log.debug("dtls state: ".concat(e.state)),"connecting"===e.state&&0===this.stat.dtlsStartTime?this.stat.dtlsStartTime=Date.now():"connected"===e.state&&0===this.stat.dtlsEndTime&&(this.stat.dtlsEndTime=Date.now()))}),_L.addSuccessEvent({key:521707}),this.clientAbility}catch(Ik){throw _L.addFailedEvent({key:521707,error:Ik}),this._log.error("initialize failed ".concat(Ik," \noffer: ").concat(null==r?void 0:r.sdp)),Ik}})}setIceServers(e){return Yb(this,null,function*(){var t;if(this._peerConnection&&0!==e.length)try{if(this._log.info("setIceServers",JSON.stringify(e,(e,t)=>"username"===e||"credential"===e?"hided":t)),this._peerConnection.setConfiguration(this.getPeerConnectionConfig(e)),null!=(t=this._peerConnection)&&t.localDescription||!this.originOffer)return void this._log.warn("setIceServers already has localDescription or no origin Offer");yield this.setOffer(this.originOffer)}catch(tP){this._log.warn("setIceServers error ",tP)}})}setPriority(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"high";if(this._peerConnection)try{this._peerConnection.getSenders().forEach(t=>{let i=t.getParameters();i.encodings[0]&&(i.encodings[0].priority=e,i.encodings[0].networkPriority=e,t.setParameters(i).catch(e=>{this._log.warn("setPriority error ",e)}))})}catch(AD){this._log.warn("setPriority error ",AD)}}connect(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Yb(this,null,function*(){var i,r,n;try{if("CONNECTED"===this.currentState)return;(null==(i=this._peerConnection)||!i.localDescription)&&this.originOffer&&(yield this.setOffer(this.originOffer));let o=Zw(),s={type:"answer",sdp:CJ({serverAbility:e,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=e,yield this.setAnswer(s),yield this.waitForPeerConnectionConnected();let a=(null==(r=this._room.scheduleResult.config)?void 0:r.priority)||(null==(n=this._room.joinParams)?void 0:n.priority)||new URLSearchParams(location.search).get("priority");a&&this.setPriority(a),t||_L.addSuccessEvent({key:521703,cost:Zw()-o})}catch(eP){let i=eP instanceof lk&&eP.code===ak.API_CALL_ABORTED;throw i||this._log.error("connect failed: ".concat(eP),e),this.reset(),!i&&!this.isReconnecting&&(_L.addFailedEvent({key:521703,error:eP}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),eP}})}reconnect(){return Yb(this,null,function*(){if(-1===this._reconnectionTimer){if(!this._signalChannel.isConnected)return this._log.warn("reconnect() wait signal channel is connected"),void this._signalChannel.once(zG,this.reconnect,this);try{this.reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this.reconnectionCount,"]")),this.reset();let e=this._signalChannel.getBackupRelayIpPair(),t=yield this.initialize(this._room.getIceServers(null!=e&&e.iceServer?[e.iceServer]:[])),i=Hb({ability:t},e),r=yield this._signalChannel.sendWaitForResponse({command:Rj,responseCommand:tj.REBUILD_PEER_CONNECTION_RES,data:i,enableLog:!1});if(0!==r.data.code)throw new lk({code:r.data.code,message:r.data.message});yield this.connect(r.data.data.ability,!0),_L.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),BM.emit(WM.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(Sk){if(!this.isReconnecting)return;if(null!=Sk&&Sk.message.includes("timeout")){let e=Lw(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield EN(e,e=>{this._reconnectionTimer=e}),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(null==Sk?void 0:Sk.code," ").concat(Sk)),_L.addFailedEvent({key:521704,error:Sk}),this.reconnectionCount>=ID()&&this._log.warn("SDK has tried reconnect for ".concat(ID()," times, but all failed, please check your network")),this.stopReconnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.emit("error")}}else this._log.warn("reconnect() is reconnecting, ignore current reconnection")})}getPeerConnection(){return this._peerConnection}startReconnection(){return Yb(this,null,function*(){this.isReconnecting||(this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect())})}stopReconnection(){var e;this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),null==(e=this.clearConnectTimeout)||e.call(this),this._signalChannel.off(zG,this.reconnect,this),"RECONNECTING"===this.currentState&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var e;!this.isReconnecting&&(null==(e=this._peerConnection)?void 0:e.connectionState)===vD.CLOSED&&this.startReconnection()}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(e){var t;let i=(null==(t=this._peerConnection)?void 0:t.iceConnectionState)||"closed",r=this.getDTLSTransportState();this._log.info("connectionState: ".concat(e.target.connectionState," ICE: ").concat(i," DTLS: ").concat(r)),e.target.connectionState===vD.CONNECTING&&(0===this.stat.peerConnectionStartTime&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(e.target.connectionState===vD.FAILED||e.target.connectionState===vD.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(e.target.connectionState===vD.CONNECTED||e.target.connectionState===vD.COMPLETED)&&(0===this.stat.peerConnectionEndTime&&(this.stat.peerConnectionEndTime=Date.now()),BM.emit(WM.SINGLE_CONNECTION_STAT,{room:this._room,stat:{ice:this.stat.iceEndTime-this.stat.iceStartTime,dtls:this.stat.dtlsEndTime-this.stat.dtlsStartTime,peerConnection:this.stat.peerConnectionEndTime-this.stat.peerConnectionStartTime}}),this.logSelectedCandidate(),this.emitConnectionStateChangedEvent("CONNECTED"))}getDTLSTransportState(){if(!this._peerConnection)return TD;let e=null;return JL()&&0!==this._peerConnection.getSenders().length?(e=this._peerConnection.getSenders()[0].transport,jL()&&0!==this._peerConnection.getReceivers().length&&e?e.state:TD):TD}emitConnectionStateChangedEvent(e){e!==this.currentState&&("RECONNECTING"===this.currentState&&"CONNECTING"===e||(this.emit(LJ.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:e}),this.currentState=e))}logSelectedCandidate(){return Yb(this,null,function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[t,i]of e)if(LL(i)){let t=e.get(i.localCandidateId),r=e.get(i.remoteCandidateId);t&&(this._log.info("local candidate: ".concat(t.candidateType," ").concat(t.protocol,":").concat(t.ip||t.address,":").concat(t.port," ").concat(t.networkType||""," ").concat("relay"===t.candidateType?"relayProtocol:".concat(t.relayProtocol):"")),t.networkType&&Aw(t.networkType)),r&&this._log.info("remote candidate: ".concat(r.candidateType," ").concat(r.protocol,":").concat(r.ip||r.address,":").concat(r.port));break}})}waitForPeerConnectionConnected(){return this._waitForPCConnectedPromise||(this._waitForPCConnectedPromise=new Promise((e,t)=>{if("CONNECTED"===this.currentState)return e();let i=t=>{"CONNECTED"===t.state&&(clearTimeout(o),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(o),n(),t(new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{BM.off(WM.LEAVE_SUCCESS,r,this),this.off(LJ.CONNECTION_STATE_CHANGED,i,this)},o=setTimeout(()=>{n();let e=new lk({code:ak.API_CALL_TIMEOUT,message:"connection timeout"});var i;xJ+=1,i=this._signalChannel.isConnected,xJ>2&&!VJ&&0===UJ.size&&i&&(this._log.warn("firewall restriction"),VJ=!0,this.emit(LJ.FIREWALL_RESTRICTION)),t(e)},UD);this.clearConnectTimeout=()=>{n(),clearTimeout(o),delete this.clearConnectTimeout},this.clearWaitForConnectedPromise=()=>{this._waitForPCConnectedPromise=null,t(new lk({code:ak.API_CALL_TIMEOUT,message:"connection timeout"}))},BM.on(WM.LEAVE_SUCCESS,r,this),this.on(LJ.CONNECTION_STATE_CHANGED,i,this)}),this._waitForPCConnectedPromise=this._waitForPCConnectedPromise.finally(()=>{this._waitForPCConnectedPromise=null,delete this.clearConnectTimeout})),this._waitForPCConnectedPromise}waitForReconnected(){return this.isReconnecting?new Promise((e,t)=>{this.once("spc-reconnected",e),this.once("error",t)}):Promise.resolve()}addDownlink(e){return Yb(this,null,function*(){if(this._log.info("addDownlink(".concat(e.userId,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise),this.updateLocalAndRemoteSDPConfig(e),0===this.addDownlinkQueue.size)try{yield this.updateSDP(),this._log.info("addDownlink(".concat(e.userId,") done"))}catch(AD){this._log.error("addDownlink(".concat(e.userId,") failed ").concat(AD)),yield this.startReconnection()}})}updateLocalAndRemoteSDPConfig(e){let{ssrc:t,userId:i,tinyId:r}=e;if(!this._peerConnection)return;this._log.info("updateLocalAndRemoteSDPConfig ".concat(i," ").concat(JSON.stringify(t)));let n=this._peerConnection.getTransceivers().slice(4).filter(e=>"inactive"===e.direction).slice(0,3).map(e=>(e.direction=Xk.TRANSCEIVER_DIRECTION_RECVONLY,Number(e.mid)));this._parsedAnswer||(this._parsedAnswer=jj(this._peerConnection.remoteDescription.sdp));let o,s,a,c=this._parsedAnswer.media.filter(e=>{var t;return null==(t=e.ssrcs)?void 0:t.find(e=>{var t;return null==(t=e.value)?void 0:t.includes(r)})});if(3===c.length)o=c[0],s=c[1],a=c[2];else if(3===n.length)o=this._parsedAnswer.media.find(e=>Number(e.mid)===Number(n[0])),s=this._parsedAnswer.media.find(e=>Number(e.mid)===Number(n[1])),a=this._parsedAnswer.media.find(e=>Number(e.mid)===Number(n[2]));else if(0===n.length){this._peerConnection.addTransceiver(Xk.AUDIO,{direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(Xk.VIDEO,{direction:Xk.TRANSCEIVER_DIRECTION_RECVONLY}),o=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let e=bJ({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:jj(this._peerConnection.localDescription.sdp),isDownlink:!0});s=JSON.parse(JSON.stringify(e)),a=JSON.parse(JSON.stringify(e)),o.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(o),s.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(s),a.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(a)}o.direction=Xk.TRANSCEIVER_DIRECTION_SENDONLY;let l="".concat(r,"-").concat(t.audio);o.ssrcs=[{id:t.audio,attribute:"cname",value:"".concat(l)},{id:t.audio,attribute:"msid",value:"".concat(l,"-").concat(Xk.MAIN," ").concat(l,"-audio")}],s.direction=Xk.TRANSCEIVER_DIRECTION_SENDONLY,s.ssrcs=[{id:t.video,attribute:"cname",value:"".concat(l)},{id:t.video,attribute:"msid",value:"".concat(l,"-").concat(Xk.MAIN," ").concat(l,"-bigvideo")},{id:t.videoRtx,attribute:"cname",value:"".concat(l)},{id:t.videoRtx,attribute:"msid",value:"".concat(l,"-").concat(Xk.MAIN," ").concat(l,"-bigvideo")}],s.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(t.video," ").concat(t.videoRtx)}],a.direction=Xk.TRANSCEIVER_DIRECTION_SENDONLY;let d="".concat(l,"-aux");a.ssrcs=[{id:t.auxiliary,attribute:"cname",value:d},{id:t.auxiliary,attribute:"msid",value:"".concat(d," ").concat(l,"-aux").concat(Xk.VIDEO)},{id:t.auxiliaryRtx,attribute:"cname",value:"".concat(d," ").concat(l,"-aux").concat(Xk.VIDEO)},{id:t.auxiliaryRtx,attribute:"msid",value:"".concat(d," ").concat(l,"-aux").concat(Xk.VIDEO)}],a.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(t.auxiliary," ").concat(t.auxiliaryRtx)}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map(e=>e.mid).join(" ")),this._downlinkMIDMap.set(i,[o.mid,s.mid,a.mid]),this._downlinkMIDUserIDMap.set(o.mid,i),this._downlinkMIDUserIDMap.set(s.mid,i),this._downlinkMIDUserIDMap.set(a.mid,i)}removeDownlink(e){return Yb(this,null,function*(){if(!this._downlinkMIDMap.has(e)||!this._peerConnection)return;this._log.info("removeDownlink(".concat(e,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise);let t=this._downlinkMIDMap.get(e),i=!1;this._peerConnection.getTransceivers().forEach(e=>{null!=t&&t.includes(Number(e.mid))&&(i=!0,e.direction="inactive")}),this._parsedAnswer||(this._parsedAnswer=jj(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach(e=>{null!=t&&t.includes(Number(e.mid))&&(i=!0,e.direction="inactive",e.ssrcs=[],e.ssrcGroups=[])}),0===this.removeDownlinkQueue.size&&i&&(yield this.updateSDP()),this._downlinkMIDMap.delete(e),null==t||t.forEach(e=>this._downlinkMIDUserIDMap.delete(e)),this._log.info("removeDownlink(".concat(e,") done"))})}setBandwidth(e){return Yb(this,null,function*(){if(!this._peerConnection)return;let{audio:t,bigVideo:i,smallVideo:r,auxVideo:n}=e;try{if(ZL()){let e=this._peerConnection.getSenders().slice(0,4);for(let s=0;s<e.length;s++){let o,a=e[s];0===s&&t?o=t:1===s&&i?o=i:2===s&&r?o=r:3===s&&n&&(o=n),o&&(yield this.setSenderMaxBitrate(a,o))}let o=!1;i&&e[1].track&&(o=this.setStartBitrate(1,i)),n&&e[3].track&&(o=this.setStartBitrate(3,n)||o),o&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(e);this._log.info("setBandwidth ".concat(JSON.stringify(e)))}catch(eP){this._log.error("failed to set bandwidth: ".concat(eP))}})}setStartBitrate(e,t){var i,r;return!(null==(i=this._peerConnection)||!i.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=jj(this._peerConnection.remoteDescription.sdp)),null==(r=this._parsedAnswer.media[e])||!r.fmtp[0]))&&(this._parsedAnswer.media[e].fmtp[0].config+=";x-google-start-bitrate=".concat(t>5e3?5e3:t),!0)}setSenderMaxBitrate(e,t){let i=e.getParameters();return(!i.encodings||0===i.encodings.length)&&(i.encodings=[{}]),"unlimited"===t?delete i.encodings[0].maxBitrate:i.encodings[0].maxBitrate=1e3*t,e.setParameters(i)}setBandwidthBySDP(e){let{audio:t,bigVideo:i,smallVideo:r,auxVideo:n}=e;if(!this._peerConnection||!this._peerConnection.localDescription)return;let o=jj(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=jj(this._peerConnection.remoteDescription.sdp));let s=aO?"TIAS":"AS";t&&(o.media[0].bandwidth=[{type:s,limit:aO?1e3*t:t}],this._parsedAnswer.media[0].bandwidth=[{type:s,limit:aO?1e3*t:t}]),i&&(o.media[1].bandwidth=[{type:s,limit:aO?1e3*i:i}],this._parsedAnswer.media[1].bandwidth=[{type:s,limit:aO?1e3*i:i}]),r&&(o.media[2].bandwidth=[{type:s,limit:aO?1e3*r:r}],this._parsedAnswer.media[2].bandwidth=[{type:s,limit:aO?1e3*r:r}]),n&&(o.media[3].bandwidth=[{type:s,limit:aO?1e3*n:n}],this._parsedAnswer.media[3].bandwidth=[{type:s,limit:aO?1e3*n:n}]);let a={type:"offer",sdp:Jj(o)};return this.updateSDP({localDescription:a})}setScaleResolutionDownBy(e,t,i){let r=e.getParameters();(!r.encodings||0===r.encodings.length)&&(r.encodings=[{}]);let n=r.encodings[0].scaleResolutionDownBy;if(Uw(n)?1===t:t===n)return;let o="setScaleResolutionDownBy ".concat(i," ").concat(t);return n&&(o+=" prevScale: ".concat(n)),this._log.warn(o),r.encodings[0].scaleResolutionDownBy=t,e.setParameters(r)}setDegradationPreference(e,t,i){if(oM&&cM<83||iO&&_M(mM,"12.1")||aO&&lO<138)return;let r=e.getParameters(),n="balanced";if("motion"===t?n="maintain-framerate":"detail"===t&&(n="maintain-resolution"),r.degradationPreference===n)return;let o="setDegradationPreference ".concat(i," ").concat(n);return this._log.info(o),r.degradationPreference=n,e.setParameters(r).catch(e=>this._log.warn("".concat(o," failed: ").concat(e)))}updateSDP(){let{localDescription:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let t=Jj(this._parsedAnswer);return this._updateSDPPromise=new Promise((i,r)=>Yb(this,null,function*(){var n,o;try{!e&&this._peerConnection&&(this._log.info("creating offer"),e=yield this._peerConnection.createOffer()),e&&(yield this.setOffer(e)),yield this.setAnswer({type:"answer",sdp:t}),this._updateSDPPromise=null,i()}catch(rP){this._log.error(rP),!this._isSDPLogged&&this._peerConnection&&(this._log.warn("current offer: ".concat(this.filterSDPDirection(null==(n=this._peerConnection.localDescription)?void 0:n.sdp)," \nnext offer: ").concat(this.filterSDPDirection(null==e?void 0:e.sdp))),this._log.warn("current answer: ".concat(this.filterSDPDirection(null==(o=this._peerConnection.remoteDescription)?void 0:o.sdp)," \nnext answer: ").concat(this.filterSDPDirection(t))),this._log.warn("offer: ".concat(null==e?void 0:e.sdp)),this._log.warn("answer: ".concat(t)),this._log.warn("transceivers: ".concat(JSON.stringify(this._peerConnection.getTransceivers().map(e=>{let{mid:t,currentDirection:i,direction:r,stopped:n}=e;return{mid:t,currentDirection:i,direction:r,stopped:n}})))),this._log.warn("parsedAnswer: ".concat(JSON.stringify(this._parsedAnswer))),this._isSDPLogged=!0),this._updateSDPPromise=null,r(rP)}})),this._updateSDPPromise}setTransceiverDirection(e,t){return Yb(this,null,function*(){if(!aO||!this._peerConnection||!this._parsedAnswer)return;this._log.info("setting transceiver ".concat(t.join(",")," direction to ").concat(e));let i=this._peerConnection.getTransceivers();t.forEach(t=>{i[t].direction!==e&&(i[t].direction=e)});for(let r of t){let t=this._parsedAnswer.media[r].direction;e===Qk.INACTIVE&&t===Qk.RECVONLY&&(this._parsedAnswer.media[r].direction=e),e===Qk.SENDONLY&&t===Qk.INACTIVE&&(this._parsedAnswer.media[r].direction=Qk.RECVONLY)}yield this.updateSDP()})}filterSDPDirection(){return jj(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").media.map(e=>e.direction)}setOffer(e){this._log.info("setting offer");let t=DJ(e.sdp,this.clientAbility,this._serverAbility);return this._log.debug(t),this._peerConnection.setLocalDescription({type:"offer",sdp:t})}setAnswer(e){return this._log.info("setting answer"),this._log.debug(e.sdp),this._peerConnection.setRemoteDescription(e)}switchVideoEncoder(e){return Yb(this,null,function*(){if("h265"===e&&!this._parsedAnswer&&(this._parsedAnswer=jj(this._peerConnection.remoteDescription.sdp)),!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1;this._parsedAnswer.media.forEach(i=>{var r;if(i.type===Xk.VIDEO){let n=this._serverAbility.video.codecs.find(t=>t.codec.toLowerCase()===e);n&&(null==(r=i.payloads)||!r.includes(String(n.payload)))&&(i.fmtp=[],i.payloads="",i.rtp=[],i.rtcpFb=[],kJ(i,n),t=!0)}}),t&&(this._log.warn("switch video encoder to ".concat(e)),yield this.updateSDP())})}useHWEncoder(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1?arguments[1]:void 0;return Yb(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let i=!1,r=[];Uw(t)?r=this._parsedAnswer.media.slice(1,4):2===t?r.push(this._parsedAnswer.media[1]):3===t?r.push(this._parsedAnswer.media[2]):7===t&&r.push(this._parsedAnswer.media[3]),r.forEach(t=>{var r;if(t.type===Xk.VIDEO){let n;e&&this.is42001fSupported?n=this.clientAbility.video.codecs.find(e=>e.fmtp.includes("42001f")):e||(n=this._serverAbility.video.codecs.find(e=>e.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264"))),n&&(null==(r=t.payloads)||!r.includes(String(n.payload)))&&(t.fmtp=[],t.payloads="",t.rtp=[],t.rtcpFb=[],kJ(t,n),i=!0)}}),i&&(this._log.warn("use ".concat(e?"hw":"sw"," encoder")),yield this.updateSDP())})}sendDataChannelMessage(e){var t;null==(t=this._datachannel)||t.send(e)}reset(){var e;this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),null==(e=this.clearWaitForConnectedPromise)||e.call(this),this._parsedAnswer=null,this.originOffer=null}close(){this._log.info("close pc"),this.removeRTCListener(),this.insertableStreamsAbortMap.forEach(e=>UN(e.abort)&&e.abort("destroy")),this.insertableStreamsAbortMap.clear(),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this._downlinkMIDMap.clear(),this.stopReconnection(),this.removeAllListeners(),this._room.healthDetector.off("1",this.onBadHealth,this)}getReceiversByUserId(e){if(!this._peerConnection)return[];let t=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(e)||[]).map(e=>t[e])}get isUsingRelay(){return"relay"===this._room.getIceTransportPolicy()}detectTCPAndUDP(e){let{uplinkRTT:t,downlinkRTT:i}=e;var r;if("CONNECTED"!==this.currentState||this._isRelayTried&&!this._room.forceRelay||0===this._room.getIceServers().length)return;let n=this._signalChannel.rtt,o=Math.max(t,i),{rttRatioThreshold:s,rttThreshold:a}=(null==(r=this._room.scheduleResult.config)?void 0:r.useTurnTcpInfo)||{};if(!(s&&a&&n&&o))return;let c=Math.floor(o/n),l=(this._isRelayTried||c>s)&&o>a;l?++this._rttOverCount<5||(this._log.warn("detectTCPAndUDP ws-rtt: ".concat(n," upRTT: ").concat(t," downRTT: ").concat(i," ratio: ").concat(c," over-count: ").concat(this._rttOverCount," isOver: ").concat(l," isRelayTried: ").concat(this._isRelayTried," force-relay: ").concat(this._room.forceRelay)),this.isUsingRelay||this._isRelayTried?this._room.forceRelay&&this.switchRelay(!1):(this._isRelayTried=!0,this._rttOverCount=0,this.switchRelay(!0))):this._rttOverCount=0}switchRelay(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Yb(this,null,function*(){if(this.isUsingRelay===e)return;let i=e?"relay":"udp",r=e?521709:521710;try{this._room.forceRelay=e,this._log.warn("switchRelay ".concat(i));let t=Date.now();yield this.doSwitchRelay(i),this._log.warn("switchRelay ".concat(i," success")),_L.addSuccessEvent({key:r,cost:Date.now()-t})}catch(Ik){this._log.warn("switchRelay ".concat(i," failed"),Ik),_L.addFailedEvent({key:r,error:Ik}),t?this._room.reJoin():yield this.switchRelay(!e,!0)}})}doSwitchRelay(e){return new Promise((t,i)=>{let r=setTimeout(()=>{this.stopReconnection(),i(new Error("switch ".concat(e," timeout")))},1e4);this.startReconnection().then(t,i).finally(()=>clearTimeout(r))})}removeRTCListener(){this._peerConnection&&(this._peerConnection.oniceconnectionstatechange=null,this._peerConnection.onconnectionstatechange=null,this._peerConnection.onsignalingstatechange=null,this._peerConnection.ontrack=null),this.dtlsTransport&&(this.dtlsTransport.onstatechange=null)}requestRemoteFallbackToH264(){this._log.warn("H265 decode failed, remote need to fallback h264"),this._h265DecodeFailed=!0,this._signalChannel.sendWaitForResponse({command:Aj,data:{videoDecCodec:"h264"},responseCommand:tj.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{0!==e.data.code&&this._log.warn(e.data.message)})}};Kb([SU("reconnect")],BJ.prototype,"startReconnection",1),Kb([IU(e=>e.userId)],BJ.prototype,"addDownlink",1),Kb([IU(e=>e)],BJ.prototype,"removeDownlink",1),Kb([yU(!0)],BJ.prototype,"updateSDP",1),Kb([AU(521712,!1)],BJ.prototype,"setOffer",1),Kb([AU(521713,!1)],BJ.prototype,"setAnswer",1);var HJ=class{constructor(e){qb(this,"tag"),qb(this,"len"),qb(this,"data");let t=new DataView(e);this.tag=t.getUint16(),this.len=t.getUint16(2),this.data=new Uint8Array(e).slice(4,4+this.len).buffer}},WJ=class{constructor(e){qb(this,"tinyId"),qb(this,"data");let t=new DataView(e),i=0,r=[];for(;i<t.byteLength;){let n=t.getUint16(i+2),o=new HJ(new Uint8Array(e).slice(i,i+2+2+n).buffer);r.push(o),i+=4+n}r.forEach(e=>{1===e.tag?this.tinyId=(new TextDecoder).decode(e.data):2===e.tag&&(this.data=e.data)})}},GJ=new Set;function jJ(){let e=Math.floor(4294967296*Math.random());return GJ.has(e)?jJ():(GJ.add(e),e)}var JJ=Jb(Xb()),KJ=class extends JJ.default{constructor(e){super(),qb(this,"userId"),qb(this,"tinyId"),qb(this,"_sdpSemantics"),qb(this,"_isUplink"),qb(this,"_room"),qb(this,"_log"),qb(this,"_currentState","DISCONNECTED"),qb(this,"_prevTime",-1),qb(this,"_blackSmallVideoDetectionId"),this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=JM.createLogger({id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var e;return(null==(e=this.singlePC)?void 0:e.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(e){this._log.info("close connection"),this.emit("closed",e)}emitConnectionStateChangedEvent(e){return e!==this._currentState&&(BM.emit(WM.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:this.userId}),this.emit("connection-state-changed",{prevState:this._currentState,state:e}),this._currentState=e,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}getCurrentState(){return this._currentState}get isH264(){var e,t;return!(null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)||!t.sdp.includes("H264"))}},qJ=new class{constructor(){qb(this,"worker"),qb(this,"callbacks",new Map),qb(this,"_log"),qb(this,"sleep",{}),qb(this,"heartbeatListenerCleaner",new Map),qb(this,"userIdMap",new Map),this._log=JM.createLogger({id:"bvd"})}getWorker(){if(!this.worker){let e=new Blob(['\n const tracks=new Map;let canvas,ctx;const log=(...t)=>postMessage({type:"log",message:"[worker] "+t.join(" ")});function startDetection(e,t,a){if(!tracks.has(e)){const c={reader:a.getReader(),blackCount:0,timeoutId:null,intervalId:null};tracks.set(e,c),c.timeoutId=setTimeout(()=>stopDetection(e,"timeout"),t),c.intervalId=setInterval(async()=>{try{await isFrameBlack(e)?(c.blackCount++,postMessage({type:"blackCount",trackId:e,count:c.blackCount}),3<=c.blackCount&&(postMessage({type:"black",trackId:e}),stopDetection(e,"black"))):c.blackCount=0}catch(t){log("check black video error:",t.message),stopDetection(e,"error")}},1e3)}}function stopDetection(t,e){var a=tracks.get(t);a&&(a.timeoutId&&clearTimeout(a.timeoutId),a.intervalId&&clearInterval(a.intervalId),a.reader&&a.reader.cancel(),tracks.delete(t),postMessage({type:e,trackId:t}))}async function isFrameBlack(t){t=tracks.get(t);if(!t)return!1;var t=t.reader,{done:t,value:e}=await t.read();if(!e||t)return!1;canvas||(canvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),ctx=canvas.getContext("2d",{willReadFrequently:!0})),canvas.width===e.codedWidth&&canvas.height===e.codedHeight||(canvas.width=e.codedWidth,canvas.height=e.codedHeight,ctx=canvas.getContext("2d",{willReadFrequently:!0})),ctx.drawImage(e,0,0,canvas.width,canvas.height);t=getFrameBlackRatio(ctx.getImageData(0,0,canvas.width,canvas.height));return e.close(),1===t}function getFrameBlackRatio(t){var e=t.data;let a=0;for(let t=0;t<100;t++){var c=4*Math.floor(Math.random()*(e.length/4)),[c,r,n,o]=[e[c],e[1+c],e[2+c],e[3+c]];0<o&&0===c&&0===r&&0===n&&a++}return a/100}self.onmessage=t=>{var{type:t,trackId:e,timeout:a,readable:c}=t.data;"addTrack"===t&&startDetection(e,a,c),"removeTrack"===t&&stopDetection(e)};\n '],{type:"application/javascript"}),t=URL.createObjectURL(e);this.worker=new Worker(t),URL.revokeObjectURL(t),this.worker.onerror=e=>this._log.warn("worker error:",e.message,e.filename||"unknown",e.lineno||"unknown"),this.worker.onmessage=e=>{var t;let{type:i,trackId:r,message:n,count:o}=e.data;if("black"===i)null==(t=this.callbacks.get(r))||t();else if("log"===i)this._log.warn(n);else if("blackCount"===i){let e=this.userIdMap.get(r);this._log.warn("".concat(e||r," black count: ").concat(o))}}}return this.worker}start(e){let{track:t,isUplink:i,room:r,userId:n,onBlack:o}=e;if(this._log.debug("start detect black video",t.id),!AL()||!o||!t||"undefined"==typeof Worker)return void this._log.warn("black video detector not supported");let s=e=>{var r,o,s,a;let c;if(i)c=null==(o=null==(r=e.msg_up_stream_info)?void 0:r.msg_video_status)?void 0:o.filter(e=>3===e.uint32_video_stream_type)[0];else{let t=null==(s=e.msg_down_stream_info)?void 0:s.filter(e=>{var t;return(null==(t=e.msg_user_info)?void 0:t.str_identifier)===n})[0];c=null==(a=null==t?void 0:t.msg_video_status)?void 0:a.filter(e=>3===e.uint32_video_stream_type)[0]}if(c){let e=(c.uint32_video_codec_bitrate||0)/1e3;if(this.sleep[t.id]&&this.sleep[t.id]>0)return void(this.sleep[t.id]-=1);e>0&&e<10&&(this.sleep[t.id]=30,this._log.info("track bitrate",e,"start check"),this.checkOnce(t,3e4))}};return r.on("heartbeat-report",s),this.heartbeatListenerCleaner.set(t.id,()=>r.off("heartbeat-report",s)),this.callbacks.set(t.id,o),this.userIdMap.set(t.id,n),t.id}checkOnce(e,t){try{let i=this.getWorker();if(!i)throw new Error("Worker not available");let r=new MediaStreamTrackProcessor({track:e});i.postMessage({type:"addTrack",trackId:e.id,timeout:t,readable:r.readable},[r.readable])}catch(AD){this._log.warn("check error:",AD),this.stop(e.id)}}stop(e){if(e){this.worker&&this.worker.postMessage({type:"removeTrack",trackId:e}),this.callbacks.delete(e),delete this.sleep[e];let t=this.heartbeatListenerCleaner.get(e);t&&t(),this.heartbeatListenerCleaner.delete(e),this.userIdMap.delete(e)}}destroy(){this.callbacks.forEach((e,t)=>this.stop(t)),this.worker&&(this.worker.terminate(),this.worker=null)}},zJ=class extends KJ{constructor(e){super(Wb(Hb({},e),{isUplink:!0})),qb(this,"localMainAudioTrack",null),qb(this,"localMainVideoTrack",null),qb(this,"localAuxAudioTrack",null),qb(this,"localAuxVideoTrack",null),qb(this,"_isPublishingAux",!1),qb(this,"_publishingLocalAudioTrack"),qb(this,"_publishingLocalVideoTrack"),qb(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,videoDecCodec:"",audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),qb(this,"_flag",0),qb(this,"_checkPublishStateTimeoutId",-1),this.initialize()}get videoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264"}get ssrc(){if(!this.singlePC)return{audio:0,video:0,videoRtx:0,small:0,smallRtx:0,auxiliary:0,auxiliaryRtx:0};let{audioSsrc:e,bigVideoSsrc:t,bigVideoRtxSsrc:i,smallVideoSsrc:r,smallVideoRtxSsrc:n,auxVideoSsrc:o,auxVideoRtxSsrc:s}=this.singlePC.uplinkSSRC;return{audio:e||0,video:t||0,videoRtx:i||0,small:r||0,smallRtx:n||0,auxiliary:o||0,auxiliaryRtx:s||0}}get flag(){return this._flag}set flag(e){this._flag!==e&&(this._flag=e,this.checkPublishState())}checkPublishState(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{if(!e&&this._checkPublishStateTimeoutId>0)return;let{publishState:t,serverPublishState:i}=this,r=Object.keys(t).filter(e=>{if(t[e]!==i[e]&&t[e])switch(e){case"audio":return!(!this.localMainAudioTrack||!this.localMainAudioTrack.isMediaTrackActive);case"bigVideo":case"smallVideo":return!(!this.localMainVideoTrack||!this.localMainVideoTrack.isMediaTrackActive);case"auxVideo":return!(!this.localAuxVideoTrack||!this.localAuxVideoTrack.isMediaTrackActive)}return!1});if(r.length>0){if(!e)return void(this._checkPublishStateTimeoutId=Vx.run("timeout",()=>this.checkPublishState(!0),{delay:1e4,count:1}));_L.addCount({key:521e3}),r.forEach(e=>{this._log.warn("".concat(e," publish failed during call ").concat(VM()," ").concat(OM())),_L.addEnum({key:521719,value:YJ[e]})}),Vx.clearTask(this._checkPublishStateTimeoutId),this._checkPublishStateTimeoutId=-1}}catch(AD){this._log.warn("checkPublishState failed",AD)}}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get publishState(){var e,t,i,r;let n={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let o=this._peerConnection.getSenders();o&&(KL()?(n.audio=!(null==(e=o[0])||!e.track),n.bigVideo=!(null==(t=o[1])||!t.track),n.smallVideo=!(null==(i=o[2])||!i.track),n.auxVideo=!(null==(r=o[3])||!r.track)):o.forEach(e=>{e.track&&(e.track.kind===Xk.AUDIO?n.audio=!0:(n.bigVideo=!0,this._room.videoManager.hasSmall&&(n.smallVideo=!0)))}))}return n}get publishingState(){let{publishState:e}=this,t=Hb({},e);return this._publishingLocalAudioTrack&&(t.audio=!0),this._publishingLocalVideoTrack&&(this._isPublishingAux?t.auxVideo=!0:(t.bigVideo=!0,this._publishingLocalVideoTrack.small&&(t.smallVideo=!0))),t}get serverPublishState(){return{audio:!!(this.flag&rD),bigVideo:!!(this.flag&eD),smallVideo:!!(this.flag&tD),auxVideo:!!(this.flag&iD)}}get muteState(){var e,t,i;return{audio:!(null==(e=this.localMainAudioTrack)||!e.muted),bigVideo:!(null==(t=this.localMainVideoTrack)||!t.muted),auxVideo:!(null==(i=this.localAuxVideoTrack)||!i.muted)}}initialize(){this.installEvents()}close(e){var t;let i=(null==(t=this._peerConnection)?void 0:t.getSenders())||[];for(let r of i)r.replaceTrack(null);super.close(e),this.uninstallEvents(),this.uninstallTrackMuteEvents(this.localMainAudioTrack,this.localMainVideoTrack,this.localAuxVideoTrack),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this.on("connection-state-changed",this.handleConnectionStateChange,this),this.installSPCEvents()}installSPCEvents(){var e,t;null!=(e=this.singlePC)&&e.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||null==(t=this.singlePC)||t.on("spc-reconnected",this.onSinglePCReconnected,this)}uninstallSPCEvents(){var e;null==(e=this.singlePC)||e.off("spc-reconnected",this.onSinglePCReconnected,this)}uninstallEvents(){this.off("connection-state-changed",this.handleConnectionStateChange,this),this.uninstallSPCEvents()}emitConnectionStateChangedEvent(e,t){var i,r,n;let o=this._currentState,s=super.emitConnectionStateChangedEvent(e);return s&&o!==e&&(t?t.emit("connection-state-changed",{prevState:o,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:o,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:o,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:o,state:e}))),s}onVideoEncodeFailed(e){if(!e||!e.isMediaTrackActive)return;let{videoCodec:t,singlePC:i}=this;if(!i)return;let r={h265:{supported:i.isH264EncodeSupported,target:"h264",log:"h265 encoder not working, switch to h264"},h264:{supported:i.isVP8EncodeSupported,target:"vp8",log:"h264 encoder not working, switch to vp8"},vp8:{supported:!1,target:"vp8",log:"vp8 encoder not working, no fallback available"}}[t];this._log.warn(r.log),null!=r&&r.supported&&i.switchVideoEncoder(r.target)}publish(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,isAuxiliary:n}=e;return function*(){var e,o,s,a,c,l,d;if(!t.singlePC)return;t.installEvents(),yield t.singlePC.waitForPeerConnectionConnected();let u,{publishState:h,muteState:p}=t;if(i&&(t._publishingLocalAudioTrack=i,h.audio=!0,p.audio=i.muted),r){if(!t.singlePC.isH264EncodeSupported&&!t.singlePC.isVP8EncodeSupported)throw new lk({code:ak.NOT_SUPPORTED_H264,message:nL({key:eL.NOT_SUPPORTED_H264ENCODE})});t.singlePC.isUsingH264&&!t.singlePC.isH264EncodeSupported&&t.singlePC.isVP8EncodeSupported&&(t._log.warn("h264 encoder not supported"),yield t.singlePC.switchVideoEncoder("vp8")),rO&&115===nM()&&r.profile.width*r.profile.height<=230400&&(t._log.warn("fallback video to defaultBigVideoProfile: ".concat(JSON.stringify(qk))),r.setProfile(qk),yield r.applyProfile()),t._publishingLocalVideoTrack=r,n?(h.auxVideo=!0,p.auxVideo=r.muted):(h.bigVideo=!0,p.bigVideo=r.muted)}if(t._isPublishingAux=n,r&&!n&&r.small&&(u=t._room.videoManager.smallTrack,h.smallVideo=!0),yield t._signalChannel.sendWaitForResponseWithRetry({command:bj,responseCommand:tj.SPC_PUBLISH_RESULT,data:Wb(Hb({},t.singlePC.uplinkSSRC),{state:h,muteState:p}),retries:3}),yield t.publishByTransceiver({localAudioTrack:i,localVideoTrack:r,smallTrack:u,isAuxiliary:n}),t._publishingLocalAudioTrack=null,t._publishingLocalVideoTrack=null,t._isPublishingAux=!1,r){t[n?"localAuxVideoTrack":"localMainVideoTrack"]=r,yield t.singlePC.setDegradationPreference(t._peerConnection.getSenders()[n?3:1],r.contentHint,r.streamType);let{scaleResolutionDownBy:e}=r;yield t.singlePC.setScaleResolutionDownBy(t._peerConnection.getSenders()[n?3:1],e,r.streamType)}i&&(t[n?"localAuxAudioTrack":"localMainAudioTrack"]=i),yield t.singlePC.setBandwidth({audio:(null==(e=t.localMainAudioTrack)?void 0:e.profile.bitrate)||(null==(o=t.localAuxAudioTrack)?void 0:o.profile.bitrate),bigVideo:null==(s=t.localMainVideoTrack)?void 0:s.profile.bitrate,smallVideo:null==(c=null==(a=t.localMainVideoTrack)?void 0:a.small)?void 0:c.bitrate,auxVideo:null==(l=t.localAuxVideoTrack)?void 0:l.profile.bitrate}),t.sendMediaSettings(),t.installTrackMuteEvents(i,r),(t._room.preferHW||null!=(d=t._room.scheduleResult.config)&&d.preferHW)&&r&&r.profile.width*r.profile.height>=921600&&t.singlePC.useHWEncoder(!0,n?7:2)}()})}publishByTransceiver(e){let{localAudioTrack:t,localVideoTrack:i,smallTrack:r,isAuxiliary:n}=e;if(!qL())return;this._log.info("publish by transceiver");let o=null==i?void 0:i.outMediaTrack,s=null==t?void 0:t.outMediaTrack,a=this._peerConnection.getTransceivers(),c=[],l=[],d=(e,t,i)=>{var r;let n=a[t].sender.replaceTrack(i);l.push(t),null!=(r=this.singlePC)&&r.enableInsertableStreams&&n.then(()=>this.createEncodedStreams(a[t].sender,e)),this.initSenderTransform(a[t].sender,e),c.push(n)};s&&d(t.mediaType,0,s),o&&d(i.mediaType,n?3:1,o),null!=i&&i.small&&c.push(this.publishSmall(this._room.videoManager.smallMode,i));let u=this.singlePC.setTransceiverDirection(Qk.SENDONLY,l);return c.push(u),Promise.all(c)}getTrackByMediaType(e){switch(e){case 1:return this.localMainAudioTrack||this._publishingLocalAudioTrack;case 4:case 8:return this.localMainVideoTrack||this._publishingLocalVideoTrack;case 2:return this.localAuxVideoTrack||this._publishingLocalVideoTrack;default:return null}}createEncodedStreams(e,t){var i,r;if(this.singlePC.insertableStreamsAbortMap.has(e))return;let n=e.createEncodedStreams(),o=new AbortController;null==(i=this.singlePC)||i.addAbortController(e,o),(null!=(r=this.getTrackByMediaType(t))&&r.enableEncodeFrame?n.readable.pipeThrough(new TransformStream({transform:(e,i)=>{var r,n;let o=this.getTrackByMediaType(t);if(!o)return i.enqueue(e);o.isAudio?i.enqueue(o.enableEncodeFrame?o.encodeFrame(e):e):i.enqueue(null!=(r=this.singlePC)&&r.isUsingH264||null!=(n=this.singlePC)&&n.isUsingH265?o.encodeFrame(e,8===t):e)}}),o):n.readable).pipeTo(n.writable,o).catch(e=>{this._log.debug("encoded stream error",e),"destory"!==e&&this._log.warn(e)})}initSenderTransform(e,t){if(!(this._peerConnection&&this.singlePC&&this.singlePC.scriptTransformWorker&&nx))return;let i=2!==t,r=8===t;e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:1===t,isMain:i,isSmall:r}))}enableSmall(e){return Yb(this,null,function*(){e?yield this.publishSmall(this._room.videoManager.smallMode):yield this.unpublishSmall()})}publishSmall(e){return Yb(this,arguments,function(e){var t=this;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.localMainVideoTrack;return function*(){var r;if(!t.singlePC)return;if("canvas"===e&&!BL())return void t._log.warn("canvas mode small stream is not supported");let n=t._peerConnection.getTransceivers(),{sender:o}=n[2],s=yield t.doPublishSmall(e,i),a="canvas"===e?524700:524701;_L.addSuccessEvent({key:a}),s?(null!=(r=t.singlePC)&&r.enableInsertableStreams&&t.createEncodedStreams(o,8),t.initSenderTransform(o,8),yield t.singlePC.setTransceiverDirection(Qk.SENDONLY,[2]),t.updateMediaSettings(),yield t.doPublishChange(),o.track&&(t._blackSmallVideoDetectionId=qJ.start({track:o.track,room:t._room,isUplink:!0,userId:t.userId,onBlack:()=>{t._log.warn("small video is black");let i="canvas"===e?524700:524701;_L.addFailedEvent({key:i,error:10002}),qJ.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0}}))):_L.addFailedEvent({key:a,error:10001})}()})}doPublishSmall(e){return Yb(this,arguments,function(e){var t=this;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.localMainVideoTrack;return function*(){if(!t.singlePC)return null;t._log.info("publish small",e);let r=t._peerConnection.getTransceivers(),{sender:n}=r[2];if("canvas"===e&&t._room.videoManager.smallTrack)return yield n.replaceTrack(t._room.videoManager.smallTrack),"canvas";if("api"===e&&null!=i&&i.outMediaTrack&&null!=i&&i.small){yield n.replaceTrack(null==i?void 0:i.outMediaTrack);let e=n.getParameters(),r=SN(null==i?void 0:i.profile,null==i?void 0:i.small);return t._log.info("small scaleResolutionDownBy",r),e.encodings[0].scaleResolutionDownBy=r,n.setParameters(e),"api"}return t._log.warn("small track can not be enabled, smallMode: ".concat(t._room.videoManager.smallMode,", smallTrack: ").concat(!!t._room.videoManager.smallTrack,", bigVideoTrack: ").concat(!(null==i||!i.outMediaTrack))),null}()})}unpublishSmall(){return Yb(this,null,function*(){this.singlePC&&(this._log.info("unpublish small"),yield this._peerConnection.getTransceivers()[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(Qk.INACTIVE,[2]),this.updateMediaSettings(),yield this.doPublishChange(),qJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)})}installTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach(e=>{e&&(null==e||e.on("mute",this.sendMutedFlag,this),null==e||e.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach(e=>{e&&(null==e||e.off("mute",this.sendMutedFlag,this),null==e||e.off("unmute",this.sendMutedFlag,this))})}unpublish(e){return Yb(this,arguments,function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){var e;yield null==(e=t.singlePC)?void 0:e.waitForPeerConnectionConnected();let n=r&&r===t.localAuxVideoTrack||i&&i===t.localAuxAudioTrack,o=null==r?void 0:r.outMediaTrack,s=t._peerConnection.getSenders(),a=[];i&&(n?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localMainAudioTrack&&!t.localAuxAudioTrack&&(yield s[0].replaceTrack(null),a.push(0))),o&&(n?(yield s[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=Wb(Hb({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),a.push(3)):(yield s[1].replaceTrack(null),yield s[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=Wb(Hb({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),a.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.singlePC.setTransceiverDirection(Qk.INACTIVE,a),yield t.doPublishChange(!1)):yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),null==r||r.emit("connection-state-changed",{prevState:t._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Yb(this,null,function*(){let t={state:this.publishingState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponseWithRetry({command:cj,data:t,responseCommand:tj.PUBLISH_STATE_CHANGE_RESULT,enableLog:e,retries:3});this.checkPublishResultCode(i.data.code,i.data.message)})}doUnpublish(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._signalChannel.sendWaitForResponse({command:lj,commandDesc:"unpublish",responseCommand:tj.UNPUBLISH_RESULT,enableLog:e}).catch(e=>{if(e.getCode()===ak.API_CALL_TIMEOUT||e.getCode()===ak.API_CALL_ABORTED)return Promise.resolve();throw e})}updateMediaSettings(){var e,t;this._mediaSettings.videoCodec=(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264",this._mediaSettings.videoDecCodec=(null==(t=this.singlePC)?void 0:t.downlinkVideoCodec)||"h264";let i=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:r,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:r=this._publishingLocalVideoTrack),ex){if(i&&i.outMediaTrack){let e=i.outMediaTrack.getSettings();this._mediaSettings.audioChannel=e.channelCount||1,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=e.sampleRate||0}if(r&&r.outMediaTrack){let e=r.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=r;this._mediaSettings.videoWidth=(e.width||0)/t||0,this._mediaSettings.videoHeight=(e.height||0)/t||0,this._mediaSettings.videoFps=e.frameRate||0,this._mediaSettings.videoBps=1e3*r.profile.bitrate,r.small&&(this._mediaSettings.smallVideoWidth=r.small.width,this._mediaSettings.smallVideoHeight=r.small.height,this._mediaSettings.smallVideoFps=r.small.frameRate,this._mediaSettings.smallVideoBps=1e3*r.small.bitrate)}if(n&&n.outMediaTrack){let e=n.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=n;this._mediaSettings.auxVideoWidth=(e.width||0)/t||0,this._mediaSettings.auxVideoHeight=(e.height||0)/t||0,this._mediaSettings.auxVideoFps=e.frameRate||0,this._mediaSettings.auxVideoBps=1e3*n.profile.bitrate}}else i&&i.outMediaTrack&&(this._mediaSettings.audioChannel=i.profile.channelCount,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=i.profile.sampleRate),r&&r.outMediaTrack&&(this._mediaSettings.videoWidth=r.profile.width,this._mediaSettings.videoHeight=r.profile.height,this._mediaSettings.videoFps=r.profile.frameRate,this._mediaSettings.videoBps=1e3*r.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:Aj,data:this._mediaSettings,responseCommand:tj.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{0!==e.data.code&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return Yb(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(t?Xk.AUXILIARY:Xk.MAIN," stream")),KL()&&(yield this.addTrackByTransceiver(e,t))})}addTrackByTransceiver(e,t){return Yb(this,null,function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===Xk.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),1===n&&null!=(i=this.localMainVideoTrack)&&i.small&&this._room.videoManager.smallTrack&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===Qk.INACTIVE&&(yield this.singlePC.setTransceiverDirection(Qk.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()})}removeTrack(e){return Yb(this,null,function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(t?Xk.AUXILIARY:Xk.MAIN," stream")),KL()&&(yield this.removeTrackByTransceiver(e,t))})}removeTrackByTransceiver(e,t){return Yb(this,null,function*(){if(!e.mediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===Xk.AUDIO)yield i[0].sender.replaceTrack(null);else{let e=t?3:1;yield i[e].sender.replaceTrack(null),1===e&&this._room.videoManager.hasSmall&&(yield i[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(Qk.INACTIVE,[e])}this.updateMediaSettings(),yield this.doPublishChange()})}replaceTrack(e){return Yb(this,null,function*(){var t;let i=null==(t=this._peerConnection)?void 0:t.getSenders(),r=e.outMediaTrack||e.mediaTrack;if(!i||0===i.length||!r||i.find(e=>e.track===r))return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(r.kind," track ").concat(r.id," ").concat(r.label," on ").concat(n?Xk.AUXILIARY:Xk.MAIN," stream")),r.kind===Xk.AUDIO&&i[0]&&(yield i[0].replaceTrack(r)),r.kind===Xk.VIDEO&&(!n&&i[1]&&(yield i[1].replaceTrack(r)),n&&i[3]&&(yield i[3].replaceTrack(r))),!0})}setBandwidth(e){return Yb(this,arguments,function(e){var t=this;let{bandwidth:i,type:r,videoType:n}=e;return function*(){if(t.singlePC){let e={};r===Xk.AUDIO?e.audio=i:"big"===n?e.bigVideo=i:"small"===n?e.smallVideo=i:e.auxVideo=i,yield t.singlePC.setBandwidth(e)}}()})}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this.muteState))),this._signalChannel.sendWaitForResponseWithRetry({command:sj,responseCommand:tj.MUTE_RESULT,data:this.muteState,retries:3}).catch(()=>{}))}handleConnectionStateChange(e){"CONNECTED"===e.state&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&BM.emit(WM.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xk.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===Xk.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===Xk.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===Xk.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===Xk.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===OD?(this._log.error(tL.NOT_SUPPORTED_H264ENCODE),new lk({code:ak.NOT_SUPPORTED_H264,message:nL({key:eL.NOT_SUPPORTED_H264ENCODE})})):new lk({code:ak.UNKNOWN,message:nL({key:eL.SIGNAL_RESPONSE_FAILED,data:{signalResponse:tj.PUBLISH_RESULT,code:e,message:t}})})}onSinglePCReconnected(){return Yb(this,null,function*(){this.isMainStreamPublished&&(this._log.warn("republish main stream"),yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(this._log.warn("republish aux stream"),yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0}))})}};Kb([pU(function(e){let{localVideoTrack:t}=e;null==t||t.once("6",this.onVideoEncodeFailed,this)})],zJ.prototype,"publish",1),Kb([pU(function(e){let{localVideoTrack:t}=e;null==t||t.off("6",this.onVideoEncodeFailed,this)})],zJ.prototype,"unpublish",1);var YJ=(e=>(e[e.audio=1]="audio",e[e.bigVideo=2]="bigVideo",e[e.smallVideo=3]="smallVideo",e[e.auxVideo=4]="auxVideo",e))(YJ||{}),XJ=zJ;function QJ(e){return Object.keys(e).filter(t=>e[t])}var ZJ=class extends KJ{constructor(e){super(Wb(Hb({},e),{isUplink:!1})),qb(this,"_flag",0),qb(this,"isRobot",!1),qb(this,"role","anchor"),qb(this,"remoteAudioTrack"),qb(this,"remoteVideoTrack"),qb(this,"remoteAuxiliaryTrack"),qb(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),qb(this,"jitterBufferTimeoutId",-1),qb(this,"_videoCodec"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=new PH(this._room,this),this.remoteVideoTrack=new LH(this._room,this),this.remoteAuxiliaryTrack=new xH(this._room,this),this.initialize()}get videoCodec(){var e;return this._videoCodec||(null==(e=this.singlePC)?void 0:e.downlinkVideoCodec)||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){return{audio:this.remoteAudioTrack.isSubscribed||this.remoteAudioTrack.isSubscribing,video:this.remoteVideoTrack.isBig&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),smallVideo:this.remoteVideoTrack.isSmall&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),auxiliary:this.remoteAuxiliaryTrack.isSubscribed||this.remoteAuxiliaryTrack.isSubscribing}}get muteState(){return rN(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,i,r;e!==this._flag&&(this._flag=e,null==(t=this.remoteAudioTrack)||t.onFlagChanged(),null==(i=this.remoteVideoTrack)||i.onFlagChanged(),null==(r=this.remoteAuxiliaryTrack)||r.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===Xk.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){this.installEvents()}close(e){clearTimeout(this.jitterBufferTimeoutId),super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents(),this.removeDownlink()}installEvents(){this.singlePC&&(this.listeners("track").includes(this.onTrack)||this.singlePC.on("track",this.onTrack,this),this.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||this.singlePC.on("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.on("decode-failed",this.onDecodeFailed,this))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.off("decode-failed",this.onDecodeFailed,this))}emitConnectionStateChangedEvent(e){var t,i;let r=this._currentState,n=super.emitConnectionStateChangedEvent(e);return n&&r!==e&&(null==(t=this.remoteVideoTrack)||t.emit("connection-state-changed",{prevState:r,state:e}),null==(i=this.remoteAuxiliaryTrack)||i.emit("connection-state-changed",{prevState:r,state:e})),n}onTrack(e){var t,i;let r=e.streams[0],{track:n,receiver:o}=e;if(!r.id.includes(this.tinyId))return;let s=r.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(s," ").concat(n.kind));let a=Xk.AUDIO;n.kind===Xk.VIDEO&&(a=s===Xk.MAIN?Xk.VIDEO:Xk.AUXILIARY);let c=this.remoteAudioTrack;a===Xk.VIDEO?c=this.remoteVideoTrack:a===Xk.AUXILIARY&&(c=this.remoteAuxiliaryTrack),null==(t=this.singlePC)||t.receiverRemoteTrackMap.set(o,c),null!=(i=this.singlePC)&&i.scriptTransformWorker&&this.initReceiverTransform(o,s,n.kind===Xk.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(o),c.setInputMediaStreamTrack(n)}createEncodedStreams(e){if(!this.singlePC.insertableStreamsAbortMap.has(e)){let t=e.createEncodedStreams(),i=new AbortController,r={abortController:i,enqueue:t=>{var i,r,n;let o=null==(i=this.singlePC)?void 0:i.receiverRemoteTrackMap.get(e);return o&&("video"!==o.kind||null!=(r=this.singlePC)&&r.isUsingH264||null!=(n=this.singlePC)&&n.isUsingH265)?o.decodeFrame(t):t}};t.readable.pipeThrough(new TransformStream({transform:(e,t)=>{let i=r.enqueue(e);i&&t.enqueue(i)}})).pipeTo(t.writable,i).catch(e=>{"destory"!==e&&this._log.warn(e)}),this.singlePC.addAbortController(e,i)}}initReceiverTransform(e,t,i){!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker||e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!0,isAudio:i,userId:this.userId,streamType:t}))}subscribe(e,t){return Yb(this,null,function*(){var i,r;try{let n=!0;if(this._log.info("subscribe ".concat(t," ").concat(QJ(e))),this.hasSSRC){let t="subscribe_change";Object.values(e).find(e=>!0===e)||(t="unsubscribe"),yield this.sendSubscription(t,e)}else{if(yield this._room.switchRoomSubedReq,null!=(i=this.singlePC)&&i.autoSubscribedUserMap.size){let e=this.singlePC.autoSubscribedUserMap.get(this.userId);if(e){this.singlePC.autoSubscribedUserMap.delete(this.userId);let t=null==(r=this.singlePC.autoSubscribedSsrcGroups.get(this._room.roomId))?void 0:r[e.groupIndex];t&&(this.ssrc={audio:t.audioSsrc,video:t.bigVideoSsrc,videoRtx:t.bigVideoRtxSsrc,auxiliary:t.auxVideoSsrc,auxiliaryRtx:t.auxVideoRtxSsrc},n=!1)}}yield this.doSubscribe(e,n),this.checkTrackEnded(e)}let{user:o,mediaTrack:s}=this.remoteVideoTrack;e.smallVideo&&s?(_L.addSuccessEvent({key:524702}),this._blackSmallVideoDetectionId=qJ.start({track:s,isUplink:!1,room:this._room,userId:this.userId,onBlack:()=>{this._log.warn("small video is black, auto change to big"),this._room.changeType(!1,o),_L.addFailedEvent({key:524702}),qJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}})):(qJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}catch(Ik){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(Ik.message," ").concat(JSON.stringify(this.muteState))),new lk({code:ak.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):Ik}})}checkTrackEnded(e){var t,i,r;if((e.audio&&"ended"===(null==(t=this.remoteAudioTrack.mediaTrack)?void 0:t.readyState)||e.video&&"ended"===(null==(i=this.remoteVideoTrack.mediaTrack)?void 0:i.readyState)||e.auxiliary&&"ended"===(null==(r=this.remoteAuxiliaryTrack.mediaTrack)?void 0:r.readyState))&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),oM&&cM<92)return;this.singlePC.startReconnection()}}unsubscribe(e){return Yb(this,arguments,function(e){var t=this;let{remoteTracks:i,streamType:r}=e;return function*(){var e;if("main"===r&&!t.isMainStreamSubscribed||"auxiliary"===r&&!t.isAuxStreamSubscribed)return void t._log.info("".concat(r," stream already unsubscribed"));let n=Hb({},t.subscribeState);i.forEach(e=>{switch(e.mediaType){case 1:n.audio=!1;break;case 4:n.video=!1;break;case 8:n.smallVideo=!1;break;case 2:n.auxiliary=!1}});let o="subscribe_change";Object.values(n).find(e=>!0===e)||(o="unsubscribe"),t._log.info("".concat("unsubscribe"===o?o:"subscribe"," ").concat(r," [").concat(QJ(n),"]")),"unsubscribe"===o&&(null==(e=t.singlePC)||e.removeDownlinkQueue.add(t.tinyId)),yield t.sendSubscription(o,n),"main"===r&&(qJ.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0),"unsubscribe"===o&&(yield t.removeDownlink())}()})}sendSubscription(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscribeState,i={srcTinyId:this.tinyId,srcUserId:this.userId},r=uj,n=tj.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=hj,n=tj.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:r,data:i,responseCommand:n,timeout:1e4,retries:3}).then(t=>{let{data:i}=t;if(0!==i.code){let t=new lk({code:i.code,message:nL({key:eL.ERROR_MESSAGE,data:{type:e,message:i.message}})});throw this._log.error(t),t}})}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}setDelay(e){let{audioDelay:t,videoDelay:i}=e;this.remoteAudioTrack.stat.end2EndDelay=t,this.remoteVideoTrack.stat.end2EndDelay=i}onSinglePCReconnected(){return Yb(this,null,function*(){(this.ssrc.audio||this.ssrc.video||this.ssrc.auxiliary)&&(this._log.warn("resubscribe ".concat(JSON.stringify(this.subscribeState))),yield this.doSubscribe(this.subscribeState),this.remoteAudioTrack.checkDecodeResult(),this.remoteVideoTrack.checkDecodeResult(),this.remoteAuxiliaryTrack.checkDecodeResult())})}get hasSSRC(){return this.ssrc.audio&&this.ssrc.video&&this.ssrc.auxiliary}doSubscribe(){return Yb(this,arguments,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.subscribeState,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){if(e.singlePC){e.singlePC.addDownlinkQueue.add(e.tinyId),yield e.singlePC.waitForPeerConnectionConnected();try{if(i||!e.hasSSRC){let i={audioSsrc:jJ(),bigVideoSsrc:jJ(),bigVideoRtxSsrc:jJ(),auxVideoSsrc:jJ(),auxVideoRtxSsrc:jJ()},{audioSsrc:n,bigVideoSsrc:o,bigVideoRtxSsrc:s,auxVideoSsrc:a,auxVideoRtxSsrc:c}=i;e.ssrc={audio:n,video:o,videoRtx:s,auxiliary:a,auxiliaryRtx:c},e.singlePC.addDownlinkQueue.delete(e.tinyId),yield e.singlePC.addDownlink({userId:e.userId,tinyId:e.tinyId,ssrc:e.ssrc});try{let r=yield e._signalChannel.sendWaitForResponseWithRetry({command:kj,responseCommand:tj.SPC_SUBSCRIBE_RESULT,data:{srcUserId:e.userId,srcTinyId:e.tinyId,audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,customData:!1,ssrc:i},retries:3,retryTimeout:0});if(0!==r.data.code&&-10036!==r.data.code)throw new lk({code:r.data.code,message:r.data.message})}catch(r){throw yield e.removeDownlink(),r}return}e.singlePC.addDownlinkQueue.delete(e.tinyId),yield e.singlePC.addDownlink({userId:e.userId,tinyId:e.tinyId,ssrc:e.ssrc})}finally{if(!fx)return;let{main:t,aux:i}=e._room.jitterBufferDelay||{},{jitterDelay:r=t,jitterDelayAux:n=i}=e._room.scheduleResult.config||{};(Bw(r)||Bw(n))&&e.setJitterBufferDelay({mainDelay:r,auxDelay:n})}}}()})}removeDownlink(){return Yb(this,null,function*(){if(!this.singlePC)return;this.ssrc={audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0},this.singlePC.removeDownlinkQueue.delete(this.tinyId);let e=this._room.scheduleResult.config;(null!=e&&e.jitterDelay||null!=e&&e.jitterDelayAux)&&this.setJitterBufferDelay({mainDelay:0,auxDelay:0}),yield this.singlePC.removeDownlink(this.userId)})}setJitterBufferDelay(e){let{mainDelay:t,auxDelay:i}=e;if(!fx||!this.singlePC||!this._peerConnection||FN(t)&&FN(i))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(t," aux: ").concat(i));let r=this.singlePC.getReceiversByUserId(this.userId);return Bw(t)&&(this.remoteAudioTrack.jitterBufferDelay=t,this.remoteVideoTrack.jitterBufferDelay=t),Bw(i)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=i,FN(t)&&(this.remoteAudioTrack.jitterBufferDelay=i)),new Promise(e=>{this.doSetJitterBufferDelay({mainDelay:t,auxDelay:i,receivers:r,resolve:e})})}doSetJitterBufferDelay(e){let{mainDelay:t,auxDelay:i,receivers:r,resolve:n}=e;try{if(0===t&&0===i)return r.forEach(e=>e.jitterBufferTarget=0),n();if(r.forEach(e=>{var r;let n=e.track===this.remoteAuxiliaryTrack.outMediaTrack||FN(t)&&e.track===this.remoteAudioTrack.outMediaTrack;if(n&&FN(i)||!n&&FN(t))return;let o=n?i||0:t,s=(e.jitterBufferTarget||0)+100;s>o||(e.jitterBufferTarget=s,this._log.debug("set ".concat(n?"aux ":"").concat(null==(r=null==e?void 0:e.track)?void 0:r.kind," jitterBuffer delay ").concat(s," -> ").concat(o)))}),!r.find(e=>{let r=e.track===this.remoteAuxiliaryTrack.outMediaTrack?i||0:t;return e.jitterBufferTarget<r}))return this._log.info("set jitterBuffer main: ".concat(t," aux: ").concat(i," done")),n();this.jitterBufferTimeoutId=setTimeout(()=>{this.doSetJitterBufferDelay({mainDelay:t,auxDelay:i,receivers:r,resolve:n})},1e3)}catch(Ik){this._log.warn("set jitterBuffer delay error: ".concat(Ik)),clearTimeout(this.jitterBufferTimeoutId),n()}}get audioReceiver(){var e;return(null==(e=this.singlePC)?void 0:e.getReceiversByUserId(this.userId)[0])||null}onDecodeFailed(){"h265"===this._room.downlinkVideoCodec&&this._room.requestRemoteFallbackToH264()}};Kb([yU(),_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise((t,r)=>{let n=e=>{this.off("closed",n),r(new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.CONNECTION_ABORTED,data:e})}))};this.on("closed",n),e.apply(this,i).then(t,r).finally(()=>{this.off("closed",n)})})})],ZJ.prototype,"subscribe",1),Kb([yU()],ZJ.prototype,"unsubscribe",1),Kb([IU(()=>"jitter")],ZJ.prototype,"setJitterBufferDelay",1);var $J=ZJ;var eK=Jb(Xb());var tK=class e extends eK.EventEmitter{constructor(e,t){super(),this.room=e,this.signalChannel=t,qb(this,"log"),qb(this,"cmdIdSeqMap",new Map),qb(this,"messageMap",new Map),this.log=JM.createLogger({id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),t.on(tj.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",e=>{[...this.messageMap.keys()].forEach(t=>{t.split("_").slice(0,-1).join("_")===e&&this.messageMap.delete(t)})})}send(e){let{cmdId:t,data:i}=e,r=this.cmdIdSeqMap.get(t)||Math.floor(16383*Math.random()),n={cmdId:t,msg:btoa(String.fromCharCode(...new Uint8Array(i))),ordered:!0,reliable:!0,streamSeq:r};this.cmdIdSeqMap.set(t,r+1),this.signalChannel.send(Nj,n),this.log.debug("send custom msg: ".concat(JSON.stringify(n)))}onReceiveMsg(t){let{data:i}=t.data,r=this.room.tinyIdToUserIdMap.get(i.srcTinyId);if(r){let t={userId:r,cmdId:i.cmdId,seq:i.streamSeq,data:Uint8Array.from(atob(i.msg),e=>e.charCodeAt(0)).buffer};if(i.ordered){let i="".concat(r,"_").concat(t.cmdId),n=this.messageMap.get(i);if(n&&0!==n.lastSeq)if(Math.abs(n.lastSeq-t.seq)>e.SEQ_INTERVAL)this.messageMap.set(i,{lastSeq:t.seq,cachedMessageMap:new Map}),this.emitMessage(t);else if(t.seq>n.lastSeq){if(t.seq===n.lastSeq+1)this.emitMessage(t);else if(!n.cachedMessageMap.has(t.seq)){let e=setTimeout(()=>this.emitMessage(t,!0),5e3);n.cachedMessageMap.set(t.seq,{message:t,timeoutId:e})}}else this.log.debug("drop message ".concat(t.userId,"-").concat(t.cmdId,"-").concat(t.seq));else n||(n={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(i,n),setTimeout(()=>this.emitMessage(t,!0),100)),n.cachedMessageMap.set(t.seq,{message:t})}else this.emit("message",t)}else{this.log.warn("receive msg from unknown user, wait peer-join tinyId: ".concat(i.srcTinyId));let e=r=>{r.tinyId===i.srcTinyId&&(this.room.off("peer-join",e),this.onReceiveMsg(t))};this.room.on("peer-join",e),EN(2e3).then(()=>this.room.off("peer-join",e))}}emitMessage(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i;let r=this.messageMap.get("".concat(e.userId,"_").concat(e.cmdId)),n=e;if(r){if(t){let e=[...r.cachedMessageMap.values()].sort((e,t)=>e.message.seq-t.message.seq);e[0]&&(n=e[0].message)}0!==r.lastSeq&&n.seq-r.lastSeq>1&&this.log.debug("msg lost userId: ".concat(n.userId," seq: ").concat(r.lastSeq," -> ").concat(n.seq)),r.lastSeq=n.seq,clearTimeout(null==(i=r.cachedMessageMap.get(n.seq))?void 0:i.timeoutId),r.cachedMessageMap.delete(n.seq)}this.log.debug("receive custom msg: ".concat(JSON.stringify(n))),this.emit("message",n);let o=null==r?void 0:r.cachedMessageMap.get(n.seq+1);o&&this.emitMessage(o.message)}};qb(tK,"SEQ_INTERVAL",300);var iK,rK=tK,{isString:nK,isUndefined:oK,getNetworkType:sK,isEmpty:aK}=gk,cK=class extends yJ{constructor(e){super(e),qb(this,"_businessInfo"),qb(this,"userManager"),qb(this,"_version"),qb(this,"_heartbeat",-1),qb(this,"_lastHeartBeatTime",-1),qb(this,"_stats"),qb(this,"_joinTimeout",-1),qb(this,"_firstPublishedList",null),qb(this,"_joinReject",null),qb(this,"_isRelayChanged",!1),qb(this,"sdpSemantics"),qb(this,"signalChannel",null),qb(this,"uplinkConnection",null),qb(this,"singlePC",null),qb(this,"enableSPC",zL),qb(this,"_changeBigSmallRecords",new Map),qb(this,"networkQuality"),qb(this,"_iceTransportPolicy"),qb(this,"forceRelay",!1),qb(this,"_turnServers",[]),qb(this,"_iceServersFromJoin"),qb(this,"_syncUserListInterval",-1),qb(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),qb(this,"enableSEI",!1),qb(this,"_enableAudioVolumeEvaluation",!1),qb(this,"_audioVolumeIntervalId",0),qb(this,"_enableMultiAuxStream",!1),qb(this,"_pureAudioPushMode",!1),qb(this,"_customMessageManager"),qb(this,"preferHW",!1),qb(this,"healthDetector"),qb(this,"playoutDelay"),qb(this,"jitterBufferDelay"),qb(this,"_updateAudioLevelTaskId",-1),qb(this,"switchRoomSubedReq"),qb(this,"resolveSwitchRoomSubedReq"),this._stats=new Zj(this,this._log),this.userManager=new WH(this.userId,this._log),this._version=vk,this.sdpSemantics=ND,oK(e.sdpSemantics)?zM.isUnifiedPlanDefault()&&(this.sdpSemantics=wD):this.sdpSemantics=e.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(sK())),e.iceTransportPolicy&&(this._iceTransportPolicy=e.iceTransportPolicy),this._enableMultiAuxStream=!oK(e.enableMultiAuxStream)&&e.enableMultiAuxStream,this.enableSEI=e.enableSEI&&zL,!oK(e.enableSPC)&&zL&&(this.enableSPC=e.enableSPC),this.preferHW=!!e.preferHW,this._initBusinessInfo(e),this.healthDetector=new OJ(this)}get isMainStreamPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.isMainStreamPublished)}get isMainAudioPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.localMainAudioTrack)}get isAuxStreamPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.isAuxStreamPublished)}get hasAuxStream(){return[...this.remotePublishedUserMap.values()].findIndex(e=>e.muteState.hasAuxiliary)>=0}get userMap(){return this.userManager.userMap}get remotePublishedUserMap(){return this.userManager.remotePublishedUserMap}get tinyIdToUserIdMap(){return new Map([...this.userMap.values()].map(e=>[e.tinyId,e.userId]))}get videoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264"}get downlinkVideoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.downlinkVideoCodec)||"h264"}join(e,t,i){return Yb(this,null,function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",e=>{this.emit("peer-join",e)}),this.userManager.on("2",e=>{this.closeDownLinkConnection(e,"remote user exitRoom"),this.emit("peer-leave",e)}),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",e=>{var t=((e,t)=>{var i={};for(var r in e)xb.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&Pb)for(var r of Pb(e))t.indexOf(r)<0&&Vb.call(e,r)&&(i[r]=e[r]);return i})(e,[]);BM.emit(WM.REMOTE_PUBLISH_STATE_CHANGED,Hb({room:this},t)),this.emit("remote-publish-state-changed",Hb({},t))}),this.joinParams=e,new Promise((t,i)=>Yb(this,null,function*(){var r,n;this._joinReject=i;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(o){if(!(o instanceof lk&&o.code===ak.SPC_INITIALIZED_FAILED))return i(o);null==(r=this.signalChannel)||r.destroy(),yield this.initialize()}let s=Zw();yield this.doJoin(e,null==(n=this.singlePC)?void 0:n.clientAbility),_L.addSuccessEvent({key:521708,cost:Zw()-s}),t(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(QM){_L.addFailedEvent({key:521708,error:QM}),i(QM)}this._joinReject=null}))})}initSinglePC(){return Yb(this,null,function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new BJ({signalChannel:this.signalChannel,room:this,enableCustomMessage:!1}),this.singlePC.on("sei-message",e=>this.emit("sei-message",e)),this.singlePC.on("dump",e=>this.emit("dump",e)),this.singlePC.once("error",()=>this.fallbackToMPC());try{return yield this.singlePC.initialize()}catch(Sk){throw this.fallbackToMPC(),new lk({code:ak.SPC_INITIALIZED_FAILED,message:null==Sk?void 0:Sk.message})}}})}doJoin(e,t){return new Promise((i,r)=>Yb(this,null,function*(){var n,o,s;e.privateMapKey&&(this.privateMapKey=e.privateMapKey),e.latencyLevel&&(this.latencyLevel=e.latencyLevel),this.signalChannel.once(XG,e=>{this.clearJoinTimeout(),BM.emit(WM.JOIN_SIGNAL_CONNECTION_END,{room:this,error:e}),r(e)}),Hw(null==(o=null==(n=this.scheduleResult)?void 0:n.config)?void 0:o.singlePC)&&zL&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2),t&&this.playoutDelay&&(t.playoutDelay=this.playoutDelay);let a={roomId:String(e.roomId||e.strRoomId),useStringRoomId:this.useStringRoomId,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel,trtcRole:e.role,trtcScene:"live"===this.scene?2:1,sdpSemantics:this.sdpSemantics,version:this._version,ua:navigator&&navigator.userAgent||"",terminalType:UM(),netType:Rw(),bussinessInfo:this._businessInfo,ability:t,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0,isChorus:!!this.enableChorus,enableNtpAudioFrame:!!this.enableChorus&&vL()};this._log.debug("join room signal data: ".concat(JSON.stringify(a)));let c=5e3;null!=(s=this.scheduleResult.config)&&s.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(c=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout(()=>{r(new lk({code:ak.JOIN_ROOM_FAILED,message:nL({key:eL.JOIN_ROOM_TIMEOUT})}))},c),BM.emit(WM.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?Cj:rj,a),this.signalChannel.once(tj.JOIN_ROOM_RESULT,t=>Yb(this,null,function*(){this.clearJoinTimeout();let{code:n,message:o,data:s,tinyId:a}=t.data;BM.emit(WM.JOIN_RECEIVED_CMD_RES,{room:this,code:n}),0===n?(this._log.info("Join room success, start heartbeat"),a&&(this.tinyId=a),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=s.publishers,this._iceServersFromJoin=s.iceServer?[s.iceServer]:[],this.singlePC&&this.singlePC.setIceServers(this.getIceServers()).then(()=>{var t;null==(t=this.singlePC)||t.connect(Wb(Hb({},s.ability),{useVp8:s.ability.useVp8||!!e.useVp8,useH265:s.ability.useH265||!!e.useH265})).catch(()=>{})}),i()):(this._log.error("Join room failed result: ".concat(n," error: ").concat(o)),r(new lk({code:ak.JOIN_ROOM_FAILED,extraCode:n,message:nL({key:eL.JOIN_ROOM_FAILED,data:{error:o,code:n}})})))}))}))}reJoin(){return Yb(this,null,function*(){if(this.isJoined)try{this._log.warn("reJoin pending: ".concat(this.joinParams.roomId));let e,t=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,t.push(this.initSinglePC().then(t=>(e=t,t)))),this.signalChannel&&(this.signalChannel.close(),t.push(this.signalChannel.connect())),yield Promise.all(t),yield this.doJoin(Wb(Hb({},this.joinParams),{role:"anchor"===this.role?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),e),this._log.warn("reJoin success"),Gx.logSuccessEvent({userId:this.userId,eventType:CD.REJOIN}),this.singlePC){let e=t=>{var i;"CONNECTED"===t.state&&(null==(i=this.singlePC)||i.off(LJ.CONNECTION_STATE_CHANGED,e),this.uplinkConnection instanceof XJ&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach(e=>{e.installEvents(),e.onSinglePCReconnected()}))};this.singlePC.on(LJ.CONNECTION_STATE_CHANGED,e),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof Qj&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(Sk){this._log.warn("reJoin fail ".concat(Sk)),this.reset(),Gx.logFailedEvent({userId:this.userId,eventType:CD.REJOIN,error:Sk}),this.emit("error",new lk({code:ak.JOIN_ROOM_FAILED,message:nL({key:eL.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")})}initialize(){return Yb(this,null,function*(){let e,{mainUrl:t,backupUrl:i}=this.getSignalChannelUrl(),r=this.signalChannel||function(e){let t=[...Pj.values()].find(t=>t.room.userId===e&&!t.room.isJoined);return t||null}(this.userId),n=!!(r&&r.isConnected&&r.keepAlive&&r.userId===this.userId&&r.room===this);return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(e=this.scheduleResult.domains[0]),this._log.info("".concat(n?"reuse":"setup"," signal channel")),n?(r.url=t,r.backupUrl=i,r.room=this,this.signalChannel=r):(r&&r.close(),this.signalChannel=new xj({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:t,backupUrl:i,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?e:void 0}),this._customMessageManager=new rK(this,this.signalChannel),this._customMessageManager.on("message",e=>{this.emit("custom-message",e)})),this.networkQuality||(this.networkQuality=new iJ({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(iJ.EVENT_NETWORK_QUALITY,e=>{var t;this.emit("network-quality",e),null==(t=this.singlePC)||t.detectTCPAndUDP(e)})),Hx(this,this.signalChannel).add(qG,e=>{BM.emit(WM.SIGNAL_CONNECTION_STATE_CHANGED,Hb({room:this},e)),this.emit("signal-connection-state-changed",e)}).add(YG,e=>{this.reset(),this.emit("error",e)}).add(tj.PEER_JOIN,e=>{let{srcTinyId:t,userId:i,role:r}=e.data.data;this.userManager.addUser({userId:i,tinyId:t,role:r})}).add(tj.PEER_LEAVE,e=>{let{userId:t,reason:i=0}=e.data.data;this.userManager.deleteUser(t,i)}).add(tj.UPDATE_REMOTE_MUTE_STAT,e=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(e.data)}).add(tj.CLIENT_BANNED,e=>{let t=e.data.data,{reason:i}=t;if(Gx.uploadEvent({log:"stat-banned:".concat(i),userId:this.userId}),"user_time_out"===i)return this._log.warn("".concat(i," last heart beat time: ").concat(this._lastHeartBeatTime," interval: ").concat(Date.now()-this._lastHeartBeatTime,", visibility: ").concat(document.visibilityState)),void this.reJoin();this._log["kick"===i?"error":"info"]("user was banned because of [".concat(i,"]")),this.reset(),this.emit("banned",{reason:i})}).add(tj.SEND_SWITCH_ROOM_SUBED_REQ,e=>{if(!this.singlePC)return;let{subList:t}=e.data.data;t.forEach(e=>{this.singlePC.autoSubscribedUserMap.set(e.userId,e)}),this.resolveSwitchRoomSubedReq()}).add(tj.FALLBACK_CODEC,e=>Yb(this,null,function*(){var t,i,r,n,o;let s=e.data.data;this._log.warn("fallback codec enableH265Enc: ".concat(null==(t=s.videoControlInfo)?void 0:t.enableH265Enc)),0===(null==(i=s.videoControlInfo)?void 0:i.enableH265Enc)&&"h265"===(null==(r=this.singlePC)?void 0:r.videoCodec)&&(_L.addCount({key:513e3}),yield null==(n=this.singlePC)?void 0:n.switchVideoEncoder("h264"),yield null==(o=this.uplinkConnection)?void 0:o.sendMediaSettings())})),this.signalChannel.once(KG,e=>{this.tinyId=e.signalInfo.tinyId,BM.emit(WM.JOIN_SIGNAL_CONNECTION_END,{room:this})}),BM.emit(WM.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),n&&BM.emit(WM.JOIN_SIGNAL_CONNECTION_END,{room:this}),n})}setSignalChannel(e){this.signalChannel=e,e||Wx(this)}leave(){return Yb(this,null,function*(){var e;try{yield this.doHeartbeat()}catch(AD){}this._log.info("leave() => leaving room"),BM.emit(WM.LEAVE_SEND_CMD,{room:this}),null==(e=this.signalChannel)||e.send(nj),this.switchRoomSubedReq=void 0})}clearNetworkQuality(){this.networkQuality&&(this.networkQuality.stop(),delete this.networkQuality)}closeConnections(){this.remotePublishedUserMap.forEach(e=>{this.closeDownLinkConnection(e.userId,"you exitRoom")})}clearJoinTimeout(){clearTimeout(this._joinTimeout),this._joinTimeout=-1}startHeartbeat(){-1===this._heartbeat&&(this._heartbeat=Vx.run("ric",this.doHeartbeat.bind(this),{delay:2e3}),this.enableChorus&&this.startUpdateNTPTime())}stopHeartbeat(){-1!==this._heartbeat&&(this._log.info("stopHeartbeat"),Vx.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return Yb(this,null,function*(){var e;let t=this.badCaseDetector.getMonitorFreeze(),i=yield this._stats.getStatsReport({uplinkConnection:this.uplinkConnection,downlinkConnections:this.remotePublishedUserMap,freezeMap:t});this.badCaseDetector.resetMonitor();let r=null!=(e=this.signalChannel)&&e.isConnected?function(e){if(VH.has(e)){let t=VH.get(e).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 VH.delete(e),t}return[]}(this.userId):[],n=Wb(Hb({str_sdk_version:Tk,uint64_datetime:(new Date).getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:r,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},i),{msg_device_info:Hb({uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:Rw()},i.msg_device_info)});if(this.heartbeatReport=n,BM.emit(WM.HEARTBEAT_REPORT,{room:this,report:n}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(oj,n);let e=Date.now();this._lastHeartBeatTime>0&&e-this._lastHeartBeatTime>1e4&&this._log.warn("heartbeat took ".concat(e-this._lastHeartBeatTime)),this._lastHeartBeatTime=e,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",Wb(Hb({},n),{bytes_sent:this._stats.totalBytesSent+this.signalChannel.bytesSent,bytes_received:this._stats.totalBytesReceived+this.signalChannel.bytesReceived}))}!this._isRelayChanged&&this.isRelayMaybeFailed()&&(this.reJoin(),this._isRelayChanged=!0)})}onPublishedUserList(e){if(!this.isJoined)return;let t=e.data.userList.filter(e=>e.flag!==aD).map(e=>{let{userId:t,srcTinyId:i,flag:r}=e;t===this.userId&&(this.uplinkConnection&&(this.uplinkConnection.flag=r),this.localPublishFlag!==r&&(this.localPublishFlag=r,this.emit("local-publish-flag-changed",r)));let n=this.remotePublishedUserMap.get(t);return n&&this.checkSubscribeBigSmallVideo(n),{userId:t,tinyId:i,flag:r}});e.data.mixRobotList.forEach(e=>{let{userId:i,srcTinyId:r,flag:n,mixUserList:o}=e;t.unshift({userId:i,tinyId:r,flag:n,isRobot:!0,mixUserList:o})}),e.data.fakeMixUser&&(e.data.fakeMixUser.tinyId=e.data.fakeMixUser.srcTinyId,t.push(e.data.fakeMixUser)),BM.emit(WM.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:t}),t.find(e=>e.userId===this.userId)||(this.localPublishFlag=0,this.emit("local-publish-flag-changed",0)),this.userManager.setRemotePublishedUserList(t)}closeUplink(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"you unpublished";this.uplinkConnection&&(this.localTracks.size>0&&this.uplinkConnection.doUnpublish().catch(()=>{}),this.uplinkConnection.close(e),this.uplinkConnection instanceof Qj&&(this.uplinkConnection=null)),this.localTracks.forEach(e=>e.unpublish()),this.localTracks.clear()}createDownlinkConnection(e){let{userId:t,tinyId:i,flag:r,isRobot:n}=e,o=new(this.singlePC?$J:zj)({userId:t,tinyId:i,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:r,isRobot:n});this.userManager.addRemotePublishedUser(o),this.installDownlinkEvents(o,t),this.emit("remote-published",o)}closeDownLinkConnection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"remote user unpublished",i=this.remotePublishedUserMap.get(e);i&&(i.close(t),this.emit("remote-unpublished",i))}installDownlinkEvents(e,t){e.on("error",e=>{let i=e.getCode();i!==ak.ICE_TRANSPORT_ERROR&&(i===ak.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(t),this.emit("error",e))}),e.on("connection-state-changed",t=>{this.emit("media-connection-state-changed",Wb(Hb({},t),{userId:e.userId}))}),e.on("firewall-restriction",()=>{this.emit("firewall-restriction")})}startSyncUserListInterval(){-1===this._syncUserListInterval&&(this._syncUserListInterval=Vx.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){Vx.clearTask(this._syncUserListInterval),this._syncUserListInterval=-1}syncUserList(){return this.getUserList().then(e=>{this.userManager.setUserList(e)}).catch(e=>{this._log.debug("sync user list failed: ".concat(e))})}getUserList(){var e;return null!=(e=this.signalChannel)&&e.isConnected?this.signalChannel.sendWaitForResponse({command:Sj,responseCommand:tj.USER_LIST_RES,enableLog:!1,timeout:2e3}).then(e=>{let{data:t}=e,{code:i,message:r}=t;if(0===i)return(t.data&&t.data.userList||[]).map(e=>{let{userId:t,srcTinyId:i,role:r}=e;return{userId:t,tinyId:i,role:r}});throw nL({key:eL.SIGNAL_RESPONSE_FAILED,data:{signalResponse:tj.USER_LIST_RES,code:i,message:r}})}):Promise.reject("not connected")}getAllConnections(){let e=[...this.remotePublishedUserMap.values()];return this.uplinkConnection&&e.push(this.uplinkConnection),e}isRelayMaybeFailed(){if(this.signalChannel&&!this.signalChannel.isOnline||!Hj)return!1;if(this.singlePC)return this.singlePC.reconnectionCount>6;let e=this.getAllConnections();if(0===e.length)return!1;for(let t=0;t<e.length;t++)if(e[t].getReconnectionCount()<6)return!1;return!0}checkConnectionsToReconnect(){var e;this.singlePC?(null==(e=this.singlePC.getPeerConnection())?void 0:e.connectionState)===vD.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach(e=>{if(e instanceof Wj&&!e.getIsReconnecting()){let t=e.getPeerConnection();t&&t.connectionState===vD.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}})}fallbackToMPC(){return Yb(this,null,function*(){var e;if(this._log.warn("fallback to multi pc"),Gx.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,null==(e=this.singlePC)||e.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin()),this.uplinkConnection){let e=this.uplinkConnection;this.uplinkConnection=new Qj({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),e.isMainStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localMainAudioTrack,localVideoTrack:e.localMainVideoTrack,isAuxiliary:!1})),e.isAuxStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localAuxAudioTrack,localVideoTrack:e.localAuxVideoTrack,isAuxiliary:!0})),e.close()}for(let t of[...this.remotePublishedUserMap.values()]){let e=new zj({userId:t.userId,tinyId:t.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:t.flag,remoteAudioTrack:t.remoteAudioTrack,remoteVideoTrack:t.remoteVideoTrack,remoteAuxiliaryTrack:t.remoteAuxiliaryTrack});this.installDownlinkEvents(e,t.userId),this.remotePublishedUserMap.set(t.userId,e),t.isMainStreamSubscribed&&(yield e.subscribe(t.subscribeState,"main")),t.isAuxStreamSubscribed&&(yield e.subscribe(t.subscribeState,"auxiliary"))}})}destroy(){this.isDestroyed||(this.signalChannel&&(this._log.info("destroying SignalChannel"),this.signalChannel.close(),this.signalChannel=null),super.destroy(),this._joinReject&&(this._joinReject(new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.removeAllListeners(),this.healthDetector.destroy(),Vx.clearTask(this._audioVolumeIntervalId))}switchRole(e){return Yb(this,null,function*(){this.role!==e&&("audience"===e&&this.uplinkConnection&&this.closeUplink("you switch role to audience"),yield this.doSwitchRole(e))})}doSwitchRole(e){let t={command:Ij,data:{role:"anchor"===e?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:tj.SWITCH_ROLE_RES,retries:1};return this._log.info("switchRole signal data: ".concat(JSON.stringify(t.data))),this.signalChannel.sendWaitForResponseWithRetry(t).then(t=>{let{code:i,message:r}=t.data;if(0!==i)throw new lk({code:ak.SWITCH_ROLE_FAILED,message:nL({key:eL.SWITCH_ROLE_FAILED,data:{message:r,code:i}})});this.role=e}).catch(e=>{throw e instanceof lk&&e.getCode()===ak.API_CALL_TIMEOUT&&(e=new lk({code:ak.SWITCH_ROLE_FAILED,message:nL({key:eL.SWITCH_ROLE_TIMEOUT})})),this._log.error(e),e})}publish(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yb(this,null,function*(){let e={},i={};t.forEach(t=>{t instanceof qB&&(t instanceof kH?i.audio=t:e.audio=t),t instanceof QB&&(t instanceof CH&&2===t.mediaType?i.video=t:e.video=t)});let r=aK(e),n=aK(i);(!r||!n)&&!this.uplinkConnection&&(this.singlePC?this.uplinkConnection=new XJ({userId:this.userId,tinyId:this.tinyId,room:this}):this.uplinkConnection=new Qj({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),this.uplinkConnection.on("connection-state-changed",e=>{this.emit("media-connection-state-changed",Wb(Hb({},e),{userId:this.userId}))}),this.uplinkConnection.on("firewall-restriction",()=>{this.emit("firewall-restriction")}),this.uplinkConnection.on("error",e=>{let t=e.getCode();t!==ak.ICE_TRANSPORT_ERROR&&(t===ak.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",e))}));let o=t.map(e=>e.kind).join(",");r||(this._log.info("publish() => main ".concat(o)),yield this.uplinkConnection.publish({localAudioTrack:e.audio,localVideoTrack:e.video,isAuxiliary:!1}),this._log.info("main is published")),n||(this._log.info("publish() => aux ".concat(o)),yield this.uplinkConnection.publish({localAudioTrack:i.audio,localVideoTrack:i.video,isAuxiliary:!0}),this._log.info("aux is published"))})}unpublish(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yb(this,null,function*(){if("live"===this.scene&&"anchor"!==this.role||!this.isMainStreamPublished&&!this.isAuxStreamPublished||!this.uplinkConnection)return;let e={},i={};t.forEach(t=>{!t.mediaTrack||!t.isPublished||(t instanceof qB&&(t instanceof kH?i.audio=t:e.audio=t),t instanceof QB&&(t instanceof CH&&2===t.mediaType?i.video=t:e.video=t))});try{let r=t.map(e=>e.kind).join(",");aK(e)||(this._log.info("unpublish() => main ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:e.audio,localVideoTrack:e.video})),aK(i)||(this._log.info("unpublish() => aux ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:i.audio,localVideoTrack:i.video}))}catch(nP){}0===this.localTracks.size&&this.closeUplink("you unpublished")})}addTrack(e){if(!this.uplinkConnection||!e.mediaTrack)return Promise.resolve();let t=this.uplinkConnection.addTrack(e);return e.publish(this,t),t}removeTrack(e){return this.uplinkConnection&&e.mediaTrack?this.uplinkConnection.removeTrack(e).then(t=>(e.unpublish(),t)):Promise.resolve()}replaceTrack(e){return this.uplinkConnection&&e.mediaTrack&&QL()?this.uplinkConnection.replaceTrack(e).then(t=>{t&&BM.emit(WM.LOCAL_TRACK_REPLACED,{track:e})}):Promise.resolve()}setBandWidth(e){return Yb(this,null,function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(e),yield this.uplinkConnection.sendMediaSettings())})}enableSmall(e){return Yb(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();e&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:Xk.VIDEO,videoType:Xk.SMALL,bandwidth:this.uplinkConnection.localMainVideoTrack.small.bitrate})),yield this.uplinkConnection.enableSmall(e)})}subscribe(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yb(this,null,function*(){if(t=t.filter(e=>!e.isSubscribed),0===t.length)return;let{userId:e}=t[0],i=this.remotePublishedUserMap.get(e);if(!i)return;let r=t.find(e=>2===e.mediaType)?"auxiliary":"main";try{let n=Hb({},i.subscribeState);t.forEach(e=>{switch(e.mediaType){case 1:n.audio=!0;break;case 4:n.video=!0;break;case 8:n.smallVideo=!0;break;case 2:n.auxiliary=!0}});let o=this._changeBigSmallRecords.get(e);o&&o.options.smallVideo&&i.muteState.hasSmall&&n.video&&(n.video=!1,n.smallVideo=!0),BM.emit(WM.SUBSCRIBE_START,{room:this,streamType:r,remotePublishedUser:i,subscribeState:n}),this._log.info("subscribe() => ".concat(e," ").concat(r," [").concat(Kj(n),"] prev: [").concat(Kj(i.subscribeState),"]")),yield i.subscribe(n,r),this._log.info("subscribe ".concat(e," ").concat(r," done"));for(let e of t)e.mediaTrack||(yield e.waitHasMediaTrack());BM.emit(WM.SUBSCRIBE_SUCCESS,{room:this,streamType:r,remotePublishedUser:i})}catch(Ik){let i=Ik instanceof lk?Ik.getCode():ak.UNKNOWN,n=Ik;throw Ik instanceof lk?i===ak.REMOTE_STREAM_NOT_EXIST&&(n=new lk({code:ak.API_CALL_ABORTED,message:nL({key:eL.API_CALL_ABORTED,data:{message:Ik.message,userId:e,streamType:r}})}),this._log.warn(n)):(n=new lk({code:i,message:nL({key:eL.SUBSCRIBE_FAILED,data:{message:Ik.message,userId:e,streamType:r}})}),this._log.error(n)),n}})}unsubscribe(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yb(this,null,function*(){let{userId:e}=t[0],i=this.remotePublishedUserMap.get(e);if(!i)return;let r=t.find(e=>2===e.mediaType)?"auxiliary":"main";this._log.info("unsubscribe() => ".concat(e," ").concat(r));try{yield i.unsubscribe({remoteTracks:t,streamType:r})}catch(Ik){this._log.warn("unsubscribe() => failed ".concat(Ik))}t.forEach(e=>{e.unsubscribe(),8===e.mediaType&&e.setMediaType(4)}),BM.emit(WM.UNSUBSCRIBE_SUCCESS,{room:this,streamType:r,remotePublishedUser:i})})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAudioVolumeEvaluation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3,t=arguments.length>1?arguments[1]:void 0;if(e<=0)return this._enableAudioVolumeEvaluation=!1,void Vx.clearTask(this._audioVolumeIntervalId);e=Math.floor(Math.max(e,100)),BM.emit(WM.AUDIO_LEVEL_INTERVAL,{interval:e}),this._audioVolumeIntervalId&&Vx.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=Vx.run("intervalInWorker",()=>{var i;FV.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(e,t);let r=[];null==(i=this.remotePublishedUserMap)||i.forEach(e=>{if(e.muteState.hasAudio){!FV.isRunning&&e.muteState.audioAvailable&&e.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(e):e.remoteAudioTrack.volume=0;let t=Math.floor(100*e.remoteAudioTrack.getAudioLevel());r.push({userId:e.userId,volume:t,floatVolume:e.remoteAudioTrack.getInternalAudioLevel()})}}),this.emit("audio-volume",r)},{delay:e,backgroundTask:t})}updateAudioLevelFromSenderStat(e,t){return Yb(this,null,function*(){var i;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||-1!==this._updateAudioLevelTaskId)return;let r=null==(i=this.uplinkConnection.getPeerConnection())?void 0:i.getSenders()[0];if(!r)return;let n=Math.max(e,500);this._log.warn("updateAudioLevelFromSenderStat ".concat(n)),this._updateAudioLevelTaskId=Vx.run("intervalInWorker",()=>Yb(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let e=yield r.getStats();if(this._updateAudioLevelTaskId<0)return;let{localMainAudioTrack:t}=this.uplinkConnection;e.forEach(e=>{"media-source"===e.type&&e.audioLevel&&(t.volume=e.audioLevel)})}),{delay:n,backgroundTask:t})})}stopUpdateAudioLevelFromSenderStat(){var e;-1!==this._updateAudioLevelTaskId&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),Vx.clearTask(this._updateAudioLevelTaskId),this._updateAudioLevelTaskId=-1,null!=(e=this.uplinkConnection)&&e.localMainAudioTrack&&(this.uplinkConnection.localMainAudioTrack.volume=0))}updateDownlinkAudioLevelFromReceiver(e){var t;let{audioReceiver:i}=e;if(!$L||!i)return;let r=null==(t=i.getSynchronizationSources()[0])?void 0:t.audioLevel;Bw(r)?e.remoteAudioTrack.volume=Math.min(2*r,1):i.getStats().then(t=>{t.forEach(t=>{"inbound-rtp"===t.type&&Bw(t.audioLevel)&&(e.remoteAudioTrack.volume=t.audioLevel)})})}getLocalAudioStats(){return Yb(this,null,function*(){var e;let t={};return t[this.userId]={bytesSent:0,packetsSent:0,audioLevel:0},null!=(e=this.uplinkConnection)&&e.localMainAudioTrack&&(t[this.userId]=this.uplinkConnection.localMainAudioTrack.stat),t})}getLocalVideoStats(){return Yb(this,null,function*(){var e,t;let i={};return i[this.userId]=(null==(t=null==(e=this.uplinkConnection)?void 0:e.localMainVideoTrack)?void 0:t.stat)||{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0},i})}getTransportStats(){return Yb(this,null,function*(){let e={rtt:0,downlinksRTT:{}};if(this.uplinkConnection){let t=yield this._stats.getSenderStats(this.uplinkConnection);e.rtt=t.rtt}for(let[,t]of this.remotePublishedUserMap){let i=yield this._stats.getReceiverStats(t);e.downlinksRTT[i.userId]=i.rtt}return e})}getRemoteVideoStats(e){return Yb(this,null,function*(){let t={};for(let[i,r]of this.remotePublishedUserMap)"main"===e&&r.muteState.hasVideo&&(t[i]=r.remoteVideoTrack.stat),"auxiliary"===e&&r.muteState.hasAuxiliary&&(t[i]=r.remoteAuxiliaryTrack.stat);return t})}getRemoteAudioStats(){return Yb(this,null,function*(){let e={};for(let[t,i]of this.remotePublishedUserMap)i.muteState.hasAudio&&(e[t]=i.remoteAudioTrack.stat);return e})}setTurnServer(e,t){this._log.info("set turn server: ".concat(JSON.stringify(e)," ").concat(t||""));let i=[];Array.isArray(e)?e.forEach(e=>i.push(gk.getTurnServer(e))):gk.isPlainObject(e)&&i.push(gk.getTurnServer(e)),this._turnServers=i,t&&(this._iceTransportPolicy=t)}sendStartMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:gj,data:e,timeout:5e3,responseCommand:tj.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendStopMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:Ej,data:e,timeout:5e3,responseCommand:tj.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendStartPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?pj:_j,data:e,timeout:5e3,responseCommand:t?tj.START_PUBLISH_TENCENT_CDN_RES:tj.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendStopPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?mj:fj,data:e,timeout:5e3,responseCommand:t?tj.STOP_PUBLISH_TENCENT_CDN_RES:tj.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendStartPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:Tj,data:e,timeout:5e3,responseCommand:tj.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendUpdatePushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:vj,data:e,timeout:5e3,responseCommand:tj.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendStopPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:yj,data:e,timeout:5e3,responseCommand:tj.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"}).catch(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e})}sendAbilityStatus(e){var t;null==(t=this.signalChannel)||t.sendWaitForResponse({command:Dj,data:e,timeout:5e3,responseCommand:tj.ABILITY_STATUS_REPORT_RESULT,commandDesc:"ability status report"}).catch(e=>{})}getIceServers(e){var t,i;return this._turnServers.length>0?this._turnServers:null!=(t=this.scheduleResult.iceServers)&&t.length?this.scheduleResult.iceServers:null!=e&&e.length?e:null!=(i=this._iceServersFromJoin)&&i.length?this._iceServersFromJoin:[]}getIceTransportPolicy(){return this.forceRelay?"relay":this._iceTransportPolicy||this.scheduleResult.iceTransportPolicy||"all"}getLogger(){return this._log}enableAIVoice(){throw new Error("Method not implemented.")}getSignalChannelUrl(){let e={mainUrl:"",backupUrl:""},t=gk.getEnv();return t?(e.mainUrl="wss://".concat(t,".rtc.qq.com"),e.backupUrl=e.mainUrl):this.proxy_ws?(e.mainUrl=this.proxy_ws,e.backupUrl=e.mainUrl):this.proxy_unified?(e.mainUrl="wss://".concat(this.proxy_unified),e.backupUrl=e.mainUrl):Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(e.mainUrl="wss://".concat(this.scheduleResult.domains[0]),e.backupUrl=e.mainUrl,this.scheduleResult.domains[1]&&(e.backupUrl="wss://".concat(this.scheduleResult.domains[1]))),e}getSignalInfo(){var e;return(null==(e=this.signalChannel)?void 0:e.getSignalInfo())||{clientIp:"",relayIp:""}}reset(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.stopSyncUserListInterval(),this.stopHeartbeat(),this.closeConnections(),this.clearNetworkQuality(),this.closeUplink("you exitRoom"),this.signalChannel&&(e&&this.signalChannel.keepAlive&&this.signalChannel.isConnected?this.signalChannel.stopKeepAliveIn(3600):(this.signalChannel.close(),this.setSignalChannel(null))),this._stats.reset(),this.userManager.clear(),this.userManager.removeAllListeners(),this.singlePC&&(this.singlePC.close(),this.singlePC=null),this.scheduleResult={domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}}checkSubscribeBigSmallVideo(e){return Yb(this,null,function*(){let{subscribeState:t,userId:i,muteState:{hasSmall:r,hasVideo:n}}=e;if(!r&&!n||!t.video&&!t.smallVideo)return;let o=this._changeBigSmallRecords.get(i);if(!o||o.isSubscribing||o.reSubscribeCount<=0)return;let{options:s,reSubscribeCount:a}=o;if(s.video&&t.video||s.smallVideo&&t.smallVideo&&r)return;let c={audio:e.remoteAudioTrack.isSubscribed||e.remoteAudioTrack.isSubscribing,auxiliary:e.remoteAuxiliaryTrack.isSubscribed||e.remoteAuxiliaryTrack.isSubscribing,video:s.video,smallVideo:s.smallVideo};try{if(!r&&c.smallVideo&&(c.video=!0,c.smallVideo=!1),c.smallVideo===t.smallVideo&&c.video===t.video)return;o.isSubscribing=!0,o.reSubscribeCount=a-1,yield e.subscribe(c,"main"),e.remoteVideoTrack.setMediaType(c.smallVideo?8:4),this._log.info("change [".concat(i,"] to ").concat(c.smallVideo?"small":"big"," video successfully. count ").concat(zD-o.reSubscribeCount,".")),o.isSubscribing=!1,o.reSubscribeCount=zD}catch(l){this._log.info("change [".concat(i,"] to ").concat(c.smallVideo?"small":"big"," video failed. count ").concat(zD-o.reSubscribeCount,". reason: ").concat(l)),o.isSubscribing=!1,0===o.reSubscribeCount&&this._changeBigSmallRecords.delete(i)}})}changeType(e,t){let i={options:{video:!e,smallVideo:e},isSubscribing:!1,reSubscribeCount:zD};this._changeBigSmallRecords.set(t.userId,i),this._log.info("set [".concat(t.userId,"] video prefer type: ").concat(e?"small":"big")),this.emit("subscribe-small-video-changed",{userId:t.userId,isSmall:e});let r=this.remotePublishedUserMap.get(t.userId);r&&this.checkSubscribeBigSmallVideo(r)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(e){this._businessInfo=e.businessInfo;let t={};if(nK(e.businessInfo)&&(t=JSON.parse(e.businessInfo)),!oK(e.pureAudioPushMode)){if(!Number.isInteger(Number(e.pureAudioPushMode)))throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_PURE_AUDIO})});this._pureAudioPushMode=e.pureAudioPushMode,t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.pure_audio_push_mod=this._pureAudioPushMode}if(!oK(e.userDefineRecordId)){let i=/^[A-Za-z0-9_-]{1,64}$/gi;if(null===e.userDefineRecordId.match(i))throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_USER_DEFINE_RECORDID})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_record_id=e.userDefineRecordId}if(!oK(e.userDefinePushArgs)){if(!(nK(e.userDefinePushArgs)&&String(e.userDefinePushArgs)&&String(e.userDefinePushArgs).length<=256))throw new lk({code:ak.INVALID_PARAMETER,message:nL({key:eL.INVALID_USER_DEFINE_PUSH_ARGS})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_push_args=e.userDefinePushArgs}aK(t)||(this._businessInfo=JSON.stringify(t))}sendCustomMessage(e){var t;null==(t=this._customMessageManager)||t.send(e)}enableInsertableStreams(){return Yb(this,null,function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&rx)return this.singlePC.enableInsertableStreams=!0,yield this.singlePC.waitForPeerConnectionConnected(),yield this.singlePC.startReconnection()})}sendSignalMessage(e){var t;return this.signalChannel?null==(t=this.signalChannel)?void 0:t.sendWaitForResponseWithRetry(e):Promise.reject(new lk({code:ak.INVALID_OPERATION,message:"not join"}))}get enableCodecPipeline(){return this.videoManager.encodePipeline.length>0||this.videoManager.decodePipeline.length>0||this.audioManager.encodePipeline.length>0||this.audioManager.decodePipeline.length>0}get scriptTransformWorker(){var e;return null==(e=this.singlePC)?void 0:e.scriptTransformWorker}switchRoom(e){return Yb(this,null,function*(){var t;if(!this.signalChannel||!this.singlePC)return;let{roomId:i,strRoomId:r,userSig:n,privateMapKey:o}=e,s=(null==(t=this.scheduleResult.config)?void 0:t.autoSubscribeCount)||(null==e?void 0:e.autoSubscribeCount)||1,a=String(this.useStringRoomId?r:i),c=[];for(let e=0;e<s;e++)c.push({audioSsrc:jJ(),bigVideoSsrc:jJ(),bigVideoRtxSsrc:jJ(),auxVideoSsrc:jJ(),auxVideoRtxSsrc:jJ()});let l={currRoomId:this.roomId,targetRoomId:a,useStringRoomId:this.useStringRoomId,ability:this.singlePC.clientAbility,userSig:n,privateMapKey:null!=o?o:this.privateMapKey,subscribe:c};this.singlePC.autoSubscribedUserMap.clear(),this.singlePC.autoSubscribedSsrcGroups.clear(),this.singlePC.autoSubscribedSsrcGroups.set(a,c);let d,u=this.roomId;this.roomId=this.useStringRoomId?r:String(i),this.switchRoomSubedReq=new Promise(e=>{this.resolveSwitchRoomSubedReq=e,EN(5e3).then(e)}),BM.emit(WM.SWITCH_ROOM_START,{room:this}),yield this.singlePC.waitForPeerConnectionConnected();try{d=yield this.signalChannel.sendWaitForResponse({command:Oj,responseCommand:tj.SEND_SWITCH_ROOM_RES,data:l});let{code:e,message:t}=d.data;if(0!==e){this._log.error("switch room failed. result: ".concat(e," error: ").concat(t));let i=new lk({code:ak.SWITCH_ROOM_FAILED,extraCode:e,message:t});throw BM.emit(WM.SWITCH_ROOM_FAILED,{room:this,error:i}),i}this.userSig=n,oK(o)||(this.privateMapKey=o),BM.emit(WM.SWITCH_ROOM_SUCCESS,{room:this,currentRoomId:u,targetRoomId:a})}catch(h){throw this.singlePC.autoSubscribedSsrcGroups.clear(),this.roomId=u,this.resolveSwitchRoomSubedReq(),h}})}isSwitchRoomSupported(){var e;let t="unable to use switchRoom API, fallback to exitRoom and enterRoom.";return!0!==(null==(e=this.scheduleResult.config)?void 0:e.switchRoom)?(this._log.warn("".concat(t," Reason: this sdkAppId is not supported, please contact us [https://trtc.io/contact] to enable it.")),!1):"live"!==this.scene?(this._log.warn("".concat(t," Reason: the scene is not 'live'.")),!1):"audience"!==this.role?(this._log.warn("".concat(t," Reason: the role is not 'audience'.")),!1):!!this.singlePC||(this._log.warn("".concat(t," Reason: is not using single peerConnection.")),!1)}requestRemoteFallbackToH264(){var e;null==(e=this.singlePC)||e.requestRemoteFallbackToH264()}startUpdateNTPTime(){if(!this.signalChannel)return;let e=[];for(let t=0;t<5;t++)e.push(this.updateNTPTime());return Promise.all(e).then(e=>{var t;let i=e[0].offset,r=e[0].offset;e.forEach(e=>{i=Math.min(e.offset,i),r=Math.max(e.offset,r)});let n=Math.floor(e.reduce((e,t)=>e+t.rtt,0)/e.length),o=Math.floor(e.reduce((e,t)=>e+t.offset,0)/e.length);(r-i>30||n>50)&&setTimeout(()=>this.startUpdateNTPTime(),5e3),hk(o),null==(t=this.scriptTransformWorker)||t.postMessage({type:"ntp-offset",data:o}),this._log.debug("ntp updated offset: ".concat(o)),this.emit("ntp-time-updated")}).catch(e=>{this._log.warn("ntp updated failed: ".concat(e))})}updateNTPTime(){let e=Date.now();return this.signalChannel.sendWaitForResponse({command:Mj,responseCommand:tj.UPDATE_NETWORK_TIME_RESULT,addReceiveTime:!0,data:{clientSendTime:String(e)},enableLog:!1}).then(t=>{let i=Number(t.data.data.serverSendTime),r=Number(t.data.data.serverRecvTime),n=t.data.receiveTime||Date.now();return{rtt:n-e-(r-i),offset:(r-e+(i-n))/2}})}};return Kb([kx(["left",Nx.INIT],"joined"),Jx({settings:{retries:1,timeout:0},onRetrying(e){this._log.warn("join retry ".concat(e))},onRetryFailed(e){this._log.error("join failed",e)},onError(e,t){this._isUsingCachedSchedule&&!this.isDestroyed?(this._log.warn("is using cached schedule, retry join"),wW(!0),this.reset(),t()):this.signalChannel&&this.signalChannel.isConnected&&this.signalChannel.keepAlive?(this._log.warn("is using keepAlive ws, retry join"),this.signalChannel.close(),this.reset(),t()):(this.reset(),t())}}),_U(e=>{let t=new GG;return function(i,r,n){return Yb(this,null,function*(){let o=String(i.roomId||i.strRoomId);if(this.userId=i.userId,this.sdkAppId=i.sdkAppId,this.userSig=i.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,i.privateMapKey=i.privateMapKey||"",this.isJoined)throw new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:o,sdkAppId:this.sdkAppId,room:this}))throw new lk({code:ak.INVALID_OPERATION,message:nL({key:eL.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:o}),this.role=21===i.role?"audience":"anchor",this._log.info("Join() => joining room: ".concat(o," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),BM.emit(WM.JOIN_START,{room:this,roomId:o,params:i});let s=gk.getEnv();s||(s=Fk.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Zk.OLD_CLOUD_LADDER)?s=Fk.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Zk.WEBRTC)&&(s=Fk.WEBRTC))),Gx.setConfig({env:s,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:o}),zM.checkSystemRequirementsInternal(n).then(e=>{this.checkSystemResult=e,jG.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!gk.getEnv()&&(yield this.schedule(i,n));let t=yield e.call(this,i,r,n);return this.roomId=o,this._joinedTimestamp=gk.performanceNow(),BM.emit(WM.JOIN_SUCCESS,{room:this}),30===n&&!i.component&&Gx.uploadEvent({log:"stat-conv-".concat(Number(IM),"-").concat(location.hostname),userId:this.userId}),t}catch(eP){throw t.delete({room:this,roomId:o}),BM.emit(WM.JOIN_FAILED,{room:this,error:eP}),eP}})}})],cK.prototype,"join",1),Kb([kx("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return Yb(this,null,function*(){BM.emit(WM.LEAVE_START,{room:this}),yield e.call(this,...i),BM.emit(WM.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})}),SU("leave room"),Kx({fnName:"publish",validateArgs:!1}),Kx({fnName:"unsubscribe",validateArgs:!1})],cK.prototype,"leave",1),Kb([yU(),_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return Yb(this,null,function*(){if("live"===this.scene&&"anchor"!==this.role||(i=i.filter(e=>e.outMediaTrack&&"ready"===e.state),!i.length))return;BM.emit("61",{room:this});let t=e.apply(this,i);return Promise.all(i.map(e=>e.publish(this,t)))})}),Jx({settings:{retries:ID,timeout:e=>Lw(e)},onError(e,t,i){var r;null!=(r=e.message)&&r.includes("timeout")?(this._log.warn("publish timeout"),t()):(this._log.error("publish failed: ".concat(e)),i(e),BM.emit(WM.PUBLISH_FAILED,{room:this}))}})],cK.prototype,"publish",1),Kb([Kx({fnName:"publish"}),(iK="api-call",function(e,t,i){let r=i.value;return i.value=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let n=TU.get(this);if(n){let e=n.queue.filter((e,i)=>{if(0===i)return!0;let r=!0;return e.args.forEach(e=>{t.find(t=>t===e)||(r=!1)}),!r||(e.reject(new lk({code:ak.API_CALL_ABORTED,message:iK})),!1)});n.queue=e}return r.apply(this,t)},i}),yU(),_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];let n=e.apply(this,i);return i.forEach(e=>e.unpublish()),n}),pU(function(){var e,t;0===this.localTracks.size&&JL()&&(null==(t=null==(e=this.singlePC)?void 0:e.getPeerConnection())||t.getSenders().forEach(e=>e.track&&e.replaceTrack(null)))})],cK.prototype,"unpublish",1),Kb([mU(e=>{if(e.code!==ak.API_CALL_ABORTED)throw e}),IU(e=>e.userId)],cK.prototype,"replaceTrack",1),Kb([IU(function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId}),NH(),_U(e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];let n=e.apply(this,i);return i.forEach(e=>!e.isSubscribed&&e.subscribe(n)),n}),Jx({settings:{retries:ID,timeout:e=>Lw(e)},onError(e,t,i,r){e.message.includes("timeout")?(this._log.warn("subscribe timeout"),t()):(this._log.error("subscribe failed: ".concat(e)),i(e),BM.emit(WM.SUBSCRIBE_FAILED,{room:this,remoteTracks:r}))}})],cK.prototype,"subscribe",1),Kb([Kx({fnName:"subscribe",callback(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.singlePC||t.forEach(e=>{let t=this.remotePublishedUserMap.get(e.userId);t&&!t.isMainStreamSubscribed&&!t.isAuxStreamSubscribed&&t.close("you unsubscribed")})}}),IU(function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId})],cK.prototype,"unsubscribe",1),WG.create=WG._create.bind(WG,cK),mx(30),WG});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TRTC=t()}(this,(function(){function e(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(i){if("default"!==i&&!(i in e)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}}))})),Object.freeze(e)}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=function(e){return e&&e.Math===Math&&e},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),o={},s=function(e){try{return!!e()}catch(t){return!0}},a=!s((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})),c=!s((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),l=c,d=Function.prototype.call,u=l?d.bind(d):function(){return d.apply(d,arguments)},h={},p={}.propertyIsEnumerable,m=Object.getOwnPropertyDescriptor,_=m&&!p.call({1:2},1);h.f=_?function(e){var t=m(this,e);return!!t&&t.enumerable}:p;var f,g,E=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},T=c,v=Function.prototype,y=v.call,S=T&&v.bind.bind(y,y),I=T?S:function(e){return function(){return y.apply(e,arguments)}},A=I,R=A({}.toString),C=A("".slice),b=function(e){return C(R(e),8,-1)},k=s,D=b,w=Object,N=I("".split),O=k((function(){return!w("z").propertyIsEnumerable(0)}))?function(e){return"String"===D(e)?N(e,""):w(e)}:w,M=function(e){return null==e},P=M,L=TypeError,x=function(e){if(P(e))throw new L("Can't call method on "+e);return e},V=O,U=x,F=function(e){return V(U(e))},B="object"==typeof document&&document.all,H=void 0===B&&void 0!==B?function(e){return"function"==typeof e||e===B}:function(e){return"function"==typeof e},W=H,G=function(e){return"object"==typeof e?null!==e:W(e)},j=n,J=H,K=function(e,t){return arguments.length<2?(i=j[e],J(i)?i:void 0):j[e]&&j[e][t];var i},q=I({}.isPrototypeOf),z=n.navigator,Y=z&&z.userAgent,X=Y?String(Y):"",Q=n,Z=X,$=Q.process,ee=Q.Deno,te=$&&$.versions||ee&&ee.version,ie=te&&te.v8;ie&&(g=(f=ie.split("."))[0]>0&&f[0]<4?1:+(f[0]+f[1])),!g&&Z&&(!(f=Z.match(/Edge\/(\d+)/))||f[1]>=74)&&(f=Z.match(/Chrome\/(\d+)/))&&(g=+f[1]);var re=g,ne=re,oe=s,se=n.String,ae=!!Object.getOwnPropertySymbols&&!oe((function(){var e=Symbol("symbol detection");return!se(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ne&&ne<41})),ce=ae&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,le=K,de=H,ue=q,he=Object,pe=ce?function(e){return"symbol"==typeof e}:function(e){var t=le("Symbol");return de(t)&&ue(t.prototype,he(e))},me=String,_e=function(e){try{return me(e)}catch(t){return"Object"}},fe=H,ge=_e,Ee=TypeError,Te=function(e){if(fe(e))return e;throw new Ee(ge(e)+" is not a function")},ve=Te,ye=M,Se=function(e,t){var i=e[t];return ye(i)?void 0:ve(i)},Ie=u,Ae=H,Re=G,Ce=TypeError,be={exports:{}},ke=n,De=Object.defineProperty,we=function(e,t){try{De(ke,e,{value:t,configurable:!0,writable:!0})}catch(i){ke[e]=t}return t},Ne=n,Oe=we,Me="__core-js_shared__",Pe=be.exports=Ne[Me]||Oe(Me,{});(Pe.versions||(Pe.versions=[])).push({version:"3.40.0",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Le=be.exports,xe=Le,Ve=function(e,t){return xe[e]||(xe[e]=t||{})},Ue=x,Fe=Object,Be=function(e){return Fe(Ue(e))},He=Be,We=I({}.hasOwnProperty),Ge=Object.hasOwn||function(e,t){return We(He(e),t)},je=I,Je=0,Ke=Math.random(),qe=je(1..toString),ze=function(e){return"Symbol("+(void 0===e?"":e)+")_"+qe(++Je+Ke,36)},Ye=Ve,Xe=Ge,Qe=ze,Ze=ae,$e=ce,et=n.Symbol,tt=Ye("wks"),it=$e?et.for||et:et&&et.withoutSetter||Qe,rt=function(e){return Xe(tt,e)||(tt[e]=Ze&&Xe(et,e)?et[e]:it("Symbol."+e)),tt[e]},nt=u,ot=G,st=pe,at=Se,ct=function(e,t){var i,r;if("string"===t&&Ae(i=e.toString)&&!Re(r=Ie(i,e)))return r;if(Ae(i=e.valueOf)&&!Re(r=Ie(i,e)))return r;if("string"!==t&&Ae(i=e.toString)&&!Re(r=Ie(i,e)))return r;throw new Ce("Can't convert object to primitive value")},lt=TypeError,dt=rt("toPrimitive"),ut=function(e,t){if(!ot(e)||st(e))return e;var i,r=at(e,dt);if(r){if(void 0===t&&(t="default"),i=nt(r,e,t),!ot(i)||st(i))return i;throw new lt("Can't convert object to primitive value")}return void 0===t&&(t="number"),ct(e,t)},ht=ut,pt=pe,mt=function(e){var t=ht(e,"string");return pt(t)?t:t+""},_t=G,ft=n.document,gt=_t(ft)&&_t(ft.createElement),Et=function(e){return gt?ft.createElement(e):{}},Tt=Et,vt=!a&&!s((function(){return 7!==Object.defineProperty(Tt("div"),"a",{get:function(){return 7}}).a})),yt=a,St=u,It=h,At=E,Rt=F,Ct=mt,bt=Ge,kt=vt,Dt=Object.getOwnPropertyDescriptor;o.f=yt?Dt:function(e,t){if(e=Rt(e),t=Ct(t),kt)try{return Dt(e,t)}catch(i){}if(bt(e,t))return At(!St(It.f,e,t),e[t])};var wt={},Nt=a&&s((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Ot=G,Mt=String,Pt=TypeError,Lt=function(e){if(Ot(e))return e;throw new Pt(Mt(e)+" is not an object")},xt=a,Vt=vt,Ut=Nt,Ft=Lt,Bt=mt,Ht=TypeError,Wt=Object.defineProperty,Gt=Object.getOwnPropertyDescriptor,jt="enumerable",Jt="configurable",Kt="writable";wt.f=xt?Ut?function(e,t,i){if(Ft(e),t=Bt(t),Ft(i),"function"==typeof e&&"prototype"===t&&"value"in i&&Kt in i&&!i[Kt]){var r=Gt(e,t);r&&r[Kt]&&(e[t]=i.value,i={configurable:Jt in i?i[Jt]:r[Jt],enumerable:jt in i?i[jt]:r[jt],writable:!1})}return Wt(e,t,i)}:Wt:function(e,t,i){if(Ft(e),t=Bt(t),Ft(i),Vt)try{return Wt(e,t,i)}catch(r){}if("get"in i||"set"in i)throw new Ht("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var qt=wt,zt=E,Yt=a?function(e,t,i){return qt.f(e,t,zt(1,i))}:function(e,t,i){return e[t]=i,e},Xt={exports:{}},Qt=a,Zt=Ge,$t=Function.prototype,ei=Qt&&Object.getOwnPropertyDescriptor,ti=Zt($t,"name"),ii={EXISTS:ti,PROPER:ti&&"something"===function(){}.name,CONFIGURABLE:ti&&(!Qt||Qt&&ei($t,"name").configurable)},ri=H,ni=Le,oi=I(Function.toString);ri(ni.inspectSource)||(ni.inspectSource=function(e){return oi(e)});var si,ai,ci,li=ni.inspectSource,di=H,ui=n.WeakMap,hi=di(ui)&&/native code/.test(String(ui)),pi=ze,mi=Ve("keys"),_i=function(e){return mi[e]||(mi[e]=pi(e))},fi={},gi=hi,Ei=n,Ti=G,vi=Yt,yi=Ge,Si=Le,Ii=_i,Ai=fi,Ri="Object already initialized",Ci=Ei.TypeError,bi=Ei.WeakMap;if(gi||Si.state){var ki=Si.state||(Si.state=new bi);ki.get=ki.get,ki.has=ki.has,ki.set=ki.set,si=function(e,t){if(ki.has(e))throw new Ci(Ri);return t.facade=e,ki.set(e,t),t},ai=function(e){return ki.get(e)||{}},ci=function(e){return ki.has(e)}}else{var Di=Ii("state");Ai[Di]=!0,si=function(e,t){if(yi(e,Di))throw new Ci(Ri);return t.facade=e,vi(e,Di,t),t},ai=function(e){return yi(e,Di)?e[Di]:{}},ci=function(e){return yi(e,Di)}}var wi={set:si,get:ai,has:ci,enforce:function(e){return ci(e)?ai(e):si(e,{})},getterFor:function(e){return function(t){var i;if(!Ti(t)||(i=ai(t)).type!==e)throw new Ci("Incompatible receiver, "+e+" required");return i}}},Ni=I,Oi=s,Mi=H,Pi=Ge,Li=a,xi=ii.CONFIGURABLE,Vi=li,Ui=wi.enforce,Fi=wi.get,Bi=String,Hi=Object.defineProperty,Wi=Ni("".slice),Gi=Ni("".replace),ji=Ni([].join),Ji=Li&&!Oi((function(){return 8!==Hi((function(){}),"length",{value:8}).length})),Ki=String(String).split("String"),qi=Xt.exports=function(e,t,i){"Symbol("===Wi(Bi(t),0,7)&&(t="["+Gi(Bi(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),i&&i.getter&&(t="get "+t),i&&i.setter&&(t="set "+t),(!Pi(e,"name")||xi&&e.name!==t)&&(Li?Hi(e,"name",{value:t,configurable:!0}):e.name=t),Ji&&i&&Pi(i,"arity")&&e.length!==i.arity&&Hi(e,"length",{value:i.arity});try{i&&Pi(i,"constructor")&&i.constructor?Li&&Hi(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(n){}var r=Ui(e);return Pi(r,"source")||(r.source=ji(Ki,"string"==typeof t?t:"")),e};Function.prototype.toString=qi((function(){return Mi(this)&&Fi(this).source||Vi(this)}),"toString");var zi=Xt.exports,Yi=H,Xi=wt,Qi=zi,Zi=we,$i=function(e,t,i,r){r||(r={});var n=r.enumerable,o=void 0!==r.name?r.name:t;if(Yi(i)&&Qi(i,o,r),r.global)n?e[t]=i:Zi(t,i);else{try{r.unsafe?e[t]&&(n=!0):delete e[t]}catch(s){}n?e[t]=i:Xi.f(e,t,{value:i,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},er={},tr=Math.ceil,ir=Math.floor,rr=Math.trunc||function(e){var t=+e;return(t>0?ir:tr)(t)},nr=rr,or=function(e){var t=+e;return t!=t||0===t?0:nr(t)},sr=or,ar=Math.max,cr=Math.min,lr=function(e,t){var i=sr(e);return i<0?ar(i+t,0):cr(i,t)},dr=or,ur=Math.min,hr=function(e){var t=dr(e);return t>0?ur(t,9007199254740991):0},pr=hr,mr=function(e){return pr(e.length)},_r=F,fr=lr,gr=mr,Er=function(e){return function(t,i,r){var n=_r(t),o=gr(n);if(0===o)return!e&&-1;var s,a=fr(r,o);if(e&&i!=i){for(;o>a;)if((s=n[a++])!=s)return!0}else for(;o>a;a++)if((e||a in n)&&n[a]===i)return e||a||0;return!e&&-1}},Tr={includes:Er(!0),indexOf:Er(!1)},vr=Ge,yr=F,Sr=Tr.indexOf,Ir=fi,Ar=I([].push),Rr=function(e,t){var i,r=yr(e),n=0,o=[];for(i in r)!vr(Ir,i)&&vr(r,i)&&Ar(o,i);for(;t.length>n;)vr(r,i=t[n++])&&(~Sr(o,i)||Ar(o,i));return o},Cr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],br=Rr,kr=Cr.concat("length","prototype");er.f=Object.getOwnPropertyNames||function(e){return br(e,kr)};var Dr={};Dr.f=Object.getOwnPropertySymbols;var wr=K,Nr=er,Or=Dr,Mr=Lt,Pr=I([].concat),Lr=wr("Reflect","ownKeys")||function(e){var t=Nr.f(Mr(e)),i=Or.f;return i?Pr(t,i(e)):t},xr=Ge,Vr=Lr,Ur=o,Fr=wt,Br=function(e,t,i){for(var r=Vr(t),n=Fr.f,o=Ur.f,s=0;s<r.length;s++){var a=r[s];xr(e,a)||i&&xr(i,a)||n(e,a,o(t,a))}},Hr=s,Wr=H,Gr=/#|\.prototype\./,jr=function(e,t){var i=Kr[Jr(e)];return i===zr||i!==qr&&(Wr(t)?Hr(t):!!t)},Jr=jr.normalize=function(e){return String(e).replace(Gr,".").toLowerCase()},Kr=jr.data={},qr=jr.NATIVE="N",zr=jr.POLYFILL="P",Yr=jr,Xr=n,Qr=o.f,Zr=Yt,$r=$i,en=we,tn=Br,rn=Yr,nn=function(e,t){var i,r,n,o,s,a=e.target,c=e.global,l=e.stat;if(i=c?Xr:l?Xr[a]||en(a,{}):Xr[a]&&Xr[a].prototype)for(r in t){if(o=t[r],n=e.dontCallGetSet?(s=Qr(i,r))&&s.value:i[r],!rn(c?r:a+(l?".":"#")+r,e.forced)&&void 0!==n){if(typeof o==typeof n)continue;tn(o,n)}(e.sham||n&&n.sham)&&Zr(o,"sham",!0),$r(i,r,o,e)}},on={};on[rt("toStringTag")]="z";var sn="[object z]"===String(on),an=H,cn=b,ln=rt("toStringTag"),dn=Object,un="Arguments"===cn(function(){return arguments}()),hn=sn?cn:function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(i){}}(t=dn(e),ln))?i:un?cn(t):"Object"===(r=cn(t))&&an(t.callee)?"Arguments":r},pn=hn,mn=String,_n=function(e){if("Symbol"===pn(e))throw new TypeError("Cannot convert a Symbol value to a string");return mn(e)},fn=zi,gn=wt,En=function(e,t,i){return i.get&&fn(i.get,t,{getter:!0}),i.set&&fn(i.set,t,{setter:!0}),gn.f(e,t,i)},Tn=nn,vn=a,yn=I,Sn=Ge,In=H,An=q,Rn=_n,Cn=En,bn=Br,kn=n.Symbol,Dn=kn&&kn.prototype;if(vn&&In(kn)&&(!("description"in Dn)||void 0!==kn().description)){var wn={},Nn=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:Rn(arguments[0]),t=An(Dn,this)?new kn(e):void 0===e?kn():kn(e);return""===e&&(wn[t]=!0),t};bn(Nn,kn),Nn.prototype=Dn,Dn.constructor=Nn;var On="Symbol(description detection)"===String(kn("description detection")),Mn=yn(Dn.valueOf),Pn=yn(Dn.toString),Ln=/^Symbol\((.*)\)[^)]+$/,xn=yn("".replace),Vn=yn("".slice);Cn(Dn,"description",{configurable:!0,get:function(){var e=Mn(this);if(Sn(wn,e))return"";var t=Pn(e),i=On?Vn(t,7,-1):xn(t,Ln,"$1");return""===i?void 0:i}}),Tn({global:!0,constructor:!0,forced:!0},{Symbol:Nn})}var Un={},Fn=Rr,Bn=Cr,Hn=Object.keys||function(e){return Fn(e,Bn)},Wn=a,Gn=Nt,jn=wt,Jn=Lt,Kn=F,qn=Hn;Un.f=Wn&&!Gn?Object.defineProperties:function(e,t){Jn(e);for(var i,r=Kn(t),n=qn(t),o=n.length,s=0;o>s;)jn.f(e,i=n[s++],r[i]);return e};var zn,Yn=K("document","documentElement"),Xn=Lt,Qn=Un,Zn=Cr,$n=fi,eo=Yn,to=Et,io="prototype",ro="script",no=_i("IE_PROTO"),oo=function(){},so=function(e){return"<"+ro+">"+e+"</"+ro+">"},ao=function(e){e.write(so("")),e.close();var t=e.parentWindow.Object;return e=null,t},co=function(){try{zn=new ActiveXObject("htmlfile")}catch(n){}var e,t,i;co="undefined"!=typeof document?document.domain&&zn?ao(zn):(t=to("iframe"),i="java"+ro+":",t.style.display="none",eo.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(so("document.F=Object")),e.close(),e.F):ao(zn);for(var r=Zn.length;r--;)delete co[io][Zn[r]];return co()};$n[no]=!0;var lo=Object.create||function(e,t){var i;return null!==e?(oo[io]=Xn(e),i=new oo,oo[io]=null,i[no]=e):i=co(),void 0===t?i:Qn.f(i,t)},uo=rt,ho=lo,po=wt.f,mo=uo("unscopables"),_o=Array.prototype;void 0===_o[mo]&&po(_o,mo,{configurable:!0,value:ho(null)});var fo=function(e){_o[mo][e]=!0},go=Tr.includes,Eo=fo;nn({target:"Array",proto:!0,forced:s((function(){return!Array(1).includes()}))},{includes:function(e){return go(this,e,arguments.length>1?arguments[1]:void 0)}}),Eo("includes");var To,vo,yo,So={},Io=!s((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Ao=Ge,Ro=H,Co=Be,bo=Io,ko=_i("IE_PROTO"),Do=Object,wo=Do.prototype,No=bo?Do.getPrototypeOf:function(e){var t=Co(e);if(Ao(t,ko))return t[ko];var i=t.constructor;return Ro(i)&&t instanceof i?i.prototype:t instanceof Do?wo:null},Oo=s,Mo=H,Po=G,Lo=No,xo=$i,Vo=rt("iterator"),Uo=!1;[].keys&&("next"in(yo=[].keys())?(vo=Lo(Lo(yo)))!==Object.prototype&&(To=vo):Uo=!0);var Fo=!Po(To)||Oo((function(){var e={};return To[Vo].call(e)!==e}));Fo&&(To={}),Mo(To[Vo])||xo(To,Vo,(function(){return this}));var Bo={IteratorPrototype:To,BUGGY_SAFARI_ITERATORS:Uo},Ho=wt.f,Wo=Ge,Go=rt("toStringTag"),jo=function(e,t,i){e&&!i&&(e=e.prototype),e&&!Wo(e,Go)&&Ho(e,Go,{configurable:!0,value:t})},Jo=Bo.IteratorPrototype,Ko=lo,qo=E,zo=jo,Yo=So,Xo=function(){return this},Qo=function(e,t,i,r){var n=t+" Iterator";return e.prototype=Ko(Jo,{next:qo(+!r,i)}),zo(e,n,!1),Yo[n]=Xo,e},Zo=I,$o=Te,es=G,ts=function(e){return es(e)||null===e},is=String,rs=TypeError,ns=function(e,t,i){try{return Zo($o(Object.getOwnPropertyDescriptor(e,t)[i]))}catch(r){}},os=G,ss=x,as=function(e){if(ts(e))return e;throw new rs("Can't set "+is(e)+" as a prototype")},cs=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=ns(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(r){}return function(i,r){return ss(i),as(r),os(i)?(t?e(i,r):i.__proto__=r,i):i}}():void 0),ls=nn,ds=u,us=H,hs=Qo,ps=No,ms=cs,_s=jo,fs=Yt,gs=$i,Es=So,Ts=ii.PROPER,vs=ii.CONFIGURABLE,ys=Bo.IteratorPrototype,Ss=Bo.BUGGY_SAFARI_ITERATORS,Is=rt("iterator"),As="keys",Rs="values",Cs="entries",bs=function(){return this},ks=function(e,t,i,r,n,o,s){hs(i,t,r);var a,c,l,d=function(e){if(e===n&&_)return _;if(!Ss&&e&&e in p)return p[e];switch(e){case As:case Rs:case Cs:return function(){return new i(this,e)}}return function(){return new i(this)}},u=t+" Iterator",h=!1,p=e.prototype,m=p[Is]||p["@@iterator"]||n&&p[n],_=!Ss&&m||d(n),f="Array"===t&&p.entries||m;if(f&&(a=ps(f.call(new e)))!==Object.prototype&&a.next&&(ps(a)!==ys&&(ms?ms(a,ys):us(a[Is])||gs(a,Is,bs)),_s(a,u,!0)),Ts&&n===Rs&&m&&m.name!==Rs&&(vs?fs(p,"name",Rs):(h=!0,_=function(){return ds(m,this)})),n)if(c={values:d(Rs),keys:o?_:d(As),entries:d(Cs)},s)for(l in c)(Ss||h||!(l in p))&&gs(p,l,c[l]);else ls({target:t,proto:!0,forced:Ss||h},c);return p[Is]!==_&&gs(p,Is,_,{name:n}),Es[t]=_,c},Ds=function(e,t){return{value:e,done:t}},ws=F,Ns=fo,Os=So,Ms=wi,Ps=wt.f,Ls=ks,xs=Ds,Vs=a,Us="Array Iterator",Fs=Ms.set,Bs=Ms.getterFor(Us),Hs=Ls(Array,"Array",(function(e,t){Fs(this,{type:Us,target:ws(e),index:0,kind:t})}),(function(){var e=Bs(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,xs(void 0,!0);switch(e.kind){case"keys":return xs(i,!1);case"values":return xs(t[i],!1)}return xs([i,t[i]],!1)}),"values"),Ws=Os.Arguments=Os.Array;if(Ns("keys"),Ns("values"),Ns("entries"),Vs&&"values"!==Ws.name)try{Ps(Ws,"name",{value:"values"})}catch(EJ){}var Gs=Te,js=Be,Js=O,Ks=mr,qs=TypeError,zs="Reduce of empty array with no initial value",Ys=function(e){return function(t,i,r,n){var o=js(t),s=Js(o),a=Ks(o);if(Gs(i),0===a&&r<2)throw new qs(zs);var c=e?a-1:0,l=e?-1:1;if(r<2)for(;;){if(c in s){n=s[c],c+=l;break}if(c+=l,e?c<0:a<=c)throw new qs(zs)}for(;e?c>=0:a>c;c+=l)c in s&&(n=i(n,s[c],c,o));return n}},Xs={left:Ys(!1),right:Ys(!0)},Qs=s,Zs=function(e,t){var i=[][e];return!!i&&Qs((function(){i.call(null,t||function(){return 1},1)}))},$s=n,ea=X,ta=b,ia=function(e){return ea.slice(0,e.length)===e},ra=ia("Bun/")?"BUN":ia("Cloudflare-Workers")?"CLOUDFLARE":ia("Deno/")?"DENO":ia("Node.js/")?"NODE":$s.Bun&&"string"==typeof Bun.version?"BUN":$s.Deno&&"object"==typeof Deno.version?"DENO":"process"===ta($s.process)?"NODE":$s.window&&$s.document?"BROWSER":"REST",na="NODE"===ra,oa=Xs.left;nn({target:"Array",proto:!0,forced:!na&&re>79&&re<83||!Zs("reduce")},{reduce:function(e){var t=arguments.length;return oa(this,e,t,t>1?arguments[1]:void 0)}});var sa=Xs.right;nn({target:"Array",proto:!0,forced:!na&&re>79&&re<83||!Zs("reduceRight")},{reduceRight:function(e){return sa(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var aa=b,ca=Array.isArray||function(e){return"Array"===aa(e)},la=nn,da=ca,ua=I([].reverse),ha=[1,2];la({target:"Array",proto:!0,forced:String(ha)===String(ha.reverse())},{reverse:function(){return da(this)&&(this.length=this.length),ua(this)}});var pa=_e,ma=TypeError,_a=I([].slice),fa=_a,ga=Math.floor,Ea=function(e,t){var i=e.length;if(i<8)for(var r,n,o=1;o<i;){for(n=o,r=e[o];n&&t(e[n-1],r)>0;)e[n]=e[--n];n!==o++&&(e[n]=r)}else for(var s=ga(i/2),a=Ea(fa(e,0,s),t),c=Ea(fa(e,s),t),l=a.length,d=c.length,u=0,h=0;u<l||h<d;)e[u+h]=u<l&&h<d?t(a[u],c[h])<=0?a[u++]:c[h++]:u<l?a[u++]:c[h++];return e},Ta=Ea,va=X.match(/firefox\/(\d+)/i),ya=!!va&&+va[1],Sa=/MSIE|Trident/.test(X),Ia=X.match(/AppleWebKit\/(\d+)\./),Aa=!!Ia&&+Ia[1],Ra=nn,Ca=I,ba=Te,ka=Be,Da=mr,wa=function(e,t){if(!delete e[t])throw new ma("Cannot delete property "+pa(t)+" of "+pa(e))},Na=_n,Oa=s,Ma=Ta,Pa=Zs,La=ya,xa=Sa,Va=re,Ua=Aa,Fa=[],Ba=Ca(Fa.sort),Ha=Ca(Fa.push),Wa=Oa((function(){Fa.sort(void 0)})),Ga=Oa((function(){Fa.sort(null)})),ja=Pa("sort"),Ja=!Oa((function(){if(Va)return Va<70;if(!(La&&La>3)){if(xa)return!0;if(Ua)return Ua<603;var e,t,i,r,n="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(r=0;r<47;r++)Fa.push({k:t+r,v:i})}for(Fa.sort((function(e,t){return t.v-e.v})),r=0;r<Fa.length;r++)t=Fa[r].k.charAt(0),n.charAt(n.length-1)!==t&&(n+=t);return"DGBEFHACIJK"!==n}}));Ra({target:"Array",proto:!0,forced:Wa||!Ga||!ja||!Ja},{sort:function(e){void 0!==e&&ba(e);var t=ka(this);if(Ja)return void 0===e?Ba(t):Ba(t,e);var i,r,n=[],o=Da(t);for(r=0;r<o;r++)r in t&&Ha(n,t[r]);for(Ma(n,function(e){return function(t,i){return void 0===i?-1:void 0===t?1:void 0!==e?+e(t,i)||0:Na(t)>Na(i)?1:-1}}(e)),i=Da(n),r=0;r<i;)t[r]=n[r++];for(;r<o;)wa(t,r++);return t}});var Ka="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,qa=$i,za=function(e,t,i){for(var r in t)qa(e,r,t[r],i);return e},Ya=q,Xa=TypeError,Qa=function(e,t){if(Ya(t,e))return e;throw new Xa("Incorrect invocation")},Za=or,$a=hr,ec=RangeError,tc=function(e){if(void 0===e)return 0;var t=Za(e),i=$a(t);if(t!==i)throw new ec("Wrong length or index");return i},ic=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1},rc=4503599627370496,nc=ic,oc=function(e){return e+rc-rc},sc=Math.abs,ac=function(e,t,i,r){var n=+e,o=sc(n),s=nc(n);if(o<r)return s*oc(o/r/t)*r*t;var a=(1+t/2220446049250313e-31)*o,c=a-(a-o);return c>i||c!=c?Infinity*s:s*c},cc=Math.fround||function(e){return ac(e,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)},lc=Array,dc=Math.abs,uc=Math.pow,hc=Math.floor,pc=Math.log,mc=Math.LN2,_c={pack:function(e,t,i){var r,n,o,s=lc(i),a=8*i-t-1,c=(1<<a)-1,l=c>>1,d=23===t?uc(2,-24)-uc(2,-77):0,u=e<0||0===e&&1/e<0?1:0,h=0;for((e=dc(e))!=e||Infinity===e?(n=e!=e?1:0,r=c):(r=hc(pc(e)/mc),e*(o=uc(2,-r))<1&&(r--,o*=2),(e+=r+l>=1?d/o:d*uc(2,1-l))*o>=2&&(r++,o/=2),r+l>=c?(n=0,r=c):r+l>=1?(n=(e*o-1)*uc(2,t),r+=l):(n=e*uc(2,l-1)*uc(2,t),r=0));t>=8;)s[h++]=255&n,n/=256,t-=8;for(r=r<<t|n,a+=t;a>0;)s[h++]=255&r,r/=256,a-=8;return s[h-1]|=128*u,s},unpack:function(e,t){var i,r=e.length,n=8*r-t-1,o=(1<<n)-1,s=o>>1,a=n-7,c=r-1,l=e[c--],d=127&l;for(l>>=7;a>0;)d=256*d+e[c--],a-=8;for(i=d&(1<<-a)-1,d>>=-a,a+=t;a>0;)i=256*i+e[c--],a-=8;if(0===d)d=1-s;else{if(d===o)return i?NaN:l?-Infinity:Infinity;i+=uc(2,t),d-=s}return(l?-1:1)*i*uc(2,d-t)}},fc=Be,gc=lr,Ec=mr,Tc=function(e){for(var t=fc(this),i=Ec(t),r=arguments.length,n=gc(r>1?arguments[1]:void 0,i),o=r>2?arguments[2]:void 0,s=void 0===o?i:gc(o,i);s>n;)t[n++]=e;return t},vc=H,yc=G,Sc=cs,Ic=function(e,t,i){var r,n;return Sc&&vc(r=t.constructor)&&r!==i&&yc(n=r.prototype)&&n!==i.prototype&&Sc(e,n),e},Ac=n,Rc=I,Cc=a,bc=Ka,kc=Yt,Dc=En,wc=za,Nc=s,Oc=Qa,Mc=or,Pc=hr,Lc=tc,xc=cc,Vc=_c,Uc=No,Fc=cs,Bc=Tc,Hc=_a,Wc=Ic,Gc=Br,jc=jo,Jc=wi,Kc=ii.PROPER,qc=ii.CONFIGURABLE,zc="ArrayBuffer",Yc="DataView",Xc="prototype",Qc="Wrong index",Zc=Jc.getterFor(zc),$c=Jc.getterFor(Yc),el=Jc.set,tl=Ac[zc],il=tl,rl=il&&il[Xc],nl=Ac[Yc],ol=nl&&nl[Xc],sl=Object.prototype,al=Ac.Array,cl=Ac.RangeError,ll=Rc(Bc),dl=Rc([].reverse),ul=Vc.pack,hl=Vc.unpack,pl=function(e){return[255&e]},ml=function(e){return[255&e,e>>8&255]},_l=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},fl=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},gl=function(e){return ul(xc(e),23,4)},El=function(e){return ul(e,52,8)},Tl=function(e,t,i){Dc(e[Xc],t,{configurable:!0,get:function(){return i(this)[t]}})},vl=function(e,t,i,r){var n=$c(e),o=Lc(i),s=!!r;if(o+t>n.byteLength)throw new cl(Qc);var a=n.bytes,c=o+n.byteOffset,l=Hc(a,c,c+t);return s?l:dl(l)},yl=function(e,t,i,r,n,o){var s=$c(e),a=Lc(i),c=r(+n),l=!!o;if(a+t>s.byteLength)throw new cl(Qc);for(var d=s.bytes,u=a+s.byteOffset,h=0;h<t;h++)d[u+h]=c[l?h:t-h-1]};if(bc){var Sl=Kc&&tl.name!==zc;Nc((function(){tl(1)}))&&Nc((function(){new tl(-1)}))&&!Nc((function(){return new tl,new tl(1.5),new tl(NaN),1!==tl.length||Sl&&!qc}))?Sl&&qc&&kc(tl,"name",zc):((il=function(e){return Oc(this,rl),Wc(new tl(Lc(e)),this,il)})[Xc]=rl,rl.constructor=il,Gc(il,tl)),Fc&&Uc(ol)!==sl&&Fc(ol,sl);var Il=new nl(new il(2)),Al=Rc(ol.setInt8);Il.setInt8(0,2147483648),Il.setInt8(1,2147483649),!Il.getInt8(0)&&Il.getInt8(1)||wc(ol,{setInt8:function(e,t){Al(this,e,t<<24>>24)},setUint8:function(e,t){Al(this,e,t<<24>>24)}},{unsafe:!0})}else rl=(il=function(e){Oc(this,rl);var t=Lc(e);el(this,{type:zc,bytes:ll(al(t),0),byteLength:t}),Cc||(this.byteLength=t,this.detached=!1)})[Xc],ol=(nl=function(e,t,i){Oc(this,ol),Oc(e,rl);var r=Zc(e),n=r.byteLength,o=Mc(t);if(o<0||o>n)throw new cl("Wrong offset");if(o+(i=void 0===i?n-o:Pc(i))>n)throw new cl("Wrong length");el(this,{type:Yc,buffer:e,byteLength:i,byteOffset:o,bytes:r.bytes}),Cc||(this.buffer=e,this.byteLength=i,this.byteOffset=o)})[Xc],Cc&&(Tl(il,"byteLength",Zc),Tl(nl,"buffer",$c),Tl(nl,"byteLength",$c),Tl(nl,"byteOffset",$c)),wc(ol,{getInt8:function(e){return vl(this,1,e)[0]<<24>>24},getUint8:function(e){return vl(this,1,e)[0]},getInt16:function(e){var t=vl(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=vl(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return fl(vl(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return fl(vl(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return hl(vl(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return hl(vl(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){yl(this,1,e,pl,t)},setUint8:function(e,t){yl(this,1,e,pl,t)},setInt16:function(e,t){yl(this,2,e,ml,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){yl(this,2,e,ml,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){yl(this,4,e,_l,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){yl(this,4,e,_l,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){yl(this,4,e,gl,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){yl(this,8,e,El,t,arguments.length>2&&arguments[2])}});jc(il,zc),jc(nl,Yc);var Rl={ArrayBuffer:il,DataView:nl},Cl=K,bl=En,kl=a,Dl=rt("species"),wl=function(e){var t=Cl(e);kl&&t&&!t[Dl]&&bl(t,Dl,{configurable:!0,get:function(){return this}})},Nl=wl,Ol="ArrayBuffer",Ml=Rl[Ol];nn({global:!0,constructor:!0,forced:n[Ol]!==Ml},{ArrayBuffer:Ml}),Nl(Ol);var Pl=b,Ll=I,xl=function(e){if("Function"===Pl(e))return Ll(e)},Vl=nn,Ul=xl,Fl=s,Bl=Lt,Hl=lr,Wl=hr,Gl=Rl.ArrayBuffer,jl=Rl.DataView,Jl=jl.prototype,Kl=Ul(Gl.prototype.slice),ql=Ul(Jl.getUint8),zl=Ul(Jl.setUint8);Vl({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:Fl((function(){return!new Gl(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(Kl&&void 0===t)return Kl(Bl(this),e);for(var i=Bl(this).byteLength,r=Hl(e,i),n=Hl(void 0===t?i:t,i),o=new Gl(Wl(n-r)),s=new jl(this),a=new jl(o),c=0;r<n;)zl(a,c++,ql(s,r++));return o}});var Yl=I,Xl=s,Ql=H,Zl=hn,$l=li,ed=function(){},td=K("Reflect","construct"),id=/^\s*(?:class|function)\b/,rd=Yl(id.exec),nd=!id.test(ed),od=function(e){if(!Ql(e))return!1;try{return td(ed,[],e),!0}catch(EJ){return!1}},sd=function(e){if(!Ql(e))return!1;switch(Zl(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return nd||!!rd(id,$l(e))}catch(EJ){return!0}};sd.sham=!0;var ad,cd,ld,dd,ud=!td||Xl((function(){var e;return od(od.call)||!od(Object)||!od((function(){e=!0}))||e}))?sd:od,hd=ud,pd=_e,md=TypeError,_d=function(e){if(hd(e))return e;throw new md(pd(e)+" is not a constructor")},fd=Lt,gd=_d,Ed=M,Td=rt("species"),vd=function(e,t){var i,r=fd(e).constructor;return void 0===r||Ed(i=fd(r)[Td])?t:gd(i)},yd=c,Sd=Function.prototype,Id=Sd.apply,Ad=Sd.call,Rd="object"==typeof Reflect&&Reflect.apply||(yd?Ad.bind(Id):function(){return Ad.apply(Id,arguments)}),Cd=Te,bd=c,kd=xl(xl.bind),Dd=function(e,t){return Cd(e),void 0===t?e:bd?kd(e,t):function(){return e.apply(t,arguments)}},wd=TypeError,Nd=function(e,t){if(e<t)throw new wd("Not enough arguments");return e},Od=/(?:ipad|iphone|ipod).*applewebkit/i.test(X),Md=n,Pd=Rd,Ld=Dd,xd=H,Vd=Ge,Ud=s,Fd=Yn,Bd=_a,Hd=Et,Wd=Nd,Gd=Od,jd=na,Jd=Md.setImmediate,Kd=Md.clearImmediate,qd=Md.process,zd=Md.Dispatch,Yd=Md.Function,Xd=Md.MessageChannel,Qd=Md.String,Zd=0,$d={},eu="onreadystatechange";Ud((function(){ad=Md.location}));var tu=function(e){if(Vd($d,e)){var t=$d[e];delete $d[e],t()}},iu=function(e){return function(){tu(e)}},ru=function(e){tu(e.data)},nu=function(e){Md.postMessage(Qd(e),ad.protocol+"//"+ad.host)};Jd&&Kd||(Jd=function(e){Wd(arguments.length,1);var t=xd(e)?e:Yd(e),i=Bd(arguments,1);return $d[++Zd]=function(){Pd(t,void 0,i)},cd(Zd),Zd},Kd=function(e){delete $d[e]},jd?cd=function(e){qd.nextTick(iu(e))}:zd&&zd.now?cd=function(e){zd.now(iu(e))}:Xd&&!Gd?(dd=(ld=new Xd).port2,ld.port1.onmessage=ru,cd=Ld(dd.postMessage,dd)):Md.addEventListener&&xd(Md.postMessage)&&!Md.importScripts&&ad&&"file:"!==ad.protocol&&!Ud(nu)?(cd=nu,Md.addEventListener("message",ru,!1)):cd=eu in Hd("script")?function(e){Fd.appendChild(Hd("script"))[eu]=function(){Fd.removeChild(this),tu(e)}}:function(e){setTimeout(iu(e),0)});var ou={set:Jd,clear:Kd},su=n,au=a,cu=Object.getOwnPropertyDescriptor,lu=function(e){if(!au)return su[e];var t=cu(su,e);return t&&t.value},du=function(){this.head=null,this.tail=null};du.prototype={add:function(e){var t={item:e,next:null},i=this.tail;i?i.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}};var uu,hu,pu,mu,_u,fu=du,gu=/ipad|iphone|ipod/i.test(X)&&"undefined"!=typeof Pebble,Eu=/web0s(?!.*chrome)/i.test(X),Tu=n,vu=lu,yu=Dd,Su=ou.set,Iu=fu,Au=Od,Ru=gu,Cu=Eu,bu=na,ku=Tu.MutationObserver||Tu.WebKitMutationObserver,Du=Tu.document,wu=Tu.process,Nu=Tu.Promise,Ou=vu("queueMicrotask");if(!Ou){var Mu=new Iu,Pu=function(){var e,t;for(bu&&(e=wu.domain)&&e.exit();t=Mu.get();)try{t()}catch(EJ){throw Mu.head&&uu(),EJ}e&&e.enter()};Au||bu||Cu||!ku||!Du?!Ru&&Nu&&Nu.resolve?((mu=Nu.resolve(void 0)).constructor=Nu,_u=yu(mu.then,mu),uu=function(){_u(Pu)}):bu?uu=function(){wu.nextTick(Pu)}:(Su=yu(Su,Tu),uu=function(){Su(Pu)}):(hu=!0,pu=Du.createTextNode(""),new ku(Pu).observe(pu,{characterData:!0}),uu=function(){pu.data=hu=!hu}),Ou=function(e){Mu.head||uu(),Mu.add(e)}}var Lu=Ou,xu=function(e){try{return{error:!1,value:e()}}catch(EJ){return{error:!0,value:EJ}}},Vu=n.Promise,Uu=n,Fu=Vu,Bu=H,Hu=Yr,Wu=li,Gu=rt,ju=ra,Ju=re;Fu&&Fu.prototype;var Ku=Gu("species"),qu=!1,zu=Bu(Uu.PromiseRejectionEvent),Yu=Hu("Promise",(function(){var e=Wu(Fu),t=e!==String(Fu);if(!t&&66===Ju)return!0;if(!Ju||Ju<51||!/native code/.test(e)){var i=new Fu((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((i.constructor={})[Ku]=r,!(qu=i.then((function(){}))instanceof r))return!0}return!(t||"BROWSER"!==ju&&"DENO"!==ju||zu)})),Xu={CONSTRUCTOR:Yu,REJECTION_EVENT:zu,SUBCLASSING:qu},Qu={},Zu=Te,$u=TypeError,eh=function(e){var t,i;this.promise=new e((function(e,r){if(void 0!==t||void 0!==i)throw new $u("Bad Promise constructor");t=e,i=r})),this.resolve=Zu(t),this.reject=Zu(i)};Qu.f=function(e){return new eh(e)};var th,ih,rh,nh=nn,oh=na,sh=n,ah=u,ch=$i,lh=cs,dh=jo,uh=wl,hh=Te,ph=H,mh=G,_h=Qa,fh=vd,gh=ou.set,Eh=Lu,Th=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(EJ){}},vh=xu,yh=fu,Sh=wi,Ih=Vu,Ah=Qu,Rh="Promise",Ch=Xu.CONSTRUCTOR,bh=Xu.REJECTION_EVENT,kh=Xu.SUBCLASSING,Dh=Sh.getterFor(Rh),wh=Sh.set,Nh=Ih&&Ih.prototype,Oh=Ih,Mh=Nh,Ph=sh.TypeError,Lh=sh.document,xh=sh.process,Vh=Ah.f,Uh=Vh,Fh=!!(Lh&&Lh.createEvent&&sh.dispatchEvent),Bh="unhandledrejection",Hh=function(e){var t;return!(!mh(e)||!ph(t=e.then))&&t},Wh=function(e,t){var i,r,n,o=t.value,s=1===t.state,a=s?e.ok:e.fail,c=e.resolve,l=e.reject,d=e.domain;try{a?(s||(2===t.rejection&&qh(t),t.rejection=1),!0===a?i=o:(d&&d.enter(),i=a(o),d&&(d.exit(),n=!0)),i===e.promise?l(new Ph("Promise-chain cycle")):(r=Hh(i))?ah(r,i,c,l):c(i)):l(o)}catch(EJ){d&&!n&&d.exit(),l(EJ)}},Gh=function(e,t){e.notified||(e.notified=!0,Eh((function(){for(var i,r=e.reactions;i=r.get();)Wh(i,e);e.notified=!1,t&&!e.rejection&&Jh(e)})))},jh=function(e,t,i){var r,n;Fh?((r=Lh.createEvent("Event")).promise=t,r.reason=i,r.initEvent(e,!1,!0),sh.dispatchEvent(r)):r={promise:t,reason:i},!bh&&(n=sh["on"+e])?n(r):e===Bh&&Th("Unhandled promise rejection",i)},Jh=function(e){ah(gh,sh,(function(){var t,i=e.facade,r=e.value;if(Kh(e)&&(t=vh((function(){oh?xh.emit("unhandledRejection",r,i):jh(Bh,i,r)})),e.rejection=oh||Kh(e)?2:1,t.error))throw t.value}))},Kh=function(e){return 1!==e.rejection&&!e.parent},qh=function(e){ah(gh,sh,(function(){var t=e.facade;oh?xh.emit("rejectionHandled",t):jh("rejectionhandled",t,e.value)}))},zh=function(e,t,i){return function(r){e(t,r,i)}},Yh=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,Gh(e,!0))},Xh=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw new Ph("Promise can't be resolved itself");var r=Hh(t);r?Eh((function(){var i={done:!1};try{ah(r,t,zh(Xh,i,e),zh(Yh,i,e))}catch(EJ){Yh(i,EJ,e)}})):(e.value=t,e.state=1,Gh(e,!1))}catch(EJ){Yh({done:!1},EJ,e)}}};if(Ch&&(Mh=(Oh=function(e){_h(this,Mh),hh(e),ah(th,this);var t=Dh(this);try{e(zh(Xh,t),zh(Yh,t))}catch(EJ){Yh(t,EJ)}}).prototype,(th=function(e){wh(this,{type:Rh,done:!1,notified:!1,parent:!1,reactions:new yh,rejection:!1,state:0,value:null})}).prototype=ch(Mh,"then",(function(e,t){var i=Dh(this),r=Vh(fh(this,Oh));return i.parent=!0,r.ok=!ph(e)||e,r.fail=ph(t)&&t,r.domain=oh?xh.domain:void 0,0===i.state?i.reactions.add(r):Eh((function(){Wh(r,i)})),r.promise})),ih=function(){var e=new th,t=Dh(e);this.promise=e,this.resolve=zh(Xh,t),this.reject=zh(Yh,t)},Ah.f=Vh=function(e){return e===Oh||undefined===e?new ih(e):Uh(e)},ph(Ih)&&Nh!==Object.prototype)){rh=Nh.then,kh||ch(Nh,"then",(function(e,t){var i=this;return new Oh((function(e,t){ah(rh,i,e,t)})).then(e,t)}),{unsafe:!0});try{delete Nh.constructor}catch(EJ){}lh&&lh(Nh,Mh)}nh({global:!0,constructor:!0,wrap:!0,forced:Ch},{Promise:Oh}),dh(Oh,Rh,!1),uh(Rh);var Qh=So,Zh=rt("iterator"),$h=Array.prototype,ep=function(e){return void 0!==e&&(Qh.Array===e||$h[Zh]===e)},tp=hn,ip=Se,rp=M,np=So,op=rt("iterator"),sp=function(e){if(!rp(e))return ip(e,op)||ip(e,"@@iterator")||np[tp(e)]},ap=u,cp=Te,lp=Lt,dp=_e,up=sp,hp=TypeError,pp=function(e,t){var i=arguments.length<2?up(e):t;if(cp(i))return lp(ap(i,e));throw new hp(dp(e)+" is not iterable")},mp=u,_p=Lt,fp=Se,gp=function(e,t,i){var r,n;_p(e);try{if(!(r=fp(e,"return"))){if("throw"===t)throw i;return i}r=mp(r,e)}catch(EJ){n=!0,r=EJ}if("throw"===t)throw i;if(n)throw r;return _p(r),i},Ep=Dd,Tp=u,vp=Lt,yp=_e,Sp=ep,Ip=mr,Ap=q,Rp=pp,Cp=sp,bp=gp,kp=TypeError,Dp=function(e,t){this.stopped=e,this.result=t},wp=Dp.prototype,Np=function(e,t,i){var r,n,o,s,a,c,l,d=i&&i.that,u=!(!i||!i.AS_ENTRIES),h=!(!i||!i.IS_RECORD),p=!(!i||!i.IS_ITERATOR),m=!(!i||!i.INTERRUPTED),_=Ep(t,d),f=function(e){return r&&bp(r,"normal",e),new Dp(!0,e)},g=function(e){return u?(vp(e),m?_(e[0],e[1],f):_(e[0],e[1])):m?_(e,f):_(e)};if(h)r=e.iterator;else if(p)r=e;else{if(!(n=Cp(e)))throw new kp(yp(e)+" is not iterable");if(Sp(n)){for(o=0,s=Ip(e);s>o;o++)if((a=g(e[o]))&&Ap(wp,a))return a;return new Dp(!1)}r=Rp(e,n)}for(c=h?e.next:r.next;!(l=Tp(c,r)).done;){try{a=g(l.value)}catch(EJ){bp(r,"throw",EJ)}if("object"==typeof a&&a&&Ap(wp,a))return a}return new Dp(!1)},Op=rt("iterator"),Mp=!1;try{var Pp=0,Lp={next:function(){return{done:!!Pp++}},return:function(){Mp=!0}};Lp[Op]=function(){return this},Array.from(Lp,(function(){throw 2}))}catch(EJ){}var xp=function(e,t){try{if(!t&&!Mp)return!1}catch(EJ){return!1}var i=!1;try{var r={};r[Op]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(EJ){}return i},Vp=Vu,Up=Xu.CONSTRUCTOR||!xp((function(e){Vp.all(e).then(void 0,(function(){}))})),Fp=u,Bp=Te,Hp=Qu,Wp=xu,Gp=Np;nn({target:"Promise",stat:!0,forced:Up},{all:function(e){var t=this,i=Hp.f(t),r=i.resolve,n=i.reject,o=Wp((function(){var i=Bp(t.resolve),o=[],s=0,a=1;Gp(e,(function(e){var c=s++,l=!1;a++,Fp(i,t,e).then((function(e){l||(l=!0,o[c]=e,--a||r(o))}),n)})),--a||r(o)}));return o.error&&n(o.value),i.promise}});var jp=nn,Jp=Xu.CONSTRUCTOR,Kp=Vu,qp=K,zp=H,Yp=$i,Xp=Kp&&Kp.prototype;if(jp({target:"Promise",proto:!0,forced:Jp,real:!0},{catch:function(e){return this.then(void 0,e)}}),zp(Kp)){var Qp=qp("Promise").prototype.catch;Xp.catch!==Qp&&Yp(Xp,"catch",Qp,{unsafe:!0})}var Zp=u,$p=Te,em=Qu,tm=xu,im=Np;nn({target:"Promise",stat:!0,forced:Up},{race:function(e){var t=this,i=em.f(t),r=i.reject,n=tm((function(){var n=$p(t.resolve);im(e,(function(e){Zp(n,t,e).then(i.resolve,r)}))}));return n.error&&r(n.value),i.promise}});var rm=Qu;nn({target:"Promise",stat:!0,forced:Xu.CONSTRUCTOR},{reject:function(e){var t=rm.f(this);return(0,t.reject)(e),t.promise}});var nm=Lt,om=G,sm=Qu,am=function(e,t){if(nm(e),om(t)&&t.constructor===e)return t;var i=sm.f(e);return(0,i.resolve)(t),i.promise},cm=nn,lm=Xu.CONSTRUCTOR,dm=am;K("Promise"),cm({target:"Promise",stat:!0,forced:lm},{resolve:function(e){return dm(this,e)}});var um=nn,hm=Vu,pm=s,mm=K,_m=H,fm=vd,gm=am,Em=$i,Tm=hm&&hm.prototype;if(um({target:"Promise",proto:!0,real:!0,forced:!!hm&&pm((function(){Tm.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=fm(this,mm("Promise")),i=_m(e);return this.then(i?function(i){return gm(t,e()).then((function(){return i}))}:e,i?function(i){return gm(t,e()).then((function(){throw i}))}:e)}}),_m(hm)){var vm=mm("Promise").prototype.finally;Tm.finally!==vm&&Em(Tm,"finally",vm,{unsafe:!0})}var ym=G,Sm=b,Im=rt("match"),Am=function(e){var t;return ym(e)&&(void 0!==(t=e[Im])?!!t:"RegExp"===Sm(e))},Rm=Lt,Cm=function(){var e=Rm(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t},bm=u,km=Ge,Dm=q,wm=Cm,Nm=RegExp.prototype,Om=function(e){var t=e.flags;return void 0!==t||"flags"in Nm||km(e,"flags")||!Dm(Nm,e)?t:bm(wm,e)},Mm=s,Pm=n.RegExp,Lm=Mm((function(){var e=Pm("a","y");return e.lastIndex=2,null!==e.exec("abcd")})),xm=Lm||Mm((function(){return!Pm("a","y").sticky})),Vm=Lm||Mm((function(){var e=Pm("^r","gy");return e.lastIndex=2,null!==e.exec("str")})),Um={BROKEN_CARET:Vm,MISSED_STICKY:xm,UNSUPPORTED_Y:Lm},Fm=wt.f,Bm=s,Hm=n.RegExp,Wm=Bm((function(){var e=Hm(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)})),Gm=s,jm=n.RegExp,Jm=Gm((function(){var e=jm("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),Km=a,qm=n,zm=I,Ym=Yr,Xm=Ic,Qm=Yt,Zm=lo,$m=er.f,e_=q,t_=Am,i_=_n,r_=Om,n_=Um,o_=function(e,t,i){i in e||Fm(e,i,{configurable:!0,get:function(){return t[i]},set:function(e){t[i]=e}})},s_=$i,a_=s,c_=Ge,l_=wi.enforce,d_=wl,u_=Wm,h_=Jm,p_=rt("match"),m_=qm.RegExp,__=m_.prototype,f_=qm.SyntaxError,g_=zm(__.exec),E_=zm("".charAt),T_=zm("".replace),v_=zm("".indexOf),y_=zm("".slice),S_=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,I_=/a/g,A_=/a/g,R_=new m_(I_)!==I_,C_=n_.MISSED_STICKY,b_=n_.UNSUPPORTED_Y,k_=Km&&(!R_||C_||u_||h_||a_((function(){return A_[p_]=!1,m_(I_)!==I_||m_(A_)===A_||"/a/i"!==String(m_(I_,"i"))})));if(Ym("RegExp",k_)){for(var D_=function(e,t){var i,r,n,o,s,a,c=e_(__,this),l=t_(e),d=void 0===t,u=[],h=e;if(!c&&l&&d&&e.constructor===D_)return e;if((l||e_(__,e))&&(e=e.source,d&&(t=r_(h))),e=void 0===e?"":i_(e),t=void 0===t?"":i_(t),h=e,u_&&"dotAll"in I_&&(r=!!t&&v_(t,"s")>-1)&&(t=T_(t,/s/g,"")),i=t,C_&&"sticky"in I_&&(n=!!t&&v_(t,"y")>-1)&&b_&&(t=T_(t,/y/g,"")),h_&&(o=function(e){for(var t,i=e.length,r=0,n="",o=[],s=Zm(null),a=!1,c=!1,l=0,d="";r<=i;r++){if("\\"===(t=E_(e,r)))t+=E_(e,++r);else if("]"===t)a=!1;else if(!a)switch(!0){case"["===t:a=!0;break;case"("===t:if(n+=t,"?:"===y_(e,r+1,r+3))continue;g_(S_,y_(e,r+1))&&(r+=2,c=!0),l++;continue;case">"===t&&c:if(""===d||c_(s,d))throw new f_("Invalid capture group name");s[d]=!0,o[o.length]=[d,l],c=!1,d="";continue}c?d+=t:n+=t}return[n,o]}(e),e=o[0],u=o[1]),s=Xm(m_(e,t),c?this:__,D_),(r||n||u.length)&&(a=l_(s),r&&(a.dotAll=!0,a.raw=D_(function(e){for(var t,i=e.length,r=0,n="",o=!1;r<=i;r++)"\\"!==(t=E_(e,r))?o||"."!==t?("["===t?o=!0:"]"===t&&(o=!1),n+=t):n+="[\\s\\S]":n+=t+E_(e,++r);return n}(e),i)),n&&(a.sticky=!0),u.length&&(a.groups=u)),e!==h)try{Qm(s,"source",""===h?"(?:)":h)}catch(EJ){}return s},w_=$m(m_),N_=0;w_.length>N_;)o_(D_,m_,w_[N_++]);__.constructor=D_,D_.prototype=__,s_(qm,"RegExp",D_,{constructor:!0})}d_("RegExp");var O_=u,M_=I,P_=_n,L_=Cm,x_=Um,V_=lo,U_=wi.get,F_=Wm,B_=Jm,H_=Ve("native-string-replace",String.prototype.replace),W_=RegExp.prototype.exec,G_=W_,j_=M_("".charAt),J_=M_("".indexOf),K_=M_("".replace),q_=M_("".slice),z_=function(){var e=/a/,t=/b*/g;return O_(W_,e,"a"),O_(W_,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),Y_=x_.BROKEN_CARET,X_=void 0!==/()??/.exec("")[1];(z_||X_||Y_||F_||B_)&&(G_=function(e){var t,i,r,n,o,s,a,c=this,l=U_(c),d=P_(e),u=l.raw;if(u)return u.lastIndex=c.lastIndex,t=O_(G_,u,d),c.lastIndex=u.lastIndex,t;var h=l.groups,p=Y_&&c.sticky,m=O_(L_,c),_=c.source,f=0,g=d;if(p&&(m=K_(m,"y",""),-1===J_(m,"g")&&(m+="g"),g=q_(d,c.lastIndex),c.lastIndex>0&&(!c.multiline||c.multiline&&"\n"!==j_(d,c.lastIndex-1))&&(_="(?: "+_+")",g=" "+g,f++),i=new RegExp("^(?:"+_+")",m)),X_&&(i=new RegExp("^"+_+"$(?!\\s)",m)),z_&&(r=c.lastIndex),n=O_(W_,p?i:c,g),p?n?(n.input=q_(n.input,f),n[0]=q_(n[0],f),n.index=c.lastIndex,c.lastIndex+=n[0].length):c.lastIndex=0:z_&&n&&(c.lastIndex=c.global?n.index+n[0].length:r),X_&&n&&n.length>1&&O_(H_,n[0],i,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)})),n&&h)for(n.groups=s=V_(null),o=0;o<h.length;o++)s[(a=h[o])[0]]=n[a[1]];return n});var Q_=G_;nn({target:"RegExp",proto:!0,forced:/./.exec!==Q_},{exec:Q_});var Z_=or,$_=_n,ef=x,tf=RangeError,rf=I,nf=hr,of=_n,sf=function(e){var t=$_(ef(this)),i="",r=Z_(e);if(r<0||Infinity===r)throw new tf("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(i+=t);return i},af=x,cf=rf(sf),lf=rf("".slice),df=Math.ceil,uf=function(e){return function(t,i,r){var n,o,s=of(af(t)),a=nf(i),c=s.length,l=void 0===r?" ":of(r);return a<=c||""===l?s:((o=cf(l,df((n=a-c)/l.length))).length>n&&(o=lf(o,0,n)),e?s+o:o+s)}},hf={start:uf(!1),end:uf(!0)},pf=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(X),mf=hf.start;nn({target:"String",proto:!0,forced:pf},{padStart:function(e){return mf(this,e,arguments.length>1?arguments[1]:void 0)}});var _f=u,ff=$i,gf=Q_,Ef=s,Tf=rt,vf=Yt,yf=Tf("species"),Sf=RegExp.prototype,If=I,Af=or,Rf=_n,Cf=x,bf=If("".charAt),kf=If("".charCodeAt),Df=If("".slice),wf=function(e){return function(t,i){var r,n,o=Rf(Cf(t)),s=Af(i),a=o.length;return s<0||s>=a?e?"":void 0:(r=kf(o,s))<55296||r>56319||s+1===a||(n=kf(o,s+1))<56320||n>57343?e?bf(o,s):r:e?Df(o,s,s+2):n-56320+(r-55296<<10)+65536}},Nf={codeAt:wf(!1),charAt:wf(!0)},Of=Nf.charAt,Mf=I,Pf=Be,Lf=Math.floor,xf=Mf("".charAt),Vf=Mf("".replace),Uf=Mf("".slice),Ff=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Bf=/\$([$&'`]|\d{1,2})/g,Hf=function(e,t,i,r,n,o){var s=i+e.length,a=r.length,c=Bf;return void 0!==n&&(n=Pf(n),c=Ff),Vf(o,c,(function(o,c){var l;switch(xf(c,0)){case"$":return"$";case"&":return e;case"`":return Uf(t,0,i);case"'":return Uf(t,s);case"<":l=n[Uf(c,1,-1)];break;default:var d=+c;if(0===d)return o;if(d>a){var u=Lf(d/10);return 0===u?o:u<=a?void 0===r[u-1]?xf(c,1):r[u-1]+xf(c,1):o}l=r[d-1]}return void 0===l?"":l}))},Wf=u,Gf=Lt,jf=H,Jf=b,Kf=Q_,qf=TypeError,zf=Rd,Yf=u,Xf=I,Qf=function(e,t,i,r){var n=Tf(e),o=!Ef((function(){var t={};return t[n]=function(){return 7},7!==""[e](t)})),s=o&&!Ef((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[yf]=function(){return i},i.flags="",i[n]=/./[n]),i.exec=function(){return t=!0,null},i[n](""),!t}));if(!o||!s||i){var a=/./[n],c=t(n,""[e],(function(e,t,i,r,n){var s=t.exec;return s===gf||s===Sf.exec?o&&!n?{done:!0,value:_f(a,t,i,r)}:{done:!0,value:_f(e,i,t,r)}:{done:!1}}));ff(String.prototype,e,c[0]),ff(Sf,n,c[1])}r&&vf(Sf[n],"sham",!0)},Zf=s,$f=Lt,eg=H,tg=M,ig=or,rg=hr,ng=_n,og=x,sg=function(e,t,i){return t+(i?Of(e,t).length:1)},ag=Se,cg=Hf,lg=function(e,t){var i=e.exec;if(jf(i)){var r=Wf(i,e,t);return null!==r&&Gf(r),r}if("RegExp"===Jf(e))return Wf(Kf,e,t);throw new qf("RegExp#exec called on incompatible receiver")},dg=rt("replace"),ug=Math.max,hg=Math.min,pg=Xf([].concat),mg=Xf([].push),_g=Xf("".indexOf),fg=Xf("".slice),gg=function(e){return void 0===e?e:String(e)},Eg="$0"==="a".replace(/./,"$0"),Tg=!!/./[dg]&&""===/./[dg]("a","$0"),vg=!Zf((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}));Qf("replace",(function(e,t,i){var r=Tg?"$":"$0";return[function(e,i){var r=og(this),n=tg(e)?void 0:ag(e,dg);return n?Yf(n,e,r,i):Yf(t,ng(r),e,i)},function(e,n){var o=$f(this),s=ng(e);if("string"==typeof n&&-1===_g(n,r)&&-1===_g(n,"$<")){var a=i(t,o,s,n);if(a.done)return a.value}var c=eg(n);c||(n=ng(n));var l,d=o.global;d&&(l=o.unicode,o.lastIndex=0);for(var u,h=[];null!==(u=lg(o,s))&&(mg(h,u),d);){""===ng(u[0])&&(o.lastIndex=sg(s,rg(o.lastIndex),l))}for(var p="",m=0,_=0;_<h.length;_++){for(var f,g=ng((u=h[_])[0]),E=ug(hg(ig(u.index),s.length),0),T=[],v=1;v<u.length;v++)mg(T,gg(u[v]));var y=u.groups;if(c){var S=pg([g],T,E,s);void 0!==y&&mg(S,y),f=ng(zf(n,void 0,S))}else f=cg(g,s,E,T,y,n);E>=m&&(p+=fg(s,m,E)+f,m=E+g.length)}return p+fg(s,m)}]}),!vg||!Eg||Tg);var yg="\t\n\v\f\r \u2028\u2029\ufeff",Sg=x,Ig=_n,Ag=yg,Rg=I("".replace),Cg=RegExp("^["+Ag+"]+"),bg=RegExp("(^|[^"+Ag+"])["+Ag+"]+$"),kg=function(e){return function(t){var i=Ig(Sg(t));return 1&e&&(i=Rg(i,Cg,"")),2&e&&(i=Rg(i,bg,"$1")),i}},Dg={start:kg(1),end:kg(2),trim:kg(3)},wg=ii.PROPER,Ng=s,Og=yg,Mg=Dg.trim;nn({target:"String",proto:!0,forced:function(e){return Ng((function(){return!!Og[e]()||"
"!=="
"[e]()||wg&&Og[e].name!==e}))}("trim")},{trim:function(){return Mg(this)}});var Pg,Lg,xg,Vg={exports:{}},Ug=Ka,Fg=a,Bg=n,Hg=H,Wg=G,Gg=Ge,jg=hn,Jg=_e,Kg=Yt,qg=$i,zg=En,Yg=q,Xg=No,Qg=cs,Zg=rt,$g=ze,eE=wi.enforce,tE=wi.get,iE=Bg.Int8Array,rE=iE&&iE.prototype,nE=Bg.Uint8ClampedArray,oE=nE&&nE.prototype,sE=iE&&Xg(iE),aE=rE&&Xg(rE),cE=Object.prototype,lE=Bg.TypeError,dE=Zg("toStringTag"),uE=$g("TYPED_ARRAY_TAG"),hE="TypedArrayConstructor",pE=Ug&&!!Qg&&"Opera"!==jg(Bg.opera),mE=!1,_E={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},fE={BigInt64Array:8,BigUint64Array:8},gE=function(e){var t=Xg(e);if(Wg(t)){var i=tE(t);return i&&Gg(i,hE)?i[hE]:gE(t)}},EE=function(e){if(!Wg(e))return!1;var t=jg(e);return Gg(_E,t)||Gg(fE,t)};for(Pg in _E)(xg=(Lg=Bg[Pg])&&Lg.prototype)?eE(xg)[hE]=Lg:pE=!1;for(Pg in fE)(xg=(Lg=Bg[Pg])&&Lg.prototype)&&(eE(xg)[hE]=Lg);if((!pE||!Hg(sE)||sE===Function.prototype)&&(sE=function(){throw new lE("Incorrect invocation")},pE))for(Pg in _E)Bg[Pg]&&Qg(Bg[Pg],sE);if((!pE||!aE||aE===cE)&&(aE=sE.prototype,pE))for(Pg in _E)Bg[Pg]&&Qg(Bg[Pg].prototype,aE);if(pE&&Xg(oE)!==aE&&Qg(oE,aE),Fg&&!Gg(aE,dE))for(Pg in mE=!0,zg(aE,dE,{configurable:!0,get:function(){return Wg(this)?this[uE]:void 0}}),_E)Bg[Pg]&&Kg(Bg[Pg],uE,Pg);var TE={NATIVE_ARRAY_BUFFER_VIEWS:pE,TYPED_ARRAY_TAG:mE&&uE,aTypedArray:function(e){if(EE(e))return e;throw new lE("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Hg(e)&&(!Qg||Yg(sE,e)))return e;throw new lE(Jg(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,i,r){if(Fg){if(i)for(var n in _E){var o=Bg[n];if(o&&Gg(o.prototype,e))try{delete o.prototype[e]}catch(EJ){try{o.prototype[e]=t}catch(s){}}}aE[e]&&!i||qg(aE,e,i?t:pE&&rE[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,i){var r,n;if(Fg){if(Qg){if(i)for(r in _E)if((n=Bg[r])&&Gg(n,e))try{delete n[e]}catch(EJ){}if(sE[e]&&!i)return;try{return qg(sE,e,i?t:pE&&sE[e]||t)}catch(EJ){}}for(r in _E)!(n=Bg[r])||n[e]&&!i||qg(n,e,t)}},getTypedArrayConstructor:gE,isView:function(e){if(!Wg(e))return!1;var t=jg(e);return"DataView"===t||Gg(_E,t)||Gg(fE,t)},isTypedArray:EE,TypedArray:sE,TypedArrayPrototype:aE},vE=n,yE=s,SE=xp,IE=TE.NATIVE_ARRAY_BUFFER_VIEWS,AE=vE.ArrayBuffer,RE=vE.Int8Array,CE=!IE||!yE((function(){RE(1)}))||!yE((function(){new RE(-1)}))||!SE((function(e){new RE,new RE(null),new RE(1.5),new RE(e)}),!0)||yE((function(){return 1!==new RE(new AE(2),1,void 0).length})),bE=G,kE=Math.floor,DE=Number.isInteger||function(e){return!bE(e)&&isFinite(e)&&kE(e)===e},wE=or,NE=RangeError,OE=function(e){var t=wE(e);if(t<0)throw new NE("The argument can't be less than 0");return t},ME=RangeError,PE=function(e,t){var i=OE(e);if(i%t)throw new ME("Wrong offset");return i},LE=Math.round,xE=hn,VE=ut,UE=TypeError,FE=function(e){var t=VE(e,"number");if("number"==typeof t)throw new UE("Can't convert number to bigint");return BigInt(t)},BE=Dd,HE=u,WE=_d,GE=Be,jE=mr,JE=pp,KE=sp,qE=ep,zE=function(e){var t=xE(e);return"BigInt64Array"===t||"BigUint64Array"===t},YE=TE.aTypedArrayConstructor,XE=FE,QE=function(e){var t,i,r,n,o,s,a,c,l=WE(this),d=GE(e),u=arguments.length,h=u>1?arguments[1]:void 0,p=void 0!==h,m=KE(d);if(m&&!qE(m))for(c=(a=JE(d,m)).next,d=[];!(s=HE(c,a)).done;)d.push(s.value);for(p&&u>2&&(h=BE(h,arguments[2])),i=jE(d),r=new(YE(l))(i),n=zE(r),t=0;i>t;t++)o=p?h(d[t],t):d[t],r[t]=n?XE(o):+o;return r},ZE=ca,$E=ud,eT=G,tT=rt("species"),iT=Array,rT=function(e){var t;return ZE(e)&&(t=e.constructor,($E(t)&&(t===iT||ZE(t.prototype))||eT(t)&&null===(t=t[tT]))&&(t=void 0)),void 0===t?iT:t},nT=Dd,oT=O,sT=Be,aT=mr,cT=function(e,t){return new(rT(e))(0===t?0:t)},lT=I([].push),dT=function(e){var t=1===e,i=2===e,r=3===e,n=4===e,o=6===e,s=7===e,a=5===e||o;return function(c,l,d,u){for(var h,p,m=sT(c),_=oT(m),f=aT(_),g=nT(l,d),E=0,T=u||cT,v=t?T(c,f):i||s?T(c,0):void 0;f>E;E++)if((a||E in _)&&(p=g(h=_[E],E,m),e))if(t)v[E]=p;else if(p)switch(e){case 3:return!0;case 5:return h;case 6:return E;case 2:lT(v,h)}else switch(e){case 4:return!1;case 7:lT(v,h)}return o?-1:r||n?n:v}},uT={forEach:dT(0),map:dT(1),filter:dT(2),some:dT(3),every:dT(4),find:dT(5),findIndex:dT(6),filterReject:dT(7)},hT=mr,pT=nn,mT=n,_T=u,fT=a,gT=CE,ET=TE,TT=Rl,vT=Qa,yT=E,ST=Yt,IT=DE,AT=hr,RT=tc,CT=PE,bT=function(e){var t=LE(e);return t<0?0:t>255?255:255&t},kT=mt,DT=Ge,wT=hn,NT=G,OT=pe,MT=lo,PT=q,LT=cs,xT=er.f,VT=QE,UT=uT.forEach,FT=wl,BT=En,HT=wt,WT=o,GT=function(e,t,i){for(var r=0,n=arguments.length>2?i:hT(t),o=new e(n);n>r;)o[r]=t[r++];return o},jT=Ic,JT=wi.get,KT=wi.set,qT=wi.enforce,zT=HT.f,YT=WT.f,XT=mT.RangeError,QT=TT.ArrayBuffer,ZT=QT.prototype,$T=TT.DataView,ev=ET.NATIVE_ARRAY_BUFFER_VIEWS,tv=ET.TYPED_ARRAY_TAG,iv=ET.TypedArray,rv=ET.TypedArrayPrototype,nv=ET.isTypedArray,ov="BYTES_PER_ELEMENT",sv="Wrong length",av=function(e,t){BT(e,t,{configurable:!0,get:function(){return JT(this)[t]}})},cv=function(e){var t;return PT(ZT,e)||"ArrayBuffer"===(t=wT(e))||"SharedArrayBuffer"===t},lv=function(e,t){return nv(e)&&!OT(t)&&t in e&&IT(+t)&&t>=0},dv=function(e,t){return t=kT(t),lv(e,t)?yT(2,e[t]):YT(e,t)},uv=function(e,t,i){return t=kT(t),!(lv(e,t)&&NT(i)&&DT(i,"value"))||DT(i,"get")||DT(i,"set")||i.configurable||DT(i,"writable")&&!i.writable||DT(i,"enumerable")&&!i.enumerable?zT(e,t,i):(e[t]=i.value,e)};fT?(ev||(WT.f=dv,HT.f=uv,av(rv,"buffer"),av(rv,"byteOffset"),av(rv,"byteLength"),av(rv,"length")),pT({target:"Object",stat:!0,forced:!ev},{getOwnPropertyDescriptor:dv,defineProperty:uv}),Vg.exports=function(e,t,i){var r=e.match(/\d+/)[0]/8,n=e+(i?"Clamped":"")+"Array",o="get"+e,s="set"+e,a=mT[n],c=a,l=c&&c.prototype,d={},u=function(e,t){zT(e,t,{get:function(){return function(e,t){var i=JT(e);return i.view[o](t*r+i.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,n){var o=JT(e);o.view[s](t*r+o.byteOffset,i?bT(n):n,!0)}(this,t,e)},enumerable:!0})};ev?gT&&(c=t((function(e,t,i,n){return vT(e,l),jT(NT(t)?cv(t)?void 0!==n?new a(t,CT(i,r),n):void 0!==i?new a(t,CT(i,r)):new a(t):nv(t)?GT(c,t):_T(VT,c,t):new a(RT(t)),e,c)})),LT&<(c,iv),UT(xT(a),(function(e){e in c||ST(c,e,a[e])})),c.prototype=l):(c=t((function(e,t,i,n){vT(e,l);var o,s,a,d=0,h=0;if(NT(t)){if(!cv(t))return nv(t)?GT(c,t):_T(VT,c,t);o=t,h=CT(i,r);var p=t.byteLength;if(void 0===n){if(p%r)throw new XT(sv);if((s=p-h)<0)throw new XT(sv)}else if((s=AT(n)*r)+h>p)throw new XT(sv);a=s/r}else a=RT(t),o=new QT(s=a*r);for(KT(e,{buffer:o,byteOffset:h,byteLength:s,length:a,view:new $T(o)});d<a;)u(e,d++)})),LT&<(c,iv),l=c.prototype=MT(rv)),l.constructor!==c&&ST(l,"constructor",c),qT(l).TypedArrayConstructor=c,tv&&ST(l,tv,n);var h=c!==a;d[n]=c,pT({global:!0,constructor:!0,forced:h,sham:!ev},d),ov in c||ST(c,ov,r),ov in l||ST(l,ov,r),FT(n)}):Vg.exports=function(){};var hv=Vg.exports;hv("Float32",(function(e){return function(t,i,r){return e(this,t,i,r)}})),hv("Uint8",(function(e){return function(t,i,r){return e(this,t,i,r)}}));var pv=Tc,mv=FE,_v=hn,fv=u,gv=s,Ev=TE.aTypedArray,Tv=TE.exportTypedArrayMethod,vv=I("".slice);Tv("fill",(function(e){var t=arguments.length;Ev(this);var i="Big"===vv(_v(this),0,3)?mv(e):+e;return fv(pv,this,i,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),gv((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}))),(0,TE.exportTypedArrayStaticMethod)("from",QE,CE);var yv=n,Sv=u,Iv=TE,Av=mr,Rv=PE,Cv=Be,bv=s,kv=yv.RangeError,Dv=yv.Int8Array,wv=Dv&&Dv.prototype,Nv=wv&&wv.set,Ov=Iv.aTypedArray,Mv=Iv.exportTypedArrayMethod,Pv=!bv((function(){var e=new Uint8ClampedArray(2);return Sv(Nv,e,{length:1,0:3},1),3!==e[1]})),Lv=Pv&&Iv.NATIVE_ARRAY_BUFFER_VIEWS&&bv((function(){var e=new Dv(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));Mv("set",(function(e){Ov(this);var t=Rv(arguments.length>1?arguments[1]:void 0,1),i=Cv(e);if(Pv)return Sv(Nv,this,i,t);var r=this.length,n=Av(i),o=0;if(n+t>r)throw new kv("Wrong length");for(;o<n;)this[t+o]=i[o++]}),!Pv||Lv);var xv=xl,Vv=s,Uv=Te,Fv=Ta,Bv=ya,Hv=Sa,Wv=re,Gv=Aa,jv=TE.aTypedArray,Jv=TE.exportTypedArrayMethod,Kv=n.Uint16Array,qv=Kv&&xv(Kv.prototype.sort),zv=!(!qv||Vv((function(){qv(new Kv(2),null)}))&&Vv((function(){qv(new Kv(2),{})}))),Yv=!!qv&&!Vv((function(){if(Wv)return Wv<74;if(Bv)return Bv<67;if(Hv)return!0;if(Gv)return Gv<602;var e,t,i=new Kv(516),r=Array(516);for(e=0;e<516;e++)t=e%4,i[e]=515-e,r[e]=e-2*t+3;for(qv(i,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(i[e]!==r[e])return!0}));Jv("sort",(function(e){return void 0!==e&&Uv(e),Yv?qv(this,e):Fv(jv(this),function(e){return function(t,i){return void 0!==e?+e(t,i)||0:i!=i?-1:t!=t?1:0===t&&0===i?1/t>0&&1/i<0?1:-1:t>i}}(e))}),!Yv||zv);var Xv=nn,Qv=u,Zv=I,$v=x,ey=H,ty=M,iy=Am,ry=_n,ny=Se,oy=Om,sy=Hf,ay=rt("replace"),cy=TypeError,ly=Zv("".indexOf);Zv("".replace);var dy=Zv("".slice),uy=Math.max;Xv({target:"String",proto:!0},{replaceAll:function(e,t){var i,r,n,o,s,a,c,l,d,u=$v(this),h=0,p="";if(!ty(e)){if(iy(e)&&(i=ry($v(oy(e))),!~ly(i,"g")))throw new cy("`.replaceAll` does not allow non-global regexes");if(r=ny(e,ay))return Qv(r,e,u,t)}for(n=ry(u),o=ry(e),(s=ey(t))||(t=ry(t)),a=o.length,c=uy(1,a),l=ly(n,o);-1!==l;)d=s?ry(t(o,l,n)):sy(o,n,l,[],void 0,t),p+=dy(n,h,l)+d,h=l+a,l=l+c>n.length?-1:ly(n,o,l+c);return h<n.length&&(p+=dy(n,h)),p}});var hy={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},py=Et("span").classList,my=py&&py.constructor&&py.constructor.prototype,_y=my===Object.prototype?void 0:my,fy=uT.forEach,gy=Zs("forEach")?[].forEach:function(e){return fy(this,e,arguments.length>1?arguments[1]:void 0)},Ey=n,Ty=hy,vy=_y,yy=gy,Sy=Yt,Iy=function(e){if(e&&e.forEach!==yy)try{Sy(e,"forEach",yy)}catch(EJ){e.forEach=yy}};for(var Ay in Ty)Ty[Ay]&&Iy(Ey[Ay]&&Ey[Ay].prototype);Iy(vy);var Ry=n,Cy=hy,by=_y,ky=Hs,Dy=Yt,wy=jo,Ny=rt("iterator"),Oy=ky.values,My=function(e,t){if(e){if(e[Ny]!==Oy)try{Dy(e,Ny,Oy)}catch(EJ){e[Ny]=Oy}if(wy(e,t,!0),Cy[t])for(var i in ky)if(e[i]!==ky[i])try{Dy(e,i,ky[i])}catch(EJ){e[i]=ky[i]}}};for(var Py in Cy)My(Ry[Py]&&Ry[Py].prototype,Py);My(by,"DOMTokenList");var Ly=Nf.charAt,xy=_n,Vy=wi,Uy=ks,Fy=Ds,By="String Iterator",Hy=Vy.set,Wy=Vy.getterFor(By);Uy(String,"String",(function(e){Hy(this,{type:By,string:xy(e),index:0})}),(function(){var e,t=Wy(this),i=t.string,r=t.index;return r>=i.length?Fy(void 0,!0):(e=Ly(i,r),t.index+=e.length,Fy(e,!1))}));var Gy=s,jy=a,Jy=rt("iterator"),Ky=!Gy((function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,i=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach((function(e,i){t.delete("b"),r+=i+e})),i.delete("a",2),i.delete("b",void 0),!t.size&&!jy||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[Jy]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==r||"x"!==new URL("https://x",void 0).host})),qy=a,zy=I,Yy=u,Xy=s,Qy=Hn,Zy=Dr,$y=h,eS=Be,tS=O,iS=Object.assign,rS=Object.defineProperty,nS=zy([].concat),oS=!iS||Xy((function(){if(qy&&1!==iS({b:1},iS(rS({},"a",{enumerable:!0,get:function(){rS(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},i=Symbol("assign detection"),r="abcdefghijklmnopqrst";return e[i]=7,r.split("").forEach((function(e){t[e]=e})),7!==iS({},e)[i]||Qy(iS({},t)).join("")!==r}))?function(e,t){for(var i=eS(e),r=arguments.length,n=1,o=Zy.f,s=$y.f;r>n;)for(var a,c=tS(arguments[n++]),l=o?nS(Qy(c),o(c)):Qy(c),d=l.length,u=0;d>u;)a=l[u++],qy&&!Yy(s,c,a)||(i[a]=c[a]);return i}:iS,sS=Lt,aS=gp,cS=a,lS=wt,dS=E,uS=Dd,hS=u,pS=Be,mS=function(e,t,i,r){try{return r?t(sS(i)[0],i[1]):t(i)}catch(EJ){aS(e,"throw",EJ)}},_S=ep,fS=ud,gS=mr,ES=function(e,t,i){cS?lS.f(e,t,dS(0,i)):e[t]=i},TS=pp,vS=sp,yS=Array,SS=I,IS=2147483647,AS=/[^\0-\u007E]/,RS=/[.\u3002\uFF0E\uFF61]/g,CS="Overflow: input needs wider integers to process",bS=RangeError,kS=SS(RS.exec),DS=Math.floor,wS=String.fromCharCode,NS=SS("".charCodeAt),OS=SS([].join),MS=SS([].push),PS=SS("".replace),LS=SS("".split),xS=SS("".toLowerCase),VS=function(e){return e+22+75*(e<26)},US=function(e,t,i){var r=0;for(e=i?DS(e/700):e>>1,e+=DS(e/t);e>455;)e=DS(e/35),r+=36;return DS(r+36*e/(e+38))},FS=function(e){var t=[];e=function(e){for(var t=[],i=0,r=e.length;i<r;){var n=NS(e,i++);if(n>=55296&&n<=56319&&i<r){var o=NS(e,i++);56320==(64512&o)?MS(t,((1023&n)<<10)+(1023&o)+65536):(MS(t,n),i--)}else MS(t,n)}return t}(e);var i,r,n=e.length,o=128,s=0,a=72;for(i=0;i<e.length;i++)(r=e[i])<128&&MS(t,wS(r));var c=t.length,l=c;for(c&&MS(t,"-");l<n;){var d=IS;for(i=0;i<e.length;i++)(r=e[i])>=o&&r<d&&(d=r);var u=l+1;if(d-o>DS((IS-s)/u))throw new bS(CS);for(s+=(d-o)*u,o=d,i=0;i<e.length;i++){if((r=e[i])<o&&++s>IS)throw new bS(CS);if(r===o){for(var h=s,p=36;;){var m=p<=a?1:p>=a+26?26:p-a;if(h<m)break;var _=h-m,f=36-m;MS(t,wS(VS(m+_%f))),h=DS(_/f),p+=36}MS(t,wS(VS(h))),a=US(s,u,l===c),s=0,l++}}s++,o++}return OS(t,"")},BS=nn,HS=I,WS=lr,GS=RangeError,jS=String.fromCharCode,JS=String.fromCodePoint,KS=HS([].join);BS({target:"String",stat:!0,arity:1,forced:!!JS&&1!==JS.length},{fromCodePoint:function(e){for(var t,i=[],r=arguments.length,n=0;r>n;){if(t=+arguments[n++],WS(t,1114111)!==t)throw new GS(t+" is not a valid code point");i[n]=t<65536?jS(t):jS(55296+((t-=65536)>>10),t%1024+56320)}return KS(i,"")}});var qS=nn,zS=n,YS=lu,XS=K,QS=u,ZS=I,$S=a,eI=Ky,tI=$i,iI=En,rI=za,nI=jo,oI=Qo,sI=wi,aI=Qa,cI=H,lI=Ge,dI=Dd,uI=hn,hI=Lt,pI=G,mI=_n,_I=lo,fI=E,gI=pp,EI=sp,TI=Ds,vI=Nd,yI=Ta,SI=rt("iterator"),II="URLSearchParams",AI=II+"Iterator",RI=sI.set,CI=sI.getterFor(II),bI=sI.getterFor(AI),kI=YS("fetch"),DI=YS("Request"),wI=YS("Headers"),NI=DI&&DI.prototype,OI=wI&&wI.prototype,MI=zS.TypeError,PI=zS.encodeURIComponent,LI=String.fromCharCode,xI=XS("String","fromCodePoint"),VI=parseInt,UI=ZS("".charAt),FI=ZS([].join),BI=ZS([].push),HI=ZS("".replace),WI=ZS([].shift),GI=ZS([].splice),jI=ZS("".split),JI=ZS("".slice),KI=ZS(/./.exec),qI=/\+/g,zI=/^[0-9a-f]+$/i,YI=function(e,t){var i=JI(e,t,t+2);return KI(zI,i)?VI(i,16):NaN},XI=function(e){for(var t=0,i=128;i>0&&e&i;i>>=1)t++;return t},QI=function(e){var t=null;switch(e.length){case 1:t=e[0];break;case 2:t=(31&e[0])<<6|63&e[1];break;case 3:t=(15&e[0])<<12|(63&e[1])<<6|63&e[2];break;case 4:t=(7&e[0])<<18|(63&e[1])<<12|(63&e[2])<<6|63&e[3]}return t>1114111?null:t},ZI=function(e){for(var t=(e=HI(e,qI," ")).length,i="",r=0;r<t;){var n=UI(e,r);if("%"===n){if("%"===UI(e,r+1)||r+3>t){i+="%",r++;continue}var o=YI(e,r+1);if(o!=o){i+=n,r++;continue}r+=2;var s=XI(o);if(0===s)n=LI(o);else{if(1===s||s>4){i+="�",r++;continue}for(var a=[o],c=1;c<s&&!(++r+3>t||"%"!==UI(e,r));){var l=YI(e,r+1);if(l!=l){r+=3;break}if(l>191||l<128)break;BI(a,l),r+=2,c++}if(a.length!==s){i+="�";continue}var d=QI(a);null===d?i+="�":n=xI(d)}}i+=n,r++}return i},$I=/[!'()~]|%20/g,eA={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},tA=function(e){return eA[e]},iA=function(e){return HI(PI(e),$I,tA)},rA=oI((function(e,t){RI(this,{type:AI,target:CI(e).entries,index:0,kind:t})}),II,(function(){var e=bI(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,TI(void 0,!0);var r=t[i];switch(e.kind){case"keys":return TI(r.key,!1);case"values":return TI(r.value,!1)}return TI([r.key,r.value],!1)}),!0),nA=function(e){this.entries=[],this.url=null,void 0!==e&&(pI(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===UI(e,0)?JI(e,1):e:mI(e)))};nA.prototype={type:II,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,n,o,s,a,c=this.entries,l=EI(e);if(l)for(i=(t=gI(e,l)).next;!(r=QS(i,t)).done;){if(o=(n=gI(hI(r.value))).next,(s=QS(o,n)).done||(a=QS(o,n)).done||!QS(o,n).done)throw new MI("Expected sequence with length 2");BI(c,{key:mI(s.value),value:mI(a.value)})}else for(var d in e)lI(e,d)&&BI(c,{key:d,value:mI(e[d])})},parseQuery:function(e){if(e)for(var t,i,r=this.entries,n=jI(e,"&"),o=0;o<n.length;)(t=n[o++]).length&&(i=jI(t,"="),BI(r,{key:ZI(WI(i)),value:ZI(FI(i,"="))}))},serialize:function(){for(var e,t=this.entries,i=[],r=0;r<t.length;)e=t[r++],BI(i,iA(e.key)+"="+iA(e.value));return FI(i,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var oA=function(){aI(this,sA);var e=RI(this,new nA(arguments.length>0?arguments[0]:void 0));$S||(this.size=e.entries.length)},sA=oA.prototype;if(rI(sA,{append:function(e,t){var i=CI(this);vI(arguments.length,2),BI(i.entries,{key:mI(e),value:mI(t)}),$S||this.length++,i.updateURL()},delete:function(e){for(var t=CI(this),i=vI(arguments.length,1),r=t.entries,n=mI(e),o=i<2?void 0:arguments[1],s=void 0===o?o:mI(o),a=0;a<r.length;){var c=r[a];if(c.key!==n||void 0!==s&&c.value!==s)a++;else if(GI(r,a,1),void 0!==s)break}$S||(this.size=r.length),t.updateURL()},get:function(e){var t=CI(this).entries;vI(arguments.length,1);for(var i=mI(e),r=0;r<t.length;r++)if(t[r].key===i)return t[r].value;return null},getAll:function(e){var t=CI(this).entries;vI(arguments.length,1);for(var i=mI(e),r=[],n=0;n<t.length;n++)t[n].key===i&&BI(r,t[n].value);return r},has:function(e){for(var t=CI(this).entries,i=vI(arguments.length,1),r=mI(e),n=i<2?void 0:arguments[1],o=void 0===n?n:mI(n),s=0;s<t.length;){var a=t[s++];if(a.key===r&&(void 0===o||a.value===o))return!0}return!1},set:function(e,t){var i=CI(this);vI(arguments.length,1);for(var r,n=i.entries,o=!1,s=mI(e),a=mI(t),c=0;c<n.length;c++)(r=n[c]).key===s&&(o?GI(n,c--,1):(o=!0,r.value=a));o||BI(n,{key:s,value:a}),$S||(this.size=n.length),i.updateURL()},sort:function(){var e=CI(this);yI(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,i=CI(this).entries,r=dI(e,arguments.length>1?arguments[1]:void 0),n=0;n<i.length;)r((t=i[n++]).value,t.key,this)},keys:function(){return new rA(this,"keys")},values:function(){return new rA(this,"values")},entries:function(){return new rA(this,"entries")}},{enumerable:!0}),tI(sA,SI,sA.entries,{name:"entries"}),tI(sA,"toString",(function(){return CI(this).serialize()}),{enumerable:!0}),$S&&iI(sA,"size",{get:function(){return CI(this).entries.length},configurable:!0,enumerable:!0}),nI(oA,II),qS({global:!0,constructor:!0,forced:!eI},{URLSearchParams:oA}),!eI&&cI(wI)){var aA=ZS(OI.has),cA=ZS(OI.set),lA=function(e){if(pI(e)){var t,i=e.body;if(uI(i)===II)return t=e.headers?new wI(e.headers):new wI,aA(t,"content-type")||cA(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),_I(e,{body:fI(0,mI(i)),headers:fI(0,t)})}return e};if(cI(kI)&&qS({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return kI(e,arguments.length>1?lA(arguments[1]):{})}}),cI(DI)){var dA=function(e){return aI(this,NI),new DI(e,arguments.length>1?lA(arguments[1]):{})};NI.constructor=dA,dA.prototype=NI,qS({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:dA})}}var uA,hA=nn,pA=a,mA=Ky,_A=n,fA=Dd,gA=I,EA=$i,TA=En,vA=Qa,yA=Ge,SA=oS,IA=function(e){var t=pS(e),i=fS(this),r=arguments.length,n=r>1?arguments[1]:void 0,o=void 0!==n;o&&(n=uS(n,r>2?arguments[2]:void 0));var s,a,c,l,d,u,h=vS(t),p=0;if(!h||this===yS&&_S(h))for(s=gS(t),a=i?new this(s):yS(s);s>p;p++)u=o?n(t[p],p):t[p],ES(a,p,u);else for(a=i?new this:[],d=(l=TS(t,h)).next;!(c=hS(d,l)).done;p++)u=o?mS(l,n,[c.value,p],!0):c.value,ES(a,p,u);return a.length=p,a},AA=_a,RA=Nf.codeAt,CA=function(e){var t,i,r=[],n=LS(PS(xS(e),RS,"."),".");for(t=0;t<n.length;t++)i=n[t],MS(r,kS(AS,i)?"xn--"+FS(i):i);return OS(r,".")},bA=_n,kA=jo,DA=Nd,wA={URLSearchParams:oA,getState:CI},NA=wi,OA=NA.set,MA=NA.getterFor("URL"),PA=wA.URLSearchParams,LA=wA.getState,xA=_A.URL,VA=_A.TypeError,UA=_A.parseInt,FA=Math.floor,BA=Math.pow,HA=gA("".charAt),WA=gA(/./.exec),GA=gA([].join),jA=gA(1..toString),JA=gA([].pop),KA=gA([].push),qA=gA("".replace),zA=gA([].shift),YA=gA("".split),XA=gA("".slice),QA=gA("".toLowerCase),ZA=gA([].unshift),$A="Invalid scheme",eR="Invalid host",tR="Invalid port",iR=/[a-z]/i,rR=/[\d+-.a-z]/i,nR=/\d/,oR=/^0x/i,sR=/^[0-7]+$/,aR=/^\d+$/,cR=/^[\da-f]+$/i,lR=/[\0\t\n\r #%/:<>?@[\\\]^|]/,dR=/[\0\t\n\r #/:<>?@[\\\]^|]/,uR=/^[\u0000-\u0020]+/,hR=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,pR=/[\t\n\r]/g,mR=function(e){var t,i,r,n;if("number"==typeof e){for(t=[],i=0;i<4;i++)ZA(t,e%256),e=FA(e/256);return GA(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,i=1,r=null,n=0,o=0;o<8;o++)0!==e[o]?(n>i&&(t=r,i=n),r=null,n=0):(null===r&&(r=o),++n);return n>i?r:t}(e),i=0;i<8;i++)n&&0===e[i]||(n&&(n=!1),r===i?(t+=i?":":"::",n=!0):(t+=jA(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},_R={},fR=SA({},_R,{" ":1,'"':1,"<":1,">":1,"`":1}),gR=SA({},fR,{"#":1,"?":1,"{":1,"}":1}),ER=SA({},gR,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),TR=function(e,t){var i=RA(e,0);return i>32&&i<127&&!yA(t,e)?e:encodeURIComponent(e)},vR={ftp:21,file:null,http:80,https:443,ws:80,wss:443},yR=function(e,t){var i;return 2===e.length&&WA(iR,HA(e,0))&&(":"===(i=HA(e,1))||!t&&"|"===i)},SR=function(e){var t;return e.length>1&&yR(XA(e,0,2))&&(2===e.length||"/"===(t=HA(e,2))||"\\"===t||"?"===t||"#"===t)},IR=function(e){return"."===e||"%2e"===QA(e)},AR={},RR={},CR={},bR={},kR={},DR={},wR={},NR={},OR={},MR={},PR={},LR={},xR={},VR={},UR={},FR={},BR={},HR={},WR={},GR={},jR={},JR=function(e,t,i){var r,n,o,s=bA(e);if(t){if(n=this.parse(s))throw new VA(n);this.searchParams=null}else{if(void 0!==i&&(r=new JR(i,!0)),n=this.parse(s,null,r))throw new VA(n);(o=LA(new PA)).bindURL(this),this.searchParams=o}};JR.prototype={type:"URL",parse:function(e,t,i){var r,n,o,s,a,c=this,l=t||AR,d=0,u="",h=!1,p=!1,m=!1;for(e=bA(e),t||(c.scheme="",c.username="",c.password="",c.host=null,c.port=null,c.path=[],c.query=null,c.fragment=null,c.cannotBeABaseURL=!1,e=qA(e,uR,""),e=qA(e,hR,"$1")),e=qA(e,pR,""),r=IA(e);d<=r.length;){switch(n=r[d],l){case AR:if(!n||!WA(iR,n)){if(t)return $A;l=CR;continue}u+=QA(n),l=RR;break;case RR:if(n&&(WA(rR,n)||"+"===n||"-"===n||"."===n))u+=QA(n);else{if(":"!==n){if(t)return $A;u="",l=CR,d=0;continue}if(t&&(c.isSpecial()!==yA(vR,u)||"file"===u&&(c.includesCredentials()||null!==c.port)||"file"===c.scheme&&!c.host))return;if(c.scheme=u,t)return void(c.isSpecial()&&vR[c.scheme]===c.port&&(c.port=null));u="","file"===c.scheme?l=VR:c.isSpecial()&&i&&i.scheme===c.scheme?l=bR:c.isSpecial()?l=NR:"/"===r[d+1]?(l=kR,d++):(c.cannotBeABaseURL=!0,KA(c.path,""),l=WR)}break;case CR:if(!i||i.cannotBeABaseURL&&"#"!==n)return $A;if(i.cannotBeABaseURL&&"#"===n){c.scheme=i.scheme,c.path=AA(i.path),c.query=i.query,c.fragment="",c.cannotBeABaseURL=!0,l=jR;break}l="file"===i.scheme?VR:DR;continue;case bR:if("/"!==n||"/"!==r[d+1]){l=DR;continue}l=OR,d++;break;case kR:if("/"===n){l=MR;break}l=HR;continue;case DR:if(c.scheme=i.scheme,n===uA)c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=AA(i.path),c.query=i.query;else if("/"===n||"\\"===n&&c.isSpecial())l=wR;else if("?"===n)c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=AA(i.path),c.query="",l=GR;else{if("#"!==n){c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=AA(i.path),c.path.length--,l=HR;continue}c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=AA(i.path),c.query=i.query,c.fragment="",l=jR}break;case wR:if(!c.isSpecial()||"/"!==n&&"\\"!==n){if("/"!==n){c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,l=HR;continue}l=MR}else l=OR;break;case NR:if(l=OR,"/"!==n||"/"!==HA(u,d+1))continue;d++;break;case OR:if("/"!==n&&"\\"!==n){l=MR;continue}break;case MR:if("@"===n){h&&(u="%40"+u),h=!0,o=IA(u);for(var _=0;_<o.length;_++){var f=o[_];if(":"!==f||m){var g=TR(f,ER);m?c.password+=g:c.username+=g}else m=!0}u=""}else if(n===uA||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()){if(h&&""===u)return"Invalid authority";d-=IA(u).length+1,u="",l=PR}else u+=n;break;case PR:case LR:if(t&&"file"===c.scheme){l=FR;continue}if(":"!==n||p){if(n===uA||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()){if(c.isSpecial()&&""===u)return eR;if(t&&""===u&&(c.includesCredentials()||null!==c.port))return;if(s=c.parseHost(u))return s;if(u="",l=BR,t)return;continue}"["===n?p=!0:"]"===n&&(p=!1),u+=n}else{if(""===u)return eR;if(s=c.parseHost(u))return s;if(u="",l=xR,t===LR)return}break;case xR:if(!WA(nR,n)){if(n===uA||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()||t){if(""!==u){var E=UA(u,10);if(E>65535)return tR;c.port=c.isSpecial()&&E===vR[c.scheme]?null:E,u=""}if(t)return;l=BR;continue}return tR}u+=n;break;case VR:if(c.scheme="file","/"===n||"\\"===n)l=UR;else{if(!i||"file"!==i.scheme){l=HR;continue}switch(n){case uA:c.host=i.host,c.path=AA(i.path),c.query=i.query;break;case"?":c.host=i.host,c.path=AA(i.path),c.query="",l=GR;break;case"#":c.host=i.host,c.path=AA(i.path),c.query=i.query,c.fragment="",l=jR;break;default:SR(GA(AA(r,d),""))||(c.host=i.host,c.path=AA(i.path),c.shortenPath()),l=HR;continue}}break;case UR:if("/"===n||"\\"===n){l=FR;break}i&&"file"===i.scheme&&!SR(GA(AA(r,d),""))&&(yR(i.path[0],!0)?KA(c.path,i.path[0]):c.host=i.host),l=HR;continue;case FR:if(n===uA||"/"===n||"\\"===n||"?"===n||"#"===n){if(!t&&yR(u))l=HR;else if(""===u){if(c.host="",t)return;l=BR}else{if(s=c.parseHost(u))return s;if("localhost"===c.host&&(c.host=""),t)return;u="",l=BR}continue}u+=n;break;case BR:if(c.isSpecial()){if(l=HR,"/"!==n&&"\\"!==n)continue}else if(t||"?"!==n)if(t||"#"!==n){if(n!==uA&&(l=HR,"/"!==n))continue}else c.fragment="",l=jR;else c.query="",l=GR;break;case HR:if(n===uA||"/"===n||"\\"===n&&c.isSpecial()||!t&&("?"===n||"#"===n)){if(".."===(a=QA(a=u))||"%2e."===a||".%2e"===a||"%2e%2e"===a?(c.shortenPath(),"/"===n||"\\"===n&&c.isSpecial()||KA(c.path,"")):IR(u)?"/"===n||"\\"===n&&c.isSpecial()||KA(c.path,""):("file"===c.scheme&&!c.path.length&&yR(u)&&(c.host&&(c.host=""),u=HA(u,0)+":"),KA(c.path,u)),u="","file"===c.scheme&&(n===uA||"?"===n||"#"===n))for(;c.path.length>1&&""===c.path[0];)zA(c.path);"?"===n?(c.query="",l=GR):"#"===n&&(c.fragment="",l=jR)}else u+=TR(n,gR);break;case WR:"?"===n?(c.query="",l=GR):"#"===n?(c.fragment="",l=jR):n!==uA&&(c.path[0]+=TR(n,_R));break;case GR:t||"#"!==n?n!==uA&&("'"===n&&c.isSpecial()?c.query+="%27":c.query+="#"===n?"%23":TR(n,_R)):(c.fragment="",l=jR);break;case jR:n!==uA&&(c.fragment+=TR(n,fR))}d++}},parseHost:function(e){var t,i,r;if("["===HA(e,0)){if("]"!==HA(e,e.length-1))return eR;if(t=function(e){var t,i,r,n,o,s,a,c=[0,0,0,0,0,0,0,0],l=0,d=null,u=0,h=function(){return HA(e,u)};if(":"===h()){if(":"!==HA(e,1))return;u+=2,d=++l}for(;h();){if(8===l)return;if(":"!==h()){for(t=i=0;i<4&&WA(cR,h());)t=16*t+UA(h(),16),u++,i++;if("."===h()){if(0===i)return;if(u-=i,l>6)return;for(r=0;h();){if(n=null,r>0){if(!("."===h()&&r<4))return;u++}if(!WA(nR,h()))return;for(;WA(nR,h());){if(o=UA(h(),10),null===n)n=o;else{if(0===n)return;n=10*n+o}if(n>255)return;u++}c[l]=256*c[l]+n,2!=++r&&4!==r||l++}if(4!==r)return;break}if(":"===h()){if(u++,!h())return}else if(h())return;c[l++]=t}else{if(null!==d)return;u++,d=++l}}if(null!==d)for(s=l-d,l=7;0!==l&&s>0;)a=c[l],c[l--]=c[d+s-1],c[d+--s]=a;else if(8!==l)return;return c}(XA(e,1,-1)),!t)return eR;this.host=t}else if(this.isSpecial()){if(e=CA(e),WA(lR,e))return eR;if(t=function(e){var t,i,r,n,o,s,a,c=YA(e,".");if(c.length&&""===c[c.length-1]&&c.length--,(t=c.length)>4)return e;for(i=[],r=0;r<t;r++){if(""===(n=c[r]))return e;if(o=10,n.length>1&&"0"===HA(n,0)&&(o=WA(oR,n)?16:8,n=XA(n,8===o?1:2)),""===n)s=0;else{if(!WA(10===o?aR:8===o?sR:cR,n))return e;s=UA(n,o)}KA(i,s)}for(r=0;r<t;r++)if(s=i[r],r===t-1){if(s>=BA(256,5-t))return null}else if(s>255)return null;for(a=JA(i),r=0;r<i.length;r++)a+=i[r]*BA(256,3-r);return a}(e),null===t)return eR;this.host=t}else{if(WA(dR,e))return eR;for(t="",i=IA(e),r=0;r<i.length;r++)t+=TR(i[r],_R);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return yA(vR,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"===this.scheme&&1===t&&yR(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,i=e.username,r=e.password,n=e.host,o=e.port,s=e.path,a=e.query,c=e.fragment,l=t+":";return null!==n?(l+="//",e.includesCredentials()&&(l+=i+(r?":"+r:"")+"@"),l+=mR(n),null!==o&&(l+=":"+o)):"file"===t&&(l+="//"),l+=e.cannotBeABaseURL?s[0]:s.length?"/"+GA(s,"/"):"",null!==a&&(l+="?"+a),null!==c&&(l+="#"+c),l},setHref:function(e){var t=this.parse(e);if(t)throw new VA(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new KR(e.path[0]).origin}catch(EJ){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+mR(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(bA(e)+":",AR)},getUsername:function(){return this.username},setUsername:function(e){var t=IA(bA(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var i=0;i<t.length;i++)this.username+=TR(t[i],ER)}},getPassword:function(){return this.password},setPassword:function(e){var t=IA(bA(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var i=0;i<t.length;i++)this.password+=TR(t[i],ER)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?mR(e):mR(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,PR)},getHostname:function(){var e=this.host;return null===e?"":mR(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,LR)},getPort:function(){var e=this.port;return null===e?"":bA(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""===(e=bA(e))?this.port=null:this.parse(e,xR))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+GA(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,BR))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""===(e=bA(e))?this.query=null:("?"===HA(e,0)&&(e=XA(e,1)),this.query="",this.parse(e,GR)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!==(e=bA(e))?("#"===HA(e,0)&&(e=XA(e,1)),this.fragment="",this.parse(e,jR)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var KR=function(e){var t=vA(this,qR),i=DA(arguments.length,1)>1?arguments[1]:void 0,r=OA(t,new JR(e,!1,i));pA||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},qR=KR.prototype,zR=function(e,t){return{get:function(){return MA(this)[e]()},set:t&&function(e){return MA(this)[t](e)},configurable:!0,enumerable:!0}};if(pA&&(TA(qR,"href",zR("serialize","setHref")),TA(qR,"origin",zR("getOrigin")),TA(qR,"protocol",zR("getProtocol","setProtocol")),TA(qR,"username",zR("getUsername","setUsername")),TA(qR,"password",zR("getPassword","setPassword")),TA(qR,"host",zR("getHost","setHost")),TA(qR,"hostname",zR("getHostname","setHostname")),TA(qR,"port",zR("getPort","setPort")),TA(qR,"pathname",zR("getPathname","setPathname")),TA(qR,"search",zR("getSearch","setSearch")),TA(qR,"searchParams",zR("getSearchParams")),TA(qR,"hash",zR("getHash","setHash"))),EA(qR,"toJSON",(function(){return MA(this).serialize()}),{enumerable:!0}),EA(qR,"toString",(function(){return MA(this).serialize()}),{enumerable:!0}),xA){var YR=xA.createObjectURL,XR=xA.revokeObjectURL;YR&&EA(KR,"createObjectURL",fA(YR,xA)),XR&&EA(KR,"revokeObjectURL",fA(XR,xA))}kA(KR,"URL"),hA({global:!0,constructor:!0,forced:!mA,sham:!pA},{URL:KR});var QR=u;nn({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return QR(URL.prototype.toString,this)}});let ZR=!0,$R=!0;function eC(e,t,i){const r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function tC(e,t,i){if(!e.RTCPeerConnection)return;const r=e.RTCPeerConnection.prototype,n=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return n.apply(this,arguments);const o=e=>{const t=i(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),n.apply(this,[e,o])};const o=r.removeEventListener;r.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(i))return o.apply(this,arguments);const r=this._eventMap[t].get(i);return this._eventMap[t].delete(i),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,o.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function iC(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(ZR=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function rC(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):($R=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function nC(){if("object"==typeof window){if(ZR)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function oC(e,t){$R&&console.warn(e+" is deprecated, please use "+t+" instead.")}function sC(e){return"[object Object]"===Object.prototype.toString.call(e)}function aC(e){return sC(e)?Object.keys(e).reduce((function(t,i){const r=sC(e[i]),n=r?aC(e[i]):e[i],o=r&&!Object.keys(n).length;return void 0===n||o?t:Object.assign(t,{[i]:n})}),{}):e}function cC(e,t,i){t&&!i.has(t.id)&&(i.set(t.id,t),Object.keys(t).forEach((r=>{r.endsWith("Id")?cC(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach((t=>{cC(e,e.get(t),i)}))})))}function lC(e,t,i){const r=i?"outbound-rtp":"inbound-rtp",n=new Map;if(null===t)return n;const o=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&o.push(e)})),o.forEach((t=>{e.forEach((i=>{i.type===r&&i.trackId===t.id&&cC(e,i,n)}))})),n}const dC=nC;function uC(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const r=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach((i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;const r="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);const n=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[n("min",i)]=r.ideal,t.optional.push(e),e={},e[n("max",i)]=r.ideal,t.optional.push(e)):(e[n("",i)]=r.ideal,t.optional.push(e))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[n("",i)]=r.exact):["min","max"].forEach((e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[n(e,i)]=r[e])}))})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},n=function(e,n){if(t.version>=61)return n(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=r(e.audio)}if(e&&"object"==typeof e.video){let o=e.video.facingMode;o=o&&("object"==typeof o?o:{ideal:o});const s=t.version<66;if(o&&("user"===o.exact||"environment"===o.exact||"user"===o.ideal||"environment"===o.ideal)&&(!i.mediaDevices.getSupportedConstraints||!i.mediaDevices.getSupportedConstraints().facingMode||s)){let t;if(delete e.video.facingMode,"environment"===o.exact||"environment"===o.ideal?t=["back","rear"]:"user"!==o.exact&&"user"!==o.ideal||(t=["front"]),t)return i.mediaDevices.enumerateDevices().then((i=>{i=i.filter((e=>"videoinput"===e.kind));let s=i.find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!s&&i.length&&t.includes("back")&&(s=i[i.length-1]),s&&(e.video.deviceId=o.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=r(e.video),dC("chrome: "+JSON.stringify(e)),n(e)}))}e.video=r(e.video)}return dC("chrome: "+JSON.stringify(e)),n(e)},o=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(i.getUserMedia=function(e,t,r){n(e,(e=>{i.webkitGetUserMedia(e,t,(e=>{r&&r(o(e))}))}))}.bind(i),i.mediaDevices.getUserMedia){const e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(t){return n(t,(t=>e(t).then((e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(o(e))))))}}}function hC(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function pC(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.track.id)):{track:i.track};const n=new Event("track");n.track=i.track,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)})),t.stream.getTracks().forEach((i=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.id)):{track:i};const n=new Event("track");n.track=i,n.receiver=r,n.transceiver={receiver:r},n.streams=[t.stream],this.dispatchEvent(n)}))},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else tC(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function mC(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let n=i.apply(this,arguments);return n||(n=t(this,e),this._senders.push(n)),n};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function _C(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const n=function(e){const t={};return e.result().forEach((e=>{const i={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach((t=>{i[t]=e.stat(t)})),t[i.id]=i})),t},o=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const r=function(e){i(o(n(e)))};return t.apply(this,[r,e])}return new Promise(((e,i)=>{t.apply(this,[function(t){e(o(n(t)))},i])})).then(i,r)}}function fC(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>lC(t,e.track,!0)))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),tC(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>lC(t,e.track,!1)))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,i,r;return this.getSenders().forEach((i=>{i.track===e&&(t?r=!0:t=i)})),this.getReceivers().forEach((t=>(t.track===e&&(i?r=!0:i=t),t.track===e))),r||t&&i?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():i?i.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function gC(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const r=t.apply(this,arguments);return this._shimmedLocalStreams[i.id]?-1===this._shimmedLocalStreams[i.id].indexOf(r)&&this._shimmedLocalStreams[i.id].push(r):this._shimmedLocalStreams[i.id]=[i,r],r};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();i.apply(this,arguments);const r=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(r)};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const i=this._shimmedLocalStreams[t].indexOf(e);-1!==i&&this._shimmedLocalStreams[t].splice(i,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),n.apply(this,arguments)}}function EC(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return gC(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}r.apply(this,[t])};const n=e.RTCPeerConnection.prototype.removeStream;function o(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(new RegExp(n.id,"g"),r.id)})),new RTCSessionDescription({type:t.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},n.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const n=this._streams[i.id];if(n)n.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const r=new e.MediaStream([t]);this._streams[i.id]=r,this._reverseStreams[r.id]=i,this.addStream(r)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?i.apply(this,[t=>{const i=o(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then((e=>o(this,e)))}};e.RTCPeerConnection.prototype[t]=r[t]}));const s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],n=e._streams[r.id];i=i.replace(new RegExp(r.id,"g"),n.id)})),new RTCSessionDescription({type:t.type,sdp:i})}(this,arguments[0]),s.apply(this,arguments)):s.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:o(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((i=>{this._streams[i].getTracks().find((t=>e.track===t))&&(t=this._streams[i])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function TC(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}))}function vC(e,t){tC(e,"negotiationneeded",(e=>{const i=e.target;if(!(t.version<72||i.getConfiguration&&"plan-b"===i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e}))}var yC=Object.freeze({__proto__:null,shimMediaStream:hC,shimOnTrack:pC,shimGetSendersWithDtmf:mC,shimGetStats:_C,shimSenderReceiverGetStats:fC,shimAddTrackRemoveTrackWithNative:gC,shimAddTrackRemoveTrack:EC,shimPeerConnection:TC,fixNegotiationNeeded:vC,shimGetUserMedia:uC,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(i){return t(i).then((t=>{const r=i.video&&i.video.width,n=i.video&&i.video.height,o=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:o||3}},r&&(i.video.mandatory.maxWidth=r),n&&(i.video.mandatory.maxHeight=n),e.navigator.mediaDevices.getUserMedia(i)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});function SC(e,t){const i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,r){oC("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const e=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])},t=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(i=JSON.parse(JSON.stringify(i)),e(i.audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),t(i)},r&&r.prototype.getSettings){const t=r.prototype.getSettings;r.prototype.getSettings=function(){const i=t.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(r&&r.prototype.applyConstraints){const t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(i=JSON.parse(JSON.stringify(i)),e(i,"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[i])}}}}function IC(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function AC(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}));const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,n,o]=arguments;return r.apply(this,[e||null]).then((e=>{if(t.version<53&&!n)try{e.forEach((e=>{e.type=i[e.type]||e.type}))}catch(Yb){if("TypeError"!==Yb.name)throw Yb;e.forEach(((t,r)=>{e.set(r,Object.assign({},t,{type:i[t.type]||t.type}))}))}return e})).then(n,o)}}function RC(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function CC(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),tC(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function bC(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){oC("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function kC(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function DC(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const i=e.length>0;i&&e.forEach((e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const r=t.apply(this,arguments);if(i){const{sender:t}=r,i=t.getParameters();(!("encodings"in i)||1===i.encodings.length&&0===Object.keys(i.encodings[0]).length)&&(i.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(i).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return r})}function wC(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function NC(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function OC(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}var MC=Object.freeze({__proto__:null,shimOnTrack:IC,shimPeerConnection:AC,shimSenderGetStats:RC,shimReceiverGetStats:CC,shimRemoveStream:bC,shimRTCDataChannel:kC,shimAddTransceiver:DC,shimGetParameters:wC,shimCreateOffer:NC,shimCreateAnswer:OC,shimGetUserMedia:SC,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!i||!i.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===i.video?i.video={mediaSource:t}:i.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(i)})}});function PC(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((i=>t.call(this,i,e))),e.getVideoTracks().forEach((i=>t.call(this,i,e)))},e.RTCPeerConnection.prototype.addTrack=function(e,...i){return i&&i.forEach((e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const i=e.getTracks();this.getSenders().forEach((e=>{i.includes(e.track)&&this.removeTrack(e)}))})}}function LC(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const i=new Event("addstream");i.stream=t,e.dispatchEvent(i)}))}),t.apply(e,arguments)}}}function xC(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,n=t.setLocalDescription,o=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],n=i.apply(this,[r]);return t?(n.then(e,t),Promise.resolve()):n},t.createAnswer=function(e,t){const i=arguments.length>=2?arguments[2]:arguments[0],n=r.apply(this,[i]);return t?(n.then(e,t),Promise.resolve()):n};let a=function(e,t,i){const r=n.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r};t.setLocalDescription=a,a=function(e,t,i){const r=o.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.setRemoteDescription=a,a=function(e,t,i){const r=s.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.addIceCandidate=a}function VC(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,i=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>i(UC(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,i,r){t.mediaDevices.getUserMedia(e).then(i,r)}.bind(t))}function UC(e){return e&&void 0!==e.video?Object.assign({},e,{video:aC(e.video)}):e}function FC(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){const t=[];for(let i=0;i<e.iceServers.length;i++){let r=e.iceServers[i];void 0===r.urls&&r.url?(oC("RTCIceServer.url","RTCIceServer.urls"),r=JSON.parse(JSON.stringify(r)),r.urls=r.url,delete r.url,t.push(r)):t.push(e.iceServers[i])}e.iceServers=t}return new t(e,i)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function BC(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function HC(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const i=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&i?"sendrecv"===i.direction?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":"recvonly"===i.direction&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):!0!==e.offerToReceiveVideo||i||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function WC(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var GC=Object.freeze({__proto__:null,shimLocalStreamsAPI:PC,shimRemoteStreamsAPI:LC,shimCallbacksAPI:xC,shimGetUserMedia:VC,shimConstraints:UC,shimRTCIceServerUrls:FC,shimTrackEventTransceiver:BC,shimCreateOfferLegacy:HC,shimAudioContext:WC}),jC={exports:{}};!function(e){const t={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map((e=>e.trim()))},t.splitSections=function(e){return e.split("\nm=").map(((e,t)=>(t>0?"m="+e:e).trim()+"\r\n"))},t.getDescription=function(e){const i=t.splitSections(e);return i&&i[0]},t.getMediaSections=function(e){const i=t.splitSections(e);return i.shift(),i},t.matchPrefix=function(e,i){return t.splitLines(e).filter((e=>0===e.indexOf(i)))},t.parseCandidate=function(e){let t;t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" ");const i={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let r=8;r<t.length;r+=2)switch(t[r]){case"raddr":i.relatedAddress=t[r+1];break;case"rport":i.relatedPort=parseInt(t[r+1],10);break;case"tcptype":i.tcpType=t[r+1];break;case"ufrag":i.ufrag=t[r+1],i.usernameFragment=t[r+1];break;default:void 0===i[t[r]]&&(i[t[r]]=t[r+1])}return i},t.writeCandidate=function(e){const t=[];t.push(e.foundation);const i=e.component;"rtp"===i?t.push(1):"rtcp"===i?t.push(2):t.push(i),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);const r=e.type;return t.push("typ"),t.push(r),"host"!==r&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substring(14).split(" ")},t.parseRtpMap=function(e){let t=e.substring(9).split(" ");const i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=3===t.length?parseInt(t[2],10):1,i.numChannels=i.channels,i},t.writeRtpMap=function(e){let t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);const i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==i?"/"+i:"")+"\r\n"},t.parseExtmap=function(e){const t=e.substring(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},t.parseFmtp=function(e){const t={};let i;const r=e.substring(e.indexOf(" ")+1).split(";");for(let n=0;n<r.length;n++)i=r[n].trim().split("="),t[i[0].trim()]=i[1];return t},t.writeFmtp=function(e){let t="",i=e.payloadType;if(void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){const r=[];Object.keys(e.parameters).forEach((t=>{void 0!==e.parameters[t]?r.push(t+"="+e.parameters[t]):r.push(t)})),t+="a=fmtp:"+i+" "+r.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){const t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){let t="",i=e.payloadType;return void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach((e=>{t+="a=rtcp-fb:"+i+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"})),t},t.parseSsrcMedia=function(e){const t=e.indexOf(" "),i={ssrc:parseInt(e.substring(7,t),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substring(t+1,r),i.value=e.substring(r+1)):i.attribute=e.substring(t+1),i},t.parseSsrcGroup=function(e){const t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map((e=>parseInt(e,10)))}},t.getMid=function(e){const i=t.matchPrefix(e,"a=mid:")[0];if(i)return i.substring(6)},t.parseFingerprint=function(e){const t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},t.getDtlsParameters=function(e,i){return{role:"auto",fingerprints:t.matchPrefix(e+i,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){let i="a=setup:"+t+"\r\n";return e.fingerprints.forEach((e=>{i+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"})),i},t.parseCryptoLine=function(e){const t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;const t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,i){return t.matchPrefix(e+i,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,i){const r=t.matchPrefix(e+i,"a=ice-ufrag:")[0],n=t.matchPrefix(e+i,"a=ice-pwd:")[0];return r&&n?{usernameFragment:r.substring(12),password:n.substring(10)}:null},t.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},t.parseRtpParameters=function(e){const i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=t.splitLines(e)[0].split(" ");i.profile=r[2];for(let o=3;o<r.length;o++){const n=r[o],s=t.matchPrefix(e,"a=rtpmap:"+n+" ")[0];if(s){const r=t.parseRtpMap(s),o=t.matchPrefix(e,"a=fmtp:"+n+" ");switch(r.parameters=o.length?t.parseFmtp(o[0]):{},r.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+n+" ").map(t.parseRtcpFb),i.codecs.push(r),r.name.toUpperCase()){case"RED":case"ULPFEC":i.fecMechanisms.push(r.name.toUpperCase())}}}t.matchPrefix(e,"a=extmap:").forEach((e=>{i.headerExtensions.push(t.parseExtmap(e))}));const n=t.matchPrefix(e,"a=rtcp-fb:* ").map(t.parseRtcpFb);return i.codecs.forEach((e=>{n.forEach((t=>{e.rtcpFeedback.find((e=>e.type===t.type&&e.parameter===t.parameter))||e.rtcpFeedback.push(t)}))})),i},t.writeRtpDescription=function(e,i){let r="";r+="m="+e+" ",r+=i.codecs.length>0?"9":"0",r+=" "+(i.profile||"UDP/TLS/RTP/SAVPF")+" ",r+=i.codecs.map((e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType)).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",i.codecs.forEach((e=>{r+=t.writeRtpMap(e),r+=t.writeFmtp(e),r+=t.writeRtcpFb(e)}));let n=0;return i.codecs.forEach((e=>{e.maxptime>n&&(n=e.maxptime)})),n>0&&(r+="a=maxptime:"+n+"\r\n"),i.headerExtensions&&i.headerExtensions.forEach((e=>{r+=t.writeExtmap(e)})),r},t.parseRtpEncodingParameters=function(e){const i=[],r=t.parseRtpParameters(e),n=-1!==r.fecMechanisms.indexOf("RED"),o=-1!==r.fecMechanisms.indexOf("ULPFEC"),s=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"cname"===e.attribute)),a=s.length>0&&s[0].ssrc;let c;const l=t.matchPrefix(e,"a=ssrc-group:FID").map((e=>e.substring(17).split(" ").map((e=>parseInt(e,10)))));l.length>0&&l[0].length>1&&l[0][0]===a&&(c=l[0][1]),r.codecs.forEach((e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let t={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&c&&(t.rtx={ssrc:c}),i.push(t),n&&(t=JSON.parse(JSON.stringify(t)),t.fec={ssrc:a,mechanism:o?"red+ulpfec":"red"},i.push(t))}})),0===i.length&&a&&i.push({ssrc:a});let d=t.matchPrefix(e,"b=");return d.length&&(d=0===d[0].indexOf("b=TIAS:")?parseInt(d[0].substring(7),10):0===d[0].indexOf("b=AS:")?1e3*parseInt(d[0].substring(5),10)*.95-16e3:void 0,i.forEach((e=>{e.maxBitrate=d}))),i},t.parseRtcpParameters=function(e){const i={},r=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"cname"===e.attribute))[0];r&&(i.cname=r.value,i.ssrc=r.ssrc);const n=t.matchPrefix(e,"a=rtcp-rsize");i.reducedSize=n.length>0,i.compound=0===n.length;const o=t.matchPrefix(e,"a=rtcp-mux");return i.mux=o.length>0,i},t.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},t.parseMsid=function(e){let i;const r=t.matchPrefix(e,"a=msid:");if(1===r.length)return i=r[0].substring(7).split(" "),{stream:i[0],track:i[1]};const n=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"msid"===e.attribute));return n.length>0?(i=n[0].value.split(" "),{stream:i[0],track:i[1]}):void 0},t.parseSctpDescription=function(e){const i=t.parseMLine(e),r=t.matchPrefix(e,"a=max-message-size:");let n;r.length>0&&(n=parseInt(r[0].substring(19),10)),isNaN(n)&&(n=65536);const o=t.matchPrefix(e,"a=sctp-port:");if(o.length>0)return{port:parseInt(o[0].substring(12),10),protocol:i.fmt,maxMessageSize:n};const s=t.matchPrefix(e,"a=sctpmap:");if(s.length>0){const e=s[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:n}}},t.writeSctpDescription=function(e,t){let i=[];return i="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&i.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),i.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,22)},t.writeSessionBoilerplate=function(e,i,r){let n;const o=void 0!==i?i:2;n=e||t.generateSessionId();return"v=0\r\no="+(r||"thisisadapterortc")+" "+n+" "+o+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.getDirection=function(e,i){const r=t.splitLines(e);for(let t=0;t<r.length;t++)switch(r[t]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return r[t].substring(2)}return i?t.getDirection(i):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substring(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){const i=t.splitLines(e)[0].substring(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},t.parseOLine=function(e){const i=t.matchPrefix(e,"o=")[0].substring(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;const i=t.splitLines(e);for(let t=0;t<i.length;t++)if(i[t].length<2||"="!==i[t].charAt(1))return!1;return!0},e.exports=t}(jC);var JC=jC.exports,KC=i(JC),qC=e({__proto__:null,default:KC},[JC]);function zC(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){const i=new t(e),r=KC.parseCandidate(e.candidate);for(const e in r)e in i||Object.defineProperty(i,e,{value:r[e]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,tC(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function YC(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||tC(e,"icecandidate",(e=>{if(e.candidate){const t=KC.parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e}))}function XC(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(e){if(!e||!e.sdp)return!1;const t=KC.splitSections(e.sdp);return t.shift(),t.some((e=>{const t=KC.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")}))}(arguments[0])){const e=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const i=parseInt(t[1],10);return i!=i?-1:i}(arguments[0]),i=function(e){let i=65536;return"firefox"===t.browser&&(i=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),i}(e),r=function(e,i){let r=65536;"firefox"===t.browser&&57===t.version&&(r=65535);const n=KC.matchPrefix(e.sdp,"a=max-message-size:");return n.length>0?r=parseInt(n[0].substring(19),10):"firefox"===t.browser&&-1!==i&&(r=2147483637),r}(arguments[0],e);let n;n=0===i&&0===r?Number.POSITIVE_INFINITY:0===i||0===r?Math.max(i,r):Math.min(i,r);const o={};Object.defineProperty(o,"maxMessageSize",{get:()=>n}),this._sctp=o}return i.apply(this,arguments)}}function QC(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const i=e.send;e.send=function(){const r=arguments[0],n=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&n>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return t(e,this),e},tC(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function ZC(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const i=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const i=new Event("connectionstatechange",e);t.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}}))}function $C(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t.version>=605)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const i=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:i}):t.sdp=i}return i.apply(this,arguments)}}function eb(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function tb(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.setLocalDescription;i&&0!==i.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return i.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return i.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then((e=>i.apply(this,[e])))})}var ib=Object.freeze({__proto__:null,shimRTCIceCandidate:zC,shimRTCIceCandidateRelayProtocol:YC,shimMaxMessageSize:XC,shimSendThrowTypeError:QC,shimConnectionState:ZC,removeExtmapAllowMixed:$C,shimAddIceCandidateNullOrEmpty:eb,shimParameterlessSetLocalDescription:tb});!function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=nC,r=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=eC(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=eC(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!e.RTCPeerConnection||!i.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=eC(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}(e),n={browserDetails:r,commonShim:ib,extractVersion:eC,disableLog:iC,disableWarnings:rC,sdp:qC};switch(r.browser){case"chrome":if(!yC||!TC||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),n;if(null===r.version)return i("Chrome shim can not determine version, not shimming."),n;i("adapter.js shimming chrome."),n.browserShim=yC,eb(e,r),tb(e),uC(e,r),hC(e),TC(e,r),pC(e),EC(e,r),mC(e),_C(e),fC(e),vC(e,r),zC(e),YC(e),ZC(e),XC(e,r),QC(e),$C(e,r);break;case"firefox":if(!MC||!AC||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),n;i("adapter.js shimming firefox."),n.browserShim=MC,eb(e,r),tb(e),SC(e,r),AC(e,r),IC(e),bC(e),RC(e),CC(e),kC(e),DC(e),wC(e),NC(e),OC(e),zC(e),ZC(e),XC(e,r),QC(e);break;case"safari":if(!GC||!t.shimSafari)return i("Safari shim is not included in this adapter release."),n;i("adapter.js shimming safari."),n.browserShim=GC,eb(e,r),tb(e),FC(e),HC(e),xC(e),PC(e),LC(e),BC(e),VC(e),WC(e),zC(e),YC(e),XC(e,r),QC(e),$C(e,r);break;default:i("Unsupported browser!")}}({window:"undefined"==typeof window?void 0:window});var rb,nb=Object.create,ob=Object.defineProperty,sb=Object.defineProperties,ab=Object.getOwnPropertyDescriptor,cb=Object.getOwnPropertyDescriptors,lb=Object.getOwnPropertyNames,db=Object.getOwnPropertySymbols,ub=Object.getPrototypeOf,hb=Object.prototype.hasOwnProperty,pb=Object.prototype.propertyIsEnumerable,mb=Reflect.get,_b=Math.pow,fb=(e,t,i)=>t in e?ob(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,gb=(e,t)=>{for(var i in t||(t={}))hb.call(t,i)&&fb(e,i,t[i]);if(db)for(var i of db(t))pb.call(t,i)&&fb(e,i,t[i]);return e},Eb=(e,t)=>sb(e,cb(t)),Tb=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vb=(e,t)=>{for(var i in t)ob(e,i,{get:t[i],enumerable:!0})},yb=(e,t,i)=>(i=null!=e?nb(ub(e)):{},((e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of lb(t))!hb.call(e,n)&&n!==i&&ob(e,n,{get:()=>t[n],enumerable:!(r=ab(t,n))||r.enumerable});return e})(!t&&e&&e.__esModule?i:ob(i,"default",{value:e,enumerable:!0}),e)),Sb=(e,t,i,r)=>{for(var n,o=r>1?void 0:r?ab(t,i):t,s=e.length-1;s>=0;s--)(n=e[s])&&(o=(r?n(t,i,o):n(o))||o);return r&&o&&ob(t,i,o),o},Ib=(e,t,i)=>fb(e,"symbol"!=typeof t?t+"":t,i),Ab=(e,t,i)=>mb(ub(e),i,t),Rb=(e,t,i)=>new Promise(((r,n)=>{var o=e=>{try{a(i.next(e))}catch(yM){n(yM)}},s=e=>{try{a(i.throw(e))}catch(yM){n(yM)}},a=e=>e.done?r(e.value):Promise.resolve(e.value).then(o,s);a((i=i.apply(e,t)).next())})),Cb=Tb(((e,t)=>{var i=Object.prototype.hasOwnProperty,r="~";function n(){}function o(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function s(e,t,i,n,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new o(i,n||e,s),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function a(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function c(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),c.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)i.call(e,t)&&n.push(r?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},c.prototype.listeners=function(e){var t=r?r+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,o=i.length,s=new Array(o);n<o;n++)s[n]=i[n].fn;return s},c.prototype.listenerCount=function(e){var t=r?r+e:e,i=this._events[t];return i?i.fn?1:i.length:0},c.prototype.emit=function(e,t,i,n,o,s){var a=r?r+e:e;if(!this._events[a])return!1;var c,l,d=this._events[a],u=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),u){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,i),!0;case 4:return d.fn.call(d.context,t,i,n),!0;case 5:return d.fn.call(d.context,t,i,n,o),!0;case 6:return d.fn.call(d.context,t,i,n,o,s),!0}for(l=1,c=new Array(u-1);l<u;l++)c[l-1]=arguments[l];d.fn.apply(d.context,c)}else{var h,p=d.length;for(l=0;l<p;l++)switch(d[l].once&&this.removeListener(e,d[l].fn,void 0,!0),u){case 1:d[l].fn.call(d[l].context);break;case 2:d[l].fn.call(d[l].context,t);break;case 3:d[l].fn.call(d[l].context,t,i);break;case 4:d[l].fn.call(d[l].context,t,i,n);break;default:if(!c)for(h=1,c=new Array(u-1);h<u;h++)c[h-1]=arguments[h];d[l].fn.apply(d[l].context,c)}}return!0},c.prototype.on=function(e,t,i){return s(this,e,t,i,!1)},c.prototype.once=function(e,t,i){return s(this,e,t,i,!0)},c.prototype.removeListener=function(e,t,i,n){var o=r?r+e:e;if(!this._events[o])return this;if(!t)return a(this,o),this;var s=this._events[o];if(s.fn)s.fn===t&&(!n||s.once)&&(!i||s.context===i)&&a(this,o);else{for(var c=0,l=[],d=s.length;c<d;c++)(s[c].fn!==t||n&&!s[c].once||i&&s[c].context!==i)&&l.push(s[c]);l.length?this._events[o]=1===l.length?l[0]:l:a(this,o)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&a(this,t)):(this._events=new n,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,void 0!==t&&(t.exports=c)})),bb=Tb(((e,t)=>{var i=t.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(i).forEach((function(e){i[e].forEach((function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")}))}))})),kb=Tb((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},i=function(e,i,r){var n=e.name&&e.names;e.push&&!i[e.push]?i[e.push]=[]:n&&!i[e.name]&&(i[e.name]={});var o=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var o=0;o<r.length;o+=1)null!=e[o+1]&&(i[r[o]]=t(e[o+1]))})(r.match(e.reg),o,e.names,e.name),e.push&&i[e.push].push(o)},r=bb(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},o=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach((function(e){var t=e[0],n=e.slice(2);"m"===t&&(o.push({rtp:[],fmtp:[]}),s=o[o.length-1]);for(var a=0;a<(r[t]||[]).length;a+=1){var c=r[t][a];if(c.reg.test(n))return i(c,s,n)}})),t.media=o,t};var o=function(e,i){var r=i.split(/=(.+)/,2);return 2===r.length?e[r[0]]=t(r[1]):1===r.length&&i.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var i=[],r=e.split(" ").map(t),n=0;n<r.length;n+=3)i.push({component:r[n],ip:r[n+1],port:r[n+2]});return i},e.parseImageAttributes=function(e){return e.split(" ").map((function(e){return e.substring(1,e.length-1).split(",").reduce(o,{})}))},e.parseSimulcastStreamList=function(e){return e.split(";").map((function(e){return e.split(",").map((function(e){var i,r=!1;return"~"!==e[0]?i=t(e):(i=t(e.substring(1,e.length)),r=!0),{scid:i,paused:r}}))}))}})),Db=Tb(((e,t)=>{var i=bb(),r=/%[sdv%]/g,n=function(e){var t=1,i=arguments,n=i.length;return e.replace(r,(function(e){if(t>=n)return e;var r=i[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}}))},o=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?r.push(i[t.name][s]):r.push(i[t.names[o]])}else r.push(i[t.name]);return n.apply(null,r)},s=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach((function(e){null==e.payloads&&(e.payloads="")}));var r=t.outerOrder||s,n=t.innerOrder||a,c=[];return r.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(o(t,i,e))}))}))})),e.media.forEach((function(e){c.push(o("m",i.m[0],e)),n.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(o(t,i,e))}))}))}))})),c.join("\r\n")+"\r\n"}})),wb=Tb((e=>{var t=kb(),i=Db(),r=bb();e.grammar=r,e.write=i,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList})),Nb=Tb(((e,t)=>{var i=t.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(i).forEach((function(e){i[e].forEach((function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")}))}))})),Ob=Tb((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},i=function(e,i,r){var n=e.name&&e.names;e.push&&!i[e.push]?i[e.push]=[]:n&&!i[e.name]&&(i[e.name]={});var o=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var o=0;o<r.length;o+=1)null!=e[o+1]&&(i[r[o]]=t(e[o+1]))})(r.match(e.reg),o,e.names,e.name),e.push&&i[e.push].push(o)},r=Nb(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},o=[],s=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach((function(e){var t=e[0],n=e.slice(2);"m"===t&&(o.push({rtp:[],fmtp:[]}),s=o[o.length-1]);for(var a=0;a<(r[t]||[]).length;a+=1){var c=r[t][a];if(c.reg.test(n))return i(c,s,n)}})),t.media=o,t};var o=function(e,i){var r=i.split(/=(.+)/,2);return 2===r.length?e[r[0]]=t(r[1]):1===r.length&&i.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var i=[],r=e.split(" ").map(t),n=0;n<r.length;n+=3)i.push({component:r[n],ip:r[n+1],port:r[n+2]});return i},e.parseImageAttributes=function(e){return e.split(" ").map((function(e){return e.substring(1,e.length-1).split(",").reduce(o,{})}))},e.parseSimulcastStreamList=function(e){return e.split(";").map((function(e){return e.split(",").map((function(e){var i,r=!1;return"~"!==e[0]?i=t(e):(i=t(e.substring(1,e.length)),r=!0),{scid:i,paused:r}}))}))}})),Mb=Tb(((e,t)=>{var i=Nb(),r=/%[sdv%]/g,n=function(e){var t=1,i=arguments,n=i.length;return e.replace(r,(function(e){if(t>=n)return e;var r=i[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}}))},o=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?r.push(i[t.name][s]):r.push(i[t.names[o]])}else r.push(i[t.name]);return n.apply(null,r)},s=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];t.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach((function(e){null==e.payloads&&(e.payloads="")}));var r=t.outerOrder||s,n=t.innerOrder||a,c=[];return r.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(o(t,i,e))}))}))})),e.media.forEach((function(e){c.push(o("m",i.m[0],e)),n.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(o(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(o(t,i,e))}))}))}))})),c.join("\r\n")+"\r\n"}})),Pb=Tb((e=>{var t=Ob(),i=Mb();e.write=i,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList})),Lb=yb(Cb()),xb=((rb=xb||{})[rb.INVALID_PARAMETER=4096]="INVALID_PARAMETER",rb[rb.INVALID_OPERATION=4097]="INVALID_OPERATION",rb[rb.NOT_SUPPORTED=4098]="NOT_SUPPORTED",rb[rb.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",rb[rb.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",rb[rb.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",rb[rb.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",rb[rb.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",rb[rb.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",rb[rb.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",rb[rb.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",rb[rb.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",rb[rb.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",rb[rb.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",rb[rb.CLIENT_BANNED=16448]="CLIENT_BANNED",rb[rb.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",rb[rb.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",rb[rb.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",rb[rb.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",rb[rb.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",rb[rb.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",rb[rb.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",rb[rb.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",rb[rb.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",rb[rb.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",rb[rb.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",rb[rb.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",rb[rb.API_CALL_ABORTED=16461]="API_CALL_ABORTED",rb[rb.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",rb[rb.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",rb[rb.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",rb[rb.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",rb[rb.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",rb[rb.UNKNOWN=65535]="UNKNOWN",rb),Vb=xb,Ub=class extends Error{constructor(e){let{name:t="RtcError",message:i,code:r=Vb.UNKNOWN,extraCode:n=0,constraint:o}=e,s="<".concat(function(e){for(let t in Vb)if(Vb[t]===e)return t;return"UNKNOWN"}(r)," 0x").concat(r.toString(16),">"),a="".concat(i).concat(o?" constraint: ".concat(o):"").concat(null!=i&&i.includes(s)?"":" ".concat(s));super(a),Ib(this,"code"),Ib(this,"extraCode"),Ib(this,"message"),Ib(this,"originMessage"),Ib(this,"name"),Ib(this,"constraint"),this.code=r,this.extraCode=n,this.name=t,this.message=a,this.constraint=o,this.originMessage=i}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Fb=Ub,Bb=((new Date).getTime(),0),Hb=function(){return(new Date).getTime()+Bb},Wb=function(){let e=new Date;return e.setTime(Hb()),e.toLocaleString()},Gb=function(e){let t=String(e.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),"".concat(e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1"),":").concat(t)},jb={};vb(jb,{REPORT_TYPE:()=>Zw,buildSSOPackage:()=>$w,bytes2ms:()=>ew,calculateScaleResolutionDownNumber:()=>zw,convertObjectNumberToInt:()=>Gw,copyProperties:()=>$D,deepClone:()=>Mw,deepCloneBasic:()=>Qw,deepMerge:()=>Ow,delay:()=>jw,fibonacci:()=>aw,formatedTime:()=>xw,getConstructorName:()=>yw,getContainerFromElement:()=>Lw,getEnv:()=>JD,getInternalVersion:()=>Cw,getLoggerUrl:()=>qD,getMediaStreamTrackInfo:()=>qw,getMuteStateFromFlag:()=>Dw,getNetworkType:()=>YD,getNumNetworkType:()=>ZD,getReconnectionTimeout:()=>cw,getStringByteLength:()=>Fw,getTurnServer:()=>ww,getUint32Version:()=>Ww,getValueType:()=>lw,getViewListFromView:()=>Pw,glog:()=>nw,ipv4ToUint32:()=>Nw,isArray:()=>fw,isAudioWorkletSupported:()=>Sw,isBoolean:()=>mw,isConstructor:()=>vw,isEmpty:()=>kw,isFunction:()=>dw,isLangChinese:()=>ow,isMediaStreamTrack:()=>gw,isNumber:()=>pw,isObject:()=>_w,isOverseaSdkAppId:()=>KD,isPlainObject:()=>sw,isPortrait:()=>Bw,isPromise:()=>Tw,isRemoteTrack:()=>Ew,isRotate90Or270:()=>Yw,isString:()=>hw,isUndefined:()=>uw,loadImage:()=>Hw,loadVideo:()=>Xw,ms2bytes:()=>iw,ms2samples:()=>rw,normalizeUrl:()=>Kw,performanceNow:()=>Aw,promiseAny:()=>Iw,samples2ms:()=>tw,setNetworkType:()=>QD,stringify:()=>Vw,stringifyIncludeValue:()=>Uw,throttlePromise:()=>Jw});var Jb={};vb(Jb,{AUDIO_MUTE_BIT:()=>Nk,AUDIO_STAT_BIT:()=>wk,AUX_STAT_BIT:()=>Dk,AUX_STREAM_MSID:()=>xk,BACKEND_ENV:()=>Rk,BASE_DOC_URL:()=>sk,BASE_HOST:()=>ik,CAPABILITIES_KEYS:()=>ID,CLASS_NAME:()=>mD,CLOUD_CONSOLE_URL:()=>ok,CROSS_ROOM_BIT:()=>Pk,DATA_FREEZE_TIMING:()=>aD,DOC_URL:()=>ak,DTLS_STATE_UNKNOWN:()=>Kk,ENV_NAME:()=>hk,EXCHANGE_SDP_TIMEOUT:()=>iD,IS_WORKER:()=>Qb,IS_WORKLET:()=>Zb,KIBANA_EVENT:()=>$k,LOCAL_STREAM_PUBLISH_STATE:()=>sD,LOGGER_CMD_TYPE:()=>uk,LOGGER_DOMAIN:()=>ck,LOGGER_DOMAIN_OVERSEA:()=>lk,LOG_LEVEL:()=>pk,LOG_LEVEL_NAME:()=>TD,MAIN_STREAM_MSID:()=>Lk,MAX_RTT:()=>AD,MICROPHONE_COMMUNICATIONS:()=>ED,MICROPHONE_DEFAULT:()=>fD,MUTE_ALL_BIT:()=>Mk,NAME:()=>Ik,NETWORK_TYPE:()=>fk,NOT_SUPPORTED_H264:()=>oD,PAUSED_RETRY_COUNT:()=>_D,PEERCONNECTION_CONNECTING_TIMEOUT:()=>uD,PEER_CONNECTION_STATE:()=>qk,PEER_LEAVE_REASON:()=>vD,RECOVER_CAPTURE_INTERVAL:()=>SD,REMOTE_STREAM_TYPE_AUX:()=>Uk,REMOTE_STREAM_TYPE_MAIN:()=>Vk,RENDER_FREEZE_TIMING:()=>cD,SCHEDULE_DOMAIN:()=>hD,SCHEDULE_TIMEOUT:()=>pD,SDP_SEMANTICS_PLAN_B:()=>nD,SDP_SEMANTICS_UNIFIED_PLAN:()=>rD,SECOND_HOST:()=>rk,SIGNAL_PING_PONG_INTERVAL:()=>_k,SIGNAL_PING_TIMEOUT:()=>mk,SIGNAL_RECONNECTION_COUNT:()=>Zk,SMALL_STAT_BIT:()=>kk,SPEAKER_DEFAULT:()=>gD,STORAGE_EXPIRES_TIME:()=>gk,STREAM_TYPE_BIG:()=>lD,STREAM_TYPE_SMALL:()=>dD,SUBSCRIBE_SMALL_RETRY_COUNT:()=>yD,SYNC_USER_LIST_INTERVAL:()=>eD,Scene:()=>Ck,THIRD_HOST:()=>nk,TRANSPORT_DIRECTION:()=>Ak,TRTC_ERROR_ASSISTANCE:()=>dk,TRTC_QUALITY_BAD:()=>Gk,TRTC_QUALITY_DISCONNECTED:()=>Jk,TRTC_QUALITY_EXCELLENT:()=>Bk,TRTC_QUALITY_GOOD:()=>Hk,TRTC_QUALITY_POOR:()=>Wk,TRTC_QUALITY_UNKNOWN:()=>Fk,TRTC_QUALITY_VERY_BAD:()=>jk,UPDATE_OFFER_TIMEOUT:()=>tD,VIDEO_MUTE_BIT:()=>Ok,VIDEO_STAT_BIT:()=>bk,audioProfileMap:()=>Ek,defaultBigVideoProfile:()=>vk,defaultSmallVideoProfile:()=>yk,getRetryCount:()=>Xk,getScriptDir:()=>$b,innerVersion:()=>Kb,loggerProxy:()=>ek,screenProfileMap:()=>Sk,setLoggerProxy:()=>tk,setRetryCount:()=>Yk,setVersion:()=>zb,version:()=>qb,videoProfileMap:()=>Tk});var Kb="4.15.00.1600",qb="5.0.0";function zb(e){qb=e;let[t,i,r]=e.split(".").map((e=>parseInt(e,10)));Kb="".concat(t,".").concat(Math.min(15,i),".").concat(Math.min(15,r),".").concat(i.toString().padStart(2,"0")).concat(r.toString().padStart(2,"0"))}var Yb,Xb,Qb="undefined"!=typeof importScripts,Zb="undefined"!=typeof registerProcessor,$b=()=>{let e=Qb?self.location.href:document.currentScript.src;return e.substring(0,e.lastIndexOf("/")+1)},ek="",tk=e=>ek=e,ik="web.sdk.qcloud.com",rk="web.sdk.tencent.cn",nk="web.sdk.cloud.tencent.cn",ok="https://console.cloud.tencent.com/trtc",sk="https://".concat(ik,"/trtc/webrtc/v5/doc"),ak="".concat(sk,"/zh-cn/"),ck="https://yun.tim.qq.com",lk="https://apisgp.my-imcloud.com",dk="trtc_error_assistance",uk={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},hk={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},pk=((Xb=pk||{})[Xb.TRACE=0]="TRACE",Xb[Xb.DEBUG=1]="DEBUG",Xb[Xb.INFO=2]="INFO",Xb[Xb.WARN=3]="WARN",Xb[Xb.ERROR=4]="ERROR",Xb[Xb.NONE=5]="NONE",Xb),mk=18e3,_k=2e3,fk={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},gk=6048e5,Ek={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}},Tk={"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}},vk=Tk["480p_2"],yk=Tk["120p_2"],Sk={"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}},Ik={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"},Ak={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Rk={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Ck=((Yb=Ck||{}).LIVE="live",Yb.RTC="rtc",Yb),bk=1,kk=2,Dk=4,wk=8,Nk=64,Ok=16,Mk=112,Pk=128,Lk="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",xk="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",Vk=Ik.MAIN,Uk=Ik.AUXILIARY,Fk=0,Bk=1,Hk=2,Wk=3,Gk=4,jk=5,Jk=6,Kk="unknown",qk={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},zk=1/0;function Yk(e){zk=e}function Xk(){return zk}var Qk,Zk=30,$k={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"},eD=1e4,tD=1e4,iD=1e4,rD="unified-plan",nD="plan-b",oD=1028,sD=((Qk=sD||{})[Qk.UNPUBLISH=-1]="UNPUBLISH",Qk[Qk.PUBLISHING=0]="PUBLISHING",Qk[Qk.PUBLISHED=1]="PUBLISHED",Qk),aD=500,cD=1e3,lD=Ik.BIG,dD=Ik.SMALL,uD=1e4,hD={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"},pD=2e3,mD={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},_D=5,fD="default",gD=fD,ED="communications",TD=Object.keys(pk),vD=["normal leave","timeout leave","kick","role change"],yD=10,SD=2e3,ID=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],AD=1e4,RD=function(e,t,i,r){return new(i||(i=Promise))((function(n,o){function s(e){try{c(r.next(e))}catch(t){o(t)}}function a(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){e.done?n(e.value):function(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(s,a)}c((r=r.apply(e,t||[])).next())}))},CD=Symbol(32),bD=Symbol(16),kD=Symbol(8),DD=class{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(e){return RD(this,void 0,void 0,(function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise(((t,i)=>{var r;this.reject=i,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(e,!0)||null===(r=this.pull)||void 0===r||r.call(this,e)}))}))}readU32(){return this.read(CD)}readU16(){return this.read(bD)}readU8(){return this.read(kD)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null===(e=this.reject)||void 0===e||e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let e=null,t=this.buffer.subarray(this.consumed),i=0,r=e=>t.length<(i=e);if("number"==typeof this.need){if(r(this.need))return;e=t.subarray(0,i)}else if(this.need===CD){if(r(4))return;e=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===bD){if(r(2))return;e=t[0]<<8|t[1]}else if(this.need===kD){if(r(1))return;e=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,i)),e=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,i)),e=this.need}return this.consumed+=i,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise((e=>this.pull=e));this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){let t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{let e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}};DD.U32=CD,DD.U16=bD,DD.U8=kD;var wD=128;function ND(e){let t=new DD;for(;e>=128;)t.malloc(1)[0]=255&e|wD,e>>>=7;return t.malloc(1)[0]=255&e,t.buffer||new Uint8Array(0)}function OD(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new DD,r=t<<3;switch(typeof e){case"boolean":let n=i.malloc(2);n[0]=r,n[1]=e?1:0;break;case"number":i.malloc(1)[0]=r,i.write(ND(e));break;case"string":i.malloc(1)[0]=2|r;let o=(new TextEncoder).encode(e);i.write(ND(o.length));let s=i.malloc(o.length);for(let e=0;e<o.length;e++)s[e]=o[e];break;case"object":let a=new DD;if(Array.isArray(e))for(let t=0;t<e.length;t++){let i=OD(e[t],t+1);i&&a.write(i)}else{let t=1;for(let i in e){let r=OD(e[i],t++);r&&a.write(r)}}0===t?a.buffer&&i.write(a.buffer):(i.malloc(1)[0]=2|r,a.buffer&&(i.write(ND(a.buffer.length)),i.write(a.buffer)))}return i.buffer||new Uint8Array(0)}var MD=class{constructor(){Ib(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(e){this.buffer.push(e>>>24&255),this.buffer.push(e>>>16&255),this.buffer.push(e>>>8&255),this.buffer.push(255&e)}writeInt16(e){this.buffer.push(e>>>8&255),this.buffer.push(255&e)}writeByte(e){this.buffer.push(255&e)}writeBytes(e){for(let t=0;t<e.length;t++)this.buffer.push(e[t])}};function PD(e,t,i){e[i]=t>>>24&255,e[i+1]=t>>>16&255,e[i+2]=t>>>8&255,e[i+3]=255&t}function LD(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function xD(e,t){return e[t]}function VD(e,t,i){return(new TextDecoder).decode(function(e,t,i){return e.slice(t,t+i)}(e,t,i))}var UD=0,FD=2654435769,BD=16,HD=2,WD=7;function GD(e,t){let i=new MD,r=function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"AVQualityReportSvc.C2S";return{version:arguments.length>4&&void 0!==arguments[4]?arguments[4]:2e3,encryption:arguments.length>5&&void 0!==arguments[5]?arguments[5]:2,d2:"",d2Len:0,uinType:arguments.length>6&&void 0!==arguments[6]?arguments[6]:30,uin:"",uinLen:0,reqHead:{seqNumber:i,appId:e,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}}(t,e,UD);UD=UD+1&2147483647,i.writeInt32(0),i.writeInt32(r.version),i.writeByte(r.encryption);let n=(new TextEncoder).encode(r.d2);i.writeInt32(n.length+4),n&&i.writeBytes(n),i.writeByte(r.uinType);let o=(new TextEncoder).encode(r.uin);i.writeInt32(o.length+4),o.length&&i.writeBytes(o);let s=new MD;s.writeInt32(0),s.writeInt32(r.reqHead.seqNumber),s.writeInt32(r.reqHead.appId),s.writeByte(r.reqHead.appId>>>24&255),s.writeByte(r.reqHead.appId>>>16&255),s.writeByte(r.reqHead.appId>>>8&255),s.writeByte(255&r.reqHead.appId);for(let E=4;E<16;E++)s.writeByte(0);let a=(new TextEncoder).encode(r.reqHead.a2);s.writeInt32(a.length+4),a.length&&s.writeBytes(a);let c=(new TextEncoder).encode(r.reqHead.serviceCmd);s.writeInt32(c.length+4),c.length&&s.writeBytes(c);let l=(new TextEncoder).encode(r.reqHead.cookie);s.writeInt32(l.length+4),l.length&&s.writeBytes(l);let d=(new TextEncoder).encode(r.reqHead.imei);s.writeInt32(d.length+4),d.length&&s.writeBytes(d);let u=(new TextEncoder).encode(r.reqHead.ksid);s.writeInt32(u.length+4),u.length&&s.writeBytes(u);let h=(new TextEncoder).encode(r.reqHead.clientVersionInfo);s.writeInt16(h.length+2),h.length&&s.writeBytes(h);let p=s.length;s.data[0]=p>>>24&255,s.data[1]=p>>>16&255,s.data[2]=p>>>8&255,s.data[3]=255&p,hw(e)&&(e=(new TextEncoder).encode(e)),s.writeInt32(e.length+4),e.length&&s.writeBytes(e);let m=new Uint8Array(s.data),_=null;1===r.encryption?_=(new TextEncoder).encode(r.uin):2===r.encryption&&(_=new Uint8Array(16)),_&&(m=function(e,t){let i=e.length,r=(i+1+HD+WD)%8;r&&(r=8-r);let n=i+1+HD+WD+r,o=new Uint8Array(n),s=0,a=new Uint8Array(8),c=new Uint8Array(8),l=new Uint8Array(8),d=0;a[0]=248&Math.floor(256*Math.random())|r,d=1;for(let h=0;h<r;h++)a[d]=255&Math.floor(256*Math.random()),d+=1;for(let h=0;h<HD;)if(d<8&&(a[d]=255&Math.floor(256*Math.random()),d+=1,h+=1),8===d){jD(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}let u=0;for(;u<i;)if(d<8&&(a[d]=e[u],d+=1,u+=1),8===d){jD(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}for(let h=0;h<WD;)if(d<8&&(a[d]=0,d+=1,h+=1),8===d){jD(a,t,c,l,o,s),s+=8,d=0;for(let e=0;e<8;e++)l[e]=o[s-8+e]}return o}(m,_)),i.writeBytes(m);let f=new Uint8Array(i.data),g=f.length;return f[0]=g>>>24&255,f[1]=g>>>16&255,f[2]=g>>>8&255,f[3]=255&g,f}function jD(e,t,i,r,n,o){for(let s=0;s<8;s++)e[s]^=r[s];!function(e,t,i,r){let n=LD(e,0),o=LD(e,4),s=[];for(let c=0;c<4;c++)s[c]=LD(t,4*c);let a=0;for(let c=0;c<BD;c++)a+=FD,a>>>=0,n+=(o<<4)+s[0]^o+a^(o>>>5)+s[1],n>>>=0,o+=(n<<4)+s[2]^n+a^(n>>>5)+s[3],o>>>=0;PD(i,n,r),PD(i,o,r+4)}(e,t,n,o);for(let s=0;s<8;s++)n[o+s]^=i[s];for(let s=0;s<8;s++)i[s]=e[s]}var JD=function(){return new URLSearchParams(location.search).get("trtc_env")||""},KD=e=>Number(e)<14e8,qD=function(e,t){let i;i=ek||(KD(e)?lk:ck);let r=Math.floor(Math.random()*_b(2,31));return"".concat(i,"/v5/AVQualityReportSvc/C2S?random=").concat(r,"&sdkappid=").concat(e,"&cmdtype=").concat(t)},zD="unknown";function YD(){if("unknown"!==zD)return zD;let{userAgent:e,connection:t}=navigator,i=(e.match(/NetType\/\S+/)||[])[0]||"";i=i.toLowerCase().replace("nettype/",""),"3gnet"===i&&(i="3g");let r=t&&t.type&&t.type.toLowerCase(),n=t&&t.effectiveType&&t.effectiveType.toLowerCase();return"slow-2"===n&&(n="2g"),r&&(zD=XD(r,n)),zD}function XD(e,t){if(fk[e])return e;switch(e){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";default:return"unknown"}}function QD(e){zD=XD(e)}function ZD(){return fk[YD()]}function $D(e,t){for(let i of Reflect.ownKeys(t))if("constructor"!==i&&"prototype"!==i&&"name"!==i){let r=Object.getOwnPropertyDescriptor(t,i)||"";Object.defineProperty(e,i,r)}return e}function ew(e){return tw(e/4,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function tw(e){return 1e3*e/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function iw(e){return 4*rw(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function rw(e){return e*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)/1e3}var nw="undefined"!=typeof window&&"function"==typeof window.glog?window.glog:()=>{},ow=()=>{let e=navigator.language;return e=e.substring(0,2),"zh"===e},sw=function(e){if(!e||"object"!=typeof e||"[object Object]"!=Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);if(null===t)return!0;let i=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Function.prototype.toString.call(i)===Function.prototype.toString.call(Object)};function aw(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<=1?t:aw(e-1,t,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)+t)}function cw(e){return e>8?3e4:1e3*aw(e)}function lw(e){return Reflect.apply(Object.prototype.toString,e,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var dw=e=>"function"==typeof e,uw=e=>void 0===e,hw=e=>"string"==typeof e,pw=e=>"number"==typeof e,mw=e=>"boolean"==typeof e,_w=e=>"object"===lw(e),fw=e=>"array"===lw(e),gw=e=>lw(e)==="MediaStreamTrack".toLowerCase(),Ew=e=>e.isRemote,Tw=e=>"promise"===lw(e),vw=e=>dw(e)&&e.prototype.constructor===e,yw=e=>vw(e)?e.prototype.constructor.name:"",Sw="undefined"!=typeof AudioWorkletNode;function Iw(e){return new Promise(((t,i)=>{let r=[];e.forEach((n=>{n.then(t).catch((t=>{r.push(t),r.length===e.length&&i(r)}))}))}))}function Aw(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var Rw=e=>+e<10?"0".concat(e):e,Cw=e=>{let t=e.match(/^\d+\.\d+\.\d+/)[0];if(!t)return e;let i=t.split("."),r=Rw(i[1])+Rw(i[2]);return i[1]-15>0&&(i[1]="15"),i[2]-15>0&&(i[2]="15"),"".concat(i.join("."),".").concat(r)},bw=Object.prototype.hasOwnProperty;function kw(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(sw(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(bw.call(e,t))return!1;return!0}return!1}function Dw(e,t){return{userId:t,hasAudio:!!(e&wk),hasVideo:!!(e&bk),hasAuxiliary:!!(e&Dk),hasSmall:!!(e&kk),audioMuted:!!(e&Nk),videoMuted:!!(e&Ok),audioAvailable:!(!(e&wk)||e&Nk),videoAvailable:!(!(e&bk)||e&Ok)}}function ww(e){let t={urls:e.url.startsWith("turn:")||e.url.startsWith("turns:")?e.url:"turn:".concat(e.url)};return!uw(e.username)&&!uw(e.credential)&&(t.username=e.username,t.credential=e.credential,t.credentialType="password",uw(e.credentialType)||(t.credentialType=e.credentialType)),t}function Nw(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!hw(e))return 0;let i=e.split(".");return t?(Number(i[0])<<24|Number(i[1])<<16|Number(i[2])<<8|Number(i[3]))>>>0:(Number(i[3])<<24|Number(i[2])<<16|Number(i[1])<<8|Number(i[0]))>>>0}var Ow=function(e,t,i,r){if(!_w(e)||!_w(t))return 0;let n,o=0,s=Object.keys(t);for(let a=0,c=s.length;a<c;a++)if(n=s[a],!(uw(t[n])||i&&i.includes(n)))if(_w(e[n])&&_w(t[n]))o+=Ow(e[n],t[n],i,r);else{if(r&&r.includes(t[n]))continue;e[n]!==t[n]&&(e[n]=Mw(t[n]),o+=1)}return o};function Mw(e){if(fw(e)){let t=[];return e.forEach(((e,i)=>{t[i]=Mw(e)})),t}if(_w(e)){let t={};return Object.keys(e).forEach((i=>{t[i]=Mw(e[i])})),t}return e}var Pw=e=>{let t=[];if(fw(e))t=[...e];else if(hw(e)){let i=document.getElementById(e);i&&t.push(i)}else e&&t.push(e);return t},Lw=e=>hw(e)?document.getElementById(e):e,xw=()=>(e=>{let t=e=>e<10?"0".concat(e):"".concat(e),i=e.getFullYear(),r=e.getMonth()+1,n=e.getDate(),o=t(e.getHours()),s=t(e.getMinutes()),a=t(e.getSeconds());return"".concat(i,"/").concat(r,"/").concat(n," ").concat(o,":").concat(s,":").concat(a)})(new Date);function Vw(e,t){let{keysToInclude:i,keysToExclude:r}=t;try{if(fw(e))return"[".concat(e.map((e=>Vw(e,{keysToInclude:i,keysToExclude:r}))).join(","),"]");if(!sw(e)||!fw(i)&&!fw(r))return JSON.stringify(e);let t={},n=new Set(i),o=new Set(r);return Object.keys(e).forEach((s=>{(0===o.size&&n.has(s)||0===n.size&&!o.has(s))&&(t[s]=sw(e[s])||fw(e[s])?JSON.parse(Vw(e[s],{keysToExclude:r,keysToInclude:i})):e[s])})),JSON.stringify(t)}catch(Qk){return"{}"}}function Uw(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=[];return Object.keys(e).forEach((r=>{t===e[r]&&i.push(r)})),Vw(e,{keysToInclude:i})}function Fw(e){return e.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Bw=()=>{var e,t,i,r;return null!=(e=window.screen)&&e.orientation?!(null==(r=null==(i=null==(t=window.screen)?void 0:t.orientation)?void 0:i.type)||!r.includes("portrait")):0===window.orientation||180===window.orientation},Hw=e=>Rb(void 0,null,(function*(){return new Promise(((t,i)=>{let r;if(hw(e))r=new Image,r.crossOrigin="anonymous",r.src=e;else if(r=e,r.complete)return void t(r);r.onload=()=>t(r),r.onerror=()=>{i(new Fb({code:Vb.INVALID_PARAMETER,message:"load image failed, url: ".concat(e)}))}}))})),Ww=e=>{let t=e.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]},Gw=e=>(Object.keys(e).forEach((t=>{pw(e[t])&&(t.startsWith("uint")||t.startsWith("int"))?e[t]=Math.floor(e[t]):(sw(e[t])||fw(e[t]))&&Gw(e[t])})),e);function jw(e,t){return new Promise((i=>{let r=setTimeout(i,e);t&&t(r)}))}function Jw(e,t){let i=null;return function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return i||(i=e.apply(t||this,n),i.finally((()=>i=null)),i)}}function Kw(e){return e.replace(/(^|[^:])\/{2,}/g,"$1/")}function qw(e){var t;try{let{width:i,height:r,frameRate:n,sampleRate:o,sampleSize:s,channelCount:a}=null==(t=e.getSettings)?void 0:t.call(e),c=e.kind===Ik.AUDIO?"".concat(o,"x").concat(s,"@").concat(a):"".concat(i,"x").concat(r,"@").concat(n),l=e.stats?" stats: ".concat(JSON.stringify(e.stats).replaceAll('"',"")):"";return"".concat(e.id," ").concat(e.readyState," muted:").concat(e.muted," ").concat(e.kind," ").concat(e.label," ").concat(c).concat(l)}catch(Yb){return""}}function zw(e,t){return e.width*e.height==t.width*t.height?1:Bw()&&t.width>t.height&&e.height>t.width?Math.max(e.width/t.height,e.height/t.width,1):Math.max(e.width/t.width,e.height/t.height,1)}function Yw(e){return 90===e||270===e}function Xw(e){return Rb(this,null,(function*(){return new Promise(((t,i)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then((()=>t(r))),r.onerror=()=>{i(r.error)}}))}))}function Qw(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakMap;if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){let i=[];return t.set(e,i),e.forEach(((e,r)=>{i[r]=Qw(e,t)})),i}if("[object Object]"===Object.prototype.toString.call(e)){let i={};return t.set(e,i),Reflect.ownKeys(e).forEach((r=>{i[r]=Qw(e[r],t)})),i}return e}var Zw=(e=>(e[e.END_REPORT=2001]="END_REPORT",e[e.LOG=2002]="LOG",e[e.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",e))(Zw||{});function $w(e,t,i,r){try{let n=function(e,t,i,r){let n={data:e,random:Math.floor(2147483648*Math.random()),sdkAppId:i};return uw(r)||(n=Eb(gb({},n),{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(n)}}}(e,t,i,r);return GD(OD(n),i)}catch(AM){return JSON.stringify(e)}}function eN(e){let t=function(e){try{let t={},i=0;t.totalLength=LD(e,i),i+=4,t.version=LD(e,i),i+=4,t.encryption=xD(e,i),i+=1,t.uinType=xD(e,i),i+=1,t.uinLength=LD(e,i),i+=4,t.uin=t.uinLength>4?VD(e,i,t.uinLength-4):"",i+=t.uinLength-4;let r=e.slice(i);if(2===t.encryption){e=function(e,t){let i=0,r=new Uint8Array(8).fill(0),n=new Uint8Array(e.slice(0,8)),o=tN(n,t),s=7&o[0],a=e.length-1-s-HD-WD,c=new Uint8Array(a),l=0,d=r,u=e.slice(0,8);i=8;let h=1;h+=s;for(let m=1;m<=HD;)if(h<8)h++,m++;else if(8===h){let r=iN(e,i,d,u,o,t);d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}let p=a;for(;p>0;)if(h<8)c[l++]=o[h]^d[h],h++,p--;else if(8===h){let r=iN(e,i,d,u,o,t);d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}for(let m=1;m<=WD;)if(h<8)o[h],d[h],h++,m++;else if(8===h){if(i>=e.length)break;let r=iN(e,i,d,u,o,t);if(!r.success)break;d=r.ivPreCrypt,u=r.ivCurCrypt,o=r.debiBuf,i=r.bufPos,h=0}return c}(r,new Uint8Array(16).fill(0)),t.decrypted=!0,i=0}else e=r,i=0;return t.rspHeadLength=LD(e,i),i+=4,t.seqNo=LD(e,i),i+=4,t.retCode=LD(e,i),i+=4,t.retStrLength=LD(e,i),i+=4,t.retStr=t.retStrLength?VD(e,i,t.retStrLength-4):"",i+=t.retStrLength-4,t.serviceCmdLength=LD(e,i),i+=4,t.serviceCmd=t.serviceCmdLength?VD(e,i,t.serviceCmdLength-4):"",i+=t.serviceCmdLength-4,t.cookieLength=LD(e,i),i+=4,t.cookie=t.cookieLength?VD(e,i,t.cookieLength-4):"",i+=t.cookieLength-4,t.flag=LD(e,i),i+=4,t.busiBuffLength=LD(e,i),i+=4,t.busiBuff=t.busiBuffLength?VD(e,i,t.busiBuffLength-4):"",i+=t.busiBuffLength-4,t}catch(t){}}(e);return null==t?void 0:t.busiBuff}function tN(e,t){let i=e[0]<<24|e[1]<<16|e[2]<<8|e[3],r=e[4]<<24|e[5]<<16|e[6]<<8|e[7];i>>>=0,r>>>=0;let n=FD*BD>>>0;for(let o=0;o<BD;o++)r-=(i<<4)+t[2]^i+n^(i>>>5)+t[3],r>>>=0,i-=(r<<4)+t[0]^r+n^(r>>>5)+t[1],i>>>=0,n-=FD,n>>>=0;return new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function iN(e,t,i,r,n,o){if(t+8>e.length)return{success:!1};let s=new Uint8Array(r),a=e.slice(t,t+8),c=new Uint8Array(8);for(let l=0;l<8;l++)c[l]=n[l]^a[l];return{success:!0,ivPreCrypt:s,ivCurCrypt:a,debiBuf:tN(c,o),bufPos:t+8}}var rN="undefined"!=typeof TextDecoder?new TextDecoder:void 0;function nN(e){let{url:t,body:i,method:r="POST",timeout:n,priority:o}=e;return new Promise(((e,s)=>{if("fetch"in window)return fetch(t,{method:r,body:i,priority:o}).then((e=>e.clone().json().then((e=>({data:e})),(()=>e.arrayBuffer().then((e=>({data:eN(new Uint8Array(e))||(rN?rN.decode(e):e)}))))))).then(e,s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(4===a.readyState)if(a.status>=200&&a.status<300)try{let t=JSON.parse(a.response);e({data:t})}catch(t){e({data:a.response})}else s({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=n||5e3,a.open(r,t,!0),a.send(i)}))}function oN(e){return Rb(this,null,(function*(){let t=Aw(),i=JSON.stringify(e);try{if(!CompressionStream||i.length<=2800)return i;let e=new Blob([i],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),r=yield(yield(yield new Response(e)).blob()).arrayBuffer();return _M.debug("compressJSON ".concat(i.length," -> ").concat(r.byteLength," ").concat(Aw()-t,"ms")),r}catch(Qk){return i}}))}var sN=Object.prototype.hasOwnProperty,aN=e=>"function"==typeof e,cN=e=>void 0===e,lN=e=>"boolean"==typeof e,dN=e=>e.isRemote,uN=function(e){if(!e||"object"!=typeof e||"[object Object]"!=Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);if(null===t)return!0;let i=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof i&&i instanceof i&&Function.prototype.toString.call(i)===Function.prototype.toString.call(Object)};var hN=function(e){let{retryFunction:t,settings:i,onError:r,onRetrying:n,onRetryFailed:o,onRetrySuccess:s,context:a}=e;return function(){for(var e=arguments.length,c=new Array(e),l=0;l<e;l++)c[l]=arguments[l];let{retries:d=5,timeout:u=1e3}=i,h=0,p=-1,m=0,_=(e,i)=>Rb(this,null,(function*(){let l=a||this;try{let i=yield t.apply(l,c);h>0&&s&&s.call(this,h),h=0,e(i)}catch(kP){let s=()=>{clearTimeout(p),h=0,m=2,i(kP)},a=()=>{2!==m&&h<(aN(d)?d():d)?(h++,m=1,aN(n)&&n.call(this,h,s),p=window.setTimeout((()=>{p=-1,_(e,i)}),aN(u)?u(h):u)):(s(),aN(o)&&o.call(this,kP))};aN(r)?r.call(this,{error:kP,retry:a,reject:i,retryFuncArgs:c,retriedCount:h}):a()}}));return new Promise(_)}},pN=class{constructor(e){Ib(this,"userId"),Ib(this,"remoteUserId"),Ib(this,"id"),Ib(this,"sdkAppId"),Ib(this,"type"),Ib(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal=!lN(e.isLocal)||e.isLocal,this.type=this.isLocal?"":e.type}createChild(e){return Object.setPrototypeOf(e,this)}setUserId(e){this.userId=e}setSdkAppId(e){this.sdkAppId=e}log(e,t){let i=this.isLocal?this.userId:this.remoteUserId;t.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&"main"!==this.type?"*":"").concat(this.id).concat(i?"|".concat(i):"","]")),_M.log(e,t,cN(this.userId)||function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(uN(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(sN.call(e,t))return!1;return!0}return!1}(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}},mN={};vb(mN,{ANDROID_VERSION:()=>bN,CHROME_MAJOR_VERSION:()=>NO,CHROME_VERSION:()=>OO,EDGE_VERSION:()=>PN,EDG_MAJOR_VERSION:()=>VN,EDG_VERSION:()=>xN,FIREFOX_MAJOR_VERSION:()=>ON,FIREFOX_VERSION:()=>NN,HUAWEI_VERSION:()=>EO,IE_VERSION:()=>zN,IOS_MAIN_VERSION:()=>BO,IOS_VERSION:()=>VO,IPADQQB_VERSION:()=>oO,IS_ANDROID:()=>CN,IS_ANDROID_WEBVIEW:()=>xO,IS_ANY_SAFARI:()=>PO,IS_CHROME:()=>DO,IS_CHROME_OS:()=>lO,IS_CHROMIUM_BASE:()=>kO,IS_DESKTOP_IOS_CHROME:()=>JO,IS_EDG:()=>LN,IS_EDGE:()=>MN,IS_ELECTRON:()=>hO,IS_FIREFOX:()=>wN,IS_HEADLESS_CHROME:()=>wO,IS_HONOR:()=>gO,IS_HUAWEI:()=>fO,IS_HUAWEIBROWSER:()=>_O,IS_IE:()=>qN,IS_IE8:()=>KN,IS_IOS:()=>RN,IS_IOS_13_OR_14:()=>GO,IS_IOS_15_1:()=>WO,IS_IOS_CHROME:()=>jO,IS_IPAD:()=>yN,IS_IPADQQB:()=>nO,IS_IPAD_PRO:()=>SN,IS_IPHONE:()=>IN,IS_IPOD:()=>AN,IS_LINUX:()=>cO,IS_LOCAL:()=>KO,IS_MAC:()=>aO,IS_MACQQB:()=>iO,IS_MIBROWSER:()=>pO,IS_MQQB:()=>ZN,IS_NATIVE_ANDROID:()=>DN,IS_OLD_ANDROID:()=>kN,IS_OPENHARMONY:()=>RO,IS_OPPOBROWSER:()=>yO,IS_SAFARI:()=>MO,IS_SAFARI_15_1:()=>HO,IS_SAMSUNGBROWSER:()=>TO,IS_SOGOU:()=>BN,IS_SOGOUM:()=>UN,IS_TBS:()=>WN,IS_UCBROWSER:()=>uO,IS_VIVOBROWSER:()=>IO,IS_WECHAT:()=>YN,IS_WIN:()=>sO,IS_WQQB:()=>eO,IS_WX:()=>dO,IS_X5MQQB:()=>QN,IS_XWEB:()=>jN,MACQQB_VERSION:()=>rO,MI_VERSION:()=>mO,MQQB_VERSION:()=>$N,OPENHARMONY_VERSION:()=>CO,OPPO_VERSION:()=>SO,SAFARI_VERSION:()=>LO,SAMSUNG_VERSION:()=>vO,SOGOUM_VERSION:()=>FN,SOGOU_VERSION:()=>HN,TBS_VERSION:()=>GN,UA_DATA_STRING:()=>ZO,USER_AGENT:()=>_N,VIVO_VERSION:()=>AO,WECHAT_VERSION:()=>XN,WQQB_VERSION:()=>tO,XWEB_VERSION:()=>JN,browserInfo:()=>zO,getBrowserCoreNumber:()=>oM,getBrowserInfo:()=>YO,getChromeMajorVersion:()=>bO,getDeviceModel:()=>tM,getGPUInfo:()=>eM,getOSName:()=>rM,getOSNumber:()=>nM,getOSString:()=>sM,getOSType:()=>cM,getTerminalType:()=>aM,getUserAgentData:()=>$O,isLocalStorageEnabled:()=>qO,isMobile:()=>QO,isVersionLargerThan:()=>FO,isVersionSmallerThan:()=>UO});var _N="undefined"==typeof navigator?"":navigator.userAgent,fN=e=>new RegExp(e,"i").test(_N),gN=e=>{if(fN(e)){let t=new RegExp("".concat(e,"\\/([\\d.]+)")),i=_N.match(t);if(i&&i[1])return i[1]}return""},EN=e=>{if(fN(e)){let t=new RegExp("".concat(e,"\\/(\\d+)")),i=_N.match(t);if(i&&i[1])return parseFloat(i[1])}return NaN},TN=/AppleWebKit\/([\d.]+)/i.exec(_N),vN=TN?parseFloat(TN[1]):NaN,yN=fN("iPad"),SN="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&fN("Macintosh"),IN=fN("iPhone")&&!yN,AN=fN("iPod"),RN=IN||yN||AN||SN,CN=fN("Android"),bN=function(){if(CN){let e=_N.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){let t=e[1]&&parseFloat(e[1]),i=e[2]&&parseFloat(e[2]);if(t&&i)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}return NaN}(),kN=CN&&fN("webkit")&&bN<2.3,DN=CN&&bN<5&&vN<537,wN=fN("Firefox"),NN=gN("Firefox"),ON=EN("Firefox"),MN=fN("Edge"),PN=gN("Edge"),LN=fN("Edg"),xN=gN("Edg"),VN=EN("Edg"),UN=fN("SogouMobileBrowser"),FN=gN("SogouMobileBrowser"),BN=fN("MetaSr\\s"),HN=gN("MetaSr\\s"),WN=fN("TBS"),GN=gN("TBS"),jN=fN("XWEB"),JN=gN("XWEB"),KN=fN("MSIE\\s8\\.0"),qN=fN("MSIE\\/\\d+"),zN=function(){if(qN){let e=/MSIE\s(\d+)\.\d/.exec(_N),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(_N)&&/rv:11.0/.test(_N)&&(t=11),t}return NaN}(),YN=fN("(micromessenger|webbrowser)"),XN=gN("MicroMessenger"),QN=!WN&&fN("MQQBrowser")&&fN("COVC"),ZN=!WN&&fN("MQQBrowser")&&!fN("COVC"),$N=ZN||QN?gN("MQQBrowser"):"",eO=!WN&&fN(" QQBrowser"),tO=gN(" QQBrowser"),iO=!WN&&fN("QQBrowserLite"),rO=gN("QQBrowserLite"),nO=!WN&&fN("MQBHD"),oO=gN("MQBHD"),sO=fN("Windows"),aO=!RN&&fN("MAC OS X"),cO=!CN&&fN("Linux"),lO=fN("CrOS"),dO=fN("MicroMessenger"),uO=fN("UCBrowser"),hO=fN("Electron"),pO=fN("MiuiBrowser"),mO=gN("MiuiBrowser"),_O=fN("HuaweiBrowser"),fO=fN("Huawei")||fN("HUAWEI"),gO=fN("Honor")||fN("HONOR"),EO=gN("HuaweiBrowser"),TO=fN("SamsungBrowser"),vO=gN("SamsungBrowser"),yO=fN("HeyTapBrowser"),SO=gN("HeyTapBrowser"),IO=fN("VivoBrowser"),AO=gN("VivoBrowser"),RO=fN("OpenHarmony"),CO=gN("OpenHarmony"),bO=()=>EN("Chrome"),kO=fN("Chrome"),DO=!MN&&!BN&&!UN&&!WN&&!jN&&!LN&&!eO&&!pO&&!_O&&!TO&&!yO&&!IO&&kO,wO=fN("HeadlessChrome"),NO=bO(),OO=gN("Chrome"),MO=!kO&&!ZN&&!QN&&!iO&&!nO&&fN("Safari"),PO=MO||RN,LO=gN("Version"),xO=/Android.*(wv|.0.0.0)/.test(_N),VO=(()=>{if(SN)return LO;if(RN){let e=_N.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""})();function UO(e,t){let i=e.split(".").map((e=>Number(e))),r=t.split(".").map((e=>Number(e)));for(let n=0;n<Math.max(i.length,r.length);n++){let e=i[n]||0,t=r[n]||0;if(e<t)return!0;if(e>t)return!1}return!1}function FO(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.split(".").map((e=>Number(e))),n=t.split(".").map((e=>Number(e)));for(let o=0;o<Math.max(r.length,n.length);o++){let e=r[o]||0,t=n[o]||0;if(e>t)return!0;if(e<t)return!1}return i}var BO=Number(VO.split(".")[0]),HO="15.1"===LO,WO="15.1"===VO,GO=(()=>{let e=Number(VO.split(".")[0]);return 14===e||13===e})(),jO=fN("CriOS"),JO=jO&&"11.1.1"===LO,KO="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),qO=(()=>{let e;return()=>{if(void 0===e)try{e=!!window.localStorage}catch(IM){e=!1}return e}})(),zO=YO();function YO(){let e=new Map([[wN,["Firefox",NN]],[LN,["Edg",xN]],[DO,["Chrome",OO]],[MO,["Safari",LO]],[WN,["TBS",GN]],[jN,["XWEB",JN]],[YN&&IN,["WeChat",XN]],[eO,["QQ(Win)",tO]],[ZN,["QQ(Mobile)",$N]],[QN,["QQ(Mobile X5)",$N]],[iO,["QQ(Mac)",rO]],[nO,["QQ(iPad)",oO]],[pO,["MI",mO]],[_O,["HW",EO]],[TO,["Samsung",vO]],[yO,["OPPO",SO]],[IO,["VIVO",AO]],[MN,["EDGE",PN]],[UN,["SogouMobile",FN]],[BN,["Sogou",HN]]]),t="unknown",i="unknown";return e.has(!0)&&([t,i]=e.get(!0)),{name:t,version:i}}var XO=null;function QO(){return XO&&"boolean"==typeof XO.mobile?XO.mobile:CN||RN||IN||yN||RO}var ZO="";function $O(){return Rb(this,null,(function*(){if(XO)return XO;if(!navigator.userAgentData||"function"!=typeof navigator.userAgentData.getHighEntropyValues)return null;try{return(XO=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!ZO&&(ZO="UAData: ".concat(XO.platform,"/").concat(XO.platformVersion),XO.architecture&&XO.bitness&&(ZO+=" ".concat(XO.architecture,"/").concat(XO.bitness)),XO.mobile&&(ZO+=" mobile"),XO.model&&(ZO+=" model: ".concat(XO.model.replace(/\s+/g,"/"))),XO.fullVersionList&&(ZO+=" ".concat(XO.fullVersionList.filter((e=>"Not/A)Brand"!==e.brand)).map((e=>"".concat(e.brand,"/").concat(e.version))).join(",")))),XO}catch(uJ){return null}}))}function eM(){try{let e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)return"";let i=t.getExtension("WEBGL_debug_renderer_info");if(i){let e=t.getParameter(i.UNMASKED_VENDOR_WEBGL),r=t.getParameter(i.UNMASKED_RENDERER_WEBGL);return"".concat(e," ").concat(r)}return""}catch(uJ){return""}}function tM(){return(null==XO?void 0:XO.model)||""}var iM=new Map([[CN,"Android"],[RN,"iOS"],[sO,"Windows"],[aO,"MacOS"],[cO,"Linux"],[lO,"ChromeOS"]]),rM=function(){return iM.get(!0)?iM.get(!0):XO?XO.platform:"unknown"};function nM(){return sO?1:CN?2:aO?3:RN?4:cO?5:lO?6:RO?7:0}function oM(){return kO?1:MO?2:wN?3:0}var sM=()=>{let e=rM();return e+="/".concat(zO.name,"/").concat(MO?zO.version:zO.version.split(".")[0]),null!=XO&&XO.platformVersion&&(e+="/".concat(XO.platformVersion)),null!=XO&&XO.architecture&&(e+="/".concat(XO.architecture)),e};function aM(){return CN?4:IN?2:yN?3:aO?12:sO?5:cO?13:RO?22:1}function cM(){return CN?"Android":IN?"iPhone":yN?"iPad":aO?"Mac":sO?"Windows":cO?"Linux":"unknown"}var lM,dM=new(yb(Cb(),1).default),uM=((lM=uM||{}).ROOM_DESTROY="1",lM.JOIN_START="21",lM.JOIN_SCHEDULE_SUCCESS="22",lM.JOIN_SIGNAL_CONNECTION_START="23",lM.JOIN_SIGNAL_CONNECTION_END="24",lM.JOIN_SEND_CMD="25",lM.JOIN_RECEIVED_CMD_RES="26",lM.JOIN_SUCCESS="27",lM.JOIN_FAILED="28",lM.LEAVE_START="51",lM.LEAVE_SEND_CMD="52",lM.LEAVE_SUCCESS="53",lM.PUBLISH_START="61",lM.SEND_FIRST_VIDEO_FRAME="62",lM.PUBLISH_FAILED="63",lM.SUBSCRIBE_START="81",lM.SUBSCRIBE_SUCCESS="82",lM.SUBSCRIBE_FAILED="84",lM.UNSUBSCRIBE_SUCCESS="83",lM.LOCAL_TRACK_CAPTURE_START="101",lM.LOCAL_TRACK_CAPTURE_SUCCESS="102",lM.LOCAL_TRACK_CAPTURE_FAILED="103",lM.LOCAL_TRACK_PUBLISHED="104",lM.LOCAL_TRACK_UNPUBLISHED="105",lM.LOCAL_TRACK_REPLACED="106",lM.SWITCH_DEVICE_SUCCESS="107",lM.TRACK_MUTED="108",lM.TRACK_UNMUTED="109",lM.REMOTE_TRACK_SUBSCRIBED="110",lM.REMOTE_TRACK_UNSUBSCRIBED="111",lM.LOCAL_TRACK_RECAPTURE="112",lM.LOCAL_AUDIO_STARTED="113",lM.LOCAL_AUDIO_STOPPED="114",lM.REMOTE_AUDIO_STARTED="115",lM.REMOTE_AUDIO_STOPPED="116",lM.PLAY_TRACK_START="151",lM.PLAYER_STATE_CHANGED="152",lM.VIDEO_LOADED_DATA="153",lM.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",lM.AUDIO_CONTEXT_LONG_SUSPENDED="155",lM.SIGNAL_CONNECTION_STATE_CHANGED="201",lM.PEER_CONNECTION_STATE_CHANGED="202",lM.SINGLE_CONNECTION_STAT="203",lM.SPC_RECONNECTED="204",lM.HEARTBEAT_REPORT="251",lM.RECEIVED_PUBLISHED_USER_LIST="252",lM.REMOTE_PUBLISH_STATE_CHANGED="253",lM.AUDIO_LEVEL_INTERVAL="260",lM.NETWORK_QUALITY="261",lM.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",lM.QUALITY_LIMITATION_CHANGED="263",lM.LOG="264",lM.AUDIO_PROCESSOR_DEBUG="265",lM.SSO_SWITCH="266",lM.SWITCH_ROOM_START="401",lM.SWITCH_ROOM_SUCCESS="407",lM.SWITCH_ROOM_FAILED="408",lM),hM=uM,pM=new class{constructor(){Ib(this,"enable",!1),Ib(this,"ssoFailCount",0),dM.on("22",(e=>{let{schedule:t}=e;var i;null!=(i=null==t?void 0:t.config)&&i.sso&&dM.emit("266",{enable:!0})})),dM.on("266",(e=>{let{enable:t}=e;this.enable=t}))}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&dM.emit("266",{enable:!1})}},mM=class e{constructor(){Ib(this,"_isEnableUploadLog",!0),Ib(this,"_localJoinedUser",new Map),Ib(this,"_queue",[]),Ib(this,"_timeoutId",-1),Ib(this,"_logLevel",1),Ib(this,"_logLevelToUpload",2),!Qb&&!Zb&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&-1!==this._timeoutId}installEvents(){dM.on(hM.JOIN_SCHEDULE_SUCCESS,(e=>{let{schedule:t}=e;var i;null!=(i=null==t?void 0:t.config)&&i.logLevelToUpload&&pk[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)})),dM.on(hM.JOIN_SUCCESS,(e=>{let{room:t}=e;this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()})),dM.once(hM.JOIN_FAILED,(()=>{this.startUpload()})),dM.on(hM.LEAVE_SUCCESS,(e=>{let{room:t}=e;this.deleteJoinedUser(t.userId)}))}startUpload(){-1===this._timeoutId&&this.uploadInterval()}addJoinedUser(e){this._localJoinedUser.set(e.userId,e),this.startUpload()}deleteJoinedUser(e){this._localJoinedUser.delete(e)}uploadInterval(){this.upload().catch((()=>{})),this._timeoutId=window.setTimeout((()=>this.uploadInterval()),5e3)}getLogsToUpload(){let e={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&0===this._localJoinedUser.size)return e;let t=0;for(;t<this._queue.length&&50!==t;t++){let i=this._queue[t];if(i.forAllJoinedClients)this._localJoinedUser.forEach((t=>{let{userId:r,sdkAppId:n}=t;e.map.has(r)?e.map.get(r).logs.push(i):e.map.set(r,{userId:r,sdkAppId:n,logs:[i]})}));else if(hw(i.userId)&&pw(i.sdkAppId)){let{userId:t,sdkAppId:r}=i;e.map.has(t)?e.map.get(t).logs.push(i):e.map.set(t,{userId:t,sdkAppId:r,logs:[i]})}}return e.map.size>0&&(e.splicedQueue=this._queue.splice(0,t)),e}upload(){return Rb(this,null,(function*(){if(0===this._queue.length||!this._isEnableUploadLog)return;let{map:e,splicedQueue:t}=this.getLogsToUpload();if(0===e.size)return;try{let t=[...e.values()];for(let e=0;e<t.length;e++){let{userId:i,sdkAppId:r,logs:n}=t[e],o={timestamp:Wb(),sdkAppId:String(r),userId:i,version:qb,log:n.map((e=>e.log)).join("\n")},s=JSON.stringify(o),a=pM.enable?$w(o,2002,r):s;yield this.uploadLogWithRetry(a,r,a instanceof Uint8Array,s),n.forEach((e=>e.uploaded=!0))}}catch(AM){}let i=t.filter((e=>!e.uploaded));i.length>0&&(this._queue=i.concat(this._queue))}))}uploadLogWithRetry(e,t,i,r){return hN({retryFunction:()=>nN({url:qD(t,uk.LOG),body:e,timeout:5e3,priority:"low"}).then((e=>{i&&"ok"!==e.data&&(pM.handleUploadFailed(),this.uploadLogWithRetry(r,t,!1,r))})),settings:{retries:3,timeout:2e3},onError:e=>{let{retry:t}=e;t()}})()}getPrefix(e){let t=new Date;return t.setTime(Hb()),"[".concat(Gb(t),"] <").concat(pk[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){uw(pk[e])||(this._logLevel!==e&&this.info("setLogLevel",e),this._logLevel=e)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(e){if(hw(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch(Yb){return""}}log(t,i){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;var s;i.unshift(this.getPrefix(t));let a={log:i.reduce(((e,t)=>"".concat(e," ").concat(this.logChunkToString(t)).trim()),""),level:t,userId:n,sdkAppId:o,forAllJoinedClients:r};if(dM.emit(hM.LOG,{log:a}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(a),t<this._logLevel)return;let c=(null==(s=pk[t])?void 0:s.toLowerCase())||"info";e.PRINT_LOG_TAG?console[c]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...i):console[c](...i)}debug(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(1,t)}info(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(2,t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.log(4,t)}createLogger(e){return new pN(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;pk[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};Ib(mM,"PRINT_LOG_TAG",!(RN||CN||wO));var _M=new mM,fM=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))},gM=new class{constructor(){Ib(this,"_prefix","TRTC"),Ib(this,"_queue",new Map)}getRealKey(e){return"".concat(this._prefix,"_").concat(e)}checkStorage(){qO()&&(setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter((e=>{if(e.startsWith(this._prefix))try{let t=localStorage.getItem(e);if(!t)return!1;let i=JSON.parse(t);if(i&&i.expiresIn<Date.now())return!0}catch(AM){return!1}return!1})).forEach((e=>localStorage.removeItem(e))))}doFlush(){if(qO())try{for(let[e,t]of this._queue)localStorage.setItem(e,JSON.stringify(t))}catch(IM){_M.warn(IM)}}getItem(e){if(!qO())return null;try{let t=localStorage.getItem(this.getRealKey(e));if(!t)return null;let i=JSON.parse(t);return i&&i.expiresIn>=Date.now()?i.value:null}catch(Yb){_M.warn(Yb)}}setItem(e,t){if(qO())try{let i={expiresIn:Date.now()+gk,value:t};this._queue.set(this.getRealKey(e),i)}catch(Qk){_M.warn(Qk)}}deleteItem(e){if(!qO())return!1;try{return e=this.getRealKey(e),this._queue.delete(e),localStorage.removeItem(e),!0}catch(Yb){return _M.warn(Yb),!1}}clear(){if(qO())try{localStorage.clear()}catch(IM){_M.warn(IM)}}},EM={};vb(EM,{HTTPS_API:()=>iL,IS_GET_CAPABILITIES_SUPPORTED:()=>IL,IS_GET_SETTINGS_SUPPORTED:()=>SL,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>yL,IS_INSERTABLE_STREAM_SUPPORTED:()=>AL,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>VL,IS_RTC_RTP_SENDER_SUPPORTED:()=>EL,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>RL,IS_SEI_SUPPORTED:()=>CL,IS_SPC_SUPPORTED:()=>fL,basis:()=>OL,capabilityCheck:()=>LL,checkSystemRequirementsInternal:()=>XP,decodeSupportStatus:()=>YP,detectVideoCodecCapabilities:()=>BL,detectVideoDecoderCapabilities:()=>WL,detectVideoEncoderCapabilities:()=>HL,encodeSupportStatus:()=>zP,getBrowserInfo:()=>HP,getDisplayResolution:()=>nL,isAddTransceiverSupported:()=>_L,isBrowserSupported:()=>WP,isCanvasCaptureStreamAPISupported:()=>aL,isCanvasSmallStreamSupported:()=>cL,isGetReceiversSupported:()=>hL,isGetSendersSupported:()=>pL,isGetTransceiversSupported:()=>mL,isGetUserMediaSupported:()=>oL,isMediaDevicesSupported:()=>jP,isMediaSessionSupported:()=>DL,isMediaStreamTrackProcessorSupported:()=>qP,isReplaceTrackSupported:()=>TL,isRequestVideoFrameCallbackSupported:()=>xL,isSIMDSupported:()=>NL,isScaleResolutionDownBySupported:()=>lL,isScreenCaptureApiAvailable:()=>ZP,isSelectedCandidatePair:()=>rL,isSetParametersSupported:()=>vL,isSetSinkIdSupported:()=>$P,isSmallStreamSupported:()=>dL,isStopTransceiverSupported:()=>gL,isTRTCSupported:()=>QP,isUnifiedPlanDefault:()=>uL,isUsedInHttpProtocol:()=>KP,isWebAudioSupported:()=>sL,isWebCodecSupported:()=>kL,isWebCodecsSupported:()=>GP,isWebRTCSupported:()=>bL,isWebTransportSupported:()=>wL});var TM={};vb(TM,{AUDIO_LEVEL_SCALE:()=>dP,AudioCodecPipelineType:()=>_P,AudioDecoderDowngradeState:()=>JM,AudioPlayerMode:()=>aP,AudioType:()=>QM,BASIC_TYPE:()=>hP,BannedReason:()=>cP,CONNECTION_CLOSED_REASON:()=>OM,CheckPermissionType:()=>yP,ClientEvent:()=>MM,CodecType:()=>fP,ConnectionEvent:()=>NM,ConnectionState:()=>jM,DECODE_FAILED_ERROR_CODE:()=>gP,FacingMode:()=>oP,FrameWorkType:()=>wM,LeaveReason:()=>lP,LocalTrackEvent:()=>LM,MULTI_VIDEO_DATA_TYPE:()=>tP,MediaType:()=>YM,MediaTypeLabel:()=>XM,MonitorEventId:()=>iP,MutedFlag:()=>BM,NetworkQualityValue:()=>rP,PlayerState:()=>xM,ReceiveMode:()=>nP,RemoteStreamType:()=>eP,RemoteTrackEvent:()=>FM,RoomEvent:()=>VM,SMALL_MODE:()=>vP,SceneNumber:()=>HM,StreamEvent:()=>PM,StreamType:()=>$M,SubscribeMediaType:()=>uP,TIMER_TYPE:()=>TP,TRACK_ACTION:()=>zM,TRACK_KIND:()=>qM,TrackEvent:()=>UM,UserRole:()=>GM,UserRoleNumber:()=>WM,VideoCodec:()=>pP,VideoCodecPipelineType:()=>mP,VideoContentHint:()=>EP,VideoDecoderDowngradeState:()=>KM,VideoPlayerMode:()=>sP,VideoType:()=>ZM});var vM,yM,SM,IM,AM,RM,CM,bM,kM,DM,wM=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(wM||{}),NM=((DM=NM||{}).TRACK_ADDED="track-added",DM.TRACK_UPDATED="track-updated",DM.TRACK_SUBSCRIBED="track-subscribed",DM.STREAM_ADDED="stream-added",DM.STREAM_REMOVED="stream-removed",DM.STREAM_UPDATED="stream-updated",DM.STREAM_PUBLISHED="stream-published",DM.STREAM_SUBSCRIBED="stream-subscribed",DM.STREAM_UNSUBSCRIBED="stream-unsubscribed",DM.STATE_CHANGED="state-changed",DM.ERROR="error",DM.CONNECTION_STATE_CHANGED="connection-state-changed",DM.FIREWALL_RESTRICTION="firewall-restriction",DM.SEI_MESSAGE="sei-message",DM.CLOSED="closed",DM),OM=(e=>(e.REMOTE_LEAVE="remote user exitRoom",e.REMOTE_UNPUBLISH="remote user unpublished",e.LOCAL_LEAVE="you exitRoom",e.LOCAL_UNPUBLISH="you unpublished",e.LOCAL_UNSUBSCRIBE="you unsubscribed",e.SWITCH_ROLE="you switch role to audience",e))(OM||{}),MM=((kM=MM||{}).STREAM_ADDED="stream-added",kM.STREAM_REMOVED="stream-removed",kM.STREAM_UPDATED="stream-updated",kM.STREAM_SUBSCRIBED="stream-subscribed",kM.CONNECTION_STATE_CHANGED="connection-state-changed",kM.PEER_JOIN="peer-join",kM.PEER_LEAVE="peer-leave",kM.MUTE_AUDIO="mute-audio",kM.MUTE_VIDEO="mute-video",kM.UNMUTE_AUDIO="unmute-audio",kM.UNMUTE_VIDEO="unmute-video",kM.CLIENT_BANNED="client-banned",kM.NETWORK_QUALITY="network-quality",kM.AUDIO_VOLUME="audio-volume",kM.SEI_MESSAGE="sei-message",kM.ERROR="error",kM),PM=((bM=PM||{}).PLAYER_STATE_CHANGED="player-state-changed",bM.SCREEN_SHARING_STOPPED="screen-sharing-stopped",bM.CONNECTION_STATE_CHANGED="connection-state-changed",bM.DEVICE_AUTO_RECOVERED="device-auto-recovered",bM.ERROR="error",bM),LM=((CM=LM||{}).DEVICE_AUTO_RECOVERED="1",CM.DEVICE_RECOVER_FAILED="5",CM.DEVICE_CHANGED="2",CM.ERROR="3",CM.PUBLISH_STATE_CHANGED="4",CM.ENCODE_FAILED="6",CM.TRACK_ENDED="7",CM),xM=(e=>(e.PAUSED="PAUSED",e.PLAYING="PLAYING",e.STOPPED="STOPPED",e))(xM||{}),VM=((RM=VM||{}).PEER_JOIN="peer-join",RM.PEER_LEAVE="peer-leave",RM.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",RM.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",RM.BANNED="banned",RM.NETWORK_QUALITY="network-quality",RM.AUDIO_VOLUME="audio-volume",RM.SEI_MESSAGE="sei-message",RM.ERROR="error",RM.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",RM.REMOTE_PUBLISHED="remote-published",RM.REMOTE_UNPUBLISHED="remote-unpublished",RM.FIREWALL_RESTRICTION="firewall-restriction",RM.HEARTBEAT_REPORT="heartbeat-report",RM.CUSTOM_MESSAGE="custom-message",RM.LAYER_DATA="layerData",RM.FIRST_VIDEO_FRAME="first-video-frame",RM.DUMP="dump",RM.AUDIO_FRAME="audio-frame",RM.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",RM),UM=(e=>(e.PLAYER_STATE_CHANGED="player-state-changed",e.MUTE="mute",e.UNMUTE="unmute",e.ERROR="error",e.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",e.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",e.FIRST_VIDEO_FRAME="first-video-frame",e))(UM||{}),FM=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(FM||{}),BM=(e=>(e[e.VIDEO=1]="VIDEO",e[e.SMALL=2]="SMALL",e[e.AUX=4]="AUX",e[e.AUDIO=8]="AUDIO",e[e.VIDEO_MUTE=16]="VIDEO_MUTE",e[e.AUX_MUTE=32]="AUX_MUTE",e[e.AUDIO_MUTE=64]="AUDIO_MUTE",e))(BM||{}),HM=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(HM||{}),WM=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(WM||{}),GM=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(GM||{}),jM=(e=>(e.CONNECTED="CONNECTED",e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.RECONNECTED="RECONNECTED",e.RECONNECTING="RECONNECTING",e))(jM||{}),JM=((AM=JM||{}).INITIALIZED="INITIALIZED",AM.STARTING="STARTING",AM.STARTED="STARTED",AM.FAILED="FAILED",AM),KM=(e=>(e.INITIALIZED="INITIALIZED",e.STARTING="STARTING",e.STARTED="STARTED",e.FAILED="FAILED",e))(KM||{}),qM=(e=>(e.AUDIO="audio",e.VIDEO="video",e.AUXILIARY="auxVideo",e))(qM||{}),zM=(e=>(e.ADD="add",e.REMOVE="remove",e))(zM||{}),YM=(e=>(e[e.NULL=0]="NULL",e[e.AUDIO=1]="AUDIO",e[e.AUX_VIDEO=2]="AUX_VIDEO",e[e.BIG_VIDEO=4]="BIG_VIDEO",e[e.SMALL_VIDEO=8]="SMALL_VIDEO",e))(YM||{}),XM={1:"audio",2:"auxVideo",4:"video"},QM=((IM=QM||{})[IM.opus=111]="opus",IM),ZM=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(ZM||{}),$M=(e=>(e.Big="big",e.Small="small",e))($M||{}),eP=(e=>(e.Main="main",e.Aux="auxiliary",e))(eP||{}),tP=(e=>(e[e.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",e[e.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",e[e.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",e[e.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",e[e.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",e))(tP||{}),iP=((SM=iP||{})[SM.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",SM[SM.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",SM[SM.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",SM[SM.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",SM[SM.MUTE_AUDIO=32772]="MUTE_AUDIO",SM[SM.MUTE_VIDEO=32773]="MUTE_VIDEO",SM[SM.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",SM[SM.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",SM[SM.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",SM[SM.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",SM[SM.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",SM[SM.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",SM[SM.SWITCH_CAMERA=32780]="SWITCH_CAMERA",SM[SM.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",SM[SM.REPLACE_VIDEO=32782]="REPLACE_VIDEO",SM[SM.REPLACE_AUDIO=32783]="REPLACE_AUDIO",SM[SM.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",SM[SM.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",SM[SM.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",SM[SM.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",SM[SM.JOIN=32788]="JOIN",SM[SM.LEAVE=32789]="LEAVE",SM[SM.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",SM[SM.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",SM[SM.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",SM[SM.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",SM[SM.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",SM[SM.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",SM[SM.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",SM[SM.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",SM[SM.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",SM[SM.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",SM[SM.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",SM[SM.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",SM[SM.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",SM[SM.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",SM[SM.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",SM[SM.PUBLISH_AUX=32805]="PUBLISH_AUX",SM[SM.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",SM[SM.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",SM[SM.VIDEO_ENCODER=4004]="VIDEO_ENCODER",SM[SM.VIDEO_DECODER=4005]="VIDEO_DECODER",SM),rP=(e=>(e[e.UNKNOWN=0]="UNKNOWN",e[e.EXCELLENT=1]="EXCELLENT",e[e.GOOD=2]="GOOD",e[e.POOR=3]="POOR",e[e.BAD=4]="BAD",e[e.VERY_BAD=5]="VERY_BAD",e[e.DISCONNECTED=6]="DISCONNECTED",e))(rP||{}),nP=(e=>(e[e.MANUAL=0]="MANUAL",e[e.AUTO_AUDIO=1]="AUTO_AUDIO",e[e.AUTO_VIDEO=2]="AUTO_VIDEO",e[e.AUTO_ALL=3]="AUTO_ALL",e))(nP||{}),oP=(e=>(e.user="user",e.environment="environment",e))(oP||{}),sP=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",e[e.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",e))(sP||{}),aP=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(aP||{}),cP=(e=>(e.BANNED="banned",e.KICK="kick",e.USER_TIME_OUT="user_time_out",e.ROOM_DISBAND="room_disband",e))(cP||{}),lP=((yM=lP||{})[yM.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",yM[yM.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",yM[yM.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",yM[yM.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",yM[yM.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",yM[yM.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",yM[yM.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",yM[yM.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",yM[yM.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",yM),dP=1e8,uP=class{constructor(){Ib(this,"mediaType",0)}set audio(e){e?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(1&this.mediaType)}set video(e){e?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(4&this.mediaType)}set auxiliary(e){e?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(2&this.mediaType)}set smallVideo(e){e?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(8&this.mediaType)}},hP=(e=>(e.String="string",e.Number="number",e.Boolean="boolean",e.Array="array",e.Object="object",e))(hP||{}),pP=(e=>(e.H264="h264",e.H265="h265",e.VP8="vp8",e.VP9="vp9",e.AV1="av1",e))(pP||{}),mP=(e=>(e[e.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",e[e.DUMP=1]="DUMP",e[e.SEI=2]="SEI",e[e.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",e))(mP||{}),_P=(e=>(e[e.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",e[e.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",e[e.DUMP=2]="DUMP",e[e.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",e))(_P||{}),fP=(e=>(e.WebRTC="webrtc",e.WebCodecs="webcodecs",e.WebAssembly="webassembly",e))(fP||{}),gP=((vM=gP||{})[vM.SUCCESS=0]="SUCCESS",vM[vM.FAILED=1]="FAILED",vM[vM.WEBCODEC_INIT=2]="WEBCODEC_INIT",vM[vM.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",vM[vM.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",vM[vM.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",vM[vM.WASM_INIT=6]="WASM_INIT",vM[vM.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",vM[vM.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",vM[vM.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",vM[vM.TEST=10]="TEST",vM[vM.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",vM),EP=(e=>(e.NONE="",e.DETAIL="detail",e.MOTION="motion",e.TEXT="text",e))(EP||{}),TP=(e=>(e.INTERVAL="interval",e.TIMEOUT="timeout",e.RAF="raf",e.RIC="ric",e.INTERVAL_IN_WORKER="intervalInWorker",e))(TP||{}),vP=(e=>(e.CANVAS="canvas",e.API="api",e))(vP||{}),yP=(e=>(e[e.NONE=0]="NONE",e[e.MICROPHONE=1]="MICROPHONE",e[e.CAMERA=2]="CAMERA",e[e.BOTH=3]="BOTH",e))(yP||{}),SP={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"},IP={AVOID_REPEATED_CALL:e=>"previous ".concat(e.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' is a required param when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="";return s=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(o,"' must be type of ").concat(s," when calling ").concat(r,"(), received type: ").concat(lw(n),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be '").concat(n,"' when calling ").concat(r,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(o,"' must be instanceof ").concat(s," when calling ").concat(r,"(), received type: ").concat(lw(n),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' must be one of ").concat(i.values.join("|")," when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_MIN(e){let{key:t,rule:i,fnName:r,value:n}=e;return"the min value of ".concat(t||i.name," is ").concat(i.min,", received: ").concat(n,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:i,fnName:r,value:n}=e;return"the max value of ".concat(t||i.name," is ").concat(i.max,", received: ").concat(n,".")},API_CALL_TIMEOUT:e=>"".concat(e.commandDesc||e.command," timeout observed."),SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED:e=>"SignalChannel setup failure: (errorCode: ".concat(e.errorCode,", errorMsg: ").concat(e.errorMsg," })."),ERROR_MESSAGE(e){let t="".concat(e.type," failed");return e.message&&(t="".concat(t,": ").concat(e.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:e=>"exchange sdp failed ".concat(e.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:e=>"'".concat(e,"' must be validate string when useStringRoomId is true."),INVALID_ROOMID_INTEGER:e=>"'".concat(e,"' 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(e){let{error:t,code:i}=e;return"Failed to join room - ".concat(t," code: ").concat(i)},REJOIN_ROOM_FAILED:e=>"reJoin room: ".concat(e.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:e=>"duplicate ".concat(e," stream publishing, please unpublish your prev ").concat(e," 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(e){let{message:t,userId:i,streamType:r}=e;return"failed to subscribe ".concat(i," ").concat(r," stream, reason: ").concat(t,".")},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:e=>"switchRole failed, errCode: ".concat(e.code," errMsg: ").concat(e.message,"."),CLIENT_BANNED:e=>"client was banned because of ".concat(e.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:e=>"startPublishCDNStream failed, errMsg: ".concat(e.message,"."),STOP_PUBLISH_CDN_FAILED:e=>"stopPublishCDNStream failed, errMsg: ".concat(e.message,"."),INVALID_STREAM_ID:e=>"'".concat(e,"' 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:e=>"cannot replace ".concat(e.kind," track because stream has not ").concat(e.kind," track"),NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED:e=>"startMixTranscode failed, errMsg: ".concat(e.message,"."),STOP_MIX_TRANSCODE_FAILED:e=>"stopMixTranscode failed, errMsg: ".concat(e.message,"."),MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be less than 0 when calling ").concat(r,"().")},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:e=>"'".concat(e,"' 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:e=>{let{key:t,fnName:i}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(i,"().")},INVALID_ELEMENT_ID_TYPE:e=>{let{key:t,fnName:i,type:r}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(i,"(), received: ").concat(r,".")},PLAY_FAILED:e=>"".concat(e.media," play failed, browser exception: ").concat(e.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:e=>"".concat(e,"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:e=>"".concat(e.signalResponse," failed, response code is ").concat(e.code," , errMsg: ").concat(e.message,"."),CATCH_HANDLER_ERROR(e){let{name:t,event:i}=e;return"an error was caught in ".concat(t,".on('").concat(i,"', handler), please check your code in 'handler'.")},API_NOT_EXIST(e){let{name:t}=e;return"experimental api ".concat(t," does not exist.")},REPEAT_JOIN:e=>"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(e){let{funName:t}=e;return"failed to call ".concat(t,"() because client was destroyed.")},SEI_NOT_SUPPORT:e=>"not support to sendSEIMessage".concat(!1===e?" 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:e=>{let{isSize:t,name:i,timesInSecond:r,maxSizeInSecond:n}=e;return"api ".concat(i," call ").concat(t?"size":"times"," is over ").concat(t?"".concat(n," bytes"):r," in a second.")},CONNECTION_ABORTED:e=>"connection aborted due to: ".concat(e),API_CALL_ABORTED(e){let t;return t=e.message.includes("REMOTE_STREAM_NOT_EXIST")?"Subscribe ".concat(e.userId," ").concat(e.streamType," stream aborted, reason: remote user ").concat(e.userId," unpublished stream."):"API aborted, reason: ".concat(e.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:e=>"'streamType' is required when 'userId' is not '*', calling ".concat(e,"()")},AP=(e,t)=>t?"".concat(sk,"/").concat(e,"/").concat(t):"".concat(sk,"/").concat(e,"/index.html"),RP=()=>{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 e=null==localStorage?void 0:localStorage.getItem(dk);if(e){e=JSON.parse(e);let t=document.createElement("script");t.type="text/javascript",t.text=e.message,document.body.appendChild(t);let i=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:i,TRTC_ERROR_LINK:r}}return{}};function CP(e){let{key:t,data:i,link:r,addDocLink:n=!0}=e,o="",s="",a="";dw(IP[t])?o=IP[t](i):hw(IP[t])&&(o=IP[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:l}=RP();r?a="".concat(r.className,".html#").concat(r.fnName):l&&l[t]&&(dw(l[t])?a=l[t](i):hw(l[t])&&(a=l[t]));let d=o;return ow()&&(c&&c[t]&&(dw(c[t])?s=c[t](i):hw(c[t])&&(s=c[t])),s&&(d=n?"".concat(s,"\n请查看文档: ").concat(AP("zh-cn",a),"\n\n"):"".concat(s,"\n\n"),d+=o)),n&&(d+=" \nRefer to: ".concat(AP("en",a),"\n")),d}var bP,kP,DP=yb(wb(),1),wP=class{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];Ib(this,"countMap",new Map),Ib(this,"distributionMap",new Map),Ib(this,"version"),Ib(this,"log",_M.createLogger({id:"kv"})),e&&(dM.on("102",(e=>{let{track:t,cost:i}=e;this.addSuccessEvent({key:t.kind===Ik.AUDIO?501700:511700,cost:i})})),dM.on("103",(e=>{let{track:t,error:i}=e;this.addFailedEvent({key:t.kind===Ik.AUDIO?501700:511700,error:i})})),dM.on("266",(e=>{let{enable:t}=e;this.log.info("".concat(t?"enable":"disable"," sso")),t?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})})))}getReportData(){let e={msg_sdk_basic_info:{uint32_sdk_version:Ww(this.version||qb),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map((e=>{let[t,i]=e;return{uint32_key:t,uint32_count:i}})),stats_distribution:[...this.distributionMap.entries()].map((e=>{let[t,i]=e;return{uint32_key:t,distribution_items:[...i.entries()].map((e=>{let[t,i]=e;return{uint32_item_key:t,uint32_item_value:i}}))}}))};return this.countMap.clear(),this.distributionMap.clear(),e}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(e){let t=+String(e).slice(-3);return t>=700&&t<799}isErrorCodeKey(e){let t=+String(e).slice(-3);return t>=600&&t<699}isCountKey(e){let t=+String(e).slice(-3);return t>=0&&t<599}isNumberKey(e){let t=+String(e).slice(-3);return t>=800&&t<899}addCount(e){let{key:t,useUV:i=!1}=e;this.isCountKey(t)?i&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1):this.log.debug("".concat(t," is not count key, last 3 number should be 0~599"))}addEnum(e){let{key:t,value:i,useUV:r=!0}=e;var n;if(!this.isEnumKey(t))return this.log.debug("".concat(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=(null==(n=this.distributionMap)?void 0:n.get(t))||new Map;o.set(i,(o.get(i)||0)+1),this.distributionMap.set(t,o)}addNumber(e){let{key:t,value:i,split:r=100,useUV:n=!1,max:o=5e3}=e;var s;if(!this.isNumberKey(t))return this.log.debug("".concat(t," is not number key, last 3 number should be 800~899"));if(n&&this.countMap.has(t))return;i>o&&(i=o),this.countMap.set(t,(this.countMap.get(t)||0)+1);let a=(null==(s=this.distributionMap)?void 0:s.get(t))||new Map,c=0;if(pw(r))c=Math.floor(i/r);else for(let l=r.length-1;l>0;l--)if(i>r[l]){c=l;break}a.set(c,(a.get(c)||0)+1),this.distributionMap.set(t,a)}addSuccessEvent(e){let{key:t,cost:i,timeKey:r,split:n}=e;if(t&&(this.addEnum({key:t,value:1,useUV:!1}),i)){let e=+String(t).slice(-3);e<800&&e>=700?this.addNumber({key:r||t+100,value:i,split:n}):r||this.log.debug("time stat ignored, ".concat(t))}}addFailedEvent(e){let{key:t,error:i}=e;if(!t)return;let r=Vb.UNKNOWN;i&&(pw(i)?r=i:(!uw(i.extraCode)||!uw(i.code))&&(r=i.extraCode||i.code)),this.addEnum({key:t,value:0,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},NP=((bP=NP||{})[bP.enterRoom=500700]="enterRoom",bP[bP.exitRoom=500701]="exitRoom",bP[bP.switchRole=500702]="switchRole",bP[bP.destroy=500703]="destroy",bP[bP.startLocalAudio=500704]="startLocalAudio",bP[bP.updateLocalAudio=500705]="updateLocalAudio",bP[bP.stopLocalAudio=500706]="stopLocalAudio",bP[bP.startLocalVideo=500707]="startLocalVideo",bP[bP.updateLocalVideo=500708]="updateLocalVideo",bP[bP.stopLocalVideo=500709]="stopLocalVideo",bP[bP.startScreenShare=500710]="startScreenShare",bP[bP.updateScreenShare=500711]="updateScreenShare",bP[bP.stopScreenShare=500712]="stopScreenShare",bP[bP.startRemoteVideo=500713]="startRemoteVideo",bP[bP.updateRemoteVideo=500714]="updateRemoteVideo",bP[bP.stopRemoteVideo=500715]="stopRemoteVideo",bP[bP.muteRemoteAudio=500716]="muteRemoteAudio",bP[bP.setRemoteAudioVolume=500717]="setRemoteAudioVolume",bP[bP.use=500718]="use",bP[bP.switchRoom=500719]="switchRoom",bP[bP.sendSEIMessage=5e5]="sendSEIMessage",bP[bP.sendCustomMessage=500001]="sendCustomMessage",bP),OP=(e=>(e[e.AudioMixer=550700]="AudioMixer",e[e.AIDenoiser=551700]="AIDenoiser",e[e.VirtualBackground=570700]="VirtualBackground",e[e.Beauty=571700]="Beauty",e[e.Watermark=572700]="Watermark",e[e.BasicBeauty=574700]="BasicBeauty",e[e.CDNStreaming=590700]="CDNStreaming",e[e.DeviceDetector=591700]="DeviceDetector",e[e.Debug=592700]="Debug",e[e.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",e[e.VideoMixer=594700]="VideoMixer",e[e.AudioProcessor=595700]="AudioProcessor",e))(OP||{}),MP=(e=>(e[e.AudioMixer=550701]="AudioMixer",e[e.AIDenoiser=551701]="AIDenoiser",e[e.VirtualBackground=570701]="VirtualBackground",e[e.Beauty=571701]="Beauty",e[e.Watermark=572701]="Watermark",e[e.BasicBeauty=574701]="BasicBeauty",e[e.CDNStreaming=590701]="CDNStreaming",e[e.DeviceDetector=591701]="DeviceDetector",e[e.Debug=592701]="Debug",e[e.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",e[e.VideoMixer=594701]="VideoMixer",e[e.AudioProcessor=595701]="AudioProcessor",e))(MP||{}),PP=(e=>(e[e.AudioMixer=550702]="AudioMixer",e[e.AIDenoiser=551702]="AIDenoiser",e[e.VirtualBackground=570702]="VirtualBackground",e[e.Beauty=571702]="Beauty",e[e.Watermark=572702]="Watermark",e[e.BasicBeauty=574702]="BasicBeauty",e[e.CDNStreaming=590702]="CDNStreaming",e[e.DeviceDetector=591702]="DeviceDetector",e[e.Debug=592702]="Debug",e[e.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",e[e.VideoMixer=594702]="VideoMixer",e[e.AudioProcessor=595702]="AudioProcessor",e))(PP||{}),LP=((kP=LP||{})[kP.DECODER_TYPE=514700]="DECODER_TYPE",kP[kP.DECODER_HW_SW=514701]="DECODER_HW_SW",kP[kP.DECODE_RESULT=514702]="DECODE_RESULT",kP[kP.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",kP[kP.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",kP[kP.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",kP[kP.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",kP[kP.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",kP[kP.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",kP[kP.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",kP[kP.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",kP[kP.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",kP[kP.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",kP[kP.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",kP[kP.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",kP[kP.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",kP[kP.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",kP),xP=new wP(!0),VP=new wP(!1),UP=xP,FP={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}},BP=new Map([[wN,["Firefox",NN]],[LN,["Edg",xN]],[DO,["Chrome",OO]],[MO,["Safari",LO]],[WN,["TBS",GN]],[jN,["XWEB",JN]],[YN&&IN,["WeChat",XN]],[eO,["QQ(Win)",tO]],[ZN,["QQ(Mobile)",$N]],[QN,["QQ(Mobile X5)",$N]],[iO,["QQ(Mac)",rO]],[nO,["QQ(iPad)",oO]],[pO,["MI",mO]],[_O,["HW",EO]],[TO,["Samsung",vO]],[yO,["OPPO",SO]],[IO,["VIVO",AO]],[MN,["EDGE",PN]],[UN,["SogouMobile",FN]],[BN,["Sogou",HN]]]);function HP(){let e=BP.get(!0);return{browserName:e?e[0]:"unknown",browserVersion:e?e[1]:"unknown"}}var WP=function(){return!(uO||MN||LN&&VN<80||wN&&ON<56)},GP=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every((e=>e in window))},jP=function(){if(!navigator.mediaDevices)return KP()||_M.error(IP.NOT_SUPPORTED_MEDIA),!1;let e=["getUserMedia","enumerateDevices"];return e.filter((e=>e in navigator.mediaDevices)).length===e.length},JP=!1;function KP(){return"http:"===location.protocol&&!KO&&(JP||_M.error(CP({key:SP.NOT_SUPPORTED_HTTP})),JP=!0,!0)}var qP=function(){return(null==window?void 0:window.OffscreenCanvas)&&(null==window?void 0:window.MediaStreamTrackProcessor)&&(null==window?void 0:window.MediaStreamTrackGenerator)},zP=function(){return Rb(this,null,(function*(){var e,t,i;if(FP.detail.isH264EncodeSupported&&FP.detail.isVp8EncodeSupported)return{isH264EncodeSupported:FP.detail.isH264EncodeSupported,isVp8EncodeSupported:FP.detail.isVp8EncodeSupported,isH265EncodeSupported:FP.detail.isH265EncodeSupported};let r,n=!1,o=!1,s=!1;try{let a=new RTCPeerConnection,c=document.createElement(Ik.CANVAS);c.getContext("2d");let l=c.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),r=yield a.createOffer(),n=-1!==(null==(e=r.sdp)?void 0:e.toLowerCase().indexOf("h264")),o=-1!==(null==(t=r.sdp)?void 0:t.toLowerCase().indexOf("vp8")),s=-1!==(null==(i=r.sdp)?void 0:i.toLowerCase().indexOf("h265")),a.close(),{isH264EncodeSupported:n,isVp8EncodeSupported:o,isH265EncodeSupported:s}}catch(CM){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}}))},YP=function(){return Rb(this,null,(function*(){var e;if(FP.detail.isH264DecodeSupported&&FP.detail.isVp8DecodeSupported)return{isH264DecodeSupported:FP.detail.isH264DecodeSupported,isVp8DecodeSupported:FP.detail.isVp8DecodeSupported,isH265DecodeSupported:FP.detail.isH265DecodeSupported};let t,i=!1,r=!1;try{let n=new RTCPeerConnection;_L()?(n.addTransceiver(Ik.VIDEO,{direction:"recvonly"}),t=yield n.createOffer()):t=yield n.createOffer({offerToReceiveVideo:!0}),-1!==t.sdp.toLowerCase().indexOf("h264")&&(i=!0),-1!==t.sdp.toLowerCase().indexOf("vp8")&&(r=!0);let o=-1!==(null==(e=t.sdp)?void 0:e.toLowerCase().indexOf("h265"));return n.close(),{isH264DecodeSupported:i,isVp8DecodeSupported:r,isH265DecodeSupported:o}}catch(AM){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}}))};var XP=Jw((e=>Rb(void 0,null,(function*(){let t=Date.now(),i=bL(),r=jP(),n=GP();if(FP.detail.isWebRTCSupported=i,FP.detail.isMediaDevicesSupported=r,FP.detail.isWebCodecsSupported=n,FP.detail.isScreenShareSupported=ZP(),FP.detail.isSmallStreamSupported=dL(),37===e)return Object.assign(FP.detail,yield function(){return Rb(this,null,(function*(){return tL||(tL=new Promise((e=>Rb(this,null,(function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!GP())return void e(t);let i=null,r=null,n=null,o=()=>{n&&clearTimeout(n),i=null,r=null};try{i=document.createElement("canvas"),r=i.getContext("2d"),i.width=320,i.height=240;let s=0,a=()=>{!r||!i||(r.fillStyle="hsl(".concat(s%360,", 50%, 50%)"),r.fillRect(0,0,i.width,i.height),r.fillStyle="white",r.font="20px Arial",r.fillText("Frame ".concat(s),10,30),s++)};n=setTimeout((()=>{o(),e(t)}),5e3);let c=[{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(c.map((e=>Rb(this,null,(function*(){let t,r={type:e.type,encodeSupported:!1,decodeSupported:!1};try{t=yield new Promise(((t,n)=>Rb(this,null,(function*(){try{let o=new VideoEncoder({output:e=>{t(e),r.encodeSupported=!0},error:n});o.configure(e.encodeConfig),a();let s=new VideoFrame(i,{timestamp:0});o.encode(s,{keyFrame:!0}),s.close(),yield o.flush(),o.close()}catch(DM){n(DM)}}))))}catch(p){return _M.warn("".concat(e.type," encoder error:"),p),r}try{yield new Promise(((i,n)=>Rb(this,null,(function*(){try{let o=new VideoDecoder({output:e=>{r.decodeSupported=!0,i(0),e.close()},error:n});o.configure(e.decodeConfig),o.decode(t),yield o.flush(),o.close()}catch(DM){n(DM)}}))))}catch(p){_M.warn("".concat(e.type," decoder error:"),p)}return r})))))).forEach((e=>{"h264"===e.type?(t.isH264EncodeSupported=e.encodeSupported,t.isH264DecodeSupported=e.decodeSupported):"vp8"===e.type&&(t.isVp8EncodeSupported=e.encodeSupported,t.isVp8DecodeSupported=e.decodeSupported)})),o(),e(t)}catch(s){o(),_M.warn("detectWebCodecsSupported failed:",s),e(t)}})))),tL)}))}()),FP.detail.isBrowserSupported=n,FP.result=r&&n,FP.result||_M.error("".concat(navigator.userAgent," ").concat(Uw(FP.detail,!1))),PL(e),UP.addNumber({key:523800,value:Date.now()-t}),FP;if(FP.result&&FP.detail.isH264EncodeSupported&&FP.detail.isVp8EncodeSupported&&FP.detail.isH265EncodeSupported&&FP.detail.isH264DecodeSupported&&FP.detail.isVp8DecodeSupported&&FP.detail.isH265DecodeSupported)return FP;let o=WP(),{encode:s,decode:a}=yield function(){return Rb(this,null,(function*(){let[e,t]=yield Promise.all([zP(),YP()]);return{encode:{h264:e.isH264EncodeSupported,vp8:e.isVp8EncodeSupported,h265:e.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}}))}(),{h264:c,vp8:l}=s,{h264:d}=a,{h265:u}=s,{vp8:h,h265:p}=a;if(!c||!l){let e=yield zP();_M.warn("detect encode again h264:".concat(c," vp8:").concat(l," result: ").concat(JSON.stringify(e))),c=e.isH264EncodeSupported,l=e.isVp8EncodeSupported}if(c&&d&&CN&&kO&&!jN&&!WN){let{encode:e,decode:t}=yield function(){return Rb(this,null,(function*(){return eL||(eL=new Promise((e=>Rb(this,null,(function*(){let t={encode:!1,decode:!1},i=()=>{};try{let r=document.createElement("canvas"),n=r.getContext("2d");r.width=320,r.height=240;let o=setInterval((()=>{n.fillText("test",Math.floor(320*Math.random()),Math.floor(240*Math.random()))}),66),s=-1,a=-1;i=()=>{clearInterval(s),clearInterval(o),clearTimeout(a),l.close(),d.close(),c.getTracks().forEach((e=>e.stop()))},a=setTimeout((()=>{i(),e(t)}),2e3);let c=r.captureStream(),l=new RTCPeerConnection({}),d=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",(e=>d.addIceCandidate(e.candidate))),d.addEventListener("icecandidate",(e=>l.addIceCandidate(e.candidate))),l.addTrack(c.getVideoTracks()[0],c);let u=yield l.createOffer();yield l.setLocalDescription(u),yield d.setRemoteDescription(u);let h=yield d.createAnswer(),p=DP.default.parse(h.sdp),m=p.media[0].rtp.findIndex((e=>"H264"===e.codec));p.media[0].rtp=[p.media[0].rtp[m]],p.media[0].fmtp=p.media[0].fmtp.filter((e=>e.payload===p.media[0].rtp[0].payload)),p.media[0].rtcpFb&&(p.media[0].rtcpFb=p.media[0].rtcpFb.filter((e=>e.payload===p.media[0].rtp[0].payload))),h.sdp=DP.default.write(p),yield d.setLocalDescription(h),yield l.setRemoteDescription(h),s=setInterval((()=>Rb(this,null,(function*(){t.encode&&t.decode&&(i(),e(t));let[r,n]=yield Promise.all([l.getSenders()[0].getStats(),d.getReceivers()[0].getStats()]);t.encode||r.forEach((e=>{"outbound-rtp"===e.type&&e.mediaType===Ik.VIDEO&&e.bytesSent>0&&(t.encode=!0)})),t.decode||n.forEach((e=>{"inbound-rtp"===e.type&&e.mediaType===Ik.VIDEO&&e.bytesReceived>0&&(t.decode=!0)}))}))),100)}catch(r){i(),_M.warn("detectH264Supported failed",r),e({encode:!0,decode:!0})}})))).then((e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&_M.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(ZO)),e))),eL)}))}();c=e,d=t}return FP.result=o&&i&&r&&(c||l)&&(d||h),FP.detail.isBrowserSupported=o,FP.detail.isWebRTCSupported=i,FP.detail.isH264EncodeSupported=c,FP.detail.isVp8EncodeSupported=l,FP.detail.isH265EncodeSupported=u,FP.detail.isH264DecodeSupported=d,FP.detail.isVp8DecodeSupported=h,FP.detail.isH265DecodeSupported=p,FP.result||_M.error("".concat(navigator.userAgent," ").concat(Uw(FP.detail,!1))),PL(),UP.addNumber({key:523800,value:Date.now()-t}),FP})))),QP=function(){return FP.result},ZP=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},$P="undefined"!=typeof HTMLMediaElement&&"setSinkId"in HTMLMediaElement.prototype,eL=null;var tL=null;var iL=(e,t,i)=>{"http:"===location.protocol&&!KO&&(e[t]=()=>{throw new Fb({code:Vb.INVALID_OPERATION,message:IP.NOT_SUPPORTED_HTTP})})},rL=function(e){return!("candidate-pair"!==e.type||!e.nominated||"in-progress"!==e.state&&"succeeded"!==e.state)&&!(mw(e.selected)&&!e.selected)};function nL(){let e="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",i=screen.height?screen.height*window.devicePixelRatio:"";e+="".concat(t," * ").concat(i)}return e}function oL(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function sL(){let e={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let i=0;i<t.length;i++)if(t[i]in window){e.isSupported=!0;break}return e.isSupported}function aL(){return"captureStream"in HTMLCanvasElement.prototype}function cL(){return!(YN||RN||NO&&NO<63)&&!(!WP()||!aL())}function lL(){return!(NO<74||MN||BO<11||ON<46)}function dL(){return cL()||lL()}var uL=function(){if(uw(window.RTCRtpTransceiver)||!_L()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let e=null,t=!1;try{e=new RTCPeerConnection({sdpSemantics:rD}),e.addTransceiver(Ik.AUDIO),t=!0}catch(Yb){}return null==e||e.close(),t};function hL(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function pL(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function mL(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function _L(){return!(11===BO&&!JO)&&("RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype)}var fL=!(!_L()||kO&&NO<86);function gL(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var EL="RTCRtpSender"in window;function TL(){return EL&&"replaceTrack"in window.RTCRtpSender.prototype}function vL(){return EL&&"setParameters"in window.RTCRtpSender.prototype&&pL()}var yL="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,SL=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,IL=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,AL=EL&&"createEncodedStreams"in window.RTCRtpSender.prototype&&bO()>=86,RL="RTCRtpScriptTransform"in window,CL=EL&&(AL||RL),bL=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter((e=>e in window)).length>0};function kL(){let e={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return uw(window.AudioDecoder)||(e.AudioDecoder=!0),uw(window.AudioEncoder)||(e.AudioEncoder=!0),uw(window.VideoDecoder)||(e.VideoDecoder=!0),uw(window.VideoEncoder)||(e.VideoEncoder=!0),uw(window.ImageDecoder)||(e.ImageDecoder=!0),e}function DL(){return"mediaSession"in navigator&&!uw(navigator.mediaSession.setActionHandler)}function wL(){return!uw(window.WebTransport)}function NL(){return"undefined"!=typeof WebAssembly&&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 OL(){let e={browser:"".concat(zO.name,"/").concat(zO.version),os:rM(),displayResolution:nL(),isScreenShareSupported:ZP(),isWebRTCSupported:bL(),isGetUserMediaSupported:oL(),isWebAudioSupported:sL(),isWebSocketsSupported:"WebSocket"in window&&2===window.WebSocket.CLOSING,isWebCodecSupported:kL(),isMediaSessionSupported:DL(),isWebTransportSupported:wL()};return navigator.userAgent.includes("miniProgram")&&(e.browser="mini/".concat(e.browser)),e}var ML="checkResult";function PL(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30;gM.setItem(ML+e,{ua:navigator.userAgent,checkResult:FP})}function LL(e){KP();let t=gM.getItem(ML+e);t&&t.ua===navigator.userAgent&&t.checkResult&&function(e,t){return!!_w(e)&&Object.keys(t).every((t=>t in e))}(t.checkResult.detail,FP.detail)&&(FP=t.checkResult),XP(e)}function xL(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var VL="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function UL(e){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[e]}var FL=!1;function BL(){return Rb(this,null,(function*(){var e;try{if(FL||null==(e=null==navigator?void 0:navigator.mediaCapabilities)||!e.encodingInfo)return;let t=nM(),i=oM();if(0===t||0===i)return;FL=!0;let r=["H264","VP8","VP9","AV1","H265"],[n,o]=yield Promise.all([HL(r),WL(r)]);n&&Object.keys(n).forEach((e=>{let r=UL(e.toLowerCase());UP.addEnum({key:513707,value:+"".concat(r).concat(+n[e].supported).concat(+n[e].powerEfficient).concat(t).concat(i),useUV:!1})})),o&&Object.keys(o).forEach((e=>{let r=UL(e.toLowerCase());UP.addEnum({key:514713,value:+"".concat(r).concat(+o[e].supported).concat(+o[e].powerEfficient).concat(t).concat(i),useUV:!1})}))}catch(IM){_M.info("detectVideoCodecCapabilities failed",IM)}}))}function HL(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1920,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1080,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:30,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:3e3;return Rb(this,null,(function*(){let o={};try{for(let s of e){let e=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:"video/".concat(s),width:t,height:i,bitrate:n,framerate:r}});o[s]=e}}catch(Xb){}return o}))}function WL(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1920,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1080,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:30,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:3e3;return Rb(this,null,(function*(){let o={};try{for(let s of e){let e=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:"video/".concat(s),width:t,height:i,bitrate:n,framerate:r}});o[s]=e}}catch(Xb){}return o}))}var GL=yb(Cb(),1),jL=Symbol("instance"),JL=Symbol("cacheResult"),KL=class{constructor(e,t,i){this.oldState=e,this.newState=t,this.action=i,this.aborted=!1}abort(e){this.aborted=!0,QL.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},qL=class extends Error{constructor(e,t,i){super(t),this.state=e,this.message=t,this.cause=i}};var zL=new Map;function YL(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(r,n,o)=>{let s=i.action||n;if(!i.context){let i=zL.get(r)||[];zL.has(r)||zL.set(r,i),i.push({from:e,to:t,action:s})}let a=o.value;o.value=function(){let r=this;for(var n=arguments.length,o=new Array(n),c=0;c<n;c++)o[c]=arguments[c];if(i.context&&(r=ZL.get("function"==typeof i.context?i.context.call(this,...o):i.context)),r.state===t)return i.sync?r[JL]:Promise.resolve(r[JL]);r.state instanceof KL&&r.state.action==i.abortAction&&r.state.abort(r);let l=null;Array.isArray(e)?0==e.length?r.state instanceof KL&&r.state.abort(r):("string"!=typeof r.state||!e.includes(r.state))&&(l=new qL(r._state,"".concat(r.name," ").concat(s," to ").concat(t," failed: current state ").concat(r._state," not from ").concat(e.join("|")))):e!==r.state&&(l=new qL(r._state,"".concat(r.name," ").concat(s," to ").concat(t," failed: current state ").concat(r._state," not from ").concat(e)));let d=e=>{if(i.fail&&i.fail.call(this,e),i.sync){if(i.ignoreError)return e;throw e}return i.ignoreError?Promise.resolve(e):Promise.reject(e)};if(l)return d(l);let u=r.state,h=new KL(u,t,s);QL.call(r,h);let p=e=>{var n;return r[JL]=e,h.aborted||(QL.call(r,t),null===(n=i.success)||void 0===n||n.call(this,r[JL])),e},m=e=>(QL.call(r,u,e),d(e));try{let e=a.apply(this,o);return function(e){return"object"==typeof e&&e&&"then"in e}(e)?e.then(p).catch(m):i.sync?p(e):Promise.resolve(p(e))}catch(kM){return m(new qL(r._state,"".concat(r.name," ").concat(s," from ").concat(e," to ").concat(t," failed: ").concat(kM),kM instanceof Error?kM:new Error(String(kM))))}}}}var XL="undefined"!=typeof window&&window.__AFSM__?(e,t)=>{window.dispatchEvent(new CustomEvent(e,{detail:t}))}:"undefined"!=typeof importScripts?(e,t)=>{postMessage({type:e,payload:t})}:()=>{};function QL(e,t){let i=this._state;this._state=e;let r=e.toString();e&&this.emit(r,i),this.emit(ZL.STATECHANGED,e,i,t),this.updateDevTools({value:e,old:i,err:t instanceof Error?t.message:String(t)})}var ZL=class e extends GL.default{constructor(t,i,r){super(),this.name=t,this.groupName=i,this._state=e.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),i||(this.groupName=this.constructor.name);let n=r[jL];n?this.name=n.name+"-"+n.count++:r[jL]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=zL.get(e)||[],i=new Set,r=[],n=[],o=new Set,s=Object.getPrototypeOf(e);zL.has(s)&&(s.stateDiagram.forEach((e=>i.add(e))),s.allStates.forEach((e=>o.add(e)))),t.forEach((e=>{let{from:t,to:i,action:o}=e;"string"==typeof t?r.push({from:t,to:i,action:o}):t.length?t.forEach((e=>{r.push({from:e,to:i,action:o})})):n.push({to:i,action:o})})),r.forEach((e=>{let{from:t,to:r,action:n}=e;o.add(t),o.add(r),o.add(n+"ing"),i.add("".concat(t," --\x3e ").concat(n,"ing : ").concat(n)),i.add("".concat(n,"ing --\x3e ").concat(r," : ").concat(n," 🟢")),i.add("".concat(n,"ing --\x3e ").concat(t," : ").concat(n," 🔴"))})),n.forEach((e=>{let{to:t,action:r}=e;i.add("".concat(r,"ing --\x3e ").concat(t," : ").concat(r," 🟢")),o.forEach((e=>{e!==t&&i.add("".concat(e," --\x3e ").concat(r,"ing : ").concat(r))}))}));let a=[...i];return Object.defineProperties(e,{stateDiagram:{value:a},allStates:{value:o}}),a}static get(t){let i;return"string"==typeof t?(i=e.instances.get(t),i||e.instances.set(t,i=new e(t,void 0,Object.create(e.prototype)))):(i=e.instances2.get(t),i||e.instances2.set(t,i=new e(t.constructor.name,void 0,Object.create(e.prototype)))),i}static getState(t){var i;return null===(i=e.get(t))||void 0===i?void 0:i.state}updateDevTools(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};XL(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){QL.call(this,e)}};ZL.STATECHANGED="stateChanged",ZL.UPDATEAFSM="updateAFSM",ZL.INIT="[*]",ZL.ON="on",ZL.OFF="off",ZL.instances=new Map,ZL.instances2=new WeakMap;var $L="undefined"!=typeof window,ex=$L&&window.requestIdleCallback||function(e){let t=Date.now();return setTimeout((()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})}),1e3)},tx=$L&&window.cancelIdleCallback||function(e){clearTimeout(e)},ix=$L&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),rx=class e{static generateTaskID(){return this.currentTaskID++}static run(e,t,i){null!=i&&i.fps&&(i.delay=i.delay||Number((1e3/i.fps).toFixed(2))),i=gb("interval"===e?{delay:2e3,count:0,backgroundTask:!0}:"ric"===e?{delay:1e4,count:0}:"raf"===e?{fps:60,delay:16.6,count:0,backgroundTask:!0}:{delay:2e3,count:0,backgroundTask:!0},i);let r=Eb(gb({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:t},i),{delay:i.delay});return this.taskMap.set(r.taskID,r),this[e](r),r.taskID}static interval(t){return t.intervalID=setInterval((()=>{t.callback(),t.loopCount+=1,e.isBreakLoop(t)}),t.delay)}static intervalInWorker(t){e.sharedWorker||(e.sharedWorker=new Worker(URL.createObjectURL(new Blob(["\n const timers = new Map();\n self.onmessage = function(e) {\n const { taskId, delay, type } = e.data;\n if (type === 'start') {\n timers.set(taskId, setInterval(() => {\n self.postMessage({ type: 'tick', taskId });\n }, delay));\n } else if (type === 'stop') {\n clearInterval(timers.get(taskId));\n timers.delete(taskId);\n }\n };\n "],{type:"application/javascript"}))),e.sharedWorker.onmessage=t=>{var i;if("tick"===t.data.type){let r=e.workerTasks.get(t.data.taskId);r&&(e.isBreakLoop(r)?(null==(i=e.sharedWorker)||i.postMessage({type:"stop",taskId:r.taskID}),e.workerTasks.delete(r.taskID)):(r.callback(),r.loopCount+=1))}}),e.workerTasks.set(t.taskID,t),e.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let i=()=>{if(t.callback(),t.loopCount+=1,!e.isBreakLoop(t))return t.timeoutID=setTimeout(i,t.delay)};return t.timeoutID=setTimeout(i,t.delay)}static ric(t){let i,r=Aw(),n=()=>{if(i=Aw()-r,i>=t.delay&&(r=Aw()-Math.floor(i%t.delay),t.callback(),t.loopCount+=1),!e.isBreakLoop(t))return t.ricID=ex(n,{timeout:t.delay})};return t.ricID=ex(n,{timeout:t.delay})}static raf(t){let i,r=Aw(),n=()=>document.hidden&&t.backgroundTask?(i=Aw()-r,r=Aw(),t.callback(),t.loopCount+=1,e.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(n,t.delay-Math.floor(i%t.delay))):(i=Aw()-r,i>=t.delay&&(r=Aw()-Math.floor(i%t.delay),t.callback(),t.loopCount+=1),e.isBreakLoop(t)?void 0:t.rafID=requestAnimationFrame(n));if(t.rafID=requestAnimationFrame(n),t.backgroundTask){let e=()=>{if(document.hidden){let e=Aw()-r;e>=t.delay?n():t.timeoutID=setTimeout(n,t.delay-e)}};document.addEventListener("visibilitychange",e),t.onVisibilitychange=e,document.hidden&&e()}return t.taskID}static hasTask(e){return this.taskMap.has(e)}static clearTask(e){if(!this.taskMap.has(e))return!0;let{intervalID:t,timeoutID:i,rafID:r,ricID:n,onVisibilitychange:o}=this.taskMap.get(e);return t&&clearInterval(t),i&&clearTimeout(i),r&&ix&&ix(r),n&&tx(n),o&&document.removeEventListener("visibilitychange",o),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.hasTask(e.taskID)||0!==e.count&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};Ib(rx,"taskMap",new Map),Ib(rx,"currentTaskID",1),Ib(rx,"sharedWorker",null),Ib(rx,"workerTasks",new Map);var nx=rx;Ik.SEI_MESSAGE;var ox={LOADED_DATA:Ik.LOADEDDATA,LOADED_META_DATA:Ik.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"},sx={};vb(sx,{create:()=>cx,remove:()=>lx});var ax=new WeakMap;function cx(e,t){ax.has(e)||ax.set(e,[]);let i=ax.get(e),r={add:(e,n)=>("addEventListener"in t?(i.push(t.removeEventListener.bind(t,e,n)),t.addEventListener(e,n)):(i.push(t.off.bind(t,e,n)),t.on(e,n)),r)};return r}function lx(e){let t=ax.get(e);t&&(t.forEach((e=>e())),ax.delete(e))}var dx=new class{constructor(){Ib(this,"_roomIdMap",new Map),Ib(this,"_configs"),"undefined"==typeof registerProcessor&&(this._configs={sdkAppId:"",userId:"",version:qb,env:hk.QCLOUD,browserVersion:zO.name+zO.version,ua:navigator.userAgent})}setConfig(e){let{sdkAppId:t,env:i,userId:r,roomId:n}=e;t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=i,this._configs.userId=r,this._roomIdMap.set(r,String(n))}logSuccessEvent(e){KO||!_M.isAbleToUpload||this._configs.env===hk.QCLOUD&&this.uploadEventToKibana(Eb(gb({},e),{result:"success"}))}logFailedEvent(e){if(KO||!_M.isAbleToUpload)return;let{eventType:t,code:i,error:r,userId:n}=e,o={roomId:this._roomIdMap.get(n||this._configs.userId),userId:n,eventType:t,result:"failed",code:i||(null==r?void 0:r.extraCode)||(null==r?void 0:r.code)||Vb.UNKNOWN};this._configs.env===hk.QCLOUD&&this.uploadEventToKibana(Eb(gb({},o),{error:r}))}uploadEventToKibana(e){let t="stat-".concat(e.eventType,"-").concat(e.result);("delta-join"===e.eventType||"delta-leave"===e.eventType||"delta-publish"===e.eventType)&&(t="".concat(e.eventType,":").concat(e.delta)),this.uploadEvent({log:t,userId:e.userId}),"failed"===e.result&&(t="stat-".concat(e.eventType,"-").concat(e.result,"-").concat(e.code),this.uploadEvent({log:t,userId:e.userId,error:e.error}))}uploadEvent(e){let{log:t,userId:i,error:r}=e,n={timestamp:Wb(),sdkAppId:this._configs.sdkAppId,userId:i||this._configs.userId,version:qb,log:t};r&&(n.errorInfo=r.message,r.stack&&(n.errorInfo+="\n".concat(r.stack)));let o=pM.enable?$w(n,2002,Number(this._configs.sdkAppId)):JSON.stringify(n);this.sendRequest(qD(this._configs.sdkAppId,uk.LOG),o)}sendRequest(e,t){setTimeout((()=>nN({url:e,body:t,priority:"low"}).catch((()=>{}))),2e3)}},ux=new WeakMap;function hx(e){let{settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:n}=e;return function(e,o,s){let a=hN({retryFunction:s.value,settings:t,onError(t){let{error:r,retry:n,reject:s,retryFuncArgs:a}=t;var c;i?i.call(this,r,(()=>{var t;null!=(t=ux.get(e))&&t.has(o)?n():s(r)}),s,a):null!=(c=ux.get(e))&&c.has(o)?n():s(r)},onRetrying(t,i){var n;aN(r)&&r.call(this,t,i),null!=(n=ux.get(e))&&n.has(o)&&(ux.get(e).get(o).stopRetry=i)},onRetryFailed:n});return s.value=function(){let t=ux.get(e);for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return t?t.set(o,{args:r}):ux.set(e,new Map([[o,{args:r}]])),a.apply(this,r).finally((()=>{var t;return null==(t=ux.get(e))?void 0:t.delete(o)}))},s}}function px(e){let{fnName:t,callback:i,validateArgs:r=!0}=e;return function(e,n,o){let s=o.value;return o.value=function(){for(var n,o,a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(null!=(n=ux.get(e))&&n.has(t)){let{stopRetry:n,args:s}=ux.get(e).get(t),a=!0;if(r)for(let e of s)if(!c.find((t=>t===e))){a=!1;break}a&&(i&&i.apply(this,c),n&&n(),null==(o=ux.get(e))||o.delete(t))}return s.apply(this,c)},o}}var mx=class extends ZL{constructor(e,t){super(e.id,"".concat(t,"-player")),this.kind=t,Ib(this,"id"),Ib(this,"element",null),Ib(this,"track"),Ib(this,"url"),Ib(this,"attr"),Ib(this,"mode"),Ib(this,"muted"),Ib(this,"_log"),Ib(this,"_pausedRetryCount"),Ib(this,"_isElementPlayingFired",!1),Ib(this,"_interval"),Ib(this,"_delayDestroyTimeoutId",0),Ib(this,"_playSuccessResolve"),Ib(this,"_isReplayByRecreateMediaStreamCalled",!1),Ib(this,"isInAutoPlayFailedState",!1),this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=_D,this._state="STOPPED",this.bindTrackEvents(),this._log.info("create ".concat(t,"-player ").concat(this.id))}get isPlaying(){var e;return"PLAYING"===this._state&&!1===(null==(e=this.element)?void 0:e.paused)}get isPaused(){var e;return"PAUSED"===this._state||!0===(null==(e=this.element)?void 0:e.paused)}get isStopped(){return"STOPPED"===this._state}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,null!==e&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return Rb(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,t)=>{this._playSuccessResolve=e,this.element.play().then(e,t)}))}catch(Yb){let t=CP({key:SP.PLAY_FAILED,data:{media:this.kind,error:Yb}});if(this._log.warn(Yb),t.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Fb({code:Vb.PLAY_NOT_ALLOWED,message:t})}}))}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!PO?this._delayDestroyTimeoutId||(this._log.info("destroy element after 3 * ".concat(e)),this._delayDestroyTimeoutId=setTimeout((()=>this.destroyElement()),3*e)):this.destroyElement(),this.handleStopped(Ik.ENDED),this._interval>0&&nx.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&(null==(e=this.element)||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():WO?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 cx(this.element,this.element).add(Ik.PLAYING,e).add(Ik.ENDED,e).add(Ik.PAUSE,e).add(Ik.ERROR,e).add(Ik.LOADEDDATA,e).add(Ik.LOADEDMETADATA,e)}}bindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;if(e){let t=this.handleTrackEvent.bind(this);null==sx||sx.create(e,e).add(Ik.ENDED,t).add(Ik.MUTE,t).add(Ik.UNMUTE,t),e.readyState===Ik.ENDED&&this.handleTrackEvent({type:Ik.ENDED}),e.muted&&this.handleTrackEvent({type:Ik.MUTE})}}bindAutoPlayEvent(){dM.on(hM.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;e&&lx(e)}unbindEvents(){this.element&&lx(this.element),this.unbindTrackEvents(),dM.off(hM.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case Ik.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(Ik.PLAYING),this._interval&&(nx.clearTask(this._interval),this._interval=-1);break;case Ik.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(Ik.ENDED);break;case Ik.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(Ik.PAUSE),RN&&(this._interval=nx.run("timeout",(()=>{this.element&&"PAUSED"===this._state&&this.resume()}),{delay:3e3}));break;case Ik.ERROR:if(this.element&&this.element.error){this.handlePaused(Ik.ERROR);let{code:e,message:t}=this.element.error;this._log.error("".concat(this.kind," ").concat(this._log.isLocal?"local":"remote"," MediaError code: ").concat(e," message: ").concat(t," userAgent: ").concat(navigator.userAgent)),dx.uploadEvent({log:"stat-".concat(this.kind,"-").concat($k.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),gO||fO?this.emit(ox.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case Ik.LOADEDDATA:this.kind===Ik.VIDEO&&this.emit(ox.LOADED_DATA);break;case Ik.LOADEDMETADATA:this.kind===Ik.VIDEO&&this.emit(ox.LOADED_META_DATA)}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then((()=>{this._log.warn("replayByRecreateMediaStream success"),dx.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),UP.addSuccessEvent({key:this.kind===Ik.AUDIO?506700:516700})})).catch((()=>{var t;this._log.error("replayByRecreateMediaStream failed"),dx.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),UP.addFailedEvent({key:this.kind===Ik.AUDIO?506700:516700,error:null==(t=this.element)?void 0:t.error}),this.emit(ox.ERROR,e)}))}doReplayByRecreateMediaStream(e){return this._log.warn("delay ".concat(e,"ms to recreate mediaStream")),new Promise(((t,i)=>{jw(e).then((()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var e,t,r;this._log.warn("element onerror ".concat(null==(t=null==(e=this.element)?void 0:e.error)?void 0:t.code," fired after recreated mediaStream")),i(null==(r=this.element)?void 0:r.error)}),jw(5e3).then((()=>{var e,r;(!this.isPlaying||null!=(e=this.element)&&e.error)&&i(null==(r=this.element)?void 0:r.error),t()}))}))})).finally((()=>{this.element&&(this.element.onerror=null)}))}handleTrackEvent(e){return Rb(this,null,(function*(){switch(e.type){case Ik.ENDED:this.handleStopped(Ik.ENDED);break;case Ik.MUTE:this.handlePaused(Ik.MUTE);break;case Ik.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(Ik.UNMUTE))}}))}handlePlaying(e){var t;this._log.debug("handlePlaying",e),null==(t=this._playSuccessResolve)||t.call(this,e),this.emit(ox.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this._log.debug("handlePaused",e),this.emit(ox.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this._log.debug("handleStopped",e),this.emit(ox.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};Sb([hx({settings:{retries:2,timeout:0},onError(e,t,i,r){r[0]=(r[0]||1e3)+1e3,t()}})],mx.prototype,"doReplayByRecreateMediaStream",1),Sb([YL([],"PLAYING",{sync:!0})],mx.prototype,"handlePlaying",1),Sb([YL("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],mx.prototype,"handlePaused",1),Sb([YL([],"STOPPED",{sync:!0})],mx.prototype,"handleStopped",1);var _x,fx="trtc_autoplay",gx="".concat(fx,"_mask"),Ex="".concat(fx,"_wrapper"),Tx="".concat(fx,"_header"),vx="".concat(fx,"_content"),yx="".concat(fx,"_action_wrapper"),Sx="".concat(fx,"_question"),Ix="".concat(fx,"_collapse"),Ax="".concat(fx,"_action_confirm"),Rx="".concat(fx,"_detail"),Cx="#2473E8",bx="dialog",kx="".concat(bx,"-show"),Dx="".concat(bx,"-1"),wx="".concat(bx,"-2"),Nx=!1,Ox=()=>!!document.querySelector(".".concat(Ex)),Mx="".concat(sk,"/").concat(ow()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),Px="<br><a href='".concat(Mx,"' target='_blank'>").concat(ow()?"其他方案?":"Any other solution?","</a>"),Lx="".concat(ow()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(Px):"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. ".concat(Px)),xx=class{constructor(){if(Ib(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),Ib(this,"_dialogNode",null),Ib(this,"_bodyPosition",""),Ib(this,"_showDetail",!1),Ib(this,"_isCollapseClicked",!1),Ib(this,"_isQuestionClicked",!1),ow()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Nx){let e=document.createElement("style");e.innerHTML=".".concat(gx,"{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;}.").concat(gx," div:not(.").concat(yx,"){display:block !important;}.").concat(Ex,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(Ex," a{color:").concat(Cx,";}.").concat(Tx,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(vx,"{margin:8px 0;}.").concat(yx,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(Ix,"{margin-right:auto;cursor:pointer}.").concat(Sx,"{height:100%;line-height:16px;cursor:pointer;}.").concat(Ax,"{margin-left:8px;color:#fff;background:").concat(Cx,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(Ax,":hover{opacity:0.9;}.").concat(Ix,",.").concat(Ax,",.").concat(vx,",.").concat(Sx,"{font-size:14px;}@media screen and (max-width:750px){.").concat(Ex,"{width:80vw;}}"),document.head.appendChild(e),Nx=!0}this.addDiaLog()}createDiaLog(){let e=document.createElement("template");e.innerHTML='<div class="'.concat(gx,"\"><div class='").concat(Ex,"'><div class='").concat(Tx,"'>").concat(location.host,"</div><div class='").concat(vx,"'>").concat(this.content,"</div><div class='").concat(Rx,'\' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">').concat(Lx,"</div><div class='").concat(yx,"'></div></div></div>").trim();let t=document.createElement("button");t.className=Ax,t.innerText=ow()?"恢复播放":"Resume",t.onclick=this.onConfirm.bind(this);let i=document.createElement("div");i.className=Sx,i.innerHTML='<?xml version="1.0" encoding="UTF-8"?>\n <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">\n <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"/>\n <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"/>\n <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"/>\n </svg>\n ',i.onclick=this.onQuestionClick.bind(this);let r=document.createElement("div");r.className=Ix,r.innerText="".concat(ow()?"详情 >":"Detail >"),r.onclick=this.onCollapseClick.bind(this);let n=e.content.firstChild,o=n.querySelector(".".concat(yx));return o.appendChild(r),o.appendChild(i),o.appendChild(t),n}addDiaLog(){Ox()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(Ex)).onclick=e=>e.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",_M.info("show autoplay dialog"),dx.uploadEvent({log:kx}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){_M.warn("confirm clicked, try resume stream"),dM.emit(hM.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let e=this._dialogNode.querySelector(".".concat(Rx));e.style.visibility="".concat(this._showDetail?"hidden":"visible"),e.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||dx.uploadEvent({log:Dx}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Mx,"_blank"),this._isQuestionClicked||dx.uploadEvent({log:wx}),this._isQuestionClicked=!0}},Vx=class extends mx{constructor(e){super(e,Ik.VIDEO),Ib(this,"stat",{}),Ib(this,"_calculateTimeout",-1),Ib(this,"viewMirror",!1),Ib(this,"objectFit"),Ib(this,"container"),Ib(this,"canvas"),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,uw(e.viewMirror)||(this.viewMirror=e.viewMirror),uw(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return!("PLAYING"!==this._state||this.element&&this.element.paused)&&("live"===(null==(e=this.track)?void 0:e.readyState)&&!this.track.muted)}initializeElement(){var e;let t=document.createElement(Ik.VIDEO);this.track&&2!==this.mode&&(t.srcObject=new MediaStream([this.track])),t.muted=!0,t.setAttribute("id","video_".concat(this.id)),t.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),t.setAttribute("autoplay","autoplay"),t.setAttribute("playsinline","playsinline"),this.element=t,null==(e=this.container)||e.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e="width: 100%; height: 100%; object-fit: ".concat(this.objectFit,";background-color: black;");return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var t;this.container=e,this.track&&this.elementToRender&&(null==(t=this.container)||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(Ik.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(Ik.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var t;return e.type===Ik.MUTE&&null!=(t=this.stat)&&t.fps&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var t,i;if(2===this.mode)return;super.handleElementEvent(e);let r=e.type;if(r===Ik.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn("".concat(this.kind," player has been remove, element ID: ").concat(null==(t=this.container)?void 0:t.id)),this.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=_D,this._log.info("view container ".concat(null==(i=this.container)?void 0:i.id," is recreated"))),this._pausedRetryCount>0&&!Ox()&&(this._log.info("[".concat(_D-this._pausedRetryCount+1,"/").concat(_D,"] ").concat(this.kind," player auto resume when paused")),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let e=this.element.style.transform;r===Ik.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=e.replace("scaleX(-1)",""):r===Ik.LEAVE_PICTURE_IN_PICTURE&&!e.includes("scaleX")&&(this.element.style.transform="".concat(e," scaleX(-1)"))}}setCanvas(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;var i,r,n,o;this.canvas!==e&&(null==(i=this.canvas)||i.remove(),null==e||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?t:0,2===this.mode&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?(null==(r=this.element)||r.remove(),null==(n=this.container)||n.appendChild(e)):this.element&&(null==(o=this.container)||o.appendChild(this.element)))}setAttr(e){let t=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);t.style=Object.assign({width:"100%",height:"100%"},t.style),super.setAttr(t)}get mirror(){return this.viewMirror}setRect(e,t){this.elementToRender&&(this.elementToRender.style.width="".concat(e,"px"),this.elementToRender.style.height="".concat(t,"px"))}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit="".concat(e)),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;var t;super.stop(e),null==(t=this.canvas)||t.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),2===this.mode?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(ox.MEDIA_TRACK_CHANGED,e),null!==e&&(this.bindTrackEvents(),this.element&&2!==this.mode&&(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(xL()&&this.element&&this._calculateTimeout<0){let e=0,t=null,i=(r,n)=>{this.stat.width=n.width,this.stat.height=n.height,t&&(this.stat.fps=Math.round((n.presentedFrames-t.presentedFrames)/(r-e)*1e3)),e=r,t=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout((()=>{var e;return null==(e=this.element)?void 0:e.requestVideoFrameCallback(i)}),2e3))};this.element.requestVideoFrameCallback(i)}}catch(Yb){this._log.warn("init stat failed",Yb)}}};function Ux(e,t){return Rb(this,null,(function*(){if(!e.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield e.audioWorklet.addModule(t),_M.info("worklet addModule success")}catch(Yb){throw _M.info("worklet addModule catch error. ".concat(Yb.message)),Yb}}))}"undefined"!=typeof AudioContext?_x=AudioContext:"undefined"!=typeof webkitAudioContext?_x=webkitAudioContext:"undefined"!=typeof mozAudioContext&&(_x=mozAudioContext);var Fx,Bx=1500,Hx=-1,Wx=0,Gx=-1,jx=!1;!function e(){try{if(Fx)return;(Fx=new _x({sampleRate:48e3})).onstatechange=()=>{_M.info("context state: ".concat(Fx.state).concat("running"!==Fx.state?" visibilityState: ".concat(document.visibilityState):"")),Jx()},clearTimeout(Hx)}catch(uJ){_M.error("initAudioContext failed: ".concat(uJ," typeof AudioContextClass: ").concat(typeof _x)),Hx=setTimeout(e,1e3)}}();var Jx=()=>{"suspended"===Fx.state?(Wx=Aw(),-1===Gx&&(Gx=setTimeout((()=>{"suspended"===Fx.state&&(jx=!0,dM.emit("155",{isSuspended:!0}))}),Bx)),zx(),document.addEventListener("click",Jx)):"interrupted"===Fx.state?zx():(Wx&&(UP.addNumber({key:507800,value:Aw()-Wx,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Wx=0),-1!==Gx&&(clearTimeout(Gx),Gx=-1,jx&&(jx=!1,dM.emit("155",{isSuspended:!1}))),document.removeEventListener("visibilitychange",Jx),document.removeEventListener("click",Jx))},Kx=0,qx=-1;function zx(){return new Promise(((e,t)=>{if("running"===Fx.state)return e();Date.now()-Kx<1e3?(clearTimeout(qx),qx=setTimeout((()=>{Kx=Date.now(),Fx.resume().then(e,t)}),1e3)):(clearTimeout(qx),Kx=Date.now(),Fx.resume().then(e,t))})).catch((e=>{_M.warn("context resume failed: ".concat(e)),document.addEventListener("visibilitychange",Jx)}))}document.addEventListener("click",Jx);var Yx=e=>Fx,Xx=class{constructor(e){this.name=e,Ib(this,"node"),Ib(this,"node2"),Ib(this,"pre",new Set),Ib(this,"next",new Set),Ib(this,"context"),Ib(this,"connectedNodes",new Set),Ib(this,"nextInputChannelMap",new Map),Ib(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(e){this._channelCount=e,this.setChannelCount(this.node,e),this.setChannelCount(this.node2,e),this.next.forEach((t=>t.channelCount=e))}setChannelCount(e,t){!e||e instanceof ScriptProcessorNode||(e.channelCountMode="explicit",e.channelCount=t||this.channelCount||1)}setContext(e){this.context=e,this.node&&e.addMixWeight()}removeContext(){var e;this.node&&(null==(e=this.context)||e.reduceMixWeight()),delete this.context}replaceNode(e){var t;if(e!==this.node)try{this.node?this._disconnect():null==(t=this.context)||t.addMixWeight(),this.node=e,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(Qk){_M.error(Qk)}}setNode(e,t){var i;if(!this.node)try{null==(i=this.context)||i.addMixWeight(),this.node=e,this.setChannelCount(this.node),t&&(this.node2=t,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),UP.addSuccessEvent({key:502701})}catch(AM){_M.error(AM),UP.addFailedEvent({key:502701,error:AM})}}deleteNode(){var e;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,null==(e=this.context)||e.reduceMixWeight(),this.preNodeReconnect(),UP.addSuccessEvent({key:502702})}catch(Yb){_M.error(Yb),UP.addFailedEvent({key:502702,error:Yb})}}preNodeReconnect(){this.pre.forEach((e=>{e.node?e.reconnect():e.preNodeReconnect()}))}connectNext(e){this.next.forEach((t=>{let i=this.nextInputChannelMap.get(t);e._connect(t.node,i)||t.connectNext(e)}))}_connect(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return!(!this.node||!e)&&((this.node2||this.node).connect(e,0,t),this.connectedNodes.add(e),!0)}_disconnect(){this.connectedNodes.forEach((e=>{var t;return null==(t=this.node2||this.node)?void 0:t.disconnect(e)})),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.next.add(e),e.pre.add(this),this.nextInputChannelMap.set(e,t),e}},Qx=class extends Xx{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:256;super(),this.fftSize=e,Ib(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return null==(e=this.node)||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return null==(e=this.node)||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),t=0,i=0,r="M".concat(t,",").concat(i);for(let n=0;n<e.length;n++)i=e[n]/128*100/2,r+="L".concat(t,",").concat(i),t+=1;return r}},Zx=class{constructor(){Ib(this,"source",new Xx),Ib(this,"gain",new Xx),Ib(this,"destination",new Xx)}get volume(){var e;return(null==(e=this.gain.node)?void 0:e.gain.value)||1}setVolume(e){1!==e?(this.gain.node||this.gain.setNode(Yx().createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}replaceSource(e){this.source.replaceNode(iV(e))}get track(){var e;return null==(e=this.stream)?void 0:e.getAudioTracks()[0]}get stream(){var e;return null==(e=this.destination.node)?void 0:e.stream}},$x=class extends Zx{constructor(e){super(),this.context=e,Ib(this,"aec",new Xx("aec")),Ib(this,"mixNode",new Xx("mixNode")),Ib(this,"silentNode",new Xx("silentNode")),Ib(this,"denoiser",new Xx("denoiser")),Ib(this,"voiceChanger",new Xx("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){1!==e?(this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}},eV=class{constructor(){Ib(this,"audioContext",Yx()),Ib(this,"destination",this.audioContext.createMediaStreamDestination()),Ib(this,"inputs",new Set),Ib(this,"mixWeight",0),this.destination.channelCount=1}addMixWeight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.mixWeight+=e,this.mixWeight-1==e+1>>1&&this.mixOnChange()}reduceMixWeight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.addMixWeight(-e)}close(){this.inputs.forEach((e=>e.remove()))}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},tV=new WeakMap;function iV(e){let t=tV.get(e);if(t)return t;let i=Yx();if(e instanceof HTMLAudioElement)t=i.createMediaElementSource(e);else{if(!(e instanceof MediaStreamTrack))return e;t=i.createMediaStreamSource(new MediaStream([e]))}return tV.set(e,t),t}var rV=class e{constructor(e){Ib(this,"_volume",0),Ib(this,"_volumeDb",0),Ib(this,"_log"),Ib(this,"_scriptProcessorNode",null),Ib(this,"_audioWorkletNode",null),Ib(this,"_interval",200),Ib(this,"ready",this.preload());let{log:t}=e;this._log=t,dM.on(hM.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-e.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!e.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);';e.workletReady=Ux(e.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return e.workletReady.then((()=>this.initAudioWorklet())).catch((e=>(this._log.error("volumeMeter preload error: ".concat(e)),this.initScriptProcessor())))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(e.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=i=>{e.lastMessageTime=Date.now(),this._volume=i.data.volume||0,this._volumeDb=i.data.volumeDb||0,!t&&i.data.cacheLen&&i.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(IM){this._log.error("volumeMeter init audio worklet error: ".concat(IM)),dx.logFailedEvent({userId:this._log.userId,eventType:$k.LOAD_WORKLET,error:IM}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=Yx().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{e.lastMessageTime=Date.now();let i=t.inputBuffer.getChannelData(0),r=0;for(let e=0;e<i.length;++e)r+=i[e]*i[e];this._volume=Math.sqrt(r/i.length)||0}}catch(IM){this._log.error("volumeMeter init script processor error: ".concat(IM))}}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,dM.off(hM.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(100*this._volumeDb)}handleAudioLevelInterval(e){var t;let{interval:i}=e;this._interval=i,null==(t=this._audioWorkletNode)||t.port.postMessage({name:"setIntervalTime",intervalTime:i})}};Ib(rV,"lastMessageTime",0),Ib(rV,"audioContext",Yx()),Ib(rV,"workletReady");var nV=rV,oV=class extends Xx{constructor(e){super(),Ib(this,"_volumeMeter"),this._volumeMeter=new nV(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return Rb(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 t=e.allocationSize({planeIndex:0}),i=new Float32Array(t>>2);e.copyTo(i,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:i},[i.buffer]),e.close()}}},sV=nV,aV=yb(Cb(),1),cV=e=>t=>t.deviceId===e,lV=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Input";Ib(this,"kind"),Ib(this,"type"),Ib(this,"devices",[]),this.kind=e,this.type=t}update(e,t){let i=e.filter((e=>e.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase())));1===this.devices.length&&hV(this.devices[0])||t&&(i.forEach((e=>{if(e.deviceId&&!this.devices.find(cV(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Added");_M.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}})),this.devices.forEach((e=>{if(e.deviceId&&!i.find(cV(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Removed");_M.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}}))),this.devices=i}hasDevice(e){return!!this.devices.find((t=>t.deviceId===e))}},dV=class extends aV.EventEmitter{constructor(){super(),Ib(this,"audioInputs",new lV(Ik.AUDIO)),Ib(this,"videoInputs",new lV(Ik.VIDEO)),Ib(this,"audioOutputs",new lV(Ik.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(()=>this.update())),"ondevicechange"in navigator.mediaDevices||nx.run("interval",(()=>{this.update()}),{delay:1e4}))}init(){pV().then((e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)}))}update(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){let i=yield pV(t);return e.audioInputs.update(i,e),e.videoInputs.update(i,e),e.audioOutputs.update(i,e),e}()}))}},uV=Zb||Qb?null:new dV;function hV(e){return e.deviceId===e.groupId&&""===e.groupId}function pV(){return Rb(this,arguments,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){if(KP()||!jP())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(0!==e){let i={audio:!1,video:!1};if(t.forEach((e=>{hV(e)&&(e.kind===Ik.AUDIO_INPUT?i.audio=!0:e.kind===Ik.VIDEO_INPUT&&(i.video=!0))})),2===e&&(i.audio=!1),1===e&&(i.video=!1),i.audio||i.video){let e;try{e=yield navigator.mediaDevices.getUserMedia(i),i.audio&&zx()}catch(AM){_M.debug("capture before getDevices failed: ",AM)}t=yield navigator.mediaDevices.enumerateDevices(),null==e||e.getTracks().forEach((e=>e.stop()))}}return t.map(((e,t)=>{let i={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||"".concat(e.kind,"_").concat(t)};return e.deviceId.length>0&&EV.add("".concat(e.deviceId,"_").concat(e.kind)),e.getCapabilities&&(i.getCapabilities=()=>e.getCapabilities()),i}))}()}))}function mV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return uV.update(e?1:0).then((e=>e.audioInputs.devices))}function _V(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return uV.update(e?2:0).then((e=>e.videoInputs.devices))}var fV=!1;function gV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Rb(this,null,(function*(){return(RN||MO)&&(e=!1),uV.update(e?1:0).then((e=>e.audioOutputs.devices))}))}var EV=new Set;function TV(e,t){return Rb(this,null,(function*(){let i=(yield mV()).find((e=>e.deviceId===fD));return!t&&(null==i?void 0:i.groupId)===e||(null==i?void 0:i.groupId)===e&&i.label===t}))}var vV,yV=class extends Zx{constructor(e){super(),this.log=e,Ib(this,"volumeMeter"),Ib(this,"volumeMeterAfter3A"),Ib(this,"volumeDestination"),Ib(this,"analyser",new Qx),this.volumeMeter=new oV({log:this.log}),this.volumeMeterAfter3A=new oV({log:this.log}),this.volumeDestination=new Xx,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},SV=class e extends mx{constructor(e){super(e,Ik.AUDIO),Ib(this,"_outputDeviceId"),Ib(this,"_volume",1),Ib(this,"_destination",Yx().createMediaStreamDestination()),Ib(this,"pipeline"),Ib(this,"volumeMeterMode","worklet"),this.mode=0,this.pipeline=new yV(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if(("15.2"===VO||"15.3"===VO||"15.4"===VO)&&this.muted)return void this._log.info("audioElement is muted.");let t=vV||new Audio;t.setAttribute("autoplay","autoplay"),t.srcObject=this.getMediaStream(),t.muted=this.muted,this.element=t,pw(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),t===vV&&(vV=void 0),this.bindElementEvents()}play(t){return Rb(this,null,(function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(null==t?void 0:t.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),"worklet"===this.volumeMeterMode?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):"analyser"===this.volumeMeterMode&&this.pipeline.analyser.setNode(Yx().createAnalyser()),function(){Rb(this,null,(function*(){try{fV||(fV=!0,_M.info("speakers:".concat((yield gV()).map((e=>" ".concat(e.deviceId.slice(0,8),": ").concat(e.label))))))}catch(e){}}))}(),Ab(e.prototype,this,"play").call(this)}))}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.pipeline.destroy(),super.stop(e)}setSinkId(e){return Rb(this,null,(function*(){var t,i;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield null==(i=(t=this.element).setSinkId)?void 0:i.call(t,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()}},IV=class extends SV{setTrack(e){this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(ox.MEDIA_TRACK_CHANGED,e),e&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([e]))))}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}},AV=class extends SV{constructor(e){super(e),Ib(this,"_sourceElement"),Ib(this,"_output",new Xx),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(Yx().destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var t,i,r;(null==(i=null==(t=this.element)?void 0:t.error)?void 0:i.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(ox.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=(null==(r=e.getSettings())?void 0:r.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: ".concat(e))):e<=1?this.element?(this._log.info("set element volume: ".concat(e)),this.element.volume=e):this._log.info("set element volume: no element"):RN||(this._log.info("start set pipeline volume: ".concat(e)),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),lx(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.pipeline.destroy();let t=this._sourceElement||this.element;t&&PO&&(vV=t),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}},RV=class extends ZL{constructor(e){let{userId:t,sdkAppId:i,mediaType:r,room:n,PlayerClass:o=(1===r?AV:Vx)}=e;var s;super(),Ib(this,"id",fM()),Ib(this,"userId",""),Ib(this,"isRemote"),Ib(this,"mediaType"),Ib(this,"room"),Ib(this,"user"),Ib(this,"_log"),Ib(this,"_inputTrack"),Ib(this,"_outputTrack"),Ib(this,"isPlayCalled"),Ib(this,"container",null),Ib(this,"player"),Ib(this,"subVideoPlayerMap"),Ib(this,"muted",!1),Ib(this,"abortCtrl"),Ib(this,"objectFit","cover"),Ib(this,"mirror"),Ib(this,"rotation"),Ib(this,"isScreen",!1),Ib(this,"manager"),Ib(this,"trackSettings"),Ib(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=r,this._log=_M.createLogger({id:"".concat(this.kind[0],"t"),userId:null==(s=n||this.room)?void 0:s.userId,remoteUserId:this instanceof zV?void 0:this.userId,sdkAppId:i,type:2===this.mediaType?"auxiliary":"main",isLocal:this instanceof zV}),this.player=new o({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(ox.PLAYER_STATE_CHANGED,(e=>{dM.emit(hM.PLAYER_STATE_CHANGED,gb({track:this},e)),this.emit("player-state-changed",e)})),this.kind===Ik.VIDEO&&(this.player.on(ox.LOADED_DATA,(()=>{this.emitFirstVideoFrameEvent(ox.LOADED_DATA),dM.emit(hM.VIDEO_LOADED_DATA,{track:this})})),this.player.on(ox.LOADED_META_DATA,(()=>{this.emitFirstVideoFrameEvent(ox.LOADED_META_DATA)})),this.player.on(ox.MEDIA_TRACK_CHANGED,(e=>{var t;null==(t=this.subVideoPlayerMap)||t.forEach((t=>t.setTrack(e)))}))),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(ox.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||_M}get kind(){return 1===this.mediaType?Ik.AUDIO:Ik.VIDEO}get strMediaType(){return 4===this.mediaType?Ik.VIDEO:2===this.mediaType?Ik.SCREEN:Ik.AUDIO}get streamType(){return 2&this.mediaType?"auxiliary":"main"}get isMediaTrackActive(){return!!this.mediaTrack&&(!this.mediaTrack.muted&&"live"===this.mediaTrack.readyState&&this.mediaTrack.enabled)}play(e,t){return Rb(this,null,(function*(){let i=fw(e)?e[0]:e;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(t))),t&&!uw(t.muted)&&this.setPlayerMute(t.muted),t&&!uw(t.objectFit)&&(this.objectFit=t.objectFit),void(this.player instanceof Vx&&(this.player.setObjectFit(this.objectFit),this.container!==i&&i&&(this.container=i,this.player.setContainer(i)),fw(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),t))));if(t&&!uw(t.muted)?this.setPlayerMute(t.muted):(!this.isRemote||this.kind===Ik.VIDEO)&&this.setPlayerMute(!0),t&&!uw(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof Vx&&(this.player.setObjectFit(this.objectFit),t&&!uw(t.poster)&&this.player.setPoster(t.poster)),this.isPlayCalled=!0,i&&(this.container=i,this.player instanceof Vx&&this.player.setContainer(i)),dM.emit(hM.PLAY_TRACK_START,{track:this}),this._outputTrack){this._log.info("play with options: ".concat(JSON.stringify(t)));try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(t),fw(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),t))}catch(bM){throw this.handleAutoPlayFailed(bM),bM}}else this.log.info("play has not mediaTrack, abort")}))}setMirror(e,t){if(this.isScreen||this.kind!==Ik.VIDEO||uw(e)||e===this.mirror)return;this.mirror=e;let i=this.player;t&&(i=t);let r=this.manager;if(mw(this.mirror))return i.setViewMirror(this.mirror),void(!this.isRemote&&r&&(r.mirror=!1));switch(this.mirror){case"view":r&&(r.mirror=!1),i.setViewMirror(!0);break;case"publish":r&&(r.mirror=!0),i.setViewMirror(!0);break;case"both":r&&(r.mirror=!0),i.setViewMirror(!1)}}playSubContainer(e,t){return Rb(this,null,(function*(){if(!this._outputTrack||this.kind===Ik.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach(((t,i)=>{var r;e.find((e=>i===e))||(t.stop(),null==(r=this.subVideoPlayerMap)||r.delete(i))}));for(let[r,n]of e.entries()){let e=this.subVideoPlayerMap.get(n);e?t&&(uw(t.objectFit)||e.setObjectFit(t.objectFit)):this.subVideoPlayerMap.set(n,new Vx({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(r+1)})}))}let i=[...this.subVideoPlayerMap.values()];for(let e of i)e.setViewMirror(this.player.mirror),yield e.play()}))}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return(null==(e=this.player)?void 0:e.getInternalAudioLevel())||0}stop(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info("stop ".concat(this.kind," player")),this.player.stop(dN(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach((e=>{e.stop()})),this.container=null)}resume(){return Rb(this,null,(function*(){var e;this.isPlayCalled&&(yield null==(e=this.player)?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),dM.emit(e?hM.TRACK_MUTED:hM.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){cx(e,e).add(Ik.MUTE,this.onTrackMuted).add(Ik.UNMUTE,this.onTrackUnmuted).add(Ik.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===Ik.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){lx(e)}setInputMediaStreamTrack(e){var t;let i=this._inputTrack;if(e!==i)return this._inputTrack=e,this.trackSettings=null==(t=e.getSettings)?void 0:t.call(e),e.enabled=!this.muted,i&&this.uninstallTrackEvent(i),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,i||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var t;e!==this._outputTrack&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",null==(t=e.getSettings)?void 0:t.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)return this.player.play().catch((e=>this.handleAutoPlayFailed(e))),void this.log.info("playing state updated, play ".concat(this.kind))}else if(!this.player.isStopped)return this.player.stop(dN(this)?this.jitterBufferDelay:0),void this.log.info("playing state updated, stop ".concat(this.kind));this.log.debug("updatePlayingState abort ".concat(this.isPlayCalled," ").concat(e," ").concat(this.player.isStopped))}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new xx;else{let e=()=>{this.resume().then((()=>{document.removeEventListener("click",e,!0)}))};document.addEventListener("click",e,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof Vx?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var t,i,r;if(this.isFirstVideoFrameEmitted)return;let n=null==(t=this.mediaTrack)?void 0:t.getSettings(),o=(null==n?void 0:n.width)||(null==(i=this.player.element)?void 0:i.videoWidth)||0,s=(null==n?void 0:n.height)||(null==(r=this.player.element)?void 0:r.videoHeight)||0;e===ox.LOADED_META_DATA&&!o&&!s||(e===ox.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,Yw(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("".concat(this.kind," track is unable to provide media output"))}onTrackUnmuted(){this._log.info("".concat(this.kind," track is able to provide media output"))}onTrackEnded(){this._log.warn("".concat(this.kind," track ended"))}};Sb([YL([],ZL.INIT,{sync:!0})],RV.prototype,"close",1);var CV=Object.prototype.hasOwnProperty;var bV=function(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("number"==typeof e)return 0===e;if("string"==typeof e||"function"==typeof e||Array.isArray(e))return 0===e.length;if(e instanceof Error)return""===e.message;if(sw(e))switch(Object.prototype.toString.call(e)){case"[object File]":case"[object Map]":case"[object Set]":return 0===e.size;case"[object Object]":for(let t in e)if(CV.call(e,t))return!1;return!0}return!1},kV=hN({retryFunction:function(e){return Rb(this,null,(function*(){let t=function(e){return{audio:wV(e),video:NV(e)}}(e);_M.info("getUserMedia with constraints: ".concat(JSON.stringify(t)));let i=[],r=[],n=["label","deviceId","groupId"];t.audio&&(i=yield mV(),_M.info("microphones: ".concat(Vw(i.map((e=>Eb(gb({},e),{groupId:e.groupId.substring(0,8)}))),{keysToInclude:n})))),t.video&&(r=yield _V(),_M.info("cameras: ".concat(Vw(r,{keysToInclude:n}))));try{let e=yield navigator.mediaDevices.getUserMedia(t);return IL&&e.getTracks().forEach((e=>{_M.info("".concat(e.kind," capabilities: ").concat(Vw(e.getCapabilities(),{keysToInclude:ID})))})),t.audio&&zx(),e}catch(bM){let{message:n}=bM;throw"NotFoundError"===bM.name&&(e.video&&r&&0===r.length&&(n=CP({key:SP.CAMERA_NOT_FOUND})),e.audio&&i&&0===i.length&&(n=CP({key:SP.MICROPHONE_NOT_FOUND}))),new Fb({code:Vb.INITIALIZE_FAILED,name:bM.name,message:n,constraint:bM.constraint})}}))},settings:{retries:3,timeout:500},onError:e=>{let{error:t,retry:i,reject:r,retryFuncArgs:n,retriedCount:o}=e,s=o+1;"NotReadableError"===t.name||"OverconstrainedError"===t.name?(1===s?(n[0].video&&(n[0].maxResolution=!1,(!MO||n[0].width*n[0].height<=2073600)&&n[0].frameRate&&(n[0].frameRate=n[0].frameRate>10?10:5)),n[0].retryWhenExactFailed&&n[0].useExactDeviceId&&(n[0].useExactDeviceId=!1)):2===s?n[0].useDeviceIdOnly=!0:3===s&&!n[0].useExactDeviceId&&(n[0].useTrueAsConstraint=!0),i()):r(t),n[0].microphoneId&&DV(n[0].microphoneId,!1),n[0].cameraId&&DV(n[0].cameraId,!0)},onRetrying:e=>{_M.warn("getUserMedia NotReadableError observed, retrying [".concat(e,"/3]"))},onRetryFailed:e=>{dx.logFailedEvent({eventType:$k.GET_USER_MEDIA_RETRY,error:e})},onRetrySuccess:e=>{dx.logSuccessEvent({eventType:$k.GET_USER_MEDIA_RETRY}),dx.uploadEvent({log:"stat-".concat($k.GET_USER_MEDIA_RETRY,"-success-").concat(e)})}});function DV(e,t){return Rb(this,null,(function*(){let i=(t?yield _V():yield mV()).find((t=>t.deviceId===e));i&&dw(i.getCapabilities)&&_M.warn(Vw(i.getCapabilities(),{keysToInclude:ID}))}))}function wV(e){if(!e.audio)return!1;if(e.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:e.sampleRate};return!bV(e.microphoneId)&&(t.deviceId=e.useExactDeviceId?{exact:e.microphoneId}:e.microphoneId,e.useDeviceIdOnly)?t:(pw(e.channelCount)&&(t.channelCount=e.channelCount),mw(e.echoCancellation)&&!e.echoCancellation&&(t.echoCancellation=!1),mw(e.noiseSuppression)&&!e.noiseSuppression&&(t.noiseSuppression=!1),mw(e.autoGainControl)&&!e.autoGainControl&&(t.autoGainControl=!1),!!bV(t)||t)}function NV(e){if(!e.video)return!1;if(e.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=e,i={};return e.cameraId?i.deviceId=e.useExactDeviceId?{exact:e.cameraId}:e.cameraId:e.facingMode&&(i.facingMode=e.facingMode),e.useDeviceIdOnly&&!bV(i)?i:(e.width&&(i.width={ideal:e.width},t&&!wN&&(i.width.max=e.width)),e.height&&(i.height={ideal:e.height},t&&!wN&&(i.height.max=e.height)),wN&&aO&&e.width&&e.height&&e.width*e.height<101376&&(i.width=e.width,i.height=e.height),e.frameRate&&(i.frameRate=e.frameRate),!!bV(i)||i)}var OV=kV;function MV(e){return xV(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Rb(this,null,(function*(){return yield e.apply(this,r),t.apply(this,r)}))}))}function PV(e){return xV(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Rb(this,null,(function*(){let i=yield t.apply(this,r);return yield e.call(this,...r),i}))}))}function LV(e){return xV(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return Rb(this,null,(function*(){try{return yield t.apply(this,r)}catch(AM){e.call(this,AM)}}))}))}function xV(e){return function(t,i,r){return r.value=e(r.value,i),r}}var VV=(()=>{let e=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&_M.info("visibility change: ".concat(document.visibilityState)),!e&&(document.addEventListener("visibilitychange",(()=>{_M.info("visibility change: ".concat(document.visibilityState)),t=document.visibilityState})),e=!0)}})(),UV=0,FV=class{constructor(){Ib(this,"log",_M.createLogger({id:"fq".concat(++UV)})),Ib(this,"isRunning",!1),Ib(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return 0===this.length?null:this.queue[this.length-1]}push(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i,r;let n=gb({},e),o=new Promise(((e,t)=>{n.resolve=e,n.reject=t}));return n.promise=o,t?this.length<=1?this.queue.push(n):null==(r=null==(i=this.lastQueueItem)?void 0:i.promise)||r.then(n.resolve,n.reject):this.queue.push(n),this.log.debug("push ".concat(this.length)),this.isRunning||this.callNext(),o}shift(){let e=this.queue.shift();return this.log.debug("shift ".concat(this.length)),e}callNext(){if(this.isRunning||0===this.length)return;this.log.debug("callNext ",this.length);let{fn:e,args:t,context:i,resolve:r,reject:n}=this.queue[0];this.isRunning=!0,e.apply(i,t).then(r,n).finally((()=>{this.isRunning=!1,this.shift(),this.callNext()}))}},BV=new WeakMap,HV=new WeakMap;function WV(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,i,r){let n=r.value;return r.value=function(){let t=BV.get(this)||new FV;for(var i=arguments.length,r=new Array(i),o=0;o<i;o++)r[o]=arguments[o];return BV.set(this,t),t.push({fn:n,args:r,context:this},e)},r}}function GV(e){return function(t,i,r){let n=r.value;return r.value=function(){var t,i,r;let o=[];for(var s=arguments.length,a=new Array(s),c=0;c<s;c++)a[c]=arguments[c];return null==(i=null==(t=BV.get(this))?void 0:t.queue)||i.forEach((e=>o.push(e))),null==(r=HV.get(this))||r.forEach((e=>null==e?void 0:e.queue.forEach((e=>o.push(e))))),o.forEach((t=>{t.reject(new Fb({code:Vb.API_CALL_ABORTED,message:e}))})),BV.delete(this),HV.delete(this),n.apply(this,a)},r}}function jV(e){return function(t,i,r){let n=r.value,o=t=>e(...t);return r.value=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let r=HV.get(this)||new Map,s=r.get(o(t))||new FV;return r.set(o(t),s),HV.set(this,r),s.push({fn:n,args:t,context:this})},r}}function JV(e,t){return xV(((i,r)=>function(){let r=e;try{for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];let e=i.apply(this,o),a=Aw();return Tw(e)?e.then((e=>(t?UP.addSuccessEvent({key:r,cost:Aw()-a}):UP.addSuccessEvent({key:r}),e))).catch((e=>{throw UP.addFailedEvent({key:r,error:e}),e})):(UP.addSuccessEvent({key:r}),e)}catch(Xb){throw UP.addFailedEvent({key:r,error:Xb}),Xb}}))}var KV=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(KV||{}),qV=class e extends RV{constructor(e,t){super({mediaType:e,PlayerClass:t}),Ib(this,"isRemote",!1),Ib(this,"deviceId"),Ib(this,"groupId",""),Ib(this,"label",""),Ib(this,"sourceTrack"),Ib(this,"enableAutoSwitchWhenRecapturing",!0),Ib(this,"_isRecapturing",!1),Ib(this,"_lastRecaptureTime",0),Ib(this,"_onMuteTimeoutId",-1),Ib(this,"_encodeCheckTimeoutId",-1),Ib(this,"recaptureMode",0),Ib(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return"publishing"===this.state.toString()}get isPublished(){return"publish"===this.state}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){cx(e,e).add(Ik.MUTE,this.onTrackMuted).add(Ik.UNMUTE,this.onTrackUnmuted).add(Ik.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===Ik.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){lx(e)}setStateToReady(){}capture(e){return Rb(this,null,(function*(){var t;try{let i,r=Aw();dM.emit(hM.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(i=new MediaStream,i.addTrack(e.customSource)):(null==(t=this.sourceTrack)||t.stop(),i=yield OV(e));let n=i.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.sourceTrack=n,this.updateDeviceIdInUse(),this.listenDeviceChange()),dM.emit(hM.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Aw()-r}),i}catch(AM){throw dM.emit(hM.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:AM}),this.log.error("getUserMedia error observed ".concat(AM)),AM}}))}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return null==(t=this.room)?void 0:t.replaceTrack(this)}publish(e,t){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),t}unpublish(){this.room&&this.room.localTracks.delete(this),dM.emit(hM.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return Rb(this,null,(function*(){if(this.sourceTrack&&SL){let{deviceId:e,groupId:t}=this.sourceTrack.getSettings(),{label:i}=this.sourceTrack;(yield function(e){return Rb(this,arguments,(function(e){let{newDeviceId:t,oldDeviceId:i,oldGroupId:r,oldLabel:n,kind:o}=e;return function*(){return t===i&&(o!==Ik.AUDIO||t!==fD||(yield TV(r,n)))}()}))}({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=i,t&&(this.groupId=t),pV().then((t=>{let i=t.find((t=>t.deviceId===e));i&&this.emit("2",i)})))}}))}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!(!this.deviceId||!this.sourceTrack||this.kind===Ik.AUDIO&&!function(e){if(e instanceof CanvasCaptureMediaStreamTrack||!(e instanceof MediaStreamTrack))return!1;let t=e.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("麦克风"))return!0;let i="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(Ik.AUDIO_INPUT);return!!EV.has(i)}(this.sourceTrack)||this.kind===Ik.VIDEO&&!function(e){if(e instanceof CanvasCaptureMediaStreamTrack||!(e instanceof MediaStreamTrack))return!1;let t=e.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let i="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(Ik.VIDEO_INPUT);return!!EV.has(i)}(this.sourceTrack)||this._isRecapturing||e&&aO&&MO)}onTrackMuted(){if(super.onTrackMuted(),VV(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<SD)return void setTimeout((()=>this.onTrackMuted()),SD);this._onMuteTimeoutId=setTimeout((()=>Rb(this,null,(function*(){var e;if(null!=(e=this.sourceTrack)&&e.muted){if((RN||CN)&&"visible"!==document.visibilityState)return;this.recapture(yield this.getRecoverCaptureDeviceId())}}))),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return Rb(this,null,(function*(){if(Ab(e.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()&&0===this.recaptureMode){if(Date.now()-this._lastRecaptureTime<SD)return void setTimeout((()=>this.onTrackEnded()),SD);this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}}))}recapture(e){return Rb(this,null,(function*(){var t;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying"),null==(t=this.sourceTrack)||t.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let i={useExactDeviceId:!0};if("user"===e||"environment"===e)i.facingMode=e;else{let t;("audio"===this.kind?yield mV():yield _V()).find((t=>t.deviceId===e))&&(t=e),i.deviceId=t}return this.capture(i).then((()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),dM.emit(hM.LOCAL_TRACK_RECAPTURE,{track:this})})).catch((e=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(e.message)),this.emit("5",e),dM.emit(hM.LOCAL_TRACK_RECAPTURE,{track:this,error:e})}))}))}getRecoverCaptureDeviceId(){return Rb(this,null,(function*(){let e=this instanceof eU;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let i=(YV.get(t)||0)+1;if(YV.set(t,i),i>=3&&this.enableAutoSwitchWhenRecapturing){let r=e?(yield _V()).find((e=>!YV.has(e.deviceId))):(yield mV()).find((e=>!YV.has(e.deviceId)));r&&(this.log.warn("".concat(t," capture fail ").concat(i," times, change new ").concat(r.deviceId)),t=r.deviceId)}}return t}))}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),null==(e=this.manager)||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Sb([YL(ZL.INIT,"ready",{ignoreError:!0,sync:!0})],qV.prototype,"setStateToReady",1),Sb([WV()],qV.prototype,"capture",1),Sb([YL("ready","publish",{ignoreError:!0,success(){var e,t;this.room.localTracks.add(this),dM.emit(hM.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!(((null==(t=null==(e=this.room)?void 0:e.networkQuality)?void 0:t.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout((()=>{var e,t,i,r,n,o;if(!(((null==(t=null==(e=this.room)?void 0:e.networkQuality)?void 0:t.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let e=this.kind===Ik.AUDIO,t=this.stat.bytesSent>0;if(UP[t?"addSuccessEvent":"addFailedEvent"]({key:e?503700:513702}),!e){let e={H264:513704,H265:513705,VP8:513706}[(null==(r=null==(i=this.room)?void 0:i.videoCodec)?void 0:r.toUpperCase())||"H264"];e&&UP[t?"addSuccessEvent":"addFailedEvent"]({key:e})}t||(UP.addEnum({key:e?503701:513703,value:nM()}),dx.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(tM()||sM()),userId:this.userId}),this.log.warn(e?"encode failed":"".concat(null==(o=null==(n=this.room)?void 0:n.videoCodec)?void 0:o.toUpperCase()," encode failed")),this.emit("6",this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"started",reason:"error",error:new Fb({message:"".concat(e?"audio":"video"," encode failed"),code:e?Vb.AUDIO_ENCODE_FAILED:Vb.VIDEO_ENCODE_FAILED})}))}}),5e3))},fail(e){let t="error";if(e.cause instanceof RTCError){let i=e.cause;i.message.includes("timeout")?t="timeout":i.code===Vb.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:e.cause||e})}}),JV(521714,!1)],qV.prototype,"publish",1),Sb([xV((e=>function(){return Rb(this,null,(function*(){let t="publish"===this.state?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:t,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)}))})),YL([],"ready",{sync:!0})],qV.prototype,"unpublish",1);var zV=qV,YV=new Map;dM.on(hM.SWITCH_DEVICE_SUCCESS,(e=>{e.track.deviceId&&YV.delete(e.track.deviceId)}));var XV=class e extends zV{constructor(e){super(1,IV),Ib(this,"mediaType",1),Ib(this,"volume",0),Ib(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),Ib(this,"playerMuted",!0),Ib(this,"pipeline"),Ib(this,"earMonitorGainNode",new Xx),Ib(this,"_output",new Xx),Ib(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),Ib(this,"mixedAudioReferenceMap",new Map),Ib(this,"isAudioContextLongSuspended",!1),this.manager=e,this.pipeline=new $x(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),dM.on(hM.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return sV.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(t){return Rb(this,null,(function*(){let i=this.trackSettings||{};UP.addEnum({key:501701,value:i.channelCount||0,useUV:!1}),UP.addEnum({key:501702,value:i.sampleRate||0,useUV:!1}),UP.addEnum({key:502700,value:0});let{sampleRate:r,channelCount:n}=i;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:r,channelCount:n}))),this.pipeline.source.channelCount=n||1,this.pipeline.replaceSource(t),yield Ab(e.prototype,this,"setInputMediaStreamTrack").call(this,t),this.updatePlayingState(!!t)}))}capture(e){let{deviceId:t,customSource:i,useExactDeviceId:r=!0,retryWhenExactFailed:n=!0}=e;return super.capture({video:!1,audio:!0,microphoneId:t,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:r,retryWhenExactFailed:n,customSource:i})}switchDevice(e){return Rb(this,null,(function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource){if(e!==fD)return;if(yield TV(this.groupId,this.label))return}try{this.log.info("switchDevice audio to: ".concat(e)),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),dM.emit(hM.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(Qk){throw this.log.error("switch microphone failed ".concat(Qk)),this.deviceId&&this.recapture(this.deviceId),Qk}}}))}listenDeviceChange(){uV&&!uV.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&uV.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return Rb(this,null,(function*(){if(e.deviceId===this.deviceId){let t=1===this.recaptureMode;if(this.log.warn("RecaptureMode: ".concat(KV[this.recaptureMode],". Current microphone is lost: ").concat(JSON.stringify(e))),0===this.recaptureMode){$B(this.userId,{eventId:2003,param1:6,streamType:1});let e=yield mV();e[0]?this.recapture(e[0].deviceId):t=!0}t&&uV.on("audioInputAdded",this.handleMicrophoneAdded,this)}}))}handleMicrophoneAdded(e){1===this.recaptureMode&&e.deviceId!==this.deviceId||(uV.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}update3A(e){return Rb(this,arguments,(function(e){var t=this;let{echoCancellation:i,noiseSuppression:r,autoGainControl:n}=e;return function*(){let e=t.sourceTrack||t.mediaTrack;if(!e)return;let o=e.getConstraints(),s=!1;!uw(i)&&i!==t.profile.echoCancellation&&(t.profile.echoCancellation=i,o.echoCancellation=i,s=!0),!uw(r)&&r!==t.profile.noiseSuppression&&(t.profile.noiseSuppression=r,o.noiseSuppression=r,s=!0),!uw(n)&&n!==t.profile.autoGainControl&&(t.profile.autoGainControl=n,o.autoGainControl=n,s=!0),s&&(wN||MO?yield e.applyConstraints(o).catch((e=>t._log.warn("update3A failed: ",e))):t.deviceId&&(yield t.recapture(t.deviceId)))}()}))}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&UP.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),RN&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(Yx().createGain()),this._output.setNode(Yx().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!MO&&!RN)return this.update3A({echoCancellation:e})}addDenoiser(e){var t;NO<=92&&48e3!==(null==(t=this.trackSettings)?void 0:t.sampleRate)?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(UP.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}mixAudioReference(e,t){if(this.mixedAudioReferenceMap.has(t))return;this.log.info("mixAudioReference() => ".concat(t));let i=iV(e),r=new Xx,n=Yx().createGain();n.gain.value=1;let o=new Xx;r.pipeTo(o).pipeTo(this.pipeline.mixNode),r.setNode(i),o.setNode(n),this.mixedAudioReferenceMap.set(t,[r,o])}unMixAudioReference(e){let[t,i]=this.mixedAudioReferenceMap.get(e)||[];t&&(this.log.info("unMixAudioReference() => ".concat(e)),t.deleteNode(),null==i||i.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,t){let[i,r]=this.mixedAudioReferenceMap.get(e)||[];null!=r&&r.node&&(r.node.gain.value=t/100,this.log.info("setAudioReferenceVolume() => ".concat(e," ").concat(r.node.gain.value)))}addAudioProcessor(e,t,i,r){this.pipeline.silentNode.setNode(i),this.pipeline.mixNode.setNode(t),this.pipeline.aec.setNode(e),this.enableTrackAEC(!1)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e,t,i,r){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}close(){this.mixedAudioReferenceMap.forEach((e=>{let[t,i]=e;t.deleteNode(),i.deleteNode()})),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),uV.off("audioInputAdded",this.handleMicrophoneAdded,this),uV.off("audioInputRemoved",this.handleMicrophoneRemoved,this),dM.off(hM.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(t){return Rb(this,null,(function*(){try{yield Ab(e.prototype,this,"recapture").call(this,t)}catch(Qk){let r=(yield mV()).find((e=>e.deviceId!==t));if(!r)throw Qk;yield Ab(e.prototype,this,"recapture").call(this,r.deviceId)}}))}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight(((e,t)=>t?t({frame:e}):e),e):e}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some((e=>e))}handleAudioContextLongSuspended(e){let{isSuspended:t}=e;if(this.pipeline.isProcessEnabled)if(t){this.isAudioContextLongSuspended=!0,this.log.warn("context has suspended for ".concat(1.5," seconds, change to source audio").concat(PO?"":", non-Safari"));let e=this.sourceTrack||this.mediaTrack;e&&this.setOutputMediaStreamTrack(e)}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 t=this.sourceTrack||this.mediaTrack;t&&(e=t)}super.setOutputMediaStreamTrack(e)}},QV=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.dataView=e,this.isSEI&&(t?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let e=this.seiPayloadStartIndex,t=this.dataView.byteLength-2,i=[],r=0;for(let o=e;o<=t;o++){let e=this.dataView.getInt8(o);switch(e){case 0:case 1:case 2:case 3:2===r&&(i.push(3),r=0),0==e?r++:r=0,i.push(e);break;default:r=0,i.push(e)}}i.push(this.dataView.getInt8(this.dataView.byteLength-1));let n=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...i]).buffer);this.dataView=n}removePreventionByte(){let e=this.seiPayloadStartIndex,t=this.dataView.byteLength-1,i=[],r=0;for(let o=e;o<=t;o++)switch(this.dataView.getInt8(o)){case 0:r++,i.push(this.dataView.getInt8(o));break;case 3:2!==r&&i.push(this.dataView.getInt8(o)),r=0;break;default:i.push(this.dataView.getInt8(o)),r=0}let n=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...i]).buffer);this.dataView=n}get isSEI(){return 6===this.dataView.getUint8(4)}get seiPayloadStartIndex(){let e=6;for(let t=6;t<this.dataView.buffer.byteLength&&(e++,255===this.dataView.getUint8(t));t++);return e}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let e=0,t=6;for(let n=6;n<this.dataView.buffer.byteLength;n++){let i=this.dataView.getUint8(n);if(t++,255!==i){e+=i;break}e+=255}let i=new ArrayBuffer(e),r=new DataView(i);for(let n=0;n<i.byteLength;n++,t++)r.setInt8(n,this.dataView.getInt8(t));return r}},ZV=class{constructor(){Ib(this,"_seiMessageList",[]),Ib(this,"_smallSeiMessageList",[]),Ib(this,"_seiPayloadType",243)}encodeSEINalu(e){let t=e.byteLength,i=parseInt(String(t/255),10),r=t%255,n=[];n.push(0,0,0,1,6,this._seiPayloadType);for(let s=0;s<i;s++)n.push(255);n.push(r);let o=new DataView(e);return n.push(...new Uint8Array(o.buffer)),n.push(128),new QV(new DataView(new Uint8Array(n).buffer),!0)}sendSEI(e,t){null!=t&&t.seiPayloadType&&(this._seiPayloadType=t.seiPayloadType),this._seiMessageList.push(e),null!=t&&t.small&&this._smallSeiMessageList.push(e)}isEmpty(){return!this._seiMessageList.length}getNaluCount(e){let t=0,i=0,r=new DataView(e);for(let n=0;n<e.byteLength;n++)switch(r.getUint8(n)){case 0:t++;break;case 1:(2===t||3===t)&&i++,t=0;break;default:t=0}return i}encode(e,t){let i=t?this._smallSeiMessageList:this._seiMessageList;if(i.length>0&&e.data.byteLength>0){let t=9-this.getNaluCount(e.data);if(t<=0)return 0;let r=i.splice(0,t).reverse().map(this.encodeSEINalu.bind(this)),n=r.reduce(((e,t)=>e+t.dataView.byteLength),0),o=new ArrayBuffer(n+e.data.byteLength),s=new DataView(o),a=new DataView(e.data),c=0;for(let e=0;e<r.length;e++)for(let t=0;t<r[e].dataView.byteLength;t++)s.setInt8(c++,r[e].dataView.getInt8(t));for(let i=0;i<e.data.byteLength;i++)s.setInt8(c++,a.getInt8(i));return e.data=o,r.length}return 0}},$V=class e extends zV{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,Vx),Ib(this,"profile",gb({},vk)),Ib(this,"avoidCropping",!1),Ib(this,"_scaleResolutionDownBy"),Ib(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0}),Ib(this,"small"),Ib(this,"isNeedToSetBandwidth"),Ib(this,"muteImage"),Ib(this,"manager"),Ib(this,"_seiCodec",new ZV),this.manager=e;let t=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&"publish"===this.state&&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(Eb(gb({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",t),this.on("publish",t),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(SL&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return(null==(e=this._inputTrack)?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return"detail"===(null==(e=this._inputTrack)?void 0:e.contentHint)}setMute(t){return Rb(this,null,(function*(){var i,r,n;if(hw(t)){if(this.muteImage===t)return;yield null==(i=this.manager)?void 0:i.deleteWatermark("mute"),yield null==(r=this.manager)?void 0:r.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:t}),this.muteImage=t,Ab(e.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield null==(n=this.manager)?void 0:n.deleteWatermark("mute"),this.muteImage=void 0),Ab(e.prototype,this,"setMute").call(this,t)}))}capture(e){let{deviceId:t,facingMode:i,useExactDeviceId:r=!0,customSource:n,retryWhenExactFailed:o=!0}=e;return super.capture({audio:!1,video:!0,facingMode:i||this.facingMode,cameraId:t,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:r,retryWhenExactFailed:o,customSource:n})}setProfile(e){let t=this.fallbackProfile(e);t.bitrate&&(this.isNeedToSetBandwidth=t.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(t):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(Eb(gb({},this.profile),{width:1920,height:1080})))}applyProfile(){return Rb(this,null,(function*(){var e;if(!this.mediaTrack)return;let{width:t=0,height:i=0}=(this.sourceTrack||this.mediaTrack).getSettings(),r=t*i,n=this.settings,o=n.height!==this.profile.height||n.width!==this.profile.width||n.frameRate!==this.profile.frameRate;if(o&&(16===BO&&this.deviceId?yield this.recapture(this.deviceId):(yield null==(e=this.sourceTrack||this.mediaTrack)?void 0:e.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&&"publish"===this.state&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:e=0,height:t=0}=(this.sourceTrack||this.mediaTrack).getSettings(),i=e*t;return o&&i&&r&&i===r?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:Ik.VIDEO,videoType:Ik.BIG})}}))}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},t=this.sourceTrack||this.mediaTrack;return SL&&t&&Object.assign(e,t.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:zw(this.settings,this.profile)}isAllowed2k4k(e){var t;return!(this.room&&this.room.scheduleResult&&!this.isScreen&&!(e.height*e.width<3686400))||1===(null==(t=this.room.scheduleResult.trtcAutoConf)?void 0:t["2k4k"])}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return Rb(this,null,(function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};"user"===e||"environment"===e?t.facingMode=e:t.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(t),dM.emit(hM.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(Qk){throw this.log.error("switch camera failed ".concat(Qk)),this.deviceId&&this.recapture(this.deviceId),Qk}}))}updateSmallConfig(e){var t,i;this._log.info("update small stream config: ".concat(JSON.stringify(e)));let r=!this.small;this.small=this.fallbackProfile(e,!0),null==(t=this.manager)||t.update(),r&&(null==(i=this.room)||i.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=e.width>e.height,r=gb({},e);return e.width*e.height<=19200&&CN&&kO&&(this.log.warn("".concat(t?"small ":"","resolution is ").concat(e.width,"*").concat(e.height,", fallback to 240*180 for android chrome")),r.width=i?240:180,r.height=i?180:240,r.bitrate=Math.max(e.bitrate,150)),e.width*e.height>921600&&GO&&(r.width=i?1280:720,r.height=i?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),UO(VO,"14.3")&&FO(VO,"14.0",!0)&&this.on("7",(()=>{let e=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=e?640:480,this.profile.height=e?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>230400&&(this.profile.width=e?640:360,this.profile.height=e?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))})),!t&&this.avoidCropping&&(kO||wN)&&!QO()&&e.width*e.height<=230400&&e.width/e.height==16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),r}stopSmall(){var e,t;this.small&&(delete this.small,null==(e=this.manager)||e.update(),null==(t=this.room)||t.enableSmall(!1))}listenDeviceChange(){uV&&!uV.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&uV.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return Rb(this,null,(function*(){if(e.deviceId===this.deviceId){let t=1===this.recaptureMode;if(this.log.warn("RecaptureMode: ".concat(KV[this.recaptureMode],". Current camera is lost: ").concat(JSON.stringify(e))),0===this.recaptureMode){$B(this.userId,{eventId:2003,param1:7,streamType:2});let e=yield _V();e[0]?this.recapture(e[0].deviceId):t=!0}t&&uV.on("videoInputAdded",this.handleCameraAdded,this)}}))}handleCameraAdded(e){return Rb(this,null,(function*(){1===this.recaptureMode&&e.deviceId!==this.deviceId||(uV.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn("camera added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}))}encodeFrame(e,t){if(!this.manager)return e;let i=t?8:this.mediaType;return this.manager.encodePipeline.reduceRight(((e,t)=>t?t({frame:e,mediaType:i}):e),e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some((e=>e))}play(e,t){return uw(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){uV.off("videoInputAdded",this.handleCameraAdded,this),uV.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(t){return Rb(this,null,(function*(){try{yield Ab(e.prototype,this,"recapture").call(this,t)}catch(Qk){let r=(yield _V()).find((e=>e.deviceId!==t));if(!r)throw Qk;yield Ab(e.prototype,this,"recapture").call(this,r.deviceId)}}))}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info("setContentHint ".concat(e)),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||uw(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Sb([PV((function(e){this.setContentHint(e.contentHint||"motion")}))],$V.prototype,"capture",1);var eU=$V,tU={};vb(tU,{REPORT_TYPE:()=>Zw,buildSSOPackage:()=>$w,bytes2ms:()=>ew,calculateScaleResolutionDownNumber:()=>zw,convertObjectNumberToInt:()=>Gw,copyProperties:()=>$D,deepClone:()=>Mw,deepCloneBasic:()=>Qw,deepMerge:()=>Ow,delay:()=>jw,fibonacci:()=>aw,formatedTime:()=>xw,getConstructorName:()=>yw,getContainerFromElement:()=>Lw,getEnv:()=>JD,getInternalVersion:()=>Cw,getLoggerUrl:()=>qD,getMediaStreamTrackInfo:()=>qw,getMuteStateFromFlag:()=>Dw,getNetworkType:()=>YD,getNumNetworkType:()=>ZD,getReconnectionTimeout:()=>cw,getStringByteLength:()=>Fw,getTurnServer:()=>ww,getUint32Version:()=>Ww,getValueType:()=>lw,getViewListFromView:()=>Pw,glog:()=>nw,ipv4ToUint32:()=>Nw,isArray:()=>fw,isAudioWorkletSupported:()=>Sw,isBoolean:()=>mw,isConstructor:()=>vw,isEmpty:()=>kw,isFunction:()=>dw,isLangChinese:()=>ow,isMediaStreamTrack:()=>gw,isNumber:()=>pw,isObject:()=>_w,isOverseaSdkAppId:()=>KD,isPlainObject:()=>sw,isPortrait:()=>Bw,isPromise:()=>Tw,isRemoteTrack:()=>Ew,isRotate90Or270:()=>Yw,isString:()=>hw,isUndefined:()=>uw,loadImage:()=>Hw,loadVideo:()=>Xw,ms2bytes:()=>iw,ms2samples:()=>rw,normalizeUrl:()=>Kw,performanceNow:()=>Aw,promiseAny:()=>Iw,samples2ms:()=>tw,setNetworkType:()=>QD,stringify:()=>Vw,stringifyIncludeValue:()=>Uw,throttlePromise:()=>Jw});var iU=[-1,-1,1,-1,-1,1,1,1],rU=[0,0,1,0,0,1,1,1],nU=class extends ZL{constructor(e,t){if(super(),this.context=e,Ib(this,"name"),Ib(this,"input"),Ib(this,"output"),Ib(this,"texture"),Ib(this,"ctx2d",null),Ib(this,"fbo"),Ib(this,"width",0),Ib(this,"height",0),Ib(this,"x",0),Ib(this,"y",0),Ib(this,"program"),Ib(this,"vertexShader"),Ib(this,"fragmentShader"),Ib(this,"totalFrames",0),Ib(this,"dropFrames",0),Ib(this,"matchInputSize",!0),Ib(this,"texCoordBuffer"),Ib(this,"positionBuffer"),Ib(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),Ib(this,"cost",0),Ib(this,"_canvas",null),Ib(this,"_image"),Ib(this,"log"),this.context.on("disconnect",this.close,this),this.name=t.name,this.log=t.logger,this.matchInputSize=!1!==t.matchInputSize,this.width=t.width||e.width,this.height=t.height||e.height,this._image=t.image,e instanceof OB)e.ctx&&t.create2d&&("function"==typeof OffscreenCanvas&&16!==BO?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);else try{let i=e.ctx;this.texCoordBuffer=this.createBuffer(rU),this.positionBuffer=this.createBuffer(iU),!1!==t.createTexture&&(this.texture=i.createTexture(),this.useTexture(),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.pixelStorei(i.PACK_ALIGNMENT,1),i.pixelStorei(i.UNPACK_ALIGNMENT,1)),t.useFbo&&(this.fbo=i.createFramebuffer(),this.useBufferFrame(),this.useTexture(),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.texture,0)),t.useDefaultProgram?this.program=e.defaultProgam:(t.vertexShaderSource||t.fragmentShaderSource)&&(this.vertexShader=t.vertexShaderSource?e.createShader(i.VERTEX_SHADER,t.vertexShaderSource):e.defaultVShader,this.fragmentShader=t.fragmentShaderSource?e.createShader(i.FRAGMENT_SHADER,t.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(AM){this.context.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(AM.message||AM)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let t=this.context.ctx,i=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,i),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),i}connect(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return e.addInput(this,...i),this.output=e,e}addInput(e){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let t=Date.now();return!!(this.context instanceof NB&&this.render(e)||this.context instanceof OB&&this.render2d(e))&&(this.totalFrames++,this.cost=Date.now()-t,!0)}render2d(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&this.draw2d(this.input.image,0,0,this.width,this.height)}update(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;var t;null==(t=this.output)||t.update(e)}disconnect(){for(var e,t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];null==(e=this.output)||e.removeInput(this,...i),delete this.output}removeInput(e){delete this.input}close(){var e,t;if(this.context.off("disconnect",this.close,this),null==(e=this.output)||e.removeInput(this),delete this.output,null==(t=this.input)||t.disconnect(),this.context instanceof NB){let e=this.context.ctx;e.deleteBuffer(this.texCoordBuffer),e.deleteBuffer(this.positionBuffer),this.fbo&&e.deleteFramebuffer(this.fbo),this.texture&&e.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&e.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&e.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&e.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(null==(e=this.input)?void 0:e.texture)}useTextures(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];i.forEach(((t,i)=>{t&&(e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,t))}))}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let t=this.context.ctx,i=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),i}setTexBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}setPosBuffer(e){let t=this.context.ctx;t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW)}changeBufferData(e,t){let i=this.context.ctx;i.bindBuffer(i.ARRAY_BUFFER,e),i.bufferData(i.ARRAY_BUFFER,new Float32Array(t),i.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];i.forEach(((t,i)=>{e.enableVertexAttribArray(i),e.bindBuffer(e.ARRAY_BUFFER,t),e.vertexAttribPointer(i,2,e.FLOAT,!1,0,0)}))}getVertexPoint(e,t){return[e/this.width*2-1,t/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,t){if(this.width!==e||this.height!==t){if(this.width=e,this.height=t,this._canvas&&(this._canvas.width=e,this._canvas.height=t),this.texture&&this.fbo){this.useTexture();let i=this.context.ctx;i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,t,0,i.RGBA,i.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,t)}}draw(e,t){this.setAttributes(e||this.positionBuffer,t||this.texCoordBuffer);let i=this.context.ctx;i.drawArrays(i.TRIANGLE_STRIP,0,4)}draw2d(e,t,i,r,n,o,s,a,c){let l=!(uw(o)||uw(s)||uw(a)||uw(c));return!(!this.ctx2d||!e)&&(e instanceof ImageData?l?this.ctx2d.putImageData(e,t,i,o,s,a,c):this.ctx2d.putImageData(e,t,i):(l?this.ctx2d.drawImage(e,o,s,a,c,t,i,r,n):this.ctx2d.drawImage(e,t,i,r,n),"undefined"!=typeof VideoFrame&&e instanceof VideoFrame&&e.close()),!0)}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 e;let{totalFrames:t,x:i,y:r,width:n,height:o,name:s,cost:a}=this,c=Date.now(),l=(t-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:t,x:i,y:r,width:n,height:o,timestamp:c,fps:l,name:s,cost:a},gb({parent:null==(e=this.input)?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let t=this.context.ctx,i=t.createTexture();return this.useTextures(i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),i}};Sb([YL(ZL.INIT,"connected",{sync:!0})],nU.prototype,"connect",1),Sb([YL("connected",ZL.INIT,{ignoreError:!0,sync:!0})],nU.prototype,"disconnect",1),Sb([YL([],"closed",{sync:!0})],nU.prototype,"close",1);var oU={};function sU(){}vb(oU,{Events:()=>yU,Inspect:()=>hU,LastSink:()=>pU,Sink:()=>mU,Subscribe:()=>_U,TimeoutError:()=>SU,audit:()=>CF,bindCallback:()=>tF,bindNodeCallback:()=>iF,buffer:()=>LU,bufferCount:()=>PU,bufferTime:()=>lB,call:()=>aU,catchError:()=>uB,combineLatest:()=>wU,concat:()=>bU,concatMap:()=>QF,concatMapTo:()=>ZF,count:()=>cF,create:()=>gU,debounce:()=>DF,debounceTime:()=>wF,defer:()=>UU,delay:()=>dB,deliver:()=>EU,dispose:()=>lU,elementAt:()=>NF,empty:()=>oF,every:()=>xF,exhaustMap:()=>oB,exhaustMapTo:()=>sB,filter:()=>hF,find:()=>OF,findIndex:()=>MF,first:()=>PF,fromAnimationFrame:()=>$U,fromArray:()=>WU,fromEvent:()=>qU,fromEventPattern:()=>KU,fromFetch:()=>YU,fromIterable:()=>XU,fromPromise:()=>zU,fromReadableStream:()=>ZU,fromReader:()=>QU,groupBy:()=>aB,identity:()=>cU,ignoreElements:()=>pF,iif:()=>DU,inspect:()=>dU,interval:()=>GU,last:()=>LF,map:()=>BF,mapTo:()=>HF,max:()=>lF,merge:()=>RU,mergeMap:()=>tB,mergeMapTo:()=>iB,min:()=>dF,never:()=>rF,nothing:()=>sU,of:()=>HU,pairwise:()=>UF,pipe:()=>fU,race:()=>CU,range:()=>eF,reduce:()=>aF,retry:()=>gB,scan:()=>VF,share:()=>AU,shareReplay:()=>kU,skip:()=>EF,skipUntil:()=>TF,skipWhile:()=>vF,startWith:()=>OU,subject:()=>VU,subscribe:()=>mB,sum:()=>uF,switchMap:()=>KF,switchMapTo:()=>zF,take:()=>mF,takeLast:()=>gF,takeUntil:()=>_F,takeWhile:()=>fF,tap:()=>_B,throttle:()=>AF,throwError:()=>nF,timeInterval:()=>cB,timeout:()=>fB,timer:()=>jU,toPromise:()=>hB,toReadableStream:()=>pB,withLatestFrom:()=>MU,zip:()=>NU});var aU=e=>e(),cU=e=>e;function lU(){this.dispose()}var dU=()=>"undefined"!=typeof __FASTRX_DEVTOOLS__,uU=1,hU=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(e){let t=new vU(e,this,this.streamId++);return yU.subscribe({id:this.id,end:!1},{nodeId:t.sourceId,streamId:t.id}),this(t),t}},pU=class{constructor(){this.defers=new Set,this.disposed=!1}next(e){}complete(){this.dispose()}error(e){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=sU,this.error=sU,this.next=sU,this.dispose=sU,this.subscribe=sU,this.doDefer()}subscribe(e){return e instanceof hU?e.subscribe(this):e(this),this}get bindSubscribe(){return e=>this.subscribe(e)}doDefer(){this.defers.forEach(aU),this.defers.clear()}defer(e){this.defers.add(e)}removeDefer(e){this.defers.delete(e)}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}},mU=class extends pU{constructor(e){super(),this.sink=e,e.defer(this.bindDispose)}next(e){this.sink.next(e)}complete(){this.sink.complete()}error(e){this.sink.error(e)}},_U=class extends pU{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:sU,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:sU,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:sU;if(super(),this._next=t,this._error=i,this._complete=r,this.then=sU,e instanceof hU){let n={toString:()=>"subscribe",id:0,source:e};this.defer((()=>{yU.defer(n,0)})),yU.create(n),yU.pipe(n),this.sourceId=n.id,this.subscribe(e),yU.subscribe({id:n.id,end:!0}),t==sU?this._next=e=>yU.next(n,0,e):this.next=e=>{yU.next(n,0,e),t(e)},r==sU?this._complete=()=>yU.complete(n,0):this.complete=()=>{this.dispose(),yU.complete(n,0),r()},i==sU?this._error=e=>yU.complete(n,0,e):this.error=e=>{this.dispose(),yU.complete(n,0,e),i()}}else this.subscribe(e)}next(e){this._next(e)}complete(){this.dispose(),this._complete()}error(e){this.dispose(),this._error(e)}};function fU(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return i.reduce(((e,t)=>t(e)),e)}function gU(e,t,i){if(dU()){let r=Object.defineProperties(Object.setPrototypeOf(e,hU.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:i,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});yU.create(r);for(let e=0;e<i.length;e++){let t=i[e];"function"==typeof t&&t instanceof hU&&yU.addSource(r,t)}return r}return e}function EU(e,t){return function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return i=>{if(i instanceof hU){let n=gU((t=>{let o=new e(t,...r);o.sourceId=n.id,o.subscribe(i)}),t,arguments);return n.source=i,yU.pipe(n),n}return t=>i(new e(t,...r))}}}function TU(e,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:e,payload:t}})}var vU=class extends mU{constructor(e,t,i){super(e),this.source=t,this.id=i,this.sourceId=e.sourceId,this.defer((()=>{yU.defer(this.source,this.id)}))}next(e){yU.next(this.source,this.id,e),this.sink.next(e)}complete(){yU.complete(this.source,this.id),this.sink.complete()}error(e){yU.complete(this.source,this.id,e),this.sink.error(e)}},yU={addSource(e,t){TU("addSource",{id:e.id,name:e.toString(),source:{id:t.id,name:t.toString()}})},next(e,t,i){TU("next",{id:e.id,streamId:t,data:i&&i.toString()})},subscribe(e,t){let{id:i,end:r}=e;TU("subscribe",{id:i,end:r,sink:{nodeId:t&&t.nodeId,streamId:t&&t.streamId}})},complete(e,t,i){TU("complete",{id:e.id,streamId:t,err:i?i.toString():null})},defer(e,t){TU("defer",{id:e.id,streamId:t})},pipe(e){TU("pipe",{name:e.toString(),id:e.id,source:{id:e.source.id,name:e.source.toString()}})},update(e){TU("update",{id:e.id,name:e.toString()})},create(e){e.id||(e.id=uU++),TU("create",{name:e.toString(),id:e.id})}},SU=class extends Error{constructor(e){super("timeout after ".concat(e,"ms")),this.timeout=e}},IU=class extends pU{constructor(e){super(),this.source=e,this.sinks=new Set}add(e){e.defer((()=>this.remove(e))),1===this.sinks.add(e).size&&(this.reset(),this.subscribe(this.source))}remove(e){this.sinks.delete(e),0===this.sinks.size&&this.dispose()}next(e){this.sinks.forEach((t=>t.next(e)))}complete(){this.sinks.forEach((e=>e.complete())),this.sinks.clear()}error(e){this.sinks.forEach((t=>t.error(e))),this.sinks.clear()}};function AU(){return e=>{let t=new IU(e);if(e instanceof hU){let i=gU((e=>{t.add(e)}),"share",arguments);return t.sourceId=i.id,i.source=e,yU.pipe(i),i}return gU(t.add.bind(t),"share",arguments)}}function RU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU((e=>{let i=new mU(e),r=t.length;i.complete=()=>{0==--r&&e.complete()},t.forEach(i.bindSubscribe)}),"merge",arguments)}function CU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU((e=>{let i=new Map;t.forEach((t=>{let r=new mU(e);i.set(t,r),r.complete=()=>{i.delete(t),0===i.size?e.complete():r.dispose()},r.next=e=>{i.delete(t),i.forEach((e=>e.dispose())),r.resetNext(),r.resetComplete(),r.next(e)}})),t.forEach((e=>i.get(e).subscribe(e)))}),"race",arguments)}function bU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU((e=>{let i=0,r=t.length,n=new mU(e);n.complete=()=>{i<r&&!n.disposed?(n.doDefer(),n.subscribe(t[i++])):e.complete()},n.complete()}),"concat",arguments)}function kU(e){return t=>{let i=new IU(t),r=[];return i.next=function(t){r.push(t),r.length>e&&r.shift(),this.sinks.forEach((e=>e.next(t)))},gU((e=>{e.defer((()=>i.remove(e))),r.forEach((t=>e.next(t))),i.add(e)}),"shareReplay",arguments)}}function DU(e,t,i){return gU((r=>e()?t(r):i(r)),"iif",arguments)}function wU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU((e=>{let i=t.length,r=i,n=i,o=new Array(i),s=()=>{0==--n&&e.complete()};t.forEach(((t,i)=>{let n=new mU(e);n.next=t=>{0==--r?(n.next=t=>{o[i]=t,e.next(o)},n.next(t)):o[i]=t},n.complete=s,n.subscribe(t)}))}),"combineLatest",arguments)}function NU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU((e=>{let i=t.length,r=i,n=new Array(i),o=()=>{0==--r&&e.complete()};t.forEach(((t,i)=>{let r=new mU(e),s=[];n[i]=s,r.next=t=>{s.push(t),n.every((e=>e.length))&&e.next(n.map((e=>e.shift())))},r.complete=o,r.subscribe(t)}))}),"zip",arguments)}function OU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return e=>gU((function(i){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;for(;r<n&&!i.disposed;)i.next(t[r++]);i.disposed||i.subscribe(e)}),"startWith",arguments)}var MU=EU(class extends mU{constructor(e){super(e);let t=new mU(this.sink);for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];t.next=e=>this.buffer=e,t.complete=sU,t.subscribe(wU(...r))}next(e){this.buffer&&this.sink.next([e,...this.buffer])}},"withLatestFrom"),PU=EU(class extends mU{constructor(e,t,i){super(e),this.bufferSize=t,this.startBufferEvery=i,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(e){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach((t=>{t.push(e)})),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(e),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((e=>this.sink.next(e))),super.complete()}},"bufferCount"),LU=EU(class extends mU{constructor(e,t){super(e),this.buffer=[];let i=new mU(e);i.next=t=>{e.next(this.buffer),this.buffer=[]},i.complete=sU,i.subscribe(t)}next(e){this.buffer.push(e)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),xU=function(e,t,i,r){return new(i||(i=Promise))((function(n,o){function s(e){try{c(r.next(e))}catch(t){o(t)}}function a(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){e.done?n(e.value):function(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function VU(e){let t=arguments,i=AU()(gU((t=>{i.next=e=>t.next(e),i.complete=()=>t.complete(),i.error=e=>t.error(e),e&&t.subscribe(e)}),"subject",t));return i.next=sU,i.complete=sU,i.error=sU,i}function UU(e){return gU((t=>t.subscribe(e())),"defer",arguments)}var FU=e=>t=>{setTimeout((()=>e(t)))},BU=e=>FU((t=>{for(let i=0;!t.disposed&&i<e.length;i++)t.next(e[i]);t.complete()}));function HU(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return gU(BU(t),"of",arguments)}function WU(e){return gU(BU(e),"fromArray",arguments)}function GU(e){return gU((t=>{let i=0,r=setInterval((()=>t.next(i++)),e);return t.defer((()=>{clearInterval(r)})),"interval"}),"interval",arguments)}function jU(e,t){return gU((i=>{let r=0,n=setTimeout((()=>{if(i.removeDefer(o),i.next(r++),t){let e=setInterval((()=>i.next(r++)),t);i.defer((()=>{clearInterval(e)}))}else i.complete()}),e),o=()=>{clearTimeout(n)};i.defer(o)}),"timer",arguments)}function JU(e,t){return i=>{let r=e=>i.next(e);i.defer((()=>t(r))),e(r)}}function KU(e,t){return gU(JU(e,t),"fromEventPattern",arguments)}function qU(e,t){if("on"in e&&"off"in e)return gU(JU((i=>e.on(t,i)),(i=>e.off(t,i))),"fromEvent",arguments);if("addListener"in e&&"removeListener"in e)return gU(JU((i=>e.addListener(t,i)),(i=>e.removeListener(t,i))),"fromEvent",arguments);if("addEventListener"in e)return gU(JU((i=>e.addEventListener(t,i)),(i=>e.removeEventListener(t,i))),"fromEvent",arguments);throw"target is not a EventDispachter"}function zU(e){return gU((t=>{e.then(t.next.bind(t),t.error.bind(t))}),"fromPromise",arguments)}function YU(e,t){return gU(UU((()=>zU(fetch(e,t)))),"fromFetch",arguments)}function XU(e){return gU(FU((t=>{try{for(let i of e){if(t.disposed)return;t.next(i)}t.complete()}catch(Yb){t.error(Yb)}})),"fromIterable",arguments)}function QU(e){let t=i=>xU(this,void 0,void 0,(function*(){if(i.disposed)return;let{done:r,value:n}=yield e.read();r?i.complete():(i.next(n),t(i))}));return gU((e=>{t(e)}),"fromReader",arguments)}function ZU(e){return gU((t=>{let i=new AbortController,r=i.signal;t.defer((()=>i.abort("cancelled"))),e.pipeTo(new WritableStream({write(e){t.next(e)},close(){t.complete()},abort(e){t.error(e)}}),{signal:r}).then((()=>t.complete()),(e=>t.error(e)))}),"fromReadableStream",arguments)}function $U(){return gU((e=>{let t=requestAnimationFrame((function i(r){e.disposed||(e.next(r),t=requestAnimationFrame(i))}));e.defer((()=>cancelAnimationFrame(t)))}),"fromAnimationFrame",arguments)}function eF(e,t){return gU((function(i){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t+e;for(;r<n&&!i.disposed;)i.next(r++);return i.complete(),"range"}),"range",arguments)}function tF(e,t){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return gU((i=>{let n=r.concat((e=>(i.next(e),i.complete())));e.apply(t,n)}),"bindCallback",arguments)}function iF(e,t){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return gU((i=>{let n=r.concat(((e,t)=>e?i.error(e):(i.next(t),i.complete())));e.apply(t,n)}),"bindNodeCallback",arguments)}function rF(){return gU((()=>{}),"never",arguments)}function nF(e){return gU((t=>t.error(e)),"throwError",arguments)}function oF(){return gU((e=>e.complete()),"empty",arguments)}var sF=class extends mU{constructor(e,t,i){super(e),this.f=t;let r=()=>{this.sink.next(this.acc),this.sink.complete()};void 0===i?this.next=e=>{this.acc=e,this.complete=r,this.resetNext()}:(this.acc=i,this.complete=r)}next(e){this.acc=this.f(this.acc,e)}},aF=EU(sF,"reduce"),cF=e=>EU(sF,"count")(((t,i)=>e(i)?t+1:t),0),lF=()=>EU(sF,"max")(Math.max),dF=()=>EU(sF,"min")(Math.min),uF=()=>EU(sF,"sum")(((e,t)=>e+t),0),hF=EU(class extends mU{constructor(e,t,i){super(e),this.filter=t,this.thisArg=i}next(e){this.filter.call(this.thisArg,e)&&this.sink.next(e)}},"filter"),pF=EU(class extends mU{next(e){}},"ignoreElements"),mF=EU(class extends mU{constructor(e,t){super(e),this.count=t}next(e){this.sink.next(e),0==--this.count&&this.complete()}},"take"),_F=EU(class extends mU{constructor(e,t){super(e);let i=new mU(e);i.next=()=>e.complete(),i.complete=lU,i.subscribe(t)}},"takeUntil"),fF=EU(class extends mU{constructor(e,t){super(e),this.f=t}next(e){this.f(e)?this.sink.next(e):this.complete()}},"takeWhile"),gF=e=>aF(((t,i)=>(t.push(i),t.length>e&&t.shift(),t)),[]),EF=EU(class extends mU{constructor(e,t){super(e),this.count=t}next(e){0==--this.count&&(this.next=super.next)}},"skip"),TF=EU(class extends mU{constructor(e,t){super(e),e.next=sU;let i=new mU(e);i.next=()=>{i.dispose(),e.resetNext()},i.complete=lU,i.subscribe(t)}},"skipUntil"),vF=EU(class extends mU{constructor(e,t){super(e),this.f=t}next(e){this.f(e)||(this.next=super.next,this.next(e))}},"skipWhile"),yF={leading:!0,trailing:!1},SF=class extends mU{constructor(e,t,i){super(e),this.durationSelector=t,this.trailing=i}cacheValue(e){this.last=e,this.disposed&&this.throttle(e)}send(e){this.sink.next(e),this.throttle(e)}throttle(e){this.reset(),this.subscribe(this.durationSelector(e))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},IF=class extends mU{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:yF;super(e),this.durationSelector=t,this.config=i,this._throttle=new SF(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(e){this._throttle.disposed&&this.config.leading?this._throttle.send(e):this._throttle.cacheValue(e)}complete(){this._throttle.throttle=sU,this._throttle.complete(),super.complete()}},AF=EU(IF,"throttle"),RF={leading:!1,trailing:!0},CF=e=>EU(IF,"audit")(e,RF),bF=class extends mU{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},kF=class extends mU{constructor(e,t){super(e),this.durationSelector=t,this._debounce=new bF(this.sink),this._debounce.dispose()}next(e){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=e,this._debounce.subscribe(this.durationSelector(e))}complete(){this._debounce.complete(),super.complete()}},DF=EU(kF,"debounce"),wF=e=>EU(kF,"debounceTime")((t=>jU(e))),NF=EU(class extends mU{constructor(e,t,i){super(e),this.count=t,this.defaultValue=i}next(e){0==this.count--&&(this.defaultValue=e,this.complete())}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("not enough elements in sequence"))}},"elementAt"),OF=e=>t=>mF(1)(vF((t=>!e(t)))(t)),MF=EU(class extends mU{constructor(e,t){super(e),this.f=t,this.i=0}next(e){this.f(e)?(this.sink.next(this.i++),this.complete()):++this.i}},"findIndex"),PF=EU(class extends mU{constructor(e,t,i){super(e),this.f=t,this.defaultValue=i,this.index=0}next(e){(!this.f||this.f(e,this.index++))&&(this.defaultValue=e,this.complete())}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"first"),LF=EU(class extends mU{constructor(e,t,i){super(e),this.f=t,this.defaultValue=i,this.index=0}next(e){(!this.f||this.f(e,this.index++))&&(this.defaultValue=e)}complete(){void 0!==this.defaultValue?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"last"),xF=EU(class extends mU{constructor(e,t){super(e),this.predicate=t,this.index=0}next(e){this.predicate(e,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){void 0!==this.result?(this.sink.next(this.result),super.complete()):this.error(new Error("no elements in sequence"))}},"every"),VF=EU(class extends mU{constructor(e,t,i){super(e),this.f=t,void 0===i?this.next=e=>{this.acc=e,this.resetNext(),this.sink.next(this.acc)}:this.acc=i}next(e){this.sink.next(this.acc=this.f(this.acc,e))}},"scan"),UF=EU(class extends mU{constructor(){super(...arguments),this.hasLast=!1}next(e){this.hasLast?this.sink.next([this.last,e]):this.hasLast=!0,this.last=e}},"pairwise"),FF=class extends mU{constructor(e,t,i){super(e),this.mapper=t,this.thisArg=i}next(e){super.next(this.mapper.call(this.thisArg,e))}},BF=EU(FF,"map"),HF=e=>EU(FF,"mapTo")((t=>e)),WF=class extends mU{constructor(e,t,i){super(e),this.data=t,this.context=i}next(e){let t=this.context.combineResults;t?this.sink.next(t(this.data,e)):this.sink.next(e)}tryComplete(){this.context.resetComplete(),this.dispose()}},GF=class extends mU{constructor(e,t,i){super(e),this.makeSource=t,this.combineResults=i,this.index=0}subInner(e,t){let i=this.currentSink=new t(this.sink,e,this);this.complete=this.tryComplete,i.complete=i.tryComplete,i.subscribe(this.makeSource(e,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},jF=class extends WF{},JF=class extends GF{next(e){this.subInner(e,jF),this.next=e=>{this.currentSink.dispose(),this.subInner(e,jF)}}},KF=EU(JF,"switchMap");function qF(e){return(t,i)=>e((()=>t),i)}var zF=qF(EU(JF,"switchMapTo")),YF=class extends WF{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},XF=class extends GF{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(e){this.next2(e),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),YF),this.disposed&&0===this.sources.length&&this.currentSink.resetComplete()}tryComplete(){0===this.sources.length&&this.currentSink.resetComplete(),this.dispose()}},QF=EU(XF,"concatMap"),ZF=qF(EU(XF,"concatMapTo")),$F=class extends WF{tryComplete(){this.context.inners.delete(this),super.dispose(),0===this.context.inners.size&&this.context.resetComplete()}},eB=class extends GF{constructor(){super(...arguments),this.inners=new Set}next(e){this.subInner(e,$F),this.inners.add(this.currentSink)}tryComplete(){1===this.inners.size?this.inners.forEach((e=>e.resetComplete())):this.dispose()}},tB=EU(eB,"mergeMap"),iB=qF(EU(eB,"mergeMapTo")),rB=class extends WF{dispose(){this.context.resetNext(),super.dispose()}},nB=class extends GF{next(e){this.next=sU,this.subInner(e,rB)}},oB=EU(nB,"exhaustMap"),sB=qF(EU(nB,"exhaustMapTo")),aB=EU(class extends mU{constructor(e,t){super(e),this.f=t,this.groups=new Map}next(e){let t=this.f(e),i=this.groups.get(t);void 0===i&&(i=VU(),i.key=t,this.groups.set(t,i),super.next(i)),i.next(e)}complete(){this.groups.forEach((e=>e.complete())),super.complete()}error(e){this.groups.forEach((t=>t.error(e))),super.error(e)}},"groupBy"),cB=EU(class extends mU{constructor(){super(...arguments),this.start=new Date}next(e){this.sink.next({value:e,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},"timeInterval"),lB=EU(class extends mU{constructor(e,t){super(e),this.miniseconds=t,this.buffer=[],this.id=setInterval((()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0}),this.miniseconds)}next(e){this.buffer.push(e)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},"bufferTime"),dB=EU(class extends mU{constructor(e,t){super(e),this.buffer=[],this.delayTime=t}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(e){this.timeoutId=setTimeout((()=>{let e=this.buffer.shift();if(e){let{time:t,data:i}=e;super.next(i),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(t))}}),e)}next(e){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:e})}complete(){this.timeoutId=setTimeout((()=>super.complete()),this.delayTime)}},"delay"),uB=EU(class extends mU{constructor(e,t){super(e),this.selector=t}error(e){this.dispose(),this.selector(e)(this.sink)}},"catchError"),hB=()=>e=>new Promise(((t,i)=>{let r;new _U(e,(e=>r=e),i,(()=>t(r)))})),pB=()=>e=>{let t;return new ReadableStream({start(i){t=new _U(e,i.enqueue.bind(i),i.error.bind(i),i.close.bind(i))},cancel(){t.dispose()}})},mB=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sU,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:sU,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:sU;return r=>new _U(r,e,t,i)},_B=EU(class extends mU{constructor(e,t){super(e),t instanceof Function?this.next=i=>{t(i),e.next(i)}:(t.next&&(this.next=i=>{t.next(i),e.next(i)}),t.complete&&(this.complete=()=>{t.complete(),e.complete()}),t.error&&(this.error=i=>{t.error(i),e.error(i)}))}},"tap"),fB=EU(class extends mU{constructor(e,t){super(e),this.timeout=t,this.id=setTimeout((()=>this.error(new SU(this.timeout))),this.timeout)}next(e){super.next(e),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),gB=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return t=>{if(t instanceof hU){let i=gU((r=>{let n=e,o=new mU(r);o.error=e=>{n-- >0?o.subscribe(t):r.error(e)},o.sourceId=i.id,o.subscribe(t)}),"retry",[e]);return i.source=t,yU.pipe(i),i}return i=>{let r=e,n=new mU(i);n.error=e=>{r-- >0?t(n):i.error(e)},t(n)}}},EB=fU(GU(250),BF((()=>performance.now())),AU()),TB=[0,1,1,1,0,0,1,0],vB=class extends nU{constructor(e,t){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},t)),Ib(this,"_intervalId",0),Ib(this,"_sequence",0),Ib(this,"checkGLError",!1),Ib(this,"checkVisibilityChange"),e instanceof OB?this.ctx2d=e.ctx||null:e.available&&null!=t&&t.mirrorUpAndDown&&this.setTexBuffer(TB)}start(e){this.log.info("".concat(this.name," start render ").concat(e," fps")),nx.clearTask(this._intervalId),this._intervalId=nx.run("intervalInWorker",(()=>{if(e!==this.context.frameRate&&(nx.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof NB){let e=this.context.ctx.getError();e&&this.context.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:5,message:"".concat(this.name," req ").concat(this._sequence," render ").concat(this.totalFrames," faild ").concat(e)}))}}),{fps:this.context.frameRate})}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}addInput(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];super.addInput(e,...i),this.start(this.context.frameRate)}update(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this._intervalId&&(nx.clearTask(this._intervalId),this._intervalId=0,1===e&&(this.log.info("".concat(this.name," use requestVideoFrameCallback")),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),nx.clearTask(this._intervalId)}resize(e,t){super.resize(e,t),this.context.setSize(e,t)}close(){super.close(),nx.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},yB=class extends vB{constructor(e,t){super(e,t),Ib(this,"_videoTrack"),Ib(this,"_muteOb"),Ib(this,"_closedOb",qU(this,"closed")),Ib(this,"_subscription"),Ib(this,"_canvasContainer"),Number(LO)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=qU(this._videoTrack,"mute"),fU(qU(this._videoTrack,"ended"),_F(this._closedOb),mB((()=>{this.context.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))})))}enableCheckMute(){var e;this._subscription=fU(this._muteOb,_F(this._closedOb),zF((e=5e3,t=>{let i=performance.now();fU(EB,vF((t=>t-i<e)),mF(1))(t)})),hF((()=>{var e;return!(null==(e=this._videoTrack)||!e.muted||document.hidden)})),mB((()=>{this.context.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))})))}disableCheckMute(){var e;null==(e=this._subscription)||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info("".concat(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,t;super.close(),null==(e=this._videoTrack)||e.stop(),delete this._videoTrack,null==(t=this._canvasContainer)||t.remove()}},SB=class extends yB{render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))}},IB=class extends yB{constructor(e,t,i){super(e,{name:"smallDestination",logger:i}),this.resolution=t}resize(e,t){let i,r=e*t,n=this.resolution.width*this.resolution.height;this.log.info("big res: ".concat(e,"*").concat(t," small res: ").concat(this.resolution.width,"*").concat(this.resolution.height," ")),r>n?i=r/n:(this.log.warn("Small stream resolution is not smaller than big stream, which is invalid. big: ".concat(e," * ").concat(t," small: ").concat(this.resolution.width," * ").concat(this.resolution.height)),i=r/19200),super.resize(e/Math.sqrt(i),t/Math.sqrt(i))}},AB=class extends nU{constructor(e,t){super(e,gb({name:"imageSource"},t)),Ib(this,"_lastImage"),Ib(this,"_totalFrames",0),Ib(this,"_autoResize",!1),Ib(this,"_canvasRendered"),Ib(this,"videoCallbackId",0),Ib(this,"waitingFirstFrame",!0),Ib(this,"shouldUpdate",!0),this._autoResize=!1!==(null==t?void 0:t.autoResize),16===BO&&(this._canvasRendered=VU(),fU(this._canvasRendered,OU(this._image),KF((e=>e instanceof HTMLCanvasElement?qU(e,"rendered"):oF())),_F(qU(this,"closed")),mB((()=>{this.update()}))))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),xL()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback(((e,t)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=t.presentedFrames,this.update(1))})))}_render(e,t){var i;let{width:r,height:n}=this,{image:o}=this;if(o instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),({videoWidth:r,videoHeight:n}=o),!r||!n)return!1;o.width=r,o.height=n}else if(o instanceof HTMLImageElement||o instanceof ImageData||o instanceof ImageBitmap){if(({width:r,height:n}=o),o!==this._lastImage)this._lastImage=o;else if(r===this.width&&n===this.height)return!0}else o instanceof HTMLCanvasElement||o instanceof OffscreenCanvas?(({width:r,height:n}=o),this._lastImage=o):"undefined"!=typeof VideoFrame&&o instanceof VideoFrame&&(({displayWidth:r,displayHeight:n}=o),null==(i=this._lastImage)||i.close(),this._lastImage=o);if(!this._autoResize)return!0;if(this.width===r&&this.height===n&&this.totalFrames){if(t){this.useTexture();let e=this.context.ctx;e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,o)}}else{if(t){this.useTexture();let e=this.context.ctx;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,o)}this.resize(r,n)}return!0}get image(){return this._image}set image(e){var t;null==(t=this._canvasRendered)||t.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},RB=class extends AB{constructor(e,t,i){super(e,i),this._player=t,this.name="videoPlayerSource",fU(qU(this._player,ox.PLAYER_STATE_CHANGED),_F(qU(this,"closed")),hF((e=>{let{state:t}=e;return"PLAYING"===t})),mB((()=>{this.tryVideoFrameCallback()})))}get image(){return this._player.element}},CB=class extends RB{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(e,t,i){super(e,new Vx({id:i.name,track:t,muted:!0,container:null,objectFit:"contain",log:i.logger}),i),this.name="videoTrackSource",this._player.play()}replaceTrack(e){this.waitingFirstFrame=!0,this._player.setTrack(e),this._player.play()}close(){super.close(),this._player.stop()}},bB=class extends nU{constructor(e,t,i){super(e,Eb(gb({name:"textSource"},i),{create2d:!0})),Ib(this,"hasChange",!0),Ib(this,"content",""),this.ctx2d.textBaseline="top",this.content=t.content||"",t.font&&(this.font=t.font),t.color&&(this.color=t.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return(null==(e=this.ctx2d)?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return(null==(e=this.ctx2d)?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)}render(e){return!1}resize(e,t){if(!this.ctx2d)return;let{color:i,font:r}=this;super.resize(e,t),this.color=i,this.font=r}drawMultilineText(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1.2;if(!this.ctx2d)return;let r=this.ctx2d.measureText(this.content);t+=r.fontBoundingBoxAscent||r.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),o=(n?parseInt(n[1],10):16)*i,s=this.content.split("\n");for(let a=0;a<s.length;a++)this.ctx2d.fillText(s[a],e,t+a*o)}},kB=class extends ZL{constructor(e){super(),Ib(this,"frameRate"),Ib(this,"_canvas"),Ib(this,"log"),Ib(this,"hasAlpha",!1),Ib(this,"name"),Ib(this,"error"),this.name=e.name,this.log=e.logger.createChild({id:"vc-".concat(this.name)}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return(null==(e=this._canvas)?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return(null==(e=this._canvas)?void 0:e.height)||0}setSize(e,t){this._canvas&&(this._canvas.width=e,this._canvas.height=t)}createVideoTrackSource(e,t){return new CB(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new yB(this,e)}createVideoImageSource(e,t){return new AB(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new RB(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}createTextSource(e,t){return new bB(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return"created"===this.state}disconnect(){this.emit("disconnect")}};Ib(kB,"_ids",0);var DB={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},wB=class extends kB{constructor(){super(...arguments),Ib(this,"defaultProgam"),Ib(this,"defaultVShader"),Ib(this,"defaultFShader"),Ib(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(kB._ids++)),this.ctx=this._canvas.getContext("webgl2",DB),!this.ctx)throw new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,"\n// 顶点着色器\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\n\nvoid main() {\n gl_Position = a_position;\n v_texCoord = a_texCoord;\n}\n"),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,"\n// 片元着色器\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_texture;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n} "),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",(()=>{this.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}))}destroy(e){let t="";return e&&(t=e.message,this.error=e,UP.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info("video context destroy".concat(t)?": ".concat(t):""),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 t;null==(t=this.ctx)||t.viewport(0,0,e,this.height),super.width=e}set height(e){var t;null==(t=this.ctx)||t.viewport(0,0,this.width,e),super.height=e}setSize(e,t){var i;null==(i=this.ctx)||i.viewport(0,0,e,t),super.setSize(e,t)}createShader(e,t){let i=this.ctx,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),r}createProgram(e,t){let i=this.ctx,r=i.createProgram();return i.attachShader(r,e),i.attachShader(r,t),i.linkProgram(r),i.getProgramParameter(r,i.LINK_STATUS)||this.log.error(i.getProgramInfoLog(r)),r}};Ib(wB,"UNAVAILABLE","unavailable"),Sb([YL(ZL.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),UP.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),UP.addSuccessEvent({key:512700})}})],wB.prototype,"create",1),Sb([YL("created",ZL.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(wB.UNAVAILABLE,e),this.removeAllListeners()}})],wB.prototype,"destroy",1);var NB=wB,OB=class extends kB{constructor(){super(...arguments),Ib(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(kB._ids++),this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new Fb({code:Vb.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 t="";e&&(t=e.message,this.error=e,UP.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info("video context destroy ".concat(t?": ".concat(t):"")),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),UP.addSuccessEvent({key:512703})}};function MB(e,t,i,r,n){arguments.length>5&&void 0!==arguments[5]&&arguments[5]&&([i,r]=[r,i]);let o={sWidth:e,sHeight:t,dWidth:i,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(0===e||0===t)return o;switch(n){case void 0:case"fill":break;case"contain":{let n=Math.min(i/e,r/t);o.dWidth=e*n,o.dHeight=t*n,o.dx=(i-o.dWidth)/2,o.dy=(r-o.dHeight)/2;break}case"cover":{let n=Math.max(i/e,r/t),s=i/n,a=r/n;o.sx=(e-s)/2,o.sy=(t-a)/2,o.sWidth=s,o.sHeight=a;break}}return o}Sb([YL(ZL.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),UP.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),UP.addSuccessEvent({key:512701})}})],OB.prototype,"create",1),Sb([YL("created",ZL.INIT,{ignoreError:!0,sync:!0})],OB.prototype,"destroy",1);var PB=class{constructor(e,t){this.node=e,this.layout=t,Ib(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}},LB=class extends nU{constructor(e,t){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:t}),Ib(this,"inputs",[]),Ib(this,"backgroundColor","black")}addInput(e,t){let i=0,r=this.inputs.length;for(;i<r;){let e=Math.floor((i+r)/2);if(this.inputs[e].layout.zIndex<t.zIndex)i=e+1;else{if(!(this.inputs[e].layout.zIndex>t.zIndex))throw new Error("input already exists at zIndex ".concat(t.zIndex));r=e}}let n=new PB(e,t);this.inputs.splice(i,0,n)}changeInputLayout(e,t){let i=this.inputs.findIndex((t=>t.node===e));if(i<0)return;let{x:r,y:n,width:o,height:s,zIndex:a,fillMode:c,rotation:l,hidden:d}=t;if(!uw(a)&&this.inputs.some((t=>t.layout.zIndex===a&&t.node!==e)))throw new Error("input already exists at zIndex ".concat(t.zIndex));let u=this.inputs[i];uw(r)||(u.layout.x=r),uw(n)||(u.layout.y=n),uw(o)||(u.layout.width=o),uw(s)||(u.layout.height=s),uw(l)||(u.layout.rotation=l),uw(d)||(u.layout.hidden=d),c&&(u.layout.fillMode=c),!uw(a)&&a!==u.layout.zIndex&&(u.layout.zIndex=a,this.inputs.sort(((e,t)=>e.layout.zIndex-t.layout.zIndex)))}hasInput(e){return this.inputs.some((t=>t.node===e))}hasNoInput(){return 0===this.inputs.length}resize(e,t){if(!this.matchInputSize)return void super.resize(e,t);let i=this.inputs.reduce(((e,t)=>t?Object.assign(e,{width:Math.max(e.width,t.right),height:Math.max(e.height,t.bottom)}):e),{width:0,height:0});super.resize(i.width,i.height),this.context instanceof NB&&this.inputs.forEach((e=>{if(e){let t=this.layout2texCoords(e);e.positionBuffer?this.changeBufferData(e.positionBuffer,t):e.positionBuffer=this.createBuffer(t)}}))}connect(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return super.connect(e,...i),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter((t=>t.node!==e)),0===this.inputs.length&&this.drawBackGround2d(this.backgroundColor)}render(e){let t=this.context.ctx;if(t.clearColor(0,0,0,0),this.inputs.reduce(((t,i)=>i.node.requestFrame(e)||t),!1)&&t){this.useProgram(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];t&&(t.node.useTexture(),this.draw(t.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach((t=>t.node.requestFrame(e))),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];if(t.hidden)continue;let i=MB(t.node.width,t.node.height,t.width,t.height,t.fillMode,Yw(t.rotation));this.draw2d(t.node.image,t.x+i.dx,t.y+i.dy,i.dWidth,i.dHeight,i.sx,i.sy,i.sWidth,i.sHeight)}return!0}return!1}debugLayout(e,t,i,r){let n=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this.ctx2d&&(n&&([i,r]=[r,i]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,t,i,r),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:t,y:i,width:r,height:n,name:o}=this,s=Date.now(),a=(e-this.lastInfo.totalFrames)/((s-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:e,x:t,y:i,width:r,height:n,timestamp:s,fps:a,name:o},gb({parent:this.inputs.filter((e=>e)).map((e=>e.node.getInfo()))},this.lastInfo)}removeAllInputs(){this.inputs.forEach((e=>{var t;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof NB)try{null==(t=this.context.ctx)||t.deleteBuffer(e.positionBuffer)}catch(AM){}}))}close(){super.close(),this.removeAllInputs()}},xB=[1,0,0,0,1,1,0,1],VB=class extends nU{constructor(e,t,i,r){if(super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:t}),Ib(this,"mirror",!1),Ib(this,"rotation",0),i&&(this.mirror=i),r&&(this.rotation=r),e instanceof NB)try{this.setTexBuffer(xB)}catch(Xb){e.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(Xb.message||Xb)}))}}draw2d(e,t,i,r,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)),90===this.rotation?(this.ctx2d.translate(r,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/r,r/n)):180===this.rotation?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):270===this.rotation&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/r,r/n));let o=super.draw2d(e,t,i,r,n);return this.ctx2d.restore(),o}return!1}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}resize(e,t){Yw(this.rotation)&&([e,t]=[t,e]),super.resize(e,t)}},UB=class extends zV{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,Vx),Ib(this,"inputLocalVideoTracks",new Map),Ib(this,"inputLocalScreenTracks",new Map),Ib(this,"cameraNodeMap",new Map),Ib(this,"screenNodeMap",new Map),Ib(this,"textNodeMap",new Map),Ib(this,"imageNodeMap",new Map),Ib(this,"videoNodeMap",new Map),Ib(this,"endedIds",new Set),Ib(this,"videoContext"),Ib(this,"mixNode"),Ib(this,"destination"),Ib(this,"manager"),Ib(this,"stat"),Ib(this,"_checkId",0),Ib(this,"autoSetFps",!0),this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.mixNode=new LB(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=nx.run("interval",(()=>{this.destination&&this.log.debug(this.destination.getInfo())}),{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new OB({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let t of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])t.shouldUpdate=!1;setTimeout((()=>{var e;return null==(e=this.destination)?void 0:e.start(this.videoContext.frameRate)}),500)}setFpsAuto(){var e;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let t=null,i=0,r=!0;for(let[n,o]of this.inputLocalVideoTracks)if(o.profile.frameRate>i){if(this.endedIds.has(n)){let e=this.cameraNodeMap.get(n);e&&e.image.cancelVideoFrameCallback(e.videoCallbackId);continue}i=o.profile.frameRate,t=n}for(let[n,o]of this.inputLocalScreenTracks)if(o.profile.frameRate>i){if(this.endedIds.has(n)){let e=this.screenNodeMap.get(n);e&&e.image.cancelVideoFrameCallback(e.videoCallbackId);continue}i=o.profile.frameRate,t=n,r=!1}if(null!==t){let e=r?this.cameraNodeMap.get(t):this.screenNodeMap.get(t);e&&(e.shouldUpdate=!0,e.tryVideoFrameCallback()),this.log.info("set mix fps: ",i)}else null==(e=this.destination)||e.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,t){var i;null==(i=this.mixNode)||i.resize(e,t)}startMix(){return Rb(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),PO&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),null==(e=this.manager)||e.changeInput(this)}))}addCameraSource(e,t,i){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error("There is already a cameraSource with the same ID: ".concat(e));let r,{mediaTrack:n}=t;if(!n)throw new Error("no mediaTrack, add cameraSource failed");t.recaptureMode=1,cx(this,uV).add("videoInputRemoved",(i=>{i.deviceId===t.deviceId&&(this.endedIds.add(e),this.setFpsAuto())})),t.on("output-media-track-changed",(()=>{this.endedIds.delete(e),this.updateCameraSource(e,i,t.mediaTrack)})),r=16===BO&&n instanceof CanvasCaptureMediaStreamTrack?this.videoContext.createVideoImageSource(n.canvas,{name:"cameraCanvasSource",logger:this.log}):this.videoContext.createVideoTrackSource(n,"cameraNodeSource"),r.resize(t.settings.width,t.settings.height),r.shouldUpdate=!1,this._connectMix(r,i,"cover"),this.inputLocalVideoTracks.set(e,t),this.cameraNodeMap.set(e,r),this.setFpsAuto()}addScreenSource(e,t,i){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error("There is already a screenSource with the same ID: ".concat(e));let{mediaTrack:r}=t;if(!r)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(r,"screenNodeSource");n.resize(t.settings.width,t.settings.height),n.shouldUpdate=!1,this._connectMix(n,i),this.inputLocalScreenTracks.set(e,t),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:t,content:i="",font:r,color:n,layout:o}=e;if(this.textNodeMap.has(t))throw new Error("There is already a textSource with the same ID: ".concat(t));let s=this.videoContext.createTextSource({content:i,font:r,color:n});s.resize(o.width,o.height),this._connectMix(s,o),this.textNodeMap.set(t,s)}addImageSource(e,t,i){if(this.imageNodeMap.has(e))throw new Error("There is already a imageSource with the same ID: ".concat(e));let r=this.videoContext.createVideoImageSource(t,{autoResize:!1,logger:this.log});r.resize(t.width,t.height),this._connectMix(r,i),this.imageNodeMap.set(e,r)}addVideoSource(e,t,i){if(this.videoNodeMap.has(e))throw new Error("There is already a videoSource with the same ID: ".concat(e));let r=this.videoContext.createVideoImageSource(t,{autoResize:!1,logger:this.log});r.resize(t.videoWidth,t.videoHeight),r.shouldUpdate=!1,this._connectMix(r,i),this.videoNodeMap.set(e,r)}updateCameraSource(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0,n=this.cameraNodeMap.get(e);if(n){if(i){if(16===BO&&i instanceof CanvasCaptureMediaStreamTrack)if(n instanceof CB){let t=n.output;n.close(),n=this.videoContext.createVideoImageSource(i.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(t),this.cameraNodeMap.set(e,n)}else n.image=i.canvas;else if(n instanceof CB)n.replaceTrack(i);else{let t=n.output;n.close(),n=this.videoContext.createVideoTrackSource(i,"cameraNodeSource"),n.connect(t),this.cameraNodeMap.set(e,n)}let{width:t,height:r}=i.getSettings();t&&r&&n.resize(t,r)}r&&n.resize(r.width,r.height),(r||i)&&this.setFpsAuto(),this._changeMixLayout(n,t)}}updateScreenSource(e,t){let i=this.screenNodeMap.get(e);i&&this._changeMixLayout(i,t)}updateTextSource(e){let{id:t,content:i,font:r,color:n,layout:o}=e,s=this.textNodeMap.get(t);s&&(uw(i)||(s.content=i),uw(r)||(s.font=r),uw(n)||(s.color=n),s.resize(o.width,o.height),this._changeMixLayout(s,o))}updateImageSource(e,t,i){let r=this.imageNodeMap.get(e);r&&(i&&(r.image=i,r.resize(i.width,i.height)),this._changeMixLayout(r,t))}updateVideoSource(e,t,i){let r=this.videoNodeMap.get(e);if(r){if(i){let e=r.image;e instanceof HTMLVideoElement&&this.stopVideoElement(e),r.image=i,r.resize(i.videoWidth,i.videoHeight)}this._changeMixLayout(r,t)}}_connectMix(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"contain";if(!this.mixNode)return;let{mirror:r,rotation:n}=t;e.disconnect();let o=new VB(this.videoContext,this.log,r,n);o=e.connect(o),t.fillMode||(t.fillMode=i),o.connect(this.mixNode,t)}_changeMixLayout(e,t){if(!this.mixNode)return;let{mirror:i,rotation:r}=t,n=e.output||e;n instanceof VB&&(uw(i)||(n.mirror=i),uw(r)||(n.rotation=r),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,t)}removeCameraSource(e){let t=this.inputLocalVideoTracks.get(e);if(!t)return;t.close(),this.inputLocalVideoTracks.delete(e);let i=this.cameraNodeMap.get(e);i&&(i.output instanceof VB&&i.output.close(),i.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let t=this.inputLocalScreenTracks.get(e);if(!t)return;t.close(),this.inputLocalScreenTracks.delete(e);let i=this.screenNodeMap.get(e);i&&(i.output instanceof VB&&i.output.close(),i.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let t=this.textNodeMap.get(e);t&&(t.output instanceof VB&&t.output.close(),t.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let t=this.imageNodeMap.get(e);t&&(t.output instanceof VB&&t.output.close(),t.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let t=this.videoNodeMap.get(e);t&&(t.output instanceof VB&&t.output.close(),t.image instanceof HTMLVideoElement&&this.stopVideoElement(t.image),t.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),nx.clearTask(this._checkId),null==(e=this.videoContext)||e.destroy(),delete this.mixNode,delete this.destination;for(let t of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])t.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),lx(this);for(let t of this.videoNodeMap.values())t.image instanceof HTMLVideoElement&&this.stopVideoElement(t.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}},FB=fM();if("undefined"!=typeof navigator&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:FB,exposeOrigin:!0,permittedOrigins:["*"]})}catch(uJ){}var BB=function(e){return Rb(this,null,(function*(){let t=null,i=function(e){let t={preferCurrentTab:"current-tab"===e.preferDisplaySurface||!!e.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},i={width:MO?{max:e.width}:{ideal:e.width,max:e.width},height:MO?{max:e.height}:{ideal:e.height,max:e.height},frameRate:e.frameRate,displaySurface:e.preferDisplaySurface||"monitor"};if(t.video=i,e.systemAudio){let{echoCancellation:i=!0,noiseSuppression:r=!1,autoGainControl:n=!1}=e;t.audio={echoCancellation:i,noiseSuppression:r,autoGainControl:n,sampleRate:48e3}}return t}(e);_M.info("getDisplayMedia with constraints: ".concat(JSON.stringify(i)));let r=yield navigator.mediaDevices.getDisplayMedia(i);e.systemAudio&&0===r.getAudioTracks().length&&(DO&&NO<74||MO||wN)&&_M.warn("Your browser not support capture system audio");let n=r.getVideoTracks()[0];if(n){if(e.frameRate)try{yield n.applyConstraints({frameRate:{min:e.frameRate,ideal:e.frameRate},width:e.width,height:e.height})}catch(bM){_M.warn("screen applyConstraints failed: ".concat(bM))}e.captureElement&&(yield function(e,t){return Rb(this,null,(function*(){var i;if("CropTarget"in window&&"fromElement"in CropTarget&&dw(e.cropTo))try{if((null==(i=e.getCaptureHandle())?void 0:i.handle)!==FB)return;let r=yield CropTarget.fromElement(t);yield e.cropTo(r)}catch(r){_M.warn("cropTo target failed ".concat(r))}}))}(n,e.captureElement))}if(e.audio){let i=function(e){let t={echoCancellation:e.echoCancellation,autoGainControl:e.autoGainControl,noiseSuppression:e.noiseSuppression,sampleRate:e.sampleRate,channelCount:e.channelCount};return uw(e.microphoneId)||(t.deviceId=e.microphoneId),{audio:t,video:!1}}(e);_M.info("getUserMedia with constraints: ".concat(JSON.stringify(i))),t=yield navigator.mediaDevices.getUserMedia(i),r.addTrack(t.getAudioTracks()[0])}return r}))},HB=class extends eU{constructor(e){super(e,2),Ib(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),Ib(this,"objectFit","contain"),Ib(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}get isShareCurrentTab(){var e,t;try{return FB===(null==(t=null==(e=this.mediaTrack)?void 0:e.getCaptureHandle())?void 0:t.handle)}catch(AM){return}}capture(e){return Rb(this,arguments,(function(e){var t=this;let{systemAudio:i=!1,autoGainControl:r,echoCancellation:n,noiseSuppression:o,audioTrack:s,videoTrack:a,captureElement:c,preferDisplaySurface:l}=e;return function*(){try{let e;return a||s?(e=new MediaStream,a&&e.addTrack(a),s&&e.addTrack(s)):(e=yield BB({audio:!1,systemAudio:i,width:t.profile.width,height:t.profile.height,frameRate:t.profile.frameRate,autoGainControl:r,echoCancellation:n,noiseSuppression:o,captureElement:c,preferDisplaySurface:l}),t.sourceTrack=e.getVideoTracks()[0]),yield t.setInputMediaStreamTrack(e.getVideoTracks()[0]),e}catch(e){throw t.log.error("getDisplayMedia error observed ".concat(e)),e instanceof Fb?e:new Fb({code:Vb.INITIALIZE_FAILED,name:e.name,message:e.message})}}()}))}switchDevice(e){return Rb(this,null,(function*(){throw new Error("Method not implemented.")}))}};Sb([PV((function(e){this.setContentHint(e.contentHint||"detail")}))],HB.prototype,"capture",1);var WB,GB=class extends XV{constructor(e){super(e),this._log.id="s-".concat(this._log.id)}addAudioProcessor(e,t,i,r){this.pipeline.silentNode.setNode(i),this.pipeline.mixNode.setNode(t),this.pipeline.aec.setNode(r),this.enableTrackAEC(!1)}removeAudioProcessor(e,t,i,r){this.pipeline.aec.node===r&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};function jB(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3?arguments[3]:void 0;return Rb(this,null,(function*(){let n=Yx();WB||(WB=Ux(n,URL.createObjectURL(new Blob(['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}});'],{type:"application/javascript"})))),yield WB;let o=n.sampleRate,s=new AudioWorkletNode(n,"dumper",{numberOfInputs:e.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:o,targetSampleRate:t}});return s.channelCountMode="explicit",s.channelCount=i,r&&s.port.postMessage({port:r},[r]),e.forEach(((e,t)=>e.connect(s,0,t))),new ReadableStream({start(e){s.port.onmessage=t=>{e.enqueue(t.data)}},cancel(){e.forEach((e=>e.disconnect(s))),s.port.close()}})}))}var JB=class extends eV{constructor(e){super(),this.room=e,Ib(this,"_localAudioTrack"),Ib(this,"_localScreenAudioTrack"),Ib(this,"log",_M.createLogger({id:"am"})),Ib(this,"denoiser"),Ib(this,"voiceChanger"),Ib(this,"mixChangedDebounce"),Ib(this,"audioProcessor"),Ib(this,"encodePipeline",[]),Ib(this,"decodePipeline",[]),Ib(this,"getPCMAbortCtrlMap",new Map),Ib(this,"audioFrameEventConfigMap",new Map),Ib(this,"audioReferenceMap",new Map),Ib(this,"isLocalAudioNeedAudioProcess",!1),Ib(this,"isScreenAudioNeedAudioProcess",!1),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return null==(e=this._localAudioTrack)?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return null==(e=this._localScreenAudioTrack)?void 0:e.pipeline}dump(e){var t,i;if(!this._localAudioTrack)return;let r=[],n=[];null!=(t=this._localAudioPipline)&&t.source.node&&(r.push(this._localAudioPipline.source.node),n.push("mic")),null!=(i=this._localAudioPipline)&&i.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),n.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),n.push("mix")),this.log.info("dump audio track ".concat(n,", duration: ").concat(e));let o=new AbortController,s=[],a=setTimeout((()=>{this.log.info('dump audio track complete please input "download()" to download.'),o.abort("timeout")}),1e3*e),c=()=>{for(let e=0;e<n.length;e++){let t=URL.createObjectURL(new Blob(s[e])),i=document.createElement("a");i.href=t,i.download="".concat(n[e],".pcm"),i.style.display="none",document.body.appendChild(i),i.click(),URL.revokeObjectURL(t),i.remove()}clearTimeout(a),o.abort("download")},l=jB(r).then((e=>e.pipeTo(new WritableStream({write(e){e.forEach(((e,t)=>s[t]=s[t]?s[t].concat(e[0]):[e[0]]))}}),o).catch((e=>c))));return{then:l.then.bind(l),download:c}}getPCM(e,t){var i,r,n;if("undefined"==typeof WritableStream)return void this.log.warn("getPCM failed: browser not support WritableStream");let{enable:o,sampleRate:s=48e3,channelCount:a=1,port:c}=(""===t?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(t)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info("getPCM ".concat(t||"local"));let l,d,u=Math.floor(.04*s),h=new Float32Array(u),p=new Float32Array(u),m=0,_=new AbortController,f=""===t?null==(i=this._localAudioTrack)?void 0:i.mediaTrack:null==(n=null==(r=this.room)?void 0:r.remotePublishedUserMap.get(t))?void 0:n.remoteAudioTrack.mediaTrack;if(f)return jB([Yx().createMediaStreamSource(new MediaStream([f]))],s,a,c).then((i=>i.pipeTo(new WritableStream({write(i){i[0][0]&&(m+i[0][0].length>u?(h.set(i[0][0].subarray(0,u-m),m),l=i[0][0].subarray(u-m),i[0][1]&&(p.set(i[0][1].subarray(0,u-m),m),d=i[0][1].subarray(u-m)),m+=u-m):(l&&(h.set(l,m),m+=l.length,l=void 0),d&&(p.set(d,m),d=void 0),h.set(i[0][0],m),i[0][1]&&p.set(i[0][1],m),m+=i[0][0].length),m>=u&&(m=0,e({userId:t,sampleRate:s,channelCount:a,data:1===a?h:[h,p]}),h=new Float32Array(u),p=new Float32Array(u)))}}),_).catch((e=>this.log.warn("stop getPCM reason:".concat(e)))))),_;this.log.info("getPCM failed: ".concat(t||"local"," has no audio track"))}get hasScreenAudioTrack(){return!uw(this._localScreenAudioTrack)}get hasAudioTrack(){return!uw(this._localAudioTrack)}changeInput(e){return e instanceof GB?(this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach(((t,i)=>{e.mixAudioReference(t,i)}))),e.pipeline.connect(),this.mixOnChange()):e instanceof XV?(this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach(((t,i)=>{e.mixAudioReference(t,i)}))),e.pipeline.connect(),this.mixOnChange()):e instanceof YB?e.setOutputMediaStreamTrack(e.mediaTrack):void 0}mixAudioReference(e,t){var i;null==(i=this._localAudioTrack)||i.mixAudioReference(e,t)}unMixAudioReference(e){var t;null==(t=this._localAudioTrack)||t.unMixAudioReference(e)}setAudioReferenceVolume(e,t){var i;null==(i=this._localAudioTrack)||i.setAudioReferenceVolume(e,t)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then((()=>{var e,t;return delete this.mixChangedDebounce,Promise.all([null==(e=this._localAudioTrack)?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),null==(t=this._localScreenAudioTrack)?void 0:t.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])}))),this.mixChangedDebounce}removeInput(e){e instanceof GB?delete this._localScreenAudioTrack:e instanceof XV&&delete this._localAudioTrack}addDenoiser(e){var t;this.denoiser=e,null==(t=this._localAudioTrack)||t.addDenoiser(e)}addAudioProcessor(e,t,i,r){var n;this.audioProcessor=[e,t,i,r],this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&(this._localAudioTrack.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach(((e,t)=>{var i;null==(i=this._localAudioTrack)||i.mixAudioReference(e,t)}))),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&(null==(n=this._localScreenAudioTrack)||n.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach(((e,t)=>{var i;null==(i=this._localScreenAudioTrack)||i.mixAudioReference(e,t)})))}removeDenoiser(e){var t;return delete this.denoiser,null==(t=this._localAudioTrack)?void 0:t.removeDenoiser(e)}addVoiceChanger(e,t){var i;this.voiceChanger=[e,t],null==(i=this._localAudioTrack)||i.pipeline.voiceChanger.setNode(e,t)}removeVoiceChanger(){var e;delete this.voiceChanger,null==(e=this._localAudioTrack)||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,t,i,r){var n;delete this.audioProcessor,null==(n=this._localAudioTrack)||n.removeAudioProcessor(e,t,i,r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach((e=>null==e?void 0:e.abort("destroy"))),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor(e){let{processor:t,type:i}=e;var r;this.encodePipeline.includes(t)||(this.encodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:i}=e;var r;this.decodePipeline.includes(t)||(this.decodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}handleLocalTrackStarted(e){let{room:t,userId:i}=e;var r;if(t!==this.room||this.getPCMAbortCtrlMap.get(i))return;let n=this.getPCM((e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)}),"");this.getPCMAbortCtrlMap.set(i,n),this.getPCMAbortCtrlMap.get(i)&&(null==(r=this._localAudioTrack)||r.on("input-media-track-changed",(()=>{let e=this.getPCMAbortCtrlMap.get(i);e&&(e.abort("inputMediaTrackChanged"),e=this.getPCM((e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)}),""),this.getPCMAbortCtrlMap.set(i,e))})))}handleLocalTrackStopped(e){let{room:t,userId:i}=e;if(t!==this.room)return;let r=this.getPCMAbortCtrlMap.get(i);r&&(r.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(i))}handleRemoteTrackStarted(e){let{room:t,userId:i}=e;if(t===this.room&&!this.getPCMAbortCtrlMap.get(i)){let e=this.room.audioManager.getPCM((e=>{var t;null==(t=this.room)||t.emit("audio-frame",e)}),i);this.getPCMAbortCtrlMap.set(i,e)}}handleRemoteTrackStopped(e){let{room:t,userId:i}=e;if(t!==this.room)return;let r=this.getPCMAbortCtrlMap.get(i);r&&(r.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(i))}installEvent(){dM.on("113",this.handleLocalTrackStarted,this),dM.on("114",this.handleLocalTrackStopped,this),dM.on("115",this.handleRemoteTrackStarted,this),dM.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){dM.off("113",this.handleLocalTrackStarted),dM.off("114",this.handleLocalTrackStopped),dM.off("115",this.handleRemoteTrackStarted),dM.off("116",this.handleRemoteTrackStopped)}updateAudioReference(e){let{type:t,audioReference:i,refId:r,volume:n}=e;if("add"===t){if(this.audioReferenceMap.get(r)||!i||(this.audioReferenceMap.set(r,i),!this.audioProcessor))return;this.mixAudioReference(i,r)}else if("remove"===t)this.audioReferenceMap.get(r)&&(this.audioReferenceMap.delete(r),this.unMixAudioReference(r));else if("updateVolume"===t){if(!this.audioProcessor||uw(n))return;this.setAudioReferenceVolume(r,n)}}};function KB(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return xV(((i,r)=>function(){for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return new Promise(((n,s)=>{let a=setTimeout((()=>{let i=new Fb({code:Vb.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(r,"() timeout ").concat(e,"s")});_M.warn(i),2===t?s(i):1===t&&n()}),1e3*e);i.apply(this,o).then(n,s).finally((()=>{clearTimeout(a)}))}))}))}var qB=class e extends RV{constructor(t,i,r){super({userId:i.userId,sdkAppId:t.sdkAppId,mediaType:r,room:t}),this.room=t,this.user=i,Ib(this,"tinyId"),Ib(this,"isRemote",!0),Ib(this,"jitterBufferDelay",0),Ib(this,"availableState"),Ib(this,"remotePublishState"),Ib(this,"_triggerCheckDecodeSubject",VU(qU(this,e.STATE_SUBSCRIBE))),this.tinyId=i.tinyId,this.availableState=new ZL("".concat(i.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new ZL("".concat(i.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),fU(RU(qU(this,ZL.STATECHANGED),qU(this.remotePublishState,ZL.STATECHANGED)),BF((()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing))),mB((e=>{this.availableState.state!==(e?ZL.ON:ZL.OFF)&&(this.availableState.state=e?ZL.ON:ZL.OFF),this.updatePlayingState(e)})));let n=fU(qU(this.player,ox.ERROR),hF((e=>e.code===MediaError.MEDIA_ERR_DECODE))),o=fU(jU(5e3),hF((()=>!(this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived)&&(!this.player.isPlaying&&!(this.kind===Ik.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1))))),s=fU(CU(n,o),_F(qU(this,ZL.INIT)));fU(this._triggerCheckDecodeSubject,hF((()=>!this.ignoreDecodeError)),zF(s),mB((e=>{this.reportDecodeResult(!1,e)})))}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 e,t;return((null==(t=null==(e=this.room)?void 0:e.networkQuality)?void 0:t.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return"subscribeing"===this.state.toString()}get isSubscribed(){return this.state===e.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===ZL.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),"main"===this.streamType&&"video"===this.kind&&this.room.changeType(!1,this.user)}reportDecodeResult(e,t){var i,r;let n=this.kind===Ik.AUDIO;if(UP[e?"addSuccessEvent":"addFailedEvent"]({key:n?504700:514702}),!n){let t=(null==(i=this.room)?void 0:i.downlinkVideoCodec.toUpperCase())||"H264";UP[e?"addSuccessEvent":"addFailedEvent"]({key:LP["DECODE_".concat(t,"_RESULT")]}),e||this.log.warn("".concat(null==(r=this.room)?void 0:r.downlinkVideoCodec," decode failed"))}e||(UP.addEnum({key:n?504701:514703,value:nM()}),dx.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(tM()||sM()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===Ik.AUDIO?"audioLevel: ".concat(this.getAudioLevel()):"framesDecoded: ".concat(this.stat.framesDecoded>0))),this.emit("decode-failed",{error:t}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack))return void this.log.info("abort play, isSubscribed: ".concat(this.isSubscribed," isAvailable: ").concat(this.isRemotePublished," hasTrack: ").concat(!!this.outMediaTrack," "));super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?ZL.ON:ZL.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};Ib(qB,"STATE_SUBSCRIBE","subscribe"),Sb([KB(5,1)],qB.prototype,"waitHasMediaTrack",1),Sb([YL(ZL.INIT,qB.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),dM.emit(hM.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),JV(521716,!1)],qB.prototype,"subscribe",1),Sb([YL(qB.STATE_SUBSCRIBE,ZL.INIT,{sync:!0,success(){this.log.info("unsubscribed"),dM.emit(hM.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],qB.prototype,"unsubscribe",1);var zB=qB,YB=class extends zB{constructor(e,t){super(e,t,1),Ib(this,"volume",0),Ib(this,"mediaType",1),Ib(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=e.audioManager}get dbVolume(){return sV.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}decodeFrame(e){if(!this.manager)return e;let t=e;for(let i of this.manager.decodePipeline)if(i&&(t=i({frame:t,track:this}),!t))return;return t}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var XB=class extends zB{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4),Ib(this,"mediaType",4),Ib(this,"source"),Ib(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",(e=>{this.room.emit("first-video-frame",e)}))}play(e,t){return(mw(null==t?void 0:t.canvasRender)?t.canvasRender:17===BO)&&!this.source&&this.useCanvasPlayer(),super.play(e,t).then((()=>{this.player.calculateStat()}))}useCanvasPlayer(){if(this.log.info("useCanvasPlayer(), has element:".concat(!!this.player.element)),!this.player.element)return;let e=new OB({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let t=new vB(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(t),this.player.setCanvas(e._canvas),xL()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let t=this.decodeFPS,i=(r=t,[15,30,45,60].reduce(((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e)));var r;!pw(t)||t<=0?this.log.debug("updateCanvasPlayerFPS() ignore decoder: ".concat(t," ")):i!==e.frameRate?(this.log.info("updateCanvasPlayerFPS() decoder: ".concat(t,", closest: ").concat(i,", current: ").concat(e.frameRate)),e.frameRate=i):this.log.debug("updateCanvasPlayerFPS() ignore ClosestFPS ".concat(i," == ").concat(e.frameRate))}get decodeFPS(){var e;let{msg_video_status:t}=(null==(e=this.room.heartbeatReport)?void 0:e.msg_down_stream_info.find((e=>e.msg_user_info.str_identifier===this.userId)))||{},i=2===this.mediaType?7:this.isSmall?3:2;if(!t||0===t.length)return 0;let r=t.find((e=>e.uint32_video_stream_type===i));return(null==r?void 0:r.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 t of this.manager.decodePipeline)if(t&&!(e=t({frame:e,track:this})))return;return e}get isBig(){return 4===this.mediaType}get isSmall(){return 8===this.mediaType}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){"publish"===e||"both"===e||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},QB=class extends XB{constructor(e,t){super(e,t,2),Ib(this,"mediaType",2),Ib(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},ZB=new Map;function $B(e,t){let i=Eb(gb({},t),{timestamp:Hb()});ZB.has(e)?ZB.get(e).push(i):ZB.set(e,[i])}function eH(e,t,i,r){try{if(fw(e))for(let n=0;n<e.length;n++)tH.call(this,{rule:e[n],value:t[n],key:e[n].name,fnName:i,className:r});else tH.call(this,{rule:e,value:t[0],key:e.name,fnName:i,className:r})}catch(AM){throw _M.error(AM),AM}}function tH(e){let{rule:t,value:i,key:r,fnName:n,className:o}=e;if(uw(i)){if(t.required)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_REQUIRED,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(uw(t.defaultValue))return;i=t.defaultValue}if(Array.isArray(t.type)){let e=!1;for(let r=0;r<t.type.length;r++)null===t.type[r]&&null===i&&(e=!0),dw(t.type[r])&&i instanceof t.type[r]&&(e=!0),hw(t.type[r])&&lw(i)===t.type[r].toLowerCase()&&(e=!0);if(!e)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_TYPE,data:{key:r,rule:{type:t.type.map((e=>vw(e)?yw(e):hw(e)?e:lw(e)))},fnName:n,value:i},link:{className:o,fnName:n}})})}else if(!uw(t.type)&&lw(i)!==t.type)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_TYPE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!1===t.allowEmpty){let e=pw(i)&&(0===i||Number.isNaN(i)),s=hw(i)&&""===i.trim();if(e||s)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_EMPTY,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})})}if(t.notLessThanZero&&pw(i)&&i<0)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.CANNOT_LESS_THAN_ZERO,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!uw(t.min)&&pw(i)&&i<t.min)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_MIN,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(!uw(t.max)&&pw(i)&&i>t.max)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_MAX,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(hw(t.instanceOf)){if(!i||i._name!==t.instanceOf)throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_INSTANCE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})})}else if(dw(t.instanceOf)&&!(i instanceof t.instanceOf))throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_INSTANCE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});if(t.values&&!t.values.includes(i))throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PARAMETER_RANGE,data:{key:r,rule:t,fnName:n,value:i},link:{className:o,fnName:n}})});let{properties:s}=t;sw(s)&&_w(i)&&Object.keys(s).forEach((e=>{tH.call(this,{rule:s[e],value:i&&i[e],key:"".concat(r,".").concat(e),fnName:n,className:o})}));let{arrayItem:a}=t;sw(a)&&fw(i)&&i.forEach(((e,t)=>{tH.call(this,{rule:a,value:e,key:"".concat(r,"[").concat(t,"]"),fnName:n,className:o})})),dw(t.validate)&&t.validate.call(this,i,r,n,o,this)}dM.on(hM.JOIN_SUCCESS,(e=>{let{room:t}=e;$B(t.userId,{eventId:32788})})),dM.on(hM.LEAVE_START,(e=>{let{room:t}=e;$B(t.userId,{eventId:32789})})),dM.on(hM.LOCAL_TRACK_PUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32769;4===t.mediaType?e=32768:2===t.mediaType&&(e=32805),$B(t.room.userId,{eventId:e})}})),dM.on(hM.LOCAL_TRACK_UNPUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32771;4===t.mediaType?e=32770:2===t.mediaType&&(e=32806),$B(t.room.userId,{eventId:e})}})),dM.on(hM.TRACK_MUTED,(e=>{let{track:t}=e;t.room&&(t.kind===Ik.AUDIO?$B(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):$B(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))})),dM.on(hM.TRACK_UNMUTED,(e=>{let{track:t}=e;t.room&&(t.kind===Ik.AUDIO?$B(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):$B(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))})),dM.on(hM.REMOTE_TRACK_SUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&$B(t.room.userId,{eventId:32777,remoteUserId:t.userId}),4===t.mediaType&&$B(t.room.userId,{eventId:32776,remoteUserId:t.userId}),8===t.mediaType&&$B(t.room.userId,{eventId:32803,remoteUserId:t.userId}))})),dM.on(hM.REMOTE_TRACK_UNSUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&$B(t.room.userId,{eventId:32779,remoteUserId:t.userId}),4===t.mediaType&&$B(t.room.userId,{eventId:32778,remoteUserId:t.userId}),8===t.mediaType&&$B(t.room.userId,{eventId:32804,remoteUserId:t.userId}))})),dM.on(hM.SWITCH_DEVICE_SUCCESS,(e=>{let{track:t}=e;t.room&&$B(t.room.userId,{eventId:t.kind===Ik.VIDEO?32780:32781})})),dM.on(hM.LOCAL_TRACK_REPLACED,(e=>{let{track:t}=e;t.room&&$B(t.room.userId,{eventId:t.kind===Ik.VIDEO?32782:32783})})),dM.on(hM.SIGNAL_CONNECTION_STATE_CHANGED,(e=>{let t,{room:i,prevState:r,state:n}=e;switch(n){case"CONNECTED":t="RECONNECTING"===r?32795:32791;break;case"DISCONNECTED":t="RECONNECTING"===r?32796:32790;break;case"RECONNECTING":t=32794}t&&$B(i.userId,{eventId:t})})),dM.on(hM.PEER_CONNECTION_STATE_CHANGED,(e=>{let t,{room:i,prevState:r,state:n,remoteUserId:o}=e,s=!!o;switch(n){case"CONNECTED":t="RECONNECTING"===r?s?32801:32798:s?32793:32792;break;case"DISCONNECTED":"RECONNECTING"===r&&(t=s?32802:32799);break;case"RECONNECTING":t=s?32800:32797}t&&$B(i.userId,{eventId:t,remoteUserId:o})})),dM.on(hM.VIDEO_CODEC_IMPLEMENTATION_CHANGED,(e=>{let{implementation:t,userId:i,remoteUserId:r,codec:n,isHWCodec:o,prevImplementation:s,streamType:a}=e,c=o?1:0;s||(c=o?3:2);let l={H264:0,H265:1,VP8:2}[n.toUpperCase()],d={eventId:4004,param1:c,param2:l,streamType:a||2};r&&(d.remoteUserId=r,d.eventId=4005),$B(i,d),UP.addEnum({key:r?514701:513701,value:c}),UP.addEnum({key:r?514700:513700,value:l})})),dM.on(hM.LOCAL_TRACK_RECAPTURE,(e=>{let{track:t,error:i}=e;if(t.userId){let e={eventId:2003,param1:0};t.kind===Ik.AUDIO?(e.streamType=1,i&&(e.param1=2)):(e.streamType="auxiliary"===t.streamType?7:2,i&&(e.param1=8)),$B(t.userId,e)}}));var iH=yb(Cb(),1),rH=class extends iH.EventEmitter{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"userId";super(),this.mySelfId=e,this._log=t,this.key=i,Ib(this,"userMap",new Map),Ib(this,"remotePublishedUserMap",new Map)}get hasRobotUser(){return!![...this.remotePublishedUserMap.values()].find((e=>e.isRobot))}getPublishedUser(e){return this.remotePublishedUserMap.get(e)}addUser(e){let t=e[this.key],{userId:i,tinyId:r,role:n}=e;if(this.userMap.has(t))return;let o={userId:i,tinyId:r,role:20===n?"anchor":"audience"};this.userMap.set(t,o),this.emit("1",o)}deleteUser(e,t){let i=this.userMap.get(e);if(!i)return;let r="peer leave [".concat(e,"]");uw(t)||(r+=":".concat(vD[t])),this._log.info(r);let n=this.remotePublishedUserMap.get(e);if(n){let t=n.muteState;n.flag=0,this.emit("5",n.userId),this.deleteRemotePublishedUser(e),this.emit("6",{prevMuteState:t,muteState:n.muteState,flag:0})}this.userMap.delete(e),this.emit("2",i.userId)}setUserList(e){this.userMap.forEach((t=>{e.findIndex((e=>e[this.key]===t[this.key]))<0&&this.deleteUser(t[this.key],0)})),e.forEach((e=>{!this.userMap.has(e[this.key])&&e[this.key]!==this.mySelfId&&this.addUser(e)}))}addRemotePublishedUser(e){this.remotePublishedUserMap.has(e[this.key])||this.remotePublishedUserMap.set(e[this.key],e)}deleteRemotePublishedUser(e){this.remotePublishedUserMap.has(e)&&this.remotePublishedUserMap.delete(e)}setRemotePublishedUserList(e){this.remotePublishedUserMap.forEach((t=>{let i=t[this.key];if(e.findIndex((e=>e[this.key]===t[this.key]))<0){this._log.info("remote [".concat(i,"] unpublish"));let e=t.muteState;t.flag=0,this.emit("5",t.userId),this.deleteRemotePublishedUser(i),this.emit("6",{prevMuteState:e,muteState:t.muteState,flag:0})}})),e.forEach((e=>{var t;let i=e[this.key];if(i===this.mySelfId)return;let{flag:r,userId:n,tinyId:o}=e,s=Dw(r,n),a=null==(t=this.remotePublishedUserMap.get(i))?void 0:t.muteState;if(a){let e=this.remotePublishedUserMap.get(i);e&&e.flag!==r&&(e.flag=r,this._log.info("remote publish updated: ".concat(JSON.stringify(e.muteState))),this.emit("6",{prevMuteState:a,muteState:s,flag:r}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(s))),this.addUser({userId:n,tinyId:o,role:20}),this.emit("3",e),this.emit("6",{prevMuteState:Dw(0,n),muteState:s,flag:r})}))}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}};function nH(e){let{timesInSecond:t,maxSizeInSecond:i,getSize:r}=e;return xV(((e,n)=>{let o=new WeakMap;return dM.on(hM.ROOM_DESTROY,(e=>{let{room:t}=e;return o.delete(t)})),function(){let s=o.get(this);for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(s||(s={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},o.set(this,s)),0===s.timestamp?s.timestamp=Date.now():Date.now()-s.timestamp>1e3&&(s.timestamp=Date.now(),s.callCountInSecond=0,s.totalSizeInSecond=0),r&&(s.totalSizeInSecond+=r(...c)),0!==s.timestamp&&Date.now()-s.timestamp<1e3&&(s.callCountInSecond>=t||s.totalSizeInSecond>i))throw new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.CALL_FREQUENCY_LIMIT,data:{isTimes:s.callCountInSecond>=t,isSize:s.totalSizeInSecond>i,name:n,timesInSecond:t,maxSizeInSecond:i}})});s.callCountInSecond++,e.call(this,...c)}}))}var oH,sH=!0,aH={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"},cH={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},lH=((oH=lH||{})[oH.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",oH[oH.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",oH[oH.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",oH[oH.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",oH[oH.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",oH[oH.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",oH[oH.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",oH[oH.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",oH[oH.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",oH[oH.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",oH[oH.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",oH[oH.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",oH[oH.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",oH[oH.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",oH[oH.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",oH[oH.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",oH[oH.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",oH[oH.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",oH[oH.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",oH[oH.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",oH[oH.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",oH[oH.INVALID_OPERATION=5100]="INVALID_OPERATION",oH[oH.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",oH[oH.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",oH[oH.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",oH[oH.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",oH[oH.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",oH[oH.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",oH[oH.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",oH[oH.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",oH[oH.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",oH[oH.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",oH[oH.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",oH[oH.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",oH[oH.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",oH[oH.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",oH[oH.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",oH[oH.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",oH[oH.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",oH[oH.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",oH[oH.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",oH[oH.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",oH[oH.DEVICE_ERROR=5300]="DEVICE_ERROR",oH[oH.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",oH[oH.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",oH[oH.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",oH[oH.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",oH[oH.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",oH[oH.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",oH[oH.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",oH[oH.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",oH[oH.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",oH[oH.SERVER_ERROR=5400]="SERVER_ERROR",oH[oH.NEED_TO_BUY=5401]="NEED_TO_BUY",oH[oH.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",oH[oH.OPERATION_FAILED=5500]="OPERATION_FAILED",oH[oH.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",oH[oH.REJOIN_FAILED=5502]="REJOIN_FAILED",oH[oH.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",oH[oH.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",oH[oH.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",oH[oH.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",oH[oH.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",oH[oH.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",oH[oH.OPERATION_ABORT=5998]="OPERATION_ABORT",oH[oH.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",oH);var dH=Eb(gb({},IP),{INVALID_PARAMETER(e){let{fnName:t}=e;return"the parameters of the '".concat(t,"' you called does not meet the requirements, please check the API documentation.")},INVALID_PARAMETER_REQUIRED(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' is a required param when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="";return s=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(o,"' must be type of ").concat(s," when calling ").concat(r,"(), received type: ").concat(lw(n),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' cannot be '").concat(n,"' when calling ").concat(r,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:i,fnName:r,value:n}=e,o="".concat(t||i.name),s="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(o,"' must be instanceof ").concat(s," when calling ").concat(r,"(), received type: ").concat(lw(n),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:i,fnName:r,value:n}=e;return"'".concat(t||i.name,"' must be one of ").concat(i.values.join("|")," when calling ").concat(r,"(), received: ").concat(n,".")},INVALID_PARAMETER_LESS_THAN_ZERO(e){let{key:t,rule:i,fnName:r}=e;return"'".concat(t||i.name,"' cannot be less than 0 when calling ").concat(r,"().")},INVALID_PARAMETER_MIN(e){let{key:t,rule:i,value:r}=e;return"the min value of ".concat(t||i.name," is ").concat(i.min,", received: ").concat(r,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:i,value:r}=e;return"the max value of ".concat(t||i.name," is ").concat(i.max,", received: ").concat(r,".")},INVALID_ELEMENT_ID(e){let{key:t,fnName:i}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(i,"().")},INVALID_ELEMENT_ID_TYPE(e){let{key:t,fnName:i,type:r}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(i,"(), received: ").concat(r,".")},INVALID_STREAM_ID(e){let{key:t}=e;return"'".concat(t,"' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.")},INVALID_ROOM_ID_STRING(e){let{key:t}=e;return"'".concat(t,"' must be a valid string.")},INVALID_ROOM_ID_INTEGER(e){let{key:t}=e;return"'".concat(t,"' must be an integer between [1, 4294967294].")},INVALID_ROOM_ID_INTEGER_STRING(e){let{key:t}=e;return"'".concat(t,"' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.")},INVALID_ROOM_ID_REQUIRED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",INVALID_ROOM_ID_TYPE_MISMATCH(e){let{key:t}=e;return"The type of target roomId must match the current roomId. Current room is using '".concat(t,"', but received '").concat("strRoomId"===t?"roomId":"strRoomId","'.")},INVALID_ROOM_ID_DUPLICATE(e){let{key:t}=e;return"the target '".concat(t,"' must not be the same as the current '").concat(t,"'.")},INVALID_STREAM_TYPE:e=>{let{fnName:t}=e;return"'streamType' is required when 'userId' is not '*', calling ".concat(t,"()")},INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION(e){let{fnName:t}=e;return"the API '".concat(t,"' you called does not meet the requirements, please check the API documentation.")},INVALID_OPERATION_NOT_JOINED(e){let{fnName:t}=e;return"cannot ".concat(t," because you are not enter room yet.")},INVALID_OPERATION_REMOTE_USER_NOT_EXIST(e){let{fnName:t,value:i}=e;return"cannot ".concat(t," because remote user(userId: ").concat(i.userId,") does not publishing stream.")},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST(e){let{fnName:t,value:i}=e;return"cannot ".concat(t," because remote user(userId: ").concat(i.userId,") does not publishing ").concat(i.streamType," video.")},INVALID_OPERATION_REPEAT_CALL(e){let{fnName:t}=e;return"you are already ".concat(t,"(), cannot repeated call '").concat(t,"'.")},INVALID_OPERATION_NEED_VIDEO(e){let{fnName:t}=e;return"cannot call '".concat(t,"' because the camera is not turned on.")},INVALID_OPERATION_NEED_AUDIO(e){let{fnName:t}=e;return"cannot call '".concat(t,"' because the microphone or screen share is not turned on.")},INVALID_BUFFER_EMPTY:e=>{let{key:t}=e;return"the buffer size of paramerter '".concat(t,"' 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:e=>{let{fnName:t}=e;return"you need to call ".concat(t,"() after publish stream.")},ENV_NOT_SUPPORTED(e){let{fnName:t}=e;return"the current browser does not support the capability of the function '".concat(t,"' 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(e){let{fnName:t}=e;return"cannot call ".concat(t," because the browser version is too low, please upgrade to the latest version")},DEVICE_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' got device exception").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_FOUND_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"NotFoundError, no ".concat(i," detected, please check your device and the configuration on '").concat(t,"'").concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"NotAllowedError, you have disabled ".concat(i," access, please allow the current application to use the ").concat(i).concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"NotReadableError, the ".concat(i," maybe in use by another APP, please check if the device is pre-occupied by another APP.")},DEVICE_OVERCONSTRAINED_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(i).concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_SECURITY_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=e;return"SecurityError, check whether the system security policy restricts the use of the ".concat(i,", and it is recommended to turn on the ").concat(i," after the user interacts with the page").concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_ABORT_ERROR(e){let{fnName:t,deviceType:i=uH(t),error:r}=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".concat(r?" error: ".concat(r.toString(),"."):".")},CAMERA_RECOVER_FAILED(e){let{error:t}=e;return"camera recover capture failed ".concat((null==t?void 0:t.name)||"",": ").concat((null==t?void 0:t.originMessage)||(null==t?void 0:t.message))},MICROPHONE_RECOVER_FAILED(e){let{error:t}=e;return"microphone recover capture failed ".concat((null==t?void 0:t.name)||"",": ").concat((null==t?void 0:t.originMessage)||(null==t?void 0:t.message))},OPERATION_FAILED(e){let{fnName:t,error:i}=e;return"'".concat(t,"' failed, reason: ").concat(null==i?void 0:i.toString())},FIREWALL_RESTRICTION:()=>"media connection failure due to firewall restrictions, please try to change your network.",EVENT_HANDLER_ERROR(e){let{eventName:t}=e;return"an error was caught on trtc.on('".concat(t,"', handler), please check your code on 'handler'.")},VIDEO_CONTEXT_ERROR(e){let{reason:t,error:i}=e;return"video context error ".concat(t," ").concat((null==i?void 0:i.name)||""," ").concat((null==i?void 0:i.message)||"")},SERVER_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' got server error: ").concat(null==i?void 0:i.toString(),", please check the SDK documentation.")},NEED_TO_BUY(e){let{value:t,url:i}=e;return"You need to buy packages for ".concat(t,". Refer to: ").concat(i)},ACCOUNT_NO_MONEY:e=>{let{fnParams:t}=e;return"your TRTC account run out of credit, please recharge.".concat(t.sdkAppId?" SDKAppId: ".concat(t.sdkAppId):"")},OPERATION_ABORT(e){let{fnName:t}=e;return"'".concat(t,"' abort")},UNKNOWN_ERROR(e){let{fnName:t,error:i}=e;return"'".concat(t,"' throw unknown exception").concat(i?", error: ".concat(i.toString(),"."):".")}});function uH(e){if(!e)return"camera";let t=e.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var hH=class e extends Error{constructor(e){let{code:t,extraCode:i,message:r="",messageParams:n,fnName:o="",originError:s,data:a}=e;var c;let l;l=r||function(e){let t,{code:i,params:r,enableDocLink:n=!1}=e,s="",a=lH[i];try{t=dH[a]}catch(o){t=dH.UNKNOWN_ERROR}return dw(t)?s=t(r):hw(t)&&(s=t),r.fnName&&!s.includes(r.fnName)&&("."!==s[s.length-1]&&(s+="."),s+=" thrown from ".concat(r.fnName,"()")),n&&(s+=" doc:"),s}({code:t===cH.SERVER_ERROR?t:i||t,params:gb({fnName:o,error:s},n)}),super(l),Ib(this,"name","RtcError"),Ib(this,"code"),Ib(this,"extraCode"),Ib(this,"functionName"),Ib(this,"message"),Ib(this,"data"),Ib(this,"handler"),Ib(this,"originError"),this.name=lH[t],this.code=t,this.extraCode=i,this.functionName=o,this.originError=s,this.message=l,this.data=a,5302===this.extraCode&&null!=(c=this.originError)&&c.message.includes("system")&&(this.handler=()=>{let e=document.createElement("a");sO?e.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):aO&&(e.href="x-apple.systempreferences:com.apple.preference.security?Privacy_".concat({startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"}[this.functionName])),e.href.length>0&&e.click()})}static convertFrom(t,i,r){let n=t;if(t instanceof Fb){let{stack:o}=t,s={code:cH.UNKNOWN_ERROR,fnName:i,originError:t};switch(t.getCode()){case Vb.INVALID_PARAMETER:s.code=cH.INVALID_PARAMETER,s.message=t.message;break;case Vb.INVALID_OPERATION:s.code=cH.INVALID_OPERATION;break;case Vb.NOT_SUPPORTED:case Vb.NOT_SUPPORTED_H264:s.code=cH.ENV_NOT_SUPPORTED,t.getCode()===Vb.NOT_SUPPORTED_H264&&(s.extraCode=t.message.includes(IP.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Vb.JOIN_ROOM_FAILED:s.messageParams={fnParams:r};case Vb.SERVER_TIMEOUT:case Vb.SWITCH_ROLE_FAILED:case Vb.SWITCH_ROOM_FAILED:s.code=cH.SERVER_ERROR,s.extraCode=t.getExtraCode();break;case Vb.API_CALL_ABORTED:s.code=cH.OPERATION_ABORT;break;case Vb.DEVICE_NOT_FOUND:case Vb.DEVICE_AUTO_RECOVER_FAILED:case Vb.INITIALIZE_FAILED:s.code=5300,t.name&&(s.extraCode=function(e){let t;switch(e){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}(t.name));break;case Vb.VIDEO_ENCODE_FAILED:s.extraCode=5505;case Vb.AUDIO_ENCODE_FAILED:s.extraCode=5506,s.code=cH.OPERATION_FAILED;break;case Vb.UNKNOWN:break;default:s.code=cH.OPERATION_FAILED}n=new e(s),o&&(n.stack+=o.substr(o.indexOf("\n")))}else{if(t instanceof e)return t;n=new e({code:cH.UNKNOWN_ERROR,fnName:i,originError:t})}return n}};var pH=hH;function mH(e){return"sub"===e?"auxiliary":"auxiliary"===e?"sub":"main"}function _H(e){return e===aH.QOS_PREFERENCE_CLEAR?"detail":e===aH.QOS_PREFERENCE_SMOOTH?"motion":""}function fH(e,t){let i=t?yk:vk;return uN(e)?gb(gb({},i),e):Tk[e]?Tk[e]:i}var gH={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}}},EH={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}}},TH={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(e,t,i){if(hw(e)&&!document.getElementById(e))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5009,fnName:i,messageParams:{key:t}})}},vH={name:"userId",required:!0,type:"string"},yH={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[aH.AUDIO_PROFILE_STANDARD,aH.AUDIO_PROFILE_STANDARD_STEREO,aH.AUDIO_PROFILE_HIGH,aH.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function SH(e,t){if(!e)throw new pH({code:cH.INVALID_OPERATION,extraCode:5101,fnName:t})}function IH(e,t,i){if(!e)throw new pH({code:cH.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:i}})}function AH(e,t,i){if(!(/^[1-9]\d*$/.test(String(e))&&e<4294967295))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:i}})}function RH(e,t,i){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(e))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:i}})}function CH(e){var t;if(null==(t=null==e?void 0:e.option)||!t.small)return;if(!dL())return _M.warn("small stream is not supported"),void delete e.option.small;let i=fH(e.option.profile),r=fH(e.option.small,!0);return((e,t)=>e.width*e.height>=t.width*t.height&&e.frameRate>=t.frameRate&&e.bitrate>=t.bitrate)(i,r)?void 0:(_M.warn("small stream profile must be less than big stream profile. Big: ".concat(JSON.stringify(i),", Small: ").concat(JSON.stringify(r))),void delete e.option.small)}var bH={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(e,t,i){if(this._room.isJoined)throw new pH({code:cH.INVALID_OPERATION,extraCode:5104,fnName:i});if(e.roomId){if(hw(e.roomId))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5016,fnName:i,messageParams:{key:t}});AH(e.roomId,i,t)}else{if(!e.strRoomId)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5015,fnName:i});RH(e.strRoomId,i,t)}},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:TH,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:gH},validate(e){var t,i;if((null==(t=null==e?void 0:e.option)||!t.videoTrack)&&KP())throw new pH({code:cH.ENV_NOT_SUPPORTED,extraCode:5201});null!=(i=null==e?void 0:e.option)&&i.small&&CH(e)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Eb(gb({},TH),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:gH},validate(e){var t;null!=(t=null==e?void 0:e.option)&&t.small&&CH(e)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:yH},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.audioTrack)&&KP())throw new pH({code:cH.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:yH}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:TH,publish:{type:"boolean"},option:EH},validate(e,t,i,r,n){var o;if(null==(o=null==e?void 0:e.option)||!o.videoTrack){if(KP())throw new pH({code:cH.ENV_NOT_SUPPORTED,extraCode:5201});if(!ZP())throw new pH({code:cH.ENV_NOT_SUPPORTED,fnName:i,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:TH,publish:{type:"boolean"},option:EH}},muteRemoteAudio:[vH,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[vH,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:TH,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(e,t,i){SH(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(IH(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new pH({code:cH.INVALID_OPERATION,extraCode:5103,fnName:i,messageParams:{value:e}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Eb(gb({},TH),{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(e,t,i){SH(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(IH(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new pH({code:cH.INVALID_OPERATION,extraCode:5103,fnName:i,messageParams:{value:e}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(e,t,i){if("*"!==e.userId&&uw(e.streamType))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5014,fnName:i})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(e,t,i){SH(this._room.isJoining||this._room.isJoined,i)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(e,t,i,r){if(!CL)throw new pH({code:cH.ENV_NOT_SUPPORTED,fnName:i,extraCode:5207});if(!this._room.enableSEI)throw new pH({code:cH.INVALID_OPERATION,fnName:i,extraCode:5108});if(e.byteLength>1e3)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:i});SH(this._room.isJoined,i)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(e,t,i){if(!e&&!this._room.isMainStreamPublished||e&&!this._room.isAuxStreamPublished)throw new pH({code:cH.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:i})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(e,t,i,r){if(e.byteLength>1e3)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5017,fnName:i,messageParams:{key:t}})}}},validate(e,t,i){if(SH(this._room.isJoined,i),"live"===this._room.scene&&"audience"===this._room.role)throw new pH({code:cH.INVALID_OPERATION,extraCode:5107,fnName:i,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(e,t,i){if(SH(this._room.isJoined,i),this._room.useStringRoomId&&e.strRoomId===this._room.roomId||!this._room.useStringRoomId&&e.roomId===Number(this._room.roomId))throw new pH({code:cH.INVALID_PARAMETER,extraCode:5020,fnName:i,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(e.roomId&&this._room.useStringRoomId||!e.roomId&&e.strRoomId&&!this._room.useStringRoomId)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5019,fnName:i,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(e.roomId)AH(e.roomId,i,t);else{if(!e.strRoomId)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5015,fnName:i});RH(e.strRoomId,i,t)}},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},kH={TRTC:bH},DH=class extends Error{};function wH(e,t){let i=Mw(e);for(let r=0;r<t.length;r++)Ow(i[r],t[r]);return i}function NH(e){this._resolve=Promise.resolve(e)}function OH(e){this._reject=Promise.reject(e)}var MH=class e{constructor(t,i){this.instance=t,this.group=i,Ib(this,"started",!1),Ib(this,"ops",[]),Ib(this,"startSame",(()=>!0)),Ib(this,"mergeUpdate",wH);let r=e.instances.get(t);r?r.set(i,this):e.instances.set(t,new Map([[i,this]]))}static get(t,i){if(!i)return;let r=e.instances.get(t);return r&&r.get(i)||new e(t,i)}static gets(t,i){let r=e.instances.get(t),n=[];return r&&r.forEach(((e,t)=>{i.test(t)&&n.push(e)})),n}action(e,t,i){let r=t=>{var i;return 0===e?this.started=!0:3===e&&(this.started=!1),this.ops.shift(),null==(i=this.currentOp)||i.action(),t},n=t=>{var i,r;throw this.ops.shift(),0===e&&2===(null==(i=this.currentOp)?void 0:i.type)&&this.ops.shift().reject(new DH("start failed")),null==(r=this.currentOp)||r.action(),t},o={type:e,action:()=>t(...o.args).then(r,n),args:i,resolve:NH,reject:OH};try{switch(this.state){case 1:if(0===e)throw new DH("already started");break;case 4:if(2===e)throw new DH("not started");break;default:return this.cacheOp(o)}}catch(CM){return Promise.reject(CM)}return this.ops.push(o),o.promise=t(...o.args).then(r,n)}cacheOp(e){if(1===this.ops.length)switch(this.state){case 0:case 2:if(0===e.type)throw new DH("already start");break;case 3:switch(e.type){case 2:throw new DH("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new DH("unknown state")}else switch(e.type){case 3:if(3===this.lastOpType)return this.lastOp.promise;{let e=new DH("keep stop");if(this.ops.slice(1).forEach((t=>t.reject(e))),this.ops=this.ops.slice(0,1),3===this.state)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,e.args),this.lastOp.promise;case 3:throw new DH("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new DH("start not allowed after update");case 0:throw new DH("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new DH("keep start")),new DH("already start")}}e.promise=new Promise(((t,i)=>{e._resolve?e._resolve.then(t):e.resolve=t,e._reject?e._reject.catch(i):e.reject=i}));let{action:t}=e;return e.action=()=>t().then(e.resolve,e.reject),this.ops.push(e),e.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}};Ib(MH,"instances",new WeakMap);var PH=MH,LH=new WeakMap,xH=(e,t)=>{if(t instanceof DH){let{stack:i}=t;t=new pH({code:cH.OPERATION_ABORT,message:"".concat(e," abort: ").concat(t.message),fnName:e}),i&&(t.stack+=i.substr(i.indexOf("\n")))}throw t};function VH(e,t){return xV(((i,r)=>function(){for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];let a=PH.get(this,"string"==typeof e?e:e.call(this,...o));return a?(t&&(a.startSame=t.bind(this)),a.action(0,i.bind(this),o).catch(xH.bind(null,r))):i.apply(this,o)}))}function UH(e,t){let{merge:i,debounce:r}=t||{};return xV(((t,n)=>function(){for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a];let c=PH.get(this,"string"==typeof e?e:e.call(this,...s));if(!c)return t.apply(this,s);if(i&&(c.mergeUpdate=i.bind(this)),r&&r.isNeedToDebounce.apply(this,s)){let{delay:e,getKey:i}=r;return new Promise(((r,o)=>{var a,l;let d=null==(a=LH.get(this))?void 0:a.get(i(...s));if(d){let{timeoutId:e,resolve:t}=d;clearTimeout(e),t()}let u=setTimeout((()=>{if(3===c.state||4===c.state)return r();c.action(2,t.bind(this),s).catch(xH.bind(null,n)).then(r,o)}),e);LH.has(this)?null==(l=LH.get(this))||l.set(i(...s),{timeoutId:u,resolve:r}):LH.set(this,new Map([[i(...s),{timeoutId:u,resolve:r}]]))}))}return c.action(2,t.bind(this),s).catch(xH.bind(null,n))}))}function FH(e){return xV(((t,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];let s="function"==typeof e?e.call(this,...n):e;if(s instanceof RegExp)return Promise.all(PH.gets(this,s).map((e=>e.action(3,(()=>Promise.resolve()),n)))).then((()=>t.call(this,...n)));let a=PH.get(this,s);return a?a.action(3,t.bind(this),n).catch(xH.bind(null,i)):t.apply(this,n)}))}var BH={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"},HH=new Set([BH.ERROR,BH.AUTOPLAY_FAILED,BH.KICKED_OUT,BH.REMOTE_USER_ENTER,BH.REMOTE_USER_EXIT,BH.REMOTE_AUDIO_AVAILABLE,BH.REMOTE_AUDIO_UNAVAILABLE,BH.REMOTE_VIDEO_AVAILABLE,BH.REMOTE_VIDEO_UNAVAILABLE,BH.CONNECTION_STATE_CHANGED,BH.PUBLISH_STATE_CHANGED,BH.SCREEN_SHARE_STOPPED,BH.DEVICE_CHANGED,BH.FIRST_VIDEO_FRAME]),WH={};vb(WH,{ScheduleRequestType:()=>YH,getAbilityConfig:()=>QH,getScheduleDomain:()=>ZH,isNeedToSchedule:()=>jH,scheduleProxy:()=>qH,sendScheduleRequest:()=>KH,setIsNeedToSchedule:()=>JH,setScheduleProxy:()=>zH});var GH=null,jH=!0;function JH(e){mw(e)&&e!==jH&&(jH=e,_M.info("setIsNeedToSchedule ".concat(e)))}function KH(e){return Rb(this,arguments,(function(e){let{userId:t,sdkAppId:i,useStringRoomId:r,roomId:n,userSig:o,version:s,frameWorkType:a,role:c,latencyLevel:l}=e;return function*(){if(!jH&&GH)return{isCached:!0,result:GH};let e={delta:0,count:[1,1],msg:[],detail:[]};try{let d=new FormData;d.append("userId",String(t)),d.append("sdkAppId",String(i)),d.append("isStrGroupId",String(r)),d.append("groupId",String(n)),d.append("sdkVersion",s),d.append("userSig",String(o));let u=yield $O();null!=u&&u.model&&d.append("model",String(null==u?void 0:u.model)),c&&d.append("role",String(c)),l&&d.append("latencyLevel",String(l)),a&&d.append("frameWorkType",String(a));let h=Aw(),p=yield function(e,t,i){return new Promise(((r,n)=>{let o=null;Iw([eW((e=>t.count[0]=e+1),(e=>{let{error:r,retry:n,retriedCount:s,retryFuncArgs:a}=e;t.msg[0]=r.message,o||(s>=1&&(a[0]=XH(i,"config",Ik.MAIN,!0)),n())}))(XH(i,"config",Ik.MAIN),e,{get timeout(){return 1e3*aw(2+t.count[0])}}),eW((e=>t.count[1]=e+1),(e=>{let{error:r,retry:n,retriedCount:s,retryFuncArgs:a}=e;t.msg[1]=r.message,o||(s>=2&&(a[0]=XH(i,"config",Ik.BACKUP,!0)),n())}))(XH(i,"config",Ik.BACKUP),e,{get timeout(){return 1e3*aw(2+t.count[1])}})]).then((e=>{o=e,r(o)})).catch(n)}))}(d,e,i);p.config&&(p.config.loggerDomain&&tk(p.config.loggerDomain),mw(p.config.scheduleCache)&&JH(!p.config.scheduleCache)),e.delta=Aw()-h;let m=function(e,t,i){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let n=performance.getEntriesByType("resource"),o=XH(e,"config",Ik.MAIN),s=XH(e,"config",Ik.BACKUP);for(let e of n)if(e.startTime>=i&&(e.name===o||e.name===s)&&e.transferSize>0){let i=e.name===o?Ik.MAIN:Ik.BACKUP,n=Math.round(e.duration),s=Math.round(e.domainLookupStart-e.startTime),a=e.redirectStart>0?Math.round(e.redirectEnd-e.redirectStart):0,c=e.fetchStart>0?Math.round(e.domainLookupStart-e.fetchStart):0,l=Math.round(e.domainLookupEnd-e.domainLookupStart),d=Math.round(e.requestStart-e.secureConnectionStart),u=Math.round(e.secureConnectionStart-e.connectStart),h=Math.round(e.responseStart-e.requestStart),p=Math.round(e.responseEnd-e.responseStart),m=[l,d,u,h,p];dx.uploadEvent({log:"stat-schedule-net:".concat(n,"(").concat(s,"(").concat(a,"->").concat(c,")->").concat(m.join("->"),") ").concat(i),userId:t}),r=Eb(gb({},r),{totalCost:n,local:s,dns:l,tcp:u,tls:d,request:h,response:p});break}}catch(o){_M.error("getScheduleDetailCost error",o)}return r}(Number(i),t,h);return GH=p,{isCached:!1,result:p,detailCost:m}}catch(d){let e=fw(d)?d[0]:d,t=pw(e.code)?e.code:0,i="schedule failed".concat(e.message?": ".concat(e.message):""),r=new Fb({code:Vb.SCHEDULE_FAILED,extraCode:t,message:CP({key:SP.JOIN_ROOM_FAILED,data:{error:i,code:t}})});throw _M.error(i,t),r}}()}))}"undefined"!=typeof document&&document.head.insertAdjacentHTML("beforeend",Object.values(hD).map((e=>'<link rel="dns-prefetch" href="https://'.concat(e,'">'))).join("\r\n")),dM.on("28",(()=>JH(!0))),dM.on("63",(()=>JH(!0))),dM.on("84",(()=>JH(!0))),dM.on("201",(e=>{"RECONNECTING"===e.state&&JH(!0)})),dM.on("202",(e=>{"RECONNECTING"===e.state&&JH(!0)}));var qH={main:"",backup:""};function zH(e){fw(e)?(qH.main=e[0],qH.backup=e[1]):qH.main=e}var YH=(e=>(e.CONFIG="config",e.TRTC_AUTO_CONF="trtcAutoConf",e.AUDIO_AI_AUTH="audioAiAuth",e))(YH||{});function XH(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ik.MAIN,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"https://".concat(qH[i]||ZH(e,i,r),"/api/v1/").concat(t)}function QH(e,t,i){let r=XH(e,t),n=XH(e,t,Ik.BACKUP),o=new URLSearchParams(i).toString();return Iw([fetch("".concat(r,"?").concat(o)).then((e=>e.json())),fetch("".concat(n,"?").concat(o)).then((e=>e.json()))])}function ZH(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ik.MAIN,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=KD(e)?r?i===Ik.MAIN?hD.MAIN_OVERSEA_BACKUP:hD.BACKUP_OVERSEA:i===Ik.MAIN?hD.MAIN_OVERSEA:hD.BACKUP_OVERSEA:i===Ik.MAIN?hD.MAIN:hD.BACKUP,t}function $H(e,t,i){return new Promise(((r,n)=>{nN({url:e,body:t,timeout:i.timeout,priority:"high"}).then((e=>{0===e.data.code?r(e.data.data):n({code:e.data.code,message:e.data.msg})})).catch(n)}))}var eW=(e,t)=>hN({retryFunction:$H,settings:{retries:3,timeout:0},onError:t,onRetrying:e});var tW=class{constructor(){Ib(this,"_log"),this._log=_M.createLogger({id:"fd"})}download(e,t){return Rb(this,null,(function*(){let{type:i="blob"}=t||{};e=Kw(e);try{let t,r=Aw();if(t=dw(fetch)?yield this.downloadWithFetch(e,i):yield this.downloadWithXHR(e,i),!t||!t.data)throw new Error("data is empty");let n=Aw()-r;return this._log.info("downloaded: ".concat(e,", return type: ").concat(i,", cost: ").concat(n,"ms")),UP.addSuccessEvent({key:522700,cost:Aw()-r}),t.data}catch(AM){throw this._log.error("failed to download: ".concat(e,", error: ").concat(AM)),UP.addFailedEvent({key:522700,error:AM}),AM}}))}downloadWithFetch(e,t){return Rb(this,null,(function*(){this._log.info("download with fetch: ".concat(e,", return type: ").concat(t));try{let i,r=yield fetch(e);if(!r.ok){let e=new Error("network response was not ok: ".concat(r.status));throw e.status=r.status,e}return i="arraybuffer"===t?yield r.arrayBuffer():yield r.blob(),{data:i}}catch(Qk){throw Qk}}))}downloadWithXHR(e,t){return this._log.info("download with xhr: ".concat(e,", return type: ").concat(t)),new Promise(((i,r)=>{let n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType=t,n.onload=()=>{if(200===n.status||0===n.status&&n.response)i({data:n.response});else{let e=new Error("XHR failed, status: ".concat(n.status));e.status=n.status,r(e)}},n.onerror=r,n.send(null)}))}loadWasm(e,t){return Rb(this,null,(function*(){this._log.info("loadWasm ".concat(e,", importObject: ").concat(JSON.stringify(t)));let i=Aw(),r=null,n=null;if(dw(WebAssembly.instantiateStreaming)&&!e.startsWith("data:application/octet-stream;base64,")&&!(e=>e.startsWith("file://"))(e)&&dw(fetch))try{let i=fetch(e);r=(yield WebAssembly.instantiateStreaming(i,t)).instance}catch(Xb){n=Xb}if(!r)try{let i=yield this.download(e,{type:"arraybuffer"});r=(yield WebAssembly.instantiate(i,t)).instance}catch(Xb){n=Xb}if(r){let t=Aw()-i;return this._log.info("loadedWasm ".concat(e,", cost: ").concat(t,"ms")),UP.addSuccessEvent({key:522701,cost:t}),r}throw this._log.error("failed to loadWasm ".concat(e,", error: ").concat(n)),UP.addFailedEvent({key:522701,error:n}),n}))}loadScript(e){this._log.info("loadScript ".concat(e));let t=Aw();return new Promise(((i,r)=>{let n=document.createElement("script");n.type="text/javascript",n.onload=()=>{this._log.info("loadedScript ".concat(e,", cost: ").concat(Aw()-t,"ms")),UP.addSuccessEvent({key:522702,cost:Aw()-t,split:1e3}),i(n)},n.onerror=t=>{this._log.error("failed to loadScript ".concat(e,", error: ").concat((null==t?void 0:t.message)||JSON.stringify(t))),UP.addFailedEvent({key:522702}),r(t)},n.crossOrigin="anonymous",n.src=e,document.head.append?document.head.append(n):document.getElementsByTagName("head")[0].appendChild(n)}))}};Sb([hx({settings:{timeout:0,retries:3},onError(e,t,i){var r;404===(null==e?void 0:e.status)||null!=(r=null==e?void 0:e.message)&&r.includes("404")?(this._log.warn("download 404, stop retry"),i(e)):t()},onRetrying(e){this._log.warn("download retrying: ".concat(e))}})],tW.prototype,"download",1),Sb([hx({settings:{timeout:3e3,retries:3},onRetrying(e){this._log.warn("loadScript retrying: ".concat(e))}})],tW.prototype,"loadScript",1);var iW=new tW;function rW(e){var t=this;let{TRTC:i,room:r,errorModule:n,assetsPath:o}=e;return{TRTC:i,LocalMixVideoTrack:UB,LocalVideoTrack:eU,LocalScreenTrack:HB,room:r,assetsPath:o,fileDownloader:iW,innerEmitter:dM,constants:Jb,environment:mN,utils:tU,eventLogger:dx,log:this.room.getLogger(),loggerManager:_M,errorModule:n,kvStatManager:UP,rtcDectection:EM,trtc:this,rx:oU,enums:TM,schedule:WH,getDevices:pV,initVisionTaskRegistry:function(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/mediapipe/vision.js";return Rb(t,null,(function*(){window.VisionTaskRegistry||(yield iW.loadScript("".concat(e,"/").concat(i).replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(e)).preloadModels([window.VisionTaskType.ImageSegmenter])}))},clearStarted:(e,t)=>{let i=e.getAlias(),r=PH.instances.get(this);if(r)if(t){let e=r.get(i+t);if(!e)return;e.started=!1}else r.forEach(((e,t)=>{t.startsWith(i)&&(e.started=!1)}))},startGetPCM:jB,createAudioNode:iV}}var nW=new WeakMap;function oW(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return xV(((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{aW.call(this,t,n,i,this._name)}catch(AM){return Promise.reject(AM)}return e.apply(this,n)}))}function sW(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return xV(((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{aW.call(this,t,n,i,this._name)}catch(AM){throw AM}return e.apply(this,n)}))}function aW(e,t,i,r){if(fw(e))for(let n=0;n<e.length;n++)cW.call(this,{rule:e[n],value:t[n],key:e[n].name,fnName:i,className:r});else cW.call(this,{rule:e,value:t[0],key:e.name,fnName:i,className:r})}function cW(e){let{rule:t,value:i,key:r,fnName:n,className:o}=e;function s(e){return{code:cH.INVALID_PARAMETER,extraCode:e,fnName:n,messageParams:{key:r,rule:t,value:i}}}if(uw(i)){if(t.required)throw new pH(s(5001));if(uw(t.defaultValue))return void(dw(t.validate)&&t.validate.call(this,i,r,n,o,this));i=t.defaultValue}if(Array.isArray(t.type)){let e=!1;for(let r=0;r<t.type.length;r++)null===t.type[r]&&null===i&&(e=!0),dw(t.type[r])&&i instanceof t.type[r]&&(e=!0),hw(t.type[r])&&lw(i)===t.type[r].toLowerCase()&&(e=!0);if(!e)throw new pH({code:cH.INVALID_PARAMETER,extraCode:5002,fnName:n,messageParams:{key:r,rule:{type:t.type.map((e=>vw(e)?yw(e):hw(e)?e:lw(e)))},value:i}})}else if(!uw(t.type)&&lw(i)!==t.type)throw new pH(s(5002));if(!1===t.allowEmpty){let e=pw(i)&&(0===i||Number.isNaN(i)),t=hw(i)&&""===i.trim();if(e||t)throw new pH(s(5003))}if(t.notLessThanZero&&pw(i)&&i<0)throw new pH(s(5006));if(!uw(t.min)&&pw(i)&&i<t.min)throw new pH(s(5007));if(!uw(t.max)&&pw(i)&&i>t.max)throw new pH(s(5008));if(hw(t.instanceOf)){if(!i||i._name!==t.instanceOf)throw new pH(s(5004))}else if(dw(t.instanceOf)&&!(i instanceof t.instanceOf))throw new pH(s(5004));if(Array.isArray(t.values)&&!t.values.includes(i))throw new pH(s(5005));let{properties:a}=t;sw(a)&&_w(i)&&Object.keys(a).forEach((e=>{cW.call(this,{rule:a[e],value:i&&i[e],key:"".concat(e),fnName:n,className:o})}));let{arrayItem:c}=t;sw(c)&&fw(i)&&i.forEach(((e,t)=>{cW.call(this,{rule:c,value:e,key:"".concat(r,"[").concat(t,"]"),fnName:n,className:o})})),dw(t.validate)&&t.validate.call(this,i,r,n,o,this)}function lW(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{getRemoteId:t=()=>"",replaceArg:i,getKVReportKey:r,ignoreLog:n,ignoreErrorLog:o}=e;return xV(((e,s)=>function(){for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];var d,u,h;function p(e,t,r){if(r&&r.includes(e))return"hided";if(i){let e=i(...c);if(c[e.argIndex]===t)return e.value}if(t===c||e in c)return t;try{return t instanceof HTMLElement?"id: ".concat(t.id," type:").concat(lw(t)):t instanceof MediaStreamTrack?qw(t):(JSON.stringify(t),t)}catch(n){return"type:".concat(lw(t))}}let m=this._log||_M;if(null!=n&&n(...c))return e.apply(this,c);c.length>0?m.info("".concat(s,"() ").concat(JSON.stringify(c,((e,t)=>p(e,t,["userSig","privateMapKey"]))))):m.info("".concat(s,"()"));let _=r?r(...c):NP[s],f=(null==o?void 0:o(...c))||!1;try{let i=e.apply(this,c),r=Aw();if(Tw(i)){let e="".concat(s.includes("Plugin")?"".concat((null==(u=(d=c[0]).getName)?void 0:u.call(d))||""," "):" ");return i.then((i=>(m.info("".concat(s,"() success ").concat(e).concat(t.call(this,...c))),UP.addSuccessEvent({key:_,cost:Aw()-r}),i))).catch((i=>{var r;let n=(i=pH.convertFrom.call(this,i,s,1===c.length?c[0]:c)).extraCode||i.code,o=null!=(r=i.message)&&r.includes(n)?"":" code:".concat(n);throw f||m.error("".concat(s,"() failed ").concat(e).concat(t.call(this,...c)," ").concat(i).concat(o," params: ").concat(JSON.stringify(c,p))),UP.addFailedEvent({key:_,error:i}),i}))}return UP.addSuccessEvent({key:_}),i}catch(kM){let t=(kM=pH.convertFrom.call(this,kM,s)).extraCode||kM.code,i=null!=(h=kM.message)&&h.includes(t)?"":" code:".concat(t);throw f||m.error("".concat(s,"() failed ").concat(kM).concat(i," params: ").concat(JSON.stringify(c,p))),UP.addFailedEvent({key:_,error:kM}),kM}}))}var dW,uW=e=>xV(((t,i)=>function(r,n){return Rb(this,null,(function*(){let o=this._plugins.get(r);if(!o)throw this._log.error("plugin ".concat(String(r)," is not found")),new pH({code:cH.OPERATION_ABORT,message:"plugin ".concat(String(r)," is not found"),fnName:i});if(dw(o.constructor.isSupported)&&!o.constructor.isSupported())throw this._log.error("plugin ".concat(String(r)," is not supported")),new pH({code:cH.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(r)," is not supported"),extraCode:5210,fnName:i});return aW.call(this,o.getValidateRule(e),[n],i,"TRTC"),t.call(this,o,n)}))})),hW=0,pW=class e{constructor(e){this.core=e,Ib(this,"log"),Ib(this,"customAudioReferenceMap",new Map),Ib(this,"audioRefId",0),Ib(this,"audioContext",Yx()),Ib(this,"localAudioWorkletNode"),Ib(this,"screenAudioWorkletNode"),Ib(this,"mixNode"),Ib(this,"silentNode"),hW+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(hW)}),this.log.info("created id=".concat(this.getAlias()).concat(hW))}static getStartValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(t,i,r,n){if(!e.room.audioManager.hasAudioTrack&&!e.room.audioManager.hasScreenAudioTrack)throw new pH({code:cH.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(e){return dW||(dW=this.doPreload(e)),dW}doPreload(e){return Rb(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield Ux(this.audioContext,i)}catch(AM){this.log.error("preload audioProcessor failed. ".concat(AM))}finally{URL.revokeObjectURL(i)}}))}getName(){return e.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return e.getStartValidateRule(this.core);case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Rb(this,null,(function*(){let{room:t}=this.core,{sdkAppId:i,userId:r,assetsPath:n=this.core.assetsPath,audioReference:o,processLevel:s,enableDump:a,isLocalAudioNeedAudioProcess:c=!0,isScreenAudioNeedAudioProcess:l=!0}=e;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=c,this.core.room.audioManager.isScreenAudioNeedAudioProcess=l,!n)throw new pH({code:cH.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload("".concat(n,"/audioProcessor-wasm.js")),!this.localAudioWorkletNode||!this.screenAudioWorkletNode){let n=String(Date.now()).slice(0,-3),{auth:o,sign:s,status:a,message:c}=yield function(e){return Rb(this,arguments,(function(e){let{sdkAppId:t,userId:i,userSig:r,timestamp:n}=e;return function*(){let e="".concat(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ik.MAIN;return"https://".concat(qH[t]||ZH(e,t),"/api/v1/audioAiAuth")}(t),"?sdkAppId=").concat(t,"&userId=").concat(i,"&userSig=").concat(r,"×tamp=").concat(n),o=yield fetch(e),{data:{errCode:s,errMsg:a,sign:c,status:l}}=yield o.json();if("1"===l)return{auth:!0,sign:c,status:l,message:a};let d=KD(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",u="Init RTCAudioProcessor failed.",h="";switch(s){case 1:h="Please check your params.";break;case 2:h="You need to buy packages. Refer to: ".concat(d);break;case 3:h="Server is invalid. Please contact our engineer. ";break;case 4:h="Your packages is not active. Refer to: ".concat(d);break;case 5:h="Your packages is expired. Refer to: ".concat(d);break;case 6:h="Your version is not supported."}return{auth:!1,status:l,message:a?"".concat(u," Reason: ").concat(a,". ").concat(h):"".concat(u,", ").concat(h)}}()}))}(Eb(gb({},e),{timestamp:n}));if(!o)throw this.log.info("audioProcessor: ".concat(r," auth result: ").concat(o,". Message: ").concat(c)),new pH({code:cH.INVALID_PARAMETER,message:c});this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",i,r,n,s,a,t),this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",i,r,n,s,a,t)}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.port.postMessage({type:"enable"}),this.screenAudioWorkletNode.port.postMessage({type:"enable"}),t.audioManager.addAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode),uw(o)||o.forEach((e=>{this.customAudioReferenceMap.set(e,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:e,refId:"o-".concat(this.audioRefId++)})})),uw(s)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:s}}),uw(a)||this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:a}})}))}update(e){return Rb(this,null,(function*(){if(!this.localAudioWorkletNode||!this.screenAudioWorkletNode)return;let{audioReference:t,enableDump:i,processLevel:r}=e;uw(t)||(this.customAudioReferenceMap.forEach(((e,t)=>{this.customAudioReferenceMap.delete(t),this.core.room.audioManager.updateAudioReference({type:"remove",refId:e})})),t.forEach((e=>{this.customAudioReferenceMap.set(e,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:e,refId:"o-".concat(this.audioRefId++)})}))),uw(r)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:r}}),uw(i)||(this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:i}}),this.screenAudioWorkletNode.port.postMessage({type:"dump",data:{enable:i}}))}))}stop(){return Rb(this,null,(function*(){if(!(this.localAudioWorkletNode&&this.mixNode&&this.silentNode&&this.screenAudioWorkletNode))return;let{room:e}=this.core;this.localAudioWorkletNode.port.postMessage({type:"disable"}),this.screenAudioWorkletNode.port.postMessage({type:"disable"}),yield e.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode)}))}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null)}initWorkletNode(e,t,i,r,n,o,s,a){e.port.postMessage({type:"init",data:{sdkAppId:String(i),userId:r,timestamp:n,sign:o,status:s}}),e.port.onmessage=e=>{var i;let{data:r}=e;switch(r.type){case"cost":let e=(null==r?void 0:r.value)>10?"info":"debug";return void this.log[e]("[".concat(t,"] avg cost: ").concat(r.value," max: ").concat(null==r?void 0:r.max,"(").concat(Gb(new Date(null==r?void 0:r.maxCostTimestamp)),") hist: ").concat(null==(i=null==r?void 0:r.hist)?void 0:i.join(" ")));case"log":return void this.log[r.logLevel]("[".concat(t,"] ").concat(r.value));case"dump":return void dM.emit("265",{room:a,data:r.value,type:"localAudio"===t?"dump":"dump-screen-audio"})}}}};Ib(pW,"updateValidateRule",{type:"object"}),Ib(pW,"stopValidateRule",{type:"object"}),Ib(pW,"Name","AudioProcessor");var mW=pW;var _W=0,fW=class{constructor(e,t){Ib(this,"player"),Ib(this,"publisher"),Ib(this,"mixInput"),this.mixInput=new $x(t),e.url?(this.player=new Audio(e.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(e.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(e.track),this.mixInput.connect()}updateSettings(e){this.player&&(uw(e.volume)||(this.volume=e.volume),uw(e.loop)||(this.loop=e.loop),uw(e.playbackRate)||(this.playbackRate=e.playbackRate))}updateListener(e){if(this.player){if(e.onDurationChange){let{onDurationChange:t}=e;this.player.ondurationchange=e=>{t(e.target.duration)}}if(e.onTimeUpdate){let t=e.onTimeUpdate,{player:i}=this;i.ontimeupdate=()=>{t(i.currentTime,i.duration)}}e.onEnded&&(this.player.onended=e.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(e){this.player&&(e<0&&e>this.player.duration||(this.player.currentTime=e,this.publisher.currentTime=e))}play(){var e,t;return null==(e=this.publisher)||e.play(),null==(t=this.player)?void 0:t.play()}pause(){var e,t;null==(e=this.player)||e.pause(),null==(t=this.publisher)||t.pause()}stop(){var e;null==(e=this.player)||e.pause(),this.mixInput.disconnect()}setOperation(e){"pause"===e&&this.pause(),"resume"===e&&(this.pause(),this.play()),"stop"===e&&(this.pause(),this.seek(0))}set volume(e){!this.player||!this.publisher||(this.player.volume=e,this.publisher.volume=e)}set loop(e){!this.player||!this.publisher||(this.player.loop=e,this.publisher.loop=e)}set playbackRate(e){!this.player||!this.publisher||(this.player.playbackRate=e,this.publisher.playbackRate=e)}};function gW(e,t){if(t&&"function"!=typeof t)throw new pH({code:cH.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(e," should be a function.")})}var EW=class e{constructor(e){this.core=e,Ib(this,"log"),Ib(this,"mixedMusicMap",new Map),Ib(this,"cacheMusicMap",new Map),_W+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(_W)}),this.log.info("created id=".concat(this.getAlias()).concat(_W))}getName(){return e.Name}getAlias(){return"ax"}getGroup(e){return null==e?void 0:e.id}getValidateRule(t){switch(t){case"start":return e.startValidateRule;case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Rb(this,null,(function*(){let{room:t}=this.core;this.log.info("add music source, id: ".concat(e.id," url: ").concat(e.url,", track: ").concat(e.track));let{id:i,url:r}=e;if(this.mixedMusicMap.has(i))return;let n=this.cacheMusicMap.get(i);n?e.url?n.reset():(n.mixInput.replaceSource(e.track),n.mixInput.connect()):(n=new fW(e,t.audioManager),this.cacheMusicMap.set(i,n)),n.updateListener(e),n.updateSettings(e),yield n.play(),this.mixedMusicMap.set(i,n),n.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:n.mixInput.source.node,refId:"ax-".concat(i)}),this.log.info("start mix audio track ".concat(i," success.")),UP.addEnum({key:502700,value:3}),this.kvUpload(e)}))}update(e){return Rb(this,null,(function*(){let{id:t,operation:i,seekFrom:r,playbackRate:n}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let o=this.mixedMusicMap.get(t);o?(o.updateSettings(e),o.updateListener(e),uw(i)||o.setOperation(i),uw(r)||o.seek(r),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(t," not found."))}))}stop(e){return Rb(this,arguments,(function(e){var t=this;let{id:i}=e;return function*(){if(t.mixedMusicMap.has(i)){t.log.info("remove music source, music id: ".concat(i));let e=t.mixedMusicMap.get(i);null!=e&&e.mixInput.source.node&&t.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.source.node,refId:"ax-".concat(i)}),null==e||e.stop(),t.mixedMusicMap.delete(i)}"*"===i&&t.destroyAllMusic()}()}))}kvUpload(e){let{track:t,loop:i,volume:r,playbackRate:n,operation:o,seekFrom:s,onTimeUpdate:a,onDurationChange:c,onEnded:l}=e;t&&UP.addCount({key:502711}),i&&UP.addCount({key:502703}),r&&UP.addCount({key:502704}),n&&UP.addCount({key:502705}),o&&UP.addCount({key:502706}),s&&UP.addCount({key:502707}),"function"!=typeof a&&UP.addCount({key:502709}),"function"!=typeof l&&UP.addCount({key:502710}),"function"!=typeof c&&UP.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach(((e,t)=>{null!=e&&e.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.track,refId:t}),this.stop({id:t})}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};Ib(EW,"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(e,t,i){if(e.url&&"*"!==e.url){let t=e.url.split("?")[0],r=["mp3","ogg","wav","flac"],n=t.split(".").pop(),o=r.indexOf(n)>=0,s=t.startsWith("blob"),a=t.startsWith("data");if(!(o||s||a))throw new pH({code:cH.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:i})}if(!e.url&&!e.track)throw new pH({code:cH.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:i});gW("onTimeUpdate",e.onTimeUpdate),gW("onEnded",e.onEnded),gW("onDurationChange",e.onDurationChange)}}),Ib(EW,"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(e,t,i){gW("onTimeUpdate",e.onTimeUpdate),gW("onEnded",e.onEnded),gW("onDurationChange",e.onDurationChange)}}),Ib(EW,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),Ib(EW,"Name","AudioMixer");var TW,vW=EW,yW=0,SW=class e{constructor(e){this.core=e,Ib(this,"log"),Ib(this,"audioContext",Yx()),Ib(this,"workletNode"),yW+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(yW)}),this.log.info("created id=".concat(this.getAlias()).concat(yW))}static startValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(t,i,r,n){if(!e.room.audioManager.hasAudioTrack)throw new pH({code:cH.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(e){return TW||(TW=this.doPreload(e)),TW}doPreload(e){return Rb(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield Ux(this.audioContext,i)}catch(AM){throw this.log.error("load worklet failed",AM),AM}finally{URL.revokeObjectURL(i)}}))}getName(){return e.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser_".concat(Date.now())}getValidateRule(t){switch(t){case"start":return e.startValidateRule(this.core);case"update":return e.updateValidateRule;case"stop":return e.stopValidateRule}}start(e){return Rb(this,null,(function*(){let{room:t,schedule:i}=this.core,{assetsPath:r=this.core.assetsPath}=e;if(!r)throw new pH({code:cH.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload("".concat(r,"/denoiser-wasm.js")),!this.workletNode){let t=String(Date.now()).slice(0,-3),{auth:r,sign:n,status:o,message:s}=yield function(e,t){return Rb(this,arguments,(function(e,t){let{sdkAppId:i,userId:r,userSig:o,timestamp:s}=t;return function*(){try{let{data:{errCode:t,errMsg:n,sign:a,status:c}}=yield e.getAbilityConfig(i,e.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:i,userId:r,userSig:o,timestamp:s});if("1"===c)return{auth:!0,sign:a,status:c,message:n};let l=KD(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",d="Init RTCAIDenoiser failed.",u="";switch(t){case 1:u="Please check your params.";break;case 2:u="You need to buy packages. Refer to: ".concat(l);break;case 3:u="Server is invalid. Please contact our engineer. ";break;case 4:u="Your packages is not active. Refer to: ".concat(l);break;case 5:u="Your packages is expired. Refer to: ".concat(l);break;case 6:u="Your version is not supported."}return{auth:!1,status:c,message:n?"".concat(d," Reason: ").concat(n,". ").concat(u):"".concat(d,", ").concat(u)}}catch(n){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(n)}}}()}))}(i,Eb(gb({},e),{timestamp:t}));if(!r)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(r,". Message: ").concat(s)),new pH({code:cH.INVALID_PARAMETER,message:s});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(e.sdkAppId),userId:e.userId,timestamp:t,sign:n,status:o}}),this.workletNode.port.onmessage=e=>{var t;let{data:i}=e;if("cost"===i.type){let e=(null==i?void 0:i.max)>20?"warn":(null==i?void 0:i.max)>10?"info":"debug";this.log[e]("avg cost: ".concat(i.value," max: ").concat(null==i?void 0:i.max,"(").concat(Gb(new Date(null==i?void 0:i.maxCostTimestamp)),") hist: ").concat(null==(t=null==i?void 0:i.hist)?void 0:t.join(" ")))}else"log"===i.type&&this.log[i.logLevel]("".concat(i.value))}}this.workletNode.port.postMessage({type:"enable"}),t.audioManager.addDenoiser(this.workletNode),t.sendAbilityStatus({ai_denoise:1})}))}update(){return Rb(this,null,(function*(){}))}stop(){return Rb(this,null,(function*(){if(!this.workletNode)return;let{room:e}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield e.audioManager.removeDenoiser(this.workletNode)}))}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};Ib(SW,"updateValidateRule",{type:"object"}),Ib(SW,"stopValidateRule",{type:"object"}),Ib(SW,"Name","AIDenoiser");var IW=SW;var AW=yb(Cb(),1),RW=class extends AW.EventEmitter{constructor(){super(),Ib(this,"observer"),Ib(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 Rb(this,null,(function*(){if(!this.observer)try{"PressureObserver"in window&&!CN&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(Yb){dx.uploadEvent({log:"stat-pressure-detector-start-failed",error:Yb})}}))}onPressureChange(e){let t=this.stateNum,i=e[e.length-1];this.state=i.state,(this.stateNum>3||t>3)&&_M.info("".concat(i.source,": ").concat(i.state)),this.emit("state-changed",{type:i.source,state:this.state})}destroy(){var e;try{null==(e=this.observer)||e.disconnect(),this.observer=null}catch(Qk){dx.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:Qk})}}},CW=new RW;function bW(e){let[t,i]=e,r=i.byteLength,n=parseInt(String(r/255),10),o=r%255,s=[];s.push(0,0,0,1,6,t);for(let c=0;c<n;c++)s.push(255);s.push(o);let a=new DataView(i);return s.push(...new Uint8Array(a.buffer)),s.push(128),new QV(new DataView(new Uint8Array(s).buffer),!0)}function kW(e){return"empty"===e.type||0===e.data.byteLength}function DW(e){return 1===e.getInt32(0)&&6===e.getInt8(4)}function wW(e){let t=0,i=0,r=new DataView(e);for(let n=0;n<e.byteLength;n++)switch(r.getUint8(n)){case 0:t++;break;case 1:(2===t||3===t)&&i++,t=0;break;default:t=0}return i}function NW(e){let{frame:t,seiMessageList:i}=e;if(!i||0===i.length||0===t.data.byteLength)return t;let r=9-wW(t.data);if(r<=0)return t;let n=i.splice(0,r).reverse().map(bW),o=n.reduce(((e,t)=>e+t.dataView.byteLength),0),s=new ArrayBuffer(o+t.data.byteLength),a=new DataView(s),c=new DataView(t.data),l=0;for(let d=0;d<n.length;d++)for(let e=0;e<n[d].dataView.byteLength;e++)a.setInt8(l++,n[d].dataView.getInt8(e));for(let d=0;d<t.data.byteLength;d++)a.setInt8(l++,c.getInt8(d));return t.data=s,t}function OW(e){let{frame:t,onSEI:i}=e;try{let e=new DataView(t.data);if(kW(t)||!DW(e))return t;let r=[],n=0,o=-1,s=-1;for(let i=0;i<t.data.byteLength;i++){let a=e.getUint8(i);if(0===a)n++;else if(1===a){if(2===n||3===n){let a=i-n;if(-1===o?o=a:-1===s&&(s=a,r.push(new QV(new DataView(e.buffer.slice(o,s)))),o=a,s=-1),6!==e.getUint8(i+1)){t.data=e.buffer.slice(a);break}}n=0}else n=0}null==i||i(r.reverse())}catch(Yb){}return t}var MW=0,PW=class e{constructor(e){this.core=e,Ib(this,"log"),Ib(this,"_seiMessageList",[]),Ib(this,"_smallSeiMessageList",[]),Ib(this,"_subStreamSeiMessageList",[]),MW++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(MW)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(MW)),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:t,mediaType:i}=e;try{return NW({frame:t,seiMessageList:8===i?this._smallSeiMessageList:2===i?this._subStreamSeiMessageList:this._seiMessageList})}catch(Qk){this.log.warn(Qk)}return t}decode(e){let{frame:t,track:i}=e;return OW({frame:t,onSEI:e=>{e.forEach((e=>{this.core.trtc.emit(BH.SEI_MESSAGE,{seiPayloadType:e.seiPayloadType,data:e.seiPayload.buffer,userId:i.userId,streamType:2===i.mediaType?"sub":"main"})}))}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(e){switch(e){case"start":case"update":case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:AL?this.encode:NW,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:AL?this.decode:OW,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:t,options:i}=e;var r;let n=[i.seiPayloadType,t],o=!!i.small;i.toSubStream?this._subStreamSeiMessageList.push(n):(this._seiMessageList.push(n),o&&this._smallSeiMessageList.push(n)),null==(r=this.core.room.scriptTransformWorker)||r.postMessage({type:"sei",data:n,isMain:!i.toSubStream,small:o})}getName(){return e.Name}getAlias(){return"sei"}getGroup(){return"sei"}};Ib(PW,"autoStart",!0),Ib(PW,"Name","SEI");var LW=PW;function xW(e){let{frame:t,onDump:i}=e;return null==i||i(),t}function VW(e){let{frame:t,onDump:i}=e;return null==i||i(),t}var UW={"play() error: NotAllowedError:":{tips:e=>e.includes("main <video>")||e.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:e=>e.includes("↓")?"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:e=>e.includes("↓")?"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:\n 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.\n 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:\n 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.\n 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((e=>{UW["".concat(e,"()")]={tips:"Call trtc.".concat(e),color:"blue",class:"blue",textColor:"#fff"}}));var FW,BW=0,HW=class e{constructor(e){this.core=e,Ib(this,"_core"),Ib(this,"log"),Ib(this,"dumpLocalVideoMap",{}),Ib(this,"dumpRemoteVideoMap",{}),Ib(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++BW)}),this.log.info("created")}getName(){return e.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(e){switch(e){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return Rb(this,null,(function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&"true"!==(null==(e=window.sessionStorage)?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))||(yield this.openDebugDiaLog(),this.addVideoProcessor())}))}update(e){return Rb(this,arguments,(function(e){var t=this;let{forceOpen:i}=e;return function*(){uw(i)&&(i?(yield t.openDebugDiaLog(),t.addVideoProcessor()):(t.closeDebugDiaLog(),t.removeVideoProcessor()))}()}))}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return Rb(this,null,(function*(){var e;if(!this.dialog)try{if(FW)yield FW;else{let t=new URLSearchParams(location.search).get("trtcDebugDialogPath")||(null==(e=window.sessionStorage)?void 0:e.getItem("TRTC_DEBUG_DIALOG_PATH"))||"https://unpkg.com/".concat("trtc-sdk-v5","@").concat(qb,"/assets/debug-dialog.js");FW=this._core.fileDownloader.loadScript(t),yield FW}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(Yb){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(Yb))}}))}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):xW,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):VW,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo(e){let{frame:t,mediaType:i}=e;return xW({frame:t,onDump:()=>{if(!i)return;let e=2===i?"sub":"main",r=this.dumpLocalVideoMap[e];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>1e3*r.duration&&r.onDumpEnd())}})}decodeVideo(e){let{frame:t,track:i}=e;return VW({frame:t,onDump:()=>{if(!i)return;let e=this.dumpRemoteVideoMap["".concat(i.userId,"-").concat(i.streamType)];e&&(e.data.push(t.data.slice(0)),e.duration>0&&Date.now()-e.startTimestamp>1e3*e.duration&&e.onDumpEnd())}})}};Ib(HW,"Name","Debug"),Ib(HW,"autoStart",!0);var WW=HW,GW=e=>{switch(e){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},jW=class{constructor(e,t,i){Ib(this,"trackDoneOB"),Ib(this,"startOB"),Ib(this,"stopOB"),Ib(this,"inputFrameCount",0),Ib(this,"decodedFrameCount",0),Ib(this,"type","auto"),Ib(this,"config"),Ib(this,"decoder"),Ib(this,"_decodeSink");let{kvStatManager:r,trtc:n}=e;this.config=i.config,this.trackDoneOB=qU(t,ZL.INIT),this.stopOB=VU(),this.startOB=VU(),"auto"===i.type?this.type="webCodecs":this.type=i.type;let o=VU();fU(this.startOB,OU(0),KF((e=>{let i=this.pipe(t);return o.next("STARTING"),t.log.info("decoder type: ".concat(this.type)),fU(i,_F(this.stopOB),mB((()=>{}),(i=>{t.log.error(i),r.addFailedEvent({key:GW(this.type),error:i}),e>4?this.startOB.error(i):this.startOB.next(e+1)}))),fU(i,mF(1),uB(oF))})),_F(this.stopOB),mB((()=>{t.player.setOutput(),o.next("STARTED")}),(e=>{o.next("FAILED")}),(()=>{r.addSuccessEvent({key:GW(this.type)}),r.addSuccessEvent({key:504702})})))}mock(e){this._decodeSink?this._decodeSink.error(e):this.startOB.next(0)}close(e){this.stopOB.next(e)}pipe(e){return AU()((t=>Rb(this,null,(function*(){this._decodeSink=t,t.defer((()=>{var e;null==(e=this.decoder)||e.close()}));let{type:i}=this;try{if("webCodecs"===i)this.decoder=new AudioDecoder({error:i=>{e.log.error(i),t.error(4)},output:i=>{this.decodedFrameCount++,t.next(i),e.player.write(i)}});this.decoder.configure(this.config)}catch(AM){e.log.error(AM),t.error("webCodecs"===i?2:6)}}))))}decodeFrame(e){var t;this.inputFrameCount++,"configured"===(null==(t=this.decoder)?void 0:t.state)&&this.decoder.decode(new EncodedAudioChunk({data:e.data,timestamp:e.timestamp,type:"key"}))}},JW={type:"object"},KW=class e{constructor(e){this.core=e,Ib(this,"log"),Ib(this,"contextMap",new Map),Ib(this,"decodeProcessorMap",new WeakMap),this.log=e.log.createChild({id:"".concat(this.getAlias())})}getAlias(){return e.Name}getGroup(e){return e.track.userId+e.track.streamType}getName(){return e.Name}getValidateRule(e){return JW}start(e){let{track:t}=e;this.decodeProcessorMap.set(t,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:e=>{let{frame:t,track:i}=e;return this.decodeProcessorMap.has(i)?this.decodeProcessorMap.get(i)({frame:t,track:i}):t},type:3})}decode(e){return t=>{let{frame:i,track:r}=t;if(r!==e.track)return i;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(i);let n=new jW(this.core,r,e);return fU(n.trackDoneOB,mF(1),mB((()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:r})}))),this.contextMap.set(r,n),n.decodeFrame(i)}}stop(e){let{track:t}=e,i=this.contextMap.get(t);i&&(i.close("stop"),this.contextMap.delete(t),0===this.contextMap.size&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(e){let t=this.contextMap.get(e.track);if(t){if("mock"===e.type)return void t.mock(10);t.close("update"),this.contextMap.set(e.track,new jW(this.core,e.track,e))}}};Ib(KW,"Name","TRTCAudioDecoder");var qW=KW,zW=class{constructor(){Ib(this,"log"),this.log=_M.createLogger({id:"exp"})}call(e,t){return Rb(this,null,(function*(){return dw(this[e])?this[e](t):Promise.reject(new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.API_NOT_EXIST,data:{name:e}})}))}))}enableAudioFrameEvent(e){return Rb(this,null,(function*(){let{trtcInstance:t,enable:i,userId:r,sampleRate:n=48e3,channelCount:o=1,port:s}=e,{audioManager:a}=t.room,{getPCMAbortCtrlMap:c,audioFrameEventConfigMap:l}=a;if(l.set(r,{enable:i,sampleRate:n,channelCount:o,port:s}),i)if("*"===r)t.room.remotePublishedUserMap.forEach((e=>{if(e.remoteAudioTrack.isAvailable){if(c.get(e.userId))return;let i=a.getPCM((e=>{t.emit(BH.AUDIO_FRAME,e)}),e.userId);c.set(e.userId,i)}}));else{if(c.get(r))return;let e=a.getPCM((e=>{t.emit(BH.AUDIO_FRAME,e)}),r);c.set(r,e)}else if("*"===r)t.room.remotePublishedUserMap.forEach((e=>{if(e.remoteAudioTrack.isSubscribed){let{userId:t}=e,i=c.get(t);null==i||i.abort("disable"),c.delete(t)}}));else{let e=c.get(r);null==e||e.abort("disable"),c.delete(r)}}))}};Sb([function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return xV(((e,i)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return eH.call(this,t,n,i,this._name),e.apply(this,n)}))}({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"}}})],zW.prototype,"enableAudioFrameEvent",1);var YW=new zW,XW=0,QW=new Set,ZW=null;zb("5.13.0-beta.18"),gM.checkStorage();var $W=class e extends Lb.EventEmitter{constructor(t,i){super(),Ib(this,"_room"),Ib(this,"_eventListened",new Set),Ib(this,"_localVideoTrack",null),Ib(this,"_localAudioTrack",null),Ib(this,"_localScreenTrack",null),Ib(this,"_localScreenAudioTrack",null),Ib(this,"_localVideoConfig",null),Ib(this,"_localScreenConfig",null),Ib(this,"_localAudioConfig",null),Ib(this,"_remoteVideoConfigMap",new Map),Ib(this,"_remoteAudioConfigMap",new Map),Ib(this,"_remoteAudioVolumeMap",new Map),Ib(this,"_remoteAudioMuteMap",new Map),Ib(this,"_mediaTrackMap",new WeakMap),Ib(this,"_log",_M.createLogger({id:"t".concat(++XW)})),Ib(this,"_plugins",new Map),Ib(this,"_networkQuality",null),Ib(this,"_speakerId"),Ib(this,"enterRoomParams"),Ib(this,"_enableAutoSwitchWhenRecapturing",!0),this._room=new t(gb({logger:this._log,frameWorkType:e.frameWorkType},i)),this._room.videoDecodeFallbackType=i.videoDecodeFallback,mw(i.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=i.enableAutoSwitchWhenRecapturing),this._log.info("create() ".concat(JSON.stringify(i,((e,t)=>"plugins"===e?t.map((e=>e.Name)):t)))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(e){return this._room.audioManager.dump(e)}}}),i.plugins&&i.plugins.forEach((e=>{this._use(e,i.assetsPath)})),this._use(vW,i.assetsPath),this._use(mW,i.assetsPath),this._use(IW,i.assetsPath),this._use(qW,i.assetsPath),this._use(WW),i.enableSEI&&CL&&this._use(LW),this._room.on("audio-volume",(e=>{var t,r;!e.find((e=>""===e.userId))&&this._localAudioTrack&&e.push({userId:"",volume:Math.floor(100*(null!=(t=this._localAudioTrack.getInternalAudioLevelAfter3A())?t:this._localAudioTrack.getAudioLevel())),floatVolume:null!=(r=this._localAudioTrack.getInternalAudioLevelAfter3A())?r:this._localAudioTrack.getInternalAudioLevel()}),1===i.volumeType&&e.forEach((e=>{var t;let i=""===e.userId?this._localAudioTrack:null==(t=this.room.remotePublishedUserMap.get(e.userId))?void 0:t.remoteAudioTrack;i&&(e.volume=i.dbVolume)})),this.emit(BH.AUDIO_VOLUME,{result:e.sort(((e,t)=>t.volume-e.volume))})})),this._room.videoManager.on("error",(e=>{this._log.error(new pH({code:cH.OPERATION_FAILED,extraCode:5504,message:e.message,originError:e}))})),this._listenEvents(),this._initActiveSpeaker(),((e,t)=>{let{emit:i}=e;e.emit=function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];try{return i.apply(e,n)}catch(AM){let i=CP({key:SP.CATCH_HANDLER_ERROR,data:{name:t,event:n[0]},addDocLink:!1});return _M.warn("".concat(i,"\n\n").concat(AM.stack)),!1}}})(this,"trtc")}static create(e){}static _create(t,i){!function(){var e;if(sH){sH=!1,5!==_M.getLogLevel()&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(sk,"/en/index.html")),console.info("* Changelog: ".concat(sk,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),_M.info("TRTC Web SDK Version:",qb),KO||_M.debug("Build Time:","2025-08-25 20:48:44");let t="UA: ".concat(navigator.userAgent," \nCPU core: ").concat(navigator.hardwareConcurrency,", GPU: ").concat(eM()),i=navigator.deviceMemory;i&&(t+=", minRAM: ".concat(i,"GB")),_M.info(t),_M.info("URL: ".concat(location.href).concat("IFRAME"===(null==(e=self.frameElement)?void 0:e.tagName)?" in iframe":"")),$O().then((e=>{e&&_M.info(ZO)}))}}();let r=new e(t,i||{});return QW.add(r),r}get room(){return this._room}_listenEvents(){cx(this,this._room).add("peer-join",(e=>{let{userId:t}=e;this.emit(BH.REMOTE_USER_ENTER,{userId:t})})).add("peer-leave",(e=>{this.emit(BH.REMOTE_USER_EXIT,{userId:e})})).add("banned",(e=>{this._exitRoom().finally((()=>{this.emit(BH.KICKED_OUT,{reason:e.reason})}))})).add("error",(e=>{this._exitRoom().finally((()=>{this.emit(BH.ERROR,pH.convertFrom(e))}))})).add("signal-connection-state-changed",(e=>{this.emit(BH.CONNECTION_STATE_CHANGED,e)})).add("network-quality",(e=>{this._networkQuality=e;let t=Eb(gb({},e),{uplinkRTT:Math.min(e.uplinkRTT,AD),downlinkRTT:Math.min(e.downlinkRTT,AD)});this.emit(BH.NETWORK_QUALITY,t)})).add("remote-published",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((t=>{cx(t,t).add("player-state-changed",(i=>{let r=Eb(gb({},i),{userId:e.userId});t.kind===Ik.VIDEO&&(r.streamType=mH(t.streamType)),this.emit(t.kind===Ik.AUDIO?BH.AUDIO_PLAY_STATE_CHANGED:BH.VIDEO_PLAY_STATE_CHANGED,r)})).add("error",(e=>{e.getCode()===Vb.PLAY_NOT_ALLOWED&&this.emit(BH.AUTOPLAY_FAILED,{userId:t.userId,mediaType:t.strMediaType,resume:()=>t.player.resume()})}))}))})).add("remote-unpublished",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((e=>{lx(e)}))})).add("remote-publish-state-changed",(e=>{let{prevMuteState:t,muteState:i}=e,{userId:r}=i,n=t.audioAvailable,o=t.videoAvailable,{audioAvailable:s,videoAvailable:a}=i;s||this._remoteAudioConfigMap.delete(r),a||this._removeRemoteVideoConfig(r,"main"),i.hasAuxiliary||this._removeRemoteVideoConfig(r,"sub"),o!==a&&(a?this._onVideoAvailable({userId:r,streamType:"main"}):this._onVideoUnavailable({userId:r,streamType:"main"}),this.emit(a?BH.REMOTE_VIDEO_AVAILABLE:BH.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"main"})),n!==s&&(s?this._onAudioAvailable({userId:r}):this._onAudioUnavailable({userId:r,muteState:i}),this.emit(s?BH.REMOTE_AUDIO_AVAILABLE:BH.REMOTE_AUDIO_UNAVAILABLE,{userId:r})),t.hasAuxiliary!==i.hasAuxiliary&&(i.hasAuxiliary?this._onVideoAvailable({userId:r,streamType:"sub"}):this._onVideoUnavailable({userId:r,streamType:"sub"}),this.emit(i.hasAuxiliary?BH.REMOTE_VIDEO_AVAILABLE:BH.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"sub"}))})).add("sei-message",(e=>{this.emit(BH.SEI_MESSAGE,Eb(gb({},e),{streamType:mH(e.streamType)}))})).add("firewall-restriction",(()=>{this.emit(BH.ERROR,new pH({code:cH.OPERATION_FAILED,extraCode:5501}))})).add("heartbeat-report",(e=>{var t,i,r,n,o,s,a;let c={2:"big",3:"small",7:"sub"},l={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||(null==(t=e.msg_down_stream_info[0])?void 0:t.msg_network_status.uint32_rtt)||(null==(i=this._networkQuality)?void 0:i.uplinkRTT)||(null==(r=this._networkQuality)?void 0:r.downlinkRTT)||0,AD),upLoss:(null==(n=this._networkQuality)?void 0:n.uplinkLoss)||0,downLoss:(null==(o=this._networkQuality)?void 0:o.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:((null==(s=e.msg_up_stream_info.msg_audio_status)?void 0:s.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:((null==(a=e.msg_up_stream_info.msg_audio_status)?void 0:a.uint32_audio_level)||0)/dP},video:e.msg_up_stream_info.msg_video_status.filter((e=>c[e.uint32_video_stream_type])).map((e=>({bitrate:(e.uint32_video_codec_bitrate||0)/1e3,width:e.uint32_video_width,height:e.uint32_video_height,frameRate:e.uint32_video_enc_fps,videoType:c[e.uint32_video_stream_type]})))},remoteStatistics:e.msg_down_stream_info.map((e=>({userId:e.msg_user_info.str_identifier,audio:{bitrate:(e.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(e.msg_audio_status.uint32_audio_level||0)/dP,point2pointDelay:(e.msg_audio_status.uint32_audio_p2p_delay||0)+(e.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:e.msg_audio_status.uint32_audio_cache_ms||0},video:e.msg_video_status.map((e=>({bitrate:(e.uint32_video_codec_bitrate||0)/1e3,width:e.uint32_video_width,height:e.uint32_video_height,frameRate:e.uint32_video_dec_fps,videoType:c[e.uint32_video_stream_type],point2pointDelay:(e.uint32_video_p2p_delay||0)+(e.uint32_video_cache_ms||0),jitterBufferDelay:e.uint32_video_cache_ms||0,codec:e.uint32_video_codec})))})))};this.emit(BH.STATISTICS,l)})).add("custom-message",(e=>{this.emit(BH.CUSTOM_MESSAGE,e)})).add("layerData",(e=>this.emit(BH.LAYER_DATA,e))).add("first-video-frame",(e=>{this.emit(BH.FIRST_VIDEO_FRAME,Eb(gb({},e),{streamType:mH(e.streamType)}))})).add("audio-frame",(e=>{this.emit(BH.AUDIO_FRAME,e)})),cx(this,uV).add("audioInputAdded",(e=>{this.emit(BH.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})})).add("audioInputRemoved",(e=>{this.emit(BH.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})})).add("videoInputAdded",(e=>{this.emit(BH.DEVICE_CHANGED,{type:"camera",action:"add",device:e})})).add("videoInputRemoved",(e=>{this.emit(BH.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})})).add("audioOutputAdded",(e=>Rb(this,null,(function*(){if(this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),ZW&&ZW.deviceId===gD){let e=(yield gV()).find((e=>e.deviceId===gD));e&&ZW.groupId!==e.groupId&&(ZW=e,this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:e}))}})))).add("audioOutputRemoved",(e=>Rb(this,null,(function*(){this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield gV())[0];if(!t||!ZW||ZW.groupId===t.groupId)return;let i=ZW.deviceId===e.deviceId,r=ZW.deviceId===gD&&ZW.deviceId===t.deviceId;(i||r)&&(ZW=t,this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))}))))}use(e){let t,i;"plugin"in e?(t=e.plugin,i=e.assetsPath):t=e,this._use(t,i)}_use(t,i){if(this._plugins.get(t.Name))return void this._log.warn("duplicate install plugin",t.Name);let r=new t(rW.call(this,{TRTC:e,room:this._room,assetsPath:i,errorModule:{RtcError:pH,ErrorCode:cH,CoreErrorCode:Vb,ErrorCodeDictionary:lH}}));this._plugins.set(t.Name,r),t.autoStart&&this.startPlugin(t.Name)}enterRoom(t){return Rb(this,null,(function*(){var i,r;this.enterRoomParams=t;let{scene:n="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:a=!1}=t;t.proxy&&(this._room.setProxyServer(t.proxy),!hw(t.proxy)&&t.proxy.turnServer&&(null==(r=(i=this._room).setTurnServer)||r.call(i,t.proxy.turnServer,t.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=a,mw(t.preferHW)&&(this._room.preferHW=t.preferHW),t.playoutDelay&&(this._room.playoutDelay=t.playoutDelay),t.jitterBufferDelay&&(this._room.jitterBufferDelay=t.jitterBufferDelay);let c={sdkAppId:t.sdkAppId,userId:t.userId,userSig:t.userSig,privateMapKey:t.privateMapKey||null,latencyLevel:t.latencyLevel,role:"audience"===t.role?21:20,roomId:t.roomId||0,strRoomId:t.strRoomId||"",businessInfo:t.businessInfo||null,streamId:null,userDefineRecordId:t.userDefineRecordId||null,frameWorkType:t.frameWorkType,component:t.component,language:t.language,priority:t.priority,useVp8:t.useVp8,useH265:t.useH265,keepAlive:t.keepAlive};t.strRoomId&&!t.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(c,n,e.frameWorkType),this._checkTrackToPublish(),CW.start()}))}exitRoom(){return Rb(this,null,(function*(){return yield this._exitRoom()}))}switchRoom(e){return Rb(this,null,(function*(){if(this.room.isSwitchRoomSupported())yield this._room.switchRoom(e);else{yield this.exitRoom();let t=gb(gb({},this.enterRoomParams),e);yield this.enterRoom(t)}}))}switchRole(e,t){return Rb(this,null,(function*(){null!=t&&t.privateMapKey&&(this._room.privateMapKey=t.privateMapKey),null!=t&&t.latencyLevel&&(this._room.latencyLevel=t.latencyLevel),yield this._room.switchRole(e),"anchor"===e&&this._checkTrackToPublish()}))}destroy(){lx(this),this.removeAllListeners(),this._room.destroy(),QW.delete(this),0===QW.size&&CW.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach((e=>{var t;return null==(t=e.destroy)?void 0:t.call(e)})),this._plugins.clear(),dM.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0};return function*(){if(e._localAudioTrack)return void e._log.warn("local audio is already started");let{publish:i=!0,mute:r,option:n}=t,o=new XV(e._room.audioManager),s={},a={muted:!0};n&&(uw(n.microphoneId)?uw(n.audioTrack)||(s.customSource=n.audioTrack):s.deviceId=n.microphoneId,n&&pw(n.captureVolume)&&o.setCaptureVolume(n.captureVolume),uw(n.profile)||(hw(n.profile)?Ek[n.profile]&&o.setProfile(Ek[n.profile]):o.setProfile(n.profile)),pw(n.earMonitorVolume)&&(a.muted=!(n.earMonitorVolume>0),a.volume=n.earMonitorVolume),uw(n.echoCancellation)||(o.profile.echoCancellation=n.echoCancellation),uw(n.noiseSuppression)||(o.profile.noiseSuppression=n.noiseSuppression),uw(n.autoGainControl)||(o.profile.autoGainControl=n.autoGainControl),mw(e._enableAutoSwitchWhenRecapturing)&&(o.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),o.on("5",(t=>{e.emit(BH.ERROR,new pH({code:cH.DEVICE_ERROR,extraCode:5309,messageParams:{error:t}}))})),o.on("2",(t=>{e.emit(BH.DEVICE_CHANGED,{type:"microphone",action:"active",device:t})})),o.on("4",(t=>{let i;t.error&&(i=pH.convertFrom(t.error)),e.emit(BH.PUBLISH_STATE_CHANGED,Eb(gb({},t),{error:i}))})),o.on("6",(()=>{e.emit(BH.ERROR,new pH({code:cH.OPERATION_FAILED,extraCode:5506,message:"audio encode failed"}))})),e._listenOutputTrackChanged(o),e._speakerId&&o.setAudioOutput(e._speakerId),yield o.capture(s),uw(r)||o.setMute(r),cx(o,o).add("player-state-changed",(t=>{e.emit(BH.AUDIO_PLAY_STATE_CHANGED,Eb(gb({},t),{userId:""}))})),i&&e._room.isJoined&&e._room.publish(o).catch((()=>{})),e._localAudioTrack=o,e._localAudioConfig=Eb(gb({},t),{publish:i}),yield e._updateAudioPlayOption({playOption:a,track:o}),dM.emit("113",{userId:"",room:e.room})}()}))}updateLocalAudio(e){return Rb(this,null,(function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:t,mute:i,option:r}=e,n={};r&&(r.microphoneId?yield this._localAudioTrack.switchDevice(r.microphoneId):uw(r.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(r.audioTrack)),uw(r.captureVolume)||this._localAudioTrack.setCaptureVolume(r.captureVolume),uw(r.earMonitorVolume)||(n.muted=!(r.earMonitorVolume>0),n.volume=r.earMonitorVolume),yield this._localAudioTrack.update3A(r)),this._room.isJoined&&!uw(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch((()=>{})),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch((()=>{}))),uw(i)||this._localAudioTrack.setMute(i),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Ow(this._localAudioConfig,e)}))}stopLocalAudio(){return Rb(this,null,(function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch((()=>{}))),dM.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),lx(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)}))}startLocalVideo(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0,view:null,capture:!0};return function*(){var i;if(e._localVideoTrack)return void e._log.warn("local video is already started");let{view:r,publish:n=!0,capture:o=!0,mute:s,option:a}=t,c=new eU(e._room.videoManager),l={},d={};a&&(mw(a.avoidCropping)&&(c.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:uw(a.useFrontCamera)?uw(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?Ik.FACING_MODE_USER:Ik.FACING_MODE_ENVIRONMENT,uw(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=_H(a.qosPreference)),uw(a.profile)||(hw(a.profile)?Tk[a.profile]&&c.setProfile(Tk[a.profile]):c.setProfile(a.profile)),uw(a.fillMode)||(d.objectFit=a.fillMode),uw(a.mirror)||(d.mirror=a.mirror),uw(a.small)||(uw(a.smallMode)||(e._room.smallMode=a.smallMode),mw(a.small)&&!1===a.small?c.stopSmall():c.updateSmallConfig(fH(a.small,!0))),uw(a.rotation)||c.setRotation(a.rotation),mw(e._enableAutoSwitchWhenRecapturing)&&(c.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),c.once("first-video-frame",(t=>{e.emit(BH.FIRST_VIDEO_FRAME,Eb(gb({},t),{streamType:mH(t.streamType)}))})),c.on("5",(t=>{e.emit(BH.ERROR,new pH({code:cH.DEVICE_ERROR,extraCode:5308,messageParams:{error:t}}))})),c.on("2",(t=>{e.emit(BH.DEVICE_CHANGED,{type:"camera",action:"active",device:t})})),c.on("4",(t=>{let i;t.error&&(i=pH.convertFrom(t.error)),e.emit(BH.PUBLISH_STATE_CHANGED,Eb(gb({},t),{error:i}))})),c.on("6",(()=>{e.emit(BH.ERROR,new pH({code:cH.OPERATION_FAILED,extraCode:5505,message:"video encode failed"}))})),e._listenOutputTrackChanged(c),o?yield c.capture(l):null==(i=c.manager)||i.changeInput(c),uw(s)||(yield c.setMute(s)),cx(c,c).add("player-state-changed",(t=>{e.emit(BH.VIDEO_PLAY_STATE_CHANGED,Eb(gb({},t),{userId:"",streamType:"main"}))})),n&&e._room.isJoined&&e._room.publish(c).catch((()=>{})),e._localVideoTrack=c,e._localVideoConfig=Eb(gb({},t),{view:r,publish:n,capture:o}),yield e._updateVideoPlayOption({view:r,playOption:d,track:c})}()}))}updateLocalVideo(e){return Rb(this,null,(function*(){var t,i,r;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:n,publish:o,mute:s,capture:a,option:c}=e,l={};if(this._localVideoConfig.capture)!1!==a?null!=c&&c.cameraId?yield this._localVideoTrack.switchDevice(null==c?void 0:c.cameraId):uw(null==c?void 0:c.useFrontCamera)?uw(null==c?void 0:c.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(null==c?void 0:c.videoTrack)):yield this._localVideoTrack.switchDevice(null!=c&&c.useFrontCamera?Ik.FACING_MODE_USER:Ik.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(a){let e={};e.deviceId=(null==c?void 0:c.cameraId)||(null==(t=this._localVideoConfig.option)?void 0:t.cameraId),e.facingMode=null!=c&&c.useFrontCamera||null!=(i=this._localVideoConfig.option)&&i.useFrontCamera?Ik.FACING_MODE_USER:Ik.FACING_MODE_ENVIRONMENT,e.customSource=(null==c?void 0:c.videoTrack)||(null==(r=this._localVideoConfig.option)?void 0:r.videoTrack),yield this._localVideoTrack.capture(e)}c&&(uw(c.profile)||(hw(c.profile)?Tk[c.profile]&&this._localVideoTrack.setProfile(Tk[c.profile]):this._localVideoTrack.setProfile(c.profile),(!c.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(c.cameraId))&&uw(c.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),uw(c.fillMode)||(l.objectFit=c.fillMode),uw(c.mirror)||(l.mirror=c.mirror),uw(c.rotation)||this._localVideoTrack.setRotation(c.rotation),c.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(_H(c.qosPreference)),uw(c.small)||(mw(c.small)&&!c.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(fH(c.small,!0)))),this._room.isJoined&&uw(o)&&this._localVideoConfig.publish&&a&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch((()=>{})),this._room.isJoined&&((null!=o?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch((()=>{})):this._room.unpublish(this._localVideoTrack).catch((()=>{}))),uw(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:n,playOption:l,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Ow(this._localVideoConfig,e)}))}stopLocalVideo(){return Rb(this,null,(function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch((()=>{}))),this._localVideoTrack.stop(),this._localVideoTrack.close(),lx(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)}))}startScreenShare(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0,view:null};return function*(){if(e._localScreenTrack)return void e._log.warn("screen share is already started");let{view:i=null,publish:r=!0,muteSystemAudio:n,option:o}=t,s=new HB(e._room.videoManager);s.on("4",(t=>{let i;t.error&&(i=pH.convertFrom(t.error)),e.emit(BH.PUBLISH_STATE_CHANGED,Eb(gb({},t),{error:i}))})),s.once("first-video-frame",(t=>{e.emit(BH.FIRST_VIDEO_FRAME,Eb(gb({},t),{streamType:mH(t.streamType)}))})),e._listenOutputTrackChanged(s),"main"===t.streamType&&(s.mediaType=4);let a=null,c={},l={};o&&(uw(o.profile)||(hw(o.profile)?Sk[o.profile]&&s.setProfile(Sk[o.profile]):s.setProfile(o.profile)),o.systemAudio&&(c.systemAudio=!0,c.echoCancellation=o.echoCancellation,c.noiseSuppression=o.noiseSuppression,c.autoGainControl=o.autoGainControl),uw(o.fillMode)||(l.objectFit=o.fillMode),o.videoTrack&&(c.videoTrack=o.videoTrack),o.audioTrack&&(c.audioTrack=o.audioTrack),o.captureElement&&(c.captureElement=o.captureElement),o.preferDisplaySurface&&(c.preferDisplaySurface=o.preferDisplaySurface),o.qosPreference&&(c.contentHint=_H(o.qosPreference)));let d=yield s.capture(c);if(s.mediaTrack.addEventListener(Ik.ENDED,(()=>{e._stopScreenShare(),e.emit(BH.SCREEN_SHARE_STOPPED)})),d.getAudioTracks()[0]&&(a=new GB(e._room.audioManager),yield a.setInputMediaStreamTrack(d.getAudioTracks()[0]),mw(n)&&a.mediaTrack&&(a.mediaTrack.enabled=!n),e._speakerId&&a.setAudioOutput(e._speakerId)),cx(s,s).add("player-state-changed",(t=>{e.emit(BH.VIDEO_PLAY_STATE_CHANGED,Eb(gb({},t),{userId:"",streamType:"sub"}))})),r&&e._room.isJoined){let t=[s];a&&(t.push(a),e._checkScreenAudioEchoCancellation(s,a)),e._room.publish(...t).catch((()=>{}))}e._localScreenTrack=s,e._localScreenAudioTrack=a,e._localScreenConfig=Eb(gb({},t),{view:i,publish:r}),yield e._updateVideoPlayOption({view:i,playOption:l,track:s})}()}))}updateScreenShare(e){return Rb(this,null,(function*(){var t;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:i,publish:r,muteSystemAudio:n,option:o}=e,s={};if(o&&(uw(o.fillMode)||(s.objectFit=o.fillMode),o.qosPreference)){let e=_H(o.qosPreference);this._localScreenTrack.setContentHint(e)}this._room.isJoined&&!uw(r)&&(r&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch((()=>{})),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch((()=>{}))),this._localScreenConfig.publish&&!r&&(this._room.unpublish(this._localScreenTrack).catch((()=>{})),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch((()=>{})))),null!=(t=this._localScreenAudioTrack)&&t.mediaTrack&&mw(n)&&(this._localScreenAudioTrack.mediaTrack.enabled=!n),yield this._updateVideoPlayOption({view:i,playOption:s,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Ow(this._localScreenConfig,e)}))}stopScreenShare(){return Rb(this,null,(function*(){return yield this._stopScreenShare()}))}startRemoteVideo(e){return Rb(this,null,(function*(){let{view:t,userId:i,streamType:r,option:n}=e,o="".concat(i,"_").concat(r);if(this._remoteVideoConfigMap.has(o))return void this._log.warn("remote video has already started. userId:".concat(i,", streamType:").concat(r));let s=this._room.remotePublishedUserMap.get(i);if(!s)return;let a={},c="main"===r?s.remoteVideoTrack:s.remoteAuxiliaryTrack;c.on("decode-failed",(e=>{this.emit(BH.ERROR,new pH({code:cH.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))})),this._listenOutputTrackChanged(c),n&&(uw(n.fillMode)||(a.objectFit=n.fillMode),uw(n.mirror)||(a.mirror=n.mirror),uw(n.poster)||(a.poster=n.poster),a.canvasRender=n.canvasRender,"main"===r&&!uw(n.small)&&(!s.remoteVideoTrack.isSubscribing&&!s.remoteVideoTrack.isSubscribed&&s.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,c.user))),yield this._room.subscribe(c),yield this._enableVideoDecodeFallback(c,r),yield this._updateVideoPlayOption({view:t,playOption:a,track:c}),this._emitTrackEvent(c),this._remoteVideoConfigMap.set(o,{config:e}),n&&!uw(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:c,view:t,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:null==n?void 0:n.viewRoot})}))}updateRemoteVideo(e){return Rb(this,null,(function*(){var t,i;let{view:r,userId:n,streamType:o,option:s}=e,a="".concat(n,"_").concat(o),c=this._remoteVideoConfigMap.get(a);if(!c||!this._room.remotePublishedUserMap.has(n))return;let l={};s&&(uw(s.fillMode)||(l.objectFit=s.fillMode),uw(s.mirror)||(l.mirror=s.mirror));let d=null,u=this._room.remotePublishedUserMap.get(n);if("main"===o&&null!=u&&u.muteState.hasVideo&&(d=u.remoteVideoTrack),"sub"===o&&null!=u&&u.muteState.hasAuxiliary&&(d=u.remoteAuxiliaryTrack),!d)return;let{config:h}=c;"main"===o&&s&&!uw(s.small)&&this._room.changeType(s.small,d.user),yield this._updateVideoPlayOption({view:r,playOption:l,track:d,prevConfig:h}),Ow(h,e);let p=uw(null==s?void 0:s.receiveWhenViewVisible)?null==(t=h.option)?void 0:t.receiveWhenViewVisible:s.receiveWhenViewVisible,m=uw(r)?h.view:r,_=uw(null==s?void 0:s.viewRoot)?null==(i=h.option)?void 0:i.viewRoot:s.viewRoot;this._observeView({remoteTrack:d,view:m,receiveWhenViewVisible:p,viewRoot:_})}))}stopRemoteVideo(e){return Rb(this,null,(function*(){return this._stopRemoteVideo(e)}))}_stopRemoteVideo(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Rb(this,null,(function*(){let i=[],r=this._room.remotePublishedUserMap.get(e.userId);if(r){let{muteState:t,remoteVideoTrack:n,remoteAuxiliaryTrack:o}=r;"main"===e.streamType&&(n.stop(),t.hasVideo&&i.push(n)),"sub"===e.streamType&&(o.stop(),t.hasAuxiliary&&i.push(o))}for(let e of i)t&&(yield this._room.unsubscribe(e),this._mediaTrackMap.delete(e.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)}))}_removeRemoteVideoConfig(e,t){let i="".concat(e,"_").concat(t),r=this._remoteVideoConfigMap.get(i);r&&r.observer&&r.observer.disconnect(),this._remoteVideoConfigMap.delete(i)}muteRemoteAudio(e,t){return Rb(this,null,(function*(){this._remoteAudioMuteMap.set(e,t);try{if("*"===e)if(t)yield this._stopRemoteAudio({userId:e});else{let e=[...this._room.remotePublishedUserMap.values()];for(let t of e)t.muteState.hasAudio&&!this._remoteAudioConfigMap.has(t.userId)&&(yield this._startRemoteAudio({userId:t.userId}))}else t?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(AM){throw AM.code!==cH.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),AM}}))}setRemoteAudioVolume(e,t){if("*"===e){this._remoteAudioVolumeMap.set("*",t),this._remoteAudioVolumeMap.forEach(((e,i)=>this._remoteAudioVolumeMap.set(i,t)));let e=[...this._room.remotePublishedUserMap.values()];for(let i of e)this._remoteAudioVolumeMap.set(i.userId,t),i.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:i.remoteAudioTrack})}else if(e){let i=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,t),i&&i.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:i.remoteAudioTrack})}}startPlugin(e,t){return Rb(this,null,(function*(){return e.start(t)}))}updatePlugin(e,t){return Rb(this,null,(function*(){return e.update(t)}))}stopPlugin(e,t){return Rb(this,null,(function*(){return e.stop(t)}))}enableAudioVolumeEvaluation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._room.enableAudioVolumeEvaluation(e,t)}on(e,t,i){if(this.listeners(e).includes(t))return this;if(this._log.debug("on",e),super.on(e,t,i),this._eventListened.add(e),this.listeners(BH.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:e}=this.room.audioManager;e.get("")||e.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];try{HH.has(e)&&this._log.debug("emit ".concat(e," ").concat(JSON.stringify(i)))}catch(AM){}return super.emit(e,...i)}off(t,i,r){if(this._log.debug("off",t),"*"===t?(this._eventListened.clear(),this.removeAllListeners()):super.off(t,i,r),(t===e.EVENT.AUDIO_FRAME||"*"===t)&&0===this.listeners(e.EVENT.AUDIO_FRAME).length){let{getPCMAbortCtrlMap:e}=this.room.audioManager;e.forEach((e=>{null==e||e.abort("off")})),e.clear()}return this}getAudioTrack(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},i=null,r="main",n=!1;if(hw(t)?e=t:(e=t.userId,n=!0===t.processed,t.streamType&&(r=t.streamType)),e){let t=this._room.remotePublishedUserMap.get(e);t&&(i=t.remoteAudioTrack)}else i="sub"===r?this._localScreenAudioTrack:this._localAudioTrack;return i?n&&i.outMediaTrack&&i.outMediaTrack!==i.mediaTrack?i.outMediaTrack.clone():i.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},{userId:t="",streamType:i="main",processed:r=!1}=e,n=null;if(""===t)"main"===i&&this._localVideoTrack&&(n=this._localVideoTrack),"sub"===i&&this._localScreenTrack&&(n=this._localScreenTrack);else{let e=this._room.remotePublishedUserMap.get(t);e&&(n="main"===i?e.remoteVideoTrack:e.remoteAuxiliaryTrack)}return n?r&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{userId:t,streamType:i="main"}=e;if(t){let e=this._room.remotePublishedUserMap.get(t);if("main"===i&&null!=e&&e.muteState.hasVideo)return e.remoteVideoTrack.getVideoFrame();if("sub"===i&&null!=e&&e.muteState.hasAuxiliary)return e.remoteAuxiliaryTrack.getVideoFrame()}else{if("main"===i&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if("sub"===i&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var t,i;this._speakerId=e,null==(t=this._localAudioTrack)||t.setAudioOutput(e),null==(i=this._localScreenAudioTrack)||i.setAudioOutput(e),this._room.remotePublishedUserMap.forEach((t=>t.remoteAudioTrack.setAudioOutput(e)))}setCurrentSpeaker(e){return Rb(this,null,(function*(){(yield gV()).forEach((t=>{t.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}),ZW=t)})),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 Rb(this,null,(function*(){var t;let{userId:i}=e;if(this._remoteAudioConfigMap.has(i))return void this._log.warn("remote audio has already started. userId:".concat(i));let r=this._room.remotePublishedUserMap.get(i);if(!r)return;let n={},o=r.remoteAudioTrack;o.on("decode-failed",(e=>{this.emit(BH.ERROR,new pH({code:cH.OPERATION_FAILED,extraCode:5506,message:"audio decode failed"}))})),this._listenOutputTrackChanged(o),this._speakerId&&o.setAudioOutput(this._speakerId);try{let r=null!=(t=this._remoteAudioVolumeMap.get(i))?t:this._remoteAudioVolumeMap.get("*"),s=pw(r)?r:100;n.volume=s,this._remoteAudioConfigMap.set(i,e),yield this._room.subscribe(o),fU(qU(o,"decode-failed"),_F(qU(o,ZL.INIT)),mB((()=>{this.startPlugin(qW.Name,{track:o,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})}))),yield this._updateAudioPlayOption({playOption:n,track:o}),dM.emit("115",{userId:i,room:this.room}),o.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:o.outMediaTrack,refId:"ra-".concat(i)})}catch(s){throw this._remoteAudioConfigMap.delete(i),s}this._emitTrackEvent(o)}))}_stopRemoteAudio(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Rb(this,null,(function*(){let i=this._room.remotePublishedUserMap.get(e.userId);i&&(i.remoteAudioTrack.stop(),i.muteState.hasAudio&&t&&(yield this._room.unsubscribe(i.remoteAudioTrack)),this._mediaTrackMap.delete(i.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId)),dM.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:"ra-".concat(e.userId)})}))}_enableVideoDecodeFallback(e,t){let i,r=this._room.videoDecodeFallbackType;r&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),fU(qU(e,"decode-failed"),_F(qU(e,ZL.INIT)),_B((()=>{"h265"!==this._room.downlinkVideoCodec&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:r})})),zF(qU(e,"decode-downgrade-state-changed")),mB((r=>{i=r.state,this.emit(BH.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Eb(gb({},r),{streamType:t,userId:e.userId}))}),(t=>{e.log.error("fallback",t)}),(()=>{"STARTED"===i&&e.log.info("fallback complete")}))))}_updateVideoPlayOption(e){return Rb(this,arguments,(function(e){let{view:t,playOption:i,track:r,prevConfig:n}=e;return function*(){if(r.setMirror(i.mirror),uw(t)&&n&&n.view&&!kw(i)){let e=Pw(n.view);e.length>0&&(yield r.play(e,i))}if(!uw(t)){let e=Pw(t);e.length>0?yield r.play(e,i):r.stop()}}()}))}_updateAudioPlayOption(e){return Rb(this,arguments,(function(e){var t=this;let{playOption:i={},track:r,prevConfig:n}=e;return function*(){if(!r.isPlayCalled)try{yield r.play(null,i)}catch(Xb){}if(uw(i.muted)||r.setPlayerMute(i.muted),uw(i.volume)||r.setAudioVolume(i.volume/100),r instanceof XV&&r.mediaTrack){let e=!1===i.muted&&!uw(i.volume)&&i.volume>0?"add":"remove";t.room.audioManager.updateAudioReference({type:e,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof YB){let e=i.muted?0:i.volume;if(uw(e))return;t.room.audioManager.updateAudioReference({type:"updateVolume",refId:"ra-".concat(r.userId),volume:i.volume})}}()}))}_listenOutputTrackChanged(e){0===e.listeners("output-media-track-changed").length&&e.on("output-media-track-changed",(()=>this._emitTrackEvent(e,!1)))}_emitTrackEvent(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e.isRemote?e.userId:"";e.outMediaTrack&&(t&&this._mediaTrackMap.get(e.outMediaTrack)===i||(this._mediaTrackMap.set(e.outMediaTrack,i),this.emit(BH.TRACK,{userId:i,streamType:mH(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,t,i;let r=[];if(null!=(e=this._localAudioConfig)&&e.publish&&this._localAudioTrack&&r.push(this._localAudioTrack),null!=(t=this._localVideoConfig)&&t.publish&&this._localVideoTrack&&r.push(this._localVideoTrack),null!=(i=this._localScreenConfig)&&i.publish&&(this._localScreenTrack&&r.push(this._localScreenTrack),this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),0!==r.length)return this._room.publish(...r).catch((()=>{}))}_observeView(e){let{remoteTrack:t,view:i,receiveWhenViewVisible:r=!1,viewRoot:n}=e;if(uw(i))return;let o=this._remoteVideoConfigMap.get("".concat(t.userId,"_").concat(mH(t.streamType)));if(!o)return;let s=o.observer||void 0;if(null===i||fw(i)&&0===i.length||!r)return null==s||s.disconnect(),void(t.isSubscribed||this._room.subscribe(t).catch((()=>{})));let a=o.visibleViewMap||new Map,c=-1;(!s||s.root!==n)&&(null==s||s.disconnect(),a.clear(),s=new IntersectionObserver((e=>{e.forEach((e=>{a.set(e.target,e.isIntersecting),t.log.info("view ".concat(e.target.id," is").concat(e.isIntersecting?"":" not"," visible"))})),clearTimeout(c),c=window.setTimeout((()=>{[...a.values()].find((e=>e))?t.isSubscribed||this._room.subscribe(t).catch((()=>{})):t.isSubscribed&&this._room.unsubscribe(t).catch((()=>{}))}),200)}),{root:n}));let l=new Set(Pw(i));a.forEach(((e,t)=>{l.has(t)||(s.unobserve(t),a.delete(t))})),l.forEach((e=>{a.set(e,!0),s.observe(e)})),s.takeRecords().forEach((e=>{a.set(e.target,e.isIntersecting)})),o.visibleViewMap=a,o.observer=s}_exitRoom(){return Rb(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 t=e.includes("main")?"main":"sub",i=e.split("_".concat(t))[0];i&&this._stopRemoteVideo({userId:i,streamType:t}).catch()})),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),function(e){let t=nW.get(e);t&&(t.forEach((e=>clearTimeout(e))),nW.delete(e))}(this),this._room.remotePublishedUserMap.forEach((e=>{lx(e.remoteAudioTrack),lx(e.remoteVideoTrack),lx(e.remoteAuxiliaryTrack)}))}))}_stopScreenShare(){return Rb(this,null,(function*(){var e,t;if(this._localScreenTrack){if(this._room.isJoined){let t=[this._localScreenTrack];this._localScreenAudioTrack&&t.push(this._localScreenAudioTrack),yield null==(e=this._room)?void 0:e.unpublish(...t).catch((()=>{}))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(!1===(null==(t=this._localScreenAudioTrack.trackSettings)?void 0:t.echoCancellation)&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),lx(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}}))}_checkScreenAudioEchoCancellation(e,t){return Rb(this,null,(function*(){var i,r;if(!e||!t)return;let n=null==(i=e.trackSettings)?void 0:i.displaySurface;if(!1===(null==(r=t.trackSettings)?void 0:r.echoCancellation)&&("monitor"===n||"browser"===n&&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(CM){this._log.warn("start audioProcessor plugin failed: ",CM)}}}))}_onLocalTrackCaptured(e){let{track:t}=e;"audio"===t.kind&&(!ZW||hV(ZW))&&(this._initActiveSpeaker(),dM.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return Rb(this,null,(function*(){if(ZW&&!hV(ZW))this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:ZW});else{let e=yield gV();e[0]&&!hV(e[0])?(ZW=e[0],this.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):dM.on("102",this._onLocalTrackCaptured,this)}}))}_onAudioAvailable(e){let{userId:t}=e,i=this._remoteAudioMuteMap.has(t)?this._remoteAudioMuteMap.get(t):this._remoteAudioMuteMap.get("*");(!1===i||this._room.autoReceiveAudio&&!i)&&this._doStartRemoteAudio({userId:t}).catch((()=>{}))}_onVideoAvailable(e){let{userId:t,streamType:i}=e;if(!this._room.autoReceiveVideo)return;let r=this._room.remotePublishedUserMap.get(t);if(r){let e="main"===i?r.remoteVideoTrack:r.remoteAuxiliaryTrack,t=[e];this._room.autoReceiveAudio&&r.remoteAudioTrack.isAvailable&&t.push(r.remoteAudioTrack),this._room.subscribe(...t).then((()=>{this._emitTrackEvent(e)})).catch((()=>{}))}}_onAudioUnavailable(e){let{userId:t,muteState:i}=e;i.hasAudio&&i.audioMuted||this._stopRemoteAudio({userId:t},!1).catch((()=>{}))}_onVideoUnavailable(e){let{userId:t,streamType:i}=e;this._stopRemoteVideo({userId:t,streamType:i},!1).catch((()=>{}))}sendSEIMessage(e,t){var i;let r=this._plugins.get("SEI");r&&(r.update({buffer:e,options:Eb(gb({seiPayloadType:243},t),{small:!(null==(i=this._localVideoTrack)||!i.small)})}),UP.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,i;null==(i=(t=this._room).sendCustomMessage)||i.call(t,e),UP.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,t){return Rb(this,null,(function*(){return this._log.info("callExperimentalAPI(".concat(e,", ").concat(JSON.stringify(t),")")),YW.call(e,gb({trtcInstance:this},t))}))}static setLogLevel(e,t){_M.setLogLevel(e),uw(t)||(t?_M.enableUploadLog():_M.disableUploadLog())}static isSupported(){return XP(e.frameWorkType)}static getCameraList(){return _V(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getMicrophoneList(){return mV(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getSpeakerList(){return gV(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static setCurrentSpeaker(t){return Rb(this,null,(function*(){if(!CN||t!==aH.SPEAKER&&t!==aH.HEADSET)(yield gV()).forEach((e=>{e.deviceId===t&&(QW.forEach((i=>{i._setCurrentSpeaker(t),i.emit(BH.DEVICE_CHANGED,{type:"speaker",action:"active",device:e})})),ZW=e)}));else{let i=yield e.getMicrophoneList(),r="";if(i.forEach((e=>{e.label===t&&(r=e.deviceId)})),!r)return;QW.forEach((e=>Rb(this,null,(function*(){e._localAudioTrack&&(yield e.updateLocalAudio({option:{microphoneId:r}}))}))))}}))}static _addKVStat(e){let{type:t,key:i,value:r,base:n,useUV:o,version:s,max:a}=e;switch(s&&(VP.version=s),t){case"count":VP.addCount({key:i,useUV:o});break;case"enum":VP.addEnum({key:i,value:r,useUV:o});break;case"number":VP.addNumber({key:i,value:r,split:n,max:a})}}};Ib($W,"_loggerManager",_M),Ib($W,"EVENT",BH),Ib($W,"ERROR_CODE",cH),Ib($W,"TYPE",aH),Ib($W,"frameWorkType",30),Sb([lW({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?null==e?void 0:e.assetsPath:"default"}})})],$W.prototype,"use",1),Sb([oW(kH.TRTC.enterRoom),VH("room",((e,t)=>{let[i]=e,[r]=t;return(i.roomId||i.strRoomId)===(r.roomId||r.strRoomId)&&i.userId===r.userId&&i.sdkAppId===r.sdkAppId})),xV((e=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),e.call(this,t)})),lW()],$W.prototype,"enterRoom",1),Sb([lW()],$W.prototype,"exitRoom",1),Sb([oW(kH.TRTC.switchRoom),lW(),WV()],$W.prototype,"switchRoom",1),Sb([oW(kH.TRTC.switchRole),UH("room",{merge:(e,t)=>t}),lW()],$W.prototype,"switchRole",1),Sb([lW()],$W.prototype,"destroy",1),Sb([oW(kH.TRTC.startLocalAudio),VH("audio",((e,t)=>{let[i]=e,[r]=t;var n,o;return(null==(n=null==i?void 0:i.option)?void 0:n.microphoneId)===(null==(o=null==r?void 0:r.option)?void 0:o.microphoneId)})),lW()],$W.prototype,"startLocalAudio",1),Sb([oW(kH.TRTC.updateLocalAudio),UH("audio",{debounce:{delay:200,getKey:()=>"".concat(XW,"-localAudio"),isNeedToDebounce:e=>{var t;return!uw(null==(t=e.option)?void 0:t.captureVolume)}}}),lW()],$W.prototype,"updateLocalAudio",1),Sb([FH("audio"),lW()],$W.prototype,"stopLocalAudio",1),Sb([oW(kH.TRTC.startLocalVideo),VH("video",((e,t)=>{let[i]=e,[r]=t;var n,o;return(null==(n=null==i?void 0:i.option)?void 0:n.cameraId)===(null==(o=null==r?void 0:r.option)?void 0:o.cameraId)})),lW()],$W.prototype,"startLocalVideo",1),Sb([oW(kH.TRTC.updateLocalVideo),UH("video"),lW()],$W.prototype,"updateLocalVideo",1),Sb([FH("video"),lW()],$W.prototype,"stopLocalVideo",1),Sb([oW(kH.TRTC.startScreenShare),VH("screen",(()=>!0)),lW()],$W.prototype,"startScreenShare",1),Sb([oW(kH.TRTC.updateScreenShare),UH("screen"),lW()],$W.prototype,"updateScreenShare",1),Sb([lW()],$W.prototype,"stopScreenShare",1),Sb([oW(kH.TRTC.startRemoteVideo),VH((e=>"v".concat(e.userId).concat(e.streamType)),(()=>!0)),lW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],$W.prototype,"startRemoteVideo",1),Sb([oW(kH.TRTC.updateRemoteVideo),UH((e=>"v".concat(e.userId).concat(e.streamType))),lW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],$W.prototype,"updateRemoteVideo",1),Sb([oW(kH.TRTC.stopRemoteVideo),xV((e=>function(t){return Rb(this,null,(function*(){if("*"===t.userId){let e=[];return this._room.remotePublishedUserMap.forEach((t=>{this._remoteVideoConfigMap.has("".concat(t.userId,"_main"))&&e.push(this.stopRemoteVideo({streamType:"main",userId:t.userId}).catch((()=>{}))),this._remoteVideoConfigMap.has("".concat(t.userId,"_sub"))&&e.push(this.stopRemoteVideo({streamType:"sub",userId:t.userId}).catch((()=>{})))})),Promise.all(e)}return e.call(this,t)}))})),lW({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],$W.prototype,"stopRemoteVideo",1),Sb([FH((e=>"v".concat(e.userId).concat(e.streamType)))],$W.prototype,"_stopRemoteVideo",1),Sb([oW(...kH.TRTC.muteRemoteAudio),lW({getRemoteId:e=>e})],$W.prototype,"muteRemoteAudio",1),Sb([sW(...kH.TRTC.setRemoteAudioVolume),function(e,t){return xV(((i,r)=>function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];let s=nW.get(this);s||(s=new Map,nW.set(this,s));let a=t(...n),c=s.get(a);if(!c||c<=0){i.apply(this,n);let t=setTimeout((()=>{var e;null==(e=nW.get(this))||e.delete(a)}),e);s.set(a,t)}else{clearTimeout(c);let t=window.setTimeout((()=>{var e;i.apply(this,n),null==(e=nW.get(this))||e.delete(a)}),e);s.set(a,t)}}))}(200,(e=>e)),lW({getRemoteId:e=>e})],$W.prototype,"setRemoteAudioVolume",1),Sb([uW("start"),PV((e=>{var t;return null==(t=e.afterStart)?void 0:t.call(e)})),VH(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t))),lW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>OP[e.getName()],ignoreLog:e=>"Debug"===e.getName(),ignoreErrorLog:e=>"AudioProcessor"===e.getName()})],$W.prototype,"startPlugin",1),Sb([uW("update"),UH(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t)),{merge:(e,t)=>(Ow(e[1],t[1]),e)}),lW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>MP[e.getName()]})],$W.prototype,"updatePlugin",1),Sb([uW("stop"),FH(((e,t)=>{if(e.disableRandomCall)return null;let i=e.getGroup(t),r=e.getAlias();return"*"===i?new RegExp("".concat(r,".*")):r+i})),lW({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>PP[e.getName()]})],$W.prototype,"stopPlugin",1),Sb([sW(...kH.TRTC.enableAudioVolumeEvaluation)],$W.prototype,"enableAudioVolumeEvaluation",1),Sb([lW()],$W.prototype,"getVideoSnapshot",1),Sb([lW()],$W.prototype,"_setCurrentSpeaker",1),Sb([VH((e=>"a".concat(e.userId)),(()=>!0))],$W.prototype,"_startRemoteAudio",1),Sb([xV((e=>function(t){return Rb(this,null,(function*(){return"*"===t.userId?Promise.all([...this._room.remotePublishedUserMap.values()].map((e=>this._stopRemoteAudio(Eb(gb({},t),{userId:e.userId})).catch((()=>{}))))):e.call(this,t)}))})),FH((e=>"a".concat(e.userId)))],$W.prototype,"_stopRemoteAudio",1),Sb([FH("room")],$W.prototype,"_exitRoom",1),Sb([FH("screen")],$W.prototype,"_stopScreenShare",1),Sb([oW(...kH.TRTC.sendSEIMessage),nH({timesInSecond:30,maxSizeInSecond:8e3,getSize:function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].byteLength}})],$W.prototype,"sendSEIMessage",1),Sb([oW(kH.TRTC.sendCustomMessage),nH({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],$W.prototype,"sendCustomMessage",1),Sb([oW(kH.TRTC.create)],$W,"_create",1);var eG=$W,tG=class{constructor(){Ib(this,"_set",new Set),dM.on(hM.LEAVE_SUCCESS,this.delete,this),dM.on(hM.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add(e){let{room:t,roomId:i}=e;if("rtc"===t.scene)return;let r=this.getKey(t.userId,i||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete(e){let{room:t,roomId:i}=e;if("rtc"===t.scene)return;let r=this.getKey(t.userId,t.roomId||i,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(e,t,i,r){return"".concat(i,"_").concat(t,"_").concat(e,"_").concat(r)}isJoined(e){let{userId:t,roomId:i,sdkAppId:r,room:n}=e;return"rtc"!==n.scene&&this._set.has(this.getKey(t,i,r,n.useStringRoomId))}handleSwitchRoomSuccess(e){let{room:t,currentRoomId:i,targetRoomId:r}=e;"rtc"!==t.scene&&(this._set.delete(this.getKey(t.userId,i,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function iG(){return Rb(this,null,(function*(){let e,t;try{let t=yield mV();e=t&&t.length}catch(p){}try{let e=yield _V();t=e&&e.length}catch(p){}let i={microphone:e,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:n,isH264DecodeSupported:o,isVp8DecodeSupported:s,isH265EncodeSupported:a,isH265DecodeSupported:c}=this.checkSystemResult.detail,l=EM.basis(),d={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:o,vp8Encode:n,vp8Decode:s,h265Encode:a,h265Decode:c},u={browser:l.browser,os:l.os,trtc:d,devices:i},h={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};dx.uploadEvent({log:"trtcstats-".concat(JSON.stringify(u)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(u))),dx.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(h)),userId:this.userId}),BL()}))}var rG=yb(Cb()),nG="1",oG="2",sG="3",aG="4",cG="5",lG="6",dG="7",uG={CLIENT_BANNED:9,CHANNEL_SETUP_RESULT:19,CHANNEL_RECONNECT_RESULT:514,JOIN_ROOM_RESULT:20,PEER_JOIN:4134,PEER_LEAVE:4135,STREAM_ADDED:16,STREAM_REMOVED:18,UPLINK_NETWORK_STATS:22,UPDATE_REMOTE_MUTE_STAT:23,PUBLISH_RESULT:4098,PUBLISH_STATE_CHANGE_RESULT:4112,UNPUBLISH_RESULT:4100,SUBSCRIBE_RESULT:4102,UNSUBSCRIBE_RESULT:4104,SUBSCRIBE_CHANGE_RESULT:4106,MUTE_RESULT:4108,UPDATE_OFFER_RESULT:4128,START_PUBLISH_TENCENT_CDN_RES:1286,STOP_PUBLISH_TENCENT_CDN_RES:1288,START_PUBLISH_GIVEN_CDN_RES:777,STOP_PUBLISH_GIVEN_CDN_RES:779,START_MIX_TRANSCODE_RES:781,STOP_MIX_TRANSCODE_RES:783,START_PUBLISH_CDN_STREAM_RES:8196,UPDATE_PUBLISH_CDN_STREAM_RES:8198,STOP_PUBLISH_CDN_STREAM_RES:8200,USER_LIST_RES:4137,SWITCH_ROLE_RES:4110,UPDATE_CONSTRAINT_CONFIG_RES:772,REBUILD_PEER_CONNECTION_RES:4150,SPC_PUBLISH_RESULT:4146,SPC_SUBSCRIBE_RESULT:4156,ABILITY_STATUS_REPORT_RESULT:4158,SERVER_FIRST_PACKAGE_RECEIVED:5e3,RECEIVE_CUSTOM_MSG:4140,FALLBACK_CODEC:66,SEND_SWITCH_ROOM_RES:4160,SEND_SWITCH_ROOM_SUBED_REQ:4161},hG=[uG.UPDATE_REMOTE_MUTE_STAT,uG.UPLINK_NETWORK_STATS,uG.USER_LIST_RES,uG.MUTE_RESULT,uG.SERVER_FIRST_PACKAGE_RECEIVED,uG.RECEIVE_CUSTOM_MSG],pG={CLIENT_BANNED:"client-banned",CHANNEL_SETUP_RESULT:"channel-setup-result",CHANNEL_RECONNECT_RESULT:"channel-reconnect-result",JOIN_ROOM_RESULT:"join-room-result",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",UPLINK_NETWORK_STATS:"uplink-network-stats",UPDATE_REMOTE_MUTE_STAT:"update-remote-mute-stat",PUBLISH_RESULT:"publish-result",PUBLISH_STATE_CHANGE_RESULT:"publish-state-change-result",UNPUBLISH_RESULT:"unpublish-result",SUBSCRIBE_RESULT:"subscribe-result",SUBSCRIBE_CHANGE_RESULT:"subscribe-change-result",UNSUBSCRIBE_RESULT:"unsubscribe-result",UPDATE_OFFER_RESULT:"update-offer-result",START_PUBLISH_TENCENT_CDN_RES:"start-publish-tencent-cdn-res",STOP_PUBLISH_TENCENT_CDN_RES:"stop-publish-tencent-cdn-res",START_PUBLISH_GIVEN_CDN_RES:"start-publish-given-cdn-res",STOP_PUBLISH_GIVEN_CDN_RES:"stop-publish-given-cdn-res",START_MIX_TRANSCODE_RES:"start-mix-transcode-res",STOP_MIX_TRANSCODE_RES:"stop-mix-transcode-res",START_PUBLISH_CDN_STREAM_RES:"start-publish-cdn-stream-res",UPDATE_PUBLISH_CDN_STREAM_RES:"update-publish-cdn-stream-res",STOP_PUBLISH_CDN_STREAM_RES:"stop-publish-cdn-stream-res",USER_LIST_RES:"user-list-res",SWITCH_ROLE_RES:"switch_role_res",MUTE_RESULT:"mute-result",UPDATE_CONSTRAINT_CONFIG_RES:"update-contraint-config-res",REBUILD_PEER_CONNECTION_RES:"rebuild-pc-res",SPC_PUBLISH_RESULT:"spc-publish-result",SPC_SUBSCRIBE_RESULT:"spc-subscribe-result",ABILITY_STATUS_REPORT_RESULT:"ability-status-report",SERVER_FIRST_PACKAGE_RECEIVED:"first-pkg-received",RECEIVE_CUSTOM_MSG:"receive-custom-msg",FALLBACK_CODEC:"fallback-codec",SEND_SWITCH_ROOM_RES:"send-switch-room-res",SEND_SWITCH_ROOM_SUBED_REQ:"send-switch-room-subed-res"},mG="publish_change",_G="join",fG="leave",gG="quality_report",EG="mute_uplink",TG="publish",vG="publish_state_change",yG="unpublish",SG="subscribe",IG="unsubscribe",AG="subscribe_change",RG="start_publishing",CG="stop_publishing",bG="start_push_user_cdn",kG="stop_push_user_cdn",DG="start_mcu_mix",wG="stop_mcu_mix",NG="start_publish_cdn_stream",OG="update_publish_cdn_stream",MG="stop_publish_cdn_stream",PG="get_user_list",LG="change_role",xG="update_constraint_config",VG="rebuild_pc",UG="join/v2",FG="publish/v2",BG="subscribe/v3",HG="ability_status_report",WG="reconnect",GG="channel_msg",jG="switch_room",JG=new Set;var KG=class extends rG.default{constructor(e){var t,i,r;super(),Ib(this,"room"),Ib(this,"sdkAppId"),Ib(this,"userId"),Ib(this,"userSig"),Ib(this,"url"),Ib(this,"backupUrl"),Ib(this,"destroyed",!1),Ib(this,"_socketInUse"),Ib(this,"_socket"),Ib(this,"_backupSocket"),Ib(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[]}),Ib(this,"_currentState","DISCONNECTED"),Ib(this,"_isReconnecting",!1),Ib(this,"_seq",0),Ib(this,"_log"),Ib(this,"_lastMessageTime",-1),Ib(this,"_connectStartTime",-1),Ib(this,"_stopConnectRetry"),Ib(this,"bytesSent",0),Ib(this,"bytesReceived",0),Ib(this,"keepAlive",!1),Ib(this,"signalDomainWhenUnifiedProxy"),Ib(this,"stopKeepAliveTimeout"),Ib(this,"rtt",0),this.room=e.room,this.sdkAppId=e.sdkAppId,this.userId=e.userId,this.userSig=e.userSig,this.signalDomainWhenUnifiedProxy=e.signalDomainWhenUnifiedProxy;let n=(null==(i=null==(t=this.room.scheduleResult)?void 0:t.config)?void 0:i.keepAliveClient)||0;null!=(r=this.room.joinParams)&&r.keepAlive&&!n&&(n=1),n-JG.size>0&&this.room.enableSPC&&(this.keepAlive=!0,JG.add(this)),this.url=e.url,this.backupUrl=e.backupUrl,this._seq=0,this._log=_M.createLogger({id:"ws",userId:this.userId,sdkAppId:this.sdkAppId}),this.onmessage=this.onmessage.bind(this),this.onerror=this.onerror.bind(this),this.onclose=this.onclose.bind(this)}get race(){return this.room.enableSPC&&!this.room.proxy_ws}get urlParam(){let e="?sdkAppId=".concat(encodeURIComponent(this.sdkAppId),"&userId=").concat(encodeURIComponent(this.userId),"&userSig=").concat(encodeURIComponent(this.userSig),"&keepAlive=").concat(encodeURIComponent(Number(this.keepAlive)));this.signalDomainWhenUnifiedProxy&&(e+="&signalDomain=".concat(encodeURIComponent(this.signalDomainWhenUnifiedProxy)));let t=new URLSearchParams(location.search).get("clientIp");return t&&(e+="&clientIp=".concat(t)),this.race?"".concat(e,"&race=1"):e}get _urlWithParam(){return"".concat(this.url).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get _backupUrlWithParam(){return"".concat(this.backupUrl).concat(this.race?"/v2/ws":"").concat(this.urlParam)}get isConnected(){return"CONNECTED"===this._currentState}get isConnecting(){return"CONNECTING"===this._currentState}get isOnline(){return"CONNECTED"===this._currentState&&Date.now()-this._lastMessageTime<12e3}connect(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4;return function*(){if(e.isConnected)return Promise.resolve();e._log.info("connect to [".concat(e.url,", ").concat(e.backupUrl,"] ").concat(e.race?"race":"").concat(t?" timeout: ".concat(t):""," keepAlive: ").concat(Number(e.keepAlive))),e.emitConnectionStateChanged("CONNECTING"),e._connectStartTime=Aw();let i=[e.connectWS({url:e._urlWithParam,isMain:!0,timeout:t})];e.race&&e._backupUrlWithParam!==e._urlWithParam&&i.push(e.connectWS({url:e._backupUrlWithParam,isMain:!1,timeout:t})),e._socketInUse=yield Iw(i),e.unbindAndCloseSocket(e._socketInUse===e._socket?Ik.BACKUP:Ik.MAIN),e.emitConnectionStateChanged("CONNECTED")}()}))}connectWS(e){let{url:t,timeout:i,isMain:r}=e,n=new WebSocket(t);this.bindSocket(n),r?this._socket=n:this._backupSocket=n;let o=-1;return new Promise(((e,t)=>{n.onclose=t,n.onerror=t,n.onopen=()=>e(n),i&&(o=setTimeout((()=>{this.unbindAndCloseSocket(r?Ik.MAIN:Ik.BACKUP),t(new Fb({code:Vb.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))}),i))})).finally((()=>{n.onclose=null,n.onerror=null,n.onopen=null,clearTimeout(o)}))}bindSocket(e){e.addEventListener("close",this.onclose),e.addEventListener("error",this.onerror),e.addEventListener("message",this.onmessage)}unbindSocket(e){e.removeEventListener("close",this.onclose),e.removeEventListener("error",this.onerror),e.removeEventListener("message",this.onmessage)}unbindAndCloseSocket(e){if(e===Ik.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch(Qk){}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch(Qk){}this._backupSocket=null}}onclose(e){e.target===this._socketInUse&&(this._log.warn("".concat(e.target===this._socket?"main":"backup"," is closed code:").concat(e.code," ").concat(e.reason)),this.emitConnectionStateChanged("DISCONNECTED"),(!e.wasClean||1e3!==e.code)&&this.startReconnection(),this.room.isJoining&&this.emit(cG,new Fb({code:Vb.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onclose"})))}onerror(e){this._log.error("".concat(e.target===this._socket?"main":"backup"," error observed")),this.emitConnectionStateChanged("DISCONNECTED"),e.target===this._socketInUse&&(this.unbindAndCloseSocket(Ik.MAIN),this.unbindAndCloseSocket(Ik.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(cG,new Fb({code:Vb.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(e){if(!this.isConnected)return;this._lastMessageTime=Date.now(),this.bytesReceived+=Fw(e.data);let t=JSON.parse(e.data),{cmd:i,data:r}=t,n=Object.values(uG),o=Object.keys(uG)[n.indexOf(i)],s=pG[o]||i;switch(hG.includes(i)||(this._log.debug("received ".concat(i," msg: ").concat(e.data)),s&&this._log.info("Received event: [ ".concat(s," ]"))),i){case uG.CHANNEL_SETUP_RESULT:if(0===t.code)this._signalInfo.clientIp=r.clientIp,this._signalInfo.signalIp=r.signalInnerIp,r.svrTime&&function(e){Bb=e-(new Date).getTime();let t=new Date;t.setTime(e),_M.info("baseTime from server: ".concat(t," offset: ").concat(Bb))}(r.svrTime),this._log.info("ChannelSetup Success ".concat(Aw()-this._connectStartTime)),UP.addSuccessEvent({key:521701,cost:Aw()-this._connectStartTime}),this._connectStartTime=-1,this.emit(nG,{signalInfo:this._signalInfo});else{let e=new Fb({code:Vb.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:t.code,message:CP({key:SP.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:t.code,errorMsg:t.message}})});this._log.error("".concat(t.code,", ").concat(t.message)),this.close(),UP.addFailedEvent({key:521701,error:e}),this.emit(cG,e)}break;case uG.JOIN_ROOM_RESULT:0===t.code&&(this._signalInfo.relayIp=r.relayOuterIp,this._signalInfo.relayInnerIp=r.relayInnerIp,this._signalInfo.bakRelayIps=r.bakRelayIps,this._signalInfo.relayPort=r.relayPort,this._signalInfo.tinyId=t.tinyId,this._signalInfo.endReportExtend=r.endReportExtend,this._log.info("signalIp:".concat(this._signalInfo.signalIp," clientIp:").concat(this._signalInfo.clientIp," relayIp: ").concat(this._signalInfo.relayIp))),this.emit(s,{data:t});break;default:this.emit(String(s),{data:t})}}reGetSignalChannelUrl(){return Rb(this,null,(function*(){try{if(!this.room.joinParams)return;JH(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:e,backupUrl:t}=this.room.getSignalChannelUrl();this.url=e,this.backupUrl=t}catch(Yb){}}))}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let e=this._socketInUse===this._socket;this.unbindAndCloseSocket(e?Ik.MAIN:Ik.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return Rb(this,null,(function*(){if(!this._isReconnecting){if(!this.room.isJoined&&this.keepAlive)return void this.close();this._isReconnecting=!0;try{this._log.warn("reconnect"),yield this.connect();let{roomId:e,useStringRoomId:t}=this.room,{relayIp:i,relayInnerIp:r,relayPort:n}=this._signalInfo,{data:o}=yield this.sendWaitForResponse({command:WG,data:{roomId:e,useStringRoomId:t,relayInnerIp:r,relayOuterIp:i,relayPort:n},responseCommand:pG.CHANNEL_RECONNECT_RESULT});0===o.code?(this._log.warn("reconnect success"),this.stopReconnection(),UP.addSuccessEvent({key:521702,cost:Aw()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(UP.addFailedEvent({key:521702,error:o.code}),this._log.warn("reconnect failed, ".concat(o.code," ").concat(o.message)),this.room.reJoin())}catch(Yb){this._log.error(Yb),this.room.reJoin()}}}))}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isConnected&&!this.room.isLeft){let i={cmd:e,data:t,userId:this.userId,tinyId:this._signalInfo.tinyId,seq:++this._seq},r=JSON.stringify(i);return this._socketInUse.send(r),this.bytesSent+=Fw(r),i.seq}}sendWaitForResponse(e){let{command:t,data:i,timeout:r=5e3,responseCommand:n,commandDesc:o,enableLog:s=!0,addReceiveTime:a=!1}=e;return new Promise(((e,c)=>{let l=()=>{clearTimeout(d),c(new Fb({code:Vb.API_CALL_ABORTED,message:"".concat(t," aborted due to connection closed")}))};this.once(dG,l);let d=setTimeout((()=>{this.off(n,u),this.off(dG,l);let e=new Fb({code:Vb.API_CALL_TIMEOUT,message:CP({key:SP.API_CALL_TIMEOUT,data:{commandDesc:o,command:t}})});s&&this._log.warn(e),c(e)}),r),u=t=>{t.data.seq===h&&(clearTimeout(d),this.off(n,u),this.off(dG,l),a&&(t.data.receiveTime=Date.now()),e(t))};this.on(n,u);let h=this.send(t,i)}))}sendWaitForResponseWithRetry(e){let{commandDesc:t,command:i,retries:r=0,retryTimeout:n=0}=e;return hN({retryFunction:this.sendWaitForResponse,onError:e=>{let{retry:t,reject:r,error:n}=e;!this.room.isJoined||this.destroyed||n.code===Vb.API_CALL_ABORTED?r(n):this.isOnline?t():(this._log.warn("retry ".concat(i," when connected")),this.once(sG,t))},onRetrying:e=>{this._log.warn("".concat(t||i," timeout observed, retrying [").concat(e,"/").concat(r,"]"))},settings:{retries:r,timeout:n},context:this})(e)}getCurrentState(){return this._currentState}getSignalInfo(){return this._signalInfo}stopReconnection(){this._isReconnecting=!1,this._stopConnectRetry&&this._stopConnectRetry()}close(){this._log.info("closed"),clearTimeout(this.stopKeepAliveTimeout),JG.delete(this),this.stopReconnection(),this._signalInfo={tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,bakRelayIps:[],endReportExtend:void 0},this._socketInUse=null,this.bytesSent=0,this.bytesReceived=0,this._stopConnectRetry&&this._stopConnectRetry(),this.unbindAndCloseSocket(Ik.MAIN),this.unbindAndCloseSocket(Ik.BACKUP),this.emitConnectionStateChanged("DISCONNECTED"),this.emit(dG)}destroy(){this.close(),this.destroyed=!0}getBackupRelayIpPair(){var e;let t=null==(e=this._signalInfo.bakRelayIps)?void 0:e.shift();return t&&(t.relayPort=t.relayPort||this._signalInfo.relayPort),t}clearBakRelayIps(){this._signalInfo.bakRelayIps=[]}stopKeepAliveIn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3600;if(this.keepAlive){this._log.info("stopKeepAlive in ".concat(e,"s")),this.stopKeepAliveTimeout=setTimeout((()=>{this.keepAlive=!1,this._log.info("close due to not used ".concat(e,"s")),this.close(),this.off(pG.JOIN_ROOM_RESULT,t)}),1e3*e);let t=e=>{0===e.data.code&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(pG.JOIN_ROOM_RESULT,t))};this.on(pG.JOIN_ROOM_RESULT,t)}}emitConnectionStateChanged(e){e!==this._currentState&&(this._log.info("".concat(this._currentState," -> ").concat(e)),this.emit(oG,{prevState:this._currentState,state:e}),this._currentState=e,"CONNECTED"===e?this.emit(sG):"DISCONNECTED"===e&&this.emit(lG))}};Sb([hx({settings:{retries:1/0,timeout:2e3},onError(e,t){!this.room.isDestroyed&&!this.destroyed&&t()},onRetrying(e,t){this._log.warn("retrying to connect ".concat(e)),e>=3&&e%3==0&&this.reGetSignalChannelUrl(),t&&(this._stopConnectRetry=t,(this.room.isDestroyed||this.destroyed)&&t())}})],KG.prototype,"connect",1);var qG=yb(Cb()),zG=0,YG=!1,XG=new Set,QG=!1,ZG=class{constructor(e){Ib(this,"userId"),Ib(this,"tinyId"),Ib(this,"_sdpSemantics"),Ib(this,"_isUplink"),Ib(this,"_room"),Ib(this,"_log"),Ib(this,"_signalChannel"),Ib(this,"_isErrorObserved",!1),Ib(this,"_waitForPeerConnectionConnectedPromise"),Ib(this,"_waitForPeerConnectionConnectedPromiseReject",null),Ib(this,"_peerConnection",null),Ib(this,"_emitter",new qG.default),Ib(this,"_currentState","DISCONNECTED"),Ib(this,"_isReconnecting",!1),Ib(this,"_reconnectionCount",0),Ib(this,"_reconnectionTimer",-1),Ib(this,"_isFirstConnection",!0),Ib(this,"_prevTime",-1),Ib(this,"_localAddress"),Ib(this,"_remoteAddress"),this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=_M.createLogger({id:"n-mpc",userId:this._room.userId,remoteUserId:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink}),this._signalChannel=e.signalChannel}beforeConnect(){this._prevTime<0&&(this._prevTime=Aw())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,UP.addSuccessEvent({key:521705,cost:Math.min(Aw()-this._prevTime,3e4)})):this._isReconnecting&&UP.addSuccessEvent({key:521706,cost:Aw()-this._prevTime}),this._prevTime=-1}catch(IM){throw this._isFirstConnection?(this._isFirstConnection=!1,UP.addFailedEvent({key:521705,error:IM})):this._isReconnecting&&this._reconnectionCount>=3&&UP.addFailedEvent({key:521706,error:IM}),IM}}initialize(){let e={iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};this._peerConnection=new RTCPeerConnection(e),this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this)}close(e){this._log.info("close connection"),this._emitter.emit("closed",e),this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),XG.delete(this)}closePeerConnection(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._peerConnection&&(this._log.info("close pc"),this._peerConnection.onconnectionstatechange=null,this._peerConnection.close(),this._peerConnection=null,e&&this.emitConnectionStateChangedEvent("DISCONNECTED")),this._waitForPeerConnectionConnectedPromiseReject&&this._waitForPeerConnectionConnectedPromiseReject(new Fb({code:Vb.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return Kk;let e=null;if(this._isUplink){if(!pL()||0===this._peerConnection.getSenders().length)return Kk;e=this._peerConnection.getSenders()[0].transport}else{if(!hL()||0===this._peerConnection.getReceivers().length)return Kk;e=this._peerConnection.getReceivers()[0].transport}return e?e.state:Kk}onConnectionStateChange(e){let t=this._peerConnection.iceConnectionState,i=this.getDTLSTransportState();if(this._log.info("connectionState: ".concat(e.target.connectionState,", ICE: ").concat(t,", DTLS: ").concat(i)),e.target.connectionState===qk.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),e.target.connectionState===qk.FAILED||e.target.connectionState===qk.CLOSED){let r="connection ".concat(e.target.connectionState,". ICE Transport state: ").concat(t,", DTLS Transport state: ").concat(i),n=new Fb({message:r,code:Vb.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",n)}(e.target.connectionState===qk.CONNECTED||e.target.connectionState===qk.COMPLETED)&&(this.logSelectedCandidate(),dx.logSuccessEvent({userId:this._room.userId,eventType:$k.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(e){return e!==this._currentState&&("CONNECTED"===e?(zG=0,YG=!1,QG=!0,XG.add(this)):XG.delete(this),dM.emit(hM.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:this.userId}),this._emitter.emit("connection-state-changed",{prevState:this._currentState,state:e}),this._currentState=e,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}logSelectedCandidate(){return Rb(this,null,(function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[,t]of e)if(rL(t)){let i=e.get(t.localCandidateId),r=e.get(t.remoteCandidateId);i&&(this._log.info("local candidate: ".concat(i.candidateType," ").concat(i.protocol,":").concat(i.ip||i.address,":").concat(i.port," ").concat(i.networkType||""," ").concat("relay"===i.candidateType?"relayProtocol:".concat(i.relayProtocol):"")),this._localAddress="".concat(i.ip||i.address,":").concat(i.port)),r&&(this._log.info("remote candidate: ".concat(r.candidateType," ").concat(r.protocol,":").concat(r.ip||r.address,":").concat(r.port)),this._remoteAddress="".concat(r.protocol,":").concat(r.ip||r.address));break}}))}getCurrentState(){return this._currentState}waitForPeerConnectionConnected(){return this._waitForPeerConnectionConnectedPromise||(this._waitForPeerConnectionConnectedPromise=new Promise(((e,t)=>{if("CONNECTED"===this._currentState)return e();this._waitForPeerConnectionConnectedPromiseReject=t;let i=t=>{"CONNECTED"===t.state&&(clearTimeout(o),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(o),n(),t(new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{dM.off(hM.LEAVE_SUCCESS,r,this),this._emitter.off("connection-state-changed",i,this)},o=setTimeout((()=>{n();let e=new Fb({code:Vb.API_CALL_TIMEOUT,message:"connection timeout"});var i;zG+=1,i=this._signalChannel.isConnected,zG>2&&!YG&&0===XG.size&&i&&(this._log.warn("firewall restriction"),YG=!0,this._emitter.emit("firewall-restriction")),t(e)}),uD);dM.on(hM.LEAVE_SUCCESS,r,this),this._emitter.on("connection-state-changed",i,this)})),this._waitForPeerConnectionConnectedPromise=this._waitForPeerConnectionConnectedPromise.finally((()=>{this._waitForPeerConnectionConnectedPromise=null,this._waitForPeerConnectionConnectedPromiseReject=null}))),this._waitForPeerConnectionConnectedPromise}getReconnectionCount(){return this._reconnectionCount}startReconnection(){this._isReconnecting=!0,this.reconnect()}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}stopReconnection(){this._log.info("stop reconnection"),this._isReconnecting=!1,this._reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(sG,this.reconnect,this)}beforeReconnect(){if(-1!==this._reconnectionTimer)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=Xk()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let e=new Fb({code:this._isUplink?Vb.UPLINK_RECONNECTION_FAILED:Vb.DOWNLINK_RECONNECTION_FAILED,message:CP({key:this._isUplink?SP.UPLINK_RECONNECTION_FAILED:SP.DOWNLINK_RECONNECTION_FAILED})});return this.emitConnectionStateChangedEvent("DISCONNECTED"),this._emitter.emit("error",e),-1}return this._signalChannel.isConnected?(this._reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this._reconnectionCount,"]")),1):(this._log.warn("reconnect() signal channel is not connected, suspend reconnection until signal is connected"),this._signalChannel.once(sG,this.reconnect,this),-1)}on(e,t,i){this._emitter.on(e,t,i)}off(e,t,i){this._emitter.off(e,t,i)}getIsReconnecting(){return this._isReconnecting}get isH264(){var e,t;return!(null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)||!t.sdp.includes("H264"))}setOffer(e){var t;return null==(t=this._peerConnection)?void 0:t.setLocalDescription(e)}setAnswer(e){var t;return null==(t=this._peerConnection)?void 0:t.setRemoteDescription(e)}};Sb([JV(521712,!1)],ZG.prototype,"setOffer",1),Sb([JV(521713,!1)],ZG.prototype,"setAnswer",1);var $G=yb(Pb()),ej=function(e){return $G.default.parse(e)},tj=function(e){return $G.default.write(e)};function ij(e){return Object.keys(e).filter((t=>e[t]))}var rj=class e extends ZG{constructor(e){super(Eb(gb({},e),{isUplink:!1})),Ib(this,"_flag",0),Ib(this,"isRobot",!1),Ib(this,"role","anchor"),Ib(this,"remoteAudioTrack"),Ib(this,"remoteVideoTrack"),Ib(this,"remoteAuxiliaryTrack"),Ib(this,"ssrc",{audio:0,video:0,auxiliary:0}),Ib(this,"_isSDPExchanging",!1),Ib(this,"_videoCodec"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new YB(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new XB(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new QB(this._room,this)}get videoCodec(){var e,t;let i=null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)?void 0:t.sdp;return i?i.includes("H264")?"h264":"vp8":this._videoCodec||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){let e={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(8&this.remoteVideoTrack.mediaType?e.smallVideo=!0:e.video=!0),this.remoteAudioTrack.isSubscribed&&(e.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(e.auxiliary=!0),e}get muteState(){return Dw(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,i,r;e!==this._flag&&(this._flag=e,null==(t=this.remoteAudioTrack)||t.onFlagChanged(),null==(i=this.remoteVideoTrack)||i.onFlagChanged(),null==(r=this.remoteAuxiliaryTrack)||r.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===Ik.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){super.initialize(),this.installEvents(),this._peerConnection.ontrack=this.onTrack.bind(this)}close(e){super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents()}installEvents(){}uninstallEvents(){this._emitter.removeAllListeners()}emitConnectionStateChangedEvent(e){var t,i;let r=this._currentState,n=super.emitConnectionStateChangedEvent(e);return n&&r!==e&&(null==(t=this.remoteVideoTrack)||t.emit("connection-state-changed",{prevState:r,state:e}),null==(i=this.remoteAuxiliaryTrack)||i.emit("connection-state-changed",{prevState:r,state:e})),n}onTrack(e){let t=e.streams[0],{track:i}=e,r=t.id===Lk?Ik.MAIN:Ik.AUXILIARY;this._log.debug("ontrack ".concat(r," ").concat(i.kind));let n=Ik.AUDIO;i.kind===Ik.VIDEO&&(n=r===Ik.MAIN?Ik.VIDEO:Ik.AUXILIARY);let o=this.remoteAudioTrack;n===Ik.VIDEO?o=this.remoteVideoTrack:n===Ik.AUXILIARY&&(o=this.remoteAuxiliaryTrack),o.setInputMediaStreamTrack(i)}addRRTRLine(e){let t=e.split("\r\n"),i=new Map;t.forEach(((e,r)=>{/^a=rtcp-fb:/.test(e)&&t[r+1]&&!/^a=rtcp-fb:/.test(t[r+1])&&i.set(r+1,"".concat(e.match(/^a=rtcp-fb:\d+/)[0]," rrtr"))}));let r=[...i];for(let n=0;n<r.length;n++){let[e,i]=r[n];t.splice(e+n,0,i)}return t.join("\r\n")}addSPSDescription(e){let t=ej(e);return t.media.forEach((e=>{e.type===Ik.VIDEO&&e.fmtp.forEach((e=>{e.config+=";sps-pps-idr-in-keyframe=1"}))})),tj(t)}removeSDESDescription(e){let t=["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"],i=ej(e);return i.media.forEach((e=>{e.ext&&(e.ext=e.ext.filter((e=>!t.includes(e.uri))))})),tj(i)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return Rb(this,null,(function*(){var i,r;try{if(((null==(i=this._peerConnection)?void 0:i.connectionState)===qk.NEW||(null==(r=this._peerConnection)?void 0:r.connectionState)===qk.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e))return void(this._peerConnection||(this.initialize(),yield this.connect(e)));if(this._log.info("subscribe ".concat(t," ").concat(JSON.stringify(e))),this._peerConnection||this._isSDPExchanging){let t="subscribe_change";Object.values(e).find((e=>!0===e))||(t="unsubscribe"),yield this.sendSubscription(t,e)}else this.initialize(),yield this.connect(e)}catch(Xb){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(Xb.message," ").concat(JSON.stringify(this.muteState))),new Fb({code:Vb.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):Xb}}))}unsubscribe(e){return Rb(this,arguments,(function(e){var t=this;let{remoteTracks:i,streamType:r}=e;return function*(){if("CONNECTED"===t._currentState&&("main"===r&&!t.isMainStreamSubscribed||"auxiliary"===r&&!t.isAuxStreamSubscribed))return void t._log.info("".concat(r," stream already unsubscribed"));let e=gb({},t.subscribeState);i.forEach((t=>{switch(t.mediaType){case 1:e.audio=!1;break;case 4:e.video=!1;break;case 8:e.smallVideo=!1;break;case 2:e.auxiliary=!1}}));let n="subscribe_change";Object.values(e).find((e=>!0===e))||(n="unsubscribe"),t._log.info("".concat("unsubscribe"===n?n:"subscribe"," ").concat(r," [").concat(ij(e),"]")),yield t.sendSubscription(n,e),"unsubscribe"===n&&(t.closePeerConnection(),t.emitConnectionStateChangedEvent("DISCONNECTED"))}()}))}sendSubscription(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscribeState,i={srcTinyId:this.tinyId,srcUserId:this.userId},r=IG,n=pG.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=AG,n=pG.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:r,data:i,responseCommand:n,timeout:1e4}).then((t=>{let{data:i}=t;if(0!==i.code){let t=new Fb({code:i.code,message:CP({key:SP.ERROR_MESSAGE,data:{type:e,message:i.message}})});throw this._log.error(t),t}}))}connect(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.subscribeState;return function*(){try{yield e.exchangeSDP(t),yield e.waitForPeerConnectionConnected()}catch(Qk){throw e.closePeerConnection(!0),Qk}}()}))}exchangeSDP(e){return Rb(this,null,(function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:t,sdp:i}=this._peerConnection.localDescription,r={type:t,sdp:i,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},n=yield this._signalChannel.sendWaitForResponse({command:SG,commandDesc:"exchange sdp",data:r,responseCommand:pG.SUBSCRIBE_RESULT,timeout:iD});if(!this._peerConnection){let e=new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.CONNECTION_CLOSED})});throw this._log.warn(e),e}yield this.onSubscribeResult(n),this._isSDPExchanging=!1}catch(Qk){throw this._isSDPExchanging=!1,Qk}}))}createOffer(){return Rb(this,null,(function*(){let e={voiceActivityDetection:!1};_L()&&this._sdpSemantics===rD?(this._peerConnection.addTransceiver(Ik.AUDIO,{direction:Ak.RECVONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ak.RECVONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ak.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:e}=yield YP();e||(this._log.warn("remove h264 desc from sdp"),t.sdp=function(e){let t=ej(e);return t.media.forEach((e=>{var t,i;if(e.type===Ik.VIDEO){let r=new Set;e.rtp.forEach((e=>{let{payload:t,codec:i}=e;return"H264"===i&&r.add(t)})),e.fmtp.forEach((e=>{let{payload:t,config:i}=e,n=i.match(/apt=(\d+)/);n&&n[1]&&r.has(Number(n[1]))&&r.add(t)}));let n=e=>{let{payload:t}=e;return!r.has(t)};e.rtp=e.rtp.filter(n),e.rtcpFb=null==(t=e.rtcpFb)?void 0:t.filter(n),e.fmtp=e.fmtp.filter(n),e.payloads=null==(i=e.payloads)?void 0:i.split(" ").filter((e=>!r.has(Number(e)))).join(" ")}})),tj(t)}(t.sdp)),t.sdp=this.addRRTRLine(t.sdp),t.sdp=this.addSPSDescription(t.sdp),t.sdp=function(e){let t=ej(e);return t.media.forEach((e=>{e.type===Ik.AUDIO&&e.fmtp.forEach((e=>{e.config+=";sprop-stereo=1;stereo=1"}))})),tj(t)}(t.sdp),this._sdpSemantics===rD&&(t.sdp=this.removeSDESDescription(t.sdp))}yield this.setOffer(t)}))}onSubscribeResult(e){return Rb(this,null,(function*(){let{code:t,message:i=""}=e&&e.data||{},{type:r,sdp:n}=e&&e.data&&e.data.data||{};if(t===oD)throw new Fb({code:Vb.NOT_SUPPORTED_H264,message:CP({key:SP.NOT_SUPPORTED_H264DECODE})});try{if(0!==t)throw new Fb({code:t,message:CP({key:SP.EXCHANGE_SDP_FAILED,data:{errMsg:i}})});this._log.debug("accept remote answer: ".concat(n)),yield this.setAnswer({type:r,sdp:n}),this.updateSSRC(n)}catch(CM){throw this._log.error(CM),CM}}))}updateSSRC(e){try{ej(e).media.forEach((e=>{if(e.ssrcs)if(e.type===Ik.AUDIO){let t=e.ssrcs.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(Lk)}));t&&(this.ssrc.audio=Number(t.id))}else{let t=e.ssrcs.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(Lk)})),i=e.ssrcs.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(xk)}));t&&(this.ssrc.video=Number(t.id)),i&&(this.ssrc.auxiliary=Number(i.id))}}))}catch(Qk){}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return Rb(this,null,(function*(){if(!(Ab(e.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch(Qk){let t=cw(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout((()=>{this.clearReconnectionTimer(),this.reconnect()}),t)}}))}getIsReconnecting(){return this._isReconnecting}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}getCurrentState(){return this._currentState}setDelay(e){let{audioDelay:t,videoDelay:i}=e;this.remoteAudioTrack.stat.end2EndDelay=t,this.remoteVideoTrack.stat.end2EndDelay=i}get audioReceiver(){var e;return(null==(e=this._peerConnection)?void 0:e.getReceivers()[0])||null}};Sb([xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise(((t,r)=>{let n=e=>{this._emitter.off("closed",n),r(new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this._emitter.off("closed",n)}))}))}))],rj.prototype,"subscribe",1),Sb([JV(521717,!1)],rj.prototype,"unsubscribe",1),Sb([PV(ZG.prototype.afterConnect),MV(ZG.prototype.beforeConnect)],rj.prototype,"connect",1);var nj=rj,oj={voiceActivityDetection:!1},sj=class e extends ZG{constructor(e){super(Eb(gb({},e),{isUplink:!0})),Ib(this,"localMainAudioTrack",null),Ib(this,"localMainVideoTrack",null),Ib(this,"localAuxAudioTrack",null),Ib(this,"localAuxVideoTrack",null),Ib(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),Ib(this,"_isPublishingAux",!1),Ib(this,"_publishingLocalAudioTrack"),Ib(this,"_publishingLocalVideoTrack"),Ib(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),Ib(this,"flag",0)}get videoCodec(){return this._mediaSettings.videoCodec.toLowerCase()||"h264"}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get publishState(){var e,t,i,r;let n={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let o=this._peerConnection.getSenders();o&&(mL()?(n.audio=!(null==(e=o[0])||!e.track),n.bigVideo=!(null==(t=o[1])||!t.track),n.smallVideo=!(null==(i=o[2])||!i.track),n.auxVideo=!(null==(r=o[3])||!r.track)):o.forEach((e=>{e.track&&(e.track.kind===Ik.AUDIO?n.audio=!0:(n.bigVideo=!0,this._room.videoManager.hasSmall&&(n.smallVideo=!0)))})))}return n}initialize(){super.initialize(),this.installEvents()}reset(){this._isReconnecting&&this.stopReconnection(),this.closePeerConnection(),this.uninstallEvents()}close(e){super.close(e),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this._emitter.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this._emitter.on("connection-state-changed",this.handleConnectionStateChange,this)}uninstallEvents(){this._emitter.off("connection-state-changed",this.handleConnectionStateChange,this)}emitConnectionStateChangedEvent(e,t){var i,r,n;let o=this._currentState,s=super.emitConnectionStateChangedEvent(e);return s&&o!==e&&(t?t.emit("connection-state-changed",{prevState:o,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:o,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:o,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:o,state:e}))),s}publish(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,isAuxiliary:n}=e;return function*(){let e;t._peerConnection||t.initialize(),i&&(t._publishingLocalAudioTrack=i),r&&(t._publishingLocalVideoTrack=r),t._isPublishingAux=n,r&&!n&&r.small&&(e=t._room.videoManager.smallTrack),t.sendMediaSettings(),_L()?yield t.publishByTransceiver({localAudioTrack:i,localVideoTrack:r,smallTrack:e,isAuxiliary:n}):yield t.publishByAddTrack({localAudioTrack:i,localVideoTrack:r,smallTrack:e}),t._publishingLocalAudioTrack=null,t._publishingLocalVideoTrack=null,t._isPublishingAux=!1,n?(r&&(t.localAuxVideoTrack=r),i&&(t.localAuxAudioTrack=i)):(r&&(t.localMainVideoTrack=r),i&&(t.localMainAudioTrack=i)),t.installTrackMuteEvents(i,r),t.sendMutedFlag()}()}))}publishByTransceiver(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,smallTrack:n,isAuxiliary:o}=e;return function*(){t._log.info("publish by transceiver");let e=new MediaStream,s=null==r?void 0:r.outMediaTrack,a=null==i?void 0:i.outMediaTrack;a&&e.addTrack(a),s&&e.addTrack(s);let c=t._peerConnection.getTransceivers();if(0===c.length)t._peerConnection.addTransceiver(a||Ik.AUDIO,{direction:Ak.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(o?Ik.VIDEO:s||Ik.VIDEO,{direction:Ak.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(n||Ik.VIDEO,{direction:Ak.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(o&&s||Ik.VIDEO,{direction:Ak.SENDONLY,streams:[e]}),yield t.connect();else{let e=[];if(a&&(c[0].sender.track||e.push(0),yield c[0].sender.replaceTrack(a),yield t.setBandwidth({bandwidth:(null==i?void 0:i.profile.bitrate)||40,type:Ik.AUDIO})),s){let i=o?3:1;yield c[i].sender.replaceTrack(s),yield t.setBandwidth({bandwidth:r.profile.bitrate,type:Ik.VIDEO,videoType:o?Ik.AUXILIARY:Ik.BIG}),e.push(i),n&&(yield c[2].sender.replaceTrack(n),yield t.setBandwidth({bandwidth:r.small.bitrate,type:Ik.VIDEO,videoType:Ik.SMALL}),e.push(2))}yield t.setTransceiverDirection(Ak.SENDONLY,e),yield t.doPublishChange(),null==r||r.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),null==r||r.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}}()}))}publishByAddTrack(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,smallTrack:n}=e;return function*(){t._log.info("publish by addtrack");let e=null==r?void 0:r.outMediaTrack,o=null==i?void 0:i.outMediaTrack;if(t._peerConnection&&"new"!==t._peerConnection.connectionState)return i&&o&&(yield t.addTrack(i)),void(e&&(yield t.addTrack(r)));let s=new MediaStream;if(o&&s.addTrack(o),e&&s.addTrack(e),o&&t._peerConnection.addTrack(o,s),e&&(t._peerConnection.addTrack(e,s),n)){let e=new MediaStream;e.addTrack(n),t._peerConnection.addTrack(n,e)}yield t.connect()}()}))}enableSmall(e){return Rb(this,null,(function*(){let t=this._peerConnection.getTransceivers();e?this._room.videoManager.smallTrack&&(yield t[2].sender.replaceTrack(this._room.videoManager.smallTrack),yield this.setTransceiverDirection(Ak.SENDONLY,[2])):(yield t[2].sender.replaceTrack(null),yield this.setTransceiverDirection(Ak.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()}))}installTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((e=>{e&&(null==e||e.on("mute",this.sendMutedFlag,this),null==e||e.on("unmute",this.sendMutedFlag,this))}))}uninstallTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((e=>{e&&(null==e||e.off("mute",this.sendMutedFlag,this),null==e||e.off("unmute",this.sendMutedFlag,this))}))}unpublish(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){if(!mL())return i&&i.outMediaTrack&&!r&&t.localMainVideoTrack?(yield t.removeTrack(i),void(t.localMainAudioTrack=null)):r&&r.outMediaTrack&&!i&&t.localMainAudioTrack?(yield t.removeTrack(r),void(t.localMainVideoTrack=null)):(yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),void t.emitConnectionStateChangedEvent("DISCONNECTED",r));let e=r&&r===t.localAuxVideoTrack,n=null==r?void 0:r.outMediaTrack,o=t._peerConnection.getSenders(),s=[];i&&(e?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localAuxAudioTrack&&!t.localMainAudioTrack&&(yield o[0].replaceTrack(null),s.push(0))),n&&(e?(yield o[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=Eb(gb({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),s.push(3)):(yield o[1].replaceTrack(null),yield o[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=Eb(gb({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),s.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.setTransceiverDirection(Ak.INACTIVE,s),yield t.doPublishChange(!1)):yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),null==r||r.emit("connection-state-changed",{prevState:t._currentState,state:"DISCONNECTED"})}()}))}doPublishChange(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Rb(this,null,(function*(){let t={state:this.publishState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponse({command:vG,data:t,responseCommand:pG.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(i.data.code,i.data.message)}))}doUnpublish(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._signalChannel.sendWaitForResponse({command:yG,commandDesc:"unpublish",responseCommand:pG.UNPUBLISH_RESULT,enableLog:e}).catch((e=>{if(e.getCode()===Vb.API_CALL_TIMEOUT)return Promise.resolve();throw e}))}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:t}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":t&&(this._mediaSettings.videoCodec="VP8");let i=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:r,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:r=this._publishingLocalVideoTrack),SL){if(i&&i.outMediaTrack){let e=i.outMediaTrack.getSettings();this._mediaSettings.audioChannel=e.channelCount||1,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=e.sampleRate||0}if(r&&r.outMediaTrack){let e=r.outMediaTrack.getSettings();this._mediaSettings.videoWidth=e.width||0,this._mediaSettings.videoHeight=e.height||0,this._mediaSettings.videoFps=e.frameRate||0,this._mediaSettings.videoBps=1e3*r.profile.bitrate,r.small&&(this._mediaSettings.smallVideoWidth=r.small.width,this._mediaSettings.smallVideoHeight=r.small.height,this._mediaSettings.smallVideoFps=r.small.frameRate,this._mediaSettings.smallVideoBps=1e3*r.small.bitrate)}if(n&&n.outMediaTrack){let e=n.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=e.width||0,this._mediaSettings.auxVideoHeight=e.height||0,this._mediaSettings.auxVideoFps=e.frameRate||0,this._mediaSettings.auxVideoBps=1e3*n.profile.bitrate}}else i&&i.outMediaTrack&&(this._mediaSettings.audioChannel=i.profile.channelCount,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=i.profile.sampleRate),r&&r.outMediaTrack&&(this._mediaSettings.videoWidth=r.profile.width,this._mediaSettings.videoHeight=r.profile.height,this._mediaSettings.videoFps=r.profile.frameRate,this._mediaSettings.videoBps=1e3*r.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:xG,data:this._mediaSettings,responseCommand:pG.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{0!==e.data.code&&this._log.warn(e.data.message)})).catch((()=>{}))}addTrack(e){return Rb(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(t?Ik.AUXILIARY:Ik.MAIN," stream")),_L()?yield this.addTrackByTransceiver(e,t):yield this.addTrackBySender(e)}))}addTrackByTransceiver(e,t){return Rb(this,null,(function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===Ik.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),1===n&&null!=(i=this.localMainVideoTrack)&&i.small&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===Ak.INACTIVE&&(yield this.setTransceiverDirection(Ak.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()}))}addTrackBySender(e){return Rb(this,null,(function*(){if(!e.outMediaTrack)return;let t=e.outMediaTrack;mL()&&this._peerConnection.getTransceivers().findIndex((e=>"stopped"===e.direction))>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",t));let i=this._peerConnection.getSenders().find((e=>e.track&&e.track.kind===t.kind));if(i&&i.track){this._log.warn("sender already exists, remove sender first");let e=i.track;this.removeSender(i),yield this.updateOffer("remove",e)}if(t&&this._peerConnection.addTrack(t,new MediaStream([t])),t.kind===Ik.VIDEO&&e instanceof eU&&e.small){let e=new MediaStream,{smallTrack:t}=this._room.videoManager;e.addTrack(t),this._peerConnection.addTrack(t,e)}yield this.updateOffer("add",t)}))}isNeedToResetOfferOrder(){if(this._sdpSemantics===nD||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,t=ej(e);for(let i=0;i<t.media.length;i++)if(0===Number(t.media[i].mid)&&t.media[i].type===Ik.VIDEO)return!0;return!1}removeSender(e){let t=null;mL()&&(t=this._peerConnection.getTransceivers().find((t=>t.sender&&t.sender.track===e.track))),this._peerConnection.removeTrack(e),t&&dw(t.stop)&&(this._log.info("stop transceiver"),t.stop())}removeTrack(e){return Rb(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(t?Ik.AUXILIARY:Ik.MAIN," stream")),_L()?yield this.removeTrackByTransceiver(e,t):yield this.removeTrackBySender(e)}))}removeTrackByTransceiver(e,t){return Rb(this,null,(function*(){if(!e.outMediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===Ik.AUDIO)yield i[0].sender.replaceTrack(null);else{let r=t?3:1;yield i[r].sender.replaceTrack(null),1===r&&e.small&&(yield i[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(Ak.INACTIVE,[r])}this.updateMediaSettings(),yield this.doPublishChange()}))}setTransceiverDirection(e,t){return Rb(this,null,(function*(){if(!wN)return;let i=!1,r=!1;this._log.info("setting transceiver ".concat(t.join(",")," direction to ").concat(e));let n=this._peerConnection.getTransceivers();if(t.forEach((t=>{n[t].direction!==e&&(n[t].direction=e,i=!0)})),i){this._log.info("updating offer");let e=yield this._peerConnection.createOffer();yield this.setOffer(e)}let o=-1,s=this._peerConnection.remoteDescription.sdp.split("\r\n").map((i=>{if(i.match(new RegExp("a=(".concat(Ak.INACTIVE,"|").concat(Ak.RECVONLY,"|").concat(Ak.SENDONLY,")")))&&o++,t.includes(o)){if(e===Ak.INACTIVE&&i.includes("a=".concat(Ak.RECVONLY)))return r=!0,"a=".concat(e);if(e===Ak.SENDONLY&&i.includes("a=".concat(Ak.INACTIVE)))return r=!0,"a=".concat(Ak.RECVONLY)}return i})).join("\r\n");r&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:s}))}))}removeTrackBySender(e){return Rb(this,null,(function*(){if(!e.outMediaTrack)return;if(e.kind===Ik.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack)return this.reset(),this.initialize(),void(yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1}));let t=this._peerConnection.getSenders().find((t=>t.track===e.outMediaTrack));t&&(this.removeSender(t),e.kind===Ik.VIDEO&&e.small&&this._peerConnection.getSenders().forEach((e=>{e.track&&e.track.kind===Ik.VIDEO&&this.removeSender(e)}))),yield this.updateOffer("remove",e.outMediaTrack)}))}replaceTrack(e){return Rb(this,null,(function*(){var t;let i,r=null==(t=this._peerConnection)?void 0:t.getSenders();if(!r||0===r.length||!e.mediaTrack)return!1;if(i=_L()?e.kind===Ik.AUDIO?r[0]:r[1]:r.find((t=>t.track&&t.track.kind===e.kind)),!i)return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(e.kind," track on ").concat(n?Ik.AUXILIARY:Ik.MAIN," stream")),e.kind===Ik.AUDIO?yield i.replaceTrack(e.outMediaTrack):e.kind===Ik.VIDEO&&(n?r[3]&&(yield r[3].replaceTrack(e.outMediaTrack)):yield i.replaceTrack(e.outMediaTrack)),!0}))}updateOffer(e,t){return Rb(this,null,(function*(){try{let i=yield this._peerConnection.createOffer(oj);wN&&i.sdp&&(i.sdp=this.setSDPDirection(i.sdp,"sendrecv")),yield this.setOffer(i);let r=this.updateMediaSettings(),n={action:e,trackId:t.id,kind:t.kind===Ik.VIDEO?"bigVideo":t.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:r,state:this.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug("updatedOffer: ".concat(n.sdp));let o=yield this._signalChannel.sendWaitForResponse({command:mG,data:n,responseCommand:pG.UPDATE_OFFER_RESULT,timeout:tD,commandDesc:"update offer"}),{code:s,message:a}=o.data;0!==s&&this.checkPublishResultCode(s,a),yield this.acceptAnswer(o.data.data),i.sdp&&this.updateSSRC(i.sdp)}catch(AM){throw this._log.error(AM),AM}}))}setBandwidth(e){return Rb(this,arguments,(function(e){var t=this;let{bandwidth:i,type:r,videoType:n,sdp:o}=e;return function*(){if(!vL())return o?r===Ik.VIDEO?t.updateVideoBandwidthRestriction(o,i,n):t.updateAudioBandwidthRestriction(o,i):void 0;let e,s=t._peerConnection.getSenders();if(_L()){let t=0;r===Ik.VIDEO&&(t=n===Ik.SMALL?2:n===Ik.AUXILIARY?3:1),e=s[t]}else e=s.find((e=>e.track&&e.track.kind===r));if(e){let s=e.getParameters();(!s.encodings||0===s.encodings.length)&&(s.encodings=[{}]),s.encodings[0].maxBitrate=1e3*i;try{return yield e.setParameters(s),t._log.info("".concat(n||"").concat(r," bandwidth ").concat(i," kbps")),o}catch(a){if(t._log.info("failed to set bandwidth by setting maxBitrate: ".concat(a)),o)return r===Ik.VIDEO?t.updateVideoBandwidthRestriction(o,i,n):t.updateAudioBandwidthRestriction(o,i)}}return o}()}))}updateVideoBandwidthRestriction(e,t,i){let r="AS";wN&&(r="TIAS",t*=1e3);let n=0,o=-1;return i===Ik.SMALL?n=1:i===Ik.AUXILIARY&&(n=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,(e=>(o+=1,o===n?"".concat(e,"b=").concat(r,":").concat(t,"\r\n"):e)))}updateAudioBandwidthRestriction(e,t){let i="AS";return wN&&(i="TIAS",t*=1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,"m=audio $1\r\nc=IN $2\r\nb=".concat(i,":").concat(t,"\r\n"))}removeBandwidthRestriction(e){return e.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"")}removeVideoOrientation(e){return e.replace(/urn:3gpp:video-orientation/,"")}connect(){return Rb(this,null,(function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(Yb){throw this.closePeerConnection(!0),this.uninstallEvents(),Yb}}))}exchangeSDP(){return Rb(this,null,(function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(Yb){throw Yb}}))}createOffer(){return Rb(this,null,(function*(){try{let e=yield this._peerConnection.createOffer(oj);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(Yb){throw Yb}}))}doExchangeSDP(){let e={command:TG,responseCommand:pG.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof HB||this.localAuxVideoTrack instanceof HB,state:this.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug("sending sdp offer: ".concat(e.data.sdp)),this._signalChannel.sendWaitForResponse(e).then((e=>{let{code:t,message:i,data:r}=e.data;return 0===t?this.acceptAnswer(r):this.checkPublishResultCode(t,i)}))}setSDPDirection(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"all",r=ej(e);return r.media.forEach((e=>{("all"===i||e.type===i)&&(e.direction=t)})),tj(r)}acceptAnswer(e){return Rb(this,null,(function*(){var t,i,r,n,o;try{let s;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let e=(null==(t=this._publishingLocalVideoTrack)?void 0:t.profile.bitrate)||(null==(i=this.localMainVideoTrack)?void 0:i.profile.bitrate),o=(null==(r=this._publishingLocalAudioTrack)?void 0:r.profile.bitrate)||(null==(n=this.localMainAudioTrack)?void 0:n.profile.bitrate);if(e){let t=this._isPublishingAux?Ik.AUXILIARY:Ik.BIG;s=yield this.setBandwidth({bandwidth:e,type:Ik.VIDEO,sdp:s,videoType:t})}o&&(s=yield this.setBandwidth({bandwidth:o,type:Ik.AUDIO,sdp:s}))}if(s=this.removeVideoOrientation(e.sdp),null!=(o=this._publishingLocalVideoTrack)&&o.small){let{smallStreamConfig:e}=this._room;s=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||e.bitrate,type:Ik.VIDEO,videoType:Ik.SMALL,sdp:s})}let a={type:e.type,sdp:s};yield this.setAnswer(a),this._log.debug("accepted answer: ".concat(s))}catch(s){throw this._log.error("failed to accept remote answer ".concat(s)),s}}))}sendMutedFlag(e){var t,i,r;if(e===this.localAuxAudioTrack||e===this.localAuxVideoTrack)return;let n={audio:!(null==(t=this.localMainAudioTrack)||!t.muted),bigVideo:!(null==(i=this.localMainVideoTrack)||!i.muted),auxVideo:!(null==(r=this.localAuxVideoTrack)||!r.muted)};this._log.info("send muted state: ".concat(JSON.stringify(n))),this._signalChannel.send(EG,n)}getIsReconnecting(){return this._isReconnecting}reconnect(){return Rb(this,null,(function*(){if(!(Ab(e.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:yG,responseCommand:pG.UNPUBLISH_RESULT,enableLog:!1}),this.closePeerConnection(),this.initialize(),this.isMainStreamPublished&&(yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0})),this._log.warn("reconnect() uplink reconnect successfully"),this.stopReconnection()}catch(Qk){let t=cw(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(t/1e3,"s")),this._reconnectionTimer=setTimeout((()=>{this.clearReconnectionTimer(),this.reconnect()}),t)}}))}handleConnectionStateChange(e){"CONNECTED"===e.state&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&dM.emit(hM.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{ej(e).media.forEach(((e,t)=>{if(e.type===Ik.AUDIO){let t=e.ssrcs&&e.ssrcs[0];t&&(this.ssrc.audio=Number(t.id))}else{if(this._sdpSemantics===nD&&e.ssrcGroups)return void e.ssrcGroups.forEach(((e,t)=>{let i=Number(e.ssrcs.split(" ")[0]);0===t?this.ssrc.video=i:1===t&&(this.ssrc.small=i)}));let i=e.ssrcs&&e.ssrcs[0];if(!i)return;switch(t){case 1:this.ssrc.video=Number(i.id);break;case 2:this.ssrc.small=Number(i.id);break;case 3:this.ssrc.auxiliary=Number(i.id)}}}))}catch(Qk){}}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ik.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===Ik.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===Ik.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===Ik.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===Ik.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===oD?(this._log.error(IP.NOT_SUPPORTED_H264ENCODE),new Fb({code:Vb.NOT_SUPPORTED_H264,message:CP({key:SP.NOT_SUPPORTED_H264ENCODE})})):new Fb({code:Vb.UNKNOWN,message:CP({key:SP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:pG.PUBLISH_RESULT,code:e,message:t}})})}};Sb([xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise(((t,r)=>{let n=e=>{this._emitter.off("closed",n),r(new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this._emitter.off("closed",n)}))}))}))],sj.prototype,"publish",1),Sb([JV(521715,!1)],sj.prototype,"unpublish",1),Sb([PV(ZG.prototype.afterConnect),MV(ZG.prototype.beforeConnect)],sj.prototype,"connect",1);var aj=sj,cj=class{constructor(e,t){this.room=e,Ib(this,"_log"),Ib(this,"_prevReportTime",0),Ib(this,"_prevReport",{}),Ib(this,"_prevStats",null),Ib(this,"_prevEncoderImplementation",""),Ib(this,"_prevAuxEncoderImpl",""),Ib(this,"_prevQualityLimitationReason",""),Ib(this,"_prevAuxQualityLimitationReason",""),Ib(this,"_prevDecoderImplementationMap",new Map),Ib(this,"_decodeMap",new Map),Ib(this,"totalBytesSent",0),Ib(this,"totalBytesReceived",0),Ib(this,"_spcStats",null),this._log=t}get statInterval(){return 0===this._prevReportTime?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(e){return Rb(this,null,(function*(){var t;let i={audio:{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0},video:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},small:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},auxiliary:{bytesSent:0,packetsSent:0,framesEncoded:0,frameWidth:0,frameHeight:0,framesSent:0,fpsCapture:0},rtt:0},r=e.getPeerConnection(),n=e.getSSRC();if(r)try{if((this._spcStats||(yield r.getStats())).forEach((t=>{var r,o,s;let a,c;if("outbound-rtp"===t.type)if((t.mediaType||t.kind)===Ik.VIDEO){if(t.ssrc===n.video?(a=Ik.VIDEO,c=e.localMainVideoTrack):t.ssrc===n.small?a=Ik.SMALL:t.ssrc===n.auxiliary&&(c=e.localAuxVideoTrack,a=Ik.AUXILIARY),!a)return;if(i[a].bytesSent=t.bytesSent,i[a].packetsSent=t.packetsSent,i[a].framesEncoded=t.framesEncoded,uw(t.keyFramesEncoded)||(i[a].keyFramesEncoded=t.keyFramesEncoded),uw(t.nackCount)||(i[a].nackCount=t.nackCount),uw(t.pliCount)||(i[a].pliCount=t.pliCount),uw(t.retransmittedPacketsSent)||(i[a].retransmittedPacketsSent=t.retransmittedPacketsSent),uw(t.totalEncodeTime)||(i[a].totalEncodeTime=t.totalEncodeTime),uw(t.totalPacketSendDelay)||(i[a].totalPacketSendDelay=t.totalPacketSendDelay),!uw(t.encoderImplementation)&&(a===Ik.VIDEO&&this._prevEncoderImplementation!==t.encoderImplementation||a===Ik.AUXILIARY&&this._prevAuxEncoderImpl!==t.encoderImplementation)){let i=2,r=this._prevEncoderImplementation;a===Ik.AUXILIARY&&(i=7,r=this._prevAuxEncoderImpl),dM.emit("262",{userId:e.userId,streamType:i,prevImplementation:r,implementation:t.encoderImplementation,codec:e.videoCodec,isHWCodec:t.powerEfficientEncoder}),this[a===Ik.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=t.encoderImplementation,this._log.info("".concat(a===Ik.AUXILIARY?"aux ":"","encoderImplementation change to ").concat(t.encoderImplementation,"(").concat(e.videoCodec,") HWEncoder: ").concat(t.powerEfficientEncoder))}t.ssrc===n.video?!uw(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("qualityLimitationReason change to ".concat(t.qualityLimitationReason)),dM.emit("263",{userId:e.userId,reason:t.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:null==(r=e.localMainVideoTrack)?void 0:r.isQosClearFirst}),this._prevQualityLimitationReason=t.qualityLimitationReason):t.ssrc===n.auxiliary&&!uw(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevAuxQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(t.qualityLimitationReason)),dM.emit("263",{userId:e.userId,reason:t.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:null==(o=e.localAuxVideoTrack)?void 0:o.isQosClearFirst}),this._prevAuxQualityLimitationReason=t.qualityLimitationReason)}else i.audio.bytesSent=t.bytesSent,i.audio.packetsSent=t.packetsSent;else"candidate-pair"===t.type?rL(t)&&(this.totalBytesSent=t.bytesSent,pw(t.currentRoundTripTime)&&(i.rtt=Math.floor(1e3*t.currentRoundTripTime))):"media-source"===t.type&&(t.kind===Ik.AUDIO?(i.audio.audioLevel=t.audioLevel||0,i.audio.totalAudioEnergy=t.totalAudioEnergy||0,t.echoReturnLoss,t.totalSamplesDuration&&(i.audio.totalSamplesDuration=t.totalSamplesDuration)):t.kind===Ik.VIDEO&&(t.trackIdentifier===e.getVideoTrackId(Ik.VIDEO)?i.video.fpsCapture=t.framesPerSecond:t.trackIdentifier===e.getVideoTrackId(Ik.AUXILIARY)?i.auxiliary.fpsCapture=t.framesPerSecond:i.small.fpsCapture=t.framesPerSecond));if(!uw(t.audioLevel)&&null!=(s=e.localMainAudioTrack)&&s.mediaTrack&&t.trackIdentifier===e.localMainAudioTrack.mediaTrack.id&&(i.audio.audioLevel=t.audioLevel||0),!uw(t.frameWidth)){let r=Ik.SMALL;t.trackIdentifier===e.getVideoTrackId(Ik.VIDEO)||t.ssrc===n.video?r=Ik.VIDEO:(t.trackIdentifier===e.getVideoTrackId(Ik.AUXILIARY)||t.ssrc===n.auxiliary)&&(r=Ik.AUXILIARY),i[r].frameWidth=t.frameWidth,i[r].frameHeight=t.frameHeight,i[r].framesSent=t.framesSent}})),e.localMainAudioTrack){let t=e.localMainAudioTrack.getInternalAudioLevel(),r=e.localMainAudioTrack.getInternalAudioLevelAfter3A();i.audio.audioCaptureEnergyAfter3a=r,i.audio.micAudioLevel=t,0===i.audio.audioLevel&&(i.audio.audioLevel=t)}this.totalBytesSent||(this.totalBytesSent+=i.audio.bytesSent+i.video.bytesSent+i.auxiliary.bytesSent),Object.keys(i).forEach((t=>{t===Ik.AUDIO?(e.localMainAudioTrack&&(e.localMainAudioTrack.stat=i[t]),e.localAuxAudioTrack&&(e.localAuxAudioTrack.stat=i[t])):t===Ik.VIDEO?e.localMainVideoTrack&&(e.localMainVideoTrack.stat=i[t]):t===Ik.AUXILIARY&&e.localAuxVideoTrack&&(e.localAuxVideoTrack.stat=i[t])}))}catch(Xb){this._log.warn("failed to getStats on sender connection ".concat(Xb))}return 0===i.rtt&&(i.rtt=(null==(t=this.room.networkQuality)?void 0:t.uplinkRTT)||0),i}))}getReceiverStats(e){return Rb(this,null,(function*(){var t,i,r;let n={tinyId:e.tinyId,userId:e.userId,rtt:0,hasAudio:!1,hasVideo:!1,hasAuxiliary:!1,isSmallSubscribed:!1,audio:{bytesReceived:0,packetsReceived:0,packetsLost:0,p2pDelay:0,totalJitter:0,totalJitterCount:0,audioLevel:0,totalAudioEnergy:0,insertedSamplesForDeceleration:0,removedSamplesForAcceleration:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,freezeCount:0,totalFreezesDuration:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""}},o=e.getPeerConnection();if(o)try{let{ssrc:r}=e,{muteState:s,subscribeState:a}=e;(this._spcStats||(yield o.getStats())).forEach((t=>{var i,o;if("codec"===t.type&&this._decodeMap.set(t.id,t),"inbound-rtp"===t.type){let c=(t.mediaType||t.kind)===Ik.AUDIO;if(c){if(t.ssrc!==r.audio||!s.hasAudio)return;n.audio.packetsReceived=t.packetsReceived,n.audio.bytesReceived=t.bytesReceived,n.audio.packetsLost=t.packetsLost,t.insertedSamplesForDeceleration&&(n.audio.insertedSamplesForDeceleration=t.insertedSamplesForDeceleration),t.removedSamplesForAcceleration&&(n.audio.removedSamplesForAcceleration=t.removedSamplesForAcceleration),t.totalSamplesDuration&&(n.audio.totalSamplesDuration=t.totalSamplesDuration),t.totalSamplesReceived&&(n.audio.totalSamplesReceived=t.totalSamplesReceived),t.concealedSamples&&(n.audio.concealedSamples=t.concealedSamples),t.silentConcealedSamples&&(n.audio.silentConcealedSamples=t.silentConcealedSamples);let{remoteAudioTrack:i}=e;i.stat.packetsReceived=t.packetsReceived,i.stat.bytesReceived=t.bytesReceived,i.stat.packetsLost=t.packetsLost,n.audio.p2pDelay=i.stat.end2EndDelay,n.hasAudio=!0}else{if(wN&&0===t.bytesReceived)return;let c;t.ssrc===r.video&&s.hasVideo&&(n.video.packetsReceived=t.packetsReceived,n.video.bytesReceived=t.bytesReceived,n.video.packetsLost=t.packetsLost,n.video.framesReceived=t.framesReceived,n.video.framesDecoded=t.framesDecoded,n.video.fpsDecoded=t.framesPerSecond,n.hasVideo=!0,e.videoCodec=pP[null==(i=this._decodeMap.get(t.codecId))?void 0:i.mimeType.split("/")[1]]||"h264",n.video.codec=e.videoCodec,c=e.remoteVideoTrack,s.hasSmall&&a.smallVideo&&(n.isSmallSubscribed=!0),t.decoderImplementation&&(!this._prevDecoderImplementationMap.has(n.userId)||this._prevDecoderImplementationMap.get(n.userId)!==t.decoderImplementation)&&(this._log.info("".concat(n.userId," decoderImplementation change to ").concat(t.decoderImplementation,"(").concat(e.videoCodec,") HWDecoder: ").concat(t.powerEfficientDecoder)),dM.emit("262",{userId:this.room.userId,remoteUserId:n.userId,prevImplementation:this._prevDecoderImplementationMap.get(n.userId),implementation:t.decoderImplementation,codec:e.videoCodec,isHWCodec:t.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(n.userId,t.decoderImplementation))),t.ssrc===r.auxiliary&&s.hasAuxiliary&&(n.auxiliary.packetsReceived=t.packetsReceived,n.auxiliary.bytesReceived=t.bytesReceived,n.auxiliary.packetsLost=t.packetsLost,n.auxiliary.framesReceived=t.framesReceived,n.auxiliary.framesDecoded=t.framesDecoded,n.auxiliary.fpsDecoded=t.framesPerSecond,c=e.remoteAuxiliaryTrack,n.auxiliary.p2pDelay=c.stat.end2EndDelay,n.hasAuxiliary=!0,n.video.codec=(null==(o=this._decodeMap.get(t.codecId))?void 0:o.mimeType.split("/")[1].toLowerCase())||"h264"),c&&(c.stat.packetsReceived=t.packetsReceived,c.stat.bytesReceived=t.bytesReceived,c.stat.packetsLost=t.packetsLost,c.stat.framesReceived=t.framesReceived,c.stat.framesDecoded=t.framesDecoded,t.jitterBufferDelay&&(c.stat.jitterBufferDelay=Math.floor(t.jitterBufferDelay/t.jitterBufferEmittedCount*1e3)),n.video.p2pDelay=c.stat.end2EndDelay)}t.jitterBufferDelay&&(c?(n.audio.totalJitter=t.jitterBufferDelay,n.audio.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.video&&s.hasVideo?(n.video.totalJitter=t.jitterBufferDelay,n.video.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.auxiliary&&s.hasAuxiliary&&(n.auxiliary.totalJitter=t.jitterBufferDelay,n.auxiliary.totalJitterCount=t.jitterBufferEmittedCount))}else"candidate-pair"===t.type&&rL(t)&&(this.totalBytesReceived=t.bytesReceived,pw(t.currentRoundTripTime)&&(n.rtt=Math.floor(1e3*t.currentRoundTripTime)));uw(t.frameWidth)||((t.trackIdentifier===e.getMainStreamVideoTrackId()||t.ssrc===r.video)&&(n.video.frameWidth=t.frameWidth,n.video.frameHeight=t.frameHeight,e.remoteVideoTrack.stat.frameWidth=t.frameWidth,e.remoteVideoTrack.stat.frameHeight=t.frameHeight),(t.trackIdentifier===e.getAuxStreamVideoTrackId()||t.ssrc===r.auxiliary)&&(n.auxiliary.frameWidth=t.frameWidth,n.auxiliary.frameHeight=t.frameHeight,e.remoteAuxiliaryTrack.stat.frameWidth=t.frameWidth,e.remoteAuxiliaryTrack.stat.frameHeight=t.frameHeight)),!uw(t.audioLevel)&&e.muteState.audioAvailable&&e.remoteAudioTrack.mediaTrack&&t.trackIdentifier===e.remoteAudioTrack.mediaTrack.id&&(n.audio.audioLevel=t.audioLevel||0,n.audio.totalAudioEnergy=t.totalAudioEnergy||0)})),0===n.audio.audioLevel&&e.muteState.audioAvailable&&(n.audio.audioLevel=e.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=n.audio.bytesReceived+n.video.bytesReceived+n.auxiliary.bytesReceived),uw(null==(t=e.remoteVideoTrack.player.stat)?void 0:t.fps)||(n.video.fpsRender=e.remoteVideoTrack.player.stat.fps),uw(null==(i=e.remoteAuxiliaryTrack.player.stat)?void 0:i.fps)||(n.auxiliary.fpsRender=e.remoteAuxiliaryTrack.player.stat.fps)}catch(CM){this._log.warn("failed to getStats on receiver connection ".concat(CM))}return 0===n.rtt&&(n.rtt=(null==(r=this.room.networkQuality)?void 0:r.uplinkRTT)||0),n}))}getStats(e,t){return Rb(this,null,(function*(){let i={},r=[];if(this.room.singlePC){let e=this.room.singlePC.getPeerConnection();if(!e)return{senderStats:i,receiverStats:r};let t=Aw(),n=yield e.getStats(),o=Aw();o-t>2e3&&this._log.warn("getStats cost ".concat(o-t,"ms"));let s=[],a=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source","codec"]);n.forEach((e=>a.has(e.type)&&s.push(e))),this._spcStats=s}e&&(i=yield this.getSenderStats(e));for(let[e,n]of t){let e=yield this.getReceiverStats(n);r.push(e)}return{senderStats:i,receiverStats:r}}))}getDifferenceValue(e,t){if(bV(e))return t;let i=t-e;return i<0?0:i}prepareReport(e){let{stats:t,report:i,freezeMap:r}=e;var n,o,s;if(!bV(t.senderStats)){let e={uint32_audio_level:t.senderStats.audio.audioLevel*dP,uint32_audio_energy:1e6*(t.senderStats.audio.totalAudioEnergy||0),uint32_audio_codec_bitrate:t.senderStats.audio.bytesSent};t.senderStats.audio.micAudioLevel&&(e.uint32_mic_audio_level=t.senderStats.audio.micAudioLevel*dP),t.senderStats.audio.audioCaptureEnergyAfter3a&&(e.uint32_audio_capture_energy_after3a=t.senderStats.audio.audioCaptureEnergyAfter3a*dP),t.senderStats.audio.totalSamplesDuration&&(i.msg_device_info.uint32_audio_capture_cost=t.senderStats.audio.totalSamplesDuration);let r=[];if(t.senderStats.video.bytesSent){let e={uint32_video_stream_type:2,uint32_video_codec_fps:t.senderStats.video.framesSent,uint32_video_capture_fps:t.senderStats.video.fpsCapture,uint32_video_width:t.senderStats.video.frameWidth,uint32_video_height:t.senderStats.video.frameHeight,uint32_video_codec_bitrate:t.senderStats.video.bytesSent,uint32_video_enc_fps:t.senderStats.video.framesEncoded,uint32_key_frame_count:t.senderStats.video.keyFramesEncoded,uint32_nack_count:t.senderStats.video.nackCount,uint32_pli_count:t.senderStats.video.pliCount,uint32_encode_cost:1e3*(t.senderStats.video.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.video.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.video.retransmittedPacketsSent};r.push(e)}if(t.senderStats.small.bytesSent){let e={uint32_video_stream_type:3,uint32_video_codec_fps:t.senderStats.small.framesSent||0,uint32_video_capture_fps:t.senderStats.small.fpsCapture||0,uint32_video_width:t.senderStats.small.frameWidth||0,uint32_video_height:t.senderStats.small.frameHeight||0,uint32_video_codec_bitrate:t.senderStats.small.bytesSent,uint32_video_enc_fps:t.senderStats.small.framesEncoded||0,uint32_key_frame_count:t.senderStats.small.keyFramesEncoded,uint32_nack_count:t.senderStats.small.nackCount,uint32_pli_count:t.senderStats.small.pliCount,uint32_encode_cost:1e3*(t.senderStats.small.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.small.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.small.retransmittedPacketsSent};r.push(e)}if(t.senderStats.auxiliary.bytesSent){let e={uint32_video_stream_type:7,uint32_video_codec_fps:t.senderStats.auxiliary.framesSent||0,uint32_video_capture_fps:t.senderStats.auxiliary.fpsCapture||0,uint32_video_width:t.senderStats.auxiliary.frameWidth||0,uint32_video_height:t.senderStats.auxiliary.frameHeight||0,uint32_video_codec_bitrate:t.senderStats.auxiliary.bytesSent,uint32_video_enc_fps:t.senderStats.auxiliary.framesEncoded||0,uint32_key_frame_count:t.senderStats.auxiliary.keyFramesEncoded,uint32_nack_count:t.senderStats.auxiliary.nackCount,uint32_pli_count:t.senderStats.auxiliary.pliCount,uint32_encode_cost:1e3*(t.senderStats.auxiliary.totalEncodeTime||0),uint32_send_packet_cost:1e3*(t.senderStats.auxiliary.totalPacketSendDelay||0),uint32_video_arq_packets:t.senderStats.auxiliary.retransmittedPacketsSent};r.push(e)}let n={uint32_bitrate:0,uint32_lost:0,uint32_rtt:t.senderStats.rtt};i.msg_up_stream_info={msg_audio_status:e,msg_video_status:r,msg_network_status:n}}let a=null==(n=Yx())?void 0:n.playoutStats;a&&(i.msg_device_info.uint32_audio_play_cost=a.totalFramesDuration);let{statInterval:c}=this;i.msg_down_stream_info=[],t.receiverStats.forEach((e=>{let t={msg_user_info:{str_identifier:e.userId,uint64_tinyid:e.tinyId},msg_network_status:{uint32_rtt:e.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(e.hasAudio){let i={uint32_audio_p2p_delay:e.audio.p2pDelay,uint32_audio_cache_ms:e.audio.totalJitter,uint32_audio_cache_ms_count:e.audio.totalJitterCount,uint32_audio_codec_bitrate:e.audio.bytesReceived,uint32_audio_total_bitrate:e.audio.bytesReceived,uint32_audio_level:1e8*e.audio.audioLevel,uint32_audio_energy:1e6*e.audio.totalAudioEnergy,uint32_audio_receive:e.audio.packetsReceived,uint32_audio_origin_lost:e.audio.packetsLost};t.msg_audio_status=i}if(e.hasVideo){let i=r.get("".concat(e.userId,"_").concat(Vk)),n=i?i.duration:0,o={uint32_video_stream_type:e.isSmallSubscribed?3:2,uint32_video_receive_fps:e.video.framesReceived,uint32_video_width:e.video.frameWidth,uint32_video_height:e.video.frameHeight,uint32_video_codec_bitrate:e.video.bytesReceived,uint32_video_receive:e.video.packetsReceived,uint32_video_origin_lost:e.video.packetsLost,uint32_video_block_time:n,uint32_video_dec_fps:e.video.framesDecoded,uint32_video_codec_fps:e.video.fpsRender,uint32_video_cache_ms:e.video.totalJitter,uint32_video_cache_ms_count:e.video.totalJitterCount,uint32_video_p2p_delay:e.video.p2pDelay,uint32_video_codec:e.video.codec};t.msg_video_status.push(o)}if(e.hasAuxiliary){let i=r.get("".concat(e.userId,"_").concat(Uk)),n=i?i.duration:0,o={uint32_video_stream_type:7,uint32_video_receive_fps:e.auxiliary.framesReceived,uint32_video_width:e.auxiliary.frameWidth,uint32_video_height:e.auxiliary.frameHeight,uint32_video_codec_bitrate:e.auxiliary.bytesReceived,uint32_video_receive:e.auxiliary.packetsReceived+e.auxiliary.packetsLost,uint32_video_origin_lost:e.auxiliary.packetsLost,uint32_video_block_time:n,uint32_video_dec_fps:e.auxiliary.framesDecoded,uint32_video_codec_fps:e.video.fpsRender,uint32_video_cache_ms:e.auxiliary.totalJitter,uint32_video_cache_ms_count:e.auxiliary.totalJitterCount,uint32_video_p2p_delay:e.auxiliary.p2pDelay,uint32_video_codec:e.video.codec};t.msg_video_status.push(o)}i.msg_down_stream_info.push(t)}));let l=this._prevReport,d=this._prevStats;if(this._prevReport=JSON.parse(JSON.stringify(i)),this._prevStats=JSON.parse(JSON.stringify(t)),i.msg_up_stream_info.msg_audio_status&&l.msg_up_stream_info.msg_audio_status){let e=l.msg_up_stream_info.msg_audio_status,t=i.msg_up_stream_info.msg_audio_status;if(0===e.uint32_audio_codec_bitrate)t.uint32_audio_codec_bitrate=0;else{let r=this.getDifferenceValue(e.uint32_audio_codec_bitrate,t.uint32_audio_codec_bitrate);t.uint32_audio_codec_bitrate=Math.round(8*r/c),i.msg_up_stream_info.msg_network_status.uint32_bitrate+=t.uint32_audio_codec_bitrate}null!=(o=l.msg_device_info)&&o.uint32_audio_capture_cost?i.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(l.msg_device_info.uint32_audio_capture_cost,i.msg_device_info.uint32_audio_capture_cost)/c):delete i.msg_device_info.uint32_audio_capture_cost}let u=l.msg_up_stream_info.msg_video_status;i.msg_up_stream_info.msg_video_status.forEach((e=>{let t=u.find((t=>t.uint32_video_stream_type===e.uint32_video_stream_type));if(!t||0===t.uint32_video_codec_bitrate)return e.uint32_video_codec_bitrate=0,e.uint32_video_enc_fps=0,void(e.uint32_video_codec_fps=0);let r=0,n=0,o=0;t&&e.uint32_video_codec_bitrate>=t.uint32_video_codec_bitrate&&(r=t.uint32_video_codec_bitrate,n=t.uint32_video_enc_fps,o=t.uint32_video_codec_fps);let s=this.getDifferenceValue(r,e.uint32_video_codec_bitrate);e.uint32_video_codec_bitrate=Math.round(8*s/c),i.msg_up_stream_info.msg_network_status.uint32_bitrate+=e.uint32_video_codec_bitrate,e.uint32_video_enc_fps=Math.round(this.getDifferenceValue(n,e.uint32_video_enc_fps)/c),e.uint32_video_codec_fps=Math.round(this.getDifferenceValue(o,e.uint32_video_codec_fps)/c),0===t.uint32_video_width&&0===t.uint32_video_height&&0===t.uint32_video_codec_fps&&(e.uint32_video_codec_fps=e.uint32_video_enc_fps),uw(t.uint32_key_frame_count)||(e.uint32_key_frame_count=Math.round(this.getDifferenceValue(t.uint32_key_frame_count,e.uint32_key_frame_count))),uw(t.uint32_nack_count)||(e.uint32_nack_count=Math.round(this.getDifferenceValue(t.uint32_nack_count,e.uint32_nack_count))),uw(t.uint32_pli_count)||(e.uint32_pli_count=Math.round(this.getDifferenceValue(t.uint32_pli_count,e.uint32_pli_count))),uw(t.uint32_video_arq_packets)||(e.uint32_video_arq_packets=Math.round(this.getDifferenceValue(t.uint32_video_arq_packets,e.uint32_video_arq_packets))),uw(t.uint32_encode_cost)||(e.uint32_encode_cost=Math.round(this.getDifferenceValue(t.uint32_encode_cost,e.uint32_encode_cost)/c)),uw(t.uint32_send_packet_cost)||(e.uint32_send_packet_cost=Math.round(this.getDifferenceValue(t.uint32_send_packet_cost,e.uint32_send_packet_cost)/c))}));let h=l.msg_down_stream_info;i.msg_down_stream_info=i.msg_down_stream_info.filter((e=>h.find((t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid))));let p=i.msg_down_stream_info;return p.forEach((e=>{let t=h.find((t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid));if(bV(e.msg_audio_status)||bV(t.msg_audio_status))e.msg_audio_status={};else{let i=e.msg_audio_status,r=t.msg_audio_status,n=this.getDifferenceValue(r.uint32_audio_cache_ms_count,i.uint32_audio_cache_ms_count);delete i.uint32_audio_cache_ms_count,i.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(r.uint32_audio_cache_ms,i.uint32_audio_cache_ms)/n)||0;let o=this.room.remotePublishedUserMap.get(e.msg_user_info.str_identifier);o&&(o.remoteAudioTrack.stat.jitterBufferDelay=i.uint32_audio_cache_ms),i.uint32_audio_origin_lost=this.getDifferenceValue(r.uint32_audio_origin_lost,i.uint32_audio_origin_lost),i.uint32_audio_receive=this.getDifferenceValue(r.uint32_audio_receive,i.uint32_audio_receive),i.uint32_audio_receive+=i.uint32_audio_origin_lost;let s=this.getDifferenceValue(r.uint32_audio_codec_bitrate,i.uint32_audio_codec_bitrate);i.uint32_audio_codec_bitrate=Math.round(8*s/c),i.uint32_audio_total_bitrate=Math.round(8*s/c)}if(e.msg_video_status&&t.msg_video_status){let i=t.msg_video_status;e.msg_video_status=e.msg_video_status.filter((e=>i.find((t=>t.uint32_video_stream_type===e.uint32_video_stream_type)))),e.msg_video_status.forEach((e=>{let t=i.find((t=>t.uint32_video_stream_type===e.uint32_video_stream_type)),r=t.uint32_video_receive,n=t.uint32_video_origin_lost,o=t.uint32_video_codec_bitrate,s=t.uint32_video_receive_fps,a=t.uint32_video_dec_fps;e.uint32_video_origin_lost=this.getDifferenceValue(n,e.uint32_video_origin_lost),e.uint32_video_receive=this.getDifferenceValue(r,e.uint32_video_receive)+e.uint32_video_origin_lost;let l=this.getDifferenceValue(o,e.uint32_video_codec_bitrate);e.uint32_video_codec_bitrate=Math.round(8*l/c);let d=this.getDifferenceValue(s,e.uint32_video_receive_fps);e.uint32_video_receive_fps=Math.round(d/c),e.uint32_video_dec_fps=Math.round(this.getDifferenceValue(a,e.uint32_video_dec_fps)/c);let u=this.getDifferenceValue(t.uint32_video_cache_ms_count,e.uint32_video_cache_ms_count);delete e.uint32_video_cache_ms_count,e.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(t.uint32_video_cache_ms,e.uint32_video_cache_ms)/u)||0}))}})),null!=(s=l.msg_device_info)&&s.uint32_audio_play_cost?i.msg_device_info.uint32_audio_play_cost=2*Math.floor(this.getDifferenceValue(l.msg_device_info.uint32_audio_play_cost,i.msg_device_info.uint32_audio_play_cost)/c):delete i.msg_device_info.uint32_audio_play_cost,d&&t.receiverStats.forEach((e=>{if(e.audio.concealedSamples&&e.audio.totalSamplesReceived){let t=d.receiverStats.find((t=>t.userId===e.userId));if(t&&t.audio.concealedSamples&&t.audio.totalSamplesReceived){let i=(e.audio.silentConcealedSamples||0)-(t.audio.silentConcealedSamples||0),r=e.audio.concealedSamples-t.audio.concealedSamples,n=e.audio.totalSamplesReceived-t.audio.totalSamplesReceived,o=Math.floor((r-i)/n*1e3*c);if(o>1e3*c/5){let t=p.find((t=>t.msg_user_info.str_identifier===e.userId));t&&(t.msg_audio_status.uint32_audio_block_time=o)}}}})),i}getStatsReport(e){return Rb(this,arguments,(function(e){var t=this;let{uplinkConnection:i,downlinkConnections:r,freezeMap:n}=e;return function*(){let e={msg_device_info:{},msg_up_stream_info:{msg_audio_status:{uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_capture_energy_after3a:0},msg_video_status:[],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}},msg_down_stream_info:[{msg_user_info:{str_identifier:"",uint64_tinyid:0},msg_audio_status:{uint32_audio_cache_ms:0,uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_total_bitrate:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_final_lost:0},msg_video_status:[{uint32_video_cache_ms:0,uint32_video_stream_type:0,uint32_video_receive_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_codec_bitrate:0,uint32_video_receive:0,uint32_video_origin_lost:0,uint32_video_block_time:0,uint32_video_dec_fps:0}],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}}]},o=yield t.getStats(i,r);return"{}"===JSON.stringify(t._prevReport)&&(t._prevReport=JSON.parse(JSON.stringify(e))),t.prepareReport({stats:o,report:e,freezeMap:n}),t._prevReportTime=Date.now(),e}()}))}reset(){this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map}},lj=yb(Cb());function dj(e){return new Promise((t=>Rb(this,null,(function*(){let i=setTimeout((()=>{t({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})}),1e4),r=Date.now(),n="https://".concat(e,"/?t=").concat(r);try{yield fetch(n)}catch(Xb){}clearTimeout(i);let o=function(e){let t={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let i=performance.getEntriesByType("resource").reverse();for(let r of i)if(r.name===e){let e=Math.round(r.duration),i=Math.max(Math.round(r.domainLookupStart-r.startTime),0),n=r.redirectStart>0?Math.max(Math.round(r.redirectEnd-r.redirectStart),0):0,o=r.fetchStart>0?Math.max(Math.round(r.domainLookupStart-r.fetchStart),0):0,s=Math.round(r.domainLookupEnd-r.domainLookupStart),a=Math.round(r.requestStart-r.secureConnectionStart),c=Math.round(r.secureConnectionStart-r.connectStart),l=Math.round(r.responseStart-r.requestStart),d=Math.round(r.responseEnd-(r.responseStart||r.startTime));t=Eb(gb({},t),{totalCost:e,local:i,redirect:n,httpCache:o,dns:s,tcp:c,tls:a,request:l,response:d});break}}catch(i){}return t}(n);0===o.totalCost&&(o.totalCost=Date.now()-r),t(o)}))))}var uj=class e extends lj.default{constructor(e){let{signalChannel:t,room:i}=e;super(),Ib(this,"_room"),Ib(this,"_signalChannel"),Ib(this,"_log"),Ib(this,"uplinkRTT",0),Ib(this,"uplinkLoss",0),Ib(this,"downlinkRTT",0),Ib(this,"downlinkLoss",0),Ib(this,"pingResults",{}),Ib(this,"_downlinkPrevStatMap",new Map),Ib(this,"_downlinkLossAndRTTMap",new Map),Ib(this,"_interval",-1),Ib(this,"_uplinkNetworkQuality",0),Ib(this,"_downlinkNetworkQuality",0),this._room=i,this._signalChannel=t,this._log=_M.createLogger({id:"q",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this.initialize()}get uplinkNetworkQuality(){return this._uplinkNetworkQuality}set uplinkNetworkQuality(e){e!==this._uplinkNetworkQuality&&this._log.info("uplink ".concat(this.uplinkNetworkQuality," -> ").concat(e,", rtt: ").concat(this.uplinkRTT,", loss: ").concat(this.uplinkLoss," ws-rtt: ").concat(this._signalChannel.rtt)),this._uplinkNetworkQuality=e}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:t,loss:i}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info("downlink ".concat(this.downlinkNetworkQuality," -> ").concat(e,", rtt: ").concat(t,", loss: ").concat(i," ws-rtt: ").concat(this._signalChannel.rtt))}this._downlinkNetworkQuality=e}initialize(){this._signalChannel.on(pG.UPLINK_NETWORK_STATS,(e=>{this.handleUplinkNetworkQuality(e)})),this._signalChannel.on(oG,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var t,i;if(0!==e.data.code)return;let r=e.data.data;if(r.delay&&this.updateDelay(r.delay),this._room.signalChannel&&r.wsRtt&&(this._room.signalChannel.rtt=r.wsRtt),!this._room.uplinkConnection)return this.uplinkNetworkQuality=0,this.uplinkLoss=0,void(this.uplinkRTT=0);let n=null==(i=null==(t=this._room)?void 0:t.uplinkConnection)?void 0:i.getPeerConnection();if(n&&this.isPeerConnectionDisconnected(n))return this.uplinkNetworkQuality=6,this.uplinkLoss=0,void(this.uplinkRTT=0);let o=r.expectAudPkg+r.expectVidPkg,s=r.recvAudPkg+r.recvVidPkg,a=o-s;0===o&&0===s||(this.uplinkLoss=a<=0?0:Math.round(a/o*100),this.uplinkRTT=r.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return Rb(this,null,(function*(){if(0===this._room.remotePublishedUserMap.size)return void(this.downlinkNetworkQuality=0);let e=[...this._room.remotePublishedUserMap.values()],t=e.filter((e=>{var t;return(null==(t=e.getPeerConnection())?void 0:t.connectionState)===qk.CONNECTED}));if(e.filter((e=>this.isPeerConnectionDisconnected(e.getPeerConnection()))).length===e.length)return void(this.downlinkNetworkQuality=6);for(let n=0;n<t.length;n++){let e=t[n].getPeerConnection();if(!e)return;let{rtt:i,totalPacketsLost:r,totalPacketsReceived:o}=yield this.getStat(e);if(!this._downlinkPrevStatMap.has(e)){this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:o});continue}let s=0,a=this._downlinkPrevStatMap.get(e),c=r-a.totalPacketsLost,l=o-a.totalPacketsReceived;s=c<=0||l<0?0:Math.round(c/(c+l)*100),this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:o}),this._downlinkLossAndRTTMap.set(e,{rtt:i,loss:s,userId:t[n].getUserId(),audioDelay:t[n].remoteAudioTrack.stat.end2EndDelay,videoDelay:t[n].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach((e=>{this.isPeerConnectionDisconnected(e)&&(this._downlinkPrevStatMap.delete(e),this._downlinkLossAndRTTMap.delete(e))})),0===this._downlinkLossAndRTTMap.size)return this.downlinkRTT=0,this.downlinkLoss=0,void(this.downlinkNetworkQuality=0);let{rtt:i,loss:r}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=i,this.downlinkLoss=r,this.downlinkNetworkQuality=this.getNetworkQuality(r,i)}))}getStat(e){return Rb(this,null,(function*(){let t={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!hL())return t;let i=e.getReceivers();try{for(let e=0;e<i.length;e++)(yield i[e].getStats()).forEach((e=>{"candidate-pair"===e.type&&pw(e.currentRoundTripTime)&&(t.rtt=Math.round(1e3*e.currentRoundTripTime)),"inbound-rtp"===e.type&&(e.mediaType===Ik.AUDIO||e.mediaType===Ik.VIDEO)&&(t.totalPacketsLost+=e.packetsLost,t.totalPacketsReceived+=e.packetsReceived)}));return 0===t.rtt&&(t.rtt=this.uplinkRTT),t}catch(bM){return t}}))}getAverageLossAndRTT(e){let t={rtt:0,loss:0};return Array.isArray(e)&&e.length>0&&(e.forEach((e=>{t.rtt+=e.rtt,t.loss+=e.loss})),Object.keys(t).forEach((i=>{t[i]=Math.round(t[i]/e.length)}))),t}getNetworkQuality(e,t){return e>50||t>500?5:e>30||t>350?4:e>20||t>200?3:e>10||t>100?2:e>=0||t>=0?1:0}handleSignalConnectionStateChange(e){"DISCONNECTED"===e.state?(this.uplinkRTT=0,this.uplinkLoss=0,this.uplinkNetworkQuality=6):"CONNECTED"===e.state&&6===this.uplinkNetworkQuality&&(this.uplinkNetworkQuality=5)}handleUplinkConnectionStateChange(e){let{state:t}=e;"DISCONNECTED"===t?(this.uplinkLoss=0,this.uplinkRTT=0,this.uplinkNetworkQuality=6):"CONNECTED"===t&&6===this.uplinkNetworkQuality&&(this.uplinkNetworkQuality=5)}isPeerConnectionDisconnected(e){return!(!e||e.connectionState!==qk.DISCONNECTED&&e.connectionState!==qk.FAILED&&e.connectionState!==qk.CLOSED)}setUplinkConnection(e){this._room.uplinkConnection=e,this._room.uplinkConnection?this._room.uplinkConnection.on("connection-state-changed",this.handleUplinkConnectionStateChange.bind(this)):(this.uplinkNetworkQuality=0,this.uplinkRTT=0,this.uplinkLoss=0)}start(){-1===this._interval?(this._log.debug("start network quality calculating"),this._interval=nx.run("ric",(()=>{var t;this.handleDownlinkNetworkQuality();let i=[...this._downlinkLossAndRTTMap.values()];dM.emit(hM.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:i});let r=null==(t=this._room.scheduleResult.config)?void 0:t.pingDomainInfo,n={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};r&&(n=Eb(gb({},n),{pingResults:this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold?this.pingResults:{}})),this.emit(e.EVENT_NETWORK_QUALITY,n);let o=Date.now();if(r&&(this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold)&&o-e.lastPingTime>1e3*r.interval){e.lastPingTime=Date.now();let t=r.domain.map((e=>dj(e).then((t=>({domain:e,cost:t.totalCost})))));Promise.all(t).then((e=>{this.pingResults.isPoorNetwork=e.some((e=>e.cost>700)),this.pingResults.timestamp=o,this.pingResults.data=e,e.forEach((e=>{UP.addSuccessEvent({key:521718,cost:e.cost})})),this._log.warn("All ping results: ".concat(JSON.stringify(e)))})).catch((e=>{this._log.warn("Error during pinging domains: ".concat(e))}))}}),{delay:2e3})):this._log.info("network quality calculating is already started")}stop(){this._log.debug("stopped"),-1!==this._interval&&(nx.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:t}=this._room;e.forEach((e=>{let{srcTinyId:i,videoDelay:r,audioDelay:n}=e,o=t.get(i);if(o){let e=this._room.remotePublishedUserMap.get(o);null==e||e.setDelay({videoDelay:r,audioDelay:n})}}))}};Ib(uj,"EVENT_NETWORK_QUALITY","0"),Ib(uj,"lastPingTime",0);var hj=uj;var pj=class{constructor(e){Ib(this,"_frameWorkType"),Ib(this,"_component"),Ib(this,"_language"),Ib(this,"connectionType"),Ib(this,"_room"),Ib(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0}),Ib(this,"_keyPrefix"),Ib(this,"_log"),Ib(this,"_intervalId"),Ib(this,"_firstPublishedUserList"),Ib(this,"_networkQuality"),Ib(this,"_basicInfo"),Ib(this,"_pathJoinRoom"),Ib(this,"_pathLeaveRoom"),Ib(this,"_pathMainVideoMap"),Ib(this,"_pathMainAudioMap"),Ib(this,"_pathAuxiliaryMap"),Ib(this,"_remoteStreamStatMap"),Ib(this,"_localStreamStat"),Ib(this,"_eventMap",new Map),Ib(this,"_captureCostSum",0),Ib(this,"_captureCostCount",0),Ib(this,"isDestroyed",!1),this._frameWorkType=e.frameWorkType||30,this._component=e.component||0,this.connectionType=e.connectionType||1,this._language=e.language||0,this._room=e.room,this._keyPrefix="key_point",this._log=_M.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach((e=>{e.startsWith("handle")&&dw(this[e])&&(this[e]=function(e){let{fn:t,context:i}=e;return function(){try{for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];let o=t.apply(i,r);return Tw(o)?o.catch((e=>_M.error("".concat(t.name,"() error observed ").concat(e)))):o}catch(Qk){_M.error("".concat(t.name,"() error observed ").concat(Qk))}}}({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:qb,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:"live"===this._room.scene?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,$O().then((e=>{this._basicInfo.string_os_version=sM(),this._basicInfo.string_device_name=e&&e.mobile?e.model:this._basicInfo.string_os_version}))}addEvent(e,t){return this._eventMap.set(e,t),dM.on(e,t),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(hM.JOIN_START,this.handleJoinStart).addEvent(hM.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(hM.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(hM.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(hM.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(hM.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(hM.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(hM.JOIN_FAILED,this.handleJoinFailed).addEvent(hM.LEAVE_START,this.handleLeaveStart).addEvent(hM.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(hM.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(hM.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(hM.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(hM.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(hM.PUBLISH_START,this.handlePublishStart).addEvent(hM.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(hM.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(hM.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(hM.PLAY_TRACK_START,this.handlePlayStart).addEvent(hM.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(hM.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:i,type:r}=e;!t.isRemote||!this.hitTest(t.room)||"PLAYING"===i&&(r===Ik.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))})).addEvent(hM.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(hM.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(hM.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(hM.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(hM.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(hM.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(hM.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:i,muteState:r}=e;if(!this.hitTest(t))return;let n=i.hasAudio||i.hasVideo||i.hasSmall,o=i.hasAuxiliary,s=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!n&&s&&this.handleRemoteStreamAdded(r.userId,"main"),!o&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")})).addEvent(hM.SINGLE_CONNECTION_STAT,(e=>{let{room:t,stat:i}=e;this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=i.ice,this._pathJoinRoom.int32_dtls_cost=i.dtls,this._pathJoinRoom.int32_peer_connection_cost=i.peerConnection)}))}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach(((e,t)=>dM.off(t,e))),this._eventMap.clear()}destroy(){this.uninstallEvents(),nx.clearTask(this._intervalId),0===this._pathJoinRoom.uint64_start_time&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(e){this.hitTest(e.room)&&(0===this._pathJoinRoom.uint64_start_time&&(this._pathJoinRoom.uint64_start_time=Date.now()),e.params&&(uw(e.params.frameWorkType)||(this._frameWorkType=e.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),uw(e.params.component)||(this._component=e.params.component,this._basicInfo.uint32_component=this._component),uw(e.params.language)||(this._language=e.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess(e){let{room:t,detailCost:i}=e;if(this.hitTest(t)&&i){let{totalCost:e,local:t,dns:r,tcp:n,tls:o,request:s,response:a}=i;this._pathJoinRoom.int32_schedule_cost=e,this._pathJoinRoom.int32_schedule_local=t,this._pathJoinRoom.int32_schedule_dns=r,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=o,this._pathJoinRoom.int32_schedule_request=s,this._pathJoinRoom.int32_schedule_response=a}}handleSignalConnectionStart(e){let{room:t}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd(e){let{room:t,error:i}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),i&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=i instanceof Fb?Number(i.getExtraCode()||i.getCode()):Vb.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=e.code,0!==e.code&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_end_time&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=e.room.getSignalInfo())}handleJoinFailed(e){let{room:t,error:i}=e;this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),0===this._pathJoinRoom.int32_end_ret&&(this._pathJoinRoom.int32_end_ret=i.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout((()=>{this.report()})))}handleReceivedPublishUserList(e){this.hitTest(e.room)&&0===this._pathJoinRoom.uint64_recv_userlist_time&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=e.publishedUserList||[])}handleSendFirstVideoFrame(e){let{room:t}=e;this.hitTest(t)&&0===this._pathJoinRoom.uint64_send_first_video_frame_time&&0!==this._pathJoinRoom.uint64_start_time&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(e){this.hitTest(e.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(e){this.hitTest(e.room)&&0===this._pathLeaveRoom.uint64_end_time&&(this._pathLeaveRoom.uint64_end_time=Date.now(),0!==this._pathJoinRoom.uint64_end_time?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(e){this.hitTest(e.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(e){if(this.hitTest(e.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(e){let{room:t}=e;if(this.hitTest(t)&&0===this._pathJoinRoom.uint64_end_time){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(e){let{room:t,error:i}=e;if(this.hitTest(t)){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,i&&(this._pathJoinRoom.int32_end_ret=i instanceof Fb?Number(i.getExtraCode()||i.getCode()):Vb.UNKNOWN)}}handleRemoteStreamAdded(e,t){var i;let r="".concat(e,"_").concat(t);if(!this._remoteStreamStatMap.has(r)){let n={userId:e,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:Eb(gb({},_j),{msg_user_info:new fj({userId:e,tinyId:null==(i=this._room.remotePublishedUserMap.get(e))?void 0:i.tinyId,role:20})})};n.statsToReport.uint32_stream_type="main"===t?2:7,this._remoteStreamStatMap.set(r,n)}}handleSubscribeStart(e){let{room:t,remotePublishedUser:i,streamType:r,subscribeState:n}=e;if(!this.hitTest(t))return;let{userId:o,tinyId:s,role:a}=i,c=new fj({userId:o,tinyId:s,role:"anchor"===a?20:21}),l=Date.now(),d="".concat(o,"_").concat(r),u=this._remoteStreamStatMap.get(d);u&&0===u.subscribeStartTime&&(u.subscribeStartTime=l),"main"===r?(i.muteState.hasVideo&&(n.video||n.smallVideo)&&!this._pathMainVideoMap.has(d)&&this._pathMainVideoMap.set(d,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:o,sendSubscribeCMDTime:l}),i.muteState.hasAudio&&n.audio&&!this._pathMainAudioMap.has(d)&&this._pathMainAudioMap.set(d,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:o,sendSubscribeCMDTime:l})):i.muteState.hasAuxiliary&&n.auxiliary&&!this._pathAuxiliaryMap.has(d)&&this._pathAuxiliaryMap.set(d,{sendSubscribeCMDTime:l})}handleSubscribed(e){let{room:t,remotePublishedUser:i,streamType:r}=e;if(this.hitTest(t)){let e="".concat(i.userId,"_").concat(r),t=this._remoteStreamStatMap.get(e);t&&0===t.subscribedTime&&(t.subscribedTime=Date.now())}}handlePlayStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room))return;let i="".concat(t.userId,"_").concat(t.streamType),r=this._remoteStreamStatMap.get(i);0===(null==r?void 0:r.playStreamTime)&&(r.playStreamTime=Date.now())}handleVideoLoadedData(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room))return;let i="".concat(t.userId,"_").concat(t.streamType),r=this._pathMainVideoMap.get(i);r&&0===r.statsToReport.uint64_combine_first_frame_time&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),i=Date.now(),r=this._pathMainVideoMap.get(t),n=this._remoteStreamStatMap.get(t);if(n){let{statsToReport:t}=n;if(t.uint32_video_render_first||"main"!==e.streamType?this.hasAuxFlag(e.userId):this.hasVideoFlag(e.userId)){let e=i-this._pathJoinRoom.uint64_start_time;t.uint32_video_render_first=e,UP.addNumber({key:516820,value:e})}}0===(null==r?void 0:r.statsToReport.uint64_render_first_frame_time)&&(r.statsToReport.uint64_render_first_frame_time=i)}handleAudioPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),i=this._pathMainAudioMap.get(t);i&&0===i.statsToReport.uint64_play_first_frame_time&&(i.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(e){this.hitTest(e.room)&&(this._networkQuality.totalUplinkLoss+=e.uplink.loss,this._networkQuality.totalUplinkRTT+=e.uplink.rtt,this._networkQuality.count++,e.downlinks.forEach((e=>{let{rtt:t,loss:i,userId:r,videoDelay:n,audioDelay:o}=e,s=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(s)s.totalRTT+=t,s.totalLoss+=i,n&&(s.totalVideoDelay=(s.totalVideoDelay||0)+n,s.videoDelayCount=(s.videoDelayCount||0)+1),o&&(s.totalAudioDelay=(s.totalAudioDelay||0)+o,s.audioDelayCount=(s.audioDelayCount||0)+1),s.count++;else{let e,s,a,c;n&&(s=n,a=1),o&&(e=o,c=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(r,{totalRTT:t,totalLoss:i,count:1,totalAudioDelay:e,totalVideoDelay:s,audioDelayCount:c,videoDelayCount:a})}})))}handleHeartbeatStats(e){if(this.hitTest(e.room)){let{msg_device_info:t,msg_up_stream_info:i,msg_down_stream_info:r}=e.report;if(i.msg_video_status[0]){let{uint32_video_codec_bitrate:e,uint32_video_enc_fps:t,uint32_video_width:r,uint32_video_height:n}=i.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=e,this._localStreamStat.totalVideoFPS+=t,this._localStreamStat.totalVideoWidth+=r,this._localStreamStat.totalVideoHeight+=n,this._localStreamStat.videoCount++}if(i.msg_audio_status){let{uint32_audio_level:e}=i.msg_audio_status;Math.floor(e/dP*100)>0&&(this._localStreamStat.totalAudioLevel+=e/dP,this._localStreamStat.audioLevelCount++)}r.forEach((e=>{let{msg_user_info:t,msg_audio_status:i,msg_video_status:r}=e,n=t.str_identifier,o=this._room.remotePublishedUserMap.get(n);if(r.forEach((e=>{let t=2===e.uint32_video_stream_type,i=7===e.uint32_video_stream_type,r="".concat(n,"_").concat(t?"main":"auxiliary"),s=this._remoteStreamStatMap.get(r);if(s&&(t&&null!=o&&o.remoteVideoTrack.isSubscribed||i&&null!=o&&o.remoteAuxiliaryTrack)){s.totalVideoFPS+=e.uint32_video_receive_fps,s.totalVideoBitrate+=e.uint32_video_codec_bitrate,s.videoCount++,0===s.statsToReport.uint32_video_width&&(s.statsToReport.uint32_video_width=e.uint32_video_width),0===s.statsToReport.uint32_video_height&&(s.statsToReport.uint32_video_height=e.uint32_video_height);let i=t?o.remoteVideoTrack:o.remoteAuxiliaryTrack;i.stat.jitterBufferDelay&&(s.videoJitterBufferDelay=i.stat.jitterBufferDelay),i.stat.framesReceived&&(s.statsToReport.uint32_video_consume_render_rate=Math.floor(i.stat.framesDecoded/i.stat.framesReceived*_b(10,6)))}})),!kw(i)){let e="".concat(n,"_main"),t=this._remoteStreamStatMap.get(e);this._remoteStreamStatMap.has(e)&&t&&null!=o&&o.remoteAudioTrack.isSubscribed&&(t.totalAudioBitrate+=i.uint32_audio_codec_bitrate,t.audioCount++,o.remoteAudioTrack.stat.jitterBufferDelay&&(t.audioJitterBufferDelay=o.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(i.uint32_audio_level/dP*100)>0&&(t.totalAudioLevel+=i.uint32_audio_level/dP,t.audioLevelCount++))}})),t.uint32_audio_capture_cost&&(this._captureCostSum+=t.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(e){let{room:t}=e;this.hitTest(t)&&0===this._localStreamStat.publishStartTime&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart(e){let{track:t}=e;1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess(e){let{track:t}=e;1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed(e){let{track:t,error:i}=e,r={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[i.name]||(i instanceof Fb?i.getExtraCode()||i.getCode():Vb.UNKNOWN);1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=r,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),4===t.mediaType&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=r,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&bk))>=0}hasAudioFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&wk))>=0}hasAuxFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&Dk))>=0}hitTest(e){return e===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 e=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),t=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=e<<16|t}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach(((e,t)=>{let{userId:i}=e,r=this._networkQuality.totalDownlinkRTTAndLossMap.get(i);if(r){let{totalLoss:t,count:i,audioDelayCount:n,videoDelayCount:o,totalAudioDelay:s,totalVideoDelay:a}=r;e.statsToReport.uint32_avg_down_loss=Math.floor(t/i),n&&s&&(e.statsToReport.uint32_audio_network_p2p_delay=Math.floor(s/n),e.audioJitterBufferDelay&&(e.statsToReport.uint32_p2p_delay=Math.floor(e.statsToReport.uint32_audio_network_p2p_delay+e.audioJitterBufferDelay))),o&&a&&(e.statsToReport.uint32_video_network_p2p_delay=Math.floor(a/o))}e.videoCount>0&&(e.statsToReport.uint32_video_avg_fps=Math.floor(e.totalVideoFPS/e.videoCount),e.statsToReport.uint32_video_avg_bitrate=Math.floor(e.totalVideoBitrate/e.videoCount)),e.audioCount>0&&(e.statsToReport.uint32_audio_recv_bitrate=e.statsToReport.uint32_audio_bitrate=Math.floor(e.totalAudioBitrate/e.audioCount)),e.audioLevelCount>0&&(e.statsToReport.uint32_audio_play_db=Math.floor(e.totalAudioLevel/e.audioLevelCount*100));let{callDurationCalculator:n}=this._room;n&&(e.statsToReport.uint32_audio_play_time=n.getDuration(t,Ik.AUDIO),e.statsToReport.uint32_video_play_time=n.getDuration(t,Ik.VIDEO)),e.statsToReport.uint32_video_render_first&&(e.statsToReport.uint32_video_render_first=Math.min(e.statsToReport.uint32_video_render_first,mj));let{badCaseDetector:o}=this._room,{dataFreeze:s,count:a}=o.getDataFreezeDuration(t),{renderFreeze:c}=o.getRenderFreezeDuration(t);e.statsToReport.uint32_video_block_count=a,e.statsToReport.uint32_video_block_time=Math.min(s,e.statsToReport.uint32_video_play_time),e.statsToReport.uint32_video_external_block_time=Math.min(c,e.statsToReport.uint32_video_play_time),o.isBlackStream(t)&&0===e.statsToReport.uint32_video_avg_fps?e.statsToReport.uint32_video_black_screen_subjective=1:e.statsToReport.uint32_video_black_screen_subjective=0})),this._pathMainAudioMap.forEach(((e,t)=>{this.hasAudioFlag(e.userId)?e.statsToReport.uint64_play_first_frame_time-e.statsToReport.uint64_start_enter_time>mj&&(e.statsToReport.uint64_play_first_frame_time=e.statsToReport.uint64_start_enter_time+mj):this._pathMainAudioMap.delete(t)})),this._pathMainVideoMap.forEach(((e,t)=>{this.hasVideoFlag(e.userId)?e.statsToReport.uint64_render_first_frame_time-e.statsToReport.uint64_start_enter_time>mj&&(e.statsToReport.uint64_render_first_frame_time=e.statsToReport.uint64_start_enter_time+mj):this._pathMainVideoMap.delete(t)})),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>mj&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+mj)}getReportData(){this._basicInfo.uint32_networkType=ZD();let e={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new fj({userId:this._room.userId,tinyId:this._room.tinyId,role:"anchor"===this._room.role?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Nw(this._signalInfo.relayIp),uint32_client_ip:Nw(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*_b(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:Nw(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Gw(e),e}report(){return Rb(this,null,(function*(){try{this.prepareReport();let e=this.getReportData();yield this.upload(e),this.initData()}catch(IM){this._log.warn(IM)}finally{this.isDestroyed&&(this._room=null)}}))}upload(e){return Rb(this,null,(function*(){if(0===e.msg_path_enter_room.uint64_start_time)return;let t=Number(this._room.sdkAppId),i=pM.enable?$w(e,2001,t):yield oN(e),r=i instanceof ArrayBuffer,n="".concat(qD(t,uk.KEY_POINT),"&gzip=").concat(+r),o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(n,i));let s=[this.uploadKVStat(UP),this.uploadKVStat(VP)];o||s.push(nN({url:n,body:i,priority:"low"})),yield Promise.all(s)}))}setConnectionType(e){this.connectionType=e,this._basicInfo.uint32_connection_type=e}uploadKVStat(e){return Rb(this,null,(function*(){let t=e.getReportData();if(0===t.stats_count.length&&0===t.stats_distribution.length)return;t.msg_sdk_basic_info=Eb(gb({},t.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(t);let i=pM.enable?$w(t,2003,this._room.sdkAppId):yield oN(t),r=i instanceof ArrayBuffer,n="".concat(qD(+this._room.sdkAppId,uk.KV_STAT),"&gzip=").concat(+r),o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(n,i)),o||nN({url:n,body:i})}))}};Sb([hx({settings:{timeout:500,retries:3}})],pj.prototype,"upload",1);var mj=5e3,_j={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},fj=class{constructor(e){Ib(this,"str_identifier"),Ib(this,"str_tinyid"),Ib(this,"uint32_role"),this.str_identifier=String(e.userId),this.str_tinyid=String(e.tinyId||0),this.uint32_role=e.role}},gj=pj,Ej=class{constructor(){Ib(this,"_startTime"),Ib(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){0===this._startTime&&(this._startTime=Aw())}stop(){0===this._endTime&&(this._endTime=Aw())}getDuration(){return 0===this._endTime?Aw()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Tj=class{constructor(e){Ib(this,"_room",null),Ib(this,"_durationMap"),Ib(this,"_eventMap",new Map),this._room=e.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(hM.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(hM.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(hM.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:i,muteState:r}=e;var n;let{userId:o}=r;if(!this.hitTest(t))return;i.hasAudio&&!r.hasAudio&&this.stopDurationItem("".concat(o,"_main"),Ik.AUDIO),i.hasVideo&&!r.hasVideo&&this.stopDurationItem("".concat(o,"_main"),Ik.VIDEO),i.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem("".concat(o,"_auxiliary"),Ik.VIDEO);let s=null==(n=this._room)?void 0:n.remotePublishedUserMap.get(o);s&&(!i.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,Ik.AUDIO,"main"),!i.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,Ik.VIDEO,"main"),!i.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,Ik.VIDEO,"auxiliary"))})),this._eventMap.forEach(((e,t)=>dM.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>dM.off(t,e,this))),this._eventMap.clear()}handleSubscribed(e){let{track:t}=e;if(!this.hitTest(t.room))return;let{userId:i,streamType:r,kind:n}=t;t.isSubscribed?this.addDuractionItem(i,n,r):this.stopDurationItem("".concat(i,"_").concat(r),n)}handleUnsubscribed(e){let{track:t}=e;this.hitTest(t.room)&&this.stopDurationItem("".concat(t.userId,"_").concat(t.streamType),t.kind)}isRecording(e){return e.findIndex((e=>0===e.endTime))>=0}addDuractionItem(e,t,i){let r="".concat(e,"_").concat(i),n=new Ej,o=this._durationMap.get(r);o?this.isRecording(o[t])||o[t].push(n):this._durationMap.set(r,{userId:e,type:i,audio:t===Ik.AUDIO?[n]:[],video:t===Ik.AUDIO?[]:[n]})}stopDurationItem(e,t){if(this._durationMap.has(e)){let i=this._durationMap.get(e)[t].find((e=>0===e.endTime));i&&i.stop()}}hitTest(e){return this._room===e}getDuration(e,t){return this._durationMap.has(e)?this._durationMap.get(e)[t].reduce(((e,t)=>e+t.getDuration()),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},vj=class{constructor(e){Ib(this,"_room"),Ib(this,"_renderFreezeMap",new Map),Ib(this,"_isVideoPlayingEventFiredMap",new Map),Ib(this,"_dataFreezeMap",new Map),Ib(this,"_monitorFreezeData",new Map),Ib(this,"_eventMap",new Map),this._room=e.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(hM.LEAVE_SUCCESS,(e=>{let{room:t}=e;this.hitTest(t)&&this.stop()})).set(hM.PLAY_TRACK_START,this.onPlayTrackStart).set(hM.UNSUBSCRIBE_SUCCESS,(e=>{let{room:t,streamType:i,remotePublishedUser:r}=e;if(!this.hitTest(t))return;let{userId:n}=r,o="".concat(n,"_").concat(i);this.stopDataFreeze({key:o,userId:n,type:i})})).set(hM.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:i,muteState:r}=e;if(!this.hitTest(t))return;let{userId:n}=r;if(i.hasVideo&&!r.hasVideo){let e="main",t="".concat(r.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:n,type:e})}if(i.hasAuxiliary&&!r.hasAuxiliary){let e="auxiliary",t="".concat(r.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:n,type:e})}})).set(hM.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:i,reason:r,type:n}=e;if(t.isRemote&&t.room&&this.hitTest(t.room)&&n===Ik.VIDEO){if("PLAYING"===i){let e="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.set(e,!0)}r===Ik.MUTE?this.onVideoTrackMuted(t):r===Ik.UNMUTE&&this.onVideoTrackUnmuted(t)}})).set(hM.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach(((e,t)=>dM.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>dM.off(t,e,this))),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(e){if(!e.isSubscribed)return;let{userId:t,streamType:i}=e,r="".concat(t,"_").concat(i),n=this._dataFreezeMap.get(r),o=new Ej;n?n.durationItemList.push(o):this._dataFreezeMap.set(r,{userId:t,type:i,durationItemList:[o],isFreezing(){let e=this.durationItemList[this.durationItemList.length-1];return e&&0===e.endTime}})}onVideoTrackUnmuted(e){if(!e.isSubscribed)return;let{userId:t,streamType:i}=e,r="".concat(t,"_").concat(i);this.stopDataFreeze({key:r,userId:t,type:i})}onHearBeatReport(e){let{room:t,report:i}=e;this.hitTest(t)&&i.msg_down_stream_info.forEach((e=>{let t=this._room.remotePublishedUserMap.get(e.msg_user_info.str_identifier);if(!t)return;let{userId:i,muteState:r}=t;e.msg_video_status.forEach((e=>{2===e.uint32_video_stream_type&&r.hasVideo&&!r.videoMuted&&t.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:i,fps:e.uint32_video_dec_fps,type:"main"}),7===e.uint32_video_stream_type&&r.hasAuxiliary&&t.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:i,fps:e.uint32_video_dec_fps,type:"auxiliary"})}))}))}stopDataFreeze(e){let{key:t,userId:i,type:r}=e,n=this._dataFreezeMap.get(t);if(!n||!n.isFreezing())return;let o=n.durationItemList[n.durationItemList.length-1];o.stop();let s=o.getDuration();s>aD?this._monitorFreezeData.set(t,{userId:i,type:r,duration:s}):n.durationItemList.pop()}getTotalDuration(e){return e.reduce(((e,t)=>{let i=t.getDuration();return e+Math.min(i,5e3)}),0)}handleRenderFreeze(e){return Rb(this,arguments,(function(e){var t=this;let{userId:i,fps:r,type:n}=e;return function*(){let e="".concat(i,"_").concat(n),o=t._renderFreezeMap.get(e);if(r<=2){let r=Aw();o&&!o.isFreeze&&(o.freezeTimeline.push({startTime:r,endTime:0}),o.isFreeze=!0),o||t._renderFreezeMap.set(e,{userId:i,type:n,isFreeze:!0,freezeTimeline:[{startTime:r,endTime:0}],renderFreezeTotal:0})}else if(o&&o.isFreeze){o.isFreeze=!1;let e=o.freezeTimeline.pop();if(e){e.endTime=Aw();let t=e.endTime-e.startTime;o.freezeTimeline.push(e),o.renderFreezeTotal+=Math.min(5e3,t)}}}()}))}onPlayTrackStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room)||t.kind!==Ik.VIDEO||!t.isRemotePublished)return;let i="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.has(i)||this._isVideoPlayingEventFiredMap.set(i,!1)}getDataFreezeDuration(e){let t={dataFreeze:0,count:0},i=this._dataFreezeMap.get(e);if(i){if(i.isFreezing()){let e=i.durationItemList[i.durationItemList.length-1];e.stop(),e.getDuration()<aD&&i.durationItemList.pop()}t.dataFreeze=this.getTotalDuration(i.durationItemList),t.count=i.durationItemList.length}return t}getRenderFreezeDuration(e){let t=this._renderFreezeMap.get(e),i=0,r=0;if(t)if(t.isFreeze){let e=Aw()-t.freezeTimeline[t.freezeTimeline.length-1].startTime;i=t.renderFreezeTotal+Math.min(e,5e3),r=t.freezeTimeline.length}else i=t.renderFreezeTotal;return{renderFreeze:i,count:r}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(e){return!!this._isVideoPlayingEventFiredMap.has(e)&&!this._isVideoPlayingEventFiredMap.get(e)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(e){return e===this._room}destroy(){this.uninstallEvents()}},yj=yb(Cb(),1),Sj=class{constructor(e,t,i,r){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:4/3;this.vbMode=e,this.faceDetectorHash=t,this.visionTaskRegistry=i,this.logger=r,Ib(this,"animationState"),Ib(this,"originalAspect"),Ib(this,"totalOffsetX",0),Ib(this,"totalOffsetY",0),Ib(this,"defaultScaleRatio",.1),Ib(this,"isRecovering",!1),Ib(this,"boundaryY",280),Ib(this,"lastActionTime",0),Ib(this,"restTime",400),this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3}addEvent(e,t,i){let r=[{key:570704,error:null!=i?i:t?void 0:11},{key:570705,error:null!=i?i:t?void 0:22}][e-1];r&&(t?UP.addSuccessEvent({key:r.key}):UP.addFailedEvent({key:r.key,error:r.error}))}actionCentering(e){let t=Date.now();if(this.animation(),!this.faceDetectorHash||t-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:i,videoHeight:r}=e;this.animationState.debounceThreshold=i/30,this.animationState.movementThreshold=i/20,this.boundaryY=.6*r;try{let e=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(e.detections.length<=0)return void(1===this.vbMode&&this.recoverOriginal(i,r));let t=e.detections[0].boundingBox,n=t.originX,o=t.originY,s=t.width,a=t.height;1===this.vbMode?this.dualStageCropping(i,r,n,o,s,a):2===this.vbMode&&this.movingPortrait(i,r,n,o,s,a)}catch(bM){this.logger.error(bM)}this.lastActionTime=t}calculateBoundary(e,t,i,r){let n,o;return e>t/2?(n=t-i-r,o=i-n):(n=i,o=0),{min:n,offset:o}}calculateTargetPosition(e,t,i,r,n,o){let s,a,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.4,l=e+i/2,d=t+r/2,{min:u,offset:h}=this.calculateBoundary(l,n,e,i),{min:p,offset:m}=this.calculateBoundary(d,o,t,r);return s=2*u+i,a=2*p+r,s/a>this.originalAspect?(s=a*this.originalAspect,h=l-s/2):(a=s/this.originalAspect,m=d-a/2),i/n>c&&(h=0,m=0,s=n,a=o),h=Math.max(0,Math.min(h,n-s)),m=Math.max(0,Math.min(m,o-a)),{sx:h,sy:m,cropWidth:s,cropHeight:a,timestamp:Date.now()}}processFacePositionCrop(e,t,i){if(!this.animationState.current||!this.animationState.target){let e={sx:0,sy:0,cropWidth:t,cropHeight:i,timestamp:Date.now()};return this.animationState.current=e,void(this.animationState.target=e)}let r=this.positionDistance(this.animationState.target,e),n=this.positionDistance(this.animationState.current,e),o=this.animationState.current.cropWidth/t;r>this.animationState.debounceThreshold*o&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&n>this.animationState.movementThreshold*o&&(this.animationState.target=e,this.animationState.debounceTimer=setTimeout((()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0}),this.animationState.debounceTime))}processFacePositionPortrait(e){if(!this.animationState.current||!this.animationState.target)return this.animationState.current=gb({},e),void(this.animationState.target=gb({},e));let t=this.positionDistance(this.animationState.current,e),i=this.positionDistance(this.animationState.target,e);t>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&i>this.animationState.movementThreshold&&(this.animationState.current=e,this.animationState.debounceTimer=setTimeout((()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0}),this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let e=Date.now()-this.animationState.startTime,t=Math.min(e/this.animationState.duration,1),i=e=>e<.5?2*e*e:(4-2*e)*e-1;if(this.animationState.current&&this.animationState.target){let e=(this.animationState.target.sx-this.animationState.current.sx)*i(t);this.animationState.current.sx+=e,this.totalOffsetX+=e;let r=(this.animationState.target.sy-this.animationState.current.sy)*i(t);if(this.animationState.current.sy+=r,this.totalOffsetY+=r,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*i(t),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*i(t),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*i(t)),pw(this.animationState.current.scaleOffsetX)&&pw(this.animationState.target.scaleOffsetX)&&pw(this.animationState.current.scaleOffsetY)&&pw(this.animationState.target.scaleOffsetY)){let e=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*i(t);this.animationState.current.scaleOffsetX+=e;let r=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*i(t);this.animationState.current.scaleOffsetY+=r}}t>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(e,t){return Math.sqrt(_b(e.sx-t.sx,2)+_b(e.sy-t.sy,2))}recoverOriginal(e,t){this.animationState.target={sx:0,sy:0,cropWidth:e,cropHeight:t,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(e,t,i,r,n,o){let s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.3;if(this.isRecovering)return;let a=this.calculateTargetPosition(i,r,n,o,e,t);this.processFacePositionCrop(a,e,t),n*o/a.cropWidth/a.cropHeight>s&&this.recoverOriginal(e,t)}movingPortrait(e,t,i,r,n,o){var s,a,c,l,d,u,h,p,m,_,f,g;let E={sx:i+n/2+this.totalOffsetX,sy:r+o/2+this.totalOffsetY,cropWidth:e,cropHeight:t,scaleRatio:null!=(a=null==(s=this.animationState.current)?void 0:s.scaleRatio)?a:1,scaleOffsetX:null!=(l=null==(c=this.animationState.current)?void 0:c.scaleOffsetX)?l:0,scaleOffsetY:null!=(u=null==(d=this.animationState.current)?void 0:d.scaleOffsetY)?u:0,timestamp:Date.now()};this.animationState.target={sx:e/2,sy:r+o/2,cropWidth:e,cropHeight:t,scaleRatio:null!=(p=null==(h=this.animationState.target)?void 0:h.scaleRatio)?p:1,scaleOffsetX:null!=(_=null==(m=this.animationState.target)?void 0:m.scaleOffsetX)?_:0,scaleOffsetY:null!=(g=null==(f=this.animationState.target)?void 0:f.scaleOffsetY)?g:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(n*o/e/t/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=1-this.animationState.target.scaleRatio,(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(E)}set aspectRatio(e){this.originalAspect=e}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}},Ij=class extends CB{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:t.width,height:t.height,logger:e.log}),Ib(this,"_bgTexture"),Ib(this,"_waterMarkTexture"),Ib(this,"_lastMaskTexture"),Ib(this,"_lastMaskFbo"),Ib(this,"_textureValid",!1),Ib(this,"_selfieTextureValid",!1),Ib(this,"_selfieSegmentationHash"),Ib(this,"wasm"),Ib(this,"_prePrograme"),Ib(this,"_segmentationMask"),Ib(this,"_weixin",!1),Ib(this,"_centerFace"),Ib(this,"_textureMatrixLocation"),Ib(this,"_offsetMatrixLocation"),Ib(this,"_enableFaceCentering",!1),Ib(this,"_mat4"),Ib(this,"_onAbort"),Ib(this,"_visionTaskRegistry"),this.init(t).catch((t=>{e.log.error(t),e.destroy(new Fb({code:Vb.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(t.message||t)}))}))}init(e){return Rb(this,null,(function*(){var t;let i=e.Wasm,r=this.context.ctx;if(e.mat4&&(this._mat4=e.mat4),this._enableFaceCentering=null!=(t=e.enableFaceCentering)&&t,this.wasm=new i.AllIn1(r),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode="blur"===e.bg?1:e.bg instanceof HTMLImageElement?2:"green"===e.bg?3:0,this._onAbort=e.onAbort,e.waterMark){let{x:t,y:i,width:r,height:n}=e.waterMark;this.wasm.setWaterMark(t,i,r,n)}if(e.beautyParams){let{beauty:t,brightness:i,ruddy:r}=e.beautyParams;this.wasm.setBeauty(t,i,r,null==e?void 0:e.width,null==e?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.uniform1i(r.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(r.uniform1i(r.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(r.uniform1i(r.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let n=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=r.getUniformLocation(this.program,"u_textureMatrix"),r.uniformMatrix4fv(this._textureMatrixLocation,!1,n),this._offsetMatrixLocation=r.getUniformLocation(this.program,"u_offsetMatrix"),r.uniformMatrix4fv(this._offsetMatrixLocation,!1,n),r.uniform1i(r.getUniformLocation(this.program,"lastMask"),4),this._weixin){let e=this.context.createShader(r.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\nuniform sampler2D u_texture;\nuniform sampler2D mask;\n\nin vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {\n outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);\n}"),t=this.context.createShader(r.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nin vec2 a_texCoord;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\n v_texCoord = a_texCoord;\n}");this._prePrograme=this.context.createProgram(t,e),r.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.uniform1i(r.getUniformLocation(this._prePrograme,"mask"),1)}yield this.initVisionTasks(e)}))}initVisionTasks(e){return Rb(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 e=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!e)return;this._centerFace=new Sj(this.wasm.vbMode,e,this._visionTaskRegistry,this.context.log)}catch(Qk){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}}))}onPredict(e){let t=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),this.bindMaskTexture(e),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),Yw(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),t.drawArrays(t.TRIANGLE_STRIP,0,4)}bindMaskTexture(e){let t=this.context.ctx;if(!e.confidenceMasks)return;let i=e.confidenceMasks[0].getAsWebGLTexture();t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,i),e.close()}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 t=this.context.ctx,{image:i}=this;this.tryVideoFrameCallback();let{videoWidth:r,videoHeight:n}=i;if(0===r||0===n||!this.available)return!1;i.width=r,i.height=n;let o=!1;if(this.totalFrames)this.useTexture(),o=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),o=this._textureValid,this._textureValid=!0}this.width===r&&this.height===n&&o?t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,i):(this.resize(r,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)),this._weixin&&(t.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(this.bindMaskTexture(this._segmentationMask),t.bindFramebuffer(t.FRAMEBUFFER,this._lastMaskFbo||null)),t.drawArrays(t.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?t.copyTexSubImage2D(t.TEXTURE_2D,0,0,0,0,0,r,n):t.copyTexImage2D(t.TEXTURE_2D,0,t.RGBA,0,0,r,n,0));try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let e=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.onPredict(e)}}catch(s){this._onAbort&&this._onAbort(s)}return this.totalFrames||(t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this._bgTexture||null),t.activeTexture(t.TEXTURE3),t.bindTexture(t.TEXTURE_2D,this._waterMarkTexture||null),t.drawArrays(t.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:t,offset:i}=this._centerFace;if(t&&(1===this.wasm.vbMode&&this.drawImage(t.sx,t.sy,t.cropWidth,t.cropHeight),i&&2===this.wasm.vbMode)){if(!this._mat4)return;let r=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:o=0,scaleOffsetY:s=0}=t;this._mat4.fromTranslation(r,[-i.offsetX/e.canvas.width+o,s,0]),this._mat4.scale(r,r,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,r)}}drawImage(e,t,i,r){let n=this.context.ctx;if(!this._mat4)return;let{width:o,height:s}=n.canvas,a=this._mat4.create();this._mat4.fromTranslation(a,[e/o,1-(t+r)/s,0]),this._mat4.scale(a,a,[i/o,r/s,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,a)}close(){var e;super.close();let t=this.context.ctx;this._bgTexture&&t.deleteTexture(this._bgTexture),this._waterMarkTexture&&t.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&t.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&t.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&t.deleteProgram(this._prePrograme),null==(e=this.wasm)||e.close()}},Aj=class extends nU{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:"\n precision highp float;\n uniform sampler2D ySampler;\n uniform sampler2D uSampler;\n uniform sampler2D vSampler;\n varying highp vec2 textureCoord;\n const mat4 YUV2RGB = mat4(\n 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n void main() {\n vec3 yuv;\n yuv.r = texture2D(ySampler, textureCoord).r;\n yuv.g = texture2D(uSampler, textureCoord).r;\n yuv.b = texture2D(vSampler, textureCoord).r;\n gl_FragColor = vec4(yuv,1) * YUV2RGB;\n }\n ",vertexShaderSource:"\n attribute vec4 vertexPos;\n attribute vec2 texturePos;\n varying vec2 textureCoord;\n void main() {\n gl_Position = vertexPos;\n textureCoord = texturePos;\n }"}),Ib(this,"yTextureRef"),Ib(this,"uTextureRef"),Ib(this,"vTextureRef"),Ib(this,"Y"),Ib(this,"U"),Ib(this,"V"),this.useProgram();let t=this.context.ctx;t.pixelStorei(t.PACK_ALIGNMENT,1),t.pixelStorei(t.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,t){let i=this.context.ctx,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),i.uniform1i(i.getUniformLocation(this.program,e),t),r}render(e){let t=this.context.ctx,i=this.width,r=this.height;return this.useProgram(),t.viewport(0,0,i,r),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.yTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i,r,t.LUMINANCE,t.UNSIGNED_BYTE,this.Y),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,this.uTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i/2,r/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.U),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,this.vTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,i/2,r/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,t){super.resize(e,t);let i=this.context.ctx;i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,this.yTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,null),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,this.uTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,null),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,this.vTextureRef),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,null)}},Rj=[e=>{e.codec="avc1.42e01f"},e=>{delete e.hardwareAcceleration}],Cj=(e,t)=>{switch(e){case"webCodecs":return"videoFrame"===t?514705:514706;case"wasm":return"webgl"===t?514707:"videoFrame"===t?514708:514709}throw new Error("decoder type not supported")};var bj=0,kj=class{constructor(e){Ib(this,"id",bj++),Ib(this,"trackDoneOB"),Ib(this,"startOB"),Ib(this,"stopOB"),Ib(this,"decoder"),Ib(this,"videoContext"),Ib(this,"gop",0),Ib(this,"gop_helper",0),Ib(this,"waitFirstKeyFrame",!0),Ib(this,"startTimestamp",0),Ib(this,"startTime",0),Ib(this,"startPerformanceTime",0),Ib(this,"inputFrameCount",0),Ib(this,"decodedFrameCount",0),Ib(this,"decodeFrameCount",0),Ib(this,"downgradeLevel",0),Ib(this,"lastDowngradeTime",0),Ib(this,"lastFrameDiff",0),Ib(this,"lastDecodeFrameTimestamp",0),Ib(this,"config"),Ib(this,"gop_before_configure",[]),Ib(this,"videoElement"),Ib(this,"type","wasm"),Ib(this,"goodType"),Ib(this,"renderer","2d"),Ib(this,"wasmOption"),Ib(this,"createDecoder"),Ib(this,"_decodeSink"),Ib(this,"isReported",!1),Ib(this,"track"),Ib(this,"stateChangeOB"),Ib(this,"failedReason");let{track:t,createDecoder:i}=e;if(this.stateChangeOB=VU(),this.track=t,this.createDecoder=i,this.wasmOption={yuvMode:"webgl"===e.renderer,wasmPath:e.wasmPath,workerMode:e.workerMode,canvas:e.canvas},this.config=e.config,this.videoElement=e.videoElement,this.renderer=e.renderer,this.trackDoneOB=qU(t.availableState,ZL.OFF),this.stopOB=VU(),"auto"===e.type){switch(e.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="webgl"===this.renderer}else this.type=e.type;this.changeRenderer(this.renderer),fU(this.stateChangeOB,VF(((e,i)=>(e!==i&&t.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:e,state:i}),i)),"INITIALIZED"),_F(this.stopOB),mB()),this.start()}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let t=fU(this.pipe(this.track),_F(this.stopOB),AU());fU(t,mB((()=>{this.track.stat.framesDecoded++}),(t=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(t," retryCount: ").concat(e)),UP.addFailedEvent({key:Cj(this.type,this.renderer),error:t}),e>4)this.failedReason=t,this.stateChangeOB.next("FAILED"),UP.addFailedEvent({key:514704});else{if(this.goodType)return void this.start(e);switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":if("webgl"===this.renderer)this.changeRenderer("videoFrame")}this.start(e+1)}}),(()=>{this.track.log.warn("".concat(this.id," decoderOB completed")),UP.addSuccessEvent({key:Cj(this.type,this.renderer)}),UP.addSuccessEvent({key:514704})}))),fU(t,mF(1),mB((()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")})))}mock(e){this._decodeSink?this._decodeSink.error(e):this.start()}close(e){this.stopOB.next(e)}changeRenderer(e){this.renderer=e,"videoFrame"===this.renderer&&!qP()&&(this.renderer="2d"),this.wasmOption.yuvMode="webgl"===this.renderer}decode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i,r;if(this.failedReason)return;this.inputFrameCount++;let n=new Uint8Array(e.data);if(0!==(o=n)[0]||0!==o[1]||0!==o[2]||1!==o[3]||n.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(n.subarray(0,5))),e;var o;let s=!1;switch(31&n[4]){case 5:case 7:s=!0}if("configured"!==(null==(i=this.decoder)?void 0:i.state))return this.track.log.debug("not configured ".concat(this.inputFrameCount)),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:e.data,timestamp:e.timestamp,type:e.type}),e;this.gop_before_configure.length>0&&!t&&(this.gop_before_configure.forEach((e=>this.decode(e,!0))),this.gop_before_configure=[]);let{timestamp:a}=e;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!s)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount," ").concat(n.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=a,this.startTime=Date.now(),this.startPerformanceTime=Aw()}switch(this.downgradeLevel){case 0: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}return(this.decodeFrameCount<10||this.decodeFrameCount%500==0)&&this.track.log.debug("decode ".concat(this.decodeFrameCount," gop: ").concat(this.gop," ").concat(a," ").concat(null==(r=e.getMetadata)?void 0:r.call(e).rtpTimestamp)),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=a,void this.decoder.decode({data:e.data,type:e.type,timestamp:this.lastDecodeFrameTimestamp})}return e}checkDowngradeByFrameDiff(){let e=this.downgradeLevel,t=this.decodeFrameCount-this.decodedFrameCount;t>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):t<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug("downgrade level ".concat(e," to ").concat(this.downgradeLevel," ").concat(this.decodeFrameCount," frameDiff: ").concat(t,", lastFrameDiff: ").concat(this.lastFrameDiff)),this.lastFrameDiff=t,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(e){let t=this.downgradeLevel;this.lastDecodeFrameTimestamp-e>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug("downgrade level ".concat(t," to ").concat(this.downgradeLevel))}pipe(e){return t=>Rb(this,null,(function*(){this._decodeSink=t;let i,r=e.mediaTrack;t.defer((()=>{var t;r&&(e.player.setCanvas(),e.setInputMediaStreamTrack(r)),null==i||i.close(),null==(t=this.videoContext)||t.destroy(),delete this._decodeSink}));let{renderer:n,type:o}=this;e.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(o){case"wasm":i=this.createDecoder(o,this.wasmOption);break;case"webCodecs":for(let e=0;e<=Rj.length;e++){let{supported:i}=yield VideoDecoder.isConfigSupported(this.config);if(i)break;if(e===Rj.length)return void t.error(3);Rj[e](this.config)}i=this.createDecoder(o);break;default:throw new Error("not supported yet")}let r=0;if(i.on("videoFrame",(i=>{this.decodedFrameCount++,r++,(r<=10||r%500==0)&&e.log.debug("frame ".concat(r," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(i.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&("webCodecs"===this.type?this.checkDowngradeByFrameDiff():"wasm"===this.type&&this.checkDowngradeByTimestampDiff(i.timestamp)),t.next(i)})),i.on("error",(i=>{e.log.error(i),t.error("webCodecs"===o?4:8)})),yield i.initialize(this.videoElement),!this._decodeSink)return;if(i.configure(this.config),"wasm"===o&&"webgl"===n){this.videoContext=new NB({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create(),this.videoContext.on(NB.UNAVAILABLE,(i=>{e.log.error(i),t.error(7)}));let r=new Aj(this.videoContext);i.on("videoCodecInfo",(e=>r.resize(e.width,e.height))),i.on("videoFrame",(e=>{({y:r.Y,u:r.U,v:r.V}=e),1===this.downgradeLevel?this.decodedFrameCount%2==0&&r.render(this.decodedFrameCount):r.render(this.decodedFrameCount)})),e.source=r,e.player.setCanvas(this.videoContext._canvas,2)}else if("videoFrame"===n){e.player.setCanvas();let t=new MediaStreamTrackGenerator({kind:"video"}),r=t.writable.getWriter();e.setInputMediaStreamTrack(t),i.on("videoFrame",(e=>r.write(e)))}else{this.videoContext=new OB({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create({alpha:!1});let r=this.videoContext.createVideoImageSource();i.on("videoFrame",(i=>{try{r.image=i,r.update()}catch(n){delete this.goodType,e.log.error(n),t.error(11)}}));let n=new vB(this.videoContext,{name:"remotePlayer",logger:e.log});r.connect(n),e.source=r,e.player.setCanvas(this.videoContext._canvas,2)}this.decoder=i}catch(CM){e.log.error(CM),t.error("webCodecs"===o?2:6)}}))}},Dj=class extends yj.EventEmitter{constructor(e){super(),this.room=e,Ib(this,"videoContext"),Ib(this,"_glVideoContext"),Ib(this,"_2dVideoContext"),Ib(this,"destination"),Ib(this,"smallVideoContext"),Ib(this,"smallDestination"),Ib(this,"smallTrackSource"),Ib(this,"smallImageSource"),Ib(this,"_isMirror",!1),Ib(this,"_rotation",0),Ib(this,"cameraTrack"),Ib(this,"cameraNode"),Ib(this,"transformNode"),Ib(this,"mixNode"),Ib(this,"screenTrack"),Ib(this,"screenNode"),Ib(this,"selfModel",!1),Ib(this,"blurRadius",3),Ib(this,"arTrack"),Ib(this,"_enableFaceCentering",!1),Ib(this,"onAbort"),Ib(this,"Wasm"),Ib(this,"waterMarkNode"),Ib(this,"_waterMarkOption"),Ib(this,"watermarkImageList",[]),Ib(this,"_beautyParams"),Ib(this,"isUsingArTrack",!1),Ib(this,"mixTrack"),Ib(this,"_isMixScreen",!1),Ib(this,"_virtualBackground"),Ib(this,"_virtualBackgroundAbortCallback"),Ib(this,"virtualBackgroundInstance"),Ib(this,"_bgAssetPath"),Ib(this,"log",_M.createLogger({id:"vm"})),Ib(this,"_mat4"),Ib(this,"_checkId",0),Ib(this,"_use2d",!1),Ib(this,"_autoSwitchRenderMode",!0),Ib(this,"encodePipeline",[]),Ib(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new OB({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return(null==(e=this.room)?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return 0!==this._rotation}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode="auto"===e,this._autoSwitchRenderMode)return;let t="2d"===e;this._use2d!==t&&(this._use2d=t,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var e;let{width:t,height:i}=(null==(e=this.cameraTrack)?void 0:e.settings)||{};return Yw(this._rotation)?{width:i,height:t}:{width:t,height:i}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new OB({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(this._glVideoContext){if(this._glVideoContext.available)return this._glVideoContext}else this._glVideoContext=new NB({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(NB.UNAVAILABLE,(e=>{var t;this.emit("error",e),this.log.warn("video context unavailable",e),null==(t=this._virtualBackgroundAbortCallback)||t.call(this,e),this.update().catch((e=>{this.log.error(e)}))}))}catch(Yb){this.emit("error",Yb)}}initVirtualBackground(e,t){this.onAbort=e,this._mat4=t}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=nx.run("interval",(()=>{this.destination&&this.log.debug(this.destination.getInfo())}),{delay:e})}destroy(){var e,t;null==(e=this._2dVideoContext)||e.destroy(),null==(t=this._glVideoContext)||t.destroy(),this.smallVideoContext.destroy(),nx.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(PO||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(){let e=arguments.length>1?arguments[1]:void 0,t="videoCtxGl"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"videoCtxGl")?512700:512701;e?UP.addFailedEvent({key:t,error:e}):UP.addSuccessEvent({key:t})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let t=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else{if(!t)return!0;if(!this._use2d)return!0;this.clear()}}else{if(this._glVideoContext=new NB({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 null==(e=this.smallDestination)?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return null==(e=this.cameraTrack)?void 0:e.mediaTrack}setSmallVideo(e,t){if("api"!==this.smallMode)if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new IB(this.smallVideoContext,e,this.log),this.smallVideoContext.on(NB.UNAVAILABLE,(e=>{this.log.warn("small video context lost",e)}))}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,t)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=t:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(t),this.smallImageSource.resize(t.width,t.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:e,height:t}=this.cameraTrack.settings;this.smallTrackSource.resize(e,t),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var t;try{let i=this.cameraTrack,{small:r,player:n}=i;PO&&n.setCanvas(e);let o=e&&(null==(t=this.destination)?void 0:t.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),o=this.arTrack),this.log.info("set main output ".concat(o?o.label:"no output track")),this.setSmallVideo(r,e),i.setOutputMediaStreamTrack(o)}catch(AM){this.log.error("set main output failed",AM)}}update(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Rb(this,null,(function*(){var t;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:i,profile:r}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),16===BO?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof CB?(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 CB?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(i.width,i.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 SB(this.videoContext,{name:"mainDestination",logger:this.log});let{width:e,height:t}=this.cameraResolution,i=yield this.getWatermarkImage(e,t);this._waterMarkOption={x:0,y:0,width:i.width,height:i.height,image:i},this.cameraNode=new Ij(this.videoContext,{input:this.initialTrack,width:e,height:t,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,onAbort:this.onAbort,mat4:this._mat4}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()}if(this.videoContext.frameRate=r.frameRate,this._use2d){let e=this.cameraNode;if(e.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new VB(this.videoContext,this.log,this._isMirror,this._rotation),e=e.connect(this.transformNode),e.disconnect(),this.log.info("start mirror ".concat(this._isMirror," rotate ").concat(this.rotation))),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new LB(this.videoContext,this.log),e.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:e,height:t}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(e,t),e&&t&&this.waterMarkNode.resize(e,t)}null==(t=this.waterMarkNode)||t.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})),e=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))}e.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext._canvas)}))}clearLastFrame(){var e;this.destination&&(null==(e=this.destination.ctx2d)||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var t,i,r,n,o;if(e instanceof HB)return this.log.info("change screen input",null==(t=e.mediaTrack)?void 0:t.label),this.setScreenTrack(e);if(e instanceof eU)return this.log.info("change video input",null==(i=e.mediaTrack)?void 0:i.label),this.setCameraTrack(e);if(e instanceof XB){this.log.info("change remote input",null==(r=e.mediaTrack)?void 0:r.label);let t=e.mediaTrack;return e.setOutputMediaStreamTrack(t)}if(e instanceof UB)return this.log.info("change mix input",null==(n=e.outMediaTrack)?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",null==(o=e.mediaTrack)?void 0:o.label)}removeInput(e){var t;e instanceof HB?(null==(t=this.screenNode)||t.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof eU?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 XB?e.source&&e.source.context.destroy():e instanceof UB&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return Rb(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,t){return Rb(this,null,(function*(){let i=document.createElement("canvas");t&&e&&(i.height=t,i.width=e);let r=i.getContext("2d");if(!r)throw new Fb({code:Vb.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort(((e,t)=>e.zIndex-t.zIndex)),this.watermarkImageList.forEach((e=>{let{image:t,x:i,y:n,width:o,height:s}=e;r.drawImage(t,i,n,o,s)})),Hw(i.toDataURL())}))}pushWaterMarkImageList(e){let{type:t}=e;this.watermarkImageList.some((t=>t.imageUrl===e.imageUrl&&t.height===e.height&&t.width===e.width&&t.x===e.x&&t.y===e.y&&t.type===e.type&&t.zIndex===e.zIndex))||(("mute"===t||"watermark"===t)&&(this.watermarkImageList=this.watermarkImageList.filter((e=>e.type!==t))),this.watermarkImageList.push(e))}setBeautyParams(e){return Rb(this,null,(function*(){this._beautyParams=e,this.update()}))}stopBeauty(){return Rb(this,null,(function*(){this._beautyParams=void 0,this.update()}))}setWatermark(e){return Rb(this,null,(function*(){let t;try{t=yield Hw((null==e?void 0:e.imageElement)||e.imageUrl)}catch(c){throw new Fb({code:Vb.INVALID_PARAMETER,message:"load image failed, url: ".concat(e.imageUrl)})}let{x:i=0,y:r=0,width:n=t.width,height:o=t.height,type:s="watermark",zIndex:a=2}=e;this.watermarkImageList.some((e=>e.type===s))?(this.watermarkImageList=this.watermarkImageList.filter((e=>e.type!==s)),this.pushWaterMarkImageList({x:i,y:r,width:n,height:o,image:t,zIndex:a,type:s,imageUrl:e.imageUrl}),t=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:t.width,height:t.height,image:t},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(t.width,t.height),this.waterMarkNode.image=t):this.update()):(this.pushWaterMarkImageList({x:i,y:r,width:n,height:o,image:t,zIndex:a,type:s,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,((e,t)=>"imageUrl"===e?void 0:t)))}))}deleteWatermark(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"watermark";return Rb(this,null,(function*(){this.watermarkImageList=this.watermarkImageList.filter((t=>t.type!==e)),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,((e,t)=>"imageUrl"===e?void 0:t))),yield this.freshWatermark()}))}freshWatermark(){return Rb(this,null,(function*(){var e;null==(e=this.waterMarkNode)||e.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:t,height:i}=this.cameraResolution,r=yield this.getWatermarkImage(t,i);this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.update()}))}setVirtualBackground(e){return Rb(this,null,(function*(){var t;if(e){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,"image"===e.type?this._virtualBackground=yield Hw(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=null!=(t=e.enableFaceCentering)?t:this._enableFaceCentering}else delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;if(this.log.info("".concat(this._virtualBackground?"start":"stop"," virtual background, ").concat((null==e?void 0:e.type)||"",", ").concat(this.blurRadius||"")),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new Fb({code:Vb.INVALID_OPERATION,message:"webgl context create failed, ".concat(this._glVideoContext.error)})}))}get mixScreen(){return this._isMixScreen}set mixScreen(e){var t;this._isMixScreen=e,this._isMixScreen||(null==(t=this.screenNode)||t.close(),delete this.screenNode),this.update()}set mirror(e){var t;this._isMirror!==e&&(this._isMirror=e,this._isTransform||(null==(t=this.transformNode)||t.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var t;this._rotation!==e&&(this._rotation=e,this._isTransform||(null==(t=this.transformNode)||t.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return Rb(this,null,(function*(){var e;null!=(e=this.cameraTrack)&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))}))}disableAr(){var e;this.isUsingArTrack=!1,null==(e=this.arTrack)||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new kj(e)}clear(){var e;null==(e=this.videoContext)||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor(e){let{processor:t,type:i}=e;var r;this.encodePipeline.includes(t)||(this.encodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:i}=e;var r;this.decodePipeline.includes(t)||(this.decodePipeline[i]=t,null==(r=this.room)||r.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}};Sb([LV((function(e){this.log.error("update failed",e)}))],Dj.prototype,"update",1);var wj=0,Nj=class extends ZL{constructor(e){super("room"),Ib(this,"seq",++wj),Ib(this,"sdkAppId"),Ib(this,"userId"),Ib(this,"userSig"),Ib(this,"privateMapKey"),Ib(this,"latencyLevel"),Ib(this,"tinyId"),Ib(this,"scene"),Ib(this,"roomId"),Ib(this,"useStringRoomId"),Ib(this,"role","anchor"),Ib(this,"joinParams",null),Ib(this,"localTracks",new Set),Ib(this,"enableAutoPlayDialog",!0),Ib(this,"autoReceiveAudio",!0),Ib(this,"autoReceiveVideo",!0),Ib(this,"proxy_ws"),Ib(this,"proxy_wt"),Ib(this,"proxy_unified"),Ib(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}}),Ib(this,"keyPointManager"),Ib(this,"audioManager"),Ib(this,"videoManager"),Ib(this,"callDurationCalculator"),Ib(this,"badCaseDetector"),Ib(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),Ib(this,"videoDecodeFallbackType"),Ib(this,"smallMode","canvas"),Ib(this,"_isUsingCachedSchedule",!1),Ib(this,"_log",_M.createLogger({id:"r".concat(this.seq)})),Ib(this,"_joinedTimestamp",0),Ib(this,"_sdkType"),Ib(this,"heartbeatReport"),Ib(this,"quality"),Ib(this,"enableSEI"),Ib(this,"isDestroyed",!1),this.useStringRoomId=!!e.useStringRoomId,mw(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),mw(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),mw(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new gj({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new Tj({room:this}),this.badCaseDetector=new vj({room:this}),this.audioManager=new JB(this),this.videoManager=new Dj(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(4&e.mediaType)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(2&e.mediaType)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(4&e.mediaType)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(2&e.mediaType)return e;return null}getLogger(){return this._log}get isJoining(){return"joining"===this.state.toString()}get isJoined(){return"joined"===this.state}get isLeft(){return"left"===this.state}addTrack(e){return Rb(this,null,(function*(){return this.publish(e)}))}removeTrack(e){return Rb(this,null,(function*(){return this.unpublish(e)}))}replaceTrack(e){return Rb(this,null,(function*(){}))}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(hw(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(sw(e)){let{websocketProxy:t,webtransportProxy:i,loggerProxy:r,scheduleProxy:n,unifiedProxy:o}=e;this.proxy_ws=t,this.proxy_wt=i,this.proxy_unified=o,o?(zH([o,o]),tk("https://".concat(o))):(r&&tk(r),n&&zH(n))}dM.once(hM.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({sched_domain:qH.main,sched_back_domain:qH.backup,signal_domain:this.proxy_ws||this.proxy_wt||""})))}getRemoteAudioStats(){return Rb(this,null,(function*(){let e={};return this.remotePublishedUserMap.forEach((t=>{e[t.userId]=t.remoteAudioTrack.stat})),e}))}getTransportStats(){return Rb(this,null,(function*(){var e;let t={rtt:(null==(e=this.quality)?void 0:e.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let i of this.quality.downlinkInfo)t.downlinksRTT[i.userId]=i.rtt;return t}))}getRemoteVideoStats(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"main";return function*(){let i={};return e.remotePublishedUserMap.forEach((e=>{let r="auxiliary"===t?e.remoteAuxiliaryTrack:e.remoteVideoTrack;i[e.userId]=r.stat})),i}()}))}checkDestroy(){if(this.isDestroyed)throw new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(IP.INVALID_DESTROY),new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.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,dM.emit(hM.ROOM_DESTROY,{room:this})}schedule(e,t){return Rb(this,null,(function*(){var i,r,n,o;let s=Aw();try{let{isCached:a,result:c,detailCost:l}=yield KH({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:qb,userSig:this.userSig,role:"live"===this.scene?e.role:void 0,frameWorkType:t,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=a,this._log.info("schedule cache:".concat(+a," ").concat(Vw(c,{keysToExclude:["username","credential"]}))),a&&dM.once(hM.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({scheduleCache:1}))),this.scheduleResult=gb(gb({},this.scheduleResult),c),pw(null==(i=c.config)?void 0:i.retryCount)&&Yk(c.config.retryCount),hw(null==(r=c.config)?void 0:r.loggerDomain)&&tk(c.config.loggerDomain),this.videoDecodeFallbackType=(null==(n=c.config)?void 0:n.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=(null==(o=c.config)?void 0:o.smallMode)||this.smallMode,dM.emit(hM.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:l}),UP.addSuccessEvent({key:521700,cost:Aw()-s})}catch(yM){throw UP.addFailedEvent({key:521700,error:yM}),yM}}))}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}},Oj=yb(Cb()),Mj=yb(Pb());function Pj(e){var t;let i=[];for(let r=0;r<e.rtp.length;r++){if(["rtx","red","ulpfec"].includes(e.rtp[r].codec))continue;let n=e.fmtp.filter((t=>t.payload===e.rtp[r].payload))[0];i.push({payload:e.rtp[r].payload,codec:e.rtp[r].codec,fmtp:n?n.config:"",rate:e.rtp[r].rate,rtx:"rtx"===(null==(t=e.rtp[r+1])?void 0:t.codec)?e.rtp[r+1].payload:0,rtcpfb:((null==e?void 0:e.rtcpFb)||[]).filter((t=>t.payload===e.rtp[r].payload)).map((e=>{let{type:t,subtype:i}=e;return{id:t,params:i?[i]:[]}}))})}return i}var Lj=(e,t,i)=>Rb(void 0,null,(function*(){var r;let n=ej(e),o={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:!1};o.ice.ufrag=String(n.media[0].iceUfrag),o.ice.password=n.media[0].icePwd||"",n.fingerprint&&(o.dtls.hash=n.fingerprint.type,o.dtls.fingerprint=n.fingerprint.hash,o.dtls.setup=n.setup||""),n.media[0].fingerprint&&(o.dtls.hash=n.media[0].fingerprint.type,o.dtls.fingerprint=n.media[0].fingerprint.hash),o.dtls.setup=n.media[0].setup||"";let s=n.media[0],a=n.media[1];s.ext&&(o.audio.extensions=s.ext.map((e=>({id:e.value,uri:e.uri})))),a.ext&&(o.video.extensions=a.ext.map((e=>({id:e.value,uri:e.uri}))));let c={codec:s.rtp[0].codec,fmtp:s.fmtp[0].config,payload:s.fmtp[0].payload,rate:s.rtp[0].rate,channels:s.rtp[0].encoding,rtcpfb:[],rtx:0};null==(r=s.rtcpFb)||r.forEach((e=>{let{payload:t,type:i,subtype:r}=e;if(t===c.payload){let e={id:i,params:[]};r&&e.params.push(r),c.rtcpfb.push(e)}})),o.audio.codecs.push(c);let l=["h264","vp8","h265"];return t&&l.shift(),i&&l.pop(),o.video.codecs=[...Pj(a)].filter((e=>l.includes(e.codec.toLocaleLowerCase()))),o.video.decoders=(yield function(){return Rb(this,null,(function*(){let e=new RTCPeerConnection;e.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY});let t=yield e.createOffer();if(!t.sdp)return[];let i=Pj(ej(t.sdp).media[0]);return e.close(),i}))}()).filter((e=>["h264","vp8","h265"].includes(e.codec.toLocaleLowerCase()))),o})),xj=e=>{let{serverAbility:t,clientAbility:i,offerSDP:r,enableCustomMessage:n}=e,o=ej(r),s={extmapAllowMixed:"extmap-allow-mixed",groups:o.groups,icelite:"ice-lite",media:[],msidSemantic:{semantic:"",token:"WMS"},name:"-",origin:{address:"127.0.0.1",username:"-",sessionId:String(Date.now()),sessionVersion:1,netType:"IN",ipVer:4},timing:{start:0,stop:0},version:0},a={candidates:t.candidates.map((e=>({component:1,foundation:"1",generation:0,ip:e.ip,port:e.port,priority:e.priority,transport:e.foundation,type:e.type}))),connection:{version:4,ip:"0.0.0.0"},direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY,ext:t.audio.extensions.map((e=>({value:e.id,uri:e.uri}))),fingerprint:{type:t.dtls.hash,hash:t.dtls.fingerprint},fmtp:[{payload:t.audio.codecs[0].payload,config:t.audio.codecs[0].fmtp}],icePwd:t.ice.password,iceUfrag:t.ice.ufrag,mid:"0",payloads:String(t.audio.codecs[0].payload),port:o.media[0].port,protocol:o.media[0].protocol,type:Ik.AUDIO,setup:t.dtls.setup,rtcpFb:t.audio.codecs[0].rtcpfb.map((e=>({payload:t.audio.codecs[0].payload,type:e.id,subtype:e.params[0]}))),rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[{payload:t.audio.codecs[0].payload,codec:t.audio.codecs[0].codec,rate:t.audio.codecs[0].rate,encoding:t.audio.codecs[0].channels}]};return s.media.push(a),[1,2,3].forEach((e=>{s.media.push(Vj({mid:e,serverAbility:t,clientAbility:i,parsedOffer:o}))})),n&&s.media.push(o.media.find((e=>"dc"===e.mid))),tj(s)},Vj=e=>{let{mid:t,serverAbility:i,clientAbility:r,parsedOffer:n,isDownlink:o=!1}=e,s={candidates:i.candidates.map((e=>({component:1,foundation:"1",generation:0,ip:e.ip,port:e.port,priority:e.priority,transport:e.foundation,type:e.type}))),connection:{version:4,ip:"0.0.0.0"},direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY,ext:i.video.extensions.map((e=>({value:e.id,uri:e.uri}))),fingerprint:{type:i.dtls.hash,hash:i.dtls.fingerprint},fmtp:[],icePwd:i.ice.password,iceUfrag:i.ice.ufrag,mid:String(t),payloads:"",port:n.media[0].port,protocol:n.media[0].protocol,type:Ik.VIDEO,setup:i.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(o){let e=i.video.decoders;(!e||0===e.length)&&(e=i.video.codecs),(!e||0===e.length)&&(e=r.video.decoders),e.forEach((e=>{Uj(s,e)}))}else{let e;e=i.useH265?i.video.codecs.findIndex((e=>"h265"===e.codec.toLowerCase())):i.video.codecs.findIndex((e=>e.codec.toLowerCase()===(i.useVp8?"vp8":"h264")));let t=i.video.codecs[e]||r.video.codecs[0];Uj(s,t)}return s},Uj=(e,t)=>{e.payloads="".concat(e.payloads," ").concat(t.payload).trim(),e.fmtp.push({payload:t.payload,config:t.fmtp}),e.rtcpFb=[...e.rtcpFb||[],...t.rtcpfb.map((e=>({payload:t.payload,type:e.id,subtype:e.params[0]})))],e.rtp.push({payload:t.payload,codec:t.codec.toUpperCase(),rate:t.rate}),t.rtx&&(e.payloads="".concat(e.payloads," ").concat(t.rtx),e.fmtp.push({payload:t.rtx,config:"apt=".concat(t.payload)}),e.rtp.push({payload:t.rtx,codec:"rtx",rate:t.rate}))};var Fj=(e,t,i)=>{let r=Mj.default.parse(e);return r.media.forEach(((e,n)=>{var o;if((e.type===Ik.AUDIO||e.type===Ik.VIDEO)&&(function(e){if(!e.rtcpFb)return;let t=[];e.rtcpFb.forEach(((i,r)=>{var n;t.push(i),e.rtcpFb&&(null==(n=e.rtcpFb[r+1])?void 0:n.payload)!==i.payload&&"rrtr"!==i.type&&t.push({payload:i.payload,type:"rrtr"})})),e.rtcpFb=t}(e),function(e){e.type===Ik.VIDEO&&e.fmtp&&e.fmtp.forEach((e=>{e.config.includes("apt")||(e.config+=";sps-pps-idr-in-keyframe=1")}))}(e),function(e){e.type===Ik.AUDIO&&e.fmtp&&e.fmtp.forEach((e=>{e.config+=";sprop-stereo=1;stereo=1"}))}(e),function(e){let t=new Set(["urn:ietf:params:rtp-hdrext:sdes:mid","urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id","urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"]);e.ext&&(e.ext=e.ext.filter((e=>!t.has(e.uri))))}(e),e.type===Ik.VIDEO))if(n<4)e.payloads="",e.fmtp=[],e.rtp=[],e.rtcpFb=[],t.video.codecs.forEach((t=>Uj(e,t)));else if(i){e.payloads="",e.fmtp=[],e.rtp=[],e.rtcpFb=[];let r=i.video.decoders;(!r||0===r.length)&&(r=i.video.codecs),(!r||0===r.length)&&(r=t.video.decoders),r.forEach((t=>Uj(e,t)))}null!=(o=e.payloads)&&o.includes("datachannel")&&r.groups&&e.mid&&(r.groups[0].mids=r.groups[0].mids.replace(e.mid,"dc"),e.mid="dc")})),Mj.default.write(r)},Bj=yb(Cb()),Hj=class extends Bj.EventEmitter{constructor(e){super(),this.room=e,Ib(this,"mainFpsHealth",1),Ib(this,"mainBitrateHealth",1),Ib(this,"badMainBitrateHealthCount",0),Ib(this,"lastEmitBadHealthTime",0),Ib(this,"log"),!CN&&kO&&dM.on("262",this.onVideoCodecChanged,this),this.log=e.getLogger().createChild({id:"h-d"})}onVideoCodecChanged(e){let{remoteUserId:t,streamType:i,isHWCodec:r,codec:n}=e;if(!t&&7!==i&&"h264"===n){if(!r)return void this.room.off("heartbeat-report",this.onHeartbeatReport,this);this.room.listeners("heartbeat-report").includes(this.onHeartbeatReport)||this.room.on("heartbeat-report",this.onHeartbeatReport,this)}}onHeartbeatReport(e){Date.now()-this.lastEmitBadHealthTime<3e4||(e.msg_up_stream_info.msg_video_status.forEach((e=>{if(e.uint32_video_enc_fps&&e.uint32_video_capture_fps){let t=e.uint32_video_enc_fps/e.uint32_video_capture_fps;2===e.uint32_video_stream_type&&(this.mainFpsHealth=t)}if(e.uint32_video_codec_bitrate&&2===e.uint32_video_stream_type){let{localMainVideoTrack:t}=this.room;t&&(this.mainBitrateHealth=e.uint32_video_codec_bitrate/1e3/t.profile.bitrate)}})),this.log.debug("mainBitrateHealth: ".concat(this.mainBitrateHealth," mainFpsHealth: ").concat(this.mainFpsHealth)),this.mainBitrateHealth>.5&&(this.badMainBitrateHealthCount=0),this.mainFpsHealth>.9&&this.mainBitrateHealth<.5&&(this.badMainBitrateHealthCount++,this.badMainBitrateHealthCount>3&&(this.badMainBitrateHealthCount=0,this.lastEmitBadHealthTime=Date.now(),this.log.warn("bad main bitrate health: ".concat(this.mainBitrateHealth)),this.emit("1",{isAux:!1}))))}destroy(){dM.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};Ib(Hj,"EVENT_BAD_HEALTH","bad_health");var Wj=Hj;function Gj(e){let{seiMessageList:t,isAudio:i,isMain:r}=e;return new TransformStream({transform(e,n){let o=e;i?audioEncodePipeline.forEach((e=>{o=e({frame:o})})):videoEncodePipeline.forEach((e=>{o=e({frame:o,seiMessageList:t,onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:o.data,userId:"",streamType:r?"main":"auxiliary"})}})})),n.enqueue(o)}})}function jj(e,t,i){return new TransformStream({transform(r,n){let o=r;videoDecodePipeline.forEach((r=>{o=r({frame:o,onSEI:i=>{i.forEach((i=>{self.postMessage({type:"sei",seiPayloadType:i.seiPayloadType,data:i.seiPayload.buffer,userId:e,streamType:t})}))},onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:o.data,userId:e,streamType:t})}})})),n.enqueue(o)}})}var Jj=(e=>(e.TRACK="track",e.DATA_CHANNEL_MESSAGE="data_channel_msg",e[e.CONNECTION_STATE_CHANGED="connection-state-changed"]="CONNECTION_STATE_CHANGED",e[e.FIREWALL_RESTRICTION="firewall-restriction"]="FIREWALL_RESTRICTION",e.RECONNECTED="spc-reconnected",e.RECONNECT_FAILED="spc-reconnect-failed",e.ERROR="error",e.SEI_MESSAGE="sei-message",e.DUMP="dump",e))(Jj||{}),Kj=0,qj=!1,zj=new Set,Yj=1,Xj=class extends Oj.default{constructor(e){let{signalChannel:t,room:i,enableCustomMessage:r}=e;super(),Ib(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),Ib(this,"currentState","DISCONNECTED"),Ib(this,"_room"),Ib(this,"_signalChannel"),Ib(this,"_peerConnection",null),Ib(this,"_datachannel",null),Ib(this,"_enableCustomMessage"),Ib(this,"_log"),Ib(this,"_downlinkMIDMap",new Map),Ib(this,"_downlinkMIDUserIDMap",new Map),Ib(this,"_reconnectionTimer",-1),Ib(this,"reconnectionCount",0),Ib(this,"clientAbility"),Ib(this,"_serverAbility",null),Ib(this,"addDownlinkQueue",new Set),Ib(this,"removeDownlinkQueue",new Set),Ib(this,"_parsedAnswer",null),Ib(this,"_updateSDPPromise",null),Ib(this,"_waitForPCConnectedPromise"),Ib(this,"clearWaitForConnectedPromise"),Ib(this,"clearConnectTimeout"),Ib(this,"_isSDPLogged",!1),Ib(this,"enableInsertableStreams",!1),Ib(this,"insertableStreamsAbortMap",new Map),Ib(this,"receiverRemoteTrackMap",new WeakMap),Ib(this,"scriptTransformWorker"),Ib(this,"_isRelayTried",!1),Ib(this,"_rttOverCount",0),Ib(this,"originOffer",null),Ib(this,"autoSubscribedSsrcGroups",new Map),Ib(this,"autoSubscribedUserMap",new Map),Ib(this,"_h265DecodeFailed",!1),this._room=i,this._enableCustomMessage=r,this._signalChannel=t,this._log=_M.createLogger({id:"spc".concat(Yj++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(AL?this.enableInsertableStreams=!0:this.initScriptTransformWorker()),this._room.healthDetector.on("1",this.onBadHealth,this)}get isH264EncodeSupported(){let e=this._room.checkSystemResult.detail.isH264EncodeSupported;return this._serverAbility&&(e=e&&!!this._serverAbility.video.codecs.find((e=>"h264"===e.codec.toLowerCase()))),e}addAbortController(e,t){var i;null==(i=this.insertableStreamsAbortMap.get(e))||i.abort("destory"),this.insertableStreamsAbortMap.set(e,t)}get isVP8EncodeSupported(){let e=this._room.checkSystemResult.detail.isVp8EncodeSupported;return this._serverAbility&&(e=e&&this._serverAbility.video.codecs.find((e=>"vp8"===e.codec.toLowerCase()))),e}get isH265EncodeSupported(){let e=this._room.checkSystemResult.detail.isH265EncodeSupported;return this._serverAbility&&(e=e&&!!this._serverAbility.video.codecs.find((e=>"h265"===e.codec.toLowerCase()))),e}get videoCodec(){var e,t,i;let r=null==(e=this._parsedAnswer)?void 0:e.media[1].rtp.find((e=>["h264","vp8","h265"].includes(e.codec.toLowerCase())));return r?r.codec.toLowerCase():null!=(t=this._serverAbility)&&t.useH265?"h265":null!=(i=this._serverAbility)&&i.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var e,t,i;return null!=(e=this._serverAbility)&&e.useH265&&null!=(t=this._serverAbility)&&t.video.decoders.find((e=>"h265"===e.codec.toLowerCase()))&&!this._h265DecodeFailed?"h265":null!=(i=this._serverAbility)&&i.video.decoders.find((e=>"h264"===e.codec.toLowerCase()))?"h264":"vp8"}get isUsingH264(){return"h264"===this.videoCodec}get isUsingH265(){return"h265"===this.videoCodec}get isUsingVP8(){return"vp8"===this.videoCodec}get is42001fSupported(){return!!this.clientAbility&&!!this.clientAbility.video.codecs.find((e=>e.fmtp.includes("42001f")))}get uplinkSSRC(){return this._peerConnection&&this._peerConnection.localDescription?(e=>{let t=ej(e),i={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return t.media.forEach(((e,t)=>{var r;if(e.ssrcs&&!uw(e.ssrcs[0].id)){let n=Number(e.ssrcs[0].id),o=Number(null==(r=e.ssrcs.filter((e=>"cname"===e.attribute))[1])?void 0:r.id);switch(t){case 0:i.audioSsrc=n;break;case 1:i.bigVideoSsrc=n,i.bigVideoRtxSsrc=o;break;case 2:i.smallVideoSsrc=n,i.smallVideoRtxSsrc=o;break;case 3:i.auxVideoSsrc=n,i.auxVideoRtxSsrc=o}}})),i})(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth(e){let{isAux:t}=e;this.useHWEncoder(!1,t?7:2)}initScriptTransformWorker(){RL&&(this.scriptTransformWorker=function(e){let t=[QV],i=[wW,kW,DW,bW,Gj,jj],r="const videoEncodePipeline=[".concat(e.videoEncodePipeline.toString(),"];\n const videoDecodePipeline=[").concat(e.videoDecodePipeline.toString(),"];\n const audioEncodePipeline = [").concat(e.audioEncodePipeline.toString(),"];\n const audioDecodePipeline = [").concat(e.audioDecodePipeline.toString(),"];"),n="(()=>{".concat(t.map((e=>"const ".concat(e.name,"=(()=>").concat(e.toString(),")()"))).join("\n"),"\n").concat(i.map((e=>e.toString())).join("\n"),";(").concat((()=>{let e=[],t=[],i=[];self.onmessage=r=>{"sei"===r.data.type&&(r.data.isMain?(e.push(r.data.data),r.data.small&&i.push(r.data.data)):t.push(r.data.data))},self.onrtctransform=r=>{let{options:n}=r.transformer,o=n.isReceiver?jj(n.userId,n.streamType,n.isAudio):Gj({isAudio:n.isAudio,seiMessageList:n.isMain?n.small?i:e:t,isMain:n.isMain});r.transformer.readable.pipeThrough(o).pipeTo(r.transformer.writable)}}),")();").concat(r,"})()"),o=new Blob([n],{type:"text/javascript"}),s=URL.createObjectURL(o),a=new Worker(s);return URL.revokeObjectURL(s),a}({videoEncodePipeline:this._room.videoManager.encodePipeline,videoDecodePipeline:this._room.videoManager.decodePipeline,audioEncodePipeline:this._room.audioManager.encodePipeline,audioDecodePipeline:this._room.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=e=>{"sei"===e.data.type&&this.emit("sei-message",e.data),"dump"===e.data.type&&this.emit("dump",e.data)},this.scriptTransformWorker.onerror=e=>{this._log.error("scriptTransformWorker error: ",e)})}get isReconnecting(){return"RECONNECTING"===this.currentState||this._reconnectionTimer>0||this.reconnectionCount>0}get dtlsTransport(){if(!this._peerConnection)return null;let e=this._peerConnection.getSenders();return 0===e.length?null:e[0].transport}getPeerConnectionConfig(e){var t;let i={encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:e,iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},r=null==(t=this._peerConnection)?void 0:t.getConfiguration().encodedInsertableStreams;return lN(r)&&(i.encodedInsertableStreams=r),this._log.debug("getPeerConnectionConfig",JSON.stringify(i)),i}initialize(e){return Rb(this,null,(function*(){var t,i;let r;try{return this._peerConnection=new RTCPeerConnection(this.getPeerConnectionConfig(e)),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let e=this._peerConnection.iceConnectionState;this._log.debug("ice state: ".concat(e)),"checking"===e&&0===this.stat.iceStartTime?this.stat.iceStartTime=Date.now():"connected"===e&&0===this.stat.iceEndTime?(this.stat.iceEndTime=Date.now(),this._signalChannel.clearBakRelayIps(),UP.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):"failed"===e&&UP.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var e;let t=(null==(e=this._peerConnection)?void 0:e.signalingState)||"";this._log["closed"===t?"debug":"info"]("signaling state: ".concat(t))},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=e=>this.emit("track",e),this._enableCustomMessage&&(this._datachannel=this._peerConnection.createDataChannel("".concat(this._room.userId,"dc")),this._datachannel.binaryType="arraybuffer",this._datachannel.onopen=()=>{this._log.info("datachannel open")},this._datachannel.onclose=()=>{this._log.warn("datachannel close")},this._datachannel.onmessage=e=>{let t=new Zj(e.data);this.emit("data_channel_msg",{data:t})},this._datachannel.onerror=e=>{this._log.warn("datachannel error",e)}),this._peerConnection.addTransceiver(Ik.AUDIO,{direction:Ik.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_SENDONLY}),r=yield this._peerConnection.createOffer(),this.clientAbility=yield Lj(r.sdp,(null==(t=this._room.scheduleResult.config)?void 0:t.remove264FromSDP)||!1,(null==(i=this._room.scheduleResult.config)?void 0:i.remove265FromSDP)||!1),this.originOffer=r,this.dtlsTransport&&(this.dtlsTransport.onstatechange=()=>{let{dtlsTransport:e}=this;e&&(this._log.debug("dtls state: ".concat(e.state)),"connecting"===e.state&&0===this.stat.dtlsStartTime?this.stat.dtlsStartTime=Date.now():"connected"===e.state&&0===this.stat.dtlsEndTime&&(this.stat.dtlsEndTime=Date.now()))}),UP.addSuccessEvent({key:521707}),this.clientAbility}catch(Xb){throw UP.addFailedEvent({key:521707,error:Xb}),this._log.error("initialize failed ".concat(Xb," \noffer: ").concat(null==r?void 0:r.sdp)),Xb}}))}setIceServers(e){return Rb(this,null,(function*(){var t;if(this._peerConnection&&0!==e.length)try{if(this._log.info("setIceServers",JSON.stringify(e,((e,t)=>"username"===e||"credential"===e?"hided":t))),this._peerConnection.setConfiguration(this.getPeerConnectionConfig(e)),null!=(t=this._peerConnection)&&t.localDescription||!this.originOffer)return void this._log.warn("setIceServers already has localDescription or no origin Offer");yield this.setOffer(this.originOffer)}catch(AM){this._log.warn("setIceServers error ",AM)}}))}setPriority(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"high";if(this._peerConnection)try{this._peerConnection.getSenders().forEach((t=>{let i=t.getParameters();i.encodings[0]&&(i.encodings[0].priority=e,i.encodings[0].networkPriority=e,t.setParameters(i).catch((e=>{this._log.warn("setPriority error ",e)})))}))}catch(Qk){this._log.warn("setPriority error ",Qk)}}connect(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Rb(this,null,(function*(){var i,r,n;try{if("CONNECTED"===this.currentState)return;(null==(i=this._peerConnection)||!i.localDescription)&&this.originOffer&&(yield this.setOffer(this.originOffer));let o=Aw(),s={type:"answer",sdp:xj({serverAbility:e,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=e,yield this.setAnswer(s),yield this.waitForPeerConnectionConnected();let a=(null==(r=this._room.scheduleResult.config)?void 0:r.priority)||(null==(n=this._room.joinParams)?void 0:n.priority)||new URLSearchParams(location.search).get("priority");a&&this.setPriority(a),t||UP.addSuccessEvent({key:521703,cost:Aw()-o})}catch(CM){let i=CM instanceof Fb&&CM.code===Vb.API_CALL_ABORTED;throw i||this._log.error("connect failed: ".concat(CM),e),this.reset(),!i&&!this.isReconnecting&&(UP.addFailedEvent({key:521703,error:CM}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),CM}}))}reconnect(){return Rb(this,null,(function*(){if(-1===this._reconnectionTimer){if(!this._signalChannel.isConnected)return this._log.warn("reconnect() wait signal channel is connected"),void this._signalChannel.once(sG,this.reconnect,this);try{this.reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this.reconnectionCount,"]")),this.reset();let e=this._signalChannel.getBackupRelayIpPair(),t=yield this.initialize(this._room.getIceServers(null!=e&&e.iceServer?[e.iceServer]:[])),i=gb({ability:t},e),r=yield this._signalChannel.sendWaitForResponse({command:VG,responseCommand:pG.REBUILD_PEER_CONNECTION_RES,data:i,enableLog:!1});if(0!==r.data.code)throw new Fb({code:r.data.code,message:r.data.message});yield this.connect(r.data.data.ability,!0),UP.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),dM.emit(hM.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(Yb){if(!this.isReconnecting)return;if(null!=Yb&&Yb.message.includes("timeout")){let e=cw(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield jw(e,(e=>{this._reconnectionTimer=e})),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(null==Yb?void 0:Yb.code," ").concat(Yb)),UP.addFailedEvent({key:521704,error:Yb}),this.reconnectionCount>=Xk()&&this._log.warn("SDK has tried reconnect for ".concat(Xk()," times, but all failed, please check your network")),this.stopReconnection(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.emit("error")}}else this._log.warn("reconnect() is reconnecting, ignore current reconnection")}))}getPeerConnection(){return this._peerConnection}startReconnection(){return Rb(this,null,(function*(){this.isReconnecting||(this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect())}))}stopReconnection(){var e;this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),null==(e=this.clearConnectTimeout)||e.call(this),this._signalChannel.off(sG,this.reconnect,this),"RECONNECTING"===this.currentState&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var e;!this.isReconnecting&&(null==(e=this._peerConnection)?void 0:e.connectionState)===qk.CLOSED&&this.startReconnection()}clearReconnectionTimer(){-1!==this._reconnectionTimer&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(e){var t;let i=(null==(t=this._peerConnection)?void 0:t.iceConnectionState)||"closed",r=this.getDTLSTransportState();this._log.info("connectionState: ".concat(e.target.connectionState," ICE: ").concat(i," DTLS: ").concat(r)),e.target.connectionState===qk.CONNECTING&&(0===this.stat.peerConnectionStartTime&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(e.target.connectionState===qk.FAILED||e.target.connectionState===qk.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(e.target.connectionState===qk.CONNECTED||e.target.connectionState===qk.COMPLETED)&&(0===this.stat.peerConnectionEndTime&&(this.stat.peerConnectionEndTime=Date.now()),dM.emit(hM.SINGLE_CONNECTION_STAT,{room:this._room,stat:{ice:this.stat.iceEndTime-this.stat.iceStartTime,dtls:this.stat.dtlsEndTime-this.stat.dtlsStartTime,peerConnection:this.stat.peerConnectionEndTime-this.stat.peerConnectionStartTime}}),this.logSelectedCandidate(),this.emitConnectionStateChangedEvent("CONNECTED"))}getDTLSTransportState(){if(!this._peerConnection)return Kk;let e=null;return pL()&&0!==this._peerConnection.getSenders().length?(e=this._peerConnection.getSenders()[0].transport,hL()&&0!==this._peerConnection.getReceivers().length&&e?e.state:Kk):Kk}emitConnectionStateChangedEvent(e){e!==this.currentState&&("RECONNECTING"===this.currentState&&"CONNECTING"===e||(this.emit(Jj.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:e}),this.currentState=e))}logSelectedCandidate(){return Rb(this,null,(function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[t,i]of e)if(rL(i)){let t=e.get(i.localCandidateId),r=e.get(i.remoteCandidateId);t&&(this._log.info("local candidate: ".concat(t.candidateType," ").concat(t.protocol,":").concat(t.ip||t.address,":").concat(t.port," ").concat(t.networkType||""," ").concat("relay"===t.candidateType?"relayProtocol:".concat(t.relayProtocol):"")),t.networkType&&QD(t.networkType)),r&&this._log.info("remote candidate: ".concat(r.candidateType," ").concat(r.protocol,":").concat(r.ip||r.address,":").concat(r.port));break}}))}waitForPeerConnectionConnected(){return this._waitForPCConnectedPromise||(this._waitForPCConnectedPromise=new Promise(((e,t)=>{if("CONNECTED"===this.currentState)return e();let i=t=>{"CONNECTED"===t.state&&(clearTimeout(o),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(o),n(),t(new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{dM.off(hM.LEAVE_SUCCESS,r,this),this.off(Jj.CONNECTION_STATE_CHANGED,i,this)},o=setTimeout((()=>{n();let e=new Fb({code:Vb.API_CALL_TIMEOUT,message:"connection timeout"});var i;Kj+=1,i=this._signalChannel.isConnected,Kj>2&&!qj&&0===zj.size&&i&&(this._log.warn("firewall restriction"),qj=!0,this.emit(Jj.FIREWALL_RESTRICTION)),t(e)}),uD);this.clearConnectTimeout=()=>{n(),clearTimeout(o),delete this.clearConnectTimeout},this.clearWaitForConnectedPromise=()=>{this._waitForPCConnectedPromise=null,t(new Fb({code:Vb.API_CALL_TIMEOUT,message:"connection timeout"}))},dM.on(hM.LEAVE_SUCCESS,r,this),this.on(Jj.CONNECTION_STATE_CHANGED,i,this)})),this._waitForPCConnectedPromise=this._waitForPCConnectedPromise.finally((()=>{this._waitForPCConnectedPromise=null,delete this.clearConnectTimeout}))),this._waitForPCConnectedPromise}waitForReconnected(){return this.isReconnecting?new Promise(((e,t)=>{this.once("spc-reconnected",e),this.once("error",t)})):Promise.resolve()}addDownlink(e){return Rb(this,null,(function*(){if(this._log.info("addDownlink(".concat(e.userId,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise),this.updateLocalAndRemoteSDPConfig(e),0===this.addDownlinkQueue.size)try{yield this.updateSDP(),this._log.info("addDownlink(".concat(e.userId,") done"))}catch(Qk){this._log.error("addDownlink(".concat(e.userId,") failed ").concat(Qk)),yield this.startReconnection()}}))}updateLocalAndRemoteSDPConfig(e){let{ssrc:t,userId:i,tinyId:r}=e;if(!this._peerConnection)return;this._log.info("updateLocalAndRemoteSDPConfig ".concat(i," ").concat(JSON.stringify(t)));let n=this._peerConnection.getTransceivers().slice(4).filter((e=>"inactive"===e.direction)).slice(0,3).map((e=>(e.direction=Ik.TRANSCEIVER_DIRECTION_RECVONLY,Number(e.mid))));this._parsedAnswer||(this._parsedAnswer=ej(this._peerConnection.remoteDescription.sdp));let o,s,a,c=this._parsedAnswer.media.filter((e=>{var t;return null==(t=e.ssrcs)?void 0:t.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(r)}))}));if(3===c.length)o=c[0],s=c[1],a=c[2];else if(3===n.length)o=this._parsedAnswer.media.find((e=>Number(e.mid)===Number(n[0]))),s=this._parsedAnswer.media.find((e=>Number(e.mid)===Number(n[1]))),a=this._parsedAnswer.media.find((e=>Number(e.mid)===Number(n[2])));else if(0===n.length){this._peerConnection.addTransceiver(Ik.AUDIO,{direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(Ik.VIDEO,{direction:Ik.TRANSCEIVER_DIRECTION_RECVONLY}),o=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let e=Vj({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:ej(this._peerConnection.localDescription.sdp),isDownlink:!0});s=JSON.parse(JSON.stringify(e)),a=JSON.parse(JSON.stringify(e)),o.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(o),s.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(s),a.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(a)}o.direction=Ik.TRANSCEIVER_DIRECTION_SENDONLY;let l="".concat(r,"-").concat(t.audio);o.ssrcs=[{id:t.audio,attribute:"cname",value:"".concat(l)},{id:t.audio,attribute:"msid",value:"".concat(l,"-").concat(Ik.MAIN," ").concat(l,"-audio")}],s.direction=Ik.TRANSCEIVER_DIRECTION_SENDONLY,s.ssrcs=[{id:t.video,attribute:"cname",value:"".concat(l)},{id:t.video,attribute:"msid",value:"".concat(l,"-").concat(Ik.MAIN," ").concat(l,"-bigvideo")},{id:t.videoRtx,attribute:"cname",value:"".concat(l)},{id:t.videoRtx,attribute:"msid",value:"".concat(l,"-").concat(Ik.MAIN," ").concat(l,"-bigvideo")}],s.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(t.video," ").concat(t.videoRtx)}],a.direction=Ik.TRANSCEIVER_DIRECTION_SENDONLY;let d="".concat(l,"-aux");a.ssrcs=[{id:t.auxiliary,attribute:"cname",value:d},{id:t.auxiliary,attribute:"msid",value:"".concat(d," ").concat(l,"-aux").concat(Ik.VIDEO)},{id:t.auxiliaryRtx,attribute:"cname",value:"".concat(d," ").concat(l,"-aux").concat(Ik.VIDEO)},{id:t.auxiliaryRtx,attribute:"msid",value:"".concat(d," ").concat(l,"-aux").concat(Ik.VIDEO)}],a.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(t.auxiliary," ").concat(t.auxiliaryRtx)}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map((e=>e.mid)).join(" ")),this._downlinkMIDMap.set(i,[o.mid,s.mid,a.mid]),this._downlinkMIDUserIDMap.set(o.mid,i),this._downlinkMIDUserIDMap.set(s.mid,i),this._downlinkMIDUserIDMap.set(a.mid,i)}removeDownlink(e){return Rb(this,null,(function*(){if(!this._downlinkMIDMap.has(e)||!this._peerConnection)return;this._log.info("removeDownlink(".concat(e,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise);let t=this._downlinkMIDMap.get(e),i=!1;this._peerConnection.getTransceivers().forEach((e=>{null!=t&&t.includes(Number(e.mid))&&(i=!0,e.direction="inactive")})),this._parsedAnswer||(this._parsedAnswer=ej(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach((e=>{null!=t&&t.includes(Number(e.mid))&&(i=!0,e.direction="inactive",e.ssrcs=[],e.ssrcGroups=[])})),0===this.removeDownlinkQueue.size&&i&&(yield this.updateSDP()),this._downlinkMIDMap.delete(e),null==t||t.forEach((e=>this._downlinkMIDUserIDMap.delete(e))),this._log.info("removeDownlink(".concat(e,") done"))}))}setBandwidth(e){return Rb(this,null,(function*(){if(!this._peerConnection)return;let{audio:t,bigVideo:i,smallVideo:r,auxVideo:n}=e;try{if(vL()){let e=this._peerConnection.getSenders().slice(0,4);for(let s=0;s<e.length;s++){let o,a=e[s];0===s&&t?o=t:1===s&&i?o=i:2===s&&r?o=r:3===s&&n&&(o=n),o&&(yield this.setSenderMaxBitrate(a,o))}let o=!1;i&&e[1].track&&(o=this.setStartBitrate(1,i)),n&&e[3].track&&(o=this.setStartBitrate(3,n)||o),o&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(e);this._log.info("setBandwidth ".concat(JSON.stringify(e)))}catch(CM){this._log.error("failed to set bandwidth: ".concat(CM))}}))}setStartBitrate(e,t){var i,r;return!(null==(i=this._peerConnection)||!i.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=ej(this._peerConnection.remoteDescription.sdp)),null==(r=this._parsedAnswer.media[e])||!r.fmtp[0]))&&(this._parsedAnswer.media[e].fmtp[0].config+=";x-google-start-bitrate=".concat(t>5e3?5e3:t),!0)}setSenderMaxBitrate(e,t){let i=e.getParameters();return(!i.encodings||0===i.encodings.length)&&(i.encodings=[{}]),"unlimited"===t?delete i.encodings[0].maxBitrate:i.encodings[0].maxBitrate=1e3*t,e.setParameters(i)}setBandwidthBySDP(e){let{audio:t,bigVideo:i,smallVideo:r,auxVideo:n}=e;if(!this._peerConnection||!this._peerConnection.localDescription)return;let o=ej(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=ej(this._peerConnection.remoteDescription.sdp));let s=wN?"TIAS":"AS";t&&(o.media[0].bandwidth=[{type:s,limit:wN?1e3*t:t}],this._parsedAnswer.media[0].bandwidth=[{type:s,limit:wN?1e3*t:t}]),i&&(o.media[1].bandwidth=[{type:s,limit:wN?1e3*i:i}],this._parsedAnswer.media[1].bandwidth=[{type:s,limit:wN?1e3*i:i}]),r&&(o.media[2].bandwidth=[{type:s,limit:wN?1e3*r:r}],this._parsedAnswer.media[2].bandwidth=[{type:s,limit:wN?1e3*r:r}]),n&&(o.media[3].bandwidth=[{type:s,limit:wN?1e3*n:n}],this._parsedAnswer.media[3].bandwidth=[{type:s,limit:wN?1e3*n:n}]);let a={type:"offer",sdp:tj(o)};return this.updateSDP({localDescription:a})}setScaleResolutionDownBy(e,t,i){let r=e.getParameters();(!r.encodings||0===r.encodings.length)&&(r.encodings=[{}]);let n=r.encodings[0].scaleResolutionDownBy;if(uw(n)?1===t:t===n)return;let o="setScaleResolutionDownBy ".concat(i," ").concat(t);return n&&(o+=" prevScale: ".concat(n)),this._log.warn(o),r.encodings[0].scaleResolutionDownBy=t,e.setParameters(r)}setDegradationPreference(e,t,i){if(kO&&NO<83||RN&&UO(VO,"12.1")||wN&&ON<138)return;let r=e.getParameters(),n="balanced";if("motion"===t?n="maintain-framerate":"detail"===t&&(n="maintain-resolution"),r.degradationPreference===n)return;let o="setDegradationPreference ".concat(i," ").concat(n);return this._log.info(o),r.degradationPreference=n,e.setParameters(r).catch((e=>this._log.warn("".concat(o," failed: ").concat(e))))}updateSDP(){let{localDescription:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let t=tj(this._parsedAnswer);return this._updateSDPPromise=new Promise(((i,r)=>Rb(this,null,(function*(){var n,o;try{!e&&this._peerConnection&&(this._log.info("creating offer"),e=yield this._peerConnection.createOffer()),e&&(yield this.setOffer(e)),yield this.setAnswer({type:"answer",sdp:t}),this._updateSDPPromise=null,i()}catch(s){this._log.error(s),!this._isSDPLogged&&this._peerConnection&&(this._log.warn("current offer: ".concat(this.filterSDPDirection(null==(n=this._peerConnection.localDescription)?void 0:n.sdp)," \nnext offer: ").concat(this.filterSDPDirection(null==e?void 0:e.sdp))),this._log.warn("current answer: ".concat(this.filterSDPDirection(null==(o=this._peerConnection.remoteDescription)?void 0:o.sdp)," \nnext answer: ").concat(this.filterSDPDirection(t))),this._log.warn("offer: ".concat(null==e?void 0:e.sdp)),this._log.warn("answer: ".concat(t)),this._log.warn("transceivers: ".concat(JSON.stringify(this._peerConnection.getTransceivers().map((e=>{let{mid:t,currentDirection:i,direction:r,stopped:n}=e;return{mid:t,currentDirection:i,direction:r,stopped:n}}))))),this._log.warn("parsedAnswer: ".concat(JSON.stringify(this._parsedAnswer))),this._isSDPLogged=!0),this._updateSDPPromise=null,r(s)}})))),this._updateSDPPromise}setTransceiverDirection(e,t){return Rb(this,null,(function*(){if(!wN||!this._peerConnection||!this._parsedAnswer)return;this._log.info("setting transceiver ".concat(t.join(",")," direction to ").concat(e));let i=this._peerConnection.getTransceivers();t.forEach((t=>{i[t].direction!==e&&(i[t].direction=e)}));for(let r of t){let t=this._parsedAnswer.media[r].direction;e===Ak.INACTIVE&&t===Ak.RECVONLY&&(this._parsedAnswer.media[r].direction=e),e===Ak.SENDONLY&&t===Ak.INACTIVE&&(this._parsedAnswer.media[r].direction=Ak.RECVONLY)}yield this.updateSDP()}))}filterSDPDirection(){return ej(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").media.map((e=>e.direction))}setOffer(e){this._log.info("setting offer");let t=Fj(e.sdp,this.clientAbility,this._serverAbility);return this._log.debug(t),this._peerConnection.setLocalDescription({type:"offer",sdp:t})}setAnswer(e){return this._log.info("setting answer"),this._log.debug(e.sdp),this._peerConnection.setRemoteDescription(e)}switchVideoEncoder(e){return Rb(this,null,(function*(){if("h265"===e&&!this._parsedAnswer&&(this._parsedAnswer=ej(this._peerConnection.remoteDescription.sdp)),!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1;this._parsedAnswer.media.forEach((i=>{var r;if(i.type===Ik.VIDEO){let n=this._serverAbility.video.codecs.find((t=>t.codec.toLowerCase()===e));n&&(null==(r=i.payloads)||!r.includes(String(n.payload)))&&(i.fmtp=[],i.payloads="",i.rtp=[],i.rtcpFb=[],Uj(i,n),t=!0)}})),t&&(this._log.warn("switch video encoder to ".concat(e)),yield this.updateSDP())}))}useHWEncoder(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1?arguments[1]:void 0;return Rb(this,null,(function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let i=!1,r=[];uw(t)?r=this._parsedAnswer.media.slice(1,4):2===t?r.push(this._parsedAnswer.media[1]):3===t?r.push(this._parsedAnswer.media[2]):7===t&&r.push(this._parsedAnswer.media[3]),r.forEach((t=>{var r;if(t.type===Ik.VIDEO){let n;e&&this.is42001fSupported?n=this.clientAbility.video.codecs.find((e=>e.fmtp.includes("42001f"))):e||(n=this._serverAbility.video.codecs.find((e=>e.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264")))),n&&(null==(r=t.payloads)||!r.includes(String(n.payload)))&&(t.fmtp=[],t.payloads="",t.rtp=[],t.rtcpFb=[],Uj(t,n),i=!0)}})),i&&(this._log.warn("use ".concat(e?"hw":"sw"," encoder")),yield this.updateSDP())}))}sendDataChannelMessage(e){var t;null==(t=this._datachannel)||t.send(e)}reset(){var e;this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),null==(e=this.clearWaitForConnectedPromise)||e.call(this),this._parsedAnswer=null,this.originOffer=null}close(){this._log.info("close pc"),this.removeRTCListener(),this.insertableStreamsAbortMap.forEach((e=>aN(e.abort)&&e.abort("destroy"))),this.insertableStreamsAbortMap.clear(),this.reset(),this.emitConnectionStateChangedEvent("DISCONNECTED"),this._downlinkMIDMap.clear(),this.stopReconnection(),this.removeAllListeners(),this._room.healthDetector.off("1",this.onBadHealth,this)}getReceiversByUserId(e){if(!this._peerConnection)return[];let t=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(e)||[]).map((e=>t[e]))}get isUsingRelay(){return"relay"===this._room.getIceTransportPolicy()}detectTCPAndUDP(e){let{uplinkRTT:t,downlinkRTT:i}=e;var r;if("CONNECTED"!==this.currentState||this._isRelayTried&&!this._room.forceRelay||0===this._room.getIceServers().length)return;let n=this._signalChannel.rtt,o=Math.max(t,i),{rttRatioThreshold:s,rttThreshold:a}=(null==(r=this._room.scheduleResult.config)?void 0:r.useTurnTcpInfo)||{};if(!(s&&a&&n&&o))return;let c=Math.floor(o/n),l=(this._isRelayTried||c>s)&&o>a;l?++this._rttOverCount<5||(this._log.warn("detectTCPAndUDP ws-rtt: ".concat(n," upRTT: ").concat(t," downRTT: ").concat(i," ratio: ").concat(c," over-count: ").concat(this._rttOverCount," isOver: ").concat(l," isRelayTried: ").concat(this._isRelayTried," force-relay: ").concat(this._room.forceRelay)),this.isUsingRelay||this._isRelayTried?this._room.forceRelay&&this.switchRelay(!1):(this._isRelayTried=!0,this._rttOverCount=0,this.switchRelay(!0))):this._rttOverCount=0}switchRelay(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Rb(this,null,(function*(){if(this.isUsingRelay===e)return;let i=e?"relay":"udp",r=e?521709:521710;try{this._room.forceRelay=e,this._log.warn("switchRelay ".concat(i));let t=Date.now();yield this.doSwitchRelay(i),this._log.warn("switchRelay ".concat(i," success")),UP.addSuccessEvent({key:r,cost:Date.now()-t})}catch(Xb){this._log.warn("switchRelay ".concat(i," failed"),Xb),UP.addFailedEvent({key:r,error:Xb}),t?this._room.reJoin():yield this.switchRelay(!e,!0)}}))}doSwitchRelay(e){return new Promise(((t,i)=>{let r=setTimeout((()=>{this.stopReconnection(),i(new Error("switch ".concat(e," timeout")))}),1e4);this.startReconnection().then(t,i).finally((()=>clearTimeout(r)))}))}removeRTCListener(){this._peerConnection&&(this._peerConnection.oniceconnectionstatechange=null,this._peerConnection.onconnectionstatechange=null,this._peerConnection.onsignalingstatechange=null,this._peerConnection.ontrack=null),this.dtlsTransport&&(this.dtlsTransport.onstatechange=null)}requestRemoteFallbackToH264(){this._log.warn("H265 decode failed, remote need to fallback h264"),this._h265DecodeFailed=!0,this._signalChannel.sendWaitForResponse({command:xG,data:{videoDecCodec:"h264"},responseCommand:pG.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{0!==e.data.code&&this._log.warn(e.data.message)}))}};Sb([GV("reconnect")],Xj.prototype,"startReconnection",1),Sb([jV((e=>e.userId))],Xj.prototype,"addDownlink",1),Sb([jV((e=>e))],Xj.prototype,"removeDownlink",1),Sb([WV(!0)],Xj.prototype,"updateSDP",1),Sb([JV(521712,!1)],Xj.prototype,"setOffer",1),Sb([JV(521713,!1)],Xj.prototype,"setAnswer",1);var Qj=class{constructor(e){Ib(this,"tag"),Ib(this,"len"),Ib(this,"data");let t=new DataView(e);this.tag=t.getUint16(),this.len=t.getUint16(2),this.data=new Uint8Array(e).slice(4,4+this.len).buffer}},Zj=class{constructor(e){Ib(this,"tinyId"),Ib(this,"data");let t=new DataView(e),i=0,r=[];for(;i<t.byteLength;){let n=t.getUint16(i+2),o=new Qj(new Uint8Array(e).slice(i,i+2+2+n).buffer);r.push(o),i+=4+n}r.forEach((e=>{1===e.tag?this.tinyId=(new TextDecoder).decode(e.data):2===e.tag&&(this.data=e.data)}))}},$j=new Set;function eJ(){let e=Math.floor(4294967296*Math.random());return $j.has(e)?eJ():($j.add(e),e)}var tJ=yb(Cb()),iJ=class extends tJ.default{constructor(e){super(),Ib(this,"userId"),Ib(this,"tinyId"),Ib(this,"_sdpSemantics"),Ib(this,"_isUplink"),Ib(this,"_room"),Ib(this,"_log"),Ib(this,"_currentState","DISCONNECTED"),Ib(this,"_prevTime",-1),Ib(this,"_blackSmallVideoDetectionId"),this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=_M.createLogger({id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var e;return(null==(e=this.singlePC)?void 0:e.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(e){this._log.info("close connection"),this.emit("closed",e)}emitConnectionStateChangedEvent(e){return e!==this._currentState&&(dM.emit(hM.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:e,remoteUserId:this._isUplink?void 0:this.userId}),this.emit("connection-state-changed",{prevState:this._currentState,state:e}),this._currentState=e,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}getCurrentState(){return this._currentState}get isH264(){var e,t;return!(null==(t=null==(e=this._peerConnection)?void 0:e.remoteDescription)||!t.sdp.includes("H264"))}},rJ=new class{constructor(){Ib(this,"worker"),Ib(this,"callbacks",new Map),Ib(this,"_log"),Ib(this,"sleep",{}),Ib(this,"heartbeatListenerCleaner",new Map),Ib(this,"userIdMap",new Map),this._log=_M.createLogger({id:"bvd"})}getWorker(){if(!this.worker){let e=new Blob(['\n const tracks=new Map;let canvas,ctx;const log=(...t)=>postMessage({type:"log",message:"[worker] "+t.join(" ")});function startDetection(e,t,a){if(!tracks.has(e)){const c={reader:a.getReader(),blackCount:0,timeoutId:null,intervalId:null};tracks.set(e,c),c.timeoutId=setTimeout(()=>stopDetection(e,"timeout"),t),c.intervalId=setInterval(async()=>{try{await isFrameBlack(e)?(c.blackCount++,postMessage({type:"blackCount",trackId:e,count:c.blackCount}),3<=c.blackCount&&(postMessage({type:"black",trackId:e}),stopDetection(e,"black"))):c.blackCount=0}catch(t){log("check black video error:",t.message),stopDetection(e,"error")}},1e3)}}function stopDetection(t,e){var a=tracks.get(t);a&&(a.timeoutId&&clearTimeout(a.timeoutId),a.intervalId&&clearInterval(a.intervalId),a.reader&&a.reader.cancel(),tracks.delete(t),postMessage({type:e,trackId:t}))}async function isFrameBlack(t){t=tracks.get(t);if(!t)return!1;var t=t.reader,{done:t,value:e}=await t.read();if(!e||t)return!1;canvas||(canvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),ctx=canvas.getContext("2d",{willReadFrequently:!0})),canvas.width===e.codedWidth&&canvas.height===e.codedHeight||(canvas.width=e.codedWidth,canvas.height=e.codedHeight,ctx=canvas.getContext("2d",{willReadFrequently:!0})),ctx.drawImage(e,0,0,canvas.width,canvas.height);t=getFrameBlackRatio(ctx.getImageData(0,0,canvas.width,canvas.height));return e.close(),1===t}function getFrameBlackRatio(t){var e=t.data;let a=0;for(let t=0;t<100;t++){var c=4*Math.floor(Math.random()*(e.length/4)),[c,r,n,o]=[e[c],e[1+c],e[2+c],e[3+c]];0<o&&0===c&&0===r&&0===n&&a++}return a/100}self.onmessage=t=>{var{type:t,trackId:e,timeout:a,readable:c}=t.data;"addTrack"===t&&startDetection(e,a,c),"removeTrack"===t&&stopDetection(e)};\n '],{type:"application/javascript"}),t=URL.createObjectURL(e);this.worker=new Worker(t),URL.revokeObjectURL(t),this.worker.onerror=e=>this._log.warn("worker error:",e.message,e.filename||"unknown",e.lineno||"unknown"),this.worker.onmessage=e=>{var t;let{type:i,trackId:r,message:n,count:o}=e.data;if("black"===i)null==(t=this.callbacks.get(r))||t();else if("log"===i)this._log.warn(n);else if("blackCount"===i){let e=this.userIdMap.get(r);this._log.warn("".concat(e||r," black count: ").concat(o))}}}return this.worker}start(e){let{track:t,isUplink:i,room:r,userId:n,onBlack:o}=e;if(this._log.debug("start detect black video",t.id),!qP()||!o||!t||"undefined"==typeof Worker)return void this._log.warn("black video detector not supported");let s=e=>{var r,o,s,a;let c;if(i)c=null==(o=null==(r=e.msg_up_stream_info)?void 0:r.msg_video_status)?void 0:o.filter((e=>3===e.uint32_video_stream_type))[0];else{let t=null==(s=e.msg_down_stream_info)?void 0:s.filter((e=>{var t;return(null==(t=e.msg_user_info)?void 0:t.str_identifier)===n}))[0];c=null==(a=null==t?void 0:t.msg_video_status)?void 0:a.filter((e=>3===e.uint32_video_stream_type))[0]}if(c){let e=(c.uint32_video_codec_bitrate||0)/1e3;if(this.sleep[t.id]&&this.sleep[t.id]>0)return void(this.sleep[t.id]-=1);e>0&&e<10&&(this.sleep[t.id]=30,this._log.info("track bitrate",e,"start check"),this.checkOnce(t,3e4))}};return r.on("heartbeat-report",s),this.heartbeatListenerCleaner.set(t.id,(()=>r.off("heartbeat-report",s))),this.callbacks.set(t.id,o),this.userIdMap.set(t.id,n),t.id}checkOnce(e,t){try{let i=this.getWorker();if(!i)throw new Error("Worker not available");let r=new MediaStreamTrackProcessor({track:e});i.postMessage({type:"addTrack",trackId:e.id,timeout:t,readable:r.readable},[r.readable])}catch(Qk){this._log.warn("check error:",Qk),this.stop(e.id)}}stop(e){if(e){this.worker&&this.worker.postMessage({type:"removeTrack",trackId:e}),this.callbacks.delete(e),delete this.sleep[e];let t=this.heartbeatListenerCleaner.get(e);t&&t(),this.heartbeatListenerCleaner.delete(e),this.userIdMap.delete(e)}}destroy(){this.callbacks.forEach(((e,t)=>this.stop(t))),this.worker&&(this.worker.terminate(),this.worker=null)}},nJ=class extends iJ{constructor(e){super(Eb(gb({},e),{isUplink:!0})),Ib(this,"localMainAudioTrack",null),Ib(this,"localMainVideoTrack",null),Ib(this,"localAuxAudioTrack",null),Ib(this,"localAuxVideoTrack",null),Ib(this,"_isPublishingAux",!1),Ib(this,"_publishingLocalAudioTrack"),Ib(this,"_publishingLocalVideoTrack"),Ib(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,videoDecCodec:"",audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),Ib(this,"_flag",0),Ib(this,"_checkPublishStateTimeoutId",-1),this.initialize()}get videoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264"}get ssrc(){if(!this.singlePC)return{audio:0,video:0,videoRtx:0,small:0,smallRtx:0,auxiliary:0,auxiliaryRtx:0};let{audioSsrc:e,bigVideoSsrc:t,bigVideoRtxSsrc:i,smallVideoSsrc:r,smallVideoRtxSsrc:n,auxVideoSsrc:o,auxVideoRtxSsrc:s}=this.singlePC.uplinkSSRC;return{audio:e||0,video:t||0,videoRtx:i||0,small:r||0,smallRtx:n||0,auxiliary:o||0,auxiliaryRtx:s||0}}get flag(){return this._flag}set flag(e){this._flag!==e&&(this._flag=e,this.checkPublishState())}checkPublishState(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e&&this._checkPublishStateTimeoutId>0)return;let{publishState:t,serverPublishState:i}=this,r=Object.keys(t).find((e=>t[e]!==i[e]));if(r){if(!e)return void(this._checkPublishStateTimeoutId=nx.run("timeout",(()=>this.checkPublishState(!0)),{delay:1e4,count:1}));this._log.warn("publish state not matched, ".concat(r," local:").concat(t[r]," server:").concat(i[r]," ").concat(sM()," ").concat(tM())),UP.addCount({key:521e3})}nx.clearTask(this._checkPublishStateTimeoutId),this._checkPublishStateTimeoutId=-1}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get publishState(){var e,t,i,r;let n={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};if(this._peerConnection){let o=this._peerConnection.getSenders();o&&(mL()?(n.audio=!(null==(e=o[0])||!e.track),n.bigVideo=!(null==(t=o[1])||!t.track),n.smallVideo=!(null==(i=o[2])||!i.track),n.auxVideo=!(null==(r=o[3])||!r.track)):o.forEach((e=>{e.track&&(e.track.kind===Ik.AUDIO?n.audio=!0:(n.bigVideo=!0,this._room.videoManager.hasSmall&&(n.smallVideo=!0)))})))}return n}get publishingState(){let{publishState:e}=this,t=gb({},e);return this._publishingLocalAudioTrack&&(t.audio=!0),this._publishingLocalVideoTrack&&(this._isPublishingAux?t.auxVideo=!0:(t.bigVideo=!0,this._publishingLocalVideoTrack.small&&(t.smallVideo=!0))),t}get serverPublishState(){return{audio:!!(this.flag&wk),bigVideo:!!(this.flag&bk),smallVideo:!!(this.flag&kk),auxVideo:!!(this.flag&Dk)}}get muteState(){var e,t,i;return{audio:!(null==(e=this.localMainAudioTrack)||!e.muted),bigVideo:!(null==(t=this.localMainVideoTrack)||!t.muted),auxVideo:!(null==(i=this.localAuxVideoTrack)||!i.muted)}}initialize(){this.installEvents()}close(e){var t;let i=(null==(t=this._peerConnection)?void 0:t.getSenders())||[];for(let r of i)r.replaceTrack(null);super.close(e),this.uninstallEvents(),this.uninstallTrackMuteEvents(this.localMainAudioTrack,this.localMainVideoTrack,this.localAuxVideoTrack),this.emitConnectionStateChangedEvent("DISCONNECTED")}installEvents(){this.listeners("connection-state-changed").includes(this.handleConnectionStateChange)||this.on("connection-state-changed",this.handleConnectionStateChange,this),this.installSPCEvents()}installSPCEvents(){var e,t;null!=(e=this.singlePC)&&e.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||null==(t=this.singlePC)||t.on("spc-reconnected",this.onSinglePCReconnected,this)}uninstallSPCEvents(){var e;null==(e=this.singlePC)||e.off("spc-reconnected",this.onSinglePCReconnected,this)}uninstallEvents(){this.off("connection-state-changed",this.handleConnectionStateChange,this),this.uninstallSPCEvents()}emitConnectionStateChangedEvent(e,t){var i,r,n;let o=this._currentState,s=super.emitConnectionStateChangedEvent(e);return s&&o!==e&&(t?t.emit("connection-state-changed",{prevState:o,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:o,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:o,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:o,state:e}))),s}onVideoEncodeFailed(e){if(!e||!e.isMediaTrackActive)return;let{videoCodec:t,singlePC:i}=this;if(!i)return;let r={h265:{supported:i.isH264EncodeSupported,target:"h264",log:"h265 encoder not working, switch to h264"},h264:{supported:i.isVP8EncodeSupported,target:"vp8",log:"h264 encoder not working, switch to vp8"},vp8:{supported:!1,target:"vp8",log:"vp8 encoder not working, no fallback available"}}[t];this._log.warn(r.log),null!=r&&r.supported&&i.switchVideoEncoder(r.target)}publish(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,isAuxiliary:n}=e;return function*(){var e,o,s,a,c,l,d;if(!t.singlePC)return;t.installEvents(),yield t.singlePC.waitForPeerConnectionConnected();let u,{publishState:h,muteState:p}=t;if(i&&(t._publishingLocalAudioTrack=i,h.audio=!0,p.audio=i.muted),r){if(!t.singlePC.isH264EncodeSupported&&!t.singlePC.isVP8EncodeSupported)throw new Fb({code:Vb.NOT_SUPPORTED_H264,message:CP({key:SP.NOT_SUPPORTED_H264ENCODE})});t.singlePC.isUsingH264&&!t.singlePC.isH264EncodeSupported&&t.singlePC.isVP8EncodeSupported&&(t._log.warn("h264 encoder not supported"),yield t.singlePC.switchVideoEncoder("vp8")),CN&&115===bO()&&r.profile.width*r.profile.height<=230400&&(t._log.warn("fallback video to defaultBigVideoProfile: ".concat(JSON.stringify(vk))),r.setProfile(vk),yield r.applyProfile()),t._publishingLocalVideoTrack=r,n?(h.auxVideo=!0,p.auxVideo=r.muted):(h.bigVideo=!0,p.bigVideo=r.muted)}if(t._isPublishingAux=n,r&&!n&&r.small&&(u=t._room.videoManager.smallTrack,h.smallVideo=!0),yield t._signalChannel.sendWaitForResponseWithRetry({command:FG,responseCommand:pG.SPC_PUBLISH_RESULT,data:Eb(gb({},t.singlePC.uplinkSSRC),{state:h,muteState:p}),retries:3}),yield t.publishByTransceiver({localAudioTrack:i,localVideoTrack:r,smallTrack:u,isAuxiliary:n}),t._publishingLocalAudioTrack=null,t._publishingLocalVideoTrack=null,t._isPublishingAux=!1,r){t[n?"localAuxVideoTrack":"localMainVideoTrack"]=r,yield t.singlePC.setDegradationPreference(t._peerConnection.getSenders()[n?3:1],r.contentHint,r.streamType);let{scaleResolutionDownBy:e}=r;yield t.singlePC.setScaleResolutionDownBy(t._peerConnection.getSenders()[n?3:1],e,r.streamType)}i&&(t[n?"localAuxAudioTrack":"localMainAudioTrack"]=i),yield t.singlePC.setBandwidth({audio:(null==(e=t.localMainAudioTrack)?void 0:e.profile.bitrate)||(null==(o=t.localAuxAudioTrack)?void 0:o.profile.bitrate),bigVideo:null==(s=t.localMainVideoTrack)?void 0:s.profile.bitrate,smallVideo:null==(c=null==(a=t.localMainVideoTrack)?void 0:a.small)?void 0:c.bitrate,auxVideo:null==(l=t.localAuxVideoTrack)?void 0:l.profile.bitrate}),t.sendMediaSettings(),t.installTrackMuteEvents(i,r),(t._room.preferHW||null!=(d=t._room.scheduleResult.config)&&d.preferHW)&&r&&r.profile.width*r.profile.height>=921600&&t.singlePC.useHWEncoder(!0,n?7:2)}()}))}publishByTransceiver(e){let{localAudioTrack:t,localVideoTrack:i,smallTrack:r,isAuxiliary:n}=e;if(!_L())return;this._log.info("publish by transceiver");let o=null==i?void 0:i.outMediaTrack,s=null==t?void 0:t.outMediaTrack,a=this._peerConnection.getTransceivers(),c=[],l=[],d=(e,t,i)=>{var r;let n=a[t].sender.replaceTrack(i);l.push(t),null!=(r=this.singlePC)&&r.enableInsertableStreams&&n.then((()=>this.createEncodedStreams(a[t].sender,e))),this.initSenderTransform(a[t].sender,e),c.push(n)};s&&d(t.mediaType,0,s),o&&d(i.mediaType,n?3:1,o),null!=i&&i.small&&c.push(this.publishSmall(this._room.videoManager.smallMode,i));let u=this.singlePC.setTransceiverDirection(Ak.SENDONLY,l);return c.push(u),Promise.all(c)}getTrackByMediaType(e){switch(e){case 1:return this.localMainAudioTrack||this._publishingLocalAudioTrack;case 4:case 8:return this.localMainVideoTrack||this._publishingLocalVideoTrack;case 2:return this.localAuxVideoTrack||this._publishingLocalVideoTrack;default:return null}}createEncodedStreams(e,t){var i,r;if(this.singlePC.insertableStreamsAbortMap.has(e))return;let n=e.createEncodedStreams(),o=new AbortController;null==(i=this.singlePC)||i.addAbortController(e,o),(null!=(r=this.getTrackByMediaType(t))&&r.enableEncodeFrame?n.readable.pipeThrough(new TransformStream({transform:(e,i)=>{var r,n;let o=this.getTrackByMediaType(t);i.enqueue((null!=(r=this.singlePC)&&r.isUsingH264||null!=(n=this.singlePC)&&n.isUsingH265)&&o?o.encodeFrame(e,8===t):e)}}),o):n.readable).pipeTo(n.writable,o).catch((e=>{this._log.debug("encoded stream error",e),"destory"!==e&&this._log.warn(e)}))}initSenderTransform(e,t){if(!(this._peerConnection&&this.singlePC&&this.singlePC.scriptTransformWorker&&RL))return;let i=2!==t,r=8===t;e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:1===t,isMain:i,isSmall:r}))}enableSmall(e){return Rb(this,null,(function*(){e?yield this.publishSmall(this._room.videoManager.smallMode):yield this.unpublishSmall()}))}publishSmall(e){return Rb(this,arguments,(function(e){var t=this;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.localMainVideoTrack;return function*(){var r;if(!t.singlePC)return;if("canvas"===e&&!cL())return void t._log.warn("canvas mode small stream is not supported");let n=t._peerConnection.getTransceivers(),{sender:o}=n[2],s=yield t.doPublishSmall(e,i),a="canvas"===e?524700:524701;UP.addSuccessEvent({key:a}),s?(null!=(r=t.singlePC)&&r.enableInsertableStreams&&t.createEncodedStreams(o,8),t.initSenderTransform(o,8),yield t.singlePC.setTransceiverDirection(Ak.SENDONLY,[2]),t.updateMediaSettings(),yield t.doPublishChange(),t._blackSmallVideoDetectionId=rJ.start({track:o.track,room:t._room,isUplink:!0,userId:t.userId,onBlack:()=>{t._log.warn("small video is black");let i="canvas"===e?524700:524701;UP.addFailedEvent({key:i,error:10002}),rJ.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0}})):UP.addFailedEvent({key:a,error:10001})}()}))}doPublishSmall(e){return Rb(this,arguments,(function(e){var t=this;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.localMainVideoTrack;return function*(){if(!t.singlePC)return null;t._log.info("publish small",e);let r=t._peerConnection.getTransceivers(),{sender:n}=r[2];if("canvas"===e&&t._room.videoManager.smallTrack)return yield n.replaceTrack(t._room.videoManager.smallTrack),"canvas";if("api"===e&&null!=i&&i.outMediaTrack&&null!=i&&i.small){yield n.replaceTrack(null==i?void 0:i.outMediaTrack);let e=n.getParameters(),r=zw(null==i?void 0:i.profile,null==i?void 0:i.small);return t._log.info("small scaleResolutionDownBy",r),e.encodings[0].scaleResolutionDownBy=r,n.setParameters(e),"api"}return t._log.warn("small track can not be enabled, smallMode: ".concat(t._room.videoManager.smallMode,", smallTrack: ").concat(!!t._room.videoManager.smallTrack,", bigVideoTrack: ").concat(!(null==i||!i.outMediaTrack))),null}()}))}unpublishSmall(){return Rb(this,null,(function*(){this.singlePC&&(this._log.info("unpublish small"),yield this._peerConnection.getTransceivers()[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(Ak.INACTIVE,[2]),this.updateMediaSettings(),yield this.doPublishChange(),rJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}))}installTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((e=>{e&&(null==e||e.on("mute",this.sendMutedFlag,this),null==e||e.on("unmute",this.sendMutedFlag,this))}))}uninstallTrackMuteEvents(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];t.forEach((e=>{e&&(null==e||e.off("mute",this.sendMutedFlag,this),null==e||e.off("unmute",this.sendMutedFlag,this))}))}unpublish(e){return Rb(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){var e;yield null==(e=t.singlePC)?void 0:e.waitForPeerConnectionConnected();let n=r&&r===t.localAuxVideoTrack,o=null==r?void 0:r.outMediaTrack,s=t._peerConnection.getSenders(),a=[];i&&(n?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localMainAudioTrack&&!t.localAuxAudioTrack&&(yield s[0].replaceTrack(null),a.push(0))),o&&(n?(yield s[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=Eb(gb({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),a.push(3)):(yield s[1].replaceTrack(null),yield s[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=Eb(gb({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),a.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.singlePC.setTransceiverDirection(Ak.INACTIVE,a),yield t.doPublishChange(!1)):yield t.doUnpublish(),t.uninstallTrackMuteEvents(i,r),null==r||r.emit("connection-state-changed",{prevState:t._currentState,state:"DISCONNECTED"})}()}))}doPublishChange(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Rb(this,null,(function*(){let t={state:this.publishingState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponseWithRetry({command:vG,data:t,responseCommand:pG.PUBLISH_STATE_CHANGE_RESULT,enableLog:e,retries:3});this.checkPublishResultCode(i.data.code,i.data.message)}))}doUnpublish(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._signalChannel.sendWaitForResponse({command:yG,commandDesc:"unpublish",responseCommand:pG.UNPUBLISH_RESULT,enableLog:e}).catch((e=>{if(e.getCode()===Vb.API_CALL_TIMEOUT||e.getCode()===Vb.API_CALL_ABORTED)return Promise.resolve();throw e}))}updateMediaSettings(){var e,t;this._mediaSettings.videoCodec=(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264",this._mediaSettings.videoDecCodec=(null==(t=this.singlePC)?void 0:t.downlinkVideoCodec)||"h264";let i=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:r,localAuxVideoTrack:n}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?n=this._publishingLocalVideoTrack:r=this._publishingLocalVideoTrack),SL){if(i&&i.outMediaTrack){let e=i.outMediaTrack.getSettings();this._mediaSettings.audioChannel=e.channelCount||1,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=e.sampleRate||0}if(r&&r.outMediaTrack){let e=r.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=r;this._mediaSettings.videoWidth=e.width/t||0,this._mediaSettings.videoHeight=e.height/t||0,this._mediaSettings.videoFps=e.frameRate||0,this._mediaSettings.videoBps=1e3*r.profile.bitrate,r.small&&(this._mediaSettings.smallVideoWidth=r.small.width,this._mediaSettings.smallVideoHeight=r.small.height,this._mediaSettings.smallVideoFps=r.small.frameRate,this._mediaSettings.smallVideoBps=1e3*r.small.bitrate)}if(n&&n.outMediaTrack){let e=n.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=n;this._mediaSettings.auxVideoWidth=e.width/t||0,this._mediaSettings.auxVideoHeight=e.height/t||0,this._mediaSettings.auxVideoFps=e.frameRate||0,this._mediaSettings.auxVideoBps=1e3*n.profile.bitrate}}else i&&i.outMediaTrack&&(this._mediaSettings.audioChannel=i.profile.channelCount,this._mediaSettings.audioBps=1e3*i.profile.bitrate,this._mediaSettings.audioFs=i.profile.sampleRate),r&&r.outMediaTrack&&(this._mediaSettings.videoWidth=r.profile.width,this._mediaSettings.videoHeight=r.profile.height,this._mediaSettings.videoFps=r.profile.frameRate,this._mediaSettings.videoBps=1e3*r.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:xG,data:this._mediaSettings,responseCommand:pG.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{0!==e.data.code&&this._log.warn(e.data.message)})).catch((()=>{}))}addTrack(e){return Rb(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(t?Ik.AUXILIARY:Ik.MAIN," stream")),mL()&&(yield this.addTrackByTransceiver(e,t))}))}addTrackByTransceiver(e,t){return Rb(this,null,(function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===Ik.AUDIO)yield r[0].sender.replaceTrack(e.outMediaTrack);else{let n=t?3:1;yield r[n].sender.replaceTrack(e.outMediaTrack),1===n&&null!=(i=this.localMainVideoTrack)&&i.small&&(yield r[2].sender.replaceTrack(this._room.videoManager.smallTrack)),r[n].direction===Ak.INACTIVE&&(yield this.singlePC.setTransceiverDirection(Ak.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()}))}removeTrack(e){return Rb(this,null,(function*(){if(!this._peerConnection)return;let t=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(t?Ik.AUXILIARY:Ik.MAIN," stream")),mL()&&(yield this.removeTrackByTransceiver(e,t))}))}removeTrackByTransceiver(e,t){return Rb(this,null,(function*(){if(!e.mediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===Ik.AUDIO)yield i[0].sender.replaceTrack(null);else{let e=t?3:1;yield i[e].sender.replaceTrack(null),1===e&&this._room.videoManager.hasSmall&&(yield i[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(Ak.INACTIVE,[e])}this.updateMediaSettings(),yield this.doPublishChange()}))}replaceTrack(e){return Rb(this,null,(function*(){var t;let i=null==(t=this._peerConnection)?void 0:t.getSenders(),r=e.outMediaTrack||e.mediaTrack;if(!i||0===i.length||!r||i.find((e=>e.track===r)))return!1;let n=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(r.kind," track ").concat(r.id," ").concat(r.label," on ").concat(n?Ik.AUXILIARY:Ik.MAIN," stream")),r.kind===Ik.AUDIO&&i[0]&&(yield i[0].replaceTrack(r)),r.kind===Ik.VIDEO&&(!n&&i[1]&&(yield i[1].replaceTrack(r)),n&&i[3]&&(yield i[3].replaceTrack(r))),!0}))}setBandwidth(e){return Rb(this,arguments,(function(e){var t=this;let{bandwidth:i,type:r,videoType:n}=e;return function*(){if(t.singlePC){let e={};r===Ik.AUDIO?e.audio=i:"big"===n?e.bigVideo=i:"small"===n?e.smallVideo=i:e.auxVideo=i,yield t.singlePC.setBandwidth(e)}}()}))}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this.muteState))),this._signalChannel.sendWaitForResponseWithRetry({command:EG,responseCommand:pG.MUTE_RESULT,data:this.muteState,retries:3}).catch((()=>{})))}handleConnectionStateChange(e){"CONNECTED"===e.state&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&dM.emit(hM.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ik.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===Ik.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===Ik.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===Ik.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===Ik.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===oD?(this._log.error(IP.NOT_SUPPORTED_H264ENCODE),new Fb({code:Vb.NOT_SUPPORTED_H264,message:CP({key:SP.NOT_SUPPORTED_H264ENCODE})})):new Fb({code:Vb.UNKNOWN,message:CP({key:SP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:pG.PUBLISH_RESULT,code:e,message:t}})})}onSinglePCReconnected(){return Rb(this,null,(function*(){this.isMainStreamPublished&&(this._log.warn("republish main stream"),yield this.publish({localAudioTrack:this.localMainAudioTrack,localVideoTrack:this.localMainVideoTrack,isAuxiliary:!1})),this.isAuxStreamPublished&&(this._log.warn("republish aux stream"),yield this.publish({localAudioTrack:this.localAuxAudioTrack,localVideoTrack:this.localAuxVideoTrack,isAuxiliary:!0}))}))}};Sb([PV((function(e){let{localVideoTrack:t}=e;null==t||t.once("6",this.onVideoEncodeFailed,this)}))],nJ.prototype,"publish",1),Sb([PV((function(e){let{localVideoTrack:t}=e;null==t||t.off("6",this.onVideoEncodeFailed,this)}))],nJ.prototype,"unpublish",1);var oJ=nJ;function sJ(e){return Object.keys(e).filter((t=>e[t]))}var aJ=class extends iJ{constructor(e){super(Eb(gb({},e),{isUplink:!1})),Ib(this,"_flag",0),Ib(this,"isRobot",!1),Ib(this,"role","anchor"),Ib(this,"remoteAudioTrack"),Ib(this,"remoteVideoTrack"),Ib(this,"remoteAuxiliaryTrack"),Ib(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),Ib(this,"jitterBufferTimeoutId",-1),Ib(this,"_videoCodec"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=new YB(this._room,this),this.remoteVideoTrack=new XB(this._room,this),this.remoteAuxiliaryTrack=new QB(this._room,this),this.initialize()}get videoCodec(){var e;return this._videoCodec||(null==(e=this.singlePC)?void 0:e.downlinkVideoCodec)||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){return{audio:this.remoteAudioTrack.isSubscribed||this.remoteAudioTrack.isSubscribing,video:this.remoteVideoTrack.isBig&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),smallVideo:this.remoteVideoTrack.isSmall&&(this.remoteVideoTrack.isSubscribed||this.remoteVideoTrack.isSubscribing),auxiliary:this.remoteAuxiliaryTrack.isSubscribed||this.remoteAuxiliaryTrack.isSubscribing}}get muteState(){return Dw(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var t,i,r;e!==this._flag&&(this._flag=e,null==(t=this.remoteAudioTrack)||t.onFlagChanged(),null==(i=this.remoteVideoTrack)||i.onFlagChanged(),null==(r=this.remoteAuxiliaryTrack)||r.onFlagChanged())}get hasMainStream(){return this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall}get hasAuxStream(){return this.muteState.hasAuxiliary}get isMainStreamSubscribed(){return(this.subscribeState.audio||this.subscribeState.video||this.subscribeState.smallVideo)&&(this.muteState.hasAudio||this.muteState.hasVideo||this.muteState.hasSmall)}get isAuxStreamSubscribed(){return this.subscribeState.auxiliary&&this.muteState.hasAuxiliary}get isSmallStreamSubscribed(){return this.subscribeState.smallVideo&&this.muteState.hasSmall}get isBigStreamSubscribed(){return this.subscribeState.video&&this.muteState.hasVideo}isStreamUnpublished(e){return e===Ik.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){this.installEvents()}close(e){clearTimeout(this.jitterBufferTimeoutId),super.close(e),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.uninstallEvents(),this.removeDownlink()}installEvents(){this.singlePC&&(this.listeners("track").includes(this.onTrack)||this.singlePC.on("track",this.onTrack,this),this.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||this.singlePC.on("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.on("decode-failed",this.onDecodeFailed,this))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.off("decode-failed",this.onDecodeFailed,this))}emitConnectionStateChangedEvent(e){var t,i;let r=this._currentState,n=super.emitConnectionStateChangedEvent(e);return n&&r!==e&&(null==(t=this.remoteVideoTrack)||t.emit("connection-state-changed",{prevState:r,state:e}),null==(i=this.remoteAuxiliaryTrack)||i.emit("connection-state-changed",{prevState:r,state:e})),n}onTrack(e){var t,i;let r=e.streams[0],{track:n,receiver:o}=e;if(!r.id.includes(this.tinyId))return;let s=r.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(s," ").concat(n.kind));let a=Ik.AUDIO;n.kind===Ik.VIDEO&&(a=s===Ik.MAIN?Ik.VIDEO:Ik.AUXILIARY);let c=this.remoteAudioTrack;a===Ik.VIDEO?c=this.remoteVideoTrack:a===Ik.AUXILIARY&&(c=this.remoteAuxiliaryTrack),null==(t=this.singlePC)||t.receiverRemoteTrackMap.set(o,c),null!=(i=this.singlePC)&&i.scriptTransformWorker&&this.initReceiverTransform(o,s,n.kind===Ik.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(o),c.setInputMediaStreamTrack(n)}createEncodedStreams(e){if(!this.singlePC.insertableStreamsAbortMap.has(e)){let t=e.createEncodedStreams(),i=new AbortController,r={abortController:i,enqueue:t=>{var i,r,n;let o=null==(i=this.singlePC)?void 0:i.receiverRemoteTrackMap.get(e);return o&&("video"!==o.kind||null!=(r=this.singlePC)&&r.isUsingH264||null!=(n=this.singlePC)&&n.isUsingH265)?o.decodeFrame(t):t}};t.readable.pipeThrough(new TransformStream({transform:(e,t)=>{let i=r.enqueue(e);i&&t.enqueue(i)}})).pipeTo(t.writable,i).catch((e=>{"destory"!==e&&this._log.warn(e)})),this.singlePC.addAbortController(e,i)}}initReceiverTransform(e,t,i){!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker||e.transform||(e.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!0,isAudio:i,userId:this.userId,streamType:t}))}subscribe(e,t){return Rb(this,null,(function*(){var i,r;try{let n=!0;if(this._log.info("subscribe ".concat(t," ").concat(sJ(e))),this.hasSSRC){let t="subscribe_change";Object.values(e).find((e=>!0===e))||(t="unsubscribe"),yield this.sendSubscription(t,e)}else{if(null!=(i=this.singlePC)&&i.autoSubscribedUserMap.size){let e=this.singlePC.autoSubscribedUserMap.get(this.userId);if(e){this.singlePC.autoSubscribedUserMap.delete(this.userId);let t=null==(r=this.singlePC.autoSubscribedSsrcGroups.get(this._room.roomId))?void 0:r[e.groupIndex];t&&(this.ssrc={audio:t.audioSsrc,video:t.bigVideoSsrc,videoRtx:t.bigVideoRtxSsrc,auxiliary:t.auxVideoSsrc,auxiliaryRtx:t.auxVideoRtxSsrc},n=!1)}}yield this.doSubscribe(e,n),this.checkTrackEnded(e)}if(e.smallVideo){let{user:e,mediaTrack:t}=this.remoteVideoTrack;UP.addSuccessEvent({key:524702}),this._blackSmallVideoDetectionId=rJ.start({track:t,isUplink:!1,room:this._room,userId:this.userId,onBlack:()=>{this._log.warn("small video is black, auto change to big"),this._room.changeType(!1,e),UP.addFailedEvent({key:524702}),rJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}})}else rJ.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}catch(Xb){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(Xb.message," ").concat(JSON.stringify(this.muteState))),new Fb({code:Vb.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):Xb}}))}checkTrackEnded(e){var t,i,r;if((e.audio&&"ended"===(null==(t=this.remoteAudioTrack.mediaTrack)?void 0:t.readyState)||e.video&&"ended"===(null==(i=this.remoteVideoTrack.mediaTrack)?void 0:i.readyState)||e.auxiliary&&"ended"===(null==(r=this.remoteAuxiliaryTrack.mediaTrack)?void 0:r.readState))&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),kO&&NO<92)return;this.singlePC.startReconnection()}}unsubscribe(e){return Rb(this,arguments,(function(e){var t=this;let{remoteTracks:i,streamType:r}=e;return function*(){var e;if("main"===r&&!t.isMainStreamSubscribed||"auxiliary"===r&&!t.isAuxStreamSubscribed)return void t._log.info("".concat(r," stream already unsubscribed"));let n=gb({},t.subscribeState);i.forEach((e=>{switch(e.mediaType){case 1:n.audio=!1;break;case 4:n.video=!1;break;case 8:n.smallVideo=!1;break;case 2:n.auxiliary=!1}}));let o="subscribe_change";Object.values(n).find((e=>!0===e))||(o="unsubscribe"),t._log.info("".concat("unsubscribe"===o?o:"subscribe"," ").concat(r," [").concat(sJ(n),"]")),"unsubscribe"===o&&(null==(e=t.singlePC)||e.removeDownlinkQueue.add(t.tinyId)),yield t.sendSubscription(o,n),"main"===r&&(rJ.stop(t._blackSmallVideoDetectionId),t._blackSmallVideoDetectionId=void 0),"unsubscribe"===o&&(yield t.removeDownlink())}()}))}sendSubscription(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscribeState,i={srcTinyId:this.tinyId,srcUserId:this.userId},r=IG,n=pG.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=AG,n=pG.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:r,data:i,responseCommand:n,timeout:1e4,retries:3}).then((t=>{let{data:i}=t;if(0!==i.code){let t=new Fb({code:i.code,message:CP({key:SP.ERROR_MESSAGE,data:{type:e,message:i.message}})});throw this._log.error(t),t}}))}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}setDelay(e){let{audioDelay:t,videoDelay:i}=e;this.remoteAudioTrack.stat.end2EndDelay=t,this.remoteVideoTrack.stat.end2EndDelay=i}onSinglePCReconnected(){return Rb(this,null,(function*(){(this.ssrc.audio||this.ssrc.video||this.ssrc.auxiliary)&&(this._log.warn("resubscribe ".concat(JSON.stringify(this.subscribeState))),yield this.doSubscribe(this.subscribeState),this.remoteAudioTrack.checkDecodeResult(),this.remoteVideoTrack.checkDecodeResult(),this.remoteAuxiliaryTrack.checkDecodeResult())}))}get hasSSRC(){return this.ssrc.audio&&this.ssrc.video&&this.ssrc.auxiliary}doSubscribe(){return Rb(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.subscribeState,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){if(e.singlePC){e.singlePC.addDownlinkQueue.add(e.tinyId),yield e.singlePC.waitForPeerConnectionConnected();try{if(i||!e.hasSSRC){let i={audioSsrc:eJ(),bigVideoSsrc:eJ(),bigVideoRtxSsrc:eJ(),auxVideoSsrc:eJ(),auxVideoRtxSsrc:eJ()},{audioSsrc:n,bigVideoSsrc:o,bigVideoRtxSsrc:s,auxVideoSsrc:a,auxVideoRtxSsrc:c}=i;e.ssrc={audio:n,video:o,videoRtx:s,auxiliary:a,auxiliaryRtx:c},e.singlePC.addDownlinkQueue.delete(e.tinyId),yield e.singlePC.addDownlink({userId:e.userId,tinyId:e.tinyId,ssrc:e.ssrc});try{let r=yield e._signalChannel.sendWaitForResponseWithRetry({command:BG,responseCommand:pG.SPC_SUBSCRIBE_RESULT,data:{srcUserId:e.userId,srcTinyId:e.tinyId,audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,customData:!1,ssrc:i},retries:3,retryTimeout:0});if(0!==r.data.code&&-10036!==r.data.code)throw new Fb({code:r.data.code,message:r.data.message})}catch(r){throw yield e.removeDownlink(),r}return}e.singlePC.addDownlinkQueue.delete(e.tinyId),yield e.singlePC.addDownlink({userId:e.userId,tinyId:e.tinyId,ssrc:e.ssrc})}finally{if(!VL)return;let{main:t,aux:i}=e._room.jitterBufferDelay||{},{jitterDelay:r=t,jitterDelayAux:n=i}=e._room.scheduleResult.config||{};(pw(r)||pw(n))&&e.setJitterBufferDelay({mainDelay:r,auxDelay:n})}}}()}))}removeDownlink(){return Rb(this,null,(function*(){if(!this.singlePC)return;this.ssrc={audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0},this.singlePC.removeDownlinkQueue.delete(this.tinyId);let e=this._room.scheduleResult.config;(null!=e&&e.jitterDelay||null!=e&&e.jitterDelayAux)&&this.setJitterBufferDelay({mainDelay:0,auxDelay:0}),yield this.singlePC.removeDownlink(this.userId)}))}setJitterBufferDelay(e){let{mainDelay:t,auxDelay:i}=e;if(!VL||!this.singlePC||!this._peerConnection||cN(t)&&cN(i))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(t," aux: ").concat(i));let r=this.singlePC.getReceiversByUserId(this.userId);return pw(t)&&(this.remoteAudioTrack.jitterBufferDelay=t,this.remoteVideoTrack.jitterBufferDelay=t),pw(i)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=i,cN(t)&&(this.remoteAudioTrack.jitterBufferDelay=i)),new Promise((e=>{this.doSetJitterBufferDelay({mainDelay:t,auxDelay:i,receivers:r,resolve:e})}))}doSetJitterBufferDelay(e){let{mainDelay:t,auxDelay:i,receivers:r,resolve:n}=e;try{if(0===t&&0===i)return r.forEach((e=>e.jitterBufferTarget=0)),n();if(r.forEach((e=>{var r;let n=e.track===this.remoteAuxiliaryTrack.outMediaTrack||cN(t)&&e.track===this.remoteAudioTrack.outMediaTrack;if(n&&cN(i)||!n&&cN(t))return;let o=n?i||0:t,s=(e.jitterBufferTarget||0)+100;s>o||(e.jitterBufferTarget=s,this._log.debug("set ".concat(n?"aux ":"").concat(null==(r=null==e?void 0:e.track)?void 0:r.kind," jitterBuffer delay ").concat(s," -> ").concat(o)))})),!r.find((e=>{let r=e.track===this.remoteAuxiliaryTrack.outMediaTrack?i||0:t;return e.jitterBufferTarget<r})))return this._log.info("set jitterBuffer main: ".concat(t," aux: ").concat(i," done")),n();this.jitterBufferTimeoutId=setTimeout((()=>{this.doSetJitterBufferDelay({mainDelay:t,auxDelay:i,receivers:r,resolve:n})}),1e3)}catch(Xb){this._log.warn("set jitterBuffer delay error: ".concat(Xb)),clearTimeout(this.jitterBufferTimeoutId),n()}}get audioReceiver(){var e;return(null==(e=this.singlePC)?void 0:e.getReceiversByUserId(this.userId)[0])||null}onDecodeFailed(){"h265"===this._room.downlinkVideoCodec&&this._room.requestRemoteFallbackToH264()}};Sb([WV(),xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return new Promise(((t,r)=>{let n=e=>{this.off("closed",n),r(new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.CONNECTION_ABORTED,data:e})}))};this.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this.off("closed",n)}))}))}))],aJ.prototype,"subscribe",1),Sb([WV()],aJ.prototype,"unsubscribe",1),Sb([jV((()=>"jitter"))],aJ.prototype,"setJitterBufferDelay",1);var cJ=aJ;var lJ=yb(Cb());var dJ=class e extends lJ.EventEmitter{constructor(e,t){super(),this.room=e,this.signalChannel=t,Ib(this,"log"),Ib(this,"cmdIdSeqMap",new Map),Ib(this,"messageMap",new Map),this.log=_M.createLogger({id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),t.on(pG.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",(e=>{[...this.messageMap.keys()].forEach((t=>{t.split("_").slice(0,-1).join("_")===e&&this.messageMap.delete(t)}))}))}send(e){let{cmdId:t,data:i}=e,r=this.cmdIdSeqMap.get(t)||Math.floor(16383*Math.random()),n={cmdId:t,msg:btoa(String.fromCharCode(...new Uint8Array(i))),ordered:!0,reliable:!0,streamSeq:r};this.cmdIdSeqMap.set(t,r+1),this.signalChannel.send(GG,n),this.log.debug("send custom msg: ".concat(JSON.stringify(n)))}onReceiveMsg(t){let{data:i}=t.data,r=this.room.tinyIdToUserIdMap.get(i.srcTinyId);if(r){let t={userId:r,cmdId:i.cmdId,seq:i.streamSeq,data:Uint8Array.from(atob(i.msg),(e=>e.charCodeAt(0))).buffer};if(i.ordered){let i="".concat(r,"_").concat(t.cmdId),n=this.messageMap.get(i);if(n&&0!==n.lastSeq)if(Math.abs(n.lastSeq-t.seq)>e.SEQ_INTERVAL)this.messageMap.set(i,{lastSeq:t.seq,cachedMessageMap:new Map}),this.emitMessage(t);else if(t.seq>n.lastSeq){if(t.seq===n.lastSeq+1)this.emitMessage(t);else if(!n.cachedMessageMap.has(t.seq)){let e=setTimeout((()=>this.emitMessage(t,!0)),5e3);n.cachedMessageMap.set(t.seq,{message:t,timeoutId:e})}}else this.log.debug("drop message ".concat(t.userId,"-").concat(t.cmdId,"-").concat(t.seq));else n||(n={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(i,n),setTimeout((()=>this.emitMessage(t,!0)),100)),n.cachedMessageMap.set(t.seq,{message:t})}else this.emit("message",t)}else{this.log.warn("receive msg from unknown user, wait peer-join tinyId: ".concat(i.srcTinyId));let e=r=>{r.tinyId===i.srcTinyId&&(this.room.off("peer-join",e),this.onReceiveMsg(t))};this.room.on("peer-join",e),jw(2e3).then((()=>this.room.off("peer-join",e)))}}emitMessage(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i;let r=this.messageMap.get("".concat(e.userId,"_").concat(e.cmdId)),n=e;if(r){if(t){let e=[...r.cachedMessageMap.values()].sort(((e,t)=>e.message.seq-t.message.seq));e[0]&&(n=e[0].message)}0!==r.lastSeq&&n.seq-r.lastSeq>1&&this.log.debug("msg lost userId: ".concat(n.userId," seq: ").concat(r.lastSeq," -> ").concat(n.seq)),r.lastSeq=n.seq,clearTimeout(null==(i=r.cachedMessageMap.get(n.seq))?void 0:i.timeoutId),r.cachedMessageMap.delete(n.seq)}this.log.debug("receive custom msg: ".concat(JSON.stringify(n))),this.emit("message",n);let o=null==r?void 0:r.cachedMessageMap.get(n.seq+1);o&&this.emitMessage(o.message)}};Ib(dJ,"SEQ_INTERVAL",300);var uJ,hJ=dJ,{isString:pJ,isUndefined:mJ,getNetworkType:_J,isEmpty:fJ}=jb,gJ=class extends Nj{constructor(e){super(e),Ib(this,"_businessInfo"),Ib(this,"userManager"),Ib(this,"_version"),Ib(this,"_heartbeat",-1),Ib(this,"_lastHeartBeatTime",-1),Ib(this,"_stats"),Ib(this,"_joinTimeout",-1),Ib(this,"_firstPublishedList",null),Ib(this,"_joinReject",null),Ib(this,"_isRelayChanged",!1),Ib(this,"sdpSemantics"),Ib(this,"signalChannel",null),Ib(this,"uplinkConnection",null),Ib(this,"singlePC",null),Ib(this,"enableSPC",fL),Ib(this,"_changeBigSmallRecords",new Map),Ib(this,"networkQuality"),Ib(this,"_iceTransportPolicy"),Ib(this,"forceRelay",!1),Ib(this,"_turnServers",[]),Ib(this,"_iceServersFromJoin"),Ib(this,"_syncUserListInterval",-1),Ib(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),Ib(this,"enableSEI",!1),Ib(this,"_enableAudioVolumeEvaluation",!1),Ib(this,"_audioVolumeIntervalId",0),Ib(this,"_enableMultiAuxStream",!1),Ib(this,"_pureAudioPushMode",!1),Ib(this,"_customMessageManager"),Ib(this,"preferHW",!1),Ib(this,"healthDetector"),Ib(this,"playoutDelay"),Ib(this,"jitterBufferDelay"),Ib(this,"_updateAudioLevelTaskId",-1),this._stats=new cj(this,this._log),this.userManager=new rH(this.userId,this._log),this._version=qb,this.sdpSemantics=nD,mJ(e.sdpSemantics)?EM.isUnifiedPlanDefault()&&(this.sdpSemantics=rD):this.sdpSemantics=e.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(_J())),e.iceTransportPolicy&&(this._iceTransportPolicy=e.iceTransportPolicy),this._enableMultiAuxStream=!mJ(e.enableMultiAuxStream)&&e.enableMultiAuxStream,this.enableSEI=e.enableSEI&&fL,!mJ(e.enableSPC)&&fL&&(this.enableSPC=e.enableSPC),this.preferHW=!!e.preferHW,this._initBusinessInfo(e),this.healthDetector=new Wj(this)}get isMainStreamPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.isMainStreamPublished)}get isMainAudioPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.localMainAudioTrack)}get isAuxStreamPublished(){var e;return!(null==(e=this.uplinkConnection)||!e.isAuxStreamPublished)}get hasAuxStream(){return[...this.remotePublishedUserMap.values()].findIndex((e=>e.muteState.hasAuxiliary))>=0}get userMap(){return this.userManager.userMap}get remotePublishedUserMap(){return this.userManager.remotePublishedUserMap}get tinyIdToUserIdMap(){return new Map([...this.userMap.values()].map((e=>[e.tinyId,e.userId])))}get videoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264"}get downlinkVideoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.downlinkVideoCodec)||"h264"}join(e,t,i){return Rb(this,null,(function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",(e=>{this.emit("peer-join",e)})),this.userManager.on("2",(e=>{this.closeDownLinkConnection(e,"remote user exitRoom"),this.emit("peer-leave",e)})),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",(e=>{var t=((e,t)=>{var i={};for(var r in e)hb.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&db)for(var r of db(e))t.indexOf(r)<0&&pb.call(e,r)&&(i[r]=e[r]);return i})(e,[]);dM.emit(hM.REMOTE_PUBLISH_STATE_CHANGED,gb({room:this},t)),this.emit("remote-publish-state-changed",gb({},t))})),this.joinParams=e,new Promise(((t,i)=>Rb(this,null,(function*(){var r,n;this._joinReject=i;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(o){if(!(o instanceof Fb&&o.code===Vb.SPC_INITIALIZED_FAILED))return i(o);null==(r=this.signalChannel)||r.destroy(),yield this.initialize()}let s=Aw();yield this.doJoin(e,null==(n=this.singlePC)?void 0:n.clientAbility),UP.addSuccessEvent({key:521708,cost:Aw()-s}),t(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(yM){UP.addFailedEvent({key:521708,error:yM}),i(yM)}this._joinReject=null}))))}))}initSinglePC(){return Rb(this,null,(function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new Xj({signalChannel:this.signalChannel,room:this,enableCustomMessage:!1}),this.singlePC.on("sei-message",(e=>this.emit("sei-message",e))),this.singlePC.on("dump",(e=>this.emit("dump",e))),this.singlePC.once("error",(()=>this.fallbackToMPC()));try{return yield this.singlePC.initialize()}catch(Yb){throw this.fallbackToMPC(),new Fb({code:Vb.SPC_INITIALIZED_FAILED,message:null==Yb?void 0:Yb.message})}}}))}doJoin(e,t){return new Promise(((i,r)=>Rb(this,null,(function*(){var n,o,s;e.privateMapKey&&(this.privateMapKey=e.privateMapKey),e.latencyLevel&&(this.latencyLevel=e.latencyLevel),this.signalChannel.once(cG,(e=>{this.clearJoinTimeout(),dM.emit(hM.JOIN_SIGNAL_CONNECTION_END,{room:this,error:e}),r(e)})),mw(null==(o=null==(n=this.scheduleResult)?void 0:n.config)?void 0:o.singlePC)&&fL&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2),t&&this.playoutDelay&&(t.playoutDelay=this.playoutDelay);let a={roomId:String(e.roomId||e.strRoomId),useStringRoomId:this.useStringRoomId,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel,trtcRole:e.role,trtcScene:"live"===this.scene?2:1,sdpSemantics:this.sdpSemantics,version:this._version,ua:navigator&&navigator.userAgent||"",terminalType:aM(),netType:ZD(),bussinessInfo:this._businessInfo,ability:t,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0};this._log.debug("join room signal data: ".concat(JSON.stringify(a)));let c=5e3;null!=(s=this.scheduleResult.config)&&s.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(c=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout((()=>{r(new Fb({code:Vb.JOIN_ROOM_FAILED,message:CP({key:SP.JOIN_ROOM_TIMEOUT})}))}),c),dM.emit(hM.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?UG:_G,a),this.signalChannel.once(pG.JOIN_ROOM_RESULT,(t=>Rb(this,null,(function*(){this.clearJoinTimeout();let{code:n,message:o,data:s,tinyId:a}=t.data;dM.emit(hM.JOIN_RECEIVED_CMD_RES,{room:this,code:n}),0===n?(this._log.info("Join room success, start heartbeat"),a&&(this.tinyId=a),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=s.publishers,this._iceServersFromJoin=s.iceServer?[s.iceServer]:[],this.singlePC&&this.singlePC.setIceServers(this.getIceServers()).then((()=>{var t;null==(t=this.singlePC)||t.connect(Eb(gb({},s.ability),{useVp8:s.ability.useVp8||!!e.useVp8,useH265:s.ability.useH265||!!e.useH265})).catch((()=>{}))})),i()):(this._log.error("Join room failed result: ".concat(n," error: ").concat(o)),r(new Fb({code:Vb.JOIN_ROOM_FAILED,extraCode:n,message:CP({key:SP.JOIN_ROOM_FAILED,data:{error:o,code:n}})})))}))))}))))}reJoin(){return Rb(this,null,(function*(){if(this.isJoined)try{this._log.warn("reJoin pending: ".concat(this.joinParams.roomId));let e,t=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,t.push(this.initSinglePC().then((t=>(e=t,t))))),this.signalChannel&&(this.signalChannel.close(),t.push(this.signalChannel.connect())),yield Promise.all(t),yield this.doJoin(Eb(gb({},this.joinParams),{role:"anchor"===this.role?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),e),this._log.warn("reJoin success"),dx.logSuccessEvent({userId:this.userId,eventType:$k.REJOIN}),this.singlePC){let e=t=>{var i;"CONNECTED"===t.state&&(null==(i=this.singlePC)||i.off(Jj.CONNECTION_STATE_CHANGED,e),this.uplinkConnection instanceof oJ&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach((e=>{e.installEvents(),e.onSinglePCReconnected()})))};this.singlePC.on(Jj.CONNECTION_STATE_CHANGED,e),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof aj&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(Yb){this._log.warn("reJoin fail ".concat(Yb)),this.reset(),dx.logFailedEvent({userId:this.userId,eventType:$k.REJOIN,error:Yb}),this.emit("error",new Fb({code:Vb.JOIN_ROOM_FAILED,message:CP({key:SP.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")}))}initialize(){return Rb(this,null,(function*(){let e,{mainUrl:t,backupUrl:i}=this.getSignalChannelUrl(),r=this.signalChannel||function(e){let t=[...JG.values()].find((t=>t.room.userId===e&&!t.room.isJoined));return t||null}(this.userId),n=!!(r&&r.isConnected&&r.keepAlive&&r.userId===this.userId&&r.room===this);return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(e=this.scheduleResult.domains[0]),this._log.info("".concat(n?"reuse":"setup"," signal channel")),n?(r.url=t,r.backupUrl=i,r.room=this,this.signalChannel=r):(r&&r.close(),this.signalChannel=new KG({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:t,backupUrl:i,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?e:void 0}),this._customMessageManager=new hJ(this,this.signalChannel),this._customMessageManager.on("message",(e=>{this.emit("custom-message",e)}))),this.networkQuality||(this.networkQuality=new hj({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(hj.EVENT_NETWORK_QUALITY,(e=>{var t;this.emit("network-quality",e),null==(t=this.singlePC)||t.detectTCPAndUDP(e)}))),cx(this,this.signalChannel).add(oG,(e=>{dM.emit(hM.SIGNAL_CONNECTION_STATE_CHANGED,gb({room:this},e)),this.emit("signal-connection-state-changed",e)})).add(aG,(e=>{this.reset(),this.emit("error",e)})).add(pG.PEER_JOIN,(e=>{let{srcTinyId:t,userId:i,role:r}=e.data.data;this.userManager.addUser({userId:i,tinyId:t,role:r})})).add(pG.PEER_LEAVE,(e=>{let{userId:t,reason:i=0}=e.data.data;this.userManager.deleteUser(t,i)})).add(pG.UPDATE_REMOTE_MUTE_STAT,(e=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(e.data)})).add(pG.CLIENT_BANNED,(e=>{let t=e.data.data,{reason:i}=t;if(dx.uploadEvent({log:"stat-banned:".concat(i),userId:this.userId}),"user_time_out"===i)return this._log.warn("".concat(i," last heart beat time: ").concat(this._lastHeartBeatTime," interval: ").concat(Date.now()-this._lastHeartBeatTime,", visibility: ").concat(document.visibilityState)),void this.reJoin();this._log["kick"===i?"error":"info"]("user was banned because of [".concat(i,"]")),this.reset(),this.emit("banned",{reason:i})})).add(pG.SEND_SWITCH_ROOM_SUBED_REQ,(e=>{if(!this.singlePC)return;let{subList:t}=e.data.data;t.forEach((e=>{this.singlePC.autoSubscribedUserMap.set(e.userId,e)}))})).add(pG.FALLBACK_CODEC,(e=>Rb(this,null,(function*(){var t,i,r,n,o;let s=e.data.data;this._log.warn("fallback codec enableH265Enc: ".concat(null==(t=s.videoControlInfo)?void 0:t.enableH265Enc)),0===(null==(i=s.videoControlInfo)?void 0:i.enableH265Enc)&&"h265"===(null==(r=this.singlePC)?void 0:r.videoCodec)&&(UP.addCount({key:513e3}),yield null==(n=this.singlePC)?void 0:n.switchVideoEncoder("h264"),yield null==(o=this.uplinkConnection)?void 0:o.sendMediaSettings())})))),this.signalChannel.once(nG,(e=>{this.tinyId=e.signalInfo.tinyId,dM.emit(hM.JOIN_SIGNAL_CONNECTION_END,{room:this})})),dM.emit(hM.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),n&&dM.emit(hM.JOIN_SIGNAL_CONNECTION_END,{room:this}),n}))}setSignalChannel(e){this.signalChannel=e,e||lx(this)}leave(){return Rb(this,null,(function*(){var e;try{yield this.doHeartbeat()}catch(Qk){}this._log.info("leave() => leaving room"),dM.emit(hM.LEAVE_SEND_CMD,{room:this}),null==(e=this.signalChannel)||e.send(fG)}))}clearNetworkQuality(){this.networkQuality&&(this.networkQuality.stop(),delete this.networkQuality)}closeConnections(){this.remotePublishedUserMap.forEach((e=>{this.closeDownLinkConnection(e.userId,"you exitRoom")}))}clearJoinTimeout(){clearTimeout(this._joinTimeout),this._joinTimeout=-1}startHeartbeat(){-1===this._heartbeat&&(this._heartbeat=nx.run("ric",this.doHeartbeat.bind(this),{delay:2e3}))}stopHeartbeat(){-1!==this._heartbeat&&(this._log.info("stopHeartbeat"),nx.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return Rb(this,null,(function*(){var e;let t=this.badCaseDetector.getMonitorFreeze(),i=yield this._stats.getStatsReport({uplinkConnection:this.uplinkConnection,downlinkConnections:this.remotePublishedUserMap,freezeMap:t});this.badCaseDetector.resetMonitor();let r=null!=(e=this.signalChannel)&&e.isConnected?function(e){if(ZB.has(e)){let t=ZB.get(e).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 ZB.delete(e),t}return[]}(this.userId):[],n=Eb(gb({str_sdk_version:Kb,uint64_datetime:(new Date).getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:r,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},i),{msg_device_info:gb({uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:ZD()},i.msg_device_info)});if(this.heartbeatReport=n,dM.emit(hM.HEARTBEAT_REPORT,{room:this,report:n}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(gG,n);let e=Date.now();this._lastHeartBeatTime>0&&e-this._lastHeartBeatTime>1e4&&this._log.warn("heartbeat took ".concat(e-this._lastHeartBeatTime)),this._lastHeartBeatTime=e,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",Eb(gb({},n),{bytes_sent:this._stats.totalBytesSent+this.signalChannel.bytesSent,bytes_received:this._stats.totalBytesReceived+this.signalChannel.bytesReceived}))}!this._isRelayChanged&&this.isRelayMaybeFailed()&&(this.reJoin(),this._isRelayChanged=!0)}))}onPublishedUserList(e){if(!this.isJoined)return;let t=e.data.userList.filter((e=>e.flag!==Pk)).map((e=>{let{userId:t,srcTinyId:i,flag:r}=e;t===this.userId&&this.uplinkConnection&&(this.uplinkConnection.flag=r);let n=this.remotePublishedUserMap.get(t);return n&&this.checkSubscribeBigSmallVideo(n),{userId:t,tinyId:i,flag:r}}));e.data.mixRobotList.forEach((e=>{let{userId:i,srcTinyId:r,flag:n,mixUserList:o}=e;t.unshift({userId:i,tinyId:r,flag:n,isRobot:!0,mixUserList:o})})),e.data.fakeMixUser&&(e.data.fakeMixUser.tinyId=e.data.fakeMixUser.srcTinyId,t.push(e.data.fakeMixUser)),dM.emit(hM.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:t}),this.userManager.setRemotePublishedUserList(t)}closeUplink(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"you unpublished";this.uplinkConnection&&(this.localTracks.size>0&&this.uplinkConnection.doUnpublish().catch((()=>{})),this.uplinkConnection.close(e),this.uplinkConnection instanceof aj&&(this.uplinkConnection=null)),this.localTracks.forEach((e=>e.unpublish())),this.localTracks.clear()}createDownlinkConnection(e){let{userId:t,tinyId:i,flag:r,isRobot:n}=e,o=new(this.singlePC?cJ:nj)({userId:t,tinyId:i,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:r,isRobot:n});this.userManager.addRemotePublishedUser(o),this.installDownlinkEvents(o,t),this.emit("remote-published",o)}closeDownLinkConnection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"remote user unpublished",i=this.remotePublishedUserMap.get(e);i&&(i.close(t),this.emit("remote-unpublished",i))}installDownlinkEvents(e,t){e.on("error",(e=>{let i=e.getCode();i!==Vb.ICE_TRANSPORT_ERROR&&(i===Vb.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(t),this.emit("error",e))})),e.on("connection-state-changed",(t=>{this.emit("media-connection-state-changed",Eb(gb({},t),{userId:e.userId}))})),e.on("firewall-restriction",(()=>{this.emit("firewall-restriction")}))}startSyncUserListInterval(){-1===this._syncUserListInterval&&(this._syncUserListInterval=nx.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){nx.clearTask(this._syncUserListInterval),this._syncUserListInterval=-1}syncUserList(){return this.getUserList().then((e=>{this.userManager.setUserList(e)})).catch((e=>{this._log.debug("sync user list failed: ".concat(e))}))}getUserList(){var e;return null!=(e=this.signalChannel)&&e.isConnected?this.signalChannel.sendWaitForResponse({command:PG,responseCommand:pG.USER_LIST_RES,enableLog:!1,timeout:2e3}).then((e=>{let{data:t}=e,{code:i,message:r}=t;if(0===i)return(t.data&&t.data.userList||[]).map((e=>{let{userId:t,srcTinyId:i,role:r}=e;return{userId:t,tinyId:i,role:r}}));throw CP({key:SP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:pG.USER_LIST_RES,code:i,message:r}})})):Promise.reject("not connected")}getAllConnections(){let e=[...this.remotePublishedUserMap.values()];return this.uplinkConnection&&e.push(this.uplinkConnection),e}isRelayMaybeFailed(){if(this.signalChannel&&!this.signalChannel.isOnline||!QG)return!1;if(this.singlePC)return this.singlePC.reconnectionCount>6;let e=this.getAllConnections();if(0===e.length)return!1;for(let t=0;t<e.length;t++)if(e[t].getReconnectionCount()<6)return!1;return!0}checkConnectionsToReconnect(){var e;this.singlePC?(null==(e=this.singlePC.getPeerConnection())?void 0:e.connectionState)===qk.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach((e=>{if(e instanceof ZG&&!e.getIsReconnecting()){let t=e.getPeerConnection();t&&t.connectionState===qk.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}}))}fallbackToMPC(){return Rb(this,null,(function*(){var e;if(this._log.warn("fallback to multi pc"),dx.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,null==(e=this.singlePC)||e.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin()),this.uplinkConnection){let e=this.uplinkConnection;this.uplinkConnection=new aj({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),e.isMainStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localMainAudioTrack,localVideoTrack:e.localMainVideoTrack,isAuxiliary:!1})),e.isAuxStreamPublished&&(yield this.uplinkConnection.publish({localAudioTrack:e.localAuxAudioTrack,localVideoTrack:e.localAuxVideoTrack,isAuxiliary:!0})),e.close()}for(let t of[...this.remotePublishedUserMap.values()]){let e=new nj({userId:t.userId,tinyId:t.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:t.flag,remoteAudioTrack:t.remoteAudioTrack,remoteVideoTrack:t.remoteVideoTrack,remoteAuxiliaryTrack:t.remoteAuxiliaryTrack});this.installDownlinkEvents(e,t.userId),this.remotePublishedUserMap.set(t.userId,e),t.isMainStreamSubscribed&&(yield e.subscribe(t.subscribeState,"main")),t.isAuxStreamSubscribed&&(yield e.subscribe(t.subscribeState,"auxiliary"))}}))}destroy(){this.isDestroyed||(this.signalChannel&&(this._log.info("destroying SignalChannel"),this.signalChannel.close(),this.signalChannel=null),super.destroy(),this._joinReject&&(this._joinReject(new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.removeAllListeners(),this.healthDetector.destroy(),nx.clearTask(this._audioVolumeIntervalId))}switchRole(e){return Rb(this,null,(function*(){this.role!==e&&("audience"===e&&this.uplinkConnection&&this.closeUplink("you switch role to audience"),yield this.doSwitchRole(e))}))}doSwitchRole(e){let t={command:LG,data:{role:"anchor"===e?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:pG.SWITCH_ROLE_RES,retries:1};return this._log.info("switchRole signal data: ".concat(JSON.stringify(t.data))),this.signalChannel.sendWaitForResponseWithRetry(t).then((t=>{let{code:i,message:r}=t.data;if(0!==i)throw new Fb({code:Vb.SWITCH_ROLE_FAILED,message:CP({key:SP.SWITCH_ROLE_FAILED,data:{message:r,code:i}})});this.role=e})).catch((e=>{throw e instanceof Fb&&e.getCode()===Vb.API_CALL_TIMEOUT&&(e=new Fb({code:Vb.SWITCH_ROLE_FAILED,message:CP({key:SP.SWITCH_ROLE_TIMEOUT})})),this._log.error(e),e}))}publish(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Rb(this,null,(function*(){let e={},i={};t.forEach((t=>{t instanceof XV&&(t instanceof GB?i.audio=t:e.audio=t),t instanceof eU&&(t instanceof HB&&2===t.mediaType?i.video=t:e.video=t)}));let r=fJ(e),n=fJ(i);(!r||!n)&&!this.uplinkConnection&&(this.singlePC?this.uplinkConnection=new oJ({userId:this.userId,tinyId:this.tinyId,room:this}):this.uplinkConnection=new aj({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),this.uplinkConnection.on("connection-state-changed",(e=>{this.emit("media-connection-state-changed",Eb(gb({},e),{userId:this.userId}))})),this.uplinkConnection.on("firewall-restriction",(()=>{this.emit("firewall-restriction")})),this.uplinkConnection.on("error",(e=>{let t=e.getCode();t!==Vb.ICE_TRANSPORT_ERROR&&(t===Vb.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",e))})));let o=t.map((e=>e.kind)).join(",");r||(this._log.info("publish() => main ".concat(o)),yield this.uplinkConnection.publish({localAudioTrack:e.audio,localVideoTrack:e.video,isAuxiliary:!1}),this._log.info("main is published")),n||(this._log.info("publish() => aux ".concat(o)),yield this.uplinkConnection.publish({localAudioTrack:i.audio,localVideoTrack:i.video,isAuxiliary:!0}),this._log.info("aux is published"))}))}unpublish(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Rb(this,null,(function*(){if("live"===this.scene&&"anchor"!==this.role||!this.isMainStreamPublished&&!this.isAuxStreamPublished||!this.uplinkConnection)return;let e={},i={};t.forEach((t=>{!t.mediaTrack||!t.isPublished||(t instanceof XV&&(t instanceof GB?i.audio=t:e.audio=t),t instanceof eU&&(t instanceof HB&&2===t.mediaType?i.video=t:e.video=t))}));try{let r=t.map((e=>e.kind)).join(",");fJ(e)||(this._log.info("unpublish() => main ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:e.audio,localVideoTrack:e.video})),fJ(i)||(this._log.info("unpublish() => aux ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:i.audio,localVideoTrack:i.video}))}catch(bM){}0===this.localTracks.size&&this.closeUplink("you unpublished")}))}addTrack(e){if(!this.uplinkConnection||!e.mediaTrack)return Promise.resolve();let t=this.uplinkConnection.addTrack(e);return e.publish(this,t),t}removeTrack(e){return this.uplinkConnection&&e.mediaTrack?this.uplinkConnection.removeTrack(e).then((t=>(e.unpublish(),t))):Promise.resolve()}replaceTrack(e){return this.uplinkConnection&&e.mediaTrack&&TL()?this.uplinkConnection.replaceTrack(e).then((t=>{t&&dM.emit(hM.LOCAL_TRACK_REPLACED,{track:e})})):Promise.resolve()}setBandWidth(e){return Rb(this,null,(function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(e),yield this.uplinkConnection.sendMediaSettings())}))}enableSmall(e){return Rb(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();e&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:Ik.VIDEO,videoType:Ik.SMALL,bandwidth:this.uplinkConnection.localMainVideoTrack.small.bitrate})),yield this.uplinkConnection.enableSmall(e)}))}subscribe(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Rb(this,null,(function*(){if(t=t.filter((e=>!e.isSubscribed)),0===t.length)return;let{userId:e}=t[0],i=this.remotePublishedUserMap.get(e);if(!i)return;let r=t.find((e=>2===e.mediaType))?"auxiliary":"main";try{let n=gb({},i.subscribeState);t.forEach((e=>{switch(e.mediaType){case 1:n.audio=!0;break;case 4:n.video=!0;break;case 8:n.smallVideo=!0;break;case 2:n.auxiliary=!0}}));let o=this._changeBigSmallRecords.get(e);o&&o.options.smallVideo&&i.muteState.hasSmall&&n.video&&(n.video=!1,n.smallVideo=!0),dM.emit(hM.SUBSCRIBE_START,{room:this,streamType:r,remotePublishedUser:i,subscribeState:n}),this._log.info("subscribe() => ".concat(e," ").concat(r," [").concat(ij(n),"] prev: [").concat(ij(i.subscribeState),"]")),yield i.subscribe(n,r),this._log.info("subscribe ".concat(e," ").concat(r," done"));for(let e of t)e.mediaTrack||(yield e.waitHasMediaTrack());dM.emit(hM.SUBSCRIBE_SUCCESS,{room:this,streamType:r,remotePublishedUser:i})}catch(Xb){let i=Xb instanceof Fb?Xb.getCode():Vb.UNKNOWN,n=Xb;throw Xb instanceof Fb?i===Vb.REMOTE_STREAM_NOT_EXIST&&(n=new Fb({code:Vb.API_CALL_ABORTED,message:CP({key:SP.API_CALL_ABORTED,data:{message:Xb.message,userId:e,streamType:r}})}),this._log.warn(n)):(n=new Fb({code:i,message:CP({key:SP.SUBSCRIBE_FAILED,data:{message:Xb.message,userId:e,streamType:r}})}),this._log.error(n)),n}}))}unsubscribe(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Rb(this,null,(function*(){let{userId:e}=t[0],i=this.remotePublishedUserMap.get(e);if(!i)return;let r=t.find((e=>2===e.mediaType))?"auxiliary":"main";this._log.info("unsubscribe() => ".concat(e," ").concat(r));try{yield i.unsubscribe({remoteTracks:t,streamType:r})}catch(Xb){this._log.warn("unsubscribe() => failed ".concat(Xb))}t.forEach((e=>{e.unsubscribe(),8===e.mediaType&&e.setMediaType(4)})),dM.emit(hM.UNSUBSCRIBE_SUCCESS,{room:this,streamType:r,remotePublishedUser:i})}))}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAudioVolumeEvaluation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3,t=arguments.length>1?arguments[1]:void 0;if(e<=0)return this._enableAudioVolumeEvaluation=!1,void nx.clearTask(this._audioVolumeIntervalId);e=Math.floor(Math.max(e,100)),dM.emit(hM.AUDIO_LEVEL_INTERVAL,{interval:e}),this._audioVolumeIntervalId&&nx.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=nx.run("intervalInWorker",(()=>{var i;sV.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(e,t);let r=[];null==(i=this.remotePublishedUserMap)||i.forEach((e=>{if(e.muteState.hasAudio){!sV.isRunning&&e.muteState.audioAvailable&&e.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(e):e.remoteAudioTrack.volume=0;let t=Math.floor(100*e.remoteAudioTrack.getAudioLevel());r.push({userId:e.userId,volume:t,floatVolume:e.remoteAudioTrack.getInternalAudioLevel()})}})),this.emit("audio-volume",r)}),{delay:e,backgroundTask:t})}updateAudioLevelFromSenderStat(e,t){return Rb(this,null,(function*(){var i;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||-1!==this._updateAudioLevelTaskId)return;let r=null==(i=this.uplinkConnection.getPeerConnection())?void 0:i.getSenders()[0];if(!r)return;let n=Math.max(e,500);this._log.warn("updateAudioLevelFromSenderStat ".concat(n)),this._updateAudioLevelTaskId=nx.run("intervalInWorker",(()=>Rb(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let e=yield r.getStats();if(this._updateAudioLevelTaskId<0)return;let{localMainAudioTrack:t}=this.uplinkConnection;e.forEach((e=>{"media-source"===e.type&&e.audioLevel&&(t.volume=e.audioLevel)}))}))),{delay:n,backgroundTask:t})}))}stopUpdateAudioLevelFromSenderStat(){var e;-1!==this._updateAudioLevelTaskId&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),nx.clearTask(this._updateAudioLevelTaskId),this._updateAudioLevelTaskId=-1,null!=(e=this.uplinkConnection)&&e.localMainAudioTrack&&(this.uplinkConnection.localMainAudioTrack.volume=0))}updateDownlinkAudioLevelFromReceiver(e){var t;let{audioReceiver:i}=e;if(!yL||!i)return;let r=null==(t=i.getSynchronizationSources()[0])?void 0:t.audioLevel;pw(r)?e.remoteAudioTrack.volume=Math.min(2*r,1):i.getStats().then((t=>{t.forEach((t=>{"inbound-rtp"===t.type&&pw(t.audioLevel)&&(e.remoteAudioTrack.volume=t.audioLevel)}))}))}getLocalAudioStats(){return Rb(this,null,(function*(){var e;let t={};return t[this.userId]={bytesSent:0,packetsSent:0,audioLevel:0},null!=(e=this.uplinkConnection)&&e.localMainAudioTrack&&(t[this.userId]=this.uplinkConnection.localMainAudioTrack.stat),t}))}getLocalVideoStats(){return Rb(this,null,(function*(){var e,t;let i={};return i[this.userId]=(null==(t=null==(e=this.uplinkConnection)?void 0:e.localMainVideoTrack)?void 0:t.stat)||{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0},i}))}getTransportStats(){return Rb(this,null,(function*(){let e={rtt:0,downlinksRTT:{}};if(this.uplinkConnection){let t=yield this._stats.getSenderStats(this.uplinkConnection);e.rtt=t.rtt}for(let[,t]of this.remotePublishedUserMap){let i=yield this._stats.getReceiverStats(t);e.downlinksRTT[i.userId]=i.rtt}return e}))}getRemoteVideoStats(e){return Rb(this,null,(function*(){let t={};for(let[i,r]of this.remotePublishedUserMap)"main"===e&&r.muteState.hasVideo&&(t[i]=r.remoteVideoTrack.stat),"auxiliary"===e&&r.muteState.hasAuxiliary&&(t[i]=r.remoteAuxiliaryTrack.stat);return t}))}getRemoteAudioStats(){return Rb(this,null,(function*(){let e={};for(let[t,i]of this.remotePublishedUserMap)i.muteState.hasAudio&&(e[t]=i.remoteAudioTrack.stat);return e}))}setTurnServer(e,t){this._log.info("set turn server: ".concat(JSON.stringify(e)," ").concat(t||""));let i=[];Array.isArray(e)?e.forEach((e=>i.push(jb.getTurnServer(e)))):jb.isPlainObject(e)&&i.push(jb.getTurnServer(e)),this._turnServers=i,t&&(this._iceTransportPolicy=t)}sendStartMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:DG,data:e,timeout:5e3,responseCommand:pG.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendStopMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:wG,data:e,timeout:5e3,responseCommand:pG.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendStartPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?RG:bG,data:e,timeout:5e3,responseCommand:t?pG.START_PUBLISH_TENCENT_CDN_RES:pG.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendStopPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?CG:kG,data:e,timeout:5e3,responseCommand:t?pG.STOP_PUBLISH_TENCENT_CDN_RES:pG.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendStartPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:NG,data:e,timeout:5e3,responseCommand:pG.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendUpdatePushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:OG,data:e,timeout:5e3,responseCommand:pG.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendStopPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:MG,data:e,timeout:5e3,responseCommand:pG.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"}).catch((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e}))}sendAbilityStatus(e){var t;null==(t=this.signalChannel)||t.sendWaitForResponse({command:HG,data:e,timeout:5e3,responseCommand:pG.ABILITY_STATUS_REPORT_RESULT,commandDesc:"ability status report"}).catch((e=>{}))}getIceServers(e){var t,i;return this._turnServers.length>0?this._turnServers:null!=(t=this.scheduleResult.iceServers)&&t.length?this.scheduleResult.iceServers:null!=e&&e.length?e:null!=(i=this._iceServersFromJoin)&&i.length?this._iceServersFromJoin:[]}getIceTransportPolicy(){return this.forceRelay?"relay":this._iceTransportPolicy||this.scheduleResult.iceTransportPolicy||"all"}getLogger(){return this._log}enableAIVoice(){throw new Error("Method not implemented.")}getSignalChannelUrl(){let e={mainUrl:"",backupUrl:""},t=jb.getEnv();return t?(e.mainUrl="wss://".concat(t,".rtc.qq.com"),e.backupUrl=e.mainUrl):this.proxy_ws?(e.mainUrl=this.proxy_ws,e.backupUrl=e.mainUrl):this.proxy_unified?(e.mainUrl="wss://".concat(this.proxy_unified),e.backupUrl=e.mainUrl):Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(e.mainUrl="wss://".concat(this.scheduleResult.domains[0]),e.backupUrl=e.mainUrl,this.scheduleResult.domains[1]&&(e.backupUrl="wss://".concat(this.scheduleResult.domains[1]))),e}getSignalInfo(){var e;return(null==(e=this.signalChannel)?void 0:e.getSignalInfo())||{clientIp:"",relayIp:""}}reset(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.stopSyncUserListInterval(),this.stopHeartbeat(),this.closeConnections(),this.clearNetworkQuality(),this.closeUplink("you exitRoom"),this.signalChannel&&(e&&this.signalChannel.keepAlive&&this.signalChannel.isConnected?this.signalChannel.stopKeepAliveIn(3600):(this.signalChannel.close(),this.setSignalChannel(null))),this._stats.reset(),this.userManager.clear(),this.userManager.removeAllListeners(),this.singlePC&&(this.singlePC.close(),this.singlePC=null),this.scheduleResult={domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}}checkSubscribeBigSmallVideo(e){return Rb(this,null,(function*(){let{subscribeState:t,userId:i,muteState:{hasSmall:r,hasVideo:n}}=e;if(!r&&!n||!t.video&&!t.smallVideo)return;let o=this._changeBigSmallRecords.get(i);if(!o||o.isSubscribing||o.reSubscribeCount<=0)return;let{options:s,reSubscribeCount:a}=o;if(s.video&&t.video||s.smallVideo&&t.smallVideo&&r)return;let c={audio:e.remoteAudioTrack.isSubscribed||e.remoteAudioTrack.isSubscribing,auxiliary:e.remoteAuxiliaryTrack.isSubscribed||e.remoteAuxiliaryTrack.isSubscribing,video:s.video,smallVideo:s.smallVideo};try{if(!r&&c.smallVideo&&(c.video=!0,c.smallVideo=!1),c.smallVideo===t.smallVideo&&c.video===t.video)return;o.isSubscribing=!0,o.reSubscribeCount=a-1,yield e.subscribe(c,"main"),e.remoteVideoTrack.setMediaType(c.smallVideo?8:4),this._log.info("change [".concat(i,"] to ").concat(c.smallVideo?"small":"big"," video successfully. count ").concat(yD-o.reSubscribeCount,".")),o.isSubscribing=!1,o.reSubscribeCount=yD}catch(l){this._log.info("change [".concat(i,"] to ").concat(c.smallVideo?"small":"big"," video failed. count ").concat(yD-o.reSubscribeCount,". reason: ").concat(l)),o.isSubscribing=!1,0===o.reSubscribeCount&&this._changeBigSmallRecords.delete(i)}}))}changeType(e,t){let i={options:{video:!e,smallVideo:e},isSubscribing:!1,reSubscribeCount:yD};this._changeBigSmallRecords.set(t.userId,i),this._log.info("set [".concat(t.userId,"] video prefer type: ").concat(e?"small":"big")),this.emit("subscribe-small-video-changed",{userId:t.userId,isSmall:e});let r=this.remotePublishedUserMap.get(t.userId);r&&this.checkSubscribeBigSmallVideo(r)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(e){this._businessInfo=e.businessInfo;let t={};if(pJ(e.businessInfo)&&(t=JSON.parse(e.businessInfo)),!mJ(e.pureAudioPushMode)){if(!Number.isInteger(Number(e.pureAudioPushMode)))throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_PURE_AUDIO})});this._pureAudioPushMode=e.pureAudioPushMode,t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.pure_audio_push_mod=this._pureAudioPushMode}if(!mJ(e.userDefineRecordId)){let i=/^[A-Za-z0-9_-]{1,64}$/gi;if(null===e.userDefineRecordId.match(i))throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_USER_DEFINE_RECORDID})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_record_id=e.userDefineRecordId}if(!mJ(e.userDefinePushArgs)){if(!(pJ(e.userDefinePushArgs)&&String(e.userDefinePushArgs)&&String(e.userDefinePushArgs).length<=256))throw new Fb({code:Vb.INVALID_PARAMETER,message:CP({key:SP.INVALID_USER_DEFINE_PUSH_ARGS})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_push_args=e.userDefinePushArgs}fJ(t)||(this._businessInfo=JSON.stringify(t))}sendCustomMessage(e){var t;null==(t=this._customMessageManager)||t.send(e)}enableInsertableStreams(){return Rb(this,null,(function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&AL)return this.singlePC.enableInsertableStreams=!0,yield this.singlePC.waitForPeerConnectionConnected(),yield this.singlePC.startReconnection()}))}sendSignalMessage(e){var t;return this.signalChannel?null==(t=this.signalChannel)?void 0:t.sendWaitForResponseWithRetry(e):Promise.reject(new Fb({code:Vb.INVALID_OPERATION,message:"not join"}))}get enableCodecPipeline(){return this.videoManager.encodePipeline.length>0||this.videoManager.decodePipeline.length>0||this.audioManager.encodePipeline.length>0||this.audioManager.decodePipeline.length>0}get scriptTransformWorker(){var e;return null==(e=this.singlePC)?void 0:e.scriptTransformWorker}switchRoom(e){return Rb(this,null,(function*(){var t,i;if(!this.signalChannel)return;let{roomId:r,strRoomId:n,userSig:o,privateMapKey:s}=e,a=(null==(t=this.scheduleResult.config)?void 0:t.autoSubscribeCount)||(null==e?void 0:e.autoSubscribeCount)||1,c=String(this.useStringRoomId?n:r),l=[];for(let e=0;e<a;e++)l.push({audioSsrc:eJ(),bigVideoSsrc:eJ(),bigVideoRtxSsrc:eJ(),auxVideoSsrc:eJ(),auxVideoRtxSsrc:eJ()});let d={currRoomId:this.roomId,targetRoomId:c,useStringRoomId:this.useStringRoomId,ability:null==(i=this.singlePC)?void 0:i.clientAbility,userSig:null!=o?o:this.userSig,privateMapKey:null!=s?s:this.privateMapKey,subscribe:l};this.singlePC&&(this.singlePC.autoSubscribedUserMap.clear(),this.singlePC.autoSubscribedSsrcGroups.clear(),this.singlePC.autoSubscribedSsrcGroups.set(c,l));let u=this.roomId;this.roomId=this.useStringRoomId?n:String(r),dM.emit(hM.SWITCH_ROOM_START,{room:this});let h=yield this.signalChannel.sendWaitForResponse({command:jG,responseCommand:pG.SEND_SWITCH_ROOM_RES,data:d}),{code:p,message:m}=h.data;if(0!==p){this._log.error("switch room failed. result: ".concat(p," error: ").concat(m)),this.roomId=u,this.singlePC&&this.singlePC.autoSubscribedSsrcGroups.clear();let e=new Fb({code:Vb.SWITCH_ROOM_FAILED,extraCode:p,message:m});throw dM.emit(hM.SWITCH_ROOM_FAILED,{room:this,error:e}),e}mJ(o)||(this.userSig=o),mJ(s)||(this.privateMapKey=s),dM.emit(hM.SWITCH_ROOM_SUCCESS,{room:this,currentRoomId:u,targetRoomId:c})}))}isSwitchRoomSupported(){var e;let t="unable to use switchRoom API, fallback to exitRoom and enterRoom.";return!0!==(null==(e=this.scheduleResult.config)?void 0:e.switchRoom)?(this._log.warn("".concat(t," Reason: this sdkAppId is not supported, please contact us [https://trtc.io/contact] to enable it.")),!1):"live"!==this.scene?(this._log.warn("".concat(t," Reason: the scene is not 'live'.")),!1):"audience"!==this.role?(this._log.warn("".concat(t," Reason: the role is not 'audience'.")),!1):!!this.singlePC||(this._log.warn("".concat(t," Reason: is not using single peerConnection.")),!1)}requestRemoteFallbackToH264(){var e;null==(e=this.singlePC)||e.requestRemoteFallbackToH264()}};return Sb([YL(["left",ZL.INIT],"joined"),hx({settings:{retries:1,timeout:0},onRetrying(e){this._log.warn("join retry ".concat(e))},onRetryFailed(e){this._log.error("join failed",e)},onError(e,t){this._isUsingCachedSchedule&&!this.isDestroyed?(this._log.warn("is using cached schedule, retry join"),JH(!0),this.reset(),t()):this.signalChannel&&this.signalChannel.isConnected&&this.signalChannel.keepAlive?(this._log.warn("is using keepAlive ws, retry join"),this.signalChannel.close(),this.reset(),t()):(this.reset(),t())}}),xV((e=>{let t=new tG;return function(i,r,n){return Rb(this,null,(function*(){let o=String(i.roomId||i.strRoomId);if(this.userId=i.userId,this.sdkAppId=i.sdkAppId,this.userSig=i.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,i.privateMapKey=i.privateMapKey||"",this.isJoined)throw new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:o,sdkAppId:this.sdkAppId,room:this}))throw new Fb({code:Vb.INVALID_OPERATION,message:CP({key:SP.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:o}),this.role=21===i.role?"audience":"anchor",this._log.info("Join() => joining room: ".concat(o," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),dM.emit(hM.JOIN_START,{room:this,roomId:o,params:i});let s=jb.getEnv();s||(s=hk.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Rk.OLD_CLOUD_LADDER)?s=hk.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Rk.WEBRTC)&&(s=hk.WEBRTC))),dx.setConfig({env:s,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:o}),EM.checkSystemRequirementsInternal(n).then((e=>{this.checkSystemResult=e,iG.call(this)}));try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!jb.getEnv()&&(yield this.schedule(i,n));let t=yield e.call(this,i,r,n);return this.roomId=o,this._joinedTimestamp=jb.performanceNow(),dM.emit(hM.JOIN_SUCCESS,{room:this}),30===n&&!i.component&&dx.uploadEvent({log:"stat-conv-".concat(Number(KO),"-").concat(location.hostname),userId:this.userId}),t}catch(CM){throw t.delete({room:this,roomId:o}),dM.emit(hM.JOIN_FAILED,{room:this,error:CM}),CM}}))}}))],gJ.prototype,"join",1),Sb([YL("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return Rb(this,null,(function*(){dM.emit(hM.LEAVE_START,{room:this}),yield e.call(this,...i),dM.emit(hM.LEAVE_SUCCESS,{room:this,roomId:this.roomId})}))})),GV("leave room"),px({fnName:"publish",validateArgs:!1}),px({fnName:"unsubscribe",validateArgs:!1})],gJ.prototype,"leave",1),Sb([WV(),xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return Rb(this,null,(function*(){if("live"===this.scene&&"anchor"!==this.role||(i=i.filter((e=>e.outMediaTrack&&"ready"===e.state)),!i.length))return;dM.emit("61",{room:this});let t=e.apply(this,i);return i.forEach((e=>e.publish(this,t))),t}))})),hx({settings:{retries:Xk,timeout:e=>cw(e)},onError(e,t,i){var r;null!=(r=e.message)&&r.includes("timeout")?(this._log.warn("publish timeout"),t()):(this._log.error("publish failed: ".concat(e)),i(e),dM.emit(hM.PUBLISH_FAILED,{room:this}))}})],gJ.prototype,"publish",1),Sb([px({fnName:"publish"}),(uJ="api-call",function(e,t,i){let r=i.value;return i.value=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];let n=BV.get(this);if(n){let e=n.queue.filter(((e,i)=>{if(0===i)return!0;let r=!0;return e.args.forEach((e=>{t.find((t=>t===e))||(r=!1)})),!r||(e.reject(new Fb({code:Vb.API_CALL_ABORTED,message:uJ})),!1)}));n.queue=e}return r.apply(this,t)},i}),WV(),xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];let n=e.apply(this,i);return i.forEach((e=>e.unpublish())),n})),PV((function(){var e,t;0===this.localTracks.size&&pL()&&(null==(t=null==(e=this.singlePC)?void 0:e.getPeerConnection())||t.getSenders().forEach((e=>e.track&&e.replaceTrack(null))))}))],gJ.prototype,"unpublish",1),Sb([LV((e=>{if(e.code!==Vb.API_CALL_ABORTED)throw e})),jV((e=>e.userId))],gJ.prototype,"replaceTrack",1),Sb([jV((function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId})),KB(),xV((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];let n=e.apply(this,i);return i.forEach((e=>!e.isSubscribed&&e.subscribe(n))),n})),hx({settings:{retries:Xk,timeout:e=>cw(e)},onError(e,t,i,r){e.message.includes("timeout")?(this._log.warn("subscribe timeout"),t()):(this._log.error("subscribe failed: ".concat(e)),i(e),dM.emit(hM.SUBSCRIBE_FAILED,{room:this,remoteTracks:r}))}})],gJ.prototype,"subscribe",1),Sb([px({fnName:"subscribe",callback(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this.singlePC||t.forEach((e=>{let t=this.remotePublishedUserMap.get(e.userId);t&&!t.isMainStreamSubscribed&&!t.isAuxStreamSubscribed&&t.close("you unsubscribed")}))}}),jV((function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId}))],gJ.prototype,"unsubscribe",1),eG.create=eG._create.bind(eG,gJ),LL(30),eG}));
|