trtc-sdk-v5 5.10.0 → 5.10.1-wasm.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/trtc.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:{},i=function(e){return e&&e.Math===Math&&e},r=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof t&&t)||i("object"==typeof t&&t)||function(){return this}()||Function("return this")(),n={},s=function(e){try{return!!e()}catch(t){return!0}},o=!s((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})),a=!s((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),c=a,l=Function.prototype.call,d=c?l.bind(l):function(){return l.apply(l,arguments)},u={},h={}.propertyIsEnumerable,p=Object.getOwnPropertyDescriptor,m=p&&!h.call({1:2},1);u.f=m?function(e){var t=p(this,e);return!!t&&t.enumerable}:h;var _,f,g=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},E=a,T=Function.prototype,v=T.call,y=E&&T.bind.bind(v,v),S=E?y:function(e){return function(){return v.apply(e,arguments)}},I=S,R=I({}.toString),A=I("".slice),C=function(e){return A(R(e),8,-1)},b=s,k=C,D=Object,N=S("".split),w=b((function(){return!D("z").propertyIsEnumerable(0)}))?function(e){return"String"===k(e)?N(e,""):D(e)}:D,O=function(e){return null==e},P=O,M=TypeError,L=function(e){if(P(e))throw new M("Can't call method on "+e);return e},x=w,V=L,U=function(e){return x(V(e))},F="object"==typeof document&&document.all,B=void 0===F&&void 0!==F?function(e){return"function"==typeof e||e===F}:function(e){return"function"==typeof e},H=B,G=function(e){return"object"==typeof e?null!==e:H(e)},W=r,j=B,J=function(e,t){return arguments.length<2?(i=W[e],j(i)?i:void 0):W[e]&&W[e][t];var i},K=S({}.isPrototypeOf),q=r.navigator,z=q&&q.userAgent,Y=z?String(z):"",X=r,Q=Y,$=X.process,Z=X.Deno,ee=$&&$.versions||Z&&Z.version,te=ee&&ee.v8;te&&(f=(_=te.split("."))[0]>0&&_[0]<4?1:+(_[0]+_[1])),!f&&Q&&(!(_=Q.match(/Edge\/(\d+)/))||_[1]>=74)&&(_=Q.match(/Chrome\/(\d+)/))&&(f=+_[1]);var ie=f,re=ie,ne=s,se=r.String,oe=!!Object.getOwnPropertySymbols&&!ne((function(){var e=Symbol("symbol detection");return!se(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&re&&re<41})),ae=oe&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,ce=J,le=B,de=K,ue=Object,he=ae?function(e){return"symbol"==typeof e}:function(e){var t=ce("Symbol");return le(t)&&de(t.prototype,ue(e))},pe=String,me=function(e){try{return pe(e)}catch(t){return"Object"}},_e=B,fe=me,ge=TypeError,Ee=function(e){if(_e(e))return e;throw new ge(fe(e)+" is not a function")},Te=Ee,ve=O,ye=function(e,t){var i=e[t];return ve(i)?void 0:Te(i)},Se=d,Ie=B,Re=G,Ae=TypeError,Ce={},be={get exports(){return Ce},set exports(e){Ce=e}},ke=r,De=Object.defineProperty,Ne=function(e,t){try{De(ke,e,{value:t,configurable:!0,writable:!0})}catch(i){ke[e]=t}return t},we=r,Oe=Ne,Pe="__core-js_shared__",Me=be.exports=we[Pe]||Oe(Pe,{});(Me.versions||(Me.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"});var Le=Ce,xe=function(e,t){return Le[e]||(Le[e]=t||{})},Ve=L,Ue=Object,Fe=function(e){return Ue(Ve(e))},Be=Fe,He=S({}.hasOwnProperty),Ge=Object.hasOwn||function(e,t){return He(Be(e),t)},We=S,je=0,Je=Math.random(),Ke=We(1..toString),qe=function(e){return"Symbol("+(void 0===e?"":e)+")_"+Ke(++je+Je,36)},ze=xe,Ye=Ge,Xe=qe,Qe=oe,$e=ae,Ze=r.Symbol,et=ze("wks"),tt=$e?Ze.for||Ze:Ze&&Ze.withoutSetter||Xe,it=function(e){return Ye(et,e)||(et[e]=Qe&&Ye(Ze,e)?Ze[e]:tt("Symbol."+e)),et[e]},rt=d,nt=G,st=he,ot=ye,at=function(e,t){var i,r;if("string"===t&&Ie(i=e.toString)&&!Re(r=Se(i,e)))return r;if(Ie(i=e.valueOf)&&!Re(r=Se(i,e)))return r;if("string"!==t&&Ie(i=e.toString)&&!Re(r=Se(i,e)))return r;throw new Ae("Can't convert object to primitive value")},ct=TypeError,lt=it("toPrimitive"),dt=function(e,t){if(!nt(e)||st(e))return e;var i,r=ot(e,lt);if(r){if(void 0===t&&(t="default"),i=rt(r,e,t),!nt(i)||st(i))return i;throw new ct("Can't convert object to primitive value")}return void 0===t&&(t="number"),at(e,t)},ut=dt,ht=he,pt=function(e){var t=ut(e,"string");return ht(t)?t:t+""},mt=G,_t=r.document,ft=mt(_t)&&mt(_t.createElement),gt=function(e){return ft?_t.createElement(e):{}},Et=gt,Tt=!o&&!s((function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a})),vt=o,yt=d,St=u,It=g,Rt=U,At=pt,Ct=Ge,bt=Tt,kt=Object.getOwnPropertyDescriptor;n.f=vt?kt:function(e,t){if(e=Rt(e),t=At(t),bt)try{return kt(e,t)}catch(i){}if(Ct(e,t))return It(!yt(St.f,e,t),e[t])};var Dt={},Nt=o&&s((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),wt=G,Ot=String,Pt=TypeError,Mt=function(e){if(wt(e))return e;throw new Pt(Ot(e)+" is not an object")},Lt=o,xt=Tt,Vt=Nt,Ut=Mt,Ft=pt,Bt=TypeError,Ht=Object.defineProperty,Gt=Object.getOwnPropertyDescriptor,Wt="enumerable",jt="configurable",Jt="writable";Dt.f=Lt?Vt?function(e,t,i){if(Ut(e),t=Ft(t),Ut(i),"function"==typeof e&&"prototype"===t&&"value"in i&&Jt in i&&!i[Jt]){var r=Gt(e,t);r&&r[Jt]&&(e[t]=i.value,i={configurable:jt in i?i[jt]:r[jt],enumerable:Wt in i?i[Wt]:r[Wt],writable:!1})}return Ht(e,t,i)}:Ht:function(e,t,i){if(Ut(e),t=Ft(t),Ut(i),xt)try{return Ht(e,t,i)}catch(r){}if("get"in i||"set"in i)throw new Bt("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var Kt=Dt,qt=g,zt=o?function(e,t,i){return Kt.f(e,t,qt(1,i))}:function(e,t,i){return e[t]=i,e},Yt={},Xt={get exports(){return Yt},set exports(e){Yt=e}},Qt=o,$t=Ge,Zt=Function.prototype,ei=Qt&&Object.getOwnPropertyDescriptor,ti=$t(Zt,"name"),ii={EXISTS:ti,PROPER:ti&&"something"===function(){}.name,CONFIGURABLE:ti&&(!Qt||Qt&&ei(Zt,"name").configurable)},ri=B,ni=Ce,si=S(Function.toString);ri(ni.inspectSource)||(ni.inspectSource=function(e){return si(e)});var oi,ai,ci,li=ni.inspectSource,di=B,ui=r.WeakMap,hi=di(ui)&&/native code/.test(String(ui)),pi=qe,mi=xe("keys"),_i=function(e){return mi[e]||(mi[e]=pi(e))},fi={},gi=hi,Ei=r,Ti=G,vi=zt,yi=Ge,Si=Ce,Ii=_i,Ri=fi,Ai="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,oi=function(e,t){if(ki.has(e))throw new Ci(Ai);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");Ri[Di]=!0,oi=function(e,t){if(yi(e,Di))throw new Ci(Ai);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 Ni={set:oi,get:ai,has:ci,enforce:function(e){return ci(e)?ai(e):oi(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}}},wi=S,Oi=s,Pi=B,Mi=Ge,Li=o,xi=ii.CONFIGURABLE,Vi=li,Ui=Ni.enforce,Fi=Ni.get,Bi=String,Hi=Object.defineProperty,Gi=wi("".slice),Wi=wi("".replace),ji=wi([].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("===Gi(Bi(t),0,7)&&(t="["+Wi(Bi(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),i&&i.getter&&(t="get "+t),i&&i.setter&&(t="set "+t),(!Mi(e,"name")||xi&&e.name!==t)&&(Li?Hi(e,"name",{value:t,configurable:!0}):e.name=t),Ji&&i&&Mi(i,"arity")&&e.length!==i.arity&&Hi(e,"length",{value:i.arity});try{i&&Mi(i,"constructor")&&i.constructor?Li&&Hi(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(n){}var r=Ui(e);return Mi(r,"source")||(r.source=ji(Ki,"string"==typeof t?t:"")),e};Function.prototype.toString=qi((function(){return Pi(this)&&Fi(this).source||Vi(this)}),"toString");var zi=B,Yi=Dt,Xi=Yt,Qi=Ne,$i=function(e,t,i,r){r||(r={});var n=r.enumerable,s=void 0!==r.name?r.name:t;if(zi(i)&&Xi(i,s,r),r.global)n?e[t]=i:Qi(t,i);else{try{r.unsafe?e[t]&&(n=!0):delete e[t]}catch(o){}n?e[t]=i:Yi.f(e,t,{value:i,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},Zi={},er=Math.ceil,tr=Math.floor,ir=Math.trunc||function(e){var t=+e;return(t>0?tr:er)(t)},rr=ir,nr=function(e){var t=+e;return t!=t||0===t?0:rr(t)},sr=nr,or=Math.max,ar=Math.min,cr=function(e,t){var i=sr(e);return i<0?or(i+t,0):ar(i,t)},lr=nr,dr=Math.min,ur=function(e){var t=lr(e);return t>0?dr(t,9007199254740991):0},hr=ur,pr=function(e){return hr(e.length)},mr=U,_r=cr,fr=pr,gr=function(e){return function(t,i,r){var n=mr(t),s=fr(n);if(0===s)return!e&&-1;var o,a=_r(r,s);if(e&&i!=i){for(;s>a;)if((o=n[a++])!=o)return!0}else for(;s>a;a++)if((e||a in n)&&n[a]===i)return e||a||0;return!e&&-1}},Er={includes:gr(!0),indexOf:gr(!1)},Tr=Ge,vr=U,yr=Er.indexOf,Sr=fi,Ir=S([].push),Rr=function(e,t){var i,r=vr(e),n=0,s=[];for(i in r)!Tr(Sr,i)&&Tr(r,i)&&Ir(s,i);for(;t.length>n;)Tr(r,i=t[n++])&&(~yr(s,i)||Ir(s,i));return s},Ar=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Cr=Rr,br=Ar.concat("length","prototype");Zi.f=Object.getOwnPropertyNames||function(e){return Cr(e,br)};var kr={};kr.f=Object.getOwnPropertySymbols;var Dr=J,Nr=Zi,wr=kr,Or=Mt,Pr=S([].concat),Mr=Dr("Reflect","ownKeys")||function(e){var t=Nr.f(Or(e)),i=wr.f;return i?Pr(t,i(e)):t},Lr=Ge,xr=Mr,Vr=n,Ur=Dt,Fr=function(e,t,i){for(var r=xr(t),n=Ur.f,s=Vr.f,o=0;o<r.length;o++){var a=r[o];Lr(e,a)||i&&Lr(i,a)||n(e,a,s(t,a))}},Br=s,Hr=B,Gr=/#|\.prototype\./,Wr=function(e,t){var i=Jr[jr(e)];return i===qr||i!==Kr&&(Hr(t)?Br(t):!!t)},jr=Wr.normalize=function(e){return String(e).replace(Gr,".").toLowerCase()},Jr=Wr.data={},Kr=Wr.NATIVE="N",qr=Wr.POLYFILL="P",zr=Wr,Yr=r,Xr=n.f,Qr=zt,$r=$i,Zr=Ne,en=Fr,tn=zr,rn=function(e,t){var i,r,n,s,o,a=e.target,c=e.global,l=e.stat;if(i=c?Yr:l?Yr[a]||Zr(a,{}):Yr[a]&&Yr[a].prototype)for(r in t){if(s=t[r],n=e.dontCallGetSet?(o=Xr(i,r))&&o.value:i[r],!tn(c?r:a+(l?".":"#")+r,e.forced)&&void 0!==n){if(typeof s==typeof n)continue;en(s,n)}(e.sham||n&&n.sham)&&Qr(s,"sham",!0),$r(i,r,s,e)}},nn={};nn[it("toStringTag")]="z";var sn="[object z]"===String(nn),on=B,an=C,cn=it("toStringTag"),ln=Object,dn="Arguments"===an(function(){return arguments}()),un=sn?an: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=ln(e),cn))?i:dn?an(t):"Object"===(r=an(t))&&on(t.callee)?"Arguments":r},hn=un,pn=String,mn=function(e){if("Symbol"===hn(e))throw new TypeError("Cannot convert a Symbol value to a string");return pn(e)},_n=Yt,fn=Dt,gn=function(e,t,i){return i.get&&_n(i.get,t,{getter:!0}),i.set&&_n(i.set,t,{setter:!0}),fn.f(e,t,i)},En=rn,Tn=o,vn=S,yn=Ge,Sn=B,In=K,Rn=mn,An=gn,Cn=Fr,bn=r.Symbol,kn=bn&&bn.prototype;if(Tn&&Sn(bn)&&(!("description"in kn)||void 0!==bn().description)){var Dn={},Nn=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:Rn(arguments[0]),t=In(kn,this)?new bn(e):void 0===e?bn():bn(e);return""===e&&(Dn[t]=!0),t};Cn(Nn,bn),Nn.prototype=kn,kn.constructor=Nn;var wn="Symbol(description detection)"===String(bn("description detection")),On=vn(kn.valueOf),Pn=vn(kn.toString),Mn=/^Symbol\((.*)\)[^)]+$/,Ln=vn("".replace),xn=vn("".slice);An(kn,"description",{configurable:!0,get:function(){var e=On(this);if(yn(Dn,e))return"";var t=Pn(e),i=wn?xn(t,7,-1):Ln(t,Mn,"$1");return""===i?void 0:i}}),En({global:!0,constructor:!0,forced:!0},{Symbol:Nn})}var Vn={},Un=Rr,Fn=Ar,Bn=Object.keys||function(e){return Un(e,Fn)},Hn=o,Gn=Nt,Wn=Dt,jn=Mt,Jn=U,Kn=Bn;Vn.f=Hn&&!Gn?Object.defineProperties:function(e,t){jn(e);for(var i,r=Jn(t),n=Kn(t),s=n.length,o=0;s>o;)Wn.f(e,i=n[o++],r[i]);return e};var qn,zn=J("document","documentElement"),Yn=Mt,Xn=Vn,Qn=Ar,$n=fi,Zn=zn,es=gt,ts="prototype",is="script",rs=_i("IE_PROTO"),ns=function(){},ss=function(e){return"<"+is+">"+e+"</"+is+">"},os=function(e){e.write(ss("")),e.close();var t=e.parentWindow.Object;return e=null,t},as=function(){try{qn=new ActiveXObject("htmlfile")}catch(n){}var e,t,i;as="undefined"!=typeof document?document.domain&&qn?os(qn):(t=es("iframe"),i="java"+is+":",t.style.display="none",Zn.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(ss("document.F=Object")),e.close(),e.F):os(qn);for(var r=Qn.length;r--;)delete as[ts][Qn[r]];return as()};$n[rs]=!0;var cs=Object.create||function(e,t){var i;return null!==e?(ns[ts]=Yn(e),i=new ns,ns[ts]=null,i[rs]=e):i=as(),void 0===t?i:Xn.f(i,t)},ls=it,ds=cs,us=Dt.f,hs=ls("unscopables"),ps=Array.prototype;void 0===ps[hs]&&us(ps,hs,{configurable:!0,value:ds(null)});var ms=function(e){ps[hs][e]=!0},_s=Er.includes,fs=ms;rn({target:"Array",proto:!0,forced:s((function(){return!Array(1).includes()}))},{includes:function(e){return _s(this,e,arguments.length>1?arguments[1]:void 0)}}),fs("includes");var gs,Es,Ts,vs={},ys=!s((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Ss=Ge,Is=B,Rs=Fe,As=ys,Cs=_i("IE_PROTO"),bs=Object,ks=bs.prototype,Ds=As?bs.getPrototypeOf:function(e){var t=Rs(e);if(Ss(t,Cs))return t[Cs];var i=t.constructor;return Is(i)&&t instanceof i?i.prototype:t instanceof bs?ks:null},Ns=s,ws=B,Os=G,Ps=Ds,Ms=$i,Ls=it("iterator"),xs=!1;[].keys&&("next"in(Ts=[].keys())?(Es=Ps(Ps(Ts)))!==Object.prototype&&(gs=Es):xs=!0);var Vs=!Os(gs)||Ns((function(){var e={};return gs[Ls].call(e)!==e}));Vs&&(gs={}),ws(gs[Ls])||Ms(gs,Ls,(function(){return this}));var Us={IteratorPrototype:gs,BUGGY_SAFARI_ITERATORS:xs},Fs=Dt.f,Bs=Ge,Hs=it("toStringTag"),Gs=function(e,t,i){e&&!i&&(e=e.prototype),e&&!Bs(e,Hs)&&Fs(e,Hs,{configurable:!0,value:t})},Ws=Us.IteratorPrototype,js=cs,Js=g,Ks=Gs,qs=vs,zs=function(){return this},Ys=function(e,t,i,r){var n=t+" Iterator";return e.prototype=js(Ws,{next:Js(+!r,i)}),Ks(e,n,!1),qs[n]=zs,e},Xs=S,Qs=Ee,$s=G,Zs=function(e){return $s(e)||null===e},eo=String,to=TypeError,io=function(e,t,i){try{return Xs(Qs(Object.getOwnPropertyDescriptor(e,t)[i]))}catch(r){}},ro=G,no=L,so=function(e){if(Zs(e))return e;throw new to("Can't set "+eo(e)+" as a prototype")},oo=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=io(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(r){}return function(i,r){return no(i),so(r),ro(i)?(t?e(i,r):i.__proto__=r,i):i}}():void 0),ao=rn,co=d,lo=B,uo=Ys,ho=Ds,po=oo,mo=Gs,_o=zt,fo=$i,go=vs,Eo=ii.PROPER,To=ii.CONFIGURABLE,vo=Us.IteratorPrototype,yo=Us.BUGGY_SAFARI_ITERATORS,So=it("iterator"),Io="keys",Ro="values",Ao="entries",Co=function(){return this},bo=function(e,t,i,r,n,s,o){uo(i,t,r);var a,c,l,d=function(e){if(e===n&&_)return _;if(!yo&&e&&e in p)return p[e];switch(e){case Io:case Ro:case Ao:return function(){return new i(this,e)}}return function(){return new i(this)}},u=t+" Iterator",h=!1,p=e.prototype,m=p[So]||p["@@iterator"]||n&&p[n],_=!yo&&m||d(n),f="Array"===t&&p.entries||m;if(f&&(a=ho(f.call(new e)))!==Object.prototype&&a.next&&(ho(a)!==vo&&(po?po(a,vo):lo(a[So])||fo(a,So,Co)),mo(a,u,!0)),Eo&&n===Ro&&m&&m.name!==Ro&&(To?_o(p,"name",Ro):(h=!0,_=function(){return co(m,this)})),n)if(c={values:d(Ro),keys:s?_:d(Io),entries:d(Ao)},o)for(l in c)(yo||h||!(l in p))&&fo(p,l,c[l]);else ao({target:t,proto:!0,forced:yo||h},c);return p[So]!==_&&fo(p,So,_,{name:n}),go[t]=_,c},ko=function(e,t){return{value:e,done:t}},Do=U,No=ms,wo=vs,Oo=Ni,Po=Dt.f,Mo=bo,Lo=ko,xo=o,Vo="Array Iterator",Uo=Oo.set,Fo=Oo.getterFor(Vo),Bo=Mo(Array,"Array",(function(e,t){Uo(this,{type:Vo,target:Do(e),index:0,kind:t})}),(function(){var e=Fo(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,Lo(void 0,!0);switch(e.kind){case"keys":return Lo(i,!1);case"values":return Lo(t[i],!1)}return Lo([i,t[i]],!1)}),"values"),Ho=wo.Arguments=wo.Array;if(No("keys"),No("values"),No("entries"),xo&&"values"!==Ho.name)try{Po(Ho,"name",{value:"values"})}catch(kW){}var Go=Ee,Wo=Fe,jo=w,Jo=pr,Ko=TypeError,qo="Reduce of empty array with no initial value",zo=function(e){return function(t,i,r,n){var s=Wo(t),o=jo(s),a=Jo(s);if(Go(i),0===a&&r<2)throw new Ko(qo);var c=e?a-1:0,l=e?-1:1;if(r<2)for(;;){if(c in o){n=o[c],c+=l;break}if(c+=l,e?c<0:a<=c)throw new Ko(qo)}for(;e?c>=0:a>c;c+=l)c in o&&(n=i(n,o[c],c,s));return n}},Yo={left:zo(!1),right:zo(!0)},Xo=s,Qo=function(e,t){var i=[][e];return!!i&&Xo((function(){i.call(null,t||function(){return 1},1)}))},$o=r,Zo=Y,ea=C,ta=function(e){return Zo.slice(0,e.length)===e},ia=ta("Bun/")?"BUN":ta("Cloudflare-Workers")?"CLOUDFLARE":ta("Deno/")?"DENO":ta("Node.js/")?"NODE":$o.Bun&&"string"==typeof Bun.version?"BUN":$o.Deno&&"object"==typeof Deno.version?"DENO":"process"===ea($o.process)?"NODE":$o.window&&$o.document?"BROWSER":"REST",ra="NODE"===ia,na=Yo.left;rn({target:"Array",proto:!0,forced:!ra&&ie>79&&ie<83||!Qo("reduce")},{reduce:function(e){var t=arguments.length;return na(this,e,t,t>1?arguments[1]:void 0)}});var sa=Yo.right;rn({target:"Array",proto:!0,forced:!ra&&ie>79&&ie<83||!Qo("reduceRight")},{reduceRight:function(e){return sa(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var oa=C,aa=Array.isArray||function(e){return"Array"===oa(e)},ca=rn,la=aa,da=S([].reverse),ua=[1,2];ca({target:"Array",proto:!0,forced:String(ua)===String(ua.reverse())},{reverse:function(){return la(this)&&(this.length=this.length),da(this)}});var ha=me,pa=TypeError,ma=S([].slice),_a=ma,fa=Math.floor,ga=function(e,t){var i=e.length;if(i<8)for(var r,n,s=1;s<i;){for(n=s,r=e[s];n&&t(e[n-1],r)>0;)e[n]=e[--n];n!==s++&&(e[n]=r)}else for(var o=fa(i/2),a=ga(_a(e,0,o),t),c=ga(_a(e,o),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},Ea=ga,Ta=Y.match(/firefox\/(\d+)/i),va=!!Ta&&+Ta[1],ya=/MSIE|Trident/.test(Y),Sa=Y.match(/AppleWebKit\/(\d+)\./),Ia=!!Sa&&+Sa[1],Ra=rn,Aa=S,Ca=Ee,ba=Fe,ka=pr,Da=function(e,t){if(!delete e[t])throw new pa("Cannot delete property "+ha(t)+" of "+ha(e))},Na=mn,wa=s,Oa=Ea,Pa=Qo,Ma=va,La=ya,xa=ie,Va=Ia,Ua=[],Fa=Aa(Ua.sort),Ba=Aa(Ua.push),Ha=wa((function(){Ua.sort(void 0)})),Ga=wa((function(){Ua.sort(null)})),Wa=Pa("sort"),ja=!wa((function(){if(xa)return xa<70;if(!(Ma&&Ma>3)){if(La)return!0;if(Va)return Va<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++)Ua.push({k:t+r,v:i})}for(Ua.sort((function(e,t){return t.v-e.v})),r=0;r<Ua.length;r++)t=Ua[r].k.charAt(0),n.charAt(n.length-1)!==t&&(n+=t);return"DGBEFHACIJK"!==n}}));Ra({target:"Array",proto:!0,forced:Ha||!Ga||!Wa||!ja},{sort:function(e){void 0!==e&&Ca(e);var t=ba(this);if(ja)return void 0===e?Fa(t):Fa(t,e);var i,r,n=[],s=ka(t);for(r=0;r<s;r++)r in t&&Ba(n,t[r]);for(Oa(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=ka(n),r=0;r<i;)t[r]=n[r++];for(;r<s;)Da(t,r++);return t}});var Ja="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Ka=$i,qa=function(e,t,i){for(var r in t)Ka(e,r,t[r],i);return e},za=K,Ya=TypeError,Xa=function(e,t){if(za(t,e))return e;throw new Ya("Incorrect invocation")},Qa=nr,$a=ur,Za=RangeError,ec=function(e){if(void 0===e)return 0;var t=Qa(e),i=$a(t);if(t!==i)throw new Za("Wrong length or index");return i},tc=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1},ic=tc,rc=Math.abs,nc=2220446049250313e-31,sc=1/nc,oc=function(e,t,i,r){var n=+e,s=rc(n),o=ic(n);if(s<r)return o*function(e){return e+sc-sc}(s/r/t)*r*t;var a=(1+t/nc)*s,c=a-(a-s);return c>i||c!=c?Infinity*o:o*c},ac=Math.fround||function(e){return oc(e,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)},cc=Array,lc=Math.abs,dc=Math.pow,uc=Math.floor,hc=Math.log,pc=Math.LN2,mc={pack:function(e,t,i){var r,n,s,o=cc(i),a=8*i-t-1,c=(1<<a)-1,l=c>>1,d=23===t?dc(2,-24)-dc(2,-77):0,u=e<0||0===e&&1/e<0?1:0,h=0;for((e=lc(e))!=e||Infinity===e?(n=e!=e?1:0,r=c):(r=uc(hc(e)/pc),e*(s=dc(2,-r))<1&&(r--,s*=2),(e+=r+l>=1?d/s:d*dc(2,1-l))*s>=2&&(r++,s/=2),r+l>=c?(n=0,r=c):r+l>=1?(n=(e*s-1)*dc(2,t),r+=l):(n=e*dc(2,l-1)*dc(2,t),r=0));t>=8;)o[h++]=255&n,n/=256,t-=8;for(r=r<<t|n,a+=t;a>0;)o[h++]=255&r,r/=256,a-=8;return o[h-1]|=128*u,o},unpack:function(e,t){var i,r=e.length,n=8*r-t-1,s=(1<<n)-1,o=s>>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-o;else{if(d===s)return i?NaN:l?-Infinity:Infinity;i+=dc(2,t),d-=o}return(l?-1:1)*i*dc(2,d-t)}},_c=Fe,fc=cr,gc=pr,Ec=function(e){for(var t=_c(this),i=gc(t),r=arguments.length,n=fc(r>1?arguments[1]:void 0,i),s=r>2?arguments[2]:void 0,o=void 0===s?i:fc(s,i);o>n;)t[n++]=e;return t},Tc=B,vc=G,yc=oo,Sc=function(e,t,i){var r,n;return yc&&Tc(r=t.constructor)&&r!==i&&vc(n=r.prototype)&&n!==i.prototype&&yc(e,n),e},Ic=r,Rc=S,Ac=o,Cc=Ja,bc=zt,kc=gn,Dc=qa,Nc=s,wc=Xa,Oc=nr,Pc=ur,Mc=ec,Lc=ac,xc=mc,Vc=Ds,Uc=oo,Fc=Ec,Bc=ma,Hc=Sc,Gc=Fr,Wc=Gs,jc=Ni,Jc=ii.PROPER,Kc=ii.CONFIGURABLE,qc="ArrayBuffer",zc="DataView",Yc="prototype",Xc="Wrong index",Qc=jc.getterFor(qc),$c=jc.getterFor(zc),Zc=jc.set,el=Ic[qc],tl=el,il=tl&&tl[Yc],rl=Ic[zc],nl=rl&&rl[Yc],sl=Object.prototype,ol=Ic.Array,al=Ic.RangeError,cl=Rc(Fc),ll=Rc([].reverse),dl=xc.pack,ul=xc.unpack,hl=function(e){return[255&e]},pl=function(e){return[255&e,e>>8&255]},ml=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},_l=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},fl=function(e){return dl(Lc(e),23,4)},gl=function(e){return dl(e,52,8)},El=function(e,t,i){kc(e[Yc],t,{configurable:!0,get:function(){return i(this)[t]}})},Tl=function(e,t,i,r){var n=$c(e),s=Mc(i),o=!!r;if(s+t>n.byteLength)throw new al(Xc);var a=n.bytes,c=s+n.byteOffset,l=Bc(a,c,c+t);return o?l:ll(l)},vl=function(e,t,i,r,n,s){var o=$c(e),a=Mc(i),c=r(+n),l=!!s;if(a+t>o.byteLength)throw new al(Xc);for(var d=o.bytes,u=a+o.byteOffset,h=0;h<t;h++)d[u+h]=c[l?h:t-h-1]};if(Cc){var yl=Jc&&el.name!==qc;Nc((function(){el(1)}))&&Nc((function(){new el(-1)}))&&!Nc((function(){return new el,new el(1.5),new el(NaN),1!==el.length||yl&&!Kc}))?yl&&Kc&&bc(el,"name",qc):((tl=function(e){return wc(this,il),Hc(new el(Mc(e)),this,tl)})[Yc]=il,il.constructor=tl,Gc(tl,el)),Uc&&Vc(nl)!==sl&&Uc(nl,sl);var Sl=new rl(new tl(2)),Il=Rc(nl.setInt8);Sl.setInt8(0,2147483648),Sl.setInt8(1,2147483649),!Sl.getInt8(0)&&Sl.getInt8(1)||Dc(nl,{setInt8:function(e,t){Il(this,e,t<<24>>24)},setUint8:function(e,t){Il(this,e,t<<24>>24)}},{unsafe:!0})}else il=(tl=function(e){wc(this,il);var t=Mc(e);Zc(this,{type:qc,bytes:cl(ol(t),0),byteLength:t}),Ac||(this.byteLength=t,this.detached=!1)})[Yc],nl=(rl=function(e,t,i){wc(this,nl),wc(e,il);var r=Qc(e),n=r.byteLength,s=Oc(t);if(s<0||s>n)throw new al("Wrong offset");if(s+(i=void 0===i?n-s:Pc(i))>n)throw new al("Wrong length");Zc(this,{type:zc,buffer:e,byteLength:i,byteOffset:s,bytes:r.bytes}),Ac||(this.buffer=e,this.byteLength=i,this.byteOffset=s)})[Yc],Ac&&(El(tl,"byteLength",Qc),El(rl,"buffer",$c),El(rl,"byteLength",$c),El(rl,"byteOffset",$c)),Dc(nl,{getInt8:function(e){return Tl(this,1,e)[0]<<24>>24},getUint8:function(e){return Tl(this,1,e)[0]},getInt16:function(e){var t=Tl(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=Tl(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return _l(Tl(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return _l(Tl(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return ul(Tl(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return ul(Tl(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){vl(this,1,e,hl,t)},setUint8:function(e,t){vl(this,1,e,hl,t)},setInt16:function(e,t){vl(this,2,e,pl,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){vl(this,2,e,pl,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){vl(this,4,e,ml,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){vl(this,4,e,ml,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){vl(this,4,e,fl,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){vl(this,8,e,gl,t,arguments.length>2&&arguments[2])}});Wc(tl,qc),Wc(rl,zc);var Rl={ArrayBuffer:tl,DataView:rl},Al=J,Cl=gn,bl=o,kl=it("species"),Dl=function(e){var t=Al(e);bl&&t&&!t[kl]&&Cl(t,kl,{configurable:!0,get:function(){return this}})},Nl=Dl,wl="ArrayBuffer",Ol=Rl[wl];rn({global:!0,constructor:!0,forced:r[wl]!==Ol},{ArrayBuffer:Ol}),Nl(wl);var Pl=C,Ml=S,Ll=function(e){if("Function"===Pl(e))return Ml(e)},xl=S,Vl=s,Ul=B,Fl=un,Bl=li,Hl=function(){},Gl=J("Reflect","construct"),Wl=/^\s*(?:class|function)\b/,jl=xl(Wl.exec),Jl=!Wl.test(Hl),Kl=function(e){if(!Ul(e))return!1;try{return Gl(Hl,[],e),!0}catch(kW){return!1}},ql=function(e){if(!Ul(e))return!1;switch(Fl(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Jl||!!jl(Wl,Bl(e))}catch(kW){return!0}};ql.sham=!0;var zl=!Gl||Vl((function(){var e;return Kl(Kl.call)||!Kl(Object)||!Kl((function(){e=!0}))||e}))?ql:Kl,Yl=zl,Xl=me,Ql=TypeError,$l=function(e){if(Yl(e))return e;throw new Ql(Xl(e)+" is not a constructor")},Zl=Mt,ed=$l,td=O,id=it("species"),rd=function(e,t){var i,r=Zl(e).constructor;return void 0===r||td(i=Zl(r)[id])?t:ed(i)},nd=rn,sd=Ll,od=s,ad=Mt,cd=cr,ld=ur,dd=rd,ud=Rl.ArrayBuffer,hd=Rl.DataView,pd=hd.prototype,md=sd(ud.prototype.slice),_d=sd(pd.getUint8),fd=sd(pd.setUint8);nd({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:od((function(){return!new ud(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(md&&void 0===t)return md(ad(this),e);for(var i=ad(this).byteLength,r=cd(e,i),n=cd(void 0===t?i:t,i),s=new(dd(this,ud))(ld(n-r)),o=new hd(this),a=new hd(s),c=0;r<n;)fd(a,c++,_d(o,r++));return s}});var gd,Ed,Td,vd,yd=a,Sd=Function.prototype,Id=Sd.apply,Rd=Sd.call,Ad="object"==typeof Reflect&&Reflect.apply||(yd?Rd.bind(Id):function(){return Rd.apply(Id,arguments)}),Cd=Ee,bd=a,kd=Ll(Ll.bind),Dd=function(e,t){return Cd(e),void 0===t?e:bd?kd(e,t):function(){return e.apply(t,arguments)}},Nd=TypeError,wd=function(e,t){if(e<t)throw new Nd("Not enough arguments");return e},Od=/(?:ipad|iphone|ipod).*applewebkit/i.test(Y),Pd=r,Md=Ad,Ld=Dd,xd=B,Vd=Ge,Ud=s,Fd=zn,Bd=ma,Hd=gt,Gd=wd,Wd=Od,jd=ra,Jd=Pd.setImmediate,Kd=Pd.clearImmediate,qd=Pd.process,zd=Pd.Dispatch,Yd=Pd.Function,Xd=Pd.MessageChannel,Qd=Pd.String,$d=0,Zd={},eu="onreadystatechange";Ud((function(){gd=Pd.location}));var tu=function(e){if(Vd(Zd,e)){var t=Zd[e];delete Zd[e],t()}},iu=function(e){return function(){tu(e)}},ru=function(e){tu(e.data)},nu=function(e){Pd.postMessage(Qd(e),gd.protocol+"//"+gd.host)};Jd&&Kd||(Jd=function(e){Gd(arguments.length,1);var t=xd(e)?e:Yd(e),i=Bd(arguments,1);return Zd[++$d]=function(){Md(t,void 0,i)},Ed($d),$d},Kd=function(e){delete Zd[e]},jd?Ed=function(e){qd.nextTick(iu(e))}:zd&&zd.now?Ed=function(e){zd.now(iu(e))}:Xd&&!Wd?(vd=(Td=new Xd).port2,Td.port1.onmessage=ru,Ed=Ld(vd.postMessage,vd)):Pd.addEventListener&&xd(Pd.postMessage)&&!Pd.importScripts&&gd&&"file:"!==gd.protocol&&!Ud(nu)?(Ed=nu,Pd.addEventListener("message",ru,!1)):Ed=eu in Hd("script")?function(e){Fd.appendChild(Hd("script"))[eu]=function(){Fd.removeChild(this),tu(e)}}:function(e){setTimeout(iu(e),0)});var su={set:Jd,clear:Kd},ou=r,au=o,cu=Object.getOwnPropertyDescriptor,lu=function(e){if(!au)return ou[e];var t=cu(ou,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(Y)&&"undefined"!=typeof Pebble,Eu=/web0s(?!.*chrome)/i.test(Y),Tu=r,vu=lu,yu=Dd,Su=su.set,Iu=fu,Ru=Od,Au=gu,Cu=Eu,bu=ra,ku=Tu.MutationObserver||Tu.WebKitMutationObserver,Du=Tu.document,Nu=Tu.process,wu=Tu.Promise,Ou=vu("queueMicrotask");if(!Ou){var Pu=new Iu,Mu=function(){var e,t;for(bu&&(e=Nu.domain)&&e.exit();t=Pu.get();)try{t()}catch(kW){throw Pu.head&&uu(),kW}e&&e.enter()};Ru||bu||Cu||!ku||!Du?!Au&&wu&&wu.resolve?((mu=wu.resolve(void 0)).constructor=wu,_u=yu(mu.then,mu),uu=function(){_u(Mu)}):bu?uu=function(){Nu.nextTick(Mu)}:(Su=yu(Su,Tu),uu=function(){Su(Mu)}):(hu=!0,pu=Du.createTextNode(""),new ku(Mu).observe(pu,{characterData:!0}),uu=function(){pu.data=hu=!hu}),Ou=function(e){Pu.head||uu(),Pu.add(e)}}var Lu=Ou,xu=function(e){try{return{error:!1,value:e()}}catch(kW){return{error:!0,value:kW}}},Vu=r.Promise,Uu=r,Fu=Vu,Bu=B,Hu=zr,Gu=li,Wu=it,ju=ia,Ju=ie;Fu&&Fu.prototype;var Ku=Wu("species"),qu=!1,zu=Bu(Uu.PromiseRejectionEvent),Yu=Hu("Promise",(function(){var e=Gu(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={},$u=Ee,Zu=TypeError,eh=function(e){var t,i;this.promise=new e((function(e,r){if(void 0!==t||void 0!==i)throw new Zu("Bad Promise constructor");t=e,i=r})),this.resolve=$u(t),this.reject=$u(i)};Qu.f=function(e){return new eh(e)};var th,ih,rh,nh=rn,sh=ra,oh=r,ah=d,ch=$i,lh=oo,dh=Gs,uh=Dl,hh=Ee,ph=B,mh=G,_h=Xa,fh=rd,gh=su.set,Eh=Lu,Th=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(kW){}},vh=xu,yh=fu,Sh=Ni,Ih=Vu,Rh=Qu,Ah="Promise",Ch=Xu.CONSTRUCTOR,bh=Xu.REJECTION_EVENT,kh=Xu.SUBCLASSING,Dh=Sh.getterFor(Ah),Nh=Sh.set,wh=Ih&&Ih.prototype,Oh=Ih,Ph=wh,Mh=oh.TypeError,Lh=oh.document,xh=oh.process,Vh=Rh.f,Uh=Vh,Fh=!!(Lh&&Lh.createEvent&&oh.dispatchEvent),Bh="unhandledrejection",Hh=function(e){var t;return!(!mh(e)||!ph(t=e.then))&&t},Gh=function(e,t){var i,r,n,s=t.value,o=1===t.state,a=o?e.ok:e.fail,c=e.resolve,l=e.reject,d=e.domain;try{a?(o||(2===t.rejection&&qh(t),t.rejection=1),!0===a?i=s:(d&&d.enter(),i=a(s),d&&(d.exit(),n=!0)),i===e.promise?l(new Mh("Promise-chain cycle")):(r=Hh(i))?ah(r,i,c,l):c(i)):l(s)}catch(kW){d&&!n&&d.exit(),l(kW)}},Wh=function(e,t){e.notified||(e.notified=!0,Eh((function(){for(var i,r=e.reactions;i=r.get();)Gh(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),oh.dispatchEvent(r)):r={promise:t,reason:i},!bh&&(n=oh["on"+e])?n(r):e===Bh&&Th("Unhandled promise rejection",i)},Jh=function(e){ah(gh,oh,(function(){var t,i=e.facade,r=e.value;if(Kh(e)&&(t=vh((function(){sh?xh.emit("unhandledRejection",r,i):jh(Bh,i,r)})),e.rejection=sh||Kh(e)?2:1,t.error))throw t.value}))},Kh=function(e){return 1!==e.rejection&&!e.parent},qh=function(e){ah(gh,oh,(function(){var t=e.facade;sh?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,Wh(e,!0))},Xh=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw new Mh("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(kW){Yh(i,kW,e)}})):(e.value=t,e.state=1,Wh(e,!1))}catch(kW){Yh({done:!1},kW,e)}}};if(Ch&&(Ph=(Oh=function(e){_h(this,Ph),hh(e),ah(th,this);var t=Dh(this);try{e(zh(Xh,t),zh(Yh,t))}catch(kW){Yh(t,kW)}}).prototype,(th=function(e){Nh(this,{type:Ah,done:!1,notified:!1,parent:!1,reactions:new yh,rejection:!1,state:0,value:null})}).prototype=ch(Ph,"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=sh?xh.domain:void 0,0===i.state?i.reactions.add(r):Eh((function(){Gh(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)},Rh.f=Vh=function(e){return e===Oh||undefined===e?new ih(e):Uh(e)},ph(Ih)&&wh!==Object.prototype)){rh=wh.then,kh||ch(wh,"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 wh.constructor}catch(kW){}lh&&lh(wh,Ph)}nh({global:!0,constructor:!0,wrap:!0,forced:Ch},{Promise:Oh}),dh(Oh,Ah,!1),uh(Ah);var Qh=vs,$h=it("iterator"),Zh=Array.prototype,ep=function(e){return void 0!==e&&(Qh.Array===e||Zh[$h]===e)},tp=un,ip=ye,rp=O,np=vs,sp=it("iterator"),op=function(e){if(!rp(e))return ip(e,sp)||ip(e,"@@iterator")||np[tp(e)]},ap=d,cp=Ee,lp=Mt,dp=me,up=op,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=d,_p=Mt,fp=ye,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(kW){n=!0,r=kW}if("throw"===t)throw i;if(n)throw r;return _p(r),i},Ep=Dd,Tp=d,vp=Mt,yp=me,Sp=ep,Ip=pr,Rp=K,Ap=pp,Cp=op,bp=gp,kp=TypeError,Dp=function(e,t){this.stopped=e,this.result=t},Np=Dp.prototype,wp=function(e,t,i){var r,n,s,o,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(s=0,o=Ip(e);o>s;s++)if((a=g(e[s]))&&Rp(Np,a))return a;return new Dp(!1)}r=Ap(e,n)}for(c=h?e.next:r.next;!(l=Tp(c,r)).done;){try{a=g(l.value)}catch(kW){bp(r,"throw",kW)}if("object"==typeof a&&a&&Rp(Np,a))return a}return new Dp(!1)},Op=it("iterator"),Pp=!1;try{var Mp=0,Lp={next:function(){return{done:!!Mp++}},return:function(){Pp=!0}};Lp[Op]=function(){return this},Array.from(Lp,(function(){throw 2}))}catch(kW){}var xp=function(e,t){try{if(!t&&!Pp)return!1}catch(kW){return!1}var i=!1;try{var r={};r[Op]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(kW){}return i},Vp=Vu,Up=Xu.CONSTRUCTOR||!xp((function(e){Vp.all(e).then(void 0,(function(){}))})),Fp=d,Bp=Ee,Hp=Qu,Gp=xu,Wp=wp;rn({target:"Promise",stat:!0,forced:Up},{all:function(e){var t=this,i=Hp.f(t),r=i.resolve,n=i.reject,s=Gp((function(){var i=Bp(t.resolve),s=[],o=0,a=1;Wp(e,(function(e){var c=o++,l=!1;a++,Fp(i,t,e).then((function(e){l||(l=!0,s[c]=e,--a||r(s))}),n)})),--a||r(s)}));return s.error&&n(s.value),i.promise}});var jp=rn,Jp=Xu.CONSTRUCTOR,Kp=Vu,qp=J,zp=B,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 $p=d,Zp=Ee,em=Qu,tm=xu,im=wp;rn({target:"Promise",stat:!0,forced:Up},{race:function(e){var t=this,i=em.f(t),r=i.reject,n=tm((function(){var n=Zp(t.resolve);im(e,(function(e){$p(n,t,e).then(i.resolve,r)}))}));return n.error&&r(n.value),i.promise}});var rm=Qu;rn({target:"Promise",stat:!0,forced:Xu.CONSTRUCTOR},{reject:function(e){var t=rm.f(this);return(0,t.reject)(e),t.promise}});var nm=Mt,sm=G,om=Qu,am=function(e,t){if(nm(e),sm(t)&&t.constructor===e)return t;var i=om.f(e);return(0,i.resolve)(t),i.promise},cm=rn,lm=Xu.CONSTRUCTOR,dm=am;J("Promise"),cm({target:"Promise",stat:!0,forced:lm},{resolve:function(e){return dm(this,e)}});var um=rn,hm=Vu,pm=s,mm=J,_m=B,fm=rd,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=C,Im=it("match"),Rm=Mt,Am=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},Cm=d,bm=Ge,km=K,Dm=Am,Nm=RegExp.prototype,wm=s,Om=r.RegExp,Pm=wm((function(){var e=Om("a","y");return e.lastIndex=2,null!==e.exec("abcd")})),Mm=Pm||wm((function(){return!Om("a","y").sticky})),Lm=Pm||wm((function(){var e=Om("^r","gy");return e.lastIndex=2,null!==e.exec("str")})),xm={BROKEN_CARET:Lm,MISSED_STICKY:Mm,UNSUPPORTED_Y:Pm},Vm=Dt.f,Um=s,Fm=r.RegExp,Bm=Um((function(){var e=Fm(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)})),Hm=s,Gm=r.RegExp,Wm=Hm((function(){var e=Gm("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),jm=o,Jm=r,Km=S,qm=zr,zm=Sc,Ym=zt,Xm=cs,Qm=Zi.f,$m=K,Zm=function(e){var t;return ym(e)&&(void 0!==(t=e[Im])?!!t:"RegExp"===Sm(e))},e_=mn,t_=function(e){var t=e.flags;return void 0!==t||"flags"in Nm||bm(e,"flags")||!km(Nm,e)?t:Cm(Dm,e)},i_=xm,r_=function(e,t,i){i in e||Vm(e,i,{configurable:!0,get:function(){return t[i]},set:function(e){t[i]=e}})},n_=$i,s_=s,o_=Ge,a_=Ni.enforce,c_=Dl,l_=Bm,d_=Wm,u_=it("match"),h_=Jm.RegExp,p_=h_.prototype,m_=Jm.SyntaxError,__=Km(p_.exec),f_=Km("".charAt),g_=Km("".replace),E_=Km("".indexOf),T_=Km("".slice),v_=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,y_=/a/g,S_=/a/g,I_=new h_(y_)!==y_,R_=i_.MISSED_STICKY,A_=i_.UNSUPPORTED_Y,C_=jm&&(!I_||R_||l_||d_||s_((function(){return S_[u_]=!1,h_(y_)!==y_||h_(S_)===S_||"/a/i"!==String(h_(y_,"i"))})));if(qm("RegExp",C_)){for(var b_=function(e,t){var i,r,n,s,o,a,c=$m(p_,this),l=Zm(e),d=void 0===t,u=[],h=e;if(!c&&l&&d&&e.constructor===b_)return e;if((l||$m(p_,e))&&(e=e.source,d&&(t=t_(h))),e=void 0===e?"":e_(e),t=void 0===t?"":e_(t),h=e,l_&&"dotAll"in y_&&(r=!!t&&E_(t,"s")>-1)&&(t=g_(t,/s/g,"")),i=t,R_&&"sticky"in y_&&(n=!!t&&E_(t,"y")>-1)&&A_&&(t=g_(t,/y/g,"")),d_&&(s=function(e){for(var t,i=e.length,r=0,n="",s=[],o=Xm(null),a=!1,c=!1,l=0,d="";r<=i;r++){if("\\"===(t=f_(e,r)))t+=f_(e,++r);else if("]"===t)a=!1;else if(!a)switch(!0){case"["===t:a=!0;break;case"("===t:if(n+=t,"?:"===T_(e,r+1,r+3))continue;__(v_,T_(e,r+1))&&(r+=2,c=!0),l++;continue;case">"===t&&c:if(""===d||o_(o,d))throw new m_("Invalid capture group name");o[d]=!0,s[s.length]=[d,l],c=!1,d="";continue}c?d+=t:n+=t}return[n,s]}(e),e=s[0],u=s[1]),o=zm(h_(e,t),c?this:p_,b_),(r||n||u.length)&&(a=a_(o),r&&(a.dotAll=!0,a.raw=b_(function(e){for(var t,i=e.length,r=0,n="",s=!1;r<=i;r++)"\\"!==(t=f_(e,r))?s||"."!==t?("["===t?s=!0:"]"===t&&(s=!1),n+=t):n+="[\\s\\S]":n+=t+f_(e,++r);return n}(e),i)),n&&(a.sticky=!0),u.length&&(a.groups=u)),e!==h)try{Ym(o,"source",""===h?"(?:)":h)}catch(kW){}return o},k_=Qm(h_),D_=0;k_.length>D_;)r_(b_,h_,k_[D_++]);p_.constructor=b_,b_.prototype=p_,n_(Jm,"RegExp",b_,{constructor:!0})}c_("RegExp");var N_=d,w_=S,O_=mn,P_=Am,M_=xm,L_=cs,x_=Ni.get,V_=Bm,U_=Wm,F_=xe("native-string-replace",String.prototype.replace),B_=RegExp.prototype.exec,H_=B_,G_=w_("".charAt),W_=w_("".indexOf),j_=w_("".replace),J_=w_("".slice),K_=function(){var e=/a/,t=/b*/g;return N_(B_,e,"a"),N_(B_,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),q_=M_.BROKEN_CARET,z_=void 0!==/()??/.exec("")[1];(K_||z_||q_||V_||U_)&&(H_=function(e){var t,i,r,n,s,o,a,c=this,l=x_(c),d=O_(e),u=l.raw;if(u)return u.lastIndex=c.lastIndex,t=N_(H_,u,d),c.lastIndex=u.lastIndex,t;var h=l.groups,p=q_&&c.sticky,m=N_(P_,c),_=c.source,f=0,g=d;if(p&&(m=j_(m,"y",""),-1===W_(m,"g")&&(m+="g"),g=J_(d,c.lastIndex),c.lastIndex>0&&(!c.multiline||c.multiline&&"\n"!==G_(d,c.lastIndex-1))&&(_="(?: "+_+")",g=" "+g,f++),i=new RegExp("^(?:"+_+")",m)),z_&&(i=new RegExp("^"+_+"$(?!\\s)",m)),K_&&(r=c.lastIndex),n=N_(B_,p?i:c,g),p?n?(n.input=J_(n.input,f),n[0]=J_(n[0],f),n.index=c.lastIndex,c.lastIndex+=n[0].length):c.lastIndex=0:K_&&n&&(c.lastIndex=c.global?n.index+n[0].length:r),z_&&n&&n.length>1&&N_(F_,n[0],i,(function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(n[s]=void 0)})),n&&h)for(n.groups=o=L_(null),s=0;s<h.length;s++)o[(a=h[s])[0]]=n[a[1]];return n});var Y_=H_;rn({target:"RegExp",proto:!0,forced:/./.exec!==Y_},{exec:Y_});var X_=nr,Q_=mn,$_=L,Z_=RangeError,ef=S,tf=ur,rf=mn,nf=function(e){var t=Q_($_(this)),i="",r=X_(e);if(r<0||Infinity===r)throw new Z_("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(i+=t);return i},sf=L,of=ef(nf),af=ef("".slice),cf=Math.ceil,lf=function(e){return function(t,i,r){var n,s,o=rf(sf(t)),a=tf(i),c=o.length,l=void 0===r?" ":rf(r);return a<=c||""===l?o:((s=of(l,cf((n=a-c)/l.length))).length>n&&(s=af(s,0,n)),e?o+s:s+o)}},df={start:lf(!1),end:lf(!0)},uf=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Y),hf=df.start;rn({target:"String",proto:!0,forced:uf},{padStart:function(e){return hf(this,e,arguments.length>1?arguments[1]:void 0)}});var pf=d,mf=$i,_f=Y_,ff=s,gf=it,Ef=zt,Tf=gf("species"),vf=RegExp.prototype,yf=S,Sf=nr,If=mn,Rf=L,Af=yf("".charAt),Cf=yf("".charCodeAt),bf=yf("".slice),kf=function(e){return function(t,i){var r,n,s=If(Rf(t)),o=Sf(i),a=s.length;return o<0||o>=a?e?"":void 0:(r=Cf(s,o))<55296||r>56319||o+1===a||(n=Cf(s,o+1))<56320||n>57343?e?Af(s,o):r:e?bf(s,o,o+2):n-56320+(r-55296<<10)+65536}},Df={codeAt:kf(!1),charAt:kf(!0)},Nf=Df.charAt,wf=S,Of=Fe,Pf=Math.floor,Mf=wf("".charAt),Lf=wf("".replace),xf=wf("".slice),Vf=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Uf=/\$([$&'`]|\d{1,2})/g,Ff=d,Bf=Mt,Hf=B,Gf=C,Wf=Y_,jf=TypeError,Jf=Ad,Kf=d,qf=S,zf=function(e,t,i,r){var n=gf(e),s=!ff((function(){var t={};return t[n]=function(){return 7},7!==""[e](t)})),o=s&&!ff((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[Tf]=function(){return i},i.flags="",i[n]=/./[n]),i.exec=function(){return t=!0,null},i[n](""),!t}));if(!s||!o||i){var a=/./[n],c=t(n,""[e],(function(e,t,i,r,n){var o=t.exec;return o===_f||o===vf.exec?s&&!n?{done:!0,value:pf(a,t,i,r)}:{done:!0,value:pf(e,i,t,r)}:{done:!1}}));mf(String.prototype,e,c[0]),mf(vf,n,c[1])}r&&Ef(vf[n],"sham",!0)},Yf=s,Xf=Mt,Qf=B,$f=O,Zf=nr,eg=ur,tg=mn,ig=L,rg=function(e,t,i){return t+(i?Nf(e,t).length:1)},ng=ye,sg=function(e,t,i,r,n,s){var o=i+e.length,a=r.length,c=Uf;return void 0!==n&&(n=Of(n),c=Vf),Lf(s,c,(function(s,c){var l;switch(Mf(c,0)){case"$":return"$";case"&":return e;case"`":return xf(t,0,i);case"'":return xf(t,o);case"<":l=n[xf(c,1,-1)];break;default:var d=+c;if(0===d)return s;if(d>a){var u=Pf(d/10);return 0===u?s:u<=a?void 0===r[u-1]?Mf(c,1):r[u-1]+Mf(c,1):s}l=r[d-1]}return void 0===l?"":l}))},og=function(e,t){var i=e.exec;if(Hf(i)){var r=Ff(i,e,t);return null!==r&&Bf(r),r}if("RegExp"===Gf(e))return Ff(Wf,e,t);throw new jf("RegExp#exec called on incompatible receiver")},ag=it("replace"),cg=Math.max,lg=Math.min,dg=qf([].concat),ug=qf([].push),hg=qf("".indexOf),pg=qf("".slice),mg=function(e){return void 0===e?e:String(e)},_g="$0"==="a".replace(/./,"$0"),fg=!!/./[ag]&&""===/./[ag]("a","$0"),gg=!Yf((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}));zf("replace",(function(e,t,i){var r=fg?"$":"$0";return[function(e,i){var r=ig(this),n=$f(e)?void 0:ng(e,ag);return n?Kf(n,e,r,i):Kf(t,tg(r),e,i)},function(e,n){var s=Xf(this),o=tg(e);if("string"==typeof n&&-1===hg(n,r)&&-1===hg(n,"$<")){var a=i(t,s,o,n);if(a.done)return a.value}var c=Qf(n);c||(n=tg(n));var l,d=s.global;d&&(l=s.unicode,s.lastIndex=0);for(var u,h=[];null!==(u=og(s,o))&&(ug(h,u),d);){""===tg(u[0])&&(s.lastIndex=rg(o,eg(s.lastIndex),l))}for(var p="",m=0,_=0;_<h.length;_++){for(var f,g=tg((u=h[_])[0]),E=cg(lg(Zf(u.index),o.length),0),T=[],v=1;v<u.length;v++)ug(T,mg(u[v]));var y=u.groups;if(c){var S=dg([g],T,E,o);void 0!==y&&ug(S,y),f=tg(Jf(n,void 0,S))}else f=sg(g,o,E,T,y,n);E>=m&&(p+=pg(o,m,E)+f,m=E+g.length)}return p+pg(o,m)}]}),!gg||!_g||fg);var Eg="\t\n\v\f\r                 \u2028\u2029\ufeff",Tg=L,vg=mn,yg=Eg,Sg=S("".replace),Ig=RegExp("^["+yg+"]+"),Rg=RegExp("(^|[^"+yg+"])["+yg+"]+$"),Ag=function(e){return function(t){var i=vg(Tg(t));return 1&e&&(i=Sg(i,Ig,"")),2&e&&(i=Sg(i,Rg,"$1")),i}},Cg={start:Ag(1),end:Ag(2),trim:Ag(3)},bg=ii.PROPER,kg=s,Dg=Eg,Ng=Cg.trim;rn({target:"String",proto:!0,forced:function(e){return kg((function(){return!!Dg[e]()||"​…᠎"!=="​…᠎"[e]()||bg&&Dg[e].name!==e}))}("trim")},{trim:function(){return Ng(this)}});var wg,Og,Pg,Mg={},Lg={get exports(){return Mg},set exports(e){Mg=e}},xg=Ja,Vg=o,Ug=r,Fg=B,Bg=G,Hg=Ge,Gg=un,Wg=me,jg=zt,Jg=$i,Kg=gn,qg=K,zg=Ds,Yg=oo,Xg=it,Qg=qe,$g=Ni.enforce,Zg=Ni.get,eE=Ug.Int8Array,tE=eE&&eE.prototype,iE=Ug.Uint8ClampedArray,rE=iE&&iE.prototype,nE=eE&&zg(eE),sE=tE&&zg(tE),oE=Object.prototype,aE=Ug.TypeError,cE=Xg("toStringTag"),lE=Qg("TYPED_ARRAY_TAG"),dE="TypedArrayConstructor",uE=xg&&!!Yg&&"Opera"!==Gg(Ug.opera),hE=!1,pE={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},mE={BigInt64Array:8,BigUint64Array:8},_E=function(e){var t=zg(e);if(Bg(t)){var i=Zg(t);return i&&Hg(i,dE)?i[dE]:_E(t)}},fE=function(e){if(!Bg(e))return!1;var t=Gg(e);return Hg(pE,t)||Hg(mE,t)};for(wg in pE)(Pg=(Og=Ug[wg])&&Og.prototype)?$g(Pg)[dE]=Og:uE=!1;for(wg in mE)(Pg=(Og=Ug[wg])&&Og.prototype)&&($g(Pg)[dE]=Og);if((!uE||!Fg(nE)||nE===Function.prototype)&&(nE=function(){throw new aE("Incorrect invocation")},uE))for(wg in pE)Ug[wg]&&Yg(Ug[wg],nE);if((!uE||!sE||sE===oE)&&(sE=nE.prototype,uE))for(wg in pE)Ug[wg]&&Yg(Ug[wg].prototype,sE);if(uE&&zg(rE)!==sE&&Yg(rE,sE),Vg&&!Hg(sE,cE))for(wg in hE=!0,Kg(sE,cE,{configurable:!0,get:function(){return Bg(this)?this[lE]:void 0}}),pE)Ug[wg]&&jg(Ug[wg],lE,wg);var gE={NATIVE_ARRAY_BUFFER_VIEWS:uE,TYPED_ARRAY_TAG:hE&&lE,aTypedArray:function(e){if(fE(e))return e;throw new aE("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Fg(e)&&(!Yg||qg(nE,e)))return e;throw new aE(Wg(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,i,r){if(Vg){if(i)for(var n in pE){var s=Ug[n];if(s&&Hg(s.prototype,e))try{delete s.prototype[e]}catch(kW){try{s.prototype[e]=t}catch(o){}}}sE[e]&&!i||Jg(sE,e,i?t:uE&&tE[e]||t,r)}},exportTypedArrayStaticMethod:function(e,t,i){var r,n;if(Vg){if(Yg){if(i)for(r in pE)if((n=Ug[r])&&Hg(n,e))try{delete n[e]}catch(kW){}if(nE[e]&&!i)return;try{return Jg(nE,e,i?t:uE&&nE[e]||t)}catch(kW){}}for(r in pE)!(n=Ug[r])||n[e]&&!i||Jg(n,e,t)}},getTypedArrayConstructor:_E,isView:function(e){if(!Bg(e))return!1;var t=Gg(e);return"DataView"===t||Hg(pE,t)||Hg(mE,t)},isTypedArray:fE,TypedArray:nE,TypedArrayPrototype:sE},EE=r,TE=s,vE=xp,yE=gE.NATIVE_ARRAY_BUFFER_VIEWS,SE=EE.ArrayBuffer,IE=EE.Int8Array,RE=!yE||!TE((function(){IE(1)}))||!TE((function(){new IE(-1)}))||!vE((function(e){new IE,new IE(null),new IE(1.5),new IE(e)}),!0)||TE((function(){return 1!==new IE(new SE(2),1,void 0).length})),AE=G,CE=Math.floor,bE=Number.isInteger||function(e){return!AE(e)&&isFinite(e)&&CE(e)===e},kE=nr,DE=RangeError,NE=function(e){var t=kE(e);if(t<0)throw new DE("The argument can't be less than 0");return t},wE=RangeError,OE=function(e,t){var i=NE(e);if(i%t)throw new wE("Wrong offset");return i},PE=Math.round,ME=un,LE=dt,xE=TypeError,VE=function(e){var t=LE(e,"number");if("number"==typeof t)throw new xE("Can't convert number to bigint");return BigInt(t)},UE=Dd,FE=d,BE=$l,HE=Fe,GE=pr,WE=pp,jE=op,JE=ep,KE=function(e){var t=ME(e);return"BigInt64Array"===t||"BigUint64Array"===t},qE=gE.aTypedArrayConstructor,zE=VE,YE=function(e){var t,i,r,n,s,o,a,c,l=BE(this),d=HE(e),u=arguments.length,h=u>1?arguments[1]:void 0,p=void 0!==h,m=jE(d);if(m&&!JE(m))for(c=(a=WE(d,m)).next,d=[];!(o=FE(c,a)).done;)d.push(o.value);for(p&&u>2&&(h=UE(h,arguments[2])),i=GE(d),r=new(qE(l))(i),n=KE(r),t=0;i>t;t++)s=p?h(d[t],t):d[t],r[t]=n?zE(s):+s;return r},XE=aa,QE=zl,$E=G,ZE=it("species"),eT=Array,tT=function(e){var t;return XE(e)&&(t=e.constructor,(QE(t)&&(t===eT||XE(t.prototype))||$E(t)&&null===(t=t[ZE]))&&(t=void 0)),void 0===t?eT:t},iT=Dd,rT=w,nT=Fe,sT=pr,oT=function(e,t){return new(tT(e))(0===t?0:t)},aT=S([].push),cT=function(e){var t=1===e,i=2===e,r=3===e,n=4===e,s=6===e,o=7===e,a=5===e||s;return function(c,l,d,u){for(var h,p,m=nT(c),_=rT(m),f=sT(_),g=iT(l,d),E=0,T=u||oT,v=t?T(c,f):i||o?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:aT(v,h)}else switch(e){case 4:return!1;case 7:aT(v,h)}return s?-1:r||n?n:v}},lT={forEach:cT(0),map:cT(1),filter:cT(2),some:cT(3),every:cT(4),find:cT(5),findIndex:cT(6),filterReject:cT(7)},dT=pr,uT=rn,hT=r,pT=d,mT=o,_T=RE,fT=gE,gT=Rl,ET=Xa,TT=g,vT=zt,yT=bE,ST=ur,IT=ec,RT=OE,AT=function(e){var t=PE(e);return t<0?0:t>255?255:255&t},CT=pt,bT=Ge,kT=un,DT=G,NT=he,wT=cs,OT=K,PT=oo,MT=Zi.f,LT=YE,xT=lT.forEach,VT=Dl,UT=gn,FT=Dt,BT=n,HT=function(e,t,i){for(var r=0,n=arguments.length>2?i:dT(t),s=new e(n);n>r;)s[r]=t[r++];return s},GT=Sc,WT=Ni.get,jT=Ni.set,JT=Ni.enforce,KT=FT.f,qT=BT.f,zT=hT.RangeError,YT=gT.ArrayBuffer,XT=YT.prototype,QT=gT.DataView,$T=fT.NATIVE_ARRAY_BUFFER_VIEWS,ZT=fT.TYPED_ARRAY_TAG,ev=fT.TypedArray,tv=fT.TypedArrayPrototype,iv=fT.isTypedArray,rv="BYTES_PER_ELEMENT",nv="Wrong length",sv=function(e,t){UT(e,t,{configurable:!0,get:function(){return WT(this)[t]}})},ov=function(e){var t;return OT(XT,e)||"ArrayBuffer"===(t=kT(e))||"SharedArrayBuffer"===t},av=function(e,t){return iv(e)&&!NT(t)&&t in e&&yT(+t)&&t>=0},cv=function(e,t){return t=CT(t),av(e,t)?TT(2,e[t]):qT(e,t)},lv=function(e,t,i){return t=CT(t),!(av(e,t)&&DT(i)&&bT(i,"value"))||bT(i,"get")||bT(i,"set")||i.configurable||bT(i,"writable")&&!i.writable||bT(i,"enumerable")&&!i.enumerable?KT(e,t,i):(e[t]=i.value,e)};mT?($T||(BT.f=cv,FT.f=lv,sv(tv,"buffer"),sv(tv,"byteOffset"),sv(tv,"byteLength"),sv(tv,"length")),uT({target:"Object",stat:!0,forced:!$T},{getOwnPropertyDescriptor:cv,defineProperty:lv}),Lg.exports=function(e,t,i){var r=e.match(/\d+/)[0]/8,n=e+(i?"Clamped":"")+"Array",s="get"+e,o="set"+e,a=hT[n],c=a,l=c&&c.prototype,d={},u=function(e,t){KT(e,t,{get:function(){return function(e,t){var i=WT(e);return i.view[s](t*r+i.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,n){var s=WT(e);s.view[o](t*r+s.byteOffset,i?AT(n):n,!0)}(this,t,e)},enumerable:!0})};$T?_T&&(c=t((function(e,t,i,n){return ET(e,l),GT(DT(t)?ov(t)?void 0!==n?new a(t,RT(i,r),n):void 0!==i?new a(t,RT(i,r)):new a(t):iv(t)?HT(c,t):pT(LT,c,t):new a(IT(t)),e,c)})),PT&&PT(c,ev),xT(MT(a),(function(e){e in c||vT(c,e,a[e])})),c.prototype=l):(c=t((function(e,t,i,n){ET(e,l);var s,o,a,d=0,h=0;if(DT(t)){if(!ov(t))return iv(t)?HT(c,t):pT(LT,c,t);s=t,h=RT(i,r);var p=t.byteLength;if(void 0===n){if(p%r)throw new zT(nv);if((o=p-h)<0)throw new zT(nv)}else if((o=ST(n)*r)+h>p)throw new zT(nv);a=o/r}else a=IT(t),s=new YT(o=a*r);for(jT(e,{buffer:s,byteOffset:h,byteLength:o,length:a,view:new QT(s)});d<a;)u(e,d++)})),PT&&PT(c,ev),l=c.prototype=wT(tv)),l.constructor!==c&&vT(l,"constructor",c),JT(l).TypedArrayConstructor=c,ZT&&vT(l,ZT,n);var h=c!==a;d[n]=c,uT({global:!0,constructor:!0,forced:h,sham:!$T},d),rv in c||vT(c,rv,r),rv in l||vT(l,rv,r),VT(n)}):Lg.exports=function(){},Mg("Float32",(function(e){return function(t,i,r){return e(this,t,i,r)}})),Mg("Uint8",(function(e){return function(t,i,r){return e(this,t,i,r)}}));var dv=Ec,uv=VE,hv=un,pv=d,mv=s,_v=gE.aTypedArray,fv=gE.exportTypedArrayMethod,gv=S("".slice);fv("fill",(function(e){var t=arguments.length;_v(this);var i="Big"===gv(hv(this),0,3)?uv(e):+e;return pv(dv,this,i,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),mv((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}))),(0,gE.exportTypedArrayStaticMethod)("from",YE,RE);var Ev=r,Tv=d,vv=gE,yv=pr,Sv=OE,Iv=Fe,Rv=s,Av=Ev.RangeError,Cv=Ev.Int8Array,bv=Cv&&Cv.prototype,kv=bv&&bv.set,Dv=vv.aTypedArray,Nv=vv.exportTypedArrayMethod,wv=!Rv((function(){var e=new Uint8ClampedArray(2);return Tv(kv,e,{length:1,0:3},1),3!==e[1]})),Ov=wv&&vv.NATIVE_ARRAY_BUFFER_VIEWS&&Rv((function(){var e=new Cv(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));Nv("set",(function(e){Dv(this);var t=Sv(arguments.length>1?arguments[1]:void 0,1),i=Iv(e);if(wv)return Tv(kv,this,i,t);var r=this.length,n=yv(i),s=0;if(n+t>r)throw new Av("Wrong length");for(;s<n;)this[t+s]=i[s++]}),!wv||Ov);var Pv=Ll,Mv=s,Lv=Ee,xv=Ea,Vv=va,Uv=ya,Fv=ie,Bv=Ia,Hv=gE.aTypedArray,Gv=gE.exportTypedArrayMethod,Wv=r.Uint16Array,jv=Wv&&Pv(Wv.prototype.sort),Jv=!(!jv||Mv((function(){jv(new Wv(2),null)}))&&Mv((function(){jv(new Wv(2),{})}))),Kv=!!jv&&!Mv((function(){if(Fv)return Fv<74;if(Vv)return Vv<67;if(Uv)return!0;if(Bv)return Bv<602;var e,t,i=new Wv(516),r=Array(516);for(e=0;e<516;e++)t=e%4,i[e]=515-e,r[e]=e-2*t+3;for(jv(i,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(i[e]!==r[e])return!0}));Gv("sort",(function(e){return void 0!==e&&Lv(e),Kv?jv(this,e):xv(Hv(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))}),!Kv||Jv);var qv={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},zv=gt("span").classList,Yv=zv&&zv.constructor&&zv.constructor.prototype,Xv=Yv===Object.prototype?void 0:Yv,Qv=lT.forEach,$v=Qo("forEach")?[].forEach:function(e){return Qv(this,e,arguments.length>1?arguments[1]:void 0)},Zv=r,ey=qv,ty=Xv,iy=$v,ry=zt,ny=function(e){if(e&&e.forEach!==iy)try{ry(e,"forEach",iy)}catch(kW){e.forEach=iy}};for(var sy in ey)ey[sy]&&ny(Zv[sy]&&Zv[sy].prototype);ny(ty);var oy=r,ay=qv,cy=Xv,ly=Bo,dy=zt,uy=Gs,hy=it("iterator"),py=ly.values,my=function(e,t){if(e){if(e[hy]!==py)try{dy(e,hy,py)}catch(kW){e[hy]=py}if(uy(e,t,!0),ay[t])for(var i in ly)if(e[i]!==ly[i])try{dy(e,i,ly[i])}catch(kW){e[i]=ly[i]}}};for(var _y in ay)my(oy[_y]&&oy[_y].prototype,_y);my(cy,"DOMTokenList");var fy=Df.charAt,gy=mn,Ey=Ni,Ty=bo,vy=ko,yy="String Iterator",Sy=Ey.set,Iy=Ey.getterFor(yy);Ty(String,"String",(function(e){Sy(this,{type:yy,string:gy(e),index:0})}),(function(){var e,t=Iy(this),i=t.string,r=t.index;return r>=i.length?vy(void 0,!0):(e=fy(i,r),t.index+=e.length,vy(e,!1))}));var Ry=s,Ay=o,Cy=it("iterator"),by=!Ry((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&&!Ay||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[Cy]||"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})),ky=o,Dy=S,Ny=d,wy=s,Oy=Bn,Py=kr,My=u,Ly=Fe,xy=w,Vy=Object.assign,Uy=Object.defineProperty,Fy=Dy([].concat),By=!Vy||wy((function(){if(ky&&1!==Vy({b:1},Vy(Uy({},"a",{enumerable:!0,get:function(){Uy(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!==Vy({},e)[i]||Oy(Vy({},t)).join("")!==r}))?function(e,t){for(var i=Ly(e),r=arguments.length,n=1,s=Py.f,o=My.f;r>n;)for(var a,c=xy(arguments[n++]),l=s?Fy(Oy(c),s(c)):Oy(c),d=l.length,u=0;d>u;)a=l[u++],ky&&!Ny(o,c,a)||(i[a]=c[a]);return i}:Vy,Hy=Mt,Gy=gp,Wy=o,jy=Dt,Jy=g,Ky=Dd,qy=d,zy=Fe,Yy=function(e,t,i,r){try{return r?t(Hy(i)[0],i[1]):t(i)}catch(kW){Gy(e,"throw",kW)}},Xy=ep,Qy=zl,$y=pr,Zy=function(e,t,i){Wy?jy.f(e,t,Jy(0,i)):e[t]=i},eS=pp,tS=op,iS=Array,rS=S,nS=2147483647,sS=/[^\0-\u007E]/,oS=/[.\u3002\uFF0E\uFF61]/g,aS="Overflow: input needs wider integers to process",cS=RangeError,lS=rS(oS.exec),dS=Math.floor,uS=String.fromCharCode,hS=rS("".charCodeAt),pS=rS([].join),mS=rS([].push),_S=rS("".replace),fS=rS("".split),gS=rS("".toLowerCase),ES=function(e){return e+22+75*(e<26)},TS=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))},vS=function(e){var t=[];e=function(e){for(var t=[],i=0,r=e.length;i<r;){var n=hS(e,i++);if(n>=55296&&n<=56319&&i<r){var s=hS(e,i++);56320==(64512&s)?mS(t,((1023&n)<<10)+(1023&s)+65536):(mS(t,n),i--)}else mS(t,n)}return t}(e);var i,r,n=e.length,s=128,o=0,a=72;for(i=0;i<e.length;i++)(r=e[i])<128&&mS(t,uS(r));var c=t.length,l=c;for(c&&mS(t,"-");l<n;){var d=nS;for(i=0;i<e.length;i++)(r=e[i])>=s&&r<d&&(d=r);var u=l+1;if(d-s>dS((nS-o)/u))throw new cS(aS);for(o+=(d-s)*u,s=d,i=0;i<e.length;i++){if((r=e[i])<s&&++o>nS)throw new cS(aS);if(r===s){for(var h=o,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,uS(ES(m+_%f))),h=dS(_/f),p+=36}mS(t,uS(ES(h))),a=TS(o,u,l===c),o=0,l++}}o++,s++}return pS(t,"")},yS=rn,SS=S,IS=cr,RS=RangeError,AS=String.fromCharCode,CS=String.fromCodePoint,bS=SS([].join);yS({target:"String",stat:!0,arity:1,forced:!!CS&&1!==CS.length},{fromCodePoint:function(e){for(var t,i=[],r=arguments.length,n=0;r>n;){if(t=+arguments[n++],IS(t,1114111)!==t)throw new RS(t+" is not a valid code point");i[n]=t<65536?AS(t):AS(55296+((t-=65536)>>10),t%1024+56320)}return bS(i,"")}});var kS=rn,DS=r,NS=lu,wS=J,OS=d,PS=S,MS=o,LS=by,xS=$i,VS=gn,US=qa,FS=Gs,BS=Ys,HS=Ni,GS=Xa,WS=B,jS=Ge,JS=Dd,KS=un,qS=Mt,zS=G,YS=mn,XS=cs,QS=g,$S=pp,ZS=op,eI=ko,tI=wd,iI=Ea,rI=it("iterator"),nI="URLSearchParams",sI=nI+"Iterator",oI=HS.set,aI=HS.getterFor(nI),cI=HS.getterFor(sI),lI=NS("fetch"),dI=NS("Request"),uI=NS("Headers"),hI=dI&&dI.prototype,pI=uI&&uI.prototype,mI=DS.TypeError,_I=DS.encodeURIComponent,fI=String.fromCharCode,gI=wS("String","fromCodePoint"),EI=parseInt,TI=PS("".charAt),vI=PS([].join),yI=PS([].push),SI=PS("".replace),II=PS([].shift),RI=PS([].splice),AI=PS("".split),CI=PS("".slice),bI=PS(/./.exec),kI=/\+/g,DI=/^[0-9a-f]+$/i,NI=function(e,t){var i=CI(e,t,t+2);return bI(DI,i)?EI(i,16):NaN},wI=function(e){for(var t=0,i=128;i>0&&e&i;i>>=1)t++;return t},OI=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},PI=function(e){for(var t=(e=SI(e,kI," ")).length,i="",r=0;r<t;){var n=TI(e,r);if("%"===n){if("%"===TI(e,r+1)||r+3>t){i+="%",r++;continue}var s=NI(e,r+1);if(s!=s){i+=n,r++;continue}r+=2;var o=wI(s);if(0===o)n=fI(s);else{if(1===o||o>4){i+="�",r++;continue}for(var a=[s],c=1;c<o&&!(++r+3>t||"%"!==TI(e,r));){var l=NI(e,r+1);if(l!=l){r+=3;break}if(l>191||l<128)break;yI(a,l),r+=2,c++}if(a.length!==o){i+="�";continue}var d=OI(a);null===d?i+="�":n=gI(d)}}i+=n,r++}return i},MI=/[!'()~]|%20/g,LI={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},xI=function(e){return LI[e]},VI=function(e){return SI(_I(e),MI,xI)},UI=BS((function(e,t){oI(this,{type:sI,target:aI(e).entries,index:0,kind:t})}),nI,(function(){var e=cI(this),t=e.target,i=e.index++;if(!t||i>=t.length)return e.target=null,eI(void 0,!0);var r=t[i];switch(e.kind){case"keys":return eI(r.key,!1);case"values":return eI(r.value,!1)}return eI([r.key,r.value],!1)}),!0),FI=function(e){this.entries=[],this.url=null,void 0!==e&&(zS(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===TI(e,0)?CI(e,1):e:YS(e)))};FI.prototype={type:nI,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,n,s,o,a,c=this.entries,l=ZS(e);if(l)for(i=(t=$S(e,l)).next;!(r=OS(i,t)).done;){if(s=(n=$S(qS(r.value))).next,(o=OS(s,n)).done||(a=OS(s,n)).done||!OS(s,n).done)throw new mI("Expected sequence with length 2");yI(c,{key:YS(o.value),value:YS(a.value)})}else for(var d in e)jS(e,d)&&yI(c,{key:d,value:YS(e[d])})},parseQuery:function(e){if(e)for(var t,i,r=this.entries,n=AI(e,"&"),s=0;s<n.length;)(t=n[s++]).length&&(i=AI(t,"="),yI(r,{key:PI(II(i)),value:PI(vI(i,"="))}))},serialize:function(){for(var e,t=this.entries,i=[],r=0;r<t.length;)e=t[r++],yI(i,VI(e.key)+"="+VI(e.value));return vI(i,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var BI=function(){GS(this,HI);var e=oI(this,new FI(arguments.length>0?arguments[0]:void 0));MS||(this.size=e.entries.length)},HI=BI.prototype;if(US(HI,{append:function(e,t){var i=aI(this);tI(arguments.length,2),yI(i.entries,{key:YS(e),value:YS(t)}),MS||this.length++,i.updateURL()},delete:function(e){for(var t=aI(this),i=tI(arguments.length,1),r=t.entries,n=YS(e),s=i<2?void 0:arguments[1],o=void 0===s?s:YS(s),a=0;a<r.length;){var c=r[a];if(c.key!==n||void 0!==o&&c.value!==o)a++;else if(RI(r,a,1),void 0!==o)break}MS||(this.size=r.length),t.updateURL()},get:function(e){var t=aI(this).entries;tI(arguments.length,1);for(var i=YS(e),r=0;r<t.length;r++)if(t[r].key===i)return t[r].value;return null},getAll:function(e){var t=aI(this).entries;tI(arguments.length,1);for(var i=YS(e),r=[],n=0;n<t.length;n++)t[n].key===i&&yI(r,t[n].value);return r},has:function(e){for(var t=aI(this).entries,i=tI(arguments.length,1),r=YS(e),n=i<2?void 0:arguments[1],s=void 0===n?n:YS(n),o=0;o<t.length;){var a=t[o++];if(a.key===r&&(void 0===s||a.value===s))return!0}return!1},set:function(e,t){var i=aI(this);tI(arguments.length,1);for(var r,n=i.entries,s=!1,o=YS(e),a=YS(t),c=0;c<n.length;c++)(r=n[c]).key===o&&(s?RI(n,c--,1):(s=!0,r.value=a));s||yI(n,{key:o,value:a}),MS||(this.size=n.length),i.updateURL()},sort:function(){var e=aI(this);iI(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,i=aI(this).entries,r=JS(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 UI(this,"keys")},values:function(){return new UI(this,"values")},entries:function(){return new UI(this,"entries")}},{enumerable:!0}),xS(HI,rI,HI.entries,{name:"entries"}),xS(HI,"toString",(function(){return aI(this).serialize()}),{enumerable:!0}),MS&&VS(HI,"size",{get:function(){return aI(this).entries.length},configurable:!0,enumerable:!0}),FS(BI,nI),kS({global:!0,constructor:!0,forced:!LS},{URLSearchParams:BI}),!LS&&WS(uI)){var GI=PS(pI.has),WI=PS(pI.set),jI=function(e){if(zS(e)){var t,i=e.body;if(KS(i)===nI)return t=e.headers?new uI(e.headers):new uI,GI(t,"content-type")||WI(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),XS(e,{body:QS(0,YS(i)),headers:QS(0,t)})}return e};if(WS(lI)&&kS({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return lI(e,arguments.length>1?jI(arguments[1]):{})}}),WS(dI)){var JI=function(e){return GS(this,hI),new dI(e,arguments.length>1?jI(arguments[1]):{})};hI.constructor=JI,JI.prototype=hI,kS({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:JI})}}var KI,qI=rn,zI=o,YI=by,XI=r,QI=Dd,$I=S,ZI=$i,eR=gn,tR=Xa,iR=Ge,rR=By,nR=function(e){var t=zy(e),i=Qy(this),r=arguments.length,n=r>1?arguments[1]:void 0,s=void 0!==n;s&&(n=Ky(n,r>2?arguments[2]:void 0));var o,a,c,l,d,u,h=tS(t),p=0;if(!h||this===iS&&Xy(h))for(o=$y(t),a=i?new this(o):iS(o);o>p;p++)u=s?n(t[p],p):t[p],Zy(a,p,u);else for(a=i?new this:[],d=(l=eS(t,h)).next;!(c=qy(d,l)).done;p++)u=s?Yy(l,n,[c.value,p],!0):c.value,Zy(a,p,u);return a.length=p,a},sR=ma,oR=Df.codeAt,aR=function(e){var t,i,r=[],n=fS(_S(gS(e),oS,"."),".");for(t=0;t<n.length;t++)i=n[t],mS(r,lS(sS,i)?"xn--"+vS(i):i);return pS(r,".")},cR=mn,lR=Gs,dR=wd,uR={URLSearchParams:BI,getState:aI},hR=Ni,pR=hR.set,mR=hR.getterFor("URL"),_R=uR.URLSearchParams,fR=uR.getState,gR=XI.URL,ER=XI.TypeError,TR=XI.parseInt,vR=Math.floor,yR=Math.pow,SR=$I("".charAt),IR=$I(/./.exec),RR=$I([].join),AR=$I(1..toString),CR=$I([].pop),bR=$I([].push),kR=$I("".replace),DR=$I([].shift),NR=$I("".split),wR=$I("".slice),OR=$I("".toLowerCase),PR=$I([].unshift),MR="Invalid scheme",LR="Invalid host",xR="Invalid port",VR=/[a-z]/i,UR=/[\d+-.a-z]/i,FR=/\d/,BR=/^0x/i,HR=/^[0-7]+$/,GR=/^\d+$/,WR=/^[\da-f]+$/i,jR=/[\0\t\n\r #%/:<>?@[\\\]^|]/,JR=/[\0\t\n\r #/:<>?@[\\\]^|]/,KR=/^[\u0000-\u0020]+/,qR=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,zR=/[\t\n\r]/g,YR=function(e){var t,i,r,n;if("number"==typeof e){for(t=[],i=0;i<4;i++)PR(t,e%256),e=vR(e/256);return RR(t,".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,i=1,r=null,n=0,s=0;s<8;s++)0!==e[s]?(n>i&&(t=r,i=n),r=null,n=0):(null===r&&(r=s),++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+=AR(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},XR={},QR=rR({},XR,{" ":1,'"':1,"<":1,">":1,"`":1}),$R=rR({},QR,{"#":1,"?":1,"{":1,"}":1}),ZR=rR({},$R,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),eA=function(e,t){var i=oR(e,0);return i>32&&i<127&&!iR(t,e)?e:encodeURIComponent(e)},tA={ftp:21,file:null,http:80,https:443,ws:80,wss:443},iA=function(e,t){var i;return 2===e.length&&IR(VR,SR(e,0))&&(":"===(i=SR(e,1))||!t&&"|"===i)},rA=function(e){var t;return e.length>1&&iA(wR(e,0,2))&&(2===e.length||"/"===(t=SR(e,2))||"\\"===t||"?"===t||"#"===t)},nA=function(e){return"."===e||"%2e"===OR(e)},sA={},oA={},aA={},cA={},lA={},dA={},uA={},hA={},pA={},mA={},_A={},fA={},gA={},EA={},TA={},vA={},yA={},SA={},IA={},RA={},AA={},CA=function(e,t,i){var r,n,s,o=cR(e);if(t){if(n=this.parse(o))throw new ER(n);this.searchParams=null}else{if(void 0!==i&&(r=new CA(i,!0)),n=this.parse(o,null,r))throw new ER(n);(s=fR(new _R)).bindURL(this),this.searchParams=s}};CA.prototype={type:"URL",parse:function(e,t,i){var r,n,s,o,a,c=this,l=t||sA,d=0,u="",h=!1,p=!1,m=!1;for(e=cR(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=kR(e,KR,""),e=kR(e,qR,"$1")),e=kR(e,zR,""),r=nR(e);d<=r.length;){switch(n=r[d],l){case sA:if(!n||!IR(VR,n)){if(t)return MR;l=aA;continue}u+=OR(n),l=oA;break;case oA:if(n&&(IR(UR,n)||"+"===n||"-"===n||"."===n))u+=OR(n);else{if(":"!==n){if(t)return MR;u="",l=aA,d=0;continue}if(t&&(c.isSpecial()!==iR(tA,u)||"file"===u&&(c.includesCredentials()||null!==c.port)||"file"===c.scheme&&!c.host))return;if(c.scheme=u,t)return void(c.isSpecial()&&tA[c.scheme]===c.port&&(c.port=null));u="","file"===c.scheme?l=EA:c.isSpecial()&&i&&i.scheme===c.scheme?l=cA:c.isSpecial()?l=hA:"/"===r[d+1]?(l=lA,d++):(c.cannotBeABaseURL=!0,bR(c.path,""),l=IA)}break;case aA:if(!i||i.cannotBeABaseURL&&"#"!==n)return MR;if(i.cannotBeABaseURL&&"#"===n){c.scheme=i.scheme,c.path=sR(i.path),c.query=i.query,c.fragment="",c.cannotBeABaseURL=!0,l=AA;break}l="file"===i.scheme?EA:dA;continue;case cA:if("/"!==n||"/"!==r[d+1]){l=dA;continue}l=pA,d++;break;case lA:if("/"===n){l=mA;break}l=SA;continue;case dA:if(c.scheme=i.scheme,n===KI)c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=sR(i.path),c.query=i.query;else if("/"===n||"\\"===n&&c.isSpecial())l=uA;else if("?"===n)c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=sR(i.path),c.query="",l=RA;else{if("#"!==n){c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=sR(i.path),c.path.length--,l=SA;continue}c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,c.path=sR(i.path),c.query=i.query,c.fragment="",l=AA}break;case uA:if(!c.isSpecial()||"/"!==n&&"\\"!==n){if("/"!==n){c.username=i.username,c.password=i.password,c.host=i.host,c.port=i.port,l=SA;continue}l=mA}else l=pA;break;case hA:if(l=pA,"/"!==n||"/"!==SR(u,d+1))continue;d++;break;case pA:if("/"!==n&&"\\"!==n){l=mA;continue}break;case mA:if("@"===n){h&&(u="%40"+u),h=!0,s=nR(u);for(var _=0;_<s.length;_++){var f=s[_];if(":"!==f||m){var g=eA(f,ZR);m?c.password+=g:c.username+=g}else m=!0}u=""}else if(n===KI||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()){if(h&&""===u)return"Invalid authority";d-=nR(u).length+1,u="",l=_A}else u+=n;break;case _A:case fA:if(t&&"file"===c.scheme){l=vA;continue}if(":"!==n||p){if(n===KI||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()){if(c.isSpecial()&&""===u)return LR;if(t&&""===u&&(c.includesCredentials()||null!==c.port))return;if(o=c.parseHost(u))return o;if(u="",l=yA,t)return;continue}"["===n?p=!0:"]"===n&&(p=!1),u+=n}else{if(""===u)return LR;if(o=c.parseHost(u))return o;if(u="",l=gA,t===fA)return}break;case gA:if(!IR(FR,n)){if(n===KI||"/"===n||"?"===n||"#"===n||"\\"===n&&c.isSpecial()||t){if(""!==u){var E=TR(u,10);if(E>65535)return xR;c.port=c.isSpecial()&&E===tA[c.scheme]?null:E,u=""}if(t)return;l=yA;continue}return xR}u+=n;break;case EA:if(c.scheme="file","/"===n||"\\"===n)l=TA;else{if(!i||"file"!==i.scheme){l=SA;continue}switch(n){case KI:c.host=i.host,c.path=sR(i.path),c.query=i.query;break;case"?":c.host=i.host,c.path=sR(i.path),c.query="",l=RA;break;case"#":c.host=i.host,c.path=sR(i.path),c.query=i.query,c.fragment="",l=AA;break;default:rA(RR(sR(r,d),""))||(c.host=i.host,c.path=sR(i.path),c.shortenPath()),l=SA;continue}}break;case TA:if("/"===n||"\\"===n){l=vA;break}i&&"file"===i.scheme&&!rA(RR(sR(r,d),""))&&(iA(i.path[0],!0)?bR(c.path,i.path[0]):c.host=i.host),l=SA;continue;case vA:if(n===KI||"/"===n||"\\"===n||"?"===n||"#"===n){if(!t&&iA(u))l=SA;else if(""===u){if(c.host="",t)return;l=yA}else{if(o=c.parseHost(u))return o;if("localhost"===c.host&&(c.host=""),t)return;u="",l=yA}continue}u+=n;break;case yA:if(c.isSpecial()){if(l=SA,"/"!==n&&"\\"!==n)continue}else if(t||"?"!==n)if(t||"#"!==n){if(n!==KI&&(l=SA,"/"!==n))continue}else c.fragment="",l=AA;else c.query="",l=RA;break;case SA:if(n===KI||"/"===n||"\\"===n&&c.isSpecial()||!t&&("?"===n||"#"===n)){if(".."===(a=OR(a=u))||"%2e."===a||".%2e"===a||"%2e%2e"===a?(c.shortenPath(),"/"===n||"\\"===n&&c.isSpecial()||bR(c.path,"")):nA(u)?"/"===n||"\\"===n&&c.isSpecial()||bR(c.path,""):("file"===c.scheme&&!c.path.length&&iA(u)&&(c.host&&(c.host=""),u=SR(u,0)+":"),bR(c.path,u)),u="","file"===c.scheme&&(n===KI||"?"===n||"#"===n))for(;c.path.length>1&&""===c.path[0];)DR(c.path);"?"===n?(c.query="",l=RA):"#"===n&&(c.fragment="",l=AA)}else u+=eA(n,$R);break;case IA:"?"===n?(c.query="",l=RA):"#"===n?(c.fragment="",l=AA):n!==KI&&(c.path[0]+=eA(n,XR));break;case RA:t||"#"!==n?n!==KI&&("'"===n&&c.isSpecial()?c.query+="%27":c.query+="#"===n?"%23":eA(n,XR)):(c.fragment="",l=AA);break;case AA:n!==KI&&(c.fragment+=eA(n,QR))}d++}},parseHost:function(e){var t,i,r;if("["===SR(e,0)){if("]"!==SR(e,e.length-1))return LR;if(t=function(e){var t,i,r,n,s,o,a,c=[0,0,0,0,0,0,0,0],l=0,d=null,u=0,h=function(){return SR(e,u)};if(":"===h()){if(":"!==SR(e,1))return;u+=2,d=++l}for(;h();){if(8===l)return;if(":"!==h()){for(t=i=0;i<4&&IR(WR,h());)t=16*t+TR(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(!IR(FR,h()))return;for(;IR(FR,h());){if(s=TR(h(),10),null===n)n=s;else{if(0===n)return;n=10*n+s}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(o=l-d,l=7;0!==l&&o>0;)a=c[l],c[l--]=c[d+o-1],c[d+--o]=a;else if(8!==l)return;return c}(wR(e,1,-1)),!t)return LR;this.host=t}else if(this.isSpecial()){if(e=aR(e),IR(jR,e))return LR;if(t=function(e){var t,i,r,n,s,o,a,c=NR(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(s=10,n.length>1&&"0"===SR(n,0)&&(s=IR(BR,n)?16:8,n=wR(n,8===s?1:2)),""===n)o=0;else{if(!IR(10===s?GR:8===s?HR:WR,n))return e;o=TR(n,s)}bR(i,o)}for(r=0;r<t;r++)if(o=i[r],r===t-1){if(o>=yR(256,5-t))return null}else if(o>255)return null;for(a=CR(i),r=0;r<i.length;r++)a+=i[r]*yR(256,3-r);return a}(e),null===t)return LR;this.host=t}else{if(IR(JR,e))return LR;for(t="",i=nR(e),r=0;r<i.length;r++)t+=eA(i[r],XR);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return iR(tA,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"===this.scheme&&1===t&&iA(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,i=e.username,r=e.password,n=e.host,s=e.port,o=e.path,a=e.query,c=e.fragment,l=t+":";return null!==n?(l+="//",e.includesCredentials()&&(l+=i+(r?":"+r:"")+"@"),l+=YR(n),null!==s&&(l+=":"+s)):"file"===t&&(l+="//"),l+=e.cannotBeABaseURL?o[0]:o.length?"/"+RR(o,"/"):"",null!==a&&(l+="?"+a),null!==c&&(l+="#"+c),l},setHref:function(e){var t=this.parse(e);if(t)throw new ER(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new bA(e.path[0]).origin}catch(kW){return"null"}return"file"!==e&&this.isSpecial()?e+"://"+YR(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(cR(e)+":",sA)},getUsername:function(){return this.username},setUsername:function(e){var t=nR(cR(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var i=0;i<t.length;i++)this.username+=eA(t[i],ZR)}},getPassword:function(){return this.password},setPassword:function(e){var t=nR(cR(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var i=0;i<t.length;i++)this.password+=eA(t[i],ZR)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?YR(e):YR(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,_A)},getHostname:function(){var e=this.host;return null===e?"":YR(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,fA)},getPort:function(){var e=this.port;return null===e?"":cR(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""===(e=cR(e))?this.port=null:this.parse(e,gA))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+RR(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,yA))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""===(e=cR(e))?this.query=null:("?"===SR(e,0)&&(e=wR(e,1)),this.query="",this.parse(e,RA)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!==(e=cR(e))?("#"===SR(e,0)&&(e=wR(e,1)),this.fragment="",this.parse(e,AA)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var bA=function(e){var t=tR(this,kA),i=dR(arguments.length,1)>1?arguments[1]:void 0,r=pR(t,new CA(e,!1,i));zI||(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())},kA=bA.prototype,DA=function(e,t){return{get:function(){return mR(this)[e]()},set:t&&function(e){return mR(this)[t](e)},configurable:!0,enumerable:!0}};if(zI&&(eR(kA,"href",DA("serialize","setHref")),eR(kA,"origin",DA("getOrigin")),eR(kA,"protocol",DA("getProtocol","setProtocol")),eR(kA,"username",DA("getUsername","setUsername")),eR(kA,"password",DA("getPassword","setPassword")),eR(kA,"host",DA("getHost","setHost")),eR(kA,"hostname",DA("getHostname","setHostname")),eR(kA,"port",DA("getPort","setPort")),eR(kA,"pathname",DA("getPathname","setPathname")),eR(kA,"search",DA("getSearch","setSearch")),eR(kA,"searchParams",DA("getSearchParams")),eR(kA,"hash",DA("getHash","setHash"))),ZI(kA,"toJSON",(function(){return mR(this).serialize()}),{enumerable:!0}),ZI(kA,"toString",(function(){return mR(this).serialize()}),{enumerable:!0}),gR){var NA=gR.createObjectURL,wA=gR.revokeObjectURL;NA&&ZI(bA,"createObjectURL",QI(NA,gR)),wA&&ZI(bA,"revokeObjectURL",QI(wA,gR))}lR(bA,"URL"),qI({global:!0,constructor:!0,forced:!YI,sham:!zI},{URL:bA});var OA=d;rn({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return OA(URL.prototype.toString,this)}});let PA=!0,MA=!0;function LA(e,t,i){const r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function xA(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 s=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,s),n.apply(this,[e,s])};const s=r.removeEventListener;r.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t])return s.apply(this,arguments);if(!this._eventMap[t].has(i))return s.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,s.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 VA(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(PA=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function UA(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(MA=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function FA(){if("object"==typeof window){if(PA)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function BA(e,t){MA&&console.warn(e+" is deprecated, please use "+t+" instead.")}function HA(e){return"[object Object]"===Object.prototype.toString.call(e)}function GA(e){return HA(e)?Object.keys(e).reduce((function(t,i){const r=HA(e[i]),n=r?GA(e[i]):e[i],s=r&&!Object.keys(n).length;return void 0===n||s?t:Object.assign(t,{[i]:n})}),{}):e}function WA(e,t,i){t&&!i.has(t.id)&&(i.set(t.id,t),Object.keys(t).forEach((r=>{r.endsWith("Id")?WA(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach((t=>{WA(e,e.get(t),i)}))})))}function jA(e,t,i){const r=i?"outbound-rtp":"inbound-rtp",n=new Map;if(null===t)return n;const s=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&s.push(e)})),s.forEach((t=>{e.forEach((i=>{i.type===r&&i.trackId===t.id&&WA(e,i,n)}))})),n}const JA=FA;function KA(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 s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});const o=t.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&(!i.mediaDevices.getSupportedConstraints||!i.mediaDevices.getSupportedConstraints().facingMode||o)){let t;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?t=["back","rear"]:"user"!==s.exact&&"user"!==s.ideal||(t=["front"]),t)return i.mediaDevices.enumerateDevices().then((i=>{let o=(i=i.filter((e=>"videoinput"===e.kind))).find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!o&&i.length&&t.includes("back")&&(o=i[i.length-1]),o&&(e.video.deviceId=s.exact?{exact:o.deviceId}:{ideal:o.deviceId}),e.video=r(e.video),JA("chrome: "+JSON.stringify(e)),n(e)}))}e.video=r(e.video)}return JA("chrome: "+JSON.stringify(e)),n(e)},s=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(s(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(s(e))))))}}}function qA(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function zA(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 xA(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function YA(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 XA(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},s=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const r=function(e){i(s(n(e)))};return t.apply(this,[r,e])}return new Promise(((e,i)=>{t.apply(this,[function(t){e(s(n(t)))},i])})).then(i,r)}}function QA(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=>jA(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}),xA(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>jA(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 $A(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 ZA(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return $A(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 s(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=s(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then((e=>s(this,e)))}};e.RTCPeerConnection.prototype[t]=r[t]}));const o=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]),o.apply(this,arguments)):o.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:s(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 eC(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 tC(e,t){xA(e,"negotiationneeded",(e=>{const i=e.target;if(!(t.version<72||i.getConfiguration&&"plan-b"===i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e}))}var iC=Object.freeze({__proto__:null,shimMediaStream:qA,shimOnTrack:zA,shimGetSendersWithDtmf:YA,shimGetStats:XA,shimSenderReceiverGetStats:QA,shimAddTrackRemoveTrackWithNative:$A,shimAddTrackRemoveTrack:ZA,shimPeerConnection:eC,fixNegotiationNeeded:tC,shimGetUserMedia:KA,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,s=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:s||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 rC(e,t){const i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,r){BA("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 nC(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 sC(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,s]=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(Nb){if("TypeError"!==Nb.name)throw Nb;e.forEach(((t,r)=>{e.set(r,Object.assign({},t,{type:i[t.type]||t.type}))}))}return e})).then(n,s)}}function oC(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 aC(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}),xA(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function cC(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){BA("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function lC(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 uC(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 hC(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 pC(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:nC,shimPeerConnection:sC,shimSenderGetStats:oC,shimReceiverGetStats:aC,shimRemoveStream:cC,shimRTCDataChannel:lC,shimAddTransceiver:dC,shimGetParameters:uC,shimCreateOffer:hC,shimCreateAnswer:pC,shimGetUserMedia:rC,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 _C(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 fC(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 gC(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,n=t.setLocalDescription,s=t.setRemoteDescription,o=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=s.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.setRemoteDescription=a,a=function(e,t,i){const r=o.apply(this,[e]);return i?(r.then(t,i),Promise.resolve()):r},t.addIceCandidate=a}function EC(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(TC(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,i,r){t.mediaDevices.getUserMedia(e).then(i,r)}.bind(t))}function TC(e){return e&&void 0!==e.video?Object.assign({},e,{video:GA(e.video)}):e}function vC(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?(BA("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 yC(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 SC(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 IC(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var RC=Object.freeze({__proto__:null,shimLocalStreamsAPI:_C,shimRemoteStreamsAPI:fC,shimCallbacksAPI:gC,shimGetUserMedia:EC,shimConstraints:TC,shimRTCIceServerUrls:vC,shimTrackEventTransceiver:yC,shimCreateOfferLegacy:SC,shimAudioContext:IC}),AC={},CC={get exports(){return AC},set exports(e){AC=e}};!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 s=3;s<r.length;s++){const n=r[s],o=t.matchPrefix(e,"a=rtpmap:"+n+" ")[0];if(o){const r=t.parseRtpMap(o),s=t.matchPrefix(e,"a=fmtp:"+n+" ");switch(r.parameters=s.length?t.parseFmtp(s[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"),s=-1!==r.fecMechanisms.indexOf("ULPFEC"),o=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"cname"===e.attribute)),a=o.length>0&&o[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:s?"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 s=t.matchPrefix(e,"a=rtcp-mux");return i.mux=s.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 s=t.matchPrefix(e,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substring(12),10),protocol:i.fmt,maxMessageSize:n};const o=t.matchPrefix(e,"a=sctpmap:");if(o.length>0){const e=o[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 s=void 0!==i?i:2;n=e||t.generateSessionId();return"v=0\r\no="+(r||"thisisadapterortc")+" "+n+" "+s+" 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}(CC);var bC=AC,kC=e({__proto__:null,default:bC},[AC]);function DC(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=bC.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,xA(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function NC(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||xA(e,"icecandidate",(e=>{if(e.candidate){const t=bC.parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e}))}function wC(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=bC.splitSections(e.sdp);return t.shift(),t.some((e=>{const t=bC.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=bC.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 s={};Object.defineProperty(s,"maxMessageSize",{get:()=>n}),this._sctp=s}return i.apply(this,arguments)}}function OC(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},xA(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function PC(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 MC(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 LC(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 xC(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 VC=Object.freeze({__proto__:null,shimRTCIceCandidate:DC,shimRTCIceCandidateRelayProtocol:NC,shimMaxMessageSize:wC,shimSendThrowTypeError:OC,shimConnectionState:PC,removeExtmapAllowMixed:MC,shimAddIceCandidateNullOrEmpty:LC,shimParameterlessSetLocalDescription:xC});!function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=FA,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=LA(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=LA(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=LA(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}(e),n={browserDetails:r,commonShim:VC,extractVersion:LA,disableLog:VA,disableWarnings:UA,sdp:kC};switch(r.browser){case"chrome":if(!iC||!eC||!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=iC,LC(e,r),xC(e),KA(e,r),qA(e),eC(e,r),zA(e),ZA(e,r),YA(e),XA(e),QA(e),tC(e,r),DC(e),NC(e),PC(e),wC(e,r),OC(e),MC(e,r);break;case"firefox":if(!mC||!sC||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),n;i("adapter.js shimming firefox."),n.browserShim=mC,LC(e,r),xC(e),rC(e,r),sC(e,r),nC(e),cC(e),oC(e),aC(e),lC(e),dC(e),uC(e),hC(e),pC(e),DC(e),PC(e),wC(e,r),OC(e);break;case"safari":if(!RC||!t.shimSafari)return i("Safari shim is not included in this adapter release."),n;i("adapter.js shimming safari."),n.browserShim=RC,LC(e,r),xC(e),vC(e),SC(e),gC(e),_C(e),fC(e),yC(e),EC(e),IC(e),DC(e),NC(e),wC(e,r),OC(e),MC(e,r);break;default:i("Unsupported browser!")}}({window:"undefined"==typeof window?void 0:window});var UC,FC=Object.create,BC=Object.defineProperty,HC=Object.defineProperties,GC=Object.getOwnPropertyDescriptor,WC=Object.getOwnPropertyDescriptors,jC=Object.getOwnPropertyNames,JC=Object.getOwnPropertySymbols,KC=Object.getPrototypeOf,qC=Object.prototype.hasOwnProperty,zC=Object.prototype.propertyIsEnumerable,YC=Reflect.get,XC=Math.pow,QC=(e,t,i)=>t in e?BC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,$C=(e,t)=>{for(var i in t||(t={}))qC.call(t,i)&&QC(e,i,t[i]);if(JC)for(var i of JC(t))zC.call(t,i)&&QC(e,i,t[i]);return e},ZC=(e,t)=>HC(e,WC(t)),eb=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),tb=(e,t)=>{for(var i in t)BC(e,i,{get:t[i],enumerable:!0})},ib=(e,t,i)=>(i=null!=e?FC(KC(e)):{},((e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of jC(t))!qC.call(e,n)&&n!==i&&BC(e,n,{get:()=>t[n],enumerable:!(r=GC(t,n))||r.enumerable});return e})(!t&&e&&e.__esModule?i:BC(i,"default",{value:e,enumerable:!0}),e)),rb=(e,t,i,r)=>{for(var n,s=r>1?void 0:r?GC(t,i):t,o=e.length-1;o>=0;o--)(n=e[o])&&(s=(r?n(t,i,s):n(s))||s);return r&&s&&BC(t,i,s),s},nb=(e,t,i)=>QC(e,"symbol"!=typeof t?t+"":t,i),sb=(e,t,i)=>YC(KC(e),i,t),ob=(e,t,i)=>new Promise(((r,n)=>{var s=e=>{try{a(i.next(e))}catch(_O){n(_O)}},o=e=>{try{a(i.throw(e))}catch(_O){n(_O)}},a=e=>e.done?r(e.value):Promise.resolve(e.value).then(s,o);a((i=i.apply(e,t)).next())})),ab=eb(((e,t)=>{var i=Object.prototype.hasOwnProperty,r="~";function n(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,i,n,o){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new s(i,n||e,o),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,s=i.length,o=new Array(s);n<s;n++)o[n]=i[n].fn;return o},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,s,o){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,s),!0;case 6:return d.fn.call(d.context,t,i,n,s,o),!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 o(this,e,t,i,!1)},c.prototype.once=function(e,t,i){return o(this,e,t,i,!0)},c.prototype.removeListener=function(e,t,i,n){var s=r?r+e:e;if(!this._events[s])return this;if(!t)return a(this,s),this;var o=this._events[s];if(o.fn)o.fn===t&&(!n||o.once)&&(!i||o.context===i)&&a(this,s);else{for(var c=0,l=[],d=o.length;c<d;c++)(o[c].fn!==t||n&&!o[c].once||i&&o[c].context!==i)&&l.push(o[c]);l.length?this._events[s]=1===l.length?l[0]:l:a(this,s)}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)})),cb=eb(((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")}))}))})),lb=eb((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 s=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var s=0;s<r.length;s+=1)null!=e[s+1]&&(i[r[s]]=t(e[s+1]))})(r.match(e.reg),s,e.names,e.name),e.push&&i[e.push].push(s)},r=cb(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},s=[],o=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach((function(e){var t=e[0],n=e.slice(2);"m"===t&&(s.push({rtp:[],fmtp:[]}),o=s[s.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,o,n)}})),t.media=s,t};var s=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(s,{})},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(s,{})}))},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=eb(((e,t)=>{var i=cb(),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""}}))},s=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 s=0;s<t.names.length;s+=1){var o=t.names[s];t.name?r.push(i[t.name][o]):r.push(i[t.names[s]])}else r.push(i[t.name]);return n.apply(null,r)},o=["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||o,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(s(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(s(t,i,e))}))}))})),e.media.forEach((function(e){c.push(s("m",i.m[0],e)),n.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(s(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(s(t,i,e))}))}))}))})),c.join("\r\n")+"\r\n"}})),ub=eb((e=>{var t=lb(),i=db();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})),hb=eb(((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")}))}))})),pb=eb((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 s=e.push?{}:n?i[e.name]:i;(function(e,i,r,n){if(n&&!r)i[n]=t(e[1]);else for(var s=0;s<r.length;s+=1)null!=e[s+1]&&(i[r[s]]=t(e[s+1]))})(r.match(e.reg),s,e.names,e.name),e.push&&i[e.push].push(s)},r=hb(),n=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},s=[],o=t;return e.split(/(\r\n|\r|\n)/).filter(n).forEach((function(e){var t=e[0],n=e.slice(2);"m"===t&&(s.push({rtp:[],fmtp:[]}),o=s[s.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,o,n)}})),t.media=s,t};var s=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(s,{})},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(s,{})}))},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=eb(((e,t)=>{var i=hb(),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""}}))},s=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 s=0;s<t.names.length;s+=1){var o=t.names[s];t.name?r.push(i[t.name][o]):r.push(i[t.names[s]])}else r.push(i[t.name]);return n.apply(null,r)},o=["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||o,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(s(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(s(t,i,e))}))}))})),e.media.forEach((function(e){c.push(s("m",i.m[0],e)),n.forEach((function(t){i[t].forEach((function(i){i.name in e&&null!=e[i.name]?c.push(s(t,i,e)):i.push in e&&null!=e[i.push]&&e[i.push].forEach((function(e){c.push(s(t,i,e))}))}))}))})),c.join("\r\n")+"\r\n"}})),_b=eb((e=>{var t=pb(),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})),fb=ib(ab()),gb=((UC=gb||{})[UC.INVALID_PARAMETER=4096]="INVALID_PARAMETER",UC[UC.INVALID_OPERATION=4097]="INVALID_OPERATION",UC[UC.NOT_SUPPORTED=4098]="NOT_SUPPORTED",UC[UC.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",UC[UC.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",UC[UC.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",UC[UC.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",UC[UC.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",UC[UC.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",UC[UC.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",UC[UC.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",UC[UC.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",UC[UC.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",UC[UC.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",UC[UC.CLIENT_BANNED=16448]="CLIENT_BANNED",UC[UC.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",UC[UC.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",UC[UC.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",UC[UC.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",UC[UC.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",UC[UC.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",UC[UC.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",UC[UC.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",UC[UC.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",UC[UC.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",UC[UC.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",UC[UC.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",UC[UC.API_CALL_ABORTED=16461]="API_CALL_ABORTED",UC[UC.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",UC[UC.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",UC[UC.UNKNOWN=65535]="UNKNOWN",UC),Eb=gb,Tb=class extends Error{constructor(e){let{name:t="RtcError",message:i,code:r=Eb.UNKNOWN,extraCode:n=0,constraint:s}=e,o="<".concat(function(e){for(let t in Eb)if(Eb[t]===e)return t;return"UNKNOWN"}(r)," 0x").concat(r.toString(16),">"),a="".concat(i).concat(s?" constraint: ".concat(s):"").concat(null!=i&&i.includes(o)?"":" ".concat(o));super(a),nb(this,"code"),nb(this,"extraCode"),nb(this,"message"),nb(this,"originMessage"),nb(this,"name"),nb(this,"constraint"),this.code=r,this.extraCode=n,this.name=t,this.message=a,this.constraint=s,this.originMessage=i}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},vb=Tb,yb=((new Date).getTime(),0),Sb=function(){return(new Date).getTime()+yb},Ib=function(){let e=new Date;return e.setTime(Sb()),e.toLocaleString()},Rb=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)},Ab={};tb(Ab,{bytes2ms:()=>mD,convertObjectNumberToInt:()=>rN,copyProperties:()=>pD,deepClone:()=>qD,deepMerge:()=>KD,delay:()=>nN,fibonacci:()=>yD,formatedTime:()=>XD,getConstructorName:()=>LD,getContainerFromElement:()=>YD,getEnv:()=>sD,getInternalVersion:()=>BD,getLoggerUrl:()=>aD,getMuteStateFromFlag:()=>WD,getNetworkType:()=>lD,getNumNetworkType:()=>hD,getReconnectionTimeout:()=>SD,getStringByteLength:()=>ZD,getTurnServer:()=>jD,getUint32Version:()=>iN,getValueType:()=>ID,getViewListFromView:()=>zD,glog:()=>ED,ipv4ToUint32:()=>JD,isArray:()=>ND,isAudioWorkletSupported:()=>xD,isBoolean:()=>kD,isConstructor:()=>MD,isEmpty:()=>GD,isFunction:()=>RD,isLangChinese:()=>TD,isMediaStreamTrack:()=>wD,isNumber:()=>bD,isObject:()=>DD,isOverseaSdkAppId:()=>oD,isPlainObject:()=>vD,isPortrait:()=>eN,isPromise:()=>PD,isRemoteTrack:()=>OD,isString:()=>CD,isUndefined:()=>AD,loadImage:()=>tN,ms2bytes:()=>fD,ms2samples:()=>gD,performanceNow:()=>UD,promiseAny:()=>VD,samples2ms:()=>_D,setNetworkType:()=>uD,stringify:()=>QD,stringifyIncludeValue:()=>$D,throttlePromise:()=>sN});var Cb={};tb(Cb,{AUDIO_MUTE_BIT:()=>uk,AUDIO_STAT_BIT:()=>dk,AUX_STAT_BIT:()=>lk,AUX_STREAM_MSID:()=>fk,BACKEND_ENV:()=>sk,BASE_DOC_URL:()=>Hb,BASE_HOST:()=>Vb,CAPABILITIES_KEYS:()=>rD,CLASS_NAME:()=>zk,CLOUD_CONSOLE_URL:()=>Bb,CROSS_ROOM_BIT:()=>mk,DATA_FREEZE_TIMING:()=>Hk,DEFAULT_ASSETS_URL:()=>Gb,DOC_URL:()=>Wb,DTLS_STATE_UNKNOWN:()=>Ck,ENV_NAME:()=>zb,EXCHANGE_SDP_TIMEOUT:()=>xk,IS_WORKER:()=>Ob,IS_WORKLET:()=>Pb,KIBANA_EVENT:()=>Pk,LOCAL_STREAM_PUBLISH_STATE:()=>Bk,LOGGER_CMD_TYPE:()=>qb,LOGGER_DOMAIN:()=>jb,LOGGER_DOMAIN_OVERSEA:()=>Jb,LOG_LEVEL:()=>Yb,LOG_LEVEL_NAME:()=>Zk,MAIN_STREAM_MSID:()=>_k,MAX_RTT:()=>nD,MICROPHONE_COMMUNICATIONS:()=>$k,MICROPHONE_DEFAULT:()=>Xk,MUTE_ALL_BIT:()=>pk,NAME:()=>rk,NETWORK_TYPE:()=>$b,NOT_SUPPORTED_H264:()=>Fk,PAUSED_RETRY_COUNT:()=>Yk,PEERCONNECTION_CONNECTING_TIMEOUT:()=>Jk,PEER_CONNECTION_STATE:()=>bk,PEER_LEAVE_REASON:()=>eD,RECOVER_CAPTURE_INTERVAL:()=>iD,REMOTE_STREAM_TYPE_AUX:()=>Ek,REMOTE_STREAM_TYPE_MAIN:()=>gk,RENDER_FREEZE_TIMING:()=>Gk,SCHEDULE_DOMAIN:()=>Kk,SCHEDULE_TIMEOUT:()=>qk,SDP_SEMANTICS_PLAN_B:()=>Uk,SDP_SEMANTICS_UNIFIED_PLAN:()=>Vk,SECOND_HOST:()=>Ub,SIGNAL_PING_PONG_INTERVAL:()=>Qb,SIGNAL_PING_TIMEOUT:()=>Xb,SIGNAL_RECONNECTION_COUNT:()=>Ok,SMALL_STAT_BIT:()=>ck,SPEAKER_DEFAULT:()=>Qk,STORAGE_EXPIRES_TIME:()=>Zb,STREAM_TYPE_BIG:()=>Wk,STREAM_TYPE_SMALL:()=>jk,SUBSCRIBE_SMALL_RETRY_COUNT:()=>tD,SYNC_USER_LIST_INTERVAL:()=>Mk,Scene:()=>ok,THIRD_HOST:()=>Fb,TRANSPORT_DIRECTION:()=>nk,TRTC_ERROR_ASSISTANCE:()=>Kb,TRTC_QUALITY_BAD:()=>Ik,TRTC_QUALITY_DISCONNECTED:()=>Ak,TRTC_QUALITY_EXCELLENT:()=>vk,TRTC_QUALITY_GOOD:()=>yk,TRTC_QUALITY_POOR:()=>Sk,TRTC_QUALITY_UNKNOWN:()=>Tk,TRTC_QUALITY_VERY_BAD:()=>Rk,UPDATE_OFFER_TIMEOUT:()=>Lk,VIDEO_MUTE_BIT:()=>hk,VIDEO_STAT_BIT:()=>ak,audioProfileMap:()=>ek,getRetryCount:()=>Nk,getScriptDir:()=>Mb,innerVersion:()=>bb,loggerProxy:()=>Lb,screenProfileMap:()=>ik,setLoggerProxy:()=>xb,setRetryCount:()=>Dk,setVersion:()=>Db,version:()=>kb,videoProfileMap:()=>tk});var bb="4.15.00.1600",kb="5.0.0";function Db(e){kb=e;let[t,i,r]=e.split(".").map((e=>parseInt(e,10)));bb="".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 Nb,wb,Ob="undefined"!=typeof importScripts,Pb="undefined"!=typeof registerProcessor,Mb=()=>{let e=Ob?self.location.href:document.currentScript.src;return e.substring(0,e.lastIndexOf("/")+1)},Lb="",xb=e=>Lb=e,Vb="web.sdk.qcloud.com",Ub="web.sdk.tencent.cn",Fb="web.sdk.cloud.tencent.cn",Bb="https://console.cloud.tencent.com/trtc",Hb="https://".concat(Vb,"/trtc/webrtc/v5/doc"),Gb="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",Wb="".concat(Hb,"/zh-cn/"),jb="https://yun.tim.qq.com",Jb="https://apisgp.my-imcloud.com",Kb="trtc_error_assistance",qb={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},zb={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Yb=((wb=Yb||{})[wb.TRACE=0]="TRACE",wb[wb.DEBUG=1]="DEBUG",wb[wb.INFO=2]="INFO",wb[wb.WARN=3]="WARN",wb[wb.ERROR=4]="ERROR",wb[wb.NONE=5]="NONE",wb),Xb=18e3,Qb=2e3,$b={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Zb=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}},ik={"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}},rk={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"},nk={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},sk={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ok=((Nb=ok||{}).LIVE="live",Nb.RTC="rtc",Nb),ak=1,ck=2,lk=4,dk=8,uk=64,hk=16,pk=112,mk=128,_k="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",fk="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",gk=rk.MAIN,Ek=rk.AUXILIARY,Tk=0,vk=1,yk=2,Sk=3,Ik=4,Rk=5,Ak=6,Ck="unknown",bk={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},kk=1/0;function Dk(e){kk=e}function Nk(){return kk}var wk,Ok=30,Pk={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"},Mk=1e4,Lk=1e4,xk=1e4,Vk="unified-plan",Uk="plan-b",Fk=1028,Bk=((wk=Bk||{})[wk.UNPUBLISH=-1]="UNPUBLISH",wk[wk.PUBLISHING=0]="PUBLISHING",wk[wk.PUBLISHED=1]="PUBLISHED",wk),Hk=500,Gk=1e3,Wk=rk.BIG,jk=rk.SMALL,Jk=1e4,Kk={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"},qk=2e3,zk={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Yk=5,Xk="default",Qk=Xk,$k="communications",Zk=Object.keys(Yb),eD=["normal leave","timeout leave","kick","role change"],tD=10,iD=2e3,rD=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],nD=1e4,sD=function(){return new URLSearchParams(location.search).get("trtc_env")||""},oD=e=>Number(e)<14e8,aD=function(e,t){let i;i=Lb||(oD(e)?Jb:jb);let r=Math.floor(Math.random()*XC(2,31));return"".concat(i,"/v5/AVQualityReportSvc/C2S?random=").concat(r,"&sdkappid=").concat(e,"&cmdtype=").concat(t)},cD="unknown";function lD(){if("unknown"!==cD)return cD;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&&(cD=dD(r,n)),cD}function dD(e,t){if($b[e])return e;switch(e){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";default:return"unknown"}}function uD(e){cD=dD(e)}function hD(){return $b[lD()]}function pD(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 mD(e){return _D(e/4,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function _D(e){return 1e3*e/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function fD(e){return 4*gD(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function gD(e){return e*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)/1e3}var ED="undefined"!=typeof window&&"function"==typeof window.glog?window.glog:()=>{},TD=()=>{let e=navigator.language;return e=e.substring(0,2),"zh"===e},vD=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 yD(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<=1?t:yD(e-1,t,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)+t)}function SD(e){return e>8?3e4:1e3*yD(e)}function ID(e){return Reflect.apply(Object.prototype.toString,e,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var RD=e=>"function"==typeof e,AD=e=>void 0===e,CD=e=>"string"==typeof e,bD=e=>"number"==typeof e,kD=e=>"boolean"==typeof e,DD=e=>"object"===ID(e),ND=e=>"array"===ID(e),wD=e=>ID(e)==="MediaStreamTrack".toLowerCase(),OD=e=>e.isRemote,PD=e=>"promise"===ID(e),MD=e=>RD(e)&&e.prototype.constructor===e,LD=e=>MD(e)?e.prototype.constructor.name:"",xD="undefined"!=typeof AudioWorkletNode;function VD(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 UD(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var FD=e=>+e<10?"0".concat(e):e,BD=e=>{let t=e.match(/^\d+\.\d+\.\d+/)[0];if(!t)return e;let i=t.split("."),r=FD(i[1])+FD(i[2]);return i[1]-15>0&&(i[1]="15"),i[2]-15>0&&(i[2]="15"),"".concat(i.join("."),".").concat(r)},HD=Object.prototype.hasOwnProperty;function GD(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(vD(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(HD.call(e,t))return!1;return!0}return!1}function WD(e,t){return{userId:t,hasAudio:!!(e&dk),hasVideo:!!(e&ak),hasAuxiliary:!!(e&lk),hasSmall:!!(e&ck),audioMuted:!!(e&uk),videoMuted:!!(e&hk),audioAvailable:!(!(e&dk)||e&uk),videoAvailable:!(!(e&ak)||e&hk)}}function jD(e){let t={urls:e.url.startsWith("turn:")||e.url.startsWith("turns:")?e.url:"turn:".concat(e.url)};return!AD(e.username)&&!AD(e.credential)&&(t.username=e.username,t.credential=e.credential,t.credentialType="password",AD(e.credentialType)||(t.credentialType=e.credentialType)),t}function JD(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!CD(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 KD=function(e,t,i,r){if(!DD(e)||!DD(t))return 0;let n,s=0,o=Object.keys(t);for(let a=0,c=o.length;a<c;a++)if(n=o[a],!(AD(t[n])||i&&i.includes(n)))if(DD(e[n])&&DD(t[n]))s+=KD(e[n],t[n],i,r);else{if(r&&r.includes(t[n]))continue;e[n]!==t[n]&&(e[n]=qD(t[n]),s+=1)}return s};function qD(e){if(ND(e)){let t=[];return e.forEach(((e,i)=>{t[i]=qD(e)})),t}if(DD(e)){let t={};return Object.keys(e).forEach((i=>{t[i]=qD(e[i])})),t}return e}var zD=e=>{let t=[];if(ND(e))t=[...e];else if(CD(e)){let i=document.getElementById(e);i&&t.push(i)}else e&&t.push(e);return t},YD=e=>CD(e)?document.getElementById(e):e,XD=()=>(e=>{let t=e=>e<10?"0".concat(e):"".concat(e),i=e.getFullYear(),r=e.getMonth()+1,n=e.getDate(),s=t(e.getHours()),o=t(e.getMinutes()),a=t(e.getSeconds());return"".concat(i,"/").concat(r,"/").concat(n," ").concat(s,":").concat(o,":").concat(a)})(new Date);function QD(e,t){let{keysToInclude:i,keysToExclude:r}=t;try{if(ND(e))return"[".concat(e.map((e=>QD(e,{keysToInclude:i,keysToExclude:r}))).join(","),"]");if(!vD(e)||!ND(i)&&!ND(r))return JSON.stringify(e);let t={},n=new Set(i),s=new Set(r);return Object.keys(e).forEach((o=>{(0===s.size&&n.has(o)||0===n.size&&!s.has(o))&&(t[o]=vD(e[o])||ND(e[o])?JSON.parse(QD(e[o],{keysToExclude:r,keysToInclude:i})):e[o])})),JSON.stringify(t)}catch(wk){return"{}"}}function $D(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)})),QD(e,{keysToInclude:i})}function ZD(e){return e.replace(/[\u4e00-\u9fa5]/g,"aa").length}var eN=()=>{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},tN=e=>ob(void 0,null,(function*(){return new Promise(((t,i)=>{let r;if(CD(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 vb({code:Eb.INVALID_PARAMETER,message:"load image failed, url: ".concat(e)}))}}))})),iN=e=>{let t=e.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]},rN=e=>(Object.keys(e).forEach((t=>{bD(e[t])&&(t.startsWith("uint")||t.startsWith("int"))?e[t]=Math.floor(e[t]):(vD(e[t])||ND(e[t]))&&rN(e[t])})),e);function nN(e,t){return new Promise((i=>{let r=setTimeout(i,e);t&&t(r)}))}function sN(e,t){let i=null;return function(){for(var r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];return i||(i=e.apply(t||this,n),i.finally((()=>i=null)),i)}}function oN(e){let{url:t,body:i,method:r="POST",timeout:n,priority:s}=e;return new Promise(((e,o)=>{if("fetch"in window)return fetch(t,{method:r,body:i,priority:s}).then((e=>e.text())).then((t=>{try{e({data:JSON.parse(t)})}catch(_O){e({data:t})}}),o);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 o({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=n||5e3,a.open(r,t,!0),a.send(i)}))}function aN(e){return ob(this,null,(function*(){let t=UD(),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 lO.debug("compressJSON ".concat(i.length," -> ").concat(r.byteLength," ").concat(UD()-t,"ms")),r}catch(wk){return i}}))}var cN=Object.prototype.hasOwnProperty,lN=e=>"function"==typeof e,dN=e=>void 0===e,uN=e=>e.isRemote;function hN(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(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)}(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(cN.call(e,t))return!1;return!0}return!1}var pN=function(e){let{retryFunction:t,settings:i,onError:r,onRetrying:n,onRetryFailed:s,onRetrySuccess:o,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)=>ob(this,null,(function*(){let l=a||this;try{let i=yield t.apply(l,c);h>0&&o&&o.call(this,h),h=0,e(i)}catch(f){let t=()=>{clearTimeout(p),h=0,m=2,i(f)},o=()=>{2!==m&&h<(lN(d)?d():d)?(h++,m=1,lN(n)&&n.call(this,h,t),p=window.setTimeout((()=>{p=-1,_(e,i)}),lN(u)?u(h):u)):(t(),lN(s)&&s.call(this,f))};lN(r)?r.call(this,{error:f,retry:o,reject:i,retryFuncArgs:c,retriedCount:h}):o()}}));return new Promise(_)}},mN=class{constructor(e){nb(this,"userId"),nb(this,"remoteUserId"),nb(this,"id"),nb(this,"sdkAppId"),nb(this,"type"),nb(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal="boolean"!=typeof 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):"","]")),lO.log(e,t,dN(this.userId)||hN(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)}},_N={};tb(_N,{ANDROID_VERSION:()=>kN,CHROME_MAJOR_VERSION:()=>Ow,CHROME_VERSION:()=>Pw,EDGE_VERSION:()=>LN,EDG_MAJOR_VERSION:()=>UN,EDG_VERSION:()=>VN,FIREFOX_MAJOR_VERSION:()=>PN,FIREFOX_VERSION:()=>ON,HUAWEI_VERSION:()=>Tw,IE_VERSION:()=>YN,IOS_MAIN_VERSION:()=>Fw,IOS_VERSION:()=>Uw,IPADQQB_VERSION:()=>ow,IS_ANDROID:()=>bN,IS_ANDROID_WEBVIEW:()=>Vw,IS_ANY_SAFARI:()=>Lw,IS_CHROME:()=>Nw,IS_CHROME_OS:()=>dw,IS_CHROMIUM_BASE:()=>Dw,IS_EDG:()=>xN,IS_EDGE:()=>MN,IS_ELECTRON:()=>pw,IS_FIREFOX:()=>wN,IS_HEADLESS_CHROME:()=>ww,IS_HONOR:()=>Ew,IS_HUAWEI:()=>gw,IS_HUAWEIBROWSER:()=>fw,IS_IE:()=>zN,IS_IE8:()=>qN,IS_IOS:()=>CN,IS_IOS_13_OR_14:()=>Gw,IS_IOS_15_1:()=>Hw,IS_IPAD:()=>SN,IS_IPADQQB:()=>sw,IS_IPAD_PRO:()=>IN,IS_IPHONE:()=>RN,IS_IPOD:()=>AN,IS_LINUX:()=>lw,IS_LOCAL:()=>Ww,IS_MAC:()=>cw,IS_MACQQB:()=>rw,IS_MIBROWSER:()=>mw,IS_MQQB:()=>ZN,IS_NATIVE_ANDROID:()=>NN,IS_OLD_ANDROID:()=>DN,IS_OPENHARMONY:()=>Cw,IS_OPPOBROWSER:()=>Sw,IS_SAFARI:()=>Mw,IS_SAFARI_15_1:()=>Bw,IS_SAMSUNGBROWSER:()=>vw,IS_SOGOU:()=>HN,IS_SOGOUM:()=>FN,IS_TBS:()=>WN,IS_UCBROWSER:()=>hw,IS_VIVOBROWSER:()=>Rw,IS_WECHAT:()=>XN,IS_WIN:()=>aw,IS_WQQB:()=>tw,IS_WX:()=>uw,IS_X5MQQB:()=>$N,IS_XWEB:()=>JN,MACQQB_VERSION:()=>nw,MI_VERSION:()=>_w,MQQB_VERSION:()=>ew,OPENHARMONY_VERSION:()=>bw,OPPO_VERSION:()=>Iw,SAFARI_VERSION:()=>xw,SAMSUNG_VERSION:()=>yw,SOGOUM_VERSION:()=>BN,SOGOU_VERSION:()=>GN,TBS_VERSION:()=>jN,UA_DATA_STRING:()=>Yw,USER_AGENT:()=>fN,VIVO_VERSION:()=>Aw,WECHAT_VERSION:()=>QN,WQQB_VERSION:()=>iw,XWEB_VERSION:()=>KN,browserInfo:()=>Jw,getBrowserInfo:()=>Kw,getChromeMajorVersion:()=>kw,getDeviceModel:()=>Qw,getOSName:()=>Zw,getOSNumber:()=>eO,getOSString:()=>tO,getOSType:()=>rO,getTerminalType:()=>iO,getUserAgentData:()=>Xw,isLocalStorageEnabled:()=>jw,isMobile:()=>zw});var fN="undefined"==typeof navigator?"":navigator.userAgent,gN=e=>new RegExp(e,"i").test(fN),EN=e=>{if(gN(e)){let t=new RegExp("".concat(e,"\\/([\\d.]+)")),i=fN.match(t);if(i&&i[1])return i[1]}return""},TN=e=>{if(gN(e)){let t=new RegExp("".concat(e,"\\/(\\d+)")),i=fN.match(t);if(i&&i[1])return parseFloat(i[1])}return NaN},vN=/AppleWebKit\/([\d.]+)/i.exec(fN),yN=vN?parseFloat(vN[1]):NaN,SN=gN("iPad"),IN="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&gN("Macintosh"),RN=gN("iPhone")&&!SN,AN=gN("iPod"),CN=RN||SN||AN||IN,bN=gN("Android"),kN=function(){if(bN){let e=fN.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}(),DN=bN&&gN("webkit")&&kN<2.3,NN=bN&&kN<5&&yN<537,wN=gN("Firefox"),ON=EN("Firefox"),PN=TN("Firefox"),MN=gN("Edge"),LN=EN("Edge"),xN=gN("Edg"),VN=EN("Edg"),UN=TN("Edg"),FN=gN("SogouMobileBrowser"),BN=EN("SogouMobileBrowser"),HN=gN("MetaSr\\s"),GN=EN("MetaSr\\s"),WN=gN("TBS"),jN=EN("TBS"),JN=gN("XWEB"),KN=EN("XWEB"),qN=gN("MSIE\\s8\\.0"),zN=gN("MSIE\\/\\d+"),YN=function(){if(zN){let e=/MSIE\s(\d+)\.\d/.exec(fN),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(fN)&&/rv:11.0/.test(fN)&&(t=11),t}return NaN}(),XN=gN("(micromessenger|webbrowser)"),QN=EN("MicroMessenger"),$N=!WN&&gN("MQQBrowser")&&gN("COVC"),ZN=!WN&&gN("MQQBrowser")&&!gN("COVC"),ew=ZN||$N?EN("MQQBrowser"):"",tw=!WN&&gN(" QQBrowser"),iw=EN(" QQBrowser"),rw=!WN&&gN("QQBrowserLite"),nw=EN("QQBrowserLite"),sw=!WN&&gN("MQBHD"),ow=EN("MQBHD"),aw=gN("Windows"),cw=!CN&&gN("MAC OS X"),lw=!bN&&gN("Linux"),dw=gN("CrOS"),uw=gN("MicroMessenger"),hw=gN("UCBrowser"),pw=gN("Electron"),mw=gN("MiuiBrowser"),_w=EN("MiuiBrowser"),fw=gN("HuaweiBrowser"),gw=gN("Huawei")||gN("HUAWEI"),Ew=gN("Honor")||gN("HONOR"),Tw=EN("HuaweiBrowser"),vw=gN("SamsungBrowser"),yw=EN("SamsungBrowser"),Sw=gN("HeyTapBrowser"),Iw=EN("HeyTapBrowser"),Rw=gN("VivoBrowser"),Aw=EN("VivoBrowser"),Cw=gN("OpenHarmony"),bw=EN("OpenHarmony"),kw=()=>TN("Chrome"),Dw=gN("Chrome"),Nw=!MN&&!HN&&!FN&&!WN&&!JN&&!xN&&!tw&&!mw&&!fw&&!vw&&!Sw&&!Rw&&Dw,ww=gN("HeadlessChrome"),Ow=kw(),Pw=EN("Chrome"),Mw=!Dw&&!ZN&&!$N&&!rw&&!sw&&gN("Safari"),Lw=Mw||CN,xw=EN("Version"),Vw=/Android.*(wv|.0.0.0)/.test(fN),Uw=(()=>{if(IN)return xw;if(CN){let e=fN.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""})(),Fw=Number(Uw.split(".")[0]),Bw="15.1"===xw,Hw="15.1"===Uw,Gw=(()=>{let e=Number(Uw.split(".")[0]);return 14===e||13===e})(),Ww="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),jw=(()=>{let e;return()=>{if(void 0===e)try{e=!!window.localStorage}catch(gO){e=!1}return e}})(),Jw=Kw();function Kw(){let e=new Map([[wN,["Firefox",ON]],[xN,["Edg",VN]],[Nw,["Chrome",Pw]],[Mw,["Safari",xw]],[WN,["TBS",jN]],[JN,["XWEB",KN]],[XN&&RN,["WeChat",QN]],[tw,["QQ(Win)",iw]],[ZN,["QQ(Mobile)",ew]],[$N,["QQ(Mobile X5)",ew]],[rw,["QQ(Mac)",nw]],[sw,["QQ(iPad)",ow]],[mw,["MI",_w]],[fw,["HW",Tw]],[vw,["Samsung",yw]],[Sw,["OPPO",Iw]],[Rw,["VIVO",Aw]],[MN,["EDGE",LN]],[FN,["SogouMobile",BN]],[HN,["Sogou",GN]]]),t="unknown",i="unknown";return e.has(!0)&&([t,i]=e.get(!0)),{name:t,version:i}}var qw=null;function zw(){return qw&&"boolean"==typeof qw.mobile?qw.mobile:bN||CN||RN||SN||Cw}var Yw="";function Xw(){return ob(this,null,(function*(){if(qw)return qw;if(!navigator.userAgentData||"function"!=typeof navigator.userAgentData.getHighEntropyValues)return null;try{return(qw=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!Yw&&(Yw="UAData: ".concat(qw.platform,"/").concat(qw.platformVersion),qw.architecture&&qw.bitness&&(Yw+=" ".concat(qw.architecture,"/").concat(qw.bitness)),qw.mobile&&(Yw+=" mobile"),qw.model&&(Yw+=" model: ".concat(qw.model)),qw.fullVersionList&&(Yw+=" ".concat(qw.fullVersionList.filter((e=>"Not/A)Brand"!==e.brand)).map((e=>"".concat(e.brand,"/").concat(e.version))).join(",")))),qw}catch(yW){return null}}))}function Qw(){return(null==qw?void 0:qw.model)||""}var $w=new Map([[bN,"Android"],[CN,"iOS"],[aw,"Windows"],[cw,"MacOS"],[lw,"Linux"],[dw,"ChromeOS"]]),Zw=function(){return $w.get(!0)?$w.get(!0):qw?qw.platform:"unknown"};function eO(){return aw?1:bN?2:cw?3:CN?4:lw?5:dw?6:0}var tO=()=>{let e=Zw();return e+="/".concat(Jw.name,"/").concat(Mw?Jw.version:Jw.version.split(".")[0]),null!=qw&&qw.platformVersion&&(e+="/".concat(qw.platformVersion)),null!=qw&&qw.architecture&&(e+="/".concat(qw.architecture)),e};function iO(){return bN?4:RN?2:SN?3:cw?12:aw?5:lw?13:Cw?22:1}function rO(){return bN?"Android":RN?"iPhone":SN?"iPad":cw?"Mac":aw?"Windows":lw?"Linux":"unknown"}var nO,sO=new(ib(ab(),1).default),oO=((nO=oO||{}).ROOM_DESTROY="1",nO.JOIN_START="21",nO.JOIN_SCHEDULE_SUCCESS="22",nO.JOIN_SIGNAL_CONNECTION_START="23",nO.JOIN_SIGNAL_CONNECTION_END="24",nO.JOIN_SEND_CMD="25",nO.JOIN_RECEIVED_CMD_RES="26",nO.JOIN_SUCCESS="27",nO.JOIN_FAILED="28",nO.LEAVE_START="51",nO.LEAVE_SEND_CMD="52",nO.LEAVE_SUCCESS="53",nO.PUBLISH_START="61",nO.SEND_FIRST_VIDEO_FRAME="62",nO.PUBLISH_FAILED="63",nO.SUBSCRIBE_START="81",nO.SUBSCRIBE_SUCCESS="82",nO.SUBSCRIBE_FAILED="84",nO.UNSUBSCRIBE_SUCCESS="83",nO.LOCAL_TRACK_CAPTURE_START="101",nO.LOCAL_TRACK_CAPTURE_SUCCESS="102",nO.LOCAL_TRACK_CAPTURE_FAILED="103",nO.LOCAL_TRACK_PUBLISHED="104",nO.LOCAL_TRACK_UNPUBLISHED="105",nO.LOCAL_TRACK_REPLACED="106",nO.SWITCH_DEVICE_SUCCESS="107",nO.TRACK_MUTED="108",nO.TRACK_UNMUTED="109",nO.REMOTE_TRACK_SUBSCRIBED="110",nO.REMOTE_TRACK_UNSUBSCRIBED="111",nO.LOCAL_TRACK_RECAPTURE="112",nO.PLAY_TRACK_START="151",nO.PLAYER_STATE_CHANGED="152",nO.VIDEO_LOADED_DATA="153",nO.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",nO.SIGNAL_CONNECTION_STATE_CHANGED="201",nO.PEER_CONNECTION_STATE_CHANGED="202",nO.SINGLE_CONNECTION_STAT="203",nO.SPC_RECONNECTED="204",nO.HEARTBEAT_REPORT="251",nO.RECEIVED_PUBLISHED_USER_LIST="252",nO.REMOTE_PUBLISH_STATE_CHANGED="253",nO.AUDIO_LEVEL_INTERVAL="260",nO.NETWORK_QUALITY="261",nO.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",nO.QUALITY_LIMITATION_CHANGED="263",nO.LOG="264",nO),aO=oO,cO=class e{constructor(){nb(this,"_isEnableUploadLog",!0),nb(this,"_localJoinedUser",new Map),nb(this,"_queue",[]),nb(this,"_timeoutId",-1),nb(this,"_logLevel",1),nb(this,"_logLevelToUpload",2),!Ob&&!Pb&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&-1!==this._timeoutId}installEvents(){sO.on(aO.JOIN_SCHEDULE_SUCCESS,(e=>{let{schedule:t}=e;var i;null!=(i=null==t?void 0:t.config)&&i.logLevelToUpload&&Yb[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)})),sO.on(aO.JOIN_SUCCESS,(e=>{let{room:t}=e;this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()})),sO.once(aO.JOIN_FAILED,(()=>{this.startUpload()})),sO.on(aO.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(CD(i.userId)&&bD(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 ob(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];yield this.uploadLogWithRetry(JSON.stringify({timestamp:Ib(),sdkAppId:String(r),userId:i,version:kb,log:n.map((e=>e.log)).join("\n")}),r),n.forEach((e=>e.uploaded=!0))}}catch(EO){}let i=t.filter((e=>!e.uploaded));i.length>0&&(this._queue=i.concat(this._queue))}))}uploadLogWithRetry(e,t){return pN({retryFunction:()=>oN({url:aD(t,qb.LOG),body:e,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:e=>{let{retry:t}=e;t()}})()}getPrefix(e){let t=new Date;return t.setTime(Sb()),"[".concat(Rb(t),"] <").concat(Yb[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){AD(Yb[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(CD(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch(Nb){return""}}log(t,i){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;var o;i.unshift(this.getPrefix(t));let a={log:i.reduce(((e,t)=>"".concat(e," ").concat(this.logChunkToString(t)).trim()),""),level:t,userId:n,sdkAppId:s,forAllJoinedClients:r};if(sO.emit(aO.LOG,{log:a}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(a),t<this._logLevel)return;let c=(null==(o=Yb[t])?void 0:o.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 mN(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;Yb[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};nb(cO,"PRINT_LOG_TAG",!(CN||bN||ww));var lO=new cO,dO=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)}))},uO=new class{constructor(){nb(this,"_prefix","TRTC"),nb(this,"_queue",new Map)}getRealKey(e){return"".concat(this._prefix,"_").concat(e)}checkStorage(){jw()&&(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(EO){return!1}return!1})).forEach((e=>localStorage.removeItem(e))))}doFlush(){if(jw())try{for(let[e,t]of this._queue)localStorage.setItem(e,JSON.stringify(t))}catch(gO){lO.warn(gO)}}getItem(e){if(!jw())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(Nb){lO.warn(Nb)}}setItem(e,t){if(jw())try{let i={expiresIn:Date.now()+Zb,value:t};this._queue.set(this.getRealKey(e),i)}catch(wk){lO.warn(wk)}}deleteItem(e){if(!jw())return!1;try{return e=this.getRealKey(e),this._queue.delete(e),localStorage.removeItem(e),!0}catch(Nb){return lO.warn(Nb),!1}}clear(){if(jw())try{localStorage.clear()}catch(gO){lO.warn(gO)}}},hO={};tb(hO,{HTTPS_API:()=>WP,IS_GET_CAPABILITIES_SUPPORTED:()=>cM,IS_GET_SETTINGS_SUPPORTED:()=>aM,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>oM,IS_INSERTABLE_STREAM_SUPPORTED:()=>lM,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>yM,IS_RTC_RTP_SENDER_SUPPORTED:()=>rM,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>dM,IS_SEI_SUPPORTED:()=>uM,IS_SPC_SUPPORTED:()=>tM,basis:()=>gM,capabilityCheck:()=>TM,checkSystemRequirementsInternal:()=>FP,decodeSupportStatus:()=>UP,encodeSupportStatus:()=>VP,getBrowserInfo:()=>NP,getDisplayResolution:()=>JP,isAddTransceiverSupported:()=>eM,isBrowserSupported:()=>wP,isGetReceiversSupported:()=>QP,isGetSendersSupported:()=>$P,isGetTransceiversSupported:()=>ZP,isGetUserMediaSupported:()=>KP,isMediaDevicesSupported:()=>PP,isMediaSessionSupported:()=>mM,isMediaStreamTrackProcessorSupported:()=>xP,isReplaceTrackSupported:()=>nM,isRequestVideoFrameCallbackSupported:()=>vM,isSIMDSupported:()=>fM,isScreenCaptureApiAvailable:()=>HP,isSelectedCandidatePair:()=>jP,isSetParametersSupported:()=>sM,isSmallStreamAPISupported:()=>zP,isSmallStreamSupported:()=>YP,isStopTransceiverSupported:()=>iM,isTRTCSupported:()=>BP,isUnifiedPlanDefault:()=>XP,isUsedInHttpProtocol:()=>LP,isWebAudioSupported:()=>qP,isWebCodecSupported:()=>pM,isWebCodecsSupported:()=>OP,isWebRTCSupported:()=>hM,isWebTransportSupported:()=>_M});var pO={};tb(pO,{AUDIO_LEVEL_SCALE:()=>rP,AudioCodecPipelineType:()=>cP,AudioDecoderDowngradeState:()=>UO,AudioPlayerMode:()=>eP,AudioType:()=>jO,BASIC_TYPE:()=>sP,BannedReason:()=>tP,CONNECTION_CLOSED_REASON:()=>AO,ClientEvent:()=>CO,CodecType:()=>lP,ConnectionEvent:()=>RO,ConnectionState:()=>VO,DECODE_FAILED_ERROR_CODE:()=>dP,FacingMode:()=>$O,LeaveReason:()=>iP,LocalTrackEvent:()=>kO,MULTI_VIDEO_DATA_TYPE:()=>zO,MediaType:()=>GO,MediaTypeLabel:()=>WO,MonitorEventId:()=>YO,MutedFlag:()=>PO,NetworkQualityValue:()=>XO,PlayerState:()=>DO,ReceiveMode:()=>QO,RemoteStreamType:()=>qO,RemoteTrackEvent:()=>OO,RoomEvent:()=>NO,SceneNumber:()=>MO,StreamEvent:()=>bO,StreamType:()=>KO,SubscribeMediaType:()=>nP,TIMER_TYPE:()=>hP,TRACK_ACTION:()=>HO,TRACK_KIND:()=>BO,TrackEvent:()=>wO,UserRole:()=>xO,UserRoleNumber:()=>LO,VideoCodec:()=>oP,VideoCodecPipelineType:()=>aP,VideoContentHint:()=>uP,VideoDecoderDowngradeState:()=>FO,VideoPlayerMode:()=>ZO,VideoType:()=>JO});var mO,_O,fO,gO,EO,TO,vO,yO,SO,IO,RO=((IO=RO||{}).TRACK_ADDED="track-added",IO.TRACK_UPDATED="track-updated",IO.TRACK_SUBSCRIBED="track-subscribed",IO.STREAM_ADDED="stream-added",IO.STREAM_REMOVED="stream-removed",IO.STREAM_UPDATED="stream-updated",IO.STREAM_PUBLISHED="stream-published",IO.STREAM_SUBSCRIBED="stream-subscribed",IO.STREAM_UNSUBSCRIBED="stream-unsubscribed",IO.STATE_CHANGED="state-changed",IO.ERROR="error",IO.CONNECTION_STATE_CHANGED="connection-state-changed",IO.FIREWALL_RESTRICTION="firewall-restriction",IO.SEI_MESSAGE="sei-message",IO.CLOSED="closed",IO),AO=(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))(AO||{}),CO=((SO=CO||{}).STREAM_ADDED="stream-added",SO.STREAM_REMOVED="stream-removed",SO.STREAM_UPDATED="stream-updated",SO.STREAM_SUBSCRIBED="stream-subscribed",SO.CONNECTION_STATE_CHANGED="connection-state-changed",SO.PEER_JOIN="peer-join",SO.PEER_LEAVE="peer-leave",SO.MUTE_AUDIO="mute-audio",SO.MUTE_VIDEO="mute-video",SO.UNMUTE_AUDIO="unmute-audio",SO.UNMUTE_VIDEO="unmute-video",SO.CLIENT_BANNED="client-banned",SO.NETWORK_QUALITY="network-quality",SO.AUDIO_VOLUME="audio-volume",SO.SEI_MESSAGE="sei-message",SO.ERROR="error",SO),bO=((yO=bO||{}).PLAYER_STATE_CHANGED="player-state-changed",yO.SCREEN_SHARING_STOPPED="screen-sharing-stopped",yO.CONNECTION_STATE_CHANGED="connection-state-changed",yO.DEVICE_AUTO_RECOVERED="device-auto-recovered",yO.ERROR="error",yO),kO=(e=>(e.DEVICE_AUTO_RECOVERED="1",e.DEVICE_RECOVER_FAILED="5",e.DEVICE_CHANGED="2",e.ERROR="3",e.PUBLISH_STATE_CHANGED="4",e.ENCODE_FAILED="6",e))(kO||{}),DO=(e=>(e.PAUSED="PAUSED",e.PLAYING="PLAYING",e.STOPPED="STOPPED",e))(DO||{}),NO=((vO=NO||{}).PEER_JOIN="peer-join",vO.PEER_LEAVE="peer-leave",vO.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",vO.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",vO.BANNED="banned",vO.NETWORK_QUALITY="network-quality",vO.AUDIO_VOLUME="audio-volume",vO.SEI_MESSAGE="sei-message",vO.ERROR="error",vO.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",vO.REMOTE_PUBLISHED="remote-published",vO.REMOTE_UNPUBLISHED="remote-unpublished",vO.FIREWALL_RESTRICTION="firewall-restriction",vO.HEARTBEAT_REPORT="heartbeat-report",vO.CUSTOM_MESSAGE="custom-message",vO.LAYER_DATA="layerData",vO.FIRST_VIDEO_FRAME="first-video-frame",vO.DUMP="dump",vO),wO=((TO=wO||{}).PLAYER_STATE_CHANGED="player-state-changed",TO.MUTE="mute",TO.UNMUTE="unmute",TO.ERROR="error",TO.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",TO.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",TO.FIRST_VIDEO_FRAME="first-video-frame",TO),OO=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(OO||{}),PO=(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))(PO||{}),MO=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(MO||{}),LO=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(LO||{}),xO=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(xO||{}),VO=(e=>(e.CONNECTED="CONNECTED",e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.RECONNECTED="RECONNECTED",e.RECONNECTING="RECONNECTING",e))(VO||{}),UO=((EO=UO||{}).INITIALIZED="INITIALIZED",EO.STARTING="STARTING",EO.STARTED="STARTED",EO.FAILED="FAILED",EO),FO=(e=>(e.INITIALIZED="INITIALIZED",e.STARTING="STARTING",e.STARTED="STARTED",e.FAILED="FAILED",e))(FO||{}),BO=(e=>(e.AUDIO="audio",e.VIDEO="video",e.AUXILIARY="auxVideo",e))(BO||{}),HO=(e=>(e.ADD="add",e.REMOVE="remove",e))(HO||{}),GO=(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))(GO||{}),WO={1:"audio",2:"auxVideo",4:"video"},jO=((gO=jO||{})[gO.opus=111]="opus",gO),JO=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(JO||{}),KO=(e=>(e.Big="big",e.Small="small",e))(KO||{}),qO=(e=>(e.Main="main",e.Aux="auxiliary",e))(qO||{}),zO=(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))(zO||{}),YO=((fO=YO||{})[fO.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",fO[fO.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",fO[fO.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",fO[fO.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",fO[fO.MUTE_AUDIO=32772]="MUTE_AUDIO",fO[fO.MUTE_VIDEO=32773]="MUTE_VIDEO",fO[fO.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",fO[fO.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",fO[fO.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",fO[fO.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",fO[fO.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",fO[fO.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",fO[fO.SWITCH_CAMERA=32780]="SWITCH_CAMERA",fO[fO.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",fO[fO.REPLACE_VIDEO=32782]="REPLACE_VIDEO",fO[fO.REPLACE_AUDIO=32783]="REPLACE_AUDIO",fO[fO.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",fO[fO.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",fO[fO.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",fO[fO.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",fO[fO.JOIN=32788]="JOIN",fO[fO.LEAVE=32789]="LEAVE",fO[fO.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",fO[fO.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",fO[fO.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",fO[fO.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",fO[fO.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",fO[fO.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",fO[fO.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",fO[fO.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",fO[fO.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",fO[fO.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",fO[fO.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",fO[fO.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",fO[fO.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",fO[fO.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",fO[fO.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",fO[fO.PUBLISH_AUX=32805]="PUBLISH_AUX",fO[fO.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",fO[fO.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",fO[fO.VIDEO_ENCODER=4004]="VIDEO_ENCODER",fO[fO.VIDEO_DECODER=4005]="VIDEO_DECODER",fO),XO=(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))(XO||{}),QO=(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))(QO||{}),$O=(e=>(e.user="user",e.environment="environment",e))($O||{}),ZO=(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))(ZO||{}),eP=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(eP||{}),tP=(e=>(e.BANNED="banned",e.KICK="kick",e.USER_TIME_OUT="user_time_out",e.ROOM_DISBAND="room_disband",e))(tP||{}),iP=((_O=iP||{})[_O.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",_O[_O.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",_O[_O.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",_O[_O.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",_O[_O.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",_O[_O.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",_O[_O.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",_O[_O.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",_O[_O.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",_O),rP=1e8,nP=class{constructor(){nb(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)}},sP=(e=>(e.String="string",e.Number="number",e.Boolean="boolean",e.Array="array",e.Object="object",e))(sP||{}),oP=(e=>(e.H264="h264",e.H265="h265",e.VP8="vp8",e))(oP||{}),aP=(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))(aP||{}),cP=(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))(cP||{}),lP=(e=>(e.WebRTC="webrtc",e.WebCodecs="webcodecs",e.WebAssembly="webassembly",e))(lP||{}),dP=((mO=dP||{})[mO.SUCCESS=0]="SUCCESS",mO[mO.FAILED=1]="FAILED",mO[mO.WEBCODEC_INIT=2]="WEBCODEC_INIT",mO[mO.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",mO[mO.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",mO[mO.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",mO[mO.WASM_INIT=6]="WASM_INIT",mO[mO.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",mO[mO.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",mO[mO.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",mO[mO.TEST=10]="TEST",mO),uP=(e=>(e.NONE="",e.DETAIL="detail",e.MOTION="motion",e.TEXT="text",e))(uP||{}),hP=(e=>(e.INTERVAL="interval",e.TIMEOUT="timeout",e.RAF="raf",e.RIC="ric",e.INTERVAL_IN_WORKER="intervalInWorker",e))(hP||{}),pP={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"},mP={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,s="".concat(t||i.name),o="";return o=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(s,"' must be type of ").concat(o," when calling ").concat(r,"(), received type: ").concat(ID(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,s="".concat(t||i.name),o="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(s,"' must be instanceof ").concat(o," when calling ").concat(r,"(), received type: ").concat(ID(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,"()")},_P=(e,t)=>t?"".concat(Hb,"/").concat(e,"/").concat(t):"".concat(Hb,"/").concat(e,"/index.html"),fP=()=>{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(Kb);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 gP(e){let{key:t,data:i,link:r,addDocLink:n=!0}=e,s="",o="",a="";RD(mP[t])?s=mP[t](i):CD(mP[t])&&(s=mP[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:l}=fP();r?a="".concat(r.className,".html#").concat(r.fnName):l&&l[t]&&(RD(l[t])?a=l[t](i):CD(l[t])&&(a=l[t]));let d=s;return TD()&&(c&&c[t]&&(RD(c[t])?o=c[t](i):CD(c[t])&&(o=c[t])),o&&(d=n?"".concat(o,"\n请查看文档: ").concat(_P("zh-cn",a),"\n\n"):"".concat(o,"\n\n"),d+=s)),n&&(d+=" \nRefer to: ".concat(_P("en",a),"\n")),d}var EP,TP=ib(ub(),1),vP=class{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];nb(this,"countMap",new Map),nb(this,"distributionMap",new Map),nb(this,"version"),nb(this,"log",lO.createLogger({id:"kv"})),e&&(sO.on("102",(e=>{let{track:t,cost:i}=e;this.addSuccessEvent({key:t.kind===rk.AUDIO?501700:511700,cost:i})})),sO.on("103",(e=>{let{track:t,error:i}=e;this.addFailedEvent({key:t.kind===rk.AUDIO?501700:511700,error:i})})))}getReportData(){let e={msg_sdk_basic_info:{uint32_sdk_version:iN(this.version||kb),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 s=(null==(n=this.distributionMap)?void 0:n.get(t))||new Map;s.set(i,(s.get(i)||0)+1),this.distributionMap.set(t,s)}addNumber(e){let{key:t,value:i,split:r=100,useUV:n=!1}=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;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=(null==(s=this.distributionMap)?void 0:s.get(t))||new Map,a=0;if(bD(r))a=Math.floor(i/r);else for(let c=r.length-1;c>0;c--)if(i>r[c]){a=c;break}o.set(a,(o.get(a)||0)+1),this.distributionMap.set(t,o)}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=Eb.UNKNOWN;i&&(bD(i)?r=i:(!AD(i.extraCode)||!AD(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})}},yP=((EP=yP||{})[EP.enterRoom=500700]="enterRoom",EP[EP.exitRoom=500701]="exitRoom",EP[EP.switchRole=500702]="switchRole",EP[EP.destroy=500703]="destroy",EP[EP.startLocalAudio=500704]="startLocalAudio",EP[EP.updateLocalAudio=500705]="updateLocalAudio",EP[EP.stopLocalAudio=500706]="stopLocalAudio",EP[EP.startLocalVideo=500707]="startLocalVideo",EP[EP.updateLocalVideo=500708]="updateLocalVideo",EP[EP.stopLocalVideo=500709]="stopLocalVideo",EP[EP.startScreenShare=500710]="startScreenShare",EP[EP.updateScreenShare=500711]="updateScreenShare",EP[EP.stopScreenShare=500712]="stopScreenShare",EP[EP.startRemoteVideo=500713]="startRemoteVideo",EP[EP.updateRemoteVideo=500714]="updateRemoteVideo",EP[EP.stopRemoteVideo=500715]="stopRemoteVideo",EP[EP.muteRemoteAudio=500716]="muteRemoteAudio",EP[EP.setRemoteAudioVolume=500717]="setRemoteAudioVolume",EP[EP.use=500718]="use",EP[EP.sendSEIMessage=5e5]="sendSEIMessage",EP[EP.sendCustomMessage=500001]="sendCustomMessage",EP),SP=(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))(SP||{}),IP=(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))(IP||{}),RP=(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))(RP||{}),AP=new vP(!0),CP=new vP(!1),bP=AP,kP={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},DP=new Map([[wN,["Firefox",ON]],[xN,["Edg",VN]],[Nw,["Chrome",Pw]],[Mw,["Safari",xw]],[WN,["TBS",jN]],[JN,["XWEB",KN]],[XN&&RN,["WeChat",QN]],[tw,["QQ(Win)",iw]],[ZN,["QQ(Mobile)",ew]],[$N,["QQ(Mobile X5)",ew]],[rw,["QQ(Mac)",nw]],[sw,["QQ(iPad)",ow]],[mw,["MI",_w]],[fw,["HW",Tw]],[vw,["Samsung",yw]],[Sw,["OPPO",Iw]],[Rw,["VIVO",Aw]],[MN,["EDGE",LN]],[FN,["SogouMobile",BN]],[HN,["Sogou",GN]]]);function NP(){let e=DP.get(!0);return{browserName:e?e[0]:"unknown",browserVersion:e?e[1]:"unknown"}}var wP=function(){return!(hw||MN||xN&&UN<80||wN&&PN<56)},OP=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every((e=>e in window))},PP=function(){if(!navigator.mediaDevices)return LP()||lO.error(mP.NOT_SUPPORTED_MEDIA),!1;let e=["getUserMedia","enumerateDevices"];return e.filter((e=>e in navigator.mediaDevices)).length===e.length},MP=!1;function LP(){return"http:"===location.protocol&&!Ww&&(MP||lO.error(gP({key:pP.NOT_SUPPORTED_HTTP})),MP=!0,!0)}var xP=function(){return(null==window?void 0:window.OffscreenCanvas)&&(null==window?void 0:window.MediaStreamTrackProcessor)&&(null==window?void 0:window.MediaStreamTrackGenerator)},VP=function(){return ob(this,null,(function*(){if(kP.detail.isH264EncodeSupported&&kP.detail.isVp8EncodeSupported)return{isH264EncodeSupported:kP.detail.isH264EncodeSupported,isVp8EncodeSupported:kP.detail.isVp8EncodeSupported};let e,t=!1,i=!1;try{let r=new RTCPeerConnection,n=document.createElement(rk.CANVAS);n.getContext("2d");let s=n.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),e=yield r.createOffer(),-1!==e.sdp.toLowerCase().indexOf("h264")&&(t=!0),-1!==e.sdp.toLowerCase().indexOf("vp8")&&(i=!0),r.close(),kP.detail.isH264EncodeSupported=t,kP.detail.isVp8EncodeSupported=i,{isH264EncodeSupported:kP.detail.isH264EncodeSupported,isVp8EncodeSupported:kP.detail.isVp8EncodeSupported}}catch(wk){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}}))},UP=function(){return ob(this,null,(function*(){if(kP.detail.isH264DecodeSupported&&kP.detail.isVp8DecodeSupported)return{isH264DecodeSupported:kP.detail.isH264DecodeSupported,isVp8DecodeSupported:kP.detail.isVp8DecodeSupported};let e,t=!1,i=!1;try{let r=new RTCPeerConnection;return e=yield r.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),-1!==e.sdp.toLowerCase().indexOf("h264")&&(t=!0),-1!==e.sdp.toLowerCase().indexOf("vp8")&&(i=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:i}}catch(wk){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}}))},FP=sN((()=>ob(void 0,null,(function*(){if(kP.result&&kP.detail.isH264EncodeSupported&&kP.detail.isVp8EncodeSupported&&kP.detail.isH264DecodeSupported&&kP.detail.isVp8DecodeSupported)return kP;let e=Date.now(),t=wP(),i=hM(),r=OP(),n=PP(),{isH264EncodeSupported:s,isVp8EncodeSupported:o}=yield VP(),{isH264DecodeSupported:a,isVp8DecodeSupported:c}=yield UP();if(!s||!o){let e=yield VP();lO.warn("detect encode again h264:".concat(s," vp8:").concat(o," result: ").concat(JSON.stringify(e))),s=e.isH264EncodeSupported,o=e.isVp8EncodeSupported}if(s&&a&&bN&&Dw&&!JN&&!WN){let{encode:e,decode:t}=yield function(){return ob(this,null,(function*(){return GP||(GP=new Promise((e=>ob(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 s=setInterval((()=>{n.fillText("test",Math.floor(320*Math.random()),Math.floor(240*Math.random()))}),66),o=-1,a=-1;i=()=>{clearInterval(o),clearInterval(s),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=TP.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=TP.default.write(p),yield d.setLocalDescription(h),yield l.setRemoteDescription(h),o=setInterval((()=>ob(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===rk.VIDEO&&e.bytesSent>0&&(t.encode=!0)})),t.decode||n.forEach((e=>{"inbound-rtp"===e.type&&e.mediaType===rk.VIDEO&&e.bytesReceived>0&&(t.decode=!0)}))}))),100)}catch(r){i(),lO.warn("detectH264Supported failed",r),e({encode:!0,decode:!0})}})))).then((e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&lO.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(Yw)),e))),GP)}))}();s=e,a=t}return kP.result=t&&i&&n&&(s||o)&&(a||c),kP.detail.isBrowserSupported=t,kP.detail.isWebRTCSupported=i,kP.detail.isWebCodecsSupported=r,kP.detail.isMediaDevicesSupported=n,kP.detail.isScreenShareSupported=HP(),kP.detail.isSmallStreamSupported=YP(),kP.detail.isH264EncodeSupported=s,kP.detail.isVp8EncodeSupported=o,kP.detail.isH264DecodeSupported=a,kP.detail.isVp8DecodeSupported=c,kP.result||lO.error("".concat(navigator.userAgent," ").concat($D(kP.detail,!1))),uO.setItem(EM,{ua:navigator.userAgent,checkResult:kP}),bP.addNumber({key:523800,value:Date.now()-e}),kP})))),BP=function(){return kP.result},HP=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},GP=null;var WP=(e,t,i)=>{"http:"===location.protocol&&!Ww&&(e[t]=()=>{throw new vb({code:Eb.INVALID_OPERATION,message:mP.NOT_SUPPORTED_HTTP})})},jP=function(e){return!("candidate-pair"!==e.type||!e.nominated||"in-progress"!==e.state&&"succeeded"!==e.state)&&!(kD(e.selected)&&!e.selected)};function JP(){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 KP(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function qP(){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 zP(){return"captureStream"in HTMLCanvasElement.prototype}function YP(){return!(XN||CN||Ow&&Ow<63)&&!(!wP()||!zP())}var XP=function(){if(AD(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let e=null,t=!1;try{e=new RTCPeerConnection({sdpSemantics:Vk}),e.addTransceiver(rk.AUDIO),t=!0}catch(Nb){}return null==e||e.close(),t};function QP(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function $P(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function ZP(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function eM(){return 11!==Fw&&("RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype)}var tM=!(!eM()||Dw&&Ow<86);function iM(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var rM="RTCRtpSender"in window;function nM(){return rM&&"replaceTrack"in window.RTCRtpSender.prototype}function sM(){return rM&&"setParameters"in window.RTCRtpSender.prototype&&$P()}var oM="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,aM=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,cM=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,lM=rM&&"createEncodedStreams"in window.RTCRtpSender.prototype&&kw()>=86,dM="RTCRtpScriptTransform"in window,uM=rM&&(lM||dM),hM=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter((e=>e in window)).length>0};function pM(){let e={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return AD(window.AudioDecoder)||(e.AudioDecoder=!0),AD(window.AudioEncoder)||(e.AudioEncoder=!0),AD(window.VideoDecoder)||(e.VideoDecoder=!0),AD(window.VideoEncoder)||(e.VideoEncoder=!0),AD(window.ImageDecoder)||(e.ImageDecoder=!0),e}function mM(){return"mediaSession"in navigator&&!AD(navigator.mediaSession.setActionHandler)}function _M(){return!AD(window.WebTransport)}function fM(){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 gM(){let e={browser:"".concat(Jw.name,"/").concat(Jw.version),os:Zw(),displayResolution:JP(),isScreenShareSupported:HP(),isWebRTCSupported:hM(),isGetUserMediaSupported:KP(),isWebAudioSupported:qP(),isWebSocketsSupported:"WebSocket"in window&&2===window.WebSocket.CLOSING,isWebCodecSupported:pM(),isMediaSessionSupported:mM(),isWebTransportSupported:_M()};return navigator.userAgent.includes("miniProgram")&&(e.browser="mini/".concat(e.browser)),e}var EM="checkResult";function TM(){LP();let e=uO.getItem(EM);e&&e.ua===navigator.userAgent&&(kP=e.checkResult),FP()}function vM(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var yM="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype,SM=ib(ab(),1),IM=Symbol("instance"),RM=Symbol("cacheResult"),AM=class{constructor(e,t,i){this.oldState=e,this.newState=t,this.action=i,this.aborted=!1}abort(e){this.aborted=!0,NM.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},CM=class extends Error{constructor(e,t,i){super(t),this.state=e,this.message=t,this.cause=i}};var bM=new Map;function kM(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(r,n,s)=>{let o=i.action||n;if(!i.context){let i=bM.get(r)||[];bM.has(r)||bM.set(r,i),i.push({from:e,to:t,action:o})}let a=s.value;s.value=function(){let r=this;for(var n=arguments.length,s=new Array(n),c=0;c<n;c++)s[c]=arguments[c];if(i.context&&(r=wM.get("function"==typeof i.context?i.context.call(this,...s):i.context)),r.state===t)return i.sync?r[RM]:Promise.resolve(r[RM]);r.state instanceof AM&&r.state.action==i.abortAction&&r.state.abort(r);let l=null;Array.isArray(e)?0==e.length?r.state instanceof AM&&r.state.abort(r):("string"!=typeof r.state||!e.includes(r.state))&&(l=new CM(r._state,"".concat(r.name," ").concat(o," to ").concat(t," failed: current state ").concat(r._state," not from ").concat(e.join("|")))):e!==r.state&&(l=new CM(r._state,"".concat(r.name," ").concat(o," 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 AM(u,t,o);NM.call(r,h);let p=e=>{var n;return r[RM]=e,h.aborted||(NM.call(r,t),null===(n=i.success)||void 0===n||n.call(this,r[RM])),e},m=e=>(NM.call(r,u,e),d(e));try{let e=a.apply(this,s);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(SO){return m(new CM(r._state,"".concat(r.name," ").concat(o," from ").concat(e," to ").concat(t," failed: ").concat(SO),SO instanceof Error?SO:new Error(String(SO))))}}}}var DM="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 NM(e,t){let i=this._state;this._state=e;let r=e.toString();e&&this.emit(r,i),this.emit(wM.STATECHANGED,e,i,t),this.updateDevTools({value:e,old:i,err:t instanceof Error?t.message:String(t)})}var wM=class e extends SM.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[IM];n?this.name=n.name+"-"+n.count++:r[IM]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=bM.get(e)||[],i=new Set,r=[],n=[],s=new Set,o=Object.getPrototypeOf(e);bM.has(o)&&(o.stateDiagram.forEach((e=>i.add(e))),o.allStates.forEach((e=>s.add(e)))),t.forEach((e=>{let{from:t,to:i,action:s}=e;"string"==typeof t?r.push({from:t,to:i,action:s}):t.length?t.forEach((e=>{r.push({from:e,to:i,action:s})})):n.push({to:i,action:s})})),r.forEach((e=>{let{from:t,to:r,action:n}=e;s.add(t),s.add(r),s.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," 🟢")),s.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:s}}),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]:{};DM(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){NM.call(this,e)}};wM.STATECHANGED="stateChanged",wM.UPDATEAFSM="updateAFSM",wM.INIT="[*]",wM.ON="on",wM.OFF="off",wM.instances=new Map,wM.instances2=new WeakMap;var OM="undefined"!=typeof window,PM=OM&&window.requestIdleCallback||function(e){let t=Date.now();return setTimeout((()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})}),1e3)},MM=OM&&window.cancelIdleCallback||function(e){clearTimeout(e)},LM=OM&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),xM=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=$C("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=ZC($C({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&&(r.callback(),r.loopCount+=1,e.isBreakLoop(r)&&(null==(i=e.sharedWorker)||i.postMessage({type:"stop",taskId:r.taskID}),e.workerTasks.delete(r.taskID)))}}),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=UD(),n=()=>{if(i=UD()-r,i>=t.delay&&(r=UD()-Math.floor(i%t.delay),t.callback(),t.loopCount+=1),!e.isBreakLoop(t))return t.ricID=PM(n,{timeout:t.delay})};return t.ricID=PM(n,{timeout:t.delay})}static raf(t){let i,r=UD(),n=()=>document.hidden&&t.backgroundTask?(i=UD()-r,r=UD(),t.callback(),t.loopCount+=1,e.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(n,t.delay-Math.floor(i%t.delay))):(i=UD()-r,i>=t.delay&&(r=UD()-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=UD()-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:s,worker:o}=this.taskMap.get(e);return o&&o.terminate(),t&&clearInterval(t),i&&clearTimeout(i),r&&LM&&LM(r),n&&MM(n),s&&document.removeEventListener("visibilitychange",s),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.taskMap.has(e.taskID)||0!==e.count&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};nb(xM,"taskMap",new Map),nb(xM,"currentTaskID",1),nb(xM,"sharedWorker",null),nb(xM,"workerTasks",new Map);var VM=xM;rk.SEI_MESSAGE;var UM={LOADED_DATA:rk.LOADEDDATA,LOADED_META_DATA:rk.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"},FM={};tb(FM,{create:()=>HM,remove:()=>GM});var BM=new WeakMap;function HM(e,t){BM.has(e)||BM.set(e,[]);let i=BM.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 GM(e){let t=BM.get(e);t&&(t.forEach((e=>e())),BM.delete(e))}var WM=new class{constructor(){nb(this,"_roomIdMap",new Map),nb(this,"_configs"),"undefined"==typeof registerProcessor&&(this._configs={sdkAppId:"",userId:"",version:kb,env:zb.QCLOUD,browserVersion:Jw.name+Jw.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){Ww||!lO.isAbleToUpload||this._configs.env===zb.QCLOUD&&this.uploadEventToKibana(ZC($C({},e),{result:"success"}))}logFailedEvent(e){if(Ww||!lO.isAbleToUpload)return;let{eventType:t,code:i,error:r,userId:n}=e,s={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)||Eb.UNKNOWN};this._configs.env===zb.QCLOUD&&this.uploadEventToKibana(ZC($C({},s),{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:Ib(),sdkAppId:this._configs.sdkAppId,userId:i||this._configs.userId,version:kb,log:t};r&&(n.errorInfo=r.message,r.stack&&(n.errorInfo+="\n".concat(r.stack))),this.sendRequest(aD(this._configs.sdkAppId,qb.LOG),n)}sendRequest(e,t){setTimeout((()=>oN({url:e,body:JSON.stringify(t),priority:"low"}).catch((()=>{}))),2e3)}},jM=new WeakMap;function JM(e){let{settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:n}=e;return function(e,s,o){let a=pN({retryFunction:o.value,settings:t,onError(t){let{error:r,retry:n,reject:o,retryFuncArgs:a}=t;var c;i?i.call(this,r,(()=>{var t;null!=(t=jM.get(e))&&t.has(s)?n():o(r)}),o,a):null!=(c=jM.get(e))&&c.has(s)?n():o(r)},onRetrying(t,i){var n;lN(r)&&r.call(this,t,i),null!=(n=jM.get(e))&&n.has(s)&&(jM.get(e).get(s).stopRetry=i)},onRetryFailed:n});return o.value=function(){let t=jM.get(e);for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return t?t.set(s,{args:r}):jM.set(e,new Map([[s,{args:r}]])),a.apply(this,r).finally((()=>{var t;return null==(t=jM.get(e))?void 0:t.delete(s)}))},o}}function KM(e){let{fnName:t,callback:i,validateArgs:r=!0}=e;return function(e,n,s){let o=s.value;return s.value=function(){for(var n,s,a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(null!=(n=jM.get(e))&&n.has(t)){let{stopRetry:n,args:o}=jM.get(e).get(t),a=!0;if(r)for(let e of o)if(!c.find((t=>t===e))){a=!1;break}a&&(i&&i.apply(this,c),n&&n(),null==(s=jM.get(e))||s.delete(t))}return o.apply(this,c)},s}}var qM=class extends wM{constructor(e,t){super(e.id,"".concat(t,"-player")),this.kind=t,nb(this,"id"),nb(this,"element",null),nb(this,"track"),nb(this,"url"),nb(this,"attr"),nb(this,"mode"),nb(this,"muted"),nb(this,"_log"),nb(this,"_pausedRetryCount"),nb(this,"_isElementPlayingFired",!1),nb(this,"_interval"),nb(this,"_delayDestroyTimeoutId",0),nb(this,"_playSuccessResolve"),nb(this,"_isReplayByRecreateMediaStreamCalled",!1),nb(this,"isInAutoPlayFailedState",!1),this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Yk,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)||this.track&&"live"===this.track.readyState&&!this.track.muted)}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 ob(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(Nb){let t=gP({key:pP.PLAY_FAILED,data:{media:this.kind,error:Nb}});if(this.track&&!this.track.muted&&this._log.warn(Nb),t.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new vb({code:Eb.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&&!Lw?this._delayDestroyTimeoutId||(this._log.info("destroy element after 3 * ".concat(e)),this._delayDestroyTimeoutId=setTimeout((()=>this.destroyElement()),3*e)):this.destroyElement(),this.handleStopped(rk.ENDED),this._interval>0&&VM.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():Hw?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 HM(this.element,this.element).add(rk.PLAYING,e).add(rk.ENDED,e).add(rk.PAUSE,e).add(rk.ERROR,e).add(rk.LOADEDDATA,e).add(rk.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==FM||FM.create(e,e).add(rk.ENDED,t).add(rk.MUTE,t).add(rk.UNMUTE,t),e.readyState===rk.ENDED&&this.handleTrackEvent({type:rk.ENDED}),e.muted&&this.handleTrackEvent({type:rk.MUTE})}}bindAutoPlayEvent(){sO.on(aO.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;e&&GM(e)}unbindEvents(){this.element&&GM(this.element),this.unbindTrackEvents(),sO.off(aO.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case rk.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(rk.PLAYING),this._interval&&(VM.clearTask(this._interval),this._interval=-1);break;case rk.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(rk.ENDED);break;case rk.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(rk.PAUSE),CN&&(this._interval=VM.run("timeout",(()=>{this.element&&"PAUSED"===this._state&&this.resume()}),{delay:3e3}));break;case rk.ERROR:if(this.element&&this.element.error){this.handlePaused(rk.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)),WM.uploadEvent({log:"stat-".concat(this.kind,"-").concat(Pk.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),Ew||gw?this.emit(UM.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case rk.LOADEDDATA:this.kind===rk.VIDEO&&this.emit(UM.LOADED_DATA);break;case rk.LOADEDMETADATA:this.kind===rk.VIDEO&&this.emit(UM.LOADED_META_DATA)}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then((()=>{this._log.warn("replayByRecreateMediaStream success"),WM.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),bP.addSuccessEvent({key:this.kind===rk.AUDIO?506700:516700})})).catch((()=>{var t;this._log.error("replayByRecreateMediaStream failed"),WM.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),bP.addFailedEvent({key:this.kind===rk.AUDIO?506700:516700,error:null==(t=this.element)?void 0:t.error}),this.emit(UM.ERROR,e)}))}doReplayByRecreateMediaStream(e){return this._log.warn("delay ".concat(e,"ms to recreate mediaStream")),new Promise(((t,i)=>{nN(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)}),nN(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){switch(e.type){case rk.ENDED:this.handleStopped(rk.ENDED);break;case rk.MUTE:this.handlePaused(rk.MUTE);break;case rk.UNMUTE:this._isElementPlayingFired?this.handlePlaying(rk.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString())}}handlePlaying(e){var t;null==(t=this._playSuccessResolve)||t.call(this,e),this.emit(UM.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(UM.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(UM.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};rb([JM({settings:{retries:2,timeout:0},onError(e,t,i,r){r[0]=(r[0]||1e3)+1e3,t()}})],qM.prototype,"doReplayByRecreateMediaStream",1),rb([kM([],"PLAYING",{sync:!0})],qM.prototype,"handlePlaying",1),rb([kM("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],qM.prototype,"handlePaused",1),rb([kM([],"STOPPED",{sync:!0})],qM.prototype,"handleStopped",1);var zM,YM="trtc_autoplay",XM="".concat(YM,"_mask"),QM="".concat(YM,"_wrapper"),$M="".concat(YM,"_header"),ZM="".concat(YM,"_content"),eL="".concat(YM,"_action_wrapper"),tL="".concat(YM,"_question"),iL="".concat(YM,"_collapse"),rL="".concat(YM,"_action_confirm"),nL="".concat(YM,"_detail"),sL="#2473E8",oL="dialog",aL="".concat(oL,"-show"),cL="".concat(oL,"-1"),lL="".concat(oL,"-2"),dL=!1,uL=()=>!!document.querySelector(".".concat(QM)),hL="".concat(Hb,"/").concat(TD()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),pL="<br><a href='".concat(hL,"' target='_blank'>").concat(TD()?"其他方案?":"Any other solution?","</a>"),mL="".concat(TD()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(pL):"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(pL)),_L=class{constructor(){if(nb(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),nb(this,"_dialogNode",null),nb(this,"_bodyPosition",""),nb(this,"_showDetail",!1),nb(this,"_isCollapseClicked",!1),nb(this,"_isQuestionClicked",!1),TD()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!dL){let e=document.createElement("style");e.innerHTML=".".concat(XM,"{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.").concat(XM," div:not(.").concat(eL,"){display:block !important;}.").concat(QM,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(QM," a{color:").concat(sL,";}.").concat($M,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(ZM,"{margin:8px 0;}.").concat(eL,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(iL,"{margin-right:auto;cursor:pointer}.").concat(tL,"{height:100%;line-height:16px;cursor:pointer;}.").concat(rL,"{margin-left:8px;color:#fff;background:").concat(sL,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(rL,":hover{opacity:0.9;}.").concat(iL,",.").concat(rL,",.").concat(ZM,",.").concat(tL,"{font-size:14px;}@media screen and (max-width:750px){.").concat(QM,"{width:80vw;}}"),document.head.appendChild(e),dL=!0}this.addDiaLog()}createDiaLog(){let e=document.createElement("template");e.innerHTML='<div class="'.concat(XM,"\"><div class='").concat(QM,"'><div class='").concat($M,"'>").concat(location.host,"</div><div class='").concat(ZM,"'>").concat(this.content,"</div><div class='").concat(nL,'\' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">').concat(mL,"</div><div class='").concat(eL,"'></div></div></div>").trim();let t=document.createElement("button");t.className=rL,t.innerText=TD()?"恢复播放":"Resume",t.onclick=this.onConfirm.bind(this);let i=document.createElement("div");i.className=tL,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=iL,r.innerText="".concat(TD()?"详情 >":"Detail >"),r.onclick=this.onCollapseClick.bind(this);let n=e.content.firstChild,s=n.querySelector(".".concat(eL));return s.appendChild(r),s.appendChild(i),s.appendChild(t),n}addDiaLog(){uL()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(QM)).onclick=e=>e.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",lO.info("show autoplay dialog"),WM.uploadEvent({log:aL}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){lO.warn("confirm clicked, try resume stream"),sO.emit(aO.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let e=this._dialogNode.querySelector(".".concat(nL));e.style.visibility="".concat(this._showDetail?"hidden":"visible"),e.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||WM.uploadEvent({log:cL}),this._isCollapseClicked=!0}onQuestionClick(){window.open(hL,"_blank"),this._isQuestionClicked||WM.uploadEvent({log:lL}),this._isQuestionClicked=!0}},fL=class extends qM{constructor(e){super(e,rk.VIDEO),nb(this,"stat",{}),nb(this,"_calculateTimeout",-1),nb(this,"viewMirror",!1),nb(this,"objectFit"),nb(this,"container"),nb(this,"canvas"),nb(this,"canvasTrack"),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,AD(e.viewMirror)||(this.viewMirror=e.viewMirror),AD(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var e;let t=document.createElement(rk.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.canvasTrack)&&this.elementToRender&&(null==(t=this.container)||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(rk.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(rk.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var t;super.handleTrackEvent(e),e.type===rk.MUTE&&null!=(t=this.stat)&&t.fps&&(this.stat.fps=0)}handleElementEvent(e){var t;if(2===this.mode)return;super.handleElementEvent(e);let i=e.type;if(i===rk.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._pausedRetryCount>0&&!uL()&&(this._log.info("".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;i===rk.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=e.replace("scaleX(-1)",""):i===rk.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,s;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==(s=this.container)||s.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(UM.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(vM()&&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(Nb){this._log.warn("init stat failed",Nb)}}};function gL(e,t){return ob(this,null,(function*(){if(!e.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield e.audioWorklet.addModule(t),lO.info("worklet addModule success")}catch(Nb){throw lO.info("worklet addModule catch error. ".concat(Nb.message)),Nb}}))}"undefined"!=typeof AudioContext?zM=AudioContext:"undefined"!=typeof webkitAudioContext?zM=webkitAudioContext:"undefined"!=typeof mozAudioContext&&(zM=mozAudioContext);var EL,TL=-1;!function e(){try{if(EL)return;(EL=new zM({sampleRate:48e3})).onstatechange=()=>{lO.info("context state: ".concat(EL.state).concat("running"!==EL.state?" visibilityState: ".concat(document.visibilityState):"")),vL()},clearTimeout(TL)}catch(yW){lO.error("initAudioContext failed: ".concat(yW," typeof AudioContextClass: ").concat(typeof zM)),TL=setTimeout(e,1e3)}}();var vL=()=>{"suspended"===EL.state?(IL(),document.addEventListener("click",vL)):"interrupted"===EL.state?IL():(document.removeEventListener("visibilitychange",vL),document.removeEventListener("click",vL))},yL=0,SL=-1;function IL(){return new Promise(((e,t)=>{if("running"===EL.state)return e();Date.now()-yL<1e3?(clearTimeout(SL),SL=setTimeout((()=>{yL=Date.now(),EL.resume().then(e,t)}),1e3)):(clearTimeout(SL),yL=Date.now(),EL.resume().then(e,t))})).catch((e=>{lO.warn("context resume failed: ".concat(e)),document.addEventListener("visibilitychange",vL)}))}document.addEventListener("click",vL);var RL=e=>EL,AL=class{constructor(){nb(this,"node"),nb(this,"node2"),nb(this,"pre",new Set),nb(this,"next",new Set),nb(this,"context"),nb(this,"connectedNodes",new Set)}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.preNodeReconnect(),this.reconnect()}catch(wk){lO.error(wk)}}setNode(e,t){var i;if(!this.node)try{null==(i=this.context)||i.addMixWeight(),this.node=e,t&&(this.node2=t),this.preNodeReconnect(),this.reconnect(),bP.addSuccessEvent({key:502701})}catch(EO){lO.error(EO),bP.addFailedEvent({key:502701,error:EO})}}deleteNode(){var e;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,null==(e=this.context)||e.reduceMixWeight(),this.preNodeReconnect(),bP.addSuccessEvent({key:502702})}catch(Nb){lO.error(Nb),bP.addFailedEvent({key:502702,error:Nb})}}preNodeReconnect(){this.pre.forEach((e=>{e.node?e.reconnect():e.preNodeReconnect()}))}connectNext(e){this.next.forEach((t=>{e._connect(t.node)||t.connectNext(e)}))}_connect(e){return!(!this.node||!e)&&((this.node2||this.node).connect(e),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(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t.forEach((e=>{this.next.add(e),e.pre.add(this)})),this}},CL=class extends AL{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:256;super(),this.fftSize=e,nb(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}},bL=class{constructor(){nb(this,"source",new AL),nb(this,"gain",new AL),nb(this,"destination",new AL)}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(RL().createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}replaceSource(e){this.source.replaceNode(wL(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}},kL=class extends bL{constructor(e){super(),this.context=e,nb(this,"denoiser",new AL),nb(this,"voiceChanger",new AL),this.source.pipeTo(this.denoiser.pipeTo(this.voiceChanger.pipeTo(this.gain.pipeTo(this.destination))))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.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.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.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()}},DL=class{constructor(){nb(this,"audioContext",RL()),nb(this,"destination",this.audioContext.createMediaStreamDestination()),nb(this,"inputs",new Set),nb(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]}},NL=new WeakMap;function wL(e){let t=NL.get(e);if(t)return t;let i=RL();if(e instanceof HTMLAudioElement)t=i.createMediaElementSource(e);else{if(!(e instanceof MediaStreamTrack))return e;t=i.createMediaStreamSource(new MediaStream([e]))}return NL.set(e,t),t}var OL=class e{constructor(e){nb(this,"_volume",0),nb(this,"_volumeDb",0),nb(this,"_log"),nb(this,"_scriptProcessorNode",null),nb(this,"_audioWorkletNode",null),nb(this,"_interval",200),nb(this,"ready",this.preload());let{log:t}=e;this._log=t,sO.on(aO.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=gL(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(gO){this._log.error("volumeMeter init audio worklet error: ".concat(gO)),WM.logFailedEvent({userId:this._log.userId,eventType:Pk.LOAD_WORKLET,error:gO}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=RL().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(gO){this._log.error("volumeMeter init script processor error: ".concat(gO))}}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,sO.off(aO.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})}};nb(OL,"lastMessageTime",0),nb(OL,"audioContext",RL()),nb(OL,"workletReady");var PL=OL,ML=class extends AL{constructor(e){super(),nb(this,"_volumeMeter"),this._volumeMeter=new PL(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return ob(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()}}},LL=PL,xL=ib(ab(),1),VL=e=>t=>t.deviceId===e,UL=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Input";nb(this,"kind"),nb(this,"type"),nb(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&&HL(this.devices[0])||t&&(i.forEach((e=>{if(e.deviceId&&!this.devices.find(VL(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Added");lO.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}})),this.devices.forEach((e=>{if(e.deviceId&&!i.find(VL(e.deviceId))){let i="".concat(this.kind).concat(this.type,"Removed");lO.warn("".concat(i,": ").concat(JSON.stringify(e))),t.emit(i,e)}}))),this.devices=i}hasDevice(e){return!!this.devices.find((t=>t.deviceId===e))}},FL=class extends xL.EventEmitter{constructor(){super(),nb(this,"audioInputs",new UL(rk.AUDIO)),nb(this,"videoInputs",new UL(rk.VIDEO)),nb(this,"audioOutputs",new UL(rk.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(()=>this.update())),"ondevicechange"in navigator.mediaDevices||VM.run("interval",(()=>{this.update()}),{delay:1e4}))}init(){GL().then((e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)}))}update(){return ob(this,arguments,(function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){let i=yield GL(t);return e.audioInputs.update(i,e),e.videoInputs.update(i,e),e.audioOutputs.update(i,e),e}()}))}},BL=Pb||Ob?null:new FL;function HL(e){return e.deviceId===e.groupId&&""===e.groupId}function GL(){return ob(this,arguments,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){if(LP()||!PP())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(0!==e){let i={audio:!1,video:!1};if(t.forEach((e=>{HL(e)&&(e.kind===rk.AUDIO_INPUT?i.audio=!0:e.kind===rk.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&&IL()}catch(EO){lO.debug("capture before getDevices failed: ",EO)}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&&qL.add("".concat(e.deviceId,"_").concat(e.kind)),e.getCapabilities&&(i.getCapabilities=()=>e.getCapabilities()),i}))}()}))}function WL(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return BL.update(e?1:0).then((e=>e.audioInputs.devices))}function jL(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return BL.update(e?2:0).then((e=>e.videoInputs.devices))}var JL=!1;function KL(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return ob(this,null,(function*(){return(CN||Mw)&&(e=!1),BL.update(e?1:0).then((e=>e.audioOutputs.devices))}))}var qL=new Set;function zL(e,t){return ob(this,null,(function*(){let i=(yield WL()).find((e=>e.deviceId===Xk));return!t&&(null==i?void 0:i.groupId)===e||(null==i?void 0:i.groupId)===e&&i.label===t}))}var YL,XL=class extends bL{constructor(e){super(),this.log=e,nb(this,"volumeMeter"),nb(this,"volumeDestination"),nb(this,"analyser",new CL),this.volumeMeter=new ML({log:this.log}),this.volumeDestination=new AL,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},QL=class e extends qM{constructor(e){super(e,rk.AUDIO),nb(this,"_outputDeviceId"),nb(this,"_volume",1),nb(this,"_destination",RL().createMediaStreamDestination()),nb(this,"pipeline"),nb(this,"volumeMeterMode","worklet"),this.mode=0,this.pipeline=new XL(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if(("15.2"===Uw||"15.3"===Uw||"15.4"===Uw)&&this.muted)return void this._log.info("audioElement is muted.");let t=YL||new Audio;t.setAttribute("autoplay","autoplay"),t.srcObject=this.getMediaStream(),t.muted=this.muted,this.element=t,bD(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),t===YL&&(YL=void 0),this.bindElementEvents()}play(t){return ob(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():"analyser"===this.volumeMeterMode&&this.pipeline.analyser.setNode(RL().createAnalyser()),function(){ob(this,null,(function*(){try{JL||(JL=!0,lO.info("speakers:".concat((yield KL()).map((e=>" ".concat(e.deviceId.slice(0,8),": ").concat(e.label))))))}catch(e){}}))}(),sb(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 ob(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()}},$L=class extends QL{setTrack(e){this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(UM.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)}},ZL=class extends QL{constructor(e){super(e),nb(this,"_sourceElement"),nb(this,"_output",new AL),this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(RL().destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var t,i;(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(UM.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.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"):CN||(this._log.info("start set pipeline volume: ".concat(e)),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),GM(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&&Lw&&(YL=t),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}},ex=class extends wM{constructor(e){let{userId:t,sdkAppId:i,mediaType:r,room:n,PlayerClass:s=(1===r?ZL:fL)}=e;var o;super(),nb(this,"id",dO()),nb(this,"userId",""),nb(this,"isRemote"),nb(this,"mediaType"),nb(this,"room"),nb(this,"user"),nb(this,"_log"),nb(this,"_inputTrack"),nb(this,"_outputTrack"),nb(this,"isPlayCalled"),nb(this,"container",null),nb(this,"player"),nb(this,"subVideoPlayerMap"),nb(this,"muted",!1),nb(this,"abortCtrl"),nb(this,"objectFit","cover"),nb(this,"mirror"),nb(this,"isScreen",!1),nb(this,"manager"),nb(this,"trackSettings"),nb(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=r,this._log=lO.createLogger({id:"".concat(this.kind[0],"t"),userId:null==(o=n||this.room)?void 0:o.userId,remoteUserId:this instanceof Sx?void 0:this.userId,sdkAppId:i,type:2===this.mediaType?"auxiliary":"main",isLocal:this instanceof Sx}),this.player=new s({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(UM.PLAYER_STATE_CHANGED,(e=>{sO.emit(aO.PLAYER_STATE_CHANGED,$C({track:this},e)),this.emit("player-state-changed",e)})),this.kind===rk.VIDEO&&(this.player.on(UM.LOADED_DATA,(()=>{this.emitFirstVideoFrameEvent(UM.LOADED_DATA),sO.emit(aO.VIDEO_LOADED_DATA,{track:this})})),this.player.on(UM.LOADED_META_DATA,(()=>{this.emitFirstVideoFrameEvent(UM.LOADED_META_DATA)})),this.player.on(UM.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(UM.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||lO}get kind(){return 1===this.mediaType?rk.AUDIO:rk.VIDEO}get strMediaType(){return 4===this.mediaType?rk.VIDEO:2===this.mediaType?rk.SCREEN:rk.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 ob(this,null,(function*(){let i=ND(e)?e[0]:e;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(t))),t&&!AD(t.muted)&&this.setPlayerMute(t.muted),t&&!AD(t.objectFit)&&(this.objectFit=t.objectFit),void(this.player instanceof fL&&(this.player.setObjectFit(this.objectFit),this.container!==i&&i&&(this.container=i,this.player.setContainer(i)),ND(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),t))));if(t&&!AD(t.muted)?this.setPlayerMute(t.muted):(!this.isRemote||this.kind===rk.VIDEO)&&this.setPlayerMute(!0),t&&!AD(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof fL&&(this.player.setObjectFit(this.objectFit),t&&!AD(t.poster)&&this.player.setPoster(t.poster)),this.isPlayCalled=!0,i&&(this.container=i,this.player instanceof fL&&this.player.setContainer(i)),sO.emit(aO.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),ND(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),t))}catch(yO){throw this.handleAutoPlayFailed(yO),yO}}else this.log.info("play has not mediaTrack, abort")}))}setMirror(e,t){if(this.isScreen||this.kind!==rk.VIDEO||AD(e)||e===this.mirror)return;this.mirror=e;let i=this.player;t&&(i=t);let r=this.manager;if(kD(this.mirror))return i.setViewMirror(this.mirror),void(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 ob(this,null,(function*(){if(!this._outputTrack||this.kind===rk.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&&(AD(t.objectFit)||e.setObjectFit(t.objectFit)):this.subVideoPlayerMap.set(n,new fL({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(uN(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach((e=>{e.stop()})),this.container=null)}resume(){return ob(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),sO.emit(e?aO.TRACK_MUTED:aO.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){HM(e,e).add(rk.MUTE,this.onTrackMuted).add(rk.UNMUTE,this.onTrackUnmuted).add(rk.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===rk.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){GM(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(uN(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 _L;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 fL?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var t,i,r;if(this.isFirstVideoFrameEmitted)return;let n=null==(t=this.mediaTrack)?void 0:t.getSettings(),s=(null==n?void 0:n.width)||(null==(i=this.player.element)?void 0:i.videoWidth)||0,o=(null==n?void 0:n.height)||(null==(r=this.player.element)?void 0:r.videoHeight)||0;e===UM.LOADED_META_DATA&&!s&&!o||(e===UM.LOADED_DATA&&!s&&!o&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,this.emit("first-video-frame",{width:s,height:o,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"))}};rb([kM([],wM.INIT,{sync:!0})],ex.prototype,"close",1);var tx=Object.prototype.hasOwnProperty;var ix=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(vD(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(tx.call(e,t))return!1;return!0}return!1},rx=pN({retryFunction:function(e){return ob(this,null,(function*(){let t=function(e){return{audio:sx(e),video:ox(e)}}(e);lO.info("getUserMedia with constraints: ".concat(JSON.stringify(t)));let i=[],r=[],n=["label","deviceId","groupId"];t.audio&&(i=yield WL(),lO.info("microphones: ".concat(QD(i.map((e=>ZC($C({},e),{groupId:e.groupId.substring(0,8)}))),{keysToInclude:n})))),t.video&&(r=yield jL(),lO.info("cameras: ".concat(QD(r,{keysToInclude:n}))));try{let e=yield navigator.mediaDevices.getUserMedia(t);return cM&&e.getTracks().forEach((e=>{lO.info("".concat(e.kind," capabilities: ").concat(QD(e.getCapabilities(),{keysToInclude:rD})))})),t.audio&&IL(),e}catch(yO){let{message:n}=yO;throw"NotFoundError"===yO.name&&(e.video&&r&&0===r.length&&(n=gP({key:pP.CAMERA_NOT_FOUND})),e.audio&&i&&0===i.length&&(n=gP({key:pP.MICROPHONE_NOT_FOUND}))),new vb({code:Eb.INITIALIZE_FAILED,name:yO.name,message:n,constraint:yO.constraint})}}))},settings:{retries:3,timeout:500},onError:e=>{let{error:t,retry:i,reject:r,retryFuncArgs:n,retriedCount:s}=e,o=s+1;"NotReadableError"===t.name||"OverconstrainedError"===t.name?(1===o?(n[0].video&&(n[0].maxResolution=!1,(!Mw||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===o?n[0].useDeviceIdOnly=!0:3===o&&!n[0].useExactDeviceId&&(n[0].useTrueAsConstraint=!0),i()):r(t),n[0].microphoneId&&nx(n[0].microphoneId,!1),n[0].cameraId&&nx(n[0].cameraId,!0)},onRetrying:e=>{lO.warn("getUserMedia NotReadableError observed, retrying [".concat(e,"/3]"))},onRetryFailed:e=>{WM.logFailedEvent({eventType:Pk.GET_USER_MEDIA_RETRY,error:e})},onRetrySuccess:e=>{WM.logSuccessEvent({eventType:Pk.GET_USER_MEDIA_RETRY}),WM.uploadEvent({log:"stat-".concat(Pk.GET_USER_MEDIA_RETRY,"-success-").concat(e)})}});function nx(e,t){return ob(this,null,(function*(){let i=(t?yield jL():yield WL()).find((t=>t.deviceId===e));i&&RD(i.getCapabilities)&&lO.warn(QD(i.getCapabilities(),{keysToInclude:rD}))}))}function sx(e){if(!e.audio)return!1;if(e.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:e.sampleRate};return!ix(e.microphoneId)&&(t.deviceId=e.useExactDeviceId?{exact:e.microphoneId}:e.microphoneId,e.useDeviceIdOnly)?t:(bD(e.channelCount)&&(t.channelCount=e.channelCount),kD(e.echoCancellation)&&!e.echoCancellation&&(t.echoCancellation=!1),kD(e.noiseSuppression)&&!e.noiseSuppression&&(t.noiseSuppression=!1),kD(e.autoGainControl)&&!e.autoGainControl&&(t.autoGainControl=!1),!!ix(t)||t)}function ox(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&&!ix(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&&cw&&e.width&&e.height&&e.width*e.height<101376&&(i.width=e.width,i.height=e.height),e.frameRate&&(i.frameRate=e.frameRate),!!ix(i)||i)}var ax=rx;function cx(e){return ux(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return ob(this,null,(function*(){return yield e.apply(this,r),t.apply(this,r)}))}))}function lx(e){return ux(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return ob(this,null,(function*(){let i=yield t.apply(this,r);return yield e.call(this,...r),i}))}))}function dx(e){return ux(((t,i)=>function(){for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];return ob(this,null,(function*(){try{return yield t.apply(this,r)}catch(EO){e.call(this,EO)}}))}))}function ux(e){return function(t,i,r){return r.value=e(r.value,i),r}}var hx=(()=>{let e=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&lO.info("visibility change: ".concat(document.visibilityState)),!e&&(document.addEventListener("visibilitychange",(()=>{lO.info("visibility change: ".concat(document.visibilityState)),t=document.visibilityState})),e=!0)}})(),px=0,mx=class{constructor(){nb(this,"log",lO.createLogger({id:"fq".concat(++px)})),nb(this,"isRunning",!1),nb(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=$C({},e),s=new Promise(((e,t)=>{n.resolve=e,n.reject=t}));return n.promise=s,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(),s}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()}))}},_x=new WeakMap,fx=new WeakMap;function gx(){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=_x.get(this)||new mx;for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return _x.set(this,t),t.push({fn:n,args:r,context:this},e)},r}}function Ex(e){return function(t,i,r){let n=r.value;return r.value=function(){var t,i,r;let s=[];for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];return null==(i=null==(t=_x.get(this))?void 0:t.queue)||i.forEach((e=>s.push(e))),null==(r=fx.get(this))||r.forEach((e=>null==e?void 0:e.queue.forEach((e=>s.push(e))))),s.forEach((t=>{t.reject(new vb({code:Eb.API_CALL_ABORTED,message:e}))})),_x.delete(this),fx.delete(this),n.apply(this,a)},r}}function Tx(e){return function(t,i,r){let n=r.value,s=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=fx.get(this)||new Map,o=r.get(s(t))||new mx;return r.set(s(t),o),fx.set(this,r),o.push({fn:n,args:t,context:this})},r}}function vx(e,t){return ux(((i,r)=>function(){let r=e;try{for(var n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];let e=i.apply(this,s),a=UD();return PD(e)?e.then((e=>(t?bP.addSuccessEvent({key:r,cost:UD()-a}):bP.addSuccessEvent({key:r}),e))).catch((e=>{throw bP.addFailedEvent({key:r,error:e}),e})):(bP.addSuccessEvent({key:r}),e)}catch(wb){throw bP.addFailedEvent({key:r,error:wb}),wb}}))}var yx=class e extends ex{constructor(e,t){super({mediaType:e,PlayerClass:t}),nb(this,"isRemote",!1),nb(this,"deviceId"),nb(this,"groupId",""),nb(this,"label",""),nb(this,"_isRecapturing",!1),nb(this,"_lastRecaptureTime",0),nb(this,"_onMuteTimeoutId",-1),nb(this,"_encodeCheckTimeoutId",-1),nb(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return"publishing"===this.state.toString()}get isPublished(){return"publish"===this.state}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){HM(e,e).add(rk.MUTE,this.onTrackMuted).add(rk.UNMUTE,this.onTrackUnmuted).add(rk.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===rk.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){GM(e)}setStateToCapture(){}capture(e){return ob(this,null,(function*(){var t;try{let i,r=UD();sO.emit(aO.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(i=new MediaStream,i.addTrack(e.customSource)):(null==(t=this.mediaTrack)||t.stop(),i=yield ax(e));let n=i.getTracks()[0];return yield this.setInputMediaStreamTrack(n),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),sO.emit(aO.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:UD()-r}),i}catch(EO){throw sO.emit(aO.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:EO}),this.log.error("getUserMedia error observed ".concat(EO)),EO}}))}setInputMediaStreamTrack(e){return this.state===wM.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),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),sO.emit(aO.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return ob(this,null,(function*(){if(this.mediaTrack&&aM){let{deviceId:e,groupId:t}=this.mediaTrack.getSettings(),{label:i}=this.mediaTrack;(yield function(e){return ob(this,arguments,(function(e){let{newDeviceId:t,oldDeviceId:i,oldGroupId:r,oldLabel:n,kind:s}=e;return function*(){return t===i&&(s!==rk.AUDIO||t!==Xk||(yield zL(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),GL().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.mediaTrack||this.kind===rk.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(rk.AUDIO_INPUT);return!!qL.has(i)}(this.mediaTrack)||this.kind===rk.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(rk.VIDEO_INPUT);return!!qL.has(i)}(this.mediaTrack)||this._isRecapturing||e&&cw&&Mw)}onTrackMuted(){if(super.onTrackMuted(),hx(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<iD)return void setTimeout((()=>this.onTrackMuted()),iD);this._onMuteTimeoutId=setTimeout((()=>ob(this,null,(function*(){var e;if(null!=(e=this.mediaTrack)&&e.muted){if((CN||bN)&&"visible"!==document.visibilityState)return;this.recapture(yield this.getRecoverCaptureDeviceId())}}))),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return ob(this,null,(function*(){if(sb(e.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<iD)return void setTimeout((()=>this.onTrackEnded()),iD);this.recapture(yield this.getRecoverCaptureDeviceId())}}))}recapture(e){return ob(this,null,(function*(){var t;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),null==(t=this._inputTrack)||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 WL():yield jL()).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}),sO.emit(aO.LOCAL_TRACK_RECAPTURE,{track:this})})).catch((e=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(e.message)),this.emit("5",e),sO.emit(aO.LOCAL_TRACK_RECAPTURE,{track:this,error:e})}))}))}getRecoverCaptureDeviceId(){return ob(this,null,(function*(){let e=this instanceof kx;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let i=(Ix.get(t)||0)+1;if(Ix.set(t,i),i>=3){let r=e?(yield jL()).find((e=>!Ix.has(e.deviceId))):(yield WL()).find((e=>!Ix.has(e.deviceId)));r&&(this.log.warn("".concat(t," capture fail ").concat(i," times, change new ").concat(r.deviceId)),t=r.deviceId)}}return t}))}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),null==(e=this.manager)||e.removeInput(this)}};rb([kM(wM.INIT,"capture",{ignoreError:!0,sync:!0})],yx.prototype,"setStateToCapture",1),rb([gx()],yx.prototype,"capture",1),rb([kM("capture","publish",{ignoreError:!0,success(){var e,t;this.room.localTracks.add(this),sO.emit(aO.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;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===rk.AUDIO,t=this.stat.bytesSent>0;bP[t?"addSuccessEvent":"addFailedEvent"]({key:e?503700:513702}),t||(bP.addEnum({key:e?503701:513703,value:eO()}),WM.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(Qw()||tO()),userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}}),5e3))},fail(e){let t="error";if(e.cause instanceof RTCError){let i=e.cause;i.message.includes("timeout")?t="timeout":i.code===Eb.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:e.cause||e})}}),vx(521714,!1)],yx.prototype,"publish",1),rb([ux((e=>function(){return ob(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)}))})),kM([],"capture",{sync:!0})],yx.prototype,"unpublish",1);var Sx=yx,Ix=new Map;sO.on(aO.SWITCH_DEVICE_SUCCESS,(e=>{e.track.deviceId&&Ix.delete(e.track.deviceId)}));var Rx=class e extends Sx{constructor(e){super(1,$L),nb(this,"mediaType",1),nb(this,"volume",0),nb(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),nb(this,"playerMuted",!0),nb(this,"pipeline"),nb(this,"earMonitorGainNode",new AL),nb(this,"_output",new AL),nb(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),this.manager=e,this.pipeline=new kL(e),this.pipeline.gain.pipeTo(this.earMonitorGainNode.pipeTo(this._output),this.player.pipeline.volumeMeter),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}get dbVolume(){return LL.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}setInputMediaStreamTrack(t){return ob(this,null,(function*(){let i=this.trackSettings||{};bP.addEnum({key:501701,value:i.channelCount||0,useUV:!1}),bP.addEnum({key:501702,value:i.sampleRate||0,useUV:!1}),bP.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.replaceSource(t),yield sb(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 ob(this,null,(function*(){if(this.mediaTrack){if(this.deviceId===e){if(e!==Xk)return;if(yield zL(this.groupId,this.label))return}try{this.log.info("switchDevice audio to: ".concat(e)),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),sO.emit(aO.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(wk){throw this.log.error("switch microphone failed ".concat(wk)),this.deviceId&&this.recapture(this.deviceId),wk}}}))}listenDeviceChange(){BL&&!BL.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&BL.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return ob(this,null,(function*(){if(e.deviceId===this.deviceId){this.log.warn("current microphone is lost: ".concat(JSON.stringify(e))),TF(this.userId,{eventId:2003,param1:6,streamType:1});let t=yield WL();t[0]?this.recapture(t[0].deviceId):BL.on("audioInputAdded",this.handleMicrophoneAdded,this)}}))}handleMicrophoneAdded(e){this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId)}update3A(e){return ob(this,arguments,(function(e){var t=this;let{echoCancellation:i,noiseSuppression:r,autoGainControl:n}=e;return function*(){let e=!1;!AD(i)&&i!==t.profile.echoCancellation&&(t.profile.echoCancellation=i,e=!0),!AD(r)&&r!==t.profile.noiseSuppression&&(t.profile.noiseSuppression=r,e=!0),!AD(n)&&n!==t.profile.autoGainControl&&(t.profile.autoGainControl=n,e=!0),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&&bP.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),CN&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(RL().createGain()),this._output.setNode(RL().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){if(!this._inputTrack)return;let t=this._inputTrack.getConstraints();return t.noiseSuppression=e,this._inputTrack.applyConstraints(t).catch((t=>this._log.warn("".concat(e?"enable":"disable"," ANS failed "),t)))}addDenoiser(e){var t;Ow<=92&&48e3!==(null==(t=this.trackSettings)?void 0:t.sampleRate)?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(bP.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0))}close(){this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),BL.off("audioInputAdded",this.handleMicrophoneAdded,this),BL.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(t){return ob(this,null,(function*(){try{yield sb(e.prototype,this,"recapture").call(this,t)}catch(wk){let r=(yield WL()).find((e=>e.deviceId!==t));if(!r)throw wk;yield sb(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))}},Ax=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 s=e;s<=t;s++){let e=this.dataView.getInt8(s);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 s=e;s<=t;s++)switch(this.dataView.getInt8(s)){case 0:r++,i.push(this.dataView.getInt8(s));break;case 3:2!==r&&i.push(this.dataView.getInt8(s)),r=0;break;default:i.push(this.dataView.getInt8(s)),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}},Cx=class{constructor(){nb(this,"_seiMessageList",[]),nb(this,"_smallSeiMessageList",[]),nb(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 o=0;o<i;o++)n.push(255);n.push(r);let s=new DataView(e);return n.push(...new Uint8Array(s.buffer)),n.push(128),new Ax(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),s=new ArrayBuffer(n+e.data.byteLength),o=new DataView(s),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++)o.setInt8(c++,r[e].dataView.getInt8(t));for(let i=0;i<e.data.byteLength;i++)o.setInt8(c++,a.getInt8(i));return e.data=s,r.length}return 0}},bx=class e extends Sx{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,fL),nb(this,"profile",{width:640,height:480,frameRate:15,bitrate:500}),nb(this,"avoidCropping",!1),nb(this,"_scaleResolutionDownBy"),nb(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0}),nb(this,"small"),nb(this,"isNeedToSetBandwidth"),nb(this,"muteImage"),nb(this,"manager"),nb(this,"_seiCodec",new Cx),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(ZC($C({},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(aM&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return"detail"===(null==(e=this._inputTrack)?void 0:e.contentHint)}setMute(t){return ob(this,null,(function*(){var i,r,n;if(CD(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,sb(e.prototype,this,"setMute").call(this,!1)}else yield null==(n=this.manager)?void 0:n.deleteWatermark("mute"),this.muteImage=void 0,sb(e.prototype,this,"setMute").call(this,t)}))}capture(e){let{deviceId:t,facingMode:i,useExactDeviceId:r=!0,customSource:n,retryWhenExactFailed:s=!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:s,customSource:n})}setProfile(e){let t=$C({},e),i=t.width>t.height;t.width*t.height<=19200&&bN&&Dw&&(this.log.warn("resolution is ".concat(t.width,"*").concat(t.height,", fallback to 240*180")),t.width=i?240:180,t.height=i?180:240,t.bitrate=Math.max(t.bitrate,150)),t.width*t.height>921600&&Gw&&(t.width=i?1280:720,t.height=i?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),this.avoidCropping&&(Dw||wN)&&!zw()&&t.width*t.height<=230400&&t.width/t.height==16/9&&(this._scaleResolutionDownBy=1280/t.width,t.width=1280,t.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),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(ZC($C({},this.profile),{width:1920,height:1080})))}applyProfile(){return ob(this,null,(function*(){var e;if(!this.mediaTrack)return;let t=this.settings;return(t.height!==this.profile.height||t.width!==this.profile.width||t.frameRate!==this.profile.frameRate)&&this.deviceId&&(16===Fw?yield this.recapture(this.deviceId):(yield null==(e=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,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:rk.VIDEO,videoType:rk.BIG})):void 0}))}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return aM&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){if(this._scaleResolutionDownBy)return this._scaleResolutionDownBy;let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:eN()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}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 ob(this,null,(function*(){try{if(!this.isNeedToSwitchDevice(e))return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};"user"===e||"environment"===e?t.facingMode=e:t.deviceId=e,this.mediaTrack.stop(),yield this.capture(t),sO.emit(aO.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(wk){throw this.log.error("switch camera failed ".concat(wk)),this.deviceId&&this.recapture(this.deviceId),wk}}))}listenDeviceChange(){BL&&!BL.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&BL.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return ob(this,null,(function*(){if(e.deviceId===this.deviceId){this.log.warn("current camera is lost: ".concat(JSON.stringify(e))),TF(this.userId,{eventId:2003,param1:7,streamType:2});let t=yield jL();t[0]?this.recapture(t[0].deviceId):BL.on("videoInputAdded",this.handleCameraAdded,this)}}))}handleCameraAdded(e){return ob(this,null,(function*(){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 AD(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){BL.off("videoInputAdded",this.handleCameraAdded,this),BL.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(t){return ob(this,null,(function*(){try{yield sb(e.prototype,this,"recapture").call(this,t)}catch(wk){let r=(yield jL()).find((e=>e.deviceId!==t));if(!r)throw wk;yield sb(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))}};rb([lx((function(e){this.setContentHint(e.contentHint||"motion")}))],bx.prototype,"capture",1);var kx=bx,Dx=dO();if("undefined"!=typeof navigator&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Dx,exposeOrigin:!0,permittedOrigins:["*"]})}catch(yW){}var Nx=function(e){return ob(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:Mw?{max:e.width}:{ideal:e.width,max:e.width},height:Mw?{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);lO.info("getDisplayMedia with constraints: ".concat(JSON.stringify(i)));let r=yield navigator.mediaDevices.getDisplayMedia(i);e.systemAudio&&0===r.getAudioTracks().length&&(Nw&&Ow<74||Mw||wN)&&lO.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(yO){lO.warn("screen applyConstraints failed: ".concat(yO))}e.captureElement&&(yield function(e,t){return ob(this,null,(function*(){var i;if("CropTarget"in window&&"fromElement"in CropTarget&&RD(e.cropTo))try{if((null==(i=e.getCaptureHandle())?void 0:i.handle)!==Dx)return;let r=yield CropTarget.fromElement(t);yield e.cropTo(r)}catch(r){lO.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 AD(e.microphoneId)||(t.deviceId=e.microphoneId),{audio:t,video:!1}}(e);lO.info("getUserMedia with constraints: ".concat(JSON.stringify(i))),t=yield navigator.mediaDevices.getUserMedia(i),r.addTrack(t.getAudioTracks()[0])}return r}))},wx=class extends kx{constructor(e){super(e,2),nb(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),nb(this,"objectFit","contain"),nb(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}capture(e){return ob(this,arguments,(function(e){var t=this;let{systemAudio:i=!1,autoGainControl:r,echoCancellation:n,noiseSuppression:s,audioTrack:o,videoTrack:a,captureElement:c,preferDisplaySurface:l}=e;return function*(){try{let e;return a||o?(e=new MediaStream,a&&e.addTrack(a),o&&e.addTrack(o)):e=yield Nx({audio:!1,systemAudio:i,width:t.profile.width,height:t.profile.height,frameRate:t.profile.frameRate,autoGainControl:r,echoCancellation:n,noiseSuppression:s,captureElement:c,preferDisplaySurface:l}),yield t.setInputMediaStreamTrack(e.getVideoTracks()[0]),e}catch(mO){throw t.log.error("getDisplayMedia error observed ".concat(mO)),mO instanceof vb?mO:new vb({code:Eb.INITIALIZE_FAILED,name:mO.name,message:mO.message})}}()}))}switchDevice(e){return ob(this,null,(function*(){throw new Error("Method not implemented.")}))}};rb([lx((function(e){this.setContentHint(e.contentHint||"detail")}))],wx.prototype,"capture",1);var Ox,Px=class extends Rx{constructor(e){super(e),this._log.id="s-".concat(this._log.id)}};function Mx(e){return ob(this,null,(function*(){let t=RL();Ox||(Ox=gL(t,URL.createObjectURL(new Blob(["registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});"],{type:"application/javascript"})))),yield Ox;let i=new AudioWorkletNode(t,"dumper",{numberOfInputs:e.length,numberOfOutputs:0});return e.forEach(((e,t)=>e.connect(i,0,t))),new ReadableStream({start(e){i.port.onmessage=t=>{e.enqueue(t.data)}},cancel(){e.forEach((e=>e.disconnect(i))),i.port.close()}})}))}var Lx=class extends DL{constructor(e){super(),this.room=e,nb(this,"_localAudioTrack"),nb(this,"_localScreenAudioTrack"),nb(this,"log",lO.createLogger({id:"am"})),nb(this,"denoiser"),nb(this,"voiceChanger"),nb(this,"mixChangedDebounce"),nb(this,"encodePipeline",[]),nb(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return null==(e=this._localAudioTrack)?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 s=new AbortController,o=[],a=setTimeout((()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")}),1e3*e),c=()=>{for(let e=0;e<n.length;e++){let t=URL.createObjectURL(new Blob(o[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),s.abort("download")},l=Mx(r).then((e=>e.pipeTo(new WritableStream({write(e){e.forEach(((e,t)=>o[t]=o[t]?o[t].concat(e[0]):[e[0]]))}}),s).catch((e=>c))));return{then:l.then.bind(l),download:c}}getPCM(e){var t;if(AD(WritableStream))return void this.log.warn("getPCM failed: browser not support WritableStream");if(null==(t=this._localAudioPipline)||!t.source.node)return void this.log.warn("getPCM failed: no local audio track");this.log.warn("getPCM");let i=new Float32Array(1920),r=0,n=new AbortController;return Mx([this._localAudioPipline.source.node]).then((t=>t.pipeTo(new WritableStream({write(t){t[0][0]&&(i.set(t[0][0],r),r+=t[0][0].length,r>=1920&&(r=0,e(i),i=new Float32Array(1920)))}}),n).catch((e=>this.log.warn("stop getPCM reason:".concat(e)))))),n}get hasScreenAudioTrack(){return null!==this._localScreenAudioTrack}get hasAudioTrack(){return!AD(this._localAudioTrack)}changeInput(e){return e instanceof Px?(this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange()):e instanceof Rx?(this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange()):e instanceof $U?e.setOutputMediaStreamTrack(e.mediaTrack):void 0}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 Px?delete this._localScreenAudioTrack:e instanceof Rx&&delete this._localAudioTrack}addDenoiser(e){var t;this.denoiser=e,null==(t=this._localAudioTrack)||t.addDenoiser(e)}removeDenoiser(e){var t;delete this.denoiser,null==(t=this._localAudioTrack)||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()}destroy(){this.close()}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}};function xx(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return ux(((i,r)=>function(){for(var n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];return new Promise(((n,o)=>{let a=setTimeout((()=>{let i=new vb({code:Eb.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(r,"() timeout ").concat(e,"s")});lO.warn(i),2===t?o(i):1===t&&n()}),1e3*e);i.apply(this,s).then(n,o).finally((()=>{clearTimeout(a)}))}))}))}var Vx={};function Ux(){}tb(Vx,{Events:()=>Zx,Inspect:()=>jx,LastSink:()=>Jx,Sink:()=>Kx,Subscribe:()=>qx,TimeoutError:()=>eV,audit:()=>nU,bindCallback:()=>PV,bindNodeCallback:()=>MV,buffer:()=>pV,bufferCount:()=>hV,bufferTime:()=>HU,call:()=>Fx,catchError:()=>WU,combineLatest:()=>cV,concat:()=>sV,concatMap:()=>DU,concatMapTo:()=>NU,count:()=>BV,create:()=>Yx,debounce:()=>aU,debounceTime:()=>cU,defer:()=>fV,delay:()=>GU,deliver:()=>Xx,dispose:()=>Hx,elementAt:()=>lU,empty:()=>VV,every:()=>mU,exhaustMap:()=>VU,exhaustMapTo:()=>UU,filter:()=>jV,find:()=>dU,findIndex:()=>uU,first:()=>hU,fromAnimationFrame:()=>wV,fromArray:()=>vV,fromEvent:()=>AV,fromEventPattern:()=>RV,fromFetch:()=>bV,fromIterable:()=>kV,fromPromise:()=>CV,fromReadableStream:()=>NV,fromReader:()=>DV,groupBy:()=>FU,identity:()=>Bx,ignoreElements:()=>JV,iif:()=>aV,inspect:()=>Gx,interval:()=>yV,last:()=>pU,map:()=>EU,mapTo:()=>TU,max:()=>HV,merge:()=>rV,mergeMap:()=>PU,mergeMapTo:()=>MU,min:()=>GV,never:()=>LV,nothing:()=>Ux,of:()=>TV,pairwise:()=>fU,pipe:()=>zx,race:()=>nV,range:()=>OV,reduce:()=>FV,retry:()=>YU,scan:()=>_U,share:()=>iV,shareReplay:()=>oV,skip:()=>XV,skipUntil:()=>QV,skipWhile:()=>$V,startWith:()=>dV,subject:()=>_V,subscribe:()=>KU,sum:()=>WV,switchMap:()=>RU,switchMapTo:()=>CU,take:()=>KV,takeLast:()=>YV,takeUntil:()=>qV,takeWhile:()=>zV,tap:()=>qU,throttle:()=>iU,throwError:()=>xV,timeInterval:()=>BU,timeout:()=>zU,timer:()=>SV,toPromise:()=>jU,toReadableStream:()=>JU,withLatestFrom:()=>uV,zip:()=>lV});var Fx=e=>e(),Bx=e=>e;function Hx(){this.dispose()}var Gx=()=>"undefined"!=typeof __FASTRX_DEVTOOLS__,Wx=1,jx=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(e){let t=new $x(e,this,this.streamId++);return Zx.subscribe({id:this.id,end:!1},{nodeId:t.sourceId,streamId:t.id}),this(t),t}},Jx=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=Ux,this.error=Ux,this.next=Ux,this.dispose=Ux,this.subscribe=Ux,this.doDefer()}subscribe(e){return e instanceof jx?e.subscribe(this):e(this),this}get bindSubscribe(){return e=>this.subscribe(e)}doDefer(){this.defers.forEach(Fx),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}},Kx=class extends Jx{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)}},qx=class extends Jx{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ux,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ux,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Ux;if(super(),this._next=t,this._error=i,this._complete=r,this.then=Ux,e instanceof jx){let n={toString:()=>"subscribe",id:0,source:e};this.defer((()=>{Zx.defer(n,0)})),Zx.create(n),Zx.pipe(n),this.sourceId=n.id,this.subscribe(e),Zx.subscribe({id:n.id,end:!0}),t==Ux?this._next=e=>Zx.next(n,0,e):this.next=e=>{Zx.next(n,0,e),t(e)},r==Ux?this._complete=()=>Zx.complete(n,0):this.complete=()=>{this.dispose(),Zx.complete(n,0),r()},i==Ux?this._error=e=>Zx.complete(n,0,e):this.error=e=>{this.dispose(),Zx.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 zx(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 Yx(e,t,i){if(Gx()){let r=Object.defineProperties(Object.setPrototypeOf(e,jx.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}});Zx.create(r);for(let e=0;e<i.length;e++){let t=i[e];"function"==typeof t&&t instanceof jx&&Zx.addSource(r,t)}return r}return e}function Xx(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 jx){let n=Yx((t=>{let s=new e(t,...r);s.sourceId=n.id,s.subscribe(i)}),t,arguments);return n.source=i,Zx.pipe(n),n}return t=>i(new e(t,...r))}}}function Qx(e,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:e,payload:t}})}var $x=class extends Kx{constructor(e,t,i){super(e),this.source=t,this.id=i,this.sourceId=e.sourceId,this.defer((()=>{Zx.defer(this.source,this.id)}))}next(e){Zx.next(this.source,this.id,e),this.sink.next(e)}complete(){Zx.complete(this.source,this.id),this.sink.complete()}error(e){Zx.complete(this.source,this.id,e),this.sink.error(e)}},Zx={addSource(e,t){Qx("addSource",{id:e.id,name:e.toString(),source:{id:t.id,name:t.toString()}})},next(e,t,i){Qx("next",{id:e.id,streamId:t,data:i&&i.toString()})},subscribe(e,t){let{id:i,end:r}=e;Qx("subscribe",{id:i,end:r,sink:{nodeId:t&&t.nodeId,streamId:t&&t.streamId}})},complete(e,t,i){Qx("complete",{id:e.id,streamId:t,err:i?i.toString():null})},defer(e,t){Qx("defer",{id:e.id,streamId:t})},pipe(e){Qx("pipe",{name:e.toString(),id:e.id,source:{id:e.source.id,name:e.source.toString()}})},update(e){Qx("update",{id:e.id,name:e.toString()})},create(e){e.id||(e.id=Wx++),Qx("create",{name:e.toString(),id:e.id})}},eV=class extends Error{constructor(e){super("timeout after ".concat(e,"ms")),this.timeout=e}},tV=class extends Jx{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 iV(){return e=>{let t=new tV(e);if(e instanceof jx){let i=Yx((e=>{t.add(e)}),"share",arguments);return t.sourceId=i.id,i.source=e,Zx.pipe(i),i}return Yx(t.add.bind(t),"share",arguments)}}function rV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx((e=>{let i=new Kx(e),r=t.length;i.complete=()=>{0==--r&&e.complete()},t.forEach(i.bindSubscribe)}),"merge",arguments)}function nV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx((e=>{let i=new Map;t.forEach((t=>{let r=new Kx(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 sV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx((e=>{let i=0,r=t.length,n=new Kx(e);n.complete=()=>{i<r&&!n.disposed?(n.doDefer(),n.subscribe(t[i++])):e.complete()},n.complete()}),"concat",arguments)}function oV(e){return t=>{let i=new tV(t),r=[];return i.next=function(t){r.push(t),r.length>e&&r.shift(),this.sinks.forEach((e=>e.next(t)))},Yx((e=>{e.defer((()=>i.remove(e))),r.forEach((t=>e.next(t))),i.add(e)}),"shareReplay",arguments)}}function aV(e,t,i){return Yx((r=>e()?t(r):i(r)),"iif",arguments)}function cV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx((e=>{let i=t.length,r=i,n=i,s=new Array(i),o=()=>{0==--n&&e.complete()};t.forEach(((t,i)=>{let n=new Kx(e);n.next=t=>{0==--r?(n.next=t=>{s[i]=t,e.next(s)},n.next(t)):s[i]=t},n.complete=o,n.subscribe(t)}))}),"combineLatest",arguments)}function lV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx((e=>{let i=t.length,r=i,n=new Array(i),s=()=>{0==--r&&e.complete()};t.forEach(((t,i)=>{let r=new Kx(e),o=[];n[i]=o,r.next=t=>{o.push(t),n.every((e=>e.length))&&e.next(n.map((e=>e.shift())))},r.complete=s,r.subscribe(t)}))}),"zip",arguments)}function dV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return e=>Yx((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 uV=Xx(class extends Kx{constructor(e){super(e);let t=new Kx(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=Ux,t.subscribe(cV(...r))}next(e){this.buffer&&this.sink.next([e,...this.buffer])}},"withLatestFrom"),hV=Xx(class extends Kx{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"),pV=Xx(class extends Kx{constructor(e,t){super(e),this.buffer=[];let i=new Kx(e);i.next=t=>{e.next(this.buffer),this.buffer=[]},i.complete=Ux,i.subscribe(t)}next(e){this.buffer.push(e)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),mV=function(e,t,i,r){return new(i||(i=Promise))((function(n,s){function o(e){try{c(r.next(e))}catch(mO){s(mO)}}function a(e){try{c(r.throw(e))}catch(mO){s(mO)}}function c(e){e.done?n(e.value):function(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(o,a)}c((r=r.apply(e,t||[])).next())}))};function _V(e){let t=arguments,i=iV()(Yx((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=Ux,i.complete=Ux,i.error=Ux,i}function fV(e){return Yx((t=>t.subscribe(e())),"defer",arguments)}var gV=e=>t=>{setTimeout((()=>e(t)))},EV=e=>gV((t=>{for(let i=0;!t.disposed&&i<e.length;i++)t.next(e[i]);t.complete()}));function TV(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return Yx(EV(t),"of",arguments)}function vV(e){return Yx(EV(e),"fromArray",arguments)}function yV(e){return Yx((t=>{let i=0,r=setInterval((()=>t.next(i++)),e);return t.defer((()=>{clearInterval(r)})),"interval"}),"interval",arguments)}function SV(e,t){return Yx((i=>{let r=0,n=setTimeout((()=>{if(i.removeDefer(s),i.next(r++),t){let e=setInterval((()=>i.next(r++)),t);i.defer((()=>{clearInterval(e)}))}else i.complete()}),e),s=()=>{clearTimeout(n)};i.defer(s)}),"timer",arguments)}function IV(e,t){return i=>{let r=e=>i.next(e);i.defer((()=>t(r))),e(r)}}function RV(e,t){return Yx(IV(e,t),"fromEventPattern",arguments)}function AV(e,t){if("on"in e&&"off"in e)return Yx(IV((i=>e.on(t,i)),(i=>e.off(t,i))),"fromEvent",arguments);if("addListener"in e&&"removeListener"in e)return Yx(IV((i=>e.addListener(t,i)),(i=>e.removeListener(t,i))),"fromEvent",arguments);if("addEventListener"in e)return Yx(IV((i=>e.addEventListener(t,i)),(i=>e.removeEventListener(t,i))),"fromEvent",arguments);throw"target is not a EventDispachter"}function CV(e){return Yx((t=>{e.then(t.next.bind(t),t.error.bind(t))}),"fromPromise",arguments)}function bV(e,t){return Yx(fV((()=>CV(fetch(e,t)))),"fromFetch",arguments)}function kV(e){return Yx(gV((t=>{try{for(let i of e){if(t.disposed)return;t.next(i)}t.complete()}catch(Nb){t.error(Nb)}})),"fromIterable",arguments)}function DV(e){let t=i=>mV(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 Yx((e=>{t(e)}),"fromReader",arguments)}function NV(e){return Yx((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 wV(){return Yx((e=>{let t=requestAnimationFrame((function i(r){e.disposed||(e.next(r),t=requestAnimationFrame(i))}));e.defer((()=>cancelAnimationFrame(t)))}),"fromAnimationFrame",arguments)}function OV(e,t){return Yx((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 PV(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 Yx((i=>{let n=r.concat((e=>(i.next(e),i.complete())));e.apply(t,n)}),"bindCallback",arguments)}function MV(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 Yx((i=>{let n=r.concat(((e,t)=>e?i.error(e):(i.next(t),i.complete())));e.apply(t,n)}),"bindNodeCallback",arguments)}function LV(){return Yx((()=>{}),"never",arguments)}function xV(e){return Yx((t=>t.error(e)),"throwError",arguments)}function VV(){return Yx((e=>e.complete()),"empty",arguments)}var UV=class extends Kx{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)}},FV=Xx(UV,"reduce"),BV=e=>Xx(UV,"count")(((t,i)=>e(i)?t+1:t),0),HV=()=>Xx(UV,"max")(Math.max),GV=()=>Xx(UV,"min")(Math.min),WV=()=>Xx(UV,"sum")(((e,t)=>e+t),0),jV=Xx(class extends Kx{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"),JV=Xx(class extends Kx{next(e){}},"ignoreElements"),KV=Xx(class extends Kx{constructor(e,t){super(e),this.count=t}next(e){this.sink.next(e),0==--this.count&&this.complete()}},"take"),qV=Xx(class extends Kx{constructor(e,t){super(e);let i=new Kx(e);i.next=()=>e.complete(),i.complete=Hx,i.subscribe(t)}},"takeUntil"),zV=Xx(class extends Kx{constructor(e,t){super(e),this.f=t}next(e){this.f(e)?this.sink.next(e):this.complete()}},"takeWhile"),YV=e=>FV(((t,i)=>(t.push(i),t.length>e&&t.shift(),t)),[]),XV=Xx(class extends Kx{constructor(e,t){super(e),this.count=t}next(e){0==--this.count&&(this.next=super.next)}},"skip"),QV=Xx(class extends Kx{constructor(e,t){super(e),e.next=Ux;let i=new Kx(e);i.next=()=>{i.dispose(),e.resetNext()},i.complete=Hx,i.subscribe(t)}},"skipUntil"),$V=Xx(class extends Kx{constructor(e,t){super(e),this.f=t}next(e){this.f(e)||(this.next=super.next,this.next(e))}},"skipWhile"),ZV={leading:!0,trailing:!1},eU=class extends Kx{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)}},tU=class extends Kx{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ZV;super(e),this.durationSelector=t,this.config=i,this._throttle=new eU(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=Ux,this._throttle.complete(),super.complete()}},iU=Xx(tU,"throttle"),rU={leading:!1,trailing:!0},nU=e=>Xx(tU,"audit")(e,rU),sU=class extends Kx{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},oU=class extends Kx{constructor(e,t){super(e),this.durationSelector=t,this._debounce=new sU(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()}},aU=Xx(oU,"debounce"),cU=e=>Xx(oU,"debounceTime")((t=>SV(e))),lU=Xx(class extends Kx{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"),dU=e=>t=>KV(1)($V((t=>!e(t)))(t)),uU=Xx(class extends Kx{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"),hU=Xx(class extends Kx{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"),pU=Xx(class extends Kx{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"),mU=Xx(class extends Kx{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"),_U=Xx(class extends Kx{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"),fU=Xx(class extends Kx{constructor(){super(...arguments),this.hasLast=!1}next(e){this.hasLast?this.sink.next([this.last,e]):this.hasLast=!0,this.last=e}},"pairwise"),gU=class extends Kx{constructor(e,t,i){super(e),this.mapper=t,this.thisArg=i}next(e){super.next(this.mapper.call(this.thisArg,e))}},EU=Xx(gU,"map"),TU=e=>Xx(gU,"mapTo")((t=>e)),vU=class extends Kx{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()}},yU=class extends Kx{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()}},SU=class extends vU{},IU=class extends yU{next(e){this.subInner(e,SU),this.next=e=>{this.currentSink.dispose(),this.subInner(e,SU)}}},RU=Xx(IU,"switchMap");function AU(e){return(t,i)=>e((()=>t),i)}var CU=AU(Xx(IU,"switchMapTo")),bU=class extends vU{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},kU=class extends yU{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(),bU),this.disposed&&0===this.sources.length&&this.currentSink.resetComplete()}tryComplete(){0===this.sources.length&&this.currentSink.resetComplete(),this.dispose()}},DU=Xx(kU,"concatMap"),NU=AU(Xx(kU,"concatMapTo")),wU=class extends vU{tryComplete(){this.context.inners.delete(this),super.dispose(),0===this.context.inners.size&&this.context.resetComplete()}},OU=class extends yU{constructor(){super(...arguments),this.inners=new Set}next(e){this.subInner(e,wU),this.inners.add(this.currentSink)}tryComplete(){1===this.inners.size?this.inners.forEach((e=>e.resetComplete())):this.dispose()}},PU=Xx(OU,"mergeMap"),MU=AU(Xx(OU,"mergeMapTo")),LU=class extends vU{dispose(){this.context.resetNext(),super.dispose()}},xU=class extends yU{next(e){this.next=Ux,this.subInner(e,LU)}},VU=Xx(xU,"exhaustMap"),UU=AU(Xx(xU,"exhaustMapTo")),FU=Xx(class extends Kx{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=_V(),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"),BU=Xx(class extends Kx{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"),HU=Xx(class extends Kx{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"),GU=Xx(class extends Kx{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"),WU=Xx(class extends Kx{constructor(e,t){super(e),this.selector=t}error(e){this.dispose(),this.selector(e)(this.sink)}},"catchError"),jU=()=>e=>new Promise(((t,i)=>{let r;new qx(e,(e=>r=e),i,(()=>t(r)))})),JU=()=>e=>{let t;return new ReadableStream({start(i){t=new qx(e,i.enqueue.bind(i),i.error.bind(i),i.close.bind(i))},cancel(){t.dispose()}})},KU=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ux,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ux,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ux;return r=>new qx(r,e,t,i)},qU=Xx(class extends Kx{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"),zU=Xx(class extends Kx{constructor(e,t){super(e),this.timeout=t,this.id=setTimeout((()=>this.error(new eV(this.timeout))),this.timeout)}next(e){super.next(e),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),YU=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return t=>{if(t instanceof jx){let i=Yx((r=>{let n=e,s=new Kx(r);s.error=e=>{n-- >0?s.subscribe(t):r.error(e)},s.sourceId=i.id,s.subscribe(t)}),"retry",[e]);return i.source=t,Zx.pipe(i),i}return i=>{let r=e,n=new Kx(i);n.error=e=>{r-- >0?t(n):i.error(e)},t(n)}}},XU=class e extends ex{constructor(t,i,r){super({userId:i.userId,sdkAppId:t.sdkAppId,mediaType:r,room:t}),this.room=t,this.user=i,nb(this,"tinyId"),nb(this,"isRemote",!0),nb(this,"jitterBufferDelay",0),nb(this,"availableState"),nb(this,"remotePublishState"),nb(this,"_triggerCheckDecodeSubject",_V(AV(this,e.STATE_SUBSCRIBE))),this.tinyId=i.tinyId,this.availableState=new wM("".concat(i.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new wM("".concat(i.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),zx(rV(AV(this,wM.STATECHANGED),AV(this.remotePublishState,wM.STATECHANGED)),EU((()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing))),KU((e=>{this.availableState.state!==(e?wM.ON:wM.OFF)&&(this.availableState.state=e?wM.ON:wM.OFF),this.updatePlayingState(e)})));let n=zx(AV(this.player,UM.ERROR),jV((e=>e.code===MediaError.MEDIA_ERR_DECODE))),s=zx(SV(5e3),jV((()=>!(this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived)&&(!this.player.isPlaying&&!(this.kind===rk.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1))))),o=zx(nV(n,s),qV(AV(this,wM.INIT)));zx(this._triggerCheckDecodeSubject,jV((()=>!this.ignoreDecodeError)),CU(o),KU((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===wM.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){let i=this.kind===rk.AUDIO;bP[e?"addSuccessEvent":"addFailedEvent"]({key:i?504700:514702}),e||(bP.addEnum({key:i?504701:514703,value:eO()}),WM.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(Qw()||tO()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===rk.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?wM.ON:wM.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};nb(XU,"STATE_SUBSCRIBE","subscribe"),rb([xx(5,1)],XU.prototype,"waitHasMediaTrack",1),rb([kM(wM.INIT,XU.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),sO.emit(aO.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),vx(521716,!1)],XU.prototype,"subscribe",1),rb([kM(XU.STATE_SUBSCRIBE,wM.INIT,{sync:!0,success(){this.log.info("unsubscribed"),sO.emit(aO.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],XU.prototype,"unsubscribe",1);var QU=XU,$U=class extends QU{constructor(e,t){super(e,t,1),nb(this,"volume",0),nb(this,"mediaType",1),nb(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=e.audioManager}get dbVolume(){return LL.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}},ZU=[-1,-1,1,-1,-1,1,1,1],eF=[0,0,1,0,0,1,1,1],tF=class extends wM{constructor(e,t){if(super(),this.context=e,nb(this,"name"),nb(this,"input"),nb(this,"output"),nb(this,"texture"),nb(this,"ctx2d",null),nb(this,"fbo"),nb(this,"width",0),nb(this,"height",0),nb(this,"x",0),nb(this,"y",0),nb(this,"program"),nb(this,"vertexShader"),nb(this,"fragmentShader"),nb(this,"totalFrames",0),nb(this,"dropFrames",0),nb(this,"matchInputSize",!0),nb(this,"texCoordBuffer"),nb(this,"positionBuffer"),nb(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),nb(this,"cost",0),nb(this,"_canvas",null),nb(this,"_image"),nb(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 _F)e.ctx&&t.create2d&&("function"==typeof OffscreenCanvas&&16!==Fw?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(eF),this.positionBuffer=this.createBuffer(ZU),!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(EO){this.context.destroy(new vb({code:Eb.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(EO.message||EO)}))}}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 mF&&this.render(e)||this.context instanceof _F&&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 mF){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){return!(!this.ctx2d||!e)&&(e instanceof ImageData?this.ctx2d.putImageData(e,t,i):(this.ctx2d.drawImage(e,t,i,r,n),"undefined"!=typeof VideoFrame&&e instanceof VideoFrame&&e.close()),!0)}getInfo(){var e;let{totalFrames:t,x:i,y:r,width:n,height:s,name:o,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:s,timestamp:c,fps:l,name:o,cost:a},$C({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}};rb([kM(wM.INIT,"connected",{sync:!0})],tF.prototype,"connect",1),rb([kM("connected",wM.INIT,{ignoreError:!0,sync:!0})],tF.prototype,"disconnect",1),rb([kM([],"closed",{sync:!0})],tF.prototype,"close",1);var iF=zx(yV(250),EU((()=>performance.now())),iV()),rF=[0,1,1,1,0,0,1,0],nF=class extends tF{constructor(e,t){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},t)),nb(this,"_intervalId",0),nb(this,"_sequence",0),nb(this,"checkGLError",!1),nb(this,"checkVisibilityChange"),e instanceof _F?this.ctx2d=e.ctx||null:e.available&&null!=t&&t.mirrorUpAndDown&&this.setTexBuffer(rF)}start(e){this.log.info("".concat(this.name," start render ").concat(e," fps")),VM.clearTask(this._intervalId),this._intervalId=VM.run("intervalInWorker",(()=>{if(e!==this.context.frameRate&&(VM.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof mF){let e=this.context.ctx.getError();e&&this.context.destroy(new vb({code:Eb.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;if(this._intervalId&&(VM.clearTask(this._intervalId),this._intervalId=0,1===e)){this.log.info("".concat(this.name," use requestVideoFrameCallback"));let e=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",e))};document.addEventListener("visibilitychange",e)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),VM.clearTask(this._intervalId)}resize(e,t){super.resize(e,t),this.context.setSize(e,t)}close(){super.close(),VM.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},sF=class extends nF{constructor(e,t){super(e,t),nb(this,"_videoTrack"),nb(this,"_muteOb"),nb(this,"_closedOb",AV(this,"closed")),nb(this,"_subscription"),nb(this,"_canvasContainer"),Number(xw)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=AV(this._videoTrack,"mute"),zx(AV(this._videoTrack,"ended"),qV(this._closedOb),KU((()=>{this.context.destroy(new vb({code:Eb.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))})))}enableCheckMute(){var e;this._subscription=zx(this._muteOb,qV(this._closedOb),CU((e=5e3,t=>{let i=performance.now();zx(iF,$V((t=>t-i<e)),KV(1))(t)})),KU((()=>{var e;null!=(e=this._videoTrack)&&e.muted&&this.context.destroy(new vb({code:Eb.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()}},oF=class extends sF{render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))}},aF=class extends sF{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))}},cF=class extends tF{constructor(e,t){super(e,$C({name:"imageSource"},t)),nb(this,"_lastImage"),nb(this,"_totalFrames",0),nb(this,"_autoResize",!1),nb(this,"_canvasRendered"),nb(this,"_videoCallbackId",0),this._autoResize=!1!==(null==t?void 0:t.autoResize),16===Fw&&(this._canvasRendered=_V(),zx(this._canvasRendered,dV(this._image),RU((e=>e instanceof HTMLCanvasElement?AV(e,"rendered"):VV())),qV(AV(this,"closed")),KU((()=>{this.update()}))))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),vM()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback(((e,t)=>{document.hidden||(this._totalFrames=t.presentedFrames,this.update(1))})))}_render(e,t){var i;let{width:r,height:n}=this,{image:s}=this;if(s instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(s),({videoWidth:r,videoHeight:n}=s),!r||!n)return!1;s.width=r,s.height=n}else if(s instanceof HTMLImageElement||s instanceof ImageData||s instanceof ImageBitmap){if(({width:r,height:n}=s),s!==this._lastImage)this._lastImage=s;else if(r===this.width&&n===this.height)return!1}else s instanceof HTMLCanvasElement||s instanceof OffscreenCanvas?(({width:r,height:n}=s),this._lastImage=s):"undefined"!=typeof VideoFrame&&s instanceof VideoFrame&&(({displayWidth:r,displayHeight:n}=s),null==(i=this._lastImage)||i.close(),this._lastImage=s);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,s)}}else{if(t){this.useTexture();let e=this.context.ctx;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s)}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)}},lF=class extends cF{constructor(e,t,i){super(e,i),this._player=t,this.name="videoPlayerSource",zx(AV(this._player,UM.PLAYER_STATE_CHANGED),qV(AV(this,"closed")),jV((e=>{let{state:t}=e;return"PLAYING"===t})),KU((()=>{this.tryVideoFrameCallback(this._player.element)})))}get image(){return this._player.element}},dF=class extends lF{constructor(e,t,i){super(e,new fL({id:i.name,track:t,muted:!0,container:null,objectFit:"contain",log:i.logger}),i),this.name="videoTrackSource",this._player.play()}replaceTrack(e){this._player.setTrack(e),this._player.play()}close(){super.close(),this._player.stop()}},uF=class extends wM{constructor(e){super(),nb(this,"frameRate"),nb(this,"_canvas"),nb(this,"log"),nb(this,"hasAlpha",!1),nb(this,"name"),nb(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 dF(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new sF(this,e)}createVideoImageSource(e,t){return new cF(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new lF(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return"created"===this.state}disconnect(){this.emit("disconnect")}};nb(uF,"_ids",0);var hF={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},pF=class extends uF{constructor(){super(...arguments),nb(this,"defaultProgam"),nb(this,"defaultVShader"),nb(this,"defaultFShader"),nb(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(uF._ids++)),this.ctx=this._canvas.getContext("webgl2",hF),!this.ctx)throw new vb({code:Eb.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 vb({code:Eb.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}))}destroy(e){let t="";return e&&(t=e.message,this.error=e,bP.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}};nb(pF,"UNAVAILABLE","unavailable"),rb([kM(wM.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),bP.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),bP.addSuccessEvent({key:512700})}})],pF.prototype,"create",1),rb([kM("created",wM.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(pF.UNAVAILABLE,e),this.removeAllListeners()}})],pF.prototype,"destroy",1);var mF=pF,_F=class extends uF{constructor(){super(...arguments),nb(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(uF._ids++),this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new vb({code:Eb.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,bP.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(),bP.addSuccessEvent({key:512703})}};rb([kM(wM.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),bP.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),bP.addSuccessEvent({key:512701})}})],_F.prototype,"create",1),rb([kM("created",wM.INIT,{ignoreError:!0,sync:!0})],_F.prototype,"destroy",1);var fF=class extends QU{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4),nb(this,"mediaType",4),nb(this,"source"),nb(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(kD(null==t?void 0:t.canvasRender)?t.canvasRender:17===Fw)&&!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 _F({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let t=new nF(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(t),this.player.setCanvas(e._canvas),vM()||(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;!bD(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)}},gF=class extends fF{constructor(e,t){super(e,t,2),nb(this,"mediaType",2),nb(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},EF=new Map;function TF(e,t){let i=ZC($C({},t),{timestamp:Sb()});EF.has(e)?EF.get(e).push(i):EF.set(e,[i])}sO.on(aO.JOIN_SUCCESS,(e=>{let{room:t}=e;TF(t.userId,{eventId:32788})})),sO.on(aO.LEAVE_START,(e=>{let{room:t}=e;TF(t.userId,{eventId:32789})})),sO.on(aO.LOCAL_TRACK_PUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32769;4===t.mediaType?e=32768:2===t.mediaType&&(e=32805),TF(t.room.userId,{eventId:e})}})),sO.on(aO.LOCAL_TRACK_UNPUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32771;4===t.mediaType?e=32770:2===t.mediaType&&(e=32806),TF(t.room.userId,{eventId:e})}})),sO.on(aO.TRACK_MUTED,(e=>{let{track:t}=e;t.room&&(t.kind===rk.AUDIO?TF(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):TF(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))})),sO.on(aO.TRACK_UNMUTED,(e=>{let{track:t}=e;t.room&&(t.kind===rk.AUDIO?TF(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):TF(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))})),sO.on(aO.REMOTE_TRACK_SUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&TF(t.room.userId,{eventId:32777,remoteUserId:t.userId}),4===t.mediaType&&TF(t.room.userId,{eventId:32776,remoteUserId:t.userId}),8===t.mediaType&&TF(t.room.userId,{eventId:32803,remoteUserId:t.userId}))})),sO.on(aO.REMOTE_TRACK_UNSUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&TF(t.room.userId,{eventId:32779,remoteUserId:t.userId}),4===t.mediaType&&TF(t.room.userId,{eventId:32778,remoteUserId:t.userId}),8===t.mediaType&&TF(t.room.userId,{eventId:32804,remoteUserId:t.userId}))})),sO.on(aO.SWITCH_DEVICE_SUCCESS,(e=>{let{track:t}=e;t.room&&TF(t.room.userId,{eventId:t.kind===rk.VIDEO?32780:32781})})),sO.on(aO.LOCAL_TRACK_REPLACED,(e=>{let{track:t}=e;t.room&&TF(t.room.userId,{eventId:t.kind===rk.VIDEO?32782:32783})})),sO.on(aO.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&&TF(i.userId,{eventId:t})})),sO.on(aO.PEER_CONNECTION_STATE_CHANGED,(e=>{let t,{room:i,prevState:r,state:n,remoteUserId:s}=e,o=!!s;switch(n){case"CONNECTED":t="RECONNECTING"===r?o?32801:32798:o?32793:32792;break;case"DISCONNECTED":"RECONNECTING"===r&&(t=o?32802:32799);break;case"RECONNECTING":t=o?32800:32797}t&&TF(i.userId,{eventId:t,remoteUserId:s})})),sO.on(aO.VIDEO_CODEC_IMPLEMENTATION_CHANGED,(e=>{let{implementation:t,userId:i,remoteUserId:r,codec:n,isHWCodec:s,prevImplementation:o,streamType:a}=e,c=s?1:0;o||(c=s?3:2);let l="h264"===n?0:2,d={eventId:4004,param1:c,param2:l,streamType:a||2};r&&(d.remoteUserId=r,d.eventId=4005),TF(i,d),bP.addEnum({key:r?514701:513701,value:c}),bP.addEnum({key:r?514700:513700,value:l})})),sO.on(aO.LOCAL_TRACK_RECAPTURE,(e=>{let{track:t,error:i}=e;if(t.userId){let e={eventId:2003,param1:0};t.kind===rk.AUDIO?(e.streamType=1,i&&(e.param1=2)):(e.streamType="auxiliary"===t.streamType?7:2,i&&(e.param1=8)),TF(t.userId,e)}}));var vF=ib(ab(),1),yF=class extends vF.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,nb(this,"userMap",new Map),nb(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 s={userId:i,tinyId:r,role:20===n?"anchor":"audience"};this.userMap.set(t,s),this.emit("1",s)}deleteUser(e,t){let i=this.userMap.get(e);if(!i)return;let r="peer leave [".concat(e,"]");AD(t)||(r+=":".concat(eD[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:s}=e,o=WD(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:o,flag:r}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(o))),this.addUser({userId:n,tinyId:s,role:20}),this.emit("3",e),this.emit("6",{prevMuteState:WD(0,n),muteState:o,flag:r})}))}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}};function SF(e){let{timesInSecond:t,maxSizeInSecond:i,getSize:r}=e;return ux(((e,n)=>{let s=new WeakMap;return sO.on(aO.ROOM_DESTROY,(e=>{let{room:t}=e;return s.delete(t)})),function(){let o=s.get(this);for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];if(o||(o={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,o)),0===o.timestamp?o.timestamp=Date.now():Date.now()-o.timestamp>1e3&&(o.timestamp=Date.now(),o.callCountInSecond=0,o.totalSizeInSecond=0),r&&(o.totalSizeInSecond+=r(...c)),0!==o.timestamp&&Date.now()-o.timestamp<1e3&&(o.callCountInSecond>=t||o.totalSizeInSecond>i))throw new vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.CALL_FREQUENCY_LIMIT,data:{isTimes:o.callCountInSecond>=t,isSize:o.totalSizeInSecond>i,name:n,timesInSecond:t,maxSizeInSecond:i}})});o.callCountInSecond++,e.call(this,...c)}}))}var IF,RF=!0,AF={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"},CF={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},bF=((IF=bF||{})[IF.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",IF[IF.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",IF[IF.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",IF[IF.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",IF[IF.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",IF[IF.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",IF[IF.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",IF[IF.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",IF[IF.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",IF[IF.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",IF[IF.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",IF[IF.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",IF[IF.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",IF[IF.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",IF[IF.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",IF[IF.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",IF[IF.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",IF[IF.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",IF[IF.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",IF[IF.INVALID_OPERATION=5100]="INVALID_OPERATION",IF[IF.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",IF[IF.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",IF[IF.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",IF[IF.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",IF[IF.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",IF[IF.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",IF[IF.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",IF[IF.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",IF[IF.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",IF[IF.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",IF[IF.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",IF[IF.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",IF[IF.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",IF[IF.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",IF[IF.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",IF[IF.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",IF[IF.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",IF[IF.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",IF[IF.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",IF[IF.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",IF[IF.DEVICE_ERROR=5300]="DEVICE_ERROR",IF[IF.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",IF[IF.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",IF[IF.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",IF[IF.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",IF[IF.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",IF[IF.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",IF[IF.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",IF[IF.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",IF[IF.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",IF[IF.SERVER_ERROR=5400]="SERVER_ERROR",IF[IF.NEED_TO_BUY=5401]="NEED_TO_BUY",IF[IF.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",IF[IF.OPERATION_FAILED=5500]="OPERATION_FAILED",IF[IF.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",IF[IF.REJOIN_FAILED=5502]="REJOIN_FAILED",IF[IF.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",IF[IF.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",IF[IF.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",IF[IF.OPERATION_ABORT=5998]="OPERATION_ABORT",IF[IF.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",IF);var kF=ZC($C({},mP),{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,s="".concat(t||i.name),o="";return o=Array.isArray(i.type)?i.type.join("|"):i.type,"'".concat(s,"' must be type of ").concat(o," when calling ").concat(r,"(), received type: ").concat(ID(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,s="".concat(t||i.name),o="".concat(i.instanceOf.name||i.instanceOf);return"'".concat(s,"' must be instanceof ").concat(o," when calling ").concat(r,"(), received type: ").concat(ID(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_REQUIED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",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 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=DF(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=DF(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=DF(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=DF(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=DF(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=DF(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=DF(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 DF(e){if(!e)return"camera";let t=e.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var NF=class e extends Error{constructor(e){let{code:t,extraCode:i,message:r="",messageParams:n,fnName:s="",originError:o}=e;var a;let c;c=r||function(e){let t,{code:i,params:r,enableDocLink:n=!1}=e,o="",a=bF[i];try{t=kF[a]}catch(s){t=kF.UNKNOWN_ERROR}return RD(t)?o=t(r):CD(t)&&(o=t),r.fnName&&!o.includes(r.fnName)&&("."!==o[o.length-1]&&(o+="."),o+=" thrown from ".concat(r.fnName,"()")),n&&(o+=" doc:"),o}({code:t===CF.SERVER_ERROR?t:i||t,params:$C({fnName:s,error:o},n)}),super(c),nb(this,"name","RtcError"),nb(this,"code"),nb(this,"extraCode"),nb(this,"functionName"),nb(this,"message"),nb(this,"handler"),nb(this,"originError"),this.name=bF[t],this.code=t,this.extraCode=i,this.functionName=s,this.originError=o,this.message=c,5302===this.extraCode&&null!=(a=this.originError)&&a.message.includes("system")&&(this.handler=()=>{let e=document.createElement("a");aw?e.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):cw&&(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 vb){let{stack:s}=t,o={code:CF.UNKNOWN_ERROR,fnName:i,originError:t};switch(t.getCode()){case Eb.INVALID_PARAMETER:o.code=CF.INVALID_PARAMETER,o.message=t.message;break;case Eb.INVALID_OPERATION:o.code=CF.INVALID_OPERATION;break;case Eb.NOT_SUPPORTED:case Eb.NOT_SUPPORTED_H264:o.code=CF.ENV_NOT_SUPPORTED,t.getCode()===Eb.NOT_SUPPORTED_H264&&(o.extraCode=t.message.includes(mP.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Eb.JOIN_ROOM_FAILED:o.messageParams={fnParams:r};case Eb.SERVER_TIMEOUT:case Eb.SWITCH_ROLE_FAILED:o.code=CF.SERVER_ERROR,o.extraCode=t.getExtraCode();break;case Eb.API_CALL_ABORTED:o.code=CF.OPERATION_ABORT;break;case Eb.DEVICE_NOT_FOUND:case Eb.DEVICE_AUTO_RECOVER_FAILED:case Eb.INITIALIZE_FAILED:o.code=5300,t.name&&(o.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 Eb.UNKNOWN:break;default:o.code=CF.OPERATION_FAILED}n=new e(o),s&&(n.stack+=s.substr(s.indexOf("\n")))}else{if(t instanceof e)return t;n=new e({code:CF.UNKNOWN_ERROR,fnName:i,originError:t})}return n}};var wF=NF,OF={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:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},PF={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}}},MF={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(e,t,i){if(CD(e)&&!document.getElementById(e))throw new wF({code:CF.INVALID_PARAMETER,extraCode:5009,fnName:i,messageParams:{key:t}})}},LF={name:"userId",required:!0,type:"string"},xF={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[AF.AUDIO_PROFILE_STANDARD,AF.AUDIO_PROFILE_STANDARD_STEREO,AF.AUDIO_PROFILE_HIGH,AF.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function VF(e,t){if(!e)throw new wF({code:CF.INVALID_OPERATION,extraCode:5101,fnName:t})}function UF(e,t,i){if(!e)throw new wF({code:CF.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:i}})}var FF={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 wF({code:CF.INVALID_OPERATION,extraCode:5104,fnName:i});if(e.roomId){if(CD(e.roomId))throw new wF({code:CF.INVALID_PARAMETER,extraCode:5016,fnName:i,messageParams:{key:t}});if(!(/^[1-9]\d*$/.test(String(e.roomId))&&e.roomId<4294967295))throw new wF({code:CF.INVALID_PARAMETER,extraCode:5013,fnName:i,messageParams:{key:t}})}else{if(!e.strRoomId)throw new wF({code:CF.INVALID_PARAMETER,extraCode:5015,fnName:i});if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(e.strRoomId))throw new wF({code:CF.INVALID_PARAMETER,extraCode:5012,fnName:i,messageParams:{key: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:MF,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:OF},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.videoTrack)&&LP())throw new wF({code:CF.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:ZC($C({},MF),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:OF}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:xF},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.audioTrack)&&LP())throw new wF({code:CF.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:xF}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:MF,publish:{type:"boolean"},option:PF},validate(e,t,i,r,n){var s;if(null==(s=null==e?void 0:e.option)||!s.videoTrack){if(LP())throw new wF({code:CF.ENV_NOT_SUPPORTED,extraCode:5201});if(!HP())throw new wF({code:CF.ENV_NOT_SUPPORTED,fnName:i,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:MF,publish:{type:"boolean"},option:PF}},muteRemoteAudio:[LF,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[LF,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:MF,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){VF(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(UF(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new wF({code:CF.INVALID_OPERATION,extraCode:5103,fnName:i,messageParams:{value:e}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:ZC($C({},MF),{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){VF(this._room.isJoined,i);let r=this._room.remotePublishedUserMap.get(e.userId);if(UF(!!r,i,e),r&&("main"===e.streamType&&!r.muteState.videoAvailable||"sub"===e.streamType&&!r.muteState.hasAuxiliary))throw new wF({code:CF.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&&AD(e.streamType))throw new wF({code:CF.INVALID_PARAMETER,extraCode:5014,fnName:i})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(e,t,i){VF(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(!uM)throw new wF({code:CF.ENV_NOT_SUPPORTED,fnName:i,extraCode:5207});if(!this._room.enableSEI)throw new wF({code:CF.INVALID_OPERATION,fnName:i,extraCode:5108});if(e.byteLength>1e3)throw new wF({code:CF.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new wF({code:CF.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:i});VF(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 wF({code:CF.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 wF({code:CF.INVALID_PARAMETER,extraCode:5018,fnName:i});if(0===e.byteLength)throw new wF({code:CF.INVALID_PARAMETER,extraCode:5017,fnName:i,messageParams:{key:t}})}}},validate(e,t,i){if(VF(this._room.isJoined,i),"live"===this._room.scene&&"audience"===this._room.role)throw new wF({code:CF.INVALID_OPERATION,extraCode:5107,fnName:i,messageParams:{key:t}})}}},BF={TRTC:FF},HF=class extends Error{};function GF(e,t){let i=qD(e);for(let r=0;r<t.length;r++)KD(i[r],t[r]);return i}function WF(e){this._resolve=Promise.resolve(e)}function jF(e){this._reject=Promise.reject(e)}var JF=class e{constructor(t,i){this.instance=t,this.group=i,nb(this,"started",!1),nb(this,"ops",[]),nb(this,"startSame",(()=>!0)),nb(this,"mergeUpdate",GF);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 HF("start failed")),null==(r=this.currentOp)||r.action(),t},s={type:e,action:()=>t(...s.args).then(r,n),args:i,resolve:WF,reject:jF};try{switch(this.state){case 1:if(0===e)throw new HF("already started");break;case 4:if(2===e)throw new HF("not started");break;default:return this.cacheOp(s)}}catch(TO){return Promise.reject(TO)}return this.ops.push(s),s.promise=t(...s.args).then(r,n)}cacheOp(e){if(1===this.ops.length)switch(this.state){case 0:case 2:if(0===e.type)throw new HF("already start");break;case 3:switch(e.type){case 2:throw new HF("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new HF("unknown state")}else switch(e.type){case 3:if(3===this.lastOpType)return this.lastOp.promise;{let e=new HF("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 HF("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new HF("start not allowed after update");case 0:throw new HF("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new HF("keep start")),new HF("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}};nb(JF,"instances",new WeakMap);var KF=JF,qF=new WeakMap,zF=(e,t)=>{if(t instanceof HF){let{stack:i}=t;t=new wF({code:CF.OPERATION_ABORT,message:"".concat(e," abort: ").concat(t.message),fnName:e}),i&&(t.stack+=i.substr(i.indexOf("\n")))}throw t};function YF(e,t){return ux(((i,r)=>function(){for(var n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];let a=KF.get(this,"string"==typeof e?e:e.call(this,...s));return a?(t&&(a.startSame=t.bind(this)),a.action(0,i.bind(this),s).catch(zF.bind(null,r))):i.apply(this,s)}))}function XF(e,t){let{merge:i,debounce:r}=t||{};return ux(((t,n)=>function(){for(var s=arguments.length,o=new Array(s),a=0;a<s;a++)o[a]=arguments[a];let c=KF.get(this,"string"==typeof e?e:e.call(this,...o));if(!c)return t.apply(this,o);if(i&&(c.mergeUpdate=i.bind(this)),r&&r.isNeedToDebounce.apply(this,o)){let{delay:e,getKey:i}=r;return new Promise(((r,s)=>{var a,l;let d=null==(a=qF.get(this))?void 0:a.get(i(...o));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),o).catch(zF.bind(null,n)).then(r,s)}),e);qF.has(this)?null==(l=qF.get(this))||l.set(i(...o),{timeoutId:u,resolve:r}):qF.set(this,new Map([[i(...o),{timeoutId:u,resolve:r}]]))}))}return c.action(2,t.bind(this),o).catch(zF.bind(null,n))}))}function QF(e){return ux(((t,i)=>function(){for(var r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];let o="function"==typeof e?e.call(this,...n):e;if(o instanceof RegExp)return Promise.all(KF.gets(this,o).map((e=>e.action(3,(()=>Promise.resolve()),n)))).then((()=>t.call(this,...n)));let a=KF.get(this,o);return a?a.action(3,t.bind(this),n).catch(zF.bind(null,i)):t.apply(this,n)}))}var $F={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"},ZF=new Set([$F.ERROR,$F.AUTOPLAY_FAILED,$F.KICKED_OUT,$F.REMOTE_USER_ENTER,$F.REMOTE_USER_EXIT,$F.REMOTE_AUDIO_AVAILABLE,$F.REMOTE_AUDIO_UNAVAILABLE,$F.REMOTE_VIDEO_AVAILABLE,$F.REMOTE_VIDEO_UNAVAILABLE,$F.CONNECTION_STATE_CHANGED,$F.PUBLISH_STATE_CHANGED,$F.SCREEN_SHARE_STOPPED,$F.DEVICE_CHANGED,$F.FIRST_VIDEO_FRAME]);function eB(e){return"sub"===e?"auxiliary":"auxiliary"===e?"sub":"main"}function tB(e){return e===AF.QOS_PREFERENCE_CLEAR?"detail":e===AF.QOS_PREFERENCE_SMOOTH?"motion":""}var iB={};tb(iB,{bytes2ms:()=>mD,convertObjectNumberToInt:()=>rN,copyProperties:()=>pD,deepClone:()=>qD,deepMerge:()=>KD,delay:()=>nN,fibonacci:()=>yD,formatedTime:()=>XD,getConstructorName:()=>LD,getContainerFromElement:()=>YD,getEnv:()=>sD,getInternalVersion:()=>BD,getLoggerUrl:()=>aD,getMuteStateFromFlag:()=>WD,getNetworkType:()=>lD,getNumNetworkType:()=>hD,getReconnectionTimeout:()=>SD,getStringByteLength:()=>ZD,getTurnServer:()=>jD,getUint32Version:()=>iN,getValueType:()=>ID,getViewListFromView:()=>zD,glog:()=>ED,ipv4ToUint32:()=>JD,isArray:()=>ND,isAudioWorkletSupported:()=>xD,isBoolean:()=>kD,isConstructor:()=>MD,isEmpty:()=>GD,isFunction:()=>RD,isLangChinese:()=>TD,isMediaStreamTrack:()=>wD,isNumber:()=>bD,isObject:()=>DD,isOverseaSdkAppId:()=>oD,isPlainObject:()=>vD,isPortrait:()=>eN,isPromise:()=>PD,isRemoteTrack:()=>OD,isString:()=>CD,isUndefined:()=>AD,loadImage:()=>tN,ms2bytes:()=>fD,ms2samples:()=>gD,performanceNow:()=>UD,promiseAny:()=>VD,samples2ms:()=>_D,setNetworkType:()=>uD,stringify:()=>QD,stringifyIncludeValue:()=>$D,throttlePromise:()=>sN});var rB={};tb(rB,{ScheduleRequestType:()=>dB,getAbilityConfig:()=>hB,getScheduleDomain:()=>pB,isNeedToSchedule:()=>sB,scheduleProxy:()=>cB,sendScheduleRequest:()=>aB,setIsNeedToSchedule:()=>oB,setScheduleProxy:()=>lB});var nB=null,sB=!0;function oB(e){kD(e)&&e!==sB&&(sB=e,lO.info("setIsNeedToSchedule ".concat(e)))}function aB(e){return ob(this,arguments,(function(e){let{userId:t,sdkAppId:i,useStringRoomId:r,roomId:n,userSig:s,version:o,frameWorkType:a,role:c,latencyLevel:l}=e;return function*(){if(!sB&&nB)return{isCached:!0,result:nB};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",o),d.append("userSig",String(s)),c&&d.append("role",String(c)),l&&d.append("latencyLevel",String(l)),a&&d.append("frameWorkType",String(a));let u=UD(),h=yield function(e,t,i){return new Promise(((r,n)=>{let s=null;VD([_B((e=>t.count[0]=e+1),(e=>{let{error:r,retry:n,retriedCount:o,retryFuncArgs:a}=e;t.msg[0]=r.message,s||(o>=1&&(a[0]=uB(i,"config",rk.MAIN,!0)),n())}))(uB(i,"config",rk.MAIN),e,{get timeout(){return 1e3*yD(2+t.count[0])}}),_B((e=>t.count[1]=e+1),(e=>{let{error:r,retry:n,retriedCount:o,retryFuncArgs:a}=e;t.msg[1]=r.message,s||(o>=2&&(a[0]=uB(i,"config",rk.BACKUP,!0)),n())}))(uB(i,"config",rk.BACKUP),e,{get timeout(){return 1e3*yD(2+t.count[1])}})]).then((e=>{s=e,r(s)})).catch(n)}))}(d,e,i);h.config&&(h.config.loggerDomain&&xb(h.config.loggerDomain),kD(h.config.scheduleCache)&&oB(!h.config.scheduleCache)),e.delta=UD()-u;let p=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"),s=uB(e,"config",rk.MAIN),o=uB(e,"config",rk.BACKUP);for(let e of n)if(e.startTime>=i&&(e.name===s||e.name===o)&&e.transferSize>0){let i=e.name===s?rk.MAIN:rk.BACKUP,n=Math.round(e.duration),o=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];WM.uploadEvent({log:"stat-schedule-net:".concat(n,"(").concat(o,"(").concat(a,"->").concat(c,")->").concat(m.join("->"),") ").concat(i),userId:t}),r=ZC($C({},r),{totalCost:n,local:o,dns:l,tcp:u,tls:d,request:h,response:p});break}}catch(s){lO.error("getScheduleDetailCost error",s)}return r}(Number(i),t,u);return nB=h,{isCached:!1,result:h,detailCost:p}}catch(mO){let t=ND(mO)?mO[0]:mO,i=bD(t.code)?t.code:0,r="schedule failed".concat(t.message?": ".concat(t.message):""),n=new vb({code:Eb.SCHEDULE_FAILED,extraCode:i,message:gP({key:pP.JOIN_ROOM_FAILED,data:{error:r,code:i}})});throw lO.error(r,i),n}}()}))}"undefined"!=typeof document&&document.head.insertAdjacentHTML("beforeend",Object.values(Kk).map((e=>'<link rel="dns-prefetch" href="https://'.concat(e,'">'))).join("\r\n")),sO.on("28",(()=>oB(!0))),sO.on("63",(()=>oB(!0))),sO.on("84",(()=>oB(!0))),sO.on("201",(e=>{"RECONNECTING"===e.state&&oB(!0)})),sO.on("202",(e=>{"RECONNECTING"===e.state&&oB(!0)}));var cB={main:"",backup:""};function lB(e){ND(e)?(cB.main=e[0],cB.backup=e[1]):cB.main=e}var dB=(e=>(e.CONFIG="config",e.TRTC_AUTO_CONF="trtcAutoConf",e.AUDIO_AI_AUTH="audioAiAuth",e))(dB||{});function uB(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:rk.MAIN,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"https://".concat(cB[i]||pB(e,i,r),"/api/v1/").concat(t)}function hB(e,t,i){let r=uB(e,t),n=uB(e,t,rk.BACKUP),s=new URLSearchParams(i).toString();return VD([fetch("".concat(r,"?").concat(s)).then((e=>e.json())),fetch("".concat(n,"?").concat(s)).then((e=>e.json()))])}function pB(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rk.MAIN,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=oD(e)?r?i===rk.MAIN?Kk.MAIN_OVERSEA_BACKUP:Kk.BACKUP_OVERSEA:i===rk.MAIN?Kk.MAIN_OVERSEA:Kk.BACKUP_OVERSEA:i===rk.MAIN?Kk.MAIN:Kk.BACKUP,t}function mB(e,t,i){return new Promise(((r,n)=>{oN({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 _B=(e,t)=>pN({retryFunction:mB,settings:{retries:3,timeout:0},onError:t,onRetrying:e});var fB=class{constructor(){nb(this,"_log"),this._log=lO.createLogger({id:"fd"})}download(e,t){return ob(this,null,(function*(){let{type:i="blob"}=t||{};e=e.replace(/(^|[^:])\/{2,}/g,"$1/");try{let t,r=UD();if(t=RD(fetch)?yield this.downloadWithFetch(e,i):yield this.downloadWithXHR(e,i),!t||!t.data)throw new Error("data is empty");let n=UD()-r;return this._log.info("downloaded: ".concat(e,", return type: ").concat(i,", cost: ").concat(n,"ms")),bP.addSuccessEvent({key:522700,cost:UD()-r}),t.data}catch(EO){throw this._log.error("failed to download: ".concat(e,", error: ").concat(EO)),bP.addFailedEvent({key:522700,error:EO}),EO}}))}downloadWithFetch(e,t){return ob(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)throw new Error("network response was not ok");return i="arraybuffer"===t?yield r.arrayBuffer():yield r.blob(),{data:i}}catch(wk){throw wk}}))}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=()=>{200===n.status||0===n.status&&n.response?i({data:n.response}):r(new Error("XHR failed"))},n.onerror=r,n.send(null)}))}loadWasm(e,t){return ob(this,null,(function*(){this._log.info("loadWasm ".concat(e,", importObject: ").concat(JSON.stringify(t)));let i=UD(),r=null,n=null;if(RD(WebAssembly.instantiateStreaming)&&!e.startsWith("data:application/octet-stream;base64,")&&!(e=>e.startsWith("file://"))(e)&&RD(fetch))try{let i=fetch(e);r=(yield WebAssembly.instantiateStreaming(i,t)).instance}catch(wb){n=wb}if(!r)try{let i=yield this.download(e,{type:"arraybuffer"});r=(yield WebAssembly.instantiate(i,t)).instance}catch(wb){n=wb}if(r){let t=UD()-i;return this._log.info("loadedWasm ".concat(e,", cost: ").concat(t,"ms")),bP.addSuccessEvent({key:522701,cost:t}),r}throw this._log.error("failed to loadWasm ".concat(e,", error: ").concat(n)),bP.addFailedEvent({key:522701,error:n}),n}))}};rb([JM({settings:{timeout:0,retries:3},onRetrying(e){this._log.warn("download retrying: ".concat(e))}})],fB.prototype,"download",1);var gB=new fB;function EB(e){let{TRTC:t,room:i,errorModule:r,assetsPath:n}=e;return{TRTC:t,room:i,assetsPath:n,fileDownloader:gB,innerEmitter:sO,constants:Cb,environment:_N,utils:iB,eventLogger:WM,log:this.room.getLogger(),loggerManager:lO,errorModule:r,kvStatManager:bP,rtcDectection:hO,trtc:this,rx:Vx,enums:pO,schedule:rB,clearStarted:(e,t)=>{let i=e.getAlias(),r=KF.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:Mx,createAudioNode:wL}}var TB=new WeakMap;function vB(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return ux(((e,i)=>function(){for(var r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];try{SB.call(this,t,n,i,this._name)}catch(EO){return Promise.reject(EO)}return e.apply(this,n)}))}function yB(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return ux(((e,i)=>function(){for(var r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];try{SB.call(this,t,n,i,this._name)}catch(EO){throw EO}return e.apply(this,n)}))}function SB(e,t,i,r){if(ND(e))for(let n=0;n<e.length;n++)IB.call(this,{rule:e[n],value:t[n],key:e[n].name,fnName:i,className:r});else IB.call(this,{rule:e,value:t[0],key:e.name,fnName:i,className:r})}function IB(e){let{rule:t,value:i,key:r,fnName:n,className:s}=e;function o(e){return{code:CF.INVALID_PARAMETER,extraCode:e,fnName:n,messageParams:{key:r,rule:t,value:i}}}if(AD(i)){if(t.required)throw new wF(o(5001));if(AD(t.defaultValue))return void(RD(t.validate)&&t.validate.call(this,i,r,n,s,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),RD(t.type[r])&&i instanceof t.type[r]&&(e=!0),CD(t.type[r])&&ID(i)===t.type[r].toLowerCase()&&(e=!0);if(!e)throw new wF({code:CF.INVALID_PARAMETER,extraCode:5002,fnName:n,messageParams:{key:r,rule:{type:t.type.map((e=>MD(e)?LD(e):CD(e)?e:ID(e)))},value:i}})}else if(!AD(t.type)&&ID(i)!==t.type)throw new wF(o(5002));if(!1===t.allowEmpty){let e=bD(i)&&(0===i||Number.isNaN(i)),t=CD(i)&&""===i.trim();if(e||t)throw new wF(o(5003))}if(t.notLessThanZero&&bD(i)&&i<0)throw new wF(o(5006));if(!AD(t.min)&&bD(i)&&i<t.min)throw new wF(o(5007));if(!AD(t.max)&&bD(i)&&i>t.max)throw new wF(o(5008));if(CD(t.instanceOf)){if(!i||i._name!==t.instanceOf)throw new wF(o(5004))}else if(RD(t.instanceOf)&&!(i instanceof t.instanceOf))throw new wF(o(5004));if(Array.isArray(t.values)&&!t.values.includes(i))throw new wF(o(5005));let{properties:a}=t;vD(a)&&DD(i)&&Object.keys(a).forEach((e=>{IB.call(this,{rule:a[e],value:i&&i[e],key:"".concat(e),fnName:n,className:s})}));let{arrayItem:c}=t;vD(c)&&ND(i)&&i.forEach(((e,t)=>{IB.call(this,{rule:c,value:e,key:"".concat(r,"[").concat(t,"]"),fnName:n,className:s})})),RD(t.validate)&&t.validate.call(this,i,r,n,s,this)}function RB(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{getRemoteId:t=()=>"",replaceArg:i,getKVReportKey:r,ignoreLog:n}=e;return ux(((e,s)=>function(){for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];var l;function d(e,t,r){if(r&&r.includes(e))return"hided";if(i){let e=i(...a);if(a[e.argIndex]===t)return e.value}if(t===a||e in a)return t;try{return t instanceof HTMLElement?"id: ".concat(t.id," type:").concat(ID(t)):(JSON.stringify(t),t)}catch(IO){return"type:".concat(ID(t))}}let u=this._log||lO;if(null!=n&&n(...a))return e.apply(this,a);a.length>0?u.info("".concat(s,"() ").concat(JSON.stringify(a,((e,t)=>d(e,t,["userSig","privateMapKey"]))))):u.info("".concat(s,"()"));let h=r?r(...a):yP[s];try{let i=e.apply(this,a),r=UD();return PD(i)?i.then((e=>(u.info("".concat(s,"() success ").concat(t.call(this,...a))),bP.addSuccessEvent({key:h,cost:UD()-r}),e))).catch((e=>{var i;let r=(e=wF.convertFrom.call(this,e,s,1===a.length?a[0]:a)).extraCode||e.code,n=null!=(i=e.message)&&i.includes(r)?"":" code:".concat(r);throw u.error("".concat(s,"() failed ").concat(t.call(this,...a)," ").concat(e).concat(n," params: ").concat(JSON.stringify(a,d))),bP.addFailedEvent({key:h,error:e}),e})):(bP.addSuccessEvent({key:h}),i)}catch(p){let e=(p=wF.convertFrom.call(this,p,s)).extraCode||p.code,t=null!=(l=p.message)&&l.includes(e)?"":" code:".concat(e);throw u.error("".concat(s,"() failed ").concat(p).concat(t," params: ").concat(JSON.stringify(a,d))),bP.addFailedEvent({key:h,error:p}),p}}))}var AB=e=>ux(((t,i)=>function(r,n){return ob(this,null,(function*(){let s=this._plugins.get(r);if(!s)throw this._log.error("plugin ".concat(String(r)," is not found")),new wF({code:CF.OPERATION_ABORT,message:"plugin ".concat(String(r)," is not found"),fnName:i});if(RD(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error("plugin ".concat(String(r)," is not supported")),new wF({code:CF.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(r)," is not supported"),extraCode:5210,fnName:i});return SB.call(this,s.getValidateRule(e),[n],i,"TRTC"),t.call(this,s,n)}))})),CB=0,bB=class{constructor(e,t){nb(this,"player"),nb(this,"publisher"),nb(this,"mixInput"),this.mixInput=new kL(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&&(AD(e.volume)||(this.volume=e.volume),AD(e.loop)||(this.loop=e.loop),AD(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 kB(e,t){if(t&&"function"!=typeof t)throw new wF({code:CF.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(e," should be a function.")})}var DB=class e{constructor(e){this.core=e,nb(this,"log"),nb(this,"mixedMusicMap",new Map),nb(this,"cacheMusicMap",new Map),CB+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(CB)}),this.log.info("[audioMixer] created id=".concat(this.getAlias()).concat(CB)),this.core=e}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 ob(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 bB(e,t.audioManager),this.cacheMusicMap.set(i,n)),n.updateListener(e),n.updateSettings(e),yield n.play(),this.mixedMusicMap.set(i,n),this.log.info("start mix audio track ".concat(i," success.")),bP.addEnum({key:502700,value:3}),this.kvUpload(e)}))}update(e){return ob(this,null,(function*(){let{id:t,operation:i,seekFrom:r,playbackRate:n}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let s=this.mixedMusicMap.get(t);s?(s.updateSettings(e),s.updateListener(e),AD(i)||s.setOperation(i),AD(r)||s.seek(r),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(t," not found."))}))}stop(e){return ob(this,arguments,(function(e){var t=this;let{id:i}=e;return function*(){var e;t.mixedMusicMap.has(i)&&(t.log.info("remove music source, music id: ".concat(i)),null==(e=t.mixedMusicMap.get(i))||e.stop(),t.mixedMusicMap.delete(i)),"*"===i&&t.destroyAllMusic()}()}))}kvUpload(e){let{track:t,loop:i,volume:r,playbackRate:n,operation:s,seekFrom:o,onTimeUpdate:a,onDurationChange:c,onEnded:l}=e;t&&bP.addCount({key:502711}),i&&bP.addCount({key:502703}),r&&bP.addCount({key:502704}),n&&bP.addCount({key:502705}),s&&bP.addCount({key:502706}),o&&bP.addCount({key:502707}),"function"!=typeof a&&bP.addCount({key:502709}),"function"!=typeof l&&bP.addCount({key:502710}),"function"!=typeof c&&bP.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach(((e,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()}};nb(DB,"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(),s=r.indexOf(n)>=0,o=t.startsWith("blob"),a=t.startsWith("data");if(!(s||o||a))throw new wF({code:CF.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:i})}if(!e.url&&!e.track)throw new wF({code:CF.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:i});kB("onTimeUpdate",e.onTimeUpdate),kB("onEnded",e.onEnded),kB("onDurationChange",e.onDurationChange)}}),nb(DB,"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){kB("onTimeUpdate",e.onTimeUpdate),kB("onEnded",e.onEnded),kB("onDurationChange",e.onDurationChange)}}),nb(DB,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),nb(DB,"Name","AudioMixer");var NB,wB=DB,OB=0,PB=class e{constructor(e){this.core=e,nb(this,"log"),nb(this,"audioContext",RL()),nb(this,"workletNode"),OB+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(OB)}),this.log.info("[audioDenoiser] created id=".concat(this.getAlias()).concat(OB)),e.assetsPath&&this.preload("".concat(e.assetsPath,"/denoiser-wasm.js")).catch((e=>{}))}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 wF({code:CF.INVALID_OPERATION,extraCode:5106,fnName:r})}}}preload(e){return NB||(NB=this.doPreload(e)),NB}doPreload(e){return ob(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),i=URL.createObjectURL(t);try{yield gL(this.audioContext,i)}catch(EO){throw this.log.error("load worklet failed",EO),EO}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 ob(this,null,(function*(){let{room:t,schedule:i}=this.core;if(yield this.preload("".concat(e.assetsPath,"/denoiser-wasm.js")),!this.workletNode){let t=String(Date.now()).slice(0,-3),{auth:r,sign:n,status:s,message:o}=yield function(e,t){return ob(this,arguments,(function(e,t){let{sdkAppId:i,userId:r,userSig:n,timestamp:o}=t;return function*(){try{let{data:{errCode:t,errMsg:s,sign:a,status:c}}=yield e.getAbilityConfig(i,e.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:i,userId:r,userSig:n,timestamp:o});if("1"===c)return{auth:!0,sign:a,status:c,message:s};let l="Init RTCAIDenoiser failed.",d="";switch(t){case 1:d="Please check your params.";break;case 2:d="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:d="Server is invalid. Please contact our engineer. ";break;case 4:d="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:d="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:d="Your version is not supported."}return{auth:!1,status:c,message:s?"".concat(l," Reason: ").concat(s,". ").concat(d):"".concat(l,", ").concat(d)}}catch(s){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(s)}}}()}))}(i,ZC($C({},e),{timestamp:t}));if(!r)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(r,". Message: ").concat(o)),new wF({code:CF.INVALID_PARAMETER,message:o});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:s}}),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(Rb(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 ob(this,null,(function*(){}))}stop(){return ob(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)}};nb(PB,"updateValidateRule",{type:"object"}),nb(PB,"stopValidateRule",{type:"object"}),nb(PB,"Name","AIDenoiser");var MB=PB;var LB=ib(ab(),1),xB=class extends LB.EventEmitter{constructor(){super(),nb(this,"observer"),nb(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 ob(this,null,(function*(){if(!this.observer)try{"PressureObserver"in window&&!bN&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(Nb){WM.uploadEvent({log:"stat-pressure-detector-start-failed",error:Nb})}}))}onPressureChange(e){let t=this.stateNum,i=e[e.length-1];this.state=i.state,(this.stateNum>3||t>3)&&lO.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(wk){WM.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:wk})}}},VB=new xB;function UB(e){let[t,i]=e,r=i.byteLength,n=parseInt(String(r/255),10),s=r%255,o=[];o.push(0,0,0,1,6,t);for(let c=0;c<n;c++)o.push(255);o.push(s);let a=new DataView(i);return o.push(...new Uint8Array(a.buffer)),o.push(128),new Ax(new DataView(new Uint8Array(o).buffer),!0)}function FB(e){return"empty"===e.type||0===e.data.byteLength}function BB(e){return 1===e.getInt32(0)&&6===e.getInt8(4)}function HB(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 GB(e){let{frame:t,seiMessageList:i}=e;if(!i||0===i.length||0===t.data.byteLength)return t;let r=9-HB(t.data);if(r<=0)return t;let n=i.splice(0,r).reverse().map(UB),s=n.reduce(((e,t)=>e+t.dataView.byteLength),0),o=new ArrayBuffer(s+t.data.byteLength),a=new DataView(o),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=o,t}function WB(e){let{frame:t,onSEI:i}=e;try{let e=new DataView(t.data);if(FB(t)||!BB(e))return t;let r=[],n=0,s=-1,o=-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===s?s=a:-1===o&&(o=a,r.push(new Ax(new DataView(e.buffer.slice(s,o)))),s=a,o=-1),6!==e.getUint8(i+1)){t.data=e.buffer.slice(a);break}}n=0}else n=0}null==i||i(r.reverse())}catch(Nb){}return t}var jB=0,JB=class e{constructor(e){this.core=e,nb(this,"log"),nb(this,"_seiMessageList",[]),nb(this,"_smallSeiMessageList",[]),nb(this,"_subStreamSeiMessageList",[]),jB++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(jB)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(jB)),this.core=e,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:t,mediaType:i}=e;try{return GB({frame:t,seiMessageList:8===i?this._smallSeiMessageList:2===i?this._subStreamSeiMessageList:this._seiMessageList})}catch(wk){this.log.warn(wk)}return t}decode(e){let{frame:t,track:i}=e;return WB({frame:t,onSEI:e=>{e.forEach((e=>{this.core.trtc.emit($F.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:lM?this.encode:GB,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:lM?this.decode:WB,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],s=!!i.small;i.toSubStream?this._subStreamSeiMessageList.push(n):(this._seiMessageList.push(n),s&&this._smallSeiMessageList.push(n)),null==(r=this.core.room.scriptTransformWorker)||r.postMessage({type:"sei",data:n,isMain:!i.toSubStream,small:s})}getName(){return e.Name}getAlias(){return"sei"}getGroup(){return"sei"}};nb(JB,"autoStart",!0),nb(JB,"Name","SEI");var KB=JB;function qB(e){let{frame:t,onDump:i}=e;return null==i||i(),t}function zB(e){let{frame:t,onDump:i}=e;return null==i||i(),t}var YB={"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=>{YB["".concat(e,"()")]={tips:"Call trtc.".concat(e),color:"blue",class:"blue",textColor:"#fff"}}));var XB,QB=0,$B=class e{constructor(e){this.core=e,nb(this,"_core"),nb(this,"log"),nb(this,"dumpLocalVideoMap",{}),nb(this,"dumpRemoteVideoMap",{}),nb(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++QB)}),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 ob(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(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return ob(this,null,(function*(){var e;try{if(XB)yield XB;else{let t=Date.now(),i=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(kb,"/assets/debug-dialog.js");XB=this.loadScript(i),yield XB,this.log.info("download debug dialog script cost: ".concat(Date.now()-t,"ms"))}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(Nb){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(Nb))}}))}closeDebugDiaLog(){var e;null==(e=this.dialog)||e.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):qB,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):zB,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 qB({frame:t,onDump:()=>{if(!i)return;let e=2===i?"sub":"main",r=this.dumpLocalVideoMap[e];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>1e3*r.duration&&r.onDumpEnd())}})}decodeVideo(e){let{frame:t,track:i}=e;return zB({frame:t,onDump:()=>{if(!i)return;let e=this.dumpRemoteVideoMap["".concat(i.userId,"-").concat(i.streamType)];e&&(e.data.push(t.data),e.duration>0&&Date.now()-e.startTimestamp>1e3*e.duration&&e.onDumpEnd())}})}loadScript(e){return new Promise(((t,i)=>{this.log.info("loading debug dialog from ".concat(e));let r=document.createElement("script");r.type="text/javascript",r.onload=t,r.onerror=i,r.crossOrigin="anonymous",r.src=e,document.head.append?document.head.append(r):document.getElementsByTagName("head")[0].appendChild(r)}))}};nb($B,"Name","Debug"),nb($B,"autoStart",!0),rb([JM({settings:{timeout:3e3,retries:3},onError(e,t,i){var r;null!=(r=null==e?void 0:e.message)&&r.includes("timeout")?t():i(e)}})],$B.prototype,"loadScript",1);var ZB=$B,eH=e=>{switch(e){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},tH=class{constructor(e,t,i){nb(this,"trackDoneOB"),nb(this,"startOB"),nb(this,"stopOB"),nb(this,"inputFrameCount",0),nb(this,"decodedFrameCount",0),nb(this,"type","auto"),nb(this,"config"),nb(this,"decoder"),nb(this,"_decodeSink");let{kvStatManager:r,trtc:n}=e;this.config=i.config,this.trackDoneOB=AV(t,wM.INIT),this.stopOB=_V(this.trackDoneOB),this.startOB=_V(),"auto"===i.type?this.type="webCodecs":this.type=i.type;let s=_V();zx(this.startOB,dV(0),RU((e=>{let i=this.pipe(t);return s.next("STARTING"),t.log.info("decoder type: ".concat(this.type)),zx(i,qV(this.stopOB),KU((()=>{}),(i=>{t.log.error(i),r.addFailedEvent({key:eH(this.type),error:i}),e>4?this.startOB.error(i):this.startOB.next(e+1)}))),zx(i,KV(1),WU(VV))})),qV(this.stopOB),KU((()=>{t.player.setOutput(),s.next("STARTED")}),(e=>{s.next("FAILED")}),(()=>{r.addSuccessEvent({key:eH(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 iV()((t=>ob(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(EO){e.log.error(EO),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"}))}},iH={type:"object"},rH=class e{constructor(e){this.core=e,nb(this,"log"),nb(this,"contextMap",new Map),nb(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 iH}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 tH(this.core,r,e);return zx(n.trackDoneOB,KV(1),KU((()=>{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 tH(this.core,e.track,e))}}};nb(rH,"Name","TRTCAudioDecoder");var nH=rH,sH=0,oH=new Set,aH=null;Db("5.10.0"),uO.checkStorage(),TM();var cH={RtcError:wF,ErrorCode:CF,ErrorCodeDictionary:bF},lH=class e extends fb.EventEmitter{constructor(t,i){super(),nb(this,"_room"),nb(this,"_eventListened",new Set),nb(this,"_localVideoTrack",null),nb(this,"_localAudioTrack",null),nb(this,"_localScreenTrack",null),nb(this,"_localScreenAudioTrack",null),nb(this,"_localVideoConfig",null),nb(this,"_localScreenConfig",null),nb(this,"_localAudioConfig",null),nb(this,"_remoteVideoConfigMap",new Map),nb(this,"_remoteAudioConfigMap",new Map),nb(this,"_remoteAudioVolumeMap",new Map),nb(this,"_remoteAudioMuteMap",new Map),nb(this,"_mediaTrackMap",new WeakMap),nb(this,"_log",lO.createLogger({id:"t".concat(++sH)})),nb(this,"_plugins",new Map),nb(this,"_networkQuality",null),nb(this,"_speakerId"),nb(this,"_getPCMAbortCtrl"),this._room=new t($C({logger:this._log,frameWorkType:e.frameWorkType},i)),this._room.videoDecodeFallbackType=i.videoDecodeFallback,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(wB,i.assetsPath),this._use(MB,i.assetsPath),this._use(nH,i.assetsPath||Gb),this._use(ZB),i.enableSEI&&uM&&this._use(KB),this._room.on("audio-volume",(e=>{!e.find((e=>""===e.userId))&&this._localAudioTrack&&e.push({userId:"",volume:Math.floor(100*this._localAudioTrack.getAudioLevel())}),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($F.AUDIO_VOLUME,{result:e.sort(((e,t)=>t.volume-e.volume))})})),this._room.videoManager.on("error",(e=>{this._log.error(new wF({code:CF.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),s=0;s<r;s++)n[s]=arguments[s];try{return i.apply(e,n)}catch(EO){let i=gP({key:pP.CATCH_HANDLER_ERROR,data:{name:t,event:n[0]},addDocLink:!1});return lO.warn("".concat(i,"\n\n").concat(EO.stack)),!1}}})(this,"trtc")}static create(e){}static _create(t,i){var r;RF&&(RF=!1,5!==lO.getLogLevel()&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(Hb,"/en/index.html")),console.info("* Changelog: ".concat(Hb,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),lO.info("TRTC Web SDK Version:",kb),Ww||lO.debug("Build Time:","2025-04-17 14:31:17"),lO.info("UA:",navigator.userAgent),lO.info("URL: ".concat(location.href).concat("IFRAME"===(null==(r=self.frameElement)?void 0:r.tagName)?" in iframe":"")),Xw().then((e=>{e&&lO.info(Yw)})));let n=new e(t,i||{});return oH.add(n),n}get room(){return this._room}_listenEvents(){HM(this,this._room).add("peer-join",(e=>{let{userId:t}=e;this.emit($F.REMOTE_USER_ENTER,{userId:t})})).add("peer-leave",(e=>{this.emit($F.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)})).add("banned",(e=>{this._exitRoom().finally((()=>{this.emit($F.KICKED_OUT,{reason:e.reason})}))})).add("error",(e=>{this._exitRoom().finally((()=>{this.emit($F.ERROR,wF.convertFrom(e))}))})).add("signal-connection-state-changed",(e=>{this.emit($F.CONNECTION_STATE_CHANGED,e)})).add("network-quality",(e=>{this._networkQuality=e;let t=ZC($C({},e),{uplinkRTT:Math.min(e.uplinkRTT,nD),downlinkRTT:Math.min(e.downlinkRTT,nD)});this.emit($F.NETWORK_QUALITY,t)})).add("remote-published",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((t=>{HM(t,t).add("player-state-changed",(i=>{let r=ZC($C({},i),{userId:e.userId});t.kind===rk.VIDEO&&(r.streamType=eB(t.streamType)),this.emit(t.kind===rk.AUDIO?$F.AUDIO_PLAY_STATE_CHANGED:$F.VIDEO_PLAY_STATE_CHANGED,r)})).add("error",(e=>{e.getCode()===Eb.PLAY_NOT_ALLOWED&&this.emit($F.AUTOPLAY_FAILED,{userId:t.userId,resume:()=>t.player.resume()})}))}))})).add("remote-unpublished",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((e=>{GM(e)}))})).add("remote-publish-state-changed",(e=>{let{prevMuteState:t,muteState:i}=e,{userId:r}=i,n=t.audioAvailable,s=t.videoAvailable,{audioAvailable:o,videoAvailable:a}=i;o||this._remoteAudioConfigMap.delete(r),a||this._remoteVideoConfigMap.delete("".concat(r,"_main")),i.hasAuxiliary||this._remoteVideoConfigMap.delete("".concat(r,"_sub")),s!==a&&(a?this._onVideoAvailable({userId:r,streamType:"main"}):this._onVideoUnavailable({userId:r,streamType:"main"}),this.emit(a?$F.REMOTE_VIDEO_AVAILABLE:$F.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"main"})),n!==o&&(o?this._onAudioAvailable({userId:r}):this._onAudioUnavailable({userId:r,muteState:i}),this.emit(o?$F.REMOTE_AUDIO_AVAILABLE:$F.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?$F.REMOTE_VIDEO_AVAILABLE:$F.REMOTE_VIDEO_UNAVAILABLE,{userId:r,streamType:"sub"}))})).add("sei-message",(e=>{this.emit($F.SEI_MESSAGE,ZC($C({},e),{streamType:eB(e.streamType)}))})).add("firewall-restriction",(()=>{this.emit($F.ERROR,new wF({code:CF.OPERATION_FAILED,extraCode:5501}))})).add("heartbeat-report",(e=>{var t,i,r,n,s,o,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,nD),upLoss:(null==(n=this._networkQuality)?void 0:n.uplinkLoss)||0,downLoss:(null==(s=this._networkQuality)?void 0:s.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:((null==(o=e.msg_up_stream_info.msg_audio_status)?void 0:o.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:((null==(a=e.msg_up_stream_info.msg_audio_status)?void 0:a.uint32_audio_level)||0)/rP},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)/rP},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]})))})))};this.emit($F.STATISTICS,l)})).add("custom-message",(e=>{this.emit($F.CUSTOM_MESSAGE,e)})).add("layerData",(e=>this.emit($F.LAYER_DATA,e))).add("first-video-frame",(e=>{this.emit($F.FIRST_VIDEO_FRAME,ZC($C({},e),{streamType:eB(e.streamType)}))})),HM(this,BL).add("audioInputAdded",(e=>{this.emit($F.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})})).add("audioInputRemoved",(e=>{this.emit($F.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})})).add("videoInputAdded",(e=>{this.emit($F.DEVICE_CHANGED,{type:"camera",action:"add",device:e})})).add("videoInputRemoved",(e=>{this.emit($F.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})})).add("audioOutputAdded",(e=>ob(this,null,(function*(){if(this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),aH&&aH.deviceId===Qk){let e=(yield KL()).find((e=>e.deviceId===Qk));e&&aH.groupId!==e.groupId&&(aH=e,this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"active",device:e}))}})))).add("audioOutputRemoved",(e=>ob(this,null,(function*(){this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield KL())[0];if(!t||!aH||aH.groupId===t.groupId)return;let i=aH.deviceId===e.deviceId,r=aH.deviceId===Qk&&aH.deviceId===t.deviceId;(i||r)&&(aH=t,this.emit($F.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||Gb)}_use(t,i){if(this._plugins.get(t.Name))return void this._log.warn("duplicate install plugin",t.Name);let r=new t(EB.call(this,{TRTC:e,room:this._room,errorModule:cH,assetsPath:i}));this._plugins.set(t.Name,r),t.autoStart&&this.startPlugin(t.Name)}enterRoom(t){return ob(this,null,(function*(){var i,r;let{scene:n="rtc",enableAutoPlayDialog:s=!0,autoReceiveAudio:o=!0,autoReceiveVideo:a=!1}=t;t.proxy&&(this._room.setProxyServer(t.proxy),!CD(t.proxy)&&t.proxy.turnServer&&(null==(r=(i=this._room).setTurnServer)||r.call(i,t.proxy.turnServer,t.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=s,this._room.autoReceiveAudio=o,this._room.autoReceiveVideo=a,kD(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,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(),VB.start()}))}exitRoom(){return ob(this,null,(function*(){return yield this._exitRoom()}))}switchRole(e,t){return ob(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(){GM(this),this.removeAllListeners(),this._room.destroy(),oH.delete(this),0===oH.size&&VB.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(),sO.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return ob(this,arguments,(function(){var t=this;let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0};return function*(){if(t._localAudioTrack)return void t._log.warn("local audio is already started");let{publish:r=!0,mute:n,option:s}=i,o=new Rx(t._room.audioManager),a={},c={muted:!0};s&&(AD(s.microphoneId)?AD(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&bD(s.captureVolume)&&o.setCaptureVolume(s.captureVolume),AD(s.profile)||(CD(s.profile)?ek[s.profile]&&o.setProfile(ek[s.profile]):o.setProfile(s.profile)),bD(s.earMonitorVolume)&&(c.muted=!(s.earMonitorVolume>0),c.volume=s.earMonitorVolume),AD(s.echoCancellation)||(o.profile.echoCancellation=s.echoCancellation),AD(s.noiseSuppression)||(o.profile.noiseSuppression=s.noiseSuppression),AD(s.autoGainControl)||(o.profile.autoGainControl=s.autoGainControl)),o.on("5",(e=>{t.emit($F.ERROR,new wF({code:CF.DEVICE_ERROR,extraCode:5309,messageParams:{error:e}}))})),o.on("2",(e=>{t.emit($F.DEVICE_CHANGED,{type:"microphone",action:"active",device:e})})),o.on("4",(e=>{let i;e.error&&(i=wF.convertFrom(e.error)),t.emit($F.PUBLISH_STATE_CHANGED,ZC($C({},e),{error:i}))})),t._listenOutputTrackChanged(o),t._speakerId&&o.setAudioOutput(t._speakerId),yield o.capture(a),AD(n)||o.setMute(n),HM(o,o).add("player-state-changed",(e=>{t.emit($F.AUDIO_PLAY_STATE_CHANGED,ZC($C({},e),{userId:""}))})),t.listeners($F.AUDIO_FRAME).length>0&&(t._getPCMAbortCtrl=t._room.audioManager.getPCM((i=>{t.emit(e.EVENT.AUDIO_FRAME,{data:i})}))),t._getPCMAbortCtrl&&o.on("input-media-track-changed",(()=>{t._getPCMAbortCtrl&&(t._getPCMAbortCtrl.abort("inputMediaTrackChanged"),t._getPCMAbortCtrl=t._room.audioManager.getPCM((i=>{t.emit(e.EVENT.AUDIO_FRAME,{data:i})})))})),r&&t._room.isJoined&&t._room.publish(o).catch((()=>{})),t._localAudioTrack=o,t._localAudioConfig=ZC($C({},i),{publish:r}),yield t._updateAudioPlayOption({playOption:c,track:o})}()}))}updateLocalAudio(e){return ob(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):AD(r.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(r.audioTrack)),AD(r.captureVolume)||this._localAudioTrack.setCaptureVolume(r.captureVolume),AD(r.earMonitorVolume)||(n.muted=!(r.earMonitorVolume>0),n.volume=r.earMonitorVolume),yield this._localAudioTrack.update3A(r)),this._room.isJoined&&!AD(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch((()=>{})),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch((()=>{}))),AD(i)||this._localAudioTrack.setMute(i),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),KD(this._localAudioConfig,e)}))}stopLocalAudio(){return ob(this,null,(function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch((()=>{}))),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),GM(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))}))}startLocalVideo(){return ob(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._localVideoTrack)return void e._log.warn("local video is already started");let{view:i,publish:r=!0,mute:n,option:s}=t,o=new kx(e._room.videoManager),a={},c={};kD(null==s?void 0:s.avoidCropping)&&(o.avoidCropping=s.avoidCropping),s&&(s.cameraId?a.deviceId=s.cameraId:AD(s.useFrontCamera)?AD(s.videoTrack)||(a.customSource=s.videoTrack):a.facingMode=s.useFrontCamera?rk.FACING_MODE_USER:rk.FACING_MODE_ENVIRONMENT,s.qosPreference&&(a.contentHint=tB(s.qosPreference)),AD(s.profile)||(CD(s.profile)?tk[s.profile]&&o.setProfile(tk[s.profile]):o.setProfile(s.profile)),AD(s.fillMode)||(c.objectFit=s.fillMode),AD(s.mirror)||(c.mirror=s.mirror),AD(s.small)||(YP()?CD(s.small)?o.small=tk[s.small]:!0===s.small?o.small=tk["120p"]:o.small=s.small:e._log.warn("small stream is not supported"))),o.once("first-video-frame",(t=>{e.emit($F.FIRST_VIDEO_FRAME,ZC($C({},t),{streamType:eB(t.streamType)}))})),o.on("5",(t=>{e.emit($F.ERROR,new wF({code:CF.DEVICE_ERROR,extraCode:5308,messageParams:{error:t}}))})),o.on("2",(t=>{e.emit($F.DEVICE_CHANGED,{type:"camera",action:"active",device:t})})),o.on("4",(t=>{let i;t.error&&(i=wF.convertFrom(t.error)),e.emit($F.PUBLISH_STATE_CHANGED,ZC($C({},t),{error:i}))})),e._listenOutputTrackChanged(o),yield o.capture(a),AD(n)||(yield o.setMute(n)),HM(o,o).add("player-state-changed",(t=>{e.emit($F.VIDEO_PLAY_STATE_CHANGED,ZC($C({},t),{userId:"",streamType:"main"}))})),r&&e._room.isJoined&&e._room.publish(o).catch((()=>{})),e._localVideoTrack=o,e._localVideoConfig=ZC($C({},t),{view:i,publish:r}),yield e._updateVideoPlayOption({view:i,playOption:c,track:o})}()}))}updateLocalVideo(e){return ob(this,null,(function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:t,publish:i,mute:r,option:n}=e,s={};if(n)if(AD(n.profile)||(CD(n.profile)?tk[n.profile]&&this._localVideoTrack.setProfile(tk[n.profile]):this._localVideoTrack.setProfile(n.profile),(!n.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(n.cameraId))&&AD(n.useFrontCamera)&&this._localVideoTrack.applyProfile()),n.cameraId?yield this._localVideoTrack.switchDevice(n.cameraId):AD(n.useFrontCamera)?AD(n.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(n.videoTrack)):yield this._localVideoTrack.switchDevice(n.useFrontCamera?rk.FACING_MODE_USER:rk.FACING_MODE_ENVIRONMENT),AD(n.fillMode)||(s.objectFit=n.fillMode),AD(n.mirror)||(s.mirror=n.mirror),n.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(tB(n.qosPreference)),n.small){let e=!this._localVideoTrack.small;YP()?(!0===n.small?this._localVideoTrack.small=tk["120p"]:CD(n.small)?this._localVideoTrack.small=tk[n.small]:this._localVideoTrack.small=n.small,this._room.videoManager.update(),e&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else!1===n.small&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!AD(i)&&(i&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch((()=>{})),this._localVideoConfig.publish&&!i&&this._room.unpublish(this._localVideoTrack).catch((()=>{}))),AD(r)||(yield this._localVideoTrack.setMute(r)),yield this._updateVideoPlayOption({view:t,playOption:s,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),KD(this._localVideoConfig,e)}))}stopLocalVideo(){return ob(this,null,(function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch((()=>{}))),this._localVideoTrack.stop(),this._localVideoTrack.close(),GM(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)}))}startScreenShare(){return ob(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,option:n}=t,s=new wx(e._room.videoManager);s.on("4",(t=>{let i;t.error&&(i=wF.convertFrom(t.error)),e.emit($F.PUBLISH_STATE_CHANGED,ZC($C({},t),{error:i}))})),s.once("first-video-frame",(t=>{e.emit($F.FIRST_VIDEO_FRAME,ZC($C({},t),{streamType:eB(t.streamType)}))})),e._listenOutputTrackChanged(s),"main"===t.streamType&&(s.mediaType=4);let o=null,a={},c={};n&&(AD(n.profile)||(CD(n.profile)?ik[n.profile]&&s.setProfile(ik[n.profile]):s.setProfile(n.profile)),n.systemAudio&&(a.systemAudio=!0,a.echoCancellation=n.echoCancellation,a.noiseSuppression=n.noiseSuppression,a.autoGainControl=n.autoGainControl),AD(n.fillMode)||(c.objectFit=n.fillMode),n.videoTrack&&(a.videoTrack=n.videoTrack),n.audioTrack&&(a.audioTrack=n.audioTrack),n.captureElement&&(a.captureElement=n.captureElement),n.preferDisplaySurface&&(a.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(a.contentHint=tB(n.qosPreference)));let l=yield s.capture(a);if(s.mediaTrack.addEventListener(rk.ENDED,(()=>{e._stopScreenShare(),e.emit($F.SCREEN_SHARE_STOPPED)})),l.getAudioTracks()[0]&&(o=new Px(e._room.audioManager),yield o.setInputMediaStreamTrack(l.getAudioTracks()[0]),e._speakerId&&o.setAudioOutput(e._speakerId)),HM(s,s).add("player-state-changed",(t=>{e.emit($F.VIDEO_PLAY_STATE_CHANGED,ZC($C({},t),{userId:"",streamType:"sub"}))})),r&&e._room.isJoined){let t=[s];o&&t.push(o),e._room.publish(...t).catch((()=>{}))}e._localScreenTrack=s,e._localScreenAudioTrack=o,e._localScreenConfig=ZC($C({},t),{view:i,publish:r}),yield e._updateVideoPlayOption({view:i,playOption:c,track:s})}()}))}updateScreenShare(e){return ob(this,null,(function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:t,publish:i,option:r}=e,n={};if(r&&(AD(r.fillMode)||(n.objectFit=r.fillMode),r.qosPreference)){let e=tB(r.qosPreference);this._localScreenTrack.setContentHint(e)}this._room.isJoined&&!AD(i)&&(i&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch((()=>{})),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch((()=>{}))),this._localScreenConfig.publish&&!i&&(this._room.unpublish(this._localScreenTrack).catch((()=>{})),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch((()=>{})))),yield this._updateVideoPlayOption({view:t,playOption:n,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),KD(this._localScreenConfig,e)}))}stopScreenShare(){return ob(this,null,(function*(){return yield this._stopScreenShare()}))}startRemoteVideo(e){return ob(this,null,(function*(){let{view:t,userId:i,streamType:r,option:n}=e,s="".concat(i,"_").concat(r);if(this._remoteVideoConfigMap.has(s))return void this._log.warn("remote video has already started. userId:".concat(i,", streamType:").concat(r));let o=this._room.remotePublishedUserMap.get(i);if(!o)return;let a={},c="main"===r?o.remoteVideoTrack:o.remoteAuxiliaryTrack;this._listenOutputTrackChanged(c),n&&(AD(n.fillMode)||(a.objectFit=n.fillMode),AD(n.mirror)||(a.mirror=n.mirror),AD(n.poster)||(a.poster=n.poster),a.canvasRender=n.canvasRender,"main"===r&&!AD(n.small)&&(!o.remoteVideoTrack.isSubscribing&&!o.remoteVideoTrack.isSubscribed&&o.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(s,{config:e}),n&&!AD(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:c,view:t,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:null==n?void 0:n.viewRoot})}))}updateRemoteVideo(e){return ob(this,null,(function*(){var t,i;let{view:r,userId:n,streamType:s,option:o}=e,a="".concat(n,"_").concat(s),c=this._remoteVideoConfigMap.get(a);if(!c||!this._room.remotePublishedUserMap.has(n))return;let l={};o&&(AD(o.fillMode)||(l.objectFit=o.fillMode),AD(o.mirror)||(l.mirror=o.mirror));let d=null,u=this._room.remotePublishedUserMap.get(n);if("main"===s&&null!=u&&u.muteState.hasVideo&&(d=u.remoteVideoTrack),"sub"===s&&null!=u&&u.muteState.hasAuxiliary&&(d=u.remoteAuxiliaryTrack),!d)return;let{config:h}=c;"main"===s&&o&&!AD(o.small)&&this._room.changeType(o.small,d.user),yield this._updateVideoPlayOption({view:r,playOption:l,track:d,prevConfig:h}),KD(h,e);let p=AD(null==o?void 0:o.receiveWhenViewVisible)?null==(t=h.option)?void 0:t.receiveWhenViewVisible:o.receiveWhenViewVisible,m=AD(r)?h.view:r,_=AD(null==o?void 0:o.viewRoot)?null==(i=h.option)?void 0:i.viewRoot:o.viewRoot;this._observeView({remoteTrack:d,view:m,receiveWhenViewVisible:p,viewRoot:_})}))}stopRemoteVideo(e){return ob(this,null,(function*(){return this._stopRemoteVideo(e)}))}_stopRemoteVideo(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return ob(this,null,(function*(){let i=[],r=this._room.remotePublishedUserMap.get(e.userId);if(r){let{muteState:t,remoteVideoTrack:n,remoteAuxiliaryTrack:s}=r;"main"===e.streamType&&(n.stop(),t.hasVideo&&i.push(n)),"sub"===e.streamType&&(s.stop(),t.hasAuxiliary&&i.push(s))}for(let e of i)t&&(yield this._room.unsubscribe(e),this._mediaTrackMap.delete(e.outMediaTrack));let n=this._remoteVideoConfigMap.get("".concat(e.userId,"_").concat(e.streamType));n&&n.observer&&n.observer.disconnect(),this._remoteVideoConfigMap.delete("".concat(e.userId,"_").concat(e.streamType))}))}muteRemoteAudio(e,t){return ob(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(EO){throw this._remoteAudioMuteMap.delete(e),EO}}))}setRemoteAudioVolume(e,t){if("*"===e){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 ob(this,null,(function*(){return e.start(t)}))}updatePlugin(e,t){return ob(this,null,(function*(){return e.update(t)}))}stopPlugin(e,t){return ob(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(t,i,r){return this.listeners(t).includes(i)||(this._log.debug("on",t),super.on(t,i,r),this._eventListened.add(t),t===e.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM((t=>{this.emit(e.EVENT.AUDIO_FRAME,{data:t})})),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",(()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM((t=>{this.emit(e.EVENT.AUDIO_FRAME,{data:t})})))})))),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{ZF.has(e)&&this._log.debug("emit ".concat(e," ").concat(JSON.stringify(i)))}catch(EO){}return super.emit(e,...i)}off(t,i,r){var n,s;return this._log.debug("off",t),"*"===t?(this._eventListened.clear(),this.removeAllListeners(),null==(n=this._getPCMAbortCtrl)||n.abort("off"),delete this._getPCMAbortCtrl):(super.off(t,i,r),t===e.EVENT.AUDIO_FRAME&&(null==(s=this._getPCMAbortCtrl)||s.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},i=null,r="main",n=!1;if(CD(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 ob(this,null,(function*(){(yield KL()).forEach((t=>{t.deviceId===e&&(this._setCurrentSpeaker(e),this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}),aH=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 ob(this,null,(function*(){let{userId:t}=e;if(this._remoteAudioConfigMap.has(t))return void this._log.warn("remote audio has already started. userId:".concat(t));let i=this._room.remotePublishedUserMap.get(t);if(!i)return;let r={},n=i.remoteAudioTrack;this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let i=this._remoteAudioVolumeMap.get(t),s=bD(i)?i:100;r.volume=s,this._remoteAudioConfigMap.set(t,e),yield this._room.subscribe(n),zx(AV(n,"decode-failed"),qV(AV(n,wM.INIT)),KU((()=>{this.startPlugin(nH.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})}))),yield this._updateAudioPlayOption({playOption:r,track:n})}catch(TO){throw this._remoteAudioConfigMap.delete(t),TO}this._emitTrackEvent(n)}))}_stopRemoteAudio(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return ob(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))}))}_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),zx(AV(e,"decode-failed"),qV(AV(e,wM.INIT)),qU((()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:r})})),CU(AV(e,"decode-downgrade-state-changed")),KU((r=>{i=r.state,this.emit($F.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,ZC($C({},r),{streamType:t,userId:e.userId}))}),(t=>{e.log.error("fallback",t)}),(()=>{"STARTED"===i&&e.log.info("fallback complete")}))))}_updateVideoPlayOption(e){return ob(this,arguments,(function(e){let{view:t,playOption:i,track:r,prevConfig:n}=e;return function*(){if(r.setMirror(i.mirror),AD(t)&&n&&n.view&&!GD(i)){let e=zD(n.view);e.length>0&&(yield r.play(e,i))}if(!AD(t)){let e=zD(t);e.length>0?yield r.play(e,i):r.stop()}}()}))}_updateAudioPlayOption(e){return ob(this,arguments,(function(e){let{playOption:t={},track:i,prevConfig:r}=e;return function*(){if(!i.isPlayCalled)try{yield i.play(null,t)}catch(wb){}AD(t.muted)||i.setPlayerMute(t.muted),AD(t.volume)||i.setAudioVolume(t.volume/100)}()}))}_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($F.TRACK,{userId:i,streamType:eB(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)),0!==r.length)return this._room.publish(...r).catch((()=>{}))}_observeView(e){let{remoteTrack:t,view:i,receiveWhenViewVisible:r=!1,viewRoot:n}=e;if(AD(i))return;let s=this._remoteVideoConfigMap.get("".concat(t.userId,"_").concat(eB(t.streamType)));if(!s)return;let o=s.observer||void 0;if(null===i||ND(i)&&0===i.length||!r)return null==o||o.disconnect(),void(t.isSubscribed||this._room.subscribe(t).catch((()=>{})));let a=s.visibleViewMap||new Map,c=-1;(!o||o.root!==n)&&(null==o||o.disconnect(),a.clear(),o=new IntersectionObserver((e=>{e.forEach((e=>{a.set(e.target,e.isIntersecting)})),clearTimeout(c),c=window.setTimeout((()=>{let e=[...a.values()].find((e=>e));t.log.info("view is".concat(e?"":" not"," visible")),e?t.isSubscribed||this._room.subscribe(t).catch((()=>{})):t.isSubscribed&&this._room.unsubscribe(t).catch((()=>{}))}),200)}),{root:n}));let l=new Set(zD(i));a.forEach(((e,t)=>{l.has(t)||(o.unobserve(t),a.delete(t))})),l.forEach((e=>{a.set(e,!0),o.observe(e)})),o.takeRecords().forEach((e=>{a.set(e.target,e.isIntersecting)})),s.visibleViewMap=a,s.observer=o}_exitRoom(){return ob(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(),this._remoteAudioVolumeMap.clear(),function(e){let t=TB.get(e);t&&(t.forEach((e=>clearTimeout(e))),TB.delete(e))}(this),this._room.remotePublishedUserMap.forEach((e=>{GM(e.remoteAudioTrack),GM(e.remoteVideoTrack),GM(e.remoteAuxiliaryTrack)}))}))}_stopScreenShare(){return ob(this,null,(function*(){var e;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&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),GM(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}}))}_onLocalTrackCaptured(e){let{track:t}=e;"audio"===t.kind&&(!aH||HL(aH))&&(this._initActiveSpeaker(),sO.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return ob(this,null,(function*(){if(aH&&!HL(aH))this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"active",device:aH});else{let e=yield KL();e[0]&&!HL(e[0])?(aH=e[0],this.emit($F.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):sO.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:ZC($C({seiPayloadType:243},t),{small:!(null==(i=this._localVideoTrack)||!i.small)})}),bP.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,i;null==(i=(t=this._room).sendCustomMessage)||i.call(t,e),bP.addCount({key:500001,useUV:!0})}static setLogLevel(e,t){lO.setLogLevel(e),AD(t)||(t?lO.enableUploadLog():lO.disableUploadLog())}static isSupported(){return FP()}static getCameraList(){return jL(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getMicrophoneList(){return WL(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getSpeakerList(){return KL(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static setCurrentSpeaker(t){return ob(this,null,(function*(){if(!bN||t!==AF.SPEAKER&&t!==AF.HEADSET)(yield KL()).forEach((e=>{e.deviceId===t&&(oH.forEach((i=>{i._setCurrentSpeaker(t),i.emit($F.DEVICE_CHANGED,{type:"speaker",action:"active",device:e})})),aH=e)}));else{let i=yield e.getMicrophoneList(),r="";if(i.forEach((e=>{e.label===t&&(r=e.deviceId)})),!r)return;oH.forEach((e=>ob(this,null,(function*(){e._localAudioTrack&&(yield e.updateLocalAudio({option:{microphoneId:r}}))}))))}}))}static _addKVStat(e){let{type:t,key:i,value:r,base:n,useUV:s,version:o}=e;switch(o&&(CP.version=o),t){case"count":CP.addCount({key:i,useUV:s});break;case"enum":CP.addEnum({key:i,value:r,useUV:s});break;case"number":CP.addNumber({key:i,value:r,split:n})}}};nb(lH,"_loggerManager",lO),nb(lH,"EVENT",$F),nb(lH,"ERROR_CODE",CF),nb(lH,"TYPE",AF),nb(lH,"frameWorkType",30),rb([RB({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"}})})],lH.prototype,"use",1),rb([vB(BF.TRTC.enterRoom),YF("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})),ux((e=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),e.call(this,t)})),RB()],lH.prototype,"enterRoom",1),rb([RB()],lH.prototype,"exitRoom",1),rb([vB(BF.TRTC.switchRole),XF("room",{merge:(e,t)=>t}),RB()],lH.prototype,"switchRole",1),rb([RB()],lH.prototype,"destroy",1),rb([vB(BF.TRTC.startLocalAudio),YF("audio",((e,t)=>{let[i]=e,[r]=t;var n,s;return(null==(n=null==i?void 0:i.option)?void 0:n.microphoneId)===(null==(s=null==r?void 0:r.option)?void 0:s.microphoneId)})),RB()],lH.prototype,"startLocalAudio",1),rb([vB(BF.TRTC.updateLocalAudio),XF("audio",{debounce:{delay:200,getKey:()=>"".concat(sH,"-localAudio"),isNeedToDebounce:e=>{var t;return!AD(null==(t=e.option)?void 0:t.captureVolume)}}}),RB()],lH.prototype,"updateLocalAudio",1),rb([QF("audio"),RB()],lH.prototype,"stopLocalAudio",1),rb([vB(BF.TRTC.startLocalVideo),YF("video",((e,t)=>{let[i]=e,[r]=t;var n,s;return(null==(n=null==i?void 0:i.option)?void 0:n.cameraId)===(null==(s=null==r?void 0:r.option)?void 0:s.cameraId)})),RB()],lH.prototype,"startLocalVideo",1),rb([vB(BF.TRTC.updateLocalVideo),XF("video"),RB()],lH.prototype,"updateLocalVideo",1),rb([QF("video"),RB()],lH.prototype,"stopLocalVideo",1),rb([vB(BF.TRTC.startScreenShare),YF("screen",(()=>!0)),RB()],lH.prototype,"startScreenShare",1),rb([vB(BF.TRTC.updateScreenShare),XF("screen"),RB()],lH.prototype,"updateScreenShare",1),rb([RB()],lH.prototype,"stopScreenShare",1),rb([vB(BF.TRTC.startRemoteVideo),YF((e=>"v".concat(e.userId).concat(e.streamType)),(()=>!0)),RB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],lH.prototype,"startRemoteVideo",1),rb([vB(BF.TRTC.updateRemoteVideo),XF((e=>"v".concat(e.userId).concat(e.streamType))),RB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],lH.prototype,"updateRemoteVideo",1),rb([vB(BF.TRTC.stopRemoteVideo),ux((e=>function(t){return ob(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)}))})),RB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],lH.prototype,"stopRemoteVideo",1),rb([QF((e=>"v".concat(e.userId).concat(e.streamType)))],lH.prototype,"_stopRemoteVideo",1),rb([vB(...BF.TRTC.muteRemoteAudio),RB({getRemoteId:e=>e})],lH.prototype,"muteRemoteAudio",1),rb([yB(...BF.TRTC.setRemoteAudioVolume),function(e,t){return ux(((i,r)=>function(){for(var r=arguments.length,n=new Array(r),s=0;s<r;s++)n[s]=arguments[s];let o=TB.get(this);o||(o=new Map,TB.set(this,o));let a=t(...n),c=o.get(a);if(!c||c<=0){i.apply(this,n);let t=setTimeout((()=>{var e;null==(e=TB.get(this))||e.delete(a)}),e);o.set(a,t)}else{clearTimeout(c);let t=window.setTimeout((()=>{var e;i.apply(this,n),null==(e=TB.get(this))||e.delete(a)}),e);o.set(a,t)}}))}(200,(e=>e)),RB({getRemoteId:e=>e})],lH.prototype,"setRemoteAudioVolume",1),rb([AB("start"),lx((e=>{var t;return null==(t=e.afterStart)?void 0:t.call(e)})),YF(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t))),RB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>SP[e.getName()],ignoreLog:e=>"Debug"===e.getName()})],lH.prototype,"startPlugin",1),rb([AB("update"),XF(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t))),RB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>IP[e.getName()]})],lH.prototype,"updatePlugin",1),rb([AB("stop"),QF(((e,t)=>{if(e.disableRandomCall)return null;let i=e.getGroup(t),r=e.getAlias();return"*"===i?new RegExp("".concat(r,".*")):r+i})),RB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>RP[e.getName()]})],lH.prototype,"stopPlugin",1),rb([yB(...BF.TRTC.enableAudioVolumeEvaluation)],lH.prototype,"enableAudioVolumeEvaluation",1),rb([RB()],lH.prototype,"getVideoSnapshot",1),rb([RB()],lH.prototype,"_setCurrentSpeaker",1),rb([YF((e=>"a".concat(e.userId)),(()=>!0))],lH.prototype,"_startRemoteAudio",1),rb([ux((e=>function(t){return ob(this,null,(function*(){return"*"===t.userId?Promise.all([...this._room.remotePublishedUserMap.values()].map((e=>this._stopRemoteAudio(ZC($C({},t),{userId:e.userId})).catch((()=>{}))))):e.call(this,t)}))})),QF((e=>"a".concat(e.userId)))],lH.prototype,"_stopRemoteAudio",1),rb([QF("room")],lH.prototype,"_exitRoom",1),rb([QF("screen")],lH.prototype,"_stopScreenShare",1),rb([vB(...BF.TRTC.sendSEIMessage),SF({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}})],lH.prototype,"sendSEIMessage",1),rb([vB(BF.TRTC.sendCustomMessage),SF({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],lH.prototype,"sendCustomMessage",1),rb([vB(BF.TRTC.create)],lH,"_create",1);var dH=lH,uH=class{constructor(){nb(this,"_set",new Set),sO.on(aO.LEAVE_SUCCESS,this.delete,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))}};function hH(){return ob(this,null,(function*(){let e,t;try{let t=yield WL();e=t&&t.length}catch(mO){}try{let e=yield jL();t=e&&e.length}catch(mO){}let i={microphone:e,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:n,isH264DecodeSupported:s,isVp8DecodeSupported:o}=this.checkSystemResult.detail,a=hO.basis(),c={webRTC:a.isWebRTCSupported,getUserMedia:a.isGetUserMediaSupported,webSocket:a.isWebSocketsSupported,screenShare:a.isScreenShareSupported,webAudio:a.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:n,vp8Decode:o},l={browser:a.browser,os:a.os,trtc:c,devices:i},d={isWebCodecSupported:a.isWebCodecSupported,isMediaSessionSupported:a.isMediaSessionSupported,isWebTransportSupported:a.isWebTransportSupported};WM.uploadEvent({log:"trtcstats-".concat(JSON.stringify(l)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(l))),WM.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(d)),userId:this.userId})}))}var pH=ib(ab()),mH="1",_H="2",fH="3",gH="4",EH="5",TH="6",vH={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},yH=[vH.UPDATE_REMOTE_MUTE_STAT,vH.UPLINK_NETWORK_STATS,vH.USER_LIST_RES,vH.MUTE_RESULT,vH.SERVER_FIRST_PACKAGE_RECEIVED,vH.RECEIVE_CUSTOM_MSG],SH={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"},IH="publish_change",RH="join",AH="leave",CH="quality_report",bH="mute_uplink",kH="publish",DH="publish_state_change",NH="unpublish",wH="subscribe",OH="unsubscribe",PH="subscribe_change",MH="start_publishing",LH="stop_publishing",xH="start_push_user_cdn",VH="stop_push_user_cdn",UH="start_mcu_mix",FH="stop_mcu_mix",BH="start_publish_cdn_stream",HH="update_publish_cdn_stream",GH="stop_publish_cdn_stream",WH="get_user_list",jH="change_role",JH="update_constraint_config",KH="rebuild_pc",qH="join/v2",zH="publish/v2",YH="subscribe/v3",XH="ability_status_report",QH="reconnect",$H="channel_msg",ZH=new Set;var eG=class extends pH.default{constructor(e){var t,i,r;super(),nb(this,"room"),nb(this,"sdkAppId"),nb(this,"userId"),nb(this,"userSig"),nb(this,"url"),nb(this,"backupUrl"),nb(this,"race"),nb(this,"destroyed",!1),nb(this,"_socketInUse"),nb(this,"_socket"),nb(this,"_backupSocket"),nb(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[]}),nb(this,"_currentState","DISCONNECTED"),nb(this,"_isReconnecting",!1),nb(this,"_seq",0),nb(this,"_log"),nb(this,"_lastMessageTime",-1),nb(this,"_connectStartTime",-1),nb(this,"_stopConnectRetry"),nb(this,"bytesSent",0),nb(this,"bytesReceived",0),nb(this,"keepAlive",!1),nb(this,"signalDomainWhenUnifiedProxy"),nb(this,"stopKeepAliveTimeout"),nb(this,"rtt",0),this.room=e.room,this.sdkAppId=e.sdkAppId,this.userId=e.userId,this.userSig=e.userSig,this.race=!!AD(e.race)||e.race,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-ZH.size>0&&this.room.enableSPC&&(this.keepAlive=!0,ZH.add(this)),this.url=e.url,this.backupUrl=e.backupUrl,this._seq=0,this._log=lO.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 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 ob(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(t?" timeout: ".concat(t):""," keepAlive: ").concat(Number(e.keepAlive))),e.emitConnectionStateChanged("CONNECTING"),e._connectStartTime=UD();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 VD(i),e.unbindAndCloseSocket(e._socketInUse===e._socket?rk.BACKUP:rk.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 s=-1;return new Promise(((e,t)=>{n.onclose=t,n.onerror=t,n.onopen=()=>e(n),i&&(s=setTimeout((()=>{this.unbindAndCloseSocket(r?rk.MAIN:rk.BACKUP),t(new vb({code:Eb.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))}),i))})).finally((()=>{n.onclose=null,n.onerror=null,n.onopen=null,clearTimeout(s)}))}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===rk.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch(wk){}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch(wk){}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(EH,new vb({code:Eb.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(rk.MAIN),this.unbindAndCloseSocket(rk.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(EH,new vb({code:Eb.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(e){if(!this.isConnected)return;this._lastMessageTime=Date.now(),this.bytesReceived+=ZD(e.data);let t=JSON.parse(e.data),{cmd:i,data:r}=t,n=Object.values(vH),s=Object.keys(vH)[n.indexOf(i)],o=SH[s]||i;switch(yH.includes(i)||(this._log.debug("received ".concat(i," msg: ").concat(e.data)),o&&this._log.info("Received event: [ ".concat(o," ]"))),i){case vH.CHANNEL_SETUP_RESULT:if(0===t.code)this._signalInfo.clientIp=r.clientIp,this._signalInfo.signalIp=r.signalInnerIp,r.svrTime&&function(e){yb=e-(new Date).getTime();let t=new Date;t.setTime(e),lO.info("baseTime from server: ".concat(t," offset: ").concat(yb))}(r.svrTime),this._log.info("ChannelSetup Success ".concat(UD()-this._connectStartTime)),bP.addSuccessEvent({key:521701,cost:UD()-this._connectStartTime}),this._connectStartTime=-1,this.emit(mH,{signalInfo:this._signalInfo});else{let e=new vb({code:Eb.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:t.code,message:gP({key:pP.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:t.code,errorMsg:t.message}})});this._log.error("".concat(t.code,", ").concat(t.message)),this.close(),bP.addFailedEvent({key:521701,error:e}),this.emit(EH,e)}break;case vH.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(o,{data:t});break;default:this.emit(String(o),{data:t})}}reGetSignalChannelUrl(){return ob(this,null,(function*(){try{if(!this.room.joinParams)return;oB(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:e,backupUrl:t}=this.room.getSignalChannelUrl();this.url=e,this.backupUrl=t}catch(Nb){}}))}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let e=this._socketInUse===this._socket;this.unbindAndCloseSocket(e?rk.MAIN:rk.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return ob(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:s}=yield this.sendWaitForResponse({command:QH,data:{roomId:e,useStringRoomId:t,relayInnerIp:r,relayOuterIp:i,relayPort:n},responseCommand:SH.CHANNEL_RECONNECT_RESULT});0===s.code?(this._log.warn("reconnect success"),this.stopReconnection(),bP.addSuccessEvent({key:521702,cost:UD()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(bP.addFailedEvent({key:521702,error:s.code}),this._log.warn("reconnect failed, ".concat(s.code," ").concat(s.message)),this.room.reJoin())}catch(Nb){this._log.error(Nb),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+=ZD(r),i.seq}}sendWaitForResponse(e){let{command:t,data:i,timeout:r=5e3,responseCommand:n,commandDesc:s,enableLog:o=!0,addReceiveTime:a=!1}=e;return new Promise(((e,c)=>{let l=setTimeout((()=>{this.off(n,d);let e=new vb({code:Eb.API_CALL_TIMEOUT,message:gP({key:pP.API_CALL_TIMEOUT,data:{commandDesc:s,command:t}})});o&&this._log.warn(e),c(e)}),r),d=t=>{t.data.seq===u&&(clearTimeout(l),this.off(n,d),a&&(t.data.receiveTime=Date.now()),e(t))};this.on(n,d);let u=this.send(t,i)}))}sendWaitForResponseWithRetry(e){let{commandDesc:t,command:i,retries:r=0,retryTimeout:n=0}=e;return pN({retryFunction:this.sendWaitForResponse,onError:e=>{let{retry:t}=e;this.isOnline?t():(this._log.warn("retry ".concat(i," when connected")),this.once(fH,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),ZH.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(rk.MAIN),this.unbindAndCloseSocket(rk.BACKUP),this.emitConnectionStateChanged("DISCONNECTED")}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(SH.JOIN_ROOM_RESULT,t)}),1e3*e);let t=e=>{0===e.data.code&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(SH.JOIN_ROOM_RESULT,t))};this.on(SH.JOIN_ROOM_RESULT,t)}}emitConnectionStateChanged(e){e!==this._currentState&&(this._log.info("".concat(this._currentState," -> ").concat(e)),this.emit(_H,{prevState:this._currentState,state:e}),this._currentState=e,"CONNECTED"===e?this.emit(fH):"DISCONNECTED"===e&&this.emit(TH))}};rb([JM({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())}})],eG.prototype,"connect",1);var tG=ib(ab()),iG=0,rG=!1,nG=new Set,sG=!1,oG=class{constructor(e){nb(this,"userId"),nb(this,"tinyId"),nb(this,"_sdpSemantics"),nb(this,"_isUplink"),nb(this,"_room"),nb(this,"_log"),nb(this,"_signalChannel"),nb(this,"_isErrorObserved",!1),nb(this,"_waitForPeerConnectionConnectedPromise"),nb(this,"_waitForPeerConnectionConnectedPromiseReject",null),nb(this,"_peerConnection",null),nb(this,"_emitter",new tG.default),nb(this,"_currentState","DISCONNECTED"),nb(this,"_isReconnecting",!1),nb(this,"_reconnectionCount",0),nb(this,"_reconnectionTimer",-1),nb(this,"_isFirstConnection",!0),nb(this,"_prevTime",-1),nb(this,"_localAddress"),nb(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=lO.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=UD())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,bP.addSuccessEvent({key:521705,cost:Math.min(UD()-this._prevTime,3e4)})):this._isReconnecting&&bP.addSuccessEvent({key:521706,cost:UD()-this._prevTime}),this._prevTime=-1}catch(gO){throw this._isFirstConnection?(this._isFirstConnection=!1,bP.addFailedEvent({key:521705,error:gO})):this._isReconnecting&&this._reconnectionCount>=3&&bP.addFailedEvent({key:521706,error:gO}),gO}}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(),nG.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 vb({code:Eb.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return Ck;let e=null;if(this._isUplink){if(!$P()||0===this._peerConnection.getSenders().length)return Ck;e=this._peerConnection.getSenders()[0].transport}else{if(!QP()||0===this._peerConnection.getReceivers().length)return Ck;e=this._peerConnection.getReceivers()[0].transport}return e?e.state:Ck}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===bk.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),e.target.connectionState===bk.FAILED||e.target.connectionState===bk.CLOSED){let r="connection ".concat(e.target.connectionState,". ICE Transport state: ").concat(t,", DTLS Transport state: ").concat(i),n=new vb({message:r,code:Eb.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",n)}(e.target.connectionState===bk.CONNECTED||e.target.connectionState===bk.COMPLETED)&&(this.logSelectedCandidate(),WM.logSuccessEvent({userId:this._room.userId,eventType:Pk.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(e){return e!==this._currentState&&("CONNECTED"===e?(iG=0,rG=!1,sG=!0,nG.add(this)):nG.delete(this),sO.emit(aO.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 ob(this,null,(function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[,t]of e)if(jP(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(s),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(s),n(),t(new vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{sO.off(aO.LEAVE_SUCCESS,r,this),this._emitter.off("connection-state-changed",i,this)},s=setTimeout((()=>{n();let e=new vb({code:Eb.API_CALL_TIMEOUT,message:"connection timeout"});var i;iG+=1,i=this._signalChannel.isConnected,iG>2&&!rG&&0===nG.size&&i&&(this._log.warn("firewall restriction"),rG=!0,this._emitter.emit("firewall-restriction")),t(e)}),Jk);sO.on(aO.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(fH,this.reconnect,this)}beforeReconnect(){if(-1!==this._reconnectionTimer)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=Nk()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let e=new vb({code:this._isUplink?Eb.UPLINK_RECONNECTION_FAILED:Eb.DOWNLINK_RECONNECTION_FAILED,message:gP({key:this._isUplink?pP.UPLINK_RECONNECTION_FAILED:pP.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(fH,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)}};rb([vx(521712,!1)],oG.prototype,"setOffer",1),rb([vx(521713,!1)],oG.prototype,"setAnswer",1);var aG=ib(_b()),cG=function(e){return aG.default.parse(e)},lG=function(e){return aG.default.write(e)};function dG(e){return Object.keys(e).filter((t=>e[t]))}var uG=class e extends oG{constructor(e){super(ZC($C({},e),{isUplink:!1})),nb(this,"_flag",0),nb(this,"isRobot",!1),nb(this,"role","anchor"),nb(this,"remoteAudioTrack"),nb(this,"remoteVideoTrack"),nb(this,"remoteAuxiliaryTrack"),nb(this,"ssrc",{audio:0,video:0,auxiliary:0}),nb(this,"_isSDPExchanging",!1),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new $U(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new fF(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new gF(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":"h264"}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 WD(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===rk.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===_k?rk.MAIN:rk.AUXILIARY;this._log.debug("ontrack ".concat(r," ").concat(i.kind));let n=rk.AUDIO;i.kind===rk.VIDEO&&(n=r===rk.MAIN?rk.VIDEO:rk.AUXILIARY);let s=this.remoteAudioTrack;n===rk.VIDEO?s=this.remoteVideoTrack:n===rk.AUXILIARY&&(s=this.remoteAuxiliaryTrack),s.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=cG(e);return t.media.forEach((e=>{e.type===rk.VIDEO&&e.fmtp.forEach((e=>{e.config+=";sps-pps-idr-in-keyframe=1"}))})),lG(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=cG(e);return i.media.forEach((e=>{e.ext&&(e.ext=e.ext.filter((e=>!t.includes(e.uri))))})),lG(i)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,t){return ob(this,null,(function*(){var i,r;try{if(((null==(i=this._peerConnection)?void 0:i.connectionState)===bk.NEW||(null==(r=this._peerConnection)?void 0:r.connectionState)===bk.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(wb){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(wb.message," ").concat(JSON.stringify(this.muteState))),new vb({code:Eb.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):wb}}))}unsubscribe(e){return ob(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=$C({},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(dG(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=OH,n=SH.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=PH,n=SH.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 vb({code:i.code,message:gP({key:pP.ERROR_MESSAGE,data:{type:e,message:i.message}})});throw this._log.error(t),t}}))}connect(){return ob(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(wk){throw e.closePeerConnection(!0),wk}}()}))}exchangeSDP(e){return ob(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:wH,commandDesc:"exchange sdp",data:r,responseCommand:SH.SUBSCRIBE_RESULT,timeout:xk});if(!this._peerConnection){let e=new vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.CONNECTION_CLOSED})});throw this._log.warn(e),e}yield this.onSubscribeResult(n),this._isSDPExchanging=!1}catch(wk){throw this._isSDPExchanging=!1,wk}}))}createOffer(){return ob(this,null,(function*(){let e={voiceActivityDetection:!1};eM()&&this._sdpSemantics===Vk?(this._peerConnection.addTransceiver(rk.AUDIO,{direction:nk.RECVONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:nk.RECVONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:nk.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let t=yield this._peerConnection.createOffer(e);if(t.sdp){let{isH264DecodeSupported:e}=yield UP();e||(this._log.warn("remove h264 desc from sdp"),t.sdp=function(e){let t=cG(e);return t.media.forEach((e=>{var t,i;if(e.type===rk.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(" ")}})),lG(t)}(t.sdp)),t.sdp=this.addRRTRLine(t.sdp),t.sdp=this.addSPSDescription(t.sdp),t.sdp=function(e){let t=cG(e);return t.media.forEach((e=>{e.type===rk.AUDIO&&e.fmtp.forEach((e=>{e.config+=";sprop-stereo=1;stereo=1"}))})),lG(t)}(t.sdp),this._sdpSemantics===Vk&&(t.sdp=this.removeSDESDescription(t.sdp))}yield this.setOffer(t)}))}onSubscribeResult(e){return ob(this,null,(function*(){let{code:t,message:i=""}=e&&e.data||{},{type:r,sdp:n}=e&&e.data&&e.data.data||{};if(t===Fk)throw new vb({code:Eb.NOT_SUPPORTED_H264,message:gP({key:pP.NOT_SUPPORTED_H264DECODE})});try{if(0!==t)throw new vb({code:t,message:gP({key:pP.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(TO){throw this._log.error(TO),TO}}))}updateSSRC(e){try{cG(e).media.forEach((e=>{if(e.ssrcs)if(e.type===rk.AUDIO){let t=e.ssrcs.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(_k)}));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(_k)})),i=e.ssrcs.find((e=>{var t;return null==(t=e.value)?void 0:t.includes(fk)}));t&&(this.ssrc.video=Number(t.id)),i&&(this.ssrc.auxiliary=Number(i.id))}}))}catch(wk){}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return ob(this,null,(function*(){if(!(sb(e.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch(wk){let t=SD(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}};rb([ux((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 vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this._emitter.off("closed",n)}))}))}))],uG.prototype,"subscribe",1),rb([vx(521717,!1)],uG.prototype,"unsubscribe",1),rb([lx(oG.prototype.afterConnect),cx(oG.prototype.beforeConnect)],uG.prototype,"connect",1);var hG=uG,pG={voiceActivityDetection:!1},mG=class e extends oG{constructor(e){super(ZC($C({},e),{isUplink:!0})),nb(this,"localMainAudioTrack",null),nb(this,"localMainVideoTrack",null),nb(this,"localAuxAudioTrack",null),nb(this,"localAuxVideoTrack",null),nb(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),nb(this,"_isPublishingAux",!1),nb(this,"_publishingLocalAudioTrack"),nb(this,"_publishingLocalVideoTrack"),nb(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}),nb(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 s=this._peerConnection.getSenders();s&&(ZP()?(n.audio=!(null==(e=s[0])||!e.track),n.bigVideo=!(null==(t=s[1])||!t.track),n.smallVideo=!(null==(i=s[2])||!i.track),n.auxVideo=!(null==(r=s[3])||!r.track)):s.forEach((e=>{e.track&&(e.track.kind===rk.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 s=this._currentState,o=super.emitConnectionStateChangedEvent(e);return o&&s!==e&&(t?t.emit("connection-state-changed",{prevState:s,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:s,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:s,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:s,state:e}))),o}publish(e){return ob(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(),eM()?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 ob(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,smallTrack:n,isAuxiliary:s}=e;return function*(){t._log.info("publish by transceiver");let e=new MediaStream,o=null==r?void 0:r.outMediaTrack,a=null==i?void 0:i.outMediaTrack;a&&e.addTrack(a),o&&e.addTrack(o);let c=t._peerConnection.getTransceivers();if(0===c.length)t._peerConnection.addTransceiver(a||rk.AUDIO,{direction:nk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(s?rk.VIDEO:o||rk.VIDEO,{direction:nk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(n||rk.VIDEO,{direction:nk.SENDONLY,streams:[e]}),t._peerConnection.addTransceiver(s&&o||rk.VIDEO,{direction:nk.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:rk.AUDIO})),o){let i=s?3:1;yield c[i].sender.replaceTrack(o),yield t.setBandwidth({bandwidth:r.profile.bitrate,type:rk.VIDEO,videoType:s?rk.AUXILIARY:rk.BIG}),e.push(i),n&&(yield c[2].sender.replaceTrack(n),yield t.setBandwidth({bandwidth:r.small.bitrate,type:rk.VIDEO,videoType:rk.SMALL}),e.push(2))}yield t.setTransceiverDirection(nk.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 ob(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,s=null==i?void 0:i.outMediaTrack;if(t._peerConnection&&"new"!==t._peerConnection.connectionState)return i&&s&&(yield t.addTrack(i)),void(e&&(yield t.addTrack(r)));let o=new MediaStream;if(s&&o.addTrack(s),e&&o.addTrack(e),s&&t._peerConnection.addTrack(s,o),e&&(t._peerConnection.addTrack(e,o),n)){let e=new MediaStream;e.addTrack(n),t._peerConnection.addTrack(n,e)}yield t.connect()}()}))}enableSmall(e){return ob(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(nk.SENDONLY,[2])):(yield t[2].sender.replaceTrack(null),yield this.setTransceiverDirection(nk.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 ob(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){if(!ZP())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,s=t._peerConnection.getSenders(),o=[];i&&(e?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localAuxAudioTrack&&!t.localMainAudioTrack&&(yield s[0].replaceTrack(null),o.push(0))),n&&(e?(yield s[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=ZC($C({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),o.push(3)):(yield s[1].replaceTrack(null),yield s[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=ZC($C({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),o.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.setTransceiverDirection(nk.INACTIVE,o),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 ob(this,null,(function*(){let t={state:this.publishState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponse({command:DH,data:t,responseCommand:SH.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:NH,commandDesc:"unpublish",responseCommand:SH.UNPUBLISH_RESULT,enableLog:e}).catch((e=>{if(e.getCode()===Eb.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),aM){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:JH,data:this._mediaSettings,responseCommand:SH.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{0!==e.data.code&&this._log.warn(e.data.message)})).catch((()=>{}))}addTrack(e){return ob(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?rk.AUXILIARY:rk.MAIN," stream")),eM()?yield this.addTrackByTransceiver(e,t):yield this.addTrackBySender(e)}))}addTrackByTransceiver(e,t){return ob(this,null,(function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===rk.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===nk.INACTIVE&&(yield this.setTransceiverDirection(nk.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()}))}addTrackBySender(e){return ob(this,null,(function*(){if(!e.outMediaTrack)return;let t=e.outMediaTrack;ZP()&&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===rk.VIDEO&&e instanceof kx&&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===Uk||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,t=cG(e);for(let i=0;i<t.media.length;i++)if(0===Number(t.media[i].mid)&&t.media[i].type===rk.VIDEO)return!0;return!1}removeSender(e){let t=null;ZP()&&(t=this._peerConnection.getTransceivers().find((t=>t.sender&&t.sender.track===e.track))),this._peerConnection.removeTrack(e),t&&RD(t.stop)&&(this._log.info("stop transceiver"),t.stop())}removeTrack(e){return ob(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?rk.AUXILIARY:rk.MAIN," stream")),eM()?yield this.removeTrackByTransceiver(e,t):yield this.removeTrackBySender(e)}))}removeTrackByTransceiver(e,t){return ob(this,null,(function*(){if(!e.outMediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===rk.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(nk.INACTIVE,[r])}this.updateMediaSettings(),yield this.doPublishChange()}))}setTransceiverDirection(e,t){return ob(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 s=-1,o=this._peerConnection.remoteDescription.sdp.split("\r\n").map((i=>{if(i.match(new RegExp("a=(".concat(nk.INACTIVE,"|").concat(nk.RECVONLY,"|").concat(nk.SENDONLY,")")))&&s++,t.includes(s)){if(e===nk.INACTIVE&&i.includes("a=".concat(nk.RECVONLY)))return r=!0,"a=".concat(e);if(e===nk.SENDONLY&&i.includes("a=".concat(nk.INACTIVE)))return r=!0,"a=".concat(nk.RECVONLY)}return i})).join("\r\n");r&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:o}))}))}removeTrackBySender(e){return ob(this,null,(function*(){if(!e.outMediaTrack)return;if(e.kind===rk.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===rk.VIDEO&&e.small&&this._peerConnection.getSenders().forEach((e=>{e.track&&e.track.kind===rk.VIDEO&&this.removeSender(e)}))),yield this.updateOffer("remove",e.outMediaTrack)}))}replaceTrack(e){return ob(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=eM()?e.kind===rk.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?rk.AUXILIARY:rk.MAIN," stream")),e.kind===rk.AUDIO?yield i.replaceTrack(e.outMediaTrack):e.kind===rk.VIDEO&&(n?r[3]&&(yield r[3].replaceTrack(e.outMediaTrack)):yield i.replaceTrack(e.outMediaTrack)),!0}))}updateOffer(e,t){return ob(this,null,(function*(){try{let i=yield this._peerConnection.createOffer(pG);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===rk.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 s=yield this._signalChannel.sendWaitForResponse({command:IH,data:n,responseCommand:SH.UPDATE_OFFER_RESULT,timeout:Lk,commandDesc:"update offer"}),{code:o,message:a}=s.data;0!==o&&this.checkPublishResultCode(o,a),yield this.acceptAnswer(s.data.data),i.sdp&&this.updateSSRC(i.sdp)}catch(EO){throw this._log.error(EO),EO}}))}setBandwidth(e){return ob(this,arguments,(function(e){var t=this;let{bandwidth:i,type:r,videoType:n,sdp:s}=e;return function*(){if(!sM())return s?r===rk.VIDEO?t.updateVideoBandwidthRestriction(s,i,n):t.updateAudioBandwidthRestriction(s,i):void 0;let e,o=t._peerConnection.getSenders();if(eM()){let t=0;r===rk.VIDEO&&(t=n===rk.SMALL?2:n===rk.AUXILIARY?3:1),e=o[t]}else e=o.find((e=>e.track&&e.track.kind===r));if(e){let o=e.getParameters();(!o.encodings||0===o.encodings.length)&&(o.encodings=[{}]),o.encodings[0].maxBitrate=1e3*i;try{return yield e.setParameters(o),t._log.info("".concat(n||"").concat(r," bandwidth ").concat(i," kbps")),s}catch(a){if(t._log.info("failed to set bandwidth by setting maxBitrate: ".concat(a)),s)return r===rk.VIDEO?t.updateVideoBandwidthRestriction(s,i,n):t.updateAudioBandwidthRestriction(s,i)}}return s}()}))}updateVideoBandwidthRestriction(e,t,i){let r="AS";wN&&(r="TIAS",t*=1e3);let n=0,s=-1;return i===rk.SMALL?n=1:i===rk.AUXILIARY&&(n=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,(e=>(s+=1,s===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 ob(this,null,(function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(Nb){throw this.closePeerConnection(!0),this.uninstallEvents(),Nb}}))}exchangeSDP(){return ob(this,null,(function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(Nb){throw Nb}}))}createOffer(){return ob(this,null,(function*(){try{let e=yield this._peerConnection.createOffer(pG);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(Nb){throw Nb}}))}doExchangeSDP(){let e={command:kH,responseCommand:SH.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof wx||this.localAuxVideoTrack instanceof wx,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=cG(e);return r.media.forEach((e=>{("all"===i||e.type===i)&&(e.direction=t)})),lG(r)}acceptAnswer(e){return ob(this,null,(function*(){var t,i,r,n,s;try{let o;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),s=(null==(r=this._publishingLocalAudioTrack)?void 0:r.profile.bitrate)||(null==(n=this.localMainAudioTrack)?void 0:n.profile.bitrate);if(e){let t=this._isPublishingAux?rk.AUXILIARY:rk.BIG;o=yield this.setBandwidth({bandwidth:e,type:rk.VIDEO,sdp:o,videoType:t})}s&&(o=yield this.setBandwidth({bandwidth:s,type:rk.AUDIO,sdp:o}))}if(o=this.removeVideoOrientation(e.sdp),null!=(s=this._publishingLocalVideoTrack)&&s.small){let{smallStreamConfig:e}=this._room;o=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||e.bitrate,type:rk.VIDEO,videoType:rk.SMALL,sdp:o})}let a={type:e.type,sdp:o};yield this.setAnswer(a),this._log.debug("accepted answer: ".concat(o))}catch(o){throw this._log.error("failed to accept remote answer ".concat(o)),o}}))}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(bH,n)}getIsReconnecting(){return this._isReconnecting}reconnect(){return ob(this,null,(function*(){if(!(sb(e.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:NH,responseCommand:SH.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(wk){let t=SD(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)&&sO.emit(aO.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{cG(e).media.forEach(((e,t)=>{if(e.type===rk.AUDIO){let t=e.ssrcs&&e.ssrcs[0];t&&(this.ssrc.audio=Number(t.id))}else{if(this._sdpSemantics===Uk&&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(wk){}}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rk.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===rk.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===rk.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===rk.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===rk.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===Fk?(this._log.error(mP.NOT_SUPPORTED_H264ENCODE),new vb({code:Eb.NOT_SUPPORTED_H264,message:gP({key:pP.NOT_SUPPORTED_H264ENCODE})})):new vb({code:Eb.UNKNOWN,message:gP({key:pP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:SH.PUBLISH_RESULT,code:e,message:t}})})}};rb([ux((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 vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.CONNECTION_ABORTED,data:e})}))};this._emitter.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this._emitter.off("closed",n)}))}))}))],mG.prototype,"publish",1),rb([vx(521715,!1)],mG.prototype,"unpublish",1),rb([lx(oG.prototype.afterConnect),cx(oG.prototype.beforeConnect)],mG.prototype,"connect",1);var _G=mG,fG=class{constructor(e,t){this.room=e,nb(this,"_log"),nb(this,"_prevReportTime",0),nb(this,"_prevReport",{}),nb(this,"_prevStats",null),nb(this,"_prevEncoderImplementation",""),nb(this,"_prevAuxEncoderImpl",""),nb(this,"_prevQualityLimitationReason",""),nb(this,"_prevAuxQualityLimitationReason",""),nb(this,"_prevDecoderImplementationMap",new Map),nb(this,"totalBytesSent",0),nb(this,"totalBytesReceived",0),nb(this,"_spcStats",null),this._log=t}get statInterval(){return 0===this._prevReportTime?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(e){return ob(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,s,o;let a,c;if("outbound-rtp"===t.type)if((t.mediaType||t.kind)===rk.VIDEO){if(t.ssrc===n.video?(a=rk.VIDEO,c=e.localMainVideoTrack):t.ssrc===n.small?a=rk.SMALL:t.ssrc===n.auxiliary&&(c=e.localAuxVideoTrack,a=rk.AUXILIARY),!a)return;if(i[a].bytesSent=t.bytesSent,i[a].packetsSent=t.packetsSent,i[a].framesEncoded=t.framesEncoded,AD(t.keyFramesEncoded)||(i[a].keyFramesEncoded=t.keyFramesEncoded),AD(t.nackCount)||(i[a].nackCount=t.nackCount),AD(t.pliCount)||(i[a].pliCount=t.pliCount),AD(t.retransmittedPacketsSent)||(i[a].retransmittedPacketsSent=t.retransmittedPacketsSent),AD(t.totalEncodeTime)||(i[a].totalEncodeTime=t.totalEncodeTime),AD(t.totalPacketSendDelay)||(i[a].totalPacketSendDelay=t.totalPacketSendDelay),!AD(t.encoderImplementation)&&(a===rk.VIDEO&&this._prevEncoderImplementation!==t.encoderImplementation||a===rk.AUXILIARY&&this._prevAuxEncoderImpl!==t.encoderImplementation)){let i=2,r=this._prevEncoderImplementation;a===rk.AUXILIARY&&(i=7,r=this._prevAuxEncoderImpl),sO.emit("262",{userId:e.userId,streamType:i,prevImplementation:r,implementation:t.encoderImplementation,codec:e.videoCodec,isHWCodec:t.powerEfficientEncoder}),this[a===rk.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=t.encoderImplementation,this._log.info("".concat(a===rk.AUXILIARY?"aux ":"","encoderImplementation change to ").concat(t.encoderImplementation,"(").concat(e.videoCodec,") HWEncoder: ").concat(t.powerEfficientEncoder))}t.ssrc===n.video?!AD(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("qualityLimitationReason change to ".concat(t.qualityLimitationReason)),sO.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&&!AD(t.qualityLimitationReason)&&0!==t.bytesSent&&this._prevAuxQualityLimitationReason!==t.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(t.qualityLimitationReason)),sO.emit("263",{userId:e.userId,reason:t.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:null==(s=e.localAuxVideoTrack)?void 0:s.isQosClearFirst}),this._prevAuxQualityLimitationReason=t.qualityLimitationReason)}else i.audio.bytesSent=t.bytesSent,i.audio.packetsSent=t.packetsSent;else"candidate-pair"===t.type?jP(t)&&(this.totalBytesSent=t.bytesSent,bD(t.currentRoundTripTime)&&(i.rtt=Math.floor(1e3*t.currentRoundTripTime))):"media-source"===t.type&&(t.kind===rk.AUDIO?(i.audio.audioLevel=t.audioLevel||0,i.audio.totalAudioEnergy=t.totalAudioEnergy||0,t.echoReturnLoss,t.totalSamplesDuration&&(i.audio.totalSamplesDuration=t.totalSamplesDuration)):t.kind===rk.VIDEO&&(t.trackIdentifier===e.getVideoTrackId(rk.VIDEO)?i.video.fpsCapture=t.framesPerSecond:t.trackIdentifier===e.getVideoTrackId(rk.AUXILIARY)?i.auxiliary.fpsCapture=t.framesPerSecond:i.small.fpsCapture=t.framesPerSecond));if(!AD(t.audioLevel)&&null!=(o=e.localMainAudioTrack)&&o.mediaTrack&&t.trackIdentifier===e.localMainAudioTrack.mediaTrack.id&&(i.audio.audioLevel=t.audioLevel||0),!AD(t.frameWidth)){let r=rk.SMALL;t.trackIdentifier===e.getVideoTrackId(rk.VIDEO)||t.ssrc===n.video?r=rk.VIDEO:(t.trackIdentifier===e.getVideoTrackId(rk.AUXILIARY)||t.ssrc===n.auxiliary)&&(r=rk.AUXILIARY),i[r].frameWidth=t.frameWidth,i[r].frameHeight=t.frameHeight,i[r].framesSent=t.framesSent}})),e.localMainAudioTrack){let t=e.localMainAudioTrack.getInternalAudioLevel();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===rk.AUDIO?(e.localMainAudioTrack&&(e.localMainAudioTrack.stat=i[t]),e.localAuxAudioTrack&&(e.localAuxAudioTrack.stat=i[t])):t===rk.VIDEO?e.localMainVideoTrack&&(e.localMainVideoTrack.stat=i[t]):t===rk.AUXILIARY&&e.localAuxVideoTrack&&(e.localAuxVideoTrack.stat=i[t])}))}catch(wb){this._log.warn("failed to getStats on sender connection ".concat(wb))}return 0===i.rtt&&(i.rtt=(null==(t=this.room.networkQuality)?void 0:t.uplinkRTT)||0),i}))}getReceiverStats(e){return ob(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},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0}},s=e.getPeerConnection();if(s)try{let{ssrc:r}=e,{muteState:o,subscribeState:a}=e;(this._spcStats||(yield s.getStats())).forEach((t=>{if("inbound-rtp"===t.type){let i=(t.mediaType||t.kind)===rk.AUDIO;if(i){if(t.ssrc!==r.audio||!o.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);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 i;t.ssrc===r.video&&o.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,i=e.remoteVideoTrack,o.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," HWDecoder: ").concat(t.powerEfficientDecoder)),sO.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&&o.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,i=e.remoteAuxiliaryTrack,n.hasAuxiliary=!0),i&&(i.stat.packetsReceived=t.packetsReceived,i.stat.bytesReceived=t.bytesReceived,i.stat.packetsLost=t.packetsLost,i.stat.framesReceived=t.framesReceived,i.stat.framesDecoded=t.framesDecoded,t.jitterBufferDelay&&(i.stat.jitterBufferDelay=Math.floor(t.jitterBufferDelay/t.jitterBufferEmittedCount*1e3)))}t.jitterBufferDelay&&(i?(n.audio.totalJitter=t.jitterBufferDelay,n.audio.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.video&&o.hasVideo?(n.video.totalJitter=t.jitterBufferDelay,n.video.totalJitterCount=t.jitterBufferEmittedCount):t.ssrc===r.auxiliary&&o.hasAuxiliary&&(n.auxiliary.totalJitter=t.jitterBufferDelay,n.auxiliary.totalJitterCount=t.jitterBufferEmittedCount))}else"candidate-pair"===t.type&&jP(t)&&(this.totalBytesReceived=t.bytesReceived,bD(t.currentRoundTripTime)&&(n.rtt=Math.floor(1e3*t.currentRoundTripTime)));AD(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)),!AD(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),AD(null==(t=e.remoteVideoTrack.player.stat)?void 0:t.fps)||(n.video.fpsRender=e.remoteVideoTrack.player.stat.fps),AD(null==(i=e.remoteAuxiliaryTrack.player.stat)?void 0:i.fps)||(n.auxiliary.fpsRender=e.remoteAuxiliaryTrack.player.stat.fps)}catch(TO){this._log.warn("failed to getStats on receiver connection ".concat(TO))}return 0===n.rtt&&(n.rtt=(null==(r=this.room.networkQuality)?void 0:r.uplinkRTT)||0),n}))}getStats(e,t){return ob(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=UD(),n=yield e.getStats(),s=UD();s-t>2e3&&this._log.warn("getStats cost ".concat(s-t,"ms"));let o=[],a=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source"]);n.forEach((e=>a.has(e.type)&&o.push(e))),this._spcStats=o}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(ix(e))return t;let i=t-e;return i<0?0:i}prepareReport(e){let{stats:t,report:i,freezeMap:r}=e;var n;if(!ix(t.senderStats)){let e={uint32_audio_level:t.senderStats.audio.audioLevel*rP,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*rP),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{statInterval:s}=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(gk)),n=i?i.duration:0,s={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};t.msg_video_status.push(s)}if(e.hasAuxiliary){let i=r.get("".concat(e.userId,"_").concat(Ek)),n=i?i.duration:0,s={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};t.msg_video_status.push(s)}i.msg_down_stream_info.push(t)}));let o=this._prevReport,a=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&&o.msg_up_stream_info.msg_audio_status){let e=o.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/s),i.msg_up_stream_info.msg_network_status.uint32_bitrate+=t.uint32_audio_codec_bitrate}null!=(n=o.msg_device_info)&&n.uint32_audio_capture_cost?i.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(o.msg_device_info.uint32_audio_capture_cost,i.msg_device_info.uint32_audio_capture_cost)/s):delete i.msg_device_info.uint32_audio_capture_cost}let c=o.msg_up_stream_info.msg_video_status;i.msg_up_stream_info.msg_video_status.forEach((e=>{let t=c.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 a=this.getDifferenceValue(r,e.uint32_video_codec_bitrate);e.uint32_video_codec_bitrate=Math.round(8*a/s),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)/s),e.uint32_video_codec_fps=Math.round(this.getDifferenceValue(o,e.uint32_video_codec_fps)/s),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),AD(t.uint32_key_frame_count)||(e.uint32_key_frame_count=Math.round(this.getDifferenceValue(t.uint32_key_frame_count,e.uint32_key_frame_count))),AD(t.uint32_nack_count)||(e.uint32_nack_count=Math.round(this.getDifferenceValue(t.uint32_nack_count,e.uint32_nack_count))),AD(t.uint32_pli_count)||(e.uint32_pli_count=Math.round(this.getDifferenceValue(t.uint32_pli_count,e.uint32_pli_count))),AD(t.uint32_video_arq_packets)||(e.uint32_video_arq_packets=Math.round(this.getDifferenceValue(t.uint32_video_arq_packets,e.uint32_video_arq_packets))),AD(t.uint32_encode_cost)||(e.uint32_encode_cost=Math.round(this.getDifferenceValue(t.uint32_encode_cost,e.uint32_encode_cost)/s)),AD(t.uint32_send_packet_cost)||(e.uint32_send_packet_cost=Math.round(this.getDifferenceValue(t.uint32_send_packet_cost,e.uint32_send_packet_cost)/s))}));let l=o.msg_down_stream_info;i.msg_down_stream_info=i.msg_down_stream_info.filter((e=>l.find((t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid))));let d=i.msg_down_stream_info;return d.forEach((e=>{let t=l.find((t=>t.msg_user_info.uint64_tinyid===e.msg_user_info.uint64_tinyid));if(ix(e.msg_audio_status)||ix(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 a=this.getDifferenceValue(r.uint32_audio_codec_bitrate,i.uint32_audio_codec_bitrate);i.uint32_audio_codec_bitrate=Math.round(8*a/s),i.uint32_audio_total_bitrate=Math.round(8*a/s)}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,a=t.uint32_video_receive_fps,c=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/s);let d=this.getDifferenceValue(a,e.uint32_video_receive_fps);e.uint32_video_receive_fps=Math.round(d/s),e.uint32_video_dec_fps=Math.round(this.getDifferenceValue(c,e.uint32_video_dec_fps)/s);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}))}})),a&&t.receiverStats.forEach((e=>{if(e.audio.concealedSamples&&e.audio.totalSamplesReceived){let t=a.receiverStats.find((t=>t.userId===e.userId));if(t&&t.audio.concealedSamples&&t.audio.totalSamplesReceived){let i=e.audio.concealedSamples-t.audio.concealedSamples,r=e.audio.totalSamplesReceived-t.audio.totalSamplesReceived,n=Math.floor(i/r*1e3*s);if(n>1e3*s/5){let t=d.find((t=>t.msg_user_info.str_identifier===e.userId));t&&(t.msg_audio_status.uint32_audio_block_time=n)}}}})),i}getStatsReport(e){return ob(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},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}}]},s=yield t.getStats(i,r);return"{}"===JSON.stringify(t._prevReport)&&(t._prevReport=JSON.parse(JSON.stringify(e))),t.prepareReport({stats:s,report:e,freezeMap:n}),t._prevReportTime=Date.now(),e}()}))}reset(){this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map}},gG=ib(ab());function EG(e){return new Promise((t=>ob(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(wb){}clearTimeout(i);let s=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,s=r.fetchStart>0?Math.max(Math.round(r.domainLookupStart-r.fetchStart),0):0,o=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=ZC($C({},t),{totalCost:e,local:i,redirect:n,httpCache:s,dns:o,tcp:c,tls:a,request:l,response:d});break}}catch(i){}return t}(n);0===s.totalCost&&(s.totalCost=Date.now()-r),t(s)}))))}var TG=class e extends gG.default{constructor(e){let{signalChannel:t,room:i}=e;super(),nb(this,"_room"),nb(this,"_signalChannel"),nb(this,"_log"),nb(this,"uplinkRTT",0),nb(this,"uplinkLoss",0),nb(this,"downlinkRTT",0),nb(this,"downlinkLoss",0),nb(this,"pingResults",{}),nb(this,"_downlinkPrevStatMap",new Map),nb(this,"_downlinkLossAndRTTMap",new Map),nb(this,"_interval",-1),nb(this,"_uplinkNetworkQuality",0),nb(this,"_downlinkNetworkQuality",0),this._room=i,this._signalChannel=t,this._log=lO.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(SH.UPLINK_NETWORK_STATS,(e=>{this.handleUplinkNetworkQuality(e)})),this._signalChannel.on(_H,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 s=r.expectAudPkg+r.expectVidPkg,o=r.recvAudPkg+r.recvVidPkg,a=s-o;0===s&&0===o||(this.uplinkLoss=a<=0?0:Math.round(a/s*100),this.uplinkRTT=r.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return ob(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)===bk.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:s}=yield this.getStat(e);if(!this._downlinkPrevStatMap.has(e)){this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:s});continue}let o=0,a=this._downlinkPrevStatMap.get(e),c=r-a.totalPacketsLost,l=s-a.totalPacketsReceived;o=c<=0||l<0?0:Math.round(c/(c+l)*100),this._downlinkPrevStatMap.set(e,{totalPacketsLost:r,totalPacketsReceived:s}),this._downlinkLossAndRTTMap.set(e,{rtt:i,loss:o,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 ob(this,null,(function*(){let t={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!QP())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&&bD(e.currentRoundTripTime)&&(t.rtt=Math.round(1e3*e.currentRoundTripTime)),"inbound-rtp"===e.type&&(e.mediaType===rk.AUDIO||e.mediaType===rk.VIDEO)&&(t.totalPacketsLost+=e.packetsLost,t.totalPacketsReceived+=e.packetsReceived)}));return 0===t.rtt&&(t.rtt=this.uplinkRTT),t}catch(yO){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!==bk.DISCONNECTED&&e.connectionState!==bk.FAILED&&e.connectionState!==bk.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=VM.run("ric",(()=>{var t;this.handleDownlinkNetworkQuality();let i=[...this._downlinkLossAndRTTMap.values()];sO.emit(aO.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=ZC($C({},n),{pingResults:this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold?this.pingResults:{}})),this.emit(e.EVENT_NETWORK_QUALITY,n);let s=Date.now();if(r&&(this.uplinkRTT>r.rttThreshold||this.downlinkRTT>r.rttThreshold)&&s-e.lastPingTime>1e3*r.interval){e.lastPingTime=Date.now();let t=r.domain.map((e=>EG(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=s,this.pingResults.data=e,e.forEach((e=>{bP.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&&(VM.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,s=t.get(i);if(s){let e=this._room.remotePublishedUserMap.get(s);null==e||e.setDelay({videoDelay:r,audioDelay:n})}}))}};nb(TG,"EVENT_NETWORK_QUALITY","0"),nb(TG,"lastPingTime",0);var vG=TG;var yG=class{constructor(e){nb(this,"_frameWorkType"),nb(this,"_component"),nb(this,"_language"),nb(this,"connectionType"),nb(this,"_room"),nb(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0}),nb(this,"_keyPrefix"),nb(this,"_log"),nb(this,"_intervalId"),nb(this,"_firstPublishedUserList"),nb(this,"_networkQuality"),nb(this,"_basicInfo"),nb(this,"_pathJoinRoom"),nb(this,"_pathLeaveRoom"),nb(this,"_pathMainVideoMap"),nb(this,"_pathMainAudioMap"),nb(this,"_pathAuxiliaryMap"),nb(this,"_remoteStreamStatMap"),nb(this,"_localStreamStat"),nb(this,"_eventMap",new Map),nb(this,"_captureCostSum",0),nb(this,"_captureCostCount",0),nb(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=lO.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach((e=>{e.startsWith("handle")&&RD(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 s=t.apply(i,r);return PD(s)?s.catch((e=>lO.error("".concat(t.name,"() error observed ").concat(e)))):s}catch(wk){lO.error("".concat(t.name,"() error observed ").concat(wk))}}}({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:kb,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,Xw().then((e=>{this._basicInfo.string_os_version=tO(),this._basicInfo.string_device_name=e&&e.mobile?e.model:this._basicInfo.string_os_version}))}addEvent(e,t){return this._eventMap.set(e,t),sO.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(aO.JOIN_START,this.handleJoinStart).addEvent(aO.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(aO.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(aO.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(aO.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(aO.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(aO.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(aO.JOIN_FAILED,this.handleJoinFailed).addEvent(aO.LEAVE_START,this.handleLeaveStart).addEvent(aO.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(aO.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(aO.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(aO.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(aO.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(aO.PUBLISH_START,this.handlePublishStart).addEvent(aO.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(aO.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(aO.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(aO.PLAY_TRACK_START,this.handlePlayStart).addEvent(aO.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(aO.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:i,type:r}=e;!t.isRemote||!this.hitTest(t.room)||"PLAYING"===i&&(r===rk.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))})).addEvent(aO.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(aO.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(aO.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(aO.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,s=i.hasAuxiliary,o=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!n&&o&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")})).addEvent(aO.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)=>sO.off(t,e))),this._eventMap.clear()}destroy(){this.uninstallEvents(),VM.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&&(AD(e.params.frameWorkType)||(this._frameWorkType=e.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),AD(e.params.component)||(this._component=e.params.component,this._basicInfo.uint32_component=this._component),AD(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:s,request:o,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=s,this._pathJoinRoom.int32_schedule_request=o,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 vb?Number(i.getExtraCode()||i.getCode()):Eb.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())}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:ZC($C({},IG),{msg_user_info:new RG({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:s,tinyId:o,role:a}=i,c=new RG({userId:s,tinyId:o,role:"anchor"===a?20:21}),l=Date.now(),d="".concat(s,"_").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:s,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:s,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,bP.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:s}=e,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o)o.totalRTT+=t,o.totalLoss+=i,n&&(o.totalVideoDelay=(o.totalVideoDelay||0)+n,o.videoDelayCount=(o.videoDelayCount||0)+1),s&&(o.totalAudioDelay=(o.totalAudioDelay||0)+s,o.audioDelayCount=(o.audioDelayCount||0)+1),o.count++;else{let e,o,a,c;n&&(o=n,a=1),s&&(e=s,c=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(r,{totalRTT:t,totalLoss:i,count:1,totalAudioDelay:e,totalVideoDelay:o,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/rP*100)>0&&(this._localStreamStat.totalAudioLevel+=e/rP,this._localStreamStat.audioLevelCount++)}r.forEach((e=>{let{msg_user_info:t,msg_audio_status:i,msg_video_status:r}=e,n=t.str_identifier,s=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"),o=this._remoteStreamStatMap.get(r);if(o&&(t&&null!=s&&s.remoteVideoTrack.isSubscribed||i&&null!=s&&s.remoteAuxiliaryTrack)){o.totalVideoFPS+=e.uint32_video_receive_fps,o.totalVideoBitrate+=e.uint32_video_codec_bitrate,o.videoCount++,0===o.statsToReport.uint32_video_width&&(o.statsToReport.uint32_video_width=e.uint32_video_width),0===o.statsToReport.uint32_video_height&&(o.statsToReport.uint32_video_height=e.uint32_video_height);let i=t?s.remoteVideoTrack:s.remoteAuxiliaryTrack;i.stat.jitterBufferDelay&&(o.videoJitterBufferDelay=i.stat.jitterBufferDelay),i.stat.framesReceived&&(o.statsToReport.uint32_video_consume_render_rate=Math.floor(i.stat.framesDecoded/i.stat.framesReceived*XC(10,6)))}})),!GD(i)){let e="".concat(n,"_main"),t=this._remoteStreamStatMap.get(e);this._remoteStreamStatMap.has(e)&&t&&null!=s&&s.remoteAudioTrack.isSubscribed&&(t.totalAudioBitrate+=i.uint32_audio_codec_bitrate,t.audioCount++,s.remoteAudioTrack.stat.jitterBufferDelay&&(t.audioJitterBufferDelay=s.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(i.uint32_audio_level/rP*100)>0&&(t.totalAudioLevel+=i.uint32_audio_level/rP,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 vb?i.getExtraCode()||i.getCode():Eb.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&ak))>=0}hasAudioFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&dk))>=0}hasAuxFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&lk))>=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:s,totalAudioDelay:o,totalVideoDelay:a}=r;e.statsToReport.uint32_avg_down_loss=Math.floor(t/i),n&&o&&(e.statsToReport.uint32_audio_network_p2p_delay=Math.floor(o/n),e.audioJitterBufferDelay&&(e.statsToReport.uint32_p2p_delay=Math.floor(e.statsToReport.uint32_audio_network_p2p_delay+e.audioJitterBufferDelay))),s&&a&&(e.statsToReport.uint32_video_network_p2p_delay=Math.floor(a/s))}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,rk.AUDIO),e.statsToReport.uint32_video_play_time=n.getDuration(t,rk.VIDEO)),e.statsToReport.uint32_video_render_first&&(e.statsToReport.uint32_video_render_first=Math.min(e.statsToReport.uint32_video_render_first,SG));let{badCaseDetector:s}=this._room,{dataFreeze:o,count:a}=s.getDataFreezeDuration(t),{renderFreeze:c}=s.getRenderFreezeDuration(t);e.statsToReport.uint32_video_block_count=a,e.statsToReport.uint32_video_block_time=Math.min(o,e.statsToReport.uint32_video_play_time),e.statsToReport.uint32_video_external_block_time=Math.min(c,e.statsToReport.uint32_video_play_time),s.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>SG&&(e.statsToReport.uint64_play_first_frame_time=e.statsToReport.uint64_start_enter_time+SG):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>SG&&(e.statsToReport.uint64_render_first_frame_time=e.statsToReport.uint64_start_enter_time+SG):this._pathMainVideoMap.delete(t)})),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>SG&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+SG)}getReportData(){this._basicInfo.uint32_networkType=hD();let e={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new RG({userId:this._room.userId,tinyId:this._room.tinyId,role:"anchor"===this._room.role?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:JD(this._signalInfo.relayIp),uint32_client_ip:JD(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*XC(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:JD(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return rN(e),e}report(){return ob(this,null,(function*(){try{this.prepareReport();let e=this.getReportData();yield this.upload(e),this.initData()}catch(gO){this._log.warn(gO)}finally{this.isDestroyed&&(this._room=null)}}))}upload(e){return ob(this,null,(function*(){if(0===e.msg_path_enter_room.uint64_start_time)return;let t=Number(this._room.sdkAppId),i=yield aN(e),r=i instanceof ArrayBuffer,n="".concat(aD(t,qb.KEY_POINT),"&gzip=").concat(+r),s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(n,i));let o=[this.uploadKVStat(bP),this.uploadKVStat(CP)];s||o.push(oN({url:n,body:i,priority:"low"})),yield Promise.all(o)}))}setConnectionType(e){this.connectionType=e,this._basicInfo.uint32_connection_type=e}uploadKVStat(e){return ob(this,null,(function*(){let t=e.getReportData();if(0===t.stats_count.length&&0===t.stats_distribution.length)return;t.msg_sdk_basic_info=ZC($C({},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=yield aN(t),r="".concat(aD(+this._room.sdkAppId,qb.KV_STAT),"&gzip=").concat(+(i instanceof ArrayBuffer)),n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(r,i)),n||oN({url:r,body:i})}))}};rb([JM({settings:{timeout:500,retries:3}})],yG.prototype,"upload",1);var SG=5e3,IG={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},RG=class{constructor(e){nb(this,"str_identifier"),nb(this,"str_tinyid"),nb(this,"uint32_role"),this.str_identifier=String(e.userId),this.str_tinyid=String(e.tinyId||0),this.uint32_role=e.role}},AG=yG,CG=class{constructor(){nb(this,"_startTime"),nb(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){0===this._startTime&&(this._startTime=UD())}stop(){0===this._endTime&&(this._endTime=UD())}getDuration(){return 0===this._endTime?UD()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},bG=class{constructor(e){nb(this,"_room",null),nb(this,"_durationMap"),nb(this,"_eventMap",new Map),this._room=e.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(aO.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(aO.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(aO.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:i,muteState:r}=e;var n;let{userId:s}=r;if(!this.hitTest(t))return;i.hasAudio&&!r.hasAudio&&this.stopDurationItem("".concat(s,"_main"),rk.AUDIO),i.hasVideo&&!r.hasVideo&&this.stopDurationItem("".concat(s,"_main"),rk.VIDEO),i.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem("".concat(s,"_auxiliary"),rk.VIDEO);let o=null==(n=this._room)?void 0:n.remotePublishedUserMap.get(s);o&&(!i.hasAudio&&r.hasAudio&&o.remoteAudioTrack.isSubscribed&&this.addDuractionItem(s,rk.AUDIO,"main"),!i.hasVideo&&r.hasVideo&&o.remoteVideoTrack.isSubscribed&&this.addDuractionItem(s,rk.VIDEO,"main"),!i.hasAuxiliary&&r.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(s,rk.VIDEO,"auxiliary"))})),this._eventMap.forEach(((e,t)=>sO.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>sO.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 CG,s=this._durationMap.get(r);s?this.isRecording(s[t])||s[t].push(n):this._durationMap.set(r,{userId:e,type:i,audio:t===rk.AUDIO?[n]:[],video:t===rk.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()}},kG=class{constructor(e){nb(this,"_room"),nb(this,"_renderFreezeMap",new Map),nb(this,"_isVideoPlayingEventFiredMap",new Map),nb(this,"_dataFreezeMap",new Map),nb(this,"_monitorFreezeData",new Map),nb(this,"_eventMap",new Map),this._room=e.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(aO.LEAVE_SUCCESS,(e=>{let{room:t}=e;this.hitTest(t)&&this.stop()})).set(aO.PLAY_TRACK_START,this.onPlayTrackStart).set(aO.UNSUBSCRIBE_SUCCESS,(e=>{let{room:t,streamType:i,remotePublishedUser:r}=e;if(!this.hitTest(t))return;let{userId:n}=r,s="".concat(n,"_").concat(i);this.stopDataFreeze({key:s,userId:n,type:i})})).set(aO.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(aO.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:i,reason:r,type:n}=e;if(t.isRemote&&t.room&&this.hitTest(t.room)&&n===rk.VIDEO){if("PLAYING"===i){let e="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.set(e,!0)}r===rk.MUTE?this.onVideoTrackMuted(t):r===rk.UNMUTE&&this.onVideoTrackUnmuted(t)}})).set(aO.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach(((e,t)=>sO.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>sO.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),s=new CG;n?n.durationItemList.push(s):this._dataFreezeMap.set(r,{userId:t,type:i,durationItemList:[s],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 s=n.durationItemList[n.durationItemList.length-1];s.stop();let o=s.getDuration();o>Hk?this._monitorFreezeData.set(t,{userId:i,type:r,duration:o}):n.durationItemList.pop()}getTotalDuration(e){return e.reduce(((e,t)=>{let i=t.getDuration();return e+Math.min(i,5e3)}),0)}handleRenderFreeze(e){return ob(this,arguments,(function(e){var t=this;let{userId:i,fps:r,type:n}=e;return function*(){let e="".concat(i,"_").concat(n),s=t._renderFreezeMap.get(e);if(r<=2){let r=UD();s&&!s.isFreeze&&(s.freezeTimeline.push({startTime:r,endTime:0}),s.isFreeze=!0),s||t._renderFreezeMap.set(e,{userId:i,type:n,isFreeze:!0,freezeTimeline:[{startTime:r,endTime:0}],renderFreezeTotal:0})}else if(s&&s.isFreeze){s.isFreeze=!1;let e=s.freezeTimeline.pop();if(e){e.endTime=UD();let t=e.endTime-e.startTime;s.freezeTimeline.push(e),s.renderFreezeTotal+=Math.min(5e3,t)}}}()}))}onPlayTrackStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room)||t.kind!==rk.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()<Hk&&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=UD()-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()}},DG=ib(ab(),1),NG=[1,0,0,0,1,1,0,1],wG=class extends tF{constructor(e,t){if(super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:t}),e instanceof mF)try{this.setTexBuffer(NG)}catch(wk){e.destroy(new vb({code:Eb.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(wk.message||wk)}))}}draw2d(e,t,i,r,n){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let s=super.draw2d(e,t,i,r,n);return this.ctx2d.restore(),s}return!1}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}},OG=class{constructor(e,t){this.node=e,this.layout=t,nb(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}},PG=class extends tF{constructor(e,t){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:t}),nb(this,"inputs",[])}addInput(e,t){if(this.inputs[t.zIndex])throw new Error("input already exists");let i=new OG(e,t);this.inputs[t.zIndex]=i}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 mF&&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.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex((t=>(null==t?void 0:t.node)===e))]=void 0}render(e){let t=this.context.ctx;if(t.clearColor(0,0,0,0),!this.inputs.reduce(((t,i)=>(!i||!i.node.requestFrame(e))&&t),!0)&&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.reduce(((t,i)=>(!i||!i.node.requestFrame(e))&&t),!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];t&&this.draw2d(t.node.image,t.x,t.y,t.width,t.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:t,y:i,width:r,height:n,name:s}=this,o=Date.now(),a=(e-this.lastInfo.totalFrames)/((o-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:e,x:t,y:i,width:r,height:n,timestamp:o,fps:a,name:s},$C({parent:this.inputs.filter((e=>e)).map((e=>e.node.getInfo()))},this.lastInfo)}close(){super.close(),this.inputs.forEach((e=>{var t,i;if(e&&(null==(t=e.node)||t.disconnect(),e.positionBuffer&&this.context instanceof mF))try{null==(i=this.context.ctx)||i.deleteBuffer(e.positionBuffer)}catch(yO){}}))}},MG=class extends dF{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log}),nb(this,"_bgTexture"),nb(this,"_waterMarkTexture"),nb(this,"_lastMaskTexture"),nb(this,"_lastMaskFbo"),nb(this,"_textureValid",!1),nb(this,"_selfieTextureValid",!1),nb(this,"_selfieSegmentation"),nb(this,"wasm"),nb(this,"_prePrograme"),nb(this,"_segmentationMask"),nb(this,"_weixin",!1),t.selfieSegmentation&&(this._selfieSegmentation=t.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(t)}catch(EO){e.log.error(EO),e.destroy(new vb({code:Eb.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(EO.message||EO)}))}}init(e){let t=e.Wasm,i=this.context.ctx;if(this.wasm=new t.AllIn1(i),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode="blur"===e.bg?1:e.bg instanceof HTMLImageElement?2:"green"===e.bg?3:0,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)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),i.uniform1i(i.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(i.uniform1i(i.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(i.uniform1i(i.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),i.uniform1i(i.getUniformLocation(this.program,"lastMask"),4),this._weixin){let e=this.context.createShader(i.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(i.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),i.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),i.uniform1i(i.getUniformLocation(this._prePrograme,"mask"),1)}}onPredict(e){var t;let i=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():null==this||this._selfieSegmentation.bindTexture(),i.activeTexture(i.TEXTURE1),null==(t=this._selfieSegmentation)||t.bindTexture2d(e),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,this._bgTexture||null),i.activeTexture(i.TEXTURE3),i.bindTexture(i.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),i.drawArrays(i.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var t,i,r,n;let s=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback(o);let{videoWidth:a,videoHeight:c}=o;if(0===a||0===c)return!1;o.width=a,o.height=c;let l=!1;if(this.totalFrames)this._weixin?this.useTexture():null==(t=this._selfieSegmentation)||t.bindTexture(),l=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),l=this._textureValid,this._textureValid=!0}return this.width===a&&this.height===c&&l?s.texSubImage2D(s.TEXTURE_2D,0,0,0,s.RGBA,s.UNSIGNED_BYTE,o):(this.resize(a,c),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,o)),this._weixin&&(s.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(s.activeTexture(s.TEXTURE1),null==(i=this._selfieSegmentation)||i.bindTexture2d(this._segmentationMask),s.bindFramebuffer(s.FRAMEBUFFER,this._lastMaskFbo||null)),s.drawArrays(s.TRIANGLE_STRIP,0,4),null==(r=this._selfieSegmentation)||r.bindTexture(),this._segmentationMask?s.copyTexSubImage2D(s.TEXTURE_2D,0,0,0,0,0,a,c):s.copyTexImage2D(s.TEXTURE_2D,0,s.RGBA,0,0,a,c,0)),null==(n=this._selfieSegmentation)||n.send(a,c),this.totalFrames||(s.activeTexture(s.TEXTURE2),s.bindTexture(s.TEXTURE_2D,this._bgTexture||null),s.activeTexture(s.TEXTURE3),s.bindTexture(s.TEXTURE_2D,this._waterMarkTexture||null),s.drawArrays(s.TRIANGLE_STRIP,0,4)),!1}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()}},LG=class extends tF{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 }"}),nb(this,"yTextureRef"),nb(this,"uTextureRef"),nb(this,"vTextureRef"),nb(this,"Y"),nb(this,"U"),nb(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)}},xG=[e=>{e.codec="avc1.420028"},e=>{delete e.hardwareAcceleration}],VG=(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 UG=0,FG=class{constructor(e){nb(this,"id",UG++),nb(this,"trackDoneOB"),nb(this,"startOB"),nb(this,"stopOB"),nb(this,"decoder"),nb(this,"videoContext"),nb(this,"gop",0),nb(this,"gop_helper",0),nb(this,"waitFirstKeyFrame",!0),nb(this,"startTimestamp",0),nb(this,"startTime",0),nb(this,"startPerformanceTime",0),nb(this,"inputFrameCount",0),nb(this,"decodedFrameCount",0),nb(this,"decodeFrameCount",0),nb(this,"downgradeLevel",0),nb(this,"lastDowngradeTime",0),nb(this,"lastFrameDiff",0),nb(this,"lastDecodeFrameTimestamp",0),nb(this,"config"),nb(this,"gop_before_configure",[]),nb(this,"videoElement"),nb(this,"type","wasm"),nb(this,"goodType"),nb(this,"renderer","2d"),nb(this,"wasmOption"),nb(this,"createDecoder"),nb(this,"_decodeSink"),nb(this,"isReported",!1),nb(this,"track"),nb(this,"stateChangeOB"),nb(this,"failedReason");let{track:t,createDecoder:i}=e;if(this.stateChangeOB=_V(),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=AV(t.availableState,wM.OFF),this.stopOB=_V(this.trackDoneOB),"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),zx(this.stateChangeOB,_U(((e,i)=>(e!==i&&t.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:e,state:i}),i)),"INITIALIZED"),qV(this.stopOB),KU()),this.start()}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let t=zx(this.pipe(this.track),qV(this.stopOB),iV());zx(t,KU((()=>{this.track.stat.framesDecoded++}),(t=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(t," retryCount: ").concat(e)),bP.addFailedEvent({key:VG(this.type,this.renderer),error:t}),e>4)this.failedReason=t,this.stateChangeOB.next("FAILED");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")),bP.addSuccessEvent({key:VG(this.type,this.renderer)}),bP.addSuccessEvent({key:514704})}))),zx(t,KV(1),KU((()=>{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&&!xP()&&(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!==(s=n)[0]||0!==s[1]||0!==s[2]||1!==s[3]||n.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(n.subarray(0,5))),e;var s;let o=!1;switch(31&n[4]){case 5:case 7:o=!0}if("configured"!==(null==(i=this.decoder)?void 0:i.state))return this.track.log.debug("not configured ".concat(this.inputFrameCount)),o&&(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(o?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!o)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount));this.waitFirstKeyFrame=!1,this.startTimestamp=a,this.startTime=Date.now(),this.startPerformanceTime=UD()}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=>ob(this,null,(function*(){this._decodeSink=t;let i,r=e.mediaTrack;t.defer((()=>{var t;e.player.setCanvas(),e.setInputMediaStreamTrack(r),null==i||i.close(),null==(t=this.videoContext)||t.destroy(),delete this._decodeSink}));let{renderer:n,type:s}=this;e.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(s){case"wasm":i=this.createDecoder(s,this.wasmOption);break;case"webCodecs":for(let e=0;e<=xG.length;e++){let{supported:i}=yield VideoDecoder.isConfigSupported(this.config);if(i)break;if(e===xG.length)return void t.error(3);xG[e](this.config)}i=this.createDecoder(s);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"===s?4:8)})),yield i.initialize(this.videoElement),!this._decodeSink)return;if(i.configure(this.config),"wasm"===s&&"webgl"===n){this.videoContext=new mF({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create(),this.videoContext.on(mF.UNAVAILABLE,(i=>{e.log.error(i),t.error(7)}));let r=new LG(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 _F({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create({alpha:!1});let t=this.videoContext.createVideoImageSource();i.on("videoFrame",(e=>{t.image=e,t.update()}));let r=new nF(this.videoContext,{name:"remotePlayer",logger:e.log});t.connect(r),e.source=t,e.player.setCanvas(this.videoContext._canvas,2)}this.decoder=i}catch(TO){e.log.error(TO),t.error("webCodecs"===s?2:6)}}))}},BG=class extends DG.EventEmitter{constructor(e){super(),this.room=e,nb(this,"videoContext"),nb(this,"_glVideoContext"),nb(this,"_2dVideoContext"),nb(this,"destination"),nb(this,"smallVideoContext"),nb(this,"smallDestination"),nb(this,"smallTrackSource"),nb(this,"smallImageSource"),nb(this,"_isMirror",!1),nb(this,"cameraTrack"),nb(this,"cameraNode"),nb(this,"mirrorNode"),nb(this,"mixNode"),nb(this,"screenTrack"),nb(this,"screenNode"),nb(this,"selfModel",!1),nb(this,"blurRadius",3),nb(this,"arTrack"),nb(this,"Wasm"),nb(this,"waterMarkNode"),nb(this,"_waterMarkOption"),nb(this,"watermarkImageList",[]),nb(this,"_beautyParams"),nb(this,"isUsingArTrack",!1),nb(this,"_isMixScreen",!1),nb(this,"_virtualBackground"),nb(this,"_virtualBackgroundAbortCallback"),nb(this,"virtualBackgroundInstance"),nb(this,"_bgAssetPath"),nb(this,"log",lO.createLogger({id:"vm"})),nb(this,"_checkId",0),nb(this,"_use2d",!1),nb(this,"_autoSwitchRenderMode",!0),nb(this,"_selfieSegmentation"),nb(this,"encodePipeline",[]),nb(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new _F({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}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())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new _F({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 mF({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(mF.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(Nb){this.emit("error",Nb)}}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=VM.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(),VM.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Lw||this._isMixScreen||this._isMirror||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?bP.addFailedEvent({key:t,error:e}):bP.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 mF({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}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}setSmallVideo(e,t){if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new aF(this.smallVideoContext,e,this.log),this.smallVideoContext.on(mF.UNAVAILABLE,(e=>{this.log.warn("small video context lost",e)}))}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.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),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;this.setSmallVideo(r,e),Lw&&n.setCanvas(e);let s=e&&(null==(t=this.destination)?void 0:t.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),s=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info("set main output ".concat(s?s.label:"no output track")),i.setOutputMediaStreamTrack(s)}catch(EO){this.log.error("set main output failed",EO)}}update(){return ob(this,null,(function*(){var e,t;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)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===Fw?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof dF?(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 dF?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)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new oF(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new MG(this.videoContext,{input:this.cameraTrack.mediaTrack,width:i.width,height:i.height,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=r.frameRate,this._use2d){let i=this.cameraNode;i.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new wG(this.videoContext,this.log)),i=i.connect(this.mirrorNode),i.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new PG(this.videoContext,this.log),i.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),null==(e=this.waterMarkNode)||e.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),null==(t=this.screenNode)||t.connect(this.mixNode,{zIndex:0}),i=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))),i.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext._canvas)}))}changeInput(e){var t,i,r,n;if(e instanceof wx)return this.log.info("change screen input",null==(t=e.mediaTrack)?void 0:t.label),this.setScreenTrack(e);if(e instanceof kx)return this.log.info("change video input",null==(i=e.mediaTrack)?void 0:i.label),this.setCameraTrack(e);if(e instanceof fF){this.log.info("change remote input",null==(r=e.mediaTrack)?void 0:r.label);let t=e.mediaTrack;return e.setOutputMediaStreamTrack(t)}this.log.warn("change unknown input",null==(n=e.mediaTrack)?void 0:n.label)}removeInput(e){var t;e instanceof wx?(null==(t=this.screenNode)||t.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof kx?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof fF&&e.source&&e.source.context.destroy()}setCameraTrack(e){return ob(this,null,(function*(){this.cameraTrack=e,this.update()}))}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,t){return ob(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 vb({code:Eb.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:s,height:o}=e;r.drawImage(t,i,n,s,o)})),tN(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 ob(this,null,(function*(){this._beautyParams=e,this.update()}))}stopBeauty(){return ob(this,null,(function*(){this._beautyParams=void 0,this.update()}))}setWatermark(e){return ob(this,null,(function*(){var t,i;let r;try{r=yield tN((null==e?void 0:e.imageElement)||e.imageUrl)}catch(d){throw new vb({code:Eb.INVALID_PARAMETER,message:"load image failed, url: ".concat(e.imageUrl)})}let{x:n=0,y:s=0,width:o=r.width,height:a=r.height,type:c="watermark",zIndex:l=2}=e;this.watermarkImageList.some((e=>e.type===c))?(this.watermarkImageList=this.watermarkImageList.filter((e=>e.type!==c)),this.pushWaterMarkImageList({x:n,y:s,width:o,height:a,image:r,zIndex:l,type:c,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage(null==(t=this.cameraTrack)?void 0:t.settings.width,null==(i=this.cameraTrack)?void 0:i.settings.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:n,y:s,width:o,height:a,image:r,zIndex:l,type:c,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 ob(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 ob(this,null,(function*(){var e,t,i;null==(e=this.waterMarkNode)||e.close(),delete this.waterMarkNode,delete this._waterMarkOption;let r=yield this.getWatermarkImage(null==(t=this.cameraTrack)?void 0:t.settings.width,null==(i=this.cameraTrack)?void 0:i.settings.height);this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.update()}))}setVirtualBackground(e){return ob(this,null,(function*(){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 tN(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}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 vb({code:Eb.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._isMirror||(null==(t=this.mirrorNode)||t.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return ob(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 FG(e)}clear(){var e;null==(e=this.videoContext)||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,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}};rb([dx((function(e){this.log.error("update failed",e)}))],BG.prototype,"update",1);var HG=0,GG=class extends wM{constructor(e){super("room"),nb(this,"seq",++HG),nb(this,"sdkAppId"),nb(this,"userId"),nb(this,"userSig"),nb(this,"privateMapKey"),nb(this,"latencyLevel"),nb(this,"tinyId"),nb(this,"scene"),nb(this,"roomId"),nb(this,"useStringRoomId"),nb(this,"role","anchor"),nb(this,"joinParams",null),nb(this,"localTracks",new Set),nb(this,"enableAutoPlayDialog",!0),nb(this,"autoReceiveAudio",!0),nb(this,"autoReceiveVideo",!0),nb(this,"proxy_ws"),nb(this,"proxy_wt"),nb(this,"proxy_unified"),nb(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}}),nb(this,"keyPointManager"),nb(this,"audioManager"),nb(this,"videoManager"),nb(this,"callDurationCalculator"),nb(this,"badCaseDetector"),nb(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),nb(this,"videoDecodeFallbackType"),nb(this,"_isUsingCachedSchedule",!1),nb(this,"_log",lO.createLogger({id:"r".concat(this.seq)})),nb(this,"_joinedTimestamp",0),nb(this,"_sdkType"),nb(this,"heartbeatReport"),nb(this,"quality"),nb(this,"enableSEI"),nb(this,"isDestroyed",!1),this.useStringRoomId=!!e.useStringRoomId,kD(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),kD(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),kD(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new AG({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new bG({room:this}),this.badCaseDetector=new kG({room:this}),this.audioManager=new Lx(this),this.videoManager=new BG(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 ob(this,null,(function*(){return this.publish(e)}))}removeTrack(e){return ob(this,null,(function*(){return this.unpublish(e)}))}replaceTrack(e){return ob(this,null,(function*(){}))}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(CD(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(vD(e)){let{websocketProxy:t,webtransportProxy:i,loggerProxy:r,scheduleProxy:n,unifiedProxy:s}=e;this.proxy_ws=t,this.proxy_wt=i,this.proxy_unified=s,s?(lB([s,s]),xb("https://".concat(s))):(r&&xb(r),n&&lB(n))}sO.once(aO.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({sched_domain:cB.main,sched_back_domain:cB.backup,signal_domain:this.proxy_ws||this.proxy_wt||""})))}getRemoteAudioStats(){return ob(this,null,(function*(){let e={};return this.remotePublishedUserMap.forEach((t=>{e[t.userId]=t.remoteAudioTrack.stat})),e}))}getTransportStats(){return ob(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 ob(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 vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(mP.INVALID_DESTROY),new vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.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,sO.emit(aO.ROOM_DESTROY,{room:this})}schedule(e,t){return ob(this,null,(function*(){var i,r,n;let s=UD();try{let{isCached:o,result:a,detailCost:c}=yield aB({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:kb,userSig:this.userSig,role:"live"===this.scene?e.role:void 0,frameWorkType:t,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=o,this._log.info("schedule cache:".concat(+o," ").concat(QD(a,{keysToExclude:["username","credential"]}))),o&&sO.once(aO.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({scheduleCache:1}))),this.scheduleResult=$C($C({},this.scheduleResult),a),bD(null==(i=a.config)?void 0:i.retryCount)&&Dk(a.config.retryCount),CD(null==(r=a.config)?void 0:r.loggerDomain)&&xb(a.config.loggerDomain),this.videoDecodeFallbackType=(null==(n=a.config)?void 0:n.videoDecodeFallback)||this.videoDecodeFallbackType,sO.emit(aO.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:c}),bP.addSuccessEvent({key:521700,cost:UD()-s,split:50})}catch(o){throw bP.addFailedEvent({key:521700,error:o}),o}}))}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}},WG=ib(ab()),jG=ib(_b());function JG(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 KG=(e,t)=>ob(void 0,null,(function*(){var i;let r=cG(e),n={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:!1};n.ice.ufrag=String(r.media[0].iceUfrag),n.ice.password=r.media[0].icePwd||"",r.fingerprint&&(n.dtls.hash=r.fingerprint.type,n.dtls.fingerprint=r.fingerprint.hash,n.dtls.setup=r.setup||""),r.media[0].fingerprint&&(n.dtls.hash=r.media[0].fingerprint.type,n.dtls.fingerprint=r.media[0].fingerprint.hash),n.dtls.setup=r.media[0].setup||"";let s=r.media[0],o=r.media[1];s.ext&&(n.audio.extensions=s.ext.map((e=>({id:e.value,uri:e.uri})))),o.ext&&(n.video.extensions=o.ext.map((e=>({id:e.value,uri:e.uri}))));let a={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==(i=s.rtcpFb)||i.forEach((e=>{let{payload:t,type:i,subtype:r}=e;if(t===a.payload){let e={id:i,params:[]};r&&e.params.push(r),a.rtcpfb.push(e)}})),n.audio.codecs.push(a);let c=["h264","vp8"];return t&&c.shift(),n.video.codecs=[...JG(o)].filter((e=>c.includes(e.codec.toLocaleLowerCase()))),n.video.decoders=(yield function(){return ob(this,null,(function*(){let e=new RTCPeerConnection;e.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_RECVONLY});let t=yield e.createOffer();if(!t.sdp)return[];let i=JG(cG(t.sdp).media[0]);return e.close(),i}))}()).filter((e=>["h264","vp8"].includes(e.codec.toLocaleLowerCase()))),n})),qG=e=>{let{serverAbility:t,clientAbility:i,offerSDP:r,enableCustomMessage:n}=e,s=cG(r),o={extmapAllowMixed:"extmap-allow-mixed",groups:s.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:rk.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:s.media[0].port,protocol:s.media[0].protocol,type:rk.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 o.media.push(a),[1,2,3].forEach((e=>{o.media.push(zG({mid:e,serverAbility:t,clientAbility:i,parsedOffer:s}))})),n&&o.media.push(s.media.find((e=>"dc"===e.mid))),lG(o)},zG=e=>{let{mid:t,serverAbility:i,clientAbility:r,parsedOffer:n,isDownlink:s=!1}=e,o={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:rk.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:rk.VIDEO,setup:i.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(s){let e=i.video.decoders;(!e||0===e.length)&&(e=i.video.codecs),(!e||0===e.length)&&(e=r.video.decoders),e.forEach((e=>{YG(o,e)}))}else{let e=i.video.codecs.findIndex((e=>e.codec.toLowerCase()===(i.useVp8?"vp8":"h264"))),t=i.video.codecs[e]||r.video.codecs[0];YG(o,t)}return o},YG=(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 XG=(e,t,i)=>{let r=jG.default.parse(e);return r.media.forEach(((e,n)=>{var s;if((e.type===rk.AUDIO||e.type===rk.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===rk.VIDEO&&e.fmtp&&e.fmtp.forEach((e=>{e.config.includes("apt")||(e.config+=";sps-pps-idr-in-keyframe=1")}))}(e),function(e){e.type===rk.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===rk.VIDEO))if(n<4)e.payloads="",e.fmtp=[],e.rtp=[],e.rtcpFb=[],t.video.codecs.forEach((t=>YG(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=>YG(e,t)))}null!=(s=e.payloads)&&s.includes("datachannel")&&r.groups&&e.mid&&(r.groups[0].mids=r.groups[0].mids.replace(e.mid,"dc"),e.mid="dc")})),jG.default.write(r)},QG=ib(ab()),$G=class extends QG.EventEmitter{constructor(e){super(),this.room=e,nb(this,"mainFpsHealth",1),nb(this,"mainBitrateHealth",1),nb(this,"badMainBitrateHealthCount",0),nb(this,"lastEmitBadHealthTime",0),nb(this,"log"),!bN&&Dw&&sO.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(){sO.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};nb($G,"EVENT_BAD_HEALTH","bad_health");var ZG=$G;function eW(e){let{seiMessageList:t,isAudio:i,isMain:r}=e;return new TransformStream({transform(e,n){let s=e;i?audioEncodePipeline.forEach((e=>{s=e({frame:s})})):videoEncodePipeline.forEach((e=>{s=e({frame:s,seiMessageList:t,onDump:()=>{self.postMessage({type:"dump",isAudio:i,data:s.data,userId:"",streamType:r?"main":"auxiliary"})}})})),n.enqueue(s)}})}function tW(e,t,i){return new TransformStream({transform(r,n){let s=r;videoDecodePipeline.forEach((r=>{s=r({frame:s,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:s.data,userId:e,streamType:t})}})})),n.enqueue(s)}})}var iW=(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))(iW||{}),rW=0,nW=!1,sW=new Set,oW=1,aW=class extends WG.default{constructor(e){let{signalChannel:t,room:i,enableCustomMessage:r}=e;super(),nb(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),nb(this,"currentState","DISCONNECTED"),nb(this,"_room"),nb(this,"_signalChannel"),nb(this,"_peerConnection",null),nb(this,"_datachannel",null),nb(this,"_enableCustomMessage"),nb(this,"_log"),nb(this,"_downlinkMIDMap",new Map),nb(this,"_downlinkMIDUserIDMap",new Map),nb(this,"_reconnectionTimer",-1),nb(this,"reconnectionCount",0),nb(this,"clientAbility"),nb(this,"_serverAbility",null),nb(this,"addDownlinkQueue",new Set),nb(this,"removeDownlinkQueue",new Set),nb(this,"_parsedAnswer",null),nb(this,"_updateSDPPromise",null),nb(this,"_waitForPCConnectedPromise"),nb(this,"clearConnectTimeout"),nb(this,"_isSDPLogged",!1),nb(this,"enableInsertableStreams",!1),nb(this,"insertableStreamsAbortMap",new Map),nb(this,"receiverRemoteTrackMap",new WeakMap),nb(this,"scriptTransformWorker"),nb(this,"_isRelayTried",!1),nb(this,"_rttOverCount",0),nb(this,"originOffer",null),this._room=i,this._enableCustomMessage=r,this._signalChannel=t,this._log=lO.createLogger({id:"spc".concat(oW++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(lM?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 videoCodec(){var e,t;let i=null==(e=this._parsedAnswer)?void 0:e.media[1].rtp.find((e=>["h264","vp8"].includes(e.codec.toLowerCase())));return i?i.codec.toLowerCase():null!=(t=this._serverAbility)&&t.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var e;return null!=(e=this._serverAbility)&&e.video.decoders.find((e=>"h264"===e.codec.toLowerCase()))?"h264":"vp8"}get isUsingH264(){return"h264"===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=cG(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&&!AD(e.ssrcs[0].id)){let n=Number(e.ssrcs[0].id),s=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=s;break;case 2:i.smallVideoSsrc=n,i.smallVideoRtxSsrc=s;break;case 3:i.auxVideoSsrc=n,i.auxVideoRtxSsrc=s}}})),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(){dM&&(this.scriptTransformWorker=function(e){let t=[Ax],i=[HB,FB,BB,UB,eW,tW],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,s=n.isReceiver?tW(n.userId,n.streamType,n.isAudio):eW({isAudio:n.isAudio,seiMessageList:n.isMain?n.small?i:e:t,isMain:n.isMain});r.transformer.readable.pipeThrough(s).pipeTo(r.transformer.writable)}}),")();").concat(r,"})()"),s=new Blob([n],{type:"text/javascript"}),o=URL.createObjectURL(s),a=new Worker(o);return URL.revokeObjectURL(o),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){let t={encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:e,iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};return this._log.debug("getPeerConnectionConfig",JSON.stringify(t)),t}initialize(e){return ob(this,null,(function*(){var t;let i;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(),bP.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):"failed"===e&&bP.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 lW(e.data);this.emit("data_channel_msg",{data:t})},this._datachannel.onerror=e=>{this._log.warn("datachannel error",e)}),this._peerConnection.addTransceiver(rk.AUDIO,{direction:rk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_SENDONLY}),i=yield this._peerConnection.createOffer(),this.clientAbility=yield KG(i.sdp,(null==(t=this._room.scheduleResult.config)?void 0:t.remove264FromSDP)||!1),this.originOffer=i,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()))}),bP.addSuccessEvent({key:521707}),this.clientAbility}catch(yO){throw bP.addFailedEvent({key:521707,error:yO}),this._log.error("initialize failed ".concat(yO," \noffer: ").concat(null==i?void 0:i.sdp)),yO}}))}setIceServers(e){return ob(this,null,(function*(){var t;if(this._peerConnection){if(this._log.info("setIceServers",JSON.stringify(e)),this._peerConnection.setConfiguration(this.getPeerConnectionConfig(e)),null!=(t=this._peerConnection)&&t.localDescription||!this.originOffer)return void this._log.warn("setIceServers warning, already has localDescription or no origin Offer");yield this.setOffer(this.originOffer)}}))}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(wk){this._log.warn("setPriority error ",wk)}}connect(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return ob(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 s=UD(),o={type:"answer",sdp:qG({serverAbility:e,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableCustomMessage})};this._serverAbility=e,yield this.setAnswer(o),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||bP.addSuccessEvent({key:521703,cost:UD()-s})}catch(TO){let i=TO instanceof vb&&TO.code===Eb.API_CALL_ABORTED;throw i||this._log.error("connect failed: ".concat(TO),e),this.reset(),!i&&!this.isReconnecting&&(bP.addFailedEvent({key:521703,error:TO}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),TO}}))}reconnect(){return ob(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(fH,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=$C({ability:t},e),r=yield this._signalChannel.sendWaitForResponse({command:KH,responseCommand:SH.REBUILD_PEER_CONNECTION_RES,data:i,enableLog:!1});if(0!==r.data.code)throw new vb({code:r.data.code,message:r.data.message});yield this.connect(r.data.data.ability,!0),bP.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),sO.emit(aO.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(Nb){if(!this.isReconnecting)return;if(null!=Nb&&Nb.message.includes("timeout")){let e=SD(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield nN(e,(e=>{this._reconnectionTimer=e})),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(null==Nb?void 0:Nb.code," ").concat(Nb)),bP.addFailedEvent({key:521704,error:Nb}),this.reconnectionCount>=Nk()&&this._log.warn("SDK has tried reconnect for ".concat(Nk()," 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 ob(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(fH,this.reconnect,this),"RECONNECTING"===this.currentState&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var e;!this.isReconnecting&&(null==(e=this._peerConnection)?void 0:e.connectionState)===bk.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===bk.CONNECTING&&(0===this.stat.peerConnectionStartTime&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(e.target.connectionState===bk.FAILED||e.target.connectionState===bk.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(e.target.connectionState===bk.CONNECTED||e.target.connectionState===bk.COMPLETED)&&(0===this.stat.peerConnectionEndTime&&(this.stat.peerConnectionEndTime=Date.now()),sO.emit(aO.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 Ck;let e=null;return $P()&&0!==this._peerConnection.getSenders().length?(e=this._peerConnection.getSenders()[0].transport,QP()&&0!==this._peerConnection.getReceivers().length&&e?e.state:Ck):Ck}emitConnectionStateChangedEvent(e){e!==this.currentState&&("RECONNECTING"===this.currentState&&"CONNECTING"===e||(this.emit(iW.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:e}),this.currentState=e))}logSelectedCandidate(){return ob(this,null,(function*(){if(!this._peerConnection)return;let e=yield this._peerConnection.getStats();for(let[t,i]of e)if(jP(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&&uD(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(s),n(),e())},r=e=>{let{room:i}=e;i===this._room&&(clearTimeout(s),n(),t(new vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.CONNECTION_ABORTED,data:"leave room"})})))},n=()=>{sO.off(aO.LEAVE_SUCCESS,r,this),this.off(iW.CONNECTION_STATE_CHANGED,i,this)},s=setTimeout((()=>{n();let e=new vb({code:Eb.API_CALL_TIMEOUT,message:"connection timeout"});var i;rW+=1,i=this._signalChannel.isConnected,rW>2&&!nW&&0===sW.size&&i&&(this._log.warn("firewall restriction"),nW=!0,this.emit(iW.FIREWALL_RESTRICTION)),t(e)}),Jk);this.clearConnectTimeout=()=>{n(),clearTimeout(s),delete this.clearConnectTimeout},sO.on(aO.LEAVE_SUCCESS,r,this),this.on(iW.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 ob(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(wk){this._log.error("addDownlink(".concat(e.userId,") failed ").concat(wk)),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=rk.TRANSCEIVER_DIRECTION_RECVONLY,Number(e.mid))));this._parsedAnswer||(this._parsedAnswer=cG(this._peerConnection.remoteDescription.sdp));let s,o,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)s=c[0],o=c[1],a=c[2];else if(3===n.length)s=this._parsedAnswer.media.find((e=>Number(e.mid)===Number(n[0]))),o=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(rk.AUDIO,{direction:rk.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(rk.VIDEO,{direction:rk.TRANSCEIVER_DIRECTION_RECVONLY}),s=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let e=zG({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:cG(this._peerConnection.localDescription.sdp),isDownlink:!0});o=JSON.parse(JSON.stringify(e)),a=JSON.parse(JSON.stringify(e)),s.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(s),o.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(o),a.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(a)}s.direction=rk.TRANSCEIVER_DIRECTION_SENDONLY;let l="".concat(r,"-").concat(t.audio);s.ssrcs=[{id:t.audio,attribute:"cname",value:"".concat(l)},{id:t.audio,attribute:"msid",value:"".concat(l,"-").concat(rk.MAIN," ").concat(l,"-audio")}],o.direction=rk.TRANSCEIVER_DIRECTION_SENDONLY,o.ssrcs=[{id:t.video,attribute:"cname",value:"".concat(l)},{id:t.video,attribute:"msid",value:"".concat(l,"-").concat(rk.MAIN," ").concat(l,"-bigvideo")},{id:t.videoRtx,attribute:"cname",value:"".concat(l)},{id:t.videoRtx,attribute:"msid",value:"".concat(l,"-").concat(rk.MAIN," ").concat(l,"-bigvideo")}],o.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(t.video," ").concat(t.videoRtx)}],a.direction=rk.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(rk.VIDEO)},{id:t.auxiliaryRtx,attribute:"cname",value:"".concat(d," ").concat(l,"-aux").concat(rk.VIDEO)},{id:t.auxiliaryRtx,attribute:"msid",value:"".concat(d," ").concat(l,"-aux").concat(rk.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,[s.mid,o.mid,a.mid]),this._downlinkMIDUserIDMap.set(s.mid,i),this._downlinkMIDUserIDMap.set(o.mid,i),this._downlinkMIDUserIDMap.set(a.mid,i)}removeDownlink(e){return ob(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=cG(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 ob(this,null,(function*(){if(!this._peerConnection)return;let{audio:t,bigVideo:i,smallVideo:r,auxVideo:n}=e;try{if(sM()){let e=this._peerConnection.getSenders().slice(0,4);for(let o=0;o<e.length;o++){let s,a=e[o];0===o&&t?s=t:1===o&&i?s=i:2===o&&r?s=r:3===o&&n&&(s=n),s&&(yield this.setSenderMaxBitrate(a,s))}let s=!1;i&&e[1].track&&(s=this.setStartBitrate(1,i)),n&&e[3].track&&(s=this.setStartBitrate(3,n)||s),s&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(e);this._log.info("setBandwidth ".concat(JSON.stringify(e)))}catch(TO){this._log.error("failed to set bandwidth: ".concat(TO))}}))}setStartBitrate(e,t){var i,r;return!(null==(i=this._peerConnection)||!i.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=cG(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 s=cG(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=cG(this._peerConnection.remoteDescription.sdp));let o=wN?"TIAS":"AS";t&&(s.media[0].bandwidth=[{type:o,limit:wN?1e3*t:t}],this._parsedAnswer.media[0].bandwidth=[{type:o,limit:wN?1e3*t:t}]),i&&(s.media[1].bandwidth=[{type:o,limit:wN?1e3*i:i}],this._parsedAnswer.media[1].bandwidth=[{type:o,limit:wN?1e3*i:i}]),r&&(s.media[2].bandwidth=[{type:o,limit:wN?1e3*r:r}],this._parsedAnswer.media[2].bandwidth=[{type:o,limit:wN?1e3*r:r}]),n&&(s.media[3].bandwidth=[{type:o,limit:wN?1e3*n:n}],this._parsedAnswer.media[3].bandwidth=[{type:o,limit:wN?1e3*n:n}]);let a={type:"offer",sdp:lG(s)};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(AD(n)?1===t:t===n)return;let s="setScaleResolutionDownBy ".concat(i," ").concat(t);return n&&(s+=" prevScale: ".concat(n)),this._log.warn(s),r.encodings[0].scaleResolutionDownBy=t,e.setParameters(r)}updateSDP(){let{localDescription:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let t=lG(this._parsedAnswer);return this._updateSDPPromise=new Promise(((i,r)=>ob(this,null,(function*(){var n,s;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(o){this._log.error(o),!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==(s=this._peerConnection.remoteDescription)?void 0:s.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(o)}})))),this._updateSDPPromise}setTransceiverDirection(e,t){return ob(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===nk.INACTIVE&&t===nk.RECVONLY&&(this._parsedAnswer.media[r].direction=e),e===nk.SENDONLY&&t===nk.INACTIVE&&(this._parsedAnswer.media[r].direction=nk.RECVONLY)}yield this.updateSDP()}))}filterSDPDirection(){return cG(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").media.map((e=>e.direction))}setOffer(e){this._log.info("setting offer");let t=XG(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 ob(this,null,(function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let t=!1;this._parsedAnswer.media.forEach((i=>{var r;if(i.type===rk.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=[],YG(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 ob(this,null,(function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let i=!1,r=[];AD(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===rk.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=[],YG(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(){this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),this._waitForPCConnectedPromise=null,this._parsedAnswer=null,this.originOffer=null}close(){this._log.info("close pc"),this.removeRTCListener(),this.insertableStreamsAbortMap.forEach((e=>lN(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,s=Math.max(t,i),{rttRatioThreshold:o,rttThreshold:a}=(null==(r=this._room.scheduleResult.config)?void 0:r.useTurnTcpInfo)||{};if(!(o&&a&&n&&s))return;let c=Math.floor(s/n),l=(this._isRelayTried||c>o)&&s>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 ob(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")),bP.addSuccessEvent({key:r,cost:Date.now()-t})}catch(wb){this._log.warn("switchRelay ".concat(i," failed"),wb),bP.addFailedEvent({key:r,error:wb}),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)}};rb([Ex("reconnect")],aW.prototype,"startReconnection",1),rb([Tx((e=>e.userId))],aW.prototype,"addDownlink",1),rb([Tx((e=>e))],aW.prototype,"removeDownlink",1),rb([gx(!0)],aW.prototype,"updateSDP",1),rb([vx(521712,!1)],aW.prototype,"setOffer",1),rb([vx(521713,!1)],aW.prototype,"setAnswer",1);var cW=class{constructor(e){nb(this,"tag"),nb(this,"len"),nb(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}},lW=class{constructor(e){nb(this,"tinyId"),nb(this,"data");let t=new DataView(e),i=0,r=[];for(;i<t.byteLength;){let n=t.getUint16(i+2),s=new cW(new Uint8Array(e).slice(i,i+2+2+n).buffer);r.push(s),i+=4+n}r.forEach((e=>{1===e.tag?this.tinyId=(new TextDecoder).decode(e.data):2===e.tag&&(this.data=e.data)}))}},dW=new Set;function uW(){let e=Math.floor(4294967296*Math.random());return dW.has(e)?uW():(dW.add(e),e)}var hW=ib(ab()),pW=class extends hW.default{constructor(e){super(),nb(this,"userId"),nb(this,"tinyId"),nb(this,"_sdpSemantics"),nb(this,"_isUplink"),nb(this,"_room"),nb(this,"_log"),nb(this,"_currentState","DISCONNECTED"),nb(this,"_prevTime",-1),this.userId=e.userId,this.tinyId=e.tinyId,this._room=e.room,this._sdpSemantics=e.room.sdpSemantics,this._isUplink=e.isUplink,this._log=lO.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&&(sO.emit(aO.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"))}},mW=class extends pW{constructor(e){super(ZC($C({},e),{isUplink:!0})),nb(this,"localMainAudioTrack",null),nb(this,"localMainVideoTrack",null),nb(this,"localAuxAudioTrack",null),nb(this,"localAuxVideoTrack",null),nb(this,"_isPublishingAux",!1),nb(this,"_publishingLocalAudioTrack"),nb(this,"_publishingLocalVideoTrack"),nb(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}),nb(this,"_flag",0),nb(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:s,auxVideoRtxSsrc:o}=this.singlePC.uplinkSSRC;return{audio:e||0,video:t||0,videoRtx:i||0,small:r||0,smallRtx:n||0,auxiliary:s||0,auxiliaryRtx:o||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=VM.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(tO()," ").concat(Qw())),bP.addCount({key:521e3})}VM.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 s=this._peerConnection.getSenders();s&&(ZP()?(n.audio=!(null==(e=s[0])||!e.track),n.bigVideo=!(null==(t=s[1])||!t.track),n.smallVideo=!(null==(i=s[2])||!i.track),n.auxVideo=!(null==(r=s[3])||!r.track)):s.forEach((e=>{e.track&&(e.track.kind===rk.AUDIO?n.audio=!0:(n.bigVideo=!0,this._room.videoManager.hasSmall&&(n.smallVideo=!0)))})))}return n}get publishingState(){let{publishState:e}=this,t=$C({},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&dk),bigVideo:!!(this.flag&ak),smallVideo:!!(this.flag&ck),auxVideo:!!(this.flag&lk)}}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 s=this._currentState,o=super.emitConnectionStateChangedEvent(e);return o&&s!==e&&(t?t.emit("connection-state-changed",{prevState:s,state:e}):(null==(i=this.localMainVideoTrack)||i.emit("connection-state-changed",{prevState:s,state:e}),null==(r=this.localAuxVideoTrack)||r.emit("connection-state-changed",{prevState:s,state:e}),null==(n=this._publishingLocalVideoTrack)||n.emit("connection-state-changed",{prevState:s,state:e}))),o}onVideoEncodeFailed(e){var t;e&&e.isMediaTrackActive&&"h264"===this.videoCodec&&(this._log.warn("h264 encoder not working"),null!=(t=this.singlePC)&&t.isVP8EncodeSupported&&(this._log.warn("switch to vp8"),this.singlePC.switchVideoEncoder("vp8")))}publish(e){return ob(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r,isAuxiliary:n}=e;return function*(){var e,s,o,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 vb({code:Eb.NOT_SUPPORTED_H264,message:gP({key:pP.NOT_SUPPORTED_H264ENCODE})});t.singlePC.isUsingH264&&!t.singlePC.isH264EncodeSupported&&t.singlePC.isVP8EncodeSupported&&(t._log.warn("h264 encoder not supported"),yield t.singlePC.switchVideoEncoder("vp8")),bN&&115===kw()&&r.profile.width*r.profile.height<=230400&&(t._log.warn("fallback video to 480p"),r.setProfile(tk["480p_2"]),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:zH,responseCommand:SH.SPC_PUBLISH_RESULT,data:ZC($C({},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;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==(s=t.localAuxAudioTrack)?void 0:s.profile.bitrate),bigVideo:null==(o=t.localMainVideoTrack)?void 0:o.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(!eM())return;this._log.info("publish by transceiver");let s=null==i?void 0:i.outMediaTrack,o=null==t?void 0:t.outMediaTrack,a=this._peerConnection.getTransceivers(),c=[],l=[],d=(e,t,i)=>{var r,n;let s=a[t].sender.replaceTrack(i);l.push(t),null!=(r=this.singlePC)&&r.enableInsertableStreams&&s.then((()=>this.createEncodedStreams(a[t].sender,e))),null!=(n=this.singlePC)&&n.scriptTransformWorker&&this.initSenderTransfrom(a[t].sender,e),c.push(s)};o&&d(t.mediaType,0,o),s&&d(i.mediaType,n?3:1,s),r&&d(8,2,r);let u=this.singlePC.setTransceiverDirection(nk.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(),s=new AbortController;null==(i=this.singlePC)||i.addAbortController(e,s),(null!=(r=this.getTrackByMediaType(t))&&r.enableEncodeFrame?n.readable.pipeThrough(new TransformStream({transform:(e,i)=>{var r;let n=this.getTrackByMediaType(t);i.enqueue(null!=(r=this.singlePC)&&r.isUsingH264&&n?n.encodeFrame(e,8===t):e)}}),s):n.readable).pipeTo(n.writable,s).catch((e=>{this._log.debug("encoded stream error",e),"destory"!==e&&this._log.warn(e)}))}initSenderTransfrom(e,t){if(!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker)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 ob(this,null,(function*(){var t;if(!this.singlePC)return;let i=this._peerConnection.getTransceivers();if(e){if(this._room.videoManager.smallTrack){let{sender:e}=i[2];null!=(t=this.singlePC)&&t.enableInsertableStreams&&this.createEncodedStreams(e,8),yield e.replaceTrack(this._room.videoManager.smallTrack),yield this.singlePC.setTransceiverDirection(nk.SENDONLY,[2])}}else yield i[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(nk.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 ob(this,arguments,(function(e){var t=this;let{localAudioTrack:i,localVideoTrack:r}=e;return function*(){let e=r&&r===t.localAuxVideoTrack,n=null==r?void 0:r.outMediaTrack,s=t._peerConnection.getSenders(),o=[];i&&(e?t.localAuxAudioTrack=null:t.localMainAudioTrack=null,!t.localMainAudioTrack&&!t.localAuxAudioTrack&&(yield s[0].replaceTrack(null),o.push(0))),n&&(e?(yield s[3].replaceTrack(null),t.localAuxVideoTrack=null,t._mediaSettings=ZC($C({},t._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),o.push(3)):(yield s[1].replaceTrack(null),yield s[2].replaceTrack(null),t.localMainVideoTrack=null,t._mediaSettings=ZC($C({},t._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),o.push(1,2))),t.isMainStreamPublished||t.isAuxStreamPublished?(yield t.singlePC.setTransceiverDirection(nk.INACTIVE,o),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 ob(this,null,(function*(){let t={state:this.publishingState,constraintConfig:this._mediaSettings},i=yield this._signalChannel.sendWaitForResponseWithRetry({command:DH,data:t,responseCommand:SH.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:NH,commandDesc:"unpublish",responseCommand:SH.UNPUBLISH_RESULT,enableLog:e}).catch((e=>{if(e.getCode()===Eb.API_CALL_TIMEOUT)return Promise.resolve();throw e}))}updateMediaSettings(){var e;this._mediaSettings.videoCodec=(null==(e=this.singlePC)?void 0:e.videoCodec)||"h264";let t=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:i,localAuxVideoTrack:r}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?r=this._publishingLocalVideoTrack:i=this._publishingLocalVideoTrack),aM){if(t&&t.outMediaTrack){let e=t.outMediaTrack.getSettings();this._mediaSettings.audioChannel=e.channelCount||1,this._mediaSettings.audioBps=1e3*t.profile.bitrate,this._mediaSettings.audioFs=e.sampleRate||0}if(i&&i.outMediaTrack){let e=i.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=i;this._mediaSettings.videoWidth=e.width/t||0,this._mediaSettings.videoHeight=e.height/t||0,this._mediaSettings.videoFps=e.frameRate||0,this._mediaSettings.videoBps=1e3*i.profile.bitrate,i.small&&(this._mediaSettings.smallVideoWidth=i.small.width,this._mediaSettings.smallVideoHeight=i.small.height,this._mediaSettings.smallVideoFps=i.small.frameRate,this._mediaSettings.smallVideoBps=1e3*i.small.bitrate)}if(r&&r.outMediaTrack){let e=r.outMediaTrack.getSettings(),{scaleResolutionDownBy:t}=r;this._mediaSettings.auxVideoWidth=e.width/t||0,this._mediaSettings.auxVideoHeight=e.height/t||0,this._mediaSettings.auxVideoFps=e.frameRate||0,this._mediaSettings.auxVideoBps=1e3*r.profile.bitrate}}else t&&t.outMediaTrack&&(this._mediaSettings.audioChannel=t.profile.channelCount,this._mediaSettings.audioBps=1e3*t.profile.bitrate,this._mediaSettings.audioFs=t.profile.sampleRate),i&&i.outMediaTrack&&(this._mediaSettings.videoWidth=i.profile.width,this._mediaSettings.videoHeight=i.profile.height,this._mediaSettings.videoFps=i.profile.frameRate,this._mediaSettings.videoBps=1e3*i.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:JH,data:this._mediaSettings,responseCommand:SH.UPDATE_CONSTRAINT_CONFIG_RES}).then((e=>{0!==e.data.code&&this._log.warn(e.data.message)})).catch((()=>{}))}addTrack(e){return ob(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?rk.AUXILIARY:rk.MAIN," stream")),ZP()&&(yield this.addTrackByTransceiver(e,t))}))}addTrackByTransceiver(e,t){return ob(this,null,(function*(){var i;if(!e.mediaTrack)return;let r=this._peerConnection.getTransceivers();if(e.kind===rk.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===nk.INACTIVE&&(yield this.singlePC.setTransceiverDirection(nk.SENDONLY,[n]))}this.updateMediaSettings(),yield this.doPublishChange()}))}removeTrack(e){return ob(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?rk.AUXILIARY:rk.MAIN," stream")),ZP()&&(yield this.removeTrackByTransceiver(e,t))}))}removeTrackByTransceiver(e,t){return ob(this,null,(function*(){if(!e.mediaTrack)return;let i=this._peerConnection.getTransceivers();if(e.kind===rk.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(nk.INACTIVE,[e])}this.updateMediaSettings(),yield this.doPublishChange()}))}replaceTrack(e){return ob(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?rk.AUXILIARY:rk.MAIN," stream")),r.kind===rk.AUDIO&&i[0]&&(yield i[0].replaceTrack(r)),r.kind===rk.VIDEO&&(!n&&i[1]&&(yield i[1].replaceTrack(r)),n&&i[3]&&(yield i[3].replaceTrack(r))),!0}))}setBandwidth(e){return ob(this,arguments,(function(e){var t=this;let{bandwidth:i,type:r,videoType:n}=e;return function*(){if(t.singlePC){let e={};r===rk.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:bH,responseCommand:SH.MUTE_RESULT,data:this.muteState,retries:3}).catch((()=>{})))}handleConnectionStateChange(e){"CONNECTED"===e.state&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&sO.emit(aO.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rk.VIDEO;if(this._peerConnection){let t=this._peerConnection.getSenders();if(e===rk.AUXILIARY&&t[3]&&t[3].track)return t[3].track.id;if(e===rk.VIDEO&&t[1]&&t[1].track)return t[1].track.id}if(this.localMainVideoTrack&&e===rk.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&e===rk.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,t){if(0!==e)throw e===Fk?(this._log.error(mP.NOT_SUPPORTED_H264ENCODE),new vb({code:Eb.NOT_SUPPORTED_H264,message:gP({key:pP.NOT_SUPPORTED_H264ENCODE})})):new vb({code:Eb.UNKNOWN,message:gP({key:pP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:SH.PUBLISH_RESULT,code:e,message:t}})})}onSinglePCReconnected(){return ob(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}))}))}};rb([lx((function(e){let{localVideoTrack:t}=e;null==t||t.once("6",this.onVideoEncodeFailed,this)}))],mW.prototype,"publish",1),rb([lx((function(e){let{localVideoTrack:t}=e;null==t||t.off("6",this.onVideoEncodeFailed,this)}))],mW.prototype,"unpublish",1);var _W=mW;function fW(e){return Object.keys(e).filter((t=>e[t]))}var gW=class extends pW{constructor(e){super(ZC($C({},e),{isUplink:!1})),nb(this,"_flag",0),nb(this,"isRobot",!1),nb(this,"role","anchor"),nb(this,"remoteAudioTrack"),nb(this,"remoteVideoTrack"),nb(this,"remoteAuxiliaryTrack"),nb(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),nb(this,"jitterBufferTimeoutId",-1),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=new $U(this._room,this),this.remoteVideoTrack=new fF(this._room,this),this.remoteAuxiliaryTrack=new gF(this._room,this),this.initialize()}get videoCodec(){var e;return(null==(e=this.singlePC)?void 0:e.downlinkVideoCodec)||"h264"}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 WD(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===rk.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))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,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:s}=e;if(!r.id.includes(this.tinyId))return;let o=r.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(o," ").concat(n.kind));let a=rk.AUDIO;n.kind===rk.VIDEO&&(a=o===rk.MAIN?rk.VIDEO:rk.AUXILIARY);let c=this.remoteAudioTrack;a===rk.VIDEO?c=this.remoteVideoTrack:a===rk.AUXILIARY&&(c=this.remoteAuxiliaryTrack),null==(t=this.singlePC)||t.receiverRemoteTrackMap.set(s,c),null!=(i=this.singlePC)&&i.scriptTransformWorker&&this.initReceiverTransform(s,o,n.kind===rk.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(s),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;let n=null==(i=this.singlePC)?void 0:i.receiverRemoteTrackMap.get(e);return n&&("video"!==n.kind||null!=(r=this.singlePC)&&r.isUsingH264)?n.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 ob(this,null,(function*(){try{if(this._log.info("subscribe ".concat(t," ").concat(fW(e))),this.hasSSRC){let t="subscribe_change";Object.values(e).find((e=>!0===e))||(t="unsubscribe"),yield this.sendSubscription(t,e)}else yield this.doSubscribe(e),this.checkTrackEnded(e)}catch(EO){throw this._room.isJoined&&this.isStreamUnpublished(t)?(this._log.warn("".concat(EO.message," ").concat(JSON.stringify(this.muteState))),new vb({code:Eb.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):EO}}))}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"),Dw&&Ow<92)return;this.singlePC.startReconnection()}}unsubscribe(e){return ob(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=$C({},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 s="subscribe_change";Object.values(n).find((e=>!0===e))||(s="unsubscribe"),t._log.info("".concat("unsubscribe"===s?s:"subscribe"," ").concat(r," [").concat(fW(n),"]")),"unsubscribe"===s&&(null==(e=t.singlePC)||e.removeDownlinkQueue.add(t.tinyId)),yield t.sendSubscription(s,n),"unsubscribe"===s&&(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=OH,n=SH.UNSUBSCRIBE_RESULT;return"subscribe_change"===e&&(i={audio:t.audio,bigVideo:t.video,auxVideo:t.auxiliary,smallVideo:t.smallVideo,srcTinyId:this.tinyId},r=PH,n=SH.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 vb({code:i.code,message:gP({key:pP.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 ob(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 ob(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:uW(),bigVideoSsrc:uW(),bigVideoRtxSsrc:uW(),auxVideoSsrc:uW(),auxVideoRtxSsrc:uW()},{audioSsrc:n,bigVideoSsrc:s,bigVideoRtxSsrc:o,auxVideoSsrc:a,auxVideoRtxSsrc:c}=i;e.ssrc={audio:n,video:s,videoRtx:o,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:YH,responseCommand:SH.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)throw new vb({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(!yM)return;let{main:t,aux:i}=e._room.jitterBufferDelay||{},{jitterDelay:r=t,jitterDelayAux:n=i}=e._room.scheduleResult.config||{};(bD(r)||bD(n))&&e.setJitterBufferDelay({mainDelay:r,auxDelay:n})}}}()}))}removeDownlink(){return ob(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(!yM||!this.singlePC||!this._peerConnection||dN(t)&&dN(i))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(t," aux: ").concat(i));let r=this.singlePC.getReceiversByUserId(this.userId);return bD(t)&&(this.remoteAudioTrack.jitterBufferDelay=t,this.remoteVideoTrack.jitterBufferDelay=t),bD(i)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=i,dN(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||dN(t)&&e.track===this.remoteAudioTrack.outMediaTrack;if(n&&dN(i)||!n&&dN(t))return;let s=n?i||0:t,o=(e.jitterBufferTarget||0)+100;o>s||(e.jitterBufferTarget=o,this._log.debug("set ".concat(n?"aux ":"").concat(null==(r=null==e?void 0:e.track)?void 0:r.kind," jitterBuffer delay ").concat(o," -> ").concat(s)))})),!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(wb){this._log.warn("set jitterBuffer delay error: ".concat(wb)),clearTimeout(this.jitterBufferTimeoutId),n()}}get audioReceiver(){var e;return(null==(e=this.singlePC)?void 0:e.getReceiversByUserId(this.userId)[0])||null}};rb([gx(),ux((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 vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.CONNECTION_ABORTED,data:e})}))};this.on("closed",n),e.apply(this,i).then(t,r).finally((()=>{this.off("closed",n)}))}))}))],gW.prototype,"subscribe",1),rb([gx()],gW.prototype,"unsubscribe",1),rb([Tx((()=>"jitter"))],gW.prototype,"setJitterBufferDelay",1);var EW=gW;var TW=ib(ab());var vW=class e extends TW.EventEmitter{constructor(e,t){super(),this.room=e,this.signalChannel=t,nb(this,"log"),nb(this,"cmdIdSeqMap",new Map),nb(this,"messageMap",new Map),this.log=lO.createLogger({id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),t.on(SH.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($H,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),nN(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 s=null==r?void 0:r.cachedMessageMap.get(n.seq+1);s&&this.emitMessage(s.message)}};nb(vW,"SEQ_INTERVAL",300);var yW,SW=vW,{isString:IW,isUndefined:RW,getNetworkType:AW,isEmpty:CW}=Ab,bW=class extends GG{constructor(e){super(e),nb(this,"_businessInfo"),nb(this,"userManager"),nb(this,"_version"),nb(this,"_heartbeat",-1),nb(this,"_lastHeartBeatTime",-1),nb(this,"_stats"),nb(this,"_joinTimeout",-1),nb(this,"_firstPublishedList",null),nb(this,"_joinReject",null),nb(this,"_isRelayChanged",!1),nb(this,"sdpSemantics"),nb(this,"signalChannel",null),nb(this,"uplinkConnection",null),nb(this,"singlePC",null),nb(this,"enableSPC",tM),nb(this,"_changeBigSmallRecords",new Map),nb(this,"networkQuality"),nb(this,"_iceTransportPolicy"),nb(this,"forceRelay",!1),nb(this,"_turnServers",[]),nb(this,"_iceServersFromJoin"),nb(this,"_syncUserListInterval",-1),nb(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),nb(this,"enableSEI",!1),nb(this,"_enableAudioVolumeEvaluation",!1),nb(this,"_audioVolumeIntervalId",0),nb(this,"_enableMultiAuxStream",!1),nb(this,"_pureAudioPushMode",!1),nb(this,"_customMessageManager"),nb(this,"preferHW",!1),nb(this,"healthDetector"),nb(this,"playoutDelay"),nb(this,"jitterBufferDelay"),nb(this,"_updateAudioLevelTaskId",-1),this._stats=new fG(this,this._log),this.userManager=new yF(this.userId,this._log),this._version=kb,this.sdpSemantics=Uk,RW(e.sdpSemantics)?hO.isUnifiedPlanDefault()&&(this.sdpSemantics=Vk):this.sdpSemantics=e.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(AW())),e.iceTransportPolicy&&(this._iceTransportPolicy=e.iceTransportPolicy),this._enableMultiAuxStream=!RW(e.enableMultiAuxStream)&&e.enableMultiAuxStream,this.enableSEI=e.enableSEI&&tM,!RW(e.enableSPC)&&tM&&(this.enableSPC=e.enableSPC),this.preferHW=!!e.preferHW,this._initBusinessInfo(e),this.healthDetector=new ZG(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])))}join(e,t,i){return ob(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)qC.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&JC)for(var r of JC(e))t.indexOf(r)<0&&zC.call(e,r)&&(i[r]=e[r]);return i})(e,[]);sO.emit(aO.REMOTE_PUBLISH_STATE_CHANGED,$C({room:this},t)),this.emit("remote-publish-state-changed",$C({},t))})),this.joinParams=e,new Promise(((t,i)=>ob(this,null,(function*(){var r,n;this._joinReject=i;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(s){if(!(s instanceof vb&&s.code===Eb.SPC_INITIALIZED_FAILED))return i(s);null==(r=this.signalChannel)||r.destroy(),yield this.initialize()}let o=UD();yield this.doJoin(e,null==(n=this.singlePC)?void 0:n.clientAbility),bP.addSuccessEvent({key:521708,cost:UD()-o}),t(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(_O){bP.addFailedEvent({key:521708,error:_O}),i(_O)}this._joinReject=null}))))}))}initSinglePC(){return ob(this,null,(function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new aW({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(Nb){throw this.fallbackToMPC(),new vb({code:Eb.SPC_INITIALIZED_FAILED,message:null==Nb?void 0:Nb.message})}}}))}doJoin(e,t){return new Promise(((i,r)=>ob(this,null,(function*(){var n,s,o;e.privateMapKey&&(this.privateMapKey=e.privateMapKey),e.latencyLevel&&(this.latencyLevel=e.latencyLevel),this.signalChannel.once(EH,(e=>{this.clearJoinTimeout(),sO.emit(aO.JOIN_SIGNAL_CONNECTION_END,{room:this,error:e}),r(e)})),kD(null==(s=null==(n=this.scheduleResult)?void 0:n.config)?void 0:s.singlePC)&&tM&&(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:iO(),netType:hD(),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!=(o=this.scheduleResult.config)&&o.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(c=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout((()=>{r(new vb({code:Eb.JOIN_ROOM_FAILED,message:gP({key:pP.JOIN_ROOM_TIMEOUT})}))}),c),sO.emit(aO.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?qH:RH,a),this.signalChannel.once(SH.JOIN_ROOM_RESULT,(t=>ob(this,null,(function*(){this.clearJoinTimeout();let{code:n,message:s,data:o,tinyId:a}=t.data;sO.emit(aO.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=o.publishers,this._iceServersFromJoin=o.iceServer?[o.iceServer]:[],this.singlePC&&(yield this.singlePC.setIceServers(this.getIceServers()),this.singlePC.connect(ZC($C({},o.ability),{useVp8:o.ability.useVp8||!!e.useVp8})).catch((()=>{}))),i()):(this._log.error("Join room failed result: ".concat(n," error: ").concat(s)),r(new vb({code:Eb.JOIN_ROOM_FAILED,extraCode:n,message:gP({key:pP.JOIN_ROOM_FAILED,data:{error:s,code:n}})})))}))))}))))}reJoin(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return ob(this,null,(function*(){if(this.isJoined)try{this._log.warn("reJoin pending: ".concat(this.joinParams.roomId));let t,i=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,i.push(this.initSinglePC().then((e=>(t=e,e))))),this.signalChannel&&(this.signalChannel.race=e,this.signalChannel.close(),i.push(this.signalChannel.connect())),yield Promise.all(i),yield this.doJoin(ZC($C({},this.joinParams),{role:"anchor"===this.role?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),t),this._log.warn("reJoin success"),WM.logSuccessEvent({userId:this.userId,eventType:Pk.REJOIN}),this.singlePC){let e=t=>{var i;"CONNECTED"===t.state&&(null==(i=this.singlePC)||i.off(iW.CONNECTION_STATE_CHANGED,e),this.uplinkConnection instanceof _W&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach((e=>{e.installEvents(),e.onSinglePCReconnected()})))};this.singlePC.on(iW.CONNECTION_STATE_CHANGED,e),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof _G&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(wk){this._log.warn("reJoin fail ".concat(wk)),this.reset(),WM.logFailedEvent({userId:this.userId,eventType:Pk.REJOIN,error:wk}),this.emit("error",new vb({code:Eb.JOIN_ROOM_FAILED,message:gP({key:pP.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")}))}initialize(){return ob(this,null,(function*(){let e,{mainUrl:t,backupUrl:i}=this.getSignalChannelUrl(),r=this.signalChannel||function(e){let t=[...ZH.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);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 eG({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:t,backupUrl:i,race:this.enableSPC&&!this.proxy_ws,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?e:void 0}),this._customMessageManager=new SW(this,this.signalChannel),this._customMessageManager.on("message",(e=>{this.emit("custom-message",e)}))),this.networkQuality||(this.networkQuality=new vG({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(vG.EVENT_NETWORK_QUALITY,(e=>{var t;this.emit("network-quality",e),null==(t=this.singlePC)||t.detectTCPAndUDP(e)}))),HM(this,this.signalChannel).add(_H,(e=>{sO.emit(aO.SIGNAL_CONNECTION_STATE_CHANGED,$C({room:this},e)),this.emit("signal-connection-state-changed",e)})).add(gH,(e=>{this.reset(),this.emit("error",e)})).add(SH.PEER_JOIN,(e=>{let{srcTinyId:t,userId:i,role:r}=e.data.data;this.userManager.addUser({userId:i,tinyId:t,role:r})})).add(SH.PEER_LEAVE,(e=>{let{userId:t,reason:i=0}=e.data.data;this.userManager.deleteUser(t,i)})).add(SH.UPDATE_REMOTE_MUTE_STAT,(e=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(e.data)})).add(SH.CLIENT_BANNED,(e=>{let t=e.data.data,{reason:i}=t;if(WM.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})})),this.signalChannel.once(mH,(e=>{this.tinyId=e.signalInfo.tinyId,sO.emit(aO.JOIN_SIGNAL_CONNECTION_END,{room:this})})),sO.emit(aO.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),n&&sO.emit(aO.JOIN_SIGNAL_CONNECTION_END,{room:this}),n}))}setSignalChannel(e){this.signalChannel=e,e||GM(this)}leave(){return ob(this,null,(function*(){var e;try{yield this.doHeartbeat()}catch(wk){}this._log.info("leave() => leaving room"),sO.emit(aO.LEAVE_SEND_CMD,{room:this}),null==(e=this.signalChannel)||e.send(AH)}))}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=VM.run("ric",this.doHeartbeat.bind(this),{delay:2e3}))}stopHeartbeat(){-1!==this._heartbeat&&(this._log.info("stopHeartbeat"),VM.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return ob(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(EF.has(e)){let t=EF.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 EF.delete(e),t}return[]}(this.userId):[],n=ZC($C({str_sdk_version:bb,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:$C({uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:hD()},i.msg_device_info)});if(this.heartbeatReport=n,sO.emit(aO.HEARTBEAT_REPORT,{room:this,report:n}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(CH,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",ZC($C({},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!==mk)).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:s}=e;t.unshift({userId:i,tinyId:r,flag:n,isRobot:!0,mixUserList:s})})),sO.emit(aO.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(),this.uplinkConnection.close(e),this.uplinkConnection instanceof _G&&(this.uplinkConnection=null)),this.localTracks.forEach((e=>e.unpublish())),this.localTracks.clear()}createDownlinkConnection(e){let{userId:t,tinyId:i,flag:r,isRobot:n}=e,s=new(this.singlePC?EW:hG)({userId:t,tinyId:i,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:r,isRobot:n});this.userManager.addRemotePublishedUser(s),this.installDownlinkEvents(s,t),this.emit("remote-published",s)}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!==Eb.ICE_TRANSPORT_ERROR&&(i===Eb.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(t),this.emit("error",e))})),e.on("connection-state-changed",(t=>{this.emit("media-connection-state-changed",ZC($C({},t),{userId:e.userId}))})),e.on("firewall-restriction",(()=>{this.emit("firewall-restriction")}))}startSyncUserListInterval(){-1===this._syncUserListInterval&&(this._syncUserListInterval=VM.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){VM.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:WH,responseCommand:SH.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 gP({key:pP.SIGNAL_RESPONSE_FAILED,data:{signalResponse:SH.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||!sG)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)===bk.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach((e=>{if(e instanceof oG&&!e.getIsReconnecting()){let t=e.getPeerConnection();t&&t.connectionState===bk.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}}))}fallbackToMPC(){return ob(this,null,(function*(){var e;if(this._log.warn("fallback to multi pc"),WM.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,null==(e=this.singlePC)||e.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin(!1)),this.uplinkConnection){let e=this.uplinkConnection;this.uplinkConnection=new _G({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 hG({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 vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.removeAllListeners(),this.healthDetector.destroy(),VM.clearTask(this._audioVolumeIntervalId))}switchRole(e){return ob(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:jH,data:{role:"anchor"===e?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:SH.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 vb({code:Eb.SWITCH_ROLE_FAILED,message:gP({key:pP.SWITCH_ROLE_FAILED,data:{message:r,code:i}})});this.role=e})).catch((e=>{throw e instanceof vb&&e.getCode()===Eb.API_CALL_TIMEOUT&&(e=new vb({code:Eb.SWITCH_ROLE_FAILED,message:gP({key:pP.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 ob(this,null,(function*(){let e={},i={};t.forEach((t=>{t instanceof Rx&&(t instanceof Px?i.audio=t:e.audio=t),t instanceof kx&&(t instanceof wx&&2===t.mediaType?i.video=t:e.video=t)}));let r=CW(e),n=CW(i);(!r||!n)&&!this.uplinkConnection&&(this.singlePC?this.uplinkConnection=new _W({userId:this.userId,tinyId:this.tinyId,room:this}):this.uplinkConnection=new _G({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",ZC($C({},e),{userId:this.userId}))})),this.uplinkConnection.on("firewall-restriction",(()=>{this.emit("firewall-restriction")})),this.uplinkConnection.on("error",(e=>{let t=e.getCode();t!==Eb.ICE_TRANSPORT_ERROR&&(t===Eb.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",e))})));let s=t.map((e=>e.kind)).join(",");r||(this._log.info("publish() => main ".concat(s)),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(s)),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 ob(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 Rx&&(t instanceof Px?i.audio=t:e.audio=t),t instanceof kx&&(t instanceof wx&&2===t.mediaType?i.video=t:e.video=t))}));try{let r=t.map((e=>e.kind)).join(",");CW(e)||(this._log.info("unpublish() => main ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:e.audio,localVideoTrack:e.video})),CW(i)||(this._log.info("unpublish() => aux ".concat(r)),yield this.uplinkConnection.unpublish({localAudioTrack:i.audio,localVideoTrack:i.video}))}catch(yO){}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&&nM()?this.uplinkConnection.replaceTrack(e).then((t=>{t&&sO.emit(aO.LOCAL_TRACK_REPLACED,{track:e})})):Promise.resolve()}setBandWidth(e){return ob(this,null,(function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(e),yield this.uplinkConnection.sendMediaSettings())}))}enableSmall(e){return ob(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();e&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:rk.VIDEO,videoType:rk.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 ob(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=$C({},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 s=this._changeBigSmallRecords.get(e);s&&s.options.smallVideo&&i.muteState.hasSmall&&n.video&&(n.video=!1,n.smallVideo=!0),sO.emit(aO.SUBSCRIBE_START,{room:this,streamType:r,remotePublishedUser:i,subscribeState:n}),this._log.info("subscribe() => ".concat(e," ").concat(r," [").concat(dG(n),"] prev: [").concat(dG(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());sO.emit(aO.SUBSCRIBE_SUCCESS,{room:this,streamType:r,remotePublishedUser:i})}catch(wb){let i=wb instanceof vb?wb.getCode():Eb.UNKNOWN,n=wb;throw wb instanceof vb?i===Eb.REMOTE_STREAM_NOT_EXIST&&(n=new vb({code:Eb.API_CALL_ABORTED,message:gP({key:pP.API_CALL_ABORTED,data:{message:wb.message,userId:e,streamType:r}})}),this._log.warn(n)):(n=new vb({code:i,message:gP({key:pP.SUBSCRIBE_FAILED,data:{message:wb.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 ob(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(wb){this._log.warn("unsubscribe() => failed ".concat(wb))}t.forEach((e=>{e.unsubscribe(),8===e.mediaType&&e.setMediaType(4)})),sO.emit(aO.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 VM.clearTask(this._audioVolumeIntervalId);e=Math.floor(Math.max(e,100)),sO.emit(aO.AUDIO_LEVEL_INTERVAL,{interval:e}),this._audioVolumeIntervalId&&VM.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=VM.run("intervalInWorker",(()=>{var i;LL.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(e,t);let r=[];null==(i=this.remotePublishedUserMap)||i.forEach((e=>{if(e.muteState.hasAudio){!LL.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})}})),this.emit("audio-volume",r)}),{delay:e,backgroundTask:t})}updateAudioLevelFromSenderStat(e,t){return ob(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=VM.run("intervalInWorker",(()=>ob(this,null,(function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let e=yield r.getStats();if(this._updateAudioLevelTaskId<0)return;let t=this.uplinkConnection.localMainAudioTrack;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"),VM.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(!oM||!i)return;let r=null==(t=i.getSynchronizationSources()[0])?void 0:t.audioLevel;bD(r)?e.remoteAudioTrack.volume=Math.min(2*r,1):i.getStats().then((t=>{t.forEach((t=>{"inbound-rtp"===t.type&&bD(t.audioLevel)&&(e.remoteAudioTrack.volume=t.audioLevel)}))}))}getLocalAudioStats(){return ob(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 ob(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 ob(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 ob(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 ob(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(Ab.getTurnServer(e)))):Ab.isPlainObject(e)&&i.push(Ab.getTurnServer(e)),this._turnServers=i,t&&(this._iceTransportPolicy=t)}sendStartMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:UH,data:e,timeout:5e3,responseCommand:SH.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"})}sendStopMixTranscode(e){return this.signalChannel.sendWaitForResponse({command:FH,data:e,timeout:5e3,responseCommand:SH.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"})}sendStartPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?MH:xH,data:e,timeout:5e3,responseCommand:t?SH.START_PUBLISH_TENCENT_CDN_RES:SH.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"})}sendStopPublishCDN(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.signalChannel.sendWaitForResponse({command:t?LH:VH,data:e,timeout:5e3,responseCommand:t?SH.STOP_PUBLISH_TENCENT_CDN_RES:SH.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"})}sendStartPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:BH,data:e,timeout:5e3,responseCommand:SH.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"})}sendUpdatePushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:HH,data:e,timeout:5e3,responseCommand:SH.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"})}sendStopPushStreamToRoom(e){return this.signalChannel.sendWaitForResponse({command:GH,data:e,timeout:5e3,responseCommand:SH.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"})}sendAbilityStatus(e){var t;null==(t=this.signalChannel)||t.sendWaitForResponse({command:XH,data:e,timeout:5e3,responseCommand:SH.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=Ab.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 ob(this,null,(function*(){let{subscribeState:t,userId:i,muteState:{hasSmall:r,hasVideo:n}}=e;if(!r&&!n||!t.video&&!t.smallVideo)return;let s=this._changeBigSmallRecords.get(i);if(!s||s.isSubscribing||s.reSubscribeCount<=0)return;let{options:o,reSubscribeCount:a}=s;if(o.video&&t.video||o.smallVideo&&t.smallVideo&&r)return;let c={audio:e.remoteAudioTrack.isSubscribed||e.remoteAudioTrack.isSubscribing,auxiliary:e.remoteAuxiliaryTrack.isSubscribed||e.remoteAuxiliaryTrack.isSubscribing,video:o.video,smallVideo:o.smallVideo};try{if(!r&&c.smallVideo&&(c.video=!0,c.smallVideo=!1),c.smallVideo===t.smallVideo&&c.video===t.video)return;s.isSubscribing=!0,s.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(tD-s.reSubscribeCount,".")),s.isSubscribing=!1,s.reSubscribeCount=tD}catch(mO){this._log.info("change [".concat(i,"] to ").concat(c.smallVideo?"small":"big"," video failed. count ").concat(tD-s.reSubscribeCount,".")),s.isSubscribing=!1,0===s.reSubscribeCount&&this._changeBigSmallRecords.delete(i)}}))}changeType(e,t){let i={options:{video:!e,smallVideo:e},isSubscribing:!1,reSubscribeCount:tD};this._changeBigSmallRecords.set(t.userId,i),this._log.info("set [".concat(t.userId,"] video prefer type: ").concat(e?"small":"big"));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(IW(e.businessInfo)&&(t=JSON.parse(e.businessInfo)),!RW(e.pureAudioPushMode)){if(!Number.isInteger(Number(e.pureAudioPushMode)))throw new vb({code:Eb.INVALID_PARAMETER,message:gP({key:pP.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(!RW(e.userDefineRecordId)){let i=/^[A-Za-z0-9_-]{1,64}$/gi;if(null===e.userDefineRecordId.match(i))throw new vb({code:Eb.INVALID_PARAMETER,message:gP({key:pP.INVALID_USER_DEFINE_RECORDID})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_record_id=e.userDefineRecordId}if(!RW(e.userDefinePushArgs)){if(!(IW(e.userDefinePushArgs)&&String(e.userDefinePushArgs)&&String(e.userDefinePushArgs).length<=256))throw new vb({code:Eb.INVALID_PARAMETER,message:gP({key:pP.INVALID_USER_DEFINE_PUSH_ARGS})});t.Str_uc_params||(t.Str_uc_params={}),t.Str_uc_params.userdefine_push_args=e.userDefinePushArgs}CW(t)||(this._businessInfo=JSON.stringify(t))}sendCustomMessage(e){var t;null==(t=this._customMessageManager)||t.send(e)}enableInsertableStreams(){return ob(this,null,(function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&lM)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 vb({code:Eb.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}};return rb([kM(["left",wM.INIT],"joined"),JM({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"),oB(!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())}}),ux((e=>{let t=new uH;return function(i,r,n){return ob(this,null,(function*(){let s=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 vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new vb({code:Eb.INVALID_OPERATION,message:gP({key:pP.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=21===i.role?"audience":"anchor",this._log.info("Join() => joining room: ".concat(s," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),sO.emit(aO.JOIN_START,{room:this,roomId:s,params:i});let o=Ab.getEnv();o||(o=zb.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(sk.OLD_CLOUD_LADDER)?o=zb.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(sk.WEBRTC)&&(o=zb.WEBRTC))),WM.setConfig({env:o,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),hO.checkSystemRequirementsInternal().then((e=>{this.checkSystemResult=e,hH.call(this)}));try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Ab.getEnv()&&(yield this.schedule(i,n));let t=yield e.call(this,i,r,n);return this.roomId=s,this._joinedTimestamp=Ab.performanceNow(),sO.emit(aO.JOIN_SUCCESS,{room:this}),30===n&&!i.component&&WM.uploadEvent({log:"stat-conv-".concat(Number(Ww),"-").concat(location.hostname),userId:this.userId}),t}catch(TO){throw t.delete({room:this,roomId:s}),sO.emit(aO.JOIN_FAILED,{room:this,error:TO}),TO}}))}}))],bW.prototype,"join",1),rb([kM("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),ux((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return ob(this,null,(function*(){sO.emit(aO.LEAVE_START,{room:this}),yield e.call(this,...i),sO.emit(aO.LEAVE_SUCCESS,{room:this,roomId:this.roomId})}))})),Ex("leave room"),KM({fnName:"publish",validateArgs:!1}),KM({fnName:"unsubscribe",validateArgs:!1})],bW.prototype,"leave",1),rb([gx(),ux((e=>function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return ob(this,null,(function*(){if("live"===this.scene&&"anchor"!==this.role||(i=i.filter((e=>e.outMediaTrack&&"capture"===e.state)),!i.length))return;sO.emit("61",{room:this});let t=e.apply(this,i);return i.forEach((e=>e.publish(this,t))),t}))})),JM({settings:{retries:Nk,timeout:e=>SD(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),sO.emit(aO.PUBLISH_FAILED,{room:this}))}})],bW.prototype,"publish",1),rb([KM({fnName:"publish"}),(yW="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=_x.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 vb({code:Eb.API_CALL_ABORTED,message:yW})),!1)}));n.queue=e}return r.apply(this,t)},i}),gx(),ux((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})),lx((function(){var e,t;0===this.localTracks.size&&$P()&&(null==(t=null==(e=this.singlePC)?void 0:e.getPeerConnection())||t.getSenders().forEach((e=>e.track&&e.replaceTrack(null))))}))],bW.prototype,"unpublish",1),rb([dx((e=>{if(e.code!==Eb.API_CALL_ABORTED)throw e})),Tx((e=>e.userId))],bW.prototype,"replaceTrack",1),rb([Tx((function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId})),xx(),ux((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})),JM({settings:{retries:Nk,timeout:e=>SD(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),sO.emit(aO.SUBSCRIBE_FAILED,{room:this,remoteTracks:r}))}})],bW.prototype,"subscribe",1),rb([KM({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")}))}}),Tx((function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t[0].userId}))],bW.prototype,"unsubscribe",1),dH.create=dH._create.bind(dH,bW),dH}));
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(){var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=function(e){return e&&e.Math===Math&&e},r=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof e&&e)||t("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i={},o=function(e){try{return!!e()}catch(t){return!0}},n=!o((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})),a=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),s=a,c=Function.prototype.call,l=s?c.bind(c):function(){return c.apply(c,arguments)},u={},d={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!d.call({1:2},1);u.f=p?function(e){var t=h(this,e);return!!t&&t.enumerable}:d;var m,f,_=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},g=a,E=Function.prototype,v=E.call,y=g&&E.bind.bind(v,v),T=g?y:function(e){return function(){return v.apply(e,arguments)}},I=T,A=I({}.toString),S=I("".slice),R=function(e){return S(A(e),8,-1)},b=o,w=R,D=Object,C=T("".split),N=b((function(){return!D("z").propertyIsEnumerable(0)}))?function(e){return"String"===w(e)?C(e,""):D(e)}:D,k=function(e){return null==e},O=k,M=TypeError,L=function(e){if(O(e))throw new M("Can't call method on "+e);return e},P=N,x=L,U=function(e){return P(x(e))},V="object"==typeof document&&document.all,F=void 0===V&&void 0!==V?function(e){return"function"==typeof e||e===V}:function(e){return"function"==typeof e},B=F,H=function(e){return"object"==typeof e?null!==e:B(e)},j=r,G=F,W=function(e,t){return arguments.length<2?(r=j[e],G(r)?r:void 0):j[e]&&j[e][t];var r},K=T({}.isPrototypeOf),z=r.navigator,q=z&&z.userAgent,J=q?String(q):"",Y=r,X=J,$=Y.process,Q=Y.Deno,Z=$&&$.versions||Q&&Q.version,ee=Z&&Z.v8;ee&&(f=(m=ee.split("."))[0]>0&&m[0]<4?1:+(m[0]+m[1])),!f&&X&&(!(m=X.match(/Edge\/(\d+)/))||m[1]>=74)&&(m=X.match(/Chrome\/(\d+)/))&&(f=+m[1]);var te=f,re=te,ie=o,oe=r.String,ne=!!Object.getOwnPropertySymbols&&!ie((function(){var e=Symbol("symbol detection");return!oe(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&re&&re<41})),ae=ne&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,se=W,ce=F,le=K,ue=Object,de=ae?function(e){return"symbol"==typeof e}:function(e){var t=se("Symbol");return ce(t)&&le(t.prototype,ue(e))},he=String,pe=function(e){try{return he(e)}catch(t){return"Object"}},me=F,fe=pe,_e=TypeError,ge=function(e){if(me(e))return e;throw new _e(fe(e)+" is not a function")},Ee=ge,ve=k,ye=function(e,t){var r=e[t];return ve(r)?void 0:Ee(r)},Te=l,Ie=F,Ae=H,Se=TypeError,Re={},be={get exports(){return Re},set exports(e){Re=e}},we=r,De=Object.defineProperty,Ce=function(e,t){try{De(we,e,{value:t,configurable:!0,writable:!0})}catch(r){we[e]=t}return t},Ne=r,ke=Ce,Oe="__core-js_shared__",Me=be.exports=Ne[Oe]||ke(Oe,{});(Me.versions||(Me.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"});var Le=Re,Pe=function(e,t){return Le[e]||(Le[e]=t||{})},xe=L,Ue=Object,Ve=function(e){return Ue(xe(e))},Fe=Ve,Be=T({}.hasOwnProperty),He=Object.hasOwn||function(e,t){return Be(Fe(e),t)},je=T,Ge=0,We=Math.random(),Ke=je(1..toString),ze=function(e){return"Symbol("+(void 0===e?"":e)+")_"+Ke(++Ge+We,36)},qe=Pe,Je=He,Ye=ze,Xe=ne,$e=ae,Qe=r.Symbol,Ze=qe("wks"),et=$e?Qe.for||Qe:Qe&&Qe.withoutSetter||Ye,tt=function(e){return Je(Ze,e)||(Ze[e]=Xe&&Je(Qe,e)?Qe[e]:et("Symbol."+e)),Ze[e]},rt=l,it=H,ot=de,nt=ye,at=function(e,t){var r,i;if("string"===t&&Ie(r=e.toString)&&!Ae(i=Te(r,e)))return i;if(Ie(r=e.valueOf)&&!Ae(i=Te(r,e)))return i;if("string"!==t&&Ie(r=e.toString)&&!Ae(i=Te(r,e)))return i;throw new Se("Can't convert object to primitive value")},st=TypeError,ct=tt("toPrimitive"),lt=function(e,t){if(!it(e)||ot(e))return e;var r,i=nt(e,ct);if(i){if(void 0===t&&(t="default"),r=rt(i,e,t),!it(r)||ot(r))return r;throw new st("Can't convert object to primitive value")}return void 0===t&&(t="number"),at(e,t)},ut=lt,dt=de,ht=function(e){var t=ut(e,"string");return dt(t)?t:t+""},pt=H,mt=r.document,ft=pt(mt)&&pt(mt.createElement),_t=function(e){return ft?mt.createElement(e):{}},gt=_t,Et=!n&&!o((function(){return 7!==Object.defineProperty(gt("div"),"a",{get:function(){return 7}}).a})),vt=n,yt=l,Tt=u,It=_,At=U,St=ht,Rt=He,bt=Et,wt=Object.getOwnPropertyDescriptor;i.f=vt?wt:function(e,t){if(e=At(e),t=St(t),bt)try{return wt(e,t)}catch(r){}if(Rt(e,t))return It(!yt(Tt.f,e,t),e[t])};var Dt={},Ct=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Nt=H,kt=String,Ot=TypeError,Mt=function(e){if(Nt(e))return e;throw new Ot(kt(e)+" is not an object")},Lt=n,Pt=Et,xt=Ct,Ut=Mt,Vt=ht,Ft=TypeError,Bt=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,jt="enumerable",Gt="configurable",Wt="writable";Dt.f=Lt?xt?function(e,t,r){if(Ut(e),t=Vt(t),Ut(r),"function"==typeof e&&"prototype"===t&&"value"in r&&Wt in r&&!r[Wt]){var i=Ht(e,t);i&&i[Wt]&&(e[t]=r.value,r={configurable:Gt in r?r[Gt]:i[Gt],enumerable:jt in r?r[jt]:i[jt],writable:!1})}return Bt(e,t,r)}:Bt:function(e,t,r){if(Ut(e),t=Vt(t),Ut(r),Pt)try{return Bt(e,t,r)}catch(i){}if("get"in r||"set"in r)throw new Ft("Accessors not supported");return"value"in r&&(e[t]=r.value),e};var Kt=Dt,zt=_,qt=n?function(e,t,r){return Kt.f(e,t,zt(1,r))}:function(e,t,r){return e[t]=r,e},Jt={},Yt={get exports(){return Jt},set exports(e){Jt=e}},Xt=n,$t=He,Qt=Function.prototype,Zt=Xt&&Object.getOwnPropertyDescriptor,er=$t(Qt,"name"),tr={EXISTS:er,PROPER:er&&"something"===function(){}.name,CONFIGURABLE:er&&(!Xt||Xt&&Zt(Qt,"name").configurable)},rr=F,ir=Re,or=T(Function.toString);rr(ir.inspectSource)||(ir.inspectSource=function(e){return or(e)});var nr,ar,sr,cr=ir.inspectSource,lr=F,ur=r.WeakMap,dr=lr(ur)&&/native code/.test(String(ur)),hr=ze,pr=Pe("keys"),mr=function(e){return pr[e]||(pr[e]=hr(e))},fr={},_r=dr,gr=r,Er=H,vr=qt,yr=He,Tr=Re,Ir=mr,Ar=fr,Sr="Object already initialized",Rr=gr.TypeError,br=gr.WeakMap;if(_r||Tr.state){var wr=Tr.state||(Tr.state=new br);wr.get=wr.get,wr.has=wr.has,wr.set=wr.set,nr=function(e,t){if(wr.has(e))throw new Rr(Sr);return t.facade=e,wr.set(e,t),t},ar=function(e){return wr.get(e)||{}},sr=function(e){return wr.has(e)}}else{var Dr=Ir("state");Ar[Dr]=!0,nr=function(e,t){if(yr(e,Dr))throw new Rr(Sr);return t.facade=e,vr(e,Dr,t),t},ar=function(e){return yr(e,Dr)?e[Dr]:{}},sr=function(e){return yr(e,Dr)}}var Cr={set:nr,get:ar,has:sr,enforce:function(e){return sr(e)?ar(e):nr(e,{})},getterFor:function(e){return function(t){var r;if(!Er(t)||(r=ar(t)).type!==e)throw new Rr("Incompatible receiver, "+e+" required");return r}}},Nr=T,kr=o,Or=F,Mr=He,Lr=n,Pr=tr.CONFIGURABLE,xr=cr,Ur=Cr.enforce,Vr=Cr.get,Fr=String,Br=Object.defineProperty,Hr=Nr("".slice),jr=Nr("".replace),Gr=Nr([].join),Wr=Lr&&!kr((function(){return 8!==Br((function(){}),"length",{value:8}).length})),Kr=String(String).split("String"),zr=Yt.exports=function(e,t,r){"Symbol("===Hr(Fr(t),0,7)&&(t="["+jr(Fr(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!Mr(e,"name")||Pr&&e.name!==t)&&(Lr?Br(e,"name",{value:t,configurable:!0}):e.name=t),Wr&&r&&Mr(r,"arity")&&e.length!==r.arity&&Br(e,"length",{value:r.arity});try{r&&Mr(r,"constructor")&&r.constructor?Lr&&Br(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var i=Ur(e);return Mr(i,"source")||(i.source=Gr(Kr,"string"==typeof t?t:"")),e};Function.prototype.toString=zr((function(){return Or(this)&&Vr(this).source||xr(this)}),"toString");var qr=F,Jr=Dt,Yr=Jt,Xr=Ce,$r=function(e,t,r,i){i||(i={});var o=i.enumerable,n=void 0!==i.name?i.name:t;if(qr(r)&&Yr(r,n,i),i.global)o?e[t]=r:Xr(t,r);else{try{i.unsafe?e[t]&&(o=!0):delete e[t]}catch(a){}o?e[t]=r:Jr.f(e,t,{value:r,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return e},Qr={},Zr=Math.ceil,ei=Math.floor,ti=Math.trunc||function(e){var t=+e;return(t>0?ei:Zr)(t)},ri=ti,ii=function(e){var t=+e;return t!=t||0===t?0:ri(t)},oi=ii,ni=Math.max,ai=Math.min,si=function(e,t){var r=oi(e);return r<0?ni(r+t,0):ai(r,t)},ci=ii,li=Math.min,ui=function(e){var t=ci(e);return t>0?li(t,9007199254740991):0},di=ui,hi=function(e){return di(e.length)},pi=U,mi=si,fi=hi,_i=function(e){return function(t,r,i){var o=pi(t),n=fi(o);if(0===n)return!e&&-1;var a,s=mi(i,n);if(e&&r!=r){for(;n>s;)if((a=o[s++])!=a)return!0}else for(;n>s;s++)if((e||s in o)&&o[s]===r)return e||s||0;return!e&&-1}},gi={includes:_i(!0),indexOf:_i(!1)},Ei=He,vi=U,yi=gi.indexOf,Ti=fr,Ii=T([].push),Ai=function(e,t){var r,i=vi(e),o=0,n=[];for(r in i)!Ei(Ti,r)&&Ei(i,r)&&Ii(n,r);for(;t.length>o;)Ei(i,r=t[o++])&&(~yi(n,r)||Ii(n,r));return n},Si=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ri=Ai,bi=Si.concat("length","prototype");Qr.f=Object.getOwnPropertyNames||function(e){return Ri(e,bi)};var wi={};wi.f=Object.getOwnPropertySymbols;var Di=W,Ci=Qr,Ni=wi,ki=Mt,Oi=T([].concat),Mi=Di("Reflect","ownKeys")||function(e){var t=Ci.f(ki(e)),r=Ni.f;return r?Oi(t,r(e)):t},Li=He,Pi=Mi,xi=i,Ui=Dt,Vi=function(e,t,r){for(var i=Pi(t),o=Ui.f,n=xi.f,a=0;a<i.length;a++){var s=i[a];Li(e,s)||r&&Li(r,s)||o(e,s,n(t,s))}},Fi=o,Bi=F,Hi=/#|\.prototype\./,ji=function(e,t){var r=Wi[Gi(e)];return r===zi||r!==Ki&&(Bi(t)?Fi(t):!!t)},Gi=ji.normalize=function(e){return String(e).replace(Hi,".").toLowerCase()},Wi=ji.data={},Ki=ji.NATIVE="N",zi=ji.POLYFILL="P",qi=ji,Ji=r,Yi=i.f,Xi=qt,$i=$r,Qi=Ce,Zi=Vi,eo=qi,to=function(e,t){var r,i,o,n,a,s=e.target,c=e.global,l=e.stat;if(r=c?Ji:l?Ji[s]||Qi(s,{}):Ji[s]&&Ji[s].prototype)for(i in t){if(n=t[i],o=e.dontCallGetSet?(a=Yi(r,i))&&a.value:r[i],!eo(c?i:s+(l?".":"#")+i,e.forced)&&void 0!==o){if(typeof n==typeof o)continue;Zi(n,o)}(e.sham||o&&o.sham)&&Xi(n,"sham",!0),$i(r,i,n,e)}},ro={};ro[tt("toStringTag")]="z";var io="[object z]"===String(ro),oo=F,no=R,ao=tt("toStringTag"),so=Object,co="Arguments"===no(function(){return arguments}()),lo=io?no:function(e){var t,r,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(r){}}(t=so(e),ao))?r:co?no(t):"Object"===(i=no(t))&&oo(t.callee)?"Arguments":i},uo=lo,ho=String,po=function(e){if("Symbol"===uo(e))throw new TypeError("Cannot convert a Symbol value to a string");return ho(e)},mo=Jt,fo=Dt,_o=function(e,t,r){return r.get&&mo(r.get,t,{getter:!0}),r.set&&mo(r.set,t,{setter:!0}),fo.f(e,t,r)},go=to,Eo=n,vo=T,yo=He,To=F,Io=K,Ao=po,So=_o,Ro=Vi,bo=r.Symbol,wo=bo&&bo.prototype;if(Eo&&To(bo)&&(!("description"in wo)||void 0!==bo().description)){var Do={},Co=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:Ao(arguments[0]),t=Io(wo,this)?new bo(e):void 0===e?bo():bo(e);return""===e&&(Do[t]=!0),t};Ro(Co,bo),Co.prototype=wo,wo.constructor=Co;var No="Symbol(description detection)"===String(bo("description detection")),ko=vo(wo.valueOf),Oo=vo(wo.toString),Mo=/^Symbol\((.*)\)[^)]+$/,Lo=vo("".replace),Po=vo("".slice);So(wo,"description",{configurable:!0,get:function(){var e=ko(this);if(yo(Do,e))return"";var t=Oo(e),r=No?Po(t,7,-1):Lo(t,Mo,"$1");return""===r?void 0:r}}),go({global:!0,constructor:!0,forced:!0},{Symbol:Co})}var xo=r,Uo={},Vo=tt;Uo.f=Vo;var Fo=xo,Bo=He,Ho=Uo,jo=Dt.f,Go=function(e){var t=Fo.Symbol||(Fo.Symbol={});Bo(t,e)||jo(t,e,{value:Ho.f(e)})};Go("asyncIterator");var Wo=R,Ko=Array.isArray||function(e){return"Array"===Wo(e)},zo=TypeError,qo=R,Jo=T,Yo=function(e){if("Function"===qo(e))return Jo(e)},Xo=ge,$o=a,Qo=Yo(Yo.bind),Zo=function(e,t){return Xo(e),void 0===t?e:$o?Qo(e,t):function(){return e.apply(t,arguments)}},en=Ko,tn=hi,rn=function(e){if(e>9007199254740991)throw zo("Maximum allowed index exceeded");return e},on=Zo,nn=function(e,t,r,i,o,n,a,s){for(var c,l,u=o,d=0,h=!!a&&on(a,s);d<i;)d in r&&(c=h?h(r[d],d,t):r[d],n>0&&en(c)?(l=tn(c),u=nn(e,t,c,l,u,n-1)-1):(rn(u+1),e[u]=c),u++),d++;return u},an=nn,sn=T,cn=o,ln=F,un=lo,dn=cr,hn=function(){},pn=W("Reflect","construct"),mn=/^\s*(?:class|function)\b/,fn=sn(mn.exec),_n=!mn.test(hn),gn=function(e){if(!ln(e))return!1;try{return pn(hn,[],e),!0}catch(t){return!1}},En=function(e){if(!ln(e))return!1;switch(un(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return _n||!!fn(mn,dn(e))}catch(t){return!0}};En.sham=!0;var vn=!pn||cn((function(){var e;return gn(gn.call)||!gn(Object)||!gn((function(){e=!0}))||e}))?En:gn,yn=Ko,Tn=vn,In=H,An=tt("species"),Sn=Array,Rn=function(e){var t;return yn(e)&&(t=e.constructor,(Tn(t)&&(t===Sn||yn(t.prototype))||In(t)&&null===(t=t[An]))&&(t=void 0)),void 0===t?Sn:t},bn=function(e,t){return new(Rn(e))(0===t?0:t)},wn=an,Dn=Ve,Cn=hi,Nn=ii,kn=bn;to({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=Dn(this),r=Cn(t),i=kn(t,0);return i.length=wn(i,t,t,r,0,void 0===e?1:Nn(e)),i}});var On={},Mn=Ai,Ln=Si,Pn=Object.keys||function(e){return Mn(e,Ln)},xn=n,Un=Ct,Vn=Dt,Fn=Mt,Bn=U,Hn=Pn;On.f=xn&&!Un?Object.defineProperties:function(e,t){Fn(e);for(var r,i=Bn(t),o=Hn(t),n=o.length,a=0;n>a;)Vn.f(e,r=o[a++],i[r]);return e};var jn,Gn=W("document","documentElement"),Wn=Mt,Kn=On,zn=Si,qn=fr,Jn=Gn,Yn=_t,Xn="prototype",$n="script",Qn=mr("IE_PROTO"),Zn=function(){},ea=function(e){return"<"+$n+">"+e+"</"+$n+">"},ta=function(e){e.write(ea("")),e.close();var t=e.parentWindow.Object;return e=null,t},ra=function(){try{jn=new ActiveXObject("htmlfile")}catch(o){}var e,t,r;ra="undefined"!=typeof document?document.domain&&jn?ta(jn):(t=Yn("iframe"),r="java"+$n+":",t.style.display="none",Jn.appendChild(t),t.src=String(r),(e=t.contentWindow.document).open(),e.write(ea("document.F=Object")),e.close(),e.F):ta(jn);for(var i=zn.length;i--;)delete ra[Xn][zn[i]];return ra()};qn[Qn]=!0;var ia=Object.create||function(e,t){var r;return null!==e?(Zn[Xn]=Wn(e),r=new Zn,Zn[Xn]=null,r[Qn]=e):r=ra(),void 0===t?r:Kn.f(r,t)},oa=tt,na=ia,aa=Dt.f,sa=oa("unscopables"),ca=Array.prototype;void 0===ca[sa]&&aa(ca,sa,{configurable:!0,value:na(null)});var la=function(e){ca[sa][e]=!0},ua=gi.includes,da=la;to({target:"Array",proto:!0,forced:o((function(){return!Array(1).includes()}))},{includes:function(e){return ua(this,e,arguments.length>1?arguments[1]:void 0)}}),da("includes");var ha,pa,ma,fa={},_a=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),ga=He,Ea=F,va=Ve,ya=_a,Ta=mr("IE_PROTO"),Ia=Object,Aa=Ia.prototype,Sa=ya?Ia.getPrototypeOf:function(e){var t=va(e);if(ga(t,Ta))return t[Ta];var r=t.constructor;return Ea(r)&&t instanceof r?r.prototype:t instanceof Ia?Aa:null},Ra=o,ba=F,wa=H,Da=Sa,Ca=$r,Na=tt("iterator"),ka=!1;[].keys&&("next"in(ma=[].keys())?(pa=Da(Da(ma)))!==Object.prototype&&(ha=pa):ka=!0);var Oa=!wa(ha)||Ra((function(){var e={};return ha[Na].call(e)!==e}));Oa&&(ha={}),ba(ha[Na])||Ca(ha,Na,(function(){return this}));var Ma={IteratorPrototype:ha,BUGGY_SAFARI_ITERATORS:ka},La=Dt.f,Pa=He,xa=tt("toStringTag"),Ua=function(e,t,r){e&&!r&&(e=e.prototype),e&&!Pa(e,xa)&&La(e,xa,{configurable:!0,value:t})},Va=Ma.IteratorPrototype,Fa=ia,Ba=_,Ha=Ua,ja=fa,Ga=function(){return this},Wa=function(e,t,r,i){var o=t+" Iterator";return e.prototype=Fa(Va,{next:Ba(+!i,r)}),Ha(e,o,!1),ja[o]=Ga,e},Ka=T,za=ge,qa=H,Ja=function(e){return qa(e)||null===e},Ya=String,Xa=TypeError,$a=function(e,t,r){try{return Ka(za(Object.getOwnPropertyDescriptor(e,t)[r]))}catch(i){}},Qa=H,Za=L,es=function(e){if(Ja(e))return e;throw new Xa("Can't set "+Ya(e)+" as a prototype")},ts=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=$a(Object.prototype,"__proto__","set"))(r,[]),t=r instanceof Array}catch(i){}return function(r,i){return Za(r),es(i),Qa(r)?(t?e(r,i):r.__proto__=i,r):r}}():void 0),rs=to,is=l,os=F,ns=Wa,as=Sa,ss=ts,cs=Ua,ls=qt,us=$r,ds=fa,hs=tr.PROPER,ps=tr.CONFIGURABLE,ms=Ma.IteratorPrototype,fs=Ma.BUGGY_SAFARI_ITERATORS,_s=tt("iterator"),gs="keys",Es="values",vs="entries",ys=function(){return this},Ts=function(e,t,r,i,o,n,a){ns(r,t,i);var s,c,l,u=function(e){if(e===o&&f)return f;if(!fs&&e&&e in p)return p[e];switch(e){case gs:case Es:case vs:return function(){return new r(this,e)}}return function(){return new r(this)}},d=t+" Iterator",h=!1,p=e.prototype,m=p[_s]||p["@@iterator"]||o&&p[o],f=!fs&&m||u(o),_="Array"===t&&p.entries||m;if(_&&(s=as(_.call(new e)))!==Object.prototype&&s.next&&(as(s)!==ms&&(ss?ss(s,ms):os(s[_s])||us(s,_s,ys)),cs(s,d,!0)),hs&&o===Es&&m&&m.name!==Es&&(ps?ls(p,"name",Es):(h=!0,f=function(){return is(m,this)})),o)if(c={values:u(Es),keys:n?f:u(gs),entries:u(vs)},a)for(l in c)(fs||h||!(l in p))&&us(p,l,c[l]);else rs({target:t,proto:!0,forced:fs||h},c);return p[_s]!==f&&us(p,_s,f,{name:o}),ds[t]=f,c},Is=function(e,t){return{value:e,done:t}},As=U,Ss=la,Rs=fa,bs=Cr,ws=Dt.f,Ds=Ts,Cs=Is,Ns=n,ks="Array Iterator",Os=bs.set,Ms=bs.getterFor(ks),Ls=Ds(Array,"Array",(function(e,t){Os(this,{type:ks,target:As(e),index:0,kind:t})}),(function(){var e=Ms(this),t=e.target,r=e.index++;if(!t||r>=t.length)return e.target=null,Cs(void 0,!0);switch(e.kind){case"keys":return Cs(r,!1);case"values":return Cs(t[r],!1)}return Cs([r,t[r]],!1)}),"values"),Ps=Rs.Arguments=Rs.Array;if(Ss("keys"),Ss("values"),Ss("entries"),Ns&&"values"!==Ps.name)try{ws(Ps,"name",{value:"values"})}catch(lj){}var xs=ge,Us=Ve,Vs=N,Fs=hi,Bs=TypeError,Hs="Reduce of empty array with no initial value",js=function(e){return function(t,r,i,o){var n=Us(t),a=Vs(n),s=Fs(n);if(xs(r),0===s&&i<2)throw new Bs(Hs);var c=e?s-1:0,l=e?-1:1;if(i<2)for(;;){if(c in a){o=a[c],c+=l;break}if(c+=l,e?c<0:s<=c)throw new Bs(Hs)}for(;e?c>=0:s>c;c+=l)c in a&&(o=r(o,a[c],c,n));return o}},Gs={left:js(!1),right:js(!0)},Ws=o,Ks=function(e,t){var r=[][e];return!!r&&Ws((function(){r.call(null,t||function(){return 1},1)}))},zs=r,qs=J,Js=R,Ys=function(e){return qs.slice(0,e.length)===e},Xs=Ys("Bun/")?"BUN":Ys("Cloudflare-Workers")?"CLOUDFLARE":Ys("Deno/")?"DENO":Ys("Node.js/")?"NODE":zs.Bun&&"string"==typeof Bun.version?"BUN":zs.Deno&&"object"==typeof Deno.version?"DENO":"process"===Js(zs.process)?"NODE":zs.window&&zs.document?"BROWSER":"REST",$s="NODE"===Xs,Qs=Gs.left;to({target:"Array",proto:!0,forced:!$s&&te>79&&te<83||!Ks("reduce")},{reduce:function(e){var t=arguments.length;return Qs(this,e,t,t>1?arguments[1]:void 0)}});var Zs=Gs.right;to({target:"Array",proto:!0,forced:!$s&&te>79&&te<83||!Ks("reduceRight")},{reduceRight:function(e){return Zs(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var ec=to,tc=Ko,rc=T([].reverse),ic=[1,2];ec({target:"Array",proto:!0,forced:String(ic)===String(ic.reverse())},{reverse:function(){return tc(this)&&(this.length=this.length),rc(this)}});var oc=pe,nc=TypeError,ac=T([].slice),sc=ac,cc=Math.floor,lc=function(e,t){var r=e.length;if(r<8)for(var i,o,n=1;n<r;){for(o=n,i=e[n];o&&t(e[o-1],i)>0;)e[o]=e[--o];o!==n++&&(e[o]=i)}else for(var a=cc(r/2),s=lc(sc(e,0,a),t),c=lc(sc(e,a),t),l=s.length,u=c.length,d=0,h=0;d<l||h<u;)e[d+h]=d<l&&h<u?t(s[d],c[h])<=0?s[d++]:c[h++]:d<l?s[d++]:c[h++];return e},uc=lc,dc=J.match(/firefox\/(\d+)/i),hc=!!dc&&+dc[1],pc=/MSIE|Trident/.test(J),mc=J.match(/AppleWebKit\/(\d+)\./),fc=!!mc&&+mc[1],_c=to,gc=T,Ec=ge,vc=Ve,yc=hi,Tc=function(e,t){if(!delete e[t])throw new nc("Cannot delete property "+oc(t)+" of "+oc(e))},Ic=po,Ac=o,Sc=uc,Rc=Ks,bc=hc,wc=pc,Dc=te,Cc=fc,Nc=[],kc=gc(Nc.sort),Oc=gc(Nc.push),Mc=Ac((function(){Nc.sort(void 0)})),Lc=Ac((function(){Nc.sort(null)})),Pc=Rc("sort"),xc=!Ac((function(){if(Dc)return Dc<70;if(!(bc&&bc>3)){if(wc)return!0;if(Cc)return Cc<603;var e,t,r,i,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(i=0;i<47;i++)Nc.push({k:t+i,v:r})}for(Nc.sort((function(e,t){return t.v-e.v})),i=0;i<Nc.length;i++)t=Nc[i].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));_c({target:"Array",proto:!0,forced:Mc||!Lc||!Pc||!xc},{sort:function(e){void 0!==e&&Ec(e);var t=vc(this);if(xc)return void 0===e?kc(t):kc(t,e);var r,i,o=[],n=yc(t);for(i=0;i<n;i++)i in t&&Oc(o,t[i]);for(Sc(o,function(e){return function(t,r){return void 0===r?-1:void 0===t?1:void 0!==e?+e(t,r)||0:Ic(t)>Ic(r)?1:-1}}(e)),r=yc(o),i=0;i<r;)t[i]=o[i++];for(;i<n;)Tc(t,i++);return t}}),la("flat");var Uc="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Vc=$r,Fc=function(e,t,r){for(var i in t)Vc(e,i,t[i],r);return e},Bc=K,Hc=TypeError,jc=function(e,t){if(Bc(t,e))return e;throw new Hc("Incorrect invocation")},Gc=ii,Wc=ui,Kc=RangeError,zc=function(e){if(void 0===e)return 0;var t=Gc(e),r=Wc(t);if(t!==r)throw new Kc("Wrong length or index");return r},qc=Math.sign||function(e){var t=+e;return 0===t||t!=t?t:t<0?-1:1},Jc=qc,Yc=Math.abs,Xc=2220446049250313e-31,$c=1/Xc,Qc=function(e,t,r,i){var o=+e,n=Yc(o),a=Jc(o);if(n<i)return a*function(e){return e+$c-$c}(n/i/t)*i*t;var s=(1+t/Xc)*n,c=s-(s-n);return c>r||c!=c?Infinity*a:a*c},Zc=Math.fround||function(e){return Qc(e,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)},el=Array,tl=Math.abs,rl=Math.pow,il=Math.floor,ol=Math.log,nl=Math.LN2,al={pack:function(e,t,r){var i,o,n,a=el(r),s=8*r-t-1,c=(1<<s)-1,l=c>>1,u=23===t?rl(2,-24)-rl(2,-77):0,d=e<0||0===e&&1/e<0?1:0,h=0;for((e=tl(e))!=e||Infinity===e?(o=e!=e?1:0,i=c):(i=il(ol(e)/nl),e*(n=rl(2,-i))<1&&(i--,n*=2),(e+=i+l>=1?u/n:u*rl(2,1-l))*n>=2&&(i++,n/=2),i+l>=c?(o=0,i=c):i+l>=1?(o=(e*n-1)*rl(2,t),i+=l):(o=e*rl(2,l-1)*rl(2,t),i=0));t>=8;)a[h++]=255&o,o/=256,t-=8;for(i=i<<t|o,s+=t;s>0;)a[h++]=255&i,i/=256,s-=8;return a[h-1]|=128*d,a},unpack:function(e,t){var r,i=e.length,o=8*i-t-1,n=(1<<o)-1,a=n>>1,s=o-7,c=i-1,l=e[c--],u=127&l;for(l>>=7;s>0;)u=256*u+e[c--],s-=8;for(r=u&(1<<-s)-1,u>>=-s,s+=t;s>0;)r=256*r+e[c--],s-=8;if(0===u)u=1-a;else{if(u===n)return r?NaN:l?-Infinity:Infinity;r+=rl(2,t),u-=a}return(l?-1:1)*r*rl(2,u-t)}},sl=Ve,cl=si,ll=hi,ul=function(e){for(var t=sl(this),r=ll(t),i=arguments.length,o=cl(i>1?arguments[1]:void 0,r),n=i>2?arguments[2]:void 0,a=void 0===n?r:cl(n,r);a>o;)t[o++]=e;return t},dl=F,hl=H,pl=ts,ml=function(e,t,r){var i,o;return pl&&dl(i=t.constructor)&&i!==r&&hl(o=i.prototype)&&o!==r.prototype&&pl(e,o),e},fl=r,_l=T,gl=n,El=Uc,vl=qt,yl=_o,Tl=Fc,Il=o,Al=jc,Sl=ii,Rl=ui,bl=zc,wl=Zc,Dl=al,Cl=Sa,Nl=ts,kl=ul,Ol=ac,Ml=ml,Ll=Vi,Pl=Ua,xl=Cr,Ul=tr.PROPER,Vl=tr.CONFIGURABLE,Fl="ArrayBuffer",Bl="DataView",Hl="prototype",jl="Wrong index",Gl=xl.getterFor(Fl),Wl=xl.getterFor(Bl),Kl=xl.set,zl=fl[Fl],ql=zl,Jl=ql&&ql[Hl],Yl=fl[Bl],Xl=Yl&&Yl[Hl],$l=Object.prototype,Ql=fl.Array,Zl=fl.RangeError,eu=_l(kl),tu=_l([].reverse),ru=Dl.pack,iu=Dl.unpack,ou=function(e){return[255&e]},nu=function(e){return[255&e,e>>8&255]},au=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},su=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},cu=function(e){return ru(wl(e),23,4)},lu=function(e){return ru(e,52,8)},uu=function(e,t,r){yl(e[Hl],t,{configurable:!0,get:function(){return r(this)[t]}})},du=function(e,t,r,i){var o=Wl(e),n=bl(r),a=!!i;if(n+t>o.byteLength)throw new Zl(jl);var s=o.bytes,c=n+o.byteOffset,l=Ol(s,c,c+t);return a?l:tu(l)},hu=function(e,t,r,i,o,n){var a=Wl(e),s=bl(r),c=i(+o),l=!!n;if(s+t>a.byteLength)throw new Zl(jl);for(var u=a.bytes,d=s+a.byteOffset,h=0;h<t;h++)u[d+h]=c[l?h:t-h-1]};if(El){var pu=Ul&&zl.name!==Fl;Il((function(){zl(1)}))&&Il((function(){new zl(-1)}))&&!Il((function(){return new zl,new zl(1.5),new zl(NaN),1!==zl.length||pu&&!Vl}))?pu&&Vl&&vl(zl,"name",Fl):((ql=function(e){return Al(this,Jl),Ml(new zl(bl(e)),this,ql)})[Hl]=Jl,Jl.constructor=ql,Ll(ql,zl)),Nl&&Cl(Xl)!==$l&&Nl(Xl,$l);var mu=new Yl(new ql(2)),fu=_l(Xl.setInt8);mu.setInt8(0,2147483648),mu.setInt8(1,2147483649),!mu.getInt8(0)&&mu.getInt8(1)||Tl(Xl,{setInt8:function(e,t){fu(this,e,t<<24>>24)},setUint8:function(e,t){fu(this,e,t<<24>>24)}},{unsafe:!0})}else Jl=(ql=function(e){Al(this,Jl);var t=bl(e);Kl(this,{type:Fl,bytes:eu(Ql(t),0),byteLength:t}),gl||(this.byteLength=t,this.detached=!1)})[Hl],Xl=(Yl=function(e,t,r){Al(this,Xl),Al(e,Jl);var i=Gl(e),o=i.byteLength,n=Sl(t);if(n<0||n>o)throw new Zl("Wrong offset");if(n+(r=void 0===r?o-n:Rl(r))>o)throw new Zl("Wrong length");Kl(this,{type:Bl,buffer:e,byteLength:r,byteOffset:n,bytes:i.bytes}),gl||(this.buffer=e,this.byteLength=r,this.byteOffset=n)})[Hl],gl&&(uu(ql,"byteLength",Gl),uu(Yl,"buffer",Wl),uu(Yl,"byteLength",Wl),uu(Yl,"byteOffset",Wl)),Tl(Xl,{getInt8:function(e){return du(this,1,e)[0]<<24>>24},getUint8:function(e){return du(this,1,e)[0]},getInt16:function(e){var t=du(this,2,e,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=du(this,2,e,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return su(du(this,4,e,arguments.length>1&&arguments[1]))},getUint32:function(e){return su(du(this,4,e,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(e){return iu(du(this,4,e,arguments.length>1&&arguments[1]),23)},getFloat64:function(e){return iu(du(this,8,e,arguments.length>1&&arguments[1]),52)},setInt8:function(e,t){hu(this,1,e,ou,t)},setUint8:function(e,t){hu(this,1,e,ou,t)},setInt16:function(e,t){hu(this,2,e,nu,t,arguments.length>2&&arguments[2])},setUint16:function(e,t){hu(this,2,e,nu,t,arguments.length>2&&arguments[2])},setInt32:function(e,t){hu(this,4,e,au,t,arguments.length>2&&arguments[2])},setUint32:function(e,t){hu(this,4,e,au,t,arguments.length>2&&arguments[2])},setFloat32:function(e,t){hu(this,4,e,cu,t,arguments.length>2&&arguments[2])},setFloat64:function(e,t){hu(this,8,e,lu,t,arguments.length>2&&arguments[2])}});Pl(ql,Fl),Pl(Yl,Bl);var _u={ArrayBuffer:ql,DataView:Yl},gu=W,Eu=_o,vu=n,yu=tt("species"),Tu=function(e){var t=gu(e);vu&&t&&!t[yu]&&Eu(t,yu,{configurable:!0,get:function(){return this}})},Iu=Tu,Au="ArrayBuffer",Su=_u[Au];to({global:!0,constructor:!0,forced:r[Au]!==Su},{ArrayBuffer:Su}),Iu(Au);var Ru=vn,bu=pe,wu=TypeError,Du=function(e){if(Ru(e))return e;throw new wu(bu(e)+" is not a constructor")},Cu=Mt,Nu=Du,ku=k,Ou=tt("species"),Mu=function(e,t){var r,i=Cu(e).constructor;return void 0===i||ku(r=Cu(i)[Ou])?t:Nu(r)},Lu=to,Pu=Yo,xu=o,Uu=Mt,Vu=si,Fu=ui,Bu=Mu,Hu=_u.ArrayBuffer,ju=_u.DataView,Gu=ju.prototype,Wu=Pu(Hu.prototype.slice),Ku=Pu(Gu.getUint8),zu=Pu(Gu.setUint8);Lu({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:xu((function(){return!new Hu(2).slice(1,void 0).byteLength}))},{slice:function(e,t){if(Wu&&void 0===t)return Wu(Uu(this),e);for(var r=Uu(this).byteLength,i=Vu(e,r),o=Vu(void 0===t?r:t,r),n=new(Bu(this,Hu))(Fu(o-i)),a=new ju(this),s=new ju(n),c=0;i<o;)zu(s,c++,Ku(a,i++));return n}});var qu,Ju,Yu,Xu,$u=a,Qu=Function.prototype,Zu=Qu.apply,ed=Qu.call,td="object"==typeof Reflect&&Reflect.apply||($u?ed.bind(Zu):function(){return ed.apply(Zu,arguments)}),rd=TypeError,id=function(e,t){if(e<t)throw new rd("Not enough arguments");return e},od=/(?:ipad|iphone|ipod).*applewebkit/i.test(J),nd=r,ad=td,sd=Zo,cd=F,ld=He,ud=o,dd=Gn,hd=ac,pd=_t,md=id,fd=od,_d=$s,gd=nd.setImmediate,Ed=nd.clearImmediate,vd=nd.process,yd=nd.Dispatch,Td=nd.Function,Id=nd.MessageChannel,Ad=nd.String,Sd=0,Rd={},bd="onreadystatechange";ud((function(){qu=nd.location}));var wd=function(e){if(ld(Rd,e)){var t=Rd[e];delete Rd[e],t()}},Dd=function(e){return function(){wd(e)}},Cd=function(e){wd(e.data)},Nd=function(e){nd.postMessage(Ad(e),qu.protocol+"//"+qu.host)};gd&&Ed||(gd=function(e){md(arguments.length,1);var t=cd(e)?e:Td(e),r=hd(arguments,1);return Rd[++Sd]=function(){ad(t,void 0,r)},Ju(Sd),Sd},Ed=function(e){delete Rd[e]},_d?Ju=function(e){vd.nextTick(Dd(e))}:yd&&yd.now?Ju=function(e){yd.now(Dd(e))}:Id&&!fd?(Xu=(Yu=new Id).port2,Yu.port1.onmessage=Cd,Ju=sd(Xu.postMessage,Xu)):nd.addEventListener&&cd(nd.postMessage)&&!nd.importScripts&&qu&&"file:"!==qu.protocol&&!ud(Nd)?(Ju=Nd,nd.addEventListener("message",Cd,!1)):Ju=bd in pd("script")?function(e){dd.appendChild(pd("script"))[bd]=function(){dd.removeChild(this),wd(e)}}:function(e){setTimeout(Dd(e),0)});var kd={set:gd,clear:Ed},Od=r,Md=n,Ld=Object.getOwnPropertyDescriptor,Pd=function(e){if(!Md)return Od[e];var t=Ld(Od,e);return t&&t.value},xd=function(){this.head=null,this.tail=null};xd.prototype={add:function(e){var t={item:e,next:null},r=this.tail;r?r.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 Ud,Vd,Fd,Bd,Hd,jd=xd,Gd=/ipad|iphone|ipod/i.test(J)&&"undefined"!=typeof Pebble,Wd=/web0s(?!.*chrome)/i.test(J),Kd=r,zd=Pd,qd=Zo,Jd=kd.set,Yd=jd,Xd=od,$d=Gd,Qd=Wd,Zd=$s,eh=Kd.MutationObserver||Kd.WebKitMutationObserver,th=Kd.document,rh=Kd.process,ih=Kd.Promise,oh=zd("queueMicrotask");if(!oh){var nh=new Yd,ah=function(){var e,t;for(Zd&&(e=rh.domain)&&e.exit();t=nh.get();)try{t()}catch(lj){throw nh.head&&Ud(),lj}e&&e.enter()};Xd||Zd||Qd||!eh||!th?!$d&&ih&&ih.resolve?((Bd=ih.resolve(void 0)).constructor=ih,Hd=qd(Bd.then,Bd),Ud=function(){Hd(ah)}):Zd?Ud=function(){rh.nextTick(ah)}:(Jd=qd(Jd,Kd),Ud=function(){Jd(ah)}):(Vd=!0,Fd=th.createTextNode(""),new eh(ah).observe(Fd,{characterData:!0}),Ud=function(){Fd.data=Vd=!Vd}),oh=function(e){nh.head||Ud(),nh.add(e)}}var sh=oh,ch=function(e){try{return{error:!1,value:e()}}catch(lj){return{error:!0,value:lj}}},lh=r.Promise,uh=r,dh=lh,hh=F,ph=qi,mh=cr,fh=tt,_h=Xs,gh=te;dh&&dh.prototype;var Eh=fh("species"),vh=!1,yh=hh(uh.PromiseRejectionEvent),Th=ph("Promise",(function(){var e=mh(dh),t=e!==String(dh);if(!t&&66===gh)return!0;if(!gh||gh<51||!/native code/.test(e)){var r=new dh((function(e){e(1)})),i=function(e){e((function(){}),(function(){}))};if((r.constructor={})[Eh]=i,!(vh=r.then((function(){}))instanceof i))return!0}return!(t||"BROWSER"!==_h&&"DENO"!==_h||yh)})),Ih={CONSTRUCTOR:Th,REJECTION_EVENT:yh,SUBCLASSING:vh},Ah={},Sh=ge,Rh=TypeError,bh=function(e){var t,r;this.promise=new e((function(e,i){if(void 0!==t||void 0!==r)throw new Rh("Bad Promise constructor");t=e,r=i})),this.resolve=Sh(t),this.reject=Sh(r)};Ah.f=function(e){return new bh(e)};var wh,Dh,Ch,Nh=to,kh=$s,Oh=r,Mh=l,Lh=$r,Ph=ts,xh=Ua,Uh=Tu,Vh=ge,Fh=F,Bh=H,Hh=jc,jh=Mu,Gh=kd.set,Wh=sh,Kh=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(lj){}},zh=ch,qh=jd,Jh=Cr,Yh=lh,Xh=Ah,$h="Promise",Qh=Ih.CONSTRUCTOR,Zh=Ih.REJECTION_EVENT,ep=Ih.SUBCLASSING,tp=Jh.getterFor($h),rp=Jh.set,ip=Yh&&Yh.prototype,op=Yh,np=ip,ap=Oh.TypeError,sp=Oh.document,cp=Oh.process,lp=Xh.f,up=lp,dp=!!(sp&&sp.createEvent&&Oh.dispatchEvent),hp="unhandledrejection",pp=function(e){var t;return!(!Bh(e)||!Fh(t=e.then))&&t},mp=function(e,t){var r,i,o,n=t.value,a=1===t.state,s=a?e.ok:e.fail,c=e.resolve,l=e.reject,u=e.domain;try{s?(a||(2===t.rejection&&vp(t),t.rejection=1),!0===s?r=n:(u&&u.enter(),r=s(n),u&&(u.exit(),o=!0)),r===e.promise?l(new ap("Promise-chain cycle")):(i=pp(r))?Mh(i,r,c,l):c(r)):l(n)}catch(lj){u&&!o&&u.exit(),l(lj)}},fp=function(e,t){e.notified||(e.notified=!0,Wh((function(){for(var r,i=e.reactions;r=i.get();)mp(r,e);e.notified=!1,t&&!e.rejection&&gp(e)})))},_p=function(e,t,r){var i,o;dp?((i=sp.createEvent("Event")).promise=t,i.reason=r,i.initEvent(e,!1,!0),Oh.dispatchEvent(i)):i={promise:t,reason:r},!Zh&&(o=Oh["on"+e])?o(i):e===hp&&Kh("Unhandled promise rejection",r)},gp=function(e){Mh(Gh,Oh,(function(){var t,r=e.facade,i=e.value;if(Ep(e)&&(t=zh((function(){kh?cp.emit("unhandledRejection",i,r):_p(hp,r,i)})),e.rejection=kh||Ep(e)?2:1,t.error))throw t.value}))},Ep=function(e){return 1!==e.rejection&&!e.parent},vp=function(e){Mh(Gh,Oh,(function(){var t=e.facade;kh?cp.emit("rejectionHandled",t):_p("rejectionhandled",t,e.value)}))},yp=function(e,t,r){return function(i){e(t,i,r)}},Tp=function(e,t,r){e.done||(e.done=!0,r&&(e=r),e.value=t,e.state=2,fp(e,!0))},Ip=function(e,t,r){if(!e.done){e.done=!0,r&&(e=r);try{if(e.facade===t)throw new ap("Promise can't be resolved itself");var i=pp(t);i?Wh((function(){var r={done:!1};try{Mh(i,t,yp(Ip,r,e),yp(Tp,r,e))}catch(lj){Tp(r,lj,e)}})):(e.value=t,e.state=1,fp(e,!1))}catch(lj){Tp({done:!1},lj,e)}}};if(Qh&&(np=(op=function(e){Hh(this,np),Vh(e),Mh(wh,this);var t=tp(this);try{e(yp(Ip,t),yp(Tp,t))}catch(lj){Tp(t,lj)}}).prototype,(wh=function(e){rp(this,{type:$h,done:!1,notified:!1,parent:!1,reactions:new qh,rejection:!1,state:0,value:null})}).prototype=Lh(np,"then",(function(e,t){var r=tp(this),i=lp(jh(this,op));return r.parent=!0,i.ok=!Fh(e)||e,i.fail=Fh(t)&&t,i.domain=kh?cp.domain:void 0,0===r.state?r.reactions.add(i):Wh((function(){mp(i,r)})),i.promise})),Dh=function(){var e=new wh,t=tp(e);this.promise=e,this.resolve=yp(Ip,t),this.reject=yp(Tp,t)},Xh.f=lp=function(e){return e===op||undefined===e?new Dh(e):up(e)},Fh(Yh)&&ip!==Object.prototype)){Ch=ip.then,ep||Lh(ip,"then",(function(e,t){var r=this;return new op((function(e,t){Mh(Ch,r,e,t)})).then(e,t)}),{unsafe:!0});try{delete ip.constructor}catch(lj){}Ph&&Ph(ip,np)}Nh({global:!0,constructor:!0,wrap:!0,forced:Qh},{Promise:op}),xh(op,$h,!1),Uh($h);var Ap=fa,Sp=tt("iterator"),Rp=Array.prototype,bp=function(e){return void 0!==e&&(Ap.Array===e||Rp[Sp]===e)},wp=lo,Dp=ye,Cp=k,Np=fa,kp=tt("iterator"),Op=function(e){if(!Cp(e))return Dp(e,kp)||Dp(e,"@@iterator")||Np[wp(e)]},Mp=l,Lp=ge,Pp=Mt,xp=pe,Up=Op,Vp=TypeError,Fp=function(e,t){var r=arguments.length<2?Up(e):t;if(Lp(r))return Pp(Mp(r,e));throw new Vp(xp(e)+" is not iterable")},Bp=l,Hp=Mt,jp=ye,Gp=function(e,t,r){var i,o;Hp(e);try{if(!(i=jp(e,"return"))){if("throw"===t)throw r;return r}i=Bp(i,e)}catch(lj){o=!0,i=lj}if("throw"===t)throw r;if(o)throw i;return Hp(i),r},Wp=Zo,Kp=l,zp=Mt,qp=pe,Jp=bp,Yp=hi,Xp=K,$p=Fp,Qp=Op,Zp=Gp,em=TypeError,tm=function(e,t){this.stopped=e,this.result=t},rm=tm.prototype,im=function(e,t,r){var i,o,n,a,s,c,l,u=r&&r.that,d=!(!r||!r.AS_ENTRIES),h=!(!r||!r.IS_RECORD),p=!(!r||!r.IS_ITERATOR),m=!(!r||!r.INTERRUPTED),f=Wp(t,u),_=function(e){return i&&Zp(i,"normal",e),new tm(!0,e)},g=function(e){return d?(zp(e),m?f(e[0],e[1],_):f(e[0],e[1])):m?f(e,_):f(e)};if(h)i=e.iterator;else if(p)i=e;else{if(!(o=Qp(e)))throw new em(qp(e)+" is not iterable");if(Jp(o)){for(n=0,a=Yp(e);a>n;n++)if((s=g(e[n]))&&Xp(rm,s))return s;return new tm(!1)}i=$p(e,o)}for(c=h?e.next:i.next;!(l=Kp(c,i)).done;){try{s=g(l.value)}catch(lj){Zp(i,"throw",lj)}if("object"==typeof s&&s&&Xp(rm,s))return s}return new tm(!1)},om=tt("iterator"),nm=!1;try{var am=0,sm={next:function(){return{done:!!am++}},return:function(){nm=!0}};sm[om]=function(){return this},Array.from(sm,(function(){throw 2}))}catch(lj){}var cm=function(e,t){try{if(!t&&!nm)return!1}catch(lj){return!1}var r=!1;try{var i={};i[om]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(lj){}return r},lm=lh,um=Ih.CONSTRUCTOR||!cm((function(e){lm.all(e).then(void 0,(function(){}))})),dm=l,hm=ge,pm=Ah,mm=ch,fm=im;to({target:"Promise",stat:!0,forced:um},{all:function(e){var t=this,r=pm.f(t),i=r.resolve,o=r.reject,n=mm((function(){var r=hm(t.resolve),n=[],a=0,s=1;fm(e,(function(e){var c=a++,l=!1;s++,dm(r,t,e).then((function(e){l||(l=!0,n[c]=e,--s||i(n))}),o)})),--s||i(n)}));return n.error&&o(n.value),r.promise}});var _m=to,gm=Ih.CONSTRUCTOR,Em=lh,vm=W,ym=F,Tm=$r,Im=Em&&Em.prototype;if(_m({target:"Promise",proto:!0,forced:gm,real:!0},{catch:function(e){return this.then(void 0,e)}}),ym(Em)){var Am=vm("Promise").prototype.catch;Im.catch!==Am&&Tm(Im,"catch",Am,{unsafe:!0})}var Sm=l,Rm=ge,bm=Ah,wm=ch,Dm=im;to({target:"Promise",stat:!0,forced:um},{race:function(e){var t=this,r=bm.f(t),i=r.reject,o=wm((function(){var o=Rm(t.resolve);Dm(e,(function(e){Sm(o,t,e).then(r.resolve,i)}))}));return o.error&&i(o.value),r.promise}});var Cm=Ah;to({target:"Promise",stat:!0,forced:Ih.CONSTRUCTOR},{reject:function(e){var t=Cm.f(this);return(0,t.reject)(e),t.promise}});var Nm=Mt,km=H,Om=Ah,Mm=function(e,t){if(Nm(e),km(t)&&t.constructor===e)return t;var r=Om.f(e);return(0,r.resolve)(t),r.promise},Lm=to,Pm=Ih.CONSTRUCTOR,xm=Mm;W("Promise"),Lm({target:"Promise",stat:!0,forced:Pm},{resolve:function(e){return xm(this,e)}});var Um=to,Vm=lh,Fm=o,Bm=W,Hm=F,jm=Mu,Gm=Mm,Wm=$r,Km=Vm&&Vm.prototype;if(Um({target:"Promise",proto:!0,real:!0,forced:!!Vm&&Fm((function(){Km.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=jm(this,Bm("Promise")),r=Hm(e);return this.then(r?function(r){return Gm(t,e()).then((function(){return r}))}:e,r?function(r){return Gm(t,e()).then((function(){throw r}))}:e)}}),Hm(Vm)){var zm=Bm("Promise").prototype.finally;Km.finally!==zm&&Wm(Km,"finally",zm,{unsafe:!0})}var qm=H,Jm=R,Ym=tt("match"),Xm=Mt,$m=function(){var e=Xm(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},Qm=l,Zm=He,ef=K,tf=$m,rf=RegExp.prototype,of=o,nf=r.RegExp,af=of((function(){var e=nf("a","y");return e.lastIndex=2,null!==e.exec("abcd")})),sf=af||of((function(){return!nf("a","y").sticky})),cf={BROKEN_CARET:af||of((function(){var e=nf("^r","gy");return e.lastIndex=2,null!==e.exec("str")})),MISSED_STICKY:sf,UNSUPPORTED_Y:af},lf=Dt.f,uf=o,df=r.RegExp,hf=uf((function(){var e=df(".","s");return!(e.dotAll&&e.test("\n")&&"s"===e.flags)})),pf=o,mf=r.RegExp,ff=pf((function(){var e=mf("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),_f=n,gf=r,Ef=T,vf=qi,yf=ml,Tf=qt,If=ia,Af=Qr.f,Sf=K,Rf=function(e){var t;return qm(e)&&(void 0!==(t=e[Ym])?!!t:"RegExp"===Jm(e))},bf=po,wf=function(e){var t=e.flags;return void 0!==t||"flags"in rf||Zm(e,"flags")||!ef(rf,e)?t:Qm(tf,e)},Df=cf,Cf=function(e,t,r){r in e||lf(e,r,{configurable:!0,get:function(){return t[r]},set:function(e){t[r]=e}})},Nf=$r,kf=o,Of=He,Mf=Cr.enforce,Lf=Tu,Pf=hf,xf=ff,Uf=tt("match"),Vf=gf.RegExp,Ff=Vf.prototype,Bf=gf.SyntaxError,Hf=Ef(Ff.exec),jf=Ef("".charAt),Gf=Ef("".replace),Wf=Ef("".indexOf),Kf=Ef("".slice),zf=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,qf=/a/g,Jf=/a/g,Yf=new Vf(qf)!==qf,Xf=Df.MISSED_STICKY,$f=Df.UNSUPPORTED_Y,Qf=_f&&(!Yf||Xf||Pf||xf||kf((function(){return Jf[Uf]=!1,Vf(qf)!==qf||Vf(Jf)===Jf||"/a/i"!==String(Vf(qf,"i"))})));if(vf("RegExp",Qf)){for(var Zf=function(e,t){var r,i,o,n,a,s,c=Sf(Ff,this),l=Rf(e),u=void 0===t,d=[],h=e;if(!c&&l&&u&&e.constructor===Zf)return e;if((l||Sf(Ff,e))&&(e=e.source,u&&(t=wf(h))),e=void 0===e?"":bf(e),t=void 0===t?"":bf(t),h=e,Pf&&"dotAll"in qf&&(i=!!t&&Wf(t,"s")>-1)&&(t=Gf(t,/s/g,"")),r=t,Xf&&"sticky"in qf&&(o=!!t&&Wf(t,"y")>-1)&&$f&&(t=Gf(t,/y/g,"")),xf&&(n=function(e){for(var t,r=e.length,i=0,o="",n=[],a=If(null),s=!1,c=!1,l=0,u="";i<=r;i++){if("\\"===(t=jf(e,i)))t+=jf(e,++i);else if("]"===t)s=!1;else if(!s)switch(!0){case"["===t:s=!0;break;case"("===t:if(o+=t,"?:"===Kf(e,i+1,i+3))continue;Hf(zf,Kf(e,i+1))&&(i+=2,c=!0),l++;continue;case">"===t&&c:if(""===u||Of(a,u))throw new Bf("Invalid capture group name");a[u]=!0,n[n.length]=[u,l],c=!1,u="";continue}c?u+=t:o+=t}return[o,n]}(e),e=n[0],d=n[1]),a=yf(Vf(e,t),c?this:Ff,Zf),(i||o||d.length)&&(s=Mf(a),i&&(s.dotAll=!0,s.raw=Zf(function(e){for(var t,r=e.length,i=0,o="",n=!1;i<=r;i++)"\\"!==(t=jf(e,i))?n||"."!==t?("["===t?n=!0:"]"===t&&(n=!1),o+=t):o+="[\\s\\S]":o+=t+jf(e,++i);return o}(e),r)),o&&(s.sticky=!0),d.length&&(s.groups=d)),e!==h)try{Tf(a,"source",""===h?"(?:)":h)}catch(lj){}return a},e_=Af(Vf),t_=0;e_.length>t_;)Cf(Zf,Vf,e_[t_++]);Ff.constructor=Zf,Zf.prototype=Ff,Nf(gf,"RegExp",Zf,{constructor:!0})}Lf("RegExp");var r_=l,i_=T,o_=po,n_=$m,a_=cf,s_=ia,c_=Cr.get,l_=hf,u_=ff,d_=Pe("native-string-replace",String.prototype.replace),h_=RegExp.prototype.exec,p_=h_,m_=i_("".charAt),f_=i_("".indexOf),__=i_("".replace),g_=i_("".slice),E_=function(){var e=/a/,t=/b*/g;return r_(h_,e,"a"),r_(h_,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),v_=a_.BROKEN_CARET,y_=void 0!==/()??/.exec("")[1];(E_||y_||v_||l_||u_)&&(p_=function(e){var t,r,i,o,n,a,s,c=this,l=c_(c),u=o_(e),d=l.raw;if(d)return d.lastIndex=c.lastIndex,t=r_(p_,d,u),c.lastIndex=d.lastIndex,t;var h=l.groups,p=v_&&c.sticky,m=r_(n_,c),f=c.source,_=0,g=u;if(p&&(m=__(m,"y",""),-1===f_(m,"g")&&(m+="g"),g=g_(u,c.lastIndex),c.lastIndex>0&&(!c.multiline||c.multiline&&"\n"!==m_(u,c.lastIndex-1))&&(f="(?: "+f+")",g=" "+g,_++),r=new RegExp("^(?:"+f+")",m)),y_&&(r=new RegExp("^"+f+"$(?!\\s)",m)),E_&&(i=c.lastIndex),o=r_(h_,p?r:c,g),p?o?(o.input=g_(o.input,_),o[0]=g_(o[0],_),o.index=c.lastIndex,c.lastIndex+=o[0].length):c.lastIndex=0:E_&&o&&(c.lastIndex=c.global?o.index+o[0].length:i),y_&&o&&o.length>1&&r_(d_,o[0],r,(function(){for(n=1;n<arguments.length-2;n++)void 0===arguments[n]&&(o[n]=void 0)})),o&&h)for(o.groups=a=s_(null),n=0;n<h.length;n++)a[(s=h[n])[0]]=o[s[1]];return o});var T_=p_;to({target:"RegExp",proto:!0,forced:/./.exec!==T_},{exec:T_});var I_=n,A_=_o,S_=$m,R_=o,b_=r.RegExp,w_=b_.prototype,D_=I_&&R_((function(){var e=!0;try{b_(".","d")}catch(lj){e=!1}var t={},r="",i=e?"dgimsy":"gimsy",o=function(e,i){Object.defineProperty(t,e,{get:function(){return r+=i,!0}})},n={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in e&&(n.hasIndices="d"),n)o(a,n[a]);return Object.getOwnPropertyDescriptor(w_,"flags").get.call(t)!==i||r!==i}));D_&&A_(w_,"flags",{configurable:!0,get:S_});var C_=ii,N_=po,k_=L,O_=RangeError,M_=T,L_=ui,P_=po,x_=function(e){var t=N_(k_(this)),r="",i=C_(e);if(i<0||Infinity===i)throw new O_("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(r+=t);return r},U_=L,V_=M_(x_),F_=M_("".slice),B_=Math.ceil,H_=function(e){return function(t,r,i){var o,n,a=P_(U_(t)),s=L_(r),c=a.length,l=void 0===i?" ":P_(i);return s<=c||""===l?a:((n=V_(l,B_((o=s-c)/l.length))).length>o&&(n=F_(n,0,o)),e?a+n:n+a)}},j_={start:H_(!1),end:H_(!0)},G_=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(J),W_=j_.start;to({target:"String",proto:!0,forced:G_},{padStart:function(e){return W_(this,e,arguments.length>1?arguments[1]:void 0)}});var K_=l,z_=$r,q_=T_,J_=o,Y_=tt,X_=qt,$_=Y_("species"),Q_=RegExp.prototype,Z_=T,eg=ii,tg=po,rg=L,ig=Z_("".charAt),og=Z_("".charCodeAt),ng=Z_("".slice),ag=function(e){return function(t,r){var i,o,n=tg(rg(t)),a=eg(r),s=n.length;return a<0||a>=s?e?"":void 0:(i=og(n,a))<55296||i>56319||a+1===s||(o=og(n,a+1))<56320||o>57343?e?ig(n,a):i:e?ng(n,a,a+2):o-56320+(i-55296<<10)+65536}},sg={codeAt:ag(!1),charAt:ag(!0)},cg=sg.charAt,lg=T,ug=Ve,dg=Math.floor,hg=lg("".charAt),pg=lg("".replace),mg=lg("".slice),fg=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,_g=/\$([$&'`]|\d{1,2})/g,gg=l,Eg=Mt,vg=F,yg=R,Tg=T_,Ig=TypeError,Ag=td,Sg=l,Rg=T,bg=function(e,t,r,i){var o=Y_(e),n=!J_((function(){var t={};return t[o]=function(){return 7},7!==""[e](t)})),a=n&&!J_((function(){var t=!1,r=/a/;return"split"===e&&((r={}).constructor={},r.constructor[$_]=function(){return r},r.flags="",r[o]=/./[o]),r.exec=function(){return t=!0,null},r[o](""),!t}));if(!n||!a||r){var s=/./[o],c=t(o,""[e],(function(e,t,r,i,o){var a=t.exec;return a===q_||a===Q_.exec?n&&!o?{done:!0,value:K_(s,t,r,i)}:{done:!0,value:K_(e,r,t,i)}:{done:!1}}));z_(String.prototype,e,c[0]),z_(Q_,o,c[1])}i&&X_(Q_[o],"sham",!0)},wg=o,Dg=Mt,Cg=F,Ng=k,kg=ii,Og=ui,Mg=po,Lg=L,Pg=function(e,t,r){return t+(r?cg(e,t).length:1)},xg=ye,Ug=function(e,t,r,i,o,n){var a=r+e.length,s=i.length,c=_g;return void 0!==o&&(o=ug(o),c=fg),pg(n,c,(function(n,c){var l;switch(hg(c,0)){case"$":return"$";case"&":return e;case"`":return mg(t,0,r);case"'":return mg(t,a);case"<":l=o[mg(c,1,-1)];break;default:var u=+c;if(0===u)return n;if(u>s){var d=dg(u/10);return 0===d?n:d<=s?void 0===i[d-1]?hg(c,1):i[d-1]+hg(c,1):n}l=i[u-1]}return void 0===l?"":l}))},Vg=function(e,t){var r=e.exec;if(vg(r)){var i=gg(r,e,t);return null!==i&&Eg(i),i}if("RegExp"===yg(e))return gg(Tg,e,t);throw new Ig("RegExp#exec called on incompatible receiver")},Fg=tt("replace"),Bg=Math.max,Hg=Math.min,jg=Rg([].concat),Gg=Rg([].push),Wg=Rg("".indexOf),Kg=Rg("".slice),zg=function(e){return void 0===e?e:String(e)},qg="$0"==="a".replace(/./,"$0"),Jg=!!/./[Fg]&&""===/./[Fg]("a","$0");bg("replace",(function(e,t,r){var i=Jg?"$":"$0";return[function(e,r){var i=Lg(this),o=Ng(e)?void 0:xg(e,Fg);return o?Sg(o,e,i,r):Sg(t,Mg(i),e,r)},function(e,o){var n=Dg(this),a=Mg(e);if("string"==typeof o&&-1===Wg(o,i)&&-1===Wg(o,"$<")){var s=r(t,n,a,o);if(s.done)return s.value}var c=Cg(o);c||(o=Mg(o));var l,u=n.global;u&&(l=n.unicode,n.lastIndex=0);for(var d,h=[];null!==(d=Vg(n,a))&&(Gg(h,d),u);){""===Mg(d[0])&&(n.lastIndex=Pg(a,Og(n.lastIndex),l))}for(var p="",m=0,f=0;f<h.length;f++){for(var _,g=Mg((d=h[f])[0]),E=Bg(Hg(kg(d.index),a.length),0),v=[],y=1;y<d.length;y++)Gg(v,zg(d[y]));var T=d.groups;if(c){var I=jg([g],v,E,a);void 0!==T&&Gg(I,T),_=Mg(Ag(o,void 0,I))}else _=Ug(g,a,E,v,T,o);E>=m&&(p+=Kg(a,m,E)+_,m=E+g.length)}return p+Kg(a,m)}]}),!!wg((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!qg||Jg);var Yg="\t\n\v\f\r                 \u2028\u2029\ufeff",Xg=L,$g=po,Qg=Yg,Zg=T("".replace),eE=RegExp("^["+Qg+"]+"),tE=RegExp("(^|[^"+Qg+"])["+Qg+"]+$"),rE=function(e){return function(t){var r=$g(Xg(t));return 1&e&&(r=Zg(r,eE,"")),2&e&&(r=Zg(r,tE,"$1")),r}},iE={start:rE(1),end:rE(2),trim:rE(3)},oE=tr.PROPER,nE=o,aE=Yg,sE=iE.trim;to({target:"String",proto:!0,forced:function(e){return nE((function(){return!!aE[e]()||"​…᠎"!=="​…᠎"[e]()||oE&&aE[e].name!==e}))}("trim")},{trim:function(){return sE(this)}});var cE,lE,uE,dE={},hE={get exports(){return dE},set exports(e){dE=e}},pE=Uc,mE=n,fE=r,_E=F,gE=H,EE=He,vE=lo,yE=pe,TE=qt,IE=$r,AE=_o,SE=K,RE=Sa,bE=ts,wE=tt,DE=ze,CE=Cr.enforce,NE=Cr.get,kE=fE.Int8Array,OE=kE&&kE.prototype,ME=fE.Uint8ClampedArray,LE=ME&&ME.prototype,PE=kE&&RE(kE),xE=OE&&RE(OE),UE=Object.prototype,VE=fE.TypeError,FE=wE("toStringTag"),BE=DE("TYPED_ARRAY_TAG"),HE="TypedArrayConstructor",jE=pE&&!!bE&&"Opera"!==vE(fE.opera),GE=!1,WE={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},KE={BigInt64Array:8,BigUint64Array:8},zE=function(e){var t=RE(e);if(gE(t)){var r=NE(t);return r&&EE(r,HE)?r[HE]:zE(t)}},qE=function(e){if(!gE(e))return!1;var t=vE(e);return EE(WE,t)||EE(KE,t)};for(cE in WE)(uE=(lE=fE[cE])&&lE.prototype)?CE(uE)[HE]=lE:jE=!1;for(cE in KE)(uE=(lE=fE[cE])&&lE.prototype)&&(CE(uE)[HE]=lE);if((!jE||!_E(PE)||PE===Function.prototype)&&(PE=function(){throw new VE("Incorrect invocation")},jE))for(cE in WE)fE[cE]&&bE(fE[cE],PE);if((!jE||!xE||xE===UE)&&(xE=PE.prototype,jE))for(cE in WE)fE[cE]&&bE(fE[cE].prototype,xE);if(jE&&RE(LE)!==xE&&bE(LE,xE),mE&&!EE(xE,FE))for(cE in GE=!0,AE(xE,FE,{configurable:!0,get:function(){return gE(this)?this[BE]:void 0}}),WE)fE[cE]&&TE(fE[cE],BE,cE);var JE={NATIVE_ARRAY_BUFFER_VIEWS:jE,TYPED_ARRAY_TAG:GE&&BE,aTypedArray:function(e){if(qE(e))return e;throw new VE("Target is not a typed array")},aTypedArrayConstructor:function(e){if(_E(e)&&(!bE||SE(PE,e)))return e;throw new VE(yE(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,r,i){if(mE){if(r)for(var o in WE){var n=fE[o];if(n&&EE(n.prototype,e))try{delete n.prototype[e]}catch(lj){try{n.prototype[e]=t}catch(a){}}}xE[e]&&!r||IE(xE,e,r?t:jE&&OE[e]||t,i)}},exportTypedArrayStaticMethod:function(e,t,r){var i,o;if(mE){if(bE){if(r)for(i in WE)if((o=fE[i])&&EE(o,e))try{delete o[e]}catch(lj){}if(PE[e]&&!r)return;try{return IE(PE,e,r?t:jE&&PE[e]||t)}catch(lj){}}for(i in WE)!(o=fE[i])||o[e]&&!r||IE(o,e,t)}},getTypedArrayConstructor:zE,isView:function(e){if(!gE(e))return!1;var t=vE(e);return"DataView"===t||EE(WE,t)||EE(KE,t)},isTypedArray:qE,TypedArray:PE,TypedArrayPrototype:xE},YE=r,XE=o,$E=cm,QE=JE.NATIVE_ARRAY_BUFFER_VIEWS,ZE=YE.ArrayBuffer,ev=YE.Int8Array,tv=!QE||!XE((function(){ev(1)}))||!XE((function(){new ev(-1)}))||!$E((function(e){new ev,new ev(null),new ev(1.5),new ev(e)}),!0)||XE((function(){return 1!==new ev(new ZE(2),1,void 0).length})),rv=H,iv=Math.floor,ov=Number.isInteger||function(e){return!rv(e)&&isFinite(e)&&iv(e)===e},nv=ii,av=RangeError,sv=function(e){var t=nv(e);if(t<0)throw new av("The argument can't be less than 0");return t},cv=RangeError,lv=function(e,t){var r=sv(e);if(r%t)throw new cv("Wrong offset");return r},uv=Math.round,dv=lo,hv=lt,pv=TypeError,mv=function(e){var t=hv(e,"number");if("number"==typeof t)throw new pv("Can't convert number to bigint");return BigInt(t)},fv=Zo,_v=l,gv=Du,Ev=Ve,vv=hi,yv=Fp,Tv=Op,Iv=bp,Av=function(e){var t=dv(e);return"BigInt64Array"===t||"BigUint64Array"===t},Sv=JE.aTypedArrayConstructor,Rv=mv,bv=Zo,wv=N,Dv=Ve,Cv=hi,Nv=bn,kv=T([].push),Ov=function(e){var t=1===e,r=2===e,i=3===e,o=4===e,n=6===e,a=7===e,s=5===e||n;return function(c,l,u,d){for(var h,p,m=Dv(c),f=wv(m),_=Cv(f),g=bv(l,u),E=0,v=d||Nv,y=t?v(c,_):r||a?v(c,0):void 0;_>E;E++)if((s||E in f)&&(p=g(h=f[E],E,m),e))if(t)y[E]=p;else if(p)switch(e){case 3:return!0;case 5:return h;case 6:return E;case 2:kv(y,h)}else switch(e){case 4:return!1;case 7:kv(y,h)}return n?-1:i||o?o:y}},Mv={forEach:Ov(0),map:Ov(1),filter:Ov(2),some:Ov(3),every:Ov(4),find:Ov(5),findIndex:Ov(6),filterReject:Ov(7)},Lv=hi,Pv=to,xv=r,Uv=l,Vv=n,Fv=tv,Bv=JE,Hv=_u,jv=jc,Gv=_,Wv=qt,Kv=ov,zv=ui,qv=zc,Jv=lv,Yv=function(e){var t=uv(e);return t<0?0:t>255?255:255&t},Xv=ht,$v=He,Qv=lo,Zv=H,ey=de,ty=ia,ry=K,iy=ts,oy=Qr.f,ny=function(e){var t,r,i,o,n,a,s,c,l=gv(this),u=Ev(e),d=arguments.length,h=d>1?arguments[1]:void 0,p=void 0!==h,m=Tv(u);if(m&&!Iv(m))for(c=(s=yv(u,m)).next,u=[];!(a=_v(c,s)).done;)u.push(a.value);for(p&&d>2&&(h=fv(h,arguments[2])),r=vv(u),i=new(Sv(l))(r),o=Av(i),t=0;r>t;t++)n=p?h(u[t],t):u[t],i[t]=o?Rv(n):+n;return i},ay=Mv.forEach,sy=Tu,cy=_o,ly=Dt,uy=i,dy=function(e,t,r){for(var i=0,o=arguments.length>2?r:Lv(t),n=new e(o);o>i;)n[i]=t[i++];return n},hy=ml,py=Cr.get,my=Cr.set,fy=Cr.enforce,_y=ly.f,gy=uy.f,Ey=xv.RangeError,vy=Hv.ArrayBuffer,yy=vy.prototype,Ty=Hv.DataView,Iy=Bv.NATIVE_ARRAY_BUFFER_VIEWS,Ay=Bv.TYPED_ARRAY_TAG,Sy=Bv.TypedArray,Ry=Bv.TypedArrayPrototype,by=Bv.isTypedArray,wy="BYTES_PER_ELEMENT",Dy="Wrong length",Cy=function(e,t){cy(e,t,{configurable:!0,get:function(){return py(this)[t]}})},Ny=function(e){var t;return ry(yy,e)||"ArrayBuffer"===(t=Qv(e))||"SharedArrayBuffer"===t},ky=function(e,t){return by(e)&&!ey(t)&&t in e&&Kv(+t)&&t>=0},Oy=function(e,t){return t=Xv(t),ky(e,t)?Gv(2,e[t]):gy(e,t)},My=function(e,t,r){return t=Xv(t),!(ky(e,t)&&Zv(r)&&$v(r,"value"))||$v(r,"get")||$v(r,"set")||r.configurable||$v(r,"writable")&&!r.writable||$v(r,"enumerable")&&!r.enumerable?_y(e,t,r):(e[t]=r.value,e)};Vv?(Iy||(uy.f=Oy,ly.f=My,Cy(Ry,"buffer"),Cy(Ry,"byteOffset"),Cy(Ry,"byteLength"),Cy(Ry,"length")),Pv({target:"Object",stat:!0,forced:!Iy},{getOwnPropertyDescriptor:Oy,defineProperty:My}),hE.exports=function(e,t,r){var i=e.match(/\d+/)[0]/8,o=e+(r?"Clamped":"")+"Array",n="get"+e,a="set"+e,s=xv[o],c=s,l=c&&c.prototype,u={},d=function(e,t){_y(e,t,{get:function(){return function(e,t){var r=py(e);return r.view[n](t*i+r.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,o){var n=py(e);n.view[a](t*i+n.byteOffset,r?Yv(o):o,!0)}(this,t,e)},enumerable:!0})};Iy?Fv&&(c=t((function(e,t,r,o){return jv(e,l),hy(Zv(t)?Ny(t)?void 0!==o?new s(t,Jv(r,i),o):void 0!==r?new s(t,Jv(r,i)):new s(t):by(t)?dy(c,t):Uv(ny,c,t):new s(qv(t)),e,c)})),iy&&iy(c,Sy),ay(oy(s),(function(e){e in c||Wv(c,e,s[e])})),c.prototype=l):(c=t((function(e,t,r,o){jv(e,l);var n,a,s,u=0,h=0;if(Zv(t)){if(!Ny(t))return by(t)?dy(c,t):Uv(ny,c,t);n=t,h=Jv(r,i);var p=t.byteLength;if(void 0===o){if(p%i)throw new Ey(Dy);if((a=p-h)<0)throw new Ey(Dy)}else if((a=zv(o)*i)+h>p)throw new Ey(Dy);s=a/i}else s=qv(t),n=new vy(a=s*i);for(my(e,{buffer:n,byteOffset:h,byteLength:a,length:s,view:new Ty(n)});u<s;)d(e,u++)})),iy&&iy(c,Sy),l=c.prototype=ty(Ry)),l.constructor!==c&&Wv(l,"constructor",c),fy(l).TypedArrayConstructor=c,Ay&&Wv(l,Ay,o);var h=c!==s;u[o]=c,Pv({global:!0,constructor:!0,forced:h,sham:!Iy},u),wy in c||Wv(c,wy,i),wy in l||Wv(l,wy,i),sy(o)}):hE.exports=function(){},dE("Float32",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Float64",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Int8",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Int16",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Int32",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Uint8",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Uint8",(function(e){return function(t,r,i){return e(this,t,r,i)}}),!0),dE("Uint16",(function(e){return function(t,r,i){return e(this,t,r,i)}})),dE("Uint32",(function(e){return function(t,r,i){return e(this,t,r,i)}}));var Ly=ul,Py=mv,xy=lo,Uy=l,Vy=o,Fy=JE.aTypedArray,By=JE.exportTypedArrayMethod,Hy=T("".slice);By("fill",(function(e){var t=arguments.length;Fy(this);var r="Big"===Hy(xy(this),0,3)?Py(e):+e;return Uy(Ly,this,r,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),Vy((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e})));var jy=r,Gy=l,Wy=JE,Ky=hi,zy=lv,qy=Ve,Jy=o,Yy=jy.RangeError,Xy=jy.Int8Array,$y=Xy&&Xy.prototype,Qy=$y&&$y.set,Zy=Wy.aTypedArray,eT=Wy.exportTypedArrayMethod,tT=!Jy((function(){var e=new Uint8ClampedArray(2);return Gy(Qy,e,{length:1,0:3},1),3!==e[1]})),rT=tT&&Wy.NATIVE_ARRAY_BUFFER_VIEWS&&Jy((function(){var e=new Xy(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));eT("set",(function(e){Zy(this);var t=zy(arguments.length>1?arguments[1]:void 0,1),r=qy(e);if(tT)return Gy(Qy,this,r,t);var i=this.length,o=Ky(r),n=0;if(o+t>i)throw new Yy("Wrong length");for(;n<o;)this[t+n]=r[n++]}),!tT||rT);var iT=Yo,oT=o,nT=ge,aT=uc,sT=hc,cT=pc,lT=te,uT=fc,dT=JE.aTypedArray,hT=JE.exportTypedArrayMethod,pT=r.Uint16Array,mT=pT&&iT(pT.prototype.sort),fT=!(!mT||oT((function(){mT(new pT(2),null)}))&&oT((function(){mT(new pT(2),{})}))),_T=!!mT&&!oT((function(){if(lT)return lT<74;if(sT)return sT<67;if(cT)return!0;if(uT)return uT<602;var e,t,r=new pT(516),i=Array(516);for(e=0;e<516;e++)t=e%4,r[e]=515-e,i[e]=e-2*t+3;for(mT(r,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(r[e]!==i[e])return!0}));hT("sort",(function(e){return void 0!==e&&nT(e),_T?mT(this,e):aT(dT(this),function(e){return function(t,r){return void 0!==e?+e(t,r)||0:r!=r?-1:t!=t?1:0===t&&0===r?1/t>0&&1/r<0?1:-1:t>r}}(e))}),!_T||fT);var gT={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},ET=_t("span").classList,vT=ET&&ET.constructor&&ET.constructor.prototype,yT=vT===Object.prototype?void 0:vT,TT=Mv.forEach,IT=Ks("forEach")?[].forEach:function(e){return TT(this,e,arguments.length>1?arguments[1]:void 0)},AT=r,ST=gT,RT=yT,bT=IT,wT=qt,DT=function(e){if(e&&e.forEach!==bT)try{wT(e,"forEach",bT)}catch(lj){e.forEach=bT}};for(var CT in ST)ST[CT]&&DT(AT[CT]&&AT[CT].prototype);DT(RT);var NT=r,kT=gT,OT=yT,MT=Ls,LT=qt,PT=Ua,xT=tt("iterator"),UT=MT.values,VT=function(e,t){if(e){if(e[xT]!==UT)try{LT(e,xT,UT)}catch(lj){e[xT]=UT}if(PT(e,t,!0),kT[t])for(var r in MT)if(e[r]!==MT[r])try{LT(e,r,MT[r])}catch(lj){e[r]=MT[r]}}};for(var FT in kT)VT(NT[FT]&&NT[FT].prototype,FT);VT(OT,"DOMTokenList");var BT=sg.charAt,HT=po,jT=Cr,GT=Ts,WT=Is,KT="String Iterator",zT=jT.set,qT=jT.getterFor(KT);GT(String,"String",(function(e){zT(this,{type:KT,string:HT(e),index:0})}),(function(){var e,t=qT(this),r=t.string,i=t.index;return i>=r.length?WT(void 0,!0):(e=BT(r,i),t.index+=e.length,WT(e,!1))}));var JT=o,YT=n,XT=tt("iterator"),$T=!JT((function(){var e=new URL("b?a=1&b=2&c=3","https://a"),t=e.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),i="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),i+=r+e})),r.delete("a",2),r.delete("b",void 0),!t.size&&!YT||!t.sort||"https://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[XT]||"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"!==i||"x"!==new URL("https://x",void 0).host})),QT=n,ZT=T,eI=l,tI=o,rI=Pn,iI=wi,oI=u,nI=Ve,aI=N,sI=Object.assign,cI=Object.defineProperty,lI=ZT([].concat),uI=!sI||tI((function(){if(QT&&1!==sI({b:1},sI(cI({},"a",{enumerable:!0,get:function(){cI(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol("assign detection"),i="abcdefghijklmnopqrst";return e[r]=7,i.split("").forEach((function(e){t[e]=e})),7!==sI({},e)[r]||rI(sI({},t)).join("")!==i}))?function(e,t){for(var r=nI(e),i=arguments.length,o=1,n=iI.f,a=oI.f;i>o;)for(var s,c=aI(arguments[o++]),l=n?lI(rI(c),n(c)):rI(c),u=l.length,d=0;u>d;)s=l[d++],QT&&!eI(a,c,s)||(r[s]=c[s]);return r}:sI,dI=Mt,hI=Gp,pI=n,mI=Dt,fI=_,_I=Zo,gI=l,EI=Ve,vI=function(e,t,r,i){try{return i?t(dI(r)[0],r[1]):t(r)}catch(lj){hI(e,"throw",lj)}},yI=bp,TI=vn,II=hi,AI=function(e,t,r){pI?mI.f(e,t,fI(0,r)):e[t]=r},SI=Fp,RI=Op,bI=Array,wI=T,DI=2147483647,CI=/[^\0-\u007E]/,NI=/[.\u3002\uFF0E\uFF61]/g,kI="Overflow: input needs wider integers to process",OI=RangeError,MI=wI(NI.exec),LI=Math.floor,PI=String.fromCharCode,xI=wI("".charCodeAt),UI=wI([].join),VI=wI([].push),FI=wI("".replace),BI=wI("".split),HI=wI("".toLowerCase),jI=function(e){return e+22+75*(e<26)},GI=function(e,t,r){var i=0;for(e=r?LI(e/700):e>>1,e+=LI(e/t);e>455;)e=LI(e/35),i+=36;return LI(i+36*e/(e+38))},WI=function(e){var t=[];e=function(e){for(var t=[],r=0,i=e.length;r<i;){var o=xI(e,r++);if(o>=55296&&o<=56319&&r<i){var n=xI(e,r++);56320==(64512&n)?VI(t,((1023&o)<<10)+(1023&n)+65536):(VI(t,o),r--)}else VI(t,o)}return t}(e);var r,i,o=e.length,n=128,a=0,s=72;for(r=0;r<e.length;r++)(i=e[r])<128&&VI(t,PI(i));var c=t.length,l=c;for(c&&VI(t,"-");l<o;){var u=DI;for(r=0;r<e.length;r++)(i=e[r])>=n&&i<u&&(u=i);var d=l+1;if(u-n>LI((DI-a)/d))throw new OI(kI);for(a+=(u-n)*d,n=u,r=0;r<e.length;r++){if((i=e[r])<n&&++a>DI)throw new OI(kI);if(i===n){for(var h=a,p=36;;){var m=p<=s?1:p>=s+26?26:p-s;if(h<m)break;var f=h-m,_=36-m;VI(t,PI(jI(m+f%_))),h=LI(f/_),p+=36}VI(t,PI(jI(h))),s=GI(a,d,l===c),a=0,l++}}a++,n++}return UI(t,"")},KI=to,zI=T,qI=si,JI=RangeError,YI=String.fromCharCode,XI=String.fromCodePoint,$I=zI([].join);KI({target:"String",stat:!0,arity:1,forced:!!XI&&1!==XI.length},{fromCodePoint:function(e){for(var t,r=[],i=arguments.length,o=0;i>o;){if(t=+arguments[o++],qI(t,1114111)!==t)throw new JI(t+" is not a valid code point");r[o]=t<65536?YI(t):YI(55296+((t-=65536)>>10),t%1024+56320)}return $I(r,"")}});var QI=to,ZI=r,eA=Pd,tA=W,rA=l,iA=T,oA=n,nA=$T,aA=$r,sA=_o,cA=Fc,lA=Ua,uA=Wa,dA=Cr,hA=jc,pA=F,mA=He,fA=Zo,_A=lo,gA=Mt,EA=H,vA=po,yA=ia,TA=_,IA=Fp,AA=Op,SA=Is,RA=id,bA=uc,wA=tt("iterator"),DA="URLSearchParams",CA=DA+"Iterator",NA=dA.set,kA=dA.getterFor(DA),OA=dA.getterFor(CA),MA=eA("fetch"),LA=eA("Request"),PA=eA("Headers"),xA=LA&&LA.prototype,UA=PA&&PA.prototype,VA=ZI.TypeError,FA=ZI.encodeURIComponent,BA=String.fromCharCode,HA=tA("String","fromCodePoint"),jA=parseInt,GA=iA("".charAt),WA=iA([].join),KA=iA([].push),zA=iA("".replace),qA=iA([].shift),JA=iA([].splice),YA=iA("".split),XA=iA("".slice),$A=iA(/./.exec),QA=/\+/g,ZA=/^[0-9a-f]+$/i,eS=function(e,t){var r=XA(e,t,t+2);return $A(ZA,r)?jA(r,16):NaN},tS=function(e){for(var t=0,r=128;r>0&&e&r;r>>=1)t++;return t},rS=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},iS=function(e){for(var t=(e=zA(e,QA," ")).length,r="",i=0;i<t;){var o=GA(e,i);if("%"===o){if("%"===GA(e,i+1)||i+3>t){r+="%",i++;continue}var n=eS(e,i+1);if(n!=n){r+=o,i++;continue}i+=2;var a=tS(n);if(0===a)o=BA(n);else{if(1===a||a>4){r+="�",i++;continue}for(var s=[n],c=1;c<a&&!(++i+3>t||"%"!==GA(e,i));){var l=eS(e,i+1);if(l!=l){i+=3;break}if(l>191||l<128)break;KA(s,l),i+=2,c++}if(s.length!==a){r+="�";continue}var u=rS(s);null===u?r+="�":o=HA(u)}}r+=o,i++}return r},oS=/[!'()~]|%20/g,nS={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},aS=function(e){return nS[e]},sS=function(e){return zA(FA(e),oS,aS)},cS=uA((function(e,t){NA(this,{type:CA,target:kA(e).entries,index:0,kind:t})}),DA,(function(){var e=OA(this),t=e.target,r=e.index++;if(!t||r>=t.length)return e.target=null,SA(void 0,!0);var i=t[r];switch(e.kind){case"keys":return SA(i.key,!1);case"values":return SA(i.value,!1)}return SA([i.key,i.value],!1)}),!0),lS=function(e){this.entries=[],this.url=null,void 0!==e&&(EA(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===GA(e,0)?XA(e,1):e:vA(e)))};lS.prototype={type:DA,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,r,i,o,n,a,s,c=this.entries,l=AA(e);if(l)for(r=(t=IA(e,l)).next;!(i=rA(r,t)).done;){if(n=(o=IA(gA(i.value))).next,(a=rA(n,o)).done||(s=rA(n,o)).done||!rA(n,o).done)throw new VA("Expected sequence with length 2");KA(c,{key:vA(a.value),value:vA(s.value)})}else for(var u in e)mA(e,u)&&KA(c,{key:u,value:vA(e[u])})},parseQuery:function(e){if(e)for(var t,r,i=this.entries,o=YA(e,"&"),n=0;n<o.length;)(t=o[n++]).length&&(r=YA(t,"="),KA(i,{key:iS(qA(r)),value:iS(WA(r,"="))}))},serialize:function(){for(var e,t=this.entries,r=[],i=0;i<t.length;)e=t[i++],KA(r,sS(e.key)+"="+sS(e.value));return WA(r,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var uS=function(){hA(this,dS);var e=NA(this,new lS(arguments.length>0?arguments[0]:void 0));oA||(this.size=e.entries.length)},dS=uS.prototype;if(cA(dS,{append:function(e,t){var r=kA(this);RA(arguments.length,2),KA(r.entries,{key:vA(e),value:vA(t)}),oA||this.length++,r.updateURL()},delete:function(e){for(var t=kA(this),r=RA(arguments.length,1),i=t.entries,o=vA(e),n=r<2?void 0:arguments[1],a=void 0===n?n:vA(n),s=0;s<i.length;){var c=i[s];if(c.key!==o||void 0!==a&&c.value!==a)s++;else if(JA(i,s,1),void 0!==a)break}oA||(this.size=i.length),t.updateURL()},get:function(e){var t=kA(this).entries;RA(arguments.length,1);for(var r=vA(e),i=0;i<t.length;i++)if(t[i].key===r)return t[i].value;return null},getAll:function(e){var t=kA(this).entries;RA(arguments.length,1);for(var r=vA(e),i=[],o=0;o<t.length;o++)t[o].key===r&&KA(i,t[o].value);return i},has:function(e){for(var t=kA(this).entries,r=RA(arguments.length,1),i=vA(e),o=r<2?void 0:arguments[1],n=void 0===o?o:vA(o),a=0;a<t.length;){var s=t[a++];if(s.key===i&&(void 0===n||s.value===n))return!0}return!1},set:function(e,t){var r=kA(this);RA(arguments.length,1);for(var i,o=r.entries,n=!1,a=vA(e),s=vA(t),c=0;c<o.length;c++)(i=o[c]).key===a&&(n?JA(o,c--,1):(n=!0,i.value=s));n||KA(o,{key:a,value:s}),oA||(this.size=o.length),r.updateURL()},sort:function(){var e=kA(this);bA(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,r=kA(this).entries,i=fA(e,arguments.length>1?arguments[1]:void 0),o=0;o<r.length;)i((t=r[o++]).value,t.key,this)},keys:function(){return new cS(this,"keys")},values:function(){return new cS(this,"values")},entries:function(){return new cS(this,"entries")}},{enumerable:!0}),aA(dS,wA,dS.entries,{name:"entries"}),aA(dS,"toString",(function(){return kA(this).serialize()}),{enumerable:!0}),oA&&sA(dS,"size",{get:function(){return kA(this).entries.length},configurable:!0,enumerable:!0}),lA(uS,DA),QI({global:!0,constructor:!0,forced:!nA},{URLSearchParams:uS}),!nA&&pA(PA)){var hS=iA(UA.has),pS=iA(UA.set),mS=function(e){if(EA(e)){var t,r=e.body;if(_A(r)===DA)return t=e.headers?new PA(e.headers):new PA,hS(t,"content-type")||pS(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),yA(e,{body:TA(0,vA(r)),headers:TA(0,t)})}return e};if(pA(MA)&&QI({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return MA(e,arguments.length>1?mS(arguments[1]):{})}}),pA(LA)){var fS=function(e){return hA(this,xA),new LA(e,arguments.length>1?mS(arguments[1]):{})};xA.constructor=fS,fS.prototype=xA,QI({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:fS})}}var _S,gS=to,ES=n,vS=$T,yS=r,TS=Zo,IS=T,AS=$r,SS=_o,RS=jc,bS=He,wS=uI,DS=function(e){var t=EI(e),r=TI(this),i=arguments.length,o=i>1?arguments[1]:void 0,n=void 0!==o;n&&(o=_I(o,i>2?arguments[2]:void 0));var a,s,c,l,u,d,h=RI(t),p=0;if(!h||this===bI&&yI(h))for(a=II(t),s=r?new this(a):bI(a);a>p;p++)d=n?o(t[p],p):t[p],AI(s,p,d);else for(s=r?new this:[],u=(l=SI(t,h)).next;!(c=gI(u,l)).done;p++)d=n?vI(l,o,[c.value,p],!0):c.value,AI(s,p,d);return s.length=p,s},CS=ac,NS=sg.codeAt,kS=function(e){var t,r,i=[],o=BI(FI(HI(e),NI,"."),".");for(t=0;t<o.length;t++)r=o[t],VI(i,MI(CI,r)?"xn--"+WI(r):r);return UI(i,".")},OS=po,MS=Ua,LS=id,PS={URLSearchParams:uS,getState:kA},xS=Cr,US=xS.set,VS=xS.getterFor("URL"),FS=PS.URLSearchParams,BS=PS.getState,HS=yS.URL,jS=yS.TypeError,GS=yS.parseInt,WS=Math.floor,KS=Math.pow,zS=IS("".charAt),qS=IS(/./.exec),JS=IS([].join),YS=IS(1..toString),XS=IS([].pop),$S=IS([].push),QS=IS("".replace),ZS=IS([].shift),eR=IS("".split),tR=IS("".slice),rR=IS("".toLowerCase),iR=IS([].unshift),oR="Invalid scheme",nR="Invalid host",aR="Invalid port",sR=/[a-z]/i,cR=/[\d+-.a-z]/i,lR=/\d/,uR=/^0x/i,dR=/^[0-7]+$/,hR=/^\d+$/,pR=/^[\da-f]+$/i,mR=/[\0\t\n\r #%/:<>?@[\\\]^|]/,fR=/[\0\t\n\r #/:<>?@[\\\]^|]/,_R=/^[\u0000-\u0020]+/,gR=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ER=/[\t\n\r]/g,vR=function(e){var t,r,i,o;if("number"==typeof e){for(t=[],r=0;r<4;r++)iR(t,e%256),e=WS(e/256);return JS(t,".")}if("object"==typeof e){for(t="",i=function(e){for(var t=null,r=1,i=null,o=0,n=0;n<8;n++)0!==e[n]?(o>r&&(t=i,r=o),i=null,o=0):(null===i&&(i=n),++o);return o>r?i:t}(e),r=0;r<8;r++)o&&0===e[r]||(o&&(o=!1),i===r?(t+=r?":":"::",o=!0):(t+=YS(e[r],16),r<7&&(t+=":")));return"["+t+"]"}return e},yR={},TR=wS({},yR,{" ":1,'"':1,"<":1,">":1,"`":1}),IR=wS({},TR,{"#":1,"?":1,"{":1,"}":1}),AR=wS({},IR,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),SR=function(e,t){var r=NS(e,0);return r>32&&r<127&&!bS(t,e)?e:encodeURIComponent(e)},RR={ftp:21,file:null,http:80,https:443,ws:80,wss:443},bR=function(e,t){var r;return 2===e.length&&qS(sR,zS(e,0))&&(":"===(r=zS(e,1))||!t&&"|"===r)},wR=function(e){var t;return e.length>1&&bR(tR(e,0,2))&&(2===e.length||"/"===(t=zS(e,2))||"\\"===t||"?"===t||"#"===t)},DR=function(e){return"."===e||"%2e"===rR(e)},CR={},NR={},kR={},OR={},MR={},LR={},PR={},xR={},UR={},VR={},FR={},BR={},HR={},jR={},GR={},WR={},KR={},zR={},qR={},JR={},YR={},XR=function(e,t,r){var i,o,n,a=OS(e);if(t){if(o=this.parse(a))throw new jS(o);this.searchParams=null}else{if(void 0!==r&&(i=new XR(r,!0)),o=this.parse(a,null,i))throw new jS(o);(n=BS(new FS)).bindURL(this),this.searchParams=n}};XR.prototype={type:"URL",parse:function(e,t,r){var i,o,n,a,s,c=this,l=t||CR,u=0,d="",h=!1,p=!1,m=!1;for(e=OS(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=QS(e,_R,""),e=QS(e,gR,"$1")),e=QS(e,ER,""),i=DS(e);u<=i.length;){switch(o=i[u],l){case CR:if(!o||!qS(sR,o)){if(t)return oR;l=kR;continue}d+=rR(o),l=NR;break;case NR:if(o&&(qS(cR,o)||"+"===o||"-"===o||"."===o))d+=rR(o);else{if(":"!==o){if(t)return oR;d="",l=kR,u=0;continue}if(t&&(c.isSpecial()!==bS(RR,d)||"file"===d&&(c.includesCredentials()||null!==c.port)||"file"===c.scheme&&!c.host))return;if(c.scheme=d,t)return void(c.isSpecial()&&RR[c.scheme]===c.port&&(c.port=null));d="","file"===c.scheme?l=jR:c.isSpecial()&&r&&r.scheme===c.scheme?l=OR:c.isSpecial()?l=xR:"/"===i[u+1]?(l=MR,u++):(c.cannotBeABaseURL=!0,$S(c.path,""),l=qR)}break;case kR:if(!r||r.cannotBeABaseURL&&"#"!==o)return oR;if(r.cannotBeABaseURL&&"#"===o){c.scheme=r.scheme,c.path=CS(r.path),c.query=r.query,c.fragment="",c.cannotBeABaseURL=!0,l=YR;break}l="file"===r.scheme?jR:LR;continue;case OR:if("/"!==o||"/"!==i[u+1]){l=LR;continue}l=UR,u++;break;case MR:if("/"===o){l=VR;break}l=zR;continue;case LR:if(c.scheme=r.scheme,o===_S)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=CS(r.path),c.query=r.query;else if("/"===o||"\\"===o&&c.isSpecial())l=PR;else if("?"===o)c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=CS(r.path),c.query="",l=JR;else{if("#"!==o){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=CS(r.path),c.path.length--,l=zR;continue}c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,c.path=CS(r.path),c.query=r.query,c.fragment="",l=YR}break;case PR:if(!c.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){c.username=r.username,c.password=r.password,c.host=r.host,c.port=r.port,l=zR;continue}l=VR}else l=UR;break;case xR:if(l=UR,"/"!==o||"/"!==zS(d,u+1))continue;u++;break;case UR:if("/"!==o&&"\\"!==o){l=VR;continue}break;case VR:if("@"===o){h&&(d="%40"+d),h=!0,n=DS(d);for(var f=0;f<n.length;f++){var _=n[f];if(":"!==_||m){var g=SR(_,AR);m?c.password+=g:c.username+=g}else m=!0}d=""}else if(o===_S||"/"===o||"?"===o||"#"===o||"\\"===o&&c.isSpecial()){if(h&&""===d)return"Invalid authority";u-=DS(d).length+1,d="",l=FR}else d+=o;break;case FR:case BR:if(t&&"file"===c.scheme){l=WR;continue}if(":"!==o||p){if(o===_S||"/"===o||"?"===o||"#"===o||"\\"===o&&c.isSpecial()){if(c.isSpecial()&&""===d)return nR;if(t&&""===d&&(c.includesCredentials()||null!==c.port))return;if(a=c.parseHost(d))return a;if(d="",l=KR,t)return;continue}"["===o?p=!0:"]"===o&&(p=!1),d+=o}else{if(""===d)return nR;if(a=c.parseHost(d))return a;if(d="",l=HR,t===BR)return}break;case HR:if(!qS(lR,o)){if(o===_S||"/"===o||"?"===o||"#"===o||"\\"===o&&c.isSpecial()||t){if(""!==d){var E=GS(d,10);if(E>65535)return aR;c.port=c.isSpecial()&&E===RR[c.scheme]?null:E,d=""}if(t)return;l=KR;continue}return aR}d+=o;break;case jR:if(c.scheme="file","/"===o||"\\"===o)l=GR;else{if(!r||"file"!==r.scheme){l=zR;continue}switch(o){case _S:c.host=r.host,c.path=CS(r.path),c.query=r.query;break;case"?":c.host=r.host,c.path=CS(r.path),c.query="",l=JR;break;case"#":c.host=r.host,c.path=CS(r.path),c.query=r.query,c.fragment="",l=YR;break;default:wR(JS(CS(i,u),""))||(c.host=r.host,c.path=CS(r.path),c.shortenPath()),l=zR;continue}}break;case GR:if("/"===o||"\\"===o){l=WR;break}r&&"file"===r.scheme&&!wR(JS(CS(i,u),""))&&(bR(r.path[0],!0)?$S(c.path,r.path[0]):c.host=r.host),l=zR;continue;case WR:if(o===_S||"/"===o||"\\"===o||"?"===o||"#"===o){if(!t&&bR(d))l=zR;else if(""===d){if(c.host="",t)return;l=KR}else{if(a=c.parseHost(d))return a;if("localhost"===c.host&&(c.host=""),t)return;d="",l=KR}continue}d+=o;break;case KR:if(c.isSpecial()){if(l=zR,"/"!==o&&"\\"!==o)continue}else if(t||"?"!==o)if(t||"#"!==o){if(o!==_S&&(l=zR,"/"!==o))continue}else c.fragment="",l=YR;else c.query="",l=JR;break;case zR:if(o===_S||"/"===o||"\\"===o&&c.isSpecial()||!t&&("?"===o||"#"===o)){if(".."===(s=rR(s=d))||"%2e."===s||".%2e"===s||"%2e%2e"===s?(c.shortenPath(),"/"===o||"\\"===o&&c.isSpecial()||$S(c.path,"")):DR(d)?"/"===o||"\\"===o&&c.isSpecial()||$S(c.path,""):("file"===c.scheme&&!c.path.length&&bR(d)&&(c.host&&(c.host=""),d=zS(d,0)+":"),$S(c.path,d)),d="","file"===c.scheme&&(o===_S||"?"===o||"#"===o))for(;c.path.length>1&&""===c.path[0];)ZS(c.path);"?"===o?(c.query="",l=JR):"#"===o&&(c.fragment="",l=YR)}else d+=SR(o,IR);break;case qR:"?"===o?(c.query="",l=JR):"#"===o?(c.fragment="",l=YR):o!==_S&&(c.path[0]+=SR(o,yR));break;case JR:t||"#"!==o?o!==_S&&("'"===o&&c.isSpecial()?c.query+="%27":c.query+="#"===o?"%23":SR(o,yR)):(c.fragment="",l=YR);break;case YR:o!==_S&&(c.fragment+=SR(o,TR))}u++}},parseHost:function(e){var t,r,i;if("["===zS(e,0)){if("]"!==zS(e,e.length-1))return nR;if(t=function(e){var t,r,i,o,n,a,s,c=[0,0,0,0,0,0,0,0],l=0,u=null,d=0,h=function(){return zS(e,d)};if(":"===h()){if(":"!==zS(e,1))return;d+=2,u=++l}for(;h();){if(8===l)return;if(":"!==h()){for(t=r=0;r<4&&qS(pR,h());)t=16*t+GS(h(),16),d++,r++;if("."===h()){if(0===r)return;if(d-=r,l>6)return;for(i=0;h();){if(o=null,i>0){if(!("."===h()&&i<4))return;d++}if(!qS(lR,h()))return;for(;qS(lR,h());){if(n=GS(h(),10),null===o)o=n;else{if(0===o)return;o=10*o+n}if(o>255)return;d++}c[l]=256*c[l]+o,2!=++i&&4!==i||l++}if(4!==i)return;break}if(":"===h()){if(d++,!h())return}else if(h())return;c[l++]=t}else{if(null!==u)return;d++,u=++l}}if(null!==u)for(a=l-u,l=7;0!==l&&a>0;)s=c[l],c[l--]=c[u+a-1],c[u+--a]=s;else if(8!==l)return;return c}(tR(e,1,-1)),!t)return nR;this.host=t}else if(this.isSpecial()){if(e=kS(e),qS(mR,e))return nR;if(t=function(e){var t,r,i,o,n,a,s,c=eR(e,".");if(c.length&&""===c[c.length-1]&&c.length--,(t=c.length)>4)return e;for(r=[],i=0;i<t;i++){if(""===(o=c[i]))return e;if(n=10,o.length>1&&"0"===zS(o,0)&&(n=qS(uR,o)?16:8,o=tR(o,8===n?1:2)),""===o)a=0;else{if(!qS(10===n?hR:8===n?dR:pR,o))return e;a=GS(o,n)}$S(r,a)}for(i=0;i<t;i++)if(a=r[i],i===t-1){if(a>=KS(256,5-t))return null}else if(a>255)return null;for(s=XS(r),i=0;i<r.length;i++)s+=r[i]*KS(256,3-i);return s}(e),null===t)return nR;this.host=t}else{if(qS(fR,e))return nR;for(t="",r=DS(e),i=0;i<r.length;i++)t+=SR(r[i],yR);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"===this.scheme},includesCredentials:function(){return""!==this.username||""!==this.password},isSpecial:function(){return bS(RR,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"===this.scheme&&1===t&&bR(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,r=e.username,i=e.password,o=e.host,n=e.port,a=e.path,s=e.query,c=e.fragment,l=t+":";return null!==o?(l+="//",e.includesCredentials()&&(l+=r+(i?":"+i:"")+"@"),l+=vR(o),null!==n&&(l+=":"+n)):"file"===t&&(l+="//"),l+=e.cannotBeABaseURL?a[0]:a.length?"/"+JS(a,"/"):"",null!==s&&(l+="?"+s),null!==c&&(l+="#"+c),l},setHref:function(e){var t=this.parse(e);if(t)throw new jS(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"===e)try{return new $R(e.path[0]).origin}catch(lj){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(OS(e)+":",CR)},getUsername:function(){return this.username},setUsername:function(e){var t=DS(OS(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<t.length;r++)this.username+=SR(t[r],AR)}},getPassword:function(){return this.password},setPassword:function(e){var t=DS(OS(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<t.length;r++)this.password+=SR(t[r],AR)}},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,FR)},getHostname:function(){var e=this.host;return null===e?"":vR(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,BR)},getPort:function(){var e=this.port;return null===e?"":OS(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""===(e=OS(e))?this.port=null:this.parse(e,HR))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+JS(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,KR))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""===(e=OS(e))?this.query=null:("?"===zS(e,0)&&(e=tR(e,1)),this.query="",this.parse(e,JR)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!==(e=OS(e))?("#"===zS(e,0)&&(e=tR(e,1)),this.fragment="",this.parse(e,YR)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var $R=function(e){var t=RS(this,QR),r=LS(arguments.length,1)>1?arguments[1]:void 0,i=US(t,new XR(e,!1,r));ES||(t.href=i.serialize(),t.origin=i.getOrigin(),t.protocol=i.getProtocol(),t.username=i.getUsername(),t.password=i.getPassword(),t.host=i.getHost(),t.hostname=i.getHostname(),t.port=i.getPort(),t.pathname=i.getPathname(),t.search=i.getSearch(),t.searchParams=i.getSearchParams(),t.hash=i.getHash())},QR=$R.prototype,ZR=function(e,t){return{get:function(){return VS(this)[e]()},set:t&&function(e){return VS(this)[t](e)},configurable:!0,enumerable:!0}};if(ES&&(SS(QR,"href",ZR("serialize","setHref")),SS(QR,"origin",ZR("getOrigin")),SS(QR,"protocol",ZR("getProtocol","setProtocol")),SS(QR,"username",ZR("getUsername","setUsername")),SS(QR,"password",ZR("getPassword","setPassword")),SS(QR,"host",ZR("getHost","setHost")),SS(QR,"hostname",ZR("getHostname","setHostname")),SS(QR,"port",ZR("getPort","setPort")),SS(QR,"pathname",ZR("getPathname","setPathname")),SS(QR,"search",ZR("getSearch","setSearch")),SS(QR,"searchParams",ZR("getSearchParams")),SS(QR,"hash",ZR("getHash","setHash"))),AS(QR,"toJSON",(function(){return VS(this).serialize()}),{enumerable:!0}),AS(QR,"toString",(function(){return VS(this).serialize()}),{enumerable:!0}),HS){var eb=HS.createObjectURL,tb=HS.revokeObjectURL;eb&&AS($R,"createObjectURL",TS(eb,HS)),tb&&AS($R,"revokeObjectURL",TS(tb,HS))}MS($R,"URL"),gS({global:!0,constructor:!0,forced:!vS,sham:!ES},{URL:$R});var rb=l;to({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return rb(URL.prototype.toString,this)}});var ib,ob=Object.create,nb=Object.defineProperty,ab=Object.defineProperties,sb=Object.getOwnPropertyDescriptor,cb=Object.getOwnPropertyDescriptors,lb=Object.getOwnPropertyNames,ub=Object.getOwnPropertySymbols,db=Object.getPrototypeOf,hb=Object.prototype.hasOwnProperty,pb=Object.prototype.propertyIsEnumerable,mb=Reflect.get,fb=Math.pow,_b=(e,t,r)=>t in e?nb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,gb=(e,t)=>{for(var r in t||(t={}))hb.call(t,r)&&_b(e,r,t[r]);if(ub)for(var r of ub(t))pb.call(t,r)&&_b(e,r,t[r]);return e},Eb=(e,t)=>ab(e,cb(t)),vb=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yb=(e,t)=>{for(var r in t)nb(e,r,{get:t[r],enumerable:!0})},Tb=(e,t,r)=>(r=null!=e?ob(db(e)):{},((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of lb(t))!hb.call(e,o)&&o!==r&&nb(e,o,{get:()=>t[o],enumerable:!(i=sb(t,o))||i.enumerable});return e})(!t&&e&&e.__esModule?r:nb(r,"default",{value:e,enumerable:!0}),e)),Ib=(e,t,r,i)=>{for(var o,n=i>1?void 0:i?sb(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(n=(i?o(t,r,n):o(n))||n);return i&&n&&nb(t,r,n),n},Ab=(e,t,r)=>_b(e,"symbol"!=typeof t?t+"":t,r),Sb=(e,t,r)=>mb(db(e),r,t),Rb=(e,t,r)=>new Promise(((i,o)=>{var n=e=>{try{s(r.next(e))}catch(wk){o(wk)}},a=e=>{try{s(r.throw(e))}catch(wk){o(wk)}},s=e=>e.done?i(e.value):Promise.resolve(e.value).then(n,a);s((r=r.apply(e,t)).next())})),bb=vb(((e,t)=>{var r=Object.prototype.hasOwnProperty,i="~";function o(){}function n(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function a(e,t,r,o,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new n(r,o||e,a),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function c(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),c.prototype.eventNames=function(){var e,t,o=[];if(0===this._eventsCount)return o;for(t in e=this._events)r.call(e,t)&&o.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,n=r.length,a=new Array(n);o<n;o++)a[o]=r[o].fn;return a},c.prototype.listenerCount=function(e){var t=i?i+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,n,a){var s=i?i+e:e;if(!this._events[s])return!1;var c,l,u=this._events[s],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,o),!0;case 5:return u.fn.call(u.context,t,r,o,n),!0;case 6:return u.fn.call(u.context,t,r,o,n,a),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var h,p=u.length;for(l=0;l<p;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,o);break;default:if(!c)for(h=1,c=new Array(d-1);h<d;h++)c[h-1]=arguments[h];u[l].fn.apply(u[l].context,c)}}return!0},c.prototype.on=function(e,t,r){return a(this,e,t,r,!1)},c.prototype.once=function(e,t,r){return a(this,e,t,r,!0)},c.prototype.removeListener=function(e,t,r,o){var n=i?i+e:e;if(!this._events[n])return this;if(!t)return s(this,n),this;var a=this._events[n];if(a.fn)a.fn===t&&(!o||a.once)&&(!r||a.context===r)&&s(this,n);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||o&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[n]=1===l.length?l[0]:l:s(this,n)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&s(this,t)):(this._events=new o,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=i,c.EventEmitter=c,void 0!==t&&(t.exports=c)})),wb=vb(((e,t)=>{var r=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(r).forEach((function(e){r[e].forEach((function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")}))}))})),Db=vb((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},r=function(e,r,i){var o=e.name&&e.names;e.push&&!r[e.push]?r[e.push]=[]:o&&!r[e.name]&&(r[e.name]={});var n=e.push?{}:o?r[e.name]:r;(function(e,r,i,o){if(o&&!i)r[o]=t(e[1]);else for(var n=0;n<i.length;n+=1)null!=e[n+1]&&(r[i[n]]=t(e[n+1]))})(i.match(e.reg),n,e.names,e.name),e.push&&r[e.push].push(n)},i=wb(),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},n=[],a=t;return e.split(/(\r\n|\r|\n)/).filter(o).forEach((function(e){var t=e[0],o=e.slice(2);"m"===t&&(n.push({rtp:[],fmtp:[]}),a=n[n.length-1]);for(var s=0;s<(i[t]||[]).length;s+=1){var c=i[t][s];if(c.reg.test(o))return r(c,a,o)}})),t.media=n,t};var n=function(e,r){var i=r.split(/=(.+)/,2);return 2===i.length?e[i[0]]=t(i[1]):1===i.length&&r.length>1&&(e[i[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(n,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var r=[],i=e.split(" ").map(t),o=0;o<i.length;o+=3)r.push({component:i[o],ip:i[o+1],port:i[o+2]});return r},e.parseImageAttributes=function(e){return e.split(" ").map((function(e){return e.substring(1,e.length-1).split(",").reduce(n,{})}))},e.parseSimulcastStreamList=function(e){return e.split(";").map((function(e){return e.split(",").map((function(e){var r,i=!1;return"~"!==e[0]?r=t(e):(r=t(e.substring(1,e.length)),i=!0),{scid:r,paused:i}}))}))}})),Cb=vb(((e,t)=>{var r=wb(),i=/%[sdv%]/g,o=function(e){var t=1,r=arguments,o=r.length;return e.replace(i,(function(e){if(t>=o)return e;var i=r[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(i);case"%d":return Number(i);case"%v":return""}}))},n=function(e,t,r){var i=[e+"="+(t.format instanceof Function?t.format(t.push?r:r[t.name]):t.format)];if(t.names)for(var n=0;n<t.names.length;n+=1){var a=t.names[n];t.name?i.push(r[t.name][a]):i.push(r[t.names[n]])}else i.push(r[t.name]);return o.apply(null,i)},a=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["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 i=t.outerOrder||a,o=t.innerOrder||s,c=[];return i.forEach((function(t){r[t].forEach((function(r){r.name in e&&null!=e[r.name]?c.push(n(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach((function(e){c.push(n(t,r,e))}))}))})),e.media.forEach((function(e){c.push(n("m",r.m[0],e)),o.forEach((function(t){r[t].forEach((function(r){r.name in e&&null!=e[r.name]?c.push(n(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach((function(e){c.push(n(t,r,e))}))}))}))})),c.join("\r\n")+"\r\n"}})),Nb=vb((e=>{var t=Db(),r=Cb();e.write=r,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})),kb=((ib=kb||{})[ib.INVALID_PARAMETER=4096]="INVALID_PARAMETER",ib[ib.INVALID_OPERATION=4097]="INVALID_OPERATION",ib[ib.NOT_SUPPORTED=4098]="NOT_SUPPORTED",ib[ib.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",ib[ib.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",ib[ib.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",ib[ib.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",ib[ib.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",ib[ib.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",ib[ib.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",ib[ib.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",ib[ib.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",ib[ib.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",ib[ib.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",ib[ib.CLIENT_BANNED=16448]="CLIENT_BANNED",ib[ib.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",ib[ib.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",ib[ib.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",ib[ib.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",ib[ib.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",ib[ib.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",ib[ib.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",ib[ib.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",ib[ib.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",ib[ib.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",ib[ib.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",ib[ib.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",ib[ib.API_CALL_ABORTED=16461]="API_CALL_ABORTED",ib[ib.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",ib[ib.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",ib[ib.UNKNOWN=65535]="UNKNOWN",ib),Ob=kb,Mb=class extends Error{constructor(e){let{name:t="RtcError",message:r,code:i=Ob.UNKNOWN,extraCode:o=0,constraint:n}=e,a="<".concat(function(e){for(let t in Ob)if(Ob[t]===e)return t;return"UNKNOWN"}(i)," 0x").concat(i.toString(16),">"),s="".concat(r).concat(n?" constraint: ".concat(n):"").concat(null!=r&&r.includes(a)?"":" ".concat(a));super(s),Ab(this,"code"),Ab(this,"extraCode"),Ab(this,"message"),Ab(this,"originMessage"),Ab(this,"name"),Ab(this,"constraint"),this.code=i,this.extraCode=o,this.name=t,this.message=s,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Lb=Mb;(new Date).getTime();var Pb=function(){return(new Date).getTime()+0},xb=function(){let e=new Date;return e.setTime(Pb()),e.toLocaleString()},Ub=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)},Vb={};yb(Vb,{bytes2ms:()=>wD,convertObjectNumberToInt:()=>_C,copyProperties:()=>bD,deepClone:()=>aC,deepMerge:()=>nC,delay:()=>gC,fibonacci:()=>LD,formatedTime:()=>lC,getConstructorName:()=>JD,getContainerFromElement:()=>cC,getEnv:()=>ED,getInternalVersion:()=>ZD,getLoggerUrl:()=>yD,getMuteStateFromFlag:()=>rC,getNetworkType:()=>ID,getNumNetworkType:()=>RD,getReconnectionTimeout:()=>PD,getStringByteLength:()=>hC,getTurnServer:()=>iC,getUint32Version:()=>fC,getValueType:()=>xD,getViewListFromView:()=>sC,glog:()=>kD,ipv4ToUint32:()=>oC,isArray:()=>GD,isAudioWorkletSupported:()=>YD,isBoolean:()=>HD,isConstructor:()=>qD,isEmpty:()=>tC,isFunction:()=>UD,isLangChinese:()=>OD,isMediaStreamTrack:()=>WD,isNumber:()=>BD,isObject:()=>jD,isOverseaSdkAppId:()=>vD,isPlainObject:()=>MD,isPortrait:()=>pC,isPromise:()=>zD,isRemoteTrack:()=>KD,isString:()=>FD,isUndefined:()=>VD,loadImage:()=>mC,ms2bytes:()=>CD,ms2samples:()=>ND,performanceNow:()=>$D,promiseAny:()=>XD,samples2ms:()=>DD,setNetworkType:()=>SD,stringify:()=>uC,stringifyIncludeValue:()=>dC,throttlePromise:()=>EC});var Fb={};yb(Fb,{AUDIO_MUTE_BIT:()=>Sw,AUDIO_STAT_BIT:()=>Aw,AUX_STAT_BIT:()=>Iw,AUX_STREAM_MSID:()=>Cw,BACKEND_ENV:()=>Ew,BASE_DOC_URL:()=>ew,BASE_HOST:()=>Xb,CAPABILITIES_KEYS:()=>_D,CLASS_NAME:()=>sD,CLOUD_CONSOLE_URL:()=>Zb,CROSS_ROOM_BIT:()=>ww,DATA_FREEZE_TIMING:()=>eD,DEFAULT_ASSETS_URL:()=>tw,DOC_URL:()=>rw,DTLS_STATE_UNKNOWN:()=>Fw,ENV_NAME:()=>sw,EXCHANGE_SDP_TIMEOUT:()=>Yw,IS_WORKER:()=>Kb,IS_WORKLET:()=>zb,KIBANA_EVENT:()=>zw,LOCAL_STREAM_PUBLISH_STATE:()=>Zw,LOGGER_CMD_TYPE:()=>aw,LOGGER_DOMAIN:()=>iw,LOGGER_DOMAIN_OVERSEA:()=>ow,LOG_LEVEL:()=>cw,LOG_LEVEL_NAME:()=>hD,MAIN_STREAM_MSID:()=>Dw,MAX_RTT:()=>gD,MICROPHONE_COMMUNICATIONS:()=>dD,MICROPHONE_DEFAULT:()=>lD,MUTE_ALL_BIT:()=>bw,NAME:()=>_w,NETWORK_TYPE:()=>dw,NOT_SUPPORTED_H264:()=>Qw,PAUSED_RETRY_COUNT:()=>cD,PEERCONNECTION_CONNECTING_TIMEOUT:()=>oD,PEER_CONNECTION_STATE:()=>Bw,PEER_LEAVE_REASON:()=>pD,RECOVER_CAPTURE_INTERVAL:()=>fD,REMOTE_STREAM_TYPE_AUX:()=>kw,REMOTE_STREAM_TYPE_MAIN:()=>Nw,RENDER_FREEZE_TIMING:()=>tD,SCHEDULE_DOMAIN:()=>nD,SCHEDULE_TIMEOUT:()=>aD,SDP_SEMANTICS_PLAN_B:()=>$w,SDP_SEMANTICS_UNIFIED_PLAN:()=>Xw,SECOND_HOST:()=>$b,SIGNAL_PING_PONG_INTERVAL:()=>uw,SIGNAL_PING_TIMEOUT:()=>lw,SIGNAL_RECONNECTION_COUNT:()=>Kw,SMALL_STAT_BIT:()=>Tw,SPEAKER_DEFAULT:()=>uD,STORAGE_EXPIRES_TIME:()=>hw,STREAM_TYPE_BIG:()=>rD,STREAM_TYPE_SMALL:()=>iD,SUBSCRIBE_SMALL_RETRY_COUNT:()=>mD,SYNC_USER_LIST_INTERVAL:()=>qw,Scene:()=>vw,THIRD_HOST:()=>Qb,TRANSPORT_DIRECTION:()=>gw,TRTC_ERROR_ASSISTANCE:()=>nw,TRTC_QUALITY_BAD:()=>xw,TRTC_QUALITY_DISCONNECTED:()=>Vw,TRTC_QUALITY_EXCELLENT:()=>Mw,TRTC_QUALITY_GOOD:()=>Lw,TRTC_QUALITY_POOR:()=>Pw,TRTC_QUALITY_UNKNOWN:()=>Ow,TRTC_QUALITY_VERY_BAD:()=>Uw,UPDATE_OFFER_TIMEOUT:()=>Jw,VIDEO_MUTE_BIT:()=>Rw,VIDEO_STAT_BIT:()=>yw,audioProfileMap:()=>pw,getRetryCount:()=>Gw,getScriptDir:()=>qb,innerVersion:()=>Bb,loggerProxy:()=>Jb,screenProfileMap:()=>fw,setLoggerProxy:()=>Yb,setRetryCount:()=>jw,setVersion:()=>jb,version:()=>Hb,videoProfileMap:()=>mw});var Bb="4.15.00.1600",Hb="5.0.0";function jb(e){Hb=e;let[t,r,i]=e.split(".").map((e=>parseInt(e,10)));Bb="".concat(t,".").concat(Math.min(15,r),".").concat(Math.min(15,i),".").concat(r.toString().padStart(2,"0")).concat(i.toString().padStart(2,"0"))}var Gb,Wb,Kb="undefined"!=typeof importScripts,zb="undefined"!=typeof registerProcessor,qb=()=>{let e=Kb?self.location.href:document.currentScript.src;return e.substring(0,e.lastIndexOf("/")+1)},Jb="",Yb=e=>Jb=e,Xb="web.sdk.qcloud.com",$b="web.sdk.tencent.cn",Qb="web.sdk.cloud.tencent.cn",Zb="https://console.cloud.tencent.com/trtc",ew="https://".concat(Xb,"/trtc/webrtc/v5/doc"),tw="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",rw="".concat(ew,"/zh-cn/"),iw="https://yun.tim.qq.com",ow="https://apisgp.my-imcloud.com",nw="trtc_error_assistance",aw={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},sw={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},cw=((Wb=cw||{})[Wb.TRACE=0]="TRACE",Wb[Wb.DEBUG=1]="DEBUG",Wb[Wb.INFO=2]="INFO",Wb[Wb.WARN=3]="WARN",Wb[Wb.ERROR=4]="ERROR",Wb[Wb.NONE=5]="NONE",Wb),lw=18e3,uw=2e3,dw={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},hw=6048e5,pw={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}},mw={"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}},fw={"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}},_w={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"},gw={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Ew={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},vw=((Gb=vw||{}).LIVE="live",Gb.RTC="rtc",Gb),yw=1,Tw=2,Iw=4,Aw=8,Sw=64,Rw=16,bw=112,ww=128,Dw="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",Cw="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",Nw=_w.MAIN,kw=_w.AUXILIARY,Ow=0,Mw=1,Lw=2,Pw=3,xw=4,Uw=5,Vw=6,Fw="unknown",Bw={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Hw=1/0;function jw(e){Hw=e}function Gw(){return Hw}var Ww,Kw=30,zw={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"},qw=1e4,Jw=1e4,Yw=1e4,Xw="unified-plan",$w="plan-b",Qw=1028,Zw=((Ww=Zw||{})[Ww.UNPUBLISH=-1]="UNPUBLISH",Ww[Ww.PUBLISHING=0]="PUBLISHING",Ww[Ww.PUBLISHED=1]="PUBLISHED",Ww),eD=500,tD=1e3,rD=_w.BIG,iD=_w.SMALL,oD=1e4,nD={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"},aD=2e3,sD={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},cD=5,lD="default",uD=lD,dD="communications",hD=Object.keys(cw),pD=["normal leave","timeout leave","kick","role change"],mD=10,fD=2e3,_D=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],gD=1e4,ED=function(){return new URLSearchParams(location.search).get("trtc_env")||""},vD=e=>Number(e)<14e8,yD=function(e,t){let r;r=Jb||(vD(e)?ow:iw);let i=Math.floor(Math.random()*fb(2,31));return"".concat(r,"/v5/AVQualityReportSvc/C2S?random=").concat(i,"&sdkappid=").concat(e,"&cmdtype=").concat(t)},TD="unknown";function ID(){if("unknown"!==TD)return TD;let{userAgent:e,connection:t}=navigator,r=(e.match(/NetType\/\S+/)||[])[0]||"";r=r.toLowerCase().replace("nettype/",""),"3gnet"===r&&(r="3g");let i=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return"slow-2"===o&&(o="2g"),i&&(TD=AD(i,o)),TD}function AD(e,t){if(dw[e])return e;switch(e){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";default:return"unknown"}}function SD(e){TD=AD(e)}function RD(){return dw[ID()]}function bD(e,t){for(let r of Reflect.ownKeys(t))if("constructor"!==r&&"prototype"!==r&&"name"!==r){let i=Object.getOwnPropertyDescriptor(t,r)||"";Object.defineProperty(e,r,i)}return e}function wD(e){return DD(e/4,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function DD(e){return 1e3*e/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function CD(e){return 4*ND(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)}function ND(e){return e*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:48e3)/1e3}var kD="undefined"!=typeof window&&"function"==typeof window.glog?window.glog:()=>{},OD=()=>{let e=navigator.language;return e=e.substring(0,2),"zh"===e},MD=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 r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&Function.prototype.toString.call(r)===Function.prototype.toString.call(Object)};function LD(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return e<=1?t:LD(e-1,t,(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)+t)}function PD(e){return e>8?3e4:1e3*LD(e)}function xD(e){return Reflect.apply(Object.prototype.toString,e,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var UD=e=>"function"==typeof e,VD=e=>void 0===e,FD=e=>"string"==typeof e,BD=e=>"number"==typeof e,HD=e=>"boolean"==typeof e,jD=e=>"object"===xD(e),GD=e=>"array"===xD(e),WD=e=>xD(e)==="MediaStreamTrack".toLowerCase(),KD=e=>e.isRemote,zD=e=>"promise"===xD(e),qD=e=>UD(e)&&e.prototype.constructor===e,JD=e=>qD(e)?e.prototype.constructor.name:"",YD="undefined"!=typeof AudioWorkletNode;function XD(e){return new Promise(((t,r)=>{let i=[];e.forEach((o=>{o.then(t).catch((t=>{i.push(t),i.length===e.length&&r(i)}))}))}))}function $D(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var QD=e=>+e<10?"0".concat(e):e,ZD=e=>{let t=e.match(/^\d+\.\d+\.\d+/)[0];if(!t)return e;let r=t.split("."),i=QD(r[1])+QD(r[2]);return r[1]-15>0&&(r[1]="15"),r[2]-15>0&&(r[2]="15"),"".concat(r.join("."),".").concat(i)},eC=Object.prototype.hasOwnProperty;function tC(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(MD(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(eC.call(e,t))return!1;return!0}return!1}function rC(e,t){return{userId:t,hasAudio:!!(e&Aw),hasVideo:!!(e&yw),hasAuxiliary:!!(e&Iw),hasSmall:!!(e&Tw),audioMuted:!!(e&Sw),videoMuted:!!(e&Rw),audioAvailable:!(!(e&Aw)||e&Sw),videoAvailable:!(!(e&yw)||e&Rw)}}function iC(e){let t={urls:e.url.startsWith("turn:")||e.url.startsWith("turns:")?e.url:"turn:".concat(e.url)};return!VD(e.username)&&!VD(e.credential)&&(t.username=e.username,t.credential=e.credential,t.credentialType="password",VD(e.credentialType)||(t.credentialType=e.credentialType)),t}function oC(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!FD(e))return 0;let r=e.split(".");return t?(Number(r[0])<<24|Number(r[1])<<16|Number(r[2])<<8|Number(r[3]))>>>0:(Number(r[3])<<24|Number(r[2])<<16|Number(r[1])<<8|Number(r[0]))>>>0}var nC=function(e,t,r,i){if(!jD(e)||!jD(t))return 0;let o,n=0,a=Object.keys(t);for(let s=0,c=a.length;s<c;s++)if(o=a[s],!(VD(t[o])||r&&r.includes(o)))if(jD(e[o])&&jD(t[o]))n+=nC(e[o],t[o],r,i);else{if(i&&i.includes(t[o]))continue;e[o]!==t[o]&&(e[o]=aC(t[o]),n+=1)}return n};function aC(e){if(GD(e)){let t=[];return e.forEach(((e,r)=>{t[r]=aC(e)})),t}if(jD(e)){let t={};return Object.keys(e).forEach((r=>{t[r]=aC(e[r])})),t}return e}var sC=e=>{let t=[];if(GD(e))t=[...e];else if(FD(e)){let r=document.getElementById(e);r&&t.push(r)}else e&&t.push(e);return t},cC=e=>FD(e)?document.getElementById(e):e,lC=()=>(e=>{let t=e=>e<10?"0".concat(e):"".concat(e),r=e.getFullYear(),i=e.getMonth()+1,o=e.getDate(),n=t(e.getHours()),a=t(e.getMinutes()),s=t(e.getSeconds());return"".concat(r,"/").concat(i,"/").concat(o," ").concat(n,":").concat(a,":").concat(s)})(new Date);function uC(e,t){let{keysToInclude:r,keysToExclude:i}=t;try{if(GD(e))return"[".concat(e.map((e=>uC(e,{keysToInclude:r,keysToExclude:i}))).join(","),"]");if(!MD(e)||!GD(r)&&!GD(i))return JSON.stringify(e);let t={},o=new Set(r),n=new Set(i);return Object.keys(e).forEach((a=>{(0===n.size&&o.has(a)||0===o.size&&!n.has(a))&&(t[a]=MD(e[a])||GD(e[a])?JSON.parse(uC(e[a],{keysToExclude:i,keysToInclude:r})):e[a])})),JSON.stringify(t)}catch(Ww){return"{}"}}function dC(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[];return Object.keys(e).forEach((i=>{t===e[i]&&r.push(i)})),uC(e,{keysToInclude:r})}function hC(e){return e.replace(/[\u4e00-\u9fa5]/g,"aa").length}var pC=()=>{var e,t,r,i;return null!=(e=window.screen)&&e.orientation?!(null==(i=null==(r=null==(t=window.screen)?void 0:t.orientation)?void 0:r.type)||!i.includes("portrait")):0===window.orientation||180===window.orientation},mC=e=>Rb(void 0,null,(function*(){return new Promise(((t,r)=>{let i;if(FD(e))i=new Image,i.crossOrigin="anonymous",i.src=e;else if(i=e,i.complete)return void t(i);i.onload=()=>t(i),i.onerror=()=>{r(new Lb({code:Ob.INVALID_PARAMETER,message:"load image failed, url: ".concat(e)}))}}))})),fC=e=>{let t=e.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]},_C=e=>(Object.keys(e).forEach((t=>{BD(e[t])&&(t.startsWith("uint")||t.startsWith("int"))?e[t]=Math.floor(e[t]):(MD(e[t])||GD(e[t]))&&_C(e[t])})),e);function gC(e,t){return new Promise((r=>{let i=setTimeout(r,e);t&&t(i)}))}function EC(e,t){let r=null;return function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];return r||(r=e.apply(t||this,o),r.finally((()=>r=null)),r)}}function vC(e){let{url:t,body:r,method:i="POST",timeout:o,priority:n}=e;return new Promise(((e,a)=>{if("fetch"in window)return fetch(t,{method:i,body:r,priority:n}).then((e=>e.text())).then((t=>{try{e({data:JSON.parse(t)})}catch(wk){e({data:t})}}),a);let s=new XMLHttpRequest;s.onreadystatechange=()=>{if(4===s.readyState)if(s.status>=200&&s.status<300)try{let t=JSON.parse(s.response);e({data:t})}catch(t){e({data:s.response})}else a({status:s.status,statusText:s.statusText||"request failed!"})},s.timeout=o||5e3,s.open(i,t,!0),s.send(r)}))}function yC(e){return Rb(this,null,(function*(){let t=$D(),r=JSON.stringify(e);try{if(!CompressionStream||r.length<=2800)return r;let e=new Blob([r],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),i=yield(yield(yield new Response(e)).blob()).arrayBuffer();return Tk.debug("compressJSON ".concat(r.length," -> ").concat(i.byteLength," ").concat($D()-t,"ms")),i}catch(Ww){return r}}))}var TC=Object.prototype.hasOwnProperty,IC=e=>"function"==typeof e,AC=e=>e.isRemote;function SC(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(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 r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&Function.prototype.toString.call(r)===Function.prototype.toString.call(Object)}(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(TC.call(e,t))return!1;return!0}return!1}var RC=function(e){let{retryFunction:t,settings:r,onError:i,onRetrying:o,onRetryFailed:n,onRetrySuccess:a,context:s}=e;return function(){for(var e=arguments.length,c=new Array(e),l=0;l<e;l++)c[l]=arguments[l];let{retries:u=5,timeout:d=1e3}=r,h=0,p=-1,m=0,f=(e,r)=>Rb(this,null,(function*(){let l=s||this;try{let r=yield t.apply(l,c);h>0&&a&&a.call(this,h),h=0,e(r)}catch(_){let t=()=>{clearTimeout(p),h=0,m=2,r(_)},a=()=>{2!==m&&h<(IC(u)?u():u)?(h++,m=1,IC(o)&&o.call(this,h,t),p=window.setTimeout((()=>{p=-1,f(e,r)}),IC(d)?d(h):d)):(t(),IC(n)&&n.call(this,_))};IC(i)?i.call(this,{error:_,retry:a,reject:r,retryFuncArgs:c,retriedCount:h}):a()}}));return new Promise(f)}},bC=class{constructor(e){Ab(this,"userId"),Ab(this,"remoteUserId"),Ab(this,"id"),Ab(this,"sdkAppId"),Ab(this,"type"),Ab(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal="boolean"!=typeof 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 r=this.isLocal?this.userId:this.remoteUserId;t.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&"main"!==this.type?"*":"").concat(this.id).concat(r?"|".concat(r):"","]")),Tk.log(e,t,void 0===this.userId||SC(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(2,t)}debug(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(1,t)}warn(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(4,t)}},wC={};yb(wC,{ANDROID_VERSION:()=>BC,CHROME_MAJOR_VERSION:()=>WN,CHROME_VERSION:()=>KN,EDGE_VERSION:()=>qC,EDG_MAJOR_VERSION:()=>XC,EDG_VERSION:()=>YC,FIREFOX_MAJOR_VERSION:()=>KC,FIREFOX_VERSION:()=>WC,HUAWEI_VERSION:()=>kN,IE_VERSION:()=>sN,IOS_MAIN_VERSION:()=>$N,IOS_VERSION:()=>XN,IPADQQB_VERSION:()=>EN,IS_ANDROID:()=>FC,IS_ANDROID_WEBVIEW:()=>YN,IS_ANY_SAFARI:()=>qN,IS_CHROME:()=>jN,IS_CHROME_OS:()=>IN,IS_CHROMIUM_BASE:()=>HN,IS_EDG:()=>JC,IS_EDGE:()=>zC,IS_ELECTRON:()=>RN,IS_FIREFOX:()=>GC,IS_HEADLESS_CHROME:()=>GN,IS_HONOR:()=>NN,IS_HUAWEI:()=>CN,IS_HUAWEIBROWSER:()=>DN,IS_IE:()=>aN,IS_IE8:()=>nN,IS_IOS:()=>VC,IS_IOS_13_OR_14:()=>ek,IS_IOS_15_1:()=>ZN,IS_IPAD:()=>LC,IS_IPADQQB:()=>gN,IS_IPAD_PRO:()=>PC,IS_IPHONE:()=>xC,IS_IPOD:()=>UC,IS_LINUX:()=>TN,IS_LOCAL:()=>tk,IS_MAC:()=>yN,IS_MACQQB:()=>fN,IS_MIBROWSER:()=>bN,IS_MQQB:()=>dN,IS_NATIVE_ANDROID:()=>jC,IS_OLD_ANDROID:()=>HC,IS_OPENHARMONY:()=>VN,IS_OPPOBROWSER:()=>LN,IS_SAFARI:()=>zN,IS_SAFARI_15_1:()=>QN,IS_SAMSUNGBROWSER:()=>ON,IS_SOGOU:()=>ZC,IS_SOGOUM:()=>$C,IS_TBS:()=>tN,IS_UCBROWSER:()=>SN,IS_VIVOBROWSER:()=>xN,IS_WECHAT:()=>cN,IS_WIN:()=>vN,IS_WQQB:()=>pN,IS_WX:()=>AN,IS_X5MQQB:()=>uN,IS_XWEB:()=>iN,MACQQB_VERSION:()=>_N,MI_VERSION:()=>wN,MQQB_VERSION:()=>hN,OPENHARMONY_VERSION:()=>FN,OPPO_VERSION:()=>PN,SAFARI_VERSION:()=>JN,SAMSUNG_VERSION:()=>MN,SOGOUM_VERSION:()=>QC,SOGOU_VERSION:()=>eN,TBS_VERSION:()=>rN,UA_DATA_STRING:()=>sk,USER_AGENT:()=>DC,VIVO_VERSION:()=>UN,WECHAT_VERSION:()=>lN,WQQB_VERSION:()=>mN,XWEB_VERSION:()=>oN,browserInfo:()=>ik,getBrowserInfo:()=>ok,getChromeMajorVersion:()=>BN,getDeviceModel:()=>lk,getOSName:()=>dk,getOSNumber:()=>hk,getOSString:()=>pk,getOSType:()=>fk,getTerminalType:()=>mk,getUserAgentData:()=>ck,isLocalStorageEnabled:()=>rk,isMobile:()=>ak});var DC="undefined"==typeof navigator?"":navigator.userAgent,CC=e=>new RegExp(e,"i").test(DC),NC=e=>{if(CC(e)){let t=new RegExp("".concat(e,"\\/([\\d.]+)")),r=DC.match(t);if(r&&r[1])return r[1]}return""},kC=e=>{if(CC(e)){let t=new RegExp("".concat(e,"\\/(\\d+)")),r=DC.match(t);if(r&&r[1])return parseFloat(r[1])}return NaN},OC=/AppleWebKit\/([\d.]+)/i.exec(DC),MC=OC?parseFloat(OC[1]):NaN,LC=CC("iPad"),PC="undefined"!=typeof navigator&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&CC("Macintosh"),xC=CC("iPhone")&&!LC,UC=CC("iPod"),VC=xC||LC||UC||PC,FC=CC("Android"),BC=function(){if(FC){let e=DC.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(e){let t=e[1]&&parseFloat(e[1]),r=e[2]&&parseFloat(e[2]);if(t&&r)return parseFloat("".concat(e[1],".").concat(e[2]));if(t)return t}}return NaN}(),HC=FC&&CC("webkit")&&BC<2.3,jC=FC&&BC<5&&MC<537,GC=CC("Firefox"),WC=NC("Firefox"),KC=kC("Firefox"),zC=CC("Edge"),qC=NC("Edge"),JC=CC("Edg"),YC=NC("Edg"),XC=kC("Edg"),$C=CC("SogouMobileBrowser"),QC=NC("SogouMobileBrowser"),ZC=CC("MetaSr\\s"),eN=NC("MetaSr\\s"),tN=CC("TBS"),rN=NC("TBS"),iN=CC("XWEB"),oN=NC("XWEB"),nN=CC("MSIE\\s8\\.0"),aN=CC("MSIE\\/\\d+"),sN=function(){if(aN){let e=/MSIE\s(\d+)\.\d/.exec(DC),t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(DC)&&/rv:11.0/.test(DC)&&(t=11),t}return NaN}(),cN=CC("(micromessenger|webbrowser)"),lN=NC("MicroMessenger"),uN=!tN&&CC("MQQBrowser")&&CC("COVC"),dN=!tN&&CC("MQQBrowser")&&!CC("COVC"),hN=dN||uN?NC("MQQBrowser"):"",pN=!tN&&CC(" QQBrowser"),mN=NC(" QQBrowser"),fN=!tN&&CC("QQBrowserLite"),_N=NC("QQBrowserLite"),gN=!tN&&CC("MQBHD"),EN=NC("MQBHD"),vN=CC("Windows"),yN=!VC&&CC("MAC OS X"),TN=!FC&&CC("Linux"),IN=CC("CrOS"),AN=CC("MicroMessenger"),SN=CC("UCBrowser"),RN=CC("Electron"),bN=CC("MiuiBrowser"),wN=NC("MiuiBrowser"),DN=CC("HuaweiBrowser"),CN=CC("Huawei")||CC("HUAWEI"),NN=CC("Honor")||CC("HONOR"),kN=NC("HuaweiBrowser"),ON=CC("SamsungBrowser"),MN=NC("SamsungBrowser"),LN=CC("HeyTapBrowser"),PN=NC("HeyTapBrowser"),xN=CC("VivoBrowser"),UN=NC("VivoBrowser"),VN=CC("OpenHarmony"),FN=NC("OpenHarmony"),BN=()=>kC("Chrome"),HN=CC("Chrome"),jN=!zC&&!ZC&&!$C&&!tN&&!iN&&!JC&&!pN&&!bN&&!DN&&!ON&&!LN&&!xN&&HN,GN=CC("HeadlessChrome"),WN=BN(),KN=NC("Chrome"),zN=!HN&&!dN&&!uN&&!fN&&!gN&&CC("Safari"),qN=zN||VC,JN=NC("Version"),YN=/Android.*(wv|.0.0.0)/.test(DC),XN=(()=>{if(PC)return JN;if(VC){let e=DC.match(/OS (\d+)_(\d+)/i);if(e&&e[1]){let t=e[1];return e[2]&&(t+=".".concat(e[2])),t}}return""})(),$N=Number(XN.split(".")[0]),QN="15.1"===JN,ZN="15.1"===XN,ek=(()=>{let e=Number(XN.split(".")[0]);return 14===e||13===e})(),tk="undefined"!=typeof location&&("file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname),rk=(()=>{let e;return()=>{if(void 0===e)try{e=!!window.localStorage}catch(Ck){e=!1}return e}})(),ik=ok();function ok(){let e=new Map([[GC,["Firefox",WC]],[JC,["Edg",YC]],[jN,["Chrome",KN]],[zN,["Safari",JN]],[tN,["TBS",rN]],[iN,["XWEB",oN]],[cN&&xC,["WeChat",lN]],[pN,["QQ(Win)",mN]],[dN,["QQ(Mobile)",hN]],[uN,["QQ(Mobile X5)",hN]],[fN,["QQ(Mac)",_N]],[gN,["QQ(iPad)",EN]],[bN,["MI",wN]],[DN,["HW",kN]],[ON,["Samsung",MN]],[LN,["OPPO",PN]],[xN,["VIVO",UN]],[zC,["EDGE",qC]],[$C,["SogouMobile",QC]],[ZC,["Sogou",eN]]]),t="unknown",r="unknown";return e.has(!0)&&([t,r]=e.get(!0)),{name:t,version:r}}var nk=null;function ak(){return nk&&"boolean"==typeof nk.mobile?nk.mobile:FC||VC||xC||LC||VN}var sk="";function ck(){return Rb(this,null,(function*(){if(nk)return nk;if(!navigator.userAgentData||"function"!=typeof navigator.userAgentData.getHighEntropyValues)return null;try{return(nk=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!sk&&(sk="UAData: ".concat(nk.platform,"/").concat(nk.platformVersion),nk.architecture&&nk.bitness&&(sk+=" ".concat(nk.architecture,"/").concat(nk.bitness)),nk.mobile&&(sk+=" mobile"),nk.model&&(sk+=" model: ".concat(nk.model)),nk.fullVersionList&&(sk+=" ".concat(nk.fullVersionList.filter((e=>"Not/A)Brand"!==e.brand)).map((e=>"".concat(e.brand,"/").concat(e.version))).join(",")))),nk}catch(iF){return null}}))}function lk(){return(null==nk?void 0:nk.model)||""}var uk=new Map([[FC,"Android"],[VC,"iOS"],[vN,"Windows"],[yN,"MacOS"],[TN,"Linux"],[IN,"ChromeOS"]]),dk=function(){return uk.get(!0)?uk.get(!0):nk?nk.platform:"unknown"};function hk(){return vN?1:FC?2:yN?3:VC?4:TN?5:IN?6:0}var pk=()=>{let e=dk();return e+="/".concat(ik.name,"/").concat(zN?ik.version:ik.version.split(".")[0]),null!=nk&&nk.platformVersion&&(e+="/".concat(nk.platformVersion)),null!=nk&&nk.architecture&&(e+="/".concat(nk.architecture)),e};function mk(){return FC?4:xC?2:LC?3:yN?12:vN?5:TN?13:VN?22:1}function fk(){return FC?"Android":xC?"iPhone":LC?"iPad":yN?"Mac":vN?"Windows":TN?"Linux":"unknown"}var _k,gk=new(Tb(bb(),1).default),Ek=((_k=Ek||{}).ROOM_DESTROY="1",_k.JOIN_START="21",_k.JOIN_SCHEDULE_SUCCESS="22",_k.JOIN_SIGNAL_CONNECTION_START="23",_k.JOIN_SIGNAL_CONNECTION_END="24",_k.JOIN_SEND_CMD="25",_k.JOIN_RECEIVED_CMD_RES="26",_k.JOIN_SUCCESS="27",_k.JOIN_FAILED="28",_k.LEAVE_START="51",_k.LEAVE_SEND_CMD="52",_k.LEAVE_SUCCESS="53",_k.PUBLISH_START="61",_k.SEND_FIRST_VIDEO_FRAME="62",_k.PUBLISH_FAILED="63",_k.SUBSCRIBE_START="81",_k.SUBSCRIBE_SUCCESS="82",_k.SUBSCRIBE_FAILED="84",_k.UNSUBSCRIBE_SUCCESS="83",_k.LOCAL_TRACK_CAPTURE_START="101",_k.LOCAL_TRACK_CAPTURE_SUCCESS="102",_k.LOCAL_TRACK_CAPTURE_FAILED="103",_k.LOCAL_TRACK_PUBLISHED="104",_k.LOCAL_TRACK_UNPUBLISHED="105",_k.LOCAL_TRACK_REPLACED="106",_k.SWITCH_DEVICE_SUCCESS="107",_k.TRACK_MUTED="108",_k.TRACK_UNMUTED="109",_k.REMOTE_TRACK_SUBSCRIBED="110",_k.REMOTE_TRACK_UNSUBSCRIBED="111",_k.LOCAL_TRACK_RECAPTURE="112",_k.PLAY_TRACK_START="151",_k.PLAYER_STATE_CHANGED="152",_k.VIDEO_LOADED_DATA="153",_k.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",_k.SIGNAL_CONNECTION_STATE_CHANGED="201",_k.PEER_CONNECTION_STATE_CHANGED="202",_k.SINGLE_CONNECTION_STAT="203",_k.SPC_RECONNECTED="204",_k.HEARTBEAT_REPORT="251",_k.RECEIVED_PUBLISHED_USER_LIST="252",_k.REMOTE_PUBLISH_STATE_CHANGED="253",_k.AUDIO_LEVEL_INTERVAL="260",_k.NETWORK_QUALITY="261",_k.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",_k.QUALITY_LIMITATION_CHANGED="263",_k.LOG="264",_k),vk=Ek,yk=class e{constructor(){Ab(this,"_isEnableUploadLog",!0),Ab(this,"_localJoinedUser",new Map),Ab(this,"_queue",[]),Ab(this,"_timeoutId",-1),Ab(this,"_logLevel",1),Ab(this,"_logLevelToUpload",2),!Kb&&!zb&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&-1!==this._timeoutId}installEvents(){gk.on(vk.JOIN_SCHEDULE_SUCCESS,(e=>{let{schedule:t}=e;var r;null!=(r=null==t?void 0:t.config)&&r.logLevelToUpload&&cw[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)})),gk.on(vk.JOIN_SUCCESS,(e=>{let{room:t}=e;this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()})),gk.once(vk.JOIN_FAILED,(()=>{this.startUpload()})),gk.on(vk.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 r=this._queue[t];if(r.forAllJoinedClients)this._localJoinedUser.forEach((t=>{let{userId:i,sdkAppId:o}=t;e.map.has(i)?e.map.get(i).logs.push(r):e.map.set(i,{userId:i,sdkAppId:o,logs:[r]})}));else if(FD(r.userId)&&BD(r.sdkAppId)){let{userId:t,sdkAppId:i}=r;e.map.has(t)?e.map.get(t).logs.push(r):e.map.set(t,{userId:t,sdkAppId:i,logs:[r]})}}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:r,sdkAppId:i,logs:o}=t[e];yield this.uploadLogWithRetry(JSON.stringify({timestamp:xb(),sdkAppId:String(i),userId:r,version:Hb,log:o.map((e=>e.log)).join("\n")}),i),o.forEach((e=>e.uploaded=!0))}}catch(Nk){}let r=t.filter((e=>!e.uploaded));r.length>0&&(this._queue=r.concat(this._queue))}))}uploadLogWithRetry(e,t){return RC({retryFunction:()=>vC({url:yD(t,aw.LOG),body:e,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:e=>{let{retry:t}=e;t()}})()}getPrefix(e){let t=new Date;return t.setTime(Pb()),"[".concat(Ub(t),"] <").concat(cw[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){VD(cw[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(FD(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch(Gb){return""}}log(t,r){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=arguments.length>3?arguments[3]:void 0,n=arguments.length>4?arguments[4]:void 0;var a;r.unshift(this.getPrefix(t));let s={log:r.reduce(((e,t)=>"".concat(e," ").concat(this.logChunkToString(t)).trim()),""),level:t,userId:o,sdkAppId:n,forAllJoinedClients:i};if(gk.emit(vk.LOG,{log:s}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(s),t<this._logLevel)return;let c=(null==(a=cw[t])?void 0:a.toLowerCase())||"info";e.PRINT_LOG_TAG?console[c]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...r):console[c](...r)}debug(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(1,t)}info(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(2,t)}warn(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(3,t)}error(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];this.log(4,t)}createLogger(e){return new bC(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),t=e?Number(e):-1;cw[t]&&(this._logLevelToUpload=t)}getQueue(){return this._queue}};Ab(yk,"PRINT_LOG_TAG",!(VC||FC||GN));var Tk=new yk,Ik=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)}))},Ak=new class{constructor(){Ab(this,"_prefix","TRTC"),Ab(this,"_queue",new Map)}getRealKey(e){return"".concat(this._prefix,"_").concat(e)}checkStorage(){rk()&&(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 r=JSON.parse(t);if(r&&r.expiresIn<Date.now())return!0}catch(Nk){return!1}return!1})).forEach((e=>localStorage.removeItem(e))))}doFlush(){if(rk())try{for(let[e,t]of this._queue)localStorage.setItem(e,JSON.stringify(t))}catch(Ck){Tk.warn(Ck)}}getItem(e){if(!rk())return null;try{let t=localStorage.getItem(this.getRealKey(e));if(!t)return null;let r=JSON.parse(t);return r&&r.expiresIn>=Date.now()?r.value:null}catch(Gb){Tk.warn(Gb)}}setItem(e,t){if(rk())try{let r={expiresIn:Date.now()+hw,value:t};this._queue.set(this.getRealKey(e),r)}catch(Ww){Tk.warn(Ww)}}deleteItem(e){if(!rk())return!1;try{return e=this.getRealKey(e),this._queue.delete(e),localStorage.removeItem(e),!0}catch(Gb){return Tk.warn(Gb),!1}}clear(){if(rk())try{localStorage.clear()}catch(Ck){Tk.warn(Ck)}}},Sk={};yb(Sk,{HTTPS_API:()=>tM,IS_GET_CAPABILITIES_SUPPORTED:()=>yM,IS_GET_SETTINGS_SUPPORTED:()=>vM,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>EM,IS_INSERTABLE_STREAM_SUPPORTED:()=>TM,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>MM,IS_RTC_RTP_SENDER_SUPPORTED:()=>fM,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>IM,IS_SEI_SUPPORTED:()=>AM,IS_SPC_SUPPORTED:()=>pM,basis:()=>CM,capabilityCheck:()=>kM,checkSystemRequirementsInternal:()=>$O,decodeSupportStatus:()=>XO,encodeSupportStatus:()=>YO,getBrowserInfo:()=>jO,getDisplayResolution:()=>iM,isAddTransceiverSupported:()=>hM,isBrowserSupported:()=>GO,isGetReceiversSupported:()=>lM,isGetSendersSupported:()=>uM,isGetTransceiversSupported:()=>dM,isGetUserMediaSupported:()=>oM,isMediaDevicesSupported:()=>KO,isMediaSessionSupported:()=>bM,isMediaStreamTrackProcessorSupported:()=>JO,isReplaceTrackSupported:()=>_M,isRequestVideoFrameCallbackSupported:()=>OM,isSIMDSupported:()=>DM,isScreenCaptureApiAvailable:()=>ZO,isSelectedCandidatePair:()=>rM,isSetParametersSupported:()=>gM,isSmallStreamAPISupported:()=>aM,isSmallStreamSupported:()=>sM,isStopTransceiverSupported:()=>mM,isTRTCSupported:()=>QO,isUnifiedPlanDefault:()=>cM,isUsedInHttpProtocol:()=>qO,isWebAudioSupported:()=>nM,isWebCodecSupported:()=>RM,isWebCodecsSupported:()=>WO,isWebRTCSupported:()=>SM,isWebTransportSupported:()=>wM});var Rk={};yb(Rk,{AUDIO_LEVEL_SCALE:()=>fO,AudioCodecPipelineType:()=>yO,AudioDecoderDowngradeState:()=>Xk,AudioPlayerMode:()=>hO,AudioType:()=>rO,BASIC_TYPE:()=>gO,BannedReason:()=>pO,CONNECTION_CLOSED_REASON:()=>Uk,ClientEvent:()=>Vk,CodecType:()=>TO,ConnectionEvent:()=>xk,ConnectionState:()=>Yk,DECODE_FAILED_ERROR_CODE:()=>IO,FacingMode:()=>uO,LeaveReason:()=>mO,LocalTrackEvent:()=>Bk,MULTI_VIDEO_DATA_TYPE:()=>aO,MediaType:()=>eO,MediaTypeLabel:()=>tO,MonitorEventId:()=>sO,MutedFlag:()=>Kk,NetworkQualityValue:()=>cO,PlayerState:()=>Hk,ReceiveMode:()=>lO,RemoteStreamType:()=>nO,RemoteTrackEvent:()=>Wk,RoomEvent:()=>jk,SceneNumber:()=>zk,StreamEvent:()=>Fk,StreamType:()=>oO,SubscribeMediaType:()=>_O,TIMER_TYPE:()=>SO,TRACK_ACTION:()=>Zk,TRACK_KIND:()=>Qk,TrackEvent:()=>Gk,UserRole:()=>Jk,UserRoleNumber:()=>qk,VideoCodec:()=>EO,VideoCodecPipelineType:()=>vO,VideoContentHint:()=>AO,VideoDecoderDowngradeState:()=>$k,VideoPlayerMode:()=>dO,VideoType:()=>iO});var bk,wk,Dk,Ck,Nk,kk,Ok,Mk,Lk,Pk,xk=((Pk=xk||{}).TRACK_ADDED="track-added",Pk.TRACK_UPDATED="track-updated",Pk.TRACK_SUBSCRIBED="track-subscribed",Pk.STREAM_ADDED="stream-added",Pk.STREAM_REMOVED="stream-removed",Pk.STREAM_UPDATED="stream-updated",Pk.STREAM_PUBLISHED="stream-published",Pk.STREAM_SUBSCRIBED="stream-subscribed",Pk.STREAM_UNSUBSCRIBED="stream-unsubscribed",Pk.STATE_CHANGED="state-changed",Pk.ERROR="error",Pk.CONNECTION_STATE_CHANGED="connection-state-changed",Pk.FIREWALL_RESTRICTION="firewall-restriction",Pk.SEI_MESSAGE="sei-message",Pk.CLOSED="closed",Pk),Uk=(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))(Uk||{}),Vk=((Lk=Vk||{}).STREAM_ADDED="stream-added",Lk.STREAM_REMOVED="stream-removed",Lk.STREAM_UPDATED="stream-updated",Lk.STREAM_SUBSCRIBED="stream-subscribed",Lk.CONNECTION_STATE_CHANGED="connection-state-changed",Lk.PEER_JOIN="peer-join",Lk.PEER_LEAVE="peer-leave",Lk.MUTE_AUDIO="mute-audio",Lk.MUTE_VIDEO="mute-video",Lk.UNMUTE_AUDIO="unmute-audio",Lk.UNMUTE_VIDEO="unmute-video",Lk.CLIENT_BANNED="client-banned",Lk.NETWORK_QUALITY="network-quality",Lk.AUDIO_VOLUME="audio-volume",Lk.SEI_MESSAGE="sei-message",Lk.ERROR="error",Lk),Fk=((Mk=Fk||{}).PLAYER_STATE_CHANGED="player-state-changed",Mk.SCREEN_SHARING_STOPPED="screen-sharing-stopped",Mk.CONNECTION_STATE_CHANGED="connection-state-changed",Mk.DEVICE_AUTO_RECOVERED="device-auto-recovered",Mk.ERROR="error",Mk),Bk=(e=>(e.DEVICE_AUTO_RECOVERED="1",e.DEVICE_RECOVER_FAILED="5",e.DEVICE_CHANGED="2",e.ERROR="3",e.PUBLISH_STATE_CHANGED="4",e.ENCODE_FAILED="6",e))(Bk||{}),Hk=(e=>(e.PAUSED="PAUSED",e.PLAYING="PLAYING",e.STOPPED="STOPPED",e))(Hk||{}),jk=((Ok=jk||{}).PEER_JOIN="peer-join",Ok.PEER_LEAVE="peer-leave",Ok.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",Ok.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",Ok.BANNED="banned",Ok.NETWORK_QUALITY="network-quality",Ok.AUDIO_VOLUME="audio-volume",Ok.SEI_MESSAGE="sei-message",Ok.ERROR="error",Ok.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",Ok.REMOTE_PUBLISHED="remote-published",Ok.REMOTE_UNPUBLISHED="remote-unpublished",Ok.FIREWALL_RESTRICTION="firewall-restriction",Ok.HEARTBEAT_REPORT="heartbeat-report",Ok.CUSTOM_MESSAGE="custom-message",Ok.LAYER_DATA="layerData",Ok.FIRST_VIDEO_FRAME="first-video-frame",Ok.DUMP="dump",Ok),Gk=((kk=Gk||{}).PLAYER_STATE_CHANGED="player-state-changed",kk.MUTE="mute",kk.UNMUTE="unmute",kk.ERROR="error",kk.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",kk.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",kk.FIRST_VIDEO_FRAME="first-video-frame",kk),Wk=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Wk||{}),Kk=(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))(Kk||{}),zk=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(zk||{}),qk=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(qk||{}),Jk=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Jk||{}),Yk=(e=>(e.CONNECTED="CONNECTED",e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.RECONNECTED="RECONNECTED",e.RECONNECTING="RECONNECTING",e))(Yk||{}),Xk=((Nk=Xk||{}).INITIALIZED="INITIALIZED",Nk.STARTING="STARTING",Nk.STARTED="STARTED",Nk.FAILED="FAILED",Nk),$k=(e=>(e.INITIALIZED="INITIALIZED",e.STARTING="STARTING",e.STARTED="STARTED",e.FAILED="FAILED",e))($k||{}),Qk=(e=>(e.AUDIO="audio",e.VIDEO="video",e.AUXILIARY="auxVideo",e))(Qk||{}),Zk=(e=>(e.ADD="add",e.REMOVE="remove",e))(Zk||{}),eO=(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))(eO||{}),tO={1:"audio",2:"auxVideo",4:"video"},rO=((Ck=rO||{})[Ck.opus=111]="opus",Ck),iO=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(iO||{}),oO=(e=>(e.Big="big",e.Small="small",e))(oO||{}),nO=(e=>(e.Main="main",e.Aux="auxiliary",e))(nO||{}),aO=(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))(aO||{}),sO=((Dk=sO||{})[Dk.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",Dk[Dk.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",Dk[Dk.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",Dk[Dk.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",Dk[Dk.MUTE_AUDIO=32772]="MUTE_AUDIO",Dk[Dk.MUTE_VIDEO=32773]="MUTE_VIDEO",Dk[Dk.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",Dk[Dk.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",Dk[Dk.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",Dk[Dk.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",Dk[Dk.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",Dk[Dk.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",Dk[Dk.SWITCH_CAMERA=32780]="SWITCH_CAMERA",Dk[Dk.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",Dk[Dk.REPLACE_VIDEO=32782]="REPLACE_VIDEO",Dk[Dk.REPLACE_AUDIO=32783]="REPLACE_AUDIO",Dk[Dk.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",Dk[Dk.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",Dk[Dk.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",Dk[Dk.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",Dk[Dk.JOIN=32788]="JOIN",Dk[Dk.LEAVE=32789]="LEAVE",Dk[Dk.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",Dk[Dk.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",Dk[Dk.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",Dk[Dk.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",Dk[Dk.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",Dk[Dk.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",Dk[Dk.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",Dk[Dk.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",Dk[Dk.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",Dk[Dk.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",Dk[Dk.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",Dk[Dk.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",Dk[Dk.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",Dk[Dk.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",Dk[Dk.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",Dk[Dk.PUBLISH_AUX=32805]="PUBLISH_AUX",Dk[Dk.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",Dk[Dk.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",Dk[Dk.VIDEO_ENCODER=4004]="VIDEO_ENCODER",Dk[Dk.VIDEO_DECODER=4005]="VIDEO_DECODER",Dk),cO=(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))(cO||{}),lO=(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))(lO||{}),uO=(e=>(e.user="user",e.environment="environment",e))(uO||{}),dO=(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))(dO||{}),hO=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(hO||{}),pO=(e=>(e.BANNED="banned",e.KICK="kick",e.USER_TIME_OUT="user_time_out",e.ROOM_DISBAND="room_disband",e))(pO||{}),mO=((wk=mO||{})[wk.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",wk[wk.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",wk[wk.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",wk[wk.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",wk[wk.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",wk[wk.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",wk[wk.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",wk[wk.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",wk[wk.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",wk),fO=1e8,_O=class{constructor(){Ab(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)}},gO=(e=>(e.String="string",e.Number="number",e.Boolean="boolean",e.Array="array",e.Object="object",e))(gO||{}),EO=(e=>(e.H264="h264",e.H265="h265",e.VP8="vp8",e))(EO||{}),vO=(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))(vO||{}),yO=(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))(yO||{}),TO=(e=>(e.WebRTC="webrtc",e.WebCodecs="webcodecs",e.WebAssembly="webassembly",e))(TO||{}),IO=((bk=IO||{})[bk.SUCCESS=0]="SUCCESS",bk[bk.FAILED=1]="FAILED",bk[bk.WEBCODEC_INIT=2]="WEBCODEC_INIT",bk[bk.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",bk[bk.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",bk[bk.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",bk[bk.WASM_INIT=6]="WASM_INIT",bk[bk.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",bk[bk.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",bk[bk.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",bk[bk.TEST=10]="TEST",bk),AO=(e=>(e.NONE="",e.DETAIL="detail",e.MOTION="motion",e.TEXT="text",e))(AO||{}),SO=(e=>(e.INTERVAL="interval",e.TIMEOUT="timeout",e.RAF="raf",e.RIC="ric",e.INTERVAL_IN_WORKER="intervalInWorker",e))(SO||{}),RO={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"},bO={AVOID_REPEATED_CALL:e=>"previous ".concat(e.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(e){let{key:t,rule:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' is a required param when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:r,fnName:i,value:o}=e,n="".concat(t||r.name),a="";return a=Array.isArray(r.type)?r.type.join("|"):r.type,"'".concat(n,"' must be type of ").concat(a," when calling ").concat(i,"(), received type: ").concat(xD(o),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' cannot be '").concat(o,"' when calling ").concat(i,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:r,fnName:i,value:o}=e,n="".concat(t||r.name),a="".concat(r.instanceOf.name||r.instanceOf);return"'".concat(n,"' must be instanceof ").concat(a," when calling ").concat(i,"(), received type: ").concat(xD(o),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' must be one of ").concat(r.values.join("|")," when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_MIN(e){let{key:t,rule:r,fnName:i,value:o}=e;return"the min value of ".concat(t||r.name," is ").concat(r.min,", received: ").concat(o,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:r,fnName:i,value:o}=e;return"the max value of ".concat(t||r.name," is ").concat(r.max,", received: ").concat(o,".")},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:r}=e;return"Failed to join room - ".concat(t," code: ").concat(r)},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:r,streamType:i}=e;return"failed to subscribe ".concat(r," ").concat(i," 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:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' cannot be less than 0 when calling ").concat(i,"().")},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:r}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(r,"().")},INVALID_ELEMENT_ID_TYPE:e=>{let{key:t,fnName:r,type:i}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(r,"(), received: ").concat(i,".")},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:r}=e;return"an error was caught in ".concat(t,".on('").concat(r,"', 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:r,timesInSecond:i,maxSizeInSecond:o}=e;return"api ".concat(r," call ").concat(t?"size":"times"," is over ").concat(t?"".concat(o," bytes"):i," 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,"()")},wO=(e,t)=>t?"".concat(ew,"/").concat(e,"/").concat(t):"".concat(ew,"/").concat(e,"/index.html"),DO=()=>{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(nw);if(e){e=JSON.parse(e);let t=document.createElement("script");t.type="text/javascript",t.text=e.message,document.body.appendChild(t);let r=window.TRTC_ERROR_INFO,i=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:r,TRTC_ERROR_LINK:i}}return{}};function CO(e){let{key:t,data:r,link:i,addDocLink:o=!0}=e,n="",a="",s="";UD(bO[t])?n=bO[t](r):FD(bO[t])&&(n=bO[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:l}=DO();i?s="".concat(i.className,".html#").concat(i.fnName):l&&l[t]&&(UD(l[t])?s=l[t](r):FD(l[t])&&(s=l[t]));let u=n;return OD()&&(c&&c[t]&&(UD(c[t])?a=c[t](r):FD(c[t])&&(a=c[t])),a&&(u=o?"".concat(a,"\n请查看文档: ").concat(wO("zh-cn",s),"\n\n"):"".concat(a,"\n\n"),u+=n)),o&&(u+=" \nRefer to: ".concat(wO("en",s),"\n")),u}var NO,kO=Tb(Nb(),1),OO=class{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];Ab(this,"countMap",new Map),Ab(this,"distributionMap",new Map),Ab(this,"version"),Ab(this,"log",Tk.createLogger({id:"kv"})),e&&(gk.on("102",(e=>{let{track:t,cost:r}=e;this.addSuccessEvent({key:t.kind===_w.AUDIO?501700:511700,cost:r})})),gk.on("103",(e=>{let{track:t,error:r}=e;this.addFailedEvent({key:t.kind===_w.AUDIO?501700:511700,error:r})})))}getReportData(){let e={msg_sdk_basic_info:{uint32_sdk_version:fC(this.version||Hb),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,r]=e;return{uint32_key:t,uint32_count:r}})),stats_distribution:[...this.distributionMap.entries()].map((e=>{let[t,r]=e;return{uint32_key:t,distribution_items:[...r.entries()].map((e=>{let[t,r]=e;return{uint32_item_key:t,uint32_item_value:r}}))}}))};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:r=!1}=e;this.isCountKey(t)?r&&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:r,useUV:i=!0}=e;var o;if(!this.isEnumKey(t))return this.log.debug("".concat(t," is not enum key, last 3 number should be 700~799"));if(i&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=(null==(o=this.distributionMap)?void 0:o.get(t))||new Map;n.set(r,(n.get(r)||0)+1),this.distributionMap.set(t,n)}addNumber(e){let{key:t,value:r,split:i=100,useUV:o=!1}=e;var n;if(!this.isNumberKey(t))return this.log.debug("".concat(t," is not number key, last 3 number should be 800~899"));if(o&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let a=(null==(n=this.distributionMap)?void 0:n.get(t))||new Map,s=0;if(BD(i))s=Math.floor(r/i);else for(let c=i.length-1;c>0;c--)if(r>i[c]){s=c;break}a.set(s,(a.get(s)||0)+1),this.distributionMap.set(t,a)}addSuccessEvent(e){let{key:t,cost:r,timeKey:i,split:o}=e;if(t&&(this.addEnum({key:t,value:1,useUV:!1}),r)){let e=+String(t).slice(-3);e<800&&e>=700?this.addNumber({key:i||t+100,value:r,split:o}):i||this.log.debug("time stat ignored, ".concat(t))}}addFailedEvent(e){let{key:t,error:r}=e;if(!t)return;let i=Ob.UNKNOWN;r&&(BD(r)?i=r:(!VD(r.extraCode)||!VD(r.code))&&(i=r.extraCode||r.code)),this.addEnum({key:t,value:0,useUV:!1}),this.addEnum({key:t,value:Math.abs(i),useUV:!1})}},MO=((NO=MO||{})[NO.enterRoom=500700]="enterRoom",NO[NO.exitRoom=500701]="exitRoom",NO[NO.switchRole=500702]="switchRole",NO[NO.destroy=500703]="destroy",NO[NO.startLocalAudio=500704]="startLocalAudio",NO[NO.updateLocalAudio=500705]="updateLocalAudio",NO[NO.stopLocalAudio=500706]="stopLocalAudio",NO[NO.startLocalVideo=500707]="startLocalVideo",NO[NO.updateLocalVideo=500708]="updateLocalVideo",NO[NO.stopLocalVideo=500709]="stopLocalVideo",NO[NO.startScreenShare=500710]="startScreenShare",NO[NO.updateScreenShare=500711]="updateScreenShare",NO[NO.stopScreenShare=500712]="stopScreenShare",NO[NO.startRemoteVideo=500713]="startRemoteVideo",NO[NO.updateRemoteVideo=500714]="updateRemoteVideo",NO[NO.stopRemoteVideo=500715]="stopRemoteVideo",NO[NO.muteRemoteAudio=500716]="muteRemoteAudio",NO[NO.setRemoteAudioVolume=500717]="setRemoteAudioVolume",NO[NO.use=500718]="use",NO[NO.sendSEIMessage=5e5]="sendSEIMessage",NO[NO.sendCustomMessage=500001]="sendCustomMessage",NO),LO=(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))(LO||{}),PO=(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))(PO||{}),xO=(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))(xO||{}),UO=new OO(!0),VO=new OO(!1),FO=UO,BO={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},HO=new Map([[GC,["Firefox",WC]],[JC,["Edg",YC]],[jN,["Chrome",KN]],[zN,["Safari",JN]],[tN,["TBS",rN]],[iN,["XWEB",oN]],[cN&&xC,["WeChat",lN]],[pN,["QQ(Win)",mN]],[dN,["QQ(Mobile)",hN]],[uN,["QQ(Mobile X5)",hN]],[fN,["QQ(Mac)",_N]],[gN,["QQ(iPad)",EN]],[bN,["MI",wN]],[DN,["HW",kN]],[ON,["Samsung",MN]],[LN,["OPPO",PN]],[xN,["VIVO",UN]],[zC,["EDGE",qC]],[$C,["SogouMobile",QC]],[ZC,["Sogou",eN]]]);function jO(){let e=HO.get(!0);return{browserName:e?e[0]:"unknown",browserVersion:e?e[1]:"unknown"}}var GO=function(){return!(SN||zC||JC&&XC<80||GC&&KC<56)},WO=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every((e=>e in window))},KO=function(){if(!navigator.mediaDevices)return qO()||Tk.error(bO.NOT_SUPPORTED_MEDIA),!1;let e=["getUserMedia","enumerateDevices"];return e.filter((e=>e in navigator.mediaDevices)).length===e.length},zO=!1;function qO(){return"http:"===location.protocol&&!tk&&(zO||Tk.error(CO({key:RO.NOT_SUPPORTED_HTTP})),zO=!0,!0)}var JO=function(){return(null==window?void 0:window.OffscreenCanvas)&&(null==window?void 0:window.MediaStreamTrackProcessor)&&(null==window?void 0:window.MediaStreamTrackGenerator)},YO=function(){return Rb(this,null,(function*(){if(BO.detail.isH264EncodeSupported&&BO.detail.isVp8EncodeSupported)return{isH264EncodeSupported:BO.detail.isH264EncodeSupported,isVp8EncodeSupported:BO.detail.isVp8EncodeSupported};let e,t=!1,r=!1;try{let i=new RTCPeerConnection,o=document.createElement(_w.CANVAS);o.getContext("2d");let n=o.captureStream(0);return i.addTrack(n.getVideoTracks()[0],n),e=yield i.createOffer(),-1!==e.sdp.toLowerCase().indexOf("h264")&&(t=!0),-1!==e.sdp.toLowerCase().indexOf("vp8")&&(r=!0),i.close(),BO.detail.isH264EncodeSupported=t,BO.detail.isVp8EncodeSupported=r,{isH264EncodeSupported:BO.detail.isH264EncodeSupported,isVp8EncodeSupported:BO.detail.isVp8EncodeSupported}}catch(Ww){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}}))},XO=function(){return Rb(this,null,(function*(){if(BO.detail.isH264DecodeSupported&&BO.detail.isVp8DecodeSupported)return{isH264DecodeSupported:BO.detail.isH264DecodeSupported,isVp8DecodeSupported:BO.detail.isVp8DecodeSupported};let e,t=!1,r=!1;try{let i=new RTCPeerConnection;return e=yield i.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),-1!==e.sdp.toLowerCase().indexOf("h264")&&(t=!0),-1!==e.sdp.toLowerCase().indexOf("vp8")&&(r=!0),i.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:r}}catch(Ww){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}}))},$O=EC((()=>Rb(void 0,null,(function*(){if(BO.result&&BO.detail.isH264EncodeSupported&&BO.detail.isVp8EncodeSupported&&BO.detail.isH264DecodeSupported&&BO.detail.isVp8DecodeSupported)return BO;let e=Date.now(),t=GO(),r=SM(),i=WO(),o=KO(),{isH264EncodeSupported:n,isVp8EncodeSupported:a}=yield YO(),{isH264DecodeSupported:s,isVp8DecodeSupported:c}=yield XO();if(!n||!a){let e=yield YO();Tk.warn("detect encode again h264:".concat(n," vp8:").concat(a," result: ").concat(JSON.stringify(e))),n=e.isH264EncodeSupported,a=e.isVp8EncodeSupported}if(n&&s&&FC&&HN&&!iN&&!tN){let{encode:e,decode:t}=yield function(){return Rb(this,null,(function*(){return eM||(eM=new Promise((e=>Rb(this,null,(function*(){let t={encode:!1,decode:!1},r=()=>{};try{let i=document.createElement("canvas"),o=i.getContext("2d");i.width=320,i.height=240;let n=setInterval((()=>{o.fillText("test",Math.floor(320*Math.random()),Math.floor(240*Math.random()))}),66),a=-1,s=-1;r=()=>{clearInterval(a),clearInterval(n),clearTimeout(s),l.close(),u.close(),c.getTracks().forEach((e=>e.stop()))},s=setTimeout((()=>{r(),e(t)}),2e3);let c=i.captureStream(),l=new RTCPeerConnection({}),u=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",(e=>u.addIceCandidate(e.candidate))),u.addEventListener("icecandidate",(e=>l.addIceCandidate(e.candidate))),l.addTrack(c.getVideoTracks()[0],c);let d=yield l.createOffer();yield l.setLocalDescription(d),yield u.setRemoteDescription(d);let h=yield u.createAnswer(),p=kO.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=kO.default.write(p),yield u.setLocalDescription(h),yield l.setRemoteDescription(h),a=setInterval((()=>Rb(this,null,(function*(){t.encode&&t.decode&&(r(),e(t));let[i,o]=yield Promise.all([l.getSenders()[0].getStats(),u.getReceivers()[0].getStats()]);t.encode||i.forEach((e=>{"outbound-rtp"===e.type&&e.mediaType===_w.VIDEO&&e.bytesSent>0&&(t.encode=!0)})),t.decode||o.forEach((e=>{"inbound-rtp"===e.type&&e.mediaType===_w.VIDEO&&e.bytesReceived>0&&(t.decode=!0)}))}))),100)}catch(i){r(),Tk.warn("detectH264Supported failed",i),e({encode:!0,decode:!0})}})))).then((e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&Tk.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(sk)),e))),eM)}))}();n=e,s=t}return BO.result=t&&r&&o&&(n||a)&&(s||c),BO.detail.isBrowserSupported=t,BO.detail.isWebRTCSupported=r,BO.detail.isWebCodecsSupported=i,BO.detail.isMediaDevicesSupported=o,BO.detail.isScreenShareSupported=ZO(),BO.detail.isSmallStreamSupported=sM(),BO.detail.isH264EncodeSupported=n,BO.detail.isVp8EncodeSupported=a,BO.detail.isH264DecodeSupported=s,BO.detail.isVp8DecodeSupported=c,BO.result||Tk.error("".concat(navigator.userAgent," ").concat(dC(BO.detail,!1))),Ak.setItem(NM,{ua:navigator.userAgent,checkResult:BO}),FO.addNumber({key:523800,value:Date.now()-e}),BO})))),QO=function(){return BO.result},ZO=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},eM=null;var tM=(e,t,r)=>{"http:"===location.protocol&&!tk&&(e[t]=()=>{throw new Lb({code:Ob.INVALID_OPERATION,message:bO.NOT_SUPPORTED_HTTP})})},rM=function(e){return!("candidate-pair"!==e.type||!e.nominated||"in-progress"!==e.state&&"succeeded"!==e.state)&&!(HD(e.selected)&&!e.selected)};function iM(){let e="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",r=screen.height?screen.height*window.devicePixelRatio:"";e+="".concat(t," * ").concat(r)}return e}function oM(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function nM(){let e={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let r=0;r<t.length;r++)if(t[r]in window){e.isSupported=!0;break}return e.isSupported}function aM(){return"captureStream"in HTMLCanvasElement.prototype}function sM(){return!(cN||VC||WN&&WN<63)&&!(!GO()||!aM())}var cM=function(){if(VD(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let e=null,t=!1;try{e=new RTCPeerConnection({sdpSemantics:Xw}),e.addTransceiver(_w.AUDIO),t=!0}catch(Gb){}return null==e||e.close(),t};function lM(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function uM(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function dM(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function hM(){return 11!==$N&&("RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype)}var pM=!(!hM()||HN&&WN<86);function mM(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var fM="RTCRtpSender"in window;function _M(){return fM&&"replaceTrack"in window.RTCRtpSender.prototype}function gM(){return fM&&"setParameters"in window.RTCRtpSender.prototype&&uM()}var EM="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,vM=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,yM=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,TM=fM&&"createEncodedStreams"in window.RTCRtpSender.prototype&&BN()>=86,IM="RTCRtpScriptTransform"in window,AM=fM&&(TM||IM),SM=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter((e=>e in window)).length>0};function RM(){let e={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return VD(window.AudioDecoder)||(e.AudioDecoder=!0),VD(window.AudioEncoder)||(e.AudioEncoder=!0),VD(window.VideoDecoder)||(e.VideoDecoder=!0),VD(window.VideoEncoder)||(e.VideoEncoder=!0),VD(window.ImageDecoder)||(e.ImageDecoder=!0),e}function bM(){return"mediaSession"in navigator&&!VD(navigator.mediaSession.setActionHandler)}function wM(){return!VD(window.WebTransport)}function DM(){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 CM(){let e={browser:"".concat(ik.name,"/").concat(ik.version),os:dk(),displayResolution:iM(),isScreenShareSupported:ZO(),isWebRTCSupported:SM(),isGetUserMediaSupported:oM(),isWebAudioSupported:nM(),isWebSocketsSupported:"WebSocket"in window&&2===window.WebSocket.CLOSING,isWebCodecSupported:RM(),isMediaSessionSupported:bM(),isWebTransportSupported:wM()};return navigator.userAgent.includes("miniProgram")&&(e.browser="mini/".concat(e.browser)),e}var NM="checkResult";function kM(){qO();let e=Ak.getItem(NM);e&&e.ua===navigator.userAgent&&(BO=e.checkResult),$O()}function OM(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var MM="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype,LM=Tb(bb(),1),PM=Symbol("instance"),xM=Symbol("cacheResult"),UM=class{constructor(e,t,r){this.oldState=e,this.newState=t,this.action=r,this.aborted=!1}abort(e){this.aborted=!0,jM.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},VM=class extends Error{constructor(e,t,r){super(t),this.state=e,this.message=t,this.cause=r}};var FM=new Map;function BM(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(i,o,n)=>{let a=r.action||o;if(!r.context){let r=FM.get(i)||[];FM.has(i)||FM.set(i,r),r.push({from:e,to:t,action:a})}let s=n.value;n.value=function(){let i=this;for(var o=arguments.length,n=new Array(o),c=0;c<o;c++)n[c]=arguments[c];if(r.context&&(i=GM.get("function"==typeof r.context?r.context.call(this,...n):r.context)),i.state===t)return r.sync?i[xM]:Promise.resolve(i[xM]);i.state instanceof UM&&i.state.action==r.abortAction&&i.state.abort(i);let l=null;Array.isArray(e)?0==e.length?i.state instanceof UM&&i.state.abort(i):("string"!=typeof i.state||!e.includes(i.state))&&(l=new VM(i._state,"".concat(i.name," ").concat(a," to ").concat(t," failed: current state ").concat(i._state," not from ").concat(e.join("|")))):e!==i.state&&(l=new VM(i._state,"".concat(i.name," ").concat(a," to ").concat(t," failed: current state ").concat(i._state," not from ").concat(e)));let u=e=>{if(r.fail&&r.fail.call(this,e),r.sync){if(r.ignoreError)return e;throw e}return r.ignoreError?Promise.resolve(e):Promise.reject(e)};if(l)return u(l);let d=i.state,h=new UM(d,t,a);jM.call(i,h);let p=e=>{var o;return i[xM]=e,h.aborted||(jM.call(i,t),null===(o=r.success)||void 0===o||o.call(this,i[xM])),e},m=e=>(jM.call(i,d,e),u(e));try{let e=s.apply(this,n);return function(e){return"object"==typeof e&&e&&"then"in e}(e)?e.then(p).catch(m):r.sync?p(e):Promise.resolve(p(e))}catch(Lk){return m(new VM(i._state,"".concat(i.name," ").concat(a," from ").concat(e," to ").concat(t," failed: ").concat(Lk),Lk instanceof Error?Lk:new Error(String(Lk))))}}}}var HM="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 jM(e,t){let r=this._state;this._state=e;let i=e.toString();e&&this.emit(i,r),this.emit(GM.STATECHANGED,e,r,t),this.updateDevTools({value:e,old:r,err:t instanceof Error?t.message:String(t)})}var GM=class e extends LM.default{constructor(t,r,i){super(),this.name=t,this.groupName=r,this._state=e.INIT,t||(t=Date.now().toString(36)),i?Object.setPrototypeOf(this,i):i=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);let o=i[PM];o?this.name=o.name+"-"+o.count++:i[PM]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=FM.get(e)||[],r=new Set,i=[],o=[],n=new Set,a=Object.getPrototypeOf(e);FM.has(a)&&(a.stateDiagram.forEach((e=>r.add(e))),a.allStates.forEach((e=>n.add(e)))),t.forEach((e=>{let{from:t,to:r,action:n}=e;"string"==typeof t?i.push({from:t,to:r,action:n}):t.length?t.forEach((e=>{i.push({from:e,to:r,action:n})})):o.push({to:r,action:n})})),i.forEach((e=>{let{from:t,to:i,action:o}=e;n.add(t),n.add(i),n.add(o+"ing"),r.add("".concat(t," --\x3e ").concat(o,"ing : ").concat(o)),r.add("".concat(o,"ing --\x3e ").concat(i," : ").concat(o," 🟢")),r.add("".concat(o,"ing --\x3e ").concat(t," : ").concat(o," 🔴"))})),o.forEach((e=>{let{to:t,action:i}=e;r.add("".concat(i,"ing --\x3e ").concat(t," : ").concat(i," 🟢")),n.forEach((e=>{e!==t&&r.add("".concat(e," --\x3e ").concat(i,"ing : ").concat(i))}))}));let s=[...r];return Object.defineProperties(e,{stateDiagram:{value:s},allStates:{value:n}}),s}static get(t){let r;return"string"==typeof t?(r=e.instances.get(t),r||e.instances.set(t,r=new e(t,void 0,Object.create(e.prototype)))):(r=e.instances2.get(t),r||e.instances2.set(t,r=new e(t.constructor.name,void 0,Object.create(e.prototype)))),r}static getState(t){var r;return null===(r=e.get(t))||void 0===r?void 0:r.state}updateDevTools(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};HM(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){jM.call(this,e)}};GM.STATECHANGED="stateChanged",GM.UPDATEAFSM="updateAFSM",GM.INIT="[*]",GM.ON="on",GM.OFF="off",GM.instances=new Map,GM.instances2=new WeakMap;var WM="undefined"!=typeof window,KM=WM&&window.requestIdleCallback||function(e){let t=Date.now();return setTimeout((()=>{e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})}),1e3)},zM=WM&&window.cancelIdleCallback||function(e){clearTimeout(e)},qM=WM&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),JM=class e{static generateTaskID(){return this.currentTaskID++}static run(e,t,r){null!=r&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),r=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},r);let i=Eb(gb({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:t},r),{delay:r.delay});return this.taskMap.set(i.taskID,i),this[e](i),i.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 r;if("tick"===t.data.type){let i=e.workerTasks.get(t.data.taskId);i&&(i.callback(),i.loopCount+=1,e.isBreakLoop(i)&&(null==(r=e.sharedWorker)||r.postMessage({type:"stop",taskId:i.taskID}),e.workerTasks.delete(i.taskID)))}}),e.workerTasks.set(t.taskID,t),e.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let r=()=>{if(t.callback(),t.loopCount+=1,!e.isBreakLoop(t))return t.timeoutID=setTimeout(r,t.delay)};return t.timeoutID=setTimeout(r,t.delay)}static ric(t){let r,i=$D(),o=()=>{if(r=$D()-i,r>=t.delay&&(i=$D()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!e.isBreakLoop(t))return t.ricID=KM(o,{timeout:t.delay})};return t.ricID=KM(o,{timeout:t.delay})}static raf(t){let r,i=$D(),o=()=>document.hidden&&t.backgroundTask?(r=$D()-i,i=$D(),t.callback(),t.loopCount+=1,e.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay))):(r=$D()-i,r>=t.delay&&(i=$D()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),e.isBreakLoop(t)?void 0:t.rafID=requestAnimationFrame(o));if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let e=()=>{if(document.hidden){let e=$D()-i;e>=t.delay?o():t.timeoutID=setTimeout(o,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:r,rafID:i,ricID:o,onVisibilitychange:n,worker:a}=this.taskMap.get(e);return a&&a.terminate(),t&&clearInterval(t),r&&clearTimeout(r),i&&qM&&qM(i),o&&zM(o),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.taskMap.has(e.taskID)||0!==e.count&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};Ab(JM,"taskMap",new Map),Ab(JM,"currentTaskID",1),Ab(JM,"sharedWorker",null),Ab(JM,"workerTasks",new Map);var YM=JM;_w.SEI_MESSAGE;var XM={LOADED_DATA:_w.LOADEDDATA,LOADED_META_DATA:_w.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"},$M={};yb($M,{create:()=>ZM,remove:()=>eL});var QM=new WeakMap;function ZM(e,t){QM.has(e)||QM.set(e,[]);let r=QM.get(e),i={add:(e,o)=>("addEventListener"in t?(r.push(t.removeEventListener.bind(t,e,o)),t.addEventListener(e,o)):(r.push(t.off.bind(t,e,o)),t.on(e,o)),i)};return i}function eL(e){let t=QM.get(e);t&&(t.forEach((e=>e())),QM.delete(e))}var tL=new class{constructor(){Ab(this,"_roomIdMap",new Map),Ab(this,"_configs"),"undefined"==typeof registerProcessor&&(this._configs={sdkAppId:"",userId:"",version:Hb,env:sw.QCLOUD,browserVersion:ik.name+ik.version,ua:navigator.userAgent})}setConfig(e){let{sdkAppId:t,env:r,userId:i,roomId:o}=e;t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=r,this._configs.userId=i,this._roomIdMap.set(i,String(o))}logSuccessEvent(e){tk||!Tk.isAbleToUpload||this._configs.env===sw.QCLOUD&&this.uploadEventToKibana(Eb(gb({},e),{result:"success"}))}logFailedEvent(e){if(tk||!Tk.isAbleToUpload)return;let{eventType:t,code:r,error:i,userId:o}=e,n={roomId:this._roomIdMap.get(o||this._configs.userId),userId:o,eventType:t,result:"failed",code:r||(null==i?void 0:i.extraCode)||(null==i?void 0:i.code)||Ob.UNKNOWN};this._configs.env===sw.QCLOUD&&this.uploadEventToKibana(Eb(gb({},n),{error:i}))}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:r,error:i}=e,o={timestamp:xb(),sdkAppId:this._configs.sdkAppId,userId:r||this._configs.userId,version:Hb,log:t};i&&(o.errorInfo=i.message,i.stack&&(o.errorInfo+="\n".concat(i.stack))),this.sendRequest(yD(this._configs.sdkAppId,aw.LOG),o)}sendRequest(e,t){setTimeout((()=>vC({url:e,body:JSON.stringify(t),priority:"low"}).catch((()=>{}))),2e3)}},rL=new WeakMap;function iL(e){let{settings:t={retries:5,timeout:2e3},onError:r,onRetrying:i,onRetryFailed:o}=e;return function(e,n,a){let s=RC({retryFunction:a.value,settings:t,onError(t){let{error:i,retry:o,reject:a,retryFuncArgs:s}=t;var c;r?r.call(this,i,(()=>{var t;null!=(t=rL.get(e))&&t.has(n)?o():a(i)}),a,s):null!=(c=rL.get(e))&&c.has(n)?o():a(i)},onRetrying(t,r){var o;IC(i)&&i.call(this,t,r),null!=(o=rL.get(e))&&o.has(n)&&(rL.get(e).get(n).stopRetry=r)},onRetryFailed:o});return a.value=function(){let t=rL.get(e);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return t?t.set(n,{args:i}):rL.set(e,new Map([[n,{args:i}]])),s.apply(this,i).finally((()=>{var t;return null==(t=rL.get(e))?void 0:t.delete(n)}))},a}}var oL=class extends GM{constructor(e,t){super(e.id,"".concat(t,"-player")),this.kind=t,Ab(this,"id"),Ab(this,"element",null),Ab(this,"track"),Ab(this,"url"),Ab(this,"attr"),Ab(this,"mode"),Ab(this,"muted"),Ab(this,"_log"),Ab(this,"_pausedRetryCount"),Ab(this,"_isElementPlayingFired",!1),Ab(this,"_interval"),Ab(this,"_delayDestroyTimeoutId",0),Ab(this,"_playSuccessResolve"),Ab(this,"_isReplayByRecreateMediaStreamCalled",!1),Ab(this,"isInAutoPlayFailedState",!1),this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=cD,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)||this.track&&"live"===this.track.readyState&&!this.track.muted)}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(Gb){let t=CO({key:RO.PLAY_FAILED,data:{media:this.kind,error:Gb}});if(this.track&&!this.track.muted&&this._log.warn(Gb),t.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Lb({code:Ob.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&&!qN?this._delayDestroyTimeoutId||(this._log.info("destroy element after 3 * ".concat(e)),this._delayDestroyTimeoutId=setTimeout((()=>this.destroyElement()),3*e)):this.destroyElement(),this.handleStopped(_w.ENDED),this._interval>0&&YM.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():ZN?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 ZM(this.element,this.element).add(_w.PLAYING,e).add(_w.ENDED,e).add(_w.PAUSE,e).add(_w.ERROR,e).add(_w.LOADEDDATA,e).add(_w.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==$M||$M.create(e,e).add(_w.ENDED,t).add(_w.MUTE,t).add(_w.UNMUTE,t),e.readyState===_w.ENDED&&this.handleTrackEvent({type:_w.ENDED}),e.muted&&this.handleTrackEvent({type:_w.MUTE})}}bindAutoPlayEvent(){gk.on(vk.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.track;e&&eL(e)}unbindEvents(){this.element&&eL(this.element),this.unbindTrackEvents(),gk.off(vk.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case _w.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(_w.PLAYING),this._interval&&(YM.clearTask(this._interval),this._interval=-1);break;case _w.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(_w.ENDED);break;case _w.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(_w.PAUSE),VC&&(this._interval=YM.run("timeout",(()=>{this.element&&"PAUSED"===this._state&&this.resume()}),{delay:3e3}));break;case _w.ERROR:if(this.element&&this.element.error){this.handlePaused(_w.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)),tL.uploadEvent({log:"stat-".concat(this.kind,"-").concat(zw.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),NN||CN?this.emit(XM.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case _w.LOADEDDATA:this.kind===_w.VIDEO&&this.emit(XM.LOADED_DATA);break;case _w.LOADEDMETADATA:this.kind===_w.VIDEO&&this.emit(XM.LOADED_META_DATA)}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then((()=>{this._log.warn("replayByRecreateMediaStream success"),tL.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),FO.addSuccessEvent({key:this.kind===_w.AUDIO?506700:516700})})).catch((()=>{var t;this._log.error("replayByRecreateMediaStream failed"),tL.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),FO.addFailedEvent({key:this.kind===_w.AUDIO?506700:516700,error:null==(t=this.element)?void 0:t.error}),this.emit(XM.ERROR,e)}))}doReplayByRecreateMediaStream(e){return this._log.warn("delay ".concat(e,"ms to recreate mediaStream")),new Promise(((t,r)=>{gC(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,i;this._log.warn("element onerror ".concat(null==(t=null==(e=this.element)?void 0:e.error)?void 0:t.code," fired after recreated mediaStream")),r(null==(i=this.element)?void 0:i.error)}),gC(5e3).then((()=>{var e,i;(!this.isPlaying||null!=(e=this.element)&&e.error)&&r(null==(i=this.element)?void 0:i.error),t()}))}))})).finally((()=>{this.element&&(this.element.onerror=null)}))}handleTrackEvent(e){switch(e.type){case _w.ENDED:this.handleStopped(_w.ENDED);break;case _w.MUTE:this.handlePaused(_w.MUTE);break;case _w.UNMUTE:this._isElementPlayingFired?this.handlePlaying(_w.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString())}}handlePlaying(e){var t;null==(t=this._playSuccessResolve)||t.call(this,e),this.emit(XM.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(XM.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(XM.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};Ib([iL({settings:{retries:2,timeout:0},onError(e,t,r,i){i[0]=(i[0]||1e3)+1e3,t()}})],oL.prototype,"doReplayByRecreateMediaStream",1),Ib([BM([],"PLAYING",{sync:!0})],oL.prototype,"handlePlaying",1),Ib([BM("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],oL.prototype,"handlePaused",1),Ib([BM([],"STOPPED",{sync:!0})],oL.prototype,"handleStopped",1);var nL,aL="trtc_autoplay",sL="".concat(aL,"_mask"),cL="".concat(aL,"_wrapper"),lL="".concat(aL,"_header"),uL="".concat(aL,"_content"),dL="".concat(aL,"_action_wrapper"),hL="".concat(aL,"_question"),pL="".concat(aL,"_collapse"),mL="".concat(aL,"_action_confirm"),fL="".concat(aL,"_detail"),_L="#2473E8",gL="dialog",EL="".concat(gL,"-show"),vL="".concat(gL,"-1"),yL="".concat(gL,"-2"),TL=!1,IL=()=>!!document.querySelector(".".concat(cL)),AL="".concat(ew,"/").concat(OD()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),SL="<br><a href='".concat(AL,"' target='_blank'>").concat(OD()?"其他方案?":"Any other solution?","</a>"),RL="".concat(OD()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(SL):"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(SL)),bL=class{constructor(){if(Ab(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),Ab(this,"_dialogNode",null),Ab(this,"_bodyPosition",""),Ab(this,"_showDetail",!1),Ab(this,"_isCollapseClicked",!1),Ab(this,"_isQuestionClicked",!1),OD()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!TL){let e=document.createElement("style");e.innerHTML=".".concat(sL,"{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(sL," div:not(.").concat(dL,"){display:block !important;}.").concat(cL,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(cL," a{color:").concat(_L,";}.").concat(lL,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(uL,"{margin:8px 0;}.").concat(dL,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(pL,"{margin-right:auto;cursor:pointer}.").concat(hL,"{height:100%;line-height:16px;cursor:pointer;}.").concat(mL,"{margin-left:8px;color:#fff;background:").concat(_L,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(mL,":hover{opacity:0.9;}.").concat(pL,",.").concat(mL,",.").concat(uL,",.").concat(hL,"{font-size:14px;}@media screen and (max-width:750px){.").concat(cL,"{width:80vw;}}"),document.head.appendChild(e),TL=!0}this.addDiaLog()}createDiaLog(){let e=document.createElement("template");e.innerHTML='<div class="'.concat(sL,"\"><div class='").concat(cL,"'><div class='").concat(lL,"'>").concat(location.host,"</div><div class='").concat(uL,"'>").concat(this.content,"</div><div class='").concat(fL,'\' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">').concat(RL,"</div><div class='").concat(dL,"'></div></div></div>").trim();let t=document.createElement("button");t.className=mL,t.innerText=OD()?"恢复播放":"Resume",t.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=hL,r.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 ',r.onclick=this.onQuestionClick.bind(this);let i=document.createElement("div");i.className=pL,i.innerText="".concat(OD()?"详情 >":"Detail >"),i.onclick=this.onCollapseClick.bind(this);let o=e.content.firstChild,n=o.querySelector(".".concat(dL));return n.appendChild(i),n.appendChild(r),n.appendChild(t),o}addDiaLog(){IL()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(cL)).onclick=e=>e.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",Tk.info("show autoplay dialog"),tL.uploadEvent({log:EL}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){Tk.warn("confirm clicked, try resume stream"),gk.emit(vk.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let e=this._dialogNode.querySelector(".".concat(fL));e.style.visibility="".concat(this._showDetail?"hidden":"visible"),e.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||tL.uploadEvent({log:vL}),this._isCollapseClicked=!0}onQuestionClick(){window.open(AL,"_blank"),this._isQuestionClicked||tL.uploadEvent({log:yL}),this._isQuestionClicked=!0}},wL=class extends oL{constructor(e){super(e,_w.VIDEO),Ab(this,"stat",{}),Ab(this,"_calculateTimeout",-1),Ab(this,"viewMirror",!1),Ab(this,"objectFit"),Ab(this,"container"),Ab(this,"canvas"),Ab(this,"canvasTrack"),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,VD(e.viewMirror)||(this.viewMirror=e.viewMirror),VD(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var e;let t=document.createElement(_w.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.canvasTrack)&&this.elementToRender&&(null==(t=this.container)||t.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(_w.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(_w.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var t;super.handleTrackEvent(e),e.type===_w.MUTE&&null!=(t=this.stat)&&t.fps&&(this.stat.fps=0)}handleElementEvent(e){var t;if(2===this.mode)return;super.handleElementEvent(e);let r=e.type;if(r===_w.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._pausedRetryCount>0&&!IL()&&(this._log.info("".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===_w.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=e.replace("scaleX(-1)",""):r===_w.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 r,i,o,n;this.canvas!==e&&(null==(r=this.canvas)||r.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==(i=this.element)||i.remove(),null==(o=this.container)||o.appendChild(e)):this.element&&(null==(n=this.container)||n.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(XM.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(OM()&&this.element&&this._calculateTimeout<0){let e=0,t=null,r=(i,o)=>{this.stat.width=o.width,this.stat.height=o.height,t&&(this.stat.fps=Math.round((o.presentedFrames-t.presentedFrames)/(i-e)*1e3)),e=i,t=o,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout((()=>{var e;return null==(e=this.element)?void 0:e.requestVideoFrameCallback(r)}),2e3))};this.element.requestVideoFrameCallback(r)}}catch(Gb){this._log.warn("init stat failed",Gb)}}};function DL(e,t){return Rb(this,null,(function*(){if(!e.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield e.audioWorklet.addModule(t),Tk.info("worklet addModule success")}catch(Gb){throw Tk.info("worklet addModule catch error. ".concat(Gb.message)),Gb}}))}"undefined"!=typeof AudioContext?nL=AudioContext:"undefined"!=typeof webkitAudioContext?nL=webkitAudioContext:"undefined"!=typeof mozAudioContext&&(nL=mozAudioContext);var CL,NL=-1;!function e(){try{if(CL)return;(CL=new nL({sampleRate:48e3})).onstatechange=()=>{Tk.info("context state: ".concat(CL.state).concat("running"!==CL.state?" visibilityState: ".concat(document.visibilityState):"")),kL()},clearTimeout(NL)}catch(iF){Tk.error("initAudioContext failed: ".concat(iF," typeof AudioContextClass: ").concat(typeof nL)),NL=setTimeout(e,1e3)}}();var kL=()=>{"suspended"===CL.state?(LL(),document.addEventListener("click",kL)):"interrupted"===CL.state?LL():(document.removeEventListener("visibilitychange",kL),document.removeEventListener("click",kL))},OL=0,ML=-1;function LL(){return new Promise(((e,t)=>{if("running"===CL.state)return e();Date.now()-OL<1e3?(clearTimeout(ML),ML=setTimeout((()=>{OL=Date.now(),CL.resume().then(e,t)}),1e3)):(clearTimeout(ML),OL=Date.now(),CL.resume().then(e,t))})).catch((e=>{Tk.warn("context resume failed: ".concat(e)),document.addEventListener("visibilitychange",kL)}))}document.addEventListener("click",kL);var PL=e=>CL,xL=class{constructor(){Ab(this,"node"),Ab(this,"node2"),Ab(this,"pre",new Set),Ab(this,"next",new Set),Ab(this,"context"),Ab(this,"connectedNodes",new Set)}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.preNodeReconnect(),this.reconnect()}catch(Ww){Tk.error(Ww)}}setNode(e,t){var r;if(!this.node)try{null==(r=this.context)||r.addMixWeight(),this.node=e,t&&(this.node2=t),this.preNodeReconnect(),this.reconnect(),FO.addSuccessEvent({key:502701})}catch(Nk){Tk.error(Nk),FO.addFailedEvent({key:502701,error:Nk})}}deleteNode(){var e;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,null==(e=this.context)||e.reduceMixWeight(),this.preNodeReconnect(),FO.addSuccessEvent({key:502702})}catch(Gb){Tk.error(Gb),FO.addFailedEvent({key:502702,error:Gb})}}preNodeReconnect(){this.pre.forEach((e=>{e.node?e.reconnect():e.preNodeReconnect()}))}connectNext(e){this.next.forEach((t=>{e._connect(t.node)||t.connectNext(e)}))}_connect(e){return!(!this.node||!e)&&((this.node2||this.node).connect(e),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(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.forEach((e=>{this.next.add(e),e.pre.add(this)})),this}},UL=class extends xL{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:256;super(),this.fftSize=e,Ab(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,r=0,i="M".concat(t,",").concat(r);for(let o=0;o<e.length;o++)r=e[o]/128*100/2,i+="L".concat(t,",").concat(r),t+=1;return i}},VL=class{constructor(){Ab(this,"source",new xL),Ab(this,"gain",new xL),Ab(this,"destination",new xL)}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(PL().createGain()),this.gain.node.gain.value=e):this.gain.node&&this.gain.deleteNode()}replaceSource(e){this.source.replaceNode(jL(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}},FL=class extends VL{constructor(e){super(),this.context=e,Ab(this,"denoiser",new xL),Ab(this,"voiceChanger",new xL),this.source.pipeTo(this.denoiser.pipeTo(this.voiceChanger.pipeTo(this.gain.pipeTo(this.destination))))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.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.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.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()}},BL=class{constructor(){Ab(this,"audioContext",PL()),Ab(this,"destination",this.audioContext.createMediaStreamDestination()),Ab(this,"inputs",new Set),Ab(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]}},HL=new WeakMap;function jL(e){let t=HL.get(e);if(t)return t;let r=PL();if(e instanceof HTMLAudioElement)t=r.createMediaElementSource(e);else{if(!(e instanceof MediaStreamTrack))return e;t=r.createMediaStreamSource(new MediaStream([e]))}return HL.set(e,t),t}var GL=class e{constructor(e){Ab(this,"_volume",0),Ab(this,"_volumeDb",0),Ab(this,"_log"),Ab(this,"_scriptProcessorNode",null),Ab(this,"_audioWorkletNode",null),Ab(this,"_interval",200),Ab(this,"ready",this.preload());let{log:t}=e;this._log=t,gk.on(vk.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=DL(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=r=>{e.lastMessageTime=Date.now(),this._volume=r.data.volume||0,this._volumeDb=r.data.volumeDb||0,!t&&r.data.cacheLen&&r.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(Ck){this._log.error("volumeMeter init audio worklet error: ".concat(Ck)),tL.logFailedEvent({userId:this._log.userId,eventType:zw.LOAD_WORKLET,error:Ck}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=PL().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{e.lastMessageTime=Date.now();let r=t.inputBuffer.getChannelData(0),i=0;for(let e=0;e<r.length;++e)i+=r[e]*r[e];this._volume=Math.sqrt(i/r.length)||0}}catch(Ck){this._log.error("volumeMeter init script processor error: ".concat(Ck))}}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,gk.off(vk.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:r}=e;this._interval=r,null==(t=this._audioWorkletNode)||t.port.postMessage({name:"setIntervalTime",intervalTime:r})}};Ab(GL,"lastMessageTime",0),Ab(GL,"audioContext",PL()),Ab(GL,"workletReady");var WL=GL,KL=class extends xL{constructor(e){super(),Ab(this,"_volumeMeter"),this._volumeMeter=new WL(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}),r=new Float32Array(t>>2);e.copyTo(r,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:r},[r.buffer]),e.close()}}},zL=WL,qL=Tb(bb(),1),JL=e=>t=>t.deviceId===e,YL=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Input";Ab(this,"kind"),Ab(this,"type"),Ab(this,"devices",[]),this.kind=e,this.type=t}update(e,t){let r=e.filter((e=>e.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase())));1===this.devices.length&&QL(this.devices[0])||t&&(r.forEach((e=>{if(e.deviceId&&!this.devices.find(JL(e.deviceId))){let r="".concat(this.kind).concat(this.type,"Added");Tk.warn("".concat(r,": ").concat(JSON.stringify(e))),t.emit(r,e)}})),this.devices.forEach((e=>{if(e.deviceId&&!r.find(JL(e.deviceId))){let r="".concat(this.kind).concat(this.type,"Removed");Tk.warn("".concat(r,": ").concat(JSON.stringify(e))),t.emit(r,e)}}))),this.devices=r}hasDevice(e){return!!this.devices.find((t=>t.deviceId===e))}},XL=class extends qL.EventEmitter{constructor(){super(),Ab(this,"audioInputs",new YL(_w.AUDIO)),Ab(this,"videoInputs",new YL(_w.VIDEO)),Ab(this,"audioOutputs",new YL(_w.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(()=>this.update())),"ondevicechange"in navigator.mediaDevices||YM.run("interval",(()=>{this.update()}),{delay:1e4}))}init(){ZL().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 r=yield ZL(t);return e.audioInputs.update(r,e),e.videoInputs.update(r,e),e.audioOutputs.update(r,e),e}()}))}},$L=zb||Kb?null:new XL;function QL(e){return e.deviceId===e.groupId&&""===e.groupId}function ZL(){return Rb(this,arguments,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function*(){if(qO()||!KO())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(0!==e){let r={audio:!1,video:!1};if(t.forEach((e=>{QL(e)&&(e.kind===_w.AUDIO_INPUT?r.audio=!0:e.kind===_w.VIDEO_INPUT&&(r.video=!0))})),2===e&&(r.audio=!1),1===e&&(r.video=!1),r.audio||r.video){let e;try{e=yield navigator.mediaDevices.getUserMedia(r),r.audio&&LL()}catch(Nk){Tk.debug("capture before getDevices failed: ",Nk)}t=yield navigator.mediaDevices.enumerateDevices(),null==e||e.getTracks().forEach((e=>e.stop()))}}return t.map(((e,t)=>{let r={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||"".concat(e.kind,"_").concat(t)};return e.deviceId.length>0&&oP.add("".concat(e.deviceId,"_").concat(e.kind)),e.getCapabilities&&(r.getCapabilities=()=>e.getCapabilities()),r}))}()}))}function eP(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return $L.update(e?1:0).then((e=>e.audioInputs.devices))}function tP(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return $L.update(e?2:0).then((e=>e.videoInputs.devices))}var rP=!1;function iP(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Rb(this,null,(function*(){return(VC||zN)&&(e=!1),$L.update(e?1:0).then((e=>e.audioOutputs.devices))}))}var oP=new Set;function nP(e,t){return Rb(this,null,(function*(){let r=(yield eP()).find((e=>e.deviceId===lD));return!t&&(null==r?void 0:r.groupId)===e||(null==r?void 0:r.groupId)===e&&r.label===t}))}var aP,sP=class extends VL{constructor(e){super(),this.log=e,Ab(this,"volumeMeter"),Ab(this,"volumeDestination"),Ab(this,"analyser",new UL),this.volumeMeter=new KL({log:this.log}),this.volumeDestination=new xL,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},cP=class e extends oL{constructor(e){super(e,_w.AUDIO),Ab(this,"_outputDeviceId"),Ab(this,"_volume",1),Ab(this,"_destination",PL().createMediaStreamDestination()),Ab(this,"pipeline"),Ab(this,"volumeMeterMode","worklet"),this.mode=0,this.pipeline=new sP(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if(("15.2"===XN||"15.3"===XN||"15.4"===XN)&&this.muted)return void this._log.info("audioElement is muted.");let t=aP||new Audio;t.setAttribute("autoplay","autoplay"),t.srcObject=this.getMediaStream(),t.muted=this.muted,this.element=t,BD(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),t===aP&&(aP=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():"analyser"===this.volumeMeterMode&&this.pipeline.analyser.setNode(PL().createAnalyser()),function(){Rb(this,null,(function*(){try{rP||(rP=!0,Tk.info("speakers:".concat((yield iP()).map((e=>" ".concat(e.deviceId.slice(0,8),": ").concat(e.label))))))}catch(e){}}))}(),Sb(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,r;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield null==(r=(t=this.element).setSinkId)?void 0:r.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()}},lP=class extends cP{setTrack(e){this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(XM.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)}},uP=class extends cP{constructor(e){super(e),Ab(this,"_sourceElement"),Ab(this,"_output",new xL),this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(PL().destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var t,r;(null==(r=null==(t=this.element)?void 0:t.error)?void 0:r.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(XM.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.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"):VC||(this._log.info("start set pipeline volume: ".concat(e)),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),eL(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&&qN&&(aP=t),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}},dP=class extends GM{constructor(e){let{userId:t,sdkAppId:r,mediaType:i,room:o,PlayerClass:n=(1===i?uP:wL)}=e;var a;super(),Ab(this,"id",Ik()),Ab(this,"userId",""),Ab(this,"isRemote"),Ab(this,"mediaType"),Ab(this,"room"),Ab(this,"user"),Ab(this,"_log"),Ab(this,"_inputTrack"),Ab(this,"_outputTrack"),Ab(this,"isPlayCalled"),Ab(this,"container",null),Ab(this,"player"),Ab(this,"subVideoPlayerMap"),Ab(this,"muted",!1),Ab(this,"abortCtrl"),Ab(this,"objectFit","cover"),Ab(this,"mirror"),Ab(this,"isScreen",!1),Ab(this,"manager"),Ab(this,"trackSettings"),Ab(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=i,this._log=Tk.createLogger({id:"".concat(this.kind[0],"t"),userId:null==(a=o||this.room)?void 0:a.userId,remoteUserId:this instanceof CP?void 0:this.userId,sdkAppId:r,type:2===this.mediaType?"auxiliary":"main",isLocal:this instanceof CP}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(XM.PLAYER_STATE_CHANGED,(e=>{gk.emit(vk.PLAYER_STATE_CHANGED,gb({track:this},e)),this.emit("player-state-changed",e)})),this.kind===_w.VIDEO&&(this.player.on(XM.LOADED_DATA,(()=>{this.emitFirstVideoFrameEvent(XM.LOADED_DATA),gk.emit(vk.VIDEO_LOADED_DATA,{track:this})})),this.player.on(XM.LOADED_META_DATA,(()=>{this.emitFirstVideoFrameEvent(XM.LOADED_META_DATA)})),this.player.on(XM.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(XM.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||Tk}get kind(){return 1===this.mediaType?_w.AUDIO:_w.VIDEO}get strMediaType(){return 4===this.mediaType?_w.VIDEO:2===this.mediaType?_w.SCREEN:_w.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 r=GD(e)?e[0]:e;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(t))),t&&!VD(t.muted)&&this.setPlayerMute(t.muted),t&&!VD(t.objectFit)&&(this.objectFit=t.objectFit),void(this.player instanceof wL&&(this.player.setObjectFit(this.objectFit),this.container!==r&&r&&(this.container=r,this.player.setContainer(r)),GD(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),t))));if(t&&!VD(t.muted)?this.setPlayerMute(t.muted):(!this.isRemote||this.kind===_w.VIDEO)&&this.setPlayerMute(!0),t&&!VD(t.objectFit)&&(this.objectFit=t.objectFit),this.player instanceof wL&&(this.player.setObjectFit(this.objectFit),t&&!VD(t.poster)&&this.player.setPoster(t.poster)),this.isPlayCalled=!0,r&&(this.container=r,this.player instanceof wL&&this.player.setContainer(r)),gk.emit(vk.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),GD(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),t))}catch(Mk){throw this.handleAutoPlayFailed(Mk),Mk}}else this.log.info("play has not mediaTrack, abort")}))}setMirror(e,t){if(this.isScreen||this.kind!==_w.VIDEO||VD(e)||e===this.mirror)return;this.mirror=e;let r=this.player;t&&(r=t);let i=this.manager;if(HD(this.mirror))return r.setViewMirror(this.mirror),void(i&&(i.mirror=!1));switch(this.mirror){case"view":i&&(i.mirror=!1),r.setViewMirror(!0);break;case"publish":i&&(i.mirror=!0),r.setViewMirror(!0);break;case"both":i&&(i.mirror=!0),r.setViewMirror(!1)}}playSubContainer(e,t){return Rb(this,null,(function*(){if(!this._outputTrack||this.kind===_w.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach(((t,r)=>{var i;e.find((e=>r===e))||(t.stop(),null==(i=this.subVideoPlayerMap)||i.delete(r))}));for(let[i,o]of e.entries()){let e=this.subVideoPlayerMap.get(o);e?t&&(VD(t.objectFit)||e.setObjectFit(t.objectFit)):this.subVideoPlayerMap.set(o,new wL({id:this.userId||this.id,track:this.playerMediaTrack,container:o,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(i+1)})}))}let r=[...this.subVideoPlayerMap.values()];for(let e of r)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(AC(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),gk.emit(e?vk.TRACK_MUTED:vk.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){ZM(e,e).add(_w.MUTE,this.onTrackMuted).add(_w.UNMUTE,this.onTrackUnmuted).add(_w.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===_w.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){eL(e)}setInputMediaStreamTrack(e){var t;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=null==(t=e.getSettings)?void 0:t.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var 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(AC(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 bL;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 wL?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var t,r,i;if(this.isFirstVideoFrameEmitted)return;let o=null==(t=this.mediaTrack)?void 0:t.getSettings(),n=(null==o?void 0:o.width)||(null==(r=this.player.element)?void 0:r.videoWidth)||0,a=(null==o?void 0:o.height)||(null==(i=this.player.element)?void 0:i.videoHeight)||0;e===XM.LOADED_META_DATA&&!n&&!a||(e===XM.LOADED_DATA&&!n&&!a&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,this.emit("first-video-frame",{width:n,height:a,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"))}};Ib([BM([],GM.INIT,{sync:!0})],dP.prototype,"close",1);var hP=Object.prototype.hasOwnProperty;var pP=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(MD(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(hP.call(e,t))return!1;return!0}return!1},mP=RC({retryFunction:function(e){return Rb(this,null,(function*(){let t=function(e){return{audio:_P(e),video:gP(e)}}(e);Tk.info("getUserMedia with constraints: ".concat(JSON.stringify(t)));let r=[],i=[],o=["label","deviceId","groupId"];t.audio&&(r=yield eP(),Tk.info("microphones: ".concat(uC(r.map((e=>Eb(gb({},e),{groupId:e.groupId.substring(0,8)}))),{keysToInclude:o})))),t.video&&(i=yield tP(),Tk.info("cameras: ".concat(uC(i,{keysToInclude:o}))));try{let e=yield navigator.mediaDevices.getUserMedia(t);return yM&&e.getTracks().forEach((e=>{Tk.info("".concat(e.kind," capabilities: ").concat(uC(e.getCapabilities(),{keysToInclude:_D})))})),t.audio&&LL(),e}catch(Mk){let{message:o}=Mk;throw"NotFoundError"===Mk.name&&(e.video&&i&&0===i.length&&(o=CO({key:RO.CAMERA_NOT_FOUND})),e.audio&&r&&0===r.length&&(o=CO({key:RO.MICROPHONE_NOT_FOUND}))),new Lb({code:Ob.INITIALIZE_FAILED,name:Mk.name,message:o,constraint:Mk.constraint})}}))},settings:{retries:3,timeout:500},onError:e=>{let{error:t,retry:r,reject:i,retryFuncArgs:o,retriedCount:n}=e,a=n+1;"NotReadableError"===t.name||"OverconstrainedError"===t.name?(1===a?(o[0].video&&(o[0].maxResolution=!1,(!zN||o[0].width*o[0].height<=2073600)&&o[0].frameRate&&(o[0].frameRate=o[0].frameRate>10?10:5)),o[0].retryWhenExactFailed&&o[0].useExactDeviceId&&(o[0].useExactDeviceId=!1)):2===a?o[0].useDeviceIdOnly=!0:3===a&&!o[0].useExactDeviceId&&(o[0].useTrueAsConstraint=!0),r()):i(t),o[0].microphoneId&&fP(o[0].microphoneId,!1),o[0].cameraId&&fP(o[0].cameraId,!0)},onRetrying:e=>{Tk.warn("getUserMedia NotReadableError observed, retrying [".concat(e,"/3]"))},onRetryFailed:e=>{tL.logFailedEvent({eventType:zw.GET_USER_MEDIA_RETRY,error:e})},onRetrySuccess:e=>{tL.logSuccessEvent({eventType:zw.GET_USER_MEDIA_RETRY}),tL.uploadEvent({log:"stat-".concat(zw.GET_USER_MEDIA_RETRY,"-success-").concat(e)})}});function fP(e,t){return Rb(this,null,(function*(){let r=(t?yield tP():yield eP()).find((t=>t.deviceId===e));r&&UD(r.getCapabilities)&&Tk.warn(uC(r.getCapabilities(),{keysToInclude:_D}))}))}function _P(e){if(!e.audio)return!1;if(e.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:e.sampleRate};return!pP(e.microphoneId)&&(t.deviceId=e.useExactDeviceId?{exact:e.microphoneId}:e.microphoneId,e.useDeviceIdOnly)?t:(BD(e.channelCount)&&(t.channelCount=e.channelCount),HD(e.echoCancellation)&&!e.echoCancellation&&(t.echoCancellation=!1),HD(e.noiseSuppression)&&!e.noiseSuppression&&(t.noiseSuppression=!1),HD(e.autoGainControl)&&!e.autoGainControl&&(t.autoGainControl=!1),!!pP(t)||t)}function gP(e){if(!e.video)return!1;if(e.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=e,r={};return e.cameraId?r.deviceId=e.useExactDeviceId?{exact:e.cameraId}:e.cameraId:e.facingMode&&(r.facingMode=e.facingMode),e.useDeviceIdOnly&&!pP(r)?r:(e.width&&(r.width={ideal:e.width},t&&!GC&&(r.width.max=e.width)),e.height&&(r.height={ideal:e.height},t&&!GC&&(r.height.max=e.height)),GC&&yN&&e.width&&e.height&&e.width*e.height<101376&&(r.width=e.width,r.height=e.height),e.frameRate&&(r.frameRate=e.frameRate),!!pP(r)||r)}var EP=mP;function vP(e){return yP(((t,r)=>function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return Rb(this,null,(function*(){let r=yield t.apply(this,i);return yield e.call(this,...i),r}))}))}function yP(e){return function(t,r,i){return i.value=e(i.value,r),i}}var TP=(()=>{let e=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&Tk.info("visibility change: ".concat(document.visibilityState)),!e&&(document.addEventListener("visibilitychange",(()=>{Tk.info("visibility change: ".concat(document.visibilityState)),t=document.visibilityState})),e=!0)}})(),IP=0,AP=class{constructor(){Ab(this,"log",Tk.createLogger({id:"fq".concat(++IP)})),Ab(this,"isRunning",!1),Ab(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 r,i;let o=gb({},e),n=new Promise(((e,t)=>{o.resolve=e,o.reject=t}));return o.promise=n,t?this.length<=1?this.queue.push(o):null==(i=null==(r=this.lastQueueItem)?void 0:r.promise)||i.then(o.resolve,o.reject):this.queue.push(o),this.log.debug("push ".concat(this.length)),this.isRunning||this.callNext(),n}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:r,resolve:i,reject:o}=this.queue[0];this.isRunning=!0,e.apply(r,t).then(i,o).finally((()=>{this.isRunning=!1,this.shift(),this.callNext()}))}},SP=new WeakMap,RP=new WeakMap;function bP(e){return function(t,r,i){let o=i.value,n=t=>e(...t);return i.value=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];let i=RP.get(this)||new Map,a=i.get(n(t))||new AP;return i.set(n(t),a),RP.set(this,i),a.push({fn:o,args:t,context:this})},i}}function wP(e,t){return yP(((r,i)=>function(){let i=e;try{for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];let e=r.apply(this,n),s=$D();return zD(e)?e.then((e=>(t?FO.addSuccessEvent({key:i,cost:$D()-s}):FO.addSuccessEvent({key:i}),e))).catch((e=>{throw FO.addFailedEvent({key:i,error:e}),e})):(FO.addSuccessEvent({key:i}),e)}catch(Wb){throw FO.addFailedEvent({key:i,error:Wb}),Wb}}))}var DP=class e extends dP{constructor(e,t){super({mediaType:e,PlayerClass:t}),Ab(this,"isRemote",!1),Ab(this,"deviceId"),Ab(this,"groupId",""),Ab(this,"label",""),Ab(this,"_isRecapturing",!1),Ab(this,"_lastRecaptureTime",0),Ab(this,"_onMuteTimeoutId",-1),Ab(this,"_encodeCheckTimeoutId",-1),Ab(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return"publishing"===this.state.toString()}get isPublished(){return"publish"===this.state}encodeFrame(e,t){throw new Error("Method not implemented.")}installTrackEvent(e){ZM(e,e).add(_w.MUTE,this.onTrackMuted).add(_w.UNMUTE,this.onTrackUnmuted).add(_w.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===_w.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){eL(e)}setStateToCapture(){}capture(e){return Rb(this,null,(function*(){var t;try{let r,i=$D();gk.emit(vk.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(r=new MediaStream,r.addTrack(e.customSource)):(null==(t=this.mediaTrack)||t.stop(),r=yield EP(e));let o=r.getTracks()[0];return yield this.setInputMediaStreamTrack(o),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),gk.emit(vk.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:$D()-i}),r}catch(Nk){throw gk.emit(vk.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:Nk}),this.log.error("getUserMedia error observed ".concat(Nk)),Nk}}))}setInputMediaStreamTrack(e){return this.state===GM.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var t;if(super.setOutputMediaStreamTrack(e),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),gk.emit(vk.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return Rb(this,null,(function*(){if(this.mediaTrack&&vM){let{deviceId:e,groupId:t}=this.mediaTrack.getSettings(),{label:r}=this.mediaTrack;(yield function(e){return Rb(this,arguments,(function(e){let{newDeviceId:t,oldDeviceId:r,oldGroupId:i,oldLabel:o,kind:n}=e;return function*(){return t===r&&(n!==_w.AUDIO||t!==lD||(yield nP(i,o)))}()}))}({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=r,t&&(this.groupId=t),ZL().then((t=>{let r=t.find((t=>t.deviceId===e));r&&this.emit("2",r)})))}}))}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.mediaTrack||this.kind===_w.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 r="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(_w.AUDIO_INPUT);return!!oP.has(r)}(this.mediaTrack)||this.kind===_w.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 r="".concat(((null==e?void 0:e.getSettings())||{}).deviceId,"_").concat(_w.VIDEO_INPUT);return!!oP.has(r)}(this.mediaTrack)||this._isRecapturing||e&&yN&&zN)}onTrackMuted(){if(super.onTrackMuted(),TP(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<fD)return void setTimeout((()=>this.onTrackMuted()),fD);this._onMuteTimeoutId=setTimeout((()=>Rb(this,null,(function*(){var e;if(null!=(e=this.mediaTrack)&&e.muted){if((VC||FC)&&"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(Sb(e.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<fD)return void setTimeout((()=>this.onTrackEnded()),fD);this.recapture(yield this.getRecoverCaptureDeviceId())}}))}recapture(e){return Rb(this,null,(function*(){var t;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),null==(t=this._inputTrack)||t.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if("user"===e||"environment"===e)r.facingMode=e;else{let t;("audio"===this.kind?yield eP():yield tP()).find((t=>t.deviceId===e))&&(t=e),r.deviceId=t}return this.capture(r).then((()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),gk.emit(vk.LOCAL_TRACK_RECAPTURE,{track:this})})).catch((e=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(e.message)),this.emit("5",e),gk.emit(vk.LOCAL_TRACK_RECAPTURE,{track:this,error:e})}))}))}getRecoverCaptureDeviceId(){return Rb(this,null,(function*(){let e=this instanceof PP;if(e&&this.facingMode)return this.facingMode;let{deviceId:t}=this;if(t){let r=(NP.get(t)||0)+1;if(NP.set(t,r),r>=3){let i=e?(yield tP()).find((e=>!NP.has(e.deviceId))):(yield eP()).find((e=>!NP.has(e.deviceId)));i&&(this.log.warn("".concat(t," capture fail ").concat(r," times, change new ").concat(i.deviceId)),t=i.deviceId)}}return t}))}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),null==(e=this.manager)||e.removeInput(this)}};Ib([BM(GM.INIT,"capture",{ignoreError:!0,sync:!0})],DP.prototype,"setStateToCapture",1),Ib([function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,r,i){let o=i.value;return i.value=function(){let t=SP.get(this)||new AP;for(var r=arguments.length,i=new Array(r),n=0;n<r;n++)i[n]=arguments[n];return SP.set(this,t),t.push({fn:o,args:i,context:this},e)},i}}()],DP.prototype,"capture",1),Ib([BM("capture","publish",{ignoreError:!0,success(){var e,t;this.room.localTracks.add(this),gk.emit(vk.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;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===_w.AUDIO,t=this.stat.bytesSent>0;FO[t?"addSuccessEvent":"addFailedEvent"]({key:e?503700:513702}),t||(FO.addEnum({key:e?503701:513703,value:hk()}),tL.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(lk()||pk()),userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}}),5e3))},fail(e){let t="error";if(e.cause instanceof RTCError){let r=e.cause;r.message.includes("timeout")?t="timeout":r.code===Ob.API_CALL_ABORTED&&(t="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:t,error:e.cause||e})}}),wP(521714,!1)],DP.prototype,"publish",1),Ib([yP((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)}))})),BM([],"capture",{sync:!0})],DP.prototype,"unpublish",1);var CP=DP,NP=new Map;gk.on(vk.SWITCH_DEVICE_SUCCESS,(e=>{e.track.deviceId&&NP.delete(e.track.deviceId)}));var kP=class e extends CP{constructor(e){super(1,lP),Ab(this,"mediaType",1),Ab(this,"volume",0),Ab(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),Ab(this,"playerMuted",!0),Ab(this,"pipeline"),Ab(this,"earMonitorGainNode",new xL),Ab(this,"_output",new xL),Ab(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),this.manager=e,this.pipeline=new FL(e),this.pipeline.gain.pipeTo(this.earMonitorGainNode.pipeTo(this._output),this.player.pipeline.volumeMeter),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}get dbVolume(){return zL.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}setInputMediaStreamTrack(t){return Rb(this,null,(function*(){let r=this.trackSettings||{};FO.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),FO.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),FO.addEnum({key:502700,value:0});let{sampleRate:i,channelCount:o}=r;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:i,channelCount:o}))),this.pipeline.replaceSource(t),yield Sb(e.prototype,this,"setInputMediaStreamTrack").call(this,t),this.updatePlayingState(!!t)}))}capture(e){let{deviceId:t,customSource:r,useExactDeviceId:i=!0,retryWhenExactFailed:o=!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:i,retryWhenExactFailed:o,customSource:r})}switchDevice(e){return Rb(this,null,(function*(){if(this.mediaTrack){if(this.deviceId===e){if(e!==lD)return;if(yield nP(this.groupId,this.label))return}try{this.log.info("switchDevice audio to: ".concat(e)),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),gk.emit(vk.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(Ww){throw this.log.error("switch microphone failed ".concat(Ww)),this.deviceId&&this.recapture(this.deviceId),Ww}}}))}listenDeviceChange(){$L&&!$L.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&$L.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return Rb(this,null,(function*(){if(e.deviceId===this.deviceId){this.log.warn("current microphone is lost: ".concat(JSON.stringify(e))),bV(this.userId,{eventId:2003,param1:6,streamType:1});let t=yield eP();t[0]?this.recapture(t[0].deviceId):$L.on("audioInputAdded",this.handleMicrophoneAdded,this)}}))}handleMicrophoneAdded(e){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:r,noiseSuppression:i,autoGainControl:o}=e;return function*(){let e=!1;!VD(r)&&r!==t.profile.echoCancellation&&(t.profile.echoCancellation=r,e=!0),!VD(i)&&i!==t.profile.noiseSuppression&&(t.profile.noiseSuppression=i,e=!0),!VD(o)&&o!==t.profile.autoGainControl&&(t.profile.autoGainControl=o,e=!0),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&&FO.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),VC&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(PL().createGain()),this._output.setNode(PL().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){if(!this._inputTrack)return;let t=this._inputTrack.getConstraints();return t.noiseSuppression=e,this._inputTrack.applyConstraints(t).catch((t=>this._log.warn("".concat(e?"enable":"disable"," ANS failed "),t)))}addDenoiser(e){var t;WN<=92&&48e3!==(null==(t=this.trackSettings)?void 0:t.sampleRate)?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(FO.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0))}close(){this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),$L.off("audioInputAdded",this.handleMicrophoneAdded,this),$L.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(t){return Rb(this,null,(function*(){try{yield Sb(e.prototype,this,"recapture").call(this,t)}catch(Ww){let i=(yield eP()).find((e=>e.deviceId!==t));if(!i)throw Ww;yield Sb(e.prototype,this,"recapture").call(this,i.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))}},OP=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,r=[],i=0;for(let n=e;n<=t;n++){let e=this.dataView.getInt8(n);switch(e){case 0:case 1:case 2:case 3:2===i&&(r.push(3),i=0),0==e?i++:i=0,r.push(e);break;default:i=0,r.push(e)}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...r]).buffer);this.dataView=o}removePreventionByte(){let e=this.seiPayloadStartIndex,t=this.dataView.byteLength-1,r=[],i=0;for(let n=e;n<=t;n++)switch(this.dataView.getInt8(n)){case 0:i++,r.push(this.dataView.getInt8(n));break;case 3:2!==i&&r.push(this.dataView.getInt8(n)),i=0;break;default:r.push(this.dataView.getInt8(n)),i=0}let o=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,e),...r]).buffer);this.dataView=o}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 o=6;o<this.dataView.buffer.byteLength;o++){let r=this.dataView.getUint8(o);if(t++,255!==r){e+=r;break}e+=255}let r=new ArrayBuffer(e),i=new DataView(r);for(let o=0;o<r.byteLength;o++,t++)i.setInt8(o,this.dataView.getInt8(t));return i}},MP=class{constructor(){Ab(this,"_seiMessageList",[]),Ab(this,"_smallSeiMessageList",[]),Ab(this,"_seiPayloadType",243)}encodeSEINalu(e){let t=e.byteLength,r=parseInt(String(t/255),10),i=t%255,o=[];o.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<r;a++)o.push(255);o.push(i);let n=new DataView(e);return o.push(...new Uint8Array(n.buffer)),o.push(128),new OP(new DataView(new Uint8Array(o).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,r=0,i=new DataView(e);for(let o=0;o<e.byteLength;o++)switch(i.getUint8(o)){case 0:t++;break;case 1:(2===t||3===t)&&r++,t=0;break;default:t=0}return r}encode(e,t){let r=t?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&e.data.byteLength>0){let t=9-this.getNaluCount(e.data);if(t<=0)return 0;let i=r.splice(0,t).reverse().map(this.encodeSEINalu.bind(this)),o=i.reduce(((e,t)=>e+t.dataView.byteLength),0),n=new ArrayBuffer(o+e.data.byteLength),a=new DataView(n),s=new DataView(e.data),c=0;for(let e=0;e<i.length;e++)for(let t=0;t<i[e].dataView.byteLength;t++)a.setInt8(c++,i[e].dataView.getInt8(t));for(let r=0;r<e.data.byteLength;r++)a.setInt8(c++,s.getInt8(r));return e.data=n,i.length}return 0}},LP=class e extends CP{constructor(e){super(arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,wL),Ab(this,"profile",{width:640,height:480,frameRate:15,bitrate:500}),Ab(this,"avoidCropping",!1),Ab(this,"_scaleResolutionDownBy"),Ab(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0}),Ab(this,"small"),Ab(this,"isNeedToSetBandwidth"),Ab(this,"muteImage"),Ab(this,"manager"),Ab(this,"_seiCodec",new MP),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(vM&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return"detail"===(null==(e=this._inputTrack)?void 0:e.contentHint)}setMute(t){return Rb(this,null,(function*(){var r,i,o;if(FD(t)){if(this.muteImage===t)return;yield null==(r=this.manager)?void 0:r.deleteWatermark("mute"),yield null==(i=this.manager)?void 0:i.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:t}),this.muteImage=t,Sb(e.prototype,this,"setMute").call(this,!1)}else yield null==(o=this.manager)?void 0:o.deleteWatermark("mute"),this.muteImage=void 0,Sb(e.prototype,this,"setMute").call(this,t)}))}capture(e){let{deviceId:t,facingMode:r,useExactDeviceId:i=!0,customSource:o,retryWhenExactFailed:n=!0}=e;return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:t,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:i,retryWhenExactFailed:n,customSource:o})}setProfile(e){let t=gb({},e),r=t.width>t.height;t.width*t.height<=19200&&FC&&HN&&(this.log.warn("resolution is ".concat(t.width,"*").concat(t.height,", fallback to 240*180")),t.width=r?240:180,t.height=r?180:240,t.bitrate=Math.max(t.bitrate,150)),t.width*t.height>921600&&ek&&(t.width=r?1280:720,t.height=r?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),this.avoidCropping&&(HN||GC)&&!ak()&&t.width*t.height<=230400&&t.width/t.height==16/9&&(this._scaleResolutionDownBy=1280/t.width,t.width=1280,t.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),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 t=this.settings;return(t.height!==this.profile.height||t.width!==this.profile.width||t.frameRate!==this.profile.frameRate)&&this.deviceId&&(16===$N?yield this.recapture(this.deviceId):(yield null==(e=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,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:_w.VIDEO,videoType:_w.BIG})):void 0}))}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return vM&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){if(this._scaleResolutionDownBy)return this._scaleResolutionDownBy;let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:pC()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}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))return;let t={useExactDeviceId:!0,retryWhenExactFailed:!1};"user"===e||"environment"===e?t.facingMode=e:t.deviceId=e,this.mediaTrack.stop(),yield this.capture(t),gk.emit(vk.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(Ww){throw this.log.error("switch camera failed ".concat(Ww)),this.deviceId&&this.recapture(this.deviceId),Ww}}))}listenDeviceChange(){$L&&!$L.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&$L.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return Rb(this,null,(function*(){if(e.deviceId===this.deviceId){this.log.warn("current camera is lost: ".concat(JSON.stringify(e))),bV(this.userId,{eventId:2003,param1:7,streamType:2});let t=yield tP();t[0]?this.recapture(t[0].deviceId):$L.on("videoInputAdded",this.handleCameraAdded,this)}}))}handleCameraAdded(e){return Rb(this,null,(function*(){this.log.warn("camera added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId)}))}encodeFrame(e,t){if(!this.manager)return e;let r=t?8:this.mediaType;return this.manager.encodePipeline.reduceRight(((e,t)=>t?t({frame:e,mediaType:r}):e),e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some((e=>e))}play(e,t){return VD(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,t)}close(){$L.off("videoInputAdded",this.handleCameraAdded,this),$L.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(t){return Rb(this,null,(function*(){try{yield Sb(e.prototype,this,"recapture").call(this,t)}catch(Ww){let i=(yield tP()).find((e=>e.deviceId!==t));if(!i)throw Ww;yield Sb(e.prototype,this,"recapture").call(this,i.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))}};Ib([vP((function(e){this.setContentHint(e.contentHint||"motion")}))],LP.prototype,"capture",1);var PP=LP,xP=Ik();if("undefined"!=typeof navigator&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:xP,exposeOrigin:!0,permittedOrigins:["*"]})}catch(iF){}var UP=function(e){return Rb(this,null,(function*(){let t=null,r=function(e){let t={preferCurrentTab:"current-tab"===e.preferDisplaySurface||!!e.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},r={width:zN?{max:e.width}:{ideal:e.width,max:e.width},height:zN?{max:e.height}:{ideal:e.height,max:e.height},frameRate:e.frameRate,displaySurface:e.preferDisplaySurface||"monitor"};if(t.video=r,e.systemAudio){let{echoCancellation:r=!0,noiseSuppression:i=!1,autoGainControl:o=!1}=e;t.audio={echoCancellation:r,noiseSuppression:i,autoGainControl:o,sampleRate:48e3}}return t}(e);Tk.info("getDisplayMedia with constraints: ".concat(JSON.stringify(r)));let i=yield navigator.mediaDevices.getDisplayMedia(r);e.systemAudio&&0===i.getAudioTracks().length&&(jN&&WN<74||zN||GC)&&Tk.warn("Your browser not support capture system audio");let o=i.getVideoTracks()[0];if(o){if(e.frameRate)try{yield o.applyConstraints({frameRate:{min:e.frameRate,ideal:e.frameRate},width:e.width,height:e.height})}catch(Mk){Tk.warn("screen applyConstraints failed: ".concat(Mk))}e.captureElement&&(yield function(e,t){return Rb(this,null,(function*(){var r;if("CropTarget"in window&&"fromElement"in CropTarget&&UD(e.cropTo))try{if((null==(r=e.getCaptureHandle())?void 0:r.handle)!==xP)return;let i=yield CropTarget.fromElement(t);yield e.cropTo(i)}catch(i){Tk.warn("cropTo target failed ".concat(i))}}))}(o,e.captureElement))}if(e.audio){let r=function(e){let t={echoCancellation:e.echoCancellation,autoGainControl:e.autoGainControl,noiseSuppression:e.noiseSuppression,sampleRate:e.sampleRate,channelCount:e.channelCount};return VD(e.microphoneId)||(t.deviceId=e.microphoneId),{audio:t,video:!1}}(e);Tk.info("getUserMedia with constraints: ".concat(JSON.stringify(r))),t=yield navigator.mediaDevices.getUserMedia(r),i.addTrack(t.getAudioTracks()[0])}return i}))},VP=class extends PP{constructor(e){super(e,2),Ab(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),Ab(this,"objectFit","contain"),Ab(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}capture(e){return Rb(this,arguments,(function(e){var t=this;let{systemAudio:r=!1,autoGainControl:i,echoCancellation:o,noiseSuppression:n,audioTrack:a,videoTrack:s,captureElement:c,preferDisplaySurface:l}=e;return function*(){try{let e;return s||a?(e=new MediaStream,s&&e.addTrack(s),a&&e.addTrack(a)):e=yield UP({audio:!1,systemAudio:r,width:t.profile.width,height:t.profile.height,frameRate:t.profile.frameRate,autoGainControl:i,echoCancellation:o,noiseSuppression:n,captureElement:c,preferDisplaySurface:l}),yield t.setInputMediaStreamTrack(e.getVideoTracks()[0]),e}catch(bk){throw t.log.error("getDisplayMedia error observed ".concat(bk)),bk instanceof Lb?bk:new Lb({code:Ob.INITIALIZE_FAILED,name:bk.name,message:bk.message})}}()}))}switchDevice(e){return Rb(this,null,(function*(){throw new Error("Method not implemented.")}))}};Ib([vP((function(e){this.setContentHint(e.contentHint||"detail")}))],VP.prototype,"capture",1);var FP,BP=class extends kP{constructor(e){super(e),this._log.id="s-".concat(this._log.id)}};function HP(e){return Rb(this,null,(function*(){let t=PL();FP||(FP=DL(t,URL.createObjectURL(new Blob(["registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});"],{type:"application/javascript"})))),yield FP;let r=new AudioWorkletNode(t,"dumper",{numberOfInputs:e.length,numberOfOutputs:0});return e.forEach(((e,t)=>e.connect(r,0,t))),new ReadableStream({start(e){r.port.onmessage=t=>{e.enqueue(t.data)}},cancel(){e.forEach((e=>e.disconnect(r))),r.port.close()}})}))}var jP=class extends BL{constructor(e){super(),this.room=e,Ab(this,"_localAudioTrack"),Ab(this,"_localScreenAudioTrack"),Ab(this,"log",Tk.createLogger({id:"am"})),Ab(this,"denoiser"),Ab(this,"voiceChanger"),Ab(this,"mixChangedDebounce"),Ab(this,"encodePipeline",[]),Ab(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return null==(e=this._localAudioTrack)?void 0:e.pipeline}dump(e){var t,r;if(!this._localAudioTrack)return;let i=[],o=[];null!=(t=this._localAudioPipline)&&t.source.node&&(i.push(this._localAudioPipline.source.node),o.push("mic")),null!=(r=this._localAudioPipline)&&r.denoiser.node&&(i.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(i.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info("dump audio track ".concat(o,", duration: ").concat(e));let n=new AbortController,a=[],s=setTimeout((()=>{this.log.info('dump audio track complete please input "download()" to download.'),n.abort("timeout")}),1e3*e),c=()=>{for(let e=0;e<o.length;e++){let t=URL.createObjectURL(new Blob(a[e])),r=document.createElement("a");r.href=t,r.download="".concat(o[e],".pcm"),r.style.display="none",document.body.appendChild(r),r.click(),URL.revokeObjectURL(t),r.remove()}clearTimeout(s),n.abort("download")},l=HP(i).then((e=>e.pipeTo(new WritableStream({write(e){e.forEach(((e,t)=>a[t]=a[t]?a[t].concat(e[0]):[e[0]]))}}),n).catch((e=>c))));return{then:l.then.bind(l),download:c}}getPCM(e){var t;if(VD(WritableStream))return void this.log.warn("getPCM failed: browser not support WritableStream");if(null==(t=this._localAudioPipline)||!t.source.node)return void this.log.warn("getPCM failed: no local audio track");this.log.warn("getPCM");let r=new Float32Array(1920),i=0,o=new AbortController;return HP([this._localAudioPipline.source.node]).then((t=>t.pipeTo(new WritableStream({write(t){t[0][0]&&(r.set(t[0][0],i),i+=t[0][0].length,i>=1920&&(i=0,e(r),r=new Float32Array(1920)))}}),o).catch((e=>this.log.warn("stop getPCM reason:".concat(e)))))),o}get hasScreenAudioTrack(){return null!==this._localScreenAudioTrack}get hasAudioTrack(){return!VD(this._localAudioTrack)}changeInput(e){return e instanceof BP?(this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange()):e instanceof kP?(this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange()):e instanceof oV?e.setOutputMediaStreamTrack(e.mediaTrack):void 0}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 BP?delete this._localScreenAudioTrack:e instanceof kP&&delete this._localAudioTrack}addDenoiser(e){var t;this.denoiser=e,null==(t=this._localAudioTrack)||t.addDenoiser(e)}removeDenoiser(e){var t;delete this.denoiser,null==(t=this._localAudioTrack)||t.removeDenoiser(e)}addVoiceChanger(e,t){var r;this.voiceChanger=[e,t],null==(r=this._localAudioTrack)||r.pipeline.voiceChanger.setNode(e,t)}removeVoiceChanger(){var e;delete this.voiceChanger,null==(e=this._localAudioTrack)||e.pipeline.voiceChanger.deleteNode()}destroy(){this.close()}addEncodeProcessor(e){let{processor:t,type:r}=e;var i;this.encodePipeline.includes(t)||(this.encodePipeline[r]=t,null==(i=this.room)||i.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:r}=e;var i;this.decodePipeline.includes(t)||(this.decodePipeline[r]=t,null==(i=this.room)||i.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}};var GP={};function WP(){}yb(GP,{Events:()=>nx,Inspect:()=>XP,LastSink:()=>$P,Sink:()=>QP,Subscribe:()=>ZP,TimeoutError:()=>ax,audit:()=>uU,bindCallback:()=>Fx,bindNodeCallback:()=>Bx,buffer:()=>vx,bufferCount:()=>Ex,bufferTime:()=>qU,call:()=>KP,catchError:()=>YU,combineLatest:()=>mx,concat:()=>dx,concatMap:()=>PU,concatMapTo:()=>xU,count:()=>zx,create:()=>tx,debounce:()=>pU,debounceTime:()=>mU,defer:()=>Ix,delay:()=>JU,deliver:()=>rx,dispose:()=>qP,elementAt:()=>fU,empty:()=>Gx,every:()=>yU,exhaustMap:()=>GU,exhaustMapTo:()=>WU,filter:()=>Xx,find:()=>_U,findIndex:()=>gU,first:()=>EU,fromAnimationFrame:()=>Ux,fromArray:()=>bx,fromEvent:()=>kx,fromEventPattern:()=>Nx,fromFetch:()=>Mx,fromIterable:()=>Lx,fromPromise:()=>Ox,fromReadableStream:()=>xx,fromReader:()=>Px,groupBy:()=>KU,identity:()=>zP,ignoreElements:()=>$x,iif:()=>px,inspect:()=>JP,interval:()=>wx,last:()=>vU,map:()=>SU,mapTo:()=>RU,max:()=>qx,merge:()=>lx,mergeMap:()=>FU,mergeMapTo:()=>BU,min:()=>Jx,never:()=>Hx,nothing:()=>WP,of:()=>Rx,pairwise:()=>IU,pipe:()=>ex,race:()=>ux,range:()=>Vx,reduce:()=>Kx,retry:()=>tV,scan:()=>TU,share:()=>cx,shareReplay:()=>hx,skip:()=>rU,skipUntil:()=>iU,skipWhile:()=>oU,startWith:()=>_x,subject:()=>Tx,subscribe:()=>QU,sum:()=>Yx,switchMap:()=>NU,switchMapTo:()=>OU,take:()=>Qx,takeLast:()=>tU,takeUntil:()=>Zx,takeWhile:()=>eU,tap:()=>ZU,throttle:()=>cU,throwError:()=>jx,timeInterval:()=>zU,timeout:()=>eV,timer:()=>Dx,toPromise:()=>XU,toReadableStream:()=>$U,withLatestFrom:()=>gx,zip:()=>fx});var KP=e=>e(),zP=e=>e;function qP(){this.dispose()}var JP=()=>"undefined"!=typeof __FASTRX_DEVTOOLS__,YP=1,XP=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(e){let t=new ox(e,this,this.streamId++);return nx.subscribe({id:this.id,end:!1},{nodeId:t.sourceId,streamId:t.id}),this(t),t}},$P=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=WP,this.error=WP,this.next=WP,this.dispose=WP,this.subscribe=WP,this.doDefer()}subscribe(e){return e instanceof XP?e.subscribe(this):e(this),this}get bindSubscribe(){return e=>this.subscribe(e)}doDefer(){this.defers.forEach(KP),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}},QP=class extends $P{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)}},ZP=class extends $P{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:WP,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:WP,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:WP;if(super(),this._next=t,this._error=r,this._complete=i,this.then=WP,e instanceof XP){let o={toString:()=>"subscribe",id:0,source:e};this.defer((()=>{nx.defer(o,0)})),nx.create(o),nx.pipe(o),this.sourceId=o.id,this.subscribe(e),nx.subscribe({id:o.id,end:!0}),t==WP?this._next=e=>nx.next(o,0,e):this.next=e=>{nx.next(o,0,e),t(e)},i==WP?this._complete=()=>nx.complete(o,0):this.complete=()=>{this.dispose(),nx.complete(o,0),i()},r==WP?this._error=e=>nx.complete(o,0,e):this.error=e=>{this.dispose(),nx.complete(o,0,e),r()}}else this.subscribe(e)}next(e){this._next(e)}complete(){this.dispose(),this._complete()}error(e){this.dispose(),this._error(e)}};function ex(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return r.reduce(((e,t)=>t(e)),e)}function tx(e,t,r){if(JP()){let i=Object.defineProperties(Object.setPrototypeOf(e,XP.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:r,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});nx.create(i);for(let e=0;e<r.length;e++){let t=r[e];"function"==typeof t&&t instanceof XP&&nx.addSource(i,t)}return i}return e}function rx(e,t){return function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return r=>{if(r instanceof XP){let o=tx((t=>{let n=new e(t,...i);n.sourceId=o.id,n.subscribe(r)}),t,arguments);return o.source=r,nx.pipe(o),o}return t=>r(new e(t,...i))}}}function ix(e,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:e,payload:t}})}var ox=class extends QP{constructor(e,t,r){super(e),this.source=t,this.id=r,this.sourceId=e.sourceId,this.defer((()=>{nx.defer(this.source,this.id)}))}next(e){nx.next(this.source,this.id,e),this.sink.next(e)}complete(){nx.complete(this.source,this.id),this.sink.complete()}error(e){nx.complete(this.source,this.id,e),this.sink.error(e)}},nx={addSource(e,t){ix("addSource",{id:e.id,name:e.toString(),source:{id:t.id,name:t.toString()}})},next(e,t,r){ix("next",{id:e.id,streamId:t,data:r&&r.toString()})},subscribe(e,t){let{id:r,end:i}=e;ix("subscribe",{id:r,end:i,sink:{nodeId:t&&t.nodeId,streamId:t&&t.streamId}})},complete(e,t,r){ix("complete",{id:e.id,streamId:t,err:r?r.toString():null})},defer(e,t){ix("defer",{id:e.id,streamId:t})},pipe(e){ix("pipe",{name:e.toString(),id:e.id,source:{id:e.source.id,name:e.source.toString()}})},update(e){ix("update",{id:e.id,name:e.toString()})},create(e){e.id||(e.id=YP++),ix("create",{name:e.toString(),id:e.id})}},ax=class extends Error{constructor(e){super("timeout after ".concat(e,"ms")),this.timeout=e}},sx=class extends $P{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 cx(){return e=>{let t=new sx(e);if(e instanceof XP){let r=tx((e=>{t.add(e)}),"share",arguments);return t.sourceId=r.id,r.source=e,nx.pipe(r),r}return tx(t.add.bind(t),"share",arguments)}}function lx(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx((e=>{let r=new QP(e),i=t.length;r.complete=()=>{0==--i&&e.complete()},t.forEach(r.bindSubscribe)}),"merge",arguments)}function ux(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx((e=>{let r=new Map;t.forEach((t=>{let i=new QP(e);r.set(t,i),i.complete=()=>{r.delete(t),0===r.size?e.complete():i.dispose()},i.next=e=>{r.delete(t),r.forEach((e=>e.dispose())),i.resetNext(),i.resetComplete(),i.next(e)}})),t.forEach((e=>r.get(e).subscribe(e)))}),"race",arguments)}function dx(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx((e=>{let r=0,i=t.length,o=new QP(e);o.complete=()=>{r<i&&!o.disposed?(o.doDefer(),o.subscribe(t[r++])):e.complete()},o.complete()}),"concat",arguments)}function hx(e){return t=>{let r=new sx(t),i=[];return r.next=function(t){i.push(t),i.length>e&&i.shift(),this.sinks.forEach((e=>e.next(t)))},tx((e=>{e.defer((()=>r.remove(e))),i.forEach((t=>e.next(t))),r.add(e)}),"shareReplay",arguments)}}function px(e,t,r){return tx((i=>e()?t(i):r(i)),"iif",arguments)}function mx(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx((e=>{let r=t.length,i=r,o=r,n=new Array(r),a=()=>{0==--o&&e.complete()};t.forEach(((t,r)=>{let o=new QP(e);o.next=t=>{0==--i?(o.next=t=>{n[r]=t,e.next(n)},o.next(t)):n[r]=t},o.complete=a,o.subscribe(t)}))}),"combineLatest",arguments)}function fx(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx((e=>{let r=t.length,i=r,o=new Array(r),n=()=>{0==--i&&e.complete()};t.forEach(((t,r)=>{let i=new QP(e),a=[];o[r]=a,i.next=t=>{a.push(t),o.every((e=>e.length))&&e.next(o.map((e=>e.shift())))},i.complete=n,i.subscribe(t)}))}),"zip",arguments)}function _x(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return e=>tx((function(r){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;for(;i<o&&!r.disposed;)r.next(t[i++]);r.disposed||r.subscribe(e)}),"startWith",arguments)}var gx=rx(class extends QP{constructor(e){super(e);let t=new QP(this.sink);for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];t.next=e=>this.buffer=e,t.complete=WP,t.subscribe(mx(...i))}next(e){this.buffer&&this.sink.next([e,...this.buffer])}},"withLatestFrom"),Ex=rx(class extends QP{constructor(e,t,r){super(e),this.bufferSize=t,this.startBufferEvery=r,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"),vx=rx(class extends QP{constructor(e,t){super(e),this.buffer=[];let r=new QP(e);r.next=t=>{e.next(this.buffer),this.buffer=[]},r.complete=WP,r.subscribe(t)}next(e){this.buffer.push(e)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),yx=function(e,t,r,i){return new(r||(r=Promise))((function(o,n){function a(e){try{c(i.next(e))}catch(bk){n(bk)}}function s(e){try{c(i.throw(e))}catch(bk){n(bk)}}function c(e){e.done?o(e.value):function(e){return e instanceof r?e:new r((function(t){t(e)}))}(e.value).then(a,s)}c((i=i.apply(e,t||[])).next())}))};function Tx(e){let t=arguments,r=cx()(tx((t=>{r.next=e=>t.next(e),r.complete=()=>t.complete(),r.error=e=>t.error(e),e&&t.subscribe(e)}),"subject",t));return r.next=WP,r.complete=WP,r.error=WP,r}function Ix(e){return tx((t=>t.subscribe(e())),"defer",arguments)}var Ax=e=>t=>{setTimeout((()=>e(t)))},Sx=e=>Ax((t=>{for(let r=0;!t.disposed&&r<e.length;r++)t.next(e[r]);t.complete()}));function Rx(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return tx(Sx(t),"of",arguments)}function bx(e){return tx(Sx(e),"fromArray",arguments)}function wx(e){return tx((t=>{let r=0,i=setInterval((()=>t.next(r++)),e);return t.defer((()=>{clearInterval(i)})),"interval"}),"interval",arguments)}function Dx(e,t){return tx((r=>{let i=0,o=setTimeout((()=>{if(r.removeDefer(n),r.next(i++),t){let e=setInterval((()=>r.next(i++)),t);r.defer((()=>{clearInterval(e)}))}else r.complete()}),e),n=()=>{clearTimeout(o)};r.defer(n)}),"timer",arguments)}function Cx(e,t){return r=>{let i=e=>r.next(e);r.defer((()=>t(i))),e(i)}}function Nx(e,t){return tx(Cx(e,t),"fromEventPattern",arguments)}function kx(e,t){if("on"in e&&"off"in e)return tx(Cx((r=>e.on(t,r)),(r=>e.off(t,r))),"fromEvent",arguments);if("addListener"in e&&"removeListener"in e)return tx(Cx((r=>e.addListener(t,r)),(r=>e.removeListener(t,r))),"fromEvent",arguments);if("addEventListener"in e)return tx(Cx((r=>e.addEventListener(t,r)),(r=>e.removeEventListener(t,r))),"fromEvent",arguments);throw"target is not a EventDispachter"}function Ox(e){return tx((t=>{e.then(t.next.bind(t),t.error.bind(t))}),"fromPromise",arguments)}function Mx(e,t){return tx(Ix((()=>Ox(fetch(e,t)))),"fromFetch",arguments)}function Lx(e){return tx(Ax((t=>{try{for(let r of e){if(t.disposed)return;t.next(r)}t.complete()}catch(Gb){t.error(Gb)}})),"fromIterable",arguments)}function Px(e){let t=r=>yx(this,void 0,void 0,(function*(){if(r.disposed)return;let{done:i,value:o}=yield e.read();i?r.complete():(r.next(o),t(r))}));return tx((e=>{t(e)}),"fromReader",arguments)}function xx(e){return tx((t=>{let r=new AbortController,i=r.signal;t.defer((()=>r.abort("cancelled"))),e.pipeTo(new WritableStream({write(e){t.next(e)},close(){t.complete()},abort(e){t.error(e)}}),{signal:i}).then((()=>t.complete()),(e=>t.error(e)))}),"fromReadableStream",arguments)}function Ux(){return tx((e=>{let t=requestAnimationFrame((function r(i){e.disposed||(e.next(i),t=requestAnimationFrame(r))}));e.defer((()=>cancelAnimationFrame(t)))}),"fromAnimationFrame",arguments)}function Vx(e,t){return tx((function(r){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t+e;for(;i<o&&!r.disposed;)r.next(i++);return r.complete(),"range"}),"range",arguments)}function Fx(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return tx((r=>{let o=i.concat((e=>(r.next(e),r.complete())));e.apply(t,o)}),"bindCallback",arguments)}function Bx(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return tx((r=>{let o=i.concat(((e,t)=>e?r.error(e):(r.next(t),r.complete())));e.apply(t,o)}),"bindNodeCallback",arguments)}function Hx(){return tx((()=>{}),"never",arguments)}function jx(e){return tx((t=>t.error(e)),"throwError",arguments)}function Gx(){return tx((e=>e.complete()),"empty",arguments)}var Wx=class extends QP{constructor(e,t,r){super(e),this.f=t;let i=()=>{this.sink.next(this.acc),this.sink.complete()};void 0===r?this.next=e=>{this.acc=e,this.complete=i,this.resetNext()}:(this.acc=r,this.complete=i)}next(e){this.acc=this.f(this.acc,e)}},Kx=rx(Wx,"reduce"),zx=e=>rx(Wx,"count")(((t,r)=>e(r)?t+1:t),0),qx=()=>rx(Wx,"max")(Math.max),Jx=()=>rx(Wx,"min")(Math.min),Yx=()=>rx(Wx,"sum")(((e,t)=>e+t),0),Xx=rx(class extends QP{constructor(e,t,r){super(e),this.filter=t,this.thisArg=r}next(e){this.filter.call(this.thisArg,e)&&this.sink.next(e)}},"filter"),$x=rx(class extends QP{next(e){}},"ignoreElements"),Qx=rx(class extends QP{constructor(e,t){super(e),this.count=t}next(e){this.sink.next(e),0==--this.count&&this.complete()}},"take"),Zx=rx(class extends QP{constructor(e,t){super(e);let r=new QP(e);r.next=()=>e.complete(),r.complete=qP,r.subscribe(t)}},"takeUntil"),eU=rx(class extends QP{constructor(e,t){super(e),this.f=t}next(e){this.f(e)?this.sink.next(e):this.complete()}},"takeWhile"),tU=e=>Kx(((t,r)=>(t.push(r),t.length>e&&t.shift(),t)),[]),rU=rx(class extends QP{constructor(e,t){super(e),this.count=t}next(e){0==--this.count&&(this.next=super.next)}},"skip"),iU=rx(class extends QP{constructor(e,t){super(e),e.next=WP;let r=new QP(e);r.next=()=>{r.dispose(),e.resetNext()},r.complete=qP,r.subscribe(t)}},"skipUntil"),oU=rx(class extends QP{constructor(e,t){super(e),this.f=t}next(e){this.f(e)||(this.next=super.next,this.next(e))}},"skipWhile"),nU={leading:!0,trailing:!1},aU=class extends QP{constructor(e,t,r){super(e),this.durationSelector=t,this.trailing=r}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)}},sU=class extends QP{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:nU;super(e),this.durationSelector=t,this.config=r,this._throttle=new aU(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=WP,this._throttle.complete(),super.complete()}},cU=rx(sU,"throttle"),lU={leading:!1,trailing:!0},uU=e=>rx(sU,"audit")(e,lU),dU=class extends QP{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},hU=class extends QP{constructor(e,t){super(e),this.durationSelector=t,this._debounce=new dU(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()}},pU=rx(hU,"debounce"),mU=e=>rx(hU,"debounceTime")((t=>Dx(e))),fU=rx(class extends QP{constructor(e,t,r){super(e),this.count=t,this.defaultValue=r}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"),_U=e=>t=>Qx(1)(oU((t=>!e(t)))(t)),gU=rx(class extends QP{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"),EU=rx(class extends QP{constructor(e,t,r){super(e),this.f=t,this.defaultValue=r,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"),vU=rx(class extends QP{constructor(e,t,r){super(e),this.f=t,this.defaultValue=r,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"),yU=rx(class extends QP{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"),TU=rx(class extends QP{constructor(e,t,r){super(e),this.f=t,void 0===r?this.next=e=>{this.acc=e,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(e){this.sink.next(this.acc=this.f(this.acc,e))}},"scan"),IU=rx(class extends QP{constructor(){super(...arguments),this.hasLast=!1}next(e){this.hasLast?this.sink.next([this.last,e]):this.hasLast=!0,this.last=e}},"pairwise"),AU=class extends QP{constructor(e,t,r){super(e),this.mapper=t,this.thisArg=r}next(e){super.next(this.mapper.call(this.thisArg,e))}},SU=rx(AU,"map"),RU=e=>rx(AU,"mapTo")((t=>e)),bU=class extends QP{constructor(e,t,r){super(e),this.data=t,this.context=r}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()}},wU=class extends QP{constructor(e,t,r){super(e),this.makeSource=t,this.combineResults=r,this.index=0}subInner(e,t){let r=this.currentSink=new t(this.sink,e,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(e,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},DU=class extends bU{},CU=class extends wU{next(e){this.subInner(e,DU),this.next=e=>{this.currentSink.dispose(),this.subInner(e,DU)}}},NU=rx(CU,"switchMap");function kU(e){return(t,r)=>e((()=>t),r)}var OU=kU(rx(CU,"switchMapTo")),MU=class extends bU{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},LU=class extends wU{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(),MU),this.disposed&&0===this.sources.length&&this.currentSink.resetComplete()}tryComplete(){0===this.sources.length&&this.currentSink.resetComplete(),this.dispose()}},PU=rx(LU,"concatMap"),xU=kU(rx(LU,"concatMapTo")),UU=class extends bU{tryComplete(){this.context.inners.delete(this),super.dispose(),0===this.context.inners.size&&this.context.resetComplete()}},VU=class extends wU{constructor(){super(...arguments),this.inners=new Set}next(e){this.subInner(e,UU),this.inners.add(this.currentSink)}tryComplete(){1===this.inners.size?this.inners.forEach((e=>e.resetComplete())):this.dispose()}},FU=rx(VU,"mergeMap"),BU=kU(rx(VU,"mergeMapTo")),HU=class extends bU{dispose(){this.context.resetNext(),super.dispose()}},jU=class extends wU{next(e){this.next=WP,this.subInner(e,HU)}},GU=rx(jU,"exhaustMap"),WU=kU(rx(jU,"exhaustMapTo")),KU=rx(class extends QP{constructor(e,t){super(e),this.f=t,this.groups=new Map}next(e){let t=this.f(e),r=this.groups.get(t);void 0===r&&(r=Tx(),r.key=t,this.groups.set(t,r),super.next(r)),r.next(e)}complete(){this.groups.forEach((e=>e.complete())),super.complete()}error(e){this.groups.forEach((t=>t.error(e))),super.error(e)}},"groupBy"),zU=rx(class extends QP{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"),qU=rx(class extends QP{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"),JU=rx(class extends QP{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:r}=e;super.next(r),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"),YU=rx(class extends QP{constructor(e,t){super(e),this.selector=t}error(e){this.dispose(),this.selector(e)(this.sink)}},"catchError"),XU=()=>e=>new Promise(((t,r)=>{let i;new ZP(e,(e=>i=e),r,(()=>t(i)))})),$U=()=>e=>{let t;return new ReadableStream({start(r){t=new ZP(e,r.enqueue.bind(r),r.error.bind(r),r.close.bind(r))},cancel(){t.dispose()}})},QU=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:WP,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:WP,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:WP;return i=>new ZP(i,e,t,r)},ZU=rx(class extends QP{constructor(e,t){super(e),t instanceof Function?this.next=r=>{t(r),e.next(r)}:(t.next&&(this.next=r=>{t.next(r),e.next(r)}),t.complete&&(this.complete=()=>{t.complete(),e.complete()}),t.error&&(this.error=r=>{t.error(r),e.error(r)}))}},"tap"),eV=rx(class extends QP{constructor(e,t){super(e),this.timeout=t,this.id=setTimeout((()=>this.error(new ax(this.timeout))),this.timeout)}next(e){super.next(e),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),tV=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;return t=>{if(t instanceof XP){let r=tx((i=>{let o=e,n=new QP(i);n.error=e=>{o-- >0?n.subscribe(t):i.error(e)},n.sourceId=r.id,n.subscribe(t)}),"retry",[e]);return r.source=t,nx.pipe(r),r}return r=>{let i=e,o=new QP(r);o.error=e=>{i-- >0?t(o):r.error(e)},t(o)}}},rV=class e extends dP{constructor(t,r,i){super({userId:r.userId,sdkAppId:t.sdkAppId,mediaType:i,room:t}),this.room=t,this.user=r,Ab(this,"tinyId"),Ab(this,"isRemote",!0),Ab(this,"jitterBufferDelay",0),Ab(this,"availableState"),Ab(this,"remotePublishState"),Ab(this,"_triggerCheckDecodeSubject",Tx(kx(this,e.STATE_SUBSCRIBE))),this.tinyId=r.tinyId,this.availableState=new GM("".concat(r.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new GM("".concat(r.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),ex(lx(kx(this,GM.STATECHANGED),kx(this.remotePublishState,GM.STATECHANGED)),SU((()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing))),QU((e=>{this.availableState.state!==(e?GM.ON:GM.OFF)&&(this.availableState.state=e?GM.ON:GM.OFF),this.updatePlayingState(e)})));let o=ex(kx(this.player,XM.ERROR),Xx((e=>e.code===MediaError.MEDIA_ERR_DECODE))),n=ex(Dx(5e3),Xx((()=>!(this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived)&&(!this.player.isPlaying&&!(this.kind===_w.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1))))),a=ex(ux(o,n),Zx(kx(this,GM.INIT)));ex(this._triggerCheckDecodeSubject,Xx((()=>!this.ignoreDecodeError)),OU(a),QU((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===GM.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){let r=this.kind===_w.AUDIO;FO[e?"addSuccessEvent":"addFailedEvent"]({key:r?504700:514702}),e||(FO.addEnum({key:r?504701:514703,value:hk()}),tL.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(lk()||pk()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===_w.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?GM.ON:GM.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};Ab(rV,"STATE_SUBSCRIBE","subscribe"),Ib([function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return yP(((r,i)=>function(){for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];return new Promise(((o,a)=>{let s=setTimeout((()=>{let r=new Lb({code:Ob.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(i,"() timeout ").concat(e,"s")});Tk.warn(r),2===t?a(r):1===t&&o()}),1e3*e);r.apply(this,n).then(o,a).finally((()=>{clearTimeout(s)}))}))}))}(5,1)],rV.prototype,"waitHasMediaTrack",1),Ib([BM(GM.INIT,rV.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),gk.emit(vk.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),wP(521716,!1)],rV.prototype,"subscribe",1),Ib([BM(rV.STATE_SUBSCRIBE,GM.INIT,{sync:!0,success(){this.log.info("unsubscribed"),gk.emit(vk.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],rV.prototype,"unsubscribe",1);var iV=rV,oV=class extends iV{constructor(e,t){super(e,t,1),Ab(this,"volume",0),Ab(this,"mediaType",1),Ab(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=e.audioManager}get dbVolume(){return zL.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 r of this.manager.decodePipeline)if(r&&(t=r({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}},nV=[-1,-1,1,-1,-1,1,1,1],aV=[0,0,1,0,0,1,1,1],sV=class extends GM{constructor(e,t){if(super(),this.context=e,Ab(this,"name"),Ab(this,"input"),Ab(this,"output"),Ab(this,"texture"),Ab(this,"ctx2d",null),Ab(this,"fbo"),Ab(this,"width",0),Ab(this,"height",0),Ab(this,"x",0),Ab(this,"y",0),Ab(this,"program"),Ab(this,"vertexShader"),Ab(this,"fragmentShader"),Ab(this,"totalFrames",0),Ab(this,"dropFrames",0),Ab(this,"matchInputSize",!0),Ab(this,"texCoordBuffer"),Ab(this,"positionBuffer"),Ab(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),Ab(this,"cost",0),Ab(this,"_canvas",null),Ab(this,"_image"),Ab(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 IV)e.ctx&&t.create2d&&("function"==typeof OffscreenCanvas&&16!==$N?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 r=e.ctx;this.texCoordBuffer=this.createBuffer(aV),this.positionBuffer=this.createBuffer(nV),!1!==t.createTexture&&(this.texture=r.createTexture(),this.useTexture(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1)),t.useFbo&&(this.fbo=r.createFramebuffer(),this.useBufferFrame(),this.useTexture(),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,this.width,this.height,0,r.RGBA,r.UNSIGNED_BYTE,null),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,this.texture,0)),t.useDefaultProgram?this.program=e.defaultProgam:(t.vertexShaderSource||t.fragmentShaderSource)&&(this.vertexShader=t.vertexShaderSource?e.createShader(r.VERTEX_SHADER,t.vertexShaderSource):e.defaultVShader,this.fragmentShader=t.fragmentShaderSource?e.createShader(r.FRAGMENT_SHADER,t.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(Nk){this.context.destroy(new Lb({code:Ob.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(Nk.message||Nk)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let t=this.context.ctx,r=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),r}connect(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return e.addInput(this,...r),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 TV&&this.render(e)||this.context instanceof IV&&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,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];null==(e=this.output)||e.removeInput(this,...r),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 TV){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,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(((t,r)=>{t&&(e.activeTexture(e.TEXTURE0+r),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,r=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,r),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW),r}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 r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,e),r.bufferData(r.ARRAY_BUFFER,new Float32Array(t),r.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(((t,r)=>{e.enableVertexAttribArray(r),e.bindBuffer(e.ARRAY_BUFFER,t),e.vertexAttribPointer(r,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 r=this.context.ctx;r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e,t,0,r.RGBA,r.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 r=this.context.ctx;r.drawArrays(r.TRIANGLE_STRIP,0,4)}draw2d(e,t,r,i,o){return!(!this.ctx2d||!e)&&(e instanceof ImageData?this.ctx2d.putImageData(e,t,r):(this.ctx2d.drawImage(e,t,r,i,o),"undefined"!=typeof VideoFrame&&e instanceof VideoFrame&&e.close()),!0)}getInfo(){var e;let{totalFrames:t,x:r,y:i,width:o,height:n,name:a,cost:s}=this,c=Date.now(),l=(t-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:t,x:r,y:i,width:o,height:n,timestamp:c,fps:l,name:a,cost:s},gb({parent:null==(e=this.input)?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let t=this.context.ctx,r=t.createTexture();return this.useTextures(r),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),r}};Ib([BM(GM.INIT,"connected",{sync:!0})],sV.prototype,"connect",1),Ib([BM("connected",GM.INIT,{ignoreError:!0,sync:!0})],sV.prototype,"disconnect",1),Ib([BM([],"closed",{sync:!0})],sV.prototype,"close",1);var cV=ex(wx(250),SU((()=>performance.now())),cx()),lV=e=>t=>{let r=performance.now();ex(cV,oU((t=>t-r<e)),Qx(1))(t)},uV=[0,1,1,1,0,0,1,0],dV=class extends sV{constructor(e,t){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},t)),Ab(this,"_intervalId",0),Ab(this,"_sequence",0),Ab(this,"checkGLError",!1),Ab(this,"checkVisibilityChange"),e instanceof IV?this.ctx2d=e.ctx||null:e.available&&null!=t&&t.mirrorUpAndDown&&this.setTexBuffer(uV)}start(e){this.log.info("".concat(this.name," start render ").concat(e," fps")),YM.clearTask(this._intervalId),this._intervalId=YM.run("intervalInWorker",(()=>{if(e!==this.context.frameRate&&(YM.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof TV){let e=this.context.ctx.getError();e&&this.context.destroy(new Lb({code:Ob.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,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];super.addInput(e,...r),this.start(this.context.frameRate)}update(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this._intervalId&&(YM.clearTask(this._intervalId),this._intervalId=0,1===e)){this.log.info("".concat(this.name," use requestVideoFrameCallback"));let e=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",e))};document.addEventListener("visibilitychange",e)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),YM.clearTask(this._intervalId)}resize(e,t){super.resize(e,t),this.context.setSize(e,t)}close(){super.close(),YM.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},hV=class extends dV{constructor(e,t){super(e,t),Ab(this,"_videoTrack"),Ab(this,"_muteOb"),Ab(this,"_closedOb",kx(this,"closed")),Ab(this,"_subscription"),Ab(this,"_canvasContainer"),Number(JN)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=kx(this._videoTrack,"mute"),ex(kx(this._videoTrack,"ended"),Zx(this._closedOb),QU((()=>{this.context.destroy(new Lb({code:Ob.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))})))}enableCheckMute(){this._subscription=ex(this._muteOb,Zx(this._closedOb),OU(lV(5e3)),QU((()=>{var e;null!=(e=this._videoTrack)&&e.muted&&this.context.destroy(new Lb({code:Ob.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()}},pV=class extends hV{render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))}},mV=class extends hV{constructor(e,t,r){super(e,{name:"smallDestination",logger:r}),this.resolution=t}resize(e,t){let r,i=e*t,o=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," ")),i>o?r=i/o:(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)),r=i/19200),super.resize(e/Math.sqrt(r),t/Math.sqrt(r))}},fV=class extends sV{constructor(e,t){super(e,gb({name:"imageSource"},t)),Ab(this,"_lastImage"),Ab(this,"_totalFrames",0),Ab(this,"_autoResize",!1),Ab(this,"_canvasRendered"),Ab(this,"_videoCallbackId",0),this._autoResize=!1!==(null==t?void 0:t.autoResize),16===$N&&(this._canvasRendered=Tx(),ex(this._canvasRendered,_x(this._image),NU((e=>e instanceof HTMLCanvasElement?kx(e,"rendered"):Gx())),Zx(kx(this,"closed")),QU((()=>{this.update()}))))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),OM()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback(((e,t)=>{document.hidden||(this._totalFrames=t.presentedFrames,this.update(1))})))}_render(e,t){var r;let{width:i,height:o}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(n),({videoWidth:i,videoHeight:o}=n),!i||!o)return!1;n.width=i,n.height=o}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if(({width:i,height:o}=n),n!==this._lastImage)this._lastImage=n;else if(i===this.width&&o===this.height)return!1}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?(({width:i,height:o}=n),this._lastImage=n):"undefined"!=typeof VideoFrame&&n instanceof VideoFrame&&(({displayWidth:i,displayHeight:o}=n),null==(r=this._lastImage)||r.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===i&&this.height===o&&this.totalFrames){if(t){this.useTexture();let e=this.context.ctx;e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)}}else{if(t){this.useTexture();let e=this.context.ctx;e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}this.resize(i,o)}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)}},_V=class extends fV{constructor(e,t,r){super(e,r),this._player=t,this.name="videoPlayerSource",ex(kx(this._player,XM.PLAYER_STATE_CHANGED),Zx(kx(this,"closed")),Xx((e=>{let{state:t}=e;return"PLAYING"===t})),QU((()=>{this.tryVideoFrameCallback(this._player.element)})))}get image(){return this._player.element}},gV=class extends _V{constructor(e,t,r){super(e,new wL({id:r.name,track:t,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(e){this._player.setTrack(e),this._player.play()}close(){super.close(),this._player.stop()}},EV=class extends GM{constructor(e){super(),Ab(this,"frameRate"),Ab(this,"_canvas"),Ab(this,"log"),Ab(this,"hasAlpha",!1),Ab(this,"name"),Ab(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 gV(this,e,{logger:this.log,name:t})}createVideoTrackDestination(e){return new hV(this,e)}createVideoImageSource(e,t){return new fV(this,t?Object.assign(t,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,t){return new _V(this,e,t?Object.assign(t,{logger:this.log}):{logger:this.log})}get available(){return"created"===this.state}disconnect(){this.emit("disconnect")}};Ab(EV,"_ids",0);var vV={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},yV=class extends EV{constructor(){super(...arguments),Ab(this,"defaultProgam"),Ab(this,"defaultVShader"),Ab(this,"defaultFShader"),Ab(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(EV._ids++)),this.ctx=this._canvas.getContext("webgl2",vV),!this.ctx)throw new Lb({code:Ob.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 Lb({code:Ob.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}))}destroy(e){let t="";return e&&(t=e.message,this.error=e,FO.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 r;null==(r=this.ctx)||r.viewport(0,0,e,t),super.setSize(e,t)}createShader(e,t){let r=this.ctx,i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}createProgram(e,t){let r=this.ctx,i=r.createProgram();return r.attachShader(i,e),r.attachShader(i,t),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS)||this.log.error(r.getProgramInfoLog(i)),i}};Ab(yV,"UNAVAILABLE","unavailable"),Ib([BM(GM.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),FO.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),FO.addSuccessEvent({key:512700})}})],yV.prototype,"create",1),Ib([BM("created",GM.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(yV.UNAVAILABLE,e),this.removeAllListeners()}})],yV.prototype,"destroy",1);var TV=yV,IV=class extends EV{constructor(){super(...arguments),Ab(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(EV._ids++),this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new Lb({code:Ob.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,FO.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(),FO.addSuccessEvent({key:512703})}};Ib([BM(GM.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),FO.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),FO.addSuccessEvent({key:512701})}})],IV.prototype,"create",1),Ib([BM("created",GM.INIT,{ignoreError:!0,sync:!0})],IV.prototype,"destroy",1);var AV=class extends iV{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4),Ab(this,"mediaType",4),Ab(this,"source"),Ab(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(HD(null==t?void 0:t.canvasRender)?t.canvasRender:17===$N)&&!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 IV({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let t=new dV(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(t),this.player.setCanvas(e._canvas),OM()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let t=this.decodeFPS,r=(i=t,[15,30,45,60].reduce(((e,t)=>Math.abs(t-i)<Math.abs(e-i)?t:e)));var i;!BD(t)||t<=0?this.log.debug("updateCanvasPlayerFPS() ignore decoder: ".concat(t," ")):r!==e.frameRate?(this.log.info("updateCanvasPlayerFPS() decoder: ".concat(t,", closest: ").concat(r,", current: ").concat(e.frameRate)),e.frameRate=r):this.log.debug("updateCanvasPlayerFPS() ignore ClosestFPS ".concat(r," == ").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)))||{},r=2===this.mediaType?7:this.isSmall?3:2;if(!t||0===t.length)return 0;let i=t.find((e=>e.uint32_video_stream_type===r));return(null==i?void 0:i.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)}},SV=class extends AV{constructor(e,t){super(e,t,2),Ab(this,"mediaType",2),Ab(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},RV=new Map;function bV(e,t){let r=Eb(gb({},t),{timestamp:Pb()});RV.has(e)?RV.get(e).push(r):RV.set(e,[r])}function wV(e){if(RV.has(e)){let t=RV.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 RV.delete(e),t}return[]}gk.on(vk.JOIN_SUCCESS,(e=>{let{room:t}=e;bV(t.userId,{eventId:32788})})),gk.on(vk.LEAVE_START,(e=>{let{room:t}=e;bV(t.userId,{eventId:32789})})),gk.on(vk.LOCAL_TRACK_PUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32769;4===t.mediaType?e=32768:2===t.mediaType&&(e=32805),bV(t.room.userId,{eventId:e})}})),gk.on(vk.LOCAL_TRACK_UNPUBLISHED,(e=>{let{track:t}=e;if(t.room){let e=32771;4===t.mediaType?e=32770:2===t.mediaType&&(e=32806),bV(t.room.userId,{eventId:e})}})),gk.on(vk.TRACK_MUTED,(e=>{let{track:t}=e;t.room&&(t.kind===_w.AUDIO?bV(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):bV(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))})),gk.on(vk.TRACK_UNMUTED,(e=>{let{track:t}=e;t.room&&(t.kind===_w.AUDIO?bV(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):bV(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))})),gk.on(vk.REMOTE_TRACK_SUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&bV(t.room.userId,{eventId:32777,remoteUserId:t.userId}),4===t.mediaType&&bV(t.room.userId,{eventId:32776,remoteUserId:t.userId}),8===t.mediaType&&bV(t.room.userId,{eventId:32803,remoteUserId:t.userId}))})),gk.on(vk.REMOTE_TRACK_UNSUBSCRIBED,(e=>{let{track:t}=e;t.room&&(1===t.mediaType&&bV(t.room.userId,{eventId:32779,remoteUserId:t.userId}),4===t.mediaType&&bV(t.room.userId,{eventId:32778,remoteUserId:t.userId}),8===t.mediaType&&bV(t.room.userId,{eventId:32804,remoteUserId:t.userId}))})),gk.on(vk.SWITCH_DEVICE_SUCCESS,(e=>{let{track:t}=e;t.room&&bV(t.room.userId,{eventId:t.kind===_w.VIDEO?32780:32781})})),gk.on(vk.LOCAL_TRACK_REPLACED,(e=>{let{track:t}=e;t.room&&bV(t.room.userId,{eventId:t.kind===_w.VIDEO?32782:32783})})),gk.on(vk.SIGNAL_CONNECTION_STATE_CHANGED,(e=>{let t,{room:r,prevState:i,state:o}=e;switch(o){case"CONNECTED":t="RECONNECTING"===i?32795:32791;break;case"DISCONNECTED":t="RECONNECTING"===i?32796:32790;break;case"RECONNECTING":t=32794}t&&bV(r.userId,{eventId:t})})),gk.on(vk.PEER_CONNECTION_STATE_CHANGED,(e=>{let t,{room:r,prevState:i,state:o,remoteUserId:n}=e,a=!!n;switch(o){case"CONNECTED":t="RECONNECTING"===i?a?32801:32798:a?32793:32792;break;case"DISCONNECTED":"RECONNECTING"===i&&(t=a?32802:32799);break;case"RECONNECTING":t=a?32800:32797}t&&bV(r.userId,{eventId:t,remoteUserId:n})})),gk.on(vk.VIDEO_CODEC_IMPLEMENTATION_CHANGED,(e=>{let{implementation:t,userId:r,remoteUserId:i,codec:o,isHWCodec:n,prevImplementation:a,streamType:s}=e,c=n?1:0;a||(c=n?3:2);let l="h264"===o?0:2,u={eventId:4004,param1:c,param2:l,streamType:s||2};i&&(u.remoteUserId=i,u.eventId=4005),bV(r,u),FO.addEnum({key:i?514701:513701,value:c}),FO.addEnum({key:i?514700:513700,value:l})})),gk.on(vk.LOCAL_TRACK_RECAPTURE,(e=>{let{track:t,error:r}=e;if(t.userId){let e={eventId:2003,param1:0};t.kind===_w.AUDIO?(e.streamType=1,r&&(e.param1=2)):(e.streamType="auxiliary"===t.streamType?7:2,r&&(e.param1=8)),bV(t.userId,e)}})),Tb(bb(),1);var DV=Object.create,CV=Object.defineProperty,NV=Object.defineProperties,kV=Object.getOwnPropertyDescriptor,OV=Object.getOwnPropertyDescriptors,MV=Object.getOwnPropertyNames,LV=Object.getOwnPropertySymbols,PV=Object.getPrototypeOf,xV=Object.prototype.hasOwnProperty,UV=Object.prototype.propertyIsEnumerable,VV=(e,t,r)=>t in e?CV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,FV=(e,t)=>{for(var r in t||(t={}))xV.call(t,r)&&VV(e,r,t[r]);if(LV)for(var r of LV(t))UV.call(t,r)&&VV(e,r,t[r]);return e},BV=(e,t)=>NV(e,OV(t)),HV=(e,t,r,i)=>{for(var o,n=i>1?void 0:i?kV(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(n=(i?o(t,r,n):o(n))||n);return i&&n&&CV(t,r,n),n},jV=(e,t,r)=>VV(e,"symbol"!=typeof t?t+"":t,r),GV=((e,t)=>function(){return t||(0,e[MV(e)[0]])((t={exports:{}}).exports,t),t.exports})({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(e,t){var r=Object.prototype.hasOwnProperty,i="~";function o(){}function n(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function a(e,t,r,o,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new n(r,o||e,a),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function c(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),c.prototype.eventNames=function(){var e,t,o=[];if(0===this._eventsCount)return o;for(t in e=this._events)r.call(e,t)&&o.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,n=r.length,a=new Array(n);o<n;o++)a[o]=r[o].fn;return a},c.prototype.listenerCount=function(e){var t=i?i+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,n,a){var s=i?i+e:e;if(!this._events[s])return!1;var c,l,u=this._events[s],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,t),!0;case 3:return u.fn.call(u.context,t,r),!0;case 4:return u.fn.call(u.context,t,r,o),!0;case 5:return u.fn.call(u.context,t,r,o,n),!0;case 6:return u.fn.call(u.context,t,r,o,n,a),!0}for(l=1,c=new Array(d-1);l<d;l++)c[l-1]=arguments[l];u.fn.apply(u.context,c)}else{var h,p=u.length;for(l=0;l<p;l++)switch(u[l].once&&this.removeListener(e,u[l].fn,void 0,!0),d){case 1:u[l].fn.call(u[l].context);break;case 2:u[l].fn.call(u[l].context,t);break;case 3:u[l].fn.call(u[l].context,t,r);break;case 4:u[l].fn.call(u[l].context,t,r,o);break;default:if(!c)for(h=1,c=new Array(d-1);h<d;h++)c[h-1]=arguments[h];u[l].fn.apply(u[l].context,c)}}return!0},c.prototype.on=function(e,t,r){return a(this,e,t,r,!1)},c.prototype.once=function(e,t,r){return a(this,e,t,r,!0)},c.prototype.removeListener=function(e,t,r,o){var n=i?i+e:e;if(!this._events[n])return this;if(!t)return s(this,n),this;var a=this._events[n];if(a.fn)a.fn!==t||o&&!a.once||r&&a.context!==r||s(this,n);else{for(var c=0,l=[],u=a.length;c<u;c++)(a[c].fn!==t||o&&!a[c].once||r&&a[c].context!==r)&&l.push(a[c]);l.length?this._events[n]=1===l.length?l[0]:l:s(this,n)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&s(this,t)):(this._events=new o,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=i,c.EventEmitter=c,void 0!==t&&(t.exports=c)}}),WV=((e,t,r)=>(r=null!=e?DV(PV(e)):{},((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of MV(t))xV.call(e,o)||o===r||CV(e,o,{get:()=>t[o],enumerable:!(i=kV(t,o))||i.enumerable});return e})(!t&&e&&e.__esModule?r:CV(r,"default",{value:e,enumerable:!0}),e)))(GV(),1),KV=Symbol("instance"),zV=Symbol("cacheResult"),qV=class{constructor(e,t,r){this.oldState=e,this.newState=t,this.action=r,this.aborted=!1}abort(e){this.aborted=!0,QV.call(e,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},JV=class extends Error{constructor(e,t,r){super(t),this.state=e,this.message=t,this.cause=r}};var YV=new Map;function XV(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(i,o,n)=>{let a=r.action||o;if(!r.context){let r=YV.get(i)||[];YV.has(i)||YV.set(i,r),r.push({from:e,to:t,action:a})}let s=n.value;n.value=function(){let i=this;for(var o=arguments.length,n=new Array(o),c=0;c<o;c++)n[c]=arguments[c];if(r.context&&(i=ZV.get("function"==typeof r.context?r.context.call(this,...n):r.context)),i.state===t)return r.sync?i[zV]:Promise.resolve(i[zV]);i.state instanceof qV&&i.state.action==r.abortAction&&i.state.abort(i);let l=null;Array.isArray(e)?0==e.length?i.state instanceof qV&&i.state.abort(i):"string"==typeof i.state&&e.includes(i.state)||(l=new JV(i._state,"".concat(i.name," ").concat(a," to ").concat(t," failed: current state ").concat(i._state," not from ").concat(e.join("|")))):e!==i.state&&(l=new JV(i._state,"".concat(i.name," ").concat(a," to ").concat(t," failed: current state ").concat(i._state," not from ").concat(e)));let u=e=>{if(r.fail&&r.fail.call(this,e),r.sync){if(r.ignoreError)return e;throw e}return r.ignoreError?Promise.resolve(e):Promise.reject(e)};if(l)return u(l);let d=i.state,h=new qV(d,t,a);QV.call(i,h);let p=e=>{var o;return i[zV]=e,h.aborted||(QV.call(i,t),null===(o=r.success)||void 0===o||o.call(this,i[zV])),e},m=e=>(QV.call(i,d,e),u(e));try{let e=s.apply(this,n);return function(e){return"object"==typeof e&&e&&"then"in e}(e)?e.then(p).catch(m):r.sync?p(e):Promise.resolve(p(e))}catch(Lk){return m(new JV(i._state,"".concat(i.name," ").concat(a," from ").concat(e," to ").concat(t," failed: ").concat(Lk),Lk instanceof Error?Lk:new Error(String(Lk))))}}}}var $V="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 QV(e,t){let r=this._state;this._state=e;let i=e.toString();e&&this.emit(i,r),this.emit(ZV.STATECHANGED,e,r,t),this.updateDevTools({value:e,old:r,err:t instanceof Error?t.message:String(t)})}var ZV=class e extends WV.default{constructor(t,r,i){super(),this.name=t,this.groupName=r,this._state=e.INIT,t||(t=Date.now().toString(36)),i?Object.setPrototypeOf(this,i):i=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);let o=i[KV];o?this.name=o.name+"-"+o.count++:i[KV]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),t=YV.get(e)||[],r=new Set,i=[],o=[],n=new Set,a=Object.getPrototypeOf(e);YV.has(a)&&(a.stateDiagram.forEach((e=>r.add(e))),a.allStates.forEach((e=>n.add(e)))),t.forEach((e=>{let{from:t,to:r,action:n}=e;"string"==typeof t?i.push({from:t,to:r,action:n}):t.length?t.forEach((e=>{i.push({from:e,to:r,action:n})})):o.push({to:r,action:n})})),i.forEach((e=>{let{from:t,to:i,action:o}=e;n.add(t),n.add(i),n.add(o+"ing"),r.add("".concat(t," --\x3e ").concat(o,"ing : ").concat(o)),r.add("".concat(o,"ing --\x3e ").concat(i," : ").concat(o," 🟢")),r.add("".concat(o,"ing --\x3e ").concat(t," : ").concat(o," 🔴"))})),o.forEach((e=>{let{to:t,action:i}=e;r.add("".concat(i,"ing --\x3e ").concat(t," : ").concat(i," 🟢")),n.forEach((e=>{e!==t&&r.add("".concat(e," --\x3e ").concat(i,"ing : ").concat(i))}))}));let s=[...r];return Object.defineProperties(e,{stateDiagram:{value:s},allStates:{value:n}}),s}static get(t){let r;return"string"==typeof t?(r=e.instances.get(t),r||e.instances.set(t,r=new e(t,void 0,Object.create(e.prototype)))):(r=e.instances2.get(t),r||e.instances2.set(t,r=new e(t.constructor.name,void 0,Object.create(e.prototype)))),r}static getState(t){var r;return null===(r=e.get(t))||void 0===r?void 0:r.state}updateDevTools(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};$V(e.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(e){QV.call(this,e)}};ZV.STATECHANGED="stateChanged",ZV.UPDATEAFSM="updateAFSM",ZV.INIT="[*]",ZV.ON="on",ZV.OFF="off",ZV.instances=new Map,ZV.instances2=new WeakMap;var eF=class extends ZV{constructor(){super(...arguments),jV(this,"decoder"),jV(this,"config")}initialize(){return Rb(this,null,(function*(){this.decoder=new VideoDecoder({output:e=>{this.emit("videoFrame",e)},error:e=>{this.close(),this.emit("error",e)}})}))}configure(e){this.config=e,this.decoder.configure(BV(FV({},e),{codec:this.getCodec(e)}))}getCodec(e){switch(e.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return e.codec}}decode(e){"configured"===this.decoder.state&&this.decoder.decode(new EncodedVideoChunk(e))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){"closed"!==this.decoder.state&&this.decoder.close()}};function tF(){var e;self.onmessage=t=>{if("init"===t.data.type){let{canvas:r,wasmScript:i,wasmBinary:o}=t.data,n=null==r?void 0:r.getContext("2d"),a=0,s=0,c={wasmBinary:o,postRun:()=>{e=new c.VideoDecoder({videoInfo(e,t){a=e,s=t,console.log("video info",e,t)},yuvData(e,t){let i=a*s,o=i>>2,l=c.HEAPU32[e>>2],u=c.HEAPU32[1+(e>>2)],d=c.HEAPU32[2+(e>>2)],h=c.HEAPU8.subarray(l,l+i),p=c.HEAPU8.subarray(u,u+o),m=c.HEAPU8.subarray(d,d+o),f=new Uint8Array(i+o+o);f.set(h),f.set(p,i),f.set(m,i+o);let _=new VideoFrame(f,{codedWidth:a,codedHeight:s,format:"I420",timestamp:t});r?(null==n||n.drawImage(_,0,0,r.width,r.height),null==n||n.commit()):self.postMessage({type:"yuvData",videoFrame:_},[_])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+i)()(c)}else if("decode"===t.data.type){let{packet:r}=t.data;null==e||e.decode(r.data,"key"==r.type,r.timestamp)}else if("setCodec"===t.data.type){let{codec:r,format:i,description:o}=t.data;null==e||e.setCodec(r,i,null!=o?o:"")}}}HV([XV([ZV.INIT,"closed"],"initialized")],eF.prototype,"initialize",1),HV([XV("initialized","configured",{sync:!0})],eF.prototype,"configure",1),HV([function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return(e,r,i)=>{let o=i.value,n=r;i.value=function(){if(!t.includes(this.state.toString()))throw new JV(this.state,"".concat(this.name," ").concat(n," failed: current state ").concat(this.state," not in ").concat(t));for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return o.apply(this,r)}}}("configured")],eF.prototype,"decode",1),HV([XV([],ZV.INIT,{sync:!0})],eF.prototype,"reset",1),HV([XV([],"closed",{ignoreError:!0,sync:!0})],eF.prototype,"close",1);var rF=class extends ZV{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];super(),this.createModule=e,this.wasmBinary=t,this.workerMode=r,this.canvas=i,this.yuvMode=o,jV(this,"worker"),jV(this,"decoder"),jV(this,"config"),jV(this,"module",{}),jV(this,"width",0),jV(this,"height",0)}initialize(e){return Rb(this,null,(function*(){var t;if(this.workerMode){let e=new RegExp("\\{(.+)\\}","s").exec(tF.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([e],{type:"text/javascript"})));let r=null==(t=this.canvas)?void 0:t.transferControlToOffscreen(),i=yield this.wasmBinary;return console.warn("worker mode",i),this.worker.postMessage({type:"init",canvas:r,wasmScript:this.createModule.toString(),wasmBinary:i},r?[r,i]:[i]),new Promise((e=>{this.worker.onmessage=t=>{if("ready"===t.data.type)delete this.wasmBinary,e(),console.warn("worker mode initialize success");else if("yuvData"===t.data.type){let{videoFrame:e}=t.data;this.emit("videoFrame",e)}}}))}let r=this.module;return this.wasmBinary&&(r.wasmBinary=yield this.wasmBinary),r.print=e=>console.log(e),r.printErr=e=>console.log("[JS] ERROR: ".concat(e)),r.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise((t=>{r.postRun=e=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),t()},e&&Object.assign(r,e),this.createModule(r)}))}))}configure(e){var t,r,i;this.config=e;let o=this.config.codec.startsWith("avc")?"avc":"hevc",n=this.config.description?"avc"==o?"avcc":"hvcc":"annexb";null==(r=this.decoder)||r.setCodec(o,n,null!=(t=this.config.description)?t:""),null==(i=this.worker)||i.postMessage({type:"setCodec",codec:o,format:n,description:this.config.description})}decode(e){var t,r;null==(t=this.decoder)||t.decode(e.data,"key"==e.type,e.timestamp),"configured"===this.state&&(null==(r=this.worker)||r.postMessage({type:"decode",packet:e}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(e,t){this.width=e,this.height=t;let r={width:e,height:t};this.emit("videoCodecInfo",r)}yuvData(e,t){if(!this.module)return;let r=this.width*this.height,i=r>>2,o=this.module.HEAPU32[e>>2],n=this.module.HEAPU32[1+(e>>2)],a=this.module.HEAPU32[2+(e>>2)],s=this.module.HEAPU8.subarray(o,o+r),c=this.module.HEAPU8.subarray(n,n+i),l=this.module.HEAPU8.subarray(a,a+i);if(this.yuvMode)return void this.emit("videoFrame",{y:s,u:c,v:l,timestamp:t});let u=new Uint8Array(r+i+i);u.set(s),u.set(c,r),u.set(l,r+i),this.emit("videoFrame",new VideoFrame(u,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(e){let t={errMsg:e};this.emit("error",t)}};HV([XV([ZV.INIT,"closed"],"initialized")],rF.prototype,"initialize",1),HV([XV("initialized","configured",{sync:!0})],rF.prototype,"configure",1),HV([XV([],ZV.INIT,{sync:!0})],rF.prototype,"reset",1),HV([XV([],"closed",{sync:!0})],rF.prototype,"close",1);var iF,oF=(iF="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};var t,r,i=e;i.ready=new Promise(((e,i)=>{t=e,r=i}));var o,n,a,s=Object.assign({},i),c="./this.program",l="object"==typeof window,u="function"==typeof importScripts,d=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(l||u)&&(u?d=self.location.href:"undefined"!=typeof document&&document.currentScript&&(d=document.currentScript.src),iF&&(d=iF),d=0!==d.indexOf("blob:")?d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},u&&(a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),n=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)});var h,p,m=i.print||console.log.bind(console),f=i.printErr||console.error.bind(console);Object.assign(i,s),s=null,i.arguments&&i.arguments,i.thisProgram&&(c=i.thisProgram),i.quit&&i.quit,i.wasmBinary&&(h=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&U("no native wasm support detected");var _,g,E,v,y,T,I,A,S,R,b,w,D,C=!1,N=[],k=[],O=[],M=0,L=null;function P(e){M++,i.monitorRunDependencies&&i.monitorRunDependencies(M)}function x(e){if(M--,i.monitorRunDependencies&&i.monitorRunDependencies(M),0==M&&L){var t=L;L=null,t()}}function U(e){i.onAbort&&i.onAbort(e),f(e="Aborted("+e+")"),C=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw r(t),t}function V(e){return e.startsWith("data:application/octet-stream;base64,")}function F(e){if(e==R&&h)return new Uint8Array(h);if(a)return a(e);throw"both async and sync fetching of the wasm failed"}function B(e,t,r){return(i=e,h||!l&&!u||"function"!=typeof fetch?Promise.resolve().then((()=>F(i))):fetch(i,{credentials:"same-origin"}).then((e=>{if(!e.ok)throw"failed to load wasm binary file at '"+i+"'";return e.arrayBuffer()})).catch((()=>F(i)))).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(r,(e=>{f("failed to asynchronously prepare wasm: "+e),U(e)}));var i}V(R="videodec.wasm")||(b=R,R=i.locateFile?i.locateFile(b,d):d+b);var H=e=>{for(;e.length>0;)e.shift()(i)};function j(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,_[this.ptr+12|0]=e},this.get_caught=function(){return 0!=_[this.ptr+12|0]},this.set_rethrown=function(e){e=e?1:0,_[this.ptr+13|0]=e},this.get_rethrown=function(){return 0!=_[this.ptr+13|0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)},this.set_adjusted_ptr=function(e){T[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]},this.get_exception_ptr=function(){if(bt(this.get_type()))return T[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var G={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;i>=0;i--){var o=e[i];"."===o?e.splice(i,1):".."===o?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=G.isAbs(e),r="/"===e.substr(-1);return(e=G.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=G.splitPath(e),r=t[0],i=t[1];return r||i?(i&&(i=i.substr(0,i.length-1)),r+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=G.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return G.normalize(e.join("/"))},join2:(e,t)=>G.normalize(e+"/"+t)},W=e=>(W=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>crypto.getRandomValues(e);U("initRandomDevice")})())(e),K={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var i=r>=0?arguments[r]:ie.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=G.isAbs(i)}return(t?"/":"")+(e=G.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||"."},relative:(e,t)=>{function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=K.resolve(e).substr(1),t=K.resolve(t).substr(1);for(var i=r(e.split("/")),o=r(t.split("/")),n=Math.min(i.length,o.length),a=n,s=0;s<n;s++)if(i[s]!==o[s]){a=s;break}var c=[];for(s=a;s<i.length;s++)c.push("..");return(c=c.concat(o.slice(a))).join("/")}},z="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,q=(e,t,r)=>{for(var i=t+r,o=t;e[o]&&!(o>=i);)++o;if(o-t>16&&e.buffer&&z)return z.decode(e.subarray(t,o));for(var n="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var c=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|c:(7&a)<<18|s<<12|c<<6|63&e[t++])<65536)n+=String.fromCharCode(a);else{var l=a-65536;n+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else n+=String.fromCharCode((31&a)<<6|s)}else n+=String.fromCharCode(a)}return n},J=[],Y=e=>{for(var t=0,r=0;r<e.length;++r){var i=e.charCodeAt(r);i<=127?t++:i<=2047?t+=2:i>=55296&&i<=57343?(t+=4,++r):t+=3}return t},X=(e,t,r,i)=>{if(!(i>0))return 0;for(var o=r,n=r+i-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=n)break;t[r++]=s}else if(s<=2047){if(r+1>=n)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=n)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=n)break;t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o};function $(e,t,r){var i=r>0?r:Y(e)+1,o=new Array(i),n=X(e,o,0,o.length);return t&&(o.length=n),o}var Q={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Q.ttys[e]={input:[],output:[],ops:t},ie.registerDevice(e,Q.stream_ops)},stream_ops:{open:function(e){var t=Q.ttys[e.node.rdev];if(!t)throw new ie.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,r,i,o){if(!e.tty||!e.tty.ops.get_char)throw new ie.ErrnoError(60);for(var n=0,a=0;a<i;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(c){throw new ie.ErrnoError(29)}if(void 0===s&&0===n)throw new ie.ErrnoError(6);if(null==s)break;n++,t[r+a]=s}return n&&(e.node.timestamp=Date.now()),n},write:function(e,t,r,i,o){if(!e.tty||!e.tty.ops.put_char)throw new ie.ErrnoError(60);try{for(var n=0;n<i;n++)e.tty.ops.put_char(e.tty,t[r+n])}catch(a){throw new ie.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),n}},default_tty_ops:{get_char:function(e){return(()=>{if(!J.length){var e=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n"),!e)return null;J=$(e,!0)}return J.shift()})()},put_char:function(e,t){null===t||10===t?(m(q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(m(q(e.output,0)),e.output=[])},ioctl_tcgets:function(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(e,t,r){return 0},ioctl_tiocgwinsz:function(e){return[24,80]}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(f(q(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(f(q(e.output,0)),e.output=[])}}},Z=e=>{U()},ee={ops_table:null,mount:e=>ee.createNode(null,"/",16895,0),createNode(e,t,r,i){if(ie.isBlkdev(r)||ie.isFIFO(r))throw new ie.ErrnoError(63);ee.ops_table||(ee.ops_table={dir:{node:{getattr:ee.node_ops.getattr,setattr:ee.node_ops.setattr,lookup:ee.node_ops.lookup,mknod:ee.node_ops.mknod,rename:ee.node_ops.rename,unlink:ee.node_ops.unlink,rmdir:ee.node_ops.rmdir,readdir:ee.node_ops.readdir,symlink:ee.node_ops.symlink},stream:{llseek:ee.stream_ops.llseek}},file:{node:{getattr:ee.node_ops.getattr,setattr:ee.node_ops.setattr},stream:{llseek:ee.stream_ops.llseek,read:ee.stream_ops.read,write:ee.stream_ops.write,allocate:ee.stream_ops.allocate,mmap:ee.stream_ops.mmap,msync:ee.stream_ops.msync}},link:{node:{getattr:ee.node_ops.getattr,setattr:ee.node_ops.setattr,readlink:ee.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ee.node_ops.getattr,setattr:ee.node_ops.setattr},stream:ie.chrdev_stream_ops}});var o=ie.createNode(e,t,r,i);return ie.isDir(o.mode)?(o.node_ops=ee.ops_table.dir.node,o.stream_ops=ee.ops_table.dir.stream,o.contents={}):ie.isFile(o.mode)?(o.node_ops=ee.ops_table.file.node,o.stream_ops=ee.ops_table.file.stream,o.usedBytes=0,o.contents=null):ie.isLink(o.mode)?(o.node_ops=ee.ops_table.link.node,o.stream_ops=ee.ops_table.link.stream):ie.isChrdev(o.mode)&&(o.node_ops=ee.ops_table.chrdev.node,o.stream_ops=ee.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=ie.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,ie.isDir(e.mode)?t.size=4096:ie.isFile(e.mode)?t.size=e.usedBytes:ie.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ee.resizeFileStorage(e,t.size)},lookup(e,t){throw ie.genericErrors[44]},mknod:(e,t,r,i)=>ee.createNode(e,t,r,i),rename(e,t,r){if(ie.isDir(e.mode)){var i;try{i=ie.lookupNode(t,r)}catch(n){}if(i)for(var o in i.contents)throw new ie.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var r=ie.lookupNode(e,t);for(var i in r.contents)throw new ie.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){var i=ee.createNode(e,t,41471,0);return i.link=r,i},readlink(e){if(!ie.isLink(e.mode))throw new ie.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,i,o){var n=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,i);if(a>8&&n.subarray)t.set(n.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=n[o+s];return a},write(e,t,r,i,o,n){if(!i)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(n)return a.contents=t.subarray(r,r+i),a.usedBytes=i,i;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+i),a.usedBytes=i,i;if(o+i<=a.usedBytes)return a.contents.set(t.subarray(r,r+i),o),i}if(ee.expandFileStorage(a,o+i),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+i),o);else for(var s=0;s<i;s++)a.contents[o+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,o+i),i},llseek(e,t,r){var i=t;if(1===r?i+=e.position:2===r&&ie.isFile(e.node.mode)&&(i+=e.node.usedBytes),i<0)throw new ie.ErrnoError(28);return i},allocate(e,t,r){ee.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,i,o){if(!ie.isFile(e.node.mode))throw new ie.ErrnoError(43);var n,a,s=e.node.contents;if(2&o||s.buffer!==_.buffer){if((r>0||r+t<s.length)&&(s=s.subarray?s.subarray(r,r+t):Array.prototype.slice.call(s,r,r+t)),a=!0,!(n=Z()))throw new ie.ErrnoError(48);_.set(s,n)}else a=!1,n=s.byteOffset;return{ptr:n,allocated:a}},msync:(e,t,r,i,o)=>(ee.stream_ops.write(e,t,0,i,r,!1),0)}},te=i.preloadPlugins||[];function re(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r}var ie={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(e=K.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new ie.ErrnoError(32);for(var r=e.split("/").filter((e=>!!e)),i=ie.root,o="/",n=0;n<r.length;n++){var a=n===r.length-1;if(a&&t.parent)break;if(i=ie.lookupNode(i,r[n]),o=G.join2(o,r[n]),ie.isMountpoint(i)&&(!a||a&&t.follow_mount)&&(i=i.mounted.root),!a||t.follow)for(var s=0;ie.isLink(i.mode);){var c=ie.readlink(o);if(o=K.resolve(G.dirname(o),c),i=ie.lookupPath(o,{recurse_count:t.recurse_count+1}).node,s++>40)throw new ie.ErrnoError(32)}}return{path:o,node:i}},getPath:e=>{for(var t;;){if(ie.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?"".concat(r,"/").concat(t):r+t:r}t=t?"".concat(e.name,"/").concat(t):e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,i=0;i<t.length;i++)r=(r<<5)-r+t.charCodeAt(i)|0;return(e+r>>>0)%ie.nameTable.length},hashAddNode:e=>{var t=ie.hashName(e.parent.id,e.name);e.name_next=ie.nameTable[t],ie.nameTable[t]=e},hashRemoveNode:e=>{var t=ie.hashName(e.parent.id,e.name);if(ie.nameTable[t]===e)ie.nameTable[t]=e.name_next;else for(var r=ie.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=ie.mayLookup(e);if(r)throw new ie.ErrnoError(r,e);for(var i=ie.hashName(e.id,t),o=ie.nameTable[i];o;o=o.name_next){var n=o.name;if(o.parent.id===e.id&&n===t)return o}return ie.lookup(e,t)},createNode:(e,t,r,i)=>{var o=new ie.FSNode(e,t,r,i);return ie.hashAddNode(o),o},destroyNode:e=>{ie.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>ie.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>ie.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate:(e,t)=>{try{return ie.lookupNode(e,t),20}catch(r){}return ie.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var i;try{i=ie.lookupNode(e,t)}catch(n){return n.errno}var o=ie.nodePermissions(e,"wx");if(o)return o;if(r){if(!ie.isDir(i.mode))return 54;if(ie.isRoot(i)||ie.getPath(i)===ie.cwd())return 10}else if(ie.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?ie.isLink(e.mode)?32:ie.isDir(e.mode)&&("r"!==ie.flagsToPermissionString(t)||512&t)?31:ie.nodePermissions(e,ie.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var e=0;e<=ie.MAX_OPEN_FDS;e++)if(!ie.streams[e])return e;throw new ie.ErrnoError(33)},getStreamChecked:e=>{var t=ie.getStream(e);if(!t)throw new ie.ErrnoError(8);return t},getStream:e=>ie.streams[e],createStream:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return ie.FSStream||(ie.FSStream=function(){this.shared={}},ie.FSStream.prototype={},Object.defineProperties(ie.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new ie.FSStream,e),-1==t&&(t=ie.nextfd()),e.fd=t,ie.streams[t]=e,e},closeStream:e=>{ie.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=ie.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new ie.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{ie.devices[e]={stream_ops:t}},getDevice:e=>ie.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),ie.syncFSRequests++,ie.syncFSRequests>1&&f("warning: ".concat(ie.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));var r=ie.getMounts(ie.root.mount),i=0;function o(e){return ie.syncFSRequests--,t(e)}function n(e){if(e)return n.errored?void 0:(n.errored=!0,o(e));++i>=r.length&&o(null)}r.forEach((t=>{if(!t.type.syncfs)return n(null);t.type.syncfs(t,e,n)}))},mount:(e,t,r)=>{var i,o="/"===r,n=!r;if(o&&ie.root)throw new ie.ErrnoError(10);if(!o&&!n){var a=ie.lookupPath(r,{follow_mount:!1});if(r=a.path,i=a.node,ie.isMountpoint(i))throw new ie.ErrnoError(10);if(!ie.isDir(i.mode))throw new ie.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?ie.root=c:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),c},unmount:e=>{var t=ie.lookupPath(e,{follow_mount:!1});if(!ie.isMountpoint(t.node))throw new ie.ErrnoError(28);var r=t.node,i=r.mounted,o=ie.getMounts(i);Object.keys(ie.nameTable).forEach((e=>{for(var t=ie.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&ie.destroyNode(t),t=r}})),r.mounted=null;var n=r.mount.mounts.indexOf(i);r.mount.mounts.splice(n,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var i=ie.lookupPath(e,{parent:!0}).node,o=G.basename(e);if(!o||"."===o||".."===o)throw new ie.ErrnoError(28);var n=ie.mayCreate(i,o);if(n)throw new ie.ErrnoError(n);if(!i.node_ops.mknod)throw new ie.ErrnoError(63);return i.node_ops.mknod(i,o,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,ie.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,ie.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var r=e.split("/"),i="",o=0;o<r.length;++o)if(r[o]){i+="/"+r[o];try{ie.mkdir(i,t)}catch(n){if(20!=n.errno)throw n}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,ie.mknod(e,t,r)),symlink:(e,t)=>{if(!K.resolve(e))throw new ie.ErrnoError(44);var r=ie.lookupPath(t,{parent:!0}).node;if(!r)throw new ie.ErrnoError(44);var i=G.basename(t),o=ie.mayCreate(r,i);if(o)throw new ie.ErrnoError(o);if(!r.node_ops.symlink)throw new ie.ErrnoError(63);return r.node_ops.symlink(r,i,e)},rename:(e,t)=>{var r,i,o=G.dirname(e),n=G.dirname(t),a=G.basename(e),s=G.basename(t);if(r=ie.lookupPath(e,{parent:!0}).node,i=ie.lookupPath(t,{parent:!0}).node,!r||!i)throw new ie.ErrnoError(44);if(r.mount!==i.mount)throw new ie.ErrnoError(75);var c,l=ie.lookupNode(r,a),u=K.relative(e,n);if("."!==u.charAt(0))throw new ie.ErrnoError(28);if("."!==(u=K.relative(t,o)).charAt(0))throw new ie.ErrnoError(55);try{c=ie.lookupNode(i,s)}catch(p){}if(l!==c){var d=ie.isDir(l.mode),h=ie.mayDelete(r,a,d);if(h)throw new ie.ErrnoError(h);if(h=c?ie.mayDelete(i,s,d):ie.mayCreate(i,s))throw new ie.ErrnoError(h);if(!r.node_ops.rename)throw new ie.ErrnoError(63);if(ie.isMountpoint(l)||c&&ie.isMountpoint(c))throw new ie.ErrnoError(10);if(i!==r&&(h=ie.nodePermissions(r,"w")))throw new ie.ErrnoError(h);ie.hashRemoveNode(l);try{r.node_ops.rename(l,i,s)}catch(p){throw p}finally{ie.hashAddNode(l)}}},rmdir:e=>{var t=ie.lookupPath(e,{parent:!0}).node,r=G.basename(e),i=ie.lookupNode(t,r),o=ie.mayDelete(t,r,!0);if(o)throw new ie.ErrnoError(o);if(!t.node_ops.rmdir)throw new ie.ErrnoError(63);if(ie.isMountpoint(i))throw new ie.ErrnoError(10);t.node_ops.rmdir(t,r),ie.destroyNode(i)},readdir:e=>{var t=ie.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new ie.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=ie.lookupPath(e,{parent:!0}).node;if(!t)throw new ie.ErrnoError(44);var r=G.basename(e),i=ie.lookupNode(t,r),o=ie.mayDelete(t,r,!1);if(o)throw new ie.ErrnoError(o);if(!t.node_ops.unlink)throw new ie.ErrnoError(63);if(ie.isMountpoint(i))throw new ie.ErrnoError(10);t.node_ops.unlink(t,r),ie.destroyNode(i)},readlink:e=>{var t=ie.lookupPath(e).node;if(!t)throw new ie.ErrnoError(44);if(!t.node_ops.readlink)throw new ie.ErrnoError(28);return K.resolve(ie.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var r=ie.lookupPath(e,{follow:!t}).node;if(!r)throw new ie.ErrnoError(44);if(!r.node_ops.getattr)throw new ie.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>ie.stat(e,!0),chmod:(e,t,r)=>{var i;if(!(i="string"==typeof e?ie.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new ie.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:(e,t)=>{ie.chmod(e,t,!0)},fchmod:(e,t)=>{var r=ie.getStreamChecked(e);ie.chmod(r.node,t)},chown:(e,t,r,i)=>{var o;if(!(o="string"==typeof e?ie.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new ie.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:(e,t,r)=>{ie.chown(e,t,r,!0)},fchown:(e,t,r)=>{var i=ie.getStreamChecked(e);ie.chown(i.node,t,r)},truncate:(e,t)=>{if(t<0)throw new ie.ErrnoError(28);var r;if(!(r="string"==typeof e?ie.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new ie.ErrnoError(63);if(ie.isDir(r.mode))throw new ie.ErrnoError(31);if(!ie.isFile(r.mode))throw new ie.ErrnoError(28);var i=ie.nodePermissions(r,"w");if(i)throw new ie.ErrnoError(i);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var r=ie.getStreamChecked(e);if(!(2097155&r.flags))throw new ie.ErrnoError(28);ie.truncate(r.node,t)},utime:(e,t,r)=>{var i=ie.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new ie.ErrnoError(44);var o;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?function(e){var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===t)throw new Error("Unknown file open mode: ".concat(e));return t}(t):t)?4095&r|32768:0,"object"==typeof e)o=e;else{e=G.normalize(e);try{o=ie.lookupPath(e,{follow:!(131072&t)}).node}catch(c){}}var n=!1;if(64&t)if(o){if(128&t)throw new ie.ErrnoError(20)}else o=ie.mknod(e,r,0),n=!0;if(!o)throw new ie.ErrnoError(44);if(ie.isChrdev(o.mode)&&(t&=-513),65536&t&&!ie.isDir(o.mode))throw new ie.ErrnoError(54);if(!n){var a=ie.mayOpen(o,t);if(a)throw new ie.ErrnoError(a)}512&t&&!n&&ie.truncate(o,0),t&=-131713;var s=ie.createStream({node:o,path:ie.getPath(o),flags:t,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!i.logReadFiles||1&t||(ie.readFiles||(ie.readFiles={}),e in ie.readFiles||(ie.readFiles[e]=1)),s},close:e=>{if(ie.isClosed(e))throw new ie.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{ie.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(ie.isClosed(e))throw new ie.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ie.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new ie.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,i,o)=>{if(i<0||o<0)throw new ie.ErrnoError(28);if(ie.isClosed(e))throw new ie.ErrnoError(8);if(1==(2097155&e.flags))throw new ie.ErrnoError(8);if(ie.isDir(e.node.mode))throw new ie.ErrnoError(31);if(!e.stream_ops.read)throw new ie.ErrnoError(28);var n=void 0!==o;if(n){if(!e.seekable)throw new ie.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,t,r,i,o);return n||(e.position+=a),a},write:(e,t,r,i,o,n)=>{if(i<0||o<0)throw new ie.ErrnoError(28);if(ie.isClosed(e))throw new ie.ErrnoError(8);if(!(2097155&e.flags))throw new ie.ErrnoError(8);if(ie.isDir(e.node.mode))throw new ie.ErrnoError(31);if(!e.stream_ops.write)throw new ie.ErrnoError(28);e.seekable&&1024&e.flags&&ie.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new ie.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,t,r,i,o,n);return a||(e.position+=s),s},allocate:(e,t,r)=>{if(ie.isClosed(e))throw new ie.ErrnoError(8);if(t<0||r<=0)throw new ie.ErrnoError(28);if(!(2097155&e.flags))throw new ie.ErrnoError(8);if(!ie.isFile(e.node.mode)&&!ie.isDir(e.node.mode))throw new ie.ErrnoError(43);if(!e.stream_ops.allocate)throw new ie.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,i,o)=>{if(2&i&&!(2&o)&&2!=(2097155&e.flags))throw new ie.ErrnoError(2);if(1==(2097155&e.flags))throw new ie.ErrnoError(2);if(!e.stream_ops.mmap)throw new ie.ErrnoError(43);return e.stream_ops.mmap(e,t,r,i,o)},msync:(e,t,r,i,o)=>e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,o):0,munmap:e=>0,ioctl:(e,t,r)=>{if(!e.stream_ops.ioctl)throw new ie.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'.concat(t.encoding,'"'));var r,i=ie.open(e,t.flags),o=ie.stat(e).size,n=new Uint8Array(o);return ie.read(i,n,0,o,0),"utf8"===t.encoding?r=q(n,0):"binary"===t.encoding&&(r=n),ie.close(i),r},writeFile:function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.flags=r.flags||577;var i=ie.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(Y(t)+1),n=X(t,o,0,o.length);ie.write(i,o,0,n,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");ie.write(i,t,0,t.byteLength,void 0,r.canOwn)}ie.close(i)},cwd:()=>ie.currentPath,chdir:e=>{var t=ie.lookupPath(e,{follow:!0});if(null===t.node)throw new ie.ErrnoError(44);if(!ie.isDir(t.node.mode))throw new ie.ErrnoError(54);var r=ie.nodePermissions(t.node,"x");if(r)throw new ie.ErrnoError(r);ie.currentPath=t.path},createDefaultDirectories:()=>{ie.mkdir("/tmp"),ie.mkdir("/home"),ie.mkdir("/home/web_user")},createDefaultDevices:()=>{ie.mkdir("/dev"),ie.registerDevice(ie.makedev(1,3),{read:()=>0,write:(e,t,r,i,o)=>i}),ie.mkdev("/dev/null",ie.makedev(1,3)),Q.register(ie.makedev(5,0),Q.default_tty_ops),Q.register(ie.makedev(6,0),Q.default_tty1_ops),ie.mkdev("/dev/tty",ie.makedev(5,0)),ie.mkdev("/dev/tty1",ie.makedev(6,0));var e=new Uint8Array(1024),t=0,r=()=>(0===t&&(t=W(e).byteLength),e[--t]);ie.createDevice("/dev","random",r),ie.createDevice("/dev","urandom",r),ie.mkdir("/dev/shm"),ie.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{ie.mkdir("/proc");var e=ie.mkdir("/proc/self");ie.mkdir("/proc/self/fd"),ie.mount({mount:()=>{var t=ie.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var r=+t,i=ie.getStreamChecked(r),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{i.stdin?ie.createDevice("/dev","stdin",i.stdin):ie.symlink("/dev/tty","/dev/stdin"),i.stdout?ie.createDevice("/dev","stdout",null,i.stdout):ie.symlink("/dev/tty","/dev/stdout"),i.stderr?ie.createDevice("/dev","stderr",null,i.stderr):ie.symlink("/dev/tty1","/dev/stderr"),ie.open("/dev/stdin",0),ie.open("/dev/stdout",1),ie.open("/dev/stderr",1)},ensureErrnoError:()=>{ie.ErrnoError||(ie.ErrnoError=function(e,t){this.name="ErrnoError",this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},ie.ErrnoError.prototype=new Error,ie.ErrnoError.prototype.constructor=ie.ErrnoError,[44].forEach((e=>{ie.genericErrors[e]=new ie.ErrnoError(e),ie.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:()=>{ie.ensureErrnoError(),ie.nameTable=new Array(4096),ie.mount(ee,{},"/"),ie.createDefaultDirectories(),ie.createDefaultDevices(),ie.createSpecialDirectories(),ie.filesystems={MEMFS:ee}},init:(e,t,r)=>{ie.init.initialized=!0,ie.ensureErrnoError(),i.stdin=e||i.stdin,i.stdout=t||i.stdout,i.stderr=r||i.stderr,ie.createStandardStreams()},quit:()=>{ie.init.initialized=!1;for(var e=0;e<ie.streams.length;e++){var t=ie.streams[e];t&&ie.close(t)}},findObject:(e,t)=>{var r=ie.analyzePath(e,t);return r.exists?r.object:null},analyzePath:(e,t)=>{try{e=(i=ie.lookupPath(e,{follow:!t})).path}catch(o){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=ie.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=G.basename(e),i=ie.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(o){r.error=o.errno}return r},createPath:(e,t,r,i)=>{e="string"==typeof e?e:ie.getPath(e);for(var o=t.split("/").reverse();o.length;){var n=o.pop();if(n){var a=G.join2(e,n);try{ie.mkdir(a)}catch(s){}e=a}}return a},createFile:(e,t,r,i,o)=>{var n=G.join2("string"==typeof e?e:ie.getPath(e),t),a=re(i,o);return ie.create(n,a)},createDataFile:(e,t,r,i,o,n)=>{var a=t;e&&(e="string"==typeof e?e:ie.getPath(e),a=t?G.join2(e,t):e);var s=re(i,o),c=ie.create(a,s);if(r){if("string"==typeof r){for(var l=new Array(r.length),u=0,d=r.length;u<d;++u)l[u]=r.charCodeAt(u);r=l}ie.chmod(c,146|s);var h=ie.open(c,577);ie.write(h,r,0,r.length,0,n),ie.close(h),ie.chmod(c,s)}return c},createDevice:(e,t,r,i)=>{var o=G.join2("string"==typeof e?e:ie.getPath(e),t),n=re(!!r,!!i);ie.createDevice.major||(ie.createDevice.major=64);var a=ie.makedev(ie.createDevice.major++,0);return ie.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{i&&i.buffer&&i.buffer.length&&i(10)},read:(e,t,i,o,n)=>{for(var a=0,s=0;s<o;s++){var c;try{c=r()}catch(l){throw new ie.ErrnoError(29)}if(void 0===c&&0===a)throw new ie.ErrnoError(6);if(null==c)break;a++,t[i+s]=c}return a&&(e.node.timestamp=Date.now()),a},write:(e,t,r,o,n)=>{for(var a=0;a<o;a++)try{i(t[r+a])}catch(s){throw new ie.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),ie.mkdev(o,n,a)},forceLoadFile:e=>{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!o)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=$(o(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new ie.ErrnoError(29)}},createLazyFile:(e,t,r,i,o)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),o=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,n=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;o||(a=i);var s=this;s.setDataGetter((e=>{var t=e*a,o=(e+1)*a-1;if(o=Math.min(o,i-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),i!==a&&o.setRequestHeader("Range","bytes="+e+"-"+t),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):$(o.responseText||"",!0)})(t,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!n&&i||(a=i=1,i=this.getter(0).length,a=i,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new n;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var c=ie.createFile(e,t,s,i,o);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var l={};function d(e,t,r,i,o){var n=e.node.contents;if(o>=n.length)return 0;var a=Math.min(n.length-o,i);if(n.slice)for(var s=0;s<a;s++)t[r+s]=n[o+s];else for(s=0;s<a;s++)t[r+s]=n.get(o+s);return a}return Object.keys(c.stream_ops).forEach((e=>{var t=c.stream_ops[e];l[e]=function(){return ie.forceLoadFile(c),t.apply(null,arguments)}})),l.read=(e,t,r,i,o)=>(ie.forceLoadFile(c),d(e,t,r,i,o)),l.mmap=(e,t,r,i,o)=>{ie.forceLoadFile(c);var n=Z();if(!n)throw new ie.ErrnoError(48);return d(e,_,n,t,r),{ptr:n,allocated:!0}},c.stream_ops=l,c}},oe=(e,t)=>e?q(g,e,t):"",ne={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(G.isAbs(t))return t;var i;if(i=-100===e?ie.cwd():ne.getStreamFromFD(e).path,0==t.length){if(!r)throw new ie.ErrnoError(44);return i}return G.join2(i,t)},doStat:function(e,t,r){try{var i=e(t)}catch(s){if(s&&s.node&&G.normalize(t)!==G.normalize(ie.getPath(s.node)))return-54;throw s}y[r>>2]=i.dev,y[r+4>>2]=i.mode,T[r+8>>2]=i.nlink,y[r+12>>2]=i.uid,y[r+16>>2]=i.gid,y[r+20>>2]=i.rdev,D=[i.size>>>0,(w=i.size,+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[r+24>>2]=D[0],y[r+28>>2]=D[1],y[r+32>>2]=4096,y[r+36>>2]=i.blocks;var o=i.atime.getTime(),n=i.mtime.getTime(),a=i.ctime.getTime();return D=[Math.floor(o/1e3)>>>0,(w=Math.floor(o/1e3),+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[r+40>>2]=D[0],y[r+44>>2]=D[1],T[r+48>>2]=o%1e3*1e3,D=[Math.floor(n/1e3)>>>0,(w=Math.floor(n/1e3),+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[r+56>>2]=D[0],y[r+60>>2]=D[1],T[r+64>>2]=n%1e3*1e3,D=[Math.floor(a/1e3)>>>0,(w=Math.floor(a/1e3),+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[r+72>>2]=D[0],y[r+76>>2]=D[1],T[r+80>>2]=a%1e3*1e3,D=[i.ino>>>0,(w=i.ino,+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[r+88>>2]=D[0],y[r+92>>2]=D[1],0},doMsync:function(e,t,r,i,o){if(!ie.isFile(t.node.mode))throw new ie.ErrnoError(43);if(2&i)return 0;var n=g.slice(e,e+r);ie.msync(t,n,o,r,i)},varargs:void 0,get:()=>(ne.varargs+=4,y[ne.varargs-4>>2]),getStr:e=>oe(e),getStreamFromFD:function(e){return ie.getStreamChecked(e)}};function ae(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: ".concat(e))}}var se=void 0;function ce(e){for(var t="",r=e;g[r];)t+=se[g[r++]];return t}var le={},ue={},de={},he=void 0;function pe(e){throw new he(e)}var me=void 0;function fe(e){throw new me(e)}function _e(e,t,r){function i(t){var i=r(t);i.length!==e.length&&fe("Mismatched type converter count");for(var o=0;o<e.length;++o)ge(e[o],i[o])}e.forEach((function(e){de[e]=t}));var o=new Array(t.length),n=[],a=0;t.forEach(((e,t)=>{ue.hasOwnProperty(e)?o[t]=ue[e]:(n.push(e),le.hasOwnProperty(e)||(le[e]=[]),le[e].push((()=>{o[t]=ue[e],++a===n.length&&i(o)})))})),0===n.length&&i(o)}function ge(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var i=t.name;if(e||pe('type "'.concat(i,'" must have a positive integer typeid pointer')),ue.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;pe("Cannot register type '".concat(i,"' twice"))}if(ue[e]=t,delete de[e],le.hasOwnProperty(e)){var o=le[e];delete le[e],o.forEach((e=>e()))}}(e,t,r)}function Ee(e){pe(e.$$.ptrType.registeredClass.name+" instance already deleted")}var ve=!1;function ye(e){}function Te(e){var t;e.count.value-=1,0===e.count.value&&((t=e).smartPtr?t.smartPtrType.rawDestructor(t.smartPtr):t.ptrType.registeredClass.rawDestructor(t.ptr))}function Ie(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var i=Ie(e,t,r.baseClass);return null===i?null:r.downcast(i)}var Ae={},Se=[];function Re(){for(;Se.length;){var e=Se.pop();e.$$.deleteScheduled=!1,e.delete()}}var be=void 0,we={};function De(e,t){return t.ptrType&&t.ptr||fe("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&fe("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ce(Object.create(e,{$$:{value:t}}))}var Ce=function(e){return"undefined"==typeof FinalizationRegistry?(Ce=e=>e,e):(ve=new FinalizationRegistry((e=>{Te(e.$$)})),ye=e=>ve.unregister(e),(Ce=e=>{var t=e.$$;if(t.smartPtr){var r={$$:t};ve.register(e,r,e)}return e})(e))};function Ne(){}function ke(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?"_".concat(e):e}function Oe(e,t){return e=ke(e),{[e]:function(){return t.apply(this,arguments)}}[e]}function Me(e,t,r){if(void 0===e[t].overloadTable){var i=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||pe("Function '".concat(r,"' called with an invalid number of arguments (").concat(arguments.length,") - expects one of (").concat(e[t].overloadTable,")!")),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i}}function Le(e,t,r,i,o,n,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=o,this.getActualType=n,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function Pe(e,t,r){for(;t!==r;)t.upcast||pe("Expected null or instance of ".concat(r.name,", got an instance of ").concat(t.name)),e=t.upcast(e),t=t.baseClass;return e}function xe(e,t){if(null===t)return this.isReference&&pe("null is not a valid ".concat(this.name)),0;t.$$||pe('Cannot pass "'.concat(rt(t),'" as a ').concat(this.name)),t.$$.ptr||pe("Cannot pass deleted object as a pointer of type ".concat(this.name));var r=t.$$.ptrType.registeredClass;return Pe(t.$$.ptr,r,this.registeredClass)}function Ue(e,t){var r;if(null===t)return this.isReference&&pe("null is not a valid ".concat(this.name)),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||pe('Cannot pass "'.concat(rt(t),'" as a ').concat(this.name)),t.$$.ptr||pe("Cannot pass deleted object as a pointer of type ".concat(this.name)),!this.isConst&&t.$$.ptrType.isConst&&pe("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));var i=t.$$.ptrType.registeredClass;if(r=Pe(t.$$.ptr,i,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&pe("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:pe("Cannot convert argument of type ".concat(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name," to parameter type ").concat(this.name));break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var o=t.clone();r=this.rawShare(r,tt.toHandle((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:pe("Unsupporting sharing policy")}return r}function Ve(e,t){if(null===t)return this.isReference&&pe("null is not a valid ".concat(this.name)),0;t.$$||pe('Cannot pass "'.concat(rt(t),'" as a ').concat(this.name)),t.$$.ptr||pe("Cannot pass deleted object as a pointer of type ".concat(this.name)),t.$$.ptrType.isConst&&pe("Cannot convert argument of type ".concat(t.$$.ptrType.name," to parameter type ").concat(this.name));var r=t.$$.ptrType.registeredClass;return Pe(t.$$.ptr,r,this.registeredClass)}function Fe(e){return this.fromWireType(y[e>>2])}function Be(e,t,r,i,o,n,a,s,c,l,u){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=o,this.pointeeType=n,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=l,this.rawDestructor=u,o||void 0!==t.baseClass?this.toWireType=Ue:i?(this.toWireType=xe,this.destructorFunction=null):(this.toWireType=Ve,this.destructorFunction=null)}var He=[],je=e=>{var t=He[e];return t||(e>=He.length&&(He.length=e+1),He[e]=t=S.get(e)),t},Ge=(e,t)=>{var r=[];return function(){return r.length=0,Object.assign(r,arguments),((e,t,r)=>{return e.includes("j")?(o=t,n=r,a=i["dynCall_"+e],n&&n.length?a.apply(null,[o].concat(n)):a.call(null,o)):je(t).apply(null,r);var o,n,a})(e,t,r)}};function We(e,t){var r=(e=ce(e)).includes("j")?Ge(e,t):je(t);return"function"!=typeof r&&pe("unknown function pointer with signature ".concat(e,": ").concat(t)),r}var Ke=void 0;function ze(e){var t=Rt(e),r=ce(t);return At(t),r}function qe(e,t){var r=[],i={};throw t.forEach((function e(t){i[t]||ue[t]||(de[t]?de[t].forEach(e):(r.push(t),i[t]=!0))})),new Ke("".concat(e,": ")+r.map(ze).join([", "]))}function Je(e,t){for(var r=[],i=0;i<e;i++)r.push(T[t+4*i>>2]);return r}function Ye(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Xe(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type ".concat(typeof e," which is not a function"));var r=Oe(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var i=new r,o=e.apply(i,t);return o instanceof Object?o:i}function $e(e,t,r,i,o,n){var a=t.length;a<2&&pe("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==t[1]&&null!==r,c=!1,l=1;l<t.length;++l)if(null!==t[l]&&void 0===t[l].destructorFunction){c=!0;break}var u="void"!==t[0].name,d="",h="";for(l=0;l<a-2;++l)d+=(0!==l?", ":"")+"arg"+l,h+=(0!==l?", ":"")+"arg"+l+"Wired";var p="\n return function ".concat(ke(e),"(").concat(d,") {\n if (arguments.length !== ").concat(a-2,") {\n throwBindingError('function ").concat(e," called with ").concat(arguments.length," arguments, expected ").concat(a-2," args!');\n }");c&&(p+="var destructors = [];\n");var m=c?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],_=[pe,i,o,Ye,t[0],t[1]];for(s&&(p+="var thisWired = classParam.toWireType("+m+", this);\n"),l=0;l<a-2;++l)p+="var arg"+l+"Wired = argType"+l+".toWireType("+m+", arg"+l+"); // "+t[l+2].name+"\n",f.push("argType"+l),_.push(t[l+2]);if(s&&(h="thisWired"+(h.length>0?", ":"")+h),p+=(u||n?"var rv = ":"")+"invoker(fn"+(h.length>0?", ":"")+h+");\n",c)p+="runDestructors(destructors);\n";else for(l=s?1:2;l<t.length;++l){var g=1===l?"thisWired":"arg"+(l-2)+"Wired";null!==t[l].destructorFunction&&(p+=g+"_dtor("+g+"); // "+t[l].name+"\n",f.push(g+"_dtor"),_.push(t[l].destructorFunction))}return u&&(p+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),p+="}\n",f.push(p),Xe(Function,f).apply(null,_)}function Qe(){this.allocated=[void 0],this.freelist=[]}var Ze=new Qe;function et(e){e>=Ze.reserved&&0==--Ze.get(e).refcount&&Ze.free(e)}var tt={toValue:e=>(e||pe("Cannot use deleted val. handle = "+e),Ze.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Ze.allocate({refcount:1,value:e})}}};function rt(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function it(e,t){switch(t){case 2:return function(e){return this.fromWireType(I[e>>2])};case 3:return function(e){return this.fromWireType(A[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function ot(e,t,r){switch(t){case 0:return r?function(e){return _[e]}:function(e){return g[e]};case 1:return r?function(e){return E[e>>1]}:function(e){return v[e>>1]};case 2:return r?function(e){return y[e>>2]}:function(e){return T[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var nt,at,st="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,ct=(e,t)=>{for(var r=e,i=r>>1,o=i+t/2;!(i>=o)&&v[i];)++i;if((r=i<<1)-e>32&&st)return st.decode(g.subarray(e,r));for(var n="",a=0;!(a>=t/2);++a){var s=E[e+2*a>>1];if(0==s)break;n+=String.fromCharCode(s)}return n},lt=(e,t,r)=>{if(void 0===r&&(r=2147483647),r<2)return 0;for(var i=t,o=(r-=2)<2*e.length?r/2:e.length,n=0;n<o;++n){var a=e.charCodeAt(n);E[t>>1]=a,t+=2}return E[t>>1]=0,t-i},ut=e=>2*e.length,dt=(e,t)=>{for(var r=0,i="";!(r>=t/4);){var o=y[e+4*r>>2];if(0==o)break;if(++r,o>=65536){var n=o-65536;i+=String.fromCharCode(55296|n>>10,56320|1023&n)}else i+=String.fromCharCode(o)}return i},ht=(e,t,r)=>{if(void 0===r&&(r=2147483647),r<4)return 0;for(var i=t,o=i+r-4,n=0;n<e.length;++n){var a=e.charCodeAt(n);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),y[t>>2]=a,(t+=4)+4>o)break}return y[t>>2]=0,t-i},pt=e=>{for(var t=0,r=0;r<e.length;++r){var i=e.charCodeAt(r);i>=55296&&i<=57343&&++r,t+=4}return t},mt={},ft=[],_t=[],gt={},Et=()=>{if(!Et.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(var t in gt)void 0===gt[t]?delete e[t]:e[t]=gt[t];var r=[];for(var t in e)r.push("".concat(t,"=").concat(e[t]));Et.strings=r}return Et.strings},vt=function(e,t,r,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ie.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i};Object.defineProperties(vt.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ie.isDir(this.mode)}},isDevice:{get:function(){return ie.isChrdev(this.mode)}}}),ie.FSNode=vt,ie.createPreloadedFile=function(e,t,r,i,o,a,s,c,l,u){var d=t?K.resolve(G.join2(e,t)):e;function h(r){function n(r){u&&u(),c||ie.createDataFile(e,t,r,i,o,l),a&&a(),x()}(function(e,t,r,i){"undefined"!=typeof Browser&&Browser.init();var o=!1;return te.forEach((function(n){o||n.canHandle(t)&&(n.handle(e,t,r,i),o=!0)})),o})(r,d,n,(()=>{s&&s(),x()}))||n(r)}P(),"string"==typeof r?((e,t,r,i)=>{var o=i?"":"al ".concat(e);n(e,(r=>{var i;i='Loading data file "'.concat(e,'" failed (no arrayBuffer).'),r||U(i),t(new Uint8Array(r)),o&&x()}),(t=>{if(!r)throw'Loading data file "'.concat(e,'" failed.');r()})),o&&P()})(r,(e=>h(e)),s):h(r)},ie.staticInit(),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);se=e}(),he=i.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},me=i.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Ne.prototype.isAliasOf=function(e){if(!(this instanceof Ne&&e instanceof Ne))return!1;for(var t=this.$$.ptrType.registeredClass,r=this.$$.ptr,i=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;i.baseClass;)o=i.upcast(o),i=i.baseClass;return t===i&&r===o},Ne.prototype.clone=function(){if(this.$$.ptr||Ee(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=Ce(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},Ne.prototype.delete=function(){this.$$.ptr||Ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pe("Object already scheduled for deletion"),ye(this),Te(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},Ne.prototype.isDeleted=function(){return!this.$$.ptr},Ne.prototype.deleteLater=function(){return this.$$.ptr||Ee(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pe("Object already scheduled for deletion"),Se.push(this),1===Se.length&&be&&be(Re),this.$$.deleteScheduled=!0,this},i.getInheritedInstanceCount=function(){return Object.keys(we).length},i.getLiveInheritedInstances=function(){var e=[];for(var t in we)we.hasOwnProperty(t)&&e.push(we[t]);return e},i.flushPendingDeletes=Re,i.setDelayFunction=function(e){be=e,Se.length&&be&&be(Re)},Be.prototype.getPointee=function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},Be.prototype.destructor=function(e){this.rawDestructor&&this.rawDestructor(e)},Be.prototype.argPackAdvance=8,Be.prototype.readValueFromPointer=Fe,Be.prototype.deleteObject=function(e){null!==e&&e.delete()},Be.prototype.fromWireType=function(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=function(e,t){for(void 0===t&&pe("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),we[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var i=r.clone();return this.destructor(e),i}function o(){return this.isSmartPointer?De(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):De(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var n,a=this.registeredClass.getActualType(t),s=Ae[a];if(!s)return o.call(this);n=this.isConst?s.constPointerType:s.pointerType;var c=Ie(t,this.registeredClass,n.registeredClass);return null===c?o.call(this):this.isSmartPointer?De(n.registeredClass.instancePrototype,{ptrType:n,ptr:c,smartPtrType:this,smartPtr:e}):De(n.registeredClass.instancePrototype,{ptrType:n,ptr:c})},Ke=i.UnboundTypeError=(nt=Error,(at=Oe("UnboundTypeError",(function(e){this.name="UnboundTypeError",this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(nt.prototype),at.prototype.constructor=at,at.prototype.toString=function(){return void 0===this.message?this.name:"".concat(this.name,": ").concat(this.message)},at),Object.assign(Qe.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),Ze.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Ze.reserved=Ze.allocated.length,i.count_emval_handles=function(){for(var e=0,t=Ze.reserved;t<Ze.allocated.length;++t)void 0!==Ze.allocated[t]&&++e;return e};var yt,Tt={p:function(e,t,r){throw new j(e).init(t,r),e},C:function(e,t,r){ne.varargs=r;try{var i=ne.getStreamFromFD(e);switch(t){case 0:return(o=ne.get())<0?-28:ie.createStream(i,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return i.flags;case 4:var o=ne.get();return i.flags|=o,0;case 5:return o=ne.get(),E[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return y[St()>>2]=28,-1}}catch(n){if(void 0===ie||"ErrnoError"!==n.name)throw n;return-n.errno}},w:function(e,t,r,i){ne.varargs=i;try{t=ne.getStr(t),t=ne.calculateAt(e,t);var o=i?ne.get():0;return ie.open(t,r,o).fd}catch(n){if(void 0===ie||"ErrnoError"!==n.name)throw n;return-n.errno}},t:function(e,t,r,i,o){},n:function(e,t,r,i,o){var n=ae(r);ge(e,{name:t=ce(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?i:o},argPackAdvance:8,readValueFromPointer:function(e){var i;if(1===r)i=_;else if(2===r)i=E;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);i=y}return this.fromWireType(i[e>>n])},destructorFunction:null})},r:function(e,t,r,o,n,a,s,c,l,u,d,h,p){d=ce(d),a=We(n,a),c&&(c=We(s,c)),u&&(u=We(l,u)),p=We(h,p);var m,f,_,g=ke(d);m=g,f=function(){qe("Cannot construct ".concat(d," due to unbound types"),[o])},i.hasOwnProperty(m)?(pe("Cannot register public name '".concat(m,"' twice")),Me(i,m,m),i.hasOwnProperty(_)&&pe("Cannot register multiple overloads of a function with the same number of arguments (".concat(_,")!")),i[m].overloadTable[_]=f):i[m]=f,_e([e,t,r],o?[o]:[],(function(t){var r,n;t=t[0],n=o?(r=t.registeredClass).instancePrototype:Ne.prototype;var s=Oe(g,(function(){if(Object.getPrototypeOf(this)!==l)throw new he("Use 'new' to construct "+d);if(void 0===h.constructor_body)throw new he(d+" has no accessible constructor");var e=h.constructor_body[arguments.length];if(void 0===e)throw new he("Tried to invoke ctor of ".concat(d," with invalid number of parameters (").concat(arguments.length,") - expected (").concat(Object.keys(h.constructor_body).toString(),") parameters instead!"));return e.apply(this,arguments)})),l=Object.create(n,{constructor:{value:s}});s.prototype=l;var h=new Le(d,s,l,p,r,a,c,u);h.baseClass&&(void 0===h.baseClass.__derivedClasses&&(h.baseClass.__derivedClasses=[]),h.baseClass.__derivedClasses.push(h));var m,f,_,E=new Be(d,h,!0,!1,!1),v=new Be(d+"*",h,!1,!1,!1),y=new Be(d+" const*",h,!1,!0,!1);return Ae[e]={pointerType:v,constPointerType:y},m=g,f=s,i.hasOwnProperty(m)||fe("Replacing nonexistant public symbol"),i[m].overloadTable,i[m]=f,i[m].argCount=_,[E,v,y]}))},q:function(e,t,r,i,o,n){var a=Je(t,r);o=We(i,o),_e([],[e],(function(e){var r="constructor ".concat((e=e[0]).name);if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new he("Cannot register multiple constructors with identical number of parameters (".concat(t-1,") for class '").concat(e.name,"'! Overload resolution is currently only performed using the parameter count, not actual type info!"));return e.registeredClass.constructor_body[t-1]=()=>{qe("Cannot construct ".concat(e.name," due to unbound types"),a)},_e([],a,(function(i){return i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=$e(r,i,null,o,n),[]})),[]}))},d:function(e,t,r,i,o,n,a,s,c){var l=Je(r,i);t=ce(t),n=We(o,n),_e([],[e],(function(e){var i="".concat((e=e[0]).name,".").concat(t);function o(){qe("Cannot call ".concat(i," due to unbound types"),l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var u=e.registeredClass.instancePrototype,d=u[t];return void 0===d||void 0===d.overloadTable&&d.className!==e.name&&d.argCount===r-2?(o.argCount=r-2,o.className=e.name,u[t]=o):(Me(u,t,i),u[t].overloadTable[r-2]=o),_e([],l,(function(o){var s=$e(i,o,e,n,a,c);return void 0===u[t].overloadTable?(s.argCount=r-2,u[t]=s):u[t].overloadTable[r-2]=s,[]})),[]}))},D:function(e,t){ge(e,{name:t=ce(t),fromWireType:function(e){var t=tt.toValue(e);return et(e),t},toWireType:function(e,t){return tt.toHandle(t)},argPackAdvance:8,readValueFromPointer:Fe,destructorFunction:null})},k:function(e,t,r){var i=ae(r);ge(e,{name:t=ce(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:it(t,i),destructorFunction:null})},c:function(e,t,r,i,o){t=ce(t);var n=ae(r),a=e=>e;if(0===i){var s=32-8*r;a=e=>e<<s>>>s}var c=t.includes("unsigned");ge(e,{name:t,fromWireType:a,toWireType:c?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:ot(t,n,0!==i),destructorFunction:null})},b:function(e,t,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=T,r=t[e>>=2],o=t[e+1];return new i(t.buffer,o,r)}ge(e,{name:r=ce(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},j:function(e,t){var r="std::string"===(t=ce(t));ge(e,{name:t,fromWireType:function(e){var t,i=T[e>>2],o=e+4;if(r)for(var n=o,a=0;a<=i;++a){var s=o+a;if(a==i||0==g[s]){var c=oe(n,s-n);void 0===t?t=c:(t+="\0",t+=c),n=s+1}}else{var l=new Array(i);for(a=0;a<i;++a)l[a]=String.fromCharCode(g[o+a]);t=l.join("")}return At(e),t},toWireType:function(e,t){var i;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var o="string"==typeof t;o||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||pe("Cannot pass non-string to std::string"),i=r&&o?Y(t):t.length;var n=It(4+i+1),a=n+4;if(T[n>>2]=i,r&&o)X(t,g,a,i+1);else if(o)for(var s=0;s<i;++s){var c=t.charCodeAt(s);c>255&&(At(a),pe("String has UTF-16 code units that do not fit in 8 bits")),g[a+s]=c}else for(s=0;s<i;++s)g[a+s]=t[s];return null!==e&&e.push(At,n),n},argPackAdvance:8,readValueFromPointer:Fe,destructorFunction:function(e){At(e)}})},f:function(e,t,r){var i,o,n,a,s;r=ce(r),2===t?(i=ct,o=lt,a=ut,n=()=>v,s=1):4===t&&(i=dt,o=ht,a=pt,n=()=>T,s=2),ge(e,{name:r,fromWireType:function(e){for(var r,o=T[e>>2],a=n(),c=e+4,l=0;l<=o;++l){var u=e+4+l*t;if(l==o||0==a[u>>s]){var d=i(c,u-c);void 0===r?r=d:(r+="\0",r+=d),c=u+t}}return At(e),r},toWireType:function(e,i){"string"!=typeof i&&pe("Cannot pass non-string to C++ string type ".concat(r));var n=a(i),c=It(4+n+t);return T[c>>2]=n>>s,o(i,c+4,n+t),null!==e&&e.push(At,c),c},argPackAdvance:8,readValueFromPointer:Fe,destructorFunction:function(e){At(e)}})},o:function(e,t){ge(e,{isVoid:!0,name:t=ce(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},g:function(e,t,r,i){var o,n;(e=ft[e])(t=tt.toValue(t),r=void 0===(n=mt[o=r])?ce(o):n,null,i)},m:et,l:function(e,t){var r=function(e,t){for(var r,i,o,n=new Array(e),a=0;a<e;++a)n[a]=(r=T[t+4*a>>2],i="parameter "+a,void 0===(o=ue[r])&&pe(i+" has unknown type "+ze(r)),o);return n}(e,t),i=r[0],o=i.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",n=_t[o];if(void 0!==n)return n;for(var a=["retType"],s=[i],c="",l=0;l<e-1;++l)c+=(0!==l?", ":"")+"arg"+l,a.push("argType"+l),s.push(r[1+l]);var u,d,h="return function "+ke("methodCaller_"+o)+"(handle, name, destructors, args) {\n",p=0;for(l=0;l<e-1;++l)h+=" var arg"+l+" = argType"+l+".readValueFromPointer(args"+(p?"+"+p:"")+");\n",p+=r[l+1].argPackAdvance;for(h+=" var rv = handle[name]("+c+");\n",l=0;l<e-1;++l)r[l+1].deleteObject&&(h+=" argType"+l+".deleteObject(arg"+l+");\n");return i.isVoid||(h+=" return retType.toWireType(destructors, rv);\n"),h+="};\n",a.push(h),u=Xe(Function,a).apply(null,s),d=ft.length,ft.push(u),n=d,_t[o]=n,n},a:()=>{U("")},e:function(){return Date.now()},v:()=>g.length,A:(e,t,r)=>g.copyWithin(e,t,t+r),u:e=>{g.length,U("OOM")},y:(e,t)=>{var r=0;return Et().forEach((function(i,o){var n=t+r;T[e+4*o>>2]=n,((e,t)=>{for(var r=0;r<e.length;++r)_[0|t++]=e.charCodeAt(r);_[0|t]=0})(i,n),r+=i.length+1})),0},z:(e,t)=>{var r=Et();T[e>>2]=r.length;var i=0;return r.forEach((function(e){i+=e.length+1})),T[t>>2]=i,0},i:function(e){try{var t=ne.getStreamFromFD(e);return ie.close(t),0}catch(r){if(void 0===ie||"ErrnoError"!==r.name)throw r;return r.errno}},x:function(e,t){try{var r=ne.getStreamFromFD(e),i=r.tty?2:ie.isDir(r.mode)?3:ie.isLink(r.mode)?7:4;return _[0|t]=i,E[t+2>>1]=0,D=[0,(w=0,+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[t+8>>2]=D[0],y[t+12>>2]=D[1],D=[0,(w=0,+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[t+16>>2]=D[0],y[t+20>>2]=D[1],0}catch(o){if(void 0===ie||"ErrnoError"!==o.name)throw o;return o.errno}},B:function(e,t,r,i){try{var o=((e,t,r,i)=>{for(var o=0,n=0;n<r;n++){var a=T[t>>2],s=T[t+4>>2];t+=8;var c=ie.read(e,_,a,s,i);if(c<0)return-1;if(o+=c,c<s)break;void 0!==i&&(i+=c)}return o})(ne.getStreamFromFD(e),t,r);return T[i>>2]=o,0}catch(n){if(void 0===ie||"ErrnoError"!==n.name)throw n;return n.errno}},s:function(e,t,r,i,o){var n,a,s=(a=r)+2097152>>>0<4194305-!!(n=t)?(n>>>0)+4294967296*a:NaN;try{if(isNaN(s))return 61;var c=ne.getStreamFromFD(e);return ie.llseek(c,s,i),D=[c.position>>>0,(w=c.position,+Math.abs(w)>=1?w>0?+Math.floor(w/4294967296)>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],y[o>>2]=D[0],y[o+4>>2]=D[1],c.getdents&&0===s&&0===i&&(c.getdents=null),0}catch(l){if(void 0===ie||"ErrnoError"!==l.name)throw l;return l.errno}},h:function(e,t,r,i){try{var o=((e,t,r,i)=>{for(var o=0,n=0;n<r;n++){var a=T[t>>2],s=T[t+4>>2];t+=8;var c=ie.write(e,_,a,s,i);if(c<0)return-1;o+=c,void 0!==i&&(i+=c)}return o})(ne.getStreamFromFD(e),t,r);return T[i>>2]=o,0}catch(n){if(void 0===ie||"ErrnoError"!==n.name)throw n;return n.errno}}},It=(function(){var e,t,o,n,a={a:Tt};function s(e,t){var r,o,n=e.exports;return r=(p=n).E.buffer,i.HEAP8=_=new Int8Array(r),i.HEAP16=E=new Int16Array(r),i.HEAP32=y=new Int32Array(r),i.HEAPU8=g=new Uint8Array(r),i.HEAPU16=v=new Uint16Array(r),i.HEAPU32=T=new Uint32Array(r),i.HEAPF32=I=new Float32Array(r),i.HEAPF64=A=new Float64Array(r),S=p.H,o=p.F,k.unshift(o),x(),n}if(P(),i.instantiateWasm)try{return i.instantiateWasm(a,s)}catch(c){f("Module.instantiateWasm callback failed with error: "+c),r(c)}(e=h,t=R,o=a,n=function(e){s(e.instance)},e||"function"!=typeof WebAssembly.instantiateStreaming||V(t)||"function"!=typeof fetch?B(t,o,n):fetch(t,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,o).then(n,(function(e){return f("wasm streaming compile failed: "+e),f("falling back to ArrayBuffer instantiation"),B(t,o,n)}))))).catch(r)}(),e=>(It=p.G)(e)),At=e=>(At=p.I)(e),St=()=>(St=p.J)(),Rt=e=>(Rt=p.K)(e),bt=(i.__embind_initialize_bindings=()=>(i.__embind_initialize_bindings=p.L)(),e=>(bt=p.M)(e));function wt(){function e(){yt||(yt=!0,i.calledRun=!0,C||(i.noFSInit||ie.init.initialized||ie.init(),ie.ignorePermissions=!1,H(k),t(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)e=i.postRun.shift(),O.unshift(e);var e;H(O)}()))}M>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)e=i.preRun.shift(),N.unshift(e);var e;H(N)}(),M>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),e()}),1)):e()))}if(i.dynCall_jiji=(e,t,r,o,n)=>(i.dynCall_jiji=p.N)(e,t,r,o,n),i._ff_h264_cabac_tables=67061,L=function e(){yt||wt(),yt||(L=e)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return wt(),e.ready}),nF=oF,aF=class extends rF{constructor(e){super(nF,null!=e&&e.wasmPath?fetch(null==e?void 0:e.wasmPath).then((e=>e.arrayBuffer())):void 0,null==e?void 0:e.workerMode,null==e?void 0:e.canvas,null==e?void 0:e.yuvMode)}};(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0})();var sF=(e=>(e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.NONE=5]="NONE",e))(sF||{});function cF(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var lF=class e{constructor(e){this.core=e,jV(this,"contextMap",new Map),jV(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(e){return null!=e&&e.track?"".concat(e.track.userId).concat(e.track.streamType):"*"}getName(){return e.Name}getValidateRule(e){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(e,t){switch(e){case"wasm":return new aF(BV(FV({},t),{wasmPath:"".concat(this.core.assetsPath||".","/videodec.wasm")}));case"webCodecs":return new eF;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(e){this.decodeProcessorMap.set(e.track,this.decode(e)),this.core.room.videoManager.addDecodeProcessor({processor:e=>{let{frame:t,track:r}=e;var i;return(null==(i=this.decodeProcessorMap.get(r))?void 0:i({frame:t,track:r}))||t},type:3})}decode(e){let{pipe:t,take:r,subscribe:i}=this.core.rx;return o=>{let{frame:n,track:a}=o;if(a!==e.track||"empty"===n.type)return n;if(this.contextMap.has(a))return this.contextMap.get(a).decode(n);let s=this.core.room.videoManager.createDecodeContext(BV(FV({},e),{createDecoder:this.createDecoder}));return t(s.trackDoneOB,r(1),i((()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:a})}))),this.contextMap.set(a,s),s.decode(n)}}stop(e){if(null!=e&&e.track){let t=this.contextMap.get(e.track);t&&(t.close("stop"),this.report(t,e.track),this.contextMap.delete(e.track))}else this.contextMap.forEach(((e,t)=>{e.close("stop"),this.contextMap.delete(t)}));0===this.contextMap.size&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(e,t){if(e.isReported)return;e.isReported=!0;let r=cF()-e.startPerformanceTime,{renderFreezeTotal:i,dataFreezeTotal:o}=this.getRemoteTrackFreezeDuration(t,e);r&&this.core.kvStatManager.addNumber({key:514850,value:Math.floor(i/r*100),split:1}),r&&this.core.kvStatManager.addNumber({key:514851,value:Math.floor(o/r*100),split:1}),e.inputFrameCount&&this.core.kvStatManager.addNumber({key:514852,value:Math.floor(e.decodedFrameCount/e.inputFrameCount*100),split:1})}addKVReportBeforeExitRoom(e){let{room:t}=e;t===this.core.room&&this.contextMap.forEach(((e,t)=>{this.report(e,t)}))}update(e){let t=this.contextMap.get(e.track);t&&("mock"!==e.type?(t.close("update"),this.contextMap.set(e.track,this.core.room.videoManager.createDecodeContext(BV(FV({},e),{createDecoder:this.createDecoder})))):t.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(e,t){let r=this.core.room.badCaseDetector.getRenderFreezeMap().get("".concat(e.userId,"_").concat(e.streamType)),i=this.core.room.badCaseDetector.getDataFreezeMap().get("".concat(e.userId,"_").concat(e.streamType)),o=0;r&&r.freezeTimeline.forEach((e=>{let{startTime:r,endTime:i}=e;r>t.startPerformanceTime&&(o+=0===i?cF()-r:i-r)}));let n=0;return i&&i.durationItemList.forEach((e=>{e.startTime>t.startPerformanceTime&&(n+=e.getDuration())})),{renderFreezeTotal:o,dataFreezeTotal:n}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};jV(lF,"Name","TRTCVideoDecoder");var uF=lF,dF=Tb(bb());function hF(e){let{timesInSecond:t,maxSizeInSecond:r,getSize:i}=e;return yP(((e,o)=>{let n=new WeakMap;return gk.on(vk.ROOM_DESTROY,(e=>{let{room:t}=e;return n.delete(t)})),function(){let a=n.get(this);for(var s=arguments.length,c=new Array(s),l=0;l<s;l++)c[l]=arguments[l];if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},n.set(this,a)),0===a.timestamp?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),i&&(a.totalSizeInSecond+=i(...c)),0!==a.timestamp&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=t||a.totalSizeInSecond>r))throw new Lb({code:Ob.INVALID_OPERATION,message:CO({key:RO.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=t,isSize:a.totalSizeInSecond>r,name:o,timesInSecond:t,maxSizeInSecond:r}})});a.callCountInSecond++,e.call(this,...c)}}))}var pF,mF=!0,fF={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"},_F={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},gF=((pF=gF||{})[pF.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",pF[pF.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",pF[pF.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",pF[pF.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",pF[pF.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",pF[pF.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",pF[pF.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",pF[pF.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",pF[pF.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",pF[pF.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",pF[pF.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",pF[pF.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",pF[pF.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",pF[pF.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",pF[pF.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",pF[pF.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",pF[pF.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",pF[pF.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",pF[pF.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",pF[pF.INVALID_OPERATION=5100]="INVALID_OPERATION",pF[pF.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",pF[pF.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",pF[pF.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",pF[pF.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",pF[pF.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",pF[pF.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",pF[pF.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",pF[pF.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",pF[pF.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",pF[pF.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",pF[pF.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",pF[pF.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",pF[pF.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",pF[pF.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",pF[pF.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",pF[pF.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",pF[pF.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",pF[pF.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",pF[pF.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",pF[pF.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",pF[pF.DEVICE_ERROR=5300]="DEVICE_ERROR",pF[pF.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",pF[pF.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",pF[pF.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",pF[pF.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",pF[pF.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",pF[pF.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",pF[pF.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",pF[pF.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",pF[pF.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",pF[pF.SERVER_ERROR=5400]="SERVER_ERROR",pF[pF.NEED_TO_BUY=5401]="NEED_TO_BUY",pF[pF.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",pF[pF.OPERATION_FAILED=5500]="OPERATION_FAILED",pF[pF.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",pF[pF.REJOIN_FAILED=5502]="REJOIN_FAILED",pF[pF.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",pF[pF.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",pF[pF.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",pF[pF.OPERATION_ABORT=5998]="OPERATION_ABORT",pF[pF.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",pF);var EF=Eb(gb({},bO),{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:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' is a required param when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_TYPE(e){let{key:t,rule:r,fnName:i,value:o}=e,n="".concat(t||r.name),a="";return a=Array.isArray(r.type)?r.type.join("|"):r.type,"'".concat(n,"' must be type of ").concat(a," when calling ").concat(i,"(), received type: ").concat(xD(o),".")},INVALID_PARAMETER_EMPTY(e){let{key:t,rule:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' cannot be '").concat(o,"' when calling ").concat(i,"().")},INVALID_PARAMETER_INSTANCE(e){let{key:t,rule:r,fnName:i,value:o}=e,n="".concat(t||r.name),a="".concat(r.instanceOf.name||r.instanceOf);return"'".concat(n,"' must be instanceof ").concat(a," when calling ").concat(i,"(), received type: ").concat(xD(o),".")},INVALID_PARAMETER_RANGE(e){let{key:t,rule:r,fnName:i,value:o}=e;return"'".concat(t||r.name,"' must be one of ").concat(r.values.join("|")," when calling ").concat(i,"(), received: ").concat(o,".")},INVALID_PARAMETER_LESS_THAN_ZERO(e){let{key:t,rule:r,fnName:i}=e;return"'".concat(t||r.name,"' cannot be less than 0 when calling ").concat(i,"().")},INVALID_PARAMETER_MIN(e){let{key:t,rule:r,value:i}=e;return"the min value of ".concat(t||r.name," is ").concat(r.min,", received: ").concat(i,".")},INVALID_PARAMETER_MAX(e){let{key:t,rule:r,value:i}=e;return"the max value of ".concat(t||r.name," is ").concat(r.max,", received: ").concat(i,".")},INVALID_ELEMENT_ID(e){let{key:t,fnName:r}=e;return"'".concat(t,"' is not found in the document object when calling ").concat(r,"().")},INVALID_ELEMENT_ID_TYPE(e){let{key:t,fnName:r,type:i}=e;return"the element corresponding to '".concat(t,"' must be instanceof HTMLElement when calling ").concat(r,"(), received: ").concat(i,".")},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_REQUIED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",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:r}=e;return"cannot ".concat(t," because remote user(userId: ").concat(r.userId,") does not publishing stream.")},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST(e){let{fnName:t,value:r}=e;return"cannot ".concat(t," because remote user(userId: ").concat(r.userId,") does not publishing ").concat(r.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 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:r}=e;return"'".concat(t,"' got device exception").concat(r?", error: ".concat(r.toString(),"."):".")},DEVICE_NOT_FOUND_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=e;return"NotFoundError, no ".concat(r," detected, please check your device and the configuration on '").concat(t,"'").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=e;return"NotAllowedError, you have disabled ".concat(r," access, please allow the current application to use the ").concat(r).concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=e;return"NotReadableError, the ".concat(r," 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:r=vF(t),error:i}=e;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=e;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(r).concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_SECURITY_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=e;return"SecurityError, check whether the system security policy restricts the use of the ".concat(r,", and it is recommended to turn on the ").concat(r," after the user interacts with the page").concat(i?", error: ".concat(i.toString(),"."):".")},DEVICE_ABORT_ERROR(e){let{fnName:t,deviceType:r=vF(t),error:i}=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(i?" error: ".concat(i.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:r}=e;return"'".concat(t,"' failed, reason: ").concat(null==r?void 0:r.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:r}=e;return"video context error ".concat(t," ").concat((null==r?void 0:r.name)||""," ").concat((null==r?void 0:r.message)||"")},SERVER_ERROR(e){let{fnName:t,error:r}=e;return"'".concat(t,"' got server error: ").concat(null==r?void 0:r.toString(),", please check the SDK documentation.")},NEED_TO_BUY(e){let{value:t,url:r}=e;return"You need to buy packages for ".concat(t,". Refer to: ").concat(r)},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:r}=e;return"'".concat(t,"' throw unknown exception").concat(r?", error: ".concat(r.toString(),"."):".")}});function vF(e){if(!e)return"camera";let t=e.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var yF=class e extends Error{constructor(e){let{code:t,extraCode:r,message:i="",messageParams:o,fnName:n="",originError:a}=e;var s;let c;c=i||function(e){let t,{code:r,params:i,enableDocLink:o=!1}=e,a="",s=gF[r];try{t=EF[s]}catch(n){t=EF.UNKNOWN_ERROR}return UD(t)?a=t(i):FD(t)&&(a=t),i.fnName&&!a.includes(i.fnName)&&("."!==a[a.length-1]&&(a+="."),a+=" thrown from ".concat(i.fnName,"()")),o&&(a+=" doc:"),a}({code:t===_F.SERVER_ERROR?t:r||t,params:gb({fnName:n,error:a},o)}),super(c),Ab(this,"name","RtcError"),Ab(this,"code"),Ab(this,"extraCode"),Ab(this,"functionName"),Ab(this,"message"),Ab(this,"handler"),Ab(this,"originError"),this.name=gF[t],this.code=t,this.extraCode=r,this.functionName=n,this.originError=a,this.message=c,5302===this.extraCode&&null!=(s=this.originError)&&s.message.includes("system")&&(this.handler=()=>{let e=document.createElement("a");vN?e.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):yN&&(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,r,i){let o=t;if(t instanceof Lb){let{stack:n}=t,a={code:_F.UNKNOWN_ERROR,fnName:r,originError:t};switch(t.getCode()){case Ob.INVALID_PARAMETER:a.code=_F.INVALID_PARAMETER,a.message=t.message;break;case Ob.INVALID_OPERATION:a.code=_F.INVALID_OPERATION;break;case Ob.NOT_SUPPORTED:case Ob.NOT_SUPPORTED_H264:a.code=_F.ENV_NOT_SUPPORTED,t.getCode()===Ob.NOT_SUPPORTED_H264&&(a.extraCode=t.message.includes(bO.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Ob.JOIN_ROOM_FAILED:a.messageParams={fnParams:i};case Ob.SERVER_TIMEOUT:case Ob.SWITCH_ROLE_FAILED:a.code=_F.SERVER_ERROR,a.extraCode=t.getExtraCode();break;case Ob.API_CALL_ABORTED:a.code=_F.OPERATION_ABORT;break;case Ob.DEVICE_NOT_FOUND:case Ob.DEVICE_AUTO_RECOVER_FAILED:case Ob.INITIALIZE_FAILED:a.code=5300,t.name&&(a.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 Ob.UNKNOWN:break;default:a.code=_F.OPERATION_FAILED}o=new e(a),n&&(o.stack+=n.substr(n.indexOf("\n")))}else{if(t instanceof e)return t;o=new e({code:_F.UNKNOWN_ERROR,fnName:r,originError:t})}return o}};var TF=yF,IF={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:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},AF={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}}},SF={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(e,t,r){if(FD(e)&&!document.getElementById(e))throw new TF({code:_F.INVALID_PARAMETER,extraCode:5009,fnName:r,messageParams:{key:t}})}},RF={name:"userId",required:!0,type:"string"},bF={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[fF.AUDIO_PROFILE_STANDARD,fF.AUDIO_PROFILE_STANDARD_STEREO,fF.AUDIO_PROFILE_HIGH,fF.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function wF(e,t){if(!e)throw new TF({code:_F.INVALID_OPERATION,extraCode:5101,fnName:t})}function DF(e,t,r){if(!e)throw new TF({code:_F.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:r}})}var CF={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,r){if(this._room.isJoined)throw new TF({code:_F.INVALID_OPERATION,extraCode:5104,fnName:r});if(e.roomId){if(FD(e.roomId))throw new TF({code:_F.INVALID_PARAMETER,extraCode:5016,fnName:r,messageParams:{key:t}});if(!(/^[1-9]\d*$/.test(String(e.roomId))&&e.roomId<4294967295))throw new TF({code:_F.INVALID_PARAMETER,extraCode:5013,fnName:r,messageParams:{key:t}})}else{if(!e.strRoomId)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5015,fnName:r});if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(e.strRoomId))throw new TF({code:_F.INVALID_PARAMETER,extraCode:5012,fnName:r,messageParams:{key: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:SF,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:IF},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.videoTrack)&&qO())throw new TF({code:_F.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Eb(gb({},SF),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:IF}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:bF},validate(e){var t;if((null==(t=null==e?void 0:e.option)||!t.audioTrack)&&qO())throw new TF({code:_F.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:bF}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:SF,publish:{type:"boolean"},option:AF},validate(e,t,r,i,o){var n;if(null==(n=null==e?void 0:e.option)||!n.videoTrack){if(qO())throw new TF({code:_F.ENV_NOT_SUPPORTED,extraCode:5201});if(!ZO())throw new TF({code:_F.ENV_NOT_SUPPORTED,fnName:r,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:SF,publish:{type:"boolean"},option:AF}},muteRemoteAudio:[RF,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[RF,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:SF,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,r){wF(this._room.isJoined,r);let i=this._room.remotePublishedUserMap.get(e.userId);if(DF(!!i,r,e),i&&("main"===e.streamType&&!i.muteState.videoAvailable||"sub"===e.streamType&&!i.muteState.hasAuxiliary))throw new TF({code:_F.INVALID_OPERATION,extraCode:5103,fnName:r,messageParams:{value:e}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Eb(gb({},SF),{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,r){wF(this._room.isJoined,r);let i=this._room.remotePublishedUserMap.get(e.userId);if(DF(!!i,r,e),i&&("main"===e.streamType&&!i.muteState.videoAvailable||"sub"===e.streamType&&!i.muteState.hasAuxiliary))throw new TF({code:_F.INVALID_OPERATION,extraCode:5103,fnName:r,messageParams:{value:e}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(e,t,r){if("*"!==e.userId&&VD(e.streamType))throw new TF({code:_F.INVALID_PARAMETER,extraCode:5014,fnName:r})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(e,t,r){wF(this._room.isJoining||this._room.isJoined,r)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(e,t,r,i){if(!AM)throw new TF({code:_F.ENV_NOT_SUPPORTED,fnName:r,extraCode:5207});if(!this._room.enableSEI)throw new TF({code:_F.INVALID_OPERATION,fnName:r,extraCode:5108});if(e.byteLength>1e3)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5018,fnName:r});if(0===e.byteLength)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:r});wF(this._room.isJoined,r)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(e,t,r){if(!e&&!this._room.isMainStreamPublished||e&&!this._room.isAuxStreamPublished)throw new TF({code:_F.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:r})}}}}],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,r,i){if(e.byteLength>1e3)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5018,fnName:r});if(0===e.byteLength)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5017,fnName:r,messageParams:{key:t}})}}},validate(e,t,r){if(wF(this._room.isJoined,r),"live"===this._room.scene&&"audience"===this._room.role)throw new TF({code:_F.INVALID_OPERATION,extraCode:5107,fnName:r,messageParams:{key:t}})}}},NF={TRTC:CF},kF=class extends Error{};function OF(e,t){let r=aC(e);for(let i=0;i<t.length;i++)nC(r[i],t[i]);return r}function MF(e){this._resolve=Promise.resolve(e)}function LF(e){this._reject=Promise.reject(e)}var PF=class e{constructor(t,r){this.instance=t,this.group=r,Ab(this,"started",!1),Ab(this,"ops",[]),Ab(this,"startSame",(()=>!0)),Ab(this,"mergeUpdate",OF);let i=e.instances.get(t);i?i.set(r,this):e.instances.set(t,new Map([[r,this]]))}static get(t,r){if(!r)return;let i=e.instances.get(t);return i&&i.get(r)||new e(t,r)}static gets(t,r){let i=e.instances.get(t),o=[];return i&&i.forEach(((e,t)=>{r.test(t)&&o.push(e)})),o}action(e,t,r){let i=t=>{var r;return 0===e?this.started=!0:3===e&&(this.started=!1),this.ops.shift(),null==(r=this.currentOp)||r.action(),t},o=t=>{var r,i;throw this.ops.shift(),0===e&&2===(null==(r=this.currentOp)?void 0:r.type)&&this.ops.shift().reject(new kF("start failed")),null==(i=this.currentOp)||i.action(),t},n={type:e,action:()=>t(...n.args).then(i,o),args:r,resolve:MF,reject:LF};try{switch(this.state){case 1:if(0===e)throw new kF("already started");break;case 4:if(2===e)throw new kF("not started");break;default:return this.cacheOp(n)}}catch(kk){return Promise.reject(kk)}return this.ops.push(n),n.promise=t(...n.args).then(i,o)}cacheOp(e){if(1===this.ops.length)switch(this.state){case 0:case 2:if(0===e.type)throw new kF("already start");break;case 3:switch(e.type){case 2:throw new kF("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new kF("unknown state")}else switch(e.type){case 3:if(3===this.lastOpType)return this.lastOp.promise;{let e=new kF("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 kF("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new kF("start not allowed after update");case 0:throw new kF("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new kF("keep start")),new kF("already start")}}e.promise=new Promise(((t,r)=>{e._resolve?e._resolve.then(t):e.resolve=t,e._reject?e._reject.catch(r):e.reject=r}));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}};Ab(PF,"instances",new WeakMap);var xF=PF,UF=new WeakMap,VF=(e,t)=>{if(t instanceof kF){let{stack:r}=t;t=new TF({code:_F.OPERATION_ABORT,message:"".concat(e," abort: ").concat(t.message),fnName:e}),r&&(t.stack+=r.substr(r.indexOf("\n")))}throw t};function FF(e,t){return yP(((r,i)=>function(){for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];let s=xF.get(this,"string"==typeof e?e:e.call(this,...n));return s?(t&&(s.startSame=t.bind(this)),s.action(0,r.bind(this),n).catch(VF.bind(null,i))):r.apply(this,n)}))}function BF(e,t){let{merge:r,debounce:i}=t||{};return yP(((t,o)=>function(){for(var n=arguments.length,a=new Array(n),s=0;s<n;s++)a[s]=arguments[s];let c=xF.get(this,"string"==typeof e?e:e.call(this,...a));if(!c)return t.apply(this,a);if(r&&(c.mergeUpdate=r.bind(this)),i&&i.isNeedToDebounce.apply(this,a)){let{delay:e,getKey:r}=i;return new Promise(((i,n)=>{var s,l;let u=null==(s=UF.get(this))?void 0:s.get(r(...a));if(u){let{timeoutId:e,resolve:t}=u;clearTimeout(e),t()}let d=setTimeout((()=>{if(3===c.state||4===c.state)return i();c.action(2,t.bind(this),a).catch(VF.bind(null,o)).then(i,n)}),e);UF.has(this)?null==(l=UF.get(this))||l.set(r(...a),{timeoutId:d,resolve:i}):UF.set(this,new Map([[r(...a),{timeoutId:d,resolve:i}]]))}))}return c.action(2,t.bind(this),a).catch(VF.bind(null,o))}))}function HF(e){return yP(((t,r)=>function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];let a="function"==typeof e?e.call(this,...o):e;if(a instanceof RegExp)return Promise.all(xF.gets(this,a).map((e=>e.action(3,(()=>Promise.resolve()),o)))).then((()=>t.call(this,...o)));let s=xF.get(this,a);return s?s.action(3,t.bind(this),o).catch(VF.bind(null,r)):t.apply(this,o)}))}var jF={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"},GF=new Set([jF.ERROR,jF.AUTOPLAY_FAILED,jF.KICKED_OUT,jF.REMOTE_USER_ENTER,jF.REMOTE_USER_EXIT,jF.REMOTE_AUDIO_AVAILABLE,jF.REMOTE_AUDIO_UNAVAILABLE,jF.REMOTE_VIDEO_AVAILABLE,jF.REMOTE_VIDEO_UNAVAILABLE,jF.CONNECTION_STATE_CHANGED,jF.PUBLISH_STATE_CHANGED,jF.SCREEN_SHARE_STOPPED,jF.DEVICE_CHANGED,jF.FIRST_VIDEO_FRAME]);function WF(e){return"sub"===e?"auxiliary":"auxiliary"===e?"sub":"main"}function KF(e){return e===fF.QOS_PREFERENCE_CLEAR?"detail":e===fF.QOS_PREFERENCE_SMOOTH?"motion":""}var zF={};yb(zF,{bytes2ms:()=>wD,convertObjectNumberToInt:()=>_C,copyProperties:()=>bD,deepClone:()=>aC,deepMerge:()=>nC,delay:()=>gC,fibonacci:()=>LD,formatedTime:()=>lC,getConstructorName:()=>JD,getContainerFromElement:()=>cC,getEnv:()=>ED,getInternalVersion:()=>ZD,getLoggerUrl:()=>yD,getMuteStateFromFlag:()=>rC,getNetworkType:()=>ID,getNumNetworkType:()=>RD,getReconnectionTimeout:()=>PD,getStringByteLength:()=>hC,getTurnServer:()=>iC,getUint32Version:()=>fC,getValueType:()=>xD,getViewListFromView:()=>sC,glog:()=>kD,ipv4ToUint32:()=>oC,isArray:()=>GD,isAudioWorkletSupported:()=>YD,isBoolean:()=>HD,isConstructor:()=>qD,isEmpty:()=>tC,isFunction:()=>UD,isLangChinese:()=>OD,isMediaStreamTrack:()=>WD,isNumber:()=>BD,isObject:()=>jD,isOverseaSdkAppId:()=>vD,isPlainObject:()=>MD,isPortrait:()=>pC,isPromise:()=>zD,isRemoteTrack:()=>KD,isString:()=>FD,isUndefined:()=>VD,loadImage:()=>mC,ms2bytes:()=>CD,ms2samples:()=>ND,performanceNow:()=>$D,promiseAny:()=>XD,samples2ms:()=>DD,setNetworkType:()=>SD,stringify:()=>uC,stringifyIncludeValue:()=>dC,throttlePromise:()=>EC});var qF={};yb(qF,{ScheduleRequestType:()=>eB,getAbilityConfig:()=>rB,getScheduleDomain:()=>iB,isNeedToSchedule:()=>YF,scheduleProxy:()=>QF,sendScheduleRequest:()=>$F,setIsNeedToSchedule:()=>XF,setScheduleProxy:()=>ZF});var JF=null,YF=!0;function XF(e){HD(e)&&e!==YF&&(YF=e,Tk.info("setIsNeedToSchedule ".concat(e)))}function $F(e){return Rb(this,arguments,(function(e){let{userId:t,sdkAppId:r,useStringRoomId:i,roomId:o,userSig:n,version:a,frameWorkType:s,role:c,latencyLevel:l}=e;return function*(){if(!YF&&JF)return{isCached:!0,result:JF};let e={delta:0,count:[1,1],msg:[],detail:[]};try{let u=new FormData;u.append("userId",String(t)),u.append("sdkAppId",String(r)),u.append("isStrGroupId",String(i)),u.append("groupId",String(o)),u.append("sdkVersion",a),u.append("userSig",String(n)),c&&u.append("role",String(c)),l&&u.append("latencyLevel",String(l)),s&&u.append("frameWorkType",String(s));let d=$D(),h=yield function(e,t,r){return new Promise(((i,o)=>{let n=null;XD([nB((e=>t.count[0]=e+1),(e=>{let{error:i,retry:o,retriedCount:a,retryFuncArgs:s}=e;t.msg[0]=i.message,n||(a>=1&&(s[0]=tB(r,"config",_w.MAIN,!0)),o())}))(tB(r,"config",_w.MAIN),e,{get timeout(){return 1e3*LD(2+t.count[0])}}),nB((e=>t.count[1]=e+1),(e=>{let{error:i,retry:o,retriedCount:a,retryFuncArgs:s}=e;t.msg[1]=i.message,n||(a>=2&&(s[0]=tB(r,"config",_w.BACKUP,!0)),o())}))(tB(r,"config",_w.BACKUP),e,{get timeout(){return 1e3*LD(2+t.count[1])}})]).then((e=>{n=e,i(n)})).catch(o)}))}(u,e,r);h.config&&(h.config.loggerDomain&&Yb(h.config.loggerDomain),HD(h.config.scheduleCache)&&XF(!h.config.scheduleCache)),e.delta=$D()-d;let p=function(e,t,r){let i={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),n=tB(e,"config",_w.MAIN),a=tB(e,"config",_w.BACKUP);for(let e of o)if(e.startTime>=r&&(e.name===n||e.name===a)&&e.transferSize>0){let r=e.name===n?_w.MAIN:_w.BACKUP,o=Math.round(e.duration),a=Math.round(e.domainLookupStart-e.startTime),s=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),u=Math.round(e.requestStart-e.secureConnectionStart),d=Math.round(e.secureConnectionStart-e.connectStart),h=Math.round(e.responseStart-e.requestStart),p=Math.round(e.responseEnd-e.responseStart),m=[l,u,d,h,p];tL.uploadEvent({log:"stat-schedule-net:".concat(o,"(").concat(a,"(").concat(s,"->").concat(c,")->").concat(m.join("->"),") ").concat(r),userId:t}),i=Eb(gb({},i),{totalCost:o,local:a,dns:l,tcp:d,tls:u,request:h,response:p});break}}catch(n){Tk.error("getScheduleDetailCost error",n)}return i}(Number(r),t,d);return JF=h,{isCached:!1,result:h,detailCost:p}}catch(bk){let t=GD(bk)?bk[0]:bk,r=BD(t.code)?t.code:0,i="schedule failed".concat(t.message?": ".concat(t.message):""),o=new Lb({code:Ob.SCHEDULE_FAILED,extraCode:r,message:CO({key:RO.JOIN_ROOM_FAILED,data:{error:i,code:r}})});throw Tk.error(i,r),o}}()}))}"undefined"!=typeof document&&document.head.insertAdjacentHTML("beforeend",Object.values(nD).map((e=>'<link rel="dns-prefetch" href="https://'.concat(e,'">'))).join("\r\n")),gk.on("28",(()=>XF(!0))),gk.on("63",(()=>XF(!0))),gk.on("84",(()=>XF(!0))),gk.on("201",(e=>{"RECONNECTING"===e.state&&XF(!0)})),gk.on("202",(e=>{"RECONNECTING"===e.state&&XF(!0)}));var QF={main:"",backup:""};function ZF(e){GD(e)?(QF.main=e[0],QF.backup=e[1]):QF.main=e}var eB=(e=>(e.CONFIG="config",e.TRTC_AUTO_CONF="trtcAutoConf",e.AUDIO_AI_AUTH="audioAiAuth",e))(eB||{});function tB(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_w.MAIN,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"https://".concat(QF[r]||iB(e,r,i),"/api/v1/").concat(t)}function rB(e,t,r){let i=tB(e,t),o=tB(e,t,_w.BACKUP),n=new URLSearchParams(r).toString();return XD([fetch("".concat(i,"?").concat(n)).then((e=>e.json())),fetch("".concat(o,"?").concat(n)).then((e=>e.json()))])}function iB(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_w.MAIN,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t=vD(e)?i?r===_w.MAIN?nD.MAIN_OVERSEA_BACKUP:nD.BACKUP_OVERSEA:r===_w.MAIN?nD.MAIN_OVERSEA:nD.BACKUP_OVERSEA:r===_w.MAIN?nD.MAIN:nD.BACKUP,t}function oB(e,t,r){return new Promise(((i,o)=>{vC({url:e,body:t,timeout:r.timeout,priority:"high"}).then((e=>{0===e.data.code?i(e.data.data):o({code:e.data.code,message:e.data.msg})})).catch(o)}))}var nB=(e,t)=>RC({retryFunction:oB,settings:{retries:3,timeout:0},onError:t,onRetrying:e});var aB=class{constructor(){Ab(this,"_log"),this._log=Tk.createLogger({id:"fd"})}download(e,t){return Rb(this,null,(function*(){let{type:r="blob"}=t||{};e=e.replace(/(^|[^:])\/{2,}/g,"$1/");try{let t,i=$D();if(t=UD(fetch)?yield this.downloadWithFetch(e,r):yield this.downloadWithXHR(e,r),!t||!t.data)throw new Error("data is empty");let o=$D()-i;return this._log.info("downloaded: ".concat(e,", return type: ").concat(r,", cost: ").concat(o,"ms")),FO.addSuccessEvent({key:522700,cost:$D()-i}),t.data}catch(Nk){throw this._log.error("failed to download: ".concat(e,", error: ").concat(Nk)),FO.addFailedEvent({key:522700,error:Nk}),Nk}}))}downloadWithFetch(e,t){return Rb(this,null,(function*(){this._log.info("download with fetch: ".concat(e,", return type: ").concat(t));try{let r,i=yield fetch(e);if(!i.ok)throw new Error("network response was not ok");return r="arraybuffer"===t?yield i.arrayBuffer():yield i.blob(),{data:r}}catch(Ww){throw Ww}}))}downloadWithXHR(e,t){return this._log.info("download with xhr: ".concat(e,", return type: ").concat(t)),new Promise(((r,i)=>{let o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType=t,o.onload=()=>{200===o.status||0===o.status&&o.response?r({data:o.response}):i(new Error("XHR failed"))},o.onerror=i,o.send(null)}))}loadWasm(e,t){return Rb(this,null,(function*(){this._log.info("loadWasm ".concat(e,", importObject: ").concat(JSON.stringify(t)));let r=$D(),i=null,o=null;if(UD(WebAssembly.instantiateStreaming)&&!(e=>e.startsWith("data:application/octet-stream;base64,"))(e)&&!(e=>e.startsWith("file://"))(e)&&UD(fetch))try{let r=fetch(e);i=(yield WebAssembly.instantiateStreaming(r,t)).instance}catch(Wb){o=Wb}if(!i)try{let r=yield this.download(e,{type:"arraybuffer"});i=(yield WebAssembly.instantiate(r,t)).instance}catch(Wb){o=Wb}if(i){let t=$D()-r;return this._log.info("loadedWasm ".concat(e,", cost: ").concat(t,"ms")),FO.addSuccessEvent({key:522701,cost:t}),i}throw this._log.error("failed to loadWasm ".concat(e,", error: ").concat(o)),FO.addFailedEvent({key:522701,error:o}),o}))}};Ib([iL({settings:{timeout:0,retries:3},onRetrying(e){this._log.warn("download retrying: ".concat(e))}})],aB.prototype,"download",1);var sB=new aB;function cB(e){let{TRTC:t,room:r,errorModule:i,assetsPath:o}=e;return{TRTC:t,room:r,assetsPath:o,fileDownloader:sB,innerEmitter:gk,constants:Fb,environment:wC,utils:zF,eventLogger:tL,log:this.room.getLogger(),loggerManager:Tk,errorModule:i,kvStatManager:FO,rtcDectection:Sk,trtc:this,rx:GP,enums:Rk,schedule:qF,clearStarted:(e,t)=>{let r=e.getAlias(),i=xF.instances.get(this);if(i)if(t){let e=i.get(r+t);if(!e)return;e.started=!1}else i.forEach(((e,t)=>{t.startsWith(r)&&(e.started=!1)}))},startGetPCM:HP,createAudioNode:jL}}var lB=new WeakMap;function uB(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return yP(((e,r)=>function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];try{hB.call(this,t,o,r,this._name)}catch(Nk){return Promise.reject(Nk)}return e.apply(this,o)}))}function dB(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return yP(((e,r)=>function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];try{hB.call(this,t,o,r,this._name)}catch(Nk){throw Nk}return e.apply(this,o)}))}function hB(e,t,r,i){if(GD(e))for(let o=0;o<e.length;o++)pB.call(this,{rule:e[o],value:t[o],key:e[o].name,fnName:r,className:i});else pB.call(this,{rule:e,value:t[0],key:e.name,fnName:r,className:i})}function pB(e){let{rule:t,value:r,key:i,fnName:o,className:n}=e;function a(e){return{code:_F.INVALID_PARAMETER,extraCode:e,fnName:o,messageParams:{key:i,rule:t,value:r}}}if(VD(r)){if(t.required)throw new TF(a(5001));if(VD(t.defaultValue))return void(UD(t.validate)&&t.validate.call(this,r,i,o,n,this));r=t.defaultValue}if(Array.isArray(t.type)){let e=!1;for(let i=0;i<t.type.length;i++)null===t.type[i]&&null===r&&(e=!0),UD(t.type[i])&&r instanceof t.type[i]&&(e=!0),FD(t.type[i])&&xD(r)===t.type[i].toLowerCase()&&(e=!0);if(!e)throw new TF({code:_F.INVALID_PARAMETER,extraCode:5002,fnName:o,messageParams:{key:i,rule:{type:t.type.map((e=>qD(e)?JD(e):FD(e)?e:xD(e)))},value:r}})}else if(!VD(t.type)&&xD(r)!==t.type)throw new TF(a(5002));if(!1===t.allowEmpty){let e=BD(r)&&(0===r||Number.isNaN(r)),t=FD(r)&&""===r.trim();if(e||t)throw new TF(a(5003))}if(t.notLessThanZero&&BD(r)&&r<0)throw new TF(a(5006));if(!VD(t.min)&&BD(r)&&r<t.min)throw new TF(a(5007));if(!VD(t.max)&&BD(r)&&r>t.max)throw new TF(a(5008));if(FD(t.instanceOf)){if(!r||r._name!==t.instanceOf)throw new TF(a(5004))}else if(UD(t.instanceOf)&&!(r instanceof t.instanceOf))throw new TF(a(5004));if(Array.isArray(t.values)&&!t.values.includes(r))throw new TF(a(5005));let{properties:s}=t;MD(s)&&jD(r)&&Object.keys(s).forEach((e=>{pB.call(this,{rule:s[e],value:r&&r[e],key:"".concat(e),fnName:o,className:n})}));let{arrayItem:c}=t;MD(c)&&GD(r)&&r.forEach(((e,t)=>{pB.call(this,{rule:c,value:e,key:"".concat(i,"[").concat(t,"]"),fnName:o,className:n})})),UD(t.validate)&&t.validate.call(this,r,i,o,n,this)}function mB(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{getRemoteId:t=()=>"",replaceArg:r,getKVReportKey:i,ignoreLog:o}=e;return yP(((e,n)=>function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var l;function u(e,t,i){if(i&&i.includes(e))return"hided";if(r){let e=r(...s);if(s[e.argIndex]===t)return e.value}if(t===s||e in s)return t;try{return t instanceof HTMLElement?"id: ".concat(t.id," type:").concat(xD(t)):(JSON.stringify(t),t)}catch(Pk){return"type:".concat(xD(t))}}let d=this._log||Tk;if(null!=o&&o(...s))return e.apply(this,s);s.length>0?d.info("".concat(n,"() ").concat(JSON.stringify(s,((e,t)=>u(e,t,["userSig","privateMapKey"]))))):d.info("".concat(n,"()"));let h=i?i(...s):MO[n];try{let r=e.apply(this,s),i=$D();return zD(r)?r.then((e=>(d.info("".concat(n,"() success ").concat(t.call(this,...s))),FO.addSuccessEvent({key:h,cost:$D()-i}),e))).catch((e=>{var r;let i=(e=TF.convertFrom.call(this,e,n,1===s.length?s[0]:s)).extraCode||e.code,o=null!=(r=e.message)&&r.includes(i)?"":" code:".concat(i);throw d.error("".concat(n,"() failed ").concat(t.call(this,...s)," ").concat(e).concat(o," params: ").concat(JSON.stringify(s,u))),FO.addFailedEvent({key:h,error:e}),e})):(FO.addSuccessEvent({key:h}),r)}catch(p){let e=(p=TF.convertFrom.call(this,p,n)).extraCode||p.code,t=null!=(l=p.message)&&l.includes(e)?"":" code:".concat(e);throw d.error("".concat(n,"() failed ").concat(p).concat(t," params: ").concat(JSON.stringify(s,u))),FO.addFailedEvent({key:h,error:p}),p}}))}var fB=e=>yP(((t,r)=>function(i,o){return Rb(this,null,(function*(){let n=this._plugins.get(i);if(!n)throw this._log.error("plugin ".concat(String(i)," is not found")),new TF({code:_F.OPERATION_ABORT,message:"plugin ".concat(String(i)," is not found"),fnName:r});if(UD(n.constructor.isSupported)&&!n.constructor.isSupported())throw this._log.error("plugin ".concat(String(i)," is not supported")),new TF({code:_F.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(i)," is not supported"),extraCode:5210,fnName:r});return hB.call(this,n.getValidateRule(e),[o],r,"TRTC"),t.call(this,n,o)}))})),_B=0,gB=class{constructor(e,t){Ab(this,"player"),Ab(this,"publisher"),Ab(this,"mixInput"),this.mixInput=new FL(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&&(VD(e.volume)||(this.volume=e.volume),VD(e.loop)||(this.loop=e.loop),VD(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:r}=this;r.ontimeupdate=()=>{t(r.currentTime,r.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 EB(e,t){if(t&&"function"!=typeof t)throw new TF({code:_F.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(e," should be a function.")})}var vB=class e{constructor(e){this.core=e,Ab(this,"log"),Ab(this,"mixedMusicMap",new Map),Ab(this,"cacheMusicMap",new Map),_B+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(_B)}),this.log.info("[audioMixer] created id=".concat(this.getAlias()).concat(_B)),this.core=e}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:r,url:i}=e;if(this.mixedMusicMap.has(r))return;let o=this.cacheMusicMap.get(r);o?e.url?o.reset():(o.mixInput.replaceSource(e.track),o.mixInput.connect()):(o=new gB(e,t.audioManager),this.cacheMusicMap.set(r,o)),o.updateListener(e),o.updateSettings(e),yield o.play(),this.mixedMusicMap.set(r,o),this.log.info("start mix audio track ".concat(r," success.")),FO.addEnum({key:502700,value:3}),this.kvUpload(e)}))}update(e){return Rb(this,null,(function*(){let{id:t,operation:r,seekFrom:i,playbackRate:o}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let n=this.mixedMusicMap.get(t);n?(n.updateSettings(e),n.updateListener(e),VD(r)||n.setOperation(r),VD(i)||n.seek(i),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:r}=e;return function*(){var e;t.mixedMusicMap.has(r)&&(t.log.info("remove music source, music id: ".concat(r)),null==(e=t.mixedMusicMap.get(r))||e.stop(),t.mixedMusicMap.delete(r)),"*"===r&&t.destroyAllMusic()}()}))}kvUpload(e){let{track:t,loop:r,volume:i,playbackRate:o,operation:n,seekFrom:a,onTimeUpdate:s,onDurationChange:c,onEnded:l}=e;t&&FO.addCount({key:502711}),r&&FO.addCount({key:502703}),i&&FO.addCount({key:502704}),o&&FO.addCount({key:502705}),n&&FO.addCount({key:502706}),a&&FO.addCount({key:502707}),"function"!=typeof s&&FO.addCount({key:502709}),"function"!=typeof l&&FO.addCount({key:502710}),"function"!=typeof c&&FO.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach(((e,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()}};Ab(vB,"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,r){if(e.url&&"*"!==e.url){let t=e.url.split("?")[0],i=["mp3","ogg","wav","flac"],o=t.split(".").pop(),n=i.indexOf(o)>=0,a=t.startsWith("blob"),s=t.startsWith("data");if(!(n||a||s))throw new TF({code:_F.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!e.url&&!e.track)throw new TF({code:_F.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});EB("onTimeUpdate",e.onTimeUpdate),EB("onEnded",e.onEnded),EB("onDurationChange",e.onDurationChange)}}),Ab(vB,"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,r){EB("onTimeUpdate",e.onTimeUpdate),EB("onEnded",e.onEnded),EB("onDurationChange",e.onDurationChange)}}),Ab(vB,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),Ab(vB,"Name","AudioMixer");var yB,TB=vB,IB=0,AB=class e{constructor(e){this.core=e,Ab(this,"log"),Ab(this,"audioContext",PL()),Ab(this,"workletNode"),IB+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(IB)}),this.log.info("[audioDenoiser] created id=".concat(this.getAlias()).concat(IB)),e.assetsPath&&this.preload("".concat(e.assetsPath,"/denoiser-wasm.js")).catch((e=>{}))}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,r,i,o){if(!e.room.audioManager.hasAudioTrack)throw new TF({code:_F.INVALID_OPERATION,extraCode:5106,fnName:i})}}}preload(e){return yB||(yB=this.doPreload(e)),yB}doPreload(e){return Rb(this,null,(function*(){let t=yield this.core.fileDownloader.download(e,{type:"blob"}),r=URL.createObjectURL(t);try{yield DL(this.audioContext,r)}catch(Nk){throw this.log.error("load worklet failed",Nk),Nk}finally{URL.revokeObjectURL(r)}}))}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:r}=this.core;if(yield this.preload("".concat(e.assetsPath,"/denoiser-wasm.js")),!this.workletNode){let t=String(Date.now()).slice(0,-3),{auth:i,sign:o,status:n,message:a}=yield function(e,t){return Rb(this,arguments,(function(e,t){let{sdkAppId:r,userId:i,userSig:o,timestamp:a}=t;return function*(){try{let{data:{errCode:t,errMsg:n,sign:s,status:c}}=yield e.getAbilityConfig(r,e.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:r,userId:i,userSig:o,timestamp:a});if("1"===c)return{auth:!0,sign:s,status:c,message:n};let l="Init RTCAIDenoiser failed.",u="";switch(t){case 1:u="Please check your params.";break;case 2:u="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:u="Server is invalid. Please contact our engineer. ";break;case 4:u="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:u="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:u="Your version is not supported."}return{auth:!1,status:c,message:n?"".concat(l," Reason: ").concat(n,". ").concat(u):"".concat(l,", ").concat(u)}}catch(n){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(n)}}}()}))}(r,Eb(gb({},e),{timestamp:t}));if(!i)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(i,". Message: ").concat(a)),new TF({code:_F.INVALID_PARAMETER,message:a});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:o,status:n}}),this.workletNode.port.onmessage=e=>{var t;let{data:r}=e;if("cost"===r.type){let e=(null==r?void 0:r.max)>20?"warn":(null==r?void 0:r.max)>10?"info":"debug";this.log[e]("avg cost: ".concat(r.value," max: ").concat(null==r?void 0:r.max,"(").concat(Ub(new Date(null==r?void 0:r.maxCostTimestamp)),") hist: ").concat(null==(t=null==r?void 0:r.hist)?void 0:t.join(" ")))}else"log"===r.type&&this.log[r.logLevel]("".concat(r.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)}};Ab(AB,"updateValidateRule",{type:"object"}),Ab(AB,"stopValidateRule",{type:"object"}),Ab(AB,"Name","AIDenoiser");var SB=AB;var RB=Tb(bb(),1),bB=class extends RB.EventEmitter{constructor(){super(),Ab(this,"observer"),Ab(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&&!FC&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(Gb){tL.uploadEvent({log:"stat-pressure-detector-start-failed",error:Gb})}}))}onPressureChange(e){let t=this.stateNum,r=e[e.length-1];this.state=r.state,(this.stateNum>3||t>3)&&Tk.info("".concat(r.source,": ").concat(r.state)),this.emit("state-changed",{type:r.source,state:this.state})}destroy(){var e;try{null==(e=this.observer)||e.disconnect(),this.observer=null}catch(Ww){tL.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:Ww})}}},wB=new bB;function DB(e){let[t,r]=e,i=r.byteLength,o=parseInt(String(i/255),10),n=i%255,a=[];a.push(0,0,0,1,6,t);for(let c=0;c<o;c++)a.push(255);a.push(n);let s=new DataView(r);return a.push(...new Uint8Array(s.buffer)),a.push(128),new OP(new DataView(new Uint8Array(a).buffer),!0)}function CB(e){let{frame:t,seiMessageList:r}=e;if(!r||0===r.length||0===t.data.byteLength)return t;let i=9-function(e){let t=0,r=0,i=new DataView(e);for(let o=0;o<e.byteLength;o++)switch(i.getUint8(o)){case 0:t++;break;case 1:(2===t||3===t)&&r++,t=0;break;default:t=0}return r}(t.data);if(i<=0)return t;let o=r.splice(0,i).reverse().map(DB),n=o.reduce(((e,t)=>e+t.dataView.byteLength),0),a=new ArrayBuffer(n+t.data.byteLength),s=new DataView(a),c=new DataView(t.data),l=0;for(let u=0;u<o.length;u++)for(let e=0;e<o[u].dataView.byteLength;e++)s.setInt8(l++,o[u].dataView.getInt8(e));for(let u=0;u<t.data.byteLength;u++)s.setInt8(l++,c.getInt8(u));return t.data=a,t}function NB(e){let{frame:t,onSEI:r}=e;try{let e=new DataView(t.data);if(function(e){return"empty"===e.type||0===e.data.byteLength}(t)||!function(e){return 1===e.getInt32(0)&&6===e.getInt8(4)}(e))return t;let i=[],o=0,n=-1,a=-1;for(let r=0;r<t.data.byteLength;r++){let s=e.getUint8(r);if(0===s)o++;else if(1===s){if(2===o||3===o){let s=r-o;if(-1===n?n=s:-1===a&&(a=s,i.push(new OP(new DataView(e.buffer.slice(n,a)))),n=s,a=-1),6!==e.getUint8(r+1)){t.data=e.buffer.slice(s);break}}o=0}else o=0}null==r||r(i.reverse())}catch(Gb){}return t}var kB=0,OB=class e{constructor(e){this.core=e,Ab(this,"log"),Ab(this,"_seiMessageList",[]),Ab(this,"_smallSeiMessageList",[]),Ab(this,"_subStreamSeiMessageList",[]),kB++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(kB)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(kB)),this.core=e,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:t,mediaType:r}=e;try{return CB({frame:t,seiMessageList:8===r?this._smallSeiMessageList:2===r?this._subStreamSeiMessageList:this._seiMessageList})}catch(Ww){this.log.warn(Ww)}return t}decode(e){let{frame:t,track:r}=e;return NB({frame:t,onSEI:e=>{e.forEach((e=>{this.core.trtc.emit(jF.SEI_MESSAGE,{seiPayloadType:e.seiPayloadType,data:e.seiPayload.buffer,userId:r.userId,streamType:2===r.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:TM?this.encode:CB,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:TM?this.decode:NB,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:t,options:r}=e;var i;let o=[r.seiPayloadType,t],n=!!r.small;r.toSubStream?this._subStreamSeiMessageList.push(o):(this._seiMessageList.push(o),n&&this._smallSeiMessageList.push(o)),null==(i=this.core.room.scriptTransformWorker)||i.postMessage({type:"sei",data:o,isMain:!r.toSubStream,small:n})}getName(){return e.Name}getAlias(){return"sei"}getGroup(){return"sei"}};Ab(OB,"autoStart",!0),Ab(OB,"Name","SEI");var MB=OB;function LB(e){let{frame:t,onDump:r}=e;return null==r||r(),t}function PB(e){let{frame:t,onDump:r}=e;return null==r||r(),t}var xB={"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=>{xB["".concat(e,"()")]={tips:"Call trtc.".concat(e),color:"blue",class:"blue",textColor:"#fff"}}));var UB,VB=0,FB=class e{constructor(e){this.core=e,Ab(this,"_core"),Ab(this,"log"),Ab(this,"dumpLocalVideoMap",{}),Ab(this,"dumpRemoteVideoMap",{}),Ab(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++VB)}),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(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return Rb(this,null,(function*(){var e;try{if(UB)yield UB;else{let t=Date.now(),r=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(Hb,"/assets/debug-dialog.js");UB=this.loadScript(r),yield UB,this.log.info("download debug dialog script cost: ".concat(Date.now()-t,"ms"))}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(Gb){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(Gb))}}))}closeDebugDiaLog(){var e;null==(e=this.dialog)||e.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):LB,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):PB,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo(e){let{frame:t,mediaType:r}=e;return LB({frame:t,onDump:()=>{if(!r)return;let e=2===r?"sub":"main",i=this.dumpLocalVideoMap[e];i&&(i.data.push(t.data),i.duration>0&&Date.now()-i.startTimestamp>1e3*i.duration&&i.onDumpEnd())}})}decodeVideo(e){let{frame:t,track:r}=e;return PB({frame:t,onDump:()=>{if(!r)return;let e=this.dumpRemoteVideoMap["".concat(r.userId,"-").concat(r.streamType)];e&&(e.data.push(t.data),e.duration>0&&Date.now()-e.startTimestamp>1e3*e.duration&&e.onDumpEnd())}})}loadScript(e){return new Promise(((t,r)=>{this.log.info("loading debug dialog from ".concat(e));let i=document.createElement("script");i.type="text/javascript",i.onload=t,i.onerror=r,i.crossOrigin="anonymous",i.src=e,document.head.append?document.head.append(i):document.getElementsByTagName("head")[0].appendChild(i)}))}};Ab(FB,"Name","Debug"),Ab(FB,"autoStart",!0),Ib([iL({settings:{timeout:3e3,retries:3},onError(e,t,r){var i;null!=(i=null==e?void 0:e.message)&&i.includes("timeout")?t():r(e)}})],FB.prototype,"loadScript",1);var BB=FB,HB=e=>{switch(e){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},jB=class{constructor(e,t,r){Ab(this,"trackDoneOB"),Ab(this,"startOB"),Ab(this,"stopOB"),Ab(this,"inputFrameCount",0),Ab(this,"decodedFrameCount",0),Ab(this,"type","auto"),Ab(this,"config"),Ab(this,"decoder"),Ab(this,"_decodeSink");let{kvStatManager:i,trtc:o}=e;this.config=r.config,this.trackDoneOB=kx(t,GM.INIT),this.stopOB=Tx(this.trackDoneOB),this.startOB=Tx(),"auto"===r.type?this.type="webCodecs":this.type=r.type;let n=Tx();ex(this.startOB,_x(0),NU((e=>{let r=this.pipe(t);return n.next("STARTING"),t.log.info("decoder type: ".concat(this.type)),ex(r,Zx(this.stopOB),QU((()=>{}),(r=>{t.log.error(r),i.addFailedEvent({key:HB(this.type),error:r}),e>4?this.startOB.error(r):this.startOB.next(e+1)}))),ex(r,Qx(1),YU(Gx))})),Zx(this.stopOB),QU((()=>{t.player.setOutput(),n.next("STARTED")}),(e=>{n.next("FAILED")}),(()=>{i.addSuccessEvent({key:HB(this.type)}),i.addSuccessEvent({key:504702})})))}mock(e){this._decodeSink?this._decodeSink.error(e):this.startOB.next(0)}close(e){this.stopOB.next(e)}pipe(e){return cx()((t=>Rb(this,null,(function*(){this._decodeSink=t,t.defer((()=>{var e;null==(e=this.decoder)||e.close()}));let{type:r}=this;try{if("webCodecs"===r)this.decoder=new AudioDecoder({error:r=>{e.log.error(r),t.error(4)},output:r=>{this.decodedFrameCount++,t.next(r),e.player.write(r)}});this.decoder.configure(this.config)}catch(Nk){e.log.error(Nk),t.error("webCodecs"===r?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"}))}},GB={type:"object"},WB=class e{constructor(e){this.core=e,Ab(this,"log"),Ab(this,"contextMap",new Map),Ab(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 GB}start(e){let{track:t}=e;this.decodeProcessorMap.set(t,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:e=>{let{frame:t,track:r}=e;return this.decodeProcessorMap.has(r)?this.decodeProcessorMap.get(r)({frame:t,track:r}):t},type:3})}decode(e){return t=>{let{frame:r,track:i}=t;if(i!==e.track)return r;if(this.contextMap.has(i))return this.contextMap.get(i).decodeFrame(r);let o=new jB(this.core,i,e);return ex(o.trackDoneOB,Qx(1),QU((()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:i})}))),this.contextMap.set(i,o),o.decodeFrame(r)}}stop(e){let{track:t}=e,r=this.contextMap.get(t);r&&(r.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 jB(this.core,e.track,e))}}};Ab(WB,"Name","TRTCAudioDecoder");var KB=WB,zB=0,qB=new Set,JB=null;jb("5.10.1-wasm.2"),Ak.checkStorage(),kM();var YB={RtcError:TF,ErrorCode:_F,ErrorCodeDictionary:gF},XB=class e extends dF.EventEmitter{constructor(t,r){super(),Ab(this,"_room"),Ab(this,"_eventListened",new Set),Ab(this,"_localVideoTrack",null),Ab(this,"_localAudioTrack",null),Ab(this,"_localScreenTrack",null),Ab(this,"_localScreenAudioTrack",null),Ab(this,"_localVideoConfig",null),Ab(this,"_localScreenConfig",null),Ab(this,"_localAudioConfig",null),Ab(this,"_remoteVideoConfigMap",new Map),Ab(this,"_remoteAudioConfigMap",new Map),Ab(this,"_remoteAudioVolumeMap",new Map),Ab(this,"_remoteAudioMuteMap",new Map),Ab(this,"_mediaTrackMap",new WeakMap),Ab(this,"_log",Tk.createLogger({id:"t".concat(++zB)})),Ab(this,"_plugins",new Map),Ab(this,"_networkQuality",null),Ab(this,"_speakerId"),Ab(this,"_getPCMAbortCtrl"),this._room=new t(gb({logger:this._log,frameWorkType:e.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.info("create() ".concat(JSON.stringify(r,((e,t)=>"plugins"===e?t.map((e=>e.Name)):t)))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(e){return this._room.audioManager.dump(e)}}}),r.plugins&&r.plugins.forEach((e=>{this._use(e,r.assetsPath)})),this._use(TB,r.assetsPath),this._use(SB,r.assetsPath),this._use(KB,r.assetsPath||tw),this._use(BB),r.enableSEI&&AM&&this._use(MB),this._room.on("audio-volume",(e=>{!e.find((e=>""===e.userId))&&this._localAudioTrack&&e.push({userId:"",volume:Math.floor(100*this._localAudioTrack.getAudioLevel())}),1===r.volumeType&&e.forEach((e=>{var t;let r=""===e.userId?this._localAudioTrack:null==(t=this.room.remotePublishedUserMap.get(e.userId))?void 0:t.remoteAudioTrack;r&&(e.volume=r.dbVolume)})),this.emit(jF.AUDIO_VOLUME,{result:e.sort(((e,t)=>t.volume-e.volume))})})),this._room.videoManager.on("error",(e=>{this._log.error(new TF({code:_F.OPERATION_FAILED,extraCode:5504,message:e.message,originError:e}))})),this._listenEvents(),this._initActiveSpeaker(),((e,t)=>{let{emit:r}=e;e.emit=function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];try{return r.apply(e,o)}catch(Nk){let r=CO({key:RO.CATCH_HANDLER_ERROR,data:{name:t,event:o[0]},addDocLink:!1});return Tk.warn("".concat(r,"\n\n").concat(Nk.stack)),!1}}})(this,"trtc")}static create(e){}static _create(t,r){!function(){var e;mF&&(mF=!1,5!==Tk.getLogLevel()&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(ew,"/en/index.html")),console.info("* Changelog: ".concat(ew,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),Tk.info("TRTC Web SDK Version:",Hb),tk||Tk.debug("Build Time:","2025-04-18 14:17:05"),Tk.info("UA:",navigator.userAgent),Tk.info("URL: ".concat(location.href).concat("IFRAME"===(null==(e=self.frameElement)?void 0:e.tagName)?" in iframe":"")),ck().then((e=>{e&&Tk.info(sk)})))}();let i=new e(t,r||{});return qB.add(i),i}get room(){return this._room}_listenEvents(){ZM(this,this._room).add("peer-join",(e=>{let{userId:t}=e;this.emit(jF.REMOTE_USER_ENTER,{userId:t})})).add("peer-leave",(e=>{this.emit(jF.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)})).add("banned",(e=>{this._exitRoom().finally((()=>{this.emit(jF.KICKED_OUT,{reason:e.reason})}))})).add("error",(e=>{this._exitRoom().finally((()=>{this.emit(jF.ERROR,TF.convertFrom(e))}))})).add("signal-connection-state-changed",(e=>{this.emit(jF.CONNECTION_STATE_CHANGED,e)})).add("network-quality",(e=>{this._networkQuality=e;let t=Eb(gb({},e),{uplinkRTT:Math.min(e.uplinkRTT,gD),downlinkRTT:Math.min(e.downlinkRTT,gD)});this.emit(jF.NETWORK_QUALITY,t)})).add("remote-published",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((t=>{ZM(t,t).add("player-state-changed",(r=>{let i=Eb(gb({},r),{userId:e.userId});t.kind===_w.VIDEO&&(i.streamType=WF(t.streamType)),this.emit(t.kind===_w.AUDIO?jF.AUDIO_PLAY_STATE_CHANGED:jF.VIDEO_PLAY_STATE_CHANGED,i)})).add("error",(e=>{e.getCode()===Ob.PLAY_NOT_ALLOWED&&this.emit(jF.AUTOPLAY_FAILED,{userId:t.userId,resume:()=>t.player.resume()})}))}))})).add("remote-unpublished",(e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach((e=>{eL(e)}))})).add("remote-publish-state-changed",(e=>{let{prevMuteState:t,muteState:r}=e,{userId:i}=r,o=t.audioAvailable,n=t.videoAvailable,{audioAvailable:a,videoAvailable:s}=r;a||this._remoteAudioConfigMap.delete(i),s||this._remoteVideoConfigMap.delete("".concat(i,"_main")),r.hasAuxiliary||this._remoteVideoConfigMap.delete("".concat(i,"_sub")),n!==s&&(s?this._onVideoAvailable({userId:i,streamType:"main"}):this._onVideoUnavailable({userId:i,streamType:"main"}),this.emit(s?jF.REMOTE_VIDEO_AVAILABLE:jF.REMOTE_VIDEO_UNAVAILABLE,{userId:i,streamType:"main"})),o!==a&&(a?this._onAudioAvailable({userId:i}):this._onAudioUnavailable({userId:i,muteState:r}),this.emit(a?jF.REMOTE_AUDIO_AVAILABLE:jF.REMOTE_AUDIO_UNAVAILABLE,{userId:i})),t.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:i,streamType:"sub"}):this._onVideoUnavailable({userId:i,streamType:"sub"}),this.emit(r.hasAuxiliary?jF.REMOTE_VIDEO_AVAILABLE:jF.REMOTE_VIDEO_UNAVAILABLE,{userId:i,streamType:"sub"}))})).add("sei-message",(e=>{this.emit(jF.SEI_MESSAGE,Eb(gb({},e),{streamType:WF(e.streamType)}))})).add("firewall-restriction",(()=>{this.emit(jF.ERROR,new TF({code:_F.OPERATION_FAILED,extraCode:5501}))})).add("heartbeat-report",(e=>{var t,r,i,o,n,a,s;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==(r=this._networkQuality)?void 0:r.uplinkRTT)||(null==(i=this._networkQuality)?void 0:i.downlinkRTT)||0,gD),upLoss:(null==(o=this._networkQuality)?void 0:o.uplinkLoss)||0,downLoss:(null==(n=this._networkQuality)?void 0:n.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:((null==(a=e.msg_up_stream_info.msg_audio_status)?void 0:a.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:((null==(s=e.msg_up_stream_info.msg_audio_status)?void 0:s.uint32_audio_level)||0)/fO},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)/fO},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]})))})))};this.emit(jF.STATISTICS,l)})).add("custom-message",(e=>{this.emit(jF.CUSTOM_MESSAGE,e)})).add("layerData",(e=>this.emit(jF.LAYER_DATA,e))).add("first-video-frame",(e=>{this.emit(jF.FIRST_VIDEO_FRAME,Eb(gb({},e),{streamType:WF(e.streamType)}))})),ZM(this,$L).add("audioInputAdded",(e=>{this.emit(jF.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})})).add("audioInputRemoved",(e=>{this.emit(jF.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})})).add("videoInputAdded",(e=>{this.emit(jF.DEVICE_CHANGED,{type:"camera",action:"add",device:e})})).add("videoInputRemoved",(e=>{this.emit(jF.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})})).add("audioOutputAdded",(e=>Rb(this,null,(function*(){if(this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),JB&&JB.deviceId===uD){let e=(yield iP()).find((e=>e.deviceId===uD));e&&JB.groupId!==e.groupId&&(JB=e,this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:e}))}})))).add("audioOutputRemoved",(e=>Rb(this,null,(function*(){this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let t=(yield iP())[0];if(!t||!JB||JB.groupId===t.groupId)return;let r=JB.deviceId===e.deviceId,i=JB.deviceId===uD&&JB.deviceId===t.deviceId;(r||i)&&(JB=t,this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}))}))))}use(e){let t,r;"plugin"in e?(t=e.plugin,r=e.assetsPath):t=e,this._use(t,r||tw)}_use(t,r){if(this._plugins.get(t.Name))return void this._log.warn("duplicate install plugin",t.Name);let i=new t(cB.call(this,{TRTC:e,room:this._room,errorModule:YB,assetsPath:r}));this._plugins.set(t.Name,i),t.autoStart&&this.startPlugin(t.Name)}enterRoom(t){return Rb(this,null,(function*(){var r,i;let{scene:o="rtc",enableAutoPlayDialog:n=!0,autoReceiveAudio:a=!0,autoReceiveVideo:s=!1}=t;t.proxy&&(this._room.setProxyServer(t.proxy),!FD(t.proxy)&&t.proxy.turnServer&&(null==(i=(r=this._room).setTurnServer)||i.call(r,t.proxy.turnServer,t.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=n,this._room.autoReceiveAudio=a,this._room.autoReceiveVideo=s,HD(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,keepAlive:t.keepAlive};t.strRoomId&&!t.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(c,o,e.frameWorkType),this._checkTrackToPublish(),wB.start()}))}exitRoom(){return Rb(this,null,(function*(){return yield this._exitRoom()}))}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(){eL(this),this.removeAllListeners(),this._room.destroy(),qB.delete(this),0===qB.size&&wB.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(),gk.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return Rb(this,arguments,(function(){var t=this;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{publish:!0};return function*(){if(t._localAudioTrack)return void t._log.warn("local audio is already started");let{publish:i=!0,mute:o,option:n}=r,a=new kP(t._room.audioManager),s={},c={muted:!0};n&&(VD(n.microphoneId)?VD(n.audioTrack)||(s.customSource=n.audioTrack):s.deviceId=n.microphoneId,n&&BD(n.captureVolume)&&a.setCaptureVolume(n.captureVolume),VD(n.profile)||(FD(n.profile)?pw[n.profile]&&a.setProfile(pw[n.profile]):a.setProfile(n.profile)),BD(n.earMonitorVolume)&&(c.muted=!(n.earMonitorVolume>0),c.volume=n.earMonitorVolume),VD(n.echoCancellation)||(a.profile.echoCancellation=n.echoCancellation),VD(n.noiseSuppression)||(a.profile.noiseSuppression=n.noiseSuppression),VD(n.autoGainControl)||(a.profile.autoGainControl=n.autoGainControl)),a.on("5",(e=>{t.emit(jF.ERROR,new TF({code:_F.DEVICE_ERROR,extraCode:5309,messageParams:{error:e}}))})),a.on("2",(e=>{t.emit(jF.DEVICE_CHANGED,{type:"microphone",action:"active",device:e})})),a.on("4",(e=>{let r;e.error&&(r=TF.convertFrom(e.error)),t.emit(jF.PUBLISH_STATE_CHANGED,Eb(gb({},e),{error:r}))})),t._listenOutputTrackChanged(a),t._speakerId&&a.setAudioOutput(t._speakerId),yield a.capture(s),VD(o)||a.setMute(o),ZM(a,a).add("player-state-changed",(e=>{t.emit(jF.AUDIO_PLAY_STATE_CHANGED,Eb(gb({},e),{userId:""}))})),t.listeners(jF.AUDIO_FRAME).length>0&&(t._getPCMAbortCtrl=t._room.audioManager.getPCM((r=>{t.emit(e.EVENT.AUDIO_FRAME,{data:r})}))),t._getPCMAbortCtrl&&a.on("input-media-track-changed",(()=>{t._getPCMAbortCtrl&&(t._getPCMAbortCtrl.abort("inputMediaTrackChanged"),t._getPCMAbortCtrl=t._room.audioManager.getPCM((r=>{t.emit(e.EVENT.AUDIO_FRAME,{data:r})})))})),i&&t._room.isJoined&&t._room.publish(a).catch((()=>{})),t._localAudioTrack=a,t._localAudioConfig=Eb(gb({},r),{publish:i}),yield t._updateAudioPlayOption({playOption:c,track:a})}()}))}updateLocalAudio(e){return Rb(this,null,(function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:t,mute:r,option:i}=e,o={};i&&(i.microphoneId?yield this._localAudioTrack.switchDevice(i.microphoneId):VD(i.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(i.audioTrack)),VD(i.captureVolume)||this._localAudioTrack.setCaptureVolume(i.captureVolume),VD(i.earMonitorVolume)||(o.muted=!(i.earMonitorVolume>0),o.volume=i.earMonitorVolume),yield this._localAudioTrack.update3A(i)),this._room.isJoined&&!VD(t)&&(t&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch((()=>{})),this._localAudioConfig.publish&&!t&&this._room.unpublish(this._localAudioTrack).catch((()=>{}))),VD(r)||this._localAudioTrack.setMute(r),yield this._updateAudioPlayOption({playOption:o,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),nC(this._localAudioConfig,e)}))}stopLocalAudio(){return Rb(this,null,(function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch((()=>{}))),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),eL(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))}))}startLocalVideo(){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._localVideoTrack)return void e._log.warn("local video is already started");let{view:r,publish:i=!0,mute:o,option:n}=t,a=new PP(e._room.videoManager),s={},c={};HD(null==n?void 0:n.avoidCropping)&&(a.avoidCropping=n.avoidCropping),n&&(n.cameraId?s.deviceId=n.cameraId:VD(n.useFrontCamera)?VD(n.videoTrack)||(s.customSource=n.videoTrack):s.facingMode=n.useFrontCamera?_w.FACING_MODE_USER:_w.FACING_MODE_ENVIRONMENT,n.qosPreference&&(s.contentHint=KF(n.qosPreference)),VD(n.profile)||(FD(n.profile)?mw[n.profile]&&a.setProfile(mw[n.profile]):a.setProfile(n.profile)),VD(n.fillMode)||(c.objectFit=n.fillMode),VD(n.mirror)||(c.mirror=n.mirror),VD(n.small)||(sM()?FD(n.small)?a.small=mw[n.small]:!0===n.small?a.small=mw["120p"]:a.small=n.small:e._log.warn("small stream is not supported"))),a.once("first-video-frame",(t=>{e.emit(jF.FIRST_VIDEO_FRAME,Eb(gb({},t),{streamType:WF(t.streamType)}))})),a.on("5",(t=>{e.emit(jF.ERROR,new TF({code:_F.DEVICE_ERROR,extraCode:5308,messageParams:{error:t}}))})),a.on("2",(t=>{e.emit(jF.DEVICE_CHANGED,{type:"camera",action:"active",device:t})})),a.on("4",(t=>{let r;t.error&&(r=TF.convertFrom(t.error)),e.emit(jF.PUBLISH_STATE_CHANGED,Eb(gb({},t),{error:r}))})),e._listenOutputTrackChanged(a),yield a.capture(s),VD(o)||(yield a.setMute(o)),ZM(a,a).add("player-state-changed",(t=>{e.emit(jF.VIDEO_PLAY_STATE_CHANGED,Eb(gb({},t),{userId:"",streamType:"main"}))})),i&&e._room.isJoined&&e._room.publish(a).catch((()=>{})),e._localVideoTrack=a,e._localVideoConfig=Eb(gb({},t),{view:r,publish:i}),yield e._updateVideoPlayOption({view:r,playOption:c,track:a})}()}))}updateLocalVideo(e){return Rb(this,null,(function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:t,publish:r,mute:i,option:o}=e,n={};if(o)if(VD(o.profile)||(FD(o.profile)?mw[o.profile]&&this._localVideoTrack.setProfile(mw[o.profile]):this._localVideoTrack.setProfile(o.profile),(!o.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(o.cameraId))&&VD(o.useFrontCamera)&&this._localVideoTrack.applyProfile()),o.cameraId?yield this._localVideoTrack.switchDevice(o.cameraId):VD(o.useFrontCamera)?VD(o.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(o.videoTrack)):yield this._localVideoTrack.switchDevice(o.useFrontCamera?_w.FACING_MODE_USER:_w.FACING_MODE_ENVIRONMENT),VD(o.fillMode)||(n.objectFit=o.fillMode),VD(o.mirror)||(n.mirror=o.mirror),o.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(KF(o.qosPreference)),o.small){let e=!this._localVideoTrack.small;sM()?(!0===o.small?this._localVideoTrack.small=mw["120p"]:FD(o.small)?this._localVideoTrack.small=mw[o.small]:this._localVideoTrack.small=o.small,this._room.videoManager.update(),e&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else!1===o.small&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!VD(r)&&(r&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch((()=>{})),this._localVideoConfig.publish&&!r&&this._room.unpublish(this._localVideoTrack).catch((()=>{}))),VD(i)||(yield this._localVideoTrack.setMute(i)),yield this._updateVideoPlayOption({view:t,playOption:n,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),nC(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(),eL(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:r=null,publish:i=!0,option:o}=t,n=new VP(e._room.videoManager);n.on("4",(t=>{let r;t.error&&(r=TF.convertFrom(t.error)),e.emit(jF.PUBLISH_STATE_CHANGED,Eb(gb({},t),{error:r}))})),n.once("first-video-frame",(t=>{e.emit(jF.FIRST_VIDEO_FRAME,Eb(gb({},t),{streamType:WF(t.streamType)}))})),e._listenOutputTrackChanged(n),"main"===t.streamType&&(n.mediaType=4);let a=null,s={},c={};o&&(VD(o.profile)||(FD(o.profile)?fw[o.profile]&&n.setProfile(fw[o.profile]):n.setProfile(o.profile)),o.systemAudio&&(s.systemAudio=!0,s.echoCancellation=o.echoCancellation,s.noiseSuppression=o.noiseSuppression,s.autoGainControl=o.autoGainControl),VD(o.fillMode)||(c.objectFit=o.fillMode),o.videoTrack&&(s.videoTrack=o.videoTrack),o.audioTrack&&(s.audioTrack=o.audioTrack),o.captureElement&&(s.captureElement=o.captureElement),o.preferDisplaySurface&&(s.preferDisplaySurface=o.preferDisplaySurface),o.qosPreference&&(s.contentHint=KF(o.qosPreference)));let l=yield n.capture(s);if(n.mediaTrack.addEventListener(_w.ENDED,(()=>{e._stopScreenShare(),e.emit(jF.SCREEN_SHARE_STOPPED)})),l.getAudioTracks()[0]&&(a=new BP(e._room.audioManager),yield a.setInputMediaStreamTrack(l.getAudioTracks()[0]),e._speakerId&&a.setAudioOutput(e._speakerId)),ZM(n,n).add("player-state-changed",(t=>{e.emit(jF.VIDEO_PLAY_STATE_CHANGED,Eb(gb({},t),{userId:"",streamType:"sub"}))})),i&&e._room.isJoined){let t=[n];a&&t.push(a),e._room.publish(...t).catch((()=>{}))}e._localScreenTrack=n,e._localScreenAudioTrack=a,e._localScreenConfig=Eb(gb({},t),{view:r,publish:i}),yield e._updateVideoPlayOption({view:r,playOption:c,track:n})}()}))}updateScreenShare(e){return Rb(this,null,(function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:t,publish:r,option:i}=e,o={};if(i&&(VD(i.fillMode)||(o.objectFit=i.fillMode),i.qosPreference)){let e=KF(i.qosPreference);this._localScreenTrack.setContentHint(e)}this._room.isJoined&&!VD(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((()=>{})))),yield this._updateVideoPlayOption({view:t,playOption:o,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),nC(this._localScreenConfig,e)}))}stopScreenShare(){return Rb(this,null,(function*(){return yield this._stopScreenShare()}))}startRemoteVideo(e){return Rb(this,null,(function*(){let{view:t,userId:r,streamType:i,option:o}=e,n="".concat(r,"_").concat(i);if(this._remoteVideoConfigMap.has(n))return void this._log.warn("remote video has already started. userId:".concat(r,", streamType:").concat(i));let a=this._room.remotePublishedUserMap.get(r);if(!a)return;let s={},c="main"===i?a.remoteVideoTrack:a.remoteAuxiliaryTrack;this._listenOutputTrackChanged(c),o&&(VD(o.fillMode)||(s.objectFit=o.fillMode),VD(o.mirror)||(s.mirror=o.mirror),VD(o.poster)||(s.poster=o.poster),s.canvasRender=o.canvasRender,"main"===i&&!VD(o.small)&&(!a.remoteVideoTrack.isSubscribing&&!a.remoteVideoTrack.isSubscribed&&a.remoteVideoTrack.setMediaType(o.small?8:4),this._room.changeType(o.small,c.user))),yield this._room.subscribe(c),yield this._enableVideoDecodeFallback(c,i),yield this._updateVideoPlayOption({view:t,playOption:s,track:c}),this._emitTrackEvent(c),this._remoteVideoConfigMap.set(n,{config:e}),o&&!VD(o.receiveWhenViewVisible)&&this._observeView({remoteTrack:c,view:t,receiveWhenViewVisible:o.receiveWhenViewVisible,viewRoot:null==o?void 0:o.viewRoot})}))}updateRemoteVideo(e){return Rb(this,null,(function*(){var t,r;let{view:i,userId:o,streamType:n,option:a}=e,s="".concat(o,"_").concat(n),c=this._remoteVideoConfigMap.get(s);if(!c||!this._room.remotePublishedUserMap.has(o))return;let l={};a&&(VD(a.fillMode)||(l.objectFit=a.fillMode),VD(a.mirror)||(l.mirror=a.mirror));let u=null,d=this._room.remotePublishedUserMap.get(o);if("main"===n&&null!=d&&d.muteState.hasVideo&&(u=d.remoteVideoTrack),"sub"===n&&null!=d&&d.muteState.hasAuxiliary&&(u=d.remoteAuxiliaryTrack),!u)return;let{config:h}=c;"main"===n&&a&&!VD(a.small)&&this._room.changeType(a.small,u.user),yield this._updateVideoPlayOption({view:i,playOption:l,track:u,prevConfig:h}),nC(h,e);let p=VD(null==a?void 0:a.receiveWhenViewVisible)?null==(t=h.option)?void 0:t.receiveWhenViewVisible:a.receiveWhenViewVisible,m=VD(i)?h.view:i,f=VD(null==a?void 0:a.viewRoot)?null==(r=h.option)?void 0:r.viewRoot:a.viewRoot;this._observeView({remoteTrack:u,view:m,receiveWhenViewVisible:p,viewRoot:f})}))}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 r=[],i=this._room.remotePublishedUserMap.get(e.userId);if(i){let{muteState:t,remoteVideoTrack:o,remoteAuxiliaryTrack:n}=i;"main"===e.streamType&&(o.stop(),t.hasVideo&&r.push(o)),"sub"===e.streamType&&(n.stop(),t.hasAuxiliary&&r.push(n))}for(let e of r)t&&(yield this._room.unsubscribe(e),this._mediaTrackMap.delete(e.outMediaTrack));let o=this._remoteVideoConfigMap.get("".concat(e.userId,"_").concat(e.streamType));o&&o.observer&&o.observer.disconnect(),this._remoteVideoConfigMap.delete("".concat(e.userId,"_").concat(e.streamType))}))}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(Nk){throw this._remoteAudioMuteMap.delete(e),Nk}}))}setRemoteAudioVolume(e,t){if("*"===e){let e=[...this._room.remotePublishedUserMap.values()];for(let r of e)this._remoteAudioVolumeMap.set(r.userId,t),r.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:r.remoteAudioTrack})}else if(e){let r=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,t),r&&r.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:t},track:r.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(t,r,i){return this.listeners(t).includes(r)||(this._log.debug("on",t),super.on(t,r,i),this._eventListened.add(t),t===e.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM((t=>{this.emit(e.EVENT.AUDIO_FRAME,{data:t})})),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",(()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM((t=>{this.emit(e.EVENT.AUDIO_FRAME,{data:t})})))})))),this}emit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];try{GF.has(e)&&this._log.debug("emit ".concat(e," ").concat(JSON.stringify(r)))}catch(Nk){}return super.emit(e,...r)}off(t,r,i){var o,n;return this._log.debug("off",t),"*"===t?(this._eventListened.clear(),this.removeAllListeners(),null==(o=this._getPCMAbortCtrl)||o.abort("off"),delete this._getPCMAbortCtrl):(super.off(t,r,i),t===e.EVENT.AUDIO_FRAME&&(null==(n=this._getPCMAbortCtrl)||n.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},r=null,i="main",o=!1;if(FD(t)?e=t:(e=t.userId,o=!0===t.processed,t.streamType&&(i=t.streamType)),e){let t=this._room.remotePublishedUserMap.get(e);t&&(r=t.remoteAudioTrack)}else r="sub"===i?this._localScreenAudioTrack:this._localAudioTrack;return r?o&&r.outMediaTrack&&r.outMediaTrack!==r.mediaTrack?r.outMediaTrack.clone():r.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{userId:"",streamType:"main"},{userId:t="",streamType:r="main",processed:i=!1}=e,o=null;if(""===t)"main"===r&&this._localVideoTrack&&(o=this._localVideoTrack),"sub"===r&&this._localScreenTrack&&(o=this._localScreenTrack);else{let e=this._room.remotePublishedUserMap.get(t);e&&(o="main"===r?e.remoteVideoTrack:e.remoteAuxiliaryTrack)}return o?i&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{userId:t,streamType:r="main"}=e;if(t){let e=this._room.remotePublishedUserMap.get(t);if("main"===r&&null!=e&&e.muteState.hasVideo)return e.remoteVideoTrack.getVideoFrame();if("sub"===r&&null!=e&&e.muteState.hasAuxiliary)return e.remoteAuxiliaryTrack.getVideoFrame()}else{if("main"===r&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if("sub"===r&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var t,r;this._speakerId=e,null==(t=this._localAudioTrack)||t.setAudioOutput(e),null==(r=this._localScreenAudioTrack)||r.setAudioOutput(e),this._room.remotePublishedUserMap.forEach((t=>t.remoteAudioTrack.setAudioOutput(e)))}setCurrentSpeaker(e){return Rb(this,null,(function*(){(yield iP()).forEach((t=>{t.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:t}),JB=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*(){let{userId:t}=e;if(this._remoteAudioConfigMap.has(t))return void this._log.warn("remote audio has already started. userId:".concat(t));let r=this._room.remotePublishedUserMap.get(t);if(!r)return;let i={},o=r.remoteAudioTrack;this._listenOutputTrackChanged(o),this._speakerId&&o.setAudioOutput(this._speakerId);try{let r=this._remoteAudioVolumeMap.get(t),n=BD(r)?r:100;i.volume=n,this._remoteAudioConfigMap.set(t,e),yield this._room.subscribe(o),ex(kx(o,"decode-failed"),Zx(kx(o,GM.INIT)),QU((()=>{this.startPlugin(KB.Name,{track:o,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})}))),yield this._updateAudioPlayOption({playOption:i,track:o})}catch(kk){throw this._remoteAudioConfigMap.delete(t),kk}this._emitTrackEvent(o)}))}_stopRemoteAudio(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Rb(this,null,(function*(){let r=this._room.remotePublishedUserMap.get(e.userId);r&&(r.remoteAudioTrack.stop(),r.muteState.hasAudio&&t&&(yield this._room.unsubscribe(r.remoteAudioTrack)),this._mediaTrackMap.delete(r.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId))}))}_enableVideoDecodeFallback(e,t){let r,i=this._room.videoDecodeFallbackType;i&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),ex(kx(e,"decode-failed"),Zx(kx(e,GM.INIT)),ZU((()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:i})})),OU(kx(e,"decode-downgrade-state-changed")),QU((i=>{r=i.state,this.emit(jF.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Eb(gb({},i),{streamType:t,userId:e.userId}))}),(t=>{e.log.error("fallback",t)}),(()=>{"STARTED"===r&&e.log.info("fallback complete")}))))}_updateVideoPlayOption(e){return Rb(this,arguments,(function(e){let{view:t,playOption:r,track:i,prevConfig:o}=e;return function*(){if(i.setMirror(r.mirror),VD(t)&&o&&o.view&&!tC(r)){let e=sC(o.view);e.length>0&&(yield i.play(e,r))}if(!VD(t)){let e=sC(t);e.length>0?yield i.play(e,r):i.stop()}}()}))}_updateAudioPlayOption(e){return Rb(this,arguments,(function(e){let{playOption:t={},track:r,prevConfig:i}=e;return function*(){if(!r.isPlayCalled)try{yield r.play(null,t)}catch(Wb){}VD(t.muted)||r.setPlayerMute(t.muted),VD(t.volume)||r.setAudioVolume(t.volume/100)}()}))}_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],r=e.isRemote?e.userId:"";e.outMediaTrack&&(t&&this._mediaTrackMap.get(e.outMediaTrack)===r||(this._mediaTrackMap.set(e.outMediaTrack,r),this.emit(jF.TRACK,{userId:r,streamType:WF(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,t,r;let i=[];if(null!=(e=this._localAudioConfig)&&e.publish&&this._localAudioTrack&&i.push(this._localAudioTrack),null!=(t=this._localVideoConfig)&&t.publish&&this._localVideoTrack&&i.push(this._localVideoTrack),null!=(r=this._localScreenConfig)&&r.publish&&(this._localScreenTrack&&i.push(this._localScreenTrack),this._localScreenAudioTrack&&i.push(this._localScreenAudioTrack)),0!==i.length)return this._room.publish(...i).catch((()=>{}))}_observeView(e){let{remoteTrack:t,view:r,receiveWhenViewVisible:i=!1,viewRoot:o}=e;if(VD(r))return;let n=this._remoteVideoConfigMap.get("".concat(t.userId,"_").concat(WF(t.streamType)));if(!n)return;let a=n.observer||void 0;if(null===r||GD(r)&&0===r.length||!i)return null==a||a.disconnect(),void(t.isSubscribed||this._room.subscribe(t).catch((()=>{})));let s=n.visibleViewMap||new Map,c=-1;(!a||a.root!==o)&&(null==a||a.disconnect(),s.clear(),a=new IntersectionObserver((e=>{e.forEach((e=>{s.set(e.target,e.isIntersecting)})),clearTimeout(c),c=window.setTimeout((()=>{let e=[...s.values()].find((e=>e));t.log.info("view is".concat(e?"":" not"," visible")),e?t.isSubscribed||this._room.subscribe(t).catch((()=>{})):t.isSubscribed&&this._room.unsubscribe(t).catch((()=>{}))}),200)}),{root:o}));let l=new Set(sC(r));s.forEach(((e,t)=>{l.has(t)||(a.unobserve(t),s.delete(t))})),l.forEach((e=>{s.set(e,!0),a.observe(e)})),a.takeRecords().forEach((e=>{s.set(e.target,e.isIntersecting)})),n.visibleViewMap=s,n.observer=a}_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",r=e.split("_".concat(t))[0];r&&this._stopRemoteVideo({userId:r,streamType:t}).catch()})),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),function(e){let t=lB.get(e);t&&(t.forEach((e=>clearTimeout(e))),lB.delete(e))}(this),this._room.remotePublishedUserMap.forEach((e=>{eL(e.remoteAudioTrack),eL(e.remoteVideoTrack),eL(e.remoteAuxiliaryTrack)}))}))}_stopScreenShare(){return Rb(this,null,(function*(){var e;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&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),eL(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}}))}_onLocalTrackCaptured(e){let{track:t}=e;"audio"===t.kind&&(!JB||QL(JB))&&(this._initActiveSpeaker(),gk.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return Rb(this,null,(function*(){if(JB&&!QL(JB))this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:JB});else{let e=yield iP();e[0]&&!QL(e[0])?(JB=e[0],this.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):gk.on("102",this._onLocalTrackCaptured,this)}}))}_onAudioAvailable(e){let{userId:t}=e,r=this._remoteAudioMuteMap.has(t)?this._remoteAudioMuteMap.get(t):this._remoteAudioMuteMap.get("*");(!1===r||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:t}).catch((()=>{}))}_onVideoAvailable(e){let{userId:t,streamType:r}=e;if(!this._room.autoReceiveVideo)return;let i=this._room.remotePublishedUserMap.get(t);if(i){let e="main"===r?i.remoteVideoTrack:i.remoteAuxiliaryTrack,t=[e];this._room.autoReceiveAudio&&i.remoteAudioTrack.isAvailable&&t.push(i.remoteAudioTrack),this._room.subscribe(...t).then((()=>{this._emitTrackEvent(e)})).catch((()=>{}))}}_onAudioUnavailable(e){let{userId:t,muteState:r}=e;r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:t},!1).catch((()=>{}))}_onVideoUnavailable(e){let{userId:t,streamType:r}=e;this._stopRemoteVideo({userId:t,streamType:r},!1).catch((()=>{}))}sendSEIMessage(e,t){var r;let i=this._plugins.get("SEI");i&&(i.update({buffer:e,options:Eb(gb({seiPayloadType:243},t),{small:!(null==(r=this._localVideoTrack)||!r.small)})}),FO.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var t,r;null==(r=(t=this._room).sendCustomMessage)||r.call(t,e),FO.addCount({key:500001,useUV:!0})}static setLogLevel(e,t){Tk.setLogLevel(e),VD(t)||(t?Tk.enableUploadLog():Tk.disableUploadLog())}static isSupported(){return $O()}static getCameraList(){return tP(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getMicrophoneList(){return eP(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static getSpeakerList(){return iP(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])}static setCurrentSpeaker(t){return Rb(this,null,(function*(){if(!FC||t!==fF.SPEAKER&&t!==fF.HEADSET)(yield iP()).forEach((e=>{e.deviceId===t&&(qB.forEach((r=>{r._setCurrentSpeaker(t),r.emit(jF.DEVICE_CHANGED,{type:"speaker",action:"active",device:e})})),JB=e)}));else{let r=yield e.getMicrophoneList(),i="";if(r.forEach((e=>{e.label===t&&(i=e.deviceId)})),!i)return;qB.forEach((e=>Rb(this,null,(function*(){e._localAudioTrack&&(yield e.updateLocalAudio({option:{microphoneId:i}}))}))))}}))}static _addKVStat(e){let{type:t,key:r,value:i,base:o,useUV:n,version:a}=e;switch(a&&(VO.version=a),t){case"count":VO.addCount({key:r,useUV:n});break;case"enum":VO.addEnum({key:r,value:i,useUV:n});break;case"number":VO.addNumber({key:r,value:i,split:o})}}};Ab(XB,"_loggerManager",Tk),Ab(XB,"EVENT",jF),Ab(XB,"ERROR_CODE",_F),Ab(XB,"TYPE",fF),Ab(XB,"frameWorkType",30),Ib([mB({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"}})})],XB.prototype,"use",1),Ib([uB(NF.TRTC.enterRoom),FF("room",((e,t)=>{let[r]=e,[i]=t;return(r.roomId||r.strRoomId)===(i.roomId||i.strRoomId)&&r.userId===i.userId&&r.sdkAppId===i.sdkAppId})),yP((e=>function(t){return this._log.setUserId(t.userId),this._log.setSdkAppId(t.sdkAppId),e.call(this,t)})),mB()],XB.prototype,"enterRoom",1),Ib([mB()],XB.prototype,"exitRoom",1),Ib([uB(NF.TRTC.switchRole),BF("room",{merge:(e,t)=>t}),mB()],XB.prototype,"switchRole",1),Ib([mB()],XB.prototype,"destroy",1),Ib([uB(NF.TRTC.startLocalAudio),FF("audio",((e,t)=>{let[r]=e,[i]=t;var o,n;return(null==(o=null==r?void 0:r.option)?void 0:o.microphoneId)===(null==(n=null==i?void 0:i.option)?void 0:n.microphoneId)})),mB()],XB.prototype,"startLocalAudio",1),Ib([uB(NF.TRTC.updateLocalAudio),BF("audio",{debounce:{delay:200,getKey:()=>"".concat(zB,"-localAudio"),isNeedToDebounce:e=>{var t;return!VD(null==(t=e.option)?void 0:t.captureVolume)}}}),mB()],XB.prototype,"updateLocalAudio",1),Ib([HF("audio"),mB()],XB.prototype,"stopLocalAudio",1),Ib([uB(NF.TRTC.startLocalVideo),FF("video",((e,t)=>{let[r]=e,[i]=t;var o,n;return(null==(o=null==r?void 0:r.option)?void 0:o.cameraId)===(null==(n=null==i?void 0:i.option)?void 0:n.cameraId)})),mB()],XB.prototype,"startLocalVideo",1),Ib([uB(NF.TRTC.updateLocalVideo),BF("video"),mB()],XB.prototype,"updateLocalVideo",1),Ib([HF("video"),mB()],XB.prototype,"stopLocalVideo",1),Ib([uB(NF.TRTC.startScreenShare),FF("screen",(()=>!0)),mB()],XB.prototype,"startScreenShare",1),Ib([uB(NF.TRTC.updateScreenShare),BF("screen"),mB()],XB.prototype,"updateScreenShare",1),Ib([mB()],XB.prototype,"stopScreenShare",1),Ib([uB(NF.TRTC.startRemoteVideo),FF((e=>"v".concat(e.userId).concat(e.streamType)),(()=>!0)),mB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],XB.prototype,"startRemoteVideo",1),Ib([uB(NF.TRTC.updateRemoteVideo),BF((e=>"v".concat(e.userId).concat(e.streamType))),mB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],XB.prototype,"updateRemoteVideo",1),Ib([uB(NF.TRTC.stopRemoteVideo),yP((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)}))})),mB({getRemoteId:e=>"".concat(e.userId,"_").concat(e.streamType)})],XB.prototype,"stopRemoteVideo",1),Ib([HF((e=>"v".concat(e.userId).concat(e.streamType)))],XB.prototype,"_stopRemoteVideo",1),Ib([uB(...NF.TRTC.muteRemoteAudio),mB({getRemoteId:e=>e})],XB.prototype,"muteRemoteAudio",1),Ib([dB(...NF.TRTC.setRemoteAudioVolume),function(e,t){return yP(((r,i)=>function(){for(var i=arguments.length,o=new Array(i),n=0;n<i;n++)o[n]=arguments[n];let a=lB.get(this);a||(a=new Map,lB.set(this,a));let s=t(...o),c=a.get(s);if(!c||c<=0){r.apply(this,o);let t=setTimeout((()=>{var e;null==(e=lB.get(this))||e.delete(s)}),e);a.set(s,t)}else{clearTimeout(c);let t=window.setTimeout((()=>{var e;r.apply(this,o),null==(e=lB.get(this))||e.delete(s)}),e);a.set(s,t)}}))}(200,(e=>e)),mB({getRemoteId:e=>e})],XB.prototype,"setRemoteAudioVolume",1),Ib([fB("start"),vP((e=>{var t;return null==(t=e.afterStart)?void 0:t.call(e)})),FF(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t))),mB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>LO[e.getName()],ignoreLog:e=>"Debug"===e.getName()})],XB.prototype,"startPlugin",1),Ib([fB("update"),BF(((e,t)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(t))),mB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>PO[e.getName()]})],XB.prototype,"updatePlugin",1),Ib([fB("stop"),HF(((e,t)=>{if(e.disableRandomCall)return null;let r=e.getGroup(t),i=e.getAlias();return"*"===r?new RegExp("".concat(i,".*")):i+r})),mB({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>xO[e.getName()]})],XB.prototype,"stopPlugin",1),Ib([dB(...NF.TRTC.enableAudioVolumeEvaluation)],XB.prototype,"enableAudioVolumeEvaluation",1),Ib([mB()],XB.prototype,"getVideoSnapshot",1),Ib([mB()],XB.prototype,"_setCurrentSpeaker",1),Ib([FF((e=>"a".concat(e.userId)),(()=>!0))],XB.prototype,"_startRemoteAudio",1),Ib([yP((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)}))})),HF((e=>"a".concat(e.userId)))],XB.prototype,"_stopRemoteAudio",1),Ib([HF("room")],XB.prototype,"_exitRoom",1),Ib([HF("screen")],XB.prototype,"_stopScreenShare",1),Ib([uB(...NF.TRTC.sendSEIMessage),hF({timesInSecond:30,maxSizeInSecond:8e3,getSize:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t[0].byteLength}})],XB.prototype,"sendSEIMessage",1),Ib([uB(NF.TRTC.sendCustomMessage),hF({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],XB.prototype,"sendCustomMessage",1),Ib([uB(NF.TRTC.create)],XB,"_create",1);var $B=XB,QB=class{constructor(e,t){Ab(this,"_flag"),Ab(this,"terminalType"),Ab(this,"userId"),Ab(this,"tinyId"),Ab(this,"role"),Ab(this,"remoteAudioTrack"),Ab(this,"remoteVideoTrack"),Ab(this,"remoteAuxiliaryTrack"),this.userId=t.userId||"",this.tinyId=t.tinyId||"",this.role=t.role||"audience",this.terminalType=t.terminalType,this.remoteAudioTrack=new oV(e,this),this.remoteVideoTrack=new AV(e,this),this.remoteAuxiliaryTrack=new SV(e,this),this.flag=t.flag||0}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 rC(this.flag,this.userId)}get flag(){return this._flag}set flag(e){if(e===this._flag)return;let t,r=this.muteState;this._flag=e;let i=this.muteState;for(t in i)r[t]!=i[t]&&console.log(this.userId,t,r[t],"->",i[t]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}},ZB=class{constructor(){Ab(this,"_set",new Set),gk.on(vk.LEAVE_SUCCESS,this.delete,this)}add(e){let{room:t,roomId:r}=e;if("rtc"===t.scene)return;let i=this.getKey(t.userId,r||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(i)}delete(e){let{room:t,roomId:r}=e;if("rtc"===t.scene)return;let i=this.getKey(t.userId,t.roomId||r,t.sdkAppId,t.useStringRoomId);this._set.delete(i)}getKey(e,t,r,i){return"".concat(r,"_").concat(t,"_").concat(e,"_").concat(i)}isJoined(e){let{userId:t,roomId:r,sdkAppId:i,room:o}=e;return"rtc"!==o.scene&&this._set.has(this.getKey(t,r,i,o.useStringRoomId))}};function eH(){return Rb(this,null,(function*(){let e,t;try{let t=yield eP();e=t&&t.length}catch(bk){}try{let e=yield tP();t=e&&e.length}catch(bk){}let r={microphone:e,camera:t},{isH264EncodeSupported:i,isVp8EncodeSupported:o,isH264DecodeSupported:n,isVp8DecodeSupported:a}=this.checkSystemResult.detail,s=Sk.basis(),c={webRTC:s.isWebRTCSupported,getUserMedia:s.isGetUserMediaSupported,webSocket:s.isWebSocketsSupported,screenShare:s.isScreenShareSupported,webAudio:s.isWebAudioSupported,h264Encode:i,h264Decode:n,vp8Encode:o,vp8Decode:a},l={browser:s.browser,os:s.os,trtc:c,devices:r},u={isWebCodecSupported:s.isWebCodecSupported,isMediaSessionSupported:s.isMediaSessionSupported,isWebTransportSupported:s.isWebTransportSupported};tL.uploadEvent({log:"trtcstats-".concat(JSON.stringify(l)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(l))),tL.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(u)),userId:this.userId})}))}var tH=class{constructor(e){Ab(this,"_frameWorkType"),Ab(this,"_component"),Ab(this,"_language"),Ab(this,"connectionType"),Ab(this,"_room"),Ab(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0}),Ab(this,"_keyPrefix"),Ab(this,"_log"),Ab(this,"_intervalId"),Ab(this,"_firstPublishedUserList"),Ab(this,"_networkQuality"),Ab(this,"_basicInfo"),Ab(this,"_pathJoinRoom"),Ab(this,"_pathLeaveRoom"),Ab(this,"_pathMainVideoMap"),Ab(this,"_pathMainAudioMap"),Ab(this,"_pathAuxiliaryMap"),Ab(this,"_remoteStreamStatMap"),Ab(this,"_localStreamStat"),Ab(this,"_eventMap",new Map),Ab(this,"_captureCostSum",0),Ab(this,"_captureCostCount",0),Ab(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=Tk.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach((e=>{e.startsWith("handle")&&UD(this[e])&&(this[e]=function(e){let{fn:t,context:r}=e;return function(){try{for(var e=arguments.length,i=new Array(e),o=0;o<e;o++)i[o]=arguments[o];let n=t.apply(r,i);return zD(n)?n.catch((e=>Tk.error("".concat(t.name,"() error observed ").concat(e)))):n}catch(Ww){Tk.error("".concat(t.name,"() error observed ").concat(Ww))}}}({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:Hb,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,ck().then((e=>{this._basicInfo.string_os_version=pk(),this._basicInfo.string_device_name=e&&e.mobile?e.model:this._basicInfo.string_os_version}))}addEvent(e,t){return this._eventMap.set(e,t),gk.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(vk.JOIN_START,this.handleJoinStart).addEvent(vk.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(vk.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(vk.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(vk.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(vk.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(vk.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(vk.JOIN_FAILED,this.handleJoinFailed).addEvent(vk.LEAVE_START,this.handleLeaveStart).addEvent(vk.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(vk.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(vk.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(vk.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(vk.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(vk.PUBLISH_START,this.handlePublishStart).addEvent(vk.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(vk.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(vk.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(vk.PLAY_TRACK_START,this.handlePlayStart).addEvent(vk.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(vk.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:r,type:i}=e;!t.isRemote||!this.hitTest(t.room)||"PLAYING"===r&&(i===_w.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))})).addEvent(vk.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(vk.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(vk.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(vk.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:r,muteState:i}=e;if(!this.hitTest(t))return;let o=r.hasAudio||r.hasVideo||r.hasSmall,n=r.hasAuxiliary,a=i.hasAudio||i.hasVideo||i.hasSmall,s=i.hasAuxiliary;!o&&a&&this.handleRemoteStreamAdded(i.userId,"main"),!n&&s&&this.handleRemoteStreamAdded(i.userId,"auxiliary")})).addEvent(vk.SINGLE_CONNECTION_STAT,(e=>{let{room:t,stat:r}=e;this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=r.ice,this._pathJoinRoom.int32_dtls_cost=r.dtls,this._pathJoinRoom.int32_peer_connection_cost=r.peerConnection)}))}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach(((e,t)=>gk.off(t,e))),this._eventMap.clear()}destroy(){this.uninstallEvents(),YM.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&&(VD(e.params.frameWorkType)||(this._frameWorkType=e.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),VD(e.params.component)||(this._component=e.params.component,this._basicInfo.uint32_component=this._component),VD(e.params.language)||(this._language=e.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess(e){let{room:t,detailCost:r}=e;if(this.hitTest(t)&&r){let{totalCost:e,local:t,dns:i,tcp:o,tls:n,request:a,response:s}=r;this._pathJoinRoom.int32_schedule_cost=e,this._pathJoinRoom.int32_schedule_local=t,this._pathJoinRoom.int32_schedule_dns=i,this._pathJoinRoom.int32_schedule_tcp=o,this._pathJoinRoom.int32_schedule_tls=n,this._pathJoinRoom.int32_schedule_request=a,this._pathJoinRoom.int32_schedule_response=s}}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:r}=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(),r&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=r instanceof Lb?Number(r.getExtraCode()||r.getCode()):Ob.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:r}=e;this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),0===this._pathJoinRoom.int32_end_ret&&(this._pathJoinRoom.int32_end_ret=r.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())}handleRemoteStreamAdded(e,t){var r;let i="".concat(e,"_").concat(t);if(!this._remoteStreamStatMap.has(i)){let o={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({},iH),{msg_user_info:new oH({userId:e,tinyId:null==(r=this._room.remotePublishedUserMap.get(e))?void 0:r.tinyId,role:20})})};o.statsToReport.uint32_stream_type="main"===t?2:7,this._remoteStreamStatMap.set(i,o)}}handleSubscribeStart(e){let{room:t,remotePublishedUser:r,streamType:i,subscribeState:o}=e;if(!this.hitTest(t))return;let{userId:n,tinyId:a,role:s}=r,c=new oH({userId:n,tinyId:a,role:"anchor"===s?20:21}),l=Date.now(),u="".concat(n,"_").concat(i),d=this._remoteStreamStatMap.get(u);d&&0===d.subscribeStartTime&&(d.subscribeStartTime=l),"main"===i?(r.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(u)&&this._pathMainVideoMap.set(u,{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:n,sendSubscribeCMDTime:l}),r.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(u)&&this._pathMainAudioMap.set(u,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:n,sendSubscribeCMDTime:l})):r.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(u)&&this._pathAuxiliaryMap.set(u,{sendSubscribeCMDTime:l})}handleSubscribed(e){let{room:t,remotePublishedUser:r,streamType:i}=e;if(this.hitTest(t)){let e="".concat(r.userId,"_").concat(i),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 r="".concat(t.userId,"_").concat(t.streamType),i=this._remoteStreamStatMap.get(r);0===(null==i?void 0:i.playStreamTime)&&(i.playStreamTime=Date.now())}handleVideoLoadedData(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room))return;let r="".concat(t.userId,"_").concat(t.streamType),i=this._pathMainVideoMap.get(r);i&&0===i.statsToReport.uint64_combine_first_frame_time&&(i.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),r=Date.now(),i=this._pathMainVideoMap.get(t),o=this._remoteStreamStatMap.get(t);if(o){let{statsToReport:t}=o;if(t.uint32_video_render_first||"main"!==e.streamType?this.hasAuxFlag(e.userId):this.hasVideoFlag(e.userId)){let e=r-this._pathJoinRoom.uint64_start_time;t.uint32_video_render_first=e,FO.addNumber({key:516820,value:e})}}0===(null==i?void 0:i.statsToReport.uint64_render_first_frame_time)&&(i.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(e){let t="".concat(e.userId,"_").concat(e.streamType),r=this._pathMainAudioMap.get(t);r&&0===r.statsToReport.uint64_play_first_frame_time&&(r.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:r,userId:i,videoDelay:o,audioDelay:n}=e,a=this._networkQuality.totalDownlinkRTTAndLossMap.get(i);if(a)a.totalRTT+=t,a.totalLoss+=r,o&&(a.totalVideoDelay=(a.totalVideoDelay||0)+o,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let e,a,s,c;o&&(a=o,s=1),n&&(e=n,c=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(i,{totalRTT:t,totalLoss:r,count:1,totalAudioDelay:e,totalVideoDelay:a,audioDelayCount:c,videoDelayCount:s})}})))}handleHeartbeatStats(e){if(this.hitTest(e.room)){let{msg_device_info:t,msg_up_stream_info:r,msg_down_stream_info:i}=e.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:e,uint32_video_enc_fps:t,uint32_video_width:i,uint32_video_height:o}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=e,this._localStreamStat.totalVideoFPS+=t,this._localStreamStat.totalVideoWidth+=i,this._localStreamStat.totalVideoHeight+=o,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:e}=r.msg_audio_status;Math.floor(e/fO*100)>0&&(this._localStreamStat.totalAudioLevel+=e/fO,this._localStreamStat.audioLevelCount++)}i.forEach((e=>{let{msg_user_info:t,msg_audio_status:r,msg_video_status:i}=e,o=t.str_identifier,n=this._room.remotePublishedUserMap.get(o);if(i.forEach((e=>{let t=2===e.uint32_video_stream_type,r=7===e.uint32_video_stream_type,i="".concat(o,"_").concat(t?"main":"auxiliary"),a=this._remoteStreamStatMap.get(i);if(a&&(t&&null!=n&&n.remoteVideoTrack.isSubscribed||r&&null!=n&&n.remoteAuxiliaryTrack)){a.totalVideoFPS+=e.uint32_video_receive_fps,a.totalVideoBitrate+=e.uint32_video_codec_bitrate,a.videoCount++,0===a.statsToReport.uint32_video_width&&(a.statsToReport.uint32_video_width=e.uint32_video_width),0===a.statsToReport.uint32_video_height&&(a.statsToReport.uint32_video_height=e.uint32_video_height);let r=t?n.remoteVideoTrack:n.remoteAuxiliaryTrack;r.stat.jitterBufferDelay&&(a.videoJitterBufferDelay=r.stat.jitterBufferDelay),r.stat.framesReceived&&(a.statsToReport.uint32_video_consume_render_rate=Math.floor(r.stat.framesDecoded/r.stat.framesReceived*fb(10,6)))}})),!tC(r)){let e="".concat(o,"_main"),t=this._remoteStreamStatMap.get(e);this._remoteStreamStatMap.has(e)&&t&&null!=n&&n.remoteAudioTrack.isSubscribed&&(t.totalAudioBitrate+=r.uint32_audio_codec_bitrate,t.audioCount++,n.remoteAudioTrack.stat.jitterBufferDelay&&(t.audioJitterBufferDelay=n.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(r.uint32_audio_level/fO*100)>0&&(t.totalAudioLevel+=r.uint32_audio_level/fO,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:r}=e,i={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[r.name]||(r instanceof Lb?r.getExtraCode()||r.getCode():Ob.UNKNOWN);1===t.mediaType&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=i,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=i,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&yw))>=0}hasAudioFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&Aw))>=0}hasAuxFlag(e){return this._firstPublishedUserList.findIndex((t=>t.userId===e&&t.flag&Iw))>=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:r}=e,i=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(i){let{totalLoss:t,count:r,audioDelayCount:o,videoDelayCount:n,totalAudioDelay:a,totalVideoDelay:s}=i;e.statsToReport.uint32_avg_down_loss=Math.floor(t/r),o&&a&&(e.statsToReport.uint32_audio_network_p2p_delay=Math.floor(a/o),e.audioJitterBufferDelay&&(e.statsToReport.uint32_p2p_delay=Math.floor(e.statsToReport.uint32_audio_network_p2p_delay+e.audioJitterBufferDelay))),n&&s&&(e.statsToReport.uint32_video_network_p2p_delay=Math.floor(s/n))}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:o}=this._room;o&&(e.statsToReport.uint32_audio_play_time=o.getDuration(t,_w.AUDIO),e.statsToReport.uint32_video_play_time=o.getDuration(t,_w.VIDEO)),e.statsToReport.uint32_video_render_first&&(e.statsToReport.uint32_video_render_first=Math.min(e.statsToReport.uint32_video_render_first,rH));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:s}=n.getDataFreezeDuration(t),{renderFreeze:c}=n.getRenderFreezeDuration(t);e.statsToReport.uint32_video_block_count=s,e.statsToReport.uint32_video_block_time=Math.min(a,e.statsToReport.uint32_video_play_time),e.statsToReport.uint32_video_external_block_time=Math.min(c,e.statsToReport.uint32_video_play_time),n.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>rH&&(e.statsToReport.uint64_play_first_frame_time=e.statsToReport.uint64_start_enter_time+rH):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>rH&&(e.statsToReport.uint64_render_first_frame_time=e.statsToReport.uint64_start_enter_time+rH):this._pathMainVideoMap.delete(t)})),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>rH&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+rH)}getReportData(){this._basicInfo.uint32_networkType=RD();let e={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new oH({userId:this._room.userId,tinyId:this._room.tinyId,role:"anchor"===this._room.role?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:oC(this._signalInfo.relayIp),uint32_client_ip:oC(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:oC(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return _C(e),e}report(){return Rb(this,null,(function*(){try{this.prepareReport();let e=this.getReportData();yield this.upload(e),this.initData()}catch(Ck){this._log.warn(Ck)}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),r=yield yC(e),i=r instanceof ArrayBuffer,o="".concat(yD(t,aw.KEY_POINT),"&gzip=").concat(+i),n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(o,r));let a=[this.uploadKVStat(FO),this.uploadKVStat(VO)];n||a.push(vC({url:o,body:r,priority:"low"})),yield Promise.all(a)}))}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 r=yield yC(t),i="".concat(yD(+this._room.sdkAppId,aw.KV_STAT),"&gzip=").concat(+(r instanceof ArrayBuffer)),o=!1;navigator.sendBeacon&&(o=navigator.sendBeacon(i,r)),o||vC({url:i,body:r})}))}};Ib([iL({settings:{timeout:500,retries:3}})],tH.prototype,"upload",1);var rH=5e3,iH={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},oH=class{constructor(e){Ab(this,"str_identifier"),Ab(this,"str_tinyid"),Ab(this,"uint32_role"),this.str_identifier=String(e.userId),this.str_tinyid=String(e.tinyId||0),this.uint32_role=e.role}},nH=tH,aH=class{constructor(){Ab(this,"_startTime"),Ab(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){0===this._startTime&&(this._startTime=$D())}stop(){0===this._endTime&&(this._endTime=$D())}getDuration(){return 0===this._endTime?$D()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},sH=class{constructor(e){Ab(this,"_room",null),Ab(this,"_durationMap"),Ab(this,"_eventMap",new Map),this._room=e.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(vk.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(vk.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(vk.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:r,muteState:i}=e;var o;let{userId:n}=i;if(!this.hitTest(t))return;r.hasAudio&&!i.hasAudio&&this.stopDurationItem("".concat(n,"_main"),_w.AUDIO),r.hasVideo&&!i.hasVideo&&this.stopDurationItem("".concat(n,"_main"),_w.VIDEO),r.hasAuxiliary&&!i.hasAuxiliary&&this.stopDurationItem("".concat(n,"_auxiliary"),_w.VIDEO);let a=null==(o=this._room)?void 0:o.remotePublishedUserMap.get(n);a&&(!r.hasAudio&&i.hasAudio&&a.remoteAudioTrack.isSubscribed&&this.addDuractionItem(n,_w.AUDIO,"main"),!r.hasVideo&&i.hasVideo&&a.remoteVideoTrack.isSubscribed&&this.addDuractionItem(n,_w.VIDEO,"main"),!r.hasAuxiliary&&i.hasAuxiliary&&a.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(n,_w.VIDEO,"auxiliary"))})),this._eventMap.forEach(((e,t)=>gk.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>gk.off(t,e,this))),this._eventMap.clear()}handleSubscribed(e){let{track:t}=e;if(!this.hitTest(t.room))return;let{userId:r,streamType:i,kind:o}=t;t.isSubscribed?this.addDuractionItem(r,o,i):this.stopDurationItem("".concat(r,"_").concat(i),o)}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,r){let i="".concat(e,"_").concat(r),o=new aH,n=this._durationMap.get(i);n?this.isRecording(n[t])||n[t].push(o):this._durationMap.set(i,{userId:e,type:r,audio:t===_w.AUDIO?[o]:[],video:t===_w.AUDIO?[]:[o]})}stopDurationItem(e,t){if(this._durationMap.has(e)){let r=this._durationMap.get(e)[t].find((e=>0===e.endTime));r&&r.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()}},cH=class{constructor(e){Ab(this,"_room"),Ab(this,"_renderFreezeMap",new Map),Ab(this,"_isVideoPlayingEventFiredMap",new Map),Ab(this,"_dataFreezeMap",new Map),Ab(this,"_monitorFreezeData",new Map),Ab(this,"_eventMap",new Map),this._room=e.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(vk.LEAVE_SUCCESS,(e=>{let{room:t}=e;this.hitTest(t)&&this.stop()})).set(vk.PLAY_TRACK_START,this.onPlayTrackStart).set(vk.UNSUBSCRIBE_SUCCESS,(e=>{let{room:t,streamType:r,remotePublishedUser:i}=e;if(!this.hitTest(t))return;let{userId:o}=i,n="".concat(o,"_").concat(r);this.stopDataFreeze({key:n,userId:o,type:r})})).set(vk.REMOTE_PUBLISH_STATE_CHANGED,(e=>{let{room:t,prevMuteState:r,muteState:i}=e;if(!this.hitTest(t))return;let{userId:o}=i;if(r.hasVideo&&!i.hasVideo){let e="main",t="".concat(i.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:o,type:e})}if(r.hasAuxiliary&&!i.hasAuxiliary){let e="auxiliary",t="".concat(i.userId,"_").concat(e);this.stopDataFreeze({key:t,userId:o,type:e})}})).set(vk.PLAYER_STATE_CHANGED,(e=>{let{track:t,state:r,reason:i,type:o}=e;if(t.isRemote&&t.room&&this.hitTest(t.room)&&o===_w.VIDEO){if("PLAYING"===r){let e="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.set(e,!0)}i===_w.MUTE?this.onVideoTrackMuted(t):i===_w.UNMUTE&&this.onVideoTrackUnmuted(t)}})).set(vk.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach(((e,t)=>gk.on(t,e,this)))}uninstallEvents(){this._eventMap.forEach(((e,t)=>gk.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:r}=e,i="".concat(t,"_").concat(r),o=this._dataFreezeMap.get(i),n=new aH;o?o.durationItemList.push(n):this._dataFreezeMap.set(i,{userId:t,type:r,durationItemList:[n],isFreezing(){let e=this.durationItemList[this.durationItemList.length-1];return e&&0===e.endTime}})}onVideoTrackUnmuted(e){if(!e.isSubscribed)return;let{userId:t,streamType:r}=e,i="".concat(t,"_").concat(r);this.stopDataFreeze({key:i,userId:t,type:r})}onHearBeatReport(e){let{room:t,report:r}=e;this.hitTest(t)&&r.msg_down_stream_info.forEach((e=>{let t=this._room.remotePublishedUserMap.get(e.msg_user_info.str_identifier);if(!t)return;let{userId:r,muteState:i}=t;e.msg_video_status.forEach((e=>{2===e.uint32_video_stream_type&&i.hasVideo&&!i.videoMuted&&t.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:r,fps:e.uint32_video_dec_fps,type:"main"}),7===e.uint32_video_stream_type&&i.hasAuxiliary&&t.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:r,fps:e.uint32_video_dec_fps,type:"auxiliary"})}))}))}stopDataFreeze(e){let{key:t,userId:r,type:i}=e,o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let n=o.durationItemList[o.durationItemList.length-1];n.stop();let a=n.getDuration();a>eD?this._monitorFreezeData.set(t,{userId:r,type:i,duration:a}):o.durationItemList.pop()}getTotalDuration(e){return e.reduce(((e,t)=>{let r=t.getDuration();return e+Math.min(r,5e3)}),0)}handleRenderFreeze(e){return Rb(this,arguments,(function(e){var t=this;let{userId:r,fps:i,type:o}=e;return function*(){let e="".concat(r,"_").concat(o),n=t._renderFreezeMap.get(e);if(i<=2){let i=$D();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:i,endTime:0}),n.isFreeze=!0),n||t._renderFreezeMap.set(e,{userId:r,type:o,isFreeze:!0,freezeTimeline:[{startTime:i,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let e=n.freezeTimeline.pop();if(e){e.endTime=$D();let t=e.endTime-e.startTime;n.freezeTimeline.push(e),n.renderFreezeTotal+=Math.min(5e3,t)}}}()}))}onPlayTrackStart(e){let{track:t}=e;if(!t.isRemote||!this.hitTest(t.room)||t.kind!==_w.VIDEO||!t.isRemotePublished)return;let r="".concat(t.userId,"_").concat(t.streamType);this._isVideoPlayingEventFiredMap.has(r)||this._isVideoPlayingEventFiredMap.set(r,!1)}getDataFreezeDuration(e){let t={dataFreeze:0,count:0},r=this._dataFreezeMap.get(e);if(r){if(r.isFreezing()){let e=r.durationItemList[r.durationItemList.length-1];e.stop(),e.getDuration()<eD&&r.durationItemList.pop()}t.dataFreeze=this.getTotalDuration(r.durationItemList),t.count=r.durationItemList.length}return t}getRenderFreezeDuration(e){let t=this._renderFreezeMap.get(e),r=0,i=0;if(t)if(t.isFreeze){let e=$D()-t.freezeTimeline[t.freezeTimeline.length-1].startTime;r=t.renderFreezeTotal+Math.min(e,5e3),i=t.freezeTimeline.length}else r=t.renderFreezeTotal;return{renderFreeze:r,count:i}}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()}},lH=Tb(bb(),1),uH=[1,0,0,0,1,1,0,1],dH=class extends sV{constructor(e,t){if(super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:t}),e instanceof TV)try{this.setTexBuffer(uH)}catch(Ww){e.destroy(new Lb({code:Ob.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(Ww.message||Ww)}))}}draw2d(e,t,r,i,o){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let n=super.draw2d(e,t,r,i,o);return this.ctx2d.restore(),n}return!1}render(e){var t;return!(null==(t=this.input)||!t.requestFrame(e))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}},hH=class{constructor(e,t){this.node=e,this.layout=t,Ab(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}},pH=class extends sV{constructor(e,t){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:t}),Ab(this,"inputs",[])}addInput(e,t){if(this.inputs[t.zIndex])throw new Error("input already exists");let r=new hH(e,t);this.inputs[t.zIndex]=r}resize(e,t){let r=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(r.width,r.height),this.context instanceof TV&&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,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return super.connect(e,...r),this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex((t=>(null==t?void 0:t.node)===e))]=void 0}render(e){let t=this.context.ctx;if(t.clearColor(0,0,0,0),!this.inputs.reduce(((t,r)=>(!r||!r.node.requestFrame(e))&&t),!0)&&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.reduce(((t,r)=>(!r||!r.node.requestFrame(e))&&t),!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let e=0;e<this.inputs.length;e++){let t=this.inputs[e];t&&this.draw2d(t.node.image,t.x,t.y,t.width,t.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:t,y:r,width:i,height:o,name:n}=this,a=Date.now(),s=(e-this.lastInfo.totalFrames)/((a-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:e,x:t,y:r,width:i,height:o,timestamp:a,fps:s,name:n},gb({parent:this.inputs.filter((e=>e)).map((e=>e.node.getInfo()))},this.lastInfo)}close(){super.close(),this.inputs.forEach((e=>{var t,r;if(e&&(null==(t=e.node)||t.disconnect(),e.positionBuffer&&this.context instanceof TV))try{null==(r=this.context.ctx)||r.deleteBuffer(e.positionBuffer)}catch(Mk){}}))}},mH=class extends gV{constructor(e,t){super(e,t.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log}),Ab(this,"_bgTexture"),Ab(this,"_waterMarkTexture"),Ab(this,"_lastMaskTexture"),Ab(this,"_lastMaskFbo"),Ab(this,"_textureValid",!1),Ab(this,"_selfieTextureValid",!1),Ab(this,"_selfieSegmentation"),Ab(this,"wasm"),Ab(this,"_prePrograme"),Ab(this,"_segmentationMask"),Ab(this,"_weixin",!1),t.selfieSegmentation&&(this._selfieSegmentation=t.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(t)}catch(Nk){e.log.error(Nk),e.destroy(new Lb({code:Ob.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(Nk.message||Nk)}))}}init(e){let t=e.Wasm,r=this.context.ctx;if(this.wasm=new t.AllIn1(r),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode="blur"===e.bg?1:e.bg instanceof HTMLImageElement?2:"green"===e.bg?3:0,e.waterMark){let{x:t,y:r,width:i,height:o}=e.waterMark;this.wasm.setWaterMark(t,r,i,o)}if(e.beautyParams){let{beauty:t,brightness:r,ruddy:i}=e.beautyParams;this.wasm.setBeauty(t,r,i,null==e?void 0:e.width,null==e?void 0:e.height)}if(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)),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)}}onPredict(e){var t;let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():null==this||this._selfieSegmentation.bindTexture(),r.activeTexture(r.TEXTURE1),null==(t=this._selfieSegmentation)||t.bindTexture2d(e),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),r.drawArrays(r.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var t,r,i,o;let n=this.context.ctx,{image:a}=this;this.tryVideoFrameCallback(a);let{videoWidth:s,videoHeight:c}=a;if(0===s||0===c)return!1;a.width=s,a.height=c;let l=!1;if(this.totalFrames)this._weixin?this.useTexture():null==(t=this._selfieSegmentation)||t.bindTexture(),l=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),l=this._textureValid,this._textureValid=!0}return this.width===s&&this.height===c&&l?n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,a):(this.resize(s,c),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,a)),this._weixin&&(n.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(n.activeTexture(n.TEXTURE1),null==(r=this._selfieSegmentation)||r.bindTexture2d(this._segmentationMask),n.bindFramebuffer(n.FRAMEBUFFER,this._lastMaskFbo||null)),n.drawArrays(n.TRIANGLE_STRIP,0,4),null==(i=this._selfieSegmentation)||i.bindTexture(),this._segmentationMask?n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,0,0,s,c):n.copyTexImage2D(n.TEXTURE_2D,0,n.RGBA,0,0,s,c,0)),null==(o=this._selfieSegmentation)||o.send(s,c),this.totalFrames||(n.activeTexture(n.TEXTURE2),n.bindTexture(n.TEXTURE_2D,this._bgTexture||null),n.activeTexture(n.TEXTURE3),n.bindTexture(n.TEXTURE_2D,this._waterMarkTexture||null),n.drawArrays(n.TRIANGLE_STRIP,0,4)),!1}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()}},fH=class extends sV{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 }"}),Ab(this,"yTextureRef"),Ab(this,"uTextureRef"),Ab(this,"vTextureRef"),Ab(this,"Y"),Ab(this,"U"),Ab(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 r=this.context.ctx,i=r.createTexture();return r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.bindTexture(r.TEXTURE_2D,null),r.uniform1i(r.getUniformLocation(this.program,e),t),i}render(e){let t=this.context.ctx,r=this.width,i=this.height;return this.useProgram(),t.viewport(0,0,r,i),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this.yTextureRef),t.texSubImage2D(t.TEXTURE_2D,0,0,0,r,i,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,r/2,i/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,r/2,i/2,t.LUMINANCE,t.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,t){super.resize(e,t);let r=this.context.ctx;r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e,t,0,r.LUMINANCE,r.UNSIGNED_BYTE,null),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e/2,t/2,0,r.LUMINANCE,r.UNSIGNED_BYTE,null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e/2,t/2,0,r.LUMINANCE,r.UNSIGNED_BYTE,null)}},_H=[e=>{e.codec="avc1.420028"},e=>{delete e.hardwareAcceleration}],gH=(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 EH=0,vH=class{constructor(e){Ab(this,"id",EH++),Ab(this,"trackDoneOB"),Ab(this,"startOB"),Ab(this,"stopOB"),Ab(this,"decoder"),Ab(this,"videoContext"),Ab(this,"gop",0),Ab(this,"gop_helper",0),Ab(this,"waitFirstKeyFrame",!0),Ab(this,"startTimestamp",0),Ab(this,"startTime",0),Ab(this,"startPerformanceTime",0),Ab(this,"inputFrameCount",0),Ab(this,"decodedFrameCount",0),Ab(this,"decodeFrameCount",0),Ab(this,"downgradeLevel",0),Ab(this,"lastDowngradeTime",0),Ab(this,"lastFrameDiff",0),Ab(this,"lastDecodeFrameTimestamp",0),Ab(this,"config"),Ab(this,"gop_before_configure",[]),Ab(this,"videoElement"),Ab(this,"type","wasm"),Ab(this,"goodType"),Ab(this,"renderer","2d"),Ab(this,"wasmOption"),Ab(this,"createDecoder"),Ab(this,"_decodeSink"),Ab(this,"isReported",!1),Ab(this,"track"),Ab(this,"stateChangeOB"),Ab(this,"failedReason");let{track:t,createDecoder:r}=e;if(this.stateChangeOB=Tx(),this.track=t,this.createDecoder=r,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=kx(t.availableState,GM.OFF),this.stopOB=Tx(this.trackDoneOB),"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),ex(this.stateChangeOB,TU(((e,r)=>(e!==r&&t.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:e,state:r}),r)),"INITIALIZED"),Zx(this.stopOB),QU()),this.start()}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let t=ex(this.pipe(this.track),Zx(this.stopOB),cx());ex(t,QU((()=>{this.track.stat.framesDecoded++}),(t=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(t," retryCount: ").concat(e)),FO.addFailedEvent({key:gH(this.type,this.renderer),error:t}),e>4)this.failedReason=t,this.stateChangeOB.next("FAILED");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")),FO.addSuccessEvent({key:gH(this.type,this.renderer)}),FO.addSuccessEvent({key:514704})}))),ex(t,Qx(1),QU((()=>{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&&!JO()&&(this.renderer="2d"),this.wasmOption.yuvMode="webgl"===this.renderer}decode(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var r,i;if(this.failedReason)return;this.inputFrameCount++;let o=new Uint8Array(e.data);if(!function(e){return 0===e[0]&&0===e[1]&&0===e[2]&&1===e[3]}(o)||o.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(o.subarray(0,5))),e;let n=!1;switch(31&o[4]){case 5:case 7:n=!0}if("configured"!==(null==(r=this.decoder)?void 0:r.state))return this.track.log.debug("not configured ".concat(this.inputFrameCount)),n&&(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(n?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!n)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount," ").concat(o.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=a,this.startTime=Date.now(),this.startPerformanceTime=$D()}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==(i=e.getMetadata)?void 0:i.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 r,i=e.mediaTrack;t.defer((()=>{var t;e.player.setCanvas(),e.setInputMediaStreamTrack(i),null==r||r.close(),null==(t=this.videoContext)||t.destroy(),delete this._decodeSink}));let{renderer:o,type:n}=this;e.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":for(let e=0;e<=_H.length;e++){let{supported:r}=yield VideoDecoder.isConfigSupported(this.config);if(r)break;if(e===_H.length)return void t.error(3);_H[e](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let i=0;if(r.on("videoFrame",(r=>{this.decodedFrameCount++,i++,(i<=10||i%500==0)&&e.log.debug("frame ".concat(i," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(r.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&("webCodecs"===this.type?this.checkDowngradeByFrameDiff():"wasm"===this.type&&this.checkDowngradeByTimestampDiff(r.timestamp)),t.next(r)})),r.on("error",(r=>{e.log.error(r),t.error("webCodecs"===n?4:8)})),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),"wasm"===n&&"webgl"===o){this.videoContext=new TV({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create(),this.videoContext.on(TV.UNAVAILABLE,(r=>{e.log.error(r),t.error(7)}));let i=new fH(this.videoContext);r.on("videoCodecInfo",(e=>i.resize(e.width,e.height))),r.on("videoFrame",(e=>{({y:i.Y,u:i.U,v:i.V}=e),1===this.downgradeLevel?this.decodedFrameCount%2==0&&i.render(this.decodedFrameCount):i.render(this.decodedFrameCount)})),e.source=i,e.player.setCanvas(this.videoContext._canvas,2)}else if("videoFrame"===o){e.player.setCanvas();let t=new MediaStreamTrackGenerator({kind:"video"}),i=t.writable.getWriter();e.setInputMediaStreamTrack(t),r.on("videoFrame",(e=>i.write(e)))}else{this.videoContext=new IV({frameRate:15,logger:e.log,name:e.userId}),this.videoContext.create({alpha:!1});let t=this.videoContext.createVideoImageSource();r.on("videoFrame",(e=>{t.image=e,t.update()}));let i=new dV(this.videoContext,{name:"remotePlayer",logger:e.log});t.connect(i),e.source=t,e.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(kk){e.log.error(kk),t.error("webCodecs"===n?2:6)}}))}},yH=class extends lH.EventEmitter{constructor(e){super(),this.room=e,Ab(this,"videoContext"),Ab(this,"_glVideoContext"),Ab(this,"_2dVideoContext"),Ab(this,"destination"),Ab(this,"smallVideoContext"),Ab(this,"smallDestination"),Ab(this,"smallTrackSource"),Ab(this,"smallImageSource"),Ab(this,"_isMirror",!1),Ab(this,"cameraTrack"),Ab(this,"cameraNode"),Ab(this,"mirrorNode"),Ab(this,"mixNode"),Ab(this,"screenTrack"),Ab(this,"screenNode"),Ab(this,"selfModel",!1),Ab(this,"blurRadius",3),Ab(this,"arTrack"),Ab(this,"Wasm"),Ab(this,"waterMarkNode"),Ab(this,"_waterMarkOption"),Ab(this,"watermarkImageList",[]),Ab(this,"_beautyParams"),Ab(this,"isUsingArTrack",!1),Ab(this,"_isMixScreen",!1),Ab(this,"_virtualBackground"),Ab(this,"_virtualBackgroundAbortCallback"),Ab(this,"virtualBackgroundInstance"),Ab(this,"_bgAssetPath"),Ab(this,"log",Tk.createLogger({id:"vm"})),Ab(this,"_checkId",0),Ab(this,"_use2d",!1),Ab(this,"_autoSwitchRenderMode",!0),Ab(this,"_selfieSegmentation"),Ab(this,"encodePipeline",[]),Ab(this,"decodePipeline",[]),e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new IV({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}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())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new IV({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 TV({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(TV.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(Gb){this.emit("error",Gb)}}enablePrintDetail(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3;this._checkId=YM.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(),YM.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(qN||this._isMixScreen||this._isMirror||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?FO.addFailedEvent({key:t,error:e}):FO.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 TV({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}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}setSmallVideo(e,t){if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new mV(this.smallVideoContext,e,this.log),this.smallVideoContext.on(TV.UNAVAILABLE,(e=>{this.log.warn("small video context lost",e)}))}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.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),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 r=this.cameraTrack,{small:i,player:o}=r;this.setSmallVideo(i,e),qN&&o.setCanvas(e);let n=e&&(null==(t=this.destination)?void 0:t.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),n=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info("set main output ".concat(n?n.label:"no output track")),r.setOutputMediaStreamTrack(n)}catch(Nk){this.log.error("set main output failed",Nk)}}update(){return Rb(this,null,(function*(){var e,t;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:i}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams?(this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),16===$N?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof gV?(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 gV?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new pV(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new mH(this.videoContext,{input:this.cameraTrack.mediaTrack,width:r.width,height:r.height,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=i.frameRate,this._use2d){let r=this.cameraNode;r.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new dH(this.videoContext,this.log)),r=r.connect(this.mirrorNode),r.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new pH(this.videoContext,this.log),r.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),null==(e=this.waterMarkNode)||e.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),null==(t=this.screenNode)||t.connect(this.mixNode,{zIndex:0}),r=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))),r.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext._canvas)}))}changeInput(e){var t,r,i,o;if(e instanceof VP)return this.log.info("change screen input",null==(t=e.mediaTrack)?void 0:t.label),this.setScreenTrack(e);if(e instanceof PP)return this.log.info("change video input",null==(r=e.mediaTrack)?void 0:r.label),this.setCameraTrack(e);if(e instanceof AV){this.log.info("change remote input",null==(i=e.mediaTrack)?void 0:i.label);let t=e.mediaTrack;return e.setOutputMediaStreamTrack(t)}this.log.warn("change unknown input",null==(o=e.mediaTrack)?void 0:o.label)}removeInput(e){var t;e instanceof VP?(null==(t=this.screenNode)||t.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof PP?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof AV&&e.source&&e.source.context.destroy()}setCameraTrack(e){return Rb(this,null,(function*(){this.cameraTrack=e,this.update()}))}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,t){return Rb(this,null,(function*(){let r=document.createElement("canvas");t&&e&&(r.height=t,r.width=e);let i=r.getContext("2d");if(!i)throw new Lb({code:Ob.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:r,y:o,width:n,height:a}=e;i.drawImage(t,r,o,n,a)})),mC(r.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*(){var t,r;let i;try{i=yield mC((null==e?void 0:e.imageElement)||e.imageUrl)}catch(u){throw new Lb({code:Ob.INVALID_PARAMETER,message:"load image failed, url: ".concat(e.imageUrl)})}let{x:o=0,y:n=0,width:a=i.width,height:s=i.height,type:c="watermark",zIndex:l=2}=e;this.watermarkImageList.some((e=>e.type===c))?(this.watermarkImageList=this.watermarkImageList.filter((e=>e.type!==c)),this.pushWaterMarkImageList({x:o,y:n,width:a,height:s,image:i,zIndex:l,type:c,imageUrl:e.imageUrl}),i=yield this.getWatermarkImage(null==(t=this.cameraTrack)?void 0:t.settings.width,null==(r=this.cameraTrack)?void 0:r.settings.height),this._waterMarkOption={x:0,y:0,width:i.width,height:i.height,image:i},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(i.width,i.height),this.waterMarkNode.image=i):this.update()):(this.pushWaterMarkImageList({x:o,y:n,width:a,height:s,image:i,zIndex:l,type:c,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,t,r;null==(e=this.waterMarkNode)||e.close(),delete this.waterMarkNode,delete this._waterMarkOption;let i=yield this.getWatermarkImage(null==(t=this.cameraTrack)?void 0:t.settings.width,null==(r=this.cameraTrack)?void 0:r.settings.height);this._waterMarkOption={x:0,y:0,width:i.width,height:i.height,image:i},this.update()}))}setVirtualBackground(e){return Rb(this,null,(function*(){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 mC(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}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 Lb({code:Ob.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._isMirror||(null==(t=this.mirrorNode)||t.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}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 vH(e)}clear(){var e;null==(e=this.videoContext)||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor(e){let{processor:t,type:r}=e;var i;this.encodePipeline.includes(t)||(this.encodePipeline[r]=t,null==(i=this.room)||i.enableInsertableStreams())}addDecodeProcessor(e){let{processor:t,type:r}=e;var i;this.decodePipeline.includes(t)||(this.decodePipeline[r]=t,null==(i=this.room)||i.enableInsertableStreams())}removeEncodeProcessor(e){let{type:t}=e;this.encodePipeline[t]=void 0}removeDecodeProcessor(e){let{type:t}=e;this.decodePipeline[t]=void 0}};Ib([function(e){return yP(((t,r)=>function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return Rb(this,null,(function*(){try{return yield t.apply(this,i)}catch(Nk){e.call(this,Nk)}}))}))}((function(e){this.log.error("update failed",e)}))],yH.prototype,"update",1);var TH=0,IH=class extends GM{constructor(e){super("room"),Ab(this,"seq",++TH),Ab(this,"sdkAppId"),Ab(this,"userId"),Ab(this,"userSig"),Ab(this,"privateMapKey"),Ab(this,"latencyLevel"),Ab(this,"tinyId"),Ab(this,"scene"),Ab(this,"roomId"),Ab(this,"useStringRoomId"),Ab(this,"role","anchor"),Ab(this,"joinParams",null),Ab(this,"localTracks",new Set),Ab(this,"enableAutoPlayDialog",!0),Ab(this,"autoReceiveAudio",!0),Ab(this,"autoReceiveVideo",!0),Ab(this,"proxy_ws"),Ab(this,"proxy_wt"),Ab(this,"proxy_unified"),Ab(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}}),Ab(this,"keyPointManager"),Ab(this,"audioManager"),Ab(this,"videoManager"),Ab(this,"callDurationCalculator"),Ab(this,"badCaseDetector"),Ab(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),Ab(this,"videoDecodeFallbackType"),Ab(this,"_isUsingCachedSchedule",!1),Ab(this,"_log",Tk.createLogger({id:"r".concat(this.seq)})),Ab(this,"_joinedTimestamp",0),Ab(this,"_sdkType"),Ab(this,"heartbeatReport"),Ab(this,"quality"),Ab(this,"enableSEI"),Ab(this,"isDestroyed",!1),this.useStringRoomId=!!e.useStringRoomId,HD(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),HD(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),HD(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new nH({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new sH({room:this}),this.badCaseDetector=new cH({room:this}),this.audioManager=new jP(this),this.videoManager=new yH(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(FD(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(MD(e)){let{websocketProxy:t,webtransportProxy:r,loggerProxy:i,scheduleProxy:o,unifiedProxy:n}=e;this.proxy_ws=t,this.proxy_wt=r,this.proxy_unified=n,n?(ZF([n,n]),Yb("https://".concat(n))):(i&&Yb(i),o&&ZF(o))}gk.once(vk.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({sched_domain:QF.main,sched_back_domain:QF.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 r of this.quality.downlinkInfo)t.downlinksRTT[r.userId]=r.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 r={};return e.remotePublishedUserMap.forEach((e=>{let i="auxiliary"===t?e.remoteAuxiliaryTrack:e.remoteVideoTrack;r[e.userId]=i.stat})),r}()}))}checkDestroy(){if(this.isDestroyed)throw new Lb({code:Ob.INVALID_OPERATION,message:CO({key:RO.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(bO.INVALID_DESTROY),new Lb({code:Ob.INVALID_OPERATION,message:CO({key:RO.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,gk.emit(vk.ROOM_DESTROY,{room:this})}schedule(e,t){return Rb(this,null,(function*(){var r,i,o;let n=$D();try{let{isCached:a,result:s,detailCost:c}=yield $F({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:Hb,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(uC(s,{keysToExclude:["username","credential"]}))),a&&gk.once(vk.JOIN_RECEIVED_CMD_RES,(()=>this.sendAbilityStatus({scheduleCache:1}))),this.scheduleResult=gb(gb({},this.scheduleResult),s),BD(null==(r=s.config)?void 0:r.retryCount)&&jw(s.config.retryCount),FD(null==(i=s.config)?void 0:i.loggerDomain)&&Yb(s.config.loggerDomain),this.videoDecodeFallbackType=(null==(o=s.config)?void 0:o.videoDecodeFallback)||this.videoDecodeFallbackType,gk.emit(vk.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:c}),FO.addSuccessEvent({key:521700,cost:$D()-n,split:50})}catch(a){throw FO.addFailedEvent({key:521700,error:a}),a}}))}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}};var AH={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},SH="__INLINE__WORKER__",RH="__INLINE__WASM__",{debug:bH}=console;AH.debug||(console.debug=()=>{});var wH,DH=!SH.startsWith("__"),CH=!RH.startsWith("__");function NH(){let e="".concat(AH.assetsPath?"".concat(AH.assetsPath,"/"):"","worker.js");return DH?URL.createObjectURL(new Blob([atob(SH)],{type:"application/javascript"})):e.startsWith("http")?fetch(e).then((e=>e.blob().then((e=>URL.createObjectURL(e))))):e}function kH(){return Rb(this,null,(function*(){let e=AH.assetsPath?"".concat(AH.assetsPath,"/"):"";return wH||(wH=CH?(new TextEncoder).encode(atob(RH)).buffer:yield fetch("".concat(e,"av_processing.wasm")).then((e=>e.arrayBuffer())),wH)}))}var OH=new class{constructor(){Ab(this,"playPort"),Ab(this,"playPortSent",!1),Ab(this,"worklet"),Ab(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return Rb(this,null,(function*(){let e=PL(),t=NH();try{yield e.audioWorklet.addModule("string"==typeof t?t:yield t),Tk.info("global audio player worklet addModule success",t)}catch(Ww){throw Tk.error("global audio player worklet addModule failed:",Ww),Ww}return this.worklet=new AudioWorkletNode(e,"global-audio-player",{processorOptions:{wasm:yield kH(),flag:AH},numberOfInputs:2}),Tk.info("global audio player worklet created",e.state),this.worklet.connect(e.destination),this.playPort=this.worklet.port,this.playPort}))}playAudio(e){return Rb(this,null,(function*(){this.playPortSent||(this.playPortSent=!0,e(yield this.init()))}))}},MH="undefined"!=typeof self&&(!("top"in self)||self===top)&&"showOpenFilePicker"in self&&"showOpenFilePicker";MH?Promise.resolve().then((function(){return UH})):Promise.resolve().then((function(){return GH})),MH?Promise.resolve().then((function(){return HH})):Promise.resolve().then((function(){return WH}));var LH=MH?Promise.resolve().then((function(){return jH})):Promise.resolve().then((function(){return KH}));function PH(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(this,null,(function*(){return(yield LH).default(...t)}))}var xH=e=>Rb(void 0,null,(function*(){let t=yield e.getFile();return t.handle=e,t})),UH={__proto__:null,default:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(void 0,[...t],(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];return function*(){Array.isArray(e)||(e=[e]);let t=[];e.forEach(((e,r)=>{t[r]={description:e.description||"Files",accept:{}},e.mimeTypes?e.mimeTypes.map((i=>{t[r].accept[i]=e.extensions||[]})):t[r].accept["*/*"]=e.extensions||[]}));let r=yield window.showOpenFilePicker({id:e[0].id,startIn:e[0].startIn,types:t,multiple:e[0].multiple||!1,excludeAcceptAllOption:e[0].excludeAcceptAllOption||!1}),i=yield Promise.all(r.map(xH));return e[0].multiple?i:i[0]}()}))}};function VH(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return VH=function(e){this.s=e,this.n=e.next},VH.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new VH(e)}var FH,BH=function(e,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return Rb(void 0,[e,t,...i],(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.name,i=arguments.length>3?arguments[3]:void 0;return function*(){let o=[],n=[];var a,s=!1,c=!1;try{for(var l,u=function(e){var t,r,i,o=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,i=Symbol.iterator);o--;){if(r&&null!=(t=e[r]))return t.call(e);if(i&&null!=(t=e[i]))return new VH(t.call(e));r="@@asyncIterator",i="@@iterator"}throw new TypeError("Object is not async iterable")}(e.values());s=!(l=yield u.next()).done;s=!1){let a=l.value,s="".concat(r,"/").concat(a.name);"file"===a.kind?n.push(a.getFile().then((t=>(t.directoryHandle=e,t.handle=a,Object.defineProperty(t,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>s}))))):"directory"!==a.kind||!t||i&&i(a)||o.push(BH(a,t,s,i))}}catch(d){c=!0,a=d}finally{try{s&&null!=u.return&&(yield u.return())}finally{if(c)throw a}}return[...(yield Promise.all(o)).flat(),...yield Promise.all(n)]}()}))},HH={__proto__:null,default:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(void 0,[...t],(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function*(){e.recursive=e.recursive||!1,e.mode=e.mode||"read";let t=yield window.showDirectoryPicker({id:e.id,startIn:e.startIn,mode:e.mode});return BH(t,e.recursive,void 0,e.skipDirectory)}()}))}},jH={__proto__:null,default:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return Rb(void 0,[e,...r],(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[{}],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;return function*(){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let n=[],a=null;if(e instanceof Blob&&e.type?a=e.type:e.headers&&e.headers.get("content-type")&&(a=e.headers.get("content-type")),t.forEach(((e,t)=>{n[t]={description:e.description||"Files",accept:{}},e.mimeTypes?(0===t&&a&&e.mimeTypes.push(a),e.mimeTypes.map((r=>{n[t].accept[r]=e.extensions||[]}))):a?n[t].accept[a]=e.extensions||[]:n[t].accept["*/*"]=e.extensions||[]})),r)try{yield r.getFile()}catch(bk){if(r=null,i)throw bk}let s=r||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:n,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!r&&o&&o(s);let c=yield s.createWritable();return"stream"in e?(yield e.stream().pipeTo(c),s):"body"in e?(yield e.body.pipeTo(c),s):(yield c.write(yield e),yield c.close(),s)}()}))}},GH={__proto__:null,default:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(void 0,[...t],(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];return function*(){return Array.isArray(e)||(e=[e]),new Promise(((t,r)=>{let i=document.createElement("input");i.type="file";let o=[...e.map((e=>e.mimeTypes||[])),...e.map((e=>e.extensions||[]))].join();i.multiple=e[0].multiple||!1,i.accept=o||"",i.style.display="none",document.body.append(i);let n=e=>{"function"==typeof a&&a(),t(e)},a=e[0].legacySetup&&e[0].legacySetup(n,(()=>a(r)),i),s=()=>{window.removeEventListener("focus",s),i.remove()};i.addEventListener("click",(()=>{window.addEventListener("focus",s)})),i.addEventListener("change",(()=>{window.removeEventListener("focus",s),i.remove(),n(i.multiple?Array.from(i.files):i.files[0])})),"showPicker"in HTMLInputElement.prototype?i.showPicker():i.click()}))}()}))}},WH={__proto__:null,default:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(void 0,[...t],(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];return function*(){return Array.isArray(e)||(e=[e]),e[0].recursive=e[0].recursive||!1,new Promise(((t,r)=>{let i=document.createElement("input");i.type="file",i.webkitdirectory=!0;let o=e=>{"function"==typeof n&&n(),t(e)},n=e[0].legacySetup&&e[0].legacySetup(o,(()=>n(r)),i);i.addEventListener("change",(()=>{let t=Array.from(i.files);e[0].recursive?e[0].recursive&&e[0].skipDirectory&&(t=t.filter((t=>t.webkitRelativePath.split("/").every((t=>!e[0].skipDirectory({name:t,kind:"directory"})))))):t=t.filter((e=>2===e.webkitRelativePath.split("/").length)),o(t)})),"showPicker"in HTMLInputElement.prototype?i.showPicker():i.click()}))}()}))}},KH={__proto__:null,default:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return Rb(void 0,[e,...r],(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){Array.isArray(t)&&(t=t[0]);let r=document.createElement("a"),i=e;"body"in e&&(i=yield function(e,t){return Rb(this,null,(function*(){let r=e.getReader(),i=new ReadableStream({start:e=>function t(){return Rb(this,null,(function*(){return r.read().then((r=>{let{done:i,value:o}=r;if(!i)return e.enqueue(o),t();e.close()}))}))}()}),o=new Response(i),n=yield o.blob();return r.releaseLock(),new Blob([n],{type:t})}))}(e.body,e.headers.get("content-type"))),r.download=t.fileName||"Untitled",r.href=URL.createObjectURL(yield i);let o=()=>{"function"==typeof n&&n()},n=t.legacySetup&&t.legacySetup(o,(()=>n()),r);return r.addEventListener("click",(()=>{setTimeout((()=>URL.revokeObjectURL(r.href)),3e4),o()})),r.click(),null}()}))}},zH=class{constructor(e){this.name=e,Ab(this,"ready"),Ab(this,"worker"),Ab(this,"ports"),Ab(this,"ids",1),Ab(this,"transactions",new Map),Ab(this,"log"),Ab(this,"addTransaction",(e=>(this.transactions.set(++this.ids,e),this.ids)))}postMessage(e,t){var r;null==(r=this.worker)||r.postMessage(e,t)}create(e){return Rb(this,null,(function*(){if(this.ready)return this.ready;e||(e=this.name),console.time("createWorker_".concat(e));let t=NH(),r=new Worker("string"==typeof t?t:yield t,{name:e});return this.worker=r,this.ready=new Promise(((t,i)=>Rb(this,null,(function*(){r.onmessage=r=>{let{data:{id:o,type:n,payload:a}}=r;var s;if(o)null==(s=this.transactions.get(o))||s(a),this.transactions.delete(o);else switch(n){case"error":console.timeEnd("createWorker_".concat(e)),console.warn("worker error:",a),i(a);break;case"ready":console.timeEnd("createWorker_".concat(e)),t(this);break;case"updateAFSM":if(a.value){let e="string"==typeof a.old?a.old:"".concat(a.old.action,"ing"),t="string"==typeof a.value?a.value:"".concat(a.value.action,"ing");console.log(lC(),a.group,a.name,e,"👉",t)}break;case"log":console.log(a);break;case"glog":window.dispatchEvent(new CustomEvent(n,{detail:a}))}},r.postMessage({wasm:yield kH(),flag:AH},this.ports)}))))}))}destroy(){var e;console.log("destroy worker",this.name),delete this.ready,null==(e=this.worker)||e.terminate()}},qH=class{constructor(e,t,r){this.worker=e,Ab(this,"channel",new MessageChannel),Ab(this,"ready"),this.ready=new Promise(((e,r)=>{this.worker.postMessage({id:this.worker.addTransaction(e),payload:t},[this.channel.port2])})).then((e=>(0===e.err&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),e)))}postMessage(){this.channel.port1.postMessage(...arguments)}destroy(){0==--this.worker.sessionCount&&this.worker.destroy()}},JH=new class e extends zH{constructor(){super("main"),Ab(this,"switchValue",new Map),Ab(this,"extendChannel"),Ab(this,"sessionCount",0)}setSwitchValue(e,t){var r;this.switchValue.set(e,t),null==(r=this.extendChannel)||r.port1.postMessage([e,t])}create(){return Rb(this,null,(function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Sb(e.prototype,this,"create").call(this),this.switchValue.forEach(((e,t)=>{this.extendChannel.port1.postMessage([t,e])})),this)}))}};function YH(e){return Rb(this,null,(function*(){yield JH.create(),gk.emit(vk.JOIN_SEND_CMD,{room:this});let t=new qH(JH,e,(e=>{let r=e.data;if("string"==typeof r)this.onWorkerEvent(r);else if(null==r)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:e,payload:t}=r;this.onWorkerEvent(e,t)}})),{err:r,data:i}=yield t.ready;if("number"==typeof r){if(gk.emit(vk.JOIN_RECEIVED_CMD_RES,{room:this,code:r}),0===r)return Object.assign(this,i,{session:t});throw new Lb({code:Ob.JOIN_ROOM_FAILED,extraCode:Number(r),message:CO({key:RO.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:r,errorMsg:""}})})}throw r}))}function XH(e){return Rb(this,null,(function*(){JH.setSwitchValue("useAINS",e)}))}function $H(e){return Rb(this,null,(function*(){JH.setSwitchValue("useV2",e)}))}function QH(e){let t=new MediaStreamTrackGenerator({kind:"audio"});e.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:e.tinyId,writable:t.writable}},[t.writable])}function ZH(e){return Rb(this,null,(function*(){var t;this._log.info("pull video",e);let r=Date.now(),i=0,o=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:e.mediaType,tinyId:e.tinyId}},[o.port1]),(t=e.stat).framesReceived||(t.framesReceived=0),ex(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=Object.defineProperties(Tx(),{postMessage:{value:e.postMessage.bind(e)},port:{get:()=>e,set(t){e.onmessage=WP,e.onmessageerror=WP,e=t,i()}}});function i(){e.onmessage=i=>{i.data?i.ports.length||t?r.next(i):r.next(i.data):(r.complete(),e.close())},e.onmessageerror=t=>{r.error(t),e.close()}}return i(),r}(o.port2),Zx(kx(e,GM.INIT)),QU((t=>{let{data:o,packetsReceived:n}=t;e.stat.packetsReceived=n,e.stat.framesReceived++,i++;let a,s=31&o[4];if(i<=10){let e=Array.from(o.slice(0,10)).map((e=>e.toString(16).padStart(2,"0"))).join(" ");this._log.info("Frame ".concat(i," - Size: ").concat(o.length," bytes, Type: ").concat(s,", Timestamp: ").concat(Date.now()-r,"ms First 10 bytes: ").concat(e))}switch(s){case 5:case 7:a="key";break;default:a="delta"}e.isAvailable?e.decodeFrame({data:o.buffer,type:a,timestamp:1e3*(Date.now()-r)}):console.warn("track is not available")}),(()=>{}),(()=>{o.port2.postMessage(null),o.port2.close()})))}))}Object.defineProperties(window,{useAINS:{set:XH},useWt:{set:function(e){return Rb(this,null,(function*(){JH.setSwitchValue("useWt",e)}))}},enableDebug:{set(e){console.debug=e?bH:()=>{},JH.setSwitchValue("enableDebug",e)}},useV2:{set:$H},dump:{value(){if(FH||(console.warn("dump audio will be activated at next time join room"),FH=[]),!FH.length)return void console.warn("no audio data to dump,try it later");let e=[];return FH.forEach((t=>{e.push(new Uint16Array([t.length])),e.push(t)})),PH(new Blob(e),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"audio",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,r=[],i=new Promise((i=>{let o=new MessageChannel;JH.extendChannel.port1.postMessage(["dump",e],[o.port1]),o.port2.onmessage=n=>{let{data:a}=n;console.log(a),r.push(a),r.length>t&&(o.port2.onmessage=null,JH.extendChannel.port1.postMessage(["dump",e]),o.port2.close(),i(new Blob(r)))}}));return PH(i,{fileName:e,extensions:[".pcm"]})}},hardDec:{set(e){switch(e){case!0:AH.useHardDecoder="prefer-hardware";break;case!1:AH.useHardDecoder="prefer-software";break;default:AH.useHardDecoder="no-preference"}}}});var ej=[];function tj(e){var t;let r=Tx();if("joined"!==this.state)throw new Error("Room is not joined");if("publish"===e.state)return;for(let l=0;l<=ej.length;l++)if(!ej[l]){ej[l]=this,this.index=l;break}let i=e.profile;this._log.info("start push audio",this.index,i);let o=new MessageChannel,n=e.enableEncodeFrame?new MessageChannel:null;null==(t=this.session)||t.postMessage({cmd:"pushAudio",payload:gb({index:this.index},i)},n?[o.port2,n.port2]:[o.port2]),o.port1.onmessage=t=>{null==t.data||("number"==typeof t.data?r.next(t.data):n&&n.port1.postMessage(Eb(gb({},t.data),{data:new Uint8Array(e.encodeFrame({data:t.data.data.buffer,timestamp:t.data.timestamp}).data)})))};let a,s=new MediaStream,c=e=>{let t=s.getAudioTracks()[0];t&&(a.disconnect(),s.removeTrack(t)),s.addTrack(e),this._log.info("push audio track:",e.readyState,e.getSettings().deviceId),a=PL().createMediaStreamSource(s),a.connect(OH.worklet,0,this.index)};ex(kx(e,"output-media-track-changed"),Zx(kx(e,"capture")),QU(c,console.error,(()=>{this._log.info("stop push audio",i),e.volume=0,a.disconnect(),ej[this.index]=null,n&&n.port1.postMessage(null),o.port1.postMessage(null)}))),ex(r,ZU((t=>e.volume=t)),OU(lV(1e3)),QU((()=>{e.volume=0}))),c(e.outMediaTrack)}var rj=class{constructor(e,t,r,i){this.localTrack=e,this.type=t,this.config=r,this.port=i,Ab(this,"track"),Ab(this,"label"),Ab(this,"insertKeyFrame",!0),Ab(this,"encoder"),Ab(this,"tsMap",new Map),e._log.info("create Video Encoder",r)}trans(e,t,r){let i=this.recreate(r);t.signal.addEventListener("abort",(()=>{i.close()}));let o=0;return e.pipeThrough(new TransformStream({transform:(e,t)=>{"configured"===i.state&&(this.tsMap.set(o,Date.now()),this.encode(e),o++,t.enqueue(e))}}),t)}encode(e){this.encoder.encode(e,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(e,t,r){let i=this.recreate(r),o=0;e.pipeTo(new WritableStream({write:e=>{"configured"===i.state&&(o<10&&console.log("capture ".concat(this.label," track frame:"),o,Date.now(),e.timestamp,e.displayWidth,e.displayHeight),(e.displayWidth!==this.config.width||e.displayHeight!==this.config.height)&&(console.log("resize video track frame:",e.displayWidth,e.displayHeight,this.config.width,this.config.height),this.configure({width:e.displayWidth,height:e.displayHeight})),this.tsMap.set(o,Date.now()),this.encode(e),o<10&&console.log("encode ".concat(this.label," track frame:"),o),o++,e.close())}}),t).catch((e=>{console.warn(e),i.close()}))}recreate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0,i=new VideoEncoder({output:i=>{let o=this.tsMap.get(r);if(this.tsMap.delete(i.timestamp),r<10&&(0===r&&0===t&&gk.emit(vk.SEND_FIRST_VIDEO_FRAME,{room:e}),console.log("encoded ".concat(this.label," track frame:"),r,Date.now(),i.timestamp)),r++,!1===this.track.enabled)return;let n=null;if(this.localTrack.enableEncodeFrame){n=new Uint8Array(i.byteLength),i.copyTo(n);let e=this.localTrack.encodeFrame({data:n.buffer},3===this.type);n=new Uint8Array(e.data)}n?(this.localTrack.stat.bytesSent+=n.length,this.port.postMessage({chunk:{type:i.type,timestamp:i.timestamp,data:n,duration:i.duration},timestamp:o},[n.buffer])):(this.localTrack.stat.bytesSent+=i.byteLength,this.port.postMessage({chunk:i,timestamp:o}))},error:r=>{console.warn(r,this.config),setTimeout((()=>this.recreate(e,t+1)),100)}});return this.encoder=i,this.configure({}),i}configure(e){return Rb(this,null,(function*(){var t;Object.assign(this.config,e);for(let e=0;e<=_H.length;e++){let{supported:t}=yield VideoDecoder.isConfigSupported(this.config);if(t)break;if(e===_H.length)return;_H[e](this.config)}null==(t=this.encoder)||t.configure(this.config)}))}close(){this.port.postMessage(null),this.port.close()}};function ij(e,t){return Rb(this,null,(function*(){let r=2===e.mediaType,i=r?"screen":"video",o={codec:"avc1.420028",avc:{format:"annexb"},hardwareAcceleration:AH.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:1e3*t.profile.bitrate},n=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[n.port1]);let a=new rj(e,t.type,o,n.port2);return n.port2.onmessage=e=>{if(260===e.data)a.insertKeyFrame=!0;else if(!r){let{bitrate:t}=e.data;kD({configureBr:[e.data.bitrate,t]}),a.configure({bitrate:t})}},this._log.info("start push",i,t),a}))}function oj(e){return Rb(this,null,(function*(){var t;let r=2===e.mediaType,i=r?"screen":"video",o={type:r?7:2,profile:e.profile,trackType:r?"screen":"camera",crypto:!(null==(t=e.manager)||!t.encodePipeline[0])};!r&&e.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(o.trackType="canvas");let{trackType:n}=o,{width:a,height:s}=e.outMediaTrack.getSettings();o.profile.width=a,o.profile.height=s;let c=yield ij.call(this,e,o);this._log.info("VideoEncoder created",o);let l,u=t=>Rb(this,null,(function*(){if(null==l||l.abort("track changed"),!t)return;l=new AbortController;let{width:r,height:o,displaySurface:a}=t.getSettings();r&&(c.config.width=r),o&&(c.config.height=o);let s=DC.match(/Chrome\/(\d+)/);"114"===(null==s?void 0:s[1])&&"browser"===a&&delete c.config.hardwareAcceleration,this._log.info("push",i,"track:",t.readyState,t.getSettings());let u=new MediaStreamTrackProcessor({track:t}).readable,d="small"in e&&e.small;d?(this.smallEncoder||(this.smallEncoder=yield ij.call(this,e,{profile:d,type:3,trackType:n})),this.smallEncoder.track=t,this.smallEncoder.label="small",u=this.smallEncoder.trans(u,l,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),c.track=t,c.label=i,c.start(u,l,this)}));return ex(kx(e,"output-media-track-changed"),Zx(kx(e,"capture")),QU(u,console.error,(()=>{var e;this._log.info("stop push",i,o),l.abort("unpublish"),c.close(),null==(e=this.smallEncoder)||e.close()}))),u(e.outMediaTrack)}))}var nj=class e extends GM{constructor(t){var r,i;super(null!=(i=null==(r=t.roomid)?void 0:r.toString())?i:t.name,"volumeEvaluation"),this.room=t,Ab(this,"enableInBackground",!1),Ab(this,"interval",400),t.on("joined",(()=>{this.emit(e.INTERVALCHANGED,this.interval)})),ex(kx(this,e.INTERVALCHANGED),NU((e=>"joined"===this.room.state?this.room.fromWorker("getAudioEnergy",e):ex((e=>t=>{let r=0,i=performance.now();ex(cV,SU((t=>(t-i)/e|0)),Xx((e=>e!=r&&(r=e,!0))))(t)})(e),SU((()=>[]))))),QU((e=>{e.forEach((e=>{this.room.remotePublishedUserMap.has(e.userId)&&(this.room.remotePublishedUserMap.get(e.userId).remoteAudioTrack.volume=e.volume)})),(!document.hidden||this.enableInBackground)&&this.state==GM.ON&&this.room.emit("audio-volume",e)})))}start(t,r){this.interval=t,this.enableInBackground=r,this.emit(e.INTERVALCHANGED,this.interval)}stop(){}};Ab(nj,"INTERVALCHANGED","intervalChanged"),Ib([BM([GM.INIT,GM.OFF],GM.ON)],nj.prototype,"start",1),Ib([BM([],GM.OFF)],nj.prototype,"stop",1);var aj=nj,sj=class extends IH{constructor(e){super(e),Ab(this,"index",0),Ab(this,"session"),Ab(this,"tinyid"),Ab(this,"roomid"),Ab(this,"openid"),Ab(this,"socketid"),Ab(this,"relayip"),Ab(this,"clientip"),Ab(this,"remotePublishedUserMap",new Map),Ab(this,"bussinessInfo"),Ab(this,"token"),Ab(this,"audioVolumeEvalution",new aj(this)),Ab(this,"enableAIVoice",XH),Ab(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:mk(),uint32_device_type:0,str_os_verion:fk(),uint32_link_type:1,str_client_version:Hb,uint32_net_type:dw[Vb.getNetworkType()],ua:navigator.userAgent,version:""}}),Ab(this,"joinAbortController",new AbortController),Ab(this,"smallAbortCtrl"),Ab(this,"smallEncoder"),e.tinyId&&(this.tinyId=e.tinyId,$H(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return Rb(this,null,(function*(){}))}getLogger(){return this._log}postMessage(e,t){this.session&&(e?"string"==typeof e?this.session.postMessage({cmd:e,payload:t}):this.session.postMessage(e,t):this.session.postMessage(null))}sendMessage(e,t){return new Promise(((r,i)=>{"joined"!=this.state&&i("join room first");let o=new MessageChannel;this.postMessage({cmd:e,payload:t},[o.port1]),o.port2.onmessageerror=i,o.port2.onmessage=e=>{o.port2.close(),r(e.data)}}))}fromWorker(e,t){if("joined"!=this.state)throw"join room first";return r=>{var i;let o=new MessageChannel;o.port2.onmessage=e=>{e.data?r.next(e.data):r.complete()},o.port2.onmessageerror=e=>r.error(e),r.defer((()=>{o.port2.postMessage(null),o.port2.close()})),null==(i=this.session)||i.postMessage({cmd:e,payload:t},[o.port1])}}switchRole(e){return Rb(this,null,(function*(){if(e!==this.role)return this._log.info("switchRole() => switch role to: ".concat(e)),"audience"==e&&this.unpublish(...this.localTracks),this.sendMessage("switchRole","audience"==e?21:20).then((t=>{this.role=e}))}))}join(e,t,r){return Rb(this,null,(function*(){var i,o,n;let a=Vb.getEnv(),s=jO(),c={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:r,params:e,proxy_wt:null==(i=this.proxy_wt)?void 0:i.replace("https://",""),proxy_ws:null==(o=this.proxy_ws)?void 0:o.replace("wss://",""),proxy_cloud:null!=(n=this.scheduleResult.iceServers)&&n.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:a,osName:dk(),browserInfo:jO(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:Hb,browserVersion:s.browserName+s.browserVersion,closeLocalMedia:!0,trtcscene:"live"===t?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield YH.call(this,c),console.log(this),OH.playAudio((e=>this.postMessage({cmd:"setAudioWorkletPort"},[e]))),this.checkDestroy()}))}leave(){return Rb(this,null,(function*(){this.remotePublishedUserMap.forEach((e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()})),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach(((e,t)=>t.unpublish()))}))}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2e3,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,t)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return Rb(this,null,(function*(){ex((e=>Rb(this,null,(function*(){let t=new MessageChannel;t.port2.onmessage=r=>{r.data?e.next({data:r.data,port:t.port2}):e.complete()},t.port2.onmessageerror=t=>e.error(t),e.defer((()=>{t.port2.postMessage(null),t.port2.close()})),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[t.port1])}))),Zx(kx(this,"left")),QU((e=>{let{data:t,port:r}=e,i=this.audioManager.decodePipeline[0]({frame:{data:t.data.buffer}});r.postMessage(Eb(gb({},t),{data:new Uint8Array(i.data)}),[i.data])})))}))}onWorkerEvent(e,t){switch("network-quality"!==e&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(t)),e){case vk.RECEIVED_PUBLISHED_USER_LIST:return void gk.emit(e,gb({room:this},t));case"1":if(t.userId===this.userId)return;return void this.emit("peer-join",t);case"2":return void this.emit("peer-leave",t);case"3":let r=new QB(this,t);return this.remotePublishedUserMap.set(t.userId,r),void this.emit("remote-published",r);case"5":{let e=t,r=this.remotePublishedUserMap.get(e);r&&(r.remoteVideoTrack.close(),r.remoteAuxiliaryTrack.close(),r.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(e),this.emit("remote-unpublished",r))}return;case"banned":switch(t){case 8:return void this.emit("banned",{reason:"kick",message:""});case 2:case 6:case 4:return void this.emit("banned",{reason:"banned",message:""});case 7:case 5:return void this.emit("banned",{reason:"room_disband",message:""})}break;case"6":{let{prevMuteState:e,muteState:r,flag:i}=t,o=this.remotePublishedUserMap.get(r.userId);if(!o)return void this.emit("remote-publish-state-changed",t);o.flag=i}return gk.emit(vk.REMOTE_PUBLISH_STATE_CHANGED,gb({room:this},t)),void this.emit("remote-publish-state-changed",t);case"network-quality":this.quality=gb({},t);let{uplinkLoss:i,uplinkRTT:o,uplinkInfo:n,downlinkInfo:a,msg_down_stream_info:s}=t,c={str_sdk_version:Hb,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:dw[ID()]},msg_event_msg:wV(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:n,msg_down_stream_info:s};gk.emit(vk.HEARTBEAT_REPORT,{room:this,report:c}),this.emit("heartbeat-report",c),gk.emit(vk.NETWORK_QUALITY,{room:this,uplink:{rtt:o,loss:i},downlinks:a}),delete t.downlinkInfo;break;case"signal-connection-state-changed":return void gk.emit(vk.SIGNAL_CONNECTION_STATE_CHANGED,gb({room:this},t))}this.emit(e,t)}sendStartPublishCDN(e,t){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,t&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,t){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,t&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(this,null,(function*(){let e=t.reduce(((e,t)=>t.mediaType|e),0),r=this.sendMessage("publish",e).then((e=>0!==e.err?Promise.reject(e.err):e)),i=0;yield Promise.all(t.map((e=>Rb(this,null,(function*(){if(1===(yield r,e.muted&&(i|=e.mediaType),ZM(e,e).add("mute",(()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})})).add("unmute",(()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})})),e.mediaType))tj.call(this,e);else yield oj.call(this,e)}))))),i&&this.postMessage("mute",{mediaType:i,srctinyid:this.tinyid,userId:this.openid,remove:!0})}))}unpublish(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(this,null,(function*(){t.forEach(eL)}))}subscribe(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(this,null,(function*(){let e=t.reduce(((e,t)=>t.mediaType|e),0),{userId:r,tinyId:i,streamType:o}=t[0],n=this.remotePublishedUserMap.get(r),a=gb({},n.subscribeState),s=Object.assign(new _O,a);s.mediaType|=e,gk.emit(vk.SUBSCRIBE_START,{room:this,streamType:o,remotePublishedUser:n,subscribeState:s});let c=yield this.sendMessage("subscribe",{mediaType:s.mediaType,userId:r,srctinyid:i,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter((e=>s.mediaType&e)).map((e=>({mediaType:e,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]})))}});console.dir("subscribe",c),yield Promise.all(t.filter((e=>!e.isSubscribed)).map((e=>1===e.mediaType?QH.call(this,e):ZH.call(this,e)))),gk.emit(vk.SUBSCRIBE_SUCCESS,{room:this,streamType:o,remotePublishedUser:n})}))}unsubscribe(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Rb(this,null,(function*(){let e=0;for(let r of t)e|=r.mediaType,r.unsubscribe();if(t.length){let{userId:r,streamType:i,tinyId:o}=t[0];yield this.sendMessage("unSubscribe",{mediaType:e,srctinyid:o,userId:r}),gk.emit(vk.UNSUBSCRIBE_SUCCESS,{room:this,streamType:i,remotePublishedUser:this.remotePublishedUserMap.get(r)})}}))}enableSmall(e){return Rb(this,null,(function*(){var t;if(e){if(this.videoManager.smallTrack){let e=this.videoManager.cameraTrack;this.smallEncoder=yield ij.call(this,e,{profile:e.small,type:3,trackType:"camera"});let t=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(t,this.smallAbortCtrl,this),this._log.info("push small")}}else null==(t=this.smallAbortCtrl)||t.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)}))}changeType(e,t){let r=this.remotePublishedUserMap.get(t.userId),i=e?8:4;if(r.remoteVideoTrack.mediaType===i)return;let o={srctinyid:t.tinyId,mediaType:i,userId:t.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter((e=>i&e)).map((e=>({mediaType:e,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]})))}};r.remoteVideoTrack.mediaType=o.mediaType,this.postMessage("changetype",o)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Ib([vP(sj.prototype.afterJoin),BM(["left",GM.INIT],"joined"),yP((e=>{let t=new ZB;return function(r,i,o){return Rb(this,null,(function*(){let n=String(r.roomId||r.strRoomId);if(this.userId=r.userId,this.sdkAppId=r.sdkAppId,this.userSig=r.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=i,r.privateMapKey=r.privateMapKey||"",this.isJoined)throw new Lb({code:Ob.INVALID_OPERATION,message:CO({key:RO.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:n,sdkAppId:this.sdkAppId,room:this}))throw new Lb({code:Ob.INVALID_OPERATION,message:CO({key:RO.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:n}),this.role=21===r.role?"audience":"anchor",this._log.info("Join() => joining room: ".concat(n," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),gk.emit(vk.JOIN_START,{room:this,roomId:n,params:r});let a=Vb.getEnv();a||(a=sw.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Ew.OLD_CLOUD_LADDER)?a=sw.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Ew.WEBRTC)&&(a=sw.WEBRTC))),tL.setConfig({env:a,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:n}),Sk.checkSystemRequirementsInternal().then((e=>{this.checkSystemResult=e,eH.call(this)}));try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Vb.getEnv()&&(yield this.schedule(r,o));let t=yield e.call(this,r,i,o);return this.roomId=n,this._joinedTimestamp=Vb.performanceNow(),gk.emit(vk.JOIN_SUCCESS,{room:this}),30===o&&!r.component&&tL.uploadEvent({log:"stat-conv-".concat(Number(tk),"-").concat(location.hostname),userId:this.userId}),t}catch(kk){throw t.delete({room:this,roomId:n}),gk.emit(vk.JOIN_FAILED,{room:this,error:kk}),kk}}))}}))],sj.prototype,"join",1),Ib([BM("joined","left",{ignoreError:!0}),yP((e=>function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return Rb(this,null,(function*(){gk.emit(vk.LEAVE_START,{room:this}),yield e.call(this,...r),gk.emit(vk.LEAVE_SUCCESS,{room:this,roomId:this.roomId})}))}))],sj.prototype,"leave",1),Ib([bP((function(){return 0})),yP((e=>function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return Rb(this,null,(function*(){if("live"===this.scene&&"anchor"!==this.role||(r=r.filter((e=>e.outMediaTrack&&"capture"===e.state)),!r.length))return;gk.emit("61",{room:this});let t=e.apply(this,r);return r.forEach((e=>e.publish(this,t))),t}))}))],sj.prototype,"publish",1),Ib([bP((function(){return 0})),yP((e=>function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];let o=e.apply(this,r);return r.forEach((e=>e.unpublish())),o}))],sj.prototype,"unpublish",1),Ib([bP((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t[0].userId})),yP((e=>function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];let o=e.apply(this,r);return r.forEach((e=>!e.isSubscribed&&e.subscribe(o))),o}))],sj.prototype,"subscribe",1);var cj=sj;return $B.frameWorkType=37,$B.create=function(e){let t=$B._create.call(this,cj,e);return t._use(uF,null==e?void 0:e.assetsPath),null!=e&&e.assetsPath&&(AH.assetsPath=null==e?void 0:e.assetsPath),console.log("trtc wasm sdk:",Hb,"created",AH),t},Object.assign($B.prototype,{_setCurrentSpeaker(e){let t=PL();return null!=t&&t.setSinkId?t.setSinkId(e):Promise.reject("not support")},_enableVideoDecodeFallback(e,t){return Rb(this,null,(function*(){return this.startPlugin(uF.Name,{type:"webCodecs",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise(((t,r)=>{ex(kx(e,"decode-downgrade-state-changed"),Xx((e=>"STARTED"===e.state)),Qx(1),eV(1e4),Zx(kx(e,GM.INIT)),QU(t,r))}))}))}}),$B}));