Files
2026-08-10 17:29:05 +08:00

533 lines
3.4 MiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))s(g);new MutationObserver(g=>{for(const B of g)if(B.type==="childList")for(const Q of B.addedNodes)Q.tagName==="LINK"&&Q.rel==="modulepreload"&&s(Q)}).observe(document,{childList:!0,subtree:!0});function r(g){const B={};return g.integrity&&(B.integrity=g.integrity),g.referrerPolicy&&(B.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?B.credentials="include":g.crossOrigin==="anonymous"?B.credentials="omit":B.credentials="same-origin",B}function s(g){if(g.ep)return;g.ep=!0;const B=r(g);fetch(g.href,B)}})();/**
* @vue/shared v3.5.13
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**//*! #__NO_SIDE_EFFECTS__ */function $j(t){const i=Object.create(null);for(const r of t.split(","))i[r]=1;return r=>r in i}const qn={},Cw=[],Lu=()=>{},HtA=()=>!1,nY=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),A3=t=>t.startsWith("onUpdate:"),Sg=Object.assign,e3=(t,i)=>{const r=t.indexOf(i);r>-1&&t.splice(r,1)},VtA=Object.prototype.hasOwnProperty,yn=(t,i)=>VtA.call(t,i),Ro=Array.isArray,Bw=t=>aY(t)==="[object Map]",_8=t=>aY(t)==="[object Set]",xo=t=>typeof t=="function",va=t=>typeof t=="string",sd=t=>typeof t=="symbol",ta=t=>t!==null&&typeof t=="object",b8=t=>(ta(t)||xo(t))&&xo(t.then)&&xo(t.catch),L8=Object.prototype.toString,aY=t=>L8.call(t),qtA=t=>aY(t).slice(8,-1),F8=t=>aY(t)==="[object Object]",t3=t=>va(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,FG=$j(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sY=t=>{const i=Object.create(null);return r=>i[r]||(i[r]=t(r))},KtA=/-(\w)/g,mC=sY(t=>t.replace(KtA,(i,r)=>r?r.toUpperCase():"")),jtA=/\B([A-Z])/g,Rp=sY(t=>t.replace(jtA,"-$1").toLowerCase()),gY=sY(t=>t.charAt(0).toUpperCase()+t.slice(1)),CK=sY(t=>t?`on${gY(t)}`:""),Cp=(t,i)=>!Object.is(t,i),BK=(t,...i)=>{for(let r=0;r<t.length;r++)t[r](...i)},U8=(t,i,r,s=!1)=>{Object.defineProperty(t,i,{configurable:!0,enumerable:!1,writable:s,value:r})},WtA=t=>{const i=parseFloat(t);return isNaN(i)?t:i},ztA=t=>{const i=va(t)?Number(t):NaN;return isNaN(i)?t:i};let wz;const IY=()=>wz||(wz=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function zr(t){if(Ro(t)){const i={};for(let r=0;r<t.length;r++){const s=t[r],g=va(s)?AiA(s):zr(s);if(g)for(const B in g)i[B]=g[B]}return i}else if(va(t)||ta(t))return t}const ZtA=/;(?![^(]*\))/g,XtA=/:([^]+)/,$tA=/\/\*[^]*?\*\//g;function AiA(t){const i={};return t.replace($tA,"").split(ZtA).forEach(r=>{if(r){const s=r.split(XtA);s.length>1&&(i[s[0].trim()]=s[1].trim())}}),i}function Qi(t){let i="";if(va(t))i=t;else if(Ro(t))for(let r=0;r<t.length;r++){const s=Qi(t[r]);s&&(i+=s+" ")}else if(ta(t))for(const r in t)t[r]&&(i+=r+" ");return i.trim()}function eiA(t){if(!t)return null;let{class:i,style:r}=t;return i&&!va(i)&&(t.class=Qi(i)),r&&(t.style=zr(r)),t}const tiA="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",iiA=$j(tiA);function O8(t){return!!t||t===""}const x8=t=>!!(t&&t.__v_isRef===!0),Wt=t=>va(t)?t:t==null?"":Ro(t)||ta(t)&&(t.toString===L8||!xo(t.toString))?x8(t)?Wt(t.value):JSON.stringify(t,Y8,2):String(t),Y8=(t,i)=>x8(i)?Y8(t,i.value):Bw(i)?{[`Map(${i.size})`]:[...i.entries()].reduce((r,[s,g],B)=>(r[uK(s,B)+" =>"]=g,r),{})}:_8(i)?{[`Set(${i.size})`]:[...i.values()].map(r=>uK(r))}:sd(i)?uK(i):ta(i)&&!Ro(i)&&!F8(i)?String(i):i,uK=(t,i="")=>{var r;return sd(t)?`Symbol(${(r=t.description)!=null?r:i})`:t};/**
* @vue/reactivity v3.5.13
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let ll;class oiA{constructor(i=!1){this.detached=i,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ll,!i&&ll&&(this.index=(ll.scopes||(ll.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let i,r;if(this.scopes)for(i=0,r=this.scopes.length;i<r;i++)this.scopes[i].pause();for(i=0,r=this.effects.length;i<r;i++)this.effects[i].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let i,r;if(this.scopes)for(i=0,r=this.scopes.length;i<r;i++)this.scopes[i].resume();for(i=0,r=this.effects.length;i<r;i++)this.effects[i].resume()}}run(i){if(this._active){const r=ll;try{return ll=this,i()}finally{ll=r}}}on(){ll=this}off(){ll=this.parent}stop(i){if(this._active){this._active=!1;let r,s;for(r=0,s=this.effects.length;r<s;r++)this.effects[r].stop();for(this.effects.length=0,r=0,s=this.cleanups.length;r<s;r++)this.cleanups[r]();if(this.cleanups.length=0,this.scopes){for(r=0,s=this.scopes.length;r<s;r++)this.scopes[r].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!i){const g=this.parent.scopes.pop();g&&g!==this&&(this.parent.scopes[this.index]=g,g.index=this.index)}this.parent=void 0}}}function riA(){return ll}let ea;const QK=new WeakSet;class P8{constructor(i){this.fn=i,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ll&&ll.active&&ll.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,QK.has(this)&&(QK.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||H8(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Sz(this),V8(this);const i=ea,r=EB;ea=this,EB=!0;try{return this.fn()}finally{q8(this),ea=i,EB=r,this.flags&=-3}}stop(){if(this.flags&1){for(let i=this.deps;i;i=i.nextDep)r3(i);this.deps=this.depsTail=void 0,Sz(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?QK.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){sj(this)&&this.run()}get dirty(){return sj(this)}}let J8=0,UG,OG;function H8(t,i=!1){if(t.flags|=8,i){t.next=OG,OG=t;return}t.next=UG,UG=t}function i3(){J8++}function o3(){if(--J8>0)return;if(OG){let i=OG;for(OG=void 0;i;){const r=i.next;i.next=void 0,i.flags&=-9,i=r}}let t;for(;UG;){let i=UG;for(UG=void 0;i;){const r=i.next;if(i.next=void 0,i.flags&=-9,i.flags&1)try{i.trigger()}catch(s){t||(t=s)}i=r}}if(t)throw t}function V8(t){for(let i=t.deps;i;i=i.nextDep)i.version=-1,i.prevActiveLink=i.dep.activeLink,i.dep.activeLink=i}function q8(t){let i,r=t.depsTail,s=r;for(;s;){const g=s.prevDep;s.version===-1?(s===r&&(r=g),r3(s),niA(s)):i=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=g}t.deps=i,t.depsTail=r}function sj(t){for(let i=t.deps;i;i=i.nextDep)if(i.dep.version!==i.version||i.dep.computed&&(K8(i.dep.computed)||i.dep.version!==i.version))return!0;return!!t._dirty}function K8(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===ek))return;t.globalVersion=ek;const i=t.dep;if(t.flags|=2,i.version>0&&!t.isSSR&&t.deps&&!sj(t)){t.flags&=-3;return}const r=ea,s=EB;ea=t,EB=!0;try{V8(t);const g=t.fn(t._value);(i.version===0||Cp(g,t._value))&&(t._value=g,i.version++)}catch(g){throw i.version++,g}finally{ea=r,EB=s,q8(t),t.flags&=-3}}function r3(t,i=!1){const{dep:r,prevSub:s,nextSub:g}=t;if(s&&(s.nextSub=g,t.prevSub=void 0),g&&(g.prevSub=s,t.nextSub=void 0),r.subs===t&&(r.subs=s,!s&&r.computed)){r.computed.flags&=-5;for(let B=r.computed.deps;B;B=B.nextDep)r3(B,!0)}!i&&!--r.sc&&r.map&&r.map.delete(r.key)}function niA(t){const{prevDep:i,nextDep:r}=t;i&&(i.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=i,t.nextDep=void 0)}let EB=!0;const j8=[];function Mp(){j8.push(EB),EB=!1}function wp(){const t=j8.pop();EB=t===void 0?!0:t}function Sz(t){const{cleanup:i}=t;if(t.cleanup=void 0,i){const r=ea;ea=void 0;try{i()}finally{ea=r}}}let ek=0;class aiA{constructor(i,r){this.sub=i,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class n3{constructor(i){this.computed=i,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(i){if(!ea||!EB||ea===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==ea)r=this.activeLink=new aiA(ea,this),ea.deps?(r.prevDep=ea.depsTail,ea.depsTail.nextDep=r,ea.depsTail=r):ea.deps=ea.depsTail=r,W8(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const s=r.nextDep;s.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=s),r.prevDep=ea.depsTail,r.nextDep=void 0,ea.depsTail.nextDep=r,ea.depsTail=r,ea.deps===r&&(ea.deps=s)}return r}trigger(i){this.version++,ek++,this.notify(i)}notify(i){i3();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{o3()}}}function W8(t){if(t.dep.sc++,t.sub.flags&4){const i=t.dep.computed;if(i&&!t.dep.subs){i.flags|=20;for(let s=i.deps;s;s=s.nextDep)W8(s)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const N2=new WeakMap,tD=Symbol(""),gj=Symbol(""),tk=Symbol("");function GI(t,i,r){if(EB&&ea){let s=N2.get(t);s||N2.set(t,s=new Map);let g=s.get(r);g||(s.set(r,g=new n3),g.map=s,g.key=r),g.track()}}function od(t,i,r,s,g,B){const Q=N2.get(t);if(!Q){ek++;return}const f=m=>{m&&m.trigger()};if(i3(),i==="clear")Q.forEach(f);else{const m=Ro(t),M=m&&t3(r);if(m&&r==="length"){const v=Number(s);Q.forEach((U,AA)=>{(AA==="length"||AA===tk||!sd(AA)&&AA>=v)&&f(U)})}else switch((r!==void 0||Q.has(void 0))&&f(Q.get(r)),M&&f(Q.get(tk)),i){case"add":m?M&&f(Q.get("length")):(f(Q.get(tD)),Bw(t)&&f(Q.get(gj)));break;case"delete":m||(f(Q.get(tD)),Bw(t)&&f(Q.get(gj)));break;case"set":Bw(t)&&f(Q.get(tD));break}}o3()}function siA(t,i){const r=N2.get(t);return r&&r.get(i)}function KM(t){const i=an(t);return i===t?i:(GI(i,"iterate",tk),hC(t)?i:i.map(kI))}function cY(t){return GI(t=an(t),"iterate",tk),t}const giA={__proto__:null,[Symbol.iterator](){return dK(this,Symbol.iterator,kI)},concat(...t){return KM(this).concat(...t.map(i=>Ro(i)?KM(i):i))},entries(){return dK(this,"entries",t=>(t[1]=kI(t[1]),t))},every(t,i){return zQ(this,"every",t,i,void 0,arguments)},filter(t,i){return zQ(this,"filter",t,i,r=>r.map(kI),arguments)},find(t,i){return zQ(this,"find",t,i,kI,arguments)},findIndex(t,i){return zQ(this,"findIndex",t,i,void 0,arguments)},findLast(t,i){return zQ(this,"findLast",t,i,kI,arguments)},findLastIndex(t,i){return zQ(this,"findLastIndex",t,i,void 0,arguments)},forEach(t,i){return zQ(this,"forEach",t,i,void 0,arguments)},includes(...t){return hK(this,"includes",t)},indexOf(...t){return hK(this,"indexOf",t)},join(t){return KM(this).join(t)},lastIndexOf(...t){return hK(this,"lastIndexOf",t)},map(t,i){return zQ(this,"map",t,i,void 0,arguments)},pop(){return cG(this,"pop")},push(...t){return cG(this,"push",t)},reduce(t,...i){return vz(this,"reduce",t,i)},reduceRight(t,...i){return vz(this,"reduceRight",t,i)},shift(){return cG(this,"shift")},some(t,i){return zQ(this,"some",t,i,void 0,arguments)},splice(...t){return cG(this,"splice",t)},toReversed(){return KM(this).toReversed()},toSorted(t){return KM(this).toSorted(t)},toSpliced(...t){return KM(this).toSpliced(...t)},unshift(...t){return cG(this,"unshift",t)},values(){return dK(this,"values",kI)}};function dK(t,i,r){const s=cY(t),g=s[i]();return s!==t&&!hC(t)&&(g._next=g.next,g.next=()=>{const B=g._next();return B.value&&(B.value=r(B.value)),B}),g}const IiA=Array.prototype;function zQ(t,i,r,s,g,B){const Q=cY(t),f=Q!==t&&!hC(t),m=Q[i];if(m!==IiA[i]){const U=m.apply(t,B);return f?kI(U):U}let M=r;Q!==t&&(f?M=function(U,AA){return r.call(this,kI(U),AA,t)}:r.length>2&&(M=function(U,AA){return r.call(this,U,AA,t)}));const v=m.call(Q,M,s);return f&&g?g(v):v}function vz(t,i,r,s){const g=cY(t);let B=r;return g!==t&&(hC(t)?r.length>3&&(B=function(Q,f,m){return r.call(this,Q,f,m,t)}):B=function(Q,f,m){return r.call(this,Q,kI(f),m,t)}),g[i](B,...s)}function hK(t,i,r){const s=an(t);GI(s,"iterate",tk);const g=s[i](...r);return(g===-1||g===!1)&&g3(r[0])?(r[0]=an(r[0]),s[i](...r)):g}function cG(t,i,r=[]){Mp(),i3();const s=an(t)[i].apply(t,r);return o3(),wp(),s}const ciA=$j("__proto__,__v_isRef,__isVue"),z8=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(sd));function EiA(t){sd(t)||(t=String(t));const i=an(this);return GI(i,"has",t),i.hasOwnProperty(t)}class Z8{constructor(i=!1,r=!1){this._isReadonly=i,this._isShallow=r}get(i,r,s){if(r==="__v_skip")return i.__v_skip;const g=this._isReadonly,B=this._isShallow;if(r==="__v_isReactive")return!g;if(r==="__v_isReadonly")return g;if(r==="__v_isShallow")return B;if(r==="__v_raw")return s===(g?B?miA:eZ:B?AZ:$8).get(i)||Object.getPrototypeOf(i)===Object.getPrototypeOf(s)?i:void 0;const Q=Ro(i);if(!g){let m;if(Q&&(m=giA[r]))return m;if(r==="hasOwnProperty")return EiA}const f=Reflect.get(i,r,wg(i)?i:s);return(sd(r)?z8.has(r):ciA(r))||(g||GI(i,"get",r),B)?f:wg(f)?Q&&t3(r)?f:f.value:ta(f)?g?T2(f):Xm(f):f}}class X8 extends Z8{constructor(i=!1){super(!1,i)}set(i,r,s,g){let B=i[r];if(!this._isShallow){const m=CD(B);if(!hC(s)&&!CD(s)&&(B=an(B),s=an(s)),!Ro(i)&&wg(B)&&!wg(s))return m?!1:(B.value=s,!0)}const Q=Ro(i)&&t3(r)?Number(r)<i.length:yn(i,r),f=Reflect.set(i,r,s,wg(i)?i:g);return i===an(g)&&(Q?Cp(s,B)&&od(i,"set",r,s):od(i,"add",r,s)),f}deleteProperty(i,r){const s=yn(i,r);i[r];const g=Reflect.deleteProperty(i,r);return g&&s&&od(i,"delete",r,void 0),g}has(i,r){const s=Reflect.has(i,r);return(!sd(r)||!z8.has(r))&&GI(i,"has",r),s}ownKeys(i){return GI(i,"iterate",Ro(i)?"length":tD),Reflect.ownKeys(i)}}class liA extends Z8{constructor(i=!1){super(!0,i)}set(i,r){return!0}deleteProperty(i,r){return!0}}const CiA=new X8,BiA=new liA,uiA=new X8(!0);const Ij=t=>t,Wx=t=>Reflect.getPrototypeOf(t);function QiA(t,i,r){return function(...s){const g=this.__v_raw,B=an(g),Q=Bw(B),f=t==="entries"||t===Symbol.iterator&&Q,m=t==="keys"&&Q,M=g[t](...s),v=r?Ij:i?cj:kI;return!i&&GI(B,"iterate",m?gj:tD),{next(){const{value:U,done:AA}=M.next();return AA?{value:U,done:AA}:{value:f?[v(U[0]),v(U[1])]:v(U),done:AA}},[Symbol.iterator](){return this}}}}function zx(t){return function(...i){return t==="delete"?!1:t==="clear"?void 0:this}}function diA(t,i){const r={get(g){const B=this.__v_raw,Q=an(B),f=an(g);t||(Cp(g,f)&&GI(Q,"get",g),GI(Q,"get",f));const{has:m}=Wx(Q),M=i?Ij:t?cj:kI;if(m.call(Q,g))return M(B.get(g));if(m.call(Q,f))return M(B.get(f));B!==Q&&B.get(g)},get size(){const g=this.__v_raw;return!t&&GI(an(g),"iterate",tD),Reflect.get(g,"size",g)},has(g){const B=this.__v_raw,Q=an(B),f=an(g);return t||(Cp(g,f)&&GI(Q,"has",g),GI(Q,"has",f)),g===f?B.has(g):B.has(g)||B.has(f)},forEach(g,B){const Q=this,f=Q.__v_raw,m=an(f),M=i?Ij:t?cj:kI;return!t&&GI(m,"iterate",tD),f.forEach((v,U)=>g.call(B,M(v),M(U),Q))}};return Sg(r,t?{add:zx("add"),set:zx("set"),delete:zx("delete"),clear:zx("clear")}:{add(g){!i&&!hC(g)&&!CD(g)&&(g=an(g));const B=an(this);return Wx(B).has.call(B,g)||(B.add(g),od(B,"add",g,g)),this},set(g,B){!i&&!hC(B)&&!CD(B)&&(B=an(B));const Q=an(this),{has:f,get:m}=Wx(Q);let M=f.call(Q,g);M||(g=an(g),M=f.call(Q,g));const v=m.call(Q,g);return Q.set(g,B),M?Cp(B,v)&&od(Q,"set",g,B):od(Q,"add",g,B),this},delete(g){const B=an(this),{has:Q,get:f}=Wx(B);let m=Q.call(B,g);m||(g=an(g),m=Q.call(B,g)),f&&f.call(B,g);const M=B.delete(g);return m&&od(B,"delete",g,void 0),M},clear(){const g=an(this),B=g.size!==0,Q=g.clear();return B&&od(g,"clear",void 0,void 0),Q}}),["keys","values","entries",Symbol.iterator].forEach(g=>{r[g]=QiA(g,t,i)}),r}function a3(t,i){const r=diA(t,i);return(s,g,B)=>g==="__v_isReactive"?!t:g==="__v_isReadonly"?t:g==="__v_raw"?s:Reflect.get(yn(r,g)&&g in s?r:s,g,B)}const hiA={get:a3(!1,!1)},piA={get:a3(!1,!0)},fiA={get:a3(!0,!1)};const $8=new WeakMap,AZ=new WeakMap,eZ=new WeakMap,miA=new WeakMap;function DiA(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yiA(t){return t.__v_skip||!Object.isExtensible(t)?0:DiA(qtA(t))}function Xm(t){return CD(t)?t:s3(t,!1,CiA,hiA,$8)}function RiA(t){return s3(t,!1,uiA,piA,AZ)}function T2(t){return s3(t,!0,BiA,fiA,eZ)}function s3(t,i,r,s,g){if(!ta(t)||t.__v_raw&&!(i&&t.__v_isReactive))return t;const B=g.get(t);if(B)return B;const Q=yiA(t);if(Q===0)return t;const f=new Proxy(t,Q===2?s:r);return g.set(t,f),f}function uw(t){return CD(t)?uw(t.__v_raw):!!(t&&t.__v_isReactive)}function CD(t){return!!(t&&t.__v_isReadonly)}function hC(t){return!!(t&&t.__v_isShallow)}function g3(t){return t?!!t.__v_raw:!1}function an(t){const i=t&&t.__v_raw;return i?an(i):t}function MiA(t){return!yn(t,"__v_skip")&&Object.isExtensible(t)&&U8(t,"__v_skip",!0),t}const kI=t=>ta(t)?Xm(t):t,cj=t=>ta(t)?T2(t):t;function wg(t){return t?t.__v_isRef===!0:!1}function Ne(t){return wiA(t,!1)}function wiA(t,i){return wg(t)?t:new SiA(t,i)}class SiA{constructor(i,r){this.dep=new n3,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?i:an(i),this._value=r?i:kI(i),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(i){const r=this._rawValue,s=this.__v_isShallow||hC(i)||CD(i);i=s?i:an(i),Cp(i,r)&&(this._rawValue=i,this._value=s?i:kI(i),this.dep.trigger())}}function W(t){return wg(t)?t.value:t}const viA={get:(t,i,r)=>i==="__v_raw"?t:W(Reflect.get(t,i,r)),set:(t,i,r,s)=>{const g=t[i];return wg(g)&&!wg(r)?(g.value=r,!0):Reflect.set(t,i,r,s)}};function tZ(t){return uw(t)?t:new Proxy(t,viA)}function Mo(t){const i=Ro(t)?new Array(t.length):{};for(const r in t)i[r]=iZ(t,r);return i}class NiA{constructor(i,r,s){this._object=i,this._key=r,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const i=this._object[this._key];return this._value=i===void 0?this._defaultValue:i}set value(i){this._object[this._key]=i}get dep(){return siA(an(this._object),this._key)}}class TiA{constructor(i){this._getter=i,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function pK(t,i,r){return wg(t)?t:xo(t)?new TiA(t):ta(t)&&arguments.length>1?iZ(t,i,r):Ne(t)}function iZ(t,i,r){const s=t[i];return wg(s)?s:new NiA(t,i,r)}class GiA{constructor(i,r,s){this.fn=i,this.setter=r,this._value=void 0,this.dep=new n3(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ek-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ea!==this)return H8(this,!0),!0}get value(){const i=this.dep.track();return K8(this),i&&(i.version=this.dep.version),this._value}set value(i){this.setter&&this.setter(i)}}function kiA(t,i,r=!1){let s,g;return xo(t)?s=t:(s=t.get,g=t.set),new GiA(s,g,r)}const Zx={},G2=new WeakMap;let qm;function _iA(t,i=!1,r=qm){if(r){let s=G2.get(r);s||G2.set(r,s=[]),s.push(t)}}function biA(t,i,r=qn){const{immediate:s,deep:g,once:B,scheduler:Q,augmentJob:f,call:m}=r,M=VA=>g?VA:hC(VA)||g===!1||g===0?rd(VA,1):rd(VA);let v,U,AA,z,sA=!1,eA=!1;if(wg(t)?(U=()=>t.value,sA=hC(t)):uw(t)?(U=()=>M(t),sA=!0):Ro(t)?(eA=!0,sA=t.some(VA=>uw(VA)||hC(VA)),U=()=>t.map(VA=>{if(wg(VA))return VA.value;if(uw(VA))return M(VA);if(xo(VA))return m?m(VA,2):VA()})):xo(t)?i?U=m?()=>m(t,2):t:U=()=>{if(AA){Mp();try{AA()}finally{wp()}}const VA=qm;qm=v;try{return m?m(t,3,[z]):t(z)}finally{qm=VA}}:U=Lu,i&&g){const VA=U,ue=g===!0?1/0:g;U=()=>rd(VA(),ue)}const X=riA(),QA=()=>{v.stop(),X&&X.active&&e3(X.effects,v)};if(B&&i){const VA=i;i=(...ue)=>{VA(...ue),QA()}}let wA=eA?new Array(t.length).fill(Zx):Zx;const HA=VA=>{if(!(!(v.flags&1)||!v.dirty&&!VA))if(i){const ue=v.run();if(g||sA||(eA?ue.some((jA,Ve)=>Cp(jA,wA[Ve])):Cp(ue,wA))){AA&&AA();const jA=qm;qm=v;try{const Ve=[ue,wA===Zx?void 0:eA&&wA[0]===Zx?[]:wA,z];m?m(i,3,Ve):i(...Ve),wA=ue}finally{qm=jA}}}else v.run()};return f&&f(HA),v=new P8(U),v.scheduler=Q?()=>Q(HA,!1):HA,z=VA=>_iA(VA,!1,v),AA=v.onStop=()=>{const VA=G2.get(v);if(VA){if(m)m(VA,4);else for(const ue of VA)ue();G2.delete(v)}},i?s?HA(!0):wA=v.run():Q?Q(HA.bind(null,!0),!0):v.run(),QA.pause=v.pause.bind(v),QA.resume=v.resume.bind(v),QA.stop=QA,QA}function rd(t,i=1/0,r){if(i<=0||!ta(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),i--,wg(t))rd(t.value,i,r);else if(Ro(t))for(let s=0;s<t.length;s++)rd(t[s],i,r);else if(_8(t)||Bw(t))t.forEach(s=>{rd(s,i,r)});else if(F8(t)){for(const s in t)rd(t[s],i,r);for(const s of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,s)&&rd(t[s],i,r)}return t}/**
* @vue/runtime-core v3.5.13
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Qk(t,i,r,s){try{return s?t(...s):t()}catch(g){EY(g,i,r)}}function CB(t,i,r,s){if(xo(t)){const g=Qk(t,i,r,s);return g&&b8(g)&&g.catch(B=>{EY(B,i,r)}),g}if(Ro(t)){const g=[];for(let B=0;B<t.length;B++)g.push(CB(t[B],i,r,s));return g}}function EY(t,i,r,s=!0){const g=i?i.vnode:null,{errorHandler:B,throwUnhandledErrorInProduction:Q}=i&&i.appContext.config||qn;if(i){let f=i.parent;const m=i.proxy,M=`https://vuejs.org/error-reference/#runtime-${r}`;for(;f;){const v=f.ec;if(v){for(let U=0;U<v.length;U++)if(v[U](t,m,M)===!1)return}f=f.parent}if(B){Mp(),Qk(B,null,10,[t,m,M]),wp();return}}LiA(t,r,g,s,Q)}function LiA(t,i,r,s=!0,g=!1){if(g)throw t;console.error(t)}const Dc=[];let vu=-1;const Qw=[];let ap=null,XM=0;const oZ=Promise.resolve();let k2=null;function lY(t){const i=k2||oZ;return t?i.then(this?t.bind(this):t):i}function FiA(t){let i=vu+1,r=Dc.length;for(;i<r;){const s=i+r>>>1,g=Dc[s],B=ik(g);B<t||B===t&&g.flags&2?i=s+1:r=s}return i}function I3(t){if(!(t.flags&1)){const i=ik(t),r=Dc[Dc.length-1];!r||!(t.flags&2)&&i>=ik(r)?Dc.push(t):Dc.splice(FiA(i),0,t),t.flags|=1,rZ()}}function rZ(){k2||(k2=oZ.then(aZ))}function UiA(t){Ro(t)?Qw.push(...t):ap&&t.id===-1?ap.splice(XM+1,0,t):t.flags&1||(Qw.push(t),t.flags|=1),rZ()}function Nz(t,i,r=vu+1){for(;r<Dc.length;r++){const s=Dc[r];if(s&&s.flags&2){if(t&&s.id!==t.uid)continue;Dc.splice(r,1),r--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function nZ(t){if(Qw.length){const i=[...new Set(Qw)].sort((r,s)=>ik(r)-ik(s));if(Qw.length=0,ap){ap.push(...i);return}for(ap=i,XM=0;XM<ap.length;XM++){const r=ap[XM];r.flags&4&&(r.flags&=-2),r.flags&8||r(),r.flags&=-2}ap=null,XM=0}}const ik=t=>t.id==null?t.flags&2?-1:1/0:t.id;function aZ(t){try{for(vu=0;vu<Dc.length;vu++){const i=Dc[vu];i&&!(i.flags&8)&&(i.flags&4&&(i.flags&=-2),Qk(i,i.i,i.i?15:14),i.flags&4||(i.flags&=-2))}}finally{for(;vu<Dc.length;vu++){const i=Dc[vu];i&&(i.flags&=-2)}vu=-1,Dc.length=0,nZ(),k2=null,(Dc.length||Qw.length)&&aZ()}}let Mg=null,CY=null;function _2(t){const i=Mg;return Mg=t,CY=t&&t.type.__scopeId||null,i}function Sw(t){CY=t}function vw(){CY=null}function Vt(t,i=Mg,r){if(!i||t._n)return t;const s=(...g)=>{s._d&&Hz(-1);const B=_2(i);let Q;try{Q=t(...g)}finally{_2(B),s._d&&Hz(1)}return Q};return s._n=!0,s._c=!0,s._d=!0,s}function aa(t,i){if(Mg===null)return t;const r=hY(Mg),s=t.dirs||(t.dirs=[]);for(let g=0;g<i.length;g++){let[B,Q,f,m=qn]=i[g];B&&(xo(B)&&(B={mounted:B,updated:B}),B.deep&&rd(Q),s.push({dir:B,instance:r,value:Q,oldValue:void 0,arg:f,modifiers:m}))}return t}function Om(t,i,r,s){const g=t.dirs,B=i&&i.dirs;for(let Q=0;Q<g.length;Q++){const f=g[Q];B&&(f.oldValue=B[Q].value);let m=f.dir[s];m&&(Mp(),CB(m,r,8,[t.el,f,t,i]),wp())}}const sZ=Symbol("_vte"),gZ=t=>t.__isTeleport,xG=t=>t&&(t.disabled||t.disabled===""),Tz=t=>t&&(t.defer||t.defer===""),Gz=t=>typeof SVGElement<"u"&&t instanceof SVGElement,kz=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Ej=(t,i)=>{const r=t&&t.to;return va(r)?i?i(r):null:r},IZ={name:"Teleport",__isTeleport:!0,process(t,i,r,s,g,B,Q,f,m,M){const{mc:v,pc:U,pbc:AA,o:{insert:z,querySelector:sA,createText:eA,createComment:X}}=M,QA=xG(i.props);let{shapeFlag:wA,children:HA,dynamicChildren:VA}=i;if(t==null){const ue=i.el=eA(""),jA=i.anchor=eA("");z(ue,r,s),z(jA,r,s);const Ve=(Me,qe)=>{wA&16&&(g&&g.isCE&&(g.ce._teleportTarget=Me),v(HA,Me,qe,g,B,Q,f,m))},Ze=()=>{const Me=i.target=Ej(i.props,sA),qe=cZ(Me,i,eA,z);Me&&(Q!=="svg"&&Gz(Me)?Q="svg":Q!=="mathml"&&kz(Me)&&(Q="mathml"),QA||(Ve(Me,qe),B2(i,!1)))};QA&&(Ve(r,jA),B2(i,!0)),Tz(i.props)?fc(()=>{Ze(),i.el.__isMounted=!0},B):Ze()}else{if(Tz(i.props)&&!t.el.__isMounted){fc(()=>{IZ.process(t,i,r,s,g,B,Q,f,m,M),delete t.el.__isMounted},B);return}i.el=t.el,i.targetStart=t.targetStart;const ue=i.anchor=t.anchor,jA=i.target=t.target,Ve=i.targetAnchor=t.targetAnchor,Ze=xG(t.props),Me=Ze?r:jA,qe=Ze?ue:Ve;if(Q==="svg"||Gz(jA)?Q="svg":(Q==="mathml"||kz(jA))&&(Q="mathml"),VA?(AA(t.dynamicChildren,VA,Me,g,B,Q,f),E3(t,i,!0)):m||U(t,i,Me,qe,g,B,Q,f,!1),QA)Ze?i.props&&t.props&&i.props.to!==t.props.to&&(i.props.to=t.props.to):Xx(i,r,ue,M,1);else if((i.props&&i.props.to)!==(t.props&&t.props.to)){const Et=i.target=Ej(i.props,sA);Et&&Xx(i,Et,null,M,0)}else Ze&&Xx(i,jA,Ve,M,1);B2(i,QA)}},remove(t,i,r,{um:s,o:{remove:g}},B){const{shapeFlag:Q,children:f,anchor:m,targetStart:M,targetAnchor:v,target:U,props:AA}=t;if(U&&(g(M),g(v)),B&&g(m),Q&16){const z=B||!xG(AA);for(let sA=0;sA<f.length;sA++){const eA=f[sA];s(eA,i,r,z,!!eA.dynamicChildren)}}},move:Xx,hydrate:OiA};function Xx(t,i,r,{o:{insert:s},m:g},B=2){B===0&&s(t.targetAnchor,i,r);const{el:Q,anchor:f,shapeFlag:m,children:M,props:v}=t,U=B===2;if(U&&s(Q,i,r),(!U||xG(v))&&m&16)for(let AA=0;AA<M.length;AA++)g(M[AA],i,r,2);U&&s(f,i,r)}function OiA(t,i,r,s,g,B,{o:{nextSibling:Q,parentNode:f,querySelector:m,insert:M,createText:v}},U){const AA=i.target=Ej(i.props,m);if(AA){const z=xG(i.props),sA=AA._lpa||AA.firstChild;if(i.shapeFlag&16)if(z)i.anchor=U(Q(t),i,f(t),r,s,g,B),i.targetStart=sA,i.targetAnchor=sA&&Q(sA);else{i.anchor=Q(t);let eA=sA;for(;eA;){if(eA&&eA.nodeType===8){if(eA.data==="teleport start anchor")i.targetStart=eA;else if(eA.data==="teleport anchor"){i.targetAnchor=eA,AA._lpa=i.targetAnchor&&Q(i.targetAnchor);break}}eA=Q(eA)}i.targetAnchor||cZ(AA,i,v,M),U(sA&&Q(sA),i,AA,r,s,g,B)}B2(i,z)}return i.anchor&&Q(i.anchor)}const xiA=IZ;function B2(t,i){const r=t.ctx;if(r&&r.ut){let s,g;for(i?(s=t.el,g=t.anchor):(s=t.targetStart,g=t.targetAnchor);s&&s!==g;)s.nodeType===1&&s.setAttribute("data-v-owner",r.uid),s=s.nextSibling;r.ut()}}function cZ(t,i,r,s){const g=i.targetStart=r(""),B=i.targetAnchor=r("");return g[sZ]=B,t&&(s(g,t),s(B,t)),B}const sp=Symbol("_leaveCb"),$x=Symbol("_enterCb");function YiA(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return gs(()=>{t.isMounted=!0}),hZ(()=>{t.isUnmounting=!0}),t}const sC=[Function,Array],EZ={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:sC,onEnter:sC,onAfterEnter:sC,onEnterCancelled:sC,onBeforeLeave:sC,onLeave:sC,onAfterLeave:sC,onLeaveCancelled:sC,onBeforeAppear:sC,onAppear:sC,onAfterAppear:sC,onAppearCancelled:sC},lZ=t=>{const i=t.subTree;return i.component?lZ(i.component):i},PiA={name:"BaseTransition",props:EZ,setup(t,{slots:i}){const r=UoA(),s=YiA();return()=>{const g=i.default&&uZ(i.default(),!0);if(!g||!g.length)return;const B=CZ(g),Q=an(t),{mode:f}=Q;if(s.isLeaving)return fK(B);const m=_z(B);if(!m)return fK(B);let M=lj(m,Q,s,r,U=>M=U);m.type!==yc&&ok(m,M);let v=r.subTree&&_z(r.subTree);if(v&&v.type!==yc&&!Km(m,v)&&lZ(r).type!==yc){let U=lj(v,Q,s,r);if(ok(v,U),f==="out-in"&&m.type!==yc)return s.isLeaving=!0,U.afterLeave=()=>{s.isLeaving=!1,r.job.flags&8||r.update(),delete U.afterLeave,v=void 0},fK(B);f==="in-out"&&m.type!==yc?U.delayLeave=(AA,z,sA)=>{const eA=BZ(s,v);eA[String(v.key)]=v,AA[sp]=()=>{z(),AA[sp]=void 0,delete M.delayedLeave,v=void 0},M.delayedLeave=()=>{sA(),delete M.delayedLeave,v=void 0}}:v=void 0}else v&&(v=void 0);return B}}};function CZ(t){let i=t[0];if(t.length>1){for(const r of t)if(r.type!==yc){i=r;break}}return i}const JiA=PiA;function BZ(t,i){const{leavingVNodes:r}=t;let s=r.get(i.type);return s||(s=Object.create(null),r.set(i.type,s)),s}function lj(t,i,r,s,g){const{appear:B,mode:Q,persisted:f=!1,onBeforeEnter:m,onEnter:M,onAfterEnter:v,onEnterCancelled:U,onBeforeLeave:AA,onLeave:z,onAfterLeave:sA,onLeaveCancelled:eA,onBeforeAppear:X,onAppear:QA,onAfterAppear:wA,onAppearCancelled:HA}=i,VA=String(t.key),ue=BZ(r,t),jA=(Me,qe)=>{Me&&CB(Me,s,9,qe)},Ve=(Me,qe)=>{const Et=qe[1];jA(Me,qe),Ro(Me)?Me.every(Je=>Je.length<=1)&&Et():Me.length<=1&&Et()},Ze={mode:Q,persisted:f,beforeEnter(Me){let qe=m;if(!r.isMounted)if(B)qe=X||m;else return;Me[sp]&&Me[sp](!0);const Et=ue[VA];Et&&Km(t,Et)&&Et.el[sp]&&Et.el[sp](),jA(qe,[Me])},enter(Me){let qe=M,Et=v,Je=U;if(!r.isMounted)if(B)qe=QA||M,Et=wA||v,Je=HA||U;else return;let $e=!1;const Dt=Me[$x]=Zi=>{$e||($e=!0,Zi?jA(Je,[Me]):jA(Et,[Me]),Ze.delayedLeave&&Ze.delayedLeave(),Me[$x]=void 0)};qe?Ve(qe,[Me,Dt]):Dt()},leave(Me,qe){const Et=String(t.key);if(Me[$x]&&Me[$x](!0),r.isUnmounting)return qe();jA(AA,[Me]);let Je=!1;const $e=Me[sp]=Dt=>{Je||(Je=!0,qe(),Dt?jA(eA,[Me]):jA(sA,[Me]),Me[sp]=void 0,ue[Et]===t&&delete ue[Et])};ue[Et]=t,z?Ve(z,[Me,$e]):$e()},clone(Me){const qe=lj(Me,i,r,s,g);return g&&g(qe),qe}};return Ze}function fK(t){if(BY(t))return t=hp(t),t.children=null,t}function _z(t){if(!BY(t))return gZ(t.type)&&t.children?CZ(t.children):t;const{shapeFlag:i,children:r}=t;if(r){if(i&16)return r[0];if(i&32&&xo(r.default))return r.default()}}function ok(t,i){t.shapeFlag&6&&t.component?(t.transition=i,ok(t.component.subTree,i)):t.shapeFlag&128?(t.ssContent.transition=i.clone(t.ssContent),t.ssFallback.transition=i.clone(t.ssFallback)):t.transition=i}function uZ(t,i=!1,r){let s=[],g=0;for(let B=0;B<t.length;B++){let Q=t[B];const f=r==null?Q.key:String(r)+String(Q.key!=null?Q.key:B);Q.type===Tn?(Q.patchFlag&128&&g++,s=s.concat(uZ(Q.children,i,f))):(i||Q.type!==yc)&&s.push(f!=null?hp(Q,{key:f}):Q)}if(g>1)for(let B=0;B<s.length;B++)s[B].patchFlag=-2;return s}/*! #__NO_SIDE_EFFECTS__ */function Ai(t,i){return xo(t)?Sg({name:t.name},i,{setup:t}):t}function QZ(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function b2(t,i,r,s,g=!1){if(Ro(t)){t.forEach((sA,eA)=>b2(sA,i&&(Ro(i)?i[eA]:i),r,s,g));return}if(dw(s)&&!g){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&b2(t,i,r,s.component.subTree);return}const B=s.shapeFlag&4?hY(s.component):s.el,Q=g?null:B,{i:f,r:m}=t,M=i&&i.r,v=f.refs===qn?f.refs={}:f.refs,U=f.setupState,AA=an(U),z=U===qn?()=>!1:sA=>yn(AA,sA);if(M!=null&&M!==m&&(va(M)?(v[M]=null,z(M)&&(U[M]=null)):wg(M)&&(M.value=null)),xo(m))Qk(m,f,12,[Q,v]);else{const sA=va(m),eA=wg(m);if(sA||eA){const X=()=>{if(t.f){const QA=sA?z(m)?U[m]:v[m]:m.value;g?Ro(QA)&&e3(QA,B):Ro(QA)?QA.includes(B)||QA.push(B):sA?(v[m]=[B],z(m)&&(U[m]=v[m])):(m.value=[B],t.k&&(v[t.k]=m.value))}else sA?(v[m]=Q,z(m)&&(U[m]=Q)):eA&&(m.value=Q,t.k&&(v[t.k]=Q))};Q?(X.id=-1,fc(X,r)):X()}}}IY().requestIdleCallback;IY().cancelIdleCallback;const dw=t=>!!t.type.__asyncLoader,BY=t=>t.type.__isKeepAlive;function HiA(t,i){dZ(t,"a",i)}function ViA(t,i){dZ(t,"da",i)}function dZ(t,i,r=oI){const s=t.__wdc||(t.__wdc=()=>{let g=r;for(;g;){if(g.isDeactivated)return;g=g.parent}return t()});if(uY(i,s,r),r){let g=r.parent;for(;g&&g.parent;)BY(g.parent.vnode)&&qiA(s,i,r,g),g=g.parent}}function qiA(t,i,r,s){const g=uY(i,t,s,!0);Ya(()=>{e3(s[i],g)},r)}function uY(t,i,r=oI,s=!1){if(r){const g=r[t]||(r[t]=[]),B=i.__weh||(i.__weh=(...Q)=>{Mp();const f=dk(r),m=CB(i,r,t,Q);return f(),wp(),m});return s?g.unshift(B):g.push(B),B}}const gd=t=>(i,r=oI)=>{(!ak||t==="sp")&&uY(t,(...s)=>i(...s),r)},KiA=gd("bm"),gs=gd("m"),jiA=gd("bu"),WiA=gd("u"),hZ=gd("bum"),Ya=gd("um"),ziA=gd("sp"),ZiA=gd("rtg"),XiA=gd("rtc");function $iA(t,i=oI){uY("ec",t,i)}const AoA="components";function eoA(t,i){return ioA(AoA,t,!0,i)||t}const toA=Symbol.for("v-ndc");function ioA(t,i,r=!0,s=!1){const g=Mg||oI;if(g){const B=g.type;{const f=JoA(B,!1);if(f&&(f===i||f===mC(i)||f===gY(mC(i))))return B}const Q=bz(g[t]||B[t],i)||bz(g.appContext[t],i);return!Q&&s?B:Q}}function bz(t,i){return t&&(t[i]||t[mC(i)]||t[gY(mC(i))])}function DC(t,i,r,s){let g;const B=r,Q=Ro(t);if(Q||va(t)){const f=Q&&uw(t);let m=!1;f&&(m=!hC(t),t=cY(t)),g=new Array(t.length);for(let M=0,v=t.length;M<v;M++)g[M]=i(m?kI(t[M]):t[M],M,void 0,B)}else if(typeof t=="number"){g=new Array(t);for(let f=0;f<t;f++)g[f]=i(f+1,f,void 0,B)}else if(ta(t))if(t[Symbol.iterator])g=Array.from(t,(f,m)=>i(f,m,void 0,B));else{const f=Object.keys(t);g=new Array(f.length);for(let m=0,M=f.length;m<M;m++){const v=f[m];g[m]=i(t[v],v,m,B)}}else g=[];return g}function Dr(t,i,r={},s,g){if(Mg.ce||Mg.parent&&dw(Mg.parent)&&Mg.parent.ce)return i!=="default"&&(r.name=i),qA(),_t(Tn,null,[ze("slot",r,s)],64);let B=t[i];B&&B._c&&(B._d=!1),qA();const Q=B&&pZ(B(r)),f=r.key||Q&&Q.key,m=_t(Tn,{key:(f&&!sd(f)?f:`_${i}`)+(!Q&&s?"_fb":"")},Q||[],Q&&t._===1?64:-2);return!g&&m.scopeId&&(m.slotScopeIds=[m.scopeId+"-s"]),B&&B._c&&(B._d=!0),m}function pZ(t){return t.some(i=>nk(i)?!(i.type===yc||i.type===Tn&&!pZ(i.children)):!0)?t:null}const Cj=t=>t?OZ(t)?hY(t):Cj(t.parent):null,YG=Sg(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Cj(t.parent),$root:t=>Cj(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>mZ(t),$forceUpdate:t=>t.f||(t.f=()=>{I3(t.update)}),$nextTick:t=>t.n||(t.n=lY.bind(t.proxy)),$watch:t=>yoA.bind(t)}),mK=(t,i)=>t!==qn&&!t.__isScriptSetup&&yn(t,i),ooA={get({_:t},i){if(i==="__v_skip")return!0;const{ctx:r,setupState:s,data:g,props:B,accessCache:Q,type:f,appContext:m}=t;let M;if(i[0]!=="$"){const z=Q[i];if(z!==void 0)switch(z){case 1:return s[i];case 2:return g[i];case 4:return r[i];case 3:return B[i]}else{if(mK(s,i))return Q[i]=1,s[i];if(g!==qn&&yn(g,i))return Q[i]=2,g[i];if((M=t.propsOptions[0])&&yn(M,i))return Q[i]=3,B[i];if(r!==qn&&yn(r,i))return Q[i]=4,r[i];Bj&&(Q[i]=0)}}const v=YG[i];let U,AA;if(v)return i==="$attrs"&&GI(t.attrs,"get",""),v(t);if((U=f.__cssModules)&&(U=U[i]))return U;if(r!==qn&&yn(r,i))return Q[i]=4,r[i];if(AA=m.config.globalProperties,yn(AA,i))return AA[i]},set({_:t},i,r){const{data:s,setupState:g,ctx:B}=t;return mK(g,i)?(g[i]=r,!0):s!==qn&&yn(s,i)?(s[i]=r,!0):yn(t.props,i)||i[0]==="$"&&i.slice(1)in t?!1:(B[i]=r,!0)},has({_:{data:t,setupState:i,accessCache:r,ctx:s,appContext:g,propsOptions:B}},Q){let f;return!!r[Q]||t!==qn&&yn(t,Q)||mK(i,Q)||(f=B[0])&&yn(f,Q)||yn(s,Q)||yn(YG,Q)||yn(g.config.globalProperties,Q)},defineProperty(t,i,r){return r.get!=null?t._.accessCache[i]=0:yn(r,"value")&&this.set(t,i,r.value,null),Reflect.defineProperty(t,i,r)}};function Lz(t){return Ro(t)?t.reduce((i,r)=>(i[r]=null,i),{}):t}let Bj=!0;function roA(t){const i=mZ(t),r=t.proxy,s=t.ctx;Bj=!1,i.beforeCreate&&Fz(i.beforeCreate,t,"bc");const{data:g,computed:B,methods:Q,watch:f,provide:m,inject:M,created:v,beforeMount:U,mounted:AA,beforeUpdate:z,updated:sA,activated:eA,deactivated:X,beforeDestroy:QA,beforeUnmount:wA,destroyed:HA,unmounted:VA,render:ue,renderTracked:jA,renderTriggered:Ve,errorCaptured:Ze,serverPrefetch:Me,expose:qe,inheritAttrs:Et,components:Je,directives:$e,filters:Dt}=i;if(M&&noA(M,s,null),Q)for(const qt in Q){const ai=Q[qt];xo(ai)&&(s[qt]=ai.bind(r))}if(g){const qt=g.call(r,r);ta(qt)&&(t.data=Xm(qt))}if(Bj=!0,B)for(const qt in B){const ai=B[qt],Ki=xo(ai)?ai.bind(r,r):xo(ai.get)?ai.get.bind(r,r):Lu,Ur=!xo(ai)&&xo(ai.set)?ai.set.bind(r):Lu,Er=rt({get:Ki,set:Ur});Object.defineProperty(s,qt,{enumerable:!0,configurable:!0,get:()=>Er.value,set:no=>Er.value=no})}if(f)for(const qt in f)fZ(f[qt],s,r,qt);if(m){const qt=xo(m)?m.call(r):m;Reflect.ownKeys(qt).forEach(ai=>{gE(ai,qt[ai])})}v&&Fz(v,t,"c");function bi(qt,ai){Ro(ai)?ai.forEach(Ki=>qt(Ki.bind(r))):ai&&qt(ai.bind(r))}if(bi(KiA,U),bi(gs,AA),bi(jiA,z),bi(WiA,sA),bi(HiA,eA),bi(ViA,X),bi($iA,Ze),bi(XiA,jA),bi(ZiA,Ve),bi(hZ,wA),bi(Ya,VA),bi(ziA,Me),Ro(qe))if(qe.length){const qt=t.exposed||(t.exposed={});qe.forEach(ai=>{Object.defineProperty(qt,ai,{get:()=>r[ai],set:Ki=>r[ai]=Ki})})}else t.exposed||(t.exposed={});ue&&t.render===Lu&&(t.render=ue),Et!=null&&(t.inheritAttrs=Et),Je&&(t.components=Je),$e&&(t.directives=$e),Me&&QZ(t)}function noA(t,i,r=Lu){Ro(t)&&(t=uj(t));for(const s in t){const g=t[s];let B;ta(g)?"default"in g?B=rI(g.from||s,g.default,!0):B=rI(g.from||s):B=rI(g),wg(B)?Object.defineProperty(i,s,{enumerable:!0,configurable:!0,get:()=>B.value,set:Q=>B.value=Q}):i[s]=B}}function Fz(t,i,r){CB(Ro(t)?t.map(s=>s.bind(i.proxy)):t.bind(i.proxy),i,r)}function fZ(t,i,r,s){let g=s.includes(".")?_Z(r,s):()=>r[s];if(va(t)){const B=i[t];xo(B)&&Un(g,B)}else if(xo(t))Un(g,t.bind(r));else if(ta(t))if(Ro(t))t.forEach(B=>fZ(B,i,r,s));else{const B=xo(t.handler)?t.handler.bind(r):i[t.handler];xo(B)&&Un(g,B,t)}}function mZ(t){const i=t.type,{mixins:r,extends:s}=i,{mixins:g,optionsCache:B,config:{optionMergeStrategies:Q}}=t.appContext,f=B.get(i);let m;return f?m=f:!g.length&&!r&&!s?m=i:(m={},g.length&&g.forEach(M=>L2(m,M,Q,!0)),L2(m,i,Q)),ta(i)&&B.set(i,m),m}function L2(t,i,r,s=!1){const{mixins:g,extends:B}=i;B&&L2(t,B,r,!0),g&&g.forEach(Q=>L2(t,Q,r,!0));for(const Q in i)if(!(s&&Q==="expose")){const f=aoA[Q]||r&&r[Q];t[Q]=f?f(t[Q],i[Q]):i[Q]}return t}const aoA={data:Uz,props:Oz,emits:Oz,methods:hG,computed:hG,beforeCreate:dc,created:dc,beforeMount:dc,mounted:dc,beforeUpdate:dc,updated:dc,beforeDestroy:dc,beforeUnmount:dc,destroyed:dc,unmounted:dc,activated:dc,deactivated:dc,errorCaptured:dc,serverPrefetch:dc,components:hG,directives:hG,watch:goA,provide:Uz,inject:soA};function Uz(t,i){return i?t?function(){return Sg(xo(t)?t.call(this,this):t,xo(i)?i.call(this,this):i)}:i:t}function soA(t,i){return hG(uj(t),uj(i))}function uj(t){if(Ro(t)){const i={};for(let r=0;r<t.length;r++)i[t[r]]=t[r];return i}return t}function dc(t,i){return t?[...new Set([].concat(t,i))]:i}function hG(t,i){return t?Sg(Object.create(null),t,i):i}function Oz(t,i){return t?Ro(t)&&Ro(i)?[...new Set([...t,...i])]:Sg(Object.create(null),Lz(t),Lz(i??{})):i}function goA(t,i){if(!t)return i;if(!i)return t;const r=Sg(Object.create(null),t);for(const s in i)r[s]=dc(t[s],i[s]);return r}function DZ(){return{app:null,config:{isNativeTag:HtA,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let IoA=0;function coA(t,i){return function(s,g=null){xo(s)||(s=Sg({},s)),g!=null&&!ta(g)&&(g=null);const B=DZ(),Q=new WeakSet,f=[];let m=!1;const M=B.app={_uid:IoA++,_component:s,_props:g,_container:null,_context:B,_instance:null,version:pj,get config(){return B.config},set config(v){},use(v,...U){return Q.has(v)||(v&&xo(v.install)?(Q.add(v),v.install(M,...U)):xo(v)&&(Q.add(v),v(M,...U))),M},mixin(v){return B.mixins.includes(v)||B.mixins.push(v),M},component(v,U){return U?(B.components[v]=U,M):B.components[v]},directive(v,U){return U?(B.directives[v]=U,M):B.directives[v]},mount(v,U,AA){if(!m){const z=M._ceVNode||ze(s,g);return z.appContext=B,AA===!0?AA="svg":AA===!1&&(AA=void 0),t(z,v,AA),m=!0,M._container=v,v.__vue_app__=M,hY(z.component)}},onUnmount(v){f.push(v)},unmount(){m&&(CB(f,M._instance,16),t(null,M._container),delete M._container.__vue_app__)},provide(v,U){return B.provides[v]=U,M},runWithContext(v){const U=hw;hw=M;try{return v()}finally{hw=U}}};return M}}let hw=null;function gE(t,i){if(oI){let r=oI.provides;const s=oI.parent&&oI.parent.provides;s===r&&(r=oI.provides=Object.create(s)),r[t]=i}}function rI(t,i,r=!1){const s=oI||Mg;if(s||hw){const g=hw?hw._context.provides:s?s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(g&&t in g)return g[t];if(arguments.length>1)return r&&xo(i)?i.call(s&&s.proxy):i}}const yZ={},RZ=()=>Object.create(yZ),MZ=t=>Object.getPrototypeOf(t)===yZ;function EoA(t,i,r,s=!1){const g={},B=RZ();t.propsDefaults=Object.create(null),wZ(t,i,g,B);for(const Q in t.propsOptions[0])Q in g||(g[Q]=void 0);r?t.props=s?g:RiA(g):t.type.props?t.props=g:t.props=B,t.attrs=B}function loA(t,i,r,s){const{props:g,attrs:B,vnode:{patchFlag:Q}}=t,f=an(g),[m]=t.propsOptions;let M=!1;if((s||Q>0)&&!(Q&16)){if(Q&8){const v=t.vnode.dynamicProps;for(let U=0;U<v.length;U++){let AA=v[U];if(QY(t.emitsOptions,AA))continue;const z=i[AA];if(m)if(yn(B,AA))z!==B[AA]&&(B[AA]=z,M=!0);else{const sA=mC(AA);g[sA]=Qj(m,f,sA,z,t,!1)}else z!==B[AA]&&(B[AA]=z,M=!0)}}}else{wZ(t,i,g,B)&&(M=!0);let v;for(const U in f)(!i||!yn(i,U)&&((v=Rp(U))===U||!yn(i,v)))&&(m?r&&(r[U]!==void 0||r[v]!==void 0)&&(g[U]=Qj(m,f,U,void 0,t,!0)):delete g[U]);if(B!==f)for(const U in B)(!i||!yn(i,U))&&(delete B[U],M=!0)}M&&od(t.attrs,"set","")}function wZ(t,i,r,s){const[g,B]=t.propsOptions;let Q=!1,f;if(i)for(let m in i){if(FG(m))continue;const M=i[m];let v;g&&yn(g,v=mC(m))?!B||!B.includes(v)?r[v]=M:(f||(f={}))[v]=M:QY(t.emitsOptions,m)||(!(m in s)||M!==s[m])&&(s[m]=M,Q=!0)}if(B){const m=an(r),M=f||qn;for(let v=0;v<B.length;v++){const U=B[v];r[U]=Qj(g,m,U,M[U],t,!yn(M,U))}}return Q}function Qj(t,i,r,s,g,B){const Q=t[r];if(Q!=null){const f=yn(Q,"default");if(f&&s===void 0){const m=Q.default;if(Q.type!==Function&&!Q.skipFactory&&xo(m)){const{propsDefaults:M}=g;if(r in M)s=M[r];else{const v=dk(g);s=M[r]=m.call(null,i),v()}}else s=m;g.ce&&g.ce._setProp(r,s)}Q[0]&&(B&&!f?s=!1:Q[1]&&(s===""||s===Rp(r))&&(s=!0))}return s}const CoA=new WeakMap;function SZ(t,i,r=!1){const s=r?CoA:i.propsCache,g=s.get(t);if(g)return g;const B=t.props,Q={},f=[];let m=!1;if(!xo(t)){const v=U=>{m=!0;const[AA,z]=SZ(U,i,!0);Sg(Q,AA),z&&f.push(...z)};!r&&i.mixins.length&&i.mixins.forEach(v),t.extends&&v(t.extends),t.mixins&&t.mixins.forEach(v)}if(!B&&!m)return ta(t)&&s.set(t,Cw),Cw;if(Ro(B))for(let v=0;v<B.length;v++){const U=mC(B[v]);xz(U)&&(Q[U]=qn)}else if(B)for(const v in B){const U=mC(v);if(xz(U)){const AA=B[v],z=Q[U]=Ro(AA)||xo(AA)?{type:AA}:Sg({},AA),sA=z.type;let eA=!1,X=!0;if(Ro(sA))for(let QA=0;QA<sA.length;++QA){const wA=sA[QA],HA=xo(wA)&&wA.name;if(HA==="Boolean"){eA=!0;break}else HA==="String"&&(X=!1)}else eA=xo(sA)&&sA.name==="Boolean";z[0]=eA,z[1]=X,(eA||yn(z,"default"))&&f.push(U)}}const M=[Q,f];return ta(t)&&s.set(t,M),M}function xz(t){return t[0]!=="$"&&!FG(t)}const vZ=t=>t[0]==="_"||t==="$stable",c3=t=>Ro(t)?t.map(Gu):[Gu(t)],BoA=(t,i,r)=>{if(i._n)return i;const s=Vt((...g)=>c3(i(...g)),r);return s._c=!1,s},NZ=(t,i,r)=>{const s=t._ctx;for(const g in t){if(vZ(g))continue;const B=t[g];if(xo(B))i[g]=BoA(g,B,s);else if(B!=null){const Q=c3(B);i[g]=()=>Q}}},TZ=(t,i)=>{const r=c3(i);t.slots.default=()=>r},GZ=(t,i,r)=>{for(const s in i)(r||s!=="_")&&(t[s]=i[s])},uoA=(t,i,r)=>{const s=t.slots=RZ();if(t.vnode.shapeFlag&32){const g=i._;g?(GZ(s,i,r),r&&U8(s,"_",g,!0)):NZ(i,s)}else i&&TZ(t,i)},QoA=(t,i,r)=>{const{vnode:s,slots:g}=t;let B=!0,Q=qn;if(s.shapeFlag&32){const f=i._;f?r&&f===1?B=!1:GZ(g,i,r):(B=!i.$stable,NZ(i,g)),Q=i}else i&&(TZ(t,i),Q={default:1});if(B)for(const f in g)!vZ(f)&&Q[f]==null&&delete g[f]},fc=ToA;function doA(t){return hoA(t)}function hoA(t,i){const r=IY();r.__VUE__=!0;const{insert:s,remove:g,patchProp:B,createElement:Q,createText:f,createComment:m,setText:M,setElementText:v,parentNode:U,nextSibling:AA,setScopeId:z=Lu,insertStaticContent:sA}=t,eA=(MA,YA,pe,st=null,Te=null,be=null,yt=void 0,ht=null,ae=!!YA.dynamicChildren)=>{if(MA===YA)return;MA&&!Km(MA,YA)&&(st=Ni(MA),no(MA,Te,be,!0),MA=null),YA.patchFlag===-2&&(ae=!1,YA.dynamicChildren=null);const{type:ye,ref:Xe,shapeFlag:ot}=YA;switch(ye){case dY:X(MA,YA,pe,st);break;case yc:QA(MA,YA,pe,st);break;case yK:MA==null&&wA(YA,pe,st,yt);break;case Tn:Je(MA,YA,pe,st,Te,be,yt,ht,ae);break;default:ot&1?ue(MA,YA,pe,st,Te,be,yt,ht,ae):ot&6?$e(MA,YA,pe,st,Te,be,yt,ht,ae):(ot&64||ot&128)&&ye.process(MA,YA,pe,st,Te,be,yt,ht,ae,Di)}Xe!=null&&Te&&b2(Xe,MA&&MA.ref,be,YA||MA,!YA)},X=(MA,YA,pe,st)=>{if(MA==null)s(YA.el=f(YA.children),pe,st);else{const Te=YA.el=MA.el;YA.children!==MA.children&&M(Te,YA.children)}},QA=(MA,YA,pe,st)=>{MA==null?s(YA.el=m(YA.children||""),pe,st):YA.el=MA.el},wA=(MA,YA,pe,st)=>{[MA.el,MA.anchor]=sA(MA.children,YA,pe,st,MA.el,MA.anchor)},HA=({el:MA,anchor:YA},pe,st)=>{let Te;for(;MA&&MA!==YA;)Te=AA(MA),s(MA,pe,st),MA=Te;s(YA,pe,st)},VA=({el:MA,anchor:YA})=>{let pe;for(;MA&&MA!==YA;)pe=AA(MA),g(MA),MA=pe;g(YA)},ue=(MA,YA,pe,st,Te,be,yt,ht,ae)=>{YA.type==="svg"?yt="svg":YA.type==="math"&&(yt="mathml"),MA==null?jA(YA,pe,st,Te,be,yt,ht,ae):Me(MA,YA,Te,be,yt,ht,ae)},jA=(MA,YA,pe,st,Te,be,yt,ht)=>{let ae,ye;const{props:Xe,shapeFlag:ot,transition:zt,dirs:yi}=MA;if(ae=MA.el=Q(MA.type,be,Xe&&Xe.is,Xe),ot&8?v(ae,MA.children):ot&16&&Ze(MA.children,ae,null,st,Te,DK(MA,be),yt,ht),yi&&Om(MA,null,st,"created"),Ve(ae,MA,MA.scopeId,yt,st),Xe){for(const Ei in Xe)Ei!=="value"&&!FG(Ei)&&B(ae,Ei,null,Xe[Ei],be,st);"value"in Xe&&B(ae,"value",null,Xe.value,be),(ye=Xe.onVnodeBeforeMount)&&Su(ye,st,MA)}yi&&Om(MA,null,st,"beforeMount");const Hi=poA(Te,zt);Hi&&zt.beforeEnter(ae),s(ae,YA,pe),((ye=Xe&&Xe.onVnodeMounted)||Hi||yi)&&fc(()=>{ye&&Su(ye,st,MA),Hi&&zt.enter(ae),yi&&Om(MA,null,st,"mounted")},Te)},Ve=(MA,YA,pe,st,Te)=>{if(pe&&z(MA,pe),st)for(let be=0;be<st.length;be++)z(MA,st[be]);if(Te){let be=Te.subTree;if(YA===be||LZ(be.type)&&(be.ssContent===YA||be.ssFallback===YA)){const yt=Te.vnode;Ve(MA,yt,yt.scopeId,yt.slotScopeIds,Te.parent)}}},Ze=(MA,YA,pe,st,Te,be,yt,ht,ae=0)=>{for(let ye=ae;ye<MA.length;ye++){const Xe=MA[ye]=ht?gp(MA[ye]):Gu(MA[ye]);eA(null,Xe,YA,pe,st,Te,be,yt,ht)}},Me=(MA,YA,pe,st,Te,be,yt)=>{const ht=YA.el=MA.el;let{patchFlag:ae,dynamicChildren:ye,dirs:Xe}=YA;ae|=MA.patchFlag&16;const ot=MA.props||qn,zt=YA.props||qn;let yi;if(pe&&xm(pe,!1),(yi=zt.onVnodeBeforeUpdate)&&Su(yi,pe,YA,MA),Xe&&Om(YA,MA,pe,"beforeUpdate"),pe&&xm(pe,!0),(ot.innerHTML&&zt.innerHTML==null||ot.textContent&&zt.textContent==null)&&v(ht,""),ye?qe(MA.dynamicChildren,ye,ht,pe,st,DK(YA,Te),be):yt||ai(MA,YA,ht,null,pe,st,DK(YA,Te),be,!1),ae>0){if(ae&16)Et(ht,ot,zt,pe,Te);else if(ae&2&&ot.class!==zt.class&&B(ht,"class",null,zt.class,Te),ae&4&&B(ht,"style",ot.style,zt.style,Te),ae&8){const Hi=YA.dynamicProps;for(let Ei=0;Ei<Hi.length;Ei++){const ji=Hi[Ei],Xo=ot[ji],sr=zt[ji];(sr!==Xo||ji==="value")&&B(ht,ji,Xo,sr,Te,pe)}}ae&1&&MA.children!==YA.children&&v(ht,YA.children)}else!yt&&ye==null&&Et(ht,ot,zt,pe,Te);((yi=zt.onVnodeUpdated)||Xe)&&fc(()=>{yi&&Su(yi,pe,YA,MA),Xe&&Om(YA,MA,pe,"updated")},st)},qe=(MA,YA,pe,st,Te,be,yt)=>{for(let ht=0;ht<YA.length;ht++){const ae=MA[ht],ye=YA[ht],Xe=ae.el&&(ae.type===Tn||!Km(ae,ye)||ae.shapeFlag&70)?U(ae.el):pe;eA(ae,ye,Xe,null,st,Te,be,yt,!0)}},Et=(MA,YA,pe,st,Te)=>{if(YA!==pe){if(YA!==qn)for(const be in YA)!FG(be)&&!(be in pe)&&B(MA,be,YA[be],null,Te,st);for(const be in pe){if(FG(be))continue;const yt=pe[be],ht=YA[be];yt!==ht&&be!=="value"&&B(MA,be,ht,yt,Te,st)}"value"in pe&&B(MA,"value",YA.value,pe.value,Te)}},Je=(MA,YA,pe,st,Te,be,yt,ht,ae)=>{const ye=YA.el=MA?MA.el:f(""),Xe=YA.anchor=MA?MA.anchor:f("");let{patchFlag:ot,dynamicChildren:zt,slotScopeIds:yi}=YA;yi&&(ht=ht?ht.concat(yi):yi),MA==null?(s(ye,pe,st),s(Xe,pe,st),Ze(YA.children||[],pe,Xe,Te,be,yt,ht,ae)):ot>0&&ot&64&&zt&&MA.dynamicChildren?(qe(MA.dynamicChildren,zt,pe,Te,be,yt,ht),(YA.key!=null||Te&&YA===Te.subTree)&&E3(MA,YA,!0)):ai(MA,YA,pe,Xe,Te,be,yt,ht,ae)},$e=(MA,YA,pe,st,Te,be,yt,ht,ae)=>{YA.slotScopeIds=ht,MA==null?YA.shapeFlag&512?Te.ctx.activate(YA,pe,st,yt,ae):Dt(YA,pe,st,Te,be,yt,ae):Zi(MA,YA,ae)},Dt=(MA,YA,pe,st,Te,be,yt)=>{const ht=MA.component=FoA(MA,st,Te);if(BY(MA)&&(ht.ctx.renderer=Di),OoA(ht,!1,yt),ht.asyncDep){if(Te&&Te.registerDep(ht,bi,yt),!MA.el){const ae=ht.subTree=ze(yc);QA(null,ae,YA,pe)}}else bi(ht,MA,YA,pe,Te,be,yt)},Zi=(MA,YA,pe)=>{const st=YA.component=MA.component;if(voA(MA,YA,pe))if(st.asyncDep&&!st.asyncResolved){qt(st,YA,pe);return}else st.next=YA,st.update();else YA.el=MA.el,st.vnode=YA},bi=(MA,YA,pe,st,Te,be,yt)=>{const ht=()=>{if(MA.isMounted){let{next:ot,bu:zt,u:yi,parent:Hi,vnode:Ei}=MA;{const Nr=kZ(MA);if(Nr){ot&&(ot.el=Ei.el,qt(MA,ot,yt)),Nr.asyncDep.then(()=>{MA.isUnmounted||ht()});return}}let ji=ot,Xo;xm(MA,!1),ot?(ot.el=Ei.el,qt(MA,ot,yt)):ot=Ei,zt&&BK(zt),(Xo=ot.props&&ot.props.onVnodeBeforeUpdate)&&Su(Xo,Hi,ot,Ei),xm(MA,!0);const sr=Pz(MA),Lo=MA.subTree;MA.subTree=sr,eA(Lo,sr,U(Lo.el),Ni(Lo),MA,Te,be),ot.el=sr.el,ji===null&&NoA(MA,sr.el),yi&&fc(yi,Te),(Xo=ot.props&&ot.props.onVnodeUpdated)&&fc(()=>Su(Xo,Hi,ot,Ei),Te)}else{let ot;const{el:zt,props:yi}=YA,{bm:Hi,m:Ei,parent:ji,root:Xo,type:sr}=MA,Lo=dw(YA);xm(MA,!1),Hi&&BK(Hi),!Lo&&(ot=yi&&yi.onVnodeBeforeMount)&&Su(ot,ji,YA),xm(MA,!0);{Xo.ce&&Xo.ce._injectChildStyle(sr);const Nr=MA.subTree=Pz(MA);eA(null,Nr,pe,st,MA,Te,be),YA.el=Nr.el}if(Ei&&fc(Ei,Te),!Lo&&(ot=yi&&yi.onVnodeMounted)){const Nr=YA;fc(()=>Su(ot,ji,Nr),Te)}(YA.shapeFlag&256||ji&&dw(ji.vnode)&&ji.vnode.shapeFlag&256)&&MA.a&&fc(MA.a,Te),MA.isMounted=!0,YA=pe=st=null}};MA.scope.on();const ae=MA.effect=new P8(ht);MA.scope.off();const ye=MA.update=ae.run.bind(ae),Xe=MA.job=ae.runIfDirty.bind(ae);Xe.i=MA,Xe.id=MA.uid,ae.scheduler=()=>I3(Xe),xm(MA,!0),ye()},qt=(MA,YA,pe)=>{YA.component=MA;const st=MA.vnode.props;MA.vnode=YA,MA.next=null,loA(MA,YA.props,st,pe),QoA(MA,YA.children,pe),Mp(),Nz(MA),wp()},ai=(MA,YA,pe,st,Te,be,yt,ht,ae=!1)=>{const ye=MA&&MA.children,Xe=MA?MA.shapeFlag:0,ot=YA.children,{patchFlag:zt,shapeFlag:yi}=YA;if(zt>0){if(zt&128){Ur(ye,ot,pe,st,Te,be,yt,ht,ae);return}else if(zt&256){Ki(ye,ot,pe,st,Te,be,yt,ht,ae);return}}yi&8?(Xe&16&&lr(ye,Te,be),ot!==ye&&v(pe,ot)):Xe&16?yi&16?Ur(ye,ot,pe,st,Te,be,yt,ht,ae):lr(ye,Te,be,!0):(Xe&8&&v(pe,""),yi&16&&Ze(ot,pe,st,Te,be,yt,ht,ae))},Ki=(MA,YA,pe,st,Te,be,yt,ht,ae)=>{MA=MA||Cw,YA=YA||Cw;const ye=MA.length,Xe=YA.length,ot=Math.min(ye,Xe);let zt;for(zt=0;zt<ot;zt++){const yi=YA[zt]=ae?gp(YA[zt]):Gu(YA[zt]);eA(MA[zt],yi,pe,null,Te,be,yt,ht,ae)}ye>Xe?lr(MA,Te,be,!0,!1,ot):Ze(YA,pe,st,Te,be,yt,ht,ae,ot)},Ur=(MA,YA,pe,st,Te,be,yt,ht,ae)=>{let ye=0;const Xe=YA.length;let ot=MA.length-1,zt=Xe-1;for(;ye<=ot&&ye<=zt;){const yi=MA[ye],Hi=YA[ye]=ae?gp(YA[ye]):Gu(YA[ye]);if(Km(yi,Hi))eA(yi,Hi,pe,null,Te,be,yt,ht,ae);else break;ye++}for(;ye<=ot&&ye<=zt;){const yi=MA[ot],Hi=YA[zt]=ae?gp(YA[zt]):Gu(YA[zt]);if(Km(yi,Hi))eA(yi,Hi,pe,null,Te,be,yt,ht,ae);else break;ot--,zt--}if(ye>ot){if(ye<=zt){const yi=zt+1,Hi=yi<Xe?YA[yi].el:st;for(;ye<=zt;)eA(null,YA[ye]=ae?gp(YA[ye]):Gu(YA[ye]),pe,Hi,Te,be,yt,ht,ae),ye++}}else if(ye>zt)for(;ye<=ot;)no(MA[ye],Te,be,!0),ye++;else{const yi=ye,Hi=ye,Ei=new Map;for(ye=Hi;ye<=zt;ye++){const Kr=YA[ye]=ae?gp(YA[ye]):Gu(YA[ye]);Kr.key!=null&&Ei.set(Kr.key,ye)}let ji,Xo=0;const sr=zt-Hi+1;let Lo=!1,Nr=0;const Vo=new Array(sr);for(ye=0;ye<sr;ye++)Vo[ye]=0;for(ye=yi;ye<=ot;ye++){const Kr=MA[ye];if(Xo>=sr){no(Kr,Te,be,!0);continue}let Qn;if(Kr.key!=null)Qn=Ei.get(Kr.key);else for(ji=Hi;ji<=zt;ji++)if(Vo[ji-Hi]===0&&Km(Kr,YA[ji])){Qn=ji;break}Qn===void 0?no(Kr,Te,be,!0):(Vo[Qn-Hi]=ye+1,Qn>=Nr?Nr=Qn:Lo=!0,eA(Kr,YA[Qn],pe,null,Te,be,yt,ht,ae),Xo++)}const et=Lo?foA(Vo):Cw;for(ji=et.length-1,ye=sr-1;ye>=0;ye--){const Kr=Hi+ye,Qn=YA[Kr],ho=Kr+1<Xe?YA[Kr+1].el:st;Vo[ye]===0?eA(null,Qn,pe,ho,Te,be,yt,ht,ae):Lo&&(ji<0||ye!==et[ji]?Er(Qn,pe,ho,2):ji--)}}},Er=(MA,YA,pe,st,Te=null)=>{const{el:be,type:yt,transition:ht,children:ae,shapeFlag:ye}=MA;if(ye&6){Er(MA.component.subTree,YA,pe,st);return}if(ye&128){MA.suspense.move(YA,pe,st);return}if(ye&64){yt.move(MA,YA,pe,Di);return}if(yt===Tn){s(be,YA,pe);for(let ot=0;ot<ae.length;ot++)Er(ae[ot],YA,pe,st);s(MA.anchor,YA,pe);return}if(yt===yK){HA(MA,YA,pe);return}if(st!==2&&ye&1&&ht)if(st===0)ht.beforeEnter(be),s(be,YA,pe),fc(()=>ht.enter(be),Te);else{const{leave:ot,delayLeave:zt,afterLeave:yi}=ht,Hi=()=>s(be,YA,pe),Ei=()=>{ot(be,()=>{Hi(),yi&&yi()})};zt?zt(be,Hi,Ei):Ei()}else s(be,YA,pe)},no=(MA,YA,pe,st=!1,Te=!1)=>{const{type:be,props:yt,ref:ht,children:ae,dynamicChildren:ye,shapeFlag:Xe,patchFlag:ot,dirs:zt,cacheIndex:yi}=MA;if(ot===-2&&(Te=!1),ht!=null&&b2(ht,null,pe,MA,!0),yi!=null&&(YA.renderCache[yi]=void 0),Xe&256){YA.ctx.deactivate(MA);return}const Hi=Xe&1&&zt,Ei=!dw(MA);let ji;if(Ei&&(ji=yt&&yt.onVnodeBeforeUnmount)&&Su(ji,YA,MA),Xe&6)yr(MA.component,pe,st);else{if(Xe&128){MA.suspense.unmount(pe,st);return}Hi&&Om(MA,null,YA,"beforeUnmount"),Xe&64?MA.type.remove(MA,YA,pe,Di,st):ye&&!ye.hasOnce&&(be!==Tn||ot>0&&ot&64)?lr(ye,YA,pe,!1,!0):(be===Tn&&ot&384||!Te&&Xe&16)&&lr(ae,YA,pe),st&&Kn(MA)}(Ei&&(ji=yt&&yt.onVnodeUnmounted)||Hi)&&fc(()=>{ji&&Su(ji,YA,MA),Hi&&Om(MA,null,YA,"unmounted")},pe)},Kn=MA=>{const{type:YA,el:pe,anchor:st,transition:Te}=MA;if(YA===Tn){Xi(pe,st);return}if(YA===yK){VA(MA);return}const be=()=>{g(pe),Te&&!Te.persisted&&Te.afterLeave&&Te.afterLeave()};if(MA.shapeFlag&1&&Te&&!Te.persisted){const{leave:yt,delayLeave:ht}=Te,ae=()=>yt(pe,be);ht?ht(MA.el,be,ae):ae()}else be()},Xi=(MA,YA)=>{let pe;for(;MA!==YA;)pe=AA(MA),g(MA),MA=pe;g(YA)},yr=(MA,YA,pe)=>{const{bum:st,scope:Te,job:be,subTree:yt,um:ht,m:ae,a:ye}=MA;Yz(ae),Yz(ye),st&&BK(st),Te.stop(),be&&(be.flags|=8,no(yt,MA,YA,pe)),ht&&fc(ht,YA),fc(()=>{MA.isUnmounted=!0},YA),YA&&YA.pendingBranch&&!YA.isUnmounted&&MA.asyncDep&&!MA.asyncResolved&&MA.suspenseId===YA.pendingId&&(YA.deps--,YA.deps===0&&YA.resolve())},lr=(MA,YA,pe,st=!1,Te=!1,be=0)=>{for(let yt=be;yt<MA.length;yt++)no(MA[yt],YA,pe,st,Te)},Ni=MA=>{if(MA.shapeFlag&6)return Ni(MA.component.subTree);if(MA.shapeFlag&128)return MA.suspense.next();const YA=AA(MA.anchor||MA.el),pe=YA&&YA[sZ];return pe?AA(pe):YA};let wt=!1;const Ji=(MA,YA,pe)=>{MA==null?YA._vnode&&no(YA._vnode,null,null,!0):eA(YA._vnode||null,MA,YA,null,null,null,pe),YA._vnode=MA,wt||(wt=!0,Nz(),nZ(),wt=!1)},Di={p:eA,um:no,m:Er,r:Kn,mt:Dt,mc:Ze,pc:ai,pbc:qe,n:Ni,o:t};return{render:Ji,hydrate:void 0,createApp:coA(Ji)}}function DK({type:t,props:i},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&i&&i.encoding&&i.encoding.includes("html")?void 0:r}function xm({effect:t,job:i},r){r?(t.flags|=32,i.flags|=4):(t.flags&=-33,i.flags&=-5)}function poA(t,i){return(!t||t&&!t.pendingBranch)&&i&&!i.persisted}function E3(t,i,r=!1){const s=t.children,g=i.children;if(Ro(s)&&Ro(g))for(let B=0;B<s.length;B++){const Q=s[B];let f=g[B];f.shapeFlag&1&&!f.dynamicChildren&&((f.patchFlag<=0||f.patchFlag===32)&&(f=g[B]=gp(g[B]),f.el=Q.el),!r&&f.patchFlag!==-2&&E3(Q,f)),f.type===dY&&(f.el=Q.el)}}function foA(t){const i=t.slice(),r=[0];let s,g,B,Q,f;const m=t.length;for(s=0;s<m;s++){const M=t[s];if(M!==0){if(g=r[r.length-1],t[g]<M){i[s]=g,r.push(s);continue}for(B=0,Q=r.length-1;B<Q;)f=B+Q>>1,t[r[f]]<M?B=f+1:Q=f;M<t[r[B]]&&(B>0&&(i[s]=r[B-1]),r[B]=s)}}for(B=r.length,Q=r[B-1];B-- >0;)r[B]=Q,Q=i[Q];return r}function kZ(t){const i=t.subTree.component;if(i)return i.asyncDep&&!i.asyncResolved?i:kZ(i)}function Yz(t){if(t)for(let i=0;i<t.length;i++)t[i].flags|=8}const moA=Symbol.for("v-scx"),DoA=()=>rI(moA);function Nw(t,i){return l3(t,null,i)}function Un(t,i,r){return l3(t,i,r)}function l3(t,i,r=qn){const{immediate:s,deep:g,flush:B,once:Q}=r,f=Sg({},r),m=i&&s||!i&&B!=="post";let M;if(ak){if(B==="sync"){const z=DoA();M=z.__watcherHandles||(z.__watcherHandles=[])}else if(!m){const z=()=>{};return z.stop=Lu,z.resume=Lu,z.pause=Lu,z}}const v=oI;f.call=(z,sA,eA)=>CB(z,v,sA,eA);let U=!1;B==="post"?f.scheduler=z=>{fc(z,v&&v.suspense)}:B!=="sync"&&(U=!0,f.scheduler=(z,sA)=>{sA?z():I3(z)}),f.augmentJob=z=>{i&&(z.flags|=4),U&&(z.flags|=2,v&&(z.id=v.uid,z.i=v))};const AA=biA(t,i,f);return ak&&(M?M.push(AA):m&&AA()),AA}function yoA(t,i,r){const s=this.proxy,g=va(t)?t.includes(".")?_Z(s,t):()=>s[t]:t.bind(s,s);let B;xo(i)?B=i:(B=i.handler,r=i);const Q=dk(this),f=l3(g,B.bind(s),r);return Q(),f}function _Z(t,i){const r=i.split(".");return()=>{let s=t;for(let g=0;g<r.length&&s;g++)s=s[r[g]];return s}}const RoA=(t,i)=>i==="modelValue"||i==="model-value"?t.modelModifiers:t[`${i}Modifiers`]||t[`${mC(i)}Modifiers`]||t[`${Rp(i)}Modifiers`];function MoA(t,i,...r){if(t.isUnmounted)return;const s=t.vnode.props||qn;let g=r;const B=i.startsWith("update:"),Q=B&&RoA(s,i.slice(7));Q&&(Q.trim&&(g=r.map(v=>va(v)?v.trim():v)),Q.number&&(g=r.map(WtA)));let f,m=s[f=CK(i)]||s[f=CK(mC(i))];!m&&B&&(m=s[f=CK(Rp(i))]),m&&CB(m,t,6,g);const M=s[f+"Once"];if(M){if(!t.emitted)t.emitted={};else if(t.emitted[f])return;t.emitted[f]=!0,CB(M,t,6,g)}}function bZ(t,i,r=!1){const s=i.emitsCache,g=s.get(t);if(g!==void 0)return g;const B=t.emits;let Q={},f=!1;if(!xo(t)){const m=M=>{const v=bZ(M,i,!0);v&&(f=!0,Sg(Q,v))};!r&&i.mixins.length&&i.mixins.forEach(m),t.extends&&m(t.extends),t.mixins&&t.mixins.forEach(m)}return!B&&!f?(ta(t)&&s.set(t,null),null):(Ro(B)?B.forEach(m=>Q[m]=null):Sg(Q,B),ta(t)&&s.set(t,Q),Q)}function QY(t,i){return!t||!nY(i)?!1:(i=i.slice(2).replace(/Once$/,""),yn(t,i[0].toLowerCase()+i.slice(1))||yn(t,Rp(i))||yn(t,i))}function Pz(t){const{type:i,vnode:r,proxy:s,withProxy:g,propsOptions:[B],slots:Q,attrs:f,emit:m,render:M,renderCache:v,props:U,data:AA,setupState:z,ctx:sA,inheritAttrs:eA}=t,X=_2(t);let QA,wA;try{if(r.shapeFlag&4){const VA=g||s,ue=VA;QA=Gu(M.call(ue,VA,v,U,z,AA,sA)),wA=f}else{const VA=i;QA=Gu(VA.length>1?VA(U,{attrs:f,slots:Q,emit:m}):VA(U,null)),wA=i.props?f:woA(f)}}catch(VA){PG.length=0,EY(VA,t,1),QA=ze(yc)}let HA=QA;if(wA&&eA!==!1){const VA=Object.keys(wA),{shapeFlag:ue}=HA;VA.length&&ue&7&&(B&&VA.some(A3)&&(wA=SoA(wA,B)),HA=hp(HA,wA,!1,!0))}return r.dirs&&(HA=hp(HA,null,!1,!0),HA.dirs=HA.dirs?HA.dirs.concat(r.dirs):r.dirs),r.transition&&ok(HA,r.transition),QA=HA,_2(X),QA}const woA=t=>{let i;for(const r in t)(r==="class"||r==="style"||nY(r))&&((i||(i={}))[r]=t[r]);return i},SoA=(t,i)=>{const r={};for(const s in t)(!A3(s)||!(s.slice(9)in i))&&(r[s]=t[s]);return r};function voA(t,i,r){const{props:s,children:g,component:B}=t,{props:Q,children:f,patchFlag:m}=i,M=B.emitsOptions;if(i.dirs||i.transition)return!0;if(r&&m>=0){if(m&1024)return!0;if(m&16)return s?Jz(s,Q,M):!!Q;if(m&8){const v=i.dynamicProps;for(let U=0;U<v.length;U++){const AA=v[U];if(Q[AA]!==s[AA]&&!QY(M,AA))return!0}}}else return(g||f)&&(!f||!f.$stable)?!0:s===Q?!1:s?Q?Jz(s,Q,M):!0:!!Q;return!1}function Jz(t,i,r){const s=Object.keys(i);if(s.length!==Object.keys(t).length)return!0;for(let g=0;g<s.length;g++){const B=s[g];if(i[B]!==t[B]&&!QY(r,B))return!0}return!1}function NoA({vnode:t,parent:i},r){for(;i;){const s=i.subTree;if(s.suspense&&s.suspense.activeBranch===t&&(s.el=t.el),s===t)(t=i.vnode).el=r,i=i.parent;else break}}const LZ=t=>t.__isSuspense;function ToA(t,i){i&&i.pendingBranch?Ro(t)?i.effects.push(...t):i.effects.push(t):UiA(t)}const Tn=Symbol.for("v-fgt"),dY=Symbol.for("v-txt"),yc=Symbol.for("v-cmt"),yK=Symbol.for("v-stc"),PG=[];let Cl=null;function qA(t=!1){PG.push(Cl=t?null:[])}function GoA(){PG.pop(),Cl=PG[PG.length-1]||null}let rk=1;function Hz(t,i=!1){rk+=t,t<0&&Cl&&i&&(Cl.hasOnce=!0)}function FZ(t){return t.dynamicChildren=rk>0?Cl||Cw:null,GoA(),rk>0&&Cl&&Cl.push(t),t}function Ue(t,i,r,s,g,B){return FZ(ce(t,i,r,s,g,B,!0))}function _t(t,i,r,s,g){return FZ(ze(t,i,r,s,g,!0))}function nk(t){return t?t.__v_isVNode===!0:!1}function Km(t,i){return t.type===i.type&&t.key===i.key}const UZ=({key:t})=>t??null,u2=({ref:t,ref_key:i,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?va(t)||wg(t)||xo(t)?{i:Mg,r:t,k:i,f:!!r}:t:null);function ce(t,i=null,r=null,s=0,g=null,B=t===Tn?0:1,Q=!1,f=!1){const m={__v_isVNode:!0,__v_skip:!0,type:t,props:i,key:i&&UZ(i),ref:i&&u2(i),scopeId:CY,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:B,patchFlag:s,dynamicProps:g,dynamicChildren:null,appContext:null,ctx:Mg};return f?(C3(m,r),B&128&&t.normalize(m)):r&&(m.shapeFlag|=va(r)?8:16),rk>0&&!Q&&Cl&&(m.patchFlag>0||B&6)&&m.patchFlag!==32&&Cl.push(m),m}const ze=koA;function koA(t,i=null,r=null,s=0,g=null,B=!1){if((!t||t===toA)&&(t=yc),nk(t)){const f=hp(t,i,!0);return r&&C3(f,r),rk>0&&!B&&Cl&&(f.shapeFlag&6?Cl[Cl.indexOf(t)]=f:Cl.push(f)),f.patchFlag=-2,f}if(HoA(t)&&(t=t.__vccOpts),i){i=_oA(i);let{class:f,style:m}=i;f&&!va(f)&&(i.class=Qi(f)),ta(m)&&(g3(m)&&!Ro(m)&&(m=Sg({},m)),i.style=zr(m))}const Q=va(t)?1:LZ(t)?128:gZ(t)?64:ta(t)?4:xo(t)?2:0;return ce(t,i,r,s,g,Q,B,!0)}function _oA(t){return t?g3(t)||MZ(t)?Sg({},t):t:null}function hp(t,i,r=!1,s=!1){const{props:g,ref:B,patchFlag:Q,children:f,transition:m}=t,M=i?dj(g||{},i):g,v={__v_isVNode:!0,__v_skip:!0,type:t.type,props:M,key:M&&UZ(M),ref:i&&i.ref?r&&B?Ro(B)?B.concat(u2(i)):[B,u2(i)]:u2(i):B,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:f,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:i&&t.type!==Tn?Q===-1?16:Q|16:Q,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:m,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&hp(t.ssContent),ssFallback:t.ssFallback&&hp(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return m&&s&&ok(v,m.clone(v)),v}function Na(t=" ",i=0){return ze(dY,null,t,i)}function Tt(t="",i=!1){return i?(qA(),_t(yc,null,t)):ze(yc,null,t)}function Gu(t){return t==null||typeof t=="boolean"?ze(yc):Ro(t)?ze(Tn,null,t.slice()):nk(t)?gp(t):ze(dY,null,String(t))}function gp(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:hp(t)}function C3(t,i){let r=0;const{shapeFlag:s}=t;if(i==null)i=null;else if(Ro(i))r=16;else if(typeof i=="object")if(s&65){const g=i.default;g&&(g._c&&(g._d=!1),C3(t,g()),g._c&&(g._d=!0));return}else{r=32;const g=i._;!g&&!MZ(i)?i._ctx=Mg:g===3&&Mg&&(Mg.slots._===1?i._=1:(i._=2,t.patchFlag|=1024))}else xo(i)?(i={default:i,_ctx:Mg},r=32):(i=String(i),s&64?(r=16,i=[Na(i)]):r=8);t.children=i,t.shapeFlag|=r}function dj(...t){const i={};for(let r=0;r<t.length;r++){const s=t[r];for(const g in s)if(g==="class")i.class!==s.class&&(i.class=Qi([i.class,s.class]));else if(g==="style")i.style=zr([i.style,s.style]);else if(nY(g)){const B=i[g],Q=s[g];Q&&B!==Q&&!(Ro(B)&&B.includes(Q))&&(i[g]=B?[].concat(B,Q):Q)}else g!==""&&(i[g]=s[g])}return i}function Su(t,i,r,s=null){CB(t,i,7,[r,s])}const boA=DZ();let LoA=0;function FoA(t,i,r){const s=t.type,g=(i?i.appContext:t.appContext)||boA,B={uid:LoA++,vnode:t,type:s,parent:i,appContext:g,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new oiA(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:i?i.provides:Object.create(g.provides),ids:i?i.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:SZ(s,g),emitsOptions:bZ(s,g),emit:null,emitted:null,propsDefaults:qn,inheritAttrs:s.inheritAttrs,ctx:qn,data:qn,props:qn,attrs:qn,slots:qn,refs:qn,setupState:qn,setupContext:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return B.ctx={_:B},B.root=i?i.root:B,B.emit=MoA.bind(null,B),t.ce&&t.ce(B),B}let oI=null;const UoA=()=>oI||Mg;let F2,hj;{const t=IY(),i=(r,s)=>{let g;return(g=t[r])||(g=t[r]=[]),g.push(s),B=>{g.length>1?g.forEach(Q=>Q(B)):g[0](B)}};F2=i("__VUE_INSTANCE_SETTERS__",r=>oI=r),hj=i("__VUE_SSR_SETTERS__",r=>ak=r)}const dk=t=>{const i=oI;return F2(t),t.scope.on(),()=>{t.scope.off(),F2(i)}},Vz=()=>{oI&&oI.scope.off(),F2(null)};function OZ(t){return t.vnode.shapeFlag&4}let ak=!1;function OoA(t,i=!1,r=!1){i&&hj(i);const{props:s,children:g}=t.vnode,B=OZ(t);EoA(t,s,B,i),uoA(t,g,r);const Q=B?xoA(t,i):void 0;return i&&hj(!1),Q}function xoA(t,i){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,ooA);const{setup:s}=r;if(s){Mp();const g=t.setupContext=s.length>1?PoA(t):null,B=dk(t),Q=Qk(s,t,0,[t.props,g]),f=b8(Q);if(wp(),B(),(f||t.sp)&&!dw(t)&&QZ(t),f){if(Q.then(Vz,Vz),i)return Q.then(m=>{qz(t,m)}).catch(m=>{EY(m,t,0)});t.asyncDep=Q}else qz(t,Q)}else xZ(t)}function qz(t,i,r){xo(i)?t.type.__ssrInlineRender?t.ssrRender=i:t.render=i:ta(i)&&(t.setupState=tZ(i)),xZ(t)}function xZ(t,i,r){const s=t.type;t.render||(t.render=s.render||Lu);{const g=dk(t);Mp();try{roA(t)}finally{wp(),g()}}}const YoA={get(t,i){return GI(t,"get",""),t[i]}};function PoA(t){const i=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,YoA),slots:t.slots,emit:t.emit,expose:i}}function hY(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(tZ(MiA(t.exposed)),{get(i,r){if(r in i)return i[r];if(r in YG)return YG[r](t)},has(i,r){return r in i||r in YG}})):t.proxy}function JoA(t,i=!0){return xo(t)?t.displayName||t.name:t.name||i&&t.__name}function HoA(t){return xo(t)&&"__vccOpts"in t}const rt=(t,i)=>kiA(t,i,ak);function VoA(t,i,r){const s=arguments.length;return s===2?ta(i)&&!Ro(i)?nk(i)?ze(t,null,[i]):ze(t,i):ze(t,null,i):(s>3?r=Array.prototype.slice.call(arguments,2):s===3&&nk(r)&&(r=[r]),ze(t,i,r))}const pj="3.5.13";/**
* @vue/runtime-dom v3.5.13
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let fj;const Kz=typeof window<"u"&&window.trustedTypes;if(Kz)try{fj=Kz.createPolicy("vue",{createHTML:t=>t})}catch{}const YZ=fj?t=>fj.createHTML(t):t=>t,qoA="http://www.w3.org/2000/svg",KoA="http://www.w3.org/1998/Math/MathML",ed=typeof document<"u"?document:null,jz=ed&&ed.createElement("template"),joA={insert:(t,i,r)=>{i.insertBefore(t,r||null)},remove:t=>{const i=t.parentNode;i&&i.removeChild(t)},createElement:(t,i,r,s)=>{const g=i==="svg"?ed.createElementNS(qoA,t):i==="mathml"?ed.createElementNS(KoA,t):r?ed.createElement(t,{is:r}):ed.createElement(t);return t==="select"&&s&&s.multiple!=null&&g.setAttribute("multiple",s.multiple),g},createText:t=>ed.createTextNode(t),createComment:t=>ed.createComment(t),setText:(t,i)=>{t.nodeValue=i},setElementText:(t,i)=>{t.textContent=i},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ed.querySelector(t),setScopeId(t,i){t.setAttribute(i,"")},insertStaticContent(t,i,r,s,g,B){const Q=r?r.previousSibling:i.lastChild;if(g&&(g===B||g.nextSibling))for(;i.insertBefore(g.cloneNode(!0),r),!(g===B||!(g=g.nextSibling)););else{jz.innerHTML=YZ(s==="svg"?`<svg>${t}</svg>`:s==="mathml"?`<math>${t}</math>`:t);const f=jz.content;if(s==="svg"||s==="mathml"){const m=f.firstChild;for(;m.firstChild;)f.appendChild(m.firstChild);f.removeChild(m)}i.insertBefore(f,r)}return[Q?Q.nextSibling:i.firstChild,r?r.previousSibling:i.lastChild]}},tp="transition",EG="animation",sk=Symbol("_vtc"),PZ={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},WoA=Sg({},EZ,PZ),zoA=t=>(t.displayName="Transition",t.props=WoA,t),ZoA=zoA((t,{slots:i})=>VoA(JiA,XoA(t),i)),Ym=(t,i=[])=>{Ro(t)?t.forEach(r=>r(...i)):t&&t(...i)},Wz=t=>t?Ro(t)?t.some(i=>i.length>1):t.length>1:!1;function XoA(t){const i={};for(const Je in t)Je in PZ||(i[Je]=t[Je]);if(t.css===!1)return i;const{name:r="v",type:s,duration:g,enterFromClass:B=`${r}-enter-from`,enterActiveClass:Q=`${r}-enter-active`,enterToClass:f=`${r}-enter-to`,appearFromClass:m=B,appearActiveClass:M=Q,appearToClass:v=f,leaveFromClass:U=`${r}-leave-from`,leaveActiveClass:AA=`${r}-leave-active`,leaveToClass:z=`${r}-leave-to`}=t,sA=$oA(g),eA=sA&&sA[0],X=sA&&sA[1],{onBeforeEnter:QA,onEnter:wA,onEnterCancelled:HA,onLeave:VA,onLeaveCancelled:ue,onBeforeAppear:jA=QA,onAppear:Ve=wA,onAppearCancelled:Ze=HA}=i,Me=(Je,$e,Dt,Zi)=>{Je._enterCancelled=Zi,Pm(Je,$e?v:f),Pm(Je,$e?M:Q),Dt&&Dt()},qe=(Je,$e)=>{Je._isLeaving=!1,Pm(Je,U),Pm(Je,z),Pm(Je,AA),$e&&$e()},Et=Je=>($e,Dt)=>{const Zi=Je?Ve:wA,bi=()=>Me($e,Je,Dt);Ym(Zi,[$e,bi]),zz(()=>{Pm($e,Je?m:B),ZQ($e,Je?v:f),Wz(Zi)||Zz($e,s,eA,bi)})};return Sg(i,{onBeforeEnter(Je){Ym(QA,[Je]),ZQ(Je,B),ZQ(Je,Q)},onBeforeAppear(Je){Ym(jA,[Je]),ZQ(Je,m),ZQ(Je,M)},onEnter:Et(!1),onAppear:Et(!0),onLeave(Je,$e){Je._isLeaving=!0;const Dt=()=>qe(Je,$e);ZQ(Je,U),Je._enterCancelled?(ZQ(Je,AA),A5()):(A5(),ZQ(Je,AA)),zz(()=>{Je._isLeaving&&(Pm(Je,U),ZQ(Je,z),Wz(VA)||Zz(Je,s,X,Dt))}),Ym(VA,[Je,Dt])},onEnterCancelled(Je){Me(Je,!1,void 0,!0),Ym(HA,[Je])},onAppearCancelled(Je){Me(Je,!0,void 0,!0),Ym(Ze,[Je])},onLeaveCancelled(Je){qe(Je),Ym(ue,[Je])}})}function $oA(t){if(t==null)return null;if(ta(t))return[RK(t.enter),RK(t.leave)];{const i=RK(t);return[i,i]}}function RK(t){return ztA(t)}function ZQ(t,i){i.split(/\s+/).forEach(r=>r&&t.classList.add(r)),(t[sk]||(t[sk]=new Set)).add(i)}function Pm(t,i){i.split(/\s+/).forEach(s=>s&&t.classList.remove(s));const r=t[sk];r&&(r.delete(i),r.size||(t[sk]=void 0))}function zz(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let ArA=0;function Zz(t,i,r,s){const g=t._endId=++ArA,B=()=>{g===t._endId&&s()};if(r!=null)return setTimeout(B,r);const{type:Q,timeout:f,propCount:m}=erA(t,i);if(!Q)return s();const M=Q+"end";let v=0;const U=()=>{t.removeEventListener(M,AA),B()},AA=z=>{z.target===t&&++v>=m&&U()};setTimeout(()=>{v<m&&U()},f+1),t.addEventListener(M,AA)}function erA(t,i){const r=window.getComputedStyle(t),s=sA=>(r[sA]||"").split(", "),g=s(`${tp}Delay`),B=s(`${tp}Duration`),Q=Xz(g,B),f=s(`${EG}Delay`),m=s(`${EG}Duration`),M=Xz(f,m);let v=null,U=0,AA=0;i===tp?Q>0&&(v=tp,U=Q,AA=B.length):i===EG?M>0&&(v=EG,U=M,AA=m.length):(U=Math.max(Q,M),v=U>0?Q>M?tp:EG:null,AA=v?v===tp?B.length:m.length:0);const z=v===tp&&/\b(transform|all)(,|$)/.test(s(`${tp}Property`).toString());return{type:v,timeout:U,propCount:AA,hasTransform:z}}function Xz(t,i){for(;t.length<i.length;)t=t.concat(t);return Math.max(...i.map((r,s)=>$z(r)+$z(t[s])))}function $z(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function A5(){return document.body.offsetHeight}function trA(t,i,r){const s=t[sk];s&&(i=(i?[i,...s]:[...s]).join(" ")),i==null?t.removeAttribute("class"):r?t.setAttribute("class",i):t.className=i}const U2=Symbol("_vod"),JZ=Symbol("_vsh"),sa={beforeMount(t,{value:i},{transition:r}){t[U2]=t.style.display==="none"?"":t.style.display,r&&i?r.beforeEnter(t):lG(t,i)},mounted(t,{value:i},{transition:r}){r&&i&&r.enter(t)},updated(t,{value:i,oldValue:r},{transition:s}){!i!=!r&&(s?i?(s.beforeEnter(t),lG(t,!0),s.enter(t)):s.leave(t,()=>{lG(t,!1)}):lG(t,i))},beforeUnmount(t,{value:i}){lG(t,i)}};function lG(t,i){t.style.display=i?t[U2]:"none",t[JZ]=!i}const irA=Symbol(""),orA=/(^|;)\s*display\s*:/;function rrA(t,i,r){const s=t.style,g=va(r);let B=!1;if(r&&!g){if(i)if(va(i))for(const Q of i.split(";")){const f=Q.slice(0,Q.indexOf(":")).trim();r[f]==null&&Q2(s,f,"")}else for(const Q in i)r[Q]==null&&Q2(s,Q,"");for(const Q in r)Q==="display"&&(B=!0),Q2(s,Q,r[Q])}else if(g){if(i!==r){const Q=s[irA];Q&&(r+=";"+Q),s.cssText=r,B=orA.test(r)}}else i&&t.removeAttribute("style");U2 in t&&(t[U2]=B?s.display:"",t[JZ]&&(s.display="none"))}const e5=/\s*!important$/;function Q2(t,i,r){if(Ro(r))r.forEach(s=>Q2(t,i,s));else if(r==null&&(r=""),i.startsWith("--"))t.setProperty(i,r);else{const s=nrA(t,i);e5.test(r)?t.setProperty(Rp(s),r.replace(e5,""),"important"):t[s]=r}}const t5=["Webkit","Moz","ms"],MK={};function nrA(t,i){const r=MK[i];if(r)return r;let s=mC(i);if(s!=="filter"&&s in t)return MK[i]=s;s=gY(s);for(let g=0;g<t5.length;g++){const B=t5[g]+s;if(B in t)return MK[i]=B}return i}const i5="http://www.w3.org/1999/xlink";function o5(t,i,r,s,g,B=iiA(i)){s&&i.startsWith("xlink:")?r==null?t.removeAttributeNS(i5,i.slice(6,i.length)):t.setAttributeNS(i5,i,r):r==null||B&&!O8(r)?t.removeAttribute(i):t.setAttribute(i,B?"":sd(r)?String(r):r)}function r5(t,i,r,s,g){if(i==="innerHTML"||i==="textContent"){r!=null&&(t[i]=i==="innerHTML"?YZ(r):r);return}const B=t.tagName;if(i==="value"&&B!=="PROGRESS"&&!B.includes("-")){const f=B==="OPTION"?t.getAttribute("value")||"":t.value,m=r==null?t.type==="checkbox"?"on":"":String(r);(f!==m||!("_value"in t))&&(t.value=m),r==null&&t.removeAttribute(i),t._value=r;return}let Q=!1;if(r===""||r==null){const f=typeof t[i];f==="boolean"?r=O8(r):r==null&&f==="string"?(r="",Q=!0):f==="number"&&(r=0,Q=!0)}try{t[i]=r}catch{}Q&&t.removeAttribute(g||i)}function arA(t,i,r,s){t.addEventListener(i,r,s)}function srA(t,i,r,s){t.removeEventListener(i,r,s)}const n5=Symbol("_vei");function grA(t,i,r,s,g=null){const B=t[n5]||(t[n5]={}),Q=B[i];if(s&&Q)Q.value=s;else{const[f,m]=IrA(i);if(s){const M=B[i]=lrA(s,g);arA(t,f,M,m)}else Q&&(srA(t,f,Q,m),B[i]=void 0)}}const a5=/(?:Once|Passive|Capture)$/;function IrA(t){let i;if(a5.test(t)){i={};let s;for(;s=t.match(a5);)t=t.slice(0,t.length-s[0].length),i[s[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):Rp(t.slice(2)),i]}let wK=0;const crA=Promise.resolve(),ErA=()=>wK||(crA.then(()=>wK=0),wK=Date.now());function lrA(t,i){const r=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=r.attached)return;CB(CrA(s,r.value),i,5,[s])};return r.value=t,r.attached=ErA(),r}function CrA(t,i){if(Ro(i)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},i.map(s=>g=>!g._stopped&&s&&s(g))}else return i}const s5=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,BrA=(t,i,r,s,g,B)=>{const Q=g==="svg";i==="class"?trA(t,s,Q):i==="style"?rrA(t,r,s):nY(i)?A3(i)||grA(t,i,r,s,B):(i[0]==="."?(i=i.slice(1),!0):i[0]==="^"?(i=i.slice(1),!1):urA(t,i,s,Q))?(r5(t,i,s),!t.tagName.includes("-")&&(i==="value"||i==="checked"||i==="selected")&&o5(t,i,s,Q,B,i!=="value")):t._isVueCE&&(/[A-Z]/.test(i)||!va(s))?r5(t,mC(i),s,B,i):(i==="true-value"?t._trueValue=s:i==="false-value"&&(t._falseValue=s),o5(t,i,s,Q))};function urA(t,i,r,s){if(s)return!!(i==="innerHTML"||i==="textContent"||i in t&&s5(i)&&xo(r));if(i==="spellcheck"||i==="draggable"||i==="translate"||i==="form"||i==="list"&&t.tagName==="INPUT"||i==="type"&&t.tagName==="TEXTAREA")return!1;if(i==="width"||i==="height"){const g=t.tagName;if(g==="IMG"||g==="VIDEO"||g==="CANVAS"||g==="SOURCE")return!1}return s5(i)&&va(r)?!1:i in t}const QrA=["ctrl","shift","alt","meta"],drA={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,i)=>QrA.some(r=>t[`${r}Key`]&&!i.includes(r))},ul=(t,i)=>{const r=t._withMods||(t._withMods={}),s=i.join(".");return r[s]||(r[s]=(g,...B)=>{for(let Q=0;Q<i.length;Q++){const f=drA[i[Q]];if(f&&f(g,i))return}return t(g,...B)})},hrA={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},prA=(t,i)=>{const r=t._withKeys||(t._withKeys={}),s=i.join(".");return r[s]||(r[s]=g=>{if(!("key"in g))return;const B=Rp(g.key);if(i.some(Q=>Q===B||hrA[Q]===B))return t(g)})},frA=Sg({patchProp:BrA},joA);let g5;function HZ(){return g5||(g5=doA(frA))}const iD=(...t)=>{HZ().render(...t)},mrA=(...t)=>{const i=HZ().createApp(...t),{mount:r}=i;return i.mount=s=>{const g=yrA(s);if(!g)return;const B=i._component;!xo(B)&&!B.render&&!B.template&&(B.template=g.innerHTML),g.nodeType===1&&(g.textContent="");const Q=r(g,!1,DrA(g));return g instanceof Element&&(g.removeAttribute("v-cloak"),g.setAttribute("data-v-app","")),Q},i};function DrA(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function yrA(t){return va(t)?document.querySelector(t):t}var bI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function RrA(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function hk(t){if(t.__esModule)return t;var i=t.default;if(typeof i=="function"){var r=function s(){return this instanceof s?Reflect.construct(i,arguments,this.constructor):i.apply(this,arguments)};r.prototype=i.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var g=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(r,s,g.get?g:{enumerable:!0,get:function(){return t[s]}})}),r}function MrA(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pG={exports:{}},d2={exports:{}},wrA=d2.exports,I5;function VZ(){return I5||(I5=1,function(t,i){(function(r,s){t.exports=s()})(wrA,function(){const r=C=>C===void 0,s=C=>typeof C=="string",g=C=>{var E;return(E=Object.prototype.toString.call(C).match(/^\[object (.*)\]$/))===null||E===void 0?void 0:E[1].toLowerCase()},B=C=>typeof Array.isArray=="function"?Array.isArray(C):g(C)==="array",Q=C=>C!==null&&typeof C=="object",f=C=>B(C)||Q(C),m=C=>{if(typeof C!="string")return!1;const E=C[0];return!/[^a-zA-Z0-9]/.test(E)},M=C=>{if(typeof C!="object"||C===null)return!1;const E=Object.getPrototypeOf(C);if(E===null)return!0;let h=E;for(;Object.getPrototypeOf(h)!==null;)h=Object.getPrototypeOf(h);return E===h};function v(C=99999999){return Math.round(Math.random()*C)}const U=(C,E,h,D)=>{if(!f(C)||!f(E))return 0;let N=0;const O=Object.keys(E);let Y;for(let j=0,IA=O.length;j<IA;j++)if(Y=O[j],!(r(E[Y])||h&&h.includes(Y)))if(f(C[Y])&&f(E[Y]))N+=U(C[Y],E[Y],h,D);else{if(D&&D.includes(E[Y]))continue;C[Y]!==E[Y]&&(C[Y]=E[Y],N+=1)}return N};function AA(C){let E,h,D=C;C.length%8!=0&&(D="0".repeat(8-C.length%8)+C);let N="";for(let O=0,{length:Y}=D;O<Y;O+=8)E=parseInt(D.slice(O,O+4),2),h=parseInt(D.slice(O+4,O+8),2),N+=base16Map.get(E)+base16Map.get(h);return N}const z={ANDROID:2,IOS:3,MAC:4,WEB:7,WX_MP:8,QQ_MP:9,TT_MP:10,BAIDU_MP:11,ALI_MP:12,IPAD:13,UNI_NATIVE_APP:15,DONUT_NATIVE_APP:19,NS_NATIVE_APP:20,RN_NATIVE_APP:21},sA=["heartbeat.alive","im_open_status.wslogin","im_open_status.wslogout","group_open_long_polling_http_svc.get_msg","group_open_long_polling_http_noauth_svc.get_msg"];var eA;(function(C){C[C.DEBUG=0]="DEBUG",C[C.INFO=1]="INFO",C[C.WARN=2]="WARN",C[C.ERROR=3]="ERROR",C[C.NONE=4]="NONE"})(eA||(eA={}));const X="LiteChat",QA={[eA.DEBUG]:console.debug,[eA.INFO]:console.info,[eA.WARN]:console.warn,[eA.ERROR]:console.error},wA={[eA.INFO]:4,[eA.WARN]:5,[eA.ERROR]:6},HA=1e3,VA=2,ue=5e3,jA=50,Ve={CHINA:"CHINA",OVERSEA:"OVERSEA",SINGAPORE:"SINGAPORE",KOREA:"KOREA",GERMANY:"GERMANY",IND:"IND",JPN:"JPN",USA:"USA",INDONESIA:"INDONESIA",KSA:"KSA"},Ze={TEST:{CHINA:{DEFAULT:"wss://wss-dev.tim.qq.com"},OVERSEA:{DEFAULT:"wss://wss-dev.tim.qq.com"},SINGAPORE:{DEFAULT:"wss://wsssgp-dev.im.qcloud.com"},KOREA:{DEFAULT:"wss://wsskr-dev.im.qcloud.com"},GERMANY:{DEFAULT:"wss://wssger-dev.im.qcloud.com"},IND:{DEFAULT:"wss://wssind-dev.im.qcloud.com"},JPN:{DEFAULT:"wss://wssjpn-dev.im.qcloud.com"},USA:{DEFAULT:"wss://wssusa-dev.im.qcloud.com"},INDONESIA:{DEFAULT:"wss://wssidn-dev.im.qcloud.com"},KSA:{DEFAULT:"wss://wssksa-dev.im.qcloud.com"}},PRODUCTION:{CHINA:{INITIAL:"wss://*w4c.my-imcloud.com",DEFAULT:"wss://wss.im.qcloud.com",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",STAT:"https://events.im.qcloud.com",ANYCAST:"wss://162.14.13.203"},OVERSEA:{INITIAL:"wss://*w4c.my-imcloud.com",DEFAULT:"wss://wss.im.qcloud.com",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",STAT:"https://api.my-imcloud.com"},SINGAPORE:{INITIAL:"wss://*w4s.my-imcloud.com",DEFAULT:"wss://wsssgp.im.qcloud.com",IPV6:"wss://wsssgpv6.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4s.my-cpaas.com",STAT:"https://apisgp.my-imcloud.com",ANYCAST:"wss://162.14.19.159"},KOREA:{INITIAL:"wss://*w4k.my-imcloud.com",DEFAULT:"wss://wsskr.im.qcloud.com",IPV6:"wss://wsskrv6.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4k.my-cpaas.com",STAT:"https://apikr.my-imcloud.com",ANYCAST:"wss://162.14.13.104"},GERMANY:{INITIAL:"wss://*w4g.my-imcloud.com",DEFAULT:"wss://wssger.im.qcloud.com",IPV6:"wss://wssgerv6.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4g.my-cpaas.com",STAT:"https://apiger.my-imcloud.com",ANYCAST:"wss://162.14.3.17"},IND:{INITIAL:"wss://*w4i.my-imcloud.com",DEFAULT:"wss://wssind.my-imcloud.com",IPV6:"wss://wssindv6.im.qcloud.com",BACKUP:"wss://wssind.im.qcloud.com",BACKUP_WEB_ONLY:"wss://*w4i.my-cpaas.com",STAT:"https://apiind.my-imcloud.com",ANYCAST:"wss://162.14.19.46"},JPN:{INITIAL:"wss://*w4j.my-imcloud.com",DEFAULT:"wss://wssjpn.im.qcloud.com",IPV6:"wss://wssjpnv6.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4j.my-cpaas.com",STAT:"https://apijpn.my-imcloud.com",ANYCAST:"wss://162.14.13.254"},USA:{INITIAL:"wss://*w4u.my-imcloud.com",DEFAULT:"wss://wssusa.im.qcloud.com",IPV6:"wss://wssusav6.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4u.my-cpaas.com",STAT:"https://apiusa.my-imcloud.com",ANYCAST:"wss://162.14.10.42"},INDONESIA:{INITIAL:"wss://*w4y.my-imcloud.com",DEFAULT:"wss://wssidn.im.qcloud.com",IPV6:"wss://wssidnv6.im.qcloud.com",BACKUP:"wss://wssidn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4y.my-cpaas.com",STAT:"https://apiidn.my-imcloud.com",ANYCAST:"wss://43.129.34.169"},KSA:{INITIAL:"wss://*w4a.my-imcloud.com",DEFAULT:"wss://wssksa.im.qcloud.com",IPV6:"wss://wssksav6.im.qcloud.com",BACKUP:"wss://wssksa.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4a.my-cpaas.com",STAT:"https://apiksa.my-imcloud.com",ANYCAST:"wss://43.164.68.251"}}};var Me;(function(C){C[C.CONV_DELETED=1]="CONV_DELETED",C[C.CONV_PINED=2]="CONV_PINED",C[C.CONV_UNPINED=3]="CONV_UNPINED",C[C.CONV_MARK_UPDATED=4]="CONV_MARK_UPDATED",C[C.CONV_GROUP_ADDED=5]="CONV_GROUP_ADDED",C[C.CONV_GROUP_DELETED=6]="CONV_GROUP_DELETED",C[C.CONV_GROUP_UPDATED=7]="CONV_GROUP_UPDATED"})(Me||(Me={}));var qe=Object.freeze({__proto__:null,ACCESS_ENVIRONMENT:Ve,CONSOLE_METHOD:QA,CloudConfigReportLevelMap:wA,get ConvModifyPushType(){return Me},DEFAULT_GLOBAL_MAX_TOTAL_COUNT:jA,DEFAULT_GLOBAL_THROTTLE_TIME:ue,DEFAULT_SINGLE_MAX_TOTAL_COUNT:VA,DEFAULT_SINGLE_THROTTLE_TIME:HA,ENUM_PLATFORM:z,HOST_CONFIG:Ze,IS_TOPIC_MESSAGE:2,get LogLevel(){return eA},NOT_NEED_CRC_SERVCMD:sA,SDK_NAME:X});const Et=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows")&&wx.getSystemInfoSync().uniPlatform===void 0,Je=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||Et,$e=Je&&typeof wx.createGamePortal=="function",Dt=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,Zi=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,bi=Zi&&typeof tt.onShow=="function",qt=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,ai=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,Ki=typeof jd<"u"&&typeof jd.getSystemInfoSync=="function",Ur=typeof uni<"u"&&typeof window>"u"&&typeof uni.requireNativePlugin=="function",Er=Je&&typeof wx.miniapp=="object",no=typeof uni<"u",Kn=Zi&&typeof tt.enterChat=="function",Xi=Je||Dt||Zi||qt||ai||Ur||Ki,yr=typeof window>"u"&&!Xi&&typeof bI<"u"&&bI.NativeScriptGlobals!==void 0,lr=typeof bI<"u"&&(bI.nativeModuleProxy!==void 0||bI.ReactNative!==void 0),Ni=typeof wx<"u"&&typeof wx.getAccountInfoSync=="function"&&!!wx.getAccountInfoSync().plugin,wt=typeof uni<"u"?!Xi:typeof window<"u"&&!Xi&&!lr,Ji=Dt?qq:Zi?tt:qt?swan:ai?my:Je?wx:Ur?uni:Ki?jd:{},Di=wt&&window&&window.navigator&&window.navigator.userAgent||"",ar=/(micromessenger|webbrowser)/i.test(Di),MA=function(){let C="WEB";return ar?C="WEB":Dt?C="QQ_MP":Zi?C="TT_MP":qt?C="BAIDU_MP":ai?C="ALI_MP":Je?C=Er?"DONUT_NATIVE_APP":"WX_MP":Ur?C="UNI_NATIVE_APP":yr?C="NS_NATIVE_APP":lr&&(C="RN_NATIVE_APP"),z[C]}(),YA=/iPad/i.test(Di),pe=/iPhone/i.test(Di)&&!YA,st=/iPod/i.test(Di),Te=pe||YA||st,be=function(){const C=Di.match(/OS (\d+)_/i);return C&&C[1]?C[1]:null}(),yt=/Android/i.test(Di),ht=function(){const C=Di.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!C)return null;const E=C[1]&&parseFloat(C[1]),h=C[2]&&parseFloat(C[2]);return E&&h?parseFloat(`${C[1]}.${C[2]}`):E||null}(),ae=/Firefox/i.test(Di),ye=/Edge/i.test(Di),Xe=!ye&&/Chrome/i.test(Di),ot=/MSIE/.test(Di)||Di.indexOf("Trident")>-1&&Di.indexOf("rv:11.0")>-1,zt=function(){const C=/MSIE\s(\d+)\.\d/.exec(Di);let E=C&&parseFloat(C[1]);return!E&&/Trident\/7.0/i.test(Di)&&/rv:11.0/.test(Di)&&(E=11),E}(),yi=/Safari/i.test(Di)&&!Xe&&!yt&&!ye,Hi=/Windows/i.test(Di),Ei=/MAC OS X/i.test(Di),ji=wt&&typeof Worker<"u"&&!ot,Xo=yt||Te,sr=function(){if(typeof window>"u"||window.navigator===void 0)return!1;const{standalone:C}=window.navigator;return!(!Te||C||yi)}();function Lo(){let C="unknown";if(Ei&&(C="mac"),Hi&&(C="windows"),Te&&(C="ios"),yt&&(C="android"),Xi)try{const{platform:E}=Ji.getSystemInfoSync();E!==void 0&&(C=E)}catch(E){console.error(E)}return C}const Nr=typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0&&typeof window>"u";function Vo(C,E){var h={};for(var D in C)Object.prototype.hasOwnProperty.call(C,D)&&E.indexOf(D)<0&&(h[D]=C[D]);if(C!=null&&typeof Object.getOwnPropertySymbols=="function"){var N=0;for(D=Object.getOwnPropertySymbols(C);N<D.length;N++)E.indexOf(D[N])<0&&Object.prototype.propertyIsEnumerable.call(C,D[N])&&(h[D[N]]=C[D[N]])}return h}function et(C,E,h,D){return new(h||(h=Promise))(function(N,O){function Y(BA){try{IA(D.next(BA))}catch(mA){O(mA)}}function j(BA){try{IA(D.throw(BA))}catch(mA){O(mA)}}function IA(BA){var mA;BA.done?N(BA.value):(mA=BA.value,mA instanceof h?mA:new h(function(_A){_A(mA)})).then(Y,j)}IA((D=D.apply(C,E||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;const Kr=2800,Qn=2801,ho=3e3,jn="application/x-www-form-urlencoded;charset=UTF-8";function $t(C){return et(this,arguments,void 0,function*({method:E,url:h,data:D,timeout:N=ho}){return Xi?new Promise((O,Y)=>{Ji.request({url:h,data:D,method:E,timeout:N,header:{"content-type":jn},success:j=>O(j.data),fail:()=>Y(new Error(`{"message":"Network error","code":${Kr}}`))})}):Nr?void 0:new Promise((O,Y)=>{const j=new XMLHttpRequest,IA=setTimeout(()=>{j.abort(),Y(new Error(`{"message":"Request timeout","code":${Qn}}`))},N);j.onreadystatechange=function(){if(j.readyState===4)if(clearTimeout(IA),j.status===200||j.status===304)try{O(j.responseText?JSON.parse(j.responseText):null)}catch{O(j.responseText)}else Y(new Error(`{"message":"Network error","code":${Kr}}`))},j.open(E,h,!0),j.setRequestHeader("Content-type",jn),j.send(D||null)})})}function $r(C){if(C==null)return!0;if(typeof C=="boolean")return!1;if(typeof C=="number")return C===0;if(typeof C=="string"||typeof C=="function"||Array.isArray(C))return C.length===0;if(C instanceof Error)return C.message==="";if(M(C)){for(const E in C)if(Object.prototype.hasOwnProperty.call(C,E))return!1;return!0}return(Object.prototype.toString.call(C)==="[object Map]"||Object.prototype.toString.call(C)==="[object Set]"||Object.prototype.toString.call(C)==="[object File]")&&C.size===0}function On(C,E){if(C===null||typeof C!="object")return C;const h=E||new WeakMap;if(h.has(C))return h.get(C);if(C instanceof Date)return new Date(C.getTime());if(C instanceof RegExp)return new RegExp(C.source,C.flags);if(C instanceof Map){const O=new Map;return h.set(C,O),C.forEach((Y,j)=>{O.set(On(j,h),On(Y,h))}),O}if(C instanceof Set){const O=new Set;return h.set(C,O),C.forEach(Y=>{O.add(On(Y,h))}),O}if(Array.isArray(C)){const O=[];return h.set(C,O),C.forEach(Y=>{O.push(On(Y,h))}),O}const D=Object.getPrototypeOf(C),N=Object.create(D);return h.set(C,N),[...Object.getOwnPropertyNames(C),...Object.getOwnPropertySymbols(C)].forEach(O=>{if(O==="__ob__"||O==="__v_skip"||O==="__v_isRef"||O==="__v_isReadonly")return;const Y=Object.getOwnPropertyDescriptor(C,O);Y&&(Y.get||Y.set?Object.defineProperty(N,O,Y):N[O]=On(C[O],h))}),N}function An(C,E,h){const D=new WeakSet,N=(O,Y)=>{if(E&&(Y=E(O,Y)),Y===void 0)return"undefined";if(Y===null)return null;if(Number.isNaN(Y))return"NaN";if(Y===1/0)return"Infinity";if(Y===-1/0)return"-Infinity";if(typeof Y=="function")return`[Function: ${Y.name||"anonymous"}]`;if(typeof Y=="symbol")return Y.toString();if(typeof Y=="bigint")return`${Y.toString()}n`;if(typeof Y=="object"&&Y!==null){if(D.has(Y))return"[Circular]";D.add(Y)}return Y instanceof Date?Y.toISOString():Y instanceof Error?{name:Y.name,message:Y.message}:Y instanceof Map?{dataType:"Map",value:Array.from(Y.entries())}:Y instanceof Set?{dataType:"Set",value:Array.from(Y.values())}:Y};try{return JSON.stringify(C,N,h)}catch(O){return console.error("Failed to stringify:",O),""}}function Tr(){let C,E;return{promise:new Promise((h,D)=>{C=h,E=D}),resolve:C,reject:E}}var ei,Es=Object.freeze({__proto__:null,ANDROID_VERSION:ht,IE_VERSION:zt,IN_ALIPAY_MINI_APP:ai,IN_BAIDU_MINI_APP:qt,IN_BROWSER:wt,IN_DONUT_NATIVE_APP:Er,IN_FEISHU_MINI_APP:Kn,IN_JD_MINI_APP:Ki,IN_MINI_APP:Xi,IN_NODE:Nr,IN_NS_NATIVE_APP:yr,IN_QQ_MINI_APP:Dt,IN_RN_APP:lr,IN_TT_MINI_APP:Zi,IN_TT_MINI_GAME:bi,IN_UNI_APP:no,IN_UNI_NATIVE_APP:Ur,IN_WX_MINI_APP:Je,IN_WX_MINI_APP_DESK:Et,IN_WX_MINI_GAME:$e,IN_WX_MINI_PLUGIN:Ni,IOS_VERSION:be,IS_ANDROID:yt,IS_CHROME:Xe,IS_EDGE:ye,IS_FIREFOX:ae,IS_IE:ot,IS_IOS:Te,IS_IPAD:YA,IS_IPHONE:pe,IS_IPOD:st,IS_MAC:Ei,IS_SAFARI:yi,IS_WECHAT:ar,IS_WIN:Hi,IS_WORKER_AVAILABLE:ji,MINI_APP_NAMESPACE:Ji,USER_AGENT:Di,base16EncodeBinaryString:AA,deepCopyWithMethods:On,deepMerge:U,generatePromise:Tr,getPlatformType:Lo,getType:g,httpRequest:$t,isArray:B,isArrayOrObject:f,isEmpty:$r,isH5:Xo,isIOSWebView:sr,isNumber:C=>C!==null&&(typeof C=="number"&&!Number.isNaN(C-0)||typeof C=="object"&&C.constructor===Number),isObject:Q,isPlainObject:M,isString:s,isUndefined:r,isUniIOSApp:function(){return Ur&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios"},isValidRequestKey:m,platform:MA,randomInt:v,randomString:function(){const C="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let E="";for(let h=32;h>0;--h)E+=C[Math.floor(62*Math.random())];return E},safeStringify:An});class jr{constructor(){this.listeners={}}on(E,h,D){this.listeners[E]||(this.listeners[E]=[]),this.listeners[E].push({fn:h,context:D})}off(E,h,D){var N;h&&(this.listeners[E]=(N=this.listeners[E])===null||N===void 0?void 0:N.filter(O=>{const Y=O.fn===h,j=!D||O.context===D;return!(Y&&j)}))}emit(E,...h){const D=this.listeners[E];D&&D.forEach(N=>{const{fn:O,context:Y}=N;try{O.apply(Y,h)}catch(j){console.warn(`Error in event handler for ${E} error: ${An(j)}`)}})}once(E,h,D){const N=(...O)=>{h.apply(D,O),this.off(E,N)};this.on(E,N)}}(function(C){C.BUSINESS_COMMAND="business_command",C.C2C_REALTIME_MESSAGE="c2c_realtime_message",C.C2C_MESSAGE_MODIFIED="c2c_message_modified",C.C2C_REVOKED_MESSAGE="c2c_message_revoked",C.GROUP_REALTIME_MESSAGE="group_realtime_message",C.GROUP_MESSAGE_MODIFIED="group_message_modified",C.GROUP_MESSAGE_REVOKED="group_message_revoked",C.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",C.MESSAGE_REACTION_UPDATED="message_reaction_updated",C.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",C.GROUP_AT_TIPS="group_at_tips",C.USER_STATUS_UPDATE="user_status_update",C.FRIEND_LIST_MODIFIED="friend_list_modified",C.PROFILE_MODIFIED="profile_modified",C.CONV_MODIFIED="conversation_modified",C.GROUP_TIPS_NOTIFICATION="group_tips_notification",C.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",C.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",C.GROUP_SYSTEM_NOTIFICATION="group_system_notification",C.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",C.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",C.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",C.FOLLOW_LIST_UPDATED="follow_list_updated",C.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",C.ALL_MESSAGE_READ="all_message_read",C.CONVERSATION_MARK_UPDATED="conversation_mark_updated",C.CONVERSATION_GROUP_ADD="conversation_group_add",C.CONVERSATION_GROUP_DELETED="conversation_group_deleted",C.CONVERSATION_GROUP_UPDATED="conversation_group_updated",C.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",C.TOPIC_AT_TIPS="topic_at_tips",C.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",C.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",C.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",C.TOPIC_LATEST_MESSAGE="topic_latest_message",C.GROUP_MESSAGE_PINNED="group_message_pinned"})(ei||(ei={}));const Gr=[16,17];function $o(C){var E;const h=[];return(E=C?.GroupTips)===null||E===void 0||E.forEach(D=>{var N;D.GroupInfo.MillionGroupFlag===2?h.push(ei.TOPIC_TIPS_NOTIFICATION):Gr.includes((N=D?.MsgBody)===null||N===void 0?void 0:N.OpType)?h.push(ei.GROUP_MESSAGE_PINNED):h.push(ei.GROUP_TIPS_NOTIFICATION)}),h}const sn=[{conditions:[{type:"event",value:100}],subType:ei.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:ei.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:ei.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:ei.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:ei.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:ei.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:ei.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:ei.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:ei.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:ei.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(C){var E;const h=[];return(E=C?.C2cNotifyMsgArray)===null||E===void 0||E.forEach(D=>{D.WithdrawC2cMsgNotify&&h.push(ei.C2C_REVOKED_MESSAGE),D.C2cReadedReceipt&&h.push(ei.C2C_MESSAGE_PEER_READ),D.ReadC2cMsgNotify&&h.push(ei.C2C_MESSAGE_READ_SYNC),D.MuteNotificationsSync&&h.push(ei.C2C_REMIND_TYPE_SYNC)}),h}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:$o},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(C){var E;const h=[];return(E=C?.GroupTips)===null||E===void 0||E.forEach(D=>{Array.isArray(D.MsgBody.GroupWithdrawInfoArray)?h.push(ei.GROUP_MESSAGE_REVOKED):Array.isArray(D.MsgBody.GroupMsgReceiptList)?h.push(ei.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(D.MsgBody.GroupReadInfoArray)?D.MsgBody.GroupReadInfoArray[0].TopicId?h.push(ei.TOPIC_MESSAGE_READ_SYNC):h.push(ei.GROUP_MESSAGE_READ_SYNC):D.GroupInfo.MillionGroupFlag===2?h.push(ei.TOPIC_SYSTEM_NOTIFICATION):h.push(ei.GROUP_SYSTEM_NOTIFICATION)}),h}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:$o},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(C){var E;const h=[];return(E=C?.GroupTips)===null||E===void 0||E.forEach(D=>{const{GroupAtTips:{TopicId:N}}=D;N?h.push(ei.TOPIC_AT_TIPS):h.push(ei.GROUP_AT_TIPS)}),h}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(C){var E;const h=[];return(E=C?.RecentContactMod)===null||E===void 0||E.forEach(D=>{switch(D.PushType){case Me.CONV_MARK_UPDATED:h.push(ei.CONVERSATION_MARK_UPDATED);break;case Me.CONV_GROUP_ADDED:h.push(ei.CONVERSATION_GROUP_ADD);break;case Me.CONV_GROUP_DELETED:h.push(ei.CONVERSATION_GROUP_DELETED);break;case Me.CONV_GROUP_UPDATED:h.push(ei.CONVERSATION_GROUP_UPDATED);break;default:h.push(ei.CONV_MODIFIED)}}),h}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:ei.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:ei.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:ei.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:ei.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:ei.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:ei.ALL_MESSAGE_READ}];var dn;function hn(C){var E;const h=Array.isArray((E=C?.body)===null||E===void 0?void 0:E.EventArray)?C.body.EventArray:[],D=[];return h.forEach(N=>{N.Flag=C.body.Flag;const O=sn.find(j=>j.conditions.every(IA=>{switch(IA.type){case"event":return N.Event===IA.value;case"hasKey":return Object.prototype.hasOwnProperty.call(N,IA.value);default:return!1}}));if(!O)return null;let Y=[];typeof O.subTypeParser=="function"?Y=O.subTypeParser(N):O.subType&&(Y=O.subType),Array.isArray(Y)?Y.forEach(j=>{D.push({type:`${dn.SERVER_PUSH_MESSAGE}:${j}`,data:N})}):D.push({type:`${dn.SERVER_PUSH_MESSAGE}:${Y}`,data:N})}),D}(function(C){C.SERVER_PUSH_MESSAGE="im_open_push.msg_push",C.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",C.ERROR="error"})(dn||(dn={}));const Gi={[dn.SERVER_PUSH_MESSAGE]:hn,[dn.SERVER_PUSH_MESSAGE_MULTIPLE]:hn,[dn.ERROR]:function(C){const{errorCode:E}=C;return[{type:`error:${E}`,data:C}]}},pn=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new jr,this._innerEventEmitter=new jr,this.InnerEventSubType=ei}subscribeInnerEvent(C,E,h,D,N){var O;let Y,j,IA,BA;["string","number"].includes(typeof E)?(IA=`${C}:${E}`,BA=h,j=D,Y=N):(IA=C,BA=E,j=h,Y=typeof D=="function"?D:void 0),Y?this._subscribeWithFilter(IA,BA,j,Y):(O=this._innerEventEmitter)===null||O===void 0||O.on(IA,BA,j)}emitInnerEvent(C,E){var h,D;if((h=this._innerEventEmitter)===null||h===void 0||h.emit(C,E),Object.keys(Gi).includes(C)){const N=(D=Gi[C])===null||D===void 0?void 0:D.call(Gi,E);N?.forEach(O=>{var Y;O&&((Y=this._innerEventEmitter)===null||Y===void 0||Y.emit(O.type,O.data))})}}subscribeOuterEvent(C,E,h){var D;(D=this._outerEventEmitter)===null||D===void 0||D.on(C,E,h)}unSubscribeOuterEvent(C,E,h){var D;(D=this._outerEventEmitter)===null||D===void 0||D.off(C,E,h)}unSubscribeInnerEvent(C,E,h,D){if(["string","number"].includes(typeof E)){const N=h,O=`${C}:${E}`;this._unsubscribeEvent(O,N,D)}else{const N=E;this._unsubscribeEvent(C,N,h)}}emitOuterEvent(C,E){var h;(h=this._outerEventEmitter)===null||h===void 0||h.emit(C,E)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}_subscribeWithFilter(C,E,h,D){var N;const O=Y=>{D.call(h,Y)&&E.call(h,Y)};this._filteredCallbackMap.has(C)||this._filteredCallbackMap.set(C,[]),this._filteredCallbackMap.get(C).push({originalCallback:E,filteredCallback:O,filter:D,context:h}),(N=this._innerEventEmitter)===null||N===void 0||N.on(C,O,h)}_unsubscribeEvent(C,E,h){var D,N;const O=this._filteredCallbackMap.get(C);if(O){const Y=O.findIndex(j=>j.originalCallback===E&&j.context===h);if(Y!==-1){const{filteredCallback:j}=O[Y];return(D=this._innerEventEmitter)===null||D===void 0||D.off(C,j,h),O.splice(Y,1),void(O.length===0&&this._filteredCallbackMap.delete(C))}}(N=this._innerEventEmitter)===null||N===void 0||N.off(C,E,h)}};class nI{constructor(){this._socket=null}connectSocket(E){return this._socket=new WebSocket(E),this._socket}send(E){var h,D;try{(h=this._socket)===null||h===void 0||h.send(E)}catch(N){(D=this._onSendFail)===null||D===void 0||D.call(this,N)}}bindSocketHandlers(E){const{onOpen:h,onMessage:D,onClose:N,onError:O,onSendFail:Y}=E;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=h,this._socket.onmessage=D,this._socket.onclose=N,this._socket.onerror=O,this._onSendFail=Y)}unbindSocketHandlers(){this._socket&&(this._socket.onopen=null,this._socket.onmessage=null,this._socket.onclose=null,this._socket.onerror=null)}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}class gr{constructor(E){this._onError=E.onError}connectSocket(E){const h=this;return this._socket=Ji.connectSocket({url:E,header:{"content-type":"application/json"},complete:()=>{},fail:D=>h._onError(D)}),this._socket}send(E){var h;(h=this._socket)===null||h===void 0||h.send({data:E,fail:this._onSendFail})}bindSocketHandlers(E){const{onOpen:h,onMessage:D,onClose:N,onError:O,onSendFail:Y}=E;this._socket&&(this._socket.onClose(N),this._socket.onOpen(h),this._socket.onMessage(D),this._socket.onError(O),this._onSendFail=Y)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}const gn="CONNECT",Yo="SEND",Tg="DISCONNECT",So="OPEN",ao="MESSAGE",EE="CLOSE",Ta="ERROR",po="SEND_FAIL";class Ja{constructor(){this._worker=null,this._blobUrl=null}connectSocket(E){const h=new Blob([`
let _socket = null;
self.onmessage = (event) => {
const { type, url, data } = event.data;
switch (type) {
case 'CONNECT':
connectSocket(url);
break;
case 'SEND':
send(data);
break;
case 'DISCONNECT':
disconnect();
break;
}
};
function connectSocket(url) {
_socket = new WebSocket(url);
_socket.binaryType = 'arraybuffer';
bindSocketHandlers();
return _socket;
}
function send(packet) {
try {
_socket?.send(packet);
} catch (error) {
self.postMessage({
type: 'SEND_FAIL',
error: {
message: error.message,
name: error.name,
},
});
}
}
function bindSocketHandlers() {
if (_socket) {
_socket.onopen = (event) => {
self.postMessage({
type: 'OPEN',
data: {
type: event.type,
timeStamp: event.timeStamp,
},
});
};
_socket.onmessage = (event) => {
self.postMessage({
type: 'MESSAGE',
data: event.data,
});
};
_socket.onclose = (event) => {
self.postMessage({
type: 'CLOSE',
data: {
code: event.code,
reason: event.reason,
timeStamp: event.timeStamp,
},
});
};
_socket.onerror = (error) => {
self.postMessage({
type: 'ERROR',
data: {
message: error.message,
name: error.name
},
});
};
}
}
function unbindSocketHandlers() {
if (_socket) {
_socket.onopen = null;
_socket.onmessage = null;
_socket.onclose = null;
_socket.onerror = null;
}
}
function disconnect() {
if (_socket) {
_socket.close();
_socket = null;
}
}
`],{type:"application/javascript"});this._worker=new Worker(URL.createObjectURL(h)),this._worker.postMessage({type:gn,url:E})}send(E){var h,D;try{(h=this._worker)===null||h===void 0||h.postMessage({type:Yo,data:E})}catch(N){(D=this._onSendFail)===null||D===void 0||D.call(this,N)}}bindSocketHandlers(E){const{onOpen:h,onMessage:D,onClose:N,onError:O,onSendFail:Y}=E;if(this._worker){const j={[So]:h,[ao]:D,[EE]:N,[Ta]:O,[po]:Y};this._onSendFail=Y,this._worker.onmessage=IA=>{var BA;const{type:mA}=IA?.data||{};typeof j[mA]=="function"&&((BA=j[mA])===null||BA===void 0||BA.call(j,IA?.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Tg}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}class Mc{}var Qr,Fo=new class{constructor(){this._store=new Map}get(C){return this._store.get(C)}getStorage(C){return Xi?ai?my.getStorageSync({key:C}).data:Ji.getStorageSync(C):this._canUseLocalStorage()?localStorage.getItem(C):{}}set(C,E){const h=this._store.get(C)||{};E instanceof Map?this._store.set(C,E):this._store.set(C,Object.assign(Object.assign({},h),E))}setStorage(C,E){Xi?ai?my.setStorageSync({key:C,data:JSON.stringify(E)}):Ji.setStorageSync(C,JSON.stringify(E)):this._canUseLocalStorage()&&localStorage.setItem(C,JSON.stringify(E))}clear(C){typeof C=="string"?this._store.set(C,{}):this._store.clear()}clearLocalStorage(C){this._canUseLocalStorage()&&(typeof C=="string"?localStorage.setItem(C,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return typeof window<"u"&&navigator&&navigator.cookieEnabled&&localStorage}};class $s{connectSocket(E){return this._socket=Ji.connectSocket({url:E,header:{"content-type":"application/json"},multiple:!0,complete:()=>{}}),this._socket}send(E){var h;(h=this._socket)===null||h===void 0||h.send({data:E,fail:this._onSendFail})}bindSocketHandlers(E){const{onOpen:h,onMessage:D,onClose:N,onError:O,onSendFail:Y}=E;this._socket&&(this._socket.onClose(N),this._socket.onOpen(h),this._socket.onMessage(j=>D(j?.data)),this._socket.onError(()=>O),this._onSendFail=Y)}unbindSocketHandlers(){this._socket&&(this._socket.onClose(()=>{}),this._socket.onOpen(()=>{}),this._socket.onMessage(()=>{}),this._socket.onError(()=>{}))}disconnect(){this._socket&&(this._socket.close(),this._socket=null)}}(function(C){C[C.CONNECTED=0]="CONNECTED",C[C.CONNECTING=1]="CONNECTING",C[C.DISCONNECTED=2]="DISCONNECTED"})(Qr||(Qr={}));class Ha{constructor(E){this._url="",this._readyState=Qr.DISCONNECTED,this._url=E,this._id=v(),this._emitter=new jr,ai?this._socket=new $s:Je||Ur||Zi||Dt||Ki||qt?this._socket=new gr({onError:this._onError.bind(this)}):Nr?this._socket=new Mc:this._canUseWebWorker()?this._socket=new Ja:this._socket=new nI,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[Qr.CONNECTED,Qr.CONNECTING].includes(this._readyState)||(this._readyState=Qr.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(E){this._readyState!==Qr.CONNECTED?this.reconnect():this._socket.send(E)}reconnect(){[Qr.CONNECTED,Qr.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(E,h,D){this._emitter.on(E,h,D)}off(E,h,D){this._emitter.off(E,h,D)}isConnected(){return this._readyState===Qr.CONNECTED}disconnect(){this._readyState=Qr.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(E){this._readyState===Qr.CONNECTING&&(this._readyState=Qr.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:E}))}_onMessage(E){this._emitter.emit("message",E)}_onClose(E){this._readyState=Qr.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:E})}_onError(E){this._readyState=Qr.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:E})}_onSendFail(E){this._readyState=Qr.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:E})}_bindSocketHandlers(){this._socket.bindSocketHandlers({onOpen:this._onOpen.bind(this),onMessage:this._onMessage.bind(this),onClose:this._onClose.bind(this),onError:this._onError.bind(this),onSendFail:this._onSendFail.bind(this)})}_unbindSocketHandlers(){this._socket.unbindSocketHandlers()}_canUseWebWorker(){const E=Fo.get("cloudConfig")||{};return(r(E.isWorkerEnabled)||E.isWorkerEnabled==="1")&&ji}}const Gs={[Ve.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[Ve.KOREA]:[[3e7,4e7],[173e7,174e7]],[Ve.GERMANY]:[[4e7,5e7],[174e7,175e7]],[Ve.IND]:[[5e7,6e7],[175e7,176e7]],[Ve.JPN]:[[6e7,7e7],[176e7,177e7]],[Ve.USA]:[[7e7,8e7],[177e7,178e7]],[Ve.INDONESIA]:[[8e7,9e7],[178e7,179e7]],[Ve.KSA]:[[9e7,1e8],[179e7,18e8]]};function Ga(C){var E;if(!((E=Fo.get("instance"))===null||E===void 0)&&E.oversea)return Ve.OVERSEA;for(const h of Object.keys(Gs))for(const[D,N]of Gs[h])if(C>=D&&C<N)return h;return Ve.CHINA}var Rr,Ia="1.6.18";(function(C){C.INITIAL="INITIAL",C.DEFAULT="DEFAULT",C.BACKUP="BACKUP",C.BACKUP_WEB_ONLY="BACKUP_WEB_ONLY",C.BACKUP_CN="BACKUP_CN",C.ANYCAST="ANYCAST",C.IPV6="IPV6"})(Rr||(Rr={}));let fo=Rr.INITIAL;function aI(){const C=Math.random();return C===0?aI():C}function en(C,E){const{isBinary:h=!1}=E||{},D=Fo.get("instance"),{sdkAppId:N,instanceId:O}=D,Y=aI(),j=Lo(),IA=function(){const _A=Lo();let xA=-1;return _A==="ios"?xA=be||-1:_A==="android"&&(xA=ht||-1),xA}(),BA=(mA={sdkappid:N,instanceid:O,random:Y,platform:MA,host:j,version:IA,sdkversion:Ia},Object.keys(mA).map(_A=>`${_A}=${mA[_A]}`).join("&"));var mA;return h?`${C}/binfo?${BA}&compress=gzip`:`${C}/info?${BA}`}function qo(C){const E=Fo.get("instance"),{sdkAppId:h,testEnv:D,proxyServer:N}=E,O=Ga(h);if(D)return en(Ze.TEST[O].DEFAULT,{isBinary:C});if(!$r(N))return en(N,{isBinary:C});const Y=Ze.PRODUCTION[O],j=wt&&Y.ANYCAST,IA=wt,BA=!!Y.BACKUP_CN;return en({[Rr.INITIAL]:()=>(fo=Rr.DEFAULT,Y.DEFAULT),[Rr.DEFAULT]:()=>(fo=Rr.IPV6,Y.IPV6),[Rr.IPV6]:()=>(fo=Rr.BACKUP,Y.BACKUP),[Rr.BACKUP]:()=>IA?(fo=Rr.BACKUP_WEB_ONLY,function(mA){const _A=Math.floor(10001*Math.random())+1e4;return mA.replace("*",String(_A))}(Y.BACKUP_WEB_ONLY)):BA?(fo=Rr.BACKUP_CN,Y.BACKUP_CN):j?(fo=Rr.ANYCAST,Y.ANYCAST):Y.DEFAULT,[Rr.BACKUP_WEB_ONLY]:()=>BA?(fo=Rr.BACKUP_CN,Y.BACKUP_CN):j?(fo=Rr.ANYCAST,Y.ANYCAST):Y.DEFAULT,[Rr.BACKUP_CN]:()=>(fo=j?Rr.ANYCAST:Rr.DEFAULT,Y[fo]),[Rr.ANYCAST]:()=>(fo=Rr.DEFAULT,Y.ANYCAST="",Y.DEFAULT)}[fo](),{isBinary:C})}var Gg=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(C,E){const h=Date.now(),D=h-C;this._timeOffsetWithServer=E+D-h}};const kg=16;var fn=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(C){const{id:E}=C;this.removeTask(E),this._tasks.push(C),this._taskMap.set(E,C),this._sort(),this._scheduleNextTask()}_createTask(C){const{id:E,callback:h,context:D,isOnce:N=!1,intervalMs:O=kg}=C,Y=Math.max(O,kg);return{id:E,nextExecuteTime:Date.now()+Y,intervalMs:O,callback:h,context:D,isOnce:N}}addTask(C){const E=this._createTask(C);this._addTaskToScheduler(E)}addOnceTask(C){const E=this._createTask(Object.assign(Object.assign({},C),{isOnce:!0}));this._addTaskToScheduler(E)}removeTask(C){const E=this._tasks.findIndex(h=>h.id===C);E>-1&&(this._tasks.splice(E,1),this._taskMap.delete(C),this._scheduleNextTask())}updateTaskInterval(C,E){const h=this._taskMap.get(C);h&&(h.intervalMs=E,h.nextExecuteTime=Date.now()+E,this._sort(),this._scheduleNextTask())}clearAllTasks(){this._tasks=[],this._taskMap.clear(),this._timer&&(clearTimeout(this._timer),this._timer=null)}dispose(){this.clearAllTasks()}_sort(){this._tasks.sort((C,E)=>C.nextExecuteTime-E.nextExecuteTime)}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const C=this._tasks[0];if(C){const E=Math.max(0,C.nextExecuteTime-Date.now());this._timer=setTimeout(()=>this._execute(),E)}}_execute(){const C=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=C;){const E=this._tasks[0];try{E.context?E.callback.call(E.context):E.callback(),E.isOnce?this.removeTask(E.id):(E.nextExecuteTime=C+E.intervalMs,this._sort())}catch(h){console.warn(`Task ${E.id} execution failed:`,h),E.isOnce&&this.removeTask(E.id)}}this._scheduleNextTask()}};function ls(C){const E=[];for(let h=0;h<C.length;h+=1){const D=C.charCodeAt(h);if(D>=55296&&D<=56319){const N=C.charCodeAt(++h)-56320+(D-55296<<10)+65536;E.push(240|N>>18,128|N>>12&63,128|N>>6&63,128|63&N)}else D<=127?E.push(D):D<=2047?E.push(192|D>>6,128|63&D):E.push(224|D>>12,128|D>>6&63,128|63&D)}return new Uint8Array(E)}function Or(C){const E=Array.isArray(C)?[]:Object.create(null);for(const h in C)Object.prototype.hasOwnProperty.call(C,h)&&m(h)&&C[h]!=null&&(C[h]===null||typeof C[h]!="object"?E[h]=C[h]:E[h]=Or(C[h]));return E}function Po(C,E){if(sA.includes(C))return 0;const h=ls(JSON.stringify(E));let D=4294967295;const{length:N}=h;for(let O=0;O<N;O++){D^=h[O];for(let Y=0;Y<8;Y++)1&~D?D>>>=1:D=D>>>1^3988292384}return(4294967295^D)>>>0}function Ba(C){const{servcmd:E,data:h}=C,D=function(O){const Y=Fo.get("login")||{},j=Fo.get("instance")||{};return{servcmd:O,ver:"v4",platform:MA,websdkappid:537048168,websdkversion:"1.7.3",a2:Y.a2Key||void 0,tinyid:Y.tinyID||void 0,status_instid:Y.statusInstanceId||0,sdkappid:j.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:Y.a2Key?void 0:Y.userId,usersig:Y.a2Key?void 0:Y.userSig,sdkability:478343027,sdkability_ext:AA(""),cappid:j.applicationID||0,tjgID:"",seq:Va(),cs:0}}(E),N=Or(h);return D.cs=Po(E,N),{head:D,body:N}}function Mr(C){const{servcmd:E,data:h}=C,D=function(O){const Y=Fo.get("login")||{},j=Fo.get("instance")||{};return{servcmd:O,ver:"v4",platform:MA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:j.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:Y.statusInstanceId||0,sdkability:478343027,sdkability_ext:AA(""),cappid:j.applicationID||0,seq:Va(),cs:0}}(E),N=Or(h);return D.cs=Po(E,N),{head:D,body:N}}let Cs=v();function Va(){return Cs=Cs<2415919103?Cs+1:v(),Cs}function P(){var C;const E=Fo.get("login")||{},h=Fo.get("instance")||{};return{sdk_type:30,sdk_app_id:h.sdkAppId,sdk_version:"1.6.18",tiny_id:Number(E.tinyID),user_id:E.userId||((C=Fo.get("webPush"))===null||C===void 0?void 0:C.userId),platform:MA,instance_id:h.instanceId,trace_id:new Date().getTime()}}var F,EA=Object.freeze({__proto__:null,calcBodyCRC:Po,filterProtocolDataInvalidFields:Or,generateCosSpecifiedData:function(C){const{servcmd:E,data:h}=C,D=function(O){const Y=Fo.get("login")||{},j=Fo.get("instance")||{};return{servcmd:O,ver:"v4",platform:MA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:j.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:Y.userId,usersig:Y.userSig,status_instid:Y.statusInstanceId||0,sdkability:478343027,sdkability_ext:AA(""),cappid:j.applicationID||0,seq:Va(),cs:0}}(E),N=Or(h);return D.cs=Po(E,N),{head:D,body:N}},generateProtocolData:Ba,generateSSOLogProtocolData:Mr,generateSequence:Va,getCommonHead:P,getHostSite:Ga,taskScheduler:fn,timeManager:Gg});(function(C){C[C.info=4]="info",C[C.warning=5]="warning",C[C.error=6]="error"})(F||(F={}));const RA={method:"extension",networkType:"network_type",eventType:"event_type",code:"error_code",message:"error_message",moreMessage:"more_message",duplicate:"duplicate",costTime:"cost_time",level:"level",uiPlatform:"ui_platform",timestamp:"timestamp"};class GA{constructor(E){this.level=F.info,this._canSendLog=!0,this._logCreatedAt=Gg.getServerTimeMs(),this.timestamp=0,this.networkType=8,this.code=0,this.moreMessage="",this.method="",this.message="",this.costTime=0,this.duplicate=!1,this.eventType=0,this.uiPlatform=this._getUiPlatform(),this._sdkEdition=this._getSDKEdition();const{method:h,eventType:D=0,message:N="",costTime:O=0,error:Y,uiPlatform:j,moreMessage:IA="",code:BA=0,startTime:mA=0}=E||{};this.eventType=D,this.method=h,this.message=N,this.costTime=O,this.moreMessage=`${IA} startTime:${mA}`,this.code=BA,Y&&this.setError(Y),$r(j)||(this.uiPlatform=j)}setMoreMessage(E){this.moreMessage=`${this.moreMessage} ${E}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Gg.getTimeOffsetWithServer()}end(E=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=Gg.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),E&&this._ssoLogModule.uploadSSOLogData())}setError(E){var h;return E instanceof Error?this._canSendLog?(!((h=Fo.get("netWorkMonitor"))===null||h===void 0)&&h.isNetworkOnline&&(E.errorCode&&(this.code=E.errorCode),E.errorMessage&&this.setMoreMessage(E.errorMessage)),this.level=F.error,this):this:(console.warn("SSOLogData.setError value not instanceof Error, please check!"),this)}setLogInfo(E){return Object.keys(E).forEach(h=>{Object.keys(RA).includes(h)&&(this[h]=E[h])}),this}setSSOLogModule(E){this._ssoLogModule=E}_convertSSOLogDataKeyToServe(){const E={};return Object.keys(this).forEach(h=>{const D=h;RA[D]&&(E[RA[D]]=this[D])}),E}_getUiPlatform(){var E;const h=(E=Fo.get("instance"))===null||E===void 0?void 0:E.scene;if(typeof h=="string"){const D=Number(h);return isNaN(D)?void 0:D}}_getSDKEdition(){var E;return(E=Fo.get("instance"))===null||E===void 0?void 0:E.sdkEdition}}var WA;(function(C){C.RECONNECTED="reconnected",C.CLOUD_CONFIG_UPDATE="cloud_config_update",C.SOCKET_DISCONNECTED="socket_disconnected"})(WA||(WA={}));var Ce=WA;const ge=20,we=6e4,_e=[4,5,6],Ke="report-logger";var Bt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=ge,this._maxThreshold=100,this._waitingTime=we,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=eA.DEBUG,this._throttleConfig={global:{throttleTime:ue,maxCount:jA},single:{throttleTime:HA,maxCount:VA}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,pn.subscribeInnerEvent(Ce.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),fn.addTask({id:Ke,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(C){const{evt_rpt_threshold:E=ge,evt_rpt_waiting:h=we,evt_rpt_level:D=_e,evt_rpt_sdkappid_bl:N="",evt_rpt_tinyid_wl:O="",evt_rpt_global_throttle_time:Y=ue,evt_rpt_global_throttle_count:j=jA,evt_rpt_single_throttle_time:IA=HA,evt_rpt_single_throttle_count:BA=VA}=C||{};this._sdkAppIdBlackList=N.split(",").map(mA=>Number(mA)),this._waitingTime=Number(h),this._minThreshold=E,this._reportLevel=D,this._tinyIdWhiteList=O.split(","),this._throttleConfig={global:{throttleTime:Y,maxCount:j},single:{throttleTime:IA,maxCount:BA}}}createSSOLogData(C){const E=new GA(C);return E.setSSOLogModule(this),this._ssoLogMap.set(C.method,E),E}getSSOLogData(C){return this._ssoLogMap.get(C)||{}}pushToLogQueue(C){C&&(this._logQueue.push(C),this._shouldUploadImmediately()&&this.uploadSSOLogData())}setLogLevel(C){[eA.DEBUG,eA.ERROR,eA.INFO,eA.NONE,eA.WARN].includes(C)&&(this._logLevel=C)}debug(C,E="",h){this._log(eA.DEBUG,C,E,h)}info(C,E="",h){this._log(eA.INFO,C,E,h)}warn(C,E="",h){this._log(eA.WARN,C,E,h)}error(C,E="",h){this._log(eA.ERROR,C,E,h)}_shouldUploadImmediately(){return this._logQueue.length>=this._minThreshold}_isReportDue(){return Date.now()>=this._lastReportAt+this._waitingTime}_checkAndReportIfDue(){this._isReportDue()&&this._logQueue.length>0&&this.uploadSSOLogData()}uploadSSOLogData(){return et(this,void 0,void 0,function*(){if(this._logQueue.length===0)return;const C=this._logQueue.slice();this._logQueue=[];try{const E=this._filterLogs(C);if(E.length===0)return void(this._lastReportAt=Date.now());const h={Header:P(),Event:E};$r(h.Header.user_id)||(yield function(D){const N="imopenstat.tim_web_report_v2",O=Mr({servcmd:N,data:D}),Y=`${O.head.seq}${N}`;return II.sendPacket(O,{requestId:Y})}(h))}catch(E){this._requeueFailedLogs(C),this.debug("uploadSSOLogData",An(E))}finally{this._lastReportAt=Date.now()}})}_requeueFailedLogs(C){this._logQueue=C.concat(this._logQueue);const E=this._logQueue.length-200;E>0&&(this._logQueue.splice(0,E),this.debug("uploadSSOLogData",`log queue overflow, dropped ${E} oldest logs`))}_savePlatFormInfo(){var C,E;if(Je){const h=(E=(C=wx.getAccountInfoSync)===null||C===void 0?void 0:C.call(wx))===null||E===void 0?void 0:E.miniProgram;if(h){const{appId:D,envVersion:N}=h;Fo.set("instance",{appId:D,envVersion:N})}}else wt&&Fo.set("instance",{href:window.location.href})}_filterLogs(C){const{tinyID:E}=Fo.get("login")||{},{sdkAppId:h}=Fo.get("instance")||{};return this._sdkAppIdBlackList.includes(h)&&!this._tinyIdWhiteList.includes(E)?[]:C.filter(D=>this._reportLevel.includes(D.level))}_checkThrottle(C){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(C)}_checkGlobalThrottle(){const C=Date.now();if(C-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=C;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(C){const E=Date.now(),h=this._singleThrottleMap.get(C);return h?E-h.startTime>=this._throttleConfig.single.throttleTime?(h.count=1,h.startTime=E,!1):h.count>=this._throttleConfig.single.maxCount||(h.count++,!1):(this._singleThrottleMap.set(C,{count:1,startTime:E}),!1)}_shouldLog(C){return C>=this._logLevel&&this._logLevel!==eA.NONE}_shouldReport(C){return this._reportLevel.includes(wA[C])}_formatLog(C,E,h,D){const N=new Date,O=`${N.getHours()}:${N.getMinutes()}:${N.getSeconds()}:${N.getMilliseconds()}`,Y=`<${eA[C]}>`;return ot||Xi?[`${X} [${O}] ${Y} [${E}] ${h}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",X,"",`[${O}] ${Y} [${E}] ${h} params: ${An(D)}`]}_log(C,E,h,D){if(this._shouldLog(C)){const N=this._formatLog(C,E,h,D);QA[C].apply(console,N)}if(this._shouldReport(C)){const N=this._getThrottleKey(E,h,D);this._checkThrottle(N)||this.createSSOLogData(Object.assign(Object.assign({message:h},D),{method:E})).end()}}_getThrottleKey(C,E,h){const D=`${C}${E}${An(Object.assign(Object.assign({},h),{costTime:""}))}`,N=ls(JSON.stringify(D));let O=4294967295;const{length:Y}=N;for(let j=0;j<Y;j++){O^=N[j];for(let IA=0;IA<8;IA++)1&~O?O>>>=1:O=O>>>1^3988292384}return`${(4294967295^O)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),fn.removeTask(Ke),pn.unSubscribeInnerEvent(Ce.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=ge,this._maxThreshold=100,this._waitingTime=we,this._logQueue=[],this._logLevel=eA.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const Rt=15e3,Ye="Channel",nt="channel_schedule_task",ii="channel_reconnect_task",oi="connected",Ko="connecting",Kt="disconnected",ro=1e3,ks="network_status_change",Zr="activity_status_change",In="send_fail",xr="reconnect_failed",sI="socket_error",jo="socket_close";function OI(C){return OI=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(E){return typeof E}:function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},OI(C)}function _g(C){throw new Error('Could not dynamically require "'+C+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var gI,ml={exports:{}},ua=(gI||(gI=1,function(C){C.exports=function E(h,D,N){function O(IA,BA){if(!D[IA]){if(!h[IA]){if(!BA&&_g)return _g(IA);if(Y)return Y(IA,!0);var mA=new Error("Cannot find module '"+IA+"'");throw mA.code="MODULE_NOT_FOUND",mA}var _A=D[IA]={exports:{}};h[IA][0].call(_A.exports,function(xA){return O(h[IA][1][xA]||xA)},_A,_A.exports,E,h,D,N)}return D[IA].exports}for(var Y=_g,j=0;j<N.length;j++)O(N[j]);return O}({1:[function(E,h,D){var N=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";D.assign=function(j){for(var IA,BA,mA=Array.prototype.slice.call(arguments,1);mA.length;){var _A=mA.shift();if(_A){if(OI(_A)!="object")throw new TypeError(_A+"must be non-object");for(var xA in _A)IA=_A,BA=xA,Object.prototype.hasOwnProperty.call(IA,BA)&&(j[xA]=_A[xA])}}return j},D.shrinkBuf=function(j,IA){return j.length===IA?j:j.subarray?j.subarray(0,IA):(j.length=IA,j)};var O={arraySet:function(j,IA,BA,mA,_A){if(IA.subarray&&j.subarray)j.set(IA.subarray(BA,BA+mA),_A);else for(var xA=0;xA<mA;xA++)j[_A+xA]=IA[BA+xA]},flattenChunks:function(j){var IA,BA,mA,_A,xA,Qe;for(IA=mA=0,BA=j.length;IA<BA;IA++)mA+=j[IA].length;for(Qe=new Uint8Array(mA),IA=_A=0,BA=j.length;IA<BA;IA++)xA=j[IA],Qe.set(xA,_A),_A+=xA.length;return Qe}},Y={arraySet:function(j,IA,BA,mA,_A){for(var xA=0;xA<mA;xA++)j[_A+xA]=IA[BA+xA]},flattenChunks:function(j){return[].concat.apply([],j)}};D.setTyped=function(j){j?(D.Buf8=Uint8Array,D.Buf16=Uint16Array,D.Buf32=Int32Array,D.assign(D,O)):(D.Buf8=Array,D.Buf16=Array,D.Buf32=Array,D.assign(D,Y))},D.setTyped(N)},{}],2:[function(E,h,D){var N=E("./common"),O=!0,Y=!0;try{String.fromCharCode.apply(null,[0])}catch{O=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Y=!1}for(var j=new N.Buf8(256),IA=0;IA<256;IA++)j[IA]=252<=IA?6:248<=IA?5:240<=IA?4:224<=IA?3:192<=IA?2:1;function BA(mA,_A){if(_A<65534&&(mA.subarray&&Y||!mA.subarray&&O))return String.fromCharCode.apply(null,N.shrinkBuf(mA,_A));for(var xA="",Qe=0;Qe<_A;Qe++)xA+=String.fromCharCode(mA[Qe]);return xA}j[254]=j[254]=1,D.string2buf=function(mA){var _A,xA,Qe,Re,Se,At=mA.length,at=0;for(Re=0;Re<At;Re++)(64512&(xA=mA.charCodeAt(Re)))==55296&&Re+1<At&&(64512&(Qe=mA.charCodeAt(Re+1)))==56320&&(xA=65536+(xA-55296<<10)+(Qe-56320),Re++),at+=xA<128?1:xA<2048?2:xA<65536?3:4;for(_A=new N.Buf8(at),Re=Se=0;Se<at;Re++)(64512&(xA=mA.charCodeAt(Re)))==55296&&Re+1<At&&(64512&(Qe=mA.charCodeAt(Re+1)))==56320&&(xA=65536+(xA-55296<<10)+(Qe-56320),Re++),xA<128?_A[Se++]=xA:(xA<2048?_A[Se++]=192|xA>>>6:(xA<65536?_A[Se++]=224|xA>>>12:(_A[Se++]=240|xA>>>18,_A[Se++]=128|xA>>>12&63),_A[Se++]=128|xA>>>6&63),_A[Se++]=128|63&xA);return _A},D.buf2binstring=function(mA){return BA(mA,mA.length)},D.binstring2buf=function(mA){for(var _A=new N.Buf8(mA.length),xA=0,Qe=_A.length;xA<Qe;xA++)_A[xA]=mA.charCodeAt(xA);return _A},D.buf2string=function(mA,_A){var xA,Qe,Re,Se,At=_A||mA.length,at=new Array(2*At);for(xA=Qe=0;xA<At;)if((Re=mA[xA++])<128)at[Qe++]=Re;else if(4<(Se=j[Re]))at[Qe++]=65533,xA+=Se-1;else{for(Re&=Se===2?31:Se===3?15:7;1<Se&&xA<At;)Re=Re<<6|63&mA[xA++],Se--;1<Se?at[Qe++]=65533:Re<65536?at[Qe++]=Re:(Re-=65536,at[Qe++]=55296|Re>>10&1023,at[Qe++]=56320|1023&Re)}return BA(at,Qe)},D.utf8border=function(mA,_A){var xA;for((_A=_A||mA.length)>mA.length&&(_A=mA.length),xA=_A-1;0<=xA&&(192&mA[xA])==128;)xA--;return xA<0||xA===0?_A:xA+j[mA[xA]]>_A?xA:_A}},{"./common":1}],3:[function(E,h,D){h.exports=function(N,O,Y,j){for(var IA=65535&N,BA=N>>>16&65535,mA=0;Y!==0;){for(Y-=mA=2e3<Y?2e3:Y;BA=BA+(IA=IA+O[j++]|0)|0,--mA;);IA%=65521,BA%=65521}return IA|BA<<16}},{}],4:[function(E,h,D){h.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],5:[function(E,h,D){var N=function(){for(var O,Y=[],j=0;j<256;j++){O=j;for(var IA=0;IA<8;IA++)O=1&O?3988292384^O>>>1:O>>>1;Y[j]=O}return Y}();h.exports=function(O,Y,j,IA){var BA=N,mA=IA+j;O^=-1;for(var _A=IA;_A<mA;_A++)O=O>>>8^BA[255&(O^Y[_A])];return-1^O}},{}],6:[function(E,h,D){h.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],7:[function(E,h,D){h.exports=function(N,O){var Y,j,IA,BA,mA,_A,xA,Qe,Re,Se,At,at,jt,Bi,ri,St,eo,to,Yt,si,zo,te,je,dA,ut;Y=N.state,j=N.next_in,dA=N.input,IA=j+(N.avail_in-5),BA=N.next_out,ut=N.output,mA=BA-(O-N.avail_out),_A=BA+(N.avail_out-257),xA=Y.dmax,Qe=Y.wsize,Re=Y.whave,Se=Y.wnext,At=Y.window,at=Y.hold,jt=Y.bits,Bi=Y.lencode,ri=Y.distcode,St=(1<<Y.lenbits)-1,eo=(1<<Y.distbits)-1;A:do{jt<15&&(at+=dA[j++]<<jt,jt+=8,at+=dA[j++]<<jt,jt+=8),to=Bi[at&St];e:for(;;){if(at>>>=Yt=to>>>24,jt-=Yt,(Yt=to>>>16&255)==0)ut[BA++]=65535&to;else{if(!(16&Yt)){if(!(64&Yt)){to=Bi[(65535&to)+(at&(1<<Yt)-1)];continue e}if(32&Yt){Y.mode=12;break A}N.msg="invalid literal/length code",Y.mode=30;break A}si=65535&to,(Yt&=15)&&(jt<Yt&&(at+=dA[j++]<<jt,jt+=8),si+=at&(1<<Yt)-1,at>>>=Yt,jt-=Yt),jt<15&&(at+=dA[j++]<<jt,jt+=8,at+=dA[j++]<<jt,jt+=8),to=ri[at&eo];t:for(;;){if(at>>>=Yt=to>>>24,jt-=Yt,!(16&(Yt=to>>>16&255))){if(!(64&Yt)){to=ri[(65535&to)+(at&(1<<Yt)-1)];continue t}N.msg="invalid distance code",Y.mode=30;break A}if(zo=65535&to,jt<(Yt&=15)&&(at+=dA[j++]<<jt,(jt+=8)<Yt&&(at+=dA[j++]<<jt,jt+=8)),xA<(zo+=at&(1<<Yt)-1)){N.msg="invalid distance too far back",Y.mode=30;break A}if(at>>>=Yt,jt-=Yt,(Yt=BA-mA)<zo){if(Re<(Yt=zo-Yt)&&Y.sane){N.msg="invalid distance too far back",Y.mode=30;break A}if(je=At,(te=0)===Se){if(te+=Qe-Yt,Yt<si){for(si-=Yt;ut[BA++]=At[te++],--Yt;);te=BA-zo,je=ut}}else if(Se<Yt){if(te+=Qe+Se-Yt,(Yt-=Se)<si){for(si-=Yt;ut[BA++]=At[te++],--Yt;);if(te=0,Se<si){for(si-=Yt=Se;ut[BA++]=At[te++],--Yt;);te=BA-zo,je=ut}}}else if(te+=Se-Yt,Yt<si){for(si-=Yt;ut[BA++]=At[te++],--Yt;);te=BA-zo,je=ut}for(;2<si;)ut[BA++]=je[te++],ut[BA++]=je[te++],ut[BA++]=je[te++],si-=3;si&&(ut[BA++]=je[te++],1<si&&(ut[BA++]=je[te++]))}else{for(te=BA-zo;ut[BA++]=ut[te++],ut[BA++]=ut[te++],ut[BA++]=ut[te++],2<(si-=3););si&&(ut[BA++]=ut[te++],1<si&&(ut[BA++]=ut[te++]))}break}}break}}while(j<IA&&BA<_A);j-=si=jt>>3,at&=(1<<(jt-=si<<3))-1,N.next_in=j,N.next_out=BA,N.avail_in=j<IA?IA-j+5:5-(j-IA),N.avail_out=BA<_A?_A-BA+257:257-(BA-_A),Y.hold=at,Y.bits=jt}},{}],8:[function(E,h,D){var N=E("../utils/common"),O=E("./adler32"),Y=E("./crc32"),j=E("./inffast"),IA=E("./inftrees"),BA=1,mA=2,_A=0,xA=-2,Qe=1,Re=852,Se=592;function At(te){return(te>>>24&255)+(te>>>8&65280)+((65280&te)<<8)+((255&te)<<24)}function at(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new N.Buf16(320),this.work=new N.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function jt(te){var je;return te&&te.state?(je=te.state,te.total_in=te.total_out=je.total=0,te.msg="",je.wrap&&(te.adler=1&je.wrap),je.mode=Qe,je.last=0,je.havedict=0,je.dmax=32768,je.head=null,je.hold=0,je.bits=0,je.lencode=je.lendyn=new N.Buf32(Re),je.distcode=je.distdyn=new N.Buf32(Se),je.sane=1,je.back=-1,_A):xA}function Bi(te){var je;return te&&te.state?((je=te.state).wsize=0,je.whave=0,je.wnext=0,jt(te)):xA}function ri(te,je){var dA,ut;return te&&te.state?(ut=te.state,je<0?(dA=0,je=-je):(dA=1+(je>>4),je<48&&(je&=15)),je&&(je<8||15<je)?xA:(ut.window!==null&&ut.wbits!==je&&(ut.window=null),ut.wrap=dA,ut.wbits=je,Bi(te))):xA}function St(te,je){var dA,ut;return te?(ut=new at,(te.state=ut).window=null,(dA=ri(te,je))!==_A&&(te.state=null),dA):xA}var eo,to,Yt=!0;function si(te){if(Yt){var je;for(eo=new N.Buf32(512),to=new N.Buf32(32),je=0;je<144;)te.lens[je++]=8;for(;je<256;)te.lens[je++]=9;for(;je<280;)te.lens[je++]=7;for(;je<288;)te.lens[je++]=8;for(IA(BA,te.lens,0,288,eo,0,te.work,{bits:9}),je=0;je<32;)te.lens[je++]=5;IA(mA,te.lens,0,32,to,0,te.work,{bits:5}),Yt=!1}te.lencode=eo,te.lenbits=9,te.distcode=to,te.distbits=5}function zo(te,je,dA,ut){var Cr,lt=te.state;return lt.window===null&&(lt.wsize=1<<lt.wbits,lt.wnext=0,lt.whave=0,lt.window=new N.Buf8(lt.wsize)),ut>=lt.wsize?(N.arraySet(lt.window,je,dA-lt.wsize,lt.wsize,0),lt.wnext=0,lt.whave=lt.wsize):(ut<(Cr=lt.wsize-lt.wnext)&&(Cr=ut),N.arraySet(lt.window,je,dA-ut,Cr,lt.wnext),(ut-=Cr)?(N.arraySet(lt.window,je,dA-ut,ut,0),lt.wnext=ut,lt.whave=lt.wsize):(lt.wnext+=Cr,lt.wnext===lt.wsize&&(lt.wnext=0),lt.whave<lt.wsize&&(lt.whave+=Cr))),0}D.inflateReset=Bi,D.inflateReset2=ri,D.inflateResetKeep=jt,D.inflateInit=function(te){return St(te,15)},D.inflateInit2=St,D.inflate=function(te,je){var dA,ut,Cr,lt,Co,Jt,mo,Fe,Oe,xs,Zo,ti,_n,Eg,Bo,Da,Xa,ia,b,rA,gA,pA,vA,Ae,UA=0,re=new N.Buf8(4),LA=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!te||!te.state||!te.output||!te.input&&te.avail_in!==0)return xA;(dA=te.state).mode===12&&(dA.mode=13),Co=te.next_out,Cr=te.output,mo=te.avail_out,lt=te.next_in,ut=te.input,Jt=te.avail_in,Fe=dA.hold,Oe=dA.bits,xs=Jt,Zo=mo,pA=_A;A:for(;;)switch(dA.mode){case Qe:if(dA.wrap===0){dA.mode=13;break}for(;Oe<16;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(2&dA.wrap&&Fe===35615){re[dA.check=0]=255&Fe,re[1]=Fe>>>8&255,dA.check=Y(dA.check,re,2,0),Oe=Fe=0,dA.mode=2;break}if(dA.flags=0,dA.head&&(dA.head.done=!1),!(1&dA.wrap)||(((255&Fe)<<8)+(Fe>>8))%31){te.msg="incorrect header check",dA.mode=30;break}if((15&Fe)!=8){te.msg="unknown compression method",dA.mode=30;break}if(Oe-=4,gA=8+(15&(Fe>>>=4)),dA.wbits===0)dA.wbits=gA;else if(gA>dA.wbits){te.msg="invalid window size",dA.mode=30;break}dA.dmax=1<<gA,te.adler=dA.check=1,dA.mode=512&Fe?10:12,Oe=Fe=0;break;case 2:for(;Oe<16;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(dA.flags=Fe,(255&dA.flags)!=8){te.msg="unknown compression method",dA.mode=30;break}if(57344&dA.flags){te.msg="unknown header flags set",dA.mode=30;break}dA.head&&(dA.head.text=Fe>>8&1),512&dA.flags&&(re[0]=255&Fe,re[1]=Fe>>>8&255,dA.check=Y(dA.check,re,2,0)),Oe=Fe=0,dA.mode=3;case 3:for(;Oe<32;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.head&&(dA.head.time=Fe),512&dA.flags&&(re[0]=255&Fe,re[1]=Fe>>>8&255,re[2]=Fe>>>16&255,re[3]=Fe>>>24&255,dA.check=Y(dA.check,re,4,0)),Oe=Fe=0,dA.mode=4;case 4:for(;Oe<16;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.head&&(dA.head.xflags=255&Fe,dA.head.os=Fe>>8),512&dA.flags&&(re[0]=255&Fe,re[1]=Fe>>>8&255,dA.check=Y(dA.check,re,2,0)),Oe=Fe=0,dA.mode=5;case 5:if(1024&dA.flags){for(;Oe<16;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.length=Fe,dA.head&&(dA.head.extra_len=Fe),512&dA.flags&&(re[0]=255&Fe,re[1]=Fe>>>8&255,dA.check=Y(dA.check,re,2,0)),Oe=Fe=0}else dA.head&&(dA.head.extra=null);dA.mode=6;case 6:if(1024&dA.flags&&(Jt<(ti=dA.length)&&(ti=Jt),ti&&(dA.head&&(gA=dA.head.extra_len-dA.length,dA.head.extra||(dA.head.extra=new Array(dA.head.extra_len)),N.arraySet(dA.head.extra,ut,lt,ti,gA)),512&dA.flags&&(dA.check=Y(dA.check,ut,ti,lt)),Jt-=ti,lt+=ti,dA.length-=ti),dA.length))break A;dA.length=0,dA.mode=7;case 7:if(2048&dA.flags){if(Jt===0)break A;for(ti=0;gA=ut[lt+ti++],dA.head&&gA&&dA.length<65536&&(dA.head.name+=String.fromCharCode(gA)),gA&&ti<Jt;);if(512&dA.flags&&(dA.check=Y(dA.check,ut,ti,lt)),Jt-=ti,lt+=ti,gA)break A}else dA.head&&(dA.head.name=null);dA.length=0,dA.mode=8;case 8:if(4096&dA.flags){if(Jt===0)break A;for(ti=0;gA=ut[lt+ti++],dA.head&&gA&&dA.length<65536&&(dA.head.comment+=String.fromCharCode(gA)),gA&&ti<Jt;);if(512&dA.flags&&(dA.check=Y(dA.check,ut,ti,lt)),Jt-=ti,lt+=ti,gA)break A}else dA.head&&(dA.head.comment=null);dA.mode=9;case 9:if(512&dA.flags){for(;Oe<16;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(Fe!==(65535&dA.check)){te.msg="header crc mismatch",dA.mode=30;break}Oe=Fe=0}dA.head&&(dA.head.hcrc=dA.flags>>9&1,dA.head.done=!0),te.adler=dA.check=0,dA.mode=12;break;case 10:for(;Oe<32;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}te.adler=dA.check=At(Fe),Oe=Fe=0,dA.mode=11;case 11:if(dA.havedict===0)return te.next_out=Co,te.avail_out=mo,te.next_in=lt,te.avail_in=Jt,dA.hold=Fe,dA.bits=Oe,2;te.adler=dA.check=1,dA.mode=12;case 12:if(je===5||je===6)break A;case 13:if(dA.last){Fe>>>=7&Oe,Oe-=7&Oe,dA.mode=27;break}for(;Oe<3;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}switch(dA.last=1&Fe,Oe-=1,3&(Fe>>>=1)){case 0:dA.mode=14;break;case 1:if(si(dA),dA.mode=20,je!==6)break;Fe>>>=2,Oe-=2;break A;case 2:dA.mode=17;break;case 3:te.msg="invalid block type",dA.mode=30}Fe>>>=2,Oe-=2;break;case 14:for(Fe>>>=7&Oe,Oe-=7&Oe;Oe<32;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if((65535&Fe)!=(Fe>>>16^65535)){te.msg="invalid stored block lengths",dA.mode=30;break}if(dA.length=65535&Fe,Oe=Fe=0,dA.mode=15,je===6)break A;case 15:dA.mode=16;case 16:if(ti=dA.length){if(Jt<ti&&(ti=Jt),mo<ti&&(ti=mo),ti===0)break A;N.arraySet(Cr,ut,lt,ti,Co),Jt-=ti,lt+=ti,mo-=ti,Co+=ti,dA.length-=ti;break}dA.mode=12;break;case 17:for(;Oe<14;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(dA.nlen=257+(31&Fe),Fe>>>=5,Oe-=5,dA.ndist=1+(31&Fe),Fe>>>=5,Oe-=5,dA.ncode=4+(15&Fe),Fe>>>=4,Oe-=4,286<dA.nlen||30<dA.ndist){te.msg="too many length or distance symbols",dA.mode=30;break}dA.have=0,dA.mode=18;case 18:for(;dA.have<dA.ncode;){for(;Oe<3;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.lens[LA[dA.have++]]=7&Fe,Fe>>>=3,Oe-=3}for(;dA.have<19;)dA.lens[LA[dA.have++]]=0;if(dA.lencode=dA.lendyn,dA.lenbits=7,vA={bits:dA.lenbits},pA=IA(0,dA.lens,0,19,dA.lencode,0,dA.work,vA),dA.lenbits=vA.bits,pA){te.msg="invalid code lengths set",dA.mode=30;break}dA.have=0,dA.mode=19;case 19:for(;dA.have<dA.nlen+dA.ndist;){for(;Da=(UA=dA.lencode[Fe&(1<<dA.lenbits)-1])>>>16&255,Xa=65535&UA,!((Bo=UA>>>24)<=Oe);){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(Xa<16)Fe>>>=Bo,Oe-=Bo,dA.lens[dA.have++]=Xa;else{if(Xa===16){for(Ae=Bo+2;Oe<Ae;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(Fe>>>=Bo,Oe-=Bo,dA.have===0){te.msg="invalid bit length repeat",dA.mode=30;break}gA=dA.lens[dA.have-1],ti=3+(3&Fe),Fe>>>=2,Oe-=2}else if(Xa===17){for(Ae=Bo+3;Oe<Ae;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}Oe-=Bo,gA=0,ti=3+(7&(Fe>>>=Bo)),Fe>>>=3,Oe-=3}else{for(Ae=Bo+7;Oe<Ae;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}Oe-=Bo,gA=0,ti=11+(127&(Fe>>>=Bo)),Fe>>>=7,Oe-=7}if(dA.have+ti>dA.nlen+dA.ndist){te.msg="invalid bit length repeat",dA.mode=30;break}for(;ti--;)dA.lens[dA.have++]=gA}}if(dA.mode===30)break;if(dA.lens[256]===0){te.msg="invalid code -- missing end-of-block",dA.mode=30;break}if(dA.lenbits=9,vA={bits:dA.lenbits},pA=IA(BA,dA.lens,0,dA.nlen,dA.lencode,0,dA.work,vA),dA.lenbits=vA.bits,pA){te.msg="invalid literal/lengths set",dA.mode=30;break}if(dA.distbits=6,dA.distcode=dA.distdyn,vA={bits:dA.distbits},pA=IA(mA,dA.lens,dA.nlen,dA.ndist,dA.distcode,0,dA.work,vA),dA.distbits=vA.bits,pA){te.msg="invalid distances set",dA.mode=30;break}if(dA.mode=20,je===6)break A;case 20:dA.mode=21;case 21:if(6<=Jt&&258<=mo){te.next_out=Co,te.avail_out=mo,te.next_in=lt,te.avail_in=Jt,dA.hold=Fe,dA.bits=Oe,j(te,Zo),Co=te.next_out,Cr=te.output,mo=te.avail_out,lt=te.next_in,ut=te.input,Jt=te.avail_in,Fe=dA.hold,Oe=dA.bits,dA.mode===12&&(dA.back=-1);break}for(dA.back=0;Da=(UA=dA.lencode[Fe&(1<<dA.lenbits)-1])>>>16&255,Xa=65535&UA,!((Bo=UA>>>24)<=Oe);){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(Da&&!(240&Da)){for(ia=Bo,b=Da,rA=Xa;Da=(UA=dA.lencode[rA+((Fe&(1<<ia+b)-1)>>ia)])>>>16&255,Xa=65535&UA,!(ia+(Bo=UA>>>24)<=Oe);){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}Fe>>>=ia,Oe-=ia,dA.back+=ia}if(Fe>>>=Bo,Oe-=Bo,dA.back+=Bo,dA.length=Xa,Da===0){dA.mode=26;break}if(32&Da){dA.back=-1,dA.mode=12;break}if(64&Da){te.msg="invalid literal/length code",dA.mode=30;break}dA.extra=15&Da,dA.mode=22;case 22:if(dA.extra){for(Ae=dA.extra;Oe<Ae;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.length+=Fe&(1<<dA.extra)-1,Fe>>>=dA.extra,Oe-=dA.extra,dA.back+=dA.extra}dA.was=dA.length,dA.mode=23;case 23:for(;Da=(UA=dA.distcode[Fe&(1<<dA.distbits)-1])>>>16&255,Xa=65535&UA,!((Bo=UA>>>24)<=Oe);){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(!(240&Da)){for(ia=Bo,b=Da,rA=Xa;Da=(UA=dA.distcode[rA+((Fe&(1<<ia+b)-1)>>ia)])>>>16&255,Xa=65535&UA,!(ia+(Bo=UA>>>24)<=Oe);){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}Fe>>>=ia,Oe-=ia,dA.back+=ia}if(Fe>>>=Bo,Oe-=Bo,dA.back+=Bo,64&Da){te.msg="invalid distance code",dA.mode=30;break}dA.offset=Xa,dA.extra=15&Da,dA.mode=24;case 24:if(dA.extra){for(Ae=dA.extra;Oe<Ae;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}dA.offset+=Fe&(1<<dA.extra)-1,Fe>>>=dA.extra,Oe-=dA.extra,dA.back+=dA.extra}if(dA.offset>dA.dmax){te.msg="invalid distance too far back",dA.mode=30;break}dA.mode=25;case 25:if(mo===0)break A;if(ti=Zo-mo,dA.offset>ti){if((ti=dA.offset-ti)>dA.whave&&dA.sane){te.msg="invalid distance too far back",dA.mode=30;break}ti>dA.wnext?(ti-=dA.wnext,_n=dA.wsize-ti):_n=dA.wnext-ti,ti>dA.length&&(ti=dA.length),Eg=dA.window}else Eg=Cr,_n=Co-dA.offset,ti=dA.length;for(mo<ti&&(ti=mo),mo-=ti,dA.length-=ti;Cr[Co++]=Eg[_n++],--ti;);dA.length===0&&(dA.mode=21);break;case 26:if(mo===0)break A;Cr[Co++]=dA.length,mo--,dA.mode=21;break;case 27:if(dA.wrap){for(;Oe<32;){if(Jt===0)break A;Jt--,Fe|=ut[lt++]<<Oe,Oe+=8}if(Zo-=mo,te.total_out+=Zo,dA.total+=Zo,Zo&&(te.adler=dA.check=dA.flags?Y(dA.check,Cr,Zo,Co-Zo):O(dA.check,Cr,Zo,Co-Zo)),Zo=mo,(dA.flags?Fe:At(Fe))!==dA.check){te.msg="incorrect data check",dA.mode=30;break}Oe=Fe=0}dA.mode=28;case 28:if(dA.wrap&&dA.flags){for(;Oe<32;){if(Jt===0)break A;Jt--,Fe+=ut[lt++]<<Oe,Oe+=8}if(Fe!==(4294967295&dA.total)){te.msg="incorrect length check",dA.mode=30;break}Oe=Fe=0}dA.mode=29;case 29:pA=1;break A;case 30:pA=-3;break A;case 31:return-4;default:return xA}return te.next_out=Co,te.avail_out=mo,te.next_in=lt,te.avail_in=Jt,dA.hold=Fe,dA.bits=Oe,(dA.wsize||Zo!==te.avail_out&&dA.mode<30&&(dA.mode<27||je!==4))&&zo(te,te.output,te.next_out,Zo-te.avail_out)?(dA.mode=31,-4):(xs-=te.avail_in,Zo-=te.avail_out,te.total_in+=xs,te.total_out+=Zo,dA.total+=Zo,dA.wrap&&Zo&&(te.adler=dA.check=dA.flags?Y(dA.check,Cr,Zo,te.next_out-Zo):O(dA.check,Cr,Zo,te.next_out-Zo)),te.data_type=dA.bits+(dA.last?64:0)+(dA.mode===12?128:0)+(dA.mode===20||dA.mode===15?256:0),(xs===0&&Zo===0||je===4)&&pA===_A&&(pA=-5),pA)},D.inflateEnd=function(te){if(!te||!te.state)return xA;var je=te.state;return je.window&&(je.window=null),te.state=null,_A},D.inflateGetHeader=function(te,je){var dA;return te&&te.state&&2&(dA=te.state).wrap?((dA.head=je).done=!1,_A):xA},D.inflateSetDictionary=function(te,je){var dA,ut=je.length;return te&&te.state?(dA=te.state).wrap!==0&&dA.mode!==11?xA:dA.mode===11&&O(1,je,ut,0)!==dA.check?-3:zo(te,je,ut,ut)?(dA.mode=31,-4):(dA.havedict=1,_A):xA},D.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(E,h,D){var N=E("../utils/common"),O=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Y=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],j=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],IA=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];h.exports=function(BA,mA,_A,xA,Qe,Re,Se,At){var at,jt,Bi,ri,St,eo,to,Yt,si,zo=At.bits,te=0,je=0,dA=0,ut=0,Cr=0,lt=0,Co=0,Jt=0,mo=0,Fe=0,Oe=null,xs=0,Zo=new N.Buf16(16),ti=new N.Buf16(16),_n=null,Eg=0;for(te=0;te<=15;te++)Zo[te]=0;for(je=0;je<xA;je++)Zo[mA[_A+je]]++;for(Cr=zo,ut=15;1<=ut&&Zo[ut]===0;ut--);if(ut<Cr&&(Cr=ut),ut===0)return Qe[Re++]=20971520,Qe[Re++]=20971520,At.bits=1,0;for(dA=1;dA<ut&&Zo[dA]===0;dA++);for(Cr<dA&&(Cr=dA),te=Jt=1;te<=15;te++)if(Jt<<=1,(Jt-=Zo[te])<0)return-1;if(0<Jt&&(BA===0||ut!==1))return-1;for(ti[1]=0,te=1;te<15;te++)ti[te+1]=ti[te]+Zo[te];for(je=0;je<xA;je++)mA[_A+je]!==0&&(Se[ti[mA[_A+je]]++]=je);if(BA===0?(Oe=_n=Se,eo=19):BA===1?(Oe=O,xs-=257,_n=Y,Eg-=257,eo=256):(Oe=j,_n=IA,eo=-1),te=dA,St=Re,Co=je=Fe=0,Bi=-1,ri=(mo=1<<(lt=Cr))-1,BA===1&&852<mo||BA===2&&592<mo)return 1;for(;;){for(to=te-Co,Se[je]<eo?(Yt=0,si=Se[je]):Se[je]>eo?(Yt=_n[Eg+Se[je]],si=Oe[xs+Se[je]]):(Yt=96,si=0),at=1<<te-Co,dA=jt=1<<lt;Qe[St+(Fe>>Co)+(jt-=at)]=to<<24|Yt<<16|si,jt!==0;);for(at=1<<te-1;Fe&at;)at>>=1;if(at!==0?(Fe&=at-1,Fe+=at):Fe=0,je++,--Zo[te]==0){if(te===ut)break;te=mA[_A+Se[je]]}if(Cr<te&&(Fe&ri)!==Bi){for(Co===0&&(Co=Cr),St+=dA,Jt=1<<(lt=te-Co);lt+Co<ut&&!((Jt-=Zo[lt+Co])<=0);)lt++,Jt<<=1;if(mo+=1<<lt,BA===1&&852<mo||BA===2&&592<mo)return 1;Qe[Bi=Fe&ri]=Cr<<24|lt<<16|St-Re}}return Fe!==0&&(Qe[St+Fe]=te-Co<<24|64<<16),At.bits=Cr,0}},{"../utils/common":1}],10:[function(E,h,D){h.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],11:[function(E,h,D){h.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],"/lib/inflate.js":[function(E,h,D){var N=E("./zlib/inflate"),O=E("./utils/common"),Y=E("./utils/strings"),j=E("./zlib/constants"),IA=E("./zlib/messages"),BA=E("./zlib/zstream"),mA=E("./zlib/gzheader"),_A=Object.prototype.toString;function xA(Re){if(!(this instanceof xA))return new xA(Re);this.options=O.assign({chunkSize:16384,windowBits:0,to:""},Re||{});var Se=this.options;Se.raw&&0<=Se.windowBits&&Se.windowBits<16&&(Se.windowBits=-Se.windowBits,Se.windowBits===0&&(Se.windowBits=-15)),!(0<=Se.windowBits&&Se.windowBits<16)||Re&&Re.windowBits||(Se.windowBits+=32),15<Se.windowBits&&Se.windowBits<48&&!(15&Se.windowBits)&&(Se.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new BA,this.strm.avail_out=0;var At=N.inflateInit2(this.strm,Se.windowBits);if(At!==j.Z_OK)throw new Error(IA[At]);if(this.header=new mA,N.inflateGetHeader(this.strm,this.header),Se.dictionary&&(typeof Se.dictionary=="string"?Se.dictionary=Y.string2buf(Se.dictionary):_A.call(Se.dictionary)==="[object ArrayBuffer]"&&(Se.dictionary=new Uint8Array(Se.dictionary)),Se.raw&&(At=N.inflateSetDictionary(this.strm,Se.dictionary))!==j.Z_OK))throw new Error(IA[At])}function Qe(Re,Se){var At=new xA(Se);if(At.push(Re,!0),At.err)throw At.msg||IA[At.err];return At.result}xA.prototype.push=function(Re,Se){var At,at,jt,Bi,ri,St=this.strm,eo=this.options.chunkSize,to=this.options.dictionary,Yt=!1;if(this.ended)return!1;at=Se===~~Se?Se:Se===!0?j.Z_FINISH:j.Z_NO_FLUSH,typeof Re=="string"?St.input=Y.binstring2buf(Re):_A.call(Re)==="[object ArrayBuffer]"?St.input=new Uint8Array(Re):St.input=Re,St.next_in=0,St.avail_in=St.input.length;do{if(St.avail_out===0&&(St.output=new O.Buf8(eo),St.next_out=0,St.avail_out=eo),(At=N.inflate(St,j.Z_NO_FLUSH))===j.Z_NEED_DICT&&to&&(At=N.inflateSetDictionary(this.strm,to)),At===j.Z_BUF_ERROR&&Yt===!0&&(At=j.Z_OK,Yt=!1),At!==j.Z_STREAM_END&&At!==j.Z_OK)return this.onEnd(At),!(this.ended=!0);St.next_out&&(St.avail_out!==0&&At!==j.Z_STREAM_END&&(St.avail_in!==0||at!==j.Z_FINISH&&at!==j.Z_SYNC_FLUSH)||(this.options.to==="string"?(jt=Y.utf8border(St.output,St.next_out),Bi=St.next_out-jt,ri=Y.buf2string(St.output,jt),St.next_out=Bi,St.avail_out=eo-Bi,Bi&&O.arraySet(St.output,St.output,jt,Bi,0),this.onData(ri)):this.onData(O.shrinkBuf(St.output,St.next_out)))),St.avail_in===0&&St.avail_out===0&&(Yt=!0)}while((0<St.avail_in||St.avail_out===0)&&At!==j.Z_STREAM_END);return At===j.Z_STREAM_END&&(at=j.Z_FINISH),at===j.Z_FINISH?(At=N.inflateEnd(this.strm),this.onEnd(At),this.ended=!0,At===j.Z_OK):at!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),!(St.avail_out=0))},xA.prototype.onData=function(Re){this.chunks.push(Re)},xA.prototype.onEnd=function(Re){Re===j.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=O.flattenChunks(this.chunks)),this.chunks=[],this.err=Re,this.msg=this.strm.msg},D.Inflate=xA,D.inflate=Qe,D.inflateRaw=function(Re,Se){return(Se=Se||{}).raw=!0,Qe(Re,Se)},D.ungzip=Qe},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")}(ml)),ml.exports),II=new class{constructor(){this._socketAdapter=null,this._url="",this._isReconnecting=!1,this._pendingRequests=new Map,this._nextHeartbeatAt=0,this._lastDiagnoseAt=0,this._isHeartbeatInProgress=!1,this._connectionEstablishedTime=0,this._connectionStartTime=0,this._connectionId=-1,this._isBinarySupported=!0,this._intendedDelay=ro,this._currentConnectState=oi,this._beforeSendInterceptors=[]}init(){fn.addTask({id:nt,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(C){const E=Fo.get("instance"),{sdkAppId:h,testEnv:D,disableIndependentDomain:N,proxyServer:O}=E,Y=Ga(h);let j="";return D?j=Ze.TEST[Y].DEFAULT:$r(O)?N?(j=Ze.PRODUCTION[Y].DEFAULT,fo=Rr.DEFAULT):j=Ze.PRODUCTION[Y].INITIAL.replace("*",`${h}`):j=O,en(j,{isBinary:C})}(this._isBinarySupported),pn.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),pn.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(C,E){var h;const{requestId:D,timeout:N=Rt,canResend:O=!0,shouldRejectOnError:Y=!0}=E||{};if($r(C))return Bt.warn("sendPacket",`${Ye}.sendPacket: packet is empty `),null;this._executeBeforeSendInterceptors(C),this._currentConnectState===Kt&&this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:In});const j=JSON.stringify(C);let IA=null;if(D){const{resolve:mA,reject:_A,promise:xA}=Tr();IA=xA,this._pendingRequests.set(D,{resolve:mA,reject:_A,timestamp:Date.now(),uplinkData:j,timeout:N,canResend:O,requestHead:C?.head,shouldRejectOnError:Y})}const BA=this._isBinarySupported?ls(j).buffer:j;return(h=this._socketAdapter)===null||h===void 0||h.send(BA),IA}connect(){var C;this._socketAdapter=new Ha(this._url),this._connectionEstablishedTime=0,this._addEventListeners(),this._connectionStartTime=Date.now();const E=(C=this._socketAdapter)===null||C===void 0?void 0:C.getId(),h=`${Ye}.connect isWorkerEnabled: ${ji} socketID:${E} url:${this._url}`;this._connectionId=E,this._ssoLog({method:"connect",message:h})}disconnect(){var C,E;const h=(C=this._socketAdapter)===null||C===void 0?void 0:C.getId(),D=`${Ye}.disconnect socketID:${h}`;this._ssoLog({method:"disconnect",message:D}),this._removeEventListeners(),(E=this._socketAdapter)===null||E===void 0||E.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${Ye}.dispose`),fn.removeTask(nt),fn.removeTask(ii),pn.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),pn.unSubscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.disconnect(),this._socketAdapter=null,this._isReconnecting=!1,this._isHeartbeatInProgress=!1,this._pendingRequests.clear(),this._nextHeartbeatAt=0,this._lastDiagnoseAt=0,this._intendedDelay=ro,this._url=""}registerBeforeSendInterceptor(C,E){this._beforeSendInterceptors.push(C.bind(E))}_executeBeforeSendInterceptors(C){for(const E of this._beforeSendInterceptors){const{servcmd:h=""}=C?.head;E(h.includes(".")?h.split(".").pop():"")}}_shouldSkipReconnect(){const C=this._currentConnectState===Ko&&this._isReconnecting;return!this._socketAdapter||C}reconnect(){return et(this,void 0,void 0,function*(){const C=`${Ye}.reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:C}),!this._shouldSkipReconnect()){this._url=qo(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(E){this._isReconnecting=!1,this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:xr}),Bt.warn(`${Ye}.reconnect failed: ${An(E)}`)}}})}_addEventListeners(){var C,E,h,D,N;(C=this._socketAdapter)===null||C===void 0||C.on("connect",this._onConnect,this),(E=this._socketAdapter)===null||E===void 0||E.on("message",this._onMessage,this),(h=this._socketAdapter)===null||h===void 0||h.on("close",this._onClose,this),(D=this._socketAdapter)===null||D===void 0||D.on("error",this._onError,this),(N=this._socketAdapter)===null||N===void 0||N.on("sendFail",this._onSendFail,this)}_removeEventListeners(){var C,E,h,D,N;(C=this._socketAdapter)===null||C===void 0||C.off("connect",this._onConnect,this),(E=this._socketAdapter)===null||E===void 0||E.off("message",this._onMessage,this),(h=this._socketAdapter)===null||h===void 0||h.off("close",this._onClose,this),(D=this._socketAdapter)===null||D===void 0||D.off("error",this._onError,this),(N=this._socketAdapter)===null||N===void 0||N.off("sendFail",this._onSendFail,this)}_onClose(C){const{socketId:E,event:h}=C||{},D=this._connectionEstablishedTime!==0?Date.now()-this._connectionEstablishedTime:0,N=`${Ye}.onClose closeSocketID: ${E} currentSocketID: ${this._connectionId} connectionDuration: ${D} code: ${h?.code} reason: ${h?.reason}`;this._ssoLog({method:"onClose",message:N}),E===this._connectionId&&this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:jo}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(C){const{socketId:E,error:h}=C||{},D=`${Ye}.onError sourceSocketID: ${E} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(h)}`;this._ssoLog({method:"onError",message:D}),E===this._connectionId&&this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:sI}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(C){const{socketId:E,error:h}=C||{},D=`${Ye}.onSendFail sendFailSocketId: ${E} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${An(h)}`;this._ssoLog({method:"onSendFail",message:D}),this._isReconnecting&&(this._isReconnecting=!1)}_onMessage(C){let E,h;this._updateHeartbeatTime();try{E=this._isBinarySupported?this._isCompressedData(C.data)?(Y=>{const j=new Uint8Array(Y).slice(4);let IA;try{IA=ua.inflate(j,{to:"string"})}catch(BA){console.error("inflate error",BA)}return IA})(C.data):function(Y){const j=new Uint8Array(Y);let IA="",BA=0;const{length:mA}=j;for(;BA<mA;){let _A=j[BA],xA=0,Qe=0;if(_A<=127?(xA=0,Qe=255&_A):_A<=223?(xA=1,Qe=31&_A):_A<=239?(xA=2,Qe=15&_A):_A<=244&&(xA=3,Qe=7&_A),mA-BA-xA>0)for(let Re=0;Re<xA;Re+=1)_A=j[BA+Re+1],Qe=Qe<<6|63&_A;else Qe=65533,xA=mA-BA;IA+=String.fromCodePoint(Qe),BA+=xA+1}return IA}(C.data):C.data,h=JSON.parse(E)}catch(Y){const j=`event.data: ${An(C.data)} error: ${An(Y)}`;return void this._ssoLog({method:"jsonParseError",message:j})}if(!h||!h.head)return;const{seq:D,servcmd:N}=h.head,O=`${D}${N}`;this._pendingRequests.has(O)?this._handleRequestResponse(h):this._handlePushMessage(h)}_handleRequestResponse(C){var E,h;const{seq:D,servcmd:N}=C.head,{int32_error_code:O,str_error_message:Y}=C?.body||{},j=((E=C?.body)===null||E===void 0?void 0:E.ErrorCode)||O,IA=((h=C?.body)===null||h===void 0?void 0:h.ErrorInfo)||Y,BA=`${D}${N}`,{resolve:mA,reject:_A,timestamp:xA,headSeq:Qe,requestHead:Re,shouldRejectOnError:Se=!0}=this._pendingRequests.get(BA);if(this._pendingRequests.delete(BA),j&&j!==0&&Se)return pn.emitInnerEvent("error",{errorCode:j,errorInfo:IA,requestHead:Re}),void _A({errorCode:j,errorInfo:IA});mA(C.body)}_handlePushMessage(C){const{servcmd:E}=C.head,{NeedAck:h,SessionData:D}=C.body;h===1&&this._sendAck(D),pn.emitInnerEvent(E,C)}_checkPendingRequestsAndResend(){var C;Bt.debug("_checkPendingRequestsAndResend",` reConnectFlag:${this._isReconnecting} promiseMap.size:${this._pendingRequests.size}`),(C=this._pendingRequests)===null||C===void 0||C.forEach((E,h)=>{var D;const{uplinkData:N,canResend:O,resolve:Y,reject:j,timeout:IA}=E;if(O){this._pendingRequests.set(h,{resolve:Y,reject:j,timestamp:Date.now(),uplinkData:N,timeout:IA,canResend:O});const BA=this._isBinarySupported?ls(N).buffer:N;(D=this._socketAdapter)===null||D===void 0||D.send(BA)}else this._pendingRequests.delete(h)})}_onConnect(C){const{socketId:E,event:h={}}=C||{};this._connectionId=E,this._connectionEstablishedTime=Date.now();const D=Date.now()-this._connectionStartTime,N=`${Ye}.onConnect cost:${D} ms. socketID:${E} res:${JSON.stringify(h)}`;if(this._ssoLog({method:"onConnect",message:N}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const O=`${Ye}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:O}),pn.emitInnerEvent(Ce.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:oi,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(C){const E=Ba({servcmd:"openim.ws_msg_push_ack",data:{SessionData:C}});this.sendPacket(E)}_executeScheduledTaskIfReady(){return et(this,void 0,void 0,function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()})}_canSendHeartbeat(){var C;return((C=this._socketAdapter)===null||C===void 0?void 0:C.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return et(this,void 0,void 0,function*(){var C;const E=Ba({servcmd:"heartbeat.alive",data:{}});try{const h=`${E.head.seq}${E.head.servcmd}`;yield this.sendPacket(E,{requestId:h,timeout:3e3})}catch(h){const D=(C=Fo.get("netWorkMonitor"))===null||C===void 0?void 0:C.isNetworkOnline,N=`${Ye}.sendHeartbeat failed. isNetWorkOnline:${D} error: ${An(h)}`;this._ssoLog({method:"sendHeartbeatError",message:N}),this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return et(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=Ur?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(C){const E=`${Ye}.networkStatusChange ${JSON.stringify(C)}`;this._ssoLog({method:"networkStatusChange",message:E});const{isNetworkOnline:h,networkType:D}=C;h&&D!=="none"?this._handleConnectStateChange({state:oi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:ks}):this._handleConnectStateChange({state:Kt,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:ks})}isPrivateNetWork(){const C=Fo.get("instance")||{};return C.proxyServer&&!C.fileDownloadProxy}_handleConnectStateChange(C){const{state:E,shouldAttemptReconnect:h,shouldEmitEvent:D,reason:N}=C,O=`${Ye}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${h} shouldEmitEvent: ${D} reason: ${N}`;this._currentConnectState!==E&&(this._ssoLog({method:"handleConnectStateChange",message:O}),D&&(Bt.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${E}`),pn.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:E}}),this._currentConnectState=E,E===Kt&&pn.emitInnerEvent(Ce.SOCKET_DISCONNECTED)),h&&(this._resetReconnectDelay(),fn.addTask({id:ii,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this})))}_handleActivityStatusChange(C){var E,h;const D=(h=(E=this._socketAdapter)===null||E===void 0?void 0:E._ws)===null||h===void 0?void 0:h.readyState,N=`${Ye}.activityStatusChange ${JSON.stringify(C)} readyState: ${D}`;Bt.debug("activityStatusChange",N),D===3&&this._handleConnectStateChange({state:Kt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Zr})}_resetReconnectDelay(){var C;Bt.debug(`${Ye}._resetReconnectDelay`),fn.removeTask(ii);const E=(C=Fo.get("activityMonitor"))===null||C===void 0?void 0:C.isActive;this._intendedDelay=E?ro:1e3}_scheduleReconnectWithBackoff(){var C;const E=(C=Fo.get("activityMonitor"))===null||C===void 0?void 0:C.isActive;this._intendedDelay=E?Math.min(5e3,Math.max(ro,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const h=new Date().toTimeString().slice(0,8),D=`${Ye}.scheduleReconnectWithBackoff timeStr: ${h} intendedDelay: ${this._intendedDelay}`;Bt.debug(D),this.reconnect(),fn.updateTaskInterval(ii,this._intendedDelay)}_ssoLog(C){const{method:E,message:h}=C;Bt.info(E,h)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(C){et(this,void 0,void 0,function*(){const E=C.split("/")[2];if(!E.startsWith("ws"))return;const h=`https://${E}/v3/netcheck/getconninfo?${C.slice(C.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield $t({method:"GET",url:h,data:{}})}catch(D){Bt.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${D.message}`)}})}(this._url),function(C){et(this,void 0,void 0,function*(){const E=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${C.slice(C.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield $t({method:"GET",url:E,data:{}})}catch(h){Bt.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${h.message}`)}})}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[C,E]of this._pendingRequests.entries()){const{reject:h,timestamp:D,timeout:N}=E;Date.now()-D>=N&&(this._pendingRequests.delete(C),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),h({errorCode:Qn,errorInfo:"NETWORK_TIMEOUT",data:{requestId:C}}))}}_updateIsBinarySupported(){var C;if(!((C=Fo.get("instance"))===null||C===void 0)&&C.devMode)return void(this._isBinarySupported=!1);const E=Lo();if((ai||Je&&E==="windows"||Kn)&&(this._isBinarySupported=!1),Ur){const{uniRuntimeVersion:h=""}=Ji.getSystemInfoSync();(function(D){const N=D.split(".").map(Number),[O=0,Y=0,j=0]=N;return O>2||!(O<2)&&(Y>2||!(Y<2)&&j>=6)})(h)||(this._isBinarySupported=!1)}}_isCompressedData(C){const E=new Uint8Array(C);return E[0]===67&&E[1]===79&&E[2]===77&&E[3]===80}};const ZA={init:function(C){Fo.set("instance",C),II.init()},destroy:function(){II.dispose(),Fo.clear(),fn.dispose()},notificationCenter:pn,channel:II,store:Fo,ssoLog:Bt,utils:Es,common:EA,constants:qe},Ag=C=>typeof C=="function";function cI(C,E,h){const D=h||[];if(!C||!E)return!1;const N=Object.keys(C).filter(Y=>!D.includes(Y)),O=Object.keys(E).filter(Y=>!D.includes(Y));return N.length===O.length&&N.every(Y=>!!E.hasOwnProperty(Y)&&(typeof C[Y]=="object"&&C[Y]!==null?cI(C[Y],E[Y],h):C[Y]===E[Y]))}var Bs;(function(C){C.SDK_READY="sdkStateReady",C.SDK_NOT_READY="sdkStateNotReady",C.SDK_DESTROY="sdkDestroy",C.MESSAGE_RECEIVED="onMessageReceived",C.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",C.MESSAGE_MODIFIED="onMessageModified",C.MESSAGE_REVOKED="onMessageRevoked",C.MESSAGE_READ_BY_PEER="onMessageReadByPeer",C.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",C.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",C.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",C.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",C.CONVERSATION_LIST_UPDATED="onConversationListUpdated",C.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",C.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",C.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",C.GROUP_LIST_UPDATED="onGroupListUpdated",C.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",C.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",C.TOPIC_CREATED="onTopicCreated",C.TOPIC_DELETED="onTopicDeleted",C.TOPIC_UPDATED="onTopicUpdated",C.PROFILE_UPDATED="onProfileUpdated",C.USER_STATUS_UPDATED="onUserStatusUpdated",C.BLACKLIST_UPDATED="blacklistUpdated",C.FRIEND_LIST_UPDATED="onFriendListUpdated",C.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",C.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",C.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",C.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",C.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",C.KICKED_OUT="kickedOut",C.ERROR="error",C.NET_STATE_CHANGE="netStateChange",C.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated",C.SERVER_CONFIG_UPDATED="onServerConfigUpdated",C.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",C.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived",C.GROUP_ONLINE_MEMBER_COUNT_CHANGED="onGroupOnlineMemberCountChanged",C.RICH_STATUS_CHANGED="onRichStatusChanged"})(Bs||(Bs={}));var eg,kr=Bs;(function(C){C.LOGOUT="logout",C.DESTROY="destroy",C.CLOUD_CONFIG_UPDATE="cloud_config_update",C.PROFILE_UPDATE="profile_updated",C.ERROR="error",C.RECONNECTED="reconnected",C.FORCE_OFFLINE="im_open_status.stat_forceoffline",C.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",C.OVERLOAD_PUSH="OverLoadPush.notify2",C.NEW_MESSAGE="new_message",C.MESSAGE_PUSH="im_open_push.msg_push",C.MESSAGE_DELETED="message_deleted",C.MESSAGE_REVOKED="message_revoked",C.MESSAGE_MODIFIED="message_modified",C.SOCKET_DISCONNECTED="socket_disconnected",C.CONVERSATION_UPDATED="conversation_updated",C.TOPIC_MESSAGE_DELETED="topic_message_deleted",C.TOPIC_MESSAGE_REVOKED="topic_message_revoked",C.TOPIC_MESSAGE_MODIFIED="topic_message_modified",C.TOPIC_NEW_MESSAGE="topic_new_message",C.QUALITY_STAT="quality_stat",C.SYNC_CONVERSATION_LIST="sync_conversation_list",C.HISTORY_MESSAGE_FETCHED="history_message_fetched"})(eg||(eg={}));var EI,Gt=eg;(function(C){C.NEW_INVITATION_RECEIVED="newInvitationReceived",C.INVITEE_ACCEPTED="ts_invitee_accepted",C.INVITEE_REJECTED="ts_invitee_rejected",C.INVITATION_CANCELLED="ts_invitation_cancelled",C.INVITATION_TIMEOUT="ts_invitation_timeout",C.INVITATION_MODIFIED="ts_invitation_modified"})(EI||(EI={}));var Dl=EI;const xI=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),_s={MSG_TEXT:"TIMTextElem",MSG_IMAGE:"TIMImageElem",MSG_AUDIO:"TIMSoundElem",MSG_FILE:"TIMFileElem",MSG_FACE:"TIMFaceElem",MSG_VIDEO:"TIMVideoFileElem",MSG_LOCATION:"TIMLocationElem",MSG_GRP_TIP:"TIMGroupTipElem",MSG_GRP_SYS_NOTICE:"TIMGroupSystemNoticeElem",MSG_CUSTOM:"TIMCustomElem",MSG_MERGER:"TIMRelayElem",MSG_STREAM:"TIMStreamElem"};var tg;(function(C){C.UNSENT="unSend",C.SUCCESS="success",C.FAIL="fail"})(tg||(tg={}));const ka={modify:Gt.MESSAGE_MODIFIED,delete:Gt.MESSAGE_DELETED,revoke:Gt.MESSAGE_REVOKED};var wc;(function(C){C[C.FORWARD=0]="FORWARD",C[C.BACKWARD=1]="BACKWARD"})(wc||(wc={}));const lE=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},_s),{MSG_PRIORITY_HIGH:"High",MSG_PRIORITY_NORMAL:"Normal",MSG_PRIORITY_LOW:"Low",MSG_PRIORITY_LOWEST:"Lowest"}),{RECEIVE_WITH_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT:"AcceptNotNotifyExceptAt",NOT_RECEIVE_MSG_EXCEPT_AT:"NotReceiveMsgExceptAt",MSG_AT_ALL:"__kImSDK_MesssageAtALL__"}),{MSG_REMIND_ACPT_AND_NOTE:"AcceptAndNotify",MSG_REMIND_ACPT_NOT_NOTE:"AcceptNotNotify",MSG_REMIND_DISCARD:"Discard"}),{MessageStatus:tg,Direction:wc}),qa={[ka.modify]:Gt.TOPIC_MESSAGE_MODIFIED,[ka.delete]:Gt.TOPIC_MESSAGE_DELETED,[ka.revoke]:Gt.TOPIC_MESSAGE_REVOKED},CE={GENDER_UNKNOWN:"Gender_Type_Unknown",GENDER_FEMALE:"Gender_Type_Female",GENDER_MALE:"Gender_Type_Male",USER_STATUS_UNKNOWN:0,USER_STATUS_ONLINE:1,USER_STATUS_OFFLINE:2,USER_STATUS_UNLOGINED:3,USER_NOT_FOUND:"@TLS#NOT_FOUND"},yC=Object.assign({},CE),us={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},lI=Object.assign(Object.assign(Object.assign(Object.assign({},us),{CONV_AT_ME:1,CONV_AT_ALL:2,CONV_AT_ALL_AT_ME:3}),{CONV_MARK_TYPE_STAR:1,CONV_MARK_TYPE_UNREAD:2,CONV_MARK_TYPE_FOLD:4,CONV_MARK_TYPE_HIDE:8}),{READ_ALL_C2C_MSG:"readAllC2CMessage",READ_ALL_GROUP_MSG:"readAllGroupMessage",READ_ALL_MSG:"readAllMessage"}),ig=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},{SNS_TYPE_NO_RELATION:"CheckResult_Type_NoRelation",SNS_TYPE_A_WITH_B:"CheckResult_Type_AWithB",SNS_TYPE_B_WITH_A:"CheckResult_Type_BWithA",SNS_TYPE_BOTH_WAY:"CheckResult_Type_BothWay"}),{ALLOW_TYPE_ALLOW_ANY:"AllowType_Type_AllowAny",ALLOW_TYPE_NEED_CONFIRM:"AllowType_Type_NeedConfirm",ALLOW_TYPE_DENY_ANY:"AllowType_Type_DenyAny"}),{SNS_ADD_TYPE_SINGLE:"Add_Type_Single",SNS_ADD_TYPE_BOTH:"Add_Type_Both"}),{SNS_DELETE_TYPE_SINGLE:"Delete_Type_Single",SNS_DELETE_TYPE_BOTH:"Delete_Type_Both"}),{SNS_APPLICATION_TYPE_BOTH:"Pendency_Type_Both",SNS_APPLICATION_SENT_TO_ME:"Pendency_Type_ComeIn",SNS_APPLICATION_SENT_BY_ME:"Pendency_Type_SendOut",SNS_APPLICATION_AGREE:"Response_Action_Agree",SNS_APPLICATION_AGREE_AND_ADD:"Response_Action_AgreeAndAdd"}),{SNS_CHECK_TYPE_BOTH:"CheckResult_Type_Both",SNS_CHECK_TYPE_SINGLE:"CheckResult_Type_Single"}),{FORBID_TYPE_NONE:"AdminForbid_Type_None",FORBID_TYPE_SEND_OUT:"AdminForbid_Type_SendOut"}),yl={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},_a={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},Qs={JOINED:1,QUITTED:2,KICKED:3,ADMIN_SET:4,ADMIN_CANCELED:5,GROUP_PROFILE_UPDATED:6,GROUP_MEMBER_PROFILE_UPDATED:7,TOPIC_PROFILE_UPDATED:8},Rl=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},yl),{GRP_MBR_ROLE_OWNER:"Owner",GRP_MBR_ROLE_ADMIN:"Admin",GRP_MBR_ROLE_MEMBER:"Member",GRP_MBR_ROLE_CUSTOM:"Custom"}),{GRP_TIP_MBR_JOIN:1,GRP_TIP_MBR_QUIT:2,GRP_TIP_MBR_KICKED_OUT:3,GRP_TIP_MBR_SET_ADMIN:4,GRP_TIP_MBR_CANCELED_ADMIN:5,GRP_TIP_GRP_PROFILE_UPDATED:6,GRP_TIP_MBR_PROFILE_UPDATED:7,GRP_TIP_BAN_AVCHATROOM_MEMBER:10,GRP_TIP_UNBAN_AVCHATROOM_MEMBER:11}),{JOIN_OPTIONS_FREE_ACCESS:"FreeAccess",JOIN_OPTIONS_NEED_PERMISSION:"NeedPermission",JOIN_OPTIONS_DISABLE_APPLY:"DisableApply",JOIN_STATUS_SUCCESS:"JoinedSuccess",JOIN_STATUS_ALREADY_IN_GROUP:"AlreadyInGroup",JOIN_STATUS_WAIT_APPROVAL:"WaitAdminApproval"}),{INVITE_OPTIONS_DISABLE_INVITE:"DisableInvite",INVITE_OPTIONS_NEED_PERMISSION:"NeedPermission",INVITE_OPTIONS_FREE_ACCESS:"FreeAccess"}),{GRP_PROFILE_OWNER_ID:"ownerID",GRP_PROFILE_CREATE_TIME:"createTime",GRP_PROFILE_LAST_INFO_TIME:"lastInfoTime",GRP_PROFILE_MEMBER_NUM:"memberNum",GRP_PROFILE_MAX_MEMBER_NUM:"maxMemberNum",GRP_PROFILE_JOIN_OPTION:"joinOption",GRP_PROFILE_INVITE_OPTION:"inviteOption",GRP_PROFILE_INTRODUCTION:"introduction",GRP_PROFILE_NOTIFICATION:"notification",GRP_PROFILE_MUTE_ALL_MBRS:"muteAllMembers"}),{GROUP_ID_PREFIX:_a,GROUP_TIPS_OPERATION_TYPE:Qs}),YI={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},vo=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},xI),lE),yC),lI),ig),Rl),YI),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",NET_STATE_CONNECTED:"connected"}),Qa={NO_SDKAPPID:2e3,NO_TINYID:2022,NO_A2KEY:2023,USER_NOT_LOGGED_IN:2024,REPEAT_LOGIN:2025,MSG_SEND_FAIL:2100,MSG_SEND_FAIL_NOT_IN_AV:2101,MSG_SEND_GRP_WITH_TOPIC_FAIL:2115,MSG_INSTANCE_REQUIRED:2105,MSG_INVALID_CONV_TYPE:2106,MSG_REVOKE_FAIL:2110,MSG_DELETE_FAIL:2111,MSG_UNREAD_ALL_FAIL:2112,READ_RECEIPT_MSG_LIST_EMPTY:2114,CANNOT_DELETE_GRP_SYSTEM_NOTICE:2116,NOT_MY_FRIEND:2700,NETWORK_ERROR:2800,NETWORK_TIMEOUT:2801,NO_NETWORK:2805,UNCAUGHT_ERROR:2903,INVALID_OPERATION:2905,SDK_IS_NOT_READY:2999,LOGGING_IN:3e3,LOGIN_FAILED:3001,KICKED_OUT_MULT_DEVICE:3002,KICKED_OUT_MULT_ACCOUNT:3003,KICKED_OUT_USERSIG_EXPIRED:3004,LOGGED_OUT:3005,KICKED_OUT_REST_API:3006,NO_USE:3122,OPTIONS_IS_EMPTY:3153,MSG_A2KEY_EXPIRED:20002,ACCOUNT_A2KEY_EXPIRED:70001,HELLO_ANSWER_KICKED_OUT:1002,OPEN_SERVICE_OVERLOAD_ERROR:60022},BE={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3",NODE:"4"},cn={SYNC_SERVER_INFO_AFTER_RE_ONLINE:"sync-server-info-after-re-online",SYNC_SERVER_INFO_AFTER_LOGIN:"sync-server-info-after-login",RECEIVE_C2C_NEW_MESSAGE:"receive-c2c-new-message",RECEIVE_GROUP_NEW_MESSAGE:"receive-group-new-message",RECEIVE_GROUP_TIPS_NOTIFICATION:"receive-group-tips-notification"},kt={USER_STATUS_UPDATE:"user-status-update",CONVERSATION_RECOVER:"conversation-recover",HISTORY_MESSAGE_RECOVER:"history-message-recover",BLACKLIST_RECOVER:"blacklist-recover",FRIEND_RECOVER:"friend-recover",GROUP_ATTRIBUTE_CACHE_CLEAR:"group-attribute-cache-clear",UNREAD_MESSAGE_RECOVER:"unread-message-recover",HANDLE_NEW_MESSAGE:"handle-new-message",HANDLE_CONVERSATION_PROFILE_UPDATED:"handle-conversation-profile-updated",COMMERCIAL_CONFIG_UPDATE:"commercial-config-update",UNREAD_MESSAGE_SYNC:"unread-message-sync",FRIEND_AND_BLACKLIST_SYNC:"friend-and-blacklist-sync",SIGNALING_MESSAGE_RECOVER:"signaling-message-recover",GROUP_LIST_SYNC:"group-list-sync",CONVERSATION_LIST_SYNC:"conversation-list-sync",USER_PROFILE_SYNC:"user-profile-sync",CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED:"conversation-update-after-unread-sync-finished",CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED:"conversation-update-after-group-list-sync-finished",HANDLE_C2C_NEW_MESSAGE:"handle-c2c-new-message",HANDLE_GROUP_NEW_MESSAGE:"handle-group-new-message",CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE:"create-or-update-conversation-by-receive-new-message",HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD:"handle-group-tips-from-sync-unread",HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD:"handle-c2c-revoked-message-from-sync-unread",GROUP_REVOKED_NOTICE_RECOVER:"group-revoked-notice-recover",CLOUD_CONFIG_SYNC:"cloud-config-sync",UPDATE_GROUP_NEXT_SEQUENCE:"update-group-next-sequence",EMIT_C2C_MESSAGE_EVENT:"emit-c2c-message-event",EMIT_GROUP_MESSAGE_EVENT:"emit-group-message-event",CONVERSATION_GROUP_LIST_SYNC:"conversation-group-list-sync",CONVERSATION_GROUP_UPDATE:"conversation-group-update",UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED:"update-topic-after-unread-sync-finished",UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE:"update-topic-by-received-new-message",TOPIC_REQUEST_INFO_RESET:"topic-request-info-reset",QUALITY_REPORT:"quality-report",GROUP_TIPS_RECOVER:"group-tips-recover",HANDLE_GROUP_TIPS_NOTIFICATION:"handle-group-tips-notification",C2C_HISTORY_MESSAGE_RECOVER:"c2c-history-message-recover",FRIEND_APPLICATION_LIST_RECOVER:"friend-application-list-recover",EMIT_GROUP_TIPS_EVENT:"emit-group-tips-event",STREAM_MESSAGE_RECOVER:"stream-message-recover"},Gn={[cn.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:kt.USER_STATUS_UPDATE},{stepId:kt.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:kt.UNREAD_MESSAGE_SYNC,dependency:kt.C2C_HISTORY_MESSAGE_RECOVER},{stepId:kt.CONVERSATION_RECOVER},{stepId:kt.HISTORY_MESSAGE_RECOVER,dependency:kt.CONVERSATION_RECOVER},{stepId:kt.BLACKLIST_RECOVER},{stepId:kt.FRIEND_RECOVER},{stepId:kt.FRIEND_APPLICATION_LIST_RECOVER},{stepId:kt.GROUP_REVOKED_NOTICE_RECOVER,dependency:kt.HISTORY_MESSAGE_RECOVER},{stepId:kt.GROUP_TIPS_RECOVER,dependency:kt.HISTORY_MESSAGE_RECOVER},{stepId:kt.TOPIC_REQUEST_INFO_RESET},{stepId:kt.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:kt.UNREAD_MESSAGE_SYNC},{stepId:kt.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:kt.UNREAD_MESSAGE_SYNC},{stepId:kt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[kt.UNREAD_MESSAGE_SYNC,kt.CONVERSATION_RECOVER]},{stepId:kt.EMIT_C2C_MESSAGE_EVENT,dependency:[kt.UNREAD_MESSAGE_SYNC,kt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:kt.C2C_HISTORY_MESSAGE_RECOVER,dependency:kt.CONVERSATION_RECOVER},{stepId:kt.STREAM_MESSAGE_RECOVER}],[cn.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:kt.COMMERCIAL_CONFIG_UPDATE},{stepId:kt.CLOUD_CONFIG_SYNC},{stepId:kt.USER_PROFILE_SYNC},{stepId:kt.UNREAD_MESSAGE_SYNC},{stepId:kt.FRIEND_AND_BLACKLIST_SYNC},{stepId:kt.GROUP_LIST_SYNC},{stepId:kt.CONVERSATION_LIST_SYNC},{stepId:kt.SIGNALING_MESSAGE_RECOVER,dependency:kt.UNREAD_MESSAGE_SYNC},{stepId:kt.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[kt.UNREAD_MESSAGE_SYNC]},{stepId:kt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[kt.UNREAD_MESSAGE_SYNC,kt.CONVERSATION_LIST_SYNC]},{stepId:kt.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[kt.GROUP_LIST_SYNC,kt.CONVERSATION_LIST_SYNC]},{stepId:kt.CONVERSATION_GROUP_LIST_SYNC},{stepId:kt.CONVERSATION_GROUP_UPDATE,dependency:[kt.CONVERSATION_LIST_SYNC,kt.CONVERSATION_GROUP_LIST_SYNC]},{stepId:kt.QUALITY_REPORT}],[cn.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:kt.HANDLE_C2C_NEW_MESSAGE},{stepId:kt.UNREAD_MESSAGE_SYNC},{stepId:kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:kt.HANDLE_C2C_NEW_MESSAGE},{stepId:kt.EMIT_C2C_MESSAGE_EVENT,dependency:[kt.HANDLE_C2C_NEW_MESSAGE,kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:kt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[kt.UNREAD_MESSAGE_SYNC]}],[cn.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:kt.HANDLE_GROUP_NEW_MESSAGE},{stepId:kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:kt.HANDLE_GROUP_NEW_MESSAGE},{stepId:kt.UPDATE_GROUP_NEXT_SEQUENCE,dependency:kt.HANDLE_GROUP_NEW_MESSAGE},{stepId:kt.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:kt.HANDLE_GROUP_NEW_MESSAGE},{stepId:kt.EMIT_GROUP_MESSAGE_EVENT,dependency:[kt.HANDLE_GROUP_NEW_MESSAGE,kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[cn.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:kt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:kt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:kt.EMIT_GROUP_TIPS_EVENT,dependency:[kt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,kt.HANDLE_GROUP_TIPS_NOTIFICATION],skipIfDependencyMissing:!1}]},PI={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},Sc={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},tn=["login","getMyProfile","getUserProfile","updateMyProfile","setSelfStatus","getUserStatus","subscribeUserStatus","unsubscribeUserStatus","modifyMessage","deleteGroupMember","dismissGroup","getGroupMemberList","getGroupOnlineMemberCount","joinGroup","markGroupMemberList","quitGroup","searchCloudMessages","searchCloudGroups","searchCloudGroupMembers","searchCloudUsers","getMyFollowingList","getMyFollowersList","getMutualFollowersList","followUser","unfollowUser","getUserFollowInfo","checkFollowType","getFriendProfile","addFriend","deleteFriend","updateFriend","checkFriend","setFriendApplicationRead","createFriendGroup","deleteFriendGroup","addToFriendGroup","removeFromFriendGroup","renameFriendGroup","changeGroupOwner","createGroup","dismissGroup","getGroupList","getGroupOnlineMemberCount","getGroupProfile","searchGroupByID","updateGroupProfile","handleGroupApplication","deleteGroupAttributes","getGroupAttributes","initGroupAttributes","setGroupAttributes","addGroupMember","deleteGroupMember","getGroupMemberList","getGroupMemberProfile","setGroupMemberMuteTime","setGroupMemberNameCard","setGroupMemberRole","deleteMessage","revokeMessage","setMessageExtensions","getMessageExtensions","deleteMessageExtensions","getMessageList","addMessageReaction","removeMessageReaction","clearHistoryMessage","sendMessageReadReceipt","getMessageReadReceiptList","getGroupMessageReadMemberList","createMergerMessage","invite","accept","cancel","reject","modifyInvitation","deleteConversation","pinConversation","setMessageRead","setAllMessageRead","getConversationList","getTotalUnreadMessageCount","renameConversationGroup","deleteConversationGroup","markConversation","setConversationCustomData","deleteConversationsFromGroup","addConversationsToGroup","createConversationGroup"];var Ml=Object.freeze({__proto__:null,ERROR_CODE:Qa,InnerEvent:Gt,NEED_LOG_API:tn,OuterConstant:vo,OuterEvent:kr,PUSH:YI,QUALITY_METRICS:PI,SDK_EDITION:BE,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:Sc,SignalingEvent:Dl,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Gn,WORKFLOW_NAME:cn,WORKFLOW_STEP:kt}),ba,da,on;(function(C){C[C.USER_INITIATED=0]="USER_INITIATED",C[C.KICKED_OUT=1]="KICKED_OUT"})(ba||(ba={})),function(C){C[C.multipleAccount=1]="multipleAccount",C[C.multipleDevice=2]="multipleDevice",C[C.restApi=3]="restApi"}(da||(da={})),function(C){C[C.multipleDevice=3002]="multipleDevice",C[C.multipleAccount=3003]="multipleAccount",C[C.usersigExpired=70001]="usersigExpired",C[C.restApi=20002]="restApi"}(on||(on={}));const Xr={[da.multipleAccount]:"multipleAccount",[da.multipleDevice]:"multipleDevice",[da.restApi]:"REST_API_Kick",[on.multipleAccount]:"multipleAccount",[on.multipleDevice]:"multipleDevice",[on.restApi]:"REST_API_Kick",[on.usersigExpired]:"userSigExpired"},wl="login_online_presence_task",{ERROR:bs,DESTROY:vc,FORCE_OFFLINE:CI}=Gt,{KICKED_OUT_MULT_ACCOUNT:uE,KICKED_OUT_MULT_DEVICE:RC,KICKED_OUT_REST_API:Nc,ACCOUNT_A2KEY_EXPIRED:Sl,MSG_A2KEY_EXPIRED:JI}=Qa;class bg{init(){const{notificationCenter:E}=ZA;E.subscribeInnerEvent(CI,this._handleForceOfflineFromServerPush,this),E.subscribeInnerEvent(bs,JI,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),E.subscribeInnerEvent(bs,Sl,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),E.subscribeInnerEvent(bs,uE,this._handleForceOfflineFromResponse,this),E.subscribeInnerEvent(bs,RC,this._handleForceOfflineFromResponse,this),E.subscribeInnerEvent(bs,Nc,this._handleForceOfflineFromResponse,this),E.subscribeInnerEvent(vc,this._dispose,this)}_handleForceOfflineFromServerPush(E){var h;if(((h=ZA.store.get("login"))===null||h===void 0?void 0:h.isLoggedIn)===!0){const{EventArray:D=[]}=E?.body||{};this._extractKickedOutMessages(D).forEach(N=>{const{KickoutMsgNotify:{KickType:O,NewInstInfo:Y,Instid:j}}=N;this._isCurrentInstanceKickedOut(j)&&this._processKickedOutReasonInfo({kickedOutReasonCode:O,newInstanceInfo:Y})})}}_extractKickedOutMessages(E){return E.reduce((h,D)=>[...h,...D.C2cNotifyMsgArray||[]],[]).filter(h=>{var D;return this._isKickedOut((D=h?.KickoutMsgNotify)===null||D===void 0?void 0:D.KickType)})}_handleForceOfflineFromResponse(E){const{errorCode:h}=E;this._processKickedOutReasonInfo({kickedOutReasonCode:h})}_processKickedOutReasonInfo(E){return et(this,void 0,void 0,function*(){const{kickedOutReasonCode:h}=E,{ssoLog:D,utils:{safeStringify:N}}=ZA;try{this._logKickedOutEvent(E),this._shouldLogoutAfterKickedOut(h)?yield ZA.login.loginAction.logout(ba.KICKED_OUT):ZA.login.loginAction.handleLogoutCompleted()}catch(O){D.debug("_processKickedOutReasonInfo",` fail ${N(O)}`)}finally{ZA.notificationCenter.emitOuterEvent(kr.KICKED_OUT,{data:{type:Xr[h]},name:kr.KICKED_OUT})}})}_logKickedOutEvent(E){const{kickedOutReasonCode:h,newInstanceInfo:D={}}=E,N=`type:${Xr[h]} newInstanceInfo: ${JSON.stringify(D)}`;ZA.ssoLog.warn("kickedOut",N)}_isKickedOut(E){return[da.multipleAccount,da.multipleDevice,da.restApi].includes(E)}_isChatLoginEvent(E){const{requestHead:h}=E||{};return h?.idtype!==1}_shouldLogoutAfterKickedOut(E){return![on.usersigExpired,da.restApi].includes(E)}_isCurrentInstanceKickedOut(E){const{isLoggedIn:h,statusInstanceId:D}=ZA.store.get("login")||{};return h===!0&&E===D}_dispose(){const{notificationCenter:E}=ZA;E.unSubscribeInnerEvent(CI,this._handleForceOfflineFromServerPush,this),E.unSubscribeInnerEvent(bs,Sl,this._handleForceOfflineFromResponse,this),E.unSubscribeInnerEvent(bs,JI,this._handleForceOfflineFromResponse,this),E.unSubscribeInnerEvent(bs,uE,this._handleForceOfflineFromResponse,this),E.unSubscribeInnerEvent(bs,RC,this._handleForceOfflineFromResponse,this),E.unSubscribeInnerEvent(bs,Nc,this._handleForceOfflineFromResponse,this),E.unSubscribeInnerEvent(vc,this._dispose,this)}}function QE(C){return et(this,void 0,void 0,function*(){const E="im_open_status.wslogin",h=ZA.common.generateProtocolData({servcmd:E,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:C}}),D=`${h.head.seq}${E}`,N=yield ZA.channel.sendPacket(h,{timeout:9e4,requestId:D});if(N){const{HelloInterval:O,InstId:Y,TinyId:j,TimeStamp:IA,CustomStatus:BA,PurchaseBits:mA,A2Key:_A,RichMsgAuthKey:xA,ErrorCode:Qe,ErrorInfo:Re,ActionStatus:Se}=N;return{helloInterval:O,instanceID:Y,tinyID:j,timeStamp:IA,customStatus:BA,purchaseBits:mA,a2Key:_A,authKey:xA,errorCode:Qe,errorInfo:Re,actionStatus:Se}}})}function vl(){const{store:C}=ZA;return Ga(C.get("instance").sdkAppId)!==Ve.CHINA}function Tc(C){var E;try{const h=Fo.getStorage("errorMessage");if(!C||!h)return"";const D=((E=JSON.parse(h))===null||E===void 0?void 0:E.errorMessage)||{},{code:N,replacement1:O="",replacement2:Y=""}=C;if(!N)return"";const j=vl()?`${N}_en`:`${N}_cn`;let IA=D[D[j]?j:N]||"";return IA&&(O&&(IA=IA.replace("$replacement1",O)),Y&&(IA=IA.replace("$replacement2",Y))),IA}catch(h){return console.warn("Error parsing stored error messages:",h),""}}class lo extends Error{constructor(E={}){E.code=E.code||E.errorCode;let{functionName:h="Unknown",code:D,message:N="",data:O="",moreMessage:Y="",errorMessage:j=""}=E;j=(D?Tc(E):"")||j||N;let IA=D?`${h} failed. error: {"message": ${j}, "code": ${D}}`:`${h} failed. error: {"message": ${j}}`;IA=`${IA} ${Y}`,super(),this.code=D,this.errorCode=D,this.errorMessage=j,this.message=IA,this.data=O}}function ds(C,E){var h;if(C&&((h=ZA.store.get("login"))===null||h===void 0?void 0:h.isLoggedIn)!==!0)throw new lo({code:Qa.USER_NOT_LOGGED_IN,functionName:E})}function QB(C,E,h){if(Array.isArray(C))for(let D=0;D<C.length;D++)Gc.call(this,Object.assign(Object.assign({},C[D]),{value:E[D],name:h}));else for(const D in C)Gc.call(this,Object.assign(Object.assign({},C[D]),{value:E[0][D],name:h,key:D}))}function Gc({required:C,rules:E,range:h,value:D,allowEmpty:N,name:O,key:Y,customValidator:j}){if(D===void 0){if(C)throw new lo({functionName:O,message:`[${O}] Missing required params: "${Y}"`});return}let IA="";if(!E.some(BA=>{return BA===(mA=D,Object.prototype.toString.call(mA).match(/^\[object (.*)\]$/)[1].toLowerCase());var mA})){for(let mA=0;mA<E.length;mA++){let _A=E[mA];_A=_A.replace(_A[0],_A[0].toUpperCase()),IA+=`${_A}/`}IA=IA.substring(0,IA.length-1);const BA=`[${Y}] must be type of ${IA}, received type: ${function(mA){return Reflect.apply(Object.prototype.toString,mA,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}(D)}.`;throw new lo({functionName:O,message:BA})}if(N===!1){if(Array.isArray(D)&&(D.length===0||typeof D[0]=="string"&&D[0].trim()===""))throw new lo({functionName:O,message:`${Y} can not be empty.`});if(typeof D=="string"&&D.trim()==="")throw new lo({functionName:O,message:`${Y} can not be empty.`})}if(j&&typeof j=="function"){const BA=j(D);if(BA!==!0)throw new lo({functionName:O,message:`[${Y}] custom validation failed: ${BA||"Invalid value"}`})}}const kc=[],MC={},dB={};function HI(C,E){ds(MC[C],C),QB(dB[C],E,C),function(h){kc.forEach(D=>{const{interceptor:N,context:O}=D;N.apply(O,[h])})}(C)}function mn(C,E){kc.push({interceptor:C,context:E})}function Lg(C){const{params:E,auth:h}=C;E&&typeof E=="object"&&Object.assign(dB,E),h&&typeof h=="object"&&Object.assign(MC,h)}function dE(C){return ZA.store.get("commercialConfig").get(C)}class Ir{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(E,h)=>{const D=Date.now();h?(this._stepStartTimes.set(`${E}-${h}`,D),ZA.ssoLog.debug("_executeWorkflowStep",`[Workflow ${E}] Step ${h} started at ${new Date(D).toISOString()}`)):(this._workflowStartTimes.set(E,D),ZA.ssoLog.debug("_executeWorkflowStep",`[Workflow ${E}] started at ${new Date(D).toISOString()}`))},success:(E,h)=>{const D=Date.now();if(h){const N=this._stepStartTimes.get(`${E}-${h}`),O=N?D-N:0;this._stepStartTimes.delete(`${E}-${h}`),ZA.ssoLog.debug("_executeWorkflowStep",`[Workflow ${E}] Step ${h} completed successfully at ${new Date(D).toISOString()} (${O}ms)`)}else{const N=this._workflowStartTimes.get(E),O=N?D-N:0;this._workflowStartTimes.delete(E),ZA.ssoLog.debug("_executeWorkflowStep",`[Workflow ${E}] completed successfully at ${new Date(D).toISOString()} (${O}ms)`)}},error:(E,h,D)=>{const{ssoLog:N,utils:{safeStringify:O}}=ZA,Y=Date.now();if(h){const j=this._stepStartTimes.get(`${E}-${h}`),IA=j?Y-j:0;this._stepStartTimes.delete(`${E}-${h}`),N.error("_executeWorkflowStep",`[Workflow ${E}] Step ${h} failed at ${new Date(Y).toISOString()} (${IA}ms) ${O(D)}`,{error:D})}else{const j=this._workflowStartTimes.get(E),IA=j?Y-j:0;this._workflowStartTimes.delete(E),N.error("_executeWorkflowStep",`[Workflow ${E}] failed at ${new Date(Y).toISOString()} (${IA}ms) ${O(D)}`,{error:D})}}}}static getInstance(){return Ir._instance||(Ir._instance=new Ir),Ir._instance}static setInstance(E){Ir._instance=E}init(){this._initializeWorkflows()}registerWorkflowStep(E,h,D,N){if(!this._handlers.has(E))return void ZA.ssoLog.debug("registerWorkflowStep",`Workflow '${E}' not defined in core`);if(!Gn[E].find(Y=>Y.stepId===h))return void ZA.ssoLog.debug("registerWorkflowStep",`Step '${h}' not defined in workflow '${E}'`);const O=this._handlers.get(E);O.has(h)||O.set(h,N?D.bind(N):D)}executeWorkflow(E,h){return et(this,void 0,void 0,function*(){if(!this._validateWorkflow(E))return;ZA.ssoLog.debug("executeWorkflow",`[Workflow ${E}] Started execution at ${new Date().toISOString()}`);const D=Gn[E],N={},O={cancelled:!1};this._activeWorkflows.set(E,{cancelToken:O});try{const Y=new Map;D.forEach(IA=>{Y.set(IA.stepId,IA)});const j={workflowName:E,pendingSteps:new Set(D.map(IA=>IA.stepId)),completedSteps:new Set,runningSteps:new Set,stepMap:Y,stepResults:N,data:h,cancelToken:O};yield new Promise((IA,BA)=>{const mA=()=>{if(O.cancelled)return void IA();this._getExecutableSteps({pendingSteps:j.pendingSteps,completedSteps:j.completedSteps,stepMap:j.stepMap,workflowName:E}).filter(_A=>!j.runningSteps.has(_A)).forEach(_A=>{j.completedSteps.has(_A)||j.runningSteps.has(_A)||this._executeWorkflowStep(_A,j,{onComplete:()=>{if(j.pendingSteps.size===0)return void IA();this._getExecutableSteps({pendingSteps:j.pendingSteps,completedSteps:j.completedSteps,stepMap:j.stepMap,workflowName:E}).filter(xA=>!j.runningSteps.has(xA)).length===0&&j.runningSteps.size===0&&(ZA.ssoLog.debug("executeWorkflow",`Workflow ${E} completed with some steps skipped due to dependency failures`),IA())},onError:BA,onStepComplete:mA})})};mA()}),ZA.ssoLog.debug("executeWorkflow",`[Workflow ${E}] Completed execution at ${new Date().toISOString()}`)}catch(Y){ZA.ssoLog.error("executeWorkflow",`[Workflow ${E}] Failed execution at ${new Date().toISOString()}`,{error:Y})}finally{this._activeWorkflows.delete(E)}})}_executeWorkflowStep(E,h,D){return et(this,void 0,void 0,function*(){const{workflowName:N,runningSteps:O,stepMap:Y,stepResults:j,data:IA}=h;O.add(E),this._logWorkflowExecution(N,E,"start");try{const BA=Y.get(E);let mA=null;BA?.dependency&&(s(BA.dependency)?mA=j[BA.dependency]:Array.isArray(BA.dependency)&&(mA={},BA.dependency.forEach(xA=>{mA[xA]=j[xA]})));const _A=this._handlers.get(N).get(E);if(_A){const xA=yield Promise.resolve(_A({data:IA,result:mA}));j[E]=xA,this._logWorkflowExecution(N,E,"success")}h.completedSteps.add(E)}catch(BA){const mA=`[Workflow].${N}.${E}`,{errorCode:_A,errorInfo:xA=`${mA} failed`}=BA||{},Qe=new lo({functionName:mA,code:_A,message:xA});ZA.ssoLog.error(mA,xA,{error:Qe}),this._logWorkflowExecution(N,E,"error",BA),D.onError(BA)}finally{O.delete(E),h.pendingSteps.delete(E),D.onStepComplete(),D.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Gn).forEach(E=>{this._handlers.has(E)||this._handlers.set(E,new Map)})}_cancelWorkFlow(E){const h=this._activeWorkflows.get(E);if(!h)return;const{cancelToken:D}=h;D.cancelled=!0,this._activeWorkflows.delete(E)}_cancelAllWorkflows(){Object.keys(Gn).forEach(E=>{this._cancelWorkFlow(E)})}_validateWorkflow(E){return Gn[E]?!!this._handlers.get(E):!1}_getExecutableSteps(E){const{pendingSteps:h,completedSteps:D,stepMap:N,workflowName:O}=E;return Array.from(h).filter(Y=>{const j=N.get(Y)||{},{dependency:IA,skipIfDependencyMissing:BA=!0}=j;if(!IA)return!0;if(s(IA))return this._isStepRegistered({workflowName:O,stepId:IA})?D.has(IA):!BA;if(B(IA)){if(IA.filter(mA=>!this._isStepRegistered({workflowName:O,stepId:mA})).length>0&&BA)return!1;for(const mA of IA)if(!D.has(mA))return!1;return!0}return!1})}_isStepRegistered(E){var h;const{workflowName:D,stepId:N}=E;return(h=this._handlers.get(D))===null||h===void 0?void 0:h.has(N)}_logWorkflowExecution(E,h,D,N){this._logHandlers[D](E,h)}}const og=new Map,Ka=({type:C,groupID:E})=>C===vo.GRP_COMMUNITY||`${E}`.startsWith(_a.COMMUNITY)&&!`${E}`.includes(_a.TOPIC),ca=(C="")=>{const E=C.startsWith("GROUP")?C.replace("GROUP",""):C;return E.startsWith(_a.COMMUNITY)&&`${E}`.includes(_a.TOPIC)},hE="openim",wC="million_group_open_http_svc";function Ls(C){return et(this,void 0,void 0,function*(){const{servcmd:E,data:h}=function(O){const{data:Y}=O;return _c(Y)||SC(Y)}(C)?function(O){let{servcmd:Y,data:j}=O;return SC(j)?function(IA){const{servcmd:BA,data:mA}=IA;let{GroupId:_A=""}=mA;const xA=_A;return[_A]=xA.split(_a.TOPIC),{servcmd:rg(BA),data:Object.assign(Object.assign({},mA),{GroupId:_A,TopicId:xA})}}(O):(_c(j)&&(Y=rg(Y)),{servcmd:Y,data:j})}(C):C,D=ZA.common.generateProtocolData({servcmd:E,data:h}),N=`${D.head.seq}${E}`;return ZA.channel.sendPacket(D,{requestId:N,timeout:C.timeout})})}function _c(C){const{Type:E,GroupId:h,GroupIdList:D=[]}=C,N=h||D[0]||"";return Ka({type:E,groupID:N})}function SC(C){const{GroupId:E=""}=C;return ca(E)}function rg(C){if(C.includes(hE))return C;const E=C.split(".")[1];return`${wC}.${E}`}function Wr(){var C;return(C=ZA.store.get("login"))===null||C===void 0?void 0:C.userId}const ng=C=>B(C)||Q(C),hs=(C,E,h,D)=>{if(!ng(C)||!ng(E))return 0;let N=0;const O=Object.keys(E);let Y;for(let j=0,IA=O.length;j<IA;j++)if(Y=O[j],!(r(E[Y])||h&&h.includes(Y)))if(ng(C[Y])&&ng(E[Y]))N+=hs(C[Y],E[Y],h,D);else{if(D&&D.includes(E[Y]))continue;C[Y]!==E[Y]&&(C[Y]=E[Y],N+=1)}return N},hB={zh:{MSG_IMAGE:"[图片]",MSG_LOCATION:"[位置]",MSG_AUDIO:"[语音]",MSG_VIDEO:"[视频]",MSG_FILE:"[文件]",MSG_CUSTOM:"[自定义消息]",MSG_GRP_TIP:"[群提示消息]",MSG_GRP_SYS_NOTICE:"[群系统通知]",MSG_FACE:"[动画表情]",MSG_MERGER:"[聊天记录]",MSG_STREAM:"[流式消息]",CREATE_GROUP:"创建群组",CREATE_COMMUNITY:"创建社群"},en:{MSG_IMAGE:"[Image]",MSG_LOCATION:"[Location]",MSG_AUDIO:"[Voice]",MSG_VIDEO:"[Video]",MSG_FILE:"[File]",MSG_CUSTOM:"[Custom Messages]",MSG_GRP_TIP:"[Group Notification]",MSG_GRP_SYS_NOTICE:"[Group System Message]",MSG_FACE:"[Animated Sticker]",MSG_MERGER:"[Chat Record]",MSG_STREAM:"[Stream Message]",CREATE_GROUP:"Create Group",CREATE_COMMUNITY:"Create Community"}};function pB(C){var E;const h=vl()?"en":"zh";return((E=hB[h])===null||E===void 0?void 0:E[C])||C}const Nl={[vo.MSG_IMAGE]:"MSG_IMAGE",[vo.MSG_LOCATION]:"MSG_LOCATION",[vo.MSG_AUDIO]:"MSG_AUDIO",[vo.MSG_VIDEO]:"MSG_VIDEO",[vo.MSG_FILE]:"MSG_FILE",[vo.MSG_CUSTOM]:"MSG_CUSTOM",[vo.MSG_GRP_TIP]:"MSG_GRP_TIP",[vo.MSG_GRP_SYS_NOTICE]:"MSG_GRP_SYS_NOTICE",[vo.MSG_FACE]:"MSG_FACE",[vo.MSG_MERGER]:"MSG_MERGER",[vo.MSG_STREAM]:"MSG_STREAM"},bc=(C,E)=>{if(r(E))return"";if(C===vo.MSG_TEXT)return E.text||"";const h=Nl[C];return h?pB(h):""},VI=[{cmd:"ws_get_user_status",interval:5,count:20},{cmd:"ws_status_subscribe",interval:5,count:20},{cmd:"ws_status_unsubscribe",interval:5,count:20},{cmd:"get_group_self_member_info",interval:5,count:20},{cmd:"modify_group_base_info",interval:1,count:8},{cmd:"get_pendency",interval:1,count:15},{cmd:"set_group_attr",interval:5,count:10},{cmd:"modify_group_attr",interval:5,count:10},{cmd:"delete_group_attr",interval:5,count:10},{cmd:"clear_group_attr",interval:5,count:10},{cmd:"get_group_attr",interval:5,count:20},{cmd:"update_group_counter",interval:5,count:20},{cmd:"get_group_counter",interval:5,count:20},{cmd:"get_topic",interval:1,count:10},{cmd:"read_all_unread_msg",interval:1,count:1},{cmd:"query",interval:5,count:20}],BI="im_sdk_config_mgr.fetch_config",pE="im_sdk_config_mgr.push_configv2",Lc="cloud-config",uI=2996,Fg=new class{init(C){this.core=C}};function ja(C){return et(this,void 0,void 0,function*(){const{sdkAppId:E}=Fg.core.store.get("instance")||{},h=Fg.core.helper.generateProtocolData({servcmd:BI,data:{uint32_sdkappid:E,uint64_version:C}}),D=`${h.head.seq}${BI}`;return Fg.core.channel.sendPacket(h,{requestId:D})})}var Fs=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(C){this._core=C;const{notificationCenter:E,InnerEvent:h,helper:D,constants:{WORKFLOW_NAME:N,WORKFLOW_STEP:O},channel:Y}=C;E.subscribeInnerEvent(pE,this._handlePushedConfig,this),D.registerWorkflowStep(N.SYNC_SERVER_INFO_AFTER_LOGIN,O.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),E.subscribeInnerEvent(h.LOGOUT,this._reset,this),E.subscribeInnerEvent(h.DESTROY,this._dispose,this),D.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(VI),Y.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(C){return et(this,void 0,void 0,function*(){var E;const h={code:0,data:""};return C&&(h.data=((E=this._core.store.get("cloudConfig"))===null||E===void 0?void 0:E[C])||""),h})}checkMethodCallOverLimit(C){if(!this._cmdFrequencyLimitMap.has(C))return;if(!this._methodCallFrequencyMap.has(C))return void this._methodCallFrequencyMap.set(C,{startTime:Date.now(),methodCallCounter:1});const{count:E,interval:h}=this._cmdFrequencyLimitMap.get(C);let{startTime:D,methodCallCounter:N}=this._methodCallFrequencyMap.get(C);if(Date.now()-D>1e3*h)this._methodCallFrequencyMap.set(C,{startTime:Date.now(),methodCallCounter:1});else if(N+=1,this._methodCallFrequencyMap.set(C,{startTime:D,methodCallCounter:N}),N>E)throw new this._core.helper.ChatError({code:uI,replacement1:C})}_handlePushedConfig(C){return et(this,void 0,void 0,function*(){const{ssoLog:E,utils:{safeStringify:h}}=this._core;E.info("_handlePushedConfig",h(C)),yield this._updateCloudConfig(C)})}_handleLoginSuccess(){return et(this,void 0,void 0,function*(){const{ssoLog:C,utils:{safeStringify:E}}=this._core;try{if(this._canFetch()){const h=yield ja(this._version);C.info("_fetchCloudConfigIfLogin",E(h)),yield this._updateCloudConfig(h)}this._core.helper.taskScheduler.addTask({id:Lc,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(h){C.debug("_fetchCloudConfigIfLogin",E(h))}})}_fetchCloudConfigIfReady(){return et(this,void 0,void 0,function*(){const{ssoLog:C,utils:{safeStringify:E}}=this._core;if(this._canFetch())try{const h=yield ja(this._version);C.info("_fetchCloudConfigIfReady",E(h)),yield this._updateCloudConfig(h)}catch(h){C.error("_fetchCloudConfigIfReady",E(h))}})}_updateCloudConfig(C){return et(this,void 0,void 0,function*(){const E=this._parseCloudConfig(C);E&&(this._core.store.set("cloudConfig",E),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,E),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config:E}}))})}_canFetch(){const{isLoggedIn:C}=this._core.store.get("login")||{};return C&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(C){const{int32_error_code:E,str_error_message:h,str_json_config:D,uint32_expired_time:N,uint32_sdkappid:O,uint64_version:Y}=C;let j=null;if(E===0){if(this._version!==Y)try{j=JSON.parse(D),this._version=Y}catch{}this._expirationTime=Date.now()+1e3*N}else this._expirationTime=E===void 0?Date.now()+36e5:Date.now()+12e4;return j}_parseCmdFreqLimit(){return et(this,void 0,void 0,function*(){var C;let E=(C=yield this.getServerConfig("cmd_frequency_limit"))===null||C===void 0?void 0:C.data;const{isEmpty:h}=this._core.utils;if(!h(E))try{E=JSON.parse(E),this._updateCmdFreqLimitMap(E)}catch(D){console.warn(D)}})}_updateCmdFreqLimitMap(C){C.forEach(E=>{this._cmdFrequencyLimitMap.set(E.cmd,{interval:E.interval,count:E.count})})}_reset(){this._core.helper.taskScheduler.removeTask(Lc),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(VI),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:C,InnerEvent:E}=this._core;C.unSubscribeInnerEvent(pE,this._handlePushedConfig,this),C.unSubscribeInnerEvent(E.LOGOUT,this._reset,this),C.unSubscribeInnerEvent(E.DESTROY,this._dispose,this),this._reset()}};class No{constructor(E=0,h=0){this.high=E,this.low=h}equal(E){return E!==null&&this.low===E.low&&this.high===E.high}toString(){const E=Number(this.high).toString(16);let h=Number(this.low).toString(16);if(h.length<8){let D=8-h.length;for(;D;)h=`0${h}`,D--}return E+h}}const Fc={SEARCH_GRP_SNS:new No(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new No(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new No(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new No(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new No(0,Math.pow(2,6)).toString(),USER_STATUS:new No(0,Math.pow(2,7)).toString(),CONV_MARK:new No(0,Math.pow(2,9)).toString(),CONV_GROUP:new No(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new No(0,Math.pow(2,11)).toString(),MSG_EXT:new No(0,Math.pow(2,13)).toString(),GRP_COUNTER:new No(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new No(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new No(Math.pow(2,7)).toString(),PLUGIN_CS:new No(Math.pow(2,8)).toString(),PLUGIN_PUSH:new No(Math.pow(2,9)).toString(),PLUGIN_BOT:new No(Math.pow(2,10)).toString(),MSG_REACTION:new No(Math.pow(2,16)).toString(),FOLLOW:new No(Math.pow(2,20)).toString()},Ug="CommercialConfig",vC="commercial-config";var fE=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}install(C){this._core=C;const{helper:E,notificationCenter:h,constants:{WORKFLOW_NAME:D,WORKFLOW_STEP:N,InnerEvent:O}}=C;h.subscribeInnerEvent(O.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),h.subscribeInnerEvent(O.LOGOUT,this._handleLogout,this),h.subscribeInnerEvent(O.DESTROY,this._dispose,this),E.registerWorkflowStep(D.SYNC_SERVER_INFO_AFTER_LOGIN,N.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),C.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this),C.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(C){return et(this,void 0,void 0,function*(){const E=parseInt(C,10).toString(2),{length:h}=E;let D,N=!0;for(let O=h-1,Y=0;O>=0;O--,Y++)if(E.charAt(O)==="1"&&(D=Y<32?new No(0,2**Y).toString():new No(2**(Y-32),0).toString(),!this._featureMap.get(D))){N=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${Ug}.isFeatureEnabled decimalNumber:${C} key:${D} ret:${N}`),{code:0,data:{enabled:N}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return et(this,void 0,void 0,function*(){var C;const{ssoLog:E,utils:{safeStringify:h},common:{buildAndSendPacket:D}}=this._core;try{this._isFetching=!0;const N=yield D({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:(C=this._core.store.get("instance"))===null||C===void 0?void 0:C.sdkAppId}});N&&(this._parseCommercialConfig(N),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(N){E.error("_fetchAndParseCommercialConfig",h(N))}finally{this._isFetching=!1}})}_syncCommercialConfig(C){return et(this,void 0,void 0,function*(){const{purchaseBits:E}=C?.data||{};E&&(this._parsePurchaseBits(E),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:vC,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})})}_canFetch(){var C;const E=(C=this._core.store.get("login"))===null||C===void 0?void 0:C.isLoggedIn,h=Date.now()>=this._expirationTime;return E&&!this._isFetching&&h}_handlePushedConfig(C){C?.body&&(this._parseCommercialConfig(C.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return et(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(C){const{ssoLog:E}=this._core;if(typeof C!="object")return;const{int32_error_code:h,str_error_message:D,str_purchase_bits:N,uint32_expired_time:O}=C;h===0?(this._parsePurchaseBits(N),this._expirationTime=Date.now()+1e3*O):h===void 0?(E.warn("_parseCommercialConfig",`${Ug}._parseCommercialConfig failed. Invalid message format:`,C),this._expirationTime=Date.now()+36e5):(E.warn("_parseCommercialConfig",`${Ug}._parseCommercialConfig errorCode:${h} errorMessage:${D}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(C){return C&&typeof C=="string"&&C.length>=1&&C.length<=64&&/[01]{1,64}/.test(C)}_parsePurchaseBits(C){const{ssoLog:E,utils:{safeStringify:h}}=this._core;if(this._isValidPurchaseBits(C)){this._purchaseBits=C,this._featureMap.clear(),this._methodKeyMap.clear();let D=null;for(let N=C.length-1,O=0;N>=0;N--,O++)if(D=O<32?new No(0,2**O).toString():new No(2**(O-32),0).toString(),C[N]==="1"){this._featureMap.set(D,!0);const Y=this._getKeyByValue(Fc,D);Y&&this._methodKeyMap.set(Y,!0)}else{this._featureMap.set(D,!1);const Y=this._getKeyByValue(Fc,D);Y&&this._methodKeyMap.set(Y,!1)}}else E.warn("_parsePurchaseBits",`${Ug}.parsePurchaseBits invalid purchases:${h(C)}`)}_getKeyByValue(C,E){const h=Object.entries(C).find(([D,N])=>N===E);return h?h[0]:void 0}_handleLogout(){this._reset()}_dispose(){this._reset(),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._core.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._core.helper.taskScheduler.removeTask(vC),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}},Tl=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(C){this._core=C;const{notificationCenter:E,InnerEvent:h,channel:D}=this._core;E.subscribeInnerEvent(h.OVERLOAD_PUSH,this._handleOverLoadPush,this),E.subscribeInnerEvent(h.LOGOUT,this._reset,this),E.subscribeInnerEvent(h.DESTROY,this._dispose,this),D.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(C){if(!this._serverOverloadInfoMap.has(C))return;const{overloadStartTimestamp:E,delaySeconds:h}=this._serverOverloadInfoMap.get(C);if(Date.now()-E<=1e3*h)throw new this._core.helper.ChatError({functionName:C,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(C)}_handleOverLoadPush(C){const{OverLoadServCmd:E,DelaySecs:h}=C;this._serverOverloadInfoMap.set(E,{overloadStartTimestamp:Date.now(),delaySeconds:h})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:C,InnerEvent:E}=this._core;C.unSubscribeInnerEvent(E.OVERLOAD_PUSH,this._handleOverLoadPush,this),C.unSubscribeInnerEvent(E.LOGOUT,this._reset,this),C.unSubscribeInnerEvent(E.DESTROY,this._dispose,this)}},Ou=new class{constructor(){this.name="ConfigCenter"}install(C){Fg.init(C),Fs.install(C),fE.install(C),Tl.install(C)}},fB=new class{constructor(){this.name="ErrorMessage",this._core=null}install(C){return et(this,void 0,void 0,function*(){if(this._core=C,this._canFetch()){const E=yield this._fetchErrorMessage();if(!E)return;const h=this._parseResponse(E);this._saveErrorMessage(h)}})}_canFetch(){const C=this._core.store.getStorage("errorMessage");return!C||this._isExpired(C)}_saveErrorMessage(C){this._core.store.setStorage("errorMessage",{errorMessage:C,errorMessageSavedTime:new Date().getTime()})}_fetchErrorMessage(){return et(this,void 0,void 0,function*(){try{return yield this._core.helper.httpRequest({method:"GET",url:"https://web.sdk.qcloud.com/im/download/error-message/v3/0.0.6/tim-error-message.txt"})}catch(C){console.error(C)}})}_isExpired(C){if(!C)return!0;const{errorMessageSavedTime:E}=C;return E&&new Date().getTime()-E>=6048e5}_parseResponse(C){if(typeof C=="string"){const E=C.split(`;
`),h={},D=new RegExp(/'/g);for(let N=0;N<E.length;N++){const O=E[N].indexOf(":"),Y=E[N].slice(0,O);let j=E[N].slice(O+1);if(!Y.startsWith("//")){if(j==="")continue;j=j.replace(D,""),h[Y]=j}}return h}}};function xu(C,E){return et(this,void 0,void 0,function*(){const{cookie:h,syncFlag:D,syncTriggerEvent:N}=C,O="openim.getmsg",Y=E.helper.generateProtocolData({servcmd:O,data:{Cookie:h,SyncFlag:D,IsOnlineSync:N,NeedAbstract:1,NeedSignaling:1,NeedCachedMsg:1}}),j=`${Y.head.seq}${O}`;try{const IA=yield E.channel.sendPacket(Y,{requestId:j});if(!IA)return null;const{C2CPairUnreadCount:BA,C2CRemainingUnreadCount:mA,EventArray:_A}=IA,{unreadMessageList:xA,revokedMessageList:Qe}=function(Re,Se){const At=[],at=[];return Re?.forEach(jt=>{var Bi,ri,St;const eo=function(to,Yt){const{From_Account:si,From_AccountHeadurl:zo,From_AccountNick:te,IsNeedReadReceipt:je,MsgBody:dA,MsgClientTime:ut,MsgRandom:Cr,MsgSeq:lt,MsgTimeStamp:Co,SendMsgControl:Jt,SupportMessageExtension:mo,To_Account:Fe,TinyId:Oe,MsgCheckResult:xs,CloudCustomData:Zo,IsPeerRead:ti,MsgFlagBits:_n,MsgVersion:Eg,EventArray:Bo}=to;return{from:si,avatar:zo,nick:te,needReadReceipt:je===1,readReceiptSentByPeer:ti,clientTime:ut,messageFlagBits:_n,random:Cr,sequence:lt,time:Co,messageControlInfo:Jt,isSupportExtension:mo,to:Fe,tinyID:Oe,checkResult:xs,cloudCustomData:Zo,messageVersion:Eg,eventArray:Bo,elements:Yt.message.messageHelper.parseServerPushMessageElement(dA)}}(jt,Se);if(!((St=(ri=(Bi=jt?.EventArray)===null||Bi===void 0?void 0:Bi[0])===null||ri===void 0?void 0:ri.hasOwnProperty)===null||St===void 0)&&St.call(ri,"C2cNotifyMsgArray"))at.push(...function(to){var Yt;const si=[];return(Yt=to.EventArray)===null||Yt===void 0||Yt.forEach(zo=>{var te,je;const{C2cNotifyMsgArray:dA}=zo,ut=(je=(te=dA?.[0])===null||te===void 0?void 0:te.WithdrawC2cMsgNotify)===null||je===void 0?void 0:je.C2cWithdrawInfoArray;Array.isArray(ut)&&si.push(...ut)}),si}(jt));else{const to=Se.message.messageFactory.createMessage(Object.assign(Object.assign({},eo),{conversationType:"C2C",flow:"in"})),{elements:Yt}=eo;to.setElement(Yt),At.push(to)}}),{unreadMessageList:At,revokedMessageList:at}}(IA.MsgList,E);return{syncFlag:IA?.SyncFlag,unreadMessageList:xA,revokedMessageList:Qe,unreadCountList:BA,overflowUnreadCountList:mA,cookie:IA?.Cookie,groupTipList:_A}}catch(IA){console.warn(IA)}})}var Og,QI;(function(C){C[C.START_SYNC=0]="START_SYNC",C[C.SYNCING=1]="SYNCING",C[C.SYNC_COMPLETE=2]="SYNC_COMPLETE"})(Og||(Og={})),function(C){C[C.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",C[C.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(QI||(QI={}));var pi=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}install(C){this._core=C;const{constants:E}=C;C.helper.registerWorkflowStep(E.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,E.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),C.helper.registerWorkflowStep(E.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,E.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),C.helper.registerWorkflowStep(E.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,E.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.SOCKET_DISCONNECTED,this._handleDisconnect,this),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.LOGOUT,this._reset,this),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(C){return et(this,void 0,void 0,function*(){const{isAfterReOnline:E=!1,isAfterNewMessageReceived:h=!1,isAfterLogin:D=!1}=C||{};let N=Og.START_SYNC;const O=[],Y=[],j=[],IA=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:N});){const BA=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:N,syncTriggerEvent:h?QI.NEW_MESSAGE_RECEIVED:QI.LOGIN_SUCCESS});if(!BA)break;const{unreadMessageList:mA=[],revokedMessageList:_A=[],overflowUnreadCountList:xA,unreadCountList:Qe,groupTipList:Re}=BA;if(this._cookie=BA?.cookie||"",N=BA?.syncFlag,this._parseAndSaveUnreadMessageList(mA),j.push(..._A),this._updateConversationUnreadOptions({unreadCountList:Qe,overflowUnreadCountList:xA,conversationUpdateFieldList:O}),Array.isArray(Re)&&Y.push(...Re),E){const{messages:Se}=this._handleNewMessageList(mA);IA.push(...Se)}}return E?{conversationUpdateFieldList:O,revokedMessageList:j,unreadMessageMap:this._unreadDBMessageMap,groupTipList:Y,messages:IA,isUnreadC2CMessage:!0}:{conversationUpdateFieldList:O,isInstantMessage:!D,isUnreadC2CMessage:!0,revokedMessageList:j,unreadMessageMap:this._unreadDBMessageMap,groupTipList:Y}})}_syncUnreadDBMessageAfterLogin(){return et(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(C){return et(this,void 0,void 0,function*(){if(C.data.Flag===1)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})})}_updateConversationUnreadOptions(C){const{unreadCountList:E,overflowUnreadCountList:h,conversationUpdateFieldList:D}=C,{constants:{OuterConstant:{CONV_C2C:N,CONV_SYSTEM:O}}}=this._core;E?.forEach(Y=>{const{From_Account:j,UnreadCount:IA}=Y;if(j!==O){const BA=D.find(({conversationID:mA})=>mA===`${N}${j}`);BA?BA.unreadCount=IA:D.push({conversationID:`${N}${j}`,unreadCount:IA,type:N})}}),h?.forEach(Y=>{const{From_Account:j,LastMsgTime:IA}=Y;j!==O&&(D.find(({conversationID:BA})=>BA===`${N}${j}`)||D.push({conversationID:`${N}${j}`,type:N,lastMsgTime:IA}))})}_syncUnreadDBMessageAfterReOnline(){return et(this,void 0,void 0,function*(){return this._syncUnreadMessage({isAfterReOnline:!0})})}_updateMessageProfile(C){var E;const{messageDataHandler:h}=this._core.message||{},D=(E=this._core.store.get("login"))===null||E===void 0?void 0:E.userId,{from:N,nick:O,avatar:Y,conversationID:j=""}=C;if(N!==D){const IA=h.getLatestMsgSentByPeer(j);if(IA){const{nick:BA,avatar:mA}=IA;O&&Y?O===BA&&Y===mA||h.updateNickAndAvatarOfSentMessage({conversationID:j,latestNick:O,latestAvatar:Y,isSentByMe:!1}):(C.nick=BA,C.avatar=mA)}}else{const IA=h.getLatestMsgSentByMe(j);!IA||O===IA.nick&&Y===IA.avatar||h.updateNickAndAvatarOfSentMessage({conversationID:j,latestNick:O,latestAvatar:Y,isSentByMe:!0})}}_handleNewMessageList(C){const{messageDataHandler:E}=this._core.message||{},h=new Map,D=[];return C.forEach(N=>{this._updateMessageProfile(N);let O=N.isModified===1;if(E.isMessageSentByCurrentInstance(N)?N.isModified=O:O=!1,N.isOnlineMessage())N._onlineOnlyFlag=!0,E.isMessageSentByCurrentInstance(N)||D.push(N);else if(this._shouldStoreUnreadMessage(N)){if(E.storeConversationMessage(N)){const{conversationID:Y,conversationType:j,conversationSubType:IA,flow:BA,_isExcludedFromUnreadCount:mA,_isExcludedFromLastMessage:_A}=N,xA=_A?"":N;h.has(Y)?(h.get(Y).lastMessage=xA,BA==="in"&&(mA||h.get(Y).unreadCount++)):h.set(Y,{conversationID:Y,type:j,subType:IA,unreadCount:mA||BA!=="in"?0:1,lastMessage:xA})}E.isMessageSentByCurrentInstance(N)&&!O||D.push(N)}}),{messages:D,conversationOptions:h}}_shouldStoreUnreadMessage(C){var E;const{conversationID:h}=C,{message:D,appStore:N,utils:{isEmpty:O}}=this._core||{},Y=Array.from(((E=N.conversationStore.getConversationMap())===null||E===void 0?void 0:E.keys())||[]),j=this._getLocalLastMessageTime(h);return!D.messageDataHandler.isInMessageList(C)&&Y.includes(h)&&this._localConversationIDListBeforeDisconnect.includes(h)&&!O(j)}_fetchUnreadDBMessage(C){return et(this,void 0,void 0,function*(){const{ssoLog:E,utils:{safeStringify:h}}=this._core;try{E.debug("_fetchUnreadDBMessage",`unread-message-synchronizer._fetchUnreadDBMessage options:${h(C)}`);const N=yield xu(C,this._core);if(!N)return null;const{syncFlag:O,unreadMessageList:Y,revokedMessageList:j,cookie:IA,unreadCountList:BA,overflowUnreadCountList:mA,groupTipList:_A}=N;return this._parseAndSaveUnreadMessageList(Y),{syncFlag:O,cookie:IA,unreadMessageList:Y,revokedMessageList:j,unreadCountList:BA,overflowUnreadCountList:mA,groupTipList:_A}}catch(D){console.log(D)}})}_canContinueSync({cookie:C,syncFlag:E}){var h;return E===Og.START_SYNC||E===Og.SYNCING&&!(!((h=this._core)===null||h===void 0)&&h.helper.isEmpty(C))}_parseAndSaveUnreadMessageList(C){C.forEach(E=>{const{ID:h}=E;this._unreadDBMessageMap.set(h,E)})}_handleDisconnect(){var C;const{appStore:E}=this._core;this._localConversationIDListBeforeDisconnect=Array.from(((C=E.conversationStore.getConversationMap())===null||C===void 0?void 0:C.keys())||[])}_getLocalLastMessageTime(C){const{message:E}=this._core,h=E.messageDataHandler.getLocalMessageList(C),D=h[h.length-1];return D?.time}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var C,E;(C=this._core)===null||C===void 0||C.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(E=this._core)===null||E===void 0||E.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}},mB=new class{init(C){var E;this._core=C,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this._dispose,this),document?.addEventListener("visibilitychange",this._visibilityChangeHandler),(E=this._core)===null||E===void 0||E.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var C,E;const h=document?.visibilityState==="visible";(C=this._core)===null||C===void 0||C.store.set("activityMonitor",{isActive:h}),(E=this._core)===null||E===void 0||E.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:h})}_reset(){var C;(C=this._core)===null||C===void 0||C.store.clear("activityMonitor")}_dispose(){document?.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:C,InnerEvent:E}=this._core;C.unSubscribeInnerEvent(E.DESTROY,this._dispose,this),this._reset()}},Gl=new class{init(C){var E;this._core=C,this._bindAppActivityEvent(),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this._dispose,this),(E=this._core)===null||E===void 0||E.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var C,E,h,D,N;const{MINI_APP_NAMESPACE:O,IN_TT_MINI_GAME:Y,IN_WX_MINI_GAME:j}=((C=this._core)===null||C===void 0?void 0:C.utils)||{};Y||j?((E=O?.onShow)===null||E===void 0||E.call(O,()=>{var IA,BA;(IA=this._core)===null||IA===void 0||IA.store.set("activityMonitor",{isActive:!0}),(BA=this._core)===null||BA===void 0||BA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(h=O?.onHide)===null||h===void 0||h.call(O,()=>{var IA,BA;(IA=this._core)===null||IA===void 0||IA.store.set("activityMonitor",{isActive:!1}),(BA=this._core)===null||BA===void 0||BA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})})):((D=O?.onAppShow)===null||D===void 0||D.call(O,()=>{var IA,BA;(IA=this._core)===null||IA===void 0||IA.store.set("activityMonitor",{isActive:!0}),(BA=this._core)===null||BA===void 0||BA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(N=O?.onAppHide)===null||N===void 0||N.call(O,()=>{var IA,BA;(IA=this._core)===null||IA===void 0||IA.store.set("activityMonitor",{isActive:!1}),(BA=this._core)===null||BA===void 0||BA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var C;(C=this._core)===null||C===void 0||C.store.clear("activityMonitor")}_dispose(){const{notificationCenter:C,InnerEvent:E}=this._core;C.unSubscribeInnerEvent(E.DESTROY,this._dispose,this),this._reset()}},kl=new class{init(C){const{IN_MINI_APP:E,IN_WX_MINI_PLUGIN:h}=C.helper;h||(E?Gl.init(C):mB.init(C))}};const NC="none",_l="online";var xg=new class{init(C){this._core=C,this._activateNetworkMonitoring(),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return et(this,void 0,void 0,function*(){navigator.onLine?this._onOnline():this._onOffline(),this._onOnlineCallback=this._onOnline.bind(this),this._onOfflineCallback=this._onOffline.bind(this),window.addEventListener("online",this._onOnlineCallback),window.addEventListener("offline",this._onOfflineCallback)})}_deactivateNetworkMonitoring(){this._onOnlineCallback!==null&&(window.removeEventListener("online",this._onOnlineCallback),this._onOnlineCallback=null),this._onOfflineCallback!==null&&(window.removeEventListener("offline",this._onOfflineCallback),this._onOfflineCallback=null)}_onNetworkStatusChange(C){var E,h;const{isConnected:D,networkType:N}=C;(E=this._core)===null||E===void 0||E.store.set("netWorkMonitor",{isNetworkOnline:D,networkType:N}),(h=this._core)===null||h===void 0||h.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:D,networkType:N})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:_l})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:NC})}_reset(){var C;this._deactivateNetworkMonitoring(),(C=this._core)===null||C===void 0||C.store.clear("netWorkMonitor")}_dispose(){var C,E;(C=this._core)===null||C===void 0||C.notificationCenter.unSubscribeInnerEvent((E=this._core)===null||E===void 0?void 0:E.InnerEvent.DESTROY,this._dispose,this),this._reset()}},qI=new class{init(C){this._core=C,this._activateNetworkMonitoring(),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return et(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:C}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),C.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(C){console.error(C)}})}_deactivateNetworkMonitoring(){if(this._mpNetworkStatusCallback!==null){const{utils:{MINI_APP_NAMESPACE:C}}=this._core;C.offNetworkStatusChange&&C.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null}}_onNetworkStatusChange(C){var E,h;const{isConnected:D,networkType:N}=C;(E=this._core)===null||E===void 0||E.store.set("netWorkMonitor",{isNetworkOnline:D,networkType:N}),(h=this._core)===null||h===void 0||h.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:D,networkType:N})}_reset(){var C;this._deactivateNetworkMonitoring(),(C=this._core)===null||C===void 0||C.store.clear("netWorkMonitor")}_dispose(){var C,E;(C=this._core)===null||C===void 0||C.notificationCenter.unSubscribeInnerEvent((E=this._core)===null||E===void 0?void 0:E.InnerEvent.DESTROY,this._dispose,this),this._reset()}},mE=new class{init(C){const{IN_MINI_APP:E}=C.utils;E?qI.init(C):xg.init(C)}},DE=new class{constructor(){this.name="SystemStateMonitor"}install(C){kl.init(C),mE.init(C)}};const DB=new Set(["tui_room_svr.*","callkit_records_svr.*","room_engine_srv.*","room_engine_http_srv.*","room_engine_mic.*","live_engine_srv.*","live_engine_http_srv.*","live_engine_pk.*","trtc_ai_service.*","call_engine_srv.*"]),Rn="tui_room_svr.*";var ps=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=DB}install(C){this._core=C;const{notificationCenter:E,InnerEvent:h,helper:D}=C;E.subscribeInnerEvent(h.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),E.subscribeInnerEvent(h.LOGOUT,this._reset,this),E.subscribeInnerEvent(h.DESTROY,this._dispose,this),E.subscribeInnerEvent("im_open_push.msg_push",E.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),D.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),D.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(C){return et(this,void 0,void 0,function*(){const E="transferBusinessCommand";try{const{serviceCommand:h=Rn}=C||{};if(!this._isValidTransferredCommand(h))throw new this._core.helper.ChatError({code:2995,functionName:E});return{code:0,data:(yield function(N,O){return et(this,void 0,void 0,function*(){const{helper:Y,channel:j}=O,{serviceCommand:IA=Rn,data:BA}=N||{};let mA={};try{mA=typeof BA=="string"?JSON.parse(BA):BA}catch(Qe){console.warn(Qe)}const _A=Y.generateProtocolData({servcmd:IA,data:mA}),xA=`${_A.head.seq}${IA}`;return j.sendPacket(_A,{requestId:xA,shouldRejectOnError:!1})})}(C,this._core))||{}}}catch(h){throw console.warn(h),new this._core.helper.ChatError({code:h?.errorCode,message:h?.errorInfo,data:{},functionName:E})}})}_onCloudConfigUpdate(C={}){try{if(typeof C.rtc_cmd!="string")return;const E=JSON.parse(C.rtc_cmd);Array.isArray(E)&&(this._transferredCommands=new Set([...this._transferredCommands,...E]))}catch(E){console.log(E)}}_isValidTransferredCommand(C=""){const E=`${C?.split(".")[0]}.*`;return this._transferredCommands.has(E)}_onServerPushBusinessCommand(C){const{OuterEvent:E,notificationCenter:h}=this._core,{MsgContent:D}=C||{},{ROOM_CUSTOM_DATA_RECEIVED:N}=E;h.emitOuterEvent(N,{name:N,data:D})}_reset(){this._transferredCommands=DB}_dispose(){const{notificationCenter:C,InnerEvent:E}=this._core;this._reset(),C.unSubscribeInnerEvent(E.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),C.unSubscribeInnerEvent(E.LOGOUT,this._reset,this),C.unSubscribeInnerEvent(E.DESTROY,this._dispose,this),C.unSubscribeInnerEvent("im_open_push.msg_push",C.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const ag=new class{init(C){this.core=C}};function yB(C){return et(this,void 0,void 0,function*(){var E;const{message:h,user:D,appStore:N,constants:{OuterConstant:O}}=ag.core,Y=N.conversationStore.getConversationMap();if(Y.has(C)){const IA=(E=Y.get(C))===null||E===void 0?void 0:E.userProfile;if(IA&&C.startsWith(O.CONV_C2C)){const{avatar:BA,nick:mA}=IA;ag.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:C,latestAvatar:BA,latestNick:mA,isSentByMe:!1})}}const{data:j}=(yield D.userProfile.getMyProfile())||{};if(j){const{avatar:IA,nick:BA}=j;h.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:C,latestAvatar:IA,latestNick:BA,isSentByMe:!0})}})}function KI(C){return et(this,void 0,void 0,function*(){const E=C.map(h=>h.revoker);try{const h=yield function(D){return et(this,void 0,void 0,function*(){var N,O;const Y=yield(N=ag.core.user.userProfile)===null||N===void 0?void 0:N.getUserProfile({userIDList:D});return Y?.data?(O=Y.data)===null||O===void 0?void 0:O.reduce((j,{userID:IA,nick:BA,avatar:mA})=>(j[IA]={nick:BA||"",avatar:mA||""},j),{}):null})}(E);h&&C.forEach(D=>{const{revoker:N}=D;h[N]&&(D.revokerInfo.nick=h[N].nick||"",D.revokerInfo.avatar=h[N].avatar||"",D.revokerInfo.userID=N)})}catch(h){console.debug(h)}})}const RB=1,Wn=2,yE=20,wr=2500,MB=1,Yg=300;function TC(C){return et(this,void 0,void 0,function*(){var E,h;const{appStore:D,utils:{isEmpty:N},common:{getCurrentUserID:O},notificationCenter:Y,OuterEvent:j,OuterConstant:{CONV_C2C:IA}}=ag.core,{messageList:BA,conversationID:mA}=C,_A=D.conversationStore.getConversationMap();let xA=(E=_A.get(mA))===null||E===void 0?void 0:E.peerReadTime;if(!xA){const Re=mA.replace(IA,""),Se=yield function(At){return et(this,void 0,void 0,function*(){const at={To_Account:At};return ag.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:at})})}([Re]);if(Se){const{ReadTime:At}=Se;xA=At?.[0],_A.has(mA)&&(_A.get(mA).peerReadTime=xA)}}if(_A.has(mA)){const Re=(h=_A.get(mA))===null||h===void 0?void 0:h.lastMessage;N(Re)||Re.fromAccount===O()&&Re.lastTime<=xA&&!Re.isPeerRead&&(Re.isPeerRead=!0,D.conversationStore.updateConversation(mA,{lastMessage:Re}))}const Qe=[];BA.forEach(Re=>{Re.time<=xA&&!Re.isPeerRead&&Re.flow==="out"&&(Re.isPeerRead=!0,Qe.push(Re))}),Qe.length>0&&Y.emitOuterEvent(j.MESSAGE_READ_BY_PEER,{name:j.MESSAGE_READ_BY_PEER,data:Qe})})}var jI=new class{init(C){this._core=C,C.helper.registerApi({apiName:"getMessageList",context:this}),C.helper.registerApi({apiName:"getMessageListHopping",context:this}),C.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(C){return et(this,void 0,void 0,function*(){try{const{message:E,OuterConstant:{Direction:h,CONV_C2C:D,CONV_GROUP:N},InnerEvent:{HISTORY_MESSAGE_FETCHED:O},notificationCenter:Y}=this._core,{conversationID:j,nextReqMessageID:IA}=C,BA=yE;if(j==="@TIM#SYSTEM")return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const mA=this._getAvailableLocalMessagesCount({conversationID:j,nextReqMessageID:IA});if(this._needFetchHistoryMessageList({conversationID:j,availableLocalMessagesCount:mA,targetCount:BA})){let _A=null;if(j.startsWith(N)?_A=yield E.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:j,sequence:Number(IA),count:BA,direction:h.FORWARD,shouldMarkCompleted:!0}):j.startsWith(D)&&(_A=yield E.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:j,messageID:IA,count:BA,direction:h.FORWARD,shouldMarkCompleted:!0})),_A){const{nextReqMessageIDFromServer:xA,hasNoMoreHistoryMessage:Qe,messageList:Re}=_A,Se=E.messageDataHandler.prependLocalMessageList({messageList:Re,conversationID:j});(function(ri){const{appStore:St,message:eo,OuterConstant:to}=ag.core,Yt=St.conversationStore.getConversation(ri),si=eo.messageDataHandler.getLocalMessageList(ri);if(!Yt||si.length===0||ri===to.CONV_SYSTEM)return;const zo=[];for(let je=0;je<si.length;je++)si[je].flow!=="in"?si[je].flow!=="out"||si[je].isRead||si[je].setIsRead(!0):zo.push(si[je]);let te=0;if(Yt.type===to.CONV_C2C){const je=zo.slice(-Yt.unreadCount).filter(dA=>dA.isRevoked).length;te=zo.length-Yt.unreadCount-je}else te=zo.length-Yt.unreadCount;for(let je=0;je<te&&!zo[je].isRead;je++)zo[je].setIsRead(!0)})(j),yield yB(j),j.startsWith(D)&&(yield TC({messageList:Re,conversationID:j}));const At=this._core.message.messageDataHandler.getLocalMessageList(j).slice(0,Se.length+mA),at=At.filter(ri=>ri.isRevoked);yield KI(at),Y.emitInnerEvent(O,Se);const jt={nextReqMessageID:Qe?"":String(xA),messageList:At,isCompleted:Qe},Bi=At.map(ri=>ri.sequence);return{code:0,data:jt,successLog:{message:`conversationID: ${j} nextReqMessageID: ${IA} availableLocalMessagesCount: ${mA} sequenceList: ${JSON.stringify(Bi)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:j,nextReqMessageID:IA,count:BA}),successLog:{message:`conversationID: ${j} nextReqMessageID: ${IA} availableLocalMessagesCount: ${mA}}`}}}catch(E){const{code:h,message:D}=E||{};throw new this._core.helper.ChatError({code:h,message:D,moreMessage:`options: ${this._core.utils.safeStringify(C)}`})}})}getMessageListHopping(C){return et(this,void 0,void 0,function*(){var E,h;const{OuterConstant:{Direction:D,CONV_C2C:N,CONV_GROUP:O},utils:{safeStringify:Y}}=this._core,{conversationID:j,sequence:IA,time:BA,direction:mA=D.FORWARD}=C,{utils:{isEmpty:_A},message:xA,notificationCenter:Qe,InnerEvent:{HISTORY_MESSAGE_FETCHED:Re}}=this._core;if(![D.BACKWARD,D.FORWARD].includes(mA))throw new this._core.helper.ChatError({message:"direction must be 0 or 1",moreMessage:`options: ${Y(C)}`});let{count:Se=yE}=C;Se=Se>yE?yE:Se;let At=null;if(j.startsWith(O)){if(At=yield xA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:j,sequence:IA,count:Se,direction:mA}),At){const{nextReqMessageIDFromServer:at,hasNoMoreHistoryMessage:jt,messageList:Bi,invisibleSequenceList:ri}=At;if(this._core.message.messageDataHandler.storeSparseMessageList(Bi),Qe.emitInnerEvent(Re,Bi),mA===D.FORWARD){const St=jt&&at<1;return{code:0,data:{messageList:Bi,isCompleted:St,nextMessageSeq:St?"":at}}}if(mA===D.BACKWARD){if(_A(Bi)&&_A(ri))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const St=((E=Bi?.[Bi.length-1])===null||E===void 0?void 0:E.sequence)||0,eo=((h=ri?.[ri.length-1])===null||h===void 0?void 0:h.sequence)||0;return{code:0,data:{messageList:Bi.filter(to=>to.sequence>=IA),isCompleted:!jt,nextMessageSeq:jt?Math.max(St,eo)+1:""}}}return{code:0,data:At}}}else if(j.startsWith(N)&&(At=yield xA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:j,count:Se+1,time:BA,direction:mA}),At)){const{messageList:at,lastMessageTime:jt,hasNoMoreHistoryMessage:Bi}=At;return Qe.emitInnerEvent(Re,at),Bi||(mA===D.FORWARD?at.shift():at.pop()),xA.messageDataHandler.storeSparseMessageList(at),yield TC({messageList:at,conversationID:j}),{code:0,data:{messageList:at,isCompleted:Bi,nextMessageTime:Bi?"":jt}}}})}clearHistoryMessage(C){return et(this,void 0,void 0,function*(){var E;const{appStore:h,common:{ChatError:D,getCurrentUserID:N},OuterConstant:{CONV_C2C:O,CONV_GROUP:Y},apiMap:j,message:IA}=this._core,BA=h.conversationStore.getConversation(C);if(!BA)throw new D({code:wr});const mA={fromAccount:N()},{type:_A}=BA;_A===O?(mA.type=RB,mA.toAccount=C.replace(O,"")):_A===Y&&(mA.type=Wn,mA.toGroupID=C.replace(Y,""));try{return yield(E=j?.setMessageRead)===null||E===void 0?void 0:E.call(j,{conversationID:C}),(yield function(Qe){return et(this,void 0,void 0,function*(){const{fromAccount:Re,type:Se,toAccount:At,toGroupID:at}=Qe,jt={From_Account:Re,Type:Se,To_Account:At,ToGroupid:at};return ag.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:jt})})}(mA))&&(IA.messageDataHandler.deleteConversationMessageList(C),IA.messageHistory.completedHistoryConversations.delete(C),IA.messageHistory.clearHistoryMessageListFetchAnchors(C),this._updateConversationLastMessage(C)),{code:0,data:{conversationID:C},successLog:{message:`convID:${C}`}}}catch(xA){const{errorCode:Qe}=xA;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:Qe,moreMessage:`convID:${C}`})}})}_updateConversationLastMessage(C){const{appStore:E}=this._core;E.conversationStore.updateConversation(C,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:C,nextReqMessageID:E}){const{OuterConstant:{CONV_C2C:h,CONV_GROUP:D}}=this._core,N=this._core.message.messageDataHandler.getLocalMessageList(C),{length:O}=N;if(!E)return O;let Y=-1;return C?.startsWith(h)?Y=N.findIndex(j=>j.ID===E):C?.startsWith(D)&&(Y=N.findIndex(j=>E.includes("-")?j.ID===E:String(j.sequence)===E)),Y===-1?0:Y}_needFetchHistoryMessageList({conversationID:C,availableLocalMessagesCount:E,targetCount:h}){const{message:D}=this._core;return E<h&&!D.messageHistory.completedHistoryConversations.has(C)}_getMessageListFromMemory(C){return et(this,arguments,void 0,function*({conversationID:E,nextReqMessageID:h,count:D}){const{OuterConstant:{CONV_C2C:N},message:O}=this._core,Y=this._core.message.messageDataHandler.getLocalMessageList(E),j=Y.length;let IA=j,BA={isCompleted:!1,nextReqMessageID:"",messageList:[]},mA=0,_A=j;return h?h&&(_A=Y.findIndex(xA=>E.startsWith(N)?xA.ID===h:String(xA.sequence)===h),mA=_A>D?_A-D:0,IA=_A):mA=j>D?j-D:0,BA.messageList=Y.slice(mA,_A),BA.isCompleted=IA<=D&&O.messageHistory.completedHistoryConversations.has(E),BA.isCompleted?BA.nextReqMessageID="":BA.nextReqMessageID=this._generateNextReqMessageID({conversationID:E,targetIndex:mA}),E.startsWith(N)&&(yield yB(E),yield TC({messageList:BA.messageList,conversationID:E})),BA})}_generateNextReqMessageID({conversationID:C,targetIndex:E}){const h=this._core.message.messageDataHandler.getLocalMessageList(C);return C.startsWith("C2C")?h[E].ID:String(h[E].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}},ha=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(C){this._core=C;const{common:{workflowManager:E},constants:{WORKFLOW_NAME:h,WORKFLOW_STEP:D,InnerEvent:N}}=C;E.registerWorkflowStep(h.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),E.registerWorkflowStep(h.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),C.notificationCenter.subscribeInnerEvent(N.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(C){const{conversationList:E}=C?.result||{},{OuterConstant:h,utils:{isArray:D}}=this._core;if(D(E)){const N=E.filter(O=>O.type===h.CONV_GROUP&&O.groupProfile.type!==h.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(N)}}_recoverGroupHistoryMessage(C){return et(this,void 0,void 0,function*(){const{OuterConstant:E}=this._core,h=[],D=[];return yield Promise.all(C?.map(N=>et(this,void 0,void 0,function*(){const{groupProfile:{groupID:O}={},lastMessage:{lastSequence:Y}={}}=N,j=`${E.CONV_GROUP}${O}`;let IA=this._getLocalLastMessageSequence(j);this._shouldRecoverHistory({localLastMessageSequence:IA,serverLastMessageSequence:Y})&&(yield this._recoverGroupHistoryForConversation({conversationID:j,localLastMessageSequence:IA,serverLastMessageSequence:Y,groupTipList:D})),h.push(j.replace(E.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:h,groupTipList:D}})}_recoverGroupHistoryForConversation(C){return et(this,arguments,void 0,function*({conversationID:E,localLastMessageSequence:h,serverLastMessageSequence:D,groupTipList:N}){try{const{utils:{isArray:O,isObject:Y,isEmpty:j},OuterEvent:IA,OuterConstant:BA,notificationCenter:mA,message:_A,appStore:xA,common:{getMessagePreviewText:Qe,buildLastMessage:Re}}=this._core,Se=D-h,At=Math.min(20,Se),at={},jt=yield _A.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:E,sequence:h+At,direction:BA.Direction.FORWARD,count:At}),{nextReqMessageIDFromServer:Bi,hasNoMoreHistoryMessage:ri,messageList:St,serverGroupTipList:eo}=jt;O(eo)&&N.push(...eo);const to=ri&&Bi<0,Yt=[];if(O(St)&&(St.forEach(si=>{_A.messageReceiver.groupMessageReceiver.updateMessageProfile(si),si.from===BA.CONV_SYSTEM&&(si.isSystemMessage=!1),_A.messageDataHandler.storeConversationMessage(si)&&!j(si.payload)&&(Yt.push(si),si._isExcludedFromLastMessage||(at.lastMessage=Re(si)))}),Yt.length>0&&mA.emitOuterEvent(IA.MESSAGE_RECEIVED,{name:IA.MESSAGE_RECEIVED,data:Yt})),!to&&St.length>0){const si=St[St.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:E,localLastMessageSequence:si,serverLastMessageSequence:D,groupTipList:N})}Y(at.lastMessage)&&(at.lastMessage.messageForShow=Qe(at.lastMessage.type,at.lastMessage.payload),xA.conversationStore.updateConversation(E,at))}catch(O){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${E}`,{error:O})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:C}=this._core,E=C.messageDataHandler.getContinuousMessagesByConversation();for(const[h,D]of E){const N=Array.from(D.values());if(N?.length>0){const O=N[N.length-1];h.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(h,O.time):h.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(h,O.sequence)}}}_getLocalLastMessageSequence(C){const{message:E}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(C))return this._lastMessageSequenceMapOnDisconnect.get(C);const h=E.messageDataHandler.getLocalMessageList(C),D=h[h.length-1];return D?.sequence}_shouldRecoverHistory(C){const{localLastMessageSequence:E,serverLastMessageSequence:h}=C;if(typeof E!="number"||typeof h!="number")return!1;const D=h-E;return h!==0&&E>0&&D>=MB&&D<Yg}_syncC2COfflineMessage(C){const{conversationList:E}=C?.result||{},{OuterConstant:h,utils:{isArray:D}}=this._core;if(D(E)){const N=[];return E.forEach(O=>{O.type===h.CONV_C2C&&N.push(O)}),this._recoverC2CHistoryMessage(N)}}_recoverC2CHistoryMessage(C){return et(this,void 0,void 0,function*(){yield Promise.all(C?.map(E=>et(this,void 0,void 0,function*(){const{conversationID:h,lastMessage:{lastTime:D}={}}=E,N=this._getLocalLastMessageTime(h);this._shouldRecoverC2CHistory({localLastMessageTime:N,serverLastMessageTime:D})&&(yield this._recoverHistoryForC2CConversation({conversationID:h,localLastMessageTime:N,serverLastMessageTime:D}))})))})}_shouldRecoverC2CHistory(C){const{localLastMessageTime:E,serverLastMessageTime:h}=C,D=h-E;return E>0&&D>=1&&D<=600}_recoverHistoryForC2CConversation(C){return et(this,void 0,void 0,function*(){var E;const{conversationID:h,localLastMessageTime:D,serverLastMessageTime:N}=C,{utils:{isArray:O,isObject:Y,isEmpty:j,safeStringify:IA},OuterEvent:BA,OuterConstant:mA,notificationCenter:_A,message:xA,appStore:Qe,common:{getMessagePreviewText:Re,buildLastMessage:Se}}=this._core;try{const At={},at=yield xA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:h,direction:mA.Direction.BACKWARD,time:D,count:20});if(j(at))return;const{hasNoMoreHistoryMessage:jt,messageList:Bi}=at,ri=[];O(Bi)&&(Bi.forEach(eo=>{xA.messageDataHandler.storeConversationMessage(eo)&&!j(eo.payload)&&(ri.push(eo),eo._isExcludedFromLastMessage||(At.lastMessage=Se(eo)))}),ri.length>0&&_A.emitOuterEvent(BA.MESSAGE_RECEIVED,{name:BA.MESSAGE_RECEIVED,data:ri}));const St=(E=Bi[Bi.length-1])===null||E===void 0?void 0:E.time;!jt&&St>N&&(yield this._recoverHistoryForC2CConversation({conversationID:h,localLastMessageTime:St,serverLastMessageTime:N})),Y(At.lastMessage)&&(At.lastMessage.messageForShow=Re(At.lastMessage.type,At.lastMessage.payload),Qe.conversationStore.updateConversation(h,At))}catch(At){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${h} error: ${IA(At)}`)}})}_getLocalLastMessageTime(C){const{message:E}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(C))return this._lastMessageTimeMapOnDisconnect.get(C);const h=E.messageDataHandler.getLocalMessageList(C),D=h[h.length-1];return D?.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}},wB=new class{constructor(){this.name="HistoryMessage"}install(C){this._core=C,ag.init(C),jI.init(C),ha.init(C),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.LOGOUT,this._reset,this),C.notificationCenter.subscribeInnerEvent(C.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:C,InnerEvent:E}=this._core;C.unSubscribeInnerEvent(E.LOGOUT,this._reset,this),C.unSubscribeInnerEvent(E.DESTROY,this.dispose,this),ha.dispose()}_reset(){ha.reset()}},pa=new class{init(C){this.core=C}},sg=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(C){const{helper:{registerExperimentalAPI:E}}=C;this._core=C,E("reportModalView",this),E("reportTUIFeatureUsage",this),E("reportRoomEngineEvent",this)}reportModalView(C){const{ssoLog:E,utils:{safeStringify:h,isString:D}}=this._core;try{if(!D(C))throw new Error("reportModalView data is not a string");E.createSSOLogData({method:"reportModalView",message:C,eventType:30}).end(!0)}catch(N){E.debug(`reportModalView Report failed: ${h(N)}`)}}reportTUIFeatureUsage(C){const{ssoLog:E,utils:{safeStringify:h,isEmpty:D}}=this._core,{atomicStoreID:N}=C;try{D(N)||this._reportedAtomicStoreIDs.has(N)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${C.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:N}),this._reportedAtomicStoreIDs.add(N))}catch(O){E.debug(`reportTUIFeatureUsage Report failed: ${h(O)}`)}}reportRoomEngineEvent(C){const{utils:{safeStringify:E},ssoLog:h}=this._core;try{h.debug(`reportRoomEngineEvent Report: ${E(C)}`);const{eventId:D,eventCode:N,eventResult:O,eventMessage:Y,moreMessage:j,extensionMessage:IA}=C;h.createSSOLogData({method:IA,code:D,message:Y,eventType:30,costTime:N,uiPlatform:O,moreMessage:j}).end(!0)}catch(D){h.debug(`reportRoomEngineEvent Report failed: ${E(D)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}},GC=new class{constructor(){this.name="DataReport"}install(C){this._core=C;const{notificationCenter:E,InnerEvent:{LOGOUT:h,DESTROY:D}}=C;pa.init(C),sg.init(C),E.subscribeInnerEvent(h,this._reset,this),E.subscribeInnerEvent(D,this._dispose,this)}_reset(){sg.reset()}_dispose(){const{notificationCenter:C,InnerEvent:{LOGOUT:E,DESTROY:h}}=this._core;C.unSubscribeInnerEvent(E,this._reset,this),C.unSubscribeInnerEvent(h,this._dispose,this),sg.dispose()}};let bl=BE.STANDARD,Mn=[];bl=BE.BASIC,Mn=[fB,Ou,pi,DE,ps,wB,GC];function WI(C,E){const{operationType:h,memberInfoList:D,operatorInfo:N}=C||{};let O={};if($r(D)?$r(N)||(O=N):h!==Qs.JOINED&&h!==Qs.KICKED&&h!==Qs.ADMIN_SET&&h!==Qs.ADMIN_CANCELED||(O=Object.assign({},D[0])),!$r(O)){const{nick:Y="",avatar:j=""}=O;E.nick=Y,E.avatar=j}}const RE=C=>({lastTime:C?.time||C?.lastTime||0,lastSequence:C?.sequence||C?.lastSequence||0,fromAccount:C?.from||C?.fromAccount||"",messageForShow:bc(C?.type,C?.payload),payload:C?.payload||null,type:C?.type||"",isRevoked:C?.isRevoked||!1,cloudCustomData:C?.cloudCustomData||"",onlineOnlyFlag:C?._onlineOnlyFlag||!1,nick:C?.nick||"",nameCard:C?.nameCard||"",version:C?.version||0,isPeerRead:C?.isPeerRead||!1,revoker:C?.revoker||null});var dI=Object.freeze({__proto__:null,ChatError:lo,WorkflowManager:Ir,buildAndSendPacket:Ls,buildLastMessage:RE,get builtInPlugins(){return Mn},checkBusinessCapabilityBits:dE,deepMerge:hs,getCurrentUserID:Wr,getErrorMessage:Tc,getMessagePreviewText:bc,isC2CConv:C=>s(C)&&C.slice(0,3)===us.CONV_C2C,isCommunity:Ka,isGroupConv:C=>s(C)&&C.slice(0,5)===us.CONV_GROUP,isInternational:vl,isTopic:ca,isUnlimitedAVChatRoom:function(){var C;return!!(!((C=ZA.store.get("instance"))===null||C===void 0)&&C.unlimitedAVChatRoom)},liteChatInstanceMap:og,registerInterceptor:mn,registerValidateConfig:Lg,requireAuth:ds,get sdkEdition(){return bl},setGroupTipsUserInfo:WI,t:pB,updateGroupAtInfo:(C,E)=>{const{CONV_AT_ME:h,CONV_AT_ALL:D,CONV_AT_ALL_AT_ME:N}=vo;if(function(j,IA){const{CONV_AT_ME:BA,CONV_AT_ALL:mA,CONV_AT_ALL_AT_ME:_A}=vo,{groupID:xA,sequence:Qe}=j;let Re=!1;return Ka({groupID:xA})&&IA.forEach(Se=>{Se.messageSequence===Qe&&(Se.atTypeArray.includes(BA)&&j.groupAtType.includes(mA)&&(Se.atTypeArray=[_A]),Se.atTypeArray.includes(mA)&&j.groupAtType.includes(BA)&&(Se.atTypeArray=[_A],Se.__random=j.__random,Se.__sequence=j.__sequence),Re=!0)}),Re}(C,E))return;let O=[...C.groupAtType];O.includes(h)&&O.includes(D)&&(O=[N]);const Y={from:C.from,groupID:C.groupID,topicID:C.topicID,messageSequence:C.sequence,atTypeArray:O,__random:C.__random,__sequence:C.__sequence};E.push(Y)},validateAndExecute:HI,validateParameters:QB});class fs{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return fs._instance||(fs._instance=new fs),fs._instance}static setInstance(E){fs._instance=E}installBuiltInPlugin(E){E&&this._installPlugin(E,this._builtInPlugins)}installExternalPlugin(E){E&&this._installPlugin(E,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(E,h){let D=[];D=B(E)?E:[E];const N=D.findIndex(Y=>Y?.name==="AVChatRoom"),O=N>-1?D.splice(N,1):[];D.forEach(Y=>{this._isPluginInstalled(Y.name)||(Y&&Ag(Y.install)?(h.add(Y.name),Ag(Y.getInstalledSubPlugins)?(O?.forEach(j=>h.add(j?.name)),Y.install(Wo.getInstance().exposeApiForPlugin(),O)):Y.install(Wo.getInstance().exposeApiForPlugin()),Ag(Y.handleLoginSuccess)&&this._isLoggedIn()&&Y.handleLoginSuccess()):Ag(Y)?(h.add(Y.name),Y(Wo.getInstance().exposeApiForPlugin()),Ag(Y.handleLoginSuccess)&&this._isLoggedIn()&&Y.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(E){return this._builtInPlugins.has(E)||this._externalPlugins.has(E)}_isLoggedIn(){var E;return((E=ZA.store.get("login"))===null||E===void 0?void 0:E.isLoggedIn)===!0}}var Uc=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(C){return this._conversationMap.get(C)}updateConversation(C,E,h){const{emit:D=!0,needSort:N=!1}=h||{},O=this._conversationMap.get(C);O&&!$r(E)&&(Object.keys(E).forEach(Y=>{O[Y]=E[Y]}),D&&ZA.notificationCenter.emitInnerEvent(Gt.CONVERSATION_UPDATED,{needSort:N}))}deleteConversation(C){this._conversationMap.has(C)&&(this._conversationMap.delete(C),ZA.notificationCenter.emitInnerEvent(Gt.CONVERSATION_UPDATED))}},ms=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(C){return this._groupMap.get(C)}updateGroup(C,E){const h=this._groupMap.get(C);h&&!$r(E)&&Object.keys(E).forEach(D=>{h[D]=E[D]})}},zI=new class{constructor(){this._messagesByConversation=new Map}updateMessage(C,E,h){var D;const{operation:N,updateUnreadCount:O=!0}=h,Y=Vo(h,["operation","updateUnreadCount"]),j=[];for(const IA of E){const BA=(D=this._messagesByConversation.get(C))===null||D===void 0?void 0:D.get(IA);if(!BA)return!1;Object.keys(Y).forEach(mA=>{BA[mA]=Y[mA]}),j.push(BA)}return this._emitMessageStoreOperationEvent(N,{conversationID:C,messageList:j,updateUnreadCount:O}),j}getMessagesByConversation(C){var E;return[...((E=this._messagesByConversation.get(C))===null||E===void 0?void 0:E.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(C,E){const{conversationID:h}=E;ca(h)?ZA.notificationCenter.emitInnerEvent(qa[C],E):ZA.notificationCenter.emitInnerEvent(C,E)}},xn=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(C){return this.userProfileMap.get(C)}getFriend(C){return this.friendMap.get(C)}},Yu=Object.freeze({__proto__:null,conversationStore:Uc,groupStore:ms,messageStore:zI,userStore:xn});class Wo{static getInstance(){return Wo._instance||(Wo._instance=new Wo),Wo._instance}static setInstance(E){Wo._instance=E}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:ZA.notificationCenter.subscribeOuterEvent.bind(ZA.notificationCenter),off:ZA.notificationCenter.unSubscribeOuterEvent.bind(ZA.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:fs.getInstance().installExternalPlugin.bind(fs.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(E){ZA.ssoLog.debug("registerPlugin",E)}statKeyFeatureUsage(E){ZA.ssoLog.debug("statTUIKeyFeatures",E)}setLogLevel(E){ZA.ssoLog.debug("setLogLevel",E),ZA.ssoLog.setLogLevel(E)}setApplicationID(E){ZA.store.set("instance",{applicationID:E})}getApiMap(){return this._apiMap}setApiMap(E){this._apiMap=E}registerApi(E){const{common:{timeManager:h},utils:{safeStringify:D}}=ZA,{apiName:N,context:O,methodName:Y=N,matcher:j}=E;this._apiHandlersMap[N]||(this._apiHandlersMap[N]=[]),this._apiHandlersMap[N].push({context:O,methodName:Y,matcher:j}),this._apiMap[N]&&this._apiHandlersMap[N].length!==1||(this._apiMap[N]=(...IA)=>{const BA=h.getServerTimeMs();let mA=0;N==="login"&&(mA=4),tn.includes(N)&&ZA.ssoLog.debug(N,`${N} start params: ${D(IA)}`),HI(Y,IA);const _A=this._apiHandlersMap[N];for(const xA of _A)if(!xA.matcher||xA.matcher(IA))try{const Qe=xA.context[xA.methodName].bind(xA.context)(...IA);return this._isPromiseLike(Qe)?this._handleAsyncResult(Qe,N,mA,BA):(this._reportApiSuccessLog({result:Qe,apiName:N,eventType:mA,startTime:BA}),Qe)}catch(Qe){throw ZA.ssoLog.error(N,`${N} fail ${Qe?.message||Qe?.errorMessage})`,{error:Qe,costTime:h.getServerTimeMs()-BA,eventType:mA,method:N}),Qe}})}registerExperimentalAPI(E,h,D){const N=D||E;this._experimentalApiMap[E]=h[N].bind(h)}destroy(){return et(this,void 0,void 0,function*(){var E,h;try{!((E=ZA.store.get("login"))===null||E===void 0)&&E.isLogin&&(yield this._apiMap.logout()),ZA.notificationCenter.emitInnerEvent(Gt.DESTROY)}catch(D){console.debug("destroy error: ",D)}finally{ZA.notificationCenter.emitOuterEvent(kr.SDK_DESTROY,{SDKAppID:(h=ZA.store.get("instance"))===null||h===void 0?void 0:h.sdkAppId}),og.clear(),fs.getInstance().clear(),Ir.getInstance().destroy(),ZA.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:Gt,InnerEventSubType:ZA.notificationCenter.InnerEventSubType,OuterEvent:kr,OuterConstant:vo,SignalingEvent:Dl,helper:Object.assign(Object.assign(Object.assign({},ZA.utils),ZA.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:mn,registerValidateConfig:Lg,checkBusinessCapabilityBits:dE,registerWorkflowStep:Ir.getInstance().registerWorkflowStep.bind(Ir.getInstance()),ChatError:lo}),apiMap:this._apiMap},ZA),{constants:Object.assign(Object.assign({},Ml),ZA.constants),common:Object.assign(Object.assign(Object.assign({},dI),ZA.common),{workflowManager:Ir.getInstance()}),utils:ZA.utils,appStore:Yu})}callExperimentalAPI(E,h){return ZA.ssoLog.debug(`callExperimentalAPI.${E} start params: ${ZA.utils.safeStringify(h)}`),this._experimentalApiMap[E]?this._experimentalApiMap[E](h):(ZA.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${E} not found, params: ${ZA.utils.safeStringify(h)}`),Promise.reject(new lo({code:Qa.INVALID_OPERATION})))}_isPromiseLike(E){return E!==null&&typeof E=="object"&&typeof E.then=="function"}_handleAsyncResult(E,h,D,N){return E.then(O=>(this._reportApiSuccessLog({result:O,apiName:h,eventType:D,startTime:N}),O)).catch(O=>{throw ZA.ssoLog.error(h,`${h} fail ${O?.message||O?.errorMessage})`,{error:O,costTime:ZA.common.timeManager.getServerTimeMs()-N,eventType:D,method:h,startTime:N}),O})}_reportApiSuccessLog(E){let{result:h,apiName:D,startTime:N,eventType:O}=E;const{timeManager:Y}=ZA.common,{successLog:{message:j,moreMessage:IA}={message:"",moreMessage:""}}=h||{},BA=Y.getServerTimeMs();D==="login"&&(N+=Y.getTimeOffsetWithServer()),tn.includes(D)&&ZA.ssoLog.info(D,`${D} success ${j} ${IA}`,{costTime:BA-N,eventType:O,message:j,moreMessage:IA,startTime:N}),h?.successLog&&delete h.successLog}}class Oc{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:E,store:h}=ZA;h.set("login",{isReady:!1}),Wo.getInstance().registerApi({apiName:"login",context:this}),Wo.getInstance().registerApi({apiName:"logout",context:this}),Wo.getInstance().registerApi({apiName:"getLoginUser",context:this}),Wo.getInstance().registerApi({apiName:"isReady",context:this}),Wo.getInstance().registerApi({apiName:"getServerTime",context:this}),Wo.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),E.subscribeInnerEvent(Gt.RECONNECTED,this._reLogin,this),ZA.notificationCenter.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}login(E){return et(this,void 0,void 0,function*(){var h;const{sdkEdition:D}=ZA.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new lo({functionName:"login",code:Qa.REPEAT_LOGIN});const N=yield this._performLogin(E);this._validateAfterLogin(N),this._handleLoginSuccess(N),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const O=(h=ZA.channel.getSocketAdapter())===null||h===void 0?void 0:h.getId(),{appId:Y,href:j}=ZA.store.get("instance")||{},{instanceID:IA,customStatus:BA}=N||{};return{code:0,data:N,successLog:{message:D,moreMessage:`socketID:${O} instanceID:${IA} customStatus:${BA} href: ${j} appId: ${Y}`}}}catch(N){const{errorCode:O}=N;O!==Qa.REPEAT_LOGIN&&(this._latestLoginAt=0);const Y=new lo({functionName:"login",code:O});throw console.error(Y),Y}})}_reLogin(){return et(this,void 0,void 0,function*(){var E;try{if(!this._isLoginIn())return;const h=yield QE(this._customLoginInfo);if(h){const{instanceID:D,customStatus:N}=h;ZA.store.set("login",{statusInstanceId:D}),Ir.getInstance().executeWorkflow(cn.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:N,statusType:CE.USER_STATUS_ONLINE});const O=(E=ZA.channel.getSocketAdapter())===null||E===void 0?void 0:E.getId();ZA.ssoLog.info("reLogin",`socketId:${O} instanceId:${D}`)}}catch(h){console.warn(h)}})}logout(){return et(this,arguments,void 0,function*(E=ba.USER_INITIATED){const{ssoLog:h}=ZA;h.debug("logout",`logout start logoutReason: ${E}`);try{yield this._performLogout(E),h.info("logout","logout success"),ZA.ssoLog.uploadSSOLogData()}catch(D){const{errorCode:N}=D;throw new lo({functionName:"logout",code:N})}finally{this.handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?Wr():""}isReady(){var E;return(E=ZA.store.get("login"))===null||E===void 0?void 0:E.isReady}setCustomLoginInfo(E=""){this._customLoginInfo=E}handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),Ir.getInstance().reset(),ZA.notificationCenter.emitInnerEvent("logout")}getServerTime(){const{timeManager:E}=ZA.common;return E.getServerTimeMs()}_updateAndEmitSDKReady(){ZA.store.set("login",{isReady:!0}),setTimeout(()=>{ZA.notificationCenter.emitOuterEvent(kr.SDK_READY,{name:kr.SDK_READY})},1)}_updateAndEmitSDKNotReady(){ZA.store.set("login",{isReady:!1}),ZA.notificationCenter.emitOuterEvent(kr.SDK_NOT_READY,{name:kr.SDK_NOT_READY})}_validateAfterLogin(E){const h="login";if(!E)throw new lo({functionName:h,message:"login response is empty"});const{tinyID:D,a2Key:N}=E||{};if(!D)throw new lo({functionName:h,code:Qa.NO_TINYID});if(!N)throw new lo({functionName:h,code:Qa.NO_A2KEY})}_createRepeatLoginResponse(){var E;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:Tc({code:"RepeatLogin",replacement1:(E=ZA.store.get("login"))===null||E===void 0?void 0:E.userId}),repeatLogin:!0}}}_performLogin(E){return et(this,void 0,void 0,function*(){const{userID:h,userSig:D}=E;return ZA.store.set("login",{userId:h,userSig:D}),this._latestLoginAt=Date.now(),QE(this._customLoginInfo)})}_ensureAsyncComplete(){return et(this,void 0,void 0,function*(){yield new Promise(E=>{setTimeout(()=>E(null),1)})})}_handleLoginSuccess(E){const{timeManager:h}=ZA.common,{helloInterval:D,timeStamp:N,customStatus:O,purchaseBits:Y}=E,j=1e3*N;h.calculateTimeOffsetWithServer(this._latestLoginAt,j),this._helloInterval=D||120,this._updateLoginStore(E),ZA.user.userStatus.setCustomStatus(O),Ir.getInstance().executeWorkflow(cn.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:Y}),ZA.common.taskScheduler.addTask({id:wl,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(E){return function(h){return et(this,void 0,void 0,function*(){const{logoutReason:D}=h,N="im_open_status.wslogout",O=ZA.common.generateProtocolData({servcmd:N,data:{wslogout_type:D,isWebUniapp:0}}),Y=`${O.head.seq}${N}`;return yield ZA.channel.sendPacket(O,{requestId:Y})})}({logoutReason:E})}_updateLoginStore(E){const{a2Key:h,tinyID:D,instanceID:N,authKey:O}=E;ZA.store.set("login",{a2Key:h,tinyID:D,statusInstanceId:N,authKey:O,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return et(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const E="im_open_status.wshello",h=ZA.common.generateProtocolData({servcmd:E,data:{isWebUniapp:0}}),D=`${h.head.seq}${E}`;return ZA.channel.sendPacket(h,{requestId:D})}()}catch(E){ZA.ssoLog.warn("_sendOnlinePresenceRequest",` error:${E.message}`)}})}_isLoginIn(){var E;return((E=ZA.store.get("login"))===null||E===void 0?void 0:E.isLoggedIn)===!0}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){ZA.common.taskScheduler.removeTask(wl),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",ZA.store.clear("login"),ZA.store.set("login",{isReady:!1}),ZA.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:E}=ZA;E.unSubscribeInnerEvent(Gt.RECONNECTED,this._reLogin,this),E.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}}const ME={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},Pg={logout:!0};class gg{constructor(){this.loginAction=new Oc,this.kickedOutHandler=new bg,this.loginAction.init(),this.kickedOutHandler.init(),Lg({auth:Pg,params:ME})}}var En,Ds,Wa;(function(C){C.CONV_C2C="C2C",C.CONV_GROUP="GROUP",C.CONV_TOPIC="TOPIC",C.CONV_SYSTEM="@TIM#SYSTEM"})(En||(En={})),function(C){C.MSG_PRIORITY_HIGH="High",C.MSG_PRIORITY_NORMAL="Normal",C.MSG_PRIORITY_LOW="Low",C.MSG_PRIORITY_LOWEST="Lowest"}(Ds||(Ds={})),function(C){C.MSG_TEXT="TIMTextElem",C.MSG_CUSTOM="TIMCustomElem",C.MSG_LOCATION="TIMLocationElem",C.MSG_FACE="TIMFaceElem",C.MSG_IMAGE="TIMImageElem",C.MSG_AUDIO="TIMSoundElem",C.MSG_FILE="TIMFileElem",C.MSG_VIDEO="TIMVideoFileElem",C.MSG_GRP_TIP="TIMGroupTipElem",C.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",C.MSG_MERGER="TIMRelayElem"}(Wa||(Wa={}));const Ll={1:Ds.MSG_PRIORITY_HIGH,2:Ds.MSG_PRIORITY_NORMAL,3:Ds.MSG_PRIORITY_LOW,4:Ds.MSG_PRIORITY_LOWEST},SB=0,Pu=1;var li;(function(C){C.IN="in",C.OUT="out"})(li||(li={}));const wE=2,hI={};function vB(C){if(!C)return 0;if(hI[C]===void 0){const E=new Date,h=`3${E.getHours()}`.slice(-2),D=`0${E.getMinutes()}`.slice(-2),N=`0${E.getSeconds()}`.slice(-2);hI[C]=parseInt([h,D,N,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${hI[C]}`)}else hI[C]+=1;return hI[C]}class NB{constructor(E){this.ID="",this.random=0,this.sequence=0,this.nameCard="",this.isRead=!1,this.isPeerRead=!1,this.isDeleted=!1,this.isResend=!1,this.hasRiskContent=!1,this._onlineOnlyFlag=!1,this.atUserList=[],this._groupAtInfoList=[],this.isBroadcastMessage=!1,this.priority=Ds.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:h=ZA.common.timeManager.getServerTimeSeconds()||0,senderTinyID:D,currentUser:N,needReadReceipt:O,isSupportExtension:Y,customModerationConfigurationId:j,to:IA,from:BA,nick:mA="",avatar:_A="",time:xA,messageControlInfo:Qe,tinyID:Re,cloudCustomData:Se="",messageLifeTime:At,messageVersion:at=0,conversationType:jt,sequence:Bi,checkResult:ri=0,isPlaceMessage:St=0,messageFlagBits:eo,receiverList:to,isSystemMessage:Yt=!1,status:si=tg.SUCCESS,revokeReason:zo="",conversationSubType:te,clientSequence:je,protocol:dA="JSON",revokerInfo:ut={userID:"",nick:"",avatar:""},readReceiptInfo:Cr={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:lt,groupProfile:Co,atUserList:Jt,flow:mo,isRead:Fe=!1,priority:Oe=Ds.MSG_PRIORITY_NORMAL,onlineOnlyFlag:xs=!1,nameCard:Zo="",quoteInfo:ti}=E;var _n;this.clientTime=h,this.senderTinyID=D||Re,this.needReadReceipt=O===!0||O===1,this.isSupportExtension=Y===!0||Y===1,this._cmConfigID=j,this.to=IA,this.nick=mA,this.avatar=_A,this.protocol=dA,this.random=lt===void 0?(_n=_n||99999999,Math.round(Math.random()*_n)):lt,this.time=xA||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!Qe?.excludedFromLastMessage,this._isExcludedFromUnreadCount=!!Qe?.excludedFromUnreadCount,this.isModified=!!at,this.cloudCustomData=Se,this.messageLifeTime=At,this.from=BA||null,this.sequence=Bi||0,this.conversationType=jt||En.CONV_C2C,this.hasRiskContent=ri>1,this.version=at,this.isPlaceMessage=St,this.isRevoked=St===2||eo===8,this.isSystemMessage=Yt,this.readReceiptInfo=Cr,this.revokeReason=zo,this.revokerInfo=ut,this._receiverList=to,this.conversationSubType=te,this.revoker=ut?.revoker||"",this.clientSequence=je||Bi||0,this.status=si,this.atUserList=Jt||[],this.flow=mo,this.isRead=Fe,this.priority=Oe,this._onlineOnlyFlag=xs,this.nameCard=Zo,this.quoteInfo=ti,this.reInitialize(N),this._initC2CReadReceiptInfo(E),this._extractGroupInfo(Co)}getElements(){return this._elements}isOnlineMessage(){return this.messageLifeTime===0}setElement(E){Array.isArray(E)?this._elements=E:this._elements=[E],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map(E=>E.transformToServerFormat()):this._elements.transformToServerFormat():null}setRelayFlag(E){this._relayFlag=E}validateBeforeSend(){var E,h,D;return this._relayFlag?{isValid:!0}:((E=this._elements)===null||E===void 0?void 0:E.length)>0?(D=(h=this._elements[0])===null||h===void 0?void 0:h.validateBeforeSend)===null||D===void 0?void 0:D.call(h):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(E){const{readReceiptSentByPeer:h,timestamp:D=0}=E;this.conversationType===En.CONV_C2C&&this.needReadReceipt===!0&&(this.readReceiptInfo.isPeerRead=h===1,this.readReceiptInfo.timestamp=D)}_extractGroupInfo(E){if(!E)return;const{From_AccountNick:h,From_AccountHeadurl:D,MsgFrom_AccountExtraInfo:N,GroupType:O}=E,{NameCard:Y}=N||{};typeof h=="string"&&(this.nick=h),typeof D=="string"&&(this.avatar=D),typeof Y=="string"&&(this.nameCard=Y),this.conversationSubType=O}reInitialize(E){E===this.from&&(this.isRead=!0),this._initSequence(E),this._concatConversationID(E),this.generateMessageID()}_concatConversationID(E){let h="";const D=this.conversationType;D!==En.CONV_SYSTEM?(h=D===En.CONV_C2C?E===this.from?this.to:this.from:this.to,this.conversationID=h?`${D}${h}`:null):this.conversationID=En.CONV_SYSTEM}_initSequence(E){this.clientSequence===0&&E&&(this.clientSequence=vB(E)),this.sequence===0&&this.conversationType===En.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===En.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(E){this.isRead=E}}class pI{static parseServerPushElement(E){const{MsgContent:h={}}=E,{Data:D,Ext:N,Desc:O}=h;return new pI({data:D,description:O,extension:N})}constructor(E){this.type=Wa.MSG_CUSTOM;const{data:h="",description:D="",extension:N=""}=E;this.content={data:h,description:D,extension:N}}transformToServerFormat(E){const{isMergerMessage:h=!1}=E||{},D=h?this.payload:this.content,{data:N,description:O,extension:Y}=D;return{MsgType:this.type,MsgContent:{Data:N,Ext:Y,Desc:O}}}validateBeforeSend(){const{isEmpty:E}=ZA.utils,h=[this.content.data,this.content.description,this.content.extension].some(D=>!E(D));return{isValid:h,error:h?null:{message:"content can not be empty"}}}}class SE{static parseServerPushElement(E){const{MsgContent:h={Text:""}}=E,{Text:D}=h;return new SE({text:D})}constructor(E){this.type=_s.MSG_TEXT,this.content={text:E.text||""}}validateBeforeSend(){var E,h;return((h=(E=this.content)===null||E===void 0?void 0:E.text)===null||h===void 0?void 0:h.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(E){const{isMergerMessage:h=!1}=E||{},D=h?this.payload:this.content,{text:N}=D;return{MsgType:this.type,MsgContent:{Text:N}}}}var ZI=new class{constructor(){this._elementClassMap={[Wa.MSG_CUSTOM]:pI,[Wa.MSG_TEXT]:SE}}init(){Wo.getInstance().registerApi({apiName:"createCustomMessage",context:this}),Wo.getInstance().registerApi({apiName:"createTextMessage",context:this})}registerElementClass(C,E){var h;(h=E).prototype!==void 0&&"constructor"in h.prototype&&(this._elementClassMap[C]=E)}getElementClass(C){return this._elementClassMap[C]}createMessage(C){const{from:E,flow:h=li.OUT}=C,{userId:D}=ZA.store.get("login")||{};this._isSendByCurrentInstance({from:E,flow:h,currentUser:D})?this._updateWithSenderInfo(C):this._isMultiEndpointSyncMessage({from:E,flow:h,currentUser:D})&&(C.flow=li.OUT);const N=Object.assign(Object.assign({},C),{currentUser:D});return new NB(N)}createCustomMessage(C){const E=Wr(),h=this.createMessage(Object.assign(Object.assign({},C),{from:E})),D=this._elementClassMap[Wa.MSG_CUSTOM];if(!h)return null;if(D){const N=new D(C.payload);h.setElement(N)}return h}createTextMessage(C){var E;if(!C)return null;const h=typeof C.payload=="string"?C.payload:((E=C?.payload)===null||E===void 0?void 0:E.text)||"",D=new SE({text:h}),N=Wr(),O=ZA.message.messageFactory.createMessage(Object.assign(Object.assign({},C),{from:N}));return O.setElement(D),O}_updateWithSenderInfo(C){var E,h;const{nick:D,avatar:N,conversationType:O,to:Y}=C,{userId:j,tinyID:IA}=ZA.store.get("login")||{},BA=xn.getUserProfile(j);return C.nick=D||BA?.nick||"",C.avatar=N||BA?.avatar||"",C.tinyID=C.tinyID||IA||"",C.from=j,C.status=tg.UNSENT,C.flow=li.OUT,O===us.CONV_GROUP&&(C.nameCard=(h=(E=ms.getGroup(Y))===null||E===void 0?void 0:E.selfInfo)===null||h===void 0?void 0:h.nameCard),C}_isMultiEndpointSyncMessage(C){const{from:E,flow:h,currentUser:D}=C;return E===D&&h===li.IN}_isSendByCurrentInstance(C){const{from:E,flow:h,currentUser:D}=C;return E===D&&h===li.OUT}};const xc={PushFlag:0,Title:"",Desc:"",Ext:"",ApnsInfo:{Sound:"",BadgeMode:0,IsVoipPush:void 0,Image:"",InterruptionLevel:"active",ContentAvailable:0},AndroidInfo:{Sound:"",XiaoMiChannelID:"",OPPOChannelID:"",GoogleChannelID:"",VIVOClassification:1,VIVOCategory:"",HuaWeiCategory:"",OPPOCategory:"",HuaWeiImage:"",HonorImage:"",GoogleImage:"",HonorImportance:"",MeizuNotifyType:void 0}},TB={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},Yc={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function XI(C,E){return Object.keys(E).forEach(h=>{const{range:D,defaultValue:N}=E[h];C[h]=D.includes(C[h])?C[h]:N}),C}function Us(C){const E=C.lastIndexOf(".");return E===-1?C:C.slice(0,E)}function fI(C){const{androidInfo:E={},androidOPPOChannelID:h=""}=C,D=E.OPPOChannelID||h,N=XI(E,TB),{sound:O="",FCMChannelID:Y=""}=N,j=Vo(N,["sound","FCMChannelID"]);return Object.assign(Object.assign({},j),{Sound:Us(O),OPPOChannelID:D,GoogleChannelID:Y})}function kC(C){const{apnsInfo:E={},ignoreIOSBadge:h=!1,disableVoipPush:D}=C,N=XI(E,Yc),{ignoreIOSBadge:O,disableVoipPush:Y,enableIOSBackgroundNotification:j}=N,IA=Vo(N,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),BA=O===!0||h===!0?1:0;let mA;return r(D)||(mA=D===!1?1:0),r(Y)||(mA=Y===!1?1:0),Object.assign(Object.assign({},IA),{BadgeMode:BA,IsVoipPush:mA,ContentAvailable:j?1:0})}function Fl(C){return ZA.utils.isPlainObject(C)?{PushFlag:C.disablePush===!0?1:0,Title:C.title||"",Desc:C.description||"",Ext:C.extension||"",ApnsInfo:kC(C),AndroidInfo:fI(C)}:xc}function Pc(C){const{From_AccountHeadurl:E,From_AccountNick:h,IsNeedReadReceipt:D,IsPeerRead:N,IsSyncMsg:O,MsgBody:Y,MsgClientTime:j,MsgLifeTime:IA,MsgRandom:BA,MsgSeq:mA,MsgTimeStamp:_A,SendMsgControl:xA,SupportMessageExtension:Qe,TinyId:Re,MsgCheckResult:Se,CloudCustomData:At,MsgVersion:at,MsgFlagBits:jt,RevokerInfo:Bi,InnerSdkCustomData:ri}=C;let St,{From_Account:eo,To_Account:to}=C;if(O===1){const Yt=to;to=eo,eo=Yt}if(Bi){const{Reason:Yt,Revoker_Account:si,Revoker_FromUin:zo}=Bi;St={reason:Yt,revoker:si,revokerFromUin:zo,userID:si}}return{from:eo,avatar:E,nick:h,needReadReceipt:D===1,isSyncMessage:O,clientTime:j,messageLifeTime:IA,random:BA,sequence:mA,time:_A,messageControlInfo:{excludedFromLastMessage:xA?.NoLastMsg===1,excludedFromUnreadCount:xA?.NoUnread===1},isSupportExtension:Qe,to,tinyID:Re,checkResult:Se,cloudCustomData:At,revokerInfo:St,messageVersion:at,messageFlagBits:jt,readReceiptSentByPeer:N,elements:za(Y),onlineOnlyFlag:IA===0,quoteInfo:Ol(ri)}}function vE(C){const{From_Account:E,MsgBody:h,MsgClientTime:D,MsgRandom:N,MsgSeq:O,MsgTimeStamp:Y,To_Account:j,MsgVersion:IA,CloudCustomData:BA,MsgCheckResult:mA}=C;return{from:E,clientTime:D,random:N,sequence:O,time:Y,to:j,elements:za(h),messageVersion:IA,cloudCustomData:BA,checkResult:mA}}function di(C){const{ClientSeq:E,From_Account:h,GroupInfo:D,MsgBody:N,MsgClientTime:O,MsgRandom:Y,MsgSeq:j,MsgTimeStamp:IA,SendMsgControl:BA,SupportMessageExtension:mA,TinyId:_A,CloudCustomData:xA,MsgVersion:Qe,MsgCheckResult:Re,NeedReadReceipt:Se,IsPlaceMsg:At,RevokerInfo:at,GroupAtInfo:jt,OnlineOnlyFlag:Bi,InnerSdkCustomData:ri}=C;let St,eo=Ds.MSG_PRIORITY_NORMAL;if(Object.keys(Ll).includes(String(C.MsgPriority))&&(eo=Ll[C.MsgPriority]),at){const{Reason:Yt,Revoker_Account:si,Revoker_FromUin:zo}=at;St={reason:Yt,revoker:si,revokerFromUin:zo,userID:si}}const to=function(Yt){const si=[];return Array.isArray(Yt)&&Yt.forEach(zo=>{zo.GroupAtAllFlag===SB?si.push(zo.GroupAt_Account):zo.GroupAtAllFlag===Pu&&si.push(vo.MSG_AT_ALL)}),si}(jt);return{clientSequence:E,from:h,groupProfile:D,clientTime:O,priority:eo,random:Y,sequence:j,time:IA,messageControlInfo:{excludedFromLastMessage:BA?.NoLastMsg===1,excludedFromUnreadCount:BA?.NoUnread===1},isSupportExtension:mA,tinyID:_A,cloudCustomData:xA,messageVersion:Qe,checkResult:Re,needReadReceipt:Se,isPlaceMessage:At,revokerInfo:St,atUserList:to,elements:za(N),to:Ul(C),onlineOnlyFlag:Bi===1,quoteInfo:Ol(ri)}}function Ul(C){const{utils:{isEmpty:E},constants:{IS_TOPIC_MESSAGE:h}}=ZA,{ToGroupId:D,GroupInfo:{MillionGroupFlag:N=0,TopicId:O}={}}=C;return N!==h||E(O)?D:O}function za(C){if(!C)return null;if(Array.isArray(C))return C.map(h=>{const D=ZA.message.messageFactory.getElementClass(h.MsgType);return D?.parseServerPushElement(h)});const E=ZA.message.messageFactory.getElementClass(C.MsgType);return E?.parseServerPushElement(C)}function NE(C){const{From_Account:E,MsgBody:h,MsgClientTime:D,MsgRandom:N,MsgSeq:O,MsgTimeStamp:Y,GroupId:j,TopicId:IA,MsgVersion:BA,CloudCustomData:mA,MsgCheckResult:_A}=C;return{from:E,clientTime:D,random:N,sequence:O,time:Y,groupID:j,topicID:IA,elements:za(h),messageVersion:BA,cloudCustomData:mA,checkResult:_A}}function Ol(C){const{utils:{isString:E,safeStringify:h},ssoLog:D}=ZA;if(!E(C))return null;try{const{messageID:N,messageTime:O,messageSequence:Y}=JSON.parse(C).businessQuote;return{msgID:N,messageTime:O,messageSequence:Y}}catch(N){return D.debug("_parseServerQuoteInfo",h(N)),null}}function Jg({conversationUpdateFields:C,message:E}){const{conversationID:h,conversationType:D,conversationSubType:N,flow:O,_isExcludedFromUnreadCount:Y,_isExcludedFromLastMessage:j}=E,IA=j?"":RE(E),BA=!Y&&O===li.IN;C.has(h)?(C.get(h).lastMessage=IA,BA&&C.get(h).unreadCount++):C.set(h,{conversationID:h,type:D,subType:N,unreadCount:BA?1:0,lastMessage:IA})}function TE(C){return C.filter(E=>{const h=!$r(E?._elements),D=E?.isPlaceMessage===1;return h||ZA.ssoLog.error("emptyMessageBody",`from:${E.from} to:${E.to} sequence:${E.sequence}`),h&&!D})}function Hg(C){const{messageDataHandler:E}=ZA.message;return!E.isInMessageList(C)&&!E.isMessageSentByCurrentInstance(C)}var Vg=Object.freeze({__proto__:null,autoIncrementIndex:vB,createAndroidPushInfo:fI,createApnsPushInfo:kC,createOfflinePushInfo:Fl,filterValidMessages:TE,getAndroidSoundName:Us,parseServerGroupMessage:di,parseServerPushC2CModifyMessage:vE,parseServerPushGroupModifyMessage:NE,parseServerPushMessage:Pc,parseServerPushMessageElement:za,shouldStoreMessage:Hg,updateConversationFields:Jg});const{isPlainObject:fa}=ZA.utils;function xl(C,E={}){const{onlineUserOnly:h,messageControlInfo:D}=E;let{offlinePushInfo:N}=E;C.conversationType===En.CONV_C2C&&h===!0&&(N?N.disablePush=!0:N={disablePush:!0});let O="";typeof C.cloudCustomData=="string"&&C.cloudCustomData.length>0&&(O=C.cloudCustomData);const Y=[];if(D&&fa(D)){const{excludedFromUnreadCount:j,excludedFromLastMessage:IA,excludedFromContentModeration:BA}=D;j===!0&&Y.push("NoUnread"),IA===!0&&Y.push("NoLastMsg"),BA===!0&&Y.push("NoMsgCheck")}return{onlineUserOnly:h,cloudCustomData:O,messageControlInfo:Y,offlinePushInfo:N}}function zn(C){const{webhookInfo:{disableCloudMessagePreHook:E=!1,disableCloudMessagePostHook:h=!1}={}}=C||{};if(!E&&!h)return;const D=[];return E&&D.push("ForbidBeforeSendMsgCallback"),h&&D.push("ForbidAfterSendMsgCallback"),D}function dr(C,E){return et(this,void 0,void 0,function*(){const h=C.conversationType===En.CONV_GROUP?function(N,O){var Y;const j=xl(N,O),{onlineUserOnly:IA,cloudCustomData:BA,messageControlInfo:mA,offlinePushInfo:_A}=j,xA=JSON.parse(JSON.stringify(N.transformElementsToServerFormat()));let Qe;return B(N._receiverList)&&N._receiverList.length>0&&(Qe=N._receiverList,N._receiverList.length>50&&(Qe=N._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:(Y=ZA.store.get("login"))===null||Y===void 0?void 0:Y.userId,GroupId:N.to,MsgBody:xA,CloudCustomData:BA,Random:N.random,MsgPriority:N.priority,ClientSeq:N.clientSequence,GroupAtInfo:N._groupAtInfoList,OnlineOnlyFlag:IA?1:0,MsgClientTime:N.clientTime,OfflinePushInfo:Fl(_A),SendMsgControl:IA?void 0:mA,NeedReadReceipt:N.needReadReceipt===!0?1:0,To_Account:Qe,SupportMessageExtension:N.isSupportExtension===!0?1:0,IsRelayMsg:N._relayFlag===!0?1:0,CustomModerationConfigID:N._cmConfigID,ForbidCallbackControl:zn(O),InnerSdkCustomData:GB(N)}}}(C,E):function(N,O){var Y;const j=xl(N,O),{onlineUserOnly:IA,cloudCustomData:BA,messageControlInfo:mA,offlinePushInfo:_A}=j,xA=IA===!0?0:void 0,Qe=JSON.parse(JSON.stringify(N.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:(Y=ZA.store.get("login"))===null||Y===void 0?void 0:Y.userId,To_Account:N.to,MsgBody:Qe,CloudCustomData:BA,MsgSeq:N.sequence,MsgRandom:N.random,MsgLifeTime:xA,From_AccountNick:N.nick,From_AccountHeadurl:N.avatar,SendMsgControl:xA!==0?mA:void 0,MsgClientTime:N.clientTime,IsNeedReadReceipt:N.needReadReceipt===!0?1:0,SupportMessageExtension:N.isSupportExtension===!0?1:0,IsRelayMsg:N._relayFlag===!0?1:0,CustomModerationConfigID:N._cmConfigID,OfflinePushInfo:Fl(_A),ForbidCallbackControl:zn(O),InnerSdkCustomData:GB(N)}}}(C,E),D=yield Ls(h);return D?{time:D.MsgTime,messageDropReason:D.MsgDropReason,sequence:D.MsgSeq}:null})}function Yn(C){return et(this,void 0,void 0,function*(){const{from:E,to:h,version:D=0,sequence:N,random:O,time:Y,type:j,cloudCustomData:IA}=C,BA={From_Account:E,To_Account:h,MsgVersion:D,MsgSeq:N,MsgRandom:O,MsgTime:Y,MsgType:j,MsgBody:C.transformElementsToServerFormat(),CloudCustomData:IA},mA=yield Ls({servcmd:"openim.modify_c2c_msg",data:BA});if(mA){const{MsgBody:_A,MsgVersion:xA,CloudCustomData:Qe}=mA;return{elements:za(_A),messageVersion:xA,cloudCustomData:Qe}}})}function qg(C){return et(this,void 0,void 0,function*(){const{to:E,version:h=0,sequence:D,cloudCustomData:N}=C,O={GroupId:E,MsgVersion:h,MsgSeq:D,MsgBody:C.transformElementsToServerFormat(),CloudCustomData:N},Y=yield Ls({servcmd:"openim.modify_group_msg",data:O});if(Y){const{MsgBody:j,MsgVersion:IA,CloudCustomData:BA}=Y;return{elements:za(j),messageVersion:IA,cloudCustomData:BA}}})}function GE(C){return et(this,void 0,void 0,function*(){const{groupID:E,count:h,messageSequence:D,messageSequenceList:N,getType:O}=C,Y={GroupId:E,ReqMsgNumber:h,WithRecalledMsg:1,Version:1,GetType:O};return D&&(Y.ReqMsgSeq=D),B(N)&&N.length>0&&(Y.ReqMsgSeqList=N),yield Ls({servcmd:"group_open_http_svc.group_msg_get",data:Y})})}function $I(C){return et(this,void 0,void 0,function*(){const{peerAccount:E,count:h,lastMessageTime:D,messageKey:N,direction:O}=C;return Ls({servcmd:"openim.getroammsg",data:{Peer_Account:E,MaxCnt:h,WithRecalledMsg:1,LastMsgTime:D,MsgKey:N,GetDirection:O}})})}function GB(C){if(ZA.utils.isObject(C.quoteInfo)){const{msgID:E,messageSequence:h,messageTime:D}=C.quoteInfo;return JSON.stringify({businessQuote:{messageID:E,messageSequence:h,messageTime:D}})}}var Ig=Object.freeze({__proto__:null,createMessagePackOptions:xl,generateForbidCallbackControl:zn,getC2CRoamingMessagesByAnchor:$I,getGroupRoamingMessagesByAnchor:GE,getRoamingMessages:function(C){return et(this,void 0,void 0,function*(){const{peerAccount:E,count:h,lastMessageTime:D,messageKey:N}=C;return(yield Ls({servcmd:"openim.getroammsg",data:{Peer_Account:E,MaxCnt:h||15,LastMsgTime:D||0,MsgKey:N,GetDirection:0,WithRecalledMsg:1}}))||[]})},modifyC2CMessage:Yn,modifyGroupMessage:qg,sendMessage:dr});const{isPlainObject:kE}=ZA.utils,{MSG_AUDIO:kB,MSG_FILE:_E,MSG_IMAGE:Ju,MSG_VIDEO:bE,MSG_MERGER:Jc}=vo;class LE{constructor(){this._sendProtocolMap=new Map}init(){Wo.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:E=>![kB,_E,Ju,bE,Jc].includes(E[0].type)})}registerSendProtocol(E,h,D){this._sendProtocolMap.set(E,h.bind(D))}sendMessage(E,h){return et(this,void 0,void 0,function*(){const{TOTAL_COUNT:D,SEND_COST:N,SUCCESS_COUNT:O,FAILED_COUNT:Y}=Sc;if(!(E instanceof NB))throw new lo({code:Qa.MSG_INSTANCE_REQUIRED});const j=E.validateBeforeSend();if(!j.isValid){const{code:mA,message:_A=""}=j.error||{};throw new lo({code:mA,message:_A})}this._reportMessageSendQuality({name:D,message:E});let IA=!1;const{messageDataHandler:BA}=ZA.message||{};try{const{messageControlInfo:mA}=h||{};let _A=null;BA.addRandomOfSentMessage(E.random);const xA=Date.now(),Qe=this._getSendProtocol(E);if(E.conversationType===En.CONV_C2C?(IA=h?.onlineUserOnly===!0,_A=yield Qe(E,h)):E.conversationType===En.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(E),_A=yield Qe(E,h)),_A){const{messageDropReason:Re,sequence:Se,time:At}=_A;if(this._updateNickAndAvatarOfSentMessageByMe(E),Re&&this._logRateLimitInfo(E,Se,Re),this._reportMessageSendQuality({name:O,message:E}),this._reportMessageSendQuality({name:N,message:E,startTs:xA}),E.isResend===!0){const at=BA.findMessage(E.ID);at&&(ZA.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${at.ID}`),BA.deleteConversationMessage(at))}return E.status=tg.SUCCESS,E.time=At,E.conversationType===En.CONV_GROUP&&(E.sequence=Se),IA?E._onlineOnlyFlag=!0:(BA.storeConversationMessage(E),this._applySentMessageControlInfo(E,mA),this._emitOnlineMessageSent(E)),E.type===_s.MSG_STREAM?{code:0,data:{message:E,streamMessageID:_A.streamMessageID}}:{code:0,data:{message:E}}}}catch(mA){E.status=tg.FAIL,BA.removeRandomOfSentMessage(E.random);let{errorCode:_A}=mA||{},xA=mA?.errorInfo||mA?.message||"";throw this._hasRiskContent(_A)&&(E.hasRiskContent=!0),IA||this._isRejectedByRestApi(_A)||BA.storeConversationMessage(E),this._reportMessageSendQuality({name:Y,message:E,error:mA}),new lo({code:_A,message:xA,data:{message:E},moreMessage:`type:${E.type} from:${E.from} to:${E.to}`})}})}_hasRiskContent(E){return E===80001||E===80004}_isRejectedByRestApi(E){return E>=10100&&E<=10200||E>=120001&&E<=13e4}_emitOnlineMessageSent(E){const h=E._isExcludedFromLastMessage?"":E,{conversationID:D,conversationType:N}=E,O=ca(D)?Gt.TOPIC_NEW_MESSAGE:Gt.NEW_MESSAGE;ZA.notificationCenter.emitInnerEvent(O,{result:{conversationUpdateFieldList:[{conversationID:D,type:N,message:E,lastMessage:h,unreadCount:0}]}})}_applySentMessageControlInfo(E,h){h&&kE(h)&&(h.excludedFromLastMessage===!0&&(E._isExcludedFromLastMessage=!0),h.excludedFromUnreadCount===!0&&(E._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(E,h,D){const N=`from:${E.from} to:${E.to} sequence:${h} messageDropReason:${D}`;ZA.ssoLog.warn("messageDropReason",N)}_updateNickAndAvatarOfSentMessageByMe(E){const{messageDataHandler:h}=ZA.message||{};let D=!1;const{conversationID:N}=E,O=h.getLatestMsgSentByMe(N);if(O){const{nick:Y,avatar:j}=O;Y===E.nick&&j===E.avatar||(D=!0),D&&h.updateNickAndAvatarOfSentMessage({conversationID:N,latestNick:E.nick,latestAvatar:E.avatar,isSentByMe:!0})}}_validateBeforeSendGroupMessage(E){return et(this,void 0,void 0,function*(){var h,D,N;const{to:O,from:Y}=E;let j=O,IA=ms.getGroup(j);if(Ka({groupID:j})&&IA?.isSupportTopic)throw new lo({code:Qa.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(ca(O)&&([j]=O.split(_a.TOPIC),IA=ms.getGroup(j)),!IA&&typeof((h=Wo.getInstance().getApiMap())===null||h===void 0?void 0:h.getGroupProfile)=="function"){const BA=yield Wo.getInstance().getApiMap().getGroupProfile({groupID:j});if(((N=(D=BA?.data)===null||D===void 0?void 0:D.group)===null||N===void 0?void 0:N.type)===vo.GRP_AVCHATROOM){const mA=Tc({code:Qa.MSG_SEND_FAIL_NOT_IN_AV,replacement1:Y,replacement2:j});throw new lo({code:Qa.MSG_SEND_FAIL_NOT_IN_AV,message:mA})}}return!0})}_reportMessageSendQuality(E){ZA.notificationCenter.emitInnerEvent(Gt.QUALITY_STAT,{label:PI.MESSAGE_SEND_SUCCESS_RATE,data:E})}_getSendProtocol(E){return this._sendProtocolMap.get(E.type)||dr}}var _B=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){ZA.notificationCenter.subscribeInnerEvent(Gt.LOGOUT,this._reset,this),ZA.notificationCenter.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}get _messagesByConversation(){return zI.getMessages()}storeConversationMessage(C,E=!1){if(Nr)return!0;const{conversationID:h}=C;if(!h||(this._messagesByConversation.has(h)||this._messagesByConversation.set(h,new Map),this._shouldSkipStoreMessage(C,E)))return!1;const D=this._getUniqueIdOfMessage(C);return this._messagesByConversation.get(h).set(D,C),this._updateLatestMessageMap(C),!0}_updateLatestMessageMap(C){const{conversationID:E}=C;C.flow==="out"?this._setLatestMsgSentByMe(E,C):E.startsWith("C2C")&&this._setLatestMsgSentByPeer(E,C)}_shouldSkipStoreMessage(C,E){const h=this._getUniqueIdOfMessage(C),D=this._messagesByConversation.get(C.conversationID);if(D?.has(h)){const N=D?.get(h);if(!E||N?.isModified===!0)return!0}return!1}deleteConversationMessage(C){var E;const{conversationID:h=""}=C,D=this._getUniqueIdOfMessage(C);this._messagesByConversation.has(h)&&((E=this._messagesByConversation.get(h))===null||E===void 0||E.delete(D))}modifyConversationMessage(C,E){var h;if(!this._messagesByConversation.has(C)&&!this._sparseMessagesByConversation.has(C))return{isUpdated:!1,message:null};const D=this._getUniqueIdOfMessage(E),N=this._getMessageFromLocalMessage(C,D);if(N){const{messageVersion:O,elements:Y,cloudCustomData:j,checkResult:IA=0}=E,BA=IA>1;if(ZA.ssoLog.debug("modifyConversationMessage",`conversationToMessageMap modifyConversationMessage localVersion:${N.version} remoteVersion:${O}`),N.version<O){const mA=this._getUniqueIdOfMessage(N),_A=On(Y);return!((h=this._messagesByConversation.get(C))===null||h===void 0)&&h.has(mA)?zI.updateMessage(C,[mA],{isModified:!0,version:O,_elements:_A,payload:_A[0].content,type:_A[0].type,cloudCustomData:j,hasRiskContent:BA,operation:ka.modify}):(N.version=O,N._elements=_A,N.payload=N._elements[0].content,N.type=N._elements[0].type,N.cloudCustomData=j,N.isModified=!0,N.hasRiskContent=BA),{isUpdated:!0,message:N}}return{isUpdated:!1,message:N}}return{isUpdated:!1,message:null}}_getMessageFromLocalMessage(C,E){var h;if(this._messagesByConversation.has(C))return(h=this._messagesByConversation.get(C))===null||h===void 0?void 0:h.get(E);if(this._sparseMessagesByConversation.has(C)){const D=[...this._sparseMessagesByConversation.get(C).values()];for(let N=0;N<D.length;N++)if(this._getUniqueIdOfMessage(D[N])===E)return D[N]}return null}findMessage(C){let E=null;const h=Array.from(this._messagesByConversation.values());for(const D of h)if(E=Array.from(D.values()).find(N=>N.ID===C)||null,E)break;if(!E){const D=Array.from(this._sparseMessagesByConversation.values());for(const N of D)if(E=N.get(C)||null,E)break}return E}deleteConversationMessageList(C){this._messagesByConversation.has(C)&&(this._messagesByConversation.delete(C),this._latestMessageSentByMeMap.delete(C),this._latestMessageSentByPeerMap.delete(C)),this._sparseMessagesByConversation.has(C)&&this._sparseMessagesByConversation.delete(C)}revokeMessage({conversationID:C,sequence:E,random:h,revoker:D}){const N=this._messagesByConversation.get(C);let O=null;if(N){const Y=Array.from(N.values());if(O=this._findMessageBySequenceAndRandom({messageList:Y,random:h,sequence:E}),O){const j=this._getUniqueIdOfMessage(O);return zI.updateMessage(C,[j],{isRevoked:!0,revoker:D,operation:ka.revoke}),O}}if(this._sparseMessagesByConversation.has(C)){const Y=Array.from(this._sparseMessagesByConversation.get(C).values());if(O=this._findMessageBySequenceAndRandom({messageList:Y,random:h,sequence:E}),O)return O.isRevoked=!0,O.revoker=D,O}}_findMessageBySequenceAndRandom({messageList:C,sequence:E,random:h}){for(let D=0;D<C.length;D+=1){const N=C[D];if(N.sequence===E&&(r(h)||N.random===h))return N}return null}prependLocalMessageList(C){const{messageList:E,conversationID:h}=C;if(E.length===0)return[];if(Nr)return E;const D=[],N=[],O=this._messagesByConversation.get(h)||new Map;for(const Y of E){const j=this._getUniqueIdOfMessage(Y);O.has(j)||(D.push(Y),N.push([j,Y]))}if(N.length>0){const Y=new Map([...N,...O.entries()]);this._messagesByConversation.set(h,Y),this._updateLatestMessageSentByMe(h),this._updateLatestMessageSentByPeer(h)}return D}storeSparseMessageList(C){if(C.length===0)return;const{conversationID:E}=C[0],h=C.length;this._sparseMessagesByConversation.has(E)||this._sparseMessagesByConversation.set(E,new Map);const D=this._sparseMessagesByConversation.get(E);for(let N=0;N<h;N++){const O=C[N];D.has(O.ID)||D.set(O.ID,O)}}_updateLatestMessageSentByMe(C){var E;const h=Array.from(((E=this._messagesByConversation.get(C))===null||E===void 0?void 0:E.values())||[]);if(h.length!==0){for(let D=h.length-1;D>=0;D--)if(h[D].flow==="out"){this._setLatestMsgSentByMe(C,h[D]);break}}}_updateLatestMessageSentByPeer(C){var E;const h=Array.from(((E=this._messagesByConversation.get(C))===null||E===void 0?void 0:E.values())||[]);if(h.length!==0&&C.startsWith("C2C")){for(let D=h.length-1;D>=0;D--)if(h[D].flow==="in"){this._setLatestMsgSentByPeer(C,h[D]);break}}}_getUniqueIdOfMessage(C){const{from:E,to:h,random:D,sequence:N,time:O}=C;return`${E}-${h}-${D}-${N}-${O}`}_setLatestMsgSentByPeer(C,E){this._latestMessageSentByPeerMap.set(C,E)}_setLatestMsgSentByMe(C,E){this._latestMessageSentByMeMap.set(C,E)}getLatestMsgSentByPeer(C){return this._latestMessageSentByPeerMap.get(C)}getLatestMsgSentByMe(C){return this._latestMessageSentByMeMap.get(C)}addRandomOfSentMessage(C){this._randomOfSentMessageList.add(C)}removeRandomOfSentMessage(C){this._randomOfSentMessageList.delete(C)}updateNickAndAvatarOfSentMessage(C){const{conversationID:E="",latestAvatar:h,latestNick:D,isSentByMe:N=!0}=C,O=this._messagesByConversation.get(E);if(!O)return;const Y=Array.from(O.values()),j=N?"out":"in";Y.forEach(IA=>{const{nick:BA,avatar:mA,flow:_A}=IA;_A===j&&(BA!==D&&(IA.nick=D),mA!==h&&(IA.avatar=h))})}isInMessageList(C){var E;const{conversationID:h}=C;if(!h||!this._messagesByConversation.has(h))return!1;const D=this._getUniqueIdOfMessage(C);return(E=this._messagesByConversation.get(h))===null||E===void 0?void 0:E.has(D)}isMessageSentByCurrentInstance(C){const{random:E}=C;return this._randomOfSentMessageList.has(E)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(C){const E=this._messagesByConversation.get(C);return E?[...E.values()]:[]}getSparseMessageList(C){const E=this._sparseMessagesByConversation.get(C);return E?[...E.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),ZA.notificationCenter.unSubscribeInnerEvent(Gt.LOGOUT,this._reset,this),ZA.notificationCenter.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}};function Zn(C,E){const h=Uc.getConversation(C);if(h?.lastMessage){const{lastMessage:D}=h,{lastTime:N,lastSequence:O,version:Y}=D,{time:j,sequence:IA,messageVersion:BA,elements:mA,cloudCustomData:_A}=E;N===j&&O===IA&&Y!==BA&&(D.type=mA[0].type,D.payload=mA[0].content,D.messageForShow=bc(D.type,D.payload),D.cloudCustomData=_A,D.version=BA,Uc.updateConversation(C,{lastMessage:D}))}}class Os{init(){Wo.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(E){return et(this,void 0,void 0,function*(){const{to:h,payload:D,sequence:N,conversationType:O,random:Y,time:j,from:IA,type:BA}=E;if(this._canModifyMessageElement(BA)){const mA=E?._elements||[];mA.length>=1&&(mA[0].type=BA,mA[0].content=D)}try{let mA=null,_A=null;if(O===En.CONV_C2C?mA=yield Yn(E):O===En.CONV_GROUP&&(mA=yield qg(E)),mA){let xA=`${O}${h}`;return h===Wr()&&O===En.CONV_C2C&&(xA=`${O}${IA}`),_A={conversationType:O,from:IA,to:h,time:j,random:Y,sequence:N,elements:mA?.elements,cloudCustomData:mA?.cloudCustomData,messageVersion:mA?.messageVersion,conversationID:xA},this._handleModifyMessageSuccess(_A),{code:0,data:{message:E},successLog:{message:`to:${h}`}}}}catch(mA){const{errorCode:_A}=mA||{};throw new lo({functionName:"modifyMessage",code:_A,moreMessage:`to:${h}`})}})}_handleModifyMessageSuccess(E){const{conversationID:h}=E,{isUpdated:D,message:N}=ZA.message.messageDataHandler.modifyConversationMessage(h,E);D===!0&&ZA.notificationCenter.emitOuterEvent(kr.MESSAGE_MODIFIED,{name:kr.MESSAGE_MODIFIED,data:[N]}),ZA.notificationCenter.emitInnerEvent(Gt.MESSAGE_MODIFIED,{conversationID:h,message:N}),Zn(h,E)}_canModifyMessageElement(E){return[Wa.MSG_TEXT,Wa.MSG_CUSTOM,Wa.MSG_LOCATION,Wa.MSG_FACE].includes(E)}}class Za{init(){const{notificationCenter:E}=ZA,{InnerEventSubType:h}=E;Ir.getInstance().registerWorkflowStep(cn.RECEIVE_C2C_NEW_MESSAGE,kt.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),Ir.getInstance().registerWorkflowStep(cn.RECEIVE_C2C_NEW_MESSAGE,kt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),Ir.getInstance().registerWorkflowStep(cn.SYNC_SERVER_INFO_AFTER_RE_ONLINE,kt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,h.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,h.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),E.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(E){Ir.getInstance().executeWorkflow(cn.RECEIVE_C2C_NEW_MESSAGE,E)}_handleC2CMessagePush(E){const h=E.data||{},{messageDataHandler:D}=ZA.message||{},N=[],O=new Map;return h.C2cMsgArray.forEach(Y=>{const j=this._generateC2CMessage(Y);this._updateMessageProfile(j);let IA=j.isModified===1;D.isMessageSentByCurrentInstance(j)?j.isModified=IA:IA=!1,j._onlineOnlyFlag?D.isMessageSentByCurrentInstance(j)||N.push(j):Hg(j)&&(D.storeConversationMessage(j)&&Jg({conversationUpdateFields:O,message:j}),D.isMessageSentByCurrentInstance(j)&&!IA||N.push(j))}),{conversationUpdateFieldList:[...O.values()],messages:N}}_emitMessageEventsAfterReceiveNewMessage(E){var h;const{messages:D=[]}=((h=E.result)===null||h===void 0?void 0:h[kt.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(D)}_emitMessageEventsAfterSyncUnreadMessage(E){var h;const{messages:D=[]}=((h=E.result)===null||h===void 0?void 0:h[kt.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(D)}_emitMessageEvents(E){const h=E?.filter(N=>N?.isModified===!0)||[];h.length>0&&ZA.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:h});const D=E?.filter(N=>!N?.isModified);D.length>0&&ZA.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:D})}_generateC2CMessage(E){const h=En.CONV_C2C,D=Pc(E),N=ZA.message.messageFactory.createMessage(Object.assign(Object.assign({},D),{conversationType:h,flow:li.IN})),{elements:O}=D;return N.setElement(O),N}_updateMessageProfile(E){var h;const{messageDataHandler:D}=ZA.message||{},N=(h=ZA.store.get("login"))===null||h===void 0?void 0:h.userId,{from:O,nick:Y,avatar:j,conversationID:IA=""}=E;if(O!==N){const BA=D.getLatestMsgSentByPeer(IA);if(BA){const{nick:mA,avatar:_A}=BA;r(Y)||r(j)?(E.nick=s(mA)?mA:E.nick,E.avatar=s(_A)?_A:E.avatar):Y===mA&&j===_A||(D.updateNickAndAvatarOfSentMessage({conversationID:IA,latestNick:Y,latestAvatar:j,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:IA,nick:Y,avatar:j}))}}else{const BA=D.getLatestMsgSentByMe(IA);!BA||Y===BA.nick&&j===BA.avatar||D.updateNickAndAvatarOfSentMessage({conversationID:IA,latestNick:Y,latestAvatar:j,isSentByMe:!0})}}_updateConversationUserProfile(E){const{conversationID:h,nick:D,avatar:N}=E,O=Uc.getConversation(h),{userProfile:Y={}}=O||{};Y.avatar===N&&Y.nick===D||Uc.updateConversation(h,{userProfile:Object.assign(Object.assign({},Y),{nick:D,avatar:N})})}_updateMessageListDueToModify(E){const{conversationID:h}=E,{isUpdated:D,message:N}=ZA.message.messageDataHandler.modifyConversationMessage(h,E);D===!0&&ZA.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[N]}),ZA.notificationCenter.emitInnerEvent("ModifyMessageSuccess",E),Zn(h,E)}_handleC2CMessageModify(E){E.C2cMsgModNotifys.forEach(h=>{var D;const N=En.CONV_C2C;let O=vE(h);const{to:Y,from:j}=O;let IA=`${N}${Y}`;Y===((D=ZA.store.get("login"))===null||D===void 0?void 0:D.userId)&&(IA=`${N}${j}`),O=Object.assign({conversationType:N,conversationID:IA},O),this._updateMessageListDueToModify(O)})}_dispose(){const{notificationCenter:E}=ZA,{InnerEventSubType:h}=E;ZA.notificationCenter.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,h.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),ZA.notificationCenter.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,h.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),ZA.notificationCenter.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}}class FE{init(){const{notificationCenter:E}=ZA,{InnerEventSubType:h}=E;Ir.getInstance().registerWorkflowStep(cn.RECEIVE_GROUP_NEW_MESSAGE,kt.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),Ir.getInstance().registerWorkflowStep(cn.RECEIVE_GROUP_NEW_MESSAGE,kt.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,h.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,h.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),E.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(E){this._canExecuteReceiverNewMessageWorkFlow(E)&&Ir.getInstance().executeWorkflow(cn.RECEIVE_GROUP_NEW_MESSAGE,E)}_handleGroupMessagePush(E){const h=E.data||{},{messageDataHandler:D}=ZA.message,N=[],O=new Map,Y=h?.GroupMsgArray;return Y?.forEach(j=>{if(j.GroupInfo.NotVisible===1)return;const IA=this._generateGroupMessage(j);this.updateMessageProfile(IA);let BA=IA.isModified===1;D.isMessageSentByCurrentInstance(IA)?IA.isModified=BA:BA=!1,IA._onlineOnlyFlag?D.isMessageSentByCurrentInstance(IA)||N.push(IA):Hg(IA)&&D.storeConversationMessage(IA)&&(N.push(IA),Jg({conversationUpdateFields:O,message:IA}))}),{conversationUpdateFieldList:[...O.values()],messages:N}}_emitMessageEvents(E){var h;const{messages:D}=((h=E.result)===null||h===void 0?void 0:h[kt.HANDLE_GROUP_NEW_MESSAGE])||{},N=D?.filter(Y=>Y?.isModified===!0)||[];N.length>0&&ZA.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:N});const O=D?.filter(Y=>!Y?.isModified)||[];O.length>0&&ZA.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:O})}_generateGroupMessage(E){const h=En.CONV_GROUP,D=di(E),N=ZA.message.messageFactory.createMessage(Object.assign(Object.assign({},D),{conversationType:h,flow:li.IN})),{elements:O}=D;return N.setElement(O),N}updateMessageProfile(E){var h;const{messageDataHandler:D}=ZA.message||{},N=(h=ZA.store.get("login"))===null||h===void 0?void 0:h.userId,{from:O,nick:Y,avatar:j,conversationID:IA="",_elements:BA}=E;if(O===N){const mA=D.getLatestMsgSentByMe(IA);!mA||Y===mA.nick&&j===mA.avatar||D.updateNickAndAvatarOfSentMessage({conversationID:IA,latestNick:Y,latestAvatar:j,isSentByMe:!0})}else if(O===vo.CONV_SYSTEM){const{operationType:mA,memberInfoList:_A,operatorInfo:xA}=BA;let Qe={};if($r(_A)?$r(xA)||(Qe=xA):[Qs.JOINED,Qs.KICKED,Qs.ADMIN_SET,Qs.ADMIN_CANCELED].includes(mA)&&(Qe=Object.assign({},_A[0])),!$r(Qe)){const{nick:Re="",avatar:Se=""}=Qe;E.nick=Re,E.avatar=Se}}}_updateMessageListDueToModify(E){const{conversationID:h}=E,{isUpdated:D,message:N}=ZA.message.messageDataHandler.modifyConversationMessage(h,E);D===!0&&ZA.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[N]}),Zn(h,E)}_handleGroupMessageModify(E){E.GroupMsgModNotifys.forEach(h=>{const D=En.CONV_GROUP;let N=NE(h);const{topicID:O,groupID:Y}=N,j=O||Y,IA=`${D}${j}`;N=Object.assign({conversationType:D,conversationID:IA,to:j},N),this._updateMessageListDueToModify(N)})}_dispose(){const{notificationCenter:E}=ZA,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:h,GROUP_MESSAGE_MODIFIED:D}}=E;E.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,h,this._handleGroupMessagePush,this),E.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,D,this._handleGroupMessageModify,this),E.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(E){var h,D;const{GroupId:N,GroupType:O}=((D=(h=E?.GroupMsgArray)===null||h===void 0?void 0:h[0])===null||D===void 0?void 0:D.GroupInfo)||{},Y=O===yl.GRP_AVCHATROOM;return!(!ms.getGroup(N)&&Y)}}var Yl=new class{constructor(){this.c2cMessageReceiver=new Za,this.groupMessageReceiver=new FE}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const UE={createCustomMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1},cloudCustomData:{required:!1,rules:["string"],allowEmpty:!1},priority:{required:!1,rules:["string"],allowEmpty:!1},customModerationConfigurationID:{required:!1,rules:["string"],allowEmpty:!1}},sendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],createTextMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:C=>!(!C.startsWith("C2C")&&!C.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:C=>function(E){var h;return typeof E?.text!="string"||typeof E.text=="string"&&((h=E?.text)===null||h===void 0?void 0:h.length)===0?"payload.text must be a string":!0}(C)}}},OE={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var Ac=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(C){return et(this,void 0,void 0,function*(){try{const{conversationID:E,count:h,direction:D,sequence:N,messageSequenceList:O,shouldMarkCompleted:Y=!1,getType:j}=C,IA=E.replace(us.CONV_GROUP,""),BA=[];let mA=N;if(D===wc.BACKWARD){if(typeof N!="number")return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};mA=N+h-1}const _A=yield GE({groupID:IA,count:h,messageSequence:mA,messageSequenceList:O,getType:j});if(_A){const{RspMsgList:xA=[],NextReqMsgSeq:Qe=0,IsFinished:Re,InvisibleMsgSeq:Se}=_A,At=`groupID:${IA} sequence:${N} reqSeq:${mA} direction:${D} complete:${Re} nextSequence:${Qe} remoteMsgCount:${xA.length} invisibleSequenceList:${Se}`,at=[];for(let ri=0;ri<xA.length;ri++){const St=xA[ri];St.From_Account===vo.CONV_SYSTEM&&BA.push(St);const eo=this._parseMessage(St);at.push(eo)}at.reverse();let jt=Re===wE;D===wc.BACKWARD&&(jt=at[at.length-1].sequence>=N),jt&&Y&&this.completedHistoryConversations.add(E);const Bi=TE(at);return ZA.ssoLog.info("getGroupRoamingMessagesByAnchor",At),{messageList:Bi,invisibleSequenceList:Se,nextReqMessageIDFromServer:Qe,hasNoMoreHistoryMessage:jt,serverGroupTipList:BA}}}catch(E){const{errorCode:h,errorInfo:D}=E||{};throw new lo({code:h,message:D})}})}clearHistoryMessageListFetchAnchors(C){this._historyMessageListFetchAnchors.delete(C)}isHistoryMessageFetchCompleted(C){return this.completedHistoryConversations.has(C)}_parseMessage(C){var E;const h=us.CONV_GROUP;C.Event===4&&(C.MsgBody.MsgType=vo.MSG_GRP_TIP);const D=di(C),N=ZI.createMessage(Object.assign(Object.assign({},D),{conversationType:h,flow:"in"}));return WI(((E=D.elements)===null||E===void 0?void 0:E.content)||{},N),N.setElement(D.elements),N}getC2CRoamingMessagesByAnchor(C){return et(this,void 0,void 0,function*(){var E;try{const{conversationID:h,count:D,messageID:N,time:O,direction:Y,shouldMarkCompleted:j=!1}=C;let IA=O,BA="";if(!O){const xA=N?ZA.message.messageDataHandler.findMessage(N):null;if(IA=xA?.time||0,N&&this._historyMessageListFetchAnchors.has(h)){const Qe=this._historyMessageListFetchAnchors.get(h);IA=Qe.lastMessageTime,BA=Qe.messageKey}}const mA=h.replace(us.CONV_C2C,""),_A=yield $I({count:D,lastMessageTime:IA,messageKey:BA,peerAccount:mA,direction:Y});if(_A){const{MsgList:xA=[],Complete:Qe,MsgKey:Re,LastMsgTime:Se}=_A;this._historyMessageListFetchAnchors.set(h,{messageKey:Re,lastMessageTime:Se});const At=[];for(let ri=0;ri<xA.length;ri++){const St=xA[ri],eo=this._parseC2CMessage(St);At.push(eo)}const at=TE(At),jt=(E=at[0])===null||E===void 0?void 0:E.ID,Bi=Qe===1;return Bi&&j&&this.completedHistoryConversations.add(h),{messageList:at,nextReqMessageIDFromServer:jt,lastMessageTime:Se,hasNoMoreHistoryMessage:Bi}}}catch(h){throw ZA.ssoLog.debug("getC2CRoamingMessagesByAnchor",An(h)),h}})}_parseC2CMessage(C){const E=us.CONV_C2C,h=Pc(C),D=ZI.createMessage(Object.assign(Object.assign({},h),{conversationType:E,flow:"in"}));return D.setElement(h.elements),D}reset(){this._historyMessageListFetchAnchors.clear(),this.completedHistoryConversations.clear()}};class ec{constructor(){this.messageHelper=Vg,this.messageDataProtocol=Ig,this.messageFactory=ZI,this.messageSender=new LE,this.messageAction=new Os,this.messageReceiver=Yl,this.messageDataHandler=_B,this.messageHistory=Ac,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),this.messageDataHandler.init(),Lg({auth:OE,params:UE}),ZA.notificationCenter.subscribeInnerEvent(Gt.LOGOUT,this._reset,this),ZA.notificationCenter.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}_reset(){this.messageHistory.reset()}_dispose(){this._reset(),ZA.notificationCenter.unSubscribeInnerEvent(Gt.LOGOUT,this._reset,this),ZA.notificationCenter.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}}const Xn="Tag_Profile_IM_",kn={NICK:`${Xn}Nick`,GENDER:`${Xn}Gender`,BIRTHDAY:`${Xn}BirthDay`,LOCATION:`${Xn}Location`,SELFSIGNATURE:`${Xn}SelfSignature`,ALLOWTYPE:`${Xn}AllowType`,LANGUAGE:`${Xn}Language`,AVATAR:`${Xn}Image`,MESSAGESETTINGS:`${Xn}MsgSettings`,ADMINFORBIDTYPE:`${Xn}AdminForbidType`,LEVEL:`${Xn}Level`,ROLE:`${Xn}Role`},ys="Tag_Profile_Custom",ln="profileCustomField",wn="USER_STATUS",Kg=1,cg=1e3,Rs={userID:"",nick:"",gender:"Gender_Type_Unknown",birthday:0,location:"",selfSignature:"",allowType:"AllowType_Type_AllowAny",language:0,avatar:"",messageSettings:0,adminForbidType:"AdminForbid_Type_None",level:0,role:0,lastUpdatedTime:0,profileCustomField:[]},Hc=new Map([[kn.NICK,"nick"],[kn.GENDER,"gender"],[kn.BIRTHDAY,"birthday"],[kn.LOCATION,"location"],[kn.SELFSIGNATURE,"selfSignature"],[kn.ALLOWTYPE,"allowType"],[kn.LANGUAGE,"language"],[kn.AVATAR,"avatar"],[kn.MESSAGESETTINGS,"messageSettings"],[kn.ADMINFORBIDTYPE,"adminForbidType"],[kn.LEVEL,"level"],[kn.ROLE,"role"]]);var Ms=new class{createProfile(C,E){const h={userID:C,profileCustomField:[]};return E.forEach(D=>{const{tag:N,value:O}=D;N&&N.indexOf(ys)>-1?h.profileCustomField.push({key:N,value:O}):Hc.has(N)&&(h[Hc.get(N)]=O)}),Object.assign(Object.assign({},Rs),h)}parseProfileItem(C=[]){const E=[];return C.forEach(h=>{E.push({tag:h.Tag,value:h.Value})}),E}parseProfileList(C=[]){const E=[];return C.forEach(h=>{E.push({tag:h.Tag,value:h.ValueBytes})}),E}convertParamsToProfile(C){const E=[];return Object.keys(C).forEach(h=>{h!==ln&&E.push({tag:kn[h.toUpperCase()],value:C[h]})}),C.profileCustomField&&B(C.profileCustomField)&&C.profileCustomField.forEach(h=>{E.push({tag:h.key,value:h.value})}),E}normalizeProfileFields(C){const E={},h=[];return C.forEach(D=>{const{tag:N,value:O}=D;if(N&&N.indexOf(ys)>-1&&h.push({key:N,value:O}),Hc.has(N)&&O!==void 0){const Y=Hc.get(N);E[Y]=O}}),h.length>0&&(E.profileCustomField=h),E}};const{generateProtocolData:Vc}=ZA.common;function Pl(C){return et(this,void 0,void 0,function*(){const E="profile.portrait_get_all",h={From_Account:Wr(),UserItem:[]};C.forEach(Y=>{h.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:Y})});const D=Vc({servcmd:E,data:h}),N=`${D.head.seq}${E}`,O=yield ZA.channel.sendPacket(D,{requestId:N});if(O)return function(Y){const{ActionStatus:j,ErrorCode:IA,ErrorDisplay:BA,ErrorInfo:mA,UserProfileItem:_A}=Y,xA=[];return _A.map(Qe=>{const{To_Account:Re,CustomSequence:Se,ResultCode:At,ResultInfo:at,StandardSequence:jt,ProfileItem:Bi}=Qe,ri=Ms.parseProfileItem(Bi);xA.push({userId:Re,customSequence:Se,resultCode:At,resultInfo:at,standardSequence:jt,profileItem:ri})}),{actionStatus:j,errorCode:IA,errorDisplay:BA,errorInfo:mA,userProfile:xA}}(O)})}function ma(C){return xn.getFriendMap().has(C)}const{isEmpty:tc}=ZA.utils;class bB{constructor(){this._strangerProfileMap=new Map}init(){Wo.getInstance().registerApi({apiName:"getMyProfile",context:this}),Wo.getInstance().registerApi({apiName:"getUserProfile",context:this}),Wo.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=Ms.createProfile.bind(Ms);const{notificationCenter:E}=ZA;Ir.getInstance().registerWorkflowStep(cn.SYNC_SERVER_INFO_AFTER_LOGIN,kt.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,E.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),E.subscribeInnerEvent(Gt.LOGOUT,this._reset,this),E.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}getMyProfile(){return et(this,void 0,void 0,function*(){try{const E=Wr(),h=yield Pl([E]);if(h){const D=this._handleProfileFormResponse(h)[0];return xn.getUserProfileMap().set(E,D),{code:0,data:D}}}catch(E){const{errorCode:h,errorInfo:D}=E;throw new lo({functionName:"getMyProfile",code:h,message:D})}})}getUserProfile(E){return et(this,void 0,void 0,function*(){try{let{userIDList:h}=E;const{userIdListToRequest:D,profileFromCache:N}=this._filterRequestAndCacheUsers(h);if(D.length===0)return{code:0,data:N,successLog:{message:`userIDList.length:${h.length}`}};D.length>cg&&(ZA.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),D.length=cg);const{data:O,error:Y}=yield this._batchFetchUserProfiles(D),j=D.length,IA=O.length,BA=j-IA;if(N.length===0&&j===BA&&!tc(Y))throw Y;if(B(O))return O.forEach(_A=>{ma(_A.userID)?xn.getUserProfileMap().set(_A.userID,_A):this._strangerProfileMap.set(_A.userID,_A)}),{code:0,data:O.concat(N),successLog:{message:`getUserProfile query:${j} success:${IA} fail:${BA} from cache:${N.length}`}}}catch(h){throw new lo(h)}})}getMyProfileCacheThenServer(){return et(this,void 0,void 0,function*(){const E=Wr(),h=xn.getUserProfileMap().has(E);return h?{code:0,data:h}:this.getMyProfile()})}updateMyProfile(E){return et(this,void 0,void 0,function*(){const h=Wr(),D={};for(const O in E)E[O]!==void 0&&(D[O]=E[O]);const N=Ms.convertParamsToProfile(D);try{yield function(BA){return et(this,void 0,void 0,function*(){const mA="profile.portrait_set",_A=Vc({servcmd:mA,data:BA}),xA=`${_A.head.seq}${mA}`,Qe=yield ZA.channel.sendPacket(_A,{requestId:xA});if(Qe){const{ActionStatus:Re,ErrorCode:Se,ErrorDisplay:At,ErrorInfo:at}=Qe;return{actionStatus:Re,errorCode:Se,errorDisplay:At,errorInfo:at}}})}({From_Account:h,ProfileItem:N});const Y=xn.getUserProfile(h);let j;j=Y?Object.assign(Object.assign({},Y),D):Ms.createProfile(h,N);const IA=!cI(Y,j,["lastUpdatedTime"]);return j.lastUpdatedTime=Date.now(),xn.getUserProfileMap().set(h,j),IA&&this._emitProfileUpdated(j),{code:0,data:j,successLog:{message:`profileArray: ${ZA.utils.safeStringify(N)}`}}}catch(O){const{errorCode:Y,errorInfo:j}=O;throw new lo({functionName:"updateMyProfile",code:Y,message:j,moreMessage:`params: ${ZA.utils.safeStringify(E)}`})}})}updateMyNickAndAvatar(E){return et(this,void 0,void 0,function*(){const h=Wr(),D=Date.now(),N=xn.getUserProfile(h);let O={};O=N?Object.assign(N,E):Ms.createProfile(h,E),O.lastUpdatedTime=D,xn.getUserProfileMap().set(h,O)})}_onProfileDataModify(E){const h=function(O){const{Profile_Account:Y,PushType:j,ProfileList:IA}=O;return{userId:Y,pushType:j,profileList:Ms.parseProfileList(IA)}}(E.ProfileDataMod[0]);if(tc(h))return;const{isProfileUpdated:D,profile:N}=this._handleProfileModified(h);D&&this._emitProfileUpdated(N)}_emitProfileUpdated(E){ZA.notificationCenter.emitInnerEvent(Gt.PROFILE_UPDATE,{name:Gt.PROFILE_UPDATE,data:[E]}),ZA.notificationCenter.emitOuterEvent(kr.PROFILE_UPDATED,{name:kr.PROFILE_UPDATED,data:[E]}),Uc.updateConversation(`C2C${E?.userID}`,{userProfile:E})}_dispose(){const{notificationCenter:E}=ZA;E.unSubscribeInnerEvent(Gt.LOGOUT,this._reset,this),E.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,E.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),E.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(E){const{userId:h,profileList:D}=E,N=xn.getUserProfile(h);if(!(Wr()===h||ma(h)&&N))return{isProfileUpdated:!1,profile:null};const O=Ms.normalizeProfileFields(D),Y=Object.keys(O).some(mA=>mA===ln?this._isCustomFieldChanged(N.profileCustomField,O.profileCustomField):N[mA]!==O[mA]);if(!Y)return{isProfileUpdated:!1,profile:N};const j=Date.now(),IA=Object.prototype.hasOwnProperty.call(O,ln)?this._mergeProfileCustomField(N.profileCustomField,O.profileCustomField):N.profileCustomField,BA=Object.assign(Object.assign(Object.assign({},N),O),{profileCustomField:IA,lastUpdatedTime:j});return xn.getUserProfileMap().set(h,BA),{isProfileUpdated:Y,profile:BA}}_filterRequestAndCacheUsers(E){const h=[],D=[];return E.forEach(N=>{const O=xn.getUserProfileMap().has(N);ma(N)&&O?D.push(xn.getUserProfile(N)):this._isStrangerAndProfileValid(N)?D.push(this._strangerProfileMap.get(N)):h.push(N)}),{userIdListToRequest:h,profileFromCache:D}}_handleProfileFormResponse(E){const{userProfile:h}=E;if(!Array.isArray(h))return[];const D=h.filter(O=>O.userId!=="@TLS#NOT_FOUND"&&O.userId!==""&&!tc(O.profileItem)),N=Date.now();return D.map(O=>{const Y=Ms.createProfile(O.userId,O.profileItem);return Y.lastUpdatedTime=N,Y})}_isStrangerAndProfileValid(E){var h;if(!ma(E)){const{lastUpdatedTime:D=0}=this._strangerProfileMap.get(E)||{},N=((h=ZA.store.get("cloudConfig"))===null||h===void 0?void 0:h.stranger_profile_expiration_time)||6e5;return Date.now()-D<=N}return!1}_chunkUserIDList(E,h){return Array.from({length:Math.ceil(E.length/h)},(D,N)=>E.slice(N*h,(N+1)*h))}_batchFetchUserProfiles(E){return et(this,void 0,void 0,function*(){const h=[],D=[];let N={};return this._chunkUserIDList(E,100).forEach(O=>{h.push(Pl(O))}),(yield Promise.allSettled(h)).forEach(O=>{if(O.status==="fulfilled"){const Y=O.value,j=this._handleProfileFormResponse(Y);B(j)&&D.push(...j)}else if(O.status==="rejected"){const{code:Y,message:j}=O.reason||{};N={errorCode:Y,message:j}}}),{data:D,error:N}})}_isCustomFieldChanged(E=[],h=[]){if(!B(h)||h.length===0)return!1;if(!B(E)||E.length===0)return!0;const D=new Map(E.map(N=>[N.key,N.value]));return h.some(N=>D.get(N.key)!==N.value)}_mergeProfileCustomField(E=[],h=[]){const D=B(E)?E.map(N=>Object.assign({},N)):[];return B(h)&&h.length!==0&&h.forEach(({key:N,value:O})=>{const Y=D.find(j=>j.key===N);Y?Y.value=O:D.push({key:N,value:O})}),D}_reset(){xn.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const Jl=new Map,Hl=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let C=0,E=Hl.length;C<E;C++)Jl.set(C,Hl[C]);function qc(C){if(!C)return"";const E=String(C).replace(/[=]+$/,"");let h="";if(E.length%4==1)return"";for(let D,N,O=0,Y=0;N=E.charAt(Y++);~N&&(D=O%4?64*D+N:N,O++%4)?h+=String.fromCharCode(255&D>>(-2*O&6)):0)N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(N);try{return decodeURIComponent(escape(h))}catch(D){return console.warn(D),""}}const{isEmpty:xE}=ZA.utils,{generateProtocolData:Ci}=ZA.common;function Vl(C){return et(this,void 0,void 0,function*(){const E="im_open_status.ws_get_user_status",h=Ci({servcmd:E,data:{To_Account:C}}),D=`${h.head.seq}${E}`,N=yield ZA.channel.sendPacket(h,{requestId:D});if(N)return function(O){const{ErrorCode:Y,ErrorInfo:j,ErrorList:IA=[],UserStatusList:BA=[]}=O,mA=BA.map(xA=>{const{To_Account:Qe,Status:Re,CustomStatus:Se,Detail:At=[]}=xA;return{userID:Qe,statusType:Re,customStatus:qc(Se),onlineDevices:YE(At)}}),_A=IA.map(xA=>{const{To_Account:Qe,Invalid_Account:Re,ErrorCode:Se,ErrorInfo:At}=xA;return{userID:xE(Re)?Qe:Re,code:Se,message:At}});return{errorCode:Y,errorInfo:j,successUserList:mA,failureUserList:_A}}(N)})}function YE(C){const E=[];return C?.forEach(h=>{const{Platform:D,Status:N}=h;N==="Online"&&E.push(D)}),E}class LB{constructor(){this._customStatus=""}init(){const{notificationCenter:E}=ZA;Wo.getInstance().registerApi({apiName:"getUserStatus",context:this}),Wo.getInstance().registerApi({apiName:"setSelfStatus",context:this}),Wo.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),Wo.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),Ir.getInstance().registerWorkflowStep(cn.SYNC_SERVER_INFO_AFTER_RE_ONLINE,kt.USER_STATUS_UPDATE,this._onReOnline,this),E.subscribeInnerEvent(Gt.MESSAGE_PUSH,E.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),E.subscribeInnerEvent(Gt.LOGOUT,this._reset,this),E.subscribeInnerEvent(Gt.DESTROY,this._dispose,this)}setSelfStatus(E){return et(this,void 0,void 0,function*(){const h=Wr(),{customStatus:D}=E;try{return yield function(N){return et(this,void 0,void 0,function*(){const O="im_open_status.ws_set_custom_status",Y=Ci({servcmd:O,data:{CustomStatus:N}}),j=`${Y.head.seq}${O}`,IA=yield ZA.channel.sendPacket(Y,{requestId:j});if(IA){const{ErrorCode:BA,ErrorInfo:mA}=IA;return{errorCode:BA,errorInfo:mA}}})}(D),this._customStatus=D,{code:0,data:{userID:h,statusType:Kg,customStatus:D},successLog:{message:`customStatus: ${D}`}}}catch(N){const{errorCode:O,errorInfo:Y}=N;throw new lo({functionName:"setSelfStatus",code:O,message:Y})}})}getUserStatus(E){return et(this,void 0,void 0,function*(){const{userIDList:h=[]}=E;if(this._isOnlyMeInArray(h))return this._getMyStatus();const D=yield this._getUserStatus(h);return Object.assign(Object.assign({},D),{successLog:{message:`userIDList length: ${h.length}`}})})}setCustomStatus(E){const h=qc(E);this._customStatus=h}subscribeUserStatus(E){return et(this,void 0,void 0,function*(){try{const{userIDList:h=[]}=E;this._checkBusinessCapabilityBits("subscribeUserStatus");const D=this._getMaxUserCount("subscribe"),N=this._sliceUserIDList(h,D),O=yield function(j){return et(this,void 0,void 0,function*(){const{channel:IA}=ZA,BA="im_open_status.ws_status_subscribe",mA=Ci({servcmd:BA,data:{To_Account:j}}),_A=`${mA.head.seq}${BA}`;return yield IA.sendPacket(mA,{requestId:_A})})}(N),Y=this._parseResponse(O);return{code:0,data:{failureUserList:Y},successLog:{message:`userID length:${h.length} failCount: ${Y.length}`}}}catch(h){const{errorCode:D}=h;throw new lo({functionName:"subscribeUserStatus",code:D})}})}unsubscribeUserStatus(E){return et(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:h=[]}=E,D=this._getMaxUserCount("unsubscribe"),N=this._sliceUserIDList(h,D),O=yield function(j){return et(this,void 0,void 0,function*(){const{channel:IA}=ZA,BA="im_open_status.ws_status_unsubscribe";let mA={};mA=j.length===0?{UnsubscribeAll:1}:{To_Account:j};const _A=Ci({servcmd:BA,data:mA}),xA=`${_A.head.seq}${BA}`;return yield IA.sendPacket(_A,{requestId:xA})})}(N),Y=this._parseResponse(O);return{code:0,data:{failureUserList:Y},successLog:{message:`userID length:${h.length} failCount: ${Y.length}`}}}catch(h){const{errorCode:D}=h;throw new lo({functionName:"unsubscribeUserStatus",code:D})}})}_onUserStatusUpdate(E){const{UserStatusList:h=[]}=E||{},D=h.map(N=>{const{To_Account:O,Status:Y,CustomStatus:j,Platform:IA}=N,BA={userID:O,statusType:Y,customStatus:qc(j)};return IA&&(BA.onlineDevices=IA),BA});this._emitUserStatusUpdatedEvent(D)}_onReOnline(E){const h=qc(E.data.customStatus);if(this._customStatus===h)return;this._customStatus=h;const D={userID:Wr(),statusType:Kg,customStatus:h};this._emitUserStatusUpdatedEvent(D)}_emitUserStatusUpdatedEvent(E){ZA.notificationCenter.emitOuterEvent(kr.USER_STATUS_UPDATED,{name:kr.USER_STATUS_UPDATED,data:E})}_sliceUserIDList(E,h){return E.slice(0,h)}_parseResponse(E){const{ErrorList:h=[]}=E;return h.map(D=>{const{To_Account:N,Invalid_Account:O,ErrorCode:Y,ErrorInfo:j}=D;return{userID:ZA.utils.isEmpty(O)?N:O,code:Y,message:j}})}_checkBusinessCapabilityBits(E){if(!ZA.store.get("commercialConfig").get(wn))throw new lo({functionName:E,code:Qa.NO_USE,replacement1:E})}_getMaxUserCount(E){const h=ZA.store.get("cloudConfig")||{},D={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:N,default:O}=D[E],Y=h[N]||O;return parseInt(Y,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:Wr(),statusType:Kg,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(E){return et(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const h=this._getMaxUserCount("query"),D=this._sliceUserIDList(E,h),N=yield Vl(D),{successUserList:O,failureUserList:Y}=N||{};return{code:0,data:{successUserList:O,failureUserList:Y}}}catch(h){const{errorCode:D}=h;throw new lo({functionName:"getUserStatus",code:D})}})}_isOnlyMeInArray(E){const h=Wr();return E.length===1&&E.indexOf(h)>-1}_dispose(){const{notificationCenter:E}=ZA;E.unSubscribeInnerEvent(Gt.MESSAGE_PUSH,E.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),E.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this),E.unSubscribeInnerEvent(Gt.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const L={getUserProfile:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},updateMyProfile:{nick:{required:!1,rules:["string"],allowEmpty:!0},avatar:{required:!1,rules:["string"],allowEmpty:!0},gender:{required:!1,rules:["string"],allowEmpty:!0},selfSignature:{required:!1,rules:["string"],allowEmpty:!0},allowType:{required:!1,rules:["string"],allowEmpty:!0},birthday:{required:!1,rules:["number"],allowEmpty:!1},language:{required:!1,rules:["string"],allowEmpty:!0},messageSettings:{required:!1,rules:["string"],allowEmpty:!0},adminForbidType:{required:!1,rules:["string"],allowEmpty:!0},level:{required:!1,rules:["number"],allowEmpty:!1},role:{required:!1,rules:["number"],allowEmpty:!0},profileCustomField:{required:!1,rules:["array"],allowEmpty:!0,customValidator:function(C){for(const E of C){if(typeof E!="object")return"Each item in profileCustomField must be an object";if(typeof E?.key!="string")return"Each item.key in profileCustomField must be a string";if(!E?.key.startsWith(ys))return'Each item.key in profileCustomField must start with "Tag_Profile_Custom"'}return!0}}},setSelfStatus:{customStatus:{required:!0,rules:["string"],allowEmpty:!0}},getUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},subscribeUserStatus:{userIDList:{required:!0,rules:["array"],allowEmpty:!1}},unsubscribeUserStatus:{userIDList:{required:!1,rules:["array"],allowEmpty:!0}}},w={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class q{constructor(){this.userProfile=new bB,this.userStatus=new LB,this.userProfile.init(),this.userStatus.init(),Lg({auth:w,params:L})}}function y(C){const E=[];if(!s(C))return E;const h=C.length;if(h===0)return E;for(let D=h-1;D>=0;D--)C[D]==="1"&&E.push(2**(h-D-1));return E}var T,V,$;(function(C){C.NOT_START="notStart",C.PENDING="pending",C.RESOLVED="resolved",C.REJECTED="rejected"})(T||(T={})),function(C){C[C.C2C=1]="C2C",C[C.GROUP=2]="GROUP"}(V||(V={})),function(C){C[C.C2C=8]="C2C",C[C.GROUP=2]="GROUP"}($||($={}));class CA{constructor(){this._name="SyncConversationHandler",this._pagingStatus=T.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:E}=ZA;Ir.getInstance().registerWorkflowStep(cn.SYNC_SERVER_INFO_AFTER_RE_ONLINE,kt.CONVERSATION_RECOVER,this._syncConversationList,this),Ir.getInstance().registerWorkflowStep(cn.SYNC_SERVER_INFO_AFTER_LOGIN,kt.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),E.subscribeInnerEvent(Gt.LOGOUT,this._reset,this),E.subscribeInnerEvent(Gt.DESTROY,this._dispose,this),ZA.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===T.RESOLVED}_syncConversationListAfterLogin(){return et(this,void 0,void 0,function*(){return this._pagingStatus=T.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return et(this,void 0,void 0,function*(){const{ssoLog:E,utils:{safeStringify:h}}=ZA;E.debug("_syncConversationList","start");try{const D=yield this._pagingGetConversationList(!0);this._pagingStatus=T.RESOLVED;const{conversationList:N=[]}=D||{};return E.info("_syncConversationList",`success count:${N.length}`),D}catch(D){const N=new lo(D);E.error("_syncConversationList",`fail ${h(D)}`,{error:N})}})}_pagingGetConversationList(E){return et(this,void 0,void 0,function*(){try{const h=[];this._pagingStatus=T.PENDING;const D=yield function(_A){return et(this,void 0,void 0,function*(){const{fromAccount:xA,pagingTimeStamp:Qe,pagingStartIndex:Re,pagingPinnedTimeStamp:Se,pagingPinnedStartIndex:At}=_A;return Ls({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:xA,StartIndex:Re,TimeStamp:Qe,TopStartIndex:At,TopTimeStamp:Se}})})}({fromAccount:Wr(),pagingTimeStamp:E?this._pagingTimeStamp:0,pagingStartIndex:E?this._pagingStartIndex:0,pagingPinnedTimeStamp:E?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:E?this._pagingPinnedStartIndex:0}),{CompleteFlag:N,SessionItem:O=[],TimeStamp:Y,StartIndex:j,TopTimeStamp:IA,TopStartIndex:BA}=D||{};let mA=[];if(N===1&&(this._pagingStatus=T.RESOLVED),O.length>0&&(mA=this._getConversationOptions(O),h.push(...mA)),ZA.notificationCenter.emitInnerEvent(Gt.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:mA}),this._pagingTimeStamp=Y,this._pagingStartIndex=j,this._pagingPinnedTimeStamp=IA,this._pagingPinnedStartIndex=BA,N!==1){const{conversationList:_A}=yield this._pagingGetConversationList(E);h.push(..._A)}return{conversationList:h}}catch(h){throw h}})}_getConversationOptions(E){const{utils:{isUndefined:h}}=ZA,D=this._convertConversationKey(E);return this._filterValidConversations(D).map(N=>(h(N.lastMsg)&&(N.lastMsg={elements:[]}),N.type===V.C2C?this._assembleC2COption(N):this._assembleGroupOption(N)))}_filterValidConversations(E){return E.filter(({type:h,userID:D})=>h===V.C2C&&!function(N){let O;return N.startsWith(vo.CONV_C2C)&&(O=N.replace(vo.CONV_C2C,"")),O==="@TLS#ERROR"||O==="@TLS#NOT_FOUND"}(D)||h===2)}_assembleC2COption(E){var h,D,N,O,Y,j,IA,BA;const mA=this._createUserprofile(E);return{conversationID:`${vo.CONV_C2C}${E.userID}`,type:vo.CONV_C2C,lastMessage:{lastTime:E.time,lastSequence:E.sequence,fromAccount:E.lastC2CMsgFromAccount,type:!((h=E.lastMsg)===null||h===void 0)&&h.elements[0]?(D=E.lastMsg)===null||D===void 0?void 0:D.elements[0].type:null,payload:!((N=E.lastMsg)===null||N===void 0)&&N.elements[0]?this._amendLayersOverLimitProp(E.lastMsg.elements[0].content):null,cloudCustomData:((j=(Y=(O=E.lastMsg)===null||O===void 0?void 0:O.elements)===null||Y===void 0?void 0:Y[0])===null||j===void 0?void 0:j.cloudCustomData)||"",isRevoked:E.lastMessageFlag===$.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(E),revoker:((BA=(IA=E.lastMsg)===null||IA===void 0?void 0:IA.revokerInfo)===null||BA===void 0?void 0:BA.revoker)||null},unreadCount:0,userProfile:mA,peerReadTime:E.peerReadTime,isPinned:E.isPinned===1,customData:E.customMark||"",markList:y(E.standardMark),conversationGroupList:[],remark:E.friendRemark||"",messageRemindType:this._transMsgRemindType(E.messageRemindType)}}_createUserprofile(E){var h;const{userID:D,nick:N,peerAvatar:O}=E,Y=[{tag:"Tag_Profile_IM_Nick",value:N},{tag:"Tag_Profile_IM_Image",value:O}];return(h=ZA.user.userProfile)===null||h===void 0?void 0:h.createProfile(D,Y)}_computeIsPeerRead(E){const h=Wr(),{lastC2CMsgFromAccount:D,time:N,c2cPeerReadTime:O}=E;return D===h&&N<=O}_assembleGroupOption(E){var h,D,N,O,Y;return{conversationID:`${vo.CONV_GROUP}${E.groupID}`,type:vo.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:E.time,lastSequence:E.sequence,fromAccount:E.msgGroupFromAccount},this._patchTypeAndPayload(E)),{cloudCustomData:((N=(D=(h=E.lastMsg)===null||h===void 0?void 0:h.elements)===null||D===void 0?void 0:D[0])===null||N===void 0?void 0:N.cloudCustomData)||"",isRevoked:E.lastMessageFlag===$.GROUP,onlineOnlyFlag:!1,nick:E.msgGroupFromNickName||"",nameCard:E.msgGroupFromCardName||"",revoker:((Y=(O=E.lastMsg)===null||O===void 0?void 0:O.revokerInfo)===null||Y===void 0?void 0:Y.revoker)||null}),groupProfile:{groupID:E.groupID,name:E.groupNick,avatar:E.groupImage,type:E.groupType,nextMessageSeq:E.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(E),peerReadTime:0,isPinned:E.isPinned===1,version:0,customData:E.customMark||"",markList:y(E.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(E.messageRemindType),subType:E.groupType}}_convertConversationKey(E){return E.map(h=>({type:h.Type,userID:h.To_Account,nick:h.C2cNick,peerAvatar:h.C2cImage,time:h.MsgTimeStamp,sequence:h.MsgSeq,lastC2CMsgFromAccount:h.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(h.LastMsg),lastMessageFlag:h.LastMsgFlags,c2cPeerReadTime:h.C2cPeerReadTime,peerReadTime:h.C2cPeerReadTime,friendRemark:h.C2cRemark,isPinned:h.TopFlags,standardMark:h.StandardMark,customMark:h.CustomMark,messageRemindType:h.MsgRecvOption,groupID:h.ToAccount,groupNick:h.GroupNick,groupImage:h.GroupImage,groupType:h.GroupType,nextMessageSeq:h.GroupNextMsgSeq,msgGroupFromAccount:h.MsgGroupFrom_Account,msgGroupFromNickName:h.MsgGroupFromNickName,msgGroupFromCardName:h.MsgGroupFromCardName,unreadCount:h.UnreadMsgCount,noUnreadCount:h.GroupIgnoredUnreadSeqCount}))}_convertLastMsgKey(E){var h,D,N;const{utils:{isEmpty:O}}=ZA;if(O(E))return null;let Y="",j=null;if(!O(E.GroupTips)){const{From_Account:IA,GroupName:BA}=((h=E.GroupTips)===null||h===void 0?void 0:h.GroupInfo)||{};Y=vo.MSG_GRP_TIP,j=Object.assign(Object.assign({},this._parseContent(Y,E.GroupTips.MsgBody)),{groupProfile:{from:IA,groupName:BA}})}return E.MsgBody&&(Y=(D=E.MsgBody[0])===null||D===void 0?void 0:D.MsgType,j=this._parseContent(Y,E.MsgBody[0])),{event:E.Event,elements:[{type:Y,content:j,cloudCustomData:E.CloudCustomData}],revokerInfo:{revoker:(N=E.RevokerInfo)===null||N===void 0?void 0:N.Revoker_Account}}}_parseContent(E,h){var D;if(!h)return h;const N=ZA.message.messageFactory.getElementClass(E);return N?(D=N.parseServerPushElement(h))===null||D===void 0?void 0:D.content:h}_amendLayersOverLimitProp(E){const{LayersOverLimit:h}=E;return Vo(E,["LayersOverLimit"]).layersOverLimit=h===1,E}_transMsgRemindType(E){let h="";return E===0?h=vo.MSG_REMIND_ACPT_AND_NOTE:E===1?h=vo.MSG_REMIND_DISCARD:E===2?h=vo.MSG_REMIND_ACPT_NOT_NOTE:E===3&&(h=vo.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),h}_patchTypeAndPayload(E){var h;const{utils:{isUndefined:D}}=ZA,{event:N,elements:O=[]}=E.lastMsg||{};return D(N)?{type:O[0]?O[0].type:null,payload:O[0]?this._amendLayersOverLimitProp(O[0].content):null}:{type:vo.MSG_GRP_TIP,payload:((h=O?.[0])===null||h===void 0?void 0:h.content)||{}}}_computeGroupUnreadCount(E){const{unreadCount:h=0,noUnreadCount:D=0}=E,N=h-D;return N>0?N:0}_reset(){this._pagingStatus=T.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:E}=ZA;E.unSubscribeInnerEvent(Gt.LOGOUT,this._reset,this),E.unSubscribeInnerEvent(Gt.DESTROY,this._dispose,this)}}class NA{constructor(){this.syncConversationHandler=new CA,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Ia}`);var KA={create:function(C){var E,h;const{SDKAppID:D,testEnv:N=!1,devMode:O=!1,unlimitedAVChatRoom:Y=!1,scene:j="",oversea:IA=!1,instance:BA,disableIndependentDomain:mA=!1,proxyServer:_A=""}=C;let xA=D;if(!function(Re){if(typeof Re=="number")return!0;const Se=Number(Re);return!Number.isNaN(Se)}(xA))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(xA=Number(xA),og.has(xA))return og.get(xA);let Qe=null;if(BA)Qe=BA,Qe._workflowManager&&Ir.setInstance(Qe._workflowManager),Qe._pluginManager&&Qe._pluginManager.installBuiltInPlugin(Mn),BA.isReady()&&((h=(E=Ir.getInstance()).executeWorkflow)===null||h===void 0||h.call(E,cn.SYNC_SERVER_INFO_AFTER_LOGIN));else{const Re=function(){function ri(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${ri()+ri()}${ri()}${ri()}${ri()}${ri()}${ri()}${ri()}`}();ZA.init({sdkAppId:xA,instanceId:Re,testEnv:N,devMode:O,unlimitedAVChatRoom:Y,disableIndependentDomain:mA,scene:j,oversea:IA,sdkEdition:bl,version:Ia,proxyServer:_A}),Ir.getInstance().init(),ZA.message=new ec,ZA.user=new q,ZA.login=new gg,ZA.conversation=new NA,fs.getInstance().installBuiltInPlugin(Mn),Qe=Wo.getInstance().exposeApiForClient(),Qe._workflowManager=Ir.getInstance(),Qe._pluginManager=fs.getInstance();const{utils:{IS_WORKER_AVAILABLE:Se,USER_AGENT:At,getPlatformType:at,isIOSWebView:jt}}=ZA,Bi=`instanceID:${Re} SDKAppID:${D} platform:${MA} host:${at()} isIOSWebView:${jt} workerAvailable:${Se} UserAgent:${At}`;ZA.ssoLog.info("sdkConstruct",Bi)}return og.set(xA,Qe),Qe},TSignaling:Dl,EVENT:kr,VERSION:Ia,TYPES:vo};return KA})}(d2)),d2.exports}var fG={exports:{}},h2={exports:{}},SrA=h2.exports,c5;function vrA(){return c5||(c5=1,function(t,i){(function(r,s){t.exports=s()})(SrA,function(){function r(A,e){return e.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(n){if(n!=="default"&&!(n in A)){var a=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(A,n,a.get?a:{enumerable:!0,get:function(){return o[n]}})}})}),Object.freeze(A)}var s=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof bI<"u"?bI:typeof self<"u"?self:{};function g(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var B=function(A){return A&&A.Math===Math&&A},Q=B(typeof globalThis=="object"&&globalThis)||B(typeof window=="object"&&window)||B(typeof self=="object"&&self)||B(typeof s=="object"&&s)||B(typeof s=="object"&&s)||function(){return this}()||Function("return this")(),f={},m=function(A){try{return!!A()}catch{return!0}},M=!m(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),v=!m(function(){var A=function(){}.bind();return typeof A!="function"||A.hasOwnProperty("prototype")}),U=v,AA=Function.prototype.call,z=U?AA.bind(AA):function(){return AA.apply(AA,arguments)},sA={},eA={}.propertyIsEnumerable,X=Object.getOwnPropertyDescriptor,QA=X&&!eA.call({1:2},1);sA.f=QA?function(A){var e=X(this,A);return!!e&&e.enumerable}:eA;var wA,HA,VA=function(A,e){return{enumerable:!(1&A),configurable:!(2&A),writable:!(4&A),value:e}},ue=v,jA=Function.prototype,Ve=jA.call,Ze=ue&&jA.bind.bind(Ve,Ve),Me=ue?Ze:function(A){return function(){return Ve.apply(A,arguments)}},qe=Me,Et=qe({}.toString),Je=qe("".slice),$e=function(A){return Je(Et(A),8,-1)},Dt=m,Zi=$e,bi=Object,qt=Me("".split),ai=Dt(function(){return!bi("z").propertyIsEnumerable(0)})?function(A){return Zi(A)==="String"?qt(A,""):bi(A)}:bi,Ki=function(A){return A==null},Ur=Ki,Er=TypeError,no=function(A){if(Ur(A))throw new Er("Can't call method on "+A);return A},Kn=ai,Xi=no,yr=function(A){return Kn(Xi(A))},lr=typeof document=="object"&&document.all,Ni=lr===void 0&&lr!==void 0?function(A){return typeof A=="function"||A===lr}:function(A){return typeof A=="function"},wt=Ni,Ji=function(A){return typeof A=="object"?A!==null:wt(A)},Di=Q,ar=Ni,MA=function(A,e){return arguments.length<2?(o=Di[A],ar(o)?o:void 0):Di[A]&&Di[A][e];var o},YA=Me({}.isPrototypeOf),pe=Q.navigator,st=pe&&pe.userAgent,Te=st?String(st):"",be=Q,yt=Te,ht=be.process,ae=be.Deno,ye=ht&&ht.versions||ae&&ae.version,Xe=ye&&ye.v8;Xe&&(HA=(wA=Xe.split("."))[0]>0&&wA[0]<4?1:+(wA[0]+wA[1])),!HA&&yt&&(!(wA=yt.match(/Edge\/(\d+)/))||wA[1]>=74)&&(wA=yt.match(/Chrome\/(\d+)/))&&(HA=+wA[1]);var ot=HA,zt=ot,yi=m,Hi=Q.String,Ei=!!Object.getOwnPropertySymbols&&!yi(function(){var A=Symbol("symbol detection");return!Hi(A)||!(Object(A)instanceof Symbol)||!Symbol.sham&&zt&&zt<41}),ji=Ei&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Xo=MA,sr=Ni,Lo=YA,Nr=Object,Vo=ji?function(A){return typeof A=="symbol"}:function(A){var e=Xo("Symbol");return sr(e)&&Lo(e.prototype,Nr(A))},et=String,Kr=function(A){try{return et(A)}catch{return"Object"}},Qn=Ni,ho=Kr,jn=TypeError,$t=function(A){if(Qn(A))return A;throw new jn(ho(A)+" is not a function")},$r=$t,On=Ki,An=function(A,e){var o=A[e];return On(o)?void 0:$r(o)},Tr=z,ei=Ni,Es=Ji,jr=TypeError,Gr={exports:{}},$o=Q,sn=Object.defineProperty,dn=function(A,e){try{sn($o,A,{value:e,configurable:!0,writable:!0})}catch{$o[A]=e}return e},hn=Q,Gi=dn,pn="__core-js_shared__",nI=Gr.exports=hn[pn]||Gi(pn,{});(nI.versions||(nI.versions=[])).push({version:"3.47.0",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE",source:"https://github.com/zloirock/core-js"});var gr=Gr.exports,gn=gr,Yo=function(A,e){return gn[A]||(gn[A]=e||{})},Tg=no,So=Object,ao=function(A){return So(Tg(A))},EE=ao,Ta=Me({}.hasOwnProperty),po=Object.hasOwn||function(A,e){return Ta(EE(A),e)},Ja=Me,Mc=0,Qr=Math.random(),Fo=Ja(1.1.toString),$s=function(A){return"Symbol("+(A===void 0?"":A)+")_"+Fo(++Mc+Qr,36)},Ha=Yo,Gs=po,Ga=$s,Rr=Ei,Ia=ji,fo=Q.Symbol,aI=Ha("wks"),en=Ia?fo.for||fo:fo&&fo.withoutSetter||Ga,qo=function(A){return Gs(aI,A)||(aI[A]=Rr&&Gs(fo,A)?fo[A]:en("Symbol."+A)),aI[A]},Gg=z,kg=Ji,fn=Vo,ls=An,Or=function(A,e){var o,n;if(e==="string"&&ei(o=A.toString)&&!Es(n=Tr(o,A))||ei(o=A.valueOf)&&!Es(n=Tr(o,A))||e!=="string"&&ei(o=A.toString)&&!Es(n=Tr(o,A)))return n;throw new jr("Can't convert object to primitive value")},Po=TypeError,Ba=qo("toPrimitive"),Mr=function(A,e){if(!kg(A)||fn(A))return A;var o,n=ls(A,Ba);if(n){if(e===void 0&&(e="default"),o=Gg(n,A,e),!kg(o)||fn(o))return o;throw new Po("Can't convert object to primitive value")}return e===void 0&&(e="number"),Or(A,e)},Cs=Mr,Va=Vo,P=function(A){var e=Cs(A,"string");return Va(e)?e:e+""},F=Ji,EA=Q.document,RA=F(EA)&&F(EA.createElement),GA=function(A){return RA?EA.createElement(A):{}},WA=GA,Ce=!M&&!m(function(){return Object.defineProperty(WA("div"),"a",{get:function(){return 7}}).a!==7}),ge=M,we=z,_e=sA,Ke=VA,Bt=yr,Rt=P,Ye=po,nt=Ce,ii=Object.getOwnPropertyDescriptor;f.f=ge?ii:function(A,e){if(A=Bt(A),e=Rt(e),nt)try{return ii(A,e)}catch{}if(Ye(A,e))return Ke(!we(_e.f,A,e),A[e])};var oi={},Ko=M&&m(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Kt=Ji,ro=String,ks=TypeError,Zr=function(A){if(Kt(A))return A;throw new ks(ro(A)+" is not an object")},In=M,xr=Ce,sI=Ko,jo=Zr,OI=P,_g=TypeError,gI=Object.defineProperty,ml=Object.getOwnPropertyDescriptor,ua="enumerable",II="configurable",ZA="writable";oi.f=In?sI?function(A,e,o){if(jo(A),e=OI(e),jo(o),typeof A=="function"&&e==="prototype"&&"value"in o&&ZA in o&&!o[ZA]){var n=ml(A,e);n&&n[ZA]&&(A[e]=o.value,o={configurable:II in o?o[II]:n[II],enumerable:ua in o?o[ua]:n[ua],writable:!1})}return gI(A,e,o)}:gI:function(A,e,o){if(jo(A),e=OI(e),jo(o),xr)try{return gI(A,e,o)}catch{}if("get"in o||"set"in o)throw new _g("Accessors not supported");return"value"in o&&(A[e]=o.value),A};var Ag=oi,cI=VA,Bs=M?function(A,e,o){return Ag.f(A,e,cI(1,o))}:function(A,e,o){return A[e]=o,A},eg={exports:{}},kr=M,EI=po,Gt=Function.prototype,Dl=kr&&Object.getOwnPropertyDescriptor,xI=EI(Gt,"name"),_s={PROPER:xI&&function(){}.name==="something",CONFIGURABLE:xI&&(!kr||kr&&Dl(Gt,"name").configurable)},tg=Ni,ka=gr,wc=Me(Function.toString);tg(ka.inspectSource)||(ka.inspectSource=function(A){return wc(A)});var lE,qa,CE,yC=ka.inspectSource,us=Ni,lI=Q.WeakMap,ig=us(lI)&&/native code/.test(String(lI)),yl=$s,_a=Yo("keys"),Qs=function(A){return _a[A]||(_a[A]=yl(A))},Rl={},YI=ig,vo=Q,Qa=Ji,BE=Bs,cn=po,kt=gr,Gn=Qs,PI=Rl,Sc="Object already initialized",tn=vo.TypeError,Ml=vo.WeakMap;if(YI||kt.state){var ba=kt.state||(kt.state=new Ml);ba.get=ba.get,ba.has=ba.has,ba.set=ba.set,lE=function(A,e){if(ba.has(A))throw new tn(Sc);return e.facade=A,ba.set(A,e),e},qa=function(A){return ba.get(A)||{}},CE=function(A){return ba.has(A)}}else{var da=Gn("state");PI[da]=!0,lE=function(A,e){if(cn(A,da))throw new tn(Sc);return e.facade=A,BE(A,da,e),e},qa=function(A){return cn(A,da)?A[da]:{}},CE=function(A){return cn(A,da)}}var on={set:lE,get:qa,has:CE,enforce:function(A){return CE(A)?qa(A):lE(A,{})},getterFor:function(A){return function(e){var o;if(!Qa(e)||(o=qa(e)).type!==A)throw new tn("Incompatible receiver, "+A+" required");return o}}},Xr=Me,wl=m,bs=Ni,vc=po,CI=M,uE=_s.CONFIGURABLE,RC=yC,Nc=on.enforce,Sl=on.get,JI=String,bg=Object.defineProperty,QE=Xr("".slice),vl=Xr("".replace),Tc=Xr([].join),lo=CI&&!wl(function(){return bg(function(){},"length",{value:8}).length!==8}),ds=String(String).split("String"),QB=eg.exports=function(A,e,o){QE(JI(e),0,7)==="Symbol("&&(e="["+vl(JI(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),o&&o.getter&&(e="get "+e),o&&o.setter&&(e="set "+e),(!vc(A,"name")||uE&&A.name!==e)&&(CI?bg(A,"name",{value:e,configurable:!0}):A.name=e),lo&&o&&vc(o,"arity")&&A.length!==o.arity&&bg(A,"length",{value:o.arity});try{o&&vc(o,"constructor")&&o.constructor?CI&&bg(A,"prototype",{writable:!1}):A.prototype&&(A.prototype=void 0)}catch{}var n=Nc(A);return vc(n,"source")||(n.source=Tc(ds,typeof e=="string"?e:"")),A};Function.prototype.toString=QB(function(){return bs(this)&&Sl(this).source||RC(this)},"toString");var Gc=eg.exports,kc=Ni,MC=oi,dB=Gc,HI=dn,mn=function(A,e,o,n){n||(n={});var a=n.enumerable,I=n.name!==void 0?n.name:e;if(kc(o)&&dB(o,I,n),n.global)a?A[e]=o:HI(e,o);else{try{n.unsafe?A[e]&&(a=!0):delete A[e]}catch{}a?A[e]=o:MC.f(A,e,{value:o,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return A},Lg={},dE=Math.ceil,Ir=Math.floor,og=Math.trunc||function(A){var e=+A;return(e>0?Ir:dE)(e)},Ka=og,ca=function(A){var e=+A;return e!=e||e===0?0:Ka(e)},hE=ca,wC=Math.max,Ls=Math.min,_c=function(A,e){var o=hE(A);return o<0?wC(o+e,0):Ls(o,e)},SC=ca,rg=Math.min,Wr=function(A){var e=SC(A);return e>0?rg(e,9007199254740991):0},ng=Wr,hs=function(A){return ng(A.length)},hB=yr,pB=_c,Nl=hs,bc=function(A){return function(e,o,n){var a=hB(e),I=Nl(a);if(I===0)return!A&&-1;var c,u=pB(n,I);if(A&&o!=o){for(;I>u;)if((c=a[u++])!=c)return!0}else for(;I>u;u++)if((A||u in a)&&a[u]===o)return A||u||0;return!A&&-1}},VI={includes:bc(!0),indexOf:bc(!1)},BI=po,pE=yr,Lc=VI.indexOf,uI=Rl,Fg=Me([].push),ja=function(A,e){var o,n=pE(A),a=0,I=[];for(o in n)!BI(uI,o)&&BI(n,o)&&Fg(I,o);for(;e.length>a;)BI(n,o=e[a++])&&(~Lc(I,o)||Fg(I,o));return I},Fs=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],No=ja,Fc=Fs.concat("length","prototype");Lg.f=Object.getOwnPropertyNames||function(A){return No(A,Fc)};var Ug={};Ug.f=Object.getOwnPropertySymbols;var vC=MA,fE=Lg,Tl=Ug,Ou=Zr,fB=Me([].concat),xu=vC("Reflect","ownKeys")||function(A){var e=fE.f(Ou(A)),o=Tl.f;return o?fB(e,o(A)):e},Og=po,QI=xu,pi=f,mB=oi,Gl=function(A,e,o){for(var n=QI(e),a=mB.f,I=pi.f,c=0;c<n.length;c++){var u=n[c];Og(A,u)||o&&Og(o,u)||a(A,u,I(e,u))}},kl=m,NC=Ni,_l=/#|\.prototype\./,xg=function(A,e){var o=mE[qI(A)];return o===DB||o!==DE&&(NC(e)?kl(e):!!e)},qI=xg.normalize=function(A){return String(A).replace(_l,".").toLowerCase()},mE=xg.data={},DE=xg.NATIVE="N",DB=xg.POLYFILL="P",Rn=xg,ps=Q,ag=f.f,yB=Bs,KI=mn,RB=dn,Wn=Gl,yE=Rn,wr=function(A,e){var o,n,a,I,c,u=A.target,d=A.global,R=A.stat;if(o=d?ps:R?ps[u]||RB(u,{}):ps[u]&&ps[u].prototype)for(n in e){if(I=e[n],a=A.dontCallGetSet?(c=ag(o,n))&&c.value:o[n],!yE(d?n:u+(R?".":"#")+n,A.forced)&&a!==void 0){if(typeof I==typeof a)continue;Wn(I,a)}(A.sham||a&&a.sham)&&yB(I,"sham",!0),KI(o,n,I,A)}},MB={};MB[qo("toStringTag")]="z";var Yg=String(MB)==="[object z]",TC=Ni,jI=$e,ha=qo("toStringTag"),wB=Object,pa=jI(function(){return arguments}())==="Arguments",sg=Yg?jI:function(A){var e,o,n;return A===void 0?"Undefined":A===null?"Null":typeof(o=function(a,I){try{return a[I]}catch{}}(e=wB(A),ha))=="string"?o:pa?jI(e):(n=jI(e))==="Object"&&TC(e.callee)?"Arguments":n},GC=sg,bl=String,Mn=function(A){if(GC(A)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return bl(A)},WI=Gc,RE=oi,dI=function(A,e,o){return o.get&&WI(o.get,e,{getter:!0}),o.set&&WI(o.set,e,{setter:!0}),RE.f(A,e,o)},fs=wr,Uc=M,ms=Me,zI=po,xn=Ni,Yu=YA,Wo=Mn,Oc=dI,ME=Gl,Pg=Q.Symbol,gg=Pg&&Pg.prototype;if(Uc&&xn(Pg)&&(!("description"in gg)||Pg().description!==void 0)){var En={},Ds=function(){var A=arguments.length<1||arguments[0]===void 0?void 0:Wo(arguments[0]),e=Yu(gg,this)?new Pg(A):A===void 0?Pg():Pg(A);return A===""&&(En[e]=!0),e};ME(Ds,Pg),Ds.prototype=gg,gg.constructor=Ds;var Wa=String(Pg("description detection"))==="Symbol(description detection)",Ll=ms(gg.valueOf),SB=ms(gg.toString),Pu=/^Symbol\((.*)\)[^)]+$/,li=ms("".replace),wE=ms("".slice);Oc(gg,"description",{configurable:!0,get:function(){var A=Ll(this);if(zI(En,A))return"";var e=SB(A),o=Wa?wE(e,7,-1):li(e,Pu,"$1");return o===""?void 0:o}}),fs({global:!0,constructor:!0,forced:!0},{Symbol:Ds})}var hI={},vB=ja,NB=Fs,pI=Object.keys||function(A){return vB(A,NB)},SE=M,ZI=Ko,xc=oi,TB=Zr,Yc=yr,XI=pI;hI.f=SE&&!ZI?Object.defineProperties:function(A,e){TB(A);for(var o,n=Yc(e),a=XI(e),I=a.length,c=0;I>c;)xc.f(A,o=a[c++],n[o]);return A};var Us,fI=MA("document","documentElement"),kC=Zr,Fl=hI,Pc=Fs,vE=Rl,di=fI,Ul=GA,za="prototype",NE="script",Ol=Qs("IE_PROTO"),Jg=function(){},TE=function(A){return"<"+NE+">"+A+"</"+NE+">"},Hg=function(A){A.write(TE("")),A.close();var e=A.parentWindow.Object;return A=null,e},Vg=function(){try{Us=new ActiveXObject("htmlfile")}catch{}Vg=typeof document<"u"?document.domain&&Us?Hg(Us):function(){var e,o=Ul("iframe"),n="java"+NE+":";return o.style.display="none",di.appendChild(o),o.src=String(n),(e=o.contentWindow.document).open(),e.write(TE("document.F=Object")),e.close(),e.F}():Hg(Us);for(var A=Pc.length;A--;)delete Vg[za][Pc[A]];return Vg()};vE[Ol]=!0;var fa=Object.create||function(A,e){var o;return A!==null?(Jg[za]=kC(A),o=new Jg,Jg[za]=null,o[Ol]=A):o=Vg(),e===void 0?o:Fl.f(o,e)},xl=qo,zn=fa,dr=oi.f,Yn=xl("unscopables"),qg=Array.prototype;qg[Yn]===void 0&&dr(qg,Yn,{configurable:!0,value:zn(null)});var GE=function(A){qg[Yn][A]=!0},$I=VI.includes,GB=GE;wr({target:"Array",proto:!0,forced:m(function(){return!Array(1).includes()})},{includes:function(A){return $I(this,A,arguments.length>1?arguments[1]:void 0)}}),GB("includes");var Ig,kE,kB,_E={},Ju=!m(function(){function A(){}return A.prototype.constructor=null,Object.getPrototypeOf(new A)!==A.prototype}),bE=po,Jc=Ni,LE=ao,_B=Ju,Zn=Qs("IE_PROTO"),Os=Object,Za=Os.prototype,FE=_B?Os.getPrototypeOf:function(A){var e=LE(A);if(bE(e,Zn))return e[Zn];var o=e.constructor;return Jc(o)&&e instanceof o?o.prototype:e instanceof Os?Za:null},Yl=m,UE=Ni,OE=Ji,Ac=FE,ec=mn,Xn=qo("iterator"),kn=!1;[].keys&&("next"in(kB=[].keys())?(kE=Ac(Ac(kB)))!==Object.prototype&&(Ig=kE):kn=!0);var ys=!OE(Ig)||Yl(function(){var A={};return Ig[Xn].call(A)!==A});ys&&(Ig={}),UE(Ig[Xn])||ec(Ig,Xn,function(){return this});var ln={IteratorPrototype:Ig,BUGGY_SAFARI_ITERATORS:kn},wn=oi.f,Kg=po,cg=qo("toStringTag"),Rs=function(A,e,o){A&&!o&&(A=A.prototype),A&&!Kg(A,cg)&&wn(A,cg,{configurable:!0,value:e})},Hc=ln.IteratorPrototype,Ms=fa,Vc=VA,Pl=Rs,ma=_E,tc=function(){return this},bB=function(A,e,o,n){var a=e+" Iterator";return A.prototype=Ms(Hc,{next:Vc(+!n,o)}),Pl(A,a,!1),ma[a]=tc,A},Jl=Me,Hl=$t,qc=Ji,xE=function(A){return qc(A)||A===null},Ci=String,Vl=TypeError,YE=function(A,e,o){try{return Jl(Hl(Object.getOwnPropertyDescriptor(A,e)[o]))}catch{}},LB=Ji,L=no,w=function(A){if(xE(A))return A;throw new Vl("Can't set "+Ci(A)+" as a prototype")},q=Object.setPrototypeOf||("__proto__"in{}?function(){var A,e=!1,o={};try{(A=YE(Object.prototype,"__proto__","set"))(o,[]),e=o instanceof Array}catch{}return function(n,a){return L(n),w(a),LB(n)&&(e?A(n,a):n.__proto__=a),n}}():void 0),y=wr,T=z,V=Ni,$=bB,CA=FE,NA=q,KA=Rs,C=Bs,E=mn,h=_E,D=_s.PROPER,N=_s.CONFIGURABLE,O=ln.IteratorPrototype,Y=ln.BUGGY_SAFARI_ITERATORS,j=qo("iterator"),IA="keys",BA="values",mA="entries",_A=function(){return this},xA=function(A,e,o,n,a,I,c){$(o,e,n);var u,d,R,k=function(Ie){if(Ie===a&&TA)return TA;if(!Y&&Ie&&Ie in iA)return iA[Ie];switch(Ie){case IA:case BA:case mA:return function(){return new o(this,Ie)}}return function(){return new o(this)}},_=e+" Iterator",Z=!1,iA=A.prototype,cA=iA[j]||iA["@@iterator"]||a&&iA[a],TA=!Y&&cA||k(a),JA=e==="Array"&&iA.entries||cA;if(JA&&(u=CA(JA.call(new A)))!==Object.prototype&&u.next&&(CA(u)!==O&&(NA?NA(u,O):V(u[j])||E(u,j,_A)),KA(u,_,!0)),D&&a===BA&&cA&&cA.name!==BA&&(N?C(iA,"name",BA):(Z=!0,TA=function(){return T(cA,this)})),a)if(d={values:k(BA),keys:I?TA:k(IA),entries:k(mA)},c)for(R in d)(Y||Z||!(R in iA))&&E(iA,R,d[R]);else y({target:e,proto:!0,forced:Y||Z},d);return iA[j]!==TA&&E(iA,j,TA,{name:a}),h[e]=TA,d},Qe=function(A,e){return{value:A,done:e}},Re=yr,Se=GE,At=_E,at=on,jt=oi.f,Bi=xA,ri=Qe,St=M,eo="Array Iterator",to=at.set,Yt=at.getterFor(eo),si=Bi(Array,"Array",function(A,e){to(this,{type:eo,target:Re(A),index:0,kind:e})},function(){var A=Yt(this),e=A.target,o=A.index++;if(!e||o>=e.length)return A.target=null,ri(void 0,!0);switch(A.kind){case"keys":return ri(o,!1);case"values":return ri(e[o],!1)}return ri([o,e[o]],!1)},"values"),zo=At.Arguments=At.Array;if(Se("keys"),Se("values"),Se("entries"),St&&zo.name!=="values")try{jt(zo,"name",{value:"values"})}catch{}var te=$t,je=ao,dA=ai,ut=hs,Cr=TypeError,lt="Reduce of empty array with no initial value",Co=function(A){return function(e,o,n,a){var I=je(e),c=dA(I),u=ut(I);if(te(o),u===0&&n<2)throw new Cr(lt);var d=A?u-1:0,R=A?-1:1;if(n<2)for(;;){if(d in c){a=c[d],d+=R;break}if(d+=R,A?d<0:u<=d)throw new Cr(lt)}for(;A?d>=0:u>d;d+=R)d in c&&(a=o(a,c[d],d,I));return a}},Jt={left:Co(!1),right:Co(!0)},mo=m,Fe=function(A,e){var o=[][A];return!!o&&mo(function(){o.call(null,e||function(){return 1},1)})},Oe=Q,xs=Te,Zo=$e,ti=function(A){return xs.slice(0,A.length)===A},_n=ti("Bun/")?"BUN":ti("Cloudflare-Workers")?"CLOUDFLARE":ti("Deno/")?"DENO":ti("Node.js/")?"NODE":Oe.Bun&&typeof Bun.version=="string"?"BUN":Oe.Deno&&typeof Deno.version=="object"?"DENO":Zo(Oe.process)==="process"?"NODE":Oe.window&&Oe.document?"BROWSER":"REST",Eg=_n==="NODE",Bo=Jt.left;wr({target:"Array",proto:!0,forced:!Eg&&ot>79&&ot<83||!Fe("reduce")},{reduce:function(A){var e=arguments.length;return Bo(this,A,e,e>1?arguments[1]:void 0)}});var Da=Jt.right;wr({target:"Array",proto:!0,forced:!Eg&&ot>79&&ot<83||!Fe("reduceRight")},{reduceRight:function(A){return Da(this,A,arguments.length,arguments.length>1?arguments[1]:void 0)}});var Xa=$e,ia=Array.isArray||function(A){return Xa(A)==="Array"},b=wr,rA=ia,gA=Me([].reverse),pA=[1,2];b({target:"Array",proto:!0,forced:String(pA)===String(pA.reverse())},{reverse:function(){return rA(this)&&(this.length=this.length),gA(this)}});var vA=Kr,Ae=TypeError,UA=Me([].slice),re=UA,LA=Math.floor,se=function(A,e){var o=A.length;if(o<8)for(var n,a,I=1;I<o;){for(a=I,n=A[I];a&&e(A[a-1],n)>0;)A[a]=A[--a];a!==I++&&(A[a]=n)}else for(var c=LA(o/2),u=se(re(A,0,c),e),d=se(re(A,c),e),R=u.length,k=d.length,_=0,Z=0;_<R||Z<k;)A[_+Z]=_<R&&Z<k?e(u[_],d[Z])<=0?u[_++]:d[Z++]:_<R?u[_++]:d[Z++];return A},He=se,It=Te.match(/firefox\/(\d+)/i),ft=!!It&&+It[1],Pe=/MSIE|Trident/.test(Te),Ot=Te.match(/AppleWebKit\/(\d+)\./),gi=!!Ot&&+Ot[1],go=wr,Vi=Me,mt=$t,Sn=ao,$i=hs,Jr=function(A,e){if(!delete A[e])throw new Ae("Cannot delete property "+vA(e)+" of "+vA(A))},$a=Mn,La=m,bn=He,lg=Fe,ql=ft,fD=Pe,Ht=ot,Qt=gi,Ti=[],Ar=Vi(Ti.sort),so=Vi(Ti.push),As=La(function(){Ti.sort(void 0)}),ic=La(function(){Ti.sort(null)}),_C=lg("sort"),Cg=!La(function(){if(Ht)return Ht<70;if(!(ql&&ql>3)){if(fD)return!0;if(Qt)return Qt<603;var A,e,o,n,a="";for(A=65;A<76;A++){switch(e=String.fromCharCode(A),A){case 66:case 69:case 70:case 72:o=3;break;case 68:case 71:o=4;break;default:o=2}for(n=0;n<47;n++)Ti.push({k:e+n,v:o})}for(Ti.sort(function(I,c){return c.v-I.v}),n=0;n<Ti.length;n++)e=Ti[n].k.charAt(0),a.charAt(a.length-1)!==e&&(a+=e);return a!=="DGBEFHACIJK"}});go({target:"Array",proto:!0,forced:As||!ic||!_C||!Cg},{sort:function(A){A!==void 0&&mt(A);var e=Sn(this);if(Cg)return A===void 0?Ar(e):Ar(e,A);var o,n,a=[],I=$i(e);for(n=0;n<I;n++)n in e&&so(a,e[n]);for(bn(a,function(c){return function(u,d){return d===void 0?-1:u===void 0?1:c!==void 0?+c(u,d)||0:$a(u)>$a(d)?1:-1}}(A)),o=$i(a),n=0;n<o;)e[n]=a[n++];for(;n<I;)Jr(e,n++);return e}});var Cn=typeof ArrayBuffer<"u"&&typeof DataView<"u",PE=mn,JE=function(A,e,o){for(var n in e)PE(A,n,e[n],o);return A},Ys=YA,Kc=TypeError,oc=function(A,e){if(Ys(e,A))return A;throw new Kc("Incorrect invocation")},jg=ca,Kl=Wr,_w=RangeError,mD=function(A){if(A===void 0)return 0;var e=jg(A),o=Kl(e);if(e!==o)throw new _w("Wrong length or index");return o},DD=Math.sign||function(A){var e=+A;return e===0||e!=e?e:e<0?-1:1},yD=4503599627370496,bw=DD,kk=function(A){return A+yD-yD},_k=Math.abs,bk=function(A,e,o,n){var a=+A,I=_k(a),c=bw(a);if(I<n)return c*kk(I/n/e)*n*e;var u=(1+e/2220446049250313e-31)*I,d=u-(u-I);return d>o||d!=d?1/0*c:c*d},Lk=Math.fround||function(A){return bk(A,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},LY=Array,FY=Math.abs,bC=Math.pow,UY=Math.floor,Fk=Math.log,OY=Math.LN2,Lw={pack:function(A,e,o){var n,a,I,c=LY(o),u=8*o-e-1,d=(1<<u)-1,R=d>>1,k=e===23?bC(2,-24)-bC(2,-77):0,_=A<0||A===0&&1/A<0?1:0,Z=0;for((A=FY(A))!=A||A===1/0?(a=A!=A?1:0,n=d):(n=UY(Fk(A)/OY),A*(I=bC(2,-n))<1&&(n--,I*=2),(A+=n+R>=1?k/I:k*bC(2,1-R))*I>=2&&(n++,I/=2),n+R>=d?(a=0,n=d):n+R>=1?(a=(A*I-1)*bC(2,e),n+=R):(a=A*bC(2,R-1)*bC(2,e),n=0));e>=8;)c[Z++]=255&a,a/=256,e-=8;for(n=n<<e|a,u+=e;u>0;)c[Z++]=255&n,n/=256,u-=8;return c[Z-1]|=128*_,c},unpack:function(A,e){var o,n=A.length,a=8*n-e-1,I=(1<<a)-1,c=I>>1,u=a-7,d=n-1,R=A[d--],k=127&R;for(R>>=7;u>0;)k=256*k+A[d--],u-=8;for(o=k&(1<<-u)-1,k>>=-u,u+=e;u>0;)o=256*o+A[d--],u-=8;if(k===0)k=1-c;else{if(k===I)return o?NaN:R?-1/0:1/0;o+=bC(2,e),k-=c}return(R?-1:1)*o*bC(2,k-e)}},xY=ao,Uk=_c,YY=hs,Ok=function(A){for(var e=xY(this),o=YY(e),n=arguments.length,a=Uk(n>1?arguments[1]:void 0,o),I=n>2?arguments[2]:void 0,c=I===void 0?o:Uk(I,o);c>a;)e[a++]=A;return e},PY=Ni,JY=Ji,Fw=q,Uw=function(A,e,o){var n,a;return Fw&&PY(n=e.constructor)&&n!==o&&JY(a=n.prototype)&&a!==o.prototype&&Fw(A,a),A},Sp=Q,RD=Me,MD=M,FB=Cn,HY=Bs,VY=dI,wD=JE,Ow=m,Hu=oc,qY=ca,KY=Wr,SD=mD,xk=Lk,xw=Lw,Yk=FE,Pk=q,jY=Ok,WY=UA,zY=Uw,Jk=Gl,Hk=Rs,vD=on,Vu=_s.PROPER,Yw=_s.CONFIGURABLE,qu="ArrayBuffer",Ku="DataView",ld="prototype",Pw="Wrong index",Jw=vD.getterFor(qu),vp=vD.getterFor(Ku),Vk=vD.set,HE=Sp[qu],VE=HE,Cd=VE&&VE[ld],qE=Sp[Ku],UB=qE&&qE[ld],LC=Object.prototype,ND=Sp.Array,Bd=Sp.RangeError,ZY=RD(jY),XY=RD([].reverse),TD=xw.pack,GD=xw.unpack,qk=function(A){return[255&A]},Kk=function(A){return[255&A,A>>8&255]},Hw=function(A){return[255&A,A>>8&255,A>>16&255,A>>24&255]},Vw=function(A){return A[3]<<24|A[2]<<16|A[1]<<8|A[0]},qw=function(A){return TD(xk(A),23,4)},jk=function(A){return TD(A,52,8)},Np=function(A,e,o){VY(A[ld],e,{configurable:!0,get:function(){return o(this)[e]}})},FC=function(A,e,o,n){var a=vp(A),I=SD(o),c=!!n;if(I+e>a.byteLength)throw new Bd(Pw);var u=a.bytes,d=I+a.byteOffset,R=WY(u,d,d+e);return c?R:XY(R)},OB=function(A,e,o,n,a,I){var c=vp(A),u=SD(o),d=n(+a),R=!!I;if(u+e>c.byteLength)throw new Bd(Pw);for(var k=c.bytes,_=u+c.byteOffset,Z=0;Z<e;Z++)k[_+Z]=d[R?Z:e-Z-1]};if(FB){var Wk=Vu&&HE.name!==qu;Ow(function(){HE(1)})&&Ow(function(){new HE(-1)})&&!Ow(function(){return new HE,new HE(1.5),new HE(NaN),HE.length!==1||Wk&&!Yw})?Wk&&Yw&&HY(HE,"name",qu):((VE=function(A){return Hu(this,Cd),zY(new HE(SD(A)),this,VE)})[ld]=Cd,Cd.constructor=VE,Jk(VE,HE)),Pk&&Yk(UB)!==LC&&Pk(UB,LC);var Tp=new qE(new VE(2)),Kw=RD(UB.setInt8);Tp.setInt8(0,2147483648),Tp.setInt8(1,2147483649),!Tp.getInt8(0)&&Tp.getInt8(1)||wD(UB,{setInt8:function(A,e){Kw(this,A,e<<24>>24)},setUint8:function(A,e){Kw(this,A,e<<24>>24)}},{unsafe:!0})}else Cd=(VE=function(A){Hu(this,Cd);var e=SD(A);Vk(this,{type:qu,bytes:ZY(ND(e),0),byteLength:e}),MD||(this.byteLength=e,this.detached=!1)})[ld],UB=(qE=function(A,e,o){Hu(this,UB),Hu(A,Cd);var n=Jw(A),a=n.byteLength,I=qY(e);if(I<0||I>a)throw new Bd("Wrong offset");if(I+(o=o===void 0?a-I:KY(o))>a)throw new Bd("Wrong length");Vk(this,{type:Ku,buffer:A,byteLength:o,byteOffset:I,bytes:n.bytes}),MD||(this.buffer=A,this.byteLength=o,this.byteOffset=I)})[ld],MD&&(Np(VE,"byteLength",Jw),Np(qE,"buffer",vp),Np(qE,"byteLength",vp),Np(qE,"byteOffset",vp)),wD(UB,{getInt8:function(A){return FC(this,1,A)[0]<<24>>24},getUint8:function(A){return FC(this,1,A)[0]},getInt16:function(A){var e=FC(this,2,A,arguments.length>1&&arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(A){var e=FC(this,2,A,arguments.length>1&&arguments[1]);return e[1]<<8|e[0]},getInt32:function(A){return Vw(FC(this,4,A,arguments.length>1&&arguments[1]))},getUint32:function(A){return Vw(FC(this,4,A,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(A){return GD(FC(this,4,A,arguments.length>1&&arguments[1]),23)},getFloat64:function(A){return GD(FC(this,8,A,arguments.length>1&&arguments[1]),52)},setInt8:function(A,e){OB(this,1,A,qk,e)},setUint8:function(A,e){OB(this,1,A,qk,e)},setInt16:function(A,e){OB(this,2,A,Kk,e,arguments.length>2&&arguments[2])},setUint16:function(A,e){OB(this,2,A,Kk,e,arguments.length>2&&arguments[2])},setInt32:function(A,e){OB(this,4,A,Hw,e,arguments.length>2&&arguments[2])},setUint32:function(A,e){OB(this,4,A,Hw,e,arguments.length>2&&arguments[2])},setFloat32:function(A,e){OB(this,4,A,qw,e,arguments.length>2&&arguments[2])},setFloat64:function(A,e){OB(this,8,A,jk,e,arguments.length>2&&arguments[2])}});Hk(VE,qu),Hk(qE,Ku);var kD={ArrayBuffer:VE,DataView:qE},$Y=MA,AP=dI,_D=M,zk=qo("species"),bD=function(A){var e=$Y(A);_D&&e&&!e[zk]&&AP(e,zk,{configurable:!0,get:function(){return this}})},eP=bD,jw="ArrayBuffer",Zk=kD[jw];wr({global:!0,constructor:!0,forced:Q[jw]!==Zk},{ArrayBuffer:Zk}),eP(jw);var tP=$e,UC=Me,jl=function(A){if(tP(A)==="Function")return UC(A)},Xk=wr,ud=jl,iP=m,$k=Zr,A_=_c,oP=Wr,Ww=kD.ArrayBuffer,zw=kD.DataView,e_=zw.prototype,Zw=ud(Ww.prototype.slice),rP=ud(e_.getUint8),nP=ud(e_.setUint8);Xk({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:iP(function(){return!new Ww(2).slice(1,void 0).byteLength})},{slice:function(A,e){if(Zw&&e===void 0)return Zw($k(this),A);for(var o=$k(this).byteLength,n=A_(A,o),a=A_(e===void 0?o:e,o),I=new Ww(oP(a-n)),c=new zw(this),u=new zw(I),d=0;n<a;)nP(u,d++,rP(c,n++));return I}});var aP=Q,sP=Me,Xw=m,t_=Ni,gP=sg,IP=yC,Qd=function(){},i_=MA("Reflect","construct"),$w=/^\s*(?:class|function)\b/,cP=sP($w.exec),EP=!$w.test(Qd),Gp=function(A){if(!t_(A))return!1;try{return i_(Qd,[],A),!0}catch{return!1}},o_=function(A){if(!t_(A))return!1;switch(gP(A)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return EP||!!cP($w,IP(A))}catch{return!0}};o_.sham=!0;var dd,ju,r_,AS,eS=!i_||Xw(function(){var A;return Gp(Gp.call)||!Gp(Object)||!Gp(function(){A=!0})||A})?o_:Gp,lP=eS,n_=Kr,CP=TypeError,a_=function(A){if(lP(A))return A;throw new CP(n_(A)+" is not a constructor")},s_=Zr,LD=a_,BP=Ki,tS=qo("species"),g_=function(A,e){var o,n=s_(A).constructor;return n===void 0||BP(o=s_(n)[tS])?e:LD(o)},uP=v,I_=Function.prototype,FD=I_.apply,UD=I_.call,OC=typeof Reflect=="object"&&Reflect.apply||(uP?UD.bind(FD):function(){return UD.apply(FD,arguments)}),c_=$t,E_=v,OD=jl(jl.bind),jc=function(A,e){return c_(A),e===void 0?A:E_?OD(A,e):function(){return A.apply(e,arguments)}},l_=TypeError,xD=function(A,e){if(A<e)throw new l_("Not enough arguments");return A},C_=/(?:ipad|iphone|ipod).*applewebkit/i.test(Te),rc=Q,QP=OC,B_=jc,YD=Ni,dP=po,hd=m,u_=fI,hP=UA,Q_=GA,d_=xD,pP=C_,iS=Eg,PD=rc.setImmediate,oS=rc.clearImmediate,rS=rc.process,nS=rc.Dispatch,fP=rc.Function,h_=rc.MessageChannel,mP=rc.String,aS=0,kp={},p_="onreadystatechange";hd(function(){dd=rc.location});var sS=function(A){if(dP(kp,A)){var e=kp[A];delete kp[A],e()}},gS=function(A){return function(){sS(A)}},f_=function(A){sS(A.data)},m_=function(A){rc.postMessage(mP(A),dd.protocol+"//"+dd.host)};PD&&oS||(PD=function(A){d_(arguments.length,1);var e=YD(A)?A:fP(A),o=hP(arguments,1);return kp[++aS]=function(){QP(e,void 0,o)},ju(aS),aS},oS=function(A){delete kp[A]},iS?ju=function(A){rS.nextTick(gS(A))}:nS&&nS.now?ju=function(A){nS.now(gS(A))}:h_&&!pP?(AS=(r_=new h_).port2,r_.port1.onmessage=f_,ju=B_(AS.postMessage,AS)):rc.addEventListener&&YD(rc.postMessage)&&!rc.importScripts&&dd&&dd.protocol!=="file:"&&!hd(m_)?(ju=m_,rc.addEventListener("message",f_,!1)):ju=p_ in Q_("script")?function(A){u_.appendChild(Q_("script"))[p_]=function(){u_.removeChild(this),sS(A)}}:function(A){setTimeout(gS(A),0)});var JD={set:PD,clear:oS},D_=Q,DP=M,yP=Object.getOwnPropertyDescriptor,y_=function(A){if(!DP)return D_[A];var e=yP(D_,A);return e&&e.value},Wu=function(){this.head=null,this.tail=null};Wu.prototype={add:function(A){var e={item:A,next:null},o=this.tail;o?o.next=e:this.head=e,this.tail=e},get:function(){var A=this.head;if(A)return(this.head=A.next)===null&&(this.tail=null),A.item}};var pd,IS,cS,ES,lS,CS=Wu,RP=/ipad|iphone|ipod/i.test(Te)&&typeof Pebble<"u",MP=/web0s(?!.*chrome)/i.test(Te),xB=Q,wP=y_,R_=jc,BS=JD.set,M_=CS,HD=C_,_p=RP,w_=MP,zu=Eg,uS=xB.MutationObserver||xB.WebKitMutationObserver,S_=xB.document,VD=xB.process,fd=xB.Promise,QS=wP("queueMicrotask");if(!QS){var md=new M_,bp=function(){var A,e;for(zu&&(A=VD.domain)&&A.exit();e=md.get();)try{e()}catch(o){throw md.head&&pd(),o}A&&A.enter()};HD||zu||w_||!uS||!S_?!_p&&fd&&fd.resolve?((ES=fd.resolve(void 0)).constructor=fd,lS=R_(ES.then,ES),pd=function(){lS(bp)}):zu?pd=function(){VD.nextTick(bp)}:(BS=R_(BS,xB),pd=function(){BS(bp)}):(IS=!0,cS=S_.createTextNode(""),new uS(bp).observe(cS,{characterData:!0}),pd=function(){cS.data=IS=!IS}),QS=function(A){md.head||pd(),md.add(A)}}var v_=QS,dS=function(A){try{return{error:!1,value:A()}}catch(e){return{error:!0,value:e}}},Lp=Q.Promise,qD=Q,Fp=Lp,N_=Ni,SP=Rn,vP=yC,T_=qo,hS=_n,pS=ot;Fp&&Fp.prototype;var G_=T_("species"),k_=!1,__=N_(qD.PromiseRejectionEvent),NP=SP("Promise",function(){var A=vP(Fp),e=A!==String(Fp);if(!e&&pS===66)return!0;if(!pS||pS<51||!/native code/.test(A)){var o=new Fp(function(a){a(1)}),n=function(a){a(function(){},function(){})};if((o.constructor={})[G_]=n,!(k_=o.then(function(){})instanceof n))return!0}return!(e||hS!=="BROWSER"&&hS!=="DENO"||__)}),Zu={CONSTRUCTOR:NP,REJECTION_EVENT:__,SUBCLASSING:k_},Dd={},fS=$t,TP=TypeError,b_=function(A){var e,o;this.promise=new A(function(n,a){if(e!==void 0||o!==void 0)throw new TP("Bad Promise constructor");e=n,o=a}),this.resolve=fS(e),this.reject=fS(o)};Dd.f=function(A){return new b_(A)};var mS,L_,F_,U_,GP=wr,KE=Eg,xC=Q,Xu=aP,yd=z,O_=mn,x_=q,YC=Rs,DS=bD,kP=$t,KD=Ni,_P=Ji,bP=oc,LP=g_,Y_=JD.set,yS=v_,FP=function(A,e){try{arguments.length===1?console.error(A):console.error(A,e)}catch{}},UP=dS,P_=CS,J_=on,jD=Lp,RS=Dd,WD="Promise",zD=Zu.CONSTRUCTOR,H_=Zu.REJECTION_EVENT,V_=Zu.SUBCLASSING,MS=J_.getterFor(WD),OP=J_.set,Rd=jD&&jD.prototype,Md=jD,Up=Rd,wd=xC.TypeError,wS=xC.document,Op=xC.process,SS=RS.f,xP=SS,vS=!!(wS&&wS.createEvent&&xC.dispatchEvent),NS="unhandledrejection",q_=function(A){var e;return!(!_P(A)||!KD(e=A.then))&&e},K_=function(A,e){var o,n,a,I=e.value,c=e.state===1,u=c?A.ok:A.fail,d=A.resolve,R=A.reject,k=A.domain;try{u?(c||(e.rejection===2&&z_(e),e.rejection=1),u===!0?o=I:(k&&k.enter(),o=u(I),k&&(k.exit(),a=!0)),o===A.promise?R(new wd("Promise-chain cycle")):(n=q_(o))?yd(n,o,d,R):d(o)):R(I)}catch(_){k&&!a&&k.exit(),R(_)}},j_=function(A,e){A.notified||(A.notified=!0,yS(function(){for(var o,n=A.reactions;o=n.get();)K_(o,A);A.notified=!1,e&&!A.rejection&&YP(A)}))},ZD=function(A,e,o){var n,a;vS?((n=wS.createEvent("Event")).promise=e,n.reason=o,n.initEvent(A,!1,!0),xC.dispatchEvent(n)):n={promise:e,reason:o},!H_&&(a=xC["on"+A])?a(n):A===NS&&FP("Unhandled promise rejection",o)},YP=function(A){yd(Y_,xC,function(){var e,o=A.facade,n=A.value;if(W_(A)&&(e=UP(function(){KE?Op.emit("unhandledRejection",n,o):ZD(NS,o,n)}),A.rejection=KE||W_(A)?2:1,e.error))throw e.value})},W_=function(A){return A.rejection!==1&&!A.parent},z_=function(A){yd(Y_,xC,function(){var e=A.facade;KE?Op.emit("rejectionHandled",e):ZD("rejectionhandled",e,A.value)})},$u=function(A,e,o){return function(n){A(e,n,o)}},AQ=function(A,e,o){A.done||(A.done=!0,o&&(A=o),A.value=e,A.state=2,j_(A,!0))},TS=function(A,e,o){if(!A.done){A.done=!0,o&&(A=o);try{if(A.facade===e)throw new wd("Promise can't be resolved itself");var n=q_(e);n?yS(function(){var a={done:!1};try{yd(n,e,$u(TS,a,A),$u(AQ,a,A))}catch(I){AQ(a,I,A)}}):(A.value=e,A.state=1,j_(A,!1))}catch(a){AQ({done:!1},a,A)}}};if(zD&&(Up=(Md=function(A){bP(this,Up),kP(A),yd(mS,this);var e=MS(this);try{A($u(TS,e),$u(AQ,e))}catch(o){AQ(e,o)}}).prototype,(mS=function(A){OP(this,{type:WD,done:!1,notified:!1,parent:!1,reactions:new P_,rejection:!1,state:0,value:null})}).prototype=O_(Up,"then",function(A,e){var o=MS(this),n=SS(LP(this,Md));return o.parent=!0,n.ok=!KD(A)||A,n.fail=KD(e)&&e,n.domain=KE?Op.domain:void 0,o.state===0?o.reactions.add(n):yS(function(){K_(n,o)}),n.promise}),L_=function(){var A=new mS,e=MS(A);this.promise=A,this.resolve=$u(TS,e),this.reject=$u(AQ,e)},RS.f=SS=function(A){return A===Md||A===F_?new L_(A):xP(A)},KD(jD)&&Rd!==Object.prototype)){U_=Rd.then,V_||O_(Rd,"then",function(A,e){var o=this;return new Md(function(n,a){yd(U_,o,n,a)}).then(A,e)},{unsafe:!0});try{delete Rd.constructor}catch{}x_&&x_(Rd,Up)}GP({global:!0,constructor:!0,wrap:!0,forced:zD},{Promise:Md}),F_=Xu.Promise,YC(Md,WD,!1),DS(WD);var Z_=_E,PP=qo("iterator"),JP=Array.prototype,GS=function(A){return A!==void 0&&(Z_.Array===A||JP[PP]===A)},X_=sg,$_=An,HP=Ki,VP=_E,qP=qo("iterator"),xp=function(A){if(!HP(A))return $_(A,qP)||$_(A,"@@iterator")||VP[X_(A)]},KP=z,XD=$t,Sd=Zr,kS=Kr,jP=xp,WP=TypeError,eQ=function(A,e){var o=arguments.length<2?jP(A):e;if(XD(o))return Sd(KP(o,A));throw new WP(kS(A)+" is not iterable")},zP=z,$D=Zr,Ay=An,Ab=function(A,e,o){var n,a;$D(A);try{if(!(n=Ay(A,"return"))){if(e==="throw")throw o;return o}n=zP(n,A)}catch(I){a=!0,n=I}if(e==="throw")throw o;if(a)throw n;return $D(n),o},eb=jc,ZP=z,XP=Zr,tb=Kr,$P=GS,A1=hs,_S=YA,e1=eQ,t1=xp,ib=Ab,i1=TypeError,Yp=function(A,e){this.stopped=A,this.result=e},vd=Yp.prototype,bS=function(A,e,o){var n,a,I,c,u,d,R,k=o&&o.that,_=!(!o||!o.AS_ENTRIES),Z=!(!o||!o.IS_RECORD),iA=!(!o||!o.IS_ITERATOR),cA=!(!o||!o.INTERRUPTED),TA=eb(e,k),JA=function(XA){return n&&ib(n,"normal"),new Yp(!0,XA)},Ie=function(XA){return _?(XP(XA),cA?TA(XA[0],XA[1],JA):TA(XA[0],XA[1])):cA?TA(XA,JA):TA(XA)};if(Z)n=A.iterator;else if(iA)n=A;else{if(!(a=t1(A)))throw new i1(tb(A)+" is not iterable");if($P(a)){for(I=0,c=A1(A);c>I;I++)if((u=Ie(A[I]))&&_S(vd,u))return u;return new Yp(!1)}n=e1(A,a)}for(d=Z?A.next:n.next;!(R=ZP(d,n)).done;){try{u=Ie(R.value)}catch(XA){ib(n,"throw",XA)}if(typeof u=="object"&&u&&_S(vd,u))return u}return new Yp(!1)},LS=qo("iterator"),FS=!1;try{var o1=0,US={next:function(){return{done:!!o1++}},return:function(){FS=!0}};US[LS]=function(){return this},Array.from(US,function(){throw 2})}catch{}var Nd=function(A,e){try{if(!e&&!FS)return!1}catch{return!1}var o=!1;try{var n={};n[LS]=function(){return{next:function(){return{done:o=!0}}}},A(n)}catch{}return o},Td=Lp,OS=Zu.CONSTRUCTOR||!Nd(function(A){Td.all(A).then(void 0,function(){})}),xS=z,Pp=$t,r1=Dd,n1=dS,ey=bS;wr({target:"Promise",stat:!0,forced:OS},{all:function(A){var e=this,o=r1.f(e),n=o.resolve,a=o.reject,I=n1(function(){var c=Pp(e.resolve),u=[],d=0,R=1;ey(A,function(k){var _=d++,Z=!1;R++,xS(c,e,k).then(function(iA){Z||(Z=!0,u[_]=iA,--R||n(u))},a)}),--R||n(u)});return I.error&&a(I.value),o.promise}});var YS=wr,PS=Zu.CONSTRUCTOR,JS=Lp,a1=MA,s1=Ni,ob=mn,Gd=JS&&JS.prototype;if(YS({target:"Promise",proto:!0,forced:PS,real:!0},{catch:function(A){return this.then(void 0,A)}}),s1(JS)){var rb=a1("Promise").prototype.catch;Gd.catch!==rb&&ob(Gd,"catch",rb,{unsafe:!0})}var g1=z,Jp=$t,I1=Dd,c1=dS,E1=bS;wr({target:"Promise",stat:!0,forced:OS},{race:function(A){var e=this,o=I1.f(e),n=o.reject,a=c1(function(){var I=Jp(e.resolve);E1(A,function(c){g1(I,e,c).then(o.resolve,n)})});return a.error&&n(a.value),o.promise}});var nb=Dd;wr({target:"Promise",stat:!0,forced:Zu.CONSTRUCTOR},{reject:function(A){var e=nb.f(this);return(0,e.reject)(A),e.promise}});var ab=Zr,l1=Ji,C1=Dd,sb=function(A,e){if(ab(A),l1(e)&&e.constructor===A)return e;var o=C1.f(A);return(0,o.resolve)(e),o.promise},B1=wr,gb=Zu.CONSTRUCTOR,Ib=sb;MA("Promise"),B1({target:"Promise",stat:!0,forced:gb},{resolve:function(A){return Ib(this,A)}});var nc=wr,ty=Lp,u1=m,HS=MA,cb=Ni,Eb=g_,VS=sb,Q1=mn,iy=ty&&ty.prototype;if(nc({target:"Promise",proto:!0,real:!0,forced:!!ty&&u1(function(){iy.finally.call({then:function(){}},function(){})})},{finally:function(A){var e=Eb(this,HS("Promise")),o=cb(A);return this.then(o?function(n){return VS(e,A()).then(function(){return n})}:A,o?function(n){return VS(e,A()).then(function(){throw n})}:A)}}),cb(ty)){var lb=HS("Promise").prototype.finally;iy.finally!==lb&&Q1(iy,"finally",lb,{unsafe:!0})}var d1=Ji,h1=$e,qS=qo("match"),KS=function(A){var e;return d1(A)&&((e=A[qS])!==void 0?!!e:h1(A)==="RegExp")},p1=m,oy=Q.RegExp,f1=!p1(function(){var A=!0;try{oy(".","d")}catch{A=!1}var e={},o="",n=A?"dgimsy":"gimsy",a=function(u,d){Object.defineProperty(e,u,{get:function(){return o+=d,!0}})},I={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var c in A&&(I.hasIndices="d"),I)a(c,I[c]);return Object.getOwnPropertyDescriptor(oy.prototype,"flags").get.call(e)!==n||o!==n}),Cb=Zr,Bb=function(){var A=Cb(this),e="";return A.hasIndices&&(e+="d"),A.global&&(e+="g"),A.ignoreCase&&(e+="i"),A.multiline&&(e+="m"),A.dotAll&&(e+="s"),A.unicode&&(e+="u"),A.unicodeSets&&(e+="v"),A.sticky&&(e+="y"),e},jS=z,Hp=po,ub=YA,ry={correct:f1},WS=Bb,Qb=RegExp.prototype,ny=ry.correct?function(A){return A.flags}:function(A){return ry.correct||!ub(Qb,A)||Hp(A,"flags")?A.flags:jS(WS,A)},ay=m,sy=Q.RegExp,zS=ay(function(){var A=sy("a","y");return A.lastIndex=2,A.exec("abcd")!==null}),m1=zS||ay(function(){return!sy("a","y").sticky}),db=zS||ay(function(){var A=sy("^r","gy");return A.lastIndex=2,A.exec("str")!==null}),tQ={BROKEN_CARET:db,MISSED_STICKY:m1,UNSUPPORTED_Y:zS},ZS=oi.f,XS=m,$S=Q.RegExp,A0=XS(function(){var A=$S(".","s");return!(A.dotAll&&A.test(`
`)&&A.flags==="s")}),hb=m,D1=Q.RegExp,pb=hb(function(){var A=D1("(?<a>b)","g");return A.exec("b").groups.a!=="b"||"b".replace(A,"$<a>c")!=="bc"}),kd=M,e0=Q,_d=Me,t0=Rn,y1=Uw,R1=Bs,M1=fa,w1=Lg.f,gy=YA,fb=KS,i0=Mn,mb=ny,Vp=tQ,o0=function(A,e,o){o in A||ZS(A,o,{configurable:!0,get:function(){return e[o]},set:function(n){e[o]=n}})},Iy=mn,cy=m,S1=po,r0=on.enforce,Ey=bD,Db=A0,bd=pb,v1=qo("match"),YB=e0.RegExp,Ld=YB.prototype,N1=e0.SyntaxError,yb=_d(Ld.exec),Fd=_d("".charAt),Rb=_d("".replace),n0=_d("".indexOf),a0=_d("".slice),T1=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,ac=/a/g,PB=/a/g,Mb=new YB(ac)!==ac,wb=Vp.MISSED_STICKY,G1=Vp.UNSUPPORTED_Y,s0=kd&&(!Mb||wb||Db||bd||cy(function(){return PB[v1]=!1,YB(ac)!==ac||YB(PB)===PB||String(YB(ac,"i"))!=="/a/i"}));if(t0("RegExp",s0)){for(var JB=function(A,e){var o,n,a,I,c,u,d=gy(Ld,this),R=fb(A),k=e===void 0,_=[],Z=A;if(!d&&R&&k&&A.constructor===JB)return A;if((R||gy(Ld,A))&&(A=A.source,k&&(e=mb(Z))),A=A===void 0?"":i0(A),e=e===void 0?"":i0(e),Z=A,Db&&"dotAll"in ac&&(n=!!e&&n0(e,"s")>-1)&&(e=Rb(e,/s/g,"")),o=e,wb&&"sticky"in ac&&(a=!!e&&n0(e,"y")>-1)&&G1&&(e=Rb(e,/y/g,"")),bd&&(I=function(iA){for(var cA,TA=iA.length,JA=0,Ie="",XA=[],Ft=M1(null),ie=!1,ke=!1,Nt=0,Ut="";JA<=TA;JA++){if((cA=Fd(iA,JA))==="\\")cA+=Fd(iA,++JA);else if(cA==="]")ie=!1;else if(!ie)switch(!0){case cA==="[":ie=!0;break;case cA==="(":if(Ie+=cA,a0(iA,JA+1,JA+3)==="?:")continue;yb(T1,a0(iA,JA+1))&&(JA+=2,ke=!0),Nt++;continue;case(cA===">"&&ke):if(Ut===""||S1(Ft,Ut))throw new N1("Invalid capture group name");Ft[Ut]=!0,XA[XA.length]=[Ut,Nt],ke=!1,Ut="";continue}ke?Ut+=cA:Ie+=cA}return[Ie,XA]}(A),A=I[0],_=I[1]),c=y1(YB(A,e),d?this:Ld,JB),(n||a||_.length)&&(u=r0(c),n&&(u.dotAll=!0,u.raw=JB(function(iA){for(var cA,TA=iA.length,JA=0,Ie="",XA=!1;JA<=TA;JA++)(cA=Fd(iA,JA))!=="\\"?XA||cA!=="."?(cA==="["?XA=!0:cA==="]"&&(XA=!1),Ie+=cA):Ie+="[\\s\\S]":Ie+=cA+Fd(iA,++JA);return Ie}(A),o)),a&&(u.sticky=!0),_.length&&(u.groups=_)),A!==Z)try{R1(c,"source",Z===""?"(?:)":Z)}catch{}return c},g0=w1(YB),I0=0;g0.length>I0;)o0(JB,YB,g0[I0++]);Ld.constructor=JB,JB.prototype=Ld,Iy(e0,"RegExp",JB,{constructor:!0})}Ey("RegExp");var Ud=z,iQ=Me,HB=Mn,k1=Bb,Od=tQ,Sb=fa,vb=on.get,_1=A0,b1=pb,L1=Yo("native-string-replace",String.prototype.replace),oQ=RegExp.prototype.exec,c0=oQ,F1=iQ("".charAt),U1=iQ("".indexOf),Nb=iQ("".replace),qp=iQ("".slice),E0=function(){var A=/a/,e=/b*/g;return Ud(oQ,A,"a"),Ud(oQ,e,"a"),A.lastIndex!==0||e.lastIndex!==0}(),Tb=Od.BROKEN_CARET,l0=/()??/.exec("")[1]!==void 0;(E0||l0||Tb||_1||b1)&&(c0=function(A){var e,o,n,a,I,c,u,d=this,R=vb(d),k=HB(A),_=R.raw;if(_)return _.lastIndex=d.lastIndex,e=Ud(c0,_,k),d.lastIndex=_.lastIndex,e;var Z=R.groups,iA=Tb&&d.sticky,cA=Ud(k1,d),TA=d.source,JA=0,Ie=k;if(iA&&(cA=Nb(cA,"y",""),U1(cA,"g")===-1&&(cA+="g"),Ie=qp(k,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&F1(k,d.lastIndex-1)!==`
`)&&(TA="(?: "+TA+")",Ie=" "+Ie,JA++),o=new RegExp("^(?:"+TA+")",cA)),l0&&(o=new RegExp("^"+TA+"$(?!\\s)",cA)),E0&&(n=d.lastIndex),a=Ud(oQ,iA?o:d,Ie),iA?a?(a.input=qp(a.input,JA),a[0]=qp(a[0],JA),a.index=d.lastIndex,d.lastIndex+=a[0].length):d.lastIndex=0:E0&&a&&(d.lastIndex=d.global?a.index+a[0].length:n),l0&&a&&a.length>1&&Ud(L1,a[0],o,function(){for(I=1;I<arguments.length-2;I++)arguments[I]===void 0&&(a[I]=void 0)}),a&&Z)for(a.groups=c=Sb(null),I=0;I<Z.length;I++)c[(u=Z[I])[0]]=a[u[1]];return a});var Kp=c0;wr({target:"RegExp",proto:!0,forced:/./.exec!==Kp},{exec:Kp});var ly=ca,Gb=Mn,Cy=no,kb=RangeError,_b=Me,O1=Wr,By=Mn,x1=function(A){var e=Gb(Cy(this)),o="",n=ly(A);if(n<0||n===1/0)throw new kb("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(o+=e);return o},xd=no,Yd=_b(x1),uy=_b("".slice),bb=Math.ceil,C0=function(A){return function(e,o,n){var a,I,c=By(xd(e)),u=O1(o),d=c.length,R=n===void 0?" ":By(n);return u<=d||R===""?c:((I=Yd(R,bb((a=u-d)/R.length))).length>a&&(I=uy(I,0,a)),A?c+I:I+c)}},B0={start:C0(!1)},u0=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Te),Y1=B0.start;wr({target:"String",proto:!0,forced:u0},{padStart:function(A){return Y1(this,A,arguments.length>1?arguments[1]:void 0)}});var Lb=z,Q0=mn,Fb=Kp,d0=m,h0=qo,P1=h0("species"),Ub=RegExp.prototype,Qy=Me,J1=ca,Pd=Mn,Jd=no,p0=Qy("".charAt),Ob=Qy("".charCodeAt),H1=Qy("".slice),xb=function(A){return function(e,o){var n,a,I=Pd(Jd(e)),c=J1(o),u=I.length;return c<0||c>=u?A?"":void 0:(n=Ob(I,c))<55296||n>56319||c+1===u||(a=Ob(I,c+1))<56320||a>57343?A?p0(I,c):n:A?H1(I,c,c+2):a-56320+(n-55296<<10)+65536}},dy={codeAt:xb(!1),charAt:xb(!0)},V1=dy.charAt,hy=Me,q1=ao,K1=Math.floor,f0=hy("".charAt),m0=hy("".replace),D0=hy("".slice),j1=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,W1=/\$([$&'`]|\d{1,2})/g,Yb=function(A,e,o,n,a,I){var c=o+A.length,u=n.length,d=W1;return a!==void 0&&(a=q1(a),d=j1),m0(I,d,function(R,k){var _;switch(f0(k,0)){case"$":return"$";case"&":return A;case"`":return D0(e,0,o);case"'":return D0(e,c);case"<":_=a[D0(k,1,-1)];break;default:var Z=+k;if(Z===0)return R;if(Z>u){var iA=K1(Z/10);return iA===0?R:iA<=u?n[iA-1]===void 0?f0(k,1):n[iA-1]+f0(k,1):R}_=n[Z-1]}return _===void 0?"":_})},Pb=z,z1=Zr,Jb=Ni,Z1=$e,Hb=Kp,X1=TypeError,$1=OC,Vb=z,py=Me,AJ=function(A,e,o,n){var a=h0(A),I=!d0(function(){var R={};return R[a]=function(){return 7},""[A](R)!==7}),c=I&&!d0(function(){var R=!1,k=/a/,_;return k.exec=function(){return R=!0,null},k[a](""),!R});if(!I||!c||o){var u=/./[a],d=e(a,""[A],function(R,k,_,Z,iA){var cA=k.exec;return cA===Fb||cA===Ub.exec?I&&!iA?{done:!0,value:Lb(u,k,_,Z)}:{done:!0,value:Lb(R,_,k,Z)}:{done:!1}});Q0(String.prototype,A,d[0]),Q0(Ub,a,d[1])}},eJ=m,tJ=Zr,qb=Ni,iJ=Ji,oJ=ca,Kb=Wr,rQ=Mn,fy=no,jb=function(A,e,o){return e+(o?V1(A,e).length:1)},Dy=An,Wb=Yb,zb=ny,rJ=function(A,e){var o=A.exec;if(Jb(o)){var n=Pb(o,A,e);return n!==null&&z1(n),n}if(Z1(A)==="RegExp")return Pb(Hb,A,e);throw new X1("RegExp#exec called on incompatible receiver")},yy=qo("replace"),y0=Math.max,nJ=Math.min,Zb=py([].concat),R0=py([].push),Ry=py("".indexOf),Xb=py("".slice),aJ=function(A){return A===void 0?A:String(A)},sJ="a".replace(/./,"$0")==="$0",$b=!!/./[yy]&&/./[yy]("a","$0")==="",gJ=!eJ(function(){var A=/./;return A.exec=function(){var e=[];return e.groups={a:"7"},e},"".replace(A,"$<a>")!=="7"});AJ("replace",function(A,e,o){var n=$b?"$":"$0";return[function(a,I){var c=fy(this),u=iJ(a)?Dy(a,yy):void 0;return u?Vb(u,a,c,I):Vb(e,rQ(c),a,I)},function(a,I){var c=tJ(this),u=rQ(a);if(typeof I=="string"&&Ry(I,n)===-1&&Ry(I,"$<")===-1){var d=o(e,c,u,I);if(d.done)return d.value}var R=qb(I);R||(I=rQ(I));var k,_=rQ(zb(c)),Z=Ry(_,"g")!==-1;Z&&(k=Ry(_,"u")!==-1,c.lastIndex=0);for(var iA,cA=[];(iA=rJ(c,u))!==null&&(R0(cA,iA),Z);)rQ(iA[0])===""&&(c.lastIndex=jb(u,Kb(c.lastIndex),k));for(var TA="",JA=0,Ie=0;Ie<cA.length;Ie++){for(var XA,Ft=rQ((iA=cA[Ie])[0]),ie=y0(nJ(oJ(iA.index),u.length),0),ke=[],Nt=1;Nt<iA.length;Nt++)R0(ke,aJ(iA[Nt]));var Ut=iA.groups;if(R){var Ui=Zb([Ft],ke,ie,u);Ut!==void 0&&R0(Ui,Ut),XA=rQ($1(I,void 0,Ui))}else XA=Wb(Ft,u,ie,ke,Ut,I);ie>=JA&&(TA+=Xb(u,JA,ie)+XA,JA=ie+Ft.length)}return TA+Xb(u,JA)}]},!gJ||!sJ||$b);var My=`
\v\f\r                 \u2028\u2029\uFEFF`,IJ=no,cJ=Mn,M0=My,w0=Me("".replace),AL=RegExp("^["+M0+"]+"),EJ=RegExp("(^|[^"+M0+"])["+M0+"]+$"),lJ=function(A){return function(e){var o=cJ(IJ(e));return 1&A&&(o=w0(o,AL,"")),2&A&&(o=w0(o,EJ,"$1")),o}},CJ={trim:lJ(3)},BJ=_s.PROPER,uJ=m,eL=My,QJ=CJ.trim;wr({target:"String",proto:!0,forced:function(A){return uJ(function(){return!!eL[A]()||"​…᠎"[A]()!=="​…᠎"||BJ&&eL[A].name!==A})}("trim")},{trim:function(){return QJ(this)}});var mI,Hd,wy,S0={exports:{}},dJ=Cn,v0=M,Wg=Q,tL=Ni,iL=Ji,Vd=po,Sy=sg,N0=Kr,T0=Bs,G0=mn,oL=dI,hJ=YA,k0=FE,nQ=q,pJ=qo,fJ=$s,_0=on.enforce,PC=Wg.Int8Array,qd=PC&&PC.prototype,rL=Wg.Uint8ClampedArray,nL=rL&&rL.prototype,Wl=PC&&k0(PC),jE=qd&&k0(qd),mJ=Object.prototype,b0=Wg.TypeError,aL=pJ("toStringTag"),L0=fJ("TYPED_ARRAY_TAG"),jp="TypedArrayConstructor",WE=dJ&&!!nQ&&Sy(Wg.opera)!=="Opera",sL=!1,VB={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},gL={BigInt64Array:8,BigUint64Array:8},vy=function(A){if(!iL(A))return!1;var e=Sy(A);return Vd(VB,e)||Vd(gL,e)};for(mI in VB)(wy=(Hd=Wg[mI])&&Hd.prototype)?_0(wy)[jp]=Hd:WE=!1;for(mI in gL)(wy=(Hd=Wg[mI])&&Hd.prototype)&&(_0(wy)[jp]=Hd);if((!WE||!tL(Wl)||Wl===Function.prototype)&&(Wl=function(){throw new b0("Incorrect invocation")},WE))for(mI in VB)Wg[mI]&&nQ(Wg[mI],Wl);if((!WE||!jE||jE===mJ)&&(jE=Wl.prototype,WE))for(mI in VB)Wg[mI]&&nQ(Wg[mI].prototype,jE);if(WE&&k0(nL)!==jE&&nQ(nL,jE),v0&&!Vd(jE,aL))for(mI in sL=!0,oL(jE,aL,{configurable:!0,get:function(){return iL(this)?this[L0]:void 0}}),VB)Wg[mI]&&T0(Wg[mI],L0,mI);var zE={NATIVE_ARRAY_BUFFER_VIEWS:WE,TYPED_ARRAY_TAG:sL&&L0,aTypedArray:function(A){if(vy(A))return A;throw new b0("Target is not a typed array")},aTypedArrayConstructor:function(A){if(tL(A)&&(!nQ||hJ(Wl,A)))return A;throw new b0(N0(A)+" is not a typed array constructor")},exportTypedArrayMethod:function(A,e,o,n){if(v0){if(o)for(var a in VB){var I=Wg[a];if(I&&Vd(I.prototype,A))try{delete I.prototype[A]}catch{try{I.prototype[A]=e}catch{}}}jE[A]&&!o||G0(jE,A,o?e:WE&&qd[A]||e,n)}},exportTypedArrayStaticMethod:function(A,e,o){var n,a;if(v0){if(nQ){if(o){for(n in VB)if((a=Wg[n])&&Vd(a,A))try{delete a[A]}catch{}}if(Wl[A]&&!o)return;try{return G0(Wl,A,o?e:WE&&Wl[A]||e)}catch{}}for(n in VB)!(a=Wg[n])||a[A]&&!o||G0(a,A,e)}},isTypedArray:vy,TypedArray:Wl,TypedArrayPrototype:jE},F0=Q,Wp=m,Ny=Nd,DJ=zE.NATIVE_ARRAY_BUFFER_VIEWS,IL=F0.ArrayBuffer,aQ=F0.Int8Array,cL=!DJ||!Wp(function(){aQ(1)})||!Wp(function(){new aQ(-1)})||!Ny(function(A){new aQ,new aQ(null),new aQ(1.5),new aQ(A)},!0)||Wp(function(){return new aQ(new IL(2),1,void 0).length!==1}),yJ=Ji,RJ=Math.floor,EL=Number.isInteger||function(A){return!yJ(A)&&isFinite(A)&&RJ(A)===A},MJ=ca,wJ=RangeError,Ty=function(A){var e=MJ(A);if(e<0)throw new wJ("The argument can't be less than 0");return e},SJ=RangeError,lL=function(A,e){var o=Ty(A);if(o%e)throw new SJ("Wrong offset");return o},vJ=Math.round,CL=sg,NJ=Mr,TJ=TypeError,Gy=function(A){var e=NJ(A,"number");if(typeof e=="number")throw new TJ("Can't convert number to bigint");return BigInt(e)},BL=jc,uL=z,GJ=a_,kJ=ao,QL=hs,dL=eQ,_J=xp,hL=GS,pL=function(A){var e=CL(A);return e==="BigInt64Array"||e==="BigUint64Array"},bJ=zE.aTypedArrayConstructor,LJ=Gy,ky=function(A){var e,o,n,a,I,c,u,d,R=GJ(this),k=kJ(A),_=arguments.length,Z=_>1?arguments[1]:void 0,iA=Z!==void 0,cA=_J(k);if(cA&&!hL(cA))for(d=(u=dL(k,cA)).next,k=[];!(c=uL(d,u)).done;)k.push(c.value);for(iA&&_>2&&(Z=BL(Z,arguments[2])),o=QL(k),n=new(bJ(R))(o),a=pL(n),e=0;o>e;e++)I=iA?Z(k[e],e):k[e],n[e]=a?LJ(I):+I;return n},U0=ia,O0=eS,FJ=Ji,UJ=qo("species"),fL=Array,OJ=function(A){var e;return U0(A)&&(e=A.constructor,(O0(e)&&(e===fL||U0(e.prototype))||FJ(e)&&(e=e[UJ])===null)&&(e=void 0)),e===void 0?fL:e},mL=jc,xJ=ai,YJ=ao,DL=hs,PJ=function(A,e){return new(OJ(A))(e===0?0:e)},x0=Me([].push),yL=function(A){var e=A===1,o=A===2,n=A===3,a=A===4,I=A===6,c=A===7,u=A===5||I;return function(d,R,k,_){for(var Z,iA,cA=YJ(d),TA=xJ(cA),JA=DL(TA),Ie=mL(R,k),XA=0,Ft=_||PJ,ie=e?Ft(d,JA):o||c?Ft(d,0):void 0;JA>XA;XA++)if((u||XA in TA)&&(iA=Ie(Z=TA[XA],XA,cA),A))if(e)ie[XA]=iA;else if(iA)switch(A){case 3:return!0;case 5:return Z;case 6:return XA;case 2:x0(ie,Z)}else switch(A){case 4:return!1;case 7:x0(ie,Z)}return I?-1:n||a?a:ie}},RL={forEach:yL(0)},JJ=hs,ML=wr,wL=Q,SL=z,vL=M,HJ=cL,zp=zE,NL=kD,TL=oc,VJ=VA,qB=Bs,qJ=EL,KJ=Wr,GL=mD,Y0=lL,kL=function(A){var e=vJ(A);return e<0?0:e>255?255:255&e},P0=P,sQ=po,jJ=sg,J0=Ji,H0=Vo,WJ=fa,V0=YA,_y=q,zJ=Lg.f,_L=ky,bL=RL.forEach,by=bD,ZJ=dI,LL=oi,FL=f,UL=function(A,e,o){for(var n=0,a=arguments.length>2?o:JJ(e),I=new A(a);a>n;)I[n]=e[n++];return I},XJ=Uw,q0=on.get,$J=on.set,gQ=on.enforce,OL=LL.f,AH=FL.f,K0=wL.RangeError,xL=NL.ArrayBuffer,eH=xL.prototype,tH=NL.DataView,Kd=zp.NATIVE_ARRAY_BUFFER_VIEWS,YL=zp.TYPED_ARRAY_TAG,PL=zp.TypedArray,Zp=zp.TypedArrayPrototype,Xp=zp.isTypedArray,IQ="BYTES_PER_ELEMENT",Ly="Wrong length",Fy=function(A,e){ZJ(A,e,{configurable:!0,get:function(){return q0(this)[e]}})},JL=function(A){var e;return V0(eH,A)||(e=jJ(A))==="ArrayBuffer"||e==="SharedArrayBuffer"},j0=function(A,e){return Xp(A)&&!H0(e)&&e in A&&qJ(+e)&&e>=0},Uy=function(A,e){return e=P0(e),j0(A,e)?VJ(2,A[e]):AH(A,e)},HL=function(A,e,o){return e=P0(e),!(j0(A,e)&&J0(o)&&sQ(o,"value"))||sQ(o,"get")||sQ(o,"set")||o.configurable||sQ(o,"writable")&&!o.writable||sQ(o,"enumerable")&&!o.enumerable?OL(A,e,o):(A[e]=o.value,A)};vL?(Kd||(FL.f=Uy,LL.f=HL,Fy(Zp,"buffer"),Fy(Zp,"byteOffset"),Fy(Zp,"byteLength"),Fy(Zp,"length")),ML({target:"Object",stat:!0,forced:!Kd},{getOwnPropertyDescriptor:Uy,defineProperty:HL}),S0.exports=function(A,e,o){var n=A.match(/\d+/)[0]/8,a=A+(o?"Clamped":"")+"Array",I="get"+A,c="set"+A,u=wL[a],d=u,R=d&&d.prototype,k={},_=function(iA,cA){OL(iA,cA,{get:function(){return function(TA,JA){var Ie=q0(TA);return Ie.view[I](JA*n+Ie.byteOffset,!0)}(this,cA)},set:function(TA){return function(JA,Ie,XA){var Ft=q0(JA);Ft.view[c](Ie*n+Ft.byteOffset,o?kL(XA):XA,!0)}(this,cA,TA)},enumerable:!0})};Kd?HJ&&(d=e(function(iA,cA,TA,JA){return TL(iA,R),XJ(J0(cA)?JL(cA)?JA!==void 0?new u(cA,Y0(TA,n),JA):TA!==void 0?new u(cA,Y0(TA,n)):new u(cA):Xp(cA)?UL(d,cA):SL(_L,d,cA):new u(GL(cA)),iA,d)}),_y&&_y(d,PL),bL(zJ(u),function(iA){iA in d||qB(d,iA,u[iA])}),d.prototype=R):(d=e(function(iA,cA,TA,JA){TL(iA,R);var Ie,XA,Ft,ie=0,ke=0;if(J0(cA)){if(!JL(cA))return Xp(cA)?UL(d,cA):SL(_L,d,cA);Ie=cA,ke=Y0(TA,n);var Nt=cA.byteLength;if(JA===void 0){if(Nt%n)throw new K0(Ly);if((XA=Nt-ke)<0)throw new K0(Ly)}else if((XA=KJ(JA)*n)+ke>Nt)throw new K0(Ly);Ft=XA/n}else Ft=GL(cA),Ie=new xL(XA=Ft*n);for($J(iA,{buffer:Ie,byteOffset:ke,byteLength:XA,length:Ft,view:new tH(Ie)});ie<Ft;)_(iA,ie++)}),_y&&_y(d,PL),R=d.prototype=WJ(Zp)),R.constructor!==d&&qB(R,"constructor",d),gQ(R).TypedArrayConstructor=d,YL&&qB(R,YL,a);var Z=d!==u;k[a]=d,ML({global:!0,constructor:!0,forced:Z,sham:!Kd},k),IQ in d||qB(d,IQ,n),IQ in R||qB(R,IQ,n),by(a)}):S0.exports=function(){};var VL=S0.exports;VL("Float32",function(A){return function(e,o,n){return A(this,e,o,n)}}),VL("Uint8",function(A){return function(e,o,n){return A(this,e,o,n)}});var iH=Ok,qL=Gy,oH=sg,rH=z,W0=m,nH=zE.aTypedArray,z0=zE.exportTypedArrayMethod,aH=Me("".slice);z0("fill",function(A){var e=arguments.length;nH(this);var o=aH(oH(this),0,3)==="Big"?qL(A):+A;return rH(iH,this,o,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)},W0(function(){var A=0;return new Int8Array(2).fill({valueOf:function(){return A++}}),A!==1})),(0,zE.exportTypedArrayStaticMethod)("from",ky,cL);var KL=Q,jL=z,Z0=zE,WL=hs,sH=lL,gH=ao,zL=m,IH=KL.RangeError,X0=KL.Int8Array,$0=X0&&X0.prototype,Av=$0&&$0.set,ev=Z0.aTypedArray,ZL=Z0.exportTypedArrayMethod,Oy=!zL(function(){var A=new Uint8ClampedArray(2);return jL(Av,A,{length:1,0:3},1),A[1]!==3}),XL=Oy&&Z0.NATIVE_ARRAY_BUFFER_VIEWS&&zL(function(){var A=new X0(2);return A.set(1),A.set("2",1),A[0]!==0||A[1]!==2});ZL("set",function(A){ev(this);var e=sH(arguments.length>1?arguments[1]:void 0,1),o=gH(A);if(Oy)return jL(Av,this,o,e);var n=this.length,a=WL(o),I=0;if(a+e>n)throw new IH("Wrong length");for(;I<a;)this[e+I]=o[I++]},!Oy||XL);var $L=jl,tv=m,iv=$t,cH=He,ov=ft,rv=Pe,nv=ot,av=gi,EH=zE.aTypedArray,$p=zE.exportTypedArrayMethod,Wd=Q.Uint16Array,zd=Wd&&$L(Wd.prototype.sort),sv=!(!zd||tv(function(){zd(new Wd(2),null)})&&tv(function(){zd(new Wd(2),{})})),xy=!!zd&&!tv(function(){if(nv)return nv<74;if(ov)return ov<67;if(rv)return!0;if(av)return av<602;var A,e,o=new Wd(516),n=Array(516);for(A=0;A<516;A++)e=A%4,o[A]=515-A,n[A]=A-2*e+3;for(zd(o,function(a,I){return(a/4|0)-(I/4|0)}),A=0;A<516;A++)if(o[A]!==n[A])return!0});$p("sort",function(A){return A!==void 0&&iv(A),xy?zd(this,A):cH(EH(this),function(e){return function(o,n){return e!==void 0?+e(o,n)||0:n!=n?-1:o!=o?1:o===0&&n===0?1/o>0&&1/n<0?1:-1:o>n}}(A))},!xy||sv);var AF=wr,gv=z,Af=Me,Iv=no,cv=Ni,lH=Ji,eF=KS,ef=Mn,CH=An,tf=ny,tF=Yb,BH=qo("replace"),iF=TypeError,ZE=Af("".indexOf);Af("".replace);var of=Af("".slice),uH=Math.max;AF({target:"String",proto:!0},{replaceAll:function(A,e){var o,n,a,I,c,u,d,R,k,_=Iv(this),Z=0,iA="";if(lH(A)){if(eF(A)&&(o=ef(Iv(tf(A))),!~ZE(o,"g")))throw new iF("`.replaceAll` does not allow non-global regexes");if(n=CH(A,BH))return gv(n,A,_,e)}for(a=ef(_),I=ef(A),(c=cv(e))||(e=ef(e)),u=I.length,d=uH(1,u),R=ZE(a,I);R!==-1;)k=c?ef(e(I,R,a)):tF(I,a,R,[],void 0,e),iA+=of(a,Z,R)+k,Z=R+u,R=R+d>a.length?-1:ZE(a,I,R+d);return Z<a.length&&(iA+=of(a,Z)),iA}});var Ev={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Yy=GA("span").classList,oF=Yy&&Yy.constructor&&Yy.constructor.prototype,lv=oF===Object.prototype?void 0:oF,QH=RL.forEach,dH=Fe("forEach")?[].forEach:function(A){return QH(this,A,arguments.length>1?arguments[1]:void 0)},rF=Q,nF=Ev,hH=lv,Py=dH,pH=Bs,aF=function(A){if(A&&A.forEach!==Py)try{pH(A,"forEach",Py)}catch{A.forEach=Py}};for(var Cv in nF)nF[Cv]&&aF(rF[Cv]&&rF[Cv].prototype);aF(hH);var Jy=Q,sF=Ev,fH=lv,rf=si,nf=Bs,mH=Rs,Bv=qo("iterator"),uv=rf.values,gF=function(A,e){if(A){if(A[Bv]!==uv)try{nf(A,Bv,uv)}catch{A[Bv]=uv}if(mH(A,e,!0),sF[e]){for(var o in rf)if(A[o]!==rf[o])try{nf(A,o,rf[o])}catch{A[o]=rf[o]}}}};for(var Qv in sF)gF(Jy[Qv]&&Jy[Qv].prototype,Qv);gF(fH,"DOMTokenList");var dv=JD.clear;wr({global:!0,bind:!0,enumerable:!0,forced:Q.clearImmediate!==dv},{clearImmediate:dv});var af=Q,DH=OC,yH=Ni,RH=_n,MH=Te,wH=UA,SH=xD,hv=af.Function,vH=/MSIE .\./.test(MH)||RH==="BUN"&&function(){var A=af.Bun.version.split(".");return A.length<3||A[0]==="0"&&(A[1]<3||A[1]==="3"&&A[2]==="0")}(),IF=wr,cF=Q,Hy=JD.set,NH=function(A,e){var o=1;return vH?function(n,a){var I=SH(arguments.length,1)>o,c=yH(n)?n:hv(n),u=I?wH(arguments,o):[],d=I?function(){DH(c,this,u)}:c;return A(d)}:A},pv=cF.setImmediate?NH(Hy):Hy;IF({global:!0,bind:!0,enumerable:!0,forced:cF.setImmediate!==pv},{setImmediate:pv});var JC=dy.charAt,TH=Mn,Vy=on,GH=xA,EF=Qe,lF="String Iterator",kH=Vy.set,CF=Vy.getterFor(lF);GH(String,"String",function(A){kH(this,{type:lF,string:TH(A),index:0})},function(){var A,e=CF(this),o=e.string,n=e.index;return n>=o.length?EF(void 0,!0):(A=JC(o,n),e.index+=A.length,EF(A,!1))});var _H=m,bH=M,LH=qo("iterator"),BF=!_H(function(){var A=new URL("b?a=1&b=2&c=3","https://a"),e=A.searchParams,o=new URLSearchParams("a=1&a=2&b=3"),n="";return A.pathname="c%20d",e.forEach(function(a,I){e.delete("b"),n+=I+a}),o.delete("a",2),o.delete("b",void 0),!e.size&&!bH||!e.sort||A.href!=="https://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[LH]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||n!=="a1c3"||new URL("https://x",void 0).host!=="x"}),uF=M,FH=Me,fv=z,mv=m,Dv=pI,UH=Ug,OH=sA,xH=ao,QF=ai,cQ=Object.assign,dF=Object.defineProperty,hF=FH([].concat),YH=!cQ||mv(function(){if(uF&&cQ({b:1},cQ(dF({},"a",{enumerable:!0,get:function(){dF(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var A={},e={},o=Symbol("assign detection"),n="abcdefghijklmnopqrst";return A[o]=7,n.split("").forEach(function(a){e[a]=a}),cQ({},A)[o]!==7||Dv(cQ({},e)).join("")!==n})?function(A,e){for(var o=xH(A),n=arguments.length,a=1,I=UH.f,c=OH.f;n>a;)for(var u,d=QF(arguments[a++]),R=I?hF(Dv(d),I(d)):Dv(d),k=R.length,_=0;k>_;)u=R[_++],uF&&!fv(c,d,u)||(o[u]=d[u]);return o}:cQ,PH=Zr,JH=Ab,HH=M,VH=oi,pF=VA,qH=jc,sf=z,fF=ao,mF=function(A,e,o,n){try{return n?e(PH(o)[0],o[1]):e(o)}catch(a){JH(A,"throw",a)}},yv=GS,KH=eS,jH=hs,gf=function(A,e,o){HH?VH.f(A,e,pF(0,o)):A[e]=o},Rv=eQ,WH=xp,DF=Array,KB=Me,Mv=2147483647,yF=/[^\0-\u007E]/,wv=/[.\u3002\uFF0E\uFF61]/g,RF="Overflow: input needs wider integers to process",MF=RangeError,zH=KB(wv.exec),jB=Math.floor,qy=String.fromCharCode,Ky=KB("".charCodeAt),sc=KB([].join),WB=KB([].push),Pn=KB("".replace),wF=KB("".split),ZH=KB("".toLowerCase),SF=function(A){return A+22+75*(A<26)},Sv=function(A,e,o){var n=0;for(A=o?jB(A/700):A>>1,A+=jB(A/e);A>455;)A=jB(A/35),n+=36;return jB(n+36*A/(A+38))},XH=function(A){var e=[];A=function(Ie){for(var XA=[],Ft=0,ie=Ie.length;Ft<ie;){var ke=Ky(Ie,Ft++);if(ke>=55296&&ke<=56319&&Ft<ie){var Nt=Ky(Ie,Ft++);(64512&Nt)==56320?WB(XA,((1023&ke)<<10)+(1023&Nt)+65536):(WB(XA,ke),Ft--)}else WB(XA,ke)}return XA}(A);var o,n,a=A.length,I=128,c=0,u=72;for(o=0;o<A.length;o++)(n=A[o])<128&&WB(e,qy(n));var d=e.length,R=d;for(d&&WB(e,"-");R<a;){var k=Mv;for(o=0;o<A.length;o++)(n=A[o])>=I&&n<k&&(k=n);var _=R+1;if(k-I>jB((Mv-c)/_))throw new MF(RF);for(c+=(k-I)*_,I=k,o=0;o<A.length;o++){if((n=A[o])<I&&++c>Mv)throw new MF(RF);if(n===I){for(var Z=c,iA=36;;){var cA=iA<=u?1:iA>=u+26?26:iA-u;if(Z<cA)break;var TA=Z-cA,JA=36-cA;WB(e,qy(SF(cA+TA%JA))),Z=jB(TA/JA),iA+=36}WB(e,qy(SF(Z))),u=Sv(c,_,R===d),c=0,R++}}c++,I++}return sc(e,"")},BW=wr,vF=Me,$H=_c,AV=RangeError,HC=String.fromCharCode,If=String.fromCodePoint,cf=vF([].join);BW({target:"String",stat:!0,arity:1,forced:!!If&&If.length!==1},{fromCodePoint:function(A){for(var e,o=[],n=arguments.length,a=0;n>a;){if(e=+arguments[a++],$H(e,1114111)!==e)throw new AV(e+" is not a valid code point");o[a]=e<65536?HC(e):HC(55296+((e-=65536)>>10),e%1024+56320)}return cf(o,"")}});var EQ=wr,Zd=Q,lQ=y_,vv=MA,To=z,gc=Me,Xd=M,Nv=BF,NF=mn,eV=dI,tV=JE,iV=Rs,oV=bB,Ef=on,TF=oc,Tv=Ni,rV=po,nV=jc,aV=sg,sV=Zr,GF=Ji,Bg=Mn,gV=fa,kF=VA,_F=eQ,IV=xp,jy=Qe,$d=xD,cV=He,EV=qo("iterator"),CQ="URLSearchParams",Gv=CQ+"Iterator",bF=Ef.set,Ps=Ef.getterFor(CQ),VC=Ef.getterFor(Gv),LF=lQ("fetch"),Ah=lQ("Request"),lf=lQ("Headers"),kv=Ah&&Ah.prototype,FF=lf&&lf.prototype,UF=Zd.TypeError,lV=Zd.encodeURIComponent,CV=String.fromCharCode,BV=vv("String","fromCodePoint"),uV=parseInt,Wy=gc("".charAt),zy=gc([].join),qC=gc([].push),OF=gc("".replace),QV=gc([].shift),xF=gc([].splice),YF=gc("".split),PF=gc("".slice),_v=gc(/./.exec),JF=/\+/g,dV=/^[0-9a-f]+$/i,HF=function(A,e){var o=PF(A,e,e+2);return _v(dV,o)?uV(o,16):NaN},hV=function(A){for(var e=0,o=128;o>0&&A&o;o>>=1)e++;return e},pV=function(A){var e=null;switch(A.length){case 1:e=A[0];break;case 2:e=(31&A[0])<<6|63&A[1];break;case 3:e=(15&A[0])<<12|(63&A[1])<<6|63&A[2];break;case 4:e=(7&A[0])<<18|(63&A[1])<<12|(63&A[2])<<6|63&A[3]}return e>1114111?null:e},VF=function(A){for(var e=(A=OF(A,JF," ")).length,o="",n=0;n<e;){var a=Wy(A,n);if(a==="%"){if(Wy(A,n+1)==="%"||n+3>e){o+="%",n++;continue}var I=HF(A,n+1);if(I!=I){o+=a,n++;continue}n+=2;var c=hV(I);if(c===0)a=CV(I);else{if(c===1||c>4){o+="�",n++;continue}for(var u=[I],d=1;d<c&&!(++n+3>e||Wy(A,n)!=="%");){var R=HF(A,n+1);if(R!=R){n+=3;break}if(R>191||R<128)break;qC(u,R),n+=2,d++}if(u.length!==c){o+="�";continue}var k=pV(u);k===null?o+="�":a=BV(k)}}o+=a,n++}return o},fV=/[!'()~]|%20/g,mV={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},DV=function(A){return mV[A]},qF=function(A){return OF(lV(A),fV,DV)},bv=oV(function(A,e){bF(this,{type:Gv,target:Ps(A).entries,index:0,kind:e})},CQ,function(){var A=VC(this),e=A.target,o=A.index++;if(!e||o>=e.length)return A.target=null,jy(void 0,!0);var n=e[o];switch(A.kind){case"keys":return jy(n.key,!1);case"values":return jy(n.value,!1)}return jy([n.key,n.value],!1)},!0),KF=function(A){this.entries=[],this.url=null,A!==void 0&&(GF(A)?this.parseObject(A):this.parseQuery(typeof A=="string"?Wy(A,0)==="?"?PF(A,1):A:Bg(A)))};KF.prototype={type:CQ,bindURL:function(A){this.url=A,this.update()},parseObject:function(A){var e,o,n,a,I,c,u,d=this.entries,R=IV(A);if(R)for(o=(e=_F(A,R)).next;!(n=To(o,e)).done;){if(I=(a=_F(sV(n.value))).next,(c=To(I,a)).done||(u=To(I,a)).done||!To(I,a).done)throw new UF("Expected sequence with length 2");qC(d,{key:Bg(c.value),value:Bg(u.value)})}else for(var k in A)rV(A,k)&&qC(d,{key:k,value:Bg(A[k])})},parseQuery:function(A){if(A)for(var e,o,n=this.entries,a=YF(A,"&"),I=0;I<a.length;)(e=a[I++]).length&&(o=YF(e,"="),qC(n,{key:VF(QV(o)),value:VF(zy(o,"="))}))},serialize:function(){for(var A,e=this.entries,o=[],n=0;n<e.length;)A=e[n++],qC(o,qF(A.key)+"="+qF(A.value));return zy(o,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var eh=function(){TF(this,BQ);var A=bF(this,new KF(arguments.length>0?arguments[0]:void 0));Xd||(this.size=A.entries.length)},BQ=eh.prototype;if(tV(BQ,{append:function(A,e){var o=Ps(this);$d(arguments.length,2),qC(o.entries,{key:Bg(A),value:Bg(e)}),Xd||this.size++,o.updateURL()},delete:function(A){for(var e=Ps(this),o=$d(arguments.length,1),n=e.entries,a=Bg(A),I=o<2?void 0:arguments[1],c=I===void 0?I:Bg(I),u=0;u<n.length;){var d=n[u];if(d.key!==a||c!==void 0&&d.value!==c)u++;else if(xF(n,u,1),c!==void 0)break}Xd||(this.size=n.length),e.updateURL()},get:function(A){var e=Ps(this).entries;$d(arguments.length,1);for(var o=Bg(A),n=0;n<e.length;n++)if(e[n].key===o)return e[n].value;return null},getAll:function(A){var e=Ps(this).entries;$d(arguments.length,1);for(var o=Bg(A),n=[],a=0;a<e.length;a++)e[a].key===o&&qC(n,e[a].value);return n},has:function(A){for(var e=Ps(this).entries,o=$d(arguments.length,1),n=Bg(A),a=o<2?void 0:arguments[1],I=a===void 0?a:Bg(a),c=0;c<e.length;){var u=e[c++];if(u.key===n&&(I===void 0||u.value===I))return!0}return!1},set:function(A,e){var o=Ps(this);$d(arguments.length,1);for(var n,a=o.entries,I=!1,c=Bg(A),u=Bg(e),d=0;d<a.length;d++)(n=a[d]).key===c&&(I?xF(a,d--,1):(I=!0,n.value=u));I||qC(a,{key:c,value:u}),Xd||(this.size=a.length),o.updateURL()},sort:function(){var A=Ps(this);cV(A.entries,function(e,o){return e.key>o.key?1:-1}),A.updateURL()},forEach:function(A){for(var e,o=Ps(this).entries,n=nV(A,arguments.length>1?arguments[1]:void 0),a=0;a<o.length;)n((e=o[a++]).value,e.key,this)},keys:function(){return new bv(this,"keys")},values:function(){return new bv(this,"values")},entries:function(){return new bv(this,"entries")}},{enumerable:!0}),NF(BQ,EV,BQ.entries,{name:"entries"}),NF(BQ,"toString",function(){return Ps(this).serialize()},{enumerable:!0}),Xd&&eV(BQ,"size",{get:function(){return Ps(this).entries.length},configurable:!0,enumerable:!0}),iV(eh,CQ),EQ({global:!0,constructor:!0,forced:!Nv},{URLSearchParams:eh}),!Nv&&Tv(lf)){var yV=gc(FF.has),Lv=gc(FF.set),jF=function(A){if(GF(A)){var e,o=A.body;if(aV(o)===CQ)return e=A.headers?new lf(A.headers):new lf,yV(e,"content-type")||Lv(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),gV(A,{body:kF(0,Bg(o)),headers:kF(0,e)})}return A};if(Tv(LF)&&EQ({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(A){return LF(A,arguments.length>1?jF(arguments[1]):{})}}),Tv(Ah)){var Fv=function(A){return TF(this,kv),new Ah(A,arguments.length>1?jF(arguments[1]):{})};kv.constructor=Fv,Fv.prototype=kv,EQ({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Fv})}}var Ic,RV=wr,Uv=M,WF=BF,Ov=Q,zF=jc,Wc=Me,Zy=mn,zc=dI,MV=oc,xv=po,Yv=YH,zB=function(A){var e=fF(A),o=KH(this),n=arguments.length,a=n>1?arguments[1]:void 0,I=a!==void 0;I&&(a=qH(a,n>2?arguments[2]:void 0));var c,u,d,R,k,_,Z=WH(e),iA=0;if(!Z||this===DF&&yv(Z))for(c=jH(e),u=o?new this(c):DF(c);c>iA;iA++)_=I?a(e[iA],iA):e[iA],gf(u,iA,_);else for(u=o?new this:[],k=(R=Rv(e,Z)).next;!(d=sf(k,R)).done;iA++)_=I?mF(R,a,[d.value,iA],!0):d.value,gf(u,iA,_);return u.length=iA,u},XE=UA,Pv=dy.codeAt,wV=function(A){var e,o,n=[],a=wF(Pn(ZH(A),wv,"."),".");for(e=0;e<a.length;e++)o=a[e],WB(n,zH(yF,o)?"xn--"+XH(o):o);return sc(n,".")},KC=Mn,SV=Rs,ZF=xD,XF={URLSearchParams:eh,getState:Ps},Jv=on,vV=Jv.set,Xy=Jv.getterFor("URL"),NV=XF.URLSearchParams,TV=XF.getState,th=Ov.URL,Hv=Ov.TypeError,$y=Ov.parseInt,jC=Math.floor,$F=Math.pow,Zc=Wc("".charAt),$E=Wc(/./.exec),Cf=Wc([].join),GV=Wc(1.1.toString),AU=Wc([].pop),ih=Wc([].push),AR=Wc("".replace),eR=Wc([].shift),Vv=Wc("".split),uQ=Wc("".slice),tR=Wc("".toLowerCase),kV=Wc([].unshift),qv="Invalid scheme",ZB="Invalid host",iR="Invalid port",Bf=/[a-z]/i,_V=/[\d+-.a-z]/i,Kv=/\d/,oR=/^0x/i,bV=/^[0-7]+$/,eU=/^\d+$/,tU=/^[\da-f]+$/i,iU=/[\0\t\n\r #%/:<>?@[\\\]^|]/,LV=/[\0\t\n\r #/:<>?@[\\\]^|]/,FV=/^[\u0000-\u0020]+/,UV=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,OV=/[\t\n\r]/g,oh=function(A){var e,o,n,a;if(typeof A=="number"){for(e=[],o=0;o<4;o++)kV(e,A%256),A=jC(A/256);return Cf(e,".")}if(typeof A=="object"){for(e="",n=function(I){for(var c=null,u=1,d=null,R=0,k=0;k<8;k++)I[k]!==0?(R>u&&(c=d,u=R),d=null,R=0):(d===null&&(d=k),++R);return R>u?d:c}(A),o=0;o<8;o++)a&&A[o]===0||(a&&(a=!1),n===o?(e+=o?":":"::",a=!0):(e+=GV(A[o],16),o<7&&(e+=":")));return"["+e+"]"}return A},rh={},oU=Yv({},rh,{" ":1,'"':1,"<":1,">":1,"`":1}),jv=Yv({},oU,{"#":1,"?":1,"{":1,"}":1}),XB=Yv({},jv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Al=function(A,e){var o=Pv(A,0);return o>32&&o<127&&!xv(e,A)?A:encodeURIComponent(A)},WC={ftp:21,file:null,http:80,https:443,ws:80,wss:443},nh=function(A,e){var o;return A.length===2&&$E(Bf,Zc(A,0))&&((o=Zc(A,1))===":"||!e&&o==="|")},Wv=function(A){var e;return A.length>1&&nh(uQ(A,0,2))&&(A.length===2||(e=Zc(A,2))==="/"||e==="\\"||e==="?"||e==="#")},uf=function(A){return A==="."||tR(A)==="%2e"},rU=function(A){return(A=tR(A))===".."||A==="%2e."||A===".%2e"||A==="%2e%2e"},cc={},DI={},$B={},zl={},Au={},rR={},nU={},Qf={},nR={},aR={},sR={},gR={},IR={},cR={},zv={},ER={},ah={},Zl={},df={},yI={},ug={},lR=function(A,e,o){var n,a,I,c=KC(A);if(e){if(a=this.parse(c))throw new Hv(a);this.searchParams=null}else{if(o!==void 0&&(n=new lR(o,!0)),a=this.parse(c,null,n))throw new Hv(a);(I=TV(new NV)).bindURL(this),this.searchParams=I}};lR.prototype={type:"URL",parse:function(A,e,o){var n,a,I,c,u=this,d=e||cc,R=0,k="",_=!1,Z=!1,iA=!1;for(A=KC(A),e||(u.scheme="",u.username="",u.password="",u.host=null,u.port=null,u.path=[],u.query=null,u.fragment=null,u.cannotBeABaseURL=!1,A=AR(A,FV,""),A=AR(A,UV,"$1")),A=AR(A,OV,""),n=zB(A);R<=n.length;){switch(a=n[R],d){case cc:if(!a||!$E(Bf,a)){if(e)return qv;d=$B;continue}k+=tR(a),d=DI;break;case DI:if(a&&($E(_V,a)||a==="+"||a==="-"||a==="."))k+=tR(a);else{if(a!==":"){if(e)return qv;k="",d=$B,R=0;continue}if(e&&(u.isSpecial()!==xv(WC,k)||k==="file"&&(u.includesCredentials()||u.port!==null)||u.scheme==="file"&&!u.host))return;if(u.scheme=k,e)return void(u.isSpecial()&&WC[u.scheme]===u.port&&(u.port=null));k="",u.scheme==="file"?d=cR:u.isSpecial()&&o&&o.scheme===u.scheme?d=zl:u.isSpecial()?d=Qf:n[R+1]==="/"?(d=Au,R++):(u.cannotBeABaseURL=!0,ih(u.path,""),d=df)}break;case $B:if(!o||o.cannotBeABaseURL&&a!=="#")return qv;if(o.cannotBeABaseURL&&a==="#"){u.scheme=o.scheme,u.path=XE(o.path),u.query=o.query,u.fragment="",u.cannotBeABaseURL=!0,d=ug;break}d=o.scheme==="file"?cR:rR;continue;case zl:if(a!=="/"||n[R+1]!=="/"){d=rR;continue}d=nR,R++;break;case Au:if(a==="/"){d=aR;break}d=Zl;continue;case rR:if(u.scheme=o.scheme,a===Ic)u.username=o.username,u.password=o.password,u.host=o.host,u.port=o.port,u.path=XE(o.path),u.query=o.query;else if(a==="/"||a==="\\"&&u.isSpecial())d=nU;else if(a==="?")u.username=o.username,u.password=o.password,u.host=o.host,u.port=o.port,u.path=XE(o.path),u.query="",d=yI;else{if(a!=="#"){u.username=o.username,u.password=o.password,u.host=o.host,u.port=o.port,u.path=XE(o.path),u.path.length--,d=Zl;continue}u.username=o.username,u.password=o.password,u.host=o.host,u.port=o.port,u.path=XE(o.path),u.query=o.query,u.fragment="",d=ug}break;case nU:if(!u.isSpecial()||a!=="/"&&a!=="\\"){if(a!=="/"){u.username=o.username,u.password=o.password,u.host=o.host,u.port=o.port,d=Zl;continue}d=aR}else d=nR;break;case Qf:if(d=nR,a!=="/"||Zc(k,R+1)!=="/")continue;R++;break;case nR:if(a!=="/"&&a!=="\\"){d=aR;continue}break;case aR:if(a==="@"){_&&(k="%40"+k),_=!0,I=zB(k);for(var cA=0;cA<I.length;cA++){var TA=I[cA];if(TA!==":"||iA){var JA=Al(TA,XB);iA?u.password+=JA:u.username+=JA}else iA=!0}k=""}else if(a===Ic||a==="/"||a==="?"||a==="#"||a==="\\"&&u.isSpecial()){if(_&&k==="")return"Invalid authority";R-=zB(k).length+1,k="",d=sR}else k+=a;break;case sR:case gR:if(e&&u.scheme==="file"){d=ER;continue}if(a!==":"||Z){if(a===Ic||a==="/"||a==="?"||a==="#"||a==="\\"&&u.isSpecial()){if(u.isSpecial()&&k==="")return ZB;if(e&&k===""&&(u.includesCredentials()||u.port!==null))return;if(c=u.parseHost(k))return c;if(k="",d=ah,e)return;continue}a==="["?Z=!0:a==="]"&&(Z=!1),k+=a}else{if(k==="")return ZB;if(c=u.parseHost(k))return c;if(k="",d=IR,e===gR)return}break;case IR:if(!$E(Kv,a)){if(a===Ic||a==="/"||a==="?"||a==="#"||a==="\\"&&u.isSpecial()||e){if(k!==""){var Ie=$y(k,10);if(Ie>65535)return iR;u.port=u.isSpecial()&&Ie===WC[u.scheme]?null:Ie,k=""}if(e)return;d=ah;continue}return iR}k+=a;break;case cR:if(u.scheme="file",a==="/"||a==="\\")d=zv;else{if(!o||o.scheme!=="file"){d=Zl;continue}switch(a){case Ic:u.host=o.host,u.path=XE(o.path),u.query=o.query;break;case"?":u.host=o.host,u.path=XE(o.path),u.query="",d=yI;break;case"#":u.host=o.host,u.path=XE(o.path),u.query=o.query,u.fragment="",d=ug;break;default:Wv(Cf(XE(n,R),""))||(u.host=o.host,u.path=XE(o.path),u.shortenPath()),d=Zl;continue}}break;case zv:if(a==="/"||a==="\\"){d=ER;break}o&&o.scheme==="file"&&!Wv(Cf(XE(n,R),""))&&(nh(o.path[0],!0)?ih(u.path,o.path[0]):u.host=o.host),d=Zl;continue;case ER:if(a===Ic||a==="/"||a==="\\"||a==="?"||a==="#"){if(!e&&nh(k))d=Zl;else if(k===""){if(u.host="",e)return;d=ah}else{if(c=u.parseHost(k))return c;if(u.host==="localhost"&&(u.host=""),e)return;k="",d=ah}continue}k+=a;break;case ah:if(u.isSpecial()){if(d=Zl,a!=="/"&&a!=="\\")continue}else if(e||a!=="?")if(e||a!=="#"){if(a!==Ic&&(d=Zl,a!=="/"))continue}else u.fragment="",d=ug;else u.query="",d=yI;break;case Zl:if(a===Ic||a==="/"||a==="\\"&&u.isSpecial()||!e&&(a==="?"||a==="#")){if(rU(k)?(u.shortenPath(),a==="/"||a==="\\"&&u.isSpecial()||ih(u.path,"")):uf(k)?a==="/"||a==="\\"&&u.isSpecial()||ih(u.path,""):(u.scheme==="file"&&!u.path.length&&nh(k)&&(u.host&&(u.host=""),k=Zc(k,0)+":"),ih(u.path,k)),k="",u.scheme==="file"&&(a===Ic||a==="?"||a==="#"))for(;u.path.length>1&&u.path[0]==="";)eR(u.path);a==="?"?(u.query="",d=yI):a==="#"&&(u.fragment="",d=ug)}else k+=Al(a,jv);break;case df:a==="?"?(u.query="",d=yI):a==="#"?(u.fragment="",d=ug):a!==Ic&&(u.path[0]+=Al(a,rh));break;case yI:e||a!=="#"?a!==Ic&&(a==="'"&&u.isSpecial()?u.query+="%27":u.query+=a==="#"?"%23":Al(a,rh)):(u.fragment="",d=ug);break;case ug:a!==Ic&&(u.fragment+=Al(a,oU))}R++}},parseHost:function(A){var e,o,n;if(Zc(A,0)==="["){if(Zc(A,A.length-1)!=="]"||(e=function(a){var I,c,u,d,R,k,_,Z=[0,0,0,0,0,0,0,0],iA=0,cA=null,TA=0,JA=function(){return Zc(a,TA)};if(JA()===":"){if(Zc(a,1)!==":")return;TA+=2,cA=++iA}for(;JA();){if(iA===8)return;if(JA()!==":"){for(I=c=0;c<4&&$E(tU,JA());)I=16*I+$y(JA(),16),TA++,c++;if(JA()==="."){if(c===0||(TA-=c,iA>6))return;for(u=0;JA();){if(d=null,u>0){if(!(JA()==="."&&u<4))return;TA++}if(!$E(Kv,JA()))return;for(;$E(Kv,JA());){if(R=$y(JA(),10),d===null)d=R;else{if(d===0)return;d=10*d+R}if(d>255)return;TA++}Z[iA]=256*Z[iA]+d,++u!==2&&u!==4||iA++}if(u!==4)return;break}if(JA()===":"){if(TA++,!JA())return}else if(JA())return;Z[iA++]=I}else{if(cA!==null)return;TA++,cA=++iA}}if(cA!==null)for(k=iA-cA,iA=7;iA!==0&&k>0;)_=Z[iA],Z[iA--]=Z[cA+k-1],Z[cA+--k]=_;else if(iA!==8)return;return Z}(uQ(A,1,-1)),!e))return ZB;this.host=e}else if(this.isSpecial()){if(A=wV(A),$E(iU,A)||(e=function(a){var I,c,u,d,R,k,_,Z=Vv(a,".");if(Z.length&&Z[Z.length-1]===""&&Z.length--,(I=Z.length)>4)return a;for(c=[],u=0;u<I;u++){if((d=Z[u])==="")return a;if(R=10,d.length>1&&Zc(d,0)==="0"&&(R=$E(oR,d)?16:8,d=uQ(d,R===8?1:2)),d==="")k=0;else{if(!$E(R===10?eU:R===8?bV:tU,d))return a;k=$y(d,R)}ih(c,k)}for(u=0;u<I;u++)if(k=c[u],u===I-1){if(k>=$F(256,5-I))return null}else if(k>255)return null;for(_=AU(c),u=0;u<c.length;u++)_+=c[u]*$F(256,3-u);return _}(A),e===null))return ZB;this.host=e}else{if($E(LV,A))return ZB;for(e="",o=zB(A),n=0;n<o.length;n++)e+=Al(o[n],rh);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return xv(WC,this.scheme)},shortenPath:function(){var A=this.path,e=A.length;!e||this.scheme==="file"&&e===1&&nh(A[0],!0)||A.length--},serialize:function(){var A=this,e=A.scheme,o=A.username,n=A.password,a=A.host,I=A.port,c=A.path,u=A.query,d=A.fragment,R=e+":";return a!==null?(R+="//",A.includesCredentials()&&(R+=o+(n?":"+n:"")+"@"),R+=oh(a),I!==null&&(R+=":"+I)):e==="file"&&(R+="//"),R+=A.cannotBeABaseURL?c[0]:c.length?"/"+Cf(c,"/"):"",u!==null&&(R+="?"+u),d!==null&&(R+="#"+d),R},setHref:function(A){var e=this.parse(A);if(e)throw new Hv(e);this.searchParams.update()},getOrigin:function(){var A=this.scheme,e=this.port;if(A==="blob")try{return new zC(A.path[0]).origin}catch{return"null"}return A!=="file"&&this.isSpecial()?A+"://"+oh(this.host)+(e!==null?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(A){this.parse(KC(A)+":",cc)},getUsername:function(){return this.username},setUsername:function(A){var e=zB(KC(A));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var o=0;o<e.length;o++)this.username+=Al(e[o],XB)}},getPassword:function(){return this.password},setPassword:function(A){var e=zB(KC(A));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var o=0;o<e.length;o++)this.password+=Al(e[o],XB)}},getHost:function(){var A=this.host,e=this.port;return A===null?"":e===null?oh(A):oh(A)+":"+e},setHost:function(A){this.cannotBeABaseURL||this.parse(A,sR)},getHostname:function(){var A=this.host;return A===null?"":oh(A)},setHostname:function(A){this.cannotBeABaseURL||this.parse(A,gR)},getPort:function(){var A=this.port;return A===null?"":KC(A)},setPort:function(A){this.cannotHaveUsernamePasswordPort()||((A=KC(A))===""?this.port=null:this.parse(A,IR))},getPathname:function(){var A=this.path;return this.cannotBeABaseURL?A[0]:A.length?"/"+Cf(A,"/"):""},setPathname:function(A){this.cannotBeABaseURL||(this.path=[],this.parse(A,ah))},getSearch:function(){var A=this.query;return A?"?"+A:""},setSearch:function(A){(A=KC(A))===""?this.query=null:(Zc(A,0)==="?"&&(A=uQ(A,1)),this.query="",this.parse(A,yI)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var A=this.fragment;return A?"#"+A:""},setHash:function(A){(A=KC(A))!==""?(Zc(A,0)==="#"&&(A=uQ(A,1)),this.fragment="",this.parse(A,ug)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var zC=function(A){var e=MV(this,Qg),o=ZF(arguments.length,1)>1?arguments[1]:void 0,n=vV(e,new lR(A,!1,o));Uv||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Qg=zC.prototype,dg=function(A,e){return{get:function(){return Xy(this)[A]()},set:e&&function(o){return Xy(this)[e](o)},configurable:!0,enumerable:!0}};if(Uv&&(zc(Qg,"href",dg("serialize","setHref")),zc(Qg,"origin",dg("getOrigin")),zc(Qg,"protocol",dg("getProtocol","setProtocol")),zc(Qg,"username",dg("getUsername","setUsername")),zc(Qg,"password",dg("getPassword","setPassword")),zc(Qg,"host",dg("getHost","setHost")),zc(Qg,"hostname",dg("getHostname","setHostname")),zc(Qg,"port",dg("getPort","setPort")),zc(Qg,"pathname",dg("getPathname","setPathname")),zc(Qg,"search",dg("getSearch","setSearch")),zc(Qg,"searchParams",dg("getSearchParams")),zc(Qg,"hash",dg("getHash","setHash"))),Zy(Qg,"toJSON",function(){return Xy(this).serialize()},{enumerable:!0}),Zy(Qg,"toString",function(){return Xy(this).serialize()},{enumerable:!0}),th){var aU=th.createObjectURL,CR=th.revokeObjectURL;aU&&Zy(zC,"createObjectURL",zF(aU,th)),CR&&Zy(zC,"revokeObjectURL",zF(CR,th))}SV(zC,"URL"),RV({global:!0,constructor:!0,forced:!WF,sham:!Uv},{URL:zC});var sU=z;wr({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return sU(URL.prototype.toString,this)}});let gU=!0,BR=!0;function hf(A,e,o){const n=A.match(e);return n&&n.length>=o&&parseFloat(n[o],10)}function eu(A,e,o){if(!A.RTCPeerConnection)return;const n=A.RTCPeerConnection.prototype,a=n.addEventListener;n.addEventListener=function(c,u){if(c!==e)return a.apply(this,arguments);const d=R=>{const k=o(R);k&&(u.handleEvent?u.handleEvent(k):u(k))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(u,d),a.apply(this,[c,d])};const I=n.removeEventListener;n.removeEventListener=function(c,u){if(c!==e||!this._eventMap||!this._eventMap[e])return I.apply(this,arguments);if(!this._eventMap[e].has(u))return I.apply(this,arguments);const d=this._eventMap[e].get(u);return this._eventMap[e].delete(u),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,I.apply(this,[c,d])},Object.defineProperty(n,"on"+e,{get(){return this["_on"+e]},set(c){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),c&&this.addEventListener(e,this["_on"+e]=c)},enumerable:!0,configurable:!0})}function IU(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(gU=A,A?"adapter.js logging disabled":"adapter.js logging enabled")}function xV(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(BR=!A,"adapter.js deprecation warnings "+(A?"disabled":"enabled"))}function uR(){if(typeof window=="object"){if(gU)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function pf(A,e){BR&&console.warn(A+" is deprecated, please use "+e+" instead.")}function Zv(A){return Object.prototype.toString.call(A)==="[object Object]"}function Xv(A){return Zv(A)?Object.keys(A).reduce(function(e,o){const n=Zv(A[o]),a=n?Xv(A[o]):A[o],I=n&&!Object.keys(a).length;return a===void 0||I?e:Object.assign(e,{[o]:a})},{}):A}function $v(A,e,o){e&&!o.has(e.id)&&(o.set(e.id,e),Object.keys(e).forEach(n=>{n.endsWith("Id")?$v(A,A.get(e[n]),o):n.endsWith("Ids")&&e[n].forEach(a=>{$v(A,A.get(a),o)})}))}function cU(A,e,o){const n=o?"outbound-rtp":"inbound-rtp",a=new Map;if(e===null)return a;const I=[];return A.forEach(c=>{c.type==="track"&&c.trackIdentifier===e.id&&I.push(c)}),I.forEach(c=>{A.forEach(u=>{u.type===n&&u.trackId===c.id&&$v(A,u,a)})}),a}const AN=uR;function EU(A,e){const o=A&&A.navigator;if(!o.mediaDevices)return;const n=function(c){if(typeof c!="object"||c.mandatory||c.optional)return c;const u={};return Object.keys(c).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const R=typeof c[d]=="object"?c[d]:{ideal:c[d]};R.exact!==void 0&&typeof R.exact=="number"&&(R.min=R.max=R.exact);const k=function(_,Z){return _?_+Z.charAt(0).toUpperCase()+Z.slice(1):Z==="deviceId"?"sourceId":Z};if(R.ideal!==void 0){u.optional=u.optional||[];let _={};typeof R.ideal=="number"?(_[k("min",d)]=R.ideal,u.optional.push(_),_={},_[k("max",d)]=R.ideal,u.optional.push(_)):(_[k("",d)]=R.ideal,u.optional.push(_))}R.exact!==void 0&&typeof R.exact!="number"?(u.mandatory=u.mandatory||{},u.mandatory[k("",d)]=R.exact):["min","max"].forEach(_=>{R[_]!==void 0&&(u.mandatory=u.mandatory||{},u.mandatory[k(_,d)]=R[_])})}),c.advanced&&(u.optional=(u.optional||[]).concat(c.advanced)),u},a=function(c,u){if(e.version>=61)return u(c);if((c=JSON.parse(JSON.stringify(c)))&&typeof c.audio=="object"){const d=function(R,k,_){k in R&&!(_ in R)&&(R[_]=R[k],delete R[k])};d((c=JSON.parse(JSON.stringify(c))).audio,"autoGainControl","googAutoGainControl"),d(c.audio,"noiseSuppression","googNoiseSuppression"),c.audio=n(c.audio)}if(c&&typeof c.video=="object"){let d=c.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const R=e.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&(!o.mediaDevices.getSupportedConstraints||!o.mediaDevices.getSupportedConstraints().facingMode||R)){let k;if(delete c.video.facingMode,d.exact==="environment"||d.ideal==="environment"?k=["back","rear"]:d.exact!=="user"&&d.ideal!=="user"||(k=["front"]),k)return o.mediaDevices.enumerateDevices().then(_=>{_=_.filter(iA=>iA.kind==="videoinput");let Z=_.find(iA=>k.some(cA=>iA.label.toLowerCase().includes(cA)));return!Z&&_.length&&k.includes("back")&&(Z=_[_.length-1]),Z&&(c.video.deviceId=d.exact?{exact:Z.deviceId}:{ideal:Z.deviceId}),c.video=n(c.video),AN("chrome: "+JSON.stringify(c)),u(c)})}c.video=n(c.video)}return AN("chrome: "+JSON.stringify(c)),u(c)},I=function(c){return e.version>=64?c:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[c.name]||c.name,message:c.message,constraint:c.constraint||c.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(o.getUserMedia=function(c,u,d){a(c,R=>{o.webkitGetUserMedia(R,u,k=>{d&&d(I(k))})})}.bind(o),o.mediaDevices.getUserMedia){const c=o.mediaDevices.getUserMedia.bind(o.mediaDevices);o.mediaDevices.getUserMedia=function(u){return a(u,d=>c(d).then(R=>{if(d.audio&&!R.getAudioTracks().length||d.video&&!R.getVideoTracks().length)throw R.getTracks().forEach(k=>{k.stop()}),new DOMException("","NotFoundError");return R},R=>Promise.reject(I(R))))}}}function lU(A){A.MediaStream=A.MediaStream||A.webkitMediaStream}function CU(A){if(typeof A=="object"&&A.RTCPeerConnection&&!("ontrack"in A.RTCPeerConnection.prototype)){Object.defineProperty(A.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(o){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=o)},enumerable:!0,configurable:!0});const e=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=o=>{o.stream.addEventListener("addtrack",n=>{let a;a=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(c=>c.track&&c.track.id===n.track.id):{track:n.track};const I=new Event("track");I.track=n.track,I.receiver=a,I.transceiver={receiver:a},I.streams=[o.stream],this.dispatchEvent(I)}),o.stream.getTracks().forEach(n=>{let a;a=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(c=>c.track&&c.track.id===n.id):{track:n};const I=new Event("track");I.track=n,I.receiver=a,I.transceiver={receiver:a},I.streams=[o.stream],this.dispatchEvent(I)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else eu(A,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function eN(A){if(typeof A=="object"&&A.RTCPeerConnection&&!("getSenders"in A.RTCPeerConnection.prototype)&&"createDTMFSender"in A.RTCPeerConnection.prototype){const e=function(a,I){return{track:I,get dtmf(){return this._dtmf===void 0&&(I.kind==="audio"?this._dtmf=a.createDTMFSender(I):this._dtmf=null),this._dtmf},_pc:a}};if(!A.RTCPeerConnection.prototype.getSenders){A.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const a=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(c,u){let d=a.apply(this,arguments);return d||(d=e(this,c),this._senders.push(d)),d};const I=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(c){I.apply(this,arguments);const u=this._senders.indexOf(c);u!==-1&&this._senders.splice(u,1)}}const o=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(a){this._senders=this._senders||[],o.apply(this,[a]),a.getTracks().forEach(I=>{this._senders.push(e(this,I))})};const n=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(a){this._senders=this._senders||[],n.apply(this,[a]),a.getTracks().forEach(I=>{const c=this._senders.find(u=>u.track===I);c&&this._senders.splice(this._senders.indexOf(c),1)})}}else if(typeof A=="object"&&A.RTCPeerConnection&&"getSenders"in A.RTCPeerConnection.prototype&&"createDTMFSender"in A.RTCPeerConnection.prototype&&A.RTCRtpSender&&!("dtmf"in A.RTCRtpSender.prototype)){const e=A.RTCPeerConnection.prototype.getSenders;A.RTCPeerConnection.prototype.getSenders=function(){const o=e.apply(this,[]);return o.forEach(n=>n._pc=this),o},Object.defineProperty(A.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function BU(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[o,n,a]=arguments;if(arguments.length>0&&typeof o=="function")return e.apply(this,arguments);if(e.length===0&&(arguments.length===0||typeof o!="function"))return e.apply(this,[]);const I=function(u){const d={};return u.result().forEach(R=>{const k={id:R.id,timestamp:R.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[R.type]||R.type};R.names().forEach(_=>{k[_]=R.stat(_)}),d[k.id]=k}),d},c=function(u){return new Map(Object.keys(u).map(d=>[d,u[d]]))};if(arguments.length>=2){const u=function(d){n(c(I(d)))};return e.apply(this,[u,o])}return new Promise((u,d)=>{e.apply(this,[function(R){u(c(I(R)))},d])}).then(n,a)}}function tN(A){if(!(typeof A=="object"&&A.RTCPeerConnection&&A.RTCRtpSender&&A.RTCRtpReceiver))return;if(!("getStats"in A.RTCRtpSender.prototype)){const o=A.RTCPeerConnection.prototype.getSenders;o&&(A.RTCPeerConnection.prototype.getSenders=function(){const a=o.apply(this,[]);return a.forEach(I=>I._pc=this),a});const n=A.RTCPeerConnection.prototype.addTrack;n&&(A.RTCPeerConnection.prototype.addTrack=function(){const a=n.apply(this,arguments);return a._pc=this,a}),A.RTCRtpSender.prototype.getStats=function(){const a=this;return this._pc.getStats().then(I=>cU(I,a.track,!0))}}if(!("getStats"in A.RTCRtpReceiver.prototype)){const o=A.RTCPeerConnection.prototype.getReceivers;o&&(A.RTCPeerConnection.prototype.getReceivers=function(){const n=o.apply(this,[]);return n.forEach(a=>a._pc=this),n}),eu(A,"track",n=>(n.receiver._pc=n.srcElement,n)),A.RTCRtpReceiver.prototype.getStats=function(){const n=this;return this._pc.getStats().then(a=>cU(a,n.track,!1))}}if(!("getStats"in A.RTCRtpSender.prototype)||!("getStats"in A.RTCRtpReceiver.prototype))return;const e=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof A.MediaStreamTrack){const o=arguments[0];let n,a,I;return this.getSenders().forEach(c=>{c.track===o&&(n?I=!0:n=c)}),this.getReceivers().forEach(c=>(c.track===o&&(a?I=!0:a=c),c.track===o)),I||n&&a?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):n?n.getStats():a?a.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function uU(A){A.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(I=>this._shimmedLocalStreams[I][0])};const e=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(I,c){if(!c)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const u=e.apply(this,arguments);return this._shimmedLocalStreams[c.id]?this._shimmedLocalStreams[c.id].indexOf(u)===-1&&this._shimmedLocalStreams[c.id].push(u):this._shimmedLocalStreams[c.id]=[c,u],u};const o=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(I){this._shimmedLocalStreams=this._shimmedLocalStreams||{},I.getTracks().forEach(d=>{if(this.getSenders().find(R=>R.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const c=this.getSenders();o.apply(this,arguments);const u=this.getSenders().filter(d=>c.indexOf(d)===-1);this._shimmedLocalStreams[I.id]=[I].concat(u)};const n=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(I){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[I.id],n.apply(this,arguments)};const a=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(I){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},I&&Object.keys(this._shimmedLocalStreams).forEach(c=>{const u=this._shimmedLocalStreams[c].indexOf(I);u!==-1&&this._shimmedLocalStreams[c].splice(u,1),this._shimmedLocalStreams[c].length===1&&delete this._shimmedLocalStreams[c]}),a.apply(this,arguments)}}function QU(A,e){if(!A.RTCPeerConnection)return;if(A.RTCPeerConnection.prototype.addTrack&&e.version>=65)return uU(A);const o=A.RTCPeerConnection.prototype.getLocalStreams;A.RTCPeerConnection.prototype.getLocalStreams=function(){const d=o.apply(this);return this._reverseStreams=this._reverseStreams||{},d.map(R=>this._reverseStreams[R.id])};const n=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(d){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},d.getTracks().forEach(R=>{if(this.getSenders().find(k=>k.track===R))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[d.id]){const R=new A.MediaStream(d.getTracks());this._streams[d.id]=R,this._reverseStreams[R.id]=d,d=R}n.apply(this,[d])};const a=A.RTCPeerConnection.prototype.removeStream;function I(d,R){let k=R.sdp;return Object.keys(d._reverseStreams||[]).forEach(_=>{const Z=d._reverseStreams[_],iA=d._streams[Z.id];k=k.replace(new RegExp(iA.id,"g"),Z.id)}),new RTCSessionDescription({type:R.type,sdp:k})}A.RTCPeerConnection.prototype.removeStream=function(d){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},a.apply(this,[this._streams[d.id]||d]),delete this._reverseStreams[this._streams[d.id]?this._streams[d.id].id:d.id],delete this._streams[d.id]},A.RTCPeerConnection.prototype.addTrack=function(d,R){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const k=[].slice.call(arguments,1);if(k.length!==1||!k[0].getTracks().find(Z=>Z===d))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(Z=>Z.track===d))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const _=this._streams[R.id];if(_)_.addTrack(d),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const Z=new A.MediaStream([d]);this._streams[R.id]=Z,this._reverseStreams[Z.id]=R,this.addStream(Z)}return this.getSenders().find(Z=>Z.track===d)},["createOffer","createAnswer"].forEach(function(d){const R=A.RTCPeerConnection.prototype[d],k={[d](){const _=arguments;return arguments.length&&typeof arguments[0]=="function"?R.apply(this,[Z=>{const iA=I(this,Z);_[0].apply(null,[iA])},Z=>{_[1]&&_[1].apply(null,Z)},arguments[2]]):R.apply(this,arguments).then(Z=>I(this,Z))}};A.RTCPeerConnection.prototype[d]=k[d]});const c=A.RTCPeerConnection.prototype.setLocalDescription;A.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(d,R){let k=R.sdp;return Object.keys(d._reverseStreams||[]).forEach(_=>{const Z=d._reverseStreams[_],iA=d._streams[Z.id];k=k.replace(new RegExp(Z.id,"g"),iA.id)}),new RTCSessionDescription({type:R.type,sdp:k})}(this,arguments[0]),c.apply(this,arguments)):c.apply(this,arguments)};const u=Object.getOwnPropertyDescriptor(A.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(A.RTCPeerConnection.prototype,"localDescription",{get(){const d=u.get.apply(this);return d.type===""?d:I(this,d)}}),A.RTCPeerConnection.prototype.removeTrack=function(d){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!d._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(d._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let R;this._streams=this._streams||{},Object.keys(this._streams).forEach(k=>{this._streams[k].getTracks().find(_=>d.track===_)&&(R=this._streams[k])}),R&&(R.getTracks().length===1?this.removeStream(this._reverseStreams[R.id]):R.removeTrack(d.track),this.dispatchEvent(new Event("negotiationneeded")))}}function ff(A,e){!A.RTCPeerConnection&&A.webkitRTCPeerConnection&&(A.RTCPeerConnection=A.webkitRTCPeerConnection),A.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(o){const n=A.RTCPeerConnection.prototype[o],a={[o](){return arguments[0]=new(o==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};A.RTCPeerConnection.prototype[o]=a[o]})}function dU(A,e){eu(A,"negotiationneeded",o=>{const n=o.target;if(!(e.version<72||n.getConfiguration&&n.getConfiguration().sdpSemantics==="plan-b")||n.signalingState==="stable")return o})}var iN=Object.freeze({__proto__:null,shimMediaStream:lU,shimOnTrack:CU,shimGetSendersWithDtmf:eN,shimGetStats:BU,shimSenderReceiverGetStats:tN,shimAddTrackRemoveTrackWithNative:uU,shimAddTrackRemoveTrack:QU,shimPeerConnection:ff,fixNegotiationNeeded:dU,shimGetUserMedia:EU,shimGetDisplayMedia:function(A,e){A.navigator.mediaDevices&&"getDisplayMedia"in A.navigator.mediaDevices||A.navigator.mediaDevices&&(typeof e=="function"?A.navigator.mediaDevices.getDisplayMedia=function(o){return e(o).then(n=>{const a=o.video&&o.video.width,I=o.video&&o.video.height,c=o.video&&o.video.frameRate;return o.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:n,maxFrameRate:c||3}},a&&(o.video.mandatory.maxWidth=a),I&&(o.video.mandatory.maxHeight=I),A.navigator.mediaDevices.getUserMedia(o)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});function hU(A,e){const o=A&&A.navigator,n=A&&A.MediaStreamTrack;if(o.getUserMedia=function(a,I,c){pf("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),o.mediaDevices.getUserMedia(a).then(I,c)},!(e.version>55&&"autoGainControl"in o.mediaDevices.getSupportedConstraints())){const a=function(c,u,d){u in c&&!(d in c)&&(c[d]=c[u],delete c[u])},I=o.mediaDevices.getUserMedia.bind(o.mediaDevices);if(o.mediaDevices.getUserMedia=function(c){return typeof c=="object"&&typeof c.audio=="object"&&(c=JSON.parse(JSON.stringify(c)),a(c.audio,"autoGainControl","mozAutoGainControl"),a(c.audio,"noiseSuppression","mozNoiseSuppression")),I(c)},n&&n.prototype.getSettings){const c=n.prototype.getSettings;n.prototype.getSettings=function(){const u=c.apply(this,arguments);return a(u,"mozAutoGainControl","autoGainControl"),a(u,"mozNoiseSuppression","noiseSuppression"),u}}if(n&&n.prototype.applyConstraints){const c=n.prototype.applyConstraints;n.prototype.applyConstraints=function(u){return this.kind==="audio"&&typeof u=="object"&&(u=JSON.parse(JSON.stringify(u)),a(u,"autoGainControl","mozAutoGainControl"),a(u,"noiseSuppression","mozNoiseSuppression")),c.apply(this,[u])}}}}function pU(A){typeof A=="object"&&A.RTCTrackEvent&&"receiver"in A.RTCTrackEvent.prototype&&!("transceiver"in A.RTCTrackEvent.prototype)&&Object.defineProperty(A.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function QR(A,e){if(typeof A!="object"||!A.RTCPeerConnection&&!A.mozRTCPeerConnection)return;!A.RTCPeerConnection&&A.mozRTCPeerConnection&&(A.RTCPeerConnection=A.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(a){const I=A.RTCPeerConnection.prototype[a],c={[a](){return arguments[0]=new(a==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),I.apply(this,arguments)}};A.RTCPeerConnection.prototype[a]=c[a]});const o={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},n=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[a,I,c]=arguments;return n.apply(this,[a||null]).then(u=>{if(e.version<53&&!I)try{u.forEach(d=>{d.type=o[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;u.forEach((R,k)=>{u.set(k,Object.assign({},R,{type:o[R.type]||R.type}))})}return u}).then(I,c)}}function fU(A){if(typeof A!="object"||!A.RTCPeerConnection||!A.RTCRtpSender||A.RTCRtpSender&&"getStats"in A.RTCRtpSender.prototype)return;const e=A.RTCPeerConnection.prototype.getSenders;e&&(A.RTCPeerConnection.prototype.getSenders=function(){const n=e.apply(this,[]);return n.forEach(a=>a._pc=this),n});const o=A.RTCPeerConnection.prototype.addTrack;o&&(A.RTCPeerConnection.prototype.addTrack=function(){const n=o.apply(this,arguments);return n._pc=this,n}),A.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function oN(A){if(typeof A!="object"||!A.RTCPeerConnection||!A.RTCRtpSender||A.RTCRtpSender&&"getStats"in A.RTCRtpReceiver.prototype)return;const e=A.RTCPeerConnection.prototype.getReceivers;e&&(A.RTCPeerConnection.prototype.getReceivers=function(){const o=e.apply(this,[]);return o.forEach(n=>n._pc=this),o}),eu(A,"track",o=>(o.receiver._pc=o.srcElement,o)),A.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function mU(A){A.RTCPeerConnection&&!("removeStream"in A.RTCPeerConnection.prototype)&&(A.RTCPeerConnection.prototype.removeStream=function(e){pf("removeStream","removeTrack"),this.getSenders().forEach(o=>{o.track&&e.getTracks().includes(o.track)&&this.removeTrack(o)})})}function rN(A){A.DataChannel&&!A.RTCDataChannel&&(A.RTCDataChannel=A.DataChannel)}function DU(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.addTransceiver;e&&(A.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let o=arguments[1]&&arguments[1].sendEncodings;o===void 0&&(o=[]),o=[...o];const n=o.length>0;n&&o.forEach(I=>{if("rid"in I&&!/^[a-z0-9]{0,16}$/i.test(I.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in I&&!(parseFloat(I.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in I&&!(parseFloat(I.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const a=e.apply(this,arguments);if(n){const{sender:I}=a,c=I.getParameters();(!("encodings"in c)||c.encodings.length===1&&Object.keys(c.encodings[0]).length===0)&&(c.encodings=o,I.sendEncodings=o,this.setParametersPromises.push(I.setParameters(c).then(()=>{delete I.sendEncodings}).catch(()=>{delete I.sendEncodings})))}return a})}function yU(A){if(typeof A!="object"||!A.RTCRtpSender)return;const e=A.RTCRtpSender.prototype.getParameters;e&&(A.RTCRtpSender.prototype.getParameters=function(){const o=e.apply(this,arguments);return"encodings"in o||(o.encodings=[].concat(this.sendEncodings||[{}])),o})}function RU(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.createOffer;A.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function MU(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.createAnswer;A.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}var wU=Object.freeze({__proto__:null,shimOnTrack:pU,shimPeerConnection:QR,shimSenderGetStats:fU,shimReceiverGetStats:oN,shimRemoveStream:mU,shimRTCDataChannel:rN,shimAddTransceiver:DU,shimGetParameters:yU,shimCreateOffer:RU,shimCreateAnswer:MU,shimGetUserMedia:hU,shimGetDisplayMedia:function(A,e){A.navigator.mediaDevices&&"getDisplayMedia"in A.navigator.mediaDevices||A.navigator.mediaDevices&&(A.navigator.mediaDevices.getDisplayMedia=function(o){if(!o||!o.video){const n=new DOMException("getDisplayMedia without video constraints is undefined");return n.name="NotFoundError",n.code=8,Promise.reject(n)}return o.video===!0?o.video={mediaSource:e}:o.video.mediaSource=e,A.navigator.mediaDevices.getUserMedia(o)})}});function SU(A){if(typeof A=="object"&&A.RTCPeerConnection){if("getLocalStreams"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in A.RTCPeerConnection.prototype)){const e=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addStream=function(o){this._localStreams||(this._localStreams=[]),this._localStreams.includes(o)||this._localStreams.push(o),o.getAudioTracks().forEach(n=>e.call(this,n,o)),o.getVideoTracks().forEach(n=>e.call(this,n,o))},A.RTCPeerConnection.prototype.addTrack=function(o,...n){return n&&n.forEach(a=>{this._localStreams?this._localStreams.includes(a)||this._localStreams.push(a):this._localStreams=[a]}),e.apply(this,arguments)}}"removeStream"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const o=this._localStreams.indexOf(e);if(o===-1)return;this._localStreams.splice(o,1);const n=e.getTracks();this.getSenders().forEach(a=>{n.includes(a.track)&&this.removeTrack(a)})})}}function vU(A){if(typeof A=="object"&&A.RTCPeerConnection&&("getRemoteStreams"in A.RTCPeerConnection.prototype||(A.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in A.RTCPeerConnection.prototype))){Object.defineProperty(A.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(o){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=o),this.addEventListener("track",this._onaddstreampoly=n=>{n.streams.forEach(a=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(a))return;this._remoteStreams.push(a);const I=new Event("addstream");I.stream=a,this.dispatchEvent(I)})})}});const e=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){const o=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(n){n.streams.forEach(a=>{if(o._remoteStreams||(o._remoteStreams=[]),o._remoteStreams.indexOf(a)>=0)return;o._remoteStreams.push(a);const I=new Event("addstream");I.stream=a,o.dispatchEvent(I)})}),e.apply(o,arguments)}}}function nN(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype,o=e.createOffer,n=e.createAnswer,a=e.setLocalDescription,I=e.setRemoteDescription,c=e.addIceCandidate;e.createOffer=function(d,R){const k=arguments.length>=2?arguments[2]:arguments[0],_=o.apply(this,[k]);return R?(_.then(d,R),Promise.resolve()):_},e.createAnswer=function(d,R){const k=arguments.length>=2?arguments[2]:arguments[0],_=n.apply(this,[k]);return R?(_.then(d,R),Promise.resolve()):_};let u=function(d,R,k){const _=a.apply(this,[d]);return k?(_.then(R,k),Promise.resolve()):_};e.setLocalDescription=u,u=function(d,R,k){const _=I.apply(this,[d]);return k?(_.then(R,k),Promise.resolve()):_},e.setRemoteDescription=u,u=function(d,R,k){const _=c.apply(this,[d]);return k?(_.then(R,k),Promise.resolve()):_},e.addIceCandidate=u}function aN(A){const e=A&&A.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const o=e.mediaDevices,n=o.getUserMedia.bind(o);e.mediaDevices.getUserMedia=a=>n(NU(a))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,n,a){e.mediaDevices.getUserMedia(o).then(n,a)}.bind(e))}function NU(A){return A&&A.video!==void 0?Object.assign({},A,{video:Xv(A.video)}):A}function TU(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection;A.RTCPeerConnection=function(o,n){if(o&&o.iceServers){const a=[];for(let I=0;I<o.iceServers.length;I++){let c=o.iceServers[I];c.urls===void 0&&c.url?(pf("RTCIceServer.url","RTCIceServer.urls"),c=JSON.parse(JSON.stringify(c)),c.urls=c.url,delete c.url,a.push(c)):a.push(o.iceServers[I])}o.iceServers=a}return new e(o,n)},A.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(A.RTCPeerConnection,"generateCertificate",{get:()=>e.generateCertificate})}function GU(A){typeof A=="object"&&A.RTCTrackEvent&&"receiver"in A.RTCTrackEvent.prototype&&!("transceiver"in A.RTCTrackEvent.prototype)&&Object.defineProperty(A.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function dR(A){const e=A.RTCPeerConnection.prototype.createOffer;A.RTCPeerConnection.prototype.createOffer=function(o){if(o){o.offerToReceiveAudio!==void 0&&(o.offerToReceiveAudio=!!o.offerToReceiveAudio);const n=this.getTransceivers().find(I=>I.receiver.track.kind==="audio");o.offerToReceiveAudio===!1&&n?n.direction==="sendrecv"?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":n.direction==="recvonly"&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):o.offerToReceiveAudio!==!0||n||this.addTransceiver("audio",{direction:"recvonly"}),o.offerToReceiveVideo!==void 0&&(o.offerToReceiveVideo=!!o.offerToReceiveVideo);const a=this.getTransceivers().find(I=>I.receiver.track.kind==="video");o.offerToReceiveVideo===!1&&a?a.direction==="sendrecv"?a.setDirection?a.setDirection("sendonly"):a.direction="sendonly":a.direction==="recvonly"&&(a.setDirection?a.setDirection("inactive"):a.direction="inactive"):o.offerToReceiveVideo!==!0||a||this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function kU(A){typeof A!="object"||A.AudioContext||(A.AudioContext=A.webkitAudioContext)}var _U=Object.freeze({__proto__:null,shimLocalStreamsAPI:SU,shimRemoteStreamsAPI:vU,shimCallbacksAPI:nN,shimGetUserMedia:aN,shimConstraints:NU,shimRTCIceServerUrls:TU,shimTrackEventTransceiver:GU,shimCreateOfferLegacy:dR,shimAudioContext:kU}),bU={exports:{}};(function(A){const e={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};e.localCName=e.generateIdentifier(),e.splitLines=function(o){return o.trim().split(`
`).map(n=>n.trim())},e.splitSections=function(o){return o.split(`
m=`).map((n,a)=>(a>0?"m="+n:n).trim()+`\r
`)},e.getDescription=function(o){const n=e.splitSections(o);return n&&n[0]},e.getMediaSections=function(o){const n=e.splitSections(o);return n.shift(),n},e.matchPrefix=function(o,n){return e.splitLines(o).filter(a=>a.indexOf(n)===0)},e.parseCandidate=function(o){let n;n=o.indexOf("a=candidate:")===0?o.substring(12).split(" "):o.substring(10).split(" ");const a={foundation:n[0],component:{1:"rtp",2:"rtcp"}[n[1]]||n[1],protocol:n[2].toLowerCase(),priority:parseInt(n[3],10),ip:n[4],address:n[4],port:parseInt(n[5],10),type:n[7]};for(let I=8;I<n.length;I+=2)switch(n[I]){case"raddr":a.relatedAddress=n[I+1];break;case"rport":a.relatedPort=parseInt(n[I+1],10);break;case"tcptype":a.tcpType=n[I+1];break;case"ufrag":a.ufrag=n[I+1],a.usernameFragment=n[I+1];break;default:a[n[I]]===void 0&&(a[n[I]]=n[I+1])}return a},e.writeCandidate=function(o){const n=[];n.push(o.foundation);const a=o.component;a==="rtp"?n.push(1):a==="rtcp"?n.push(2):n.push(a),n.push(o.protocol.toUpperCase()),n.push(o.priority),n.push(o.address||o.ip),n.push(o.port);const I=o.type;return n.push("typ"),n.push(I),I!=="host"&&o.relatedAddress&&o.relatedPort&&(n.push("raddr"),n.push(o.relatedAddress),n.push("rport"),n.push(o.relatedPort)),o.tcpType&&o.protocol.toLowerCase()==="tcp"&&(n.push("tcptype"),n.push(o.tcpType)),(o.usernameFragment||o.ufrag)&&(n.push("ufrag"),n.push(o.usernameFragment||o.ufrag)),"candidate:"+n.join(" ")},e.parseIceOptions=function(o){return o.substring(14).split(" ")},e.parseRtpMap=function(o){let n=o.substring(9).split(" ");const a={payloadType:parseInt(n.shift(),10)};return n=n[0].split("/"),a.name=n[0],a.clockRate=parseInt(n[1],10),a.channels=n.length===3?parseInt(n[2],10):1,a.numChannels=a.channels,a},e.writeRtpMap=function(o){let n=o.payloadType;o.preferredPayloadType!==void 0&&(n=o.preferredPayloadType);const a=o.channels||o.numChannels||1;return"a=rtpmap:"+n+" "+o.name+"/"+o.clockRate+(a!==1?"/"+a:"")+`\r
`},e.parseExtmap=function(o){const n=o.substring(9).split(" ");return{id:parseInt(n[0],10),direction:n[0].indexOf("/")>0?n[0].split("/")[1]:"sendrecv",uri:n[1],attributes:n.slice(2).join(" ")}},e.writeExtmap=function(o){return"a=extmap:"+(o.id||o.preferredId)+(o.direction&&o.direction!=="sendrecv"?"/"+o.direction:"")+" "+o.uri+(o.attributes?" "+o.attributes:"")+`\r
`},e.parseFmtp=function(o){const n={};let a;const I=o.substring(o.indexOf(" ")+1).split(";");for(let c=0;c<I.length;c++)a=I[c].trim().split("="),n[a[0].trim()]=a[1];return n},e.writeFmtp=function(o){let n="",a=o.payloadType;if(o.preferredPayloadType!==void 0&&(a=o.preferredPayloadType),o.parameters&&Object.keys(o.parameters).length){const I=[];Object.keys(o.parameters).forEach(c=>{o.parameters[c]!==void 0?I.push(c+"="+o.parameters[c]):I.push(c)}),n+="a=fmtp:"+a+" "+I.join(";")+`\r
`}return n},e.parseRtcpFb=function(o){const n=o.substring(o.indexOf(" ")+1).split(" ");return{type:n.shift(),parameter:n.join(" ")}},e.writeRtcpFb=function(o){let n="",a=o.payloadType;return o.preferredPayloadType!==void 0&&(a=o.preferredPayloadType),o.rtcpFeedback&&o.rtcpFeedback.length&&o.rtcpFeedback.forEach(I=>{n+="a=rtcp-fb:"+a+" "+I.type+(I.parameter&&I.parameter.length?" "+I.parameter:"")+`\r
`}),n},e.parseSsrcMedia=function(o){const n=o.indexOf(" "),a={ssrc:parseInt(o.substring(7,n),10)},I=o.indexOf(":",n);return I>-1?(a.attribute=o.substring(n+1,I),a.value=o.substring(I+1)):a.attribute=o.substring(n+1),a},e.parseSsrcGroup=function(o){const n=o.substring(13).split(" ");return{semantics:n.shift(),ssrcs:n.map(a=>parseInt(a,10))}},e.getMid=function(o){const n=e.matchPrefix(o,"a=mid:")[0];if(n)return n.substring(6)},e.parseFingerprint=function(o){const n=o.substring(14).split(" ");return{algorithm:n[0].toLowerCase(),value:n[1].toUpperCase()}},e.getDtlsParameters=function(o,n){return{role:"auto",fingerprints:e.matchPrefix(o+n,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(o,n){let a="a=setup:"+n+`\r
`;return o.fingerprints.forEach(I=>{a+="a=fingerprint:"+I.algorithm+" "+I.value+`\r
`}),a},e.parseCryptoLine=function(o){const n=o.substring(9).split(" ");return{tag:parseInt(n[0],10),cryptoSuite:n[1],keyParams:n[2],sessionParams:n.slice(3)}},e.writeCryptoLine=function(o){return"a=crypto:"+o.tag+" "+o.cryptoSuite+" "+(typeof o.keyParams=="object"?e.writeCryptoKeyParams(o.keyParams):o.keyParams)+(o.sessionParams?" "+o.sessionParams.join(" "):"")+`\r
`},e.parseCryptoKeyParams=function(o){if(o.indexOf("inline:")!==0)return null;const n=o.substring(7).split("|");return{keyMethod:"inline",keySalt:n[0],lifeTime:n[1],mkiValue:n[2]?n[2].split(":")[0]:void 0,mkiLength:n[2]?n[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(o){return o.keyMethod+":"+o.keySalt+(o.lifeTime?"|"+o.lifeTime:"")+(o.mkiValue&&o.mkiLength?"|"+o.mkiValue+":"+o.mkiLength:"")},e.getCryptoParameters=function(o,n){return e.matchPrefix(o+n,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(o,n){const a=e.matchPrefix(o+n,"a=ice-ufrag:")[0],I=e.matchPrefix(o+n,"a=ice-pwd:")[0];return a&&I?{usernameFragment:a.substring(12),password:I.substring(10)}:null},e.writeIceParameters=function(o){let n="a=ice-ufrag:"+o.usernameFragment+`\r
a=ice-pwd:`+o.password+`\r
`;return o.iceLite&&(n+=`a=ice-lite\r
`),n},e.parseRtpParameters=function(o){const n={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},a=e.splitLines(o)[0].split(" ");n.profile=a[2];for(let c=3;c<a.length;c++){const u=a[c],d=e.matchPrefix(o,"a=rtpmap:"+u+" ")[0];if(d){const R=e.parseRtpMap(d),k=e.matchPrefix(o,"a=fmtp:"+u+" ");switch(R.parameters=k.length?e.parseFmtp(k[0]):{},R.rtcpFeedback=e.matchPrefix(o,"a=rtcp-fb:"+u+" ").map(e.parseRtcpFb),n.codecs.push(R),R.name.toUpperCase()){case"RED":case"ULPFEC":n.fecMechanisms.push(R.name.toUpperCase())}}}e.matchPrefix(o,"a=extmap:").forEach(c=>{n.headerExtensions.push(e.parseExtmap(c))});const I=e.matchPrefix(o,"a=rtcp-fb:* ").map(e.parseRtcpFb);return n.codecs.forEach(c=>{I.forEach(u=>{c.rtcpFeedback.find(d=>d.type===u.type&&d.parameter===u.parameter)||c.rtcpFeedback.push(u)})}),n},e.writeRtpDescription=function(o,n){let a="";a+="m="+o+" ",a+=n.codecs.length>0?"9":"0",a+=" "+(n.profile||"UDP/TLS/RTP/SAVPF")+" ",a+=n.codecs.map(c=>c.preferredPayloadType!==void 0?c.preferredPayloadType:c.payloadType).join(" ")+`\r
`,a+=`c=IN IP4 0.0.0.0\r
`,a+=`a=rtcp:9 IN IP4 0.0.0.0\r
`,n.codecs.forEach(c=>{a+=e.writeRtpMap(c),a+=e.writeFmtp(c),a+=e.writeRtcpFb(c)});let I=0;return n.codecs.forEach(c=>{c.maxptime>I&&(I=c.maxptime)}),I>0&&(a+="a=maxptime:"+I+`\r
`),n.headerExtensions&&n.headerExtensions.forEach(c=>{a+=e.writeExtmap(c)}),a},e.parseRtpEncodingParameters=function(o){const n=[],a=e.parseRtpParameters(o),I=a.fecMechanisms.indexOf("RED")!==-1,c=a.fecMechanisms.indexOf("ULPFEC")!==-1,u=e.matchPrefix(o,"a=ssrc:").map(Z=>e.parseSsrcMedia(Z)).filter(Z=>Z.attribute==="cname"),d=u.length>0&&u[0].ssrc;let R;const k=e.matchPrefix(o,"a=ssrc-group:FID").map(Z=>Z.substring(17).split(" ").map(iA=>parseInt(iA,10)));k.length>0&&k[0].length>1&&k[0][0]===d&&(R=k[0][1]),a.codecs.forEach(Z=>{if(Z.name.toUpperCase()==="RTX"&&Z.parameters.apt){let iA={ssrc:d,codecPayloadType:parseInt(Z.parameters.apt,10)};d&&R&&(iA.rtx={ssrc:R}),n.push(iA),I&&(iA=JSON.parse(JSON.stringify(iA)),iA.fec={ssrc:d,mechanism:c?"red+ulpfec":"red"},n.push(iA))}}),n.length===0&&d&&n.push({ssrc:d});let _=e.matchPrefix(o,"b=");return _.length&&(_=_[0].indexOf("b=TIAS:")===0?parseInt(_[0].substring(7),10):_[0].indexOf("b=AS:")===0?1e3*parseInt(_[0].substring(5),10)*.95-16e3:void 0,n.forEach(Z=>{Z.maxBitrate=_})),n},e.parseRtcpParameters=function(o){const n={},a=e.matchPrefix(o,"a=ssrc:").map(u=>e.parseSsrcMedia(u)).filter(u=>u.attribute==="cname")[0];a&&(n.cname=a.value,n.ssrc=a.ssrc);const I=e.matchPrefix(o,"a=rtcp-rsize");n.reducedSize=I.length>0,n.compound=I.length===0;const c=e.matchPrefix(o,"a=rtcp-mux");return n.mux=c.length>0,n},e.writeRtcpParameters=function(o){let n="";return o.reducedSize&&(n+=`a=rtcp-rsize\r
`),o.mux&&(n+=`a=rtcp-mux\r
`),o.ssrc!==void 0&&o.cname&&(n+="a=ssrc:"+o.ssrc+" cname:"+o.cname+`\r
`),n},e.parseMsid=function(o){let n;const a=e.matchPrefix(o,"a=msid:");if(a.length===1)return n=a[0].substring(7).split(" "),{stream:n[0],track:n[1]};const I=e.matchPrefix(o,"a=ssrc:").map(c=>e.parseSsrcMedia(c)).filter(c=>c.attribute==="msid");return I.length>0?(n=I[0].value.split(" "),{stream:n[0],track:n[1]}):void 0},e.parseSctpDescription=function(o){const n=e.parseMLine(o),a=e.matchPrefix(o,"a=max-message-size:");let I;a.length>0&&(I=parseInt(a[0].substring(19),10)),isNaN(I)&&(I=65536);const c=e.matchPrefix(o,"a=sctp-port:");if(c.length>0)return{port:parseInt(c[0].substring(12),10),protocol:n.fmt,maxMessageSize:I};const u=e.matchPrefix(o,"a=sctpmap:");if(u.length>0){const d=u[0].substring(10).split(" ");return{port:parseInt(d[0],10),protocol:d[1],maxMessageSize:I}}},e.writeSctpDescription=function(o,n){let a=[];return a=o.protocol!=="DTLS/SCTP"?["m="+o.kind+" 9 "+o.protocol+" "+n.protocol+`\r
`,`c=IN IP4 0.0.0.0\r
`,"a=sctp-port:"+n.port+`\r
`]:["m="+o.kind+" 9 "+o.protocol+" "+n.port+`\r
`,`c=IN IP4 0.0.0.0\r
`,"a=sctpmap:"+n.port+" "+n.protocol+` 65535\r
`],n.maxMessageSize!==void 0&&a.push("a=max-message-size:"+n.maxMessageSize+`\r
`),a.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(o,n,a){let I;const c=n!==void 0?n:2;return I=o||e.generateSessionId(),`v=0\r
o=`+(a||"thisisadapterortc")+" "+I+" "+c+` IN IP4 127.0.0.1\r
s=-\r
t=0 0\r
`},e.getDirection=function(o,n){const a=e.splitLines(o);for(let I=0;I<a.length;I++)switch(a[I]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return a[I].substring(2)}return n?e.getDirection(n):"sendrecv"},e.getKind=function(o){return e.splitLines(o)[0].split(" ")[0].substring(2)},e.isRejected=function(o){return o.split(" ",2)[1]==="0"},e.parseMLine=function(o){const n=e.splitLines(o)[0].substring(2).split(" ");return{kind:n[0],port:parseInt(n[1],10),protocol:n[2],fmt:n.slice(3).join(" ")}},e.parseOLine=function(o){const n=e.matchPrefix(o,"o=")[0].substring(2).split(" ");return{username:n[0],sessionId:n[1],sessionVersion:parseInt(n[2],10),netType:n[3],addressType:n[4],address:n[5]}},e.isValidSDP=function(o){if(typeof o!="string"||o.length===0)return!1;const n=e.splitLines(o);for(let a=0;a<n.length;a++)if(n[a].length<2||n[a].charAt(1)!=="=")return!1;return!0},A.exports=e})(bU);var LU=bU.exports,el=g(LU),FU=r({__proto__:null,default:el},[LU]);function hR(A){if(!A.RTCIceCandidate||A.RTCIceCandidate&&"foundation"in A.RTCIceCandidate.prototype)return;const e=A.RTCIceCandidate;A.RTCIceCandidate=function(o){if(typeof o=="object"&&o.candidate&&o.candidate.indexOf("a=")===0&&((o=JSON.parse(JSON.stringify(o))).candidate=o.candidate.substring(2)),o.candidate&&o.candidate.length){const n=new e(o),a=el.parseCandidate(o.candidate);for(const I in a)I in n||Object.defineProperty(n,I,{value:a[I]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new e(o)},A.RTCIceCandidate.prototype=e.prototype,eu(A,"icecandidate",o=>(o.candidate&&Object.defineProperty(o,"candidate",{value:new A.RTCIceCandidate(o.candidate),writable:"false"}),o))}function sN(A){!A.RTCIceCandidate||A.RTCIceCandidate&&"relayProtocol"in A.RTCIceCandidate.prototype||eu(A,"icecandidate",e=>{if(e.candidate){const o=el.parseCandidate(e.candidate.candidate);o.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[o.priority>>24])}return e})}function mf(A,e){if(!A.RTCPeerConnection)return;"sctp"in A.RTCPeerConnection.prototype||Object.defineProperty(A.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});const o=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){const{sdpSemantics:n}=this.getConfiguration();n==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if(function(n){if(!n||!n.sdp)return!1;const a=el.splitSections(n.sdp);return a.shift(),a.some(I=>{const c=el.parseMLine(I);return c&&c.kind==="application"&&c.protocol.indexOf("SCTP")!==-1})}(arguments[0])){const n=function(d){const R=d.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(R===null||R.length<2)return-1;const k=parseInt(R[1],10);return k!=k?-1:k}(arguments[0]),a=function(d){let R=65536;return e.browser==="firefox"&&(R=e.version<57?d===-1?16384:2147483637:e.version<60?e.version===57?65535:65536:2147483637),R}(n),I=function(d,R){let k=65536;e.browser==="firefox"&&e.version===57&&(k=65535);const _=el.matchPrefix(d.sdp,"a=max-message-size:");return _.length>0?k=parseInt(_[0].substring(19),10):e.browser==="firefox"&&R!==-1&&(k=2147483637),k}(arguments[0],n);let c;c=a===0&&I===0?Number.POSITIVE_INFINITY:a===0||I===0?Math.max(a,I):Math.min(a,I);const u={};Object.defineProperty(u,"maxMessageSize",{get:()=>c}),this._sctp=u}return o.apply(this,arguments)}}function pR(A){if(!A.RTCPeerConnection||!("createDataChannel"in A.RTCPeerConnection.prototype))return;function e(n,a){const I=n.send;n.send=function(){const c=arguments[0],u=c.length||c.size||c.byteLength;if(n.readyState==="open"&&a.sctp&&u>a.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+a.sctp.maxMessageSize+" bytes)");return I.apply(n,arguments)}}const o=A.RTCPeerConnection.prototype.createDataChannel;A.RTCPeerConnection.prototype.createDataChannel=function(){const n=o.apply(this,arguments);return e(n,this),n},eu(A,"datachannel",n=>(e(n.channel,n.target),n))}function gN(A){if(!A.RTCPeerConnection||"connectionState"in A.RTCPeerConnection.prototype)return;const e=A.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(o){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),o&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=o)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(o=>{const n=e[o];e[o]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=a=>{const I=a.target;if(I._lastConnectionState!==I.connectionState){I._lastConnectionState=I.connectionState;const c=new Event("connectionstatechange",a);I.dispatchEvent(c)}return a},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}function fR(A,e){if(!A.RTCPeerConnection||e.browser==="chrome"&&e.version>=71||e.browser==="safari"&&e._safariVersion>=13.1)return;const o=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(n){if(n&&n.sdp&&n.sdp.indexOf(`
a=extmap-allow-mixed`)!==-1){const a=n.sdp.split(`
`).filter(I=>I.trim()!=="a=extmap-allow-mixed").join(`
`);A.RTCSessionDescription&&n instanceof A.RTCSessionDescription?arguments[0]=new A.RTCSessionDescription({type:n.type,sdp:a}):n.sdp=a}return o.apply(this,arguments)}}function mR(A,e){if(!A.RTCPeerConnection||!A.RTCPeerConnection.prototype)return;const o=A.RTCPeerConnection.prototype.addIceCandidate;o&&o.length!==0&&(A.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():o.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function DR(A,e){if(!A.RTCPeerConnection||!A.RTCPeerConnection.prototype)return;const o=A.RTCPeerConnection.prototype.setLocalDescription;o&&o.length!==0&&(A.RTCPeerConnection.prototype.setLocalDescription=function(){let n=arguments[0]||{};if(typeof n!="object"||n.type&&n.sdp)return o.apply(this,arguments);if(n={type:n.type,sdp:n.sdp},!n.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":n.type="offer";break;default:n.type="answer"}return n.sdp||n.type!=="offer"&&n.type!=="answer"?o.apply(this,[n]):(n.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(a=>o.apply(this,[a]))})}var YV=Object.freeze({__proto__:null,shimRTCIceCandidate:hR,shimRTCIceCandidateRelayProtocol:sN,shimMaxMessageSize:mf,shimSendThrowTypeError:pR,shimConnectionState:gN,removeExtmapAllowMixed:fR,shimAddIceCandidateNullOrEmpty:mR,shimParameterlessSetLocalDescription:DR});(function({window:A}={},e={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const o=uR,n=function(I){const c={browser:null,version:null};if(I===void 0||!I.navigator||!I.navigator.userAgent)return c.browser="Not a browser.",c;const{navigator:u}=I;if(u.mozGetUserMedia)c.browser="firefox",c.version=parseInt(hf(u.userAgent,/Firefox\/(\d+)\./,1));else if(u.webkitGetUserMedia||I.isSecureContext===!1&&I.webkitRTCPeerConnection)c.browser="chrome",c.version=parseInt(hf(u.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else{if(!I.RTCPeerConnection||!u.userAgent.match(/AppleWebKit\/(\d+)\./))return c.browser="Not a supported browser.",c;c.browser="safari",c.version=parseInt(hf(u.userAgent,/AppleWebKit\/(\d+)\./,1)),c.supportsUnifiedPlan=I.RTCRtpTransceiver&&"currentDirection"in I.RTCRtpTransceiver.prototype,c._safariVersion=hf(u.userAgent,/Version\/(\d+(\.?\d+))/,1)}return c}(A),a={browserDetails:n,commonShim:YV,extractVersion:hf,disableLog:IU,disableWarnings:xV,sdp:FU};switch(n.browser){case"chrome":if(!iN||!ff||!e.shimChrome)return o("Chrome shim is not included in this adapter release."),a;if(n.version===null)return o("Chrome shim can not determine version, not shimming."),a;o("adapter.js shimming chrome."),a.browserShim=iN,mR(A,n),DR(A),EU(A,n),lU(A),ff(A,n),CU(A),QU(A,n),eN(A),BU(A),tN(A),dU(A,n),hR(A),sN(A),gN(A),mf(A,n),pR(A),fR(A,n);break;case"firefox":if(!wU||!QR||!e.shimFirefox)return o("Firefox shim is not included in this adapter release."),a;o("adapter.js shimming firefox."),a.browserShim=wU,mR(A,n),DR(A),hU(A,n),QR(A,n),pU(A),mU(A),fU(A),oN(A),rN(A),DU(A),yU(A),RU(A),MU(A),hR(A),gN(A),mf(A,n),pR(A);break;case"safari":if(!_U||!e.shimSafari)return o("Safari shim is not included in this adapter release."),a;o("adapter.js shimming safari."),a.browserShim=_U,mR(A,n),DR(A),TU(A),dR(A),nN(A),SU(A),vU(A),GU(A),aN(A),kU(A),hR(A),sN(A),mf(A,n),pR(A),fR(A,n);break;default:o("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var Ii,UU=Object.create,Df=Object.defineProperty,PV=Object.defineProperties,yR=Object.getOwnPropertyDescriptor,yf=Object.getOwnPropertyDescriptors,JV=Object.getOwnPropertyNames,RR=Object.getOwnPropertySymbols,OU=Object.getPrototypeOf,IN=Object.prototype.hasOwnProperty,xU=Object.prototype.propertyIsEnumerable,YU=Reflect.get,Rf=Math.pow,MR=(A,e,o)=>e in A?Df(A,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):A[e]=o,bt=(A,e)=>{for(var o in e||(e={}))IN.call(e,o)&&MR(A,o,e[o]);if(RR)for(var o of RR(e))xU.call(e,o)&&MR(A,o,e[o]);return A},fi=(A,e)=>PV(A,yf(e)),PU=(A,e)=>{var o={};for(var n in A)IN.call(A,n)&&e.indexOf(n)<0&&(o[n]=A[n]);if(A!=null&&RR)for(var n of RR(A))e.indexOf(n)<0&&xU.call(A,n)&&(o[n]=A[n]);return o},ZC=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),XC=(A,e)=>{for(var o in e)Df(A,o,{get:e[o],enumerable:!0})},es=(A,e,o)=>(o=A!=null?UU(OU(A)):{},((n,a,I,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of JV(a))!IN.call(n,u)&&u!==I&&Df(n,u,{get:()=>a[u],enumerable:!(c=yR(a,u))||c.enumerable});return n})(!e&&A&&A.__esModule?o:Df(o,"default",{value:A,enumerable:!0}),A)),vt=(A,e,o,n)=>{for(var a,I=yR(e,o),c=A.length-1;c>=0;c--)(a=A[c])&&(I=a(e,o,I)||I);return I&&Df(e,o,I),I},G=(A,e,o)=>MR(A,typeof e!="symbol"?e+"":e,o),zg=(A,e,o)=>YU(OU(A),o,e),DA=(A,e,o)=>new Promise((n,a)=>{var I=d=>{try{u(o.next(d))}catch(R){a(R)}},c=d=>{try{u(o.throw(d))}catch(R){a(R)}},u=d=>d.done?n(d.value):Promise.resolve(d.value).then(I,c);u((o=o.apply(A,e)).next())}),hg=ZC((A,e)=>{var o=Object.prototype.hasOwnProperty,n="~";function a(){}function I(R,k,_){this.fn=R,this.context=k,this.once=_||!1}function c(R,k,_,Z,iA){if(typeof _!="function")throw new TypeError("The listener must be a function");var cA=new I(_,Z||R,iA),TA=n?n+k:k;return R._events[TA]?R._events[TA].fn?R._events[TA]=[R._events[TA],cA]:R._events[TA].push(cA):(R._events[TA]=cA,R._eventsCount++),R}function u(R,k){--R._eventsCount===0?R._events=new a:delete R._events[k]}function d(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(n=!1)),d.prototype.eventNames=function(){var R,k,_=[];if(this._eventsCount===0)return _;for(k in R=this._events)o.call(R,k)&&_.push(n?k.slice(1):k);return Object.getOwnPropertySymbols?_.concat(Object.getOwnPropertySymbols(R)):_},d.prototype.listeners=function(R){var k=n?n+R:R,_=this._events[k];if(!_)return[];if(_.fn)return[_.fn];for(var Z=0,iA=_.length,cA=new Array(iA);Z<iA;Z++)cA[Z]=_[Z].fn;return cA},d.prototype.listenerCount=function(R){var k=n?n+R:R,_=this._events[k];return _?_.fn?1:_.length:0},d.prototype.emit=function(R,k,_,Z,iA,cA){var TA=n?n+R:R;if(!this._events[TA])return!1;var JA,Ie,XA=this._events[TA],Ft=arguments.length;if(XA.fn){switch(XA.once&&this.removeListener(R,XA.fn,void 0,!0),Ft){case 1:return XA.fn.call(XA.context),!0;case 2:return XA.fn.call(XA.context,k),!0;case 3:return XA.fn.call(XA.context,k,_),!0;case 4:return XA.fn.call(XA.context,k,_,Z),!0;case 5:return XA.fn.call(XA.context,k,_,Z,iA),!0;case 6:return XA.fn.call(XA.context,k,_,Z,iA,cA),!0}for(Ie=1,JA=new Array(Ft-1);Ie<Ft;Ie++)JA[Ie-1]=arguments[Ie];XA.fn.apply(XA.context,JA)}else{var ie,ke=XA.length;for(Ie=0;Ie<ke;Ie++)switch(XA[Ie].once&&this.removeListener(R,XA[Ie].fn,void 0,!0),Ft){case 1:XA[Ie].fn.call(XA[Ie].context);break;case 2:XA[Ie].fn.call(XA[Ie].context,k);break;case 3:XA[Ie].fn.call(XA[Ie].context,k,_);break;case 4:XA[Ie].fn.call(XA[Ie].context,k,_,Z);break;default:if(!JA)for(ie=1,JA=new Array(Ft-1);ie<Ft;ie++)JA[ie-1]=arguments[ie];XA[Ie].fn.apply(XA[Ie].context,JA)}}return!0},d.prototype.on=function(R,k,_){return c(this,R,k,_,!1)},d.prototype.once=function(R,k,_){return c(this,R,k,_,!0)},d.prototype.removeListener=function(R,k,_,Z){var iA=n?n+R:R;if(!this._events[iA])return this;if(!k)return u(this,iA),this;var cA=this._events[iA];if(cA.fn)cA.fn===k&&(!Z||cA.once)&&(!_||cA.context===_)&&u(this,iA);else{for(var TA=0,JA=[],Ie=cA.length;TA<Ie;TA++)(cA[TA].fn!==k||Z&&!cA[TA].once||_&&cA[TA].context!==_)&&JA.push(cA[TA]);JA.length?this._events[iA]=JA.length===1?JA[0]:JA:u(this,iA)}return this},d.prototype.removeAllListeners=function(R){var k;return R?(k=n?n+R:R,this._events[k]&&u(this,k)):(this._events=new a,this._eventsCount=0),this},d.prototype.off=d.prototype.removeListener,d.prototype.addListener=d.prototype.on,d.prefixed=n,d.EventEmitter=d,e!==void 0&&(e.exports=d)}),Xl=ZC((A,e)=>{var o=e.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(n){return n.encoding?"rtpmap:%d %s/%s/%s":n.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(n){return n.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(n){return n.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(n){return"extmap:%d"+(n.direction?"/%s":"%v")+(n["encrypt-uri"]?" %s":"%v")+" %s"+(n.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(n){return n.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(n){var a="candidate:%s %d %s %d %s %d typ %s";return a+=n.raddr!=null?" raddr %s rport %d":"%v%v",a+=n.tcptype!=null?" tcptype %s":"%v",n.generation!=null&&(a+=" generation %d"),a+=n["network-id"]!=null?" network-id %d":"%v",a+=n["network-cost"]!=null?" 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(n){var a="ssrc:%d";return n.attribute!=null&&(a+=" %s",n.value!=null&&(a+=":%s")),a}},{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(n){return n.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(n){return n.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(n){return"imageattr:%s %s %s"+(n.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(n){return"simulcast:%s %s"+(n.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(n){return"ts-refclk:%s"+(n.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(n){var a="mediaclk:";return a+=n.id!=null?"id=%s %s":"%v%s",a+=n.mediaClockValue!=null?"=%s":"",a+=n.rateNumerator!=null?" rate=%s":"",a+=n.rateDenominator!=null?"/%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(o).forEach(function(n){o[n].forEach(function(a){a.reg||(a.reg=/(.*)/),a.format||(a.format="%s")})})}),sh=ZC(A=>{var e=function(c){return String(Number(c))===c?Number(c):c},o=function(c,u,d){var R=c.name&&c.names;c.push&&!u[c.push]?u[c.push]=[]:R&&!u[c.name]&&(u[c.name]={});var k=c.push?{}:R?u[c.name]:u;(function(_,Z,iA,cA){if(cA&&!iA)Z[cA]=e(_[1]);else for(var TA=0;TA<iA.length;TA+=1)_[TA+1]!=null&&(Z[iA[TA]]=e(_[TA+1]))})(d.match(c.reg),k,c.names,c.name),c.push&&u[c.push].push(k)},n=Xl(),a=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(c){var u={},d=[],R=u;return c.split(/(\r\n|\r|\n)/).filter(a).forEach(function(k){var _=k[0],Z=k.slice(2);_==="m"&&(d.push({rtp:[],fmtp:[]}),R=d[d.length-1]);for(var iA=0;iA<(n[_]||[]).length;iA+=1){var cA=n[_][iA];if(cA.reg.test(Z))return o(cA,R,Z)}}),u.media=d,u};var I=function(c,u){var d=u.split(/=(.+)/,2);return d.length===2?c[d[0]]=e(d[1]):d.length===1&&u.length>1&&(c[d[0]]=void 0),c};A.parseParams=function(c){return c.split(/;\s?/).reduce(I,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(c){return c.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(c){for(var u=[],d=c.split(" ").map(e),R=0;R<d.length;R+=3)u.push({component:d[R],ip:d[R+1],port:d[R+2]});return u},A.parseImageAttributes=function(c){return c.split(" ").map(function(u){return u.substring(1,u.length-1).split(",").reduce(I,{})})},A.parseSimulcastStreamList=function(c){return c.split(";").map(function(u){return u.split(",").map(function(d){var R,k=!1;return d[0]!=="~"?R=e(d):(R=e(d.substring(1,d.length)),k=!0),{scid:R,paused:k}})})}}),HV=ZC((A,e)=>{var o=Xl(),n=/%[sdv%]/g,a=function(d){var R=1,k=arguments,_=k.length;return d.replace(n,function(Z){if(R>=_)return Z;var iA=k[R];switch(R+=1,Z){case"%%":return"%";case"%s":return String(iA);case"%d":return Number(iA);case"%v":return""}})},I=function(d,R,k){var _=[d+"="+(R.format instanceof Function?R.format(R.push?k:k[R.name]):R.format)];if(R.names)for(var Z=0;Z<R.names.length;Z+=1){var iA=R.names[Z];R.name?_.push(k[R.name][iA]):_.push(k[R.names[Z]])}else _.push(k[R.name]);return a.apply(null,_)},c=["v","o","s","i","u","e","p","c","b","t","r","z","a"],u=["i","c","b","a"];e.exports=function(d,R){R=R||{},d.version==null&&(d.version=0),d.name==null&&(d.name=" "),d.media.forEach(function(iA){iA.payloads==null&&(iA.payloads="")});var k=R.outerOrder||c,_=R.innerOrder||u,Z=[];return k.forEach(function(iA){o[iA].forEach(function(cA){cA.name in d&&d[cA.name]!=null?Z.push(I(iA,cA,d)):cA.push in d&&d[cA.push]!=null&&d[cA.push].forEach(function(TA){Z.push(I(iA,cA,TA))})})}),d.media.forEach(function(iA){Z.push(I("m",o.m[0],iA)),_.forEach(function(cA){o[cA].forEach(function(TA){TA.name in iA&&iA[TA.name]!=null?Z.push(I(cA,TA,iA)):TA.push in iA&&iA[TA.push]!=null&&iA[TA.push].forEach(function(JA){Z.push(I(cA,TA,JA))})})})}),Z.join(`\r
`)+`\r
`}}),VV=ZC(A=>{var e=sh(),o=HV(),n=Xl();A.grammar=n,A.write=o,A.parse=e.parse,A.parseParams=e.parseParams,A.parseFmtpConfig=e.parseFmtpConfig,A.parsePayloads=e.parsePayloads,A.parseRemoteCandidates=e.parseRemoteCandidates,A.parseImageAttributes=e.parseImageAttributes,A.parseSimulcastStreamList=e.parseSimulcastStreamList}),Mf=ZC((A,e)=>{var o=e.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(n){return n.encoding?"rtpmap:%d %s/%s/%s":n.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(n){return n.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(n){return n.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(n){return"extmap:%d"+(n.direction?"/%s":"%v")+(n["encrypt-uri"]?" %s":"%v")+" %s"+(n.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(n){return n.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(n){var a="candidate:%s %d %s %d %s %d typ %s";return a+=n.raddr!=null?" raddr %s rport %d":"%v%v",a+=n.tcptype!=null?" tcptype %s":"%v",n.generation!=null&&(a+=" generation %d"),a+=n["network-id"]!=null?" network-id %d":"%v",a+=n["network-cost"]!=null?" 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(n){var a="ssrc:%d";return n.attribute!=null&&(a+=" %s",n.value!=null&&(a+=":%s")),a}},{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(n){return n.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(n){return n.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(n){return"imageattr:%s %s %s"+(n.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(n){return"simulcast:%s %s"+(n.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(n){return"ts-refclk:%s"+(n.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(n){var a="mediaclk:";return a+=n.id!=null?"id=%s %s":"%v%s",a+=n.mediaClockValue!=null?"=%s":"",a+=n.rateNumerator!=null?" rate=%s":"",a+=n.rateDenominator!=null?"/%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(o).forEach(function(n){o[n].forEach(function(a){a.reg||(a.reg=/(.*)/),a.format||(a.format="%s")})})}),JU=ZC(A=>{var e=function(c){return String(Number(c))===c?Number(c):c},o=function(c,u,d){var R=c.name&&c.names;c.push&&!u[c.push]?u[c.push]=[]:R&&!u[c.name]&&(u[c.name]={});var k=c.push?{}:R?u[c.name]:u;(function(_,Z,iA,cA){if(cA&&!iA)Z[cA]=e(_[1]);else for(var TA=0;TA<iA.length;TA+=1)_[TA+1]!=null&&(Z[iA[TA]]=e(_[TA+1]))})(d.match(c.reg),k,c.names,c.name),c.push&&u[c.push].push(k)},n=Mf(),a=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(c){var u={},d=[],R=u;return c.split(/(\r\n|\r|\n)/).filter(a).forEach(function(k){var _=k[0],Z=k.slice(2);_==="m"&&(d.push({rtp:[],fmtp:[]}),R=d[d.length-1]);for(var iA=0;iA<(n[_]||[]).length;iA+=1){var cA=n[_][iA];if(cA.reg.test(Z))return o(cA,R,Z)}}),u.media=d,u};var I=function(c,u){var d=u.split(/=(.+)/,2);return d.length===2?c[d[0]]=e(d[1]):d.length===1&&u.length>1&&(c[d[0]]=void 0),c};A.parseParams=function(c){return c.split(/;\s?/).reduce(I,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(c){return c.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(c){for(var u=[],d=c.split(" ").map(e),R=0;R<d.length;R+=3)u.push({component:d[R],ip:d[R+1],port:d[R+2]});return u},A.parseImageAttributes=function(c){return c.split(" ").map(function(u){return u.substring(1,u.length-1).split(",").reduce(I,{})})},A.parseSimulcastStreamList=function(c){return c.split(";").map(function(u){return u.split(",").map(function(d){var R,k=!1;return d[0]!=="~"?R=e(d):(R=e(d.substring(1,d.length)),k=!0),{scid:R,paused:k}})})}}),HU=ZC((A,e)=>{var o=Mf(),n=/%[sdv%]/g,a=function(d){var R=1,k=arguments,_=k.length;return d.replace(n,function(Z){if(R>=_)return Z;var iA=k[R];switch(R+=1,Z){case"%%":return"%";case"%s":return String(iA);case"%d":return Number(iA);case"%v":return""}})},I=function(d,R,k){var _=[d+"="+(R.format instanceof Function?R.format(R.push?k:k[R.name]):R.format)];if(R.names)for(var Z=0;Z<R.names.length;Z+=1){var iA=R.names[Z];R.name?_.push(k[R.name][iA]):_.push(k[R.names[Z]])}else _.push(k[R.name]);return a.apply(null,_)},c=["v","o","s","i","u","e","p","c","b","t","r","z","a"],u=["i","c","b","a"];e.exports=function(d,R){R=R||{},d.version==null&&(d.version=0),d.name==null&&(d.name=" "),d.media.forEach(function(iA){iA.payloads==null&&(iA.payloads="")});var k=R.outerOrder||c,_=R.innerOrder||u,Z=[];return k.forEach(function(iA){o[iA].forEach(function(cA){cA.name in d&&d[cA.name]!=null?Z.push(I(iA,cA,d)):cA.push in d&&d[cA.push]!=null&&d[cA.push].forEach(function(TA){Z.push(I(iA,cA,TA))})})}),d.media.forEach(function(iA){Z.push(I("m",o.m[0],iA)),_.forEach(function(cA){o[cA].forEach(function(TA){TA.name in iA&&iA[TA.name]!=null?Z.push(I(cA,TA,iA)):TA.push in iA&&iA[TA.push]!=null&&iA[TA.push].forEach(function(JA){Z.push(I(cA,TA,JA))})})})}),Z.join(`\r
`)+`\r
`}}),cN=ZC(A=>{var e=JU(),o=HU();A.write=o,A.parse=e.parse,A.parseParams=e.parseParams,A.parseFmtpConfig=e.parseFmtpConfig,A.parsePayloads=e.parsePayloads,A.parseRemoteCandidates=e.parseRemoteCandidates,A.parseImageAttributes=e.parseImageAttributes,A.parseSimulcastStreamList=e.parseSimulcastStreamList}),qV=es(hg()),tu=((Ii=tu||{})[Ii.INVALID_PARAMETER=4096]="INVALID_PARAMETER",Ii[Ii.INVALID_OPERATION=4097]="INVALID_OPERATION",Ii[Ii.NOT_SUPPORTED=4098]="NOT_SUPPORTED",Ii[Ii.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",Ii[Ii.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",Ii[Ii.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",Ii[Ii.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",Ii[Ii.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",Ii[Ii.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",Ii[Ii.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",Ii[Ii.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",Ii[Ii.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",Ii[Ii.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",Ii[Ii.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",Ii[Ii.CLIENT_BANNED=16448]="CLIENT_BANNED",Ii[Ii.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",Ii[Ii.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",Ii[Ii.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",Ii[Ii.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",Ii[Ii.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",Ii[Ii.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",Ii[Ii.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",Ii[Ii.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",Ii[Ii.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",Ii[Ii.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",Ii[Ii.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",Ii[Ii.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",Ii[Ii.API_CALL_ABORTED=16461]="API_CALL_ABORTED",Ii[Ii.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",Ii[Ii.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",Ii[Ii.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",Ii[Ii.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",Ii[Ii.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",Ii[Ii.UNKNOWN=65535]="UNKNOWN",Ii),Ge=tu,VU=class extends Error{constructor(A){let{name:e="RtcError",message:o,code:n=Ge.UNKNOWN,extraCode:a=0,constraint:I}=A,c="<".concat(function(d){for(let R in Ge)if(Ge[R]===d)return R;return"UNKNOWN"}(n)," 0x").concat(n.toString(16),">"),u="".concat(o).concat(I?" constraint: ".concat(I):"").concat(o!=null&&o.includes(c)?"":" ".concat(c));super(u),G(this,"code"),G(this,"extraCode"),G(this,"message"),G(this,"originMessage"),G(this,"name"),G(this,"constraint"),this.code=n,this.extraCode=a,this.name=e,this.message=u,this.constraint=I,this.originMessage=o}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Ct=VU,EN=0,qU=!0,iu=function(A){EN=A;let e=new Date;e.setTime(e.getTime()+A),nA[qU?"info":"debug"]("baseTime from server: ".concat(e," offset: ").concat(A)),qU=!1},KU=function(){return EN},gh=function(){return Date.now()+EN},jU=function(){let A=new Date;return A.setTime(gh()),A.toLocaleString()},lN=function(A){let e=String(A.getMilliseconds());return"padStart"in String.prototype&&(e=e.toString().padStart(3,"0")),"".concat(A.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1"),":").concat(e)},tl={};XC(tl,{REPORT_TYPE:()=>eM,buildSSOPackage:()=>Iu,bytes2ms:()=>jR,calculateScaleResolutionDownNumber:()=>AM,concatArrayBuffers:()=>qf,convertObjectNumberToInt:()=>$R,copyProperties:()=>dO,deepClone:()=>Dh,deepCloneBasic:()=>yh,deepMerge:()=>tB,delay:()=>AC,fibonacci:()=>ph,formatedTime:()=>MO,getConstructorName:()=>Yf,getContainerFromElement:()=>LN,getEnv:()=>BO,getFirst16Bits:()=>SO,getInternalVersion:()=>yO,getLast16Bits:()=>tM,getLoggerUrl:()=>dh,getMediaStreamTrackInfo:()=>YN,getMuteStateFromFlag:()=>mQ,getNetworkType:()=>qR,getNumNetworkType:()=>hh,getReconnectionTimeout:()=>fQ,getStringByteLength:()=>XR,getTestSignalDomain:()=>uO,getTurnServer:()=>RO,getUint32Version:()=>UN,getValueType:()=>ya,getViewListFromView:()=>Hf,glog:()=>pO,ipv4ToUint32:()=>Jf,isArray:()=>Aa,isAudioWorkletSupported:()=>fO,isBoolean:()=>rn,isConstructor:()=>mh,isEmpty:()=>zR,isFunction:()=>$n,isLangChinese:()=>rl,isMediaStreamTrack:()=>_N,isNumber:()=>hr,isObject:()=>Xc,isOverseaSdkAppId:()=>ol,isPlainObject:()=>Cc,isPortrait:()=>FN,isPromise:()=>fh,isRemoteTrack:()=>bN,isRotate90Or270:()=>gu,isSetSinkIdSupported:()=>mO,isString:()=>Sr,isUndefined:()=>Ee,isVideoMixerOutputTrack:()=>DQ,loadImage:()=>Vf,loadVideo:()=>wO,ms2bytes:()=>hO,ms2samples:()=>WR,normalizeUrl:()=>xN,performanceNow:()=>ki,promiseAny:()=>Pf,samples2ms:()=>kN,setNetworkTypeFromWebRTC:()=>KR,stringify:()=>nl,stringifyIncludeValue:()=>ZR,throttlePromise:()=>ON});var WU={};XC(WU,{ASR_ROBOT_FROM_TYPE:()=>xR,AUDIO_MUTE_BIT:()=>Eh,AUDIO_STAT_BIT:()=>Gf,AUX_STAT_BIT:()=>Tf,AUX_STREAM_MSID:()=>tO,BACKEND_ENV:()=>Ih,BASE_DOC_URL:()=>$C,BASE_HOST:()=>ZU,CAPABILITIES_KEYS:()=>RN,CLASS_NAME:()=>eq,CLOUD_CONSOLE_URL:()=>WV,CROSS_ROOM_BIT:()=>hN,DATA_CHANNEL_FROM_TYPE_BIT:()=>nu,DATA_FREEZE_TIMING:()=>DN,DOC_BILLING_CN:()=>NR,DOC_BILLING_OVERSEA:()=>uN,DOC_URL:()=>zV,DTLS_STATE_UNKNOWN:()=>AB,ENV_NAME:()=>ou,EXCHANGE_SDP_TIMEOUT:()=>aO,IS_WORKER:()=>SR,IS_WORKLET:()=>vR,KIBANA_EVENT:()=>oa,LOCAL_STREAM_PUBLISH_STATE:()=>sO,LOGGER_CMD_TYPE:()=>Xg,LOGGER_DOMAIN:()=>Zg,LOGGER_DOMAIN_OVERSEA:()=>QQ,LOG_LEVEL:()=>ru,LOG_LEVEL_NAME:()=>iq,MAIN_STREAM_MSID:()=>RI,MAX_RTT:()=>OR,MICROPHONE_COMMUNICATIONS:()=>tq,MICROPHONE_DEFAULT:()=>bf,MUTE_ALL_BIT:()=>eO,NAME:()=>fA,NETWORK_TYPE:()=>TR,NOT_SUPPORTED_H264:()=>FR,PAUSED_RETRY_COUNT:()=>pQ,PEERCONNECTION_CONNECTING_TIMEOUT:()=>yN,PEER_CONNECTION_STATE:()=>hi,PEER_LEAVE_REASON:()=>cO,RECOVER_CAPTURE_INTERVAL:()=>Ff,REMOTE_STREAM_TYPE_AUX:()=>pN,REMOTE_STREAM_TYPE_MAIN:()=>kR,RENDER_FREEZE_TIMING:()=>gO,SCHEDULE_DOMAIN:()=>su,SCHEDULE_TIMEOUT:()=>IO,SDP_SEMANTICS_PLAN_B:()=>LR,SDP_SEMANTICS_UNIFIED_PLAN:()=>_f,SECOND_HOST:()=>XU,SIGNAL_PING_PONG_INTERVAL:()=>lc,SIGNAL_PING_TIMEOUT:()=>$U,SIGNAL_RECONNECTION_COUNT:()=>ZV,SMALL_STAT_BIT:()=>dN,SPEAKER_DEFAULT:()=>UR,STORAGE_EXPIRES_TIME:()=>GR,STREAM_TYPE_BIG:()=>$V,STREAM_TYPE_SMALL:()=>Aq,SUBSCRIBE_SMALL_RETRY_COUNT:()=>Lf,SYNC_USER_LIST_INTERVAL:()=>XV,Scene:()=>ch,THIRD_HOST:()=>jV,TRANSPORT_DIRECTION:()=>_r,TRTC_ERROR_ASSISTANCE:()=>Sf,TRTC_QUALITY_BAD:()=>lh,TRTC_QUALITY_DISCONNECTED:()=>rO,TRTC_QUALITY_EXCELLENT:()=>_R,TRTC_QUALITY_GOOD:()=>au,TRTC_QUALITY_POOR:()=>iO,TRTC_QUALITY_UNKNOWN:()=>fN,TRTC_QUALITY_VERY_BAD:()=>oO,UPDATE_OFFER_TIMEOUT:()=>nO,VIDEO_MUTE_BIT:()=>kf,VIDEO_STAT_BIT:()=>Nf,WEBGL_ATTRIBUTES:()=>MN,audioProfileMap:()=>dQ,defaultBigVideoProfile:()=>vf,defaultSmallVideoProfile:()=>AO,getRetryCount:()=>Ch,getScriptDir:()=>KV,innerVersion:()=>wR,loggerProxy:()=>BN,screenProfileMap:()=>QN,setLoggerProxy:()=>wf,setRetryCount:()=>bR,setVersion:()=>zU,version:()=>il,videoProfileMap:()=>$l});var wR="4.15.00.1600",il="5.0.0";function zU(A){il=A;let[e,o,n]=A.split(".").map(a=>parseInt(a,10));wR="".concat(e,".").concat(Math.min(15,o),".").concat(Math.min(15,n),".").concat(o.toString().padStart(2,"0")).concat(n.toString().padStart(2,"0"))}var CN,Ec,SR=typeof importScripts<"u",vR=typeof registerProcessor<"u",KV=()=>{let A=SR?self.location.href:document.currentScript.src;return A.substring(0,A.lastIndexOf("/")+1)},BN="",wf=A=>BN=A,ZU="web.sdk.qcloud.com",XU="web.sdk.tencent.cn",jV="web.sdk.cloud.tencent.cn",WV="https://console.cloud.tencent.com/trtc",$C="https://".concat(ZU,"/trtc/webrtc/doc"),zV="".concat($C,"/zh-cn/"),NR="https://cloud.tencent.com/document/product/647/85386",uN="https://trtc.io/document/56025",Zg="https://yun.tim.qq.com",QQ="https://apisgp.my-imcloud.com",Sf="trtc_error_assistance",Xg={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ou={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},ru=((Ec=ru||{})[Ec.TRACE=0]="TRACE",Ec[Ec.DEBUG=1]="DEBUG",Ec[Ec.INFO=2]="INFO",Ec[Ec.WARN=3]="WARN",Ec[Ec.ERROR=4]="ERROR",Ec[Ec.NONE=5]="NONE",Ec),$U=18e3,lc=2e3,TR={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},GR=6048e5,dQ={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}},$l={"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}},vf=$l["480p_2"],AO=$l["120p_2"],QN={"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}},fA={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",LOADSTART:"loadstart",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",FULLSCREEN_CHANGE:"fullscreenchange",RESIZE:"resize",TIME_UPDATE:"timeupdate"},_r={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Ih={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ch=((CN=ch||{}).LIVE="live",CN.RTC="rtc",CN),Nf=1,dN=2,Tf=4,Gf=8,Eh=64,kf=16,eO=112,hN=128,nu=256,RI="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",tO="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",kR=fA.MAIN,pN=fA.AUXILIARY,fN=0,_R=1,au=2,iO=3,lh=4,oO=5,rO=6,AB="unknown",hi={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},mN=1/0;function bR(A){mN=A}function Ch(){return mN}var hQ,ZV=30,oa={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",VIDEO_ENCODE_RESUME_DURING_CALL:"video-encode-resume-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call",AUDIO_ENCODE_RESUME_DURING_CALL:"audio-encode-resume-during-call",VIDEO_DECODE_FAILED_DURING_CALL:"video-decode-failed-during-call",VIDEO_DECODE_RESUME_DURING_CALL:"video-decode-resume-during-call",AUDIO_DECODE_FAILED_DURING_CALL:"audio-decode-failed-during-call",AUDIO_DECODE_RESUME_DURING_CALL:"audio-decode-resume-during-call",VIDEO_HARDWARE_DECODE_FAILED:"video-hardware-decode-failed",VIDEO_HARDWARE_DECODE_RESUME:"video-hardware-decode-resume"},XV=1e4,nO=1e4,aO=1e4,_f="unified-plan",LR="plan-b",FR=1028,sO=((hQ=sO||{})[hQ.UNPUBLISH=-1]="UNPUBLISH",hQ[hQ.PUBLISHING=0]="PUBLISHING",hQ[hQ.PUBLISHED=1]="PUBLISHED",hQ),DN=500,gO=1e3,$V=fA.BIG,Aq=fA.SMALL,yN=1e4,su={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"},IO=2e3,eq={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},pQ=5,bf="default",UR=bf,tq="communications",iq=Object.keys(ru),cO=["normal leave","timeout leave","kick","role change"],Lf=10,Ff=2e3,RN=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],OR=1e4,xR=14,MN={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},EO=function(A,e,o,n){return new(o||(o=Promise))(function(a,I){function c(R){try{d(n.next(R))}catch(k){I(k)}}function u(R){try{d(n.throw(R))}catch(k){I(k)}}function d(R){R.done?a(R.value):function(k){return k instanceof o?k:new o(function(_){_(k)})}(R.value).then(c,u)}d((n=n.apply(A,[])).next())})},YR=Symbol(32),PR=Symbol(16),wN=Symbol(8),Bh=class{constructor(A){this.g=A,this.consumed=0,A&&(this.need=A.next().value)}setG(A){this.g=A,this.demand(A.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(A,e){return e&&this.consume(),this.need=A,this.flush()}read(A){return EO(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,o)=>{var n;this.reject=o,this.resolve=a=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(a)},this.demand(A,!0)||(n=this.pull)===null||n===void 0||n.call(this,A)})})}readU32(){return this.read(YR)}readU16(){return this.read(PR)}readU8(){return this.read(wN)}close(){var A;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(A=this.reject)===null||A===void 0||A.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let A=null,e=this.buffer.subarray(this.consumed),o=0,n=a=>e.length<(o=a);if(typeof this.need=="number"){if(n(this.need))return;A=e.subarray(0,o)}else if(this.need===YR){if(n(4))return;A=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===PR){if(n(2))return;A=e[0]<<8|e[1]}else if(this.need===wN){if(n(1))return;A=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(n(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,o)),A=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(n(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,o)),A=this.need}return this.consumed+=o,this.g?this.demand(this.g.next(A).value,!0):this.resolve&&this.resolve(A),A}write(A){if(A instanceof Uint8Array?this.malloc(A.length).set(A):"buffer"in A?this.malloc(A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)):this.malloc(A.byteLength).set(new Uint8Array(A)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(A){this.malloc(4).set([A>>24&255,A>>16&255,A>>8&255,255&A]),this.flush()}writeU16(A){this.malloc(2).set([A>>8&255,255&A]),this.flush()}writeU8(A){this.malloc(1)[0]=A,this.flush()}malloc(A){if(this.buffer){let e=this.buffer.length,o=e+A;if(o<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,o);else{let n=new Uint8Array(o);n.set(this.buffer),this.buffer=n}return this.buffer.subarray(e,o)}return this.buffer=new Uint8Array(A),this.buffer}};Bh.U32=YR,Bh.U16=PR,Bh.U8=wN;var Uf=128;function JR(A){let e=new Bh;for(;A>=128;)e.malloc(1)[0]=255&A|Uf,A>>>=7;return e.malloc(1)[0]=255&A,e.buffer||new Uint8Array(0)}function HR(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=new Bh,n=e<<3;switch(typeof A){case"boolean":let a=o.malloc(2);a[0]=n,a[1]=A?1:0;break;case"number":o.malloc(1)[0]=n,o.write(JR(A));break;case"string":o.malloc(1)[0]=2|n;let I=new TextEncoder().encode(A);o.write(JR(I.length));let c=o.malloc(I.length);for(let d=0;d<I.length;d++)c[d]=I[d];break;case"object":let u=new Bh;if(Array.isArray(A))for(let d=0;d<A.length;d++){let R=HR(A[d],d+1);R&&u.write(R)}else{let d=1;for(let R in A){let k=HR(A[R],d++);k&&u.write(k)}}e===0?u.buffer&&o.write(u.buffer):(o.malloc(1)[0]=2|n,u.buffer&&(o.write(JR(u.buffer.length)),o.write(u.buffer)))}return o.buffer||new Uint8Array(0)}var lO=class{constructor(){G(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(A){this.buffer.push(A>>>24&255),this.buffer.push(A>>>16&255),this.buffer.push(A>>>8&255),this.buffer.push(255&A)}writeInt16(A){this.buffer.push(A>>>8&255),this.buffer.push(255&A)}writeByte(A){this.buffer.push(255&A)}writeBytes(A){for(let e=0;e<A.length;e++)this.buffer.push(A[e])}};function uh(A,e,o){A[o]=e>>>24&255,A[o+1]=e>>>16&255,A[o+2]=e>>>8&255,A[o+3]=255&e}function MI(A,e){return A[e]<<24|A[e+1]<<16|A[e+2]<<8|A[e+3]}function CO(A,e){return A[e]}function Qh(A,e,o){return new TextDecoder().decode(function(n,a,I){return n.slice(a,a+I)}(A,e,o))}var Of=0,SN=2654435769,VR=16,eB=2,xf=7;function vN(A,e){let o=new lO,n=function(XA,Ft,ie){let ke=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"AVQualityReportSvc.C2S";return{version:arguments.length>4&&arguments[4]!==void 0?arguments[4]:2e3,encryption:arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,d2:"",d2Len:0,uinType:arguments.length>6&&arguments[6]!==void 0?arguments[6]:30,uin:"",uinLen:0,reqHead:{seqNumber:ie,appId:XA,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:ke,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:Ft}}(e,A,Of);Of=Of+1&2147483647,o.writeInt32(0),o.writeInt32(n.version),o.writeByte(n.encryption);let a=new TextEncoder().encode(n.d2);o.writeInt32(a.length+4),a&&o.writeBytes(a),o.writeByte(n.uinType);let I=new TextEncoder().encode(n.uin);o.writeInt32(I.length+4),I.length&&o.writeBytes(I);let c=new lO;c.writeInt32(0),c.writeInt32(n.reqHead.seqNumber),c.writeInt32(n.reqHead.appId),c.writeByte(n.reqHead.appId>>>24&255),c.writeByte(n.reqHead.appId>>>16&255),c.writeByte(n.reqHead.appId>>>8&255),c.writeByte(255&n.reqHead.appId);for(let XA=4;XA<16;XA++)c.writeByte(0);let u=new TextEncoder().encode(n.reqHead.a2);c.writeInt32(u.length+4),u.length&&c.writeBytes(u);let d=new TextEncoder().encode(n.reqHead.serviceCmd);c.writeInt32(d.length+4),d.length&&c.writeBytes(d);let R=new TextEncoder().encode(n.reqHead.cookie);c.writeInt32(R.length+4),R.length&&c.writeBytes(R);let k=new TextEncoder().encode(n.reqHead.imei);c.writeInt32(k.length+4),k.length&&c.writeBytes(k);let _=new TextEncoder().encode(n.reqHead.ksid);c.writeInt32(_.length+4),_.length&&c.writeBytes(_);let Z=new TextEncoder().encode(n.reqHead.clientVersionInfo);c.writeInt16(Z.length+2),Z.length&&c.writeBytes(Z);let iA=c.length;c.data[0]=iA>>>24&255,c.data[1]=iA>>>16&255,c.data[2]=iA>>>8&255,c.data[3]=255&iA,Sr(A)&&(A=new TextEncoder().encode(A)),c.writeInt32(A.length+4),A.length&&c.writeBytes(A);let cA=new Uint8Array(c.data),TA=null;n.encryption===1?TA=new TextEncoder().encode(n.uin):n.encryption===2&&(TA=new Uint8Array(16)),TA&&(cA=function(XA,Ft){let ie=XA.length,ke=(ie+1+eB+xf)%8;ke&&(ke=8-ke);let Nt=ie+1+eB+xf+ke,Ut=new Uint8Array(Nt),Ui=0,Oi=new Uint8Array(8),or=new Uint8Array(8),xi=new Uint8Array(8),yo=0;Oi[0]=248&Math.floor(256*Math.random())|ke,yo=1;for(let Vn=0;Vn<ke;Vn++)Oi[yo]=255&Math.floor(256*Math.random()),yo+=1;for(let Vn=0;Vn<eB;)if(yo<8&&(Oi[yo]=255&Math.floor(256*Math.random()),yo+=1,Vn+=1),yo===8){NN(Oi,Ft,or,xi,Ut,Ui),Ui+=8,yo=0;for(let NI=0;NI<8;NI++)xi[NI]=Ut[Ui-8+NI]}let Sa=0;for(;Sa<ie;)if(yo<8&&(Oi[yo]=XA[Sa],yo+=1,Sa+=1),yo===8){NN(Oi,Ft,or,xi,Ut,Ui),Ui+=8,yo=0;for(let Vn=0;Vn<8;Vn++)xi[Vn]=Ut[Ui-8+Vn]}for(let Vn=0;Vn<xf;)if(yo<8&&(Oi[yo]=0,yo+=1,Vn+=1),yo===8){NN(Oi,Ft,or,xi,Ut,Ui),Ui+=8,yo=0;for(let NI=0;NI<8;NI++)xi[NI]=Ut[Ui-8+NI]}return Ut}(cA,TA)),o.writeBytes(cA);let JA=new Uint8Array(o.data),Ie=JA.length;return JA[0]=Ie>>>24&255,JA[1]=Ie>>>16&255,JA[2]=Ie>>>8&255,JA[3]=255&Ie,JA}function NN(A,e,o,n,a,I){for(let c=0;c<8;c++)A[c]^=n[c];(function(c,u,d,R){let k=MI(c,0),_=MI(c,4),Z=[];for(let cA=0;cA<4;cA++)Z[cA]=MI(u,4*cA);let iA=0;for(let cA=0;cA<VR;cA++)iA+=SN,iA>>>=0,k+=(_<<4)+Z[0]^_+iA^(_>>>5)+Z[1],k>>>=0,_+=(k<<4)+Z[2]^k+iA^(k>>>5)+Z[3],_>>>=0;uh(d,k,R),uh(d,_,R+4)})(A,e,a,I);for(let c=0;c<8;c++)a[I+c]^=o[c];for(let c=0;c<8;c++)o[c]=A[c]}var BO=function(){return new URLSearchParams(location.search).get("trtc_env")||""},uO=function(A){return A.includes(".")?A:"".concat(A).concat(".rtc.qq.com")},ol=A=>Number(A)<14e8,dh=function(A,e){let o;o=BN||(ol(A)?QQ:Zg);let n=Math.floor(Math.random()*Rf(2,31));return"".concat(o,"/v5/AVQualityReportSvc/C2S?random=").concat(n,"&sdkappid=").concat(A,"&cmdtype=").concat(e)},TN="unknown";function qR(){(function(){var I;QO||(QO=!0,(I=navigator.connection)==null||I.addEventListener("typechange",oq))})();let{userAgent:A,connection:e}=navigator,o=(A.match(/NetType\/\S+/)||[])[0]||"";o=o.toLowerCase().replace("nettype/",""),o==="3gnet"&&(o="3g");let n=e&&e.type&&e.type.toLowerCase(),a=e&&e.effectiveType&&e.effectiveType.toLowerCase();return a==="slow-2"&&(a="2g"),n?GN(n,a):TN}function oq(){nA.warn("netType changed",qR())}var QO=!1;function GN(A,e){if(TR[A])return A;switch(A){case"cellular":case"wimax":return e||"unknown";case"ethernet":return"wired";default:return"unknown"}}function KR(A){TN=GN(A)}function hh(){return TR[qR()]}function dO(A,e){for(let o of Reflect.ownKeys(e))if(o!=="constructor"&&o!=="prototype"&&o!=="name"){let n=Object.getOwnPropertyDescriptor(e,o)||"";Object.defineProperty(A,o,n)}return A}function jR(A){return kN(A/4,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function kN(A){return 1e3*A/(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function hO(A){return 4*WR(A,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function WR(A){return A*(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)/1e3}var pO=typeof window<"u"&&typeof window.glog=="function"?window.glog:()=>{},rl=()=>{let A=navigator.language;return A=A.substring(0,2),A==="zh"},Cc=function(A){if(!A||typeof A!="object"||Object.prototype.toString.call(A)!="[object Object]")return!1;let e=Object.getPrototypeOf(A);if(e===null)return!0;let o=Object.prototype.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof o=="function"&&o instanceof o&&Function.prototype.toString.call(o)===Function.prototype.toString.call(Object)};function ph(A){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return A<=1?e:ph(A-1,e,(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)+e)}function fQ(A){return A>8?3e4:1e3*ph(A)}function ya(A){return Reflect.apply(Object.prototype.toString,A,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var $n=A=>typeof A=="function",Ee=A=>A===void 0,Sr=A=>typeof A=="string",hr=A=>typeof A=="number",rn=A=>typeof A=="boolean",Xc=A=>ya(A)==="object",Aa=A=>ya(A)==="array",_N=A=>ya(A)==="MediaStreamTrack".toLowerCase(),bN=A=>A.isRemote,fh=A=>ya(A)==="promise",mh=A=>$n(A)&&A.prototype.constructor===A,Yf=A=>mh(A)?A.prototype.constructor.name:"",fO=typeof AudioWorkletNode<"u",mO=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype;function Pf(A){return new Promise((e,o)=>{let n=[];A.forEach(a=>{a.then(e).catch(I=>{n.push(I),n.length===A.length&&o(n)})})})}function ki(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var DO=A=>+A<10?"0".concat(A):A,yO=A=>{let e=A.match(/^\d+\.\d+\.\d+/)[0];if(!e)return A;let o=e.split("."),n=DO(o[1])+DO(o[2]);return o[1]-15>0&&(o[1]="15"),o[2]-15>0&&(o[2]="15"),"".concat(o.join("."),".").concat(n)},rq=Object.prototype.hasOwnProperty;function zR(A){if(A==null)return!0;if(typeof A=="boolean")return!1;if(typeof A=="number")return A===0;if(typeof A=="string"||typeof A=="function"||Array.isArray(A))return A.length===0;if(A instanceof Error)return A.message==="";if(Cc(A))switch(Object.prototype.toString.call(A)){case"[object File]":case"[object Map]":case"[object Set]":return A.size===0;case"[object Object]":for(let e in A)if(rq.call(A,e))return!1;return!0}return!1}function mQ(A,e){return{userId:e,hasAudio:!!(A&Gf),hasVideo:!!(A&Nf),hasAuxiliary:!!(A&Tf),hasSmall:!!(A&dN),audioMuted:!!(A&Eh),videoMuted:!!(A&kf),audioAvailable:!(!(A&Gf)||A&Eh),videoAvailable:!(!(A&Nf)||A&kf),hasDatachannel:!!(A&nu)}}function RO(A){let e={urls:A.url.startsWith("turn:")||A.url.startsWith("turns:")?A.url:"turn:".concat(A.url)};return!Ee(A.username)&&!Ee(A.credential)&&(e.username=A.username,e.credential=A.credential,e.credentialType="password",Ee(A.credentialType)||(e.credentialType=A.credentialType)),e}function Jf(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Sr(A))return 0;let o=A.split(".");return e?(Number(o[0])<<24|Number(o[1])<<16|Number(o[2])<<8|Number(o[3]))>>>0:(Number(o[3])<<24|Number(o[2])<<16|Number(o[1])<<8|Number(o[0]))>>>0}var tB=function(A,e,o,n){if(!Xc(A)||!Xc(e))return 0;let a,I=0,c=Object.keys(e);for(let u=0,d=c.length;u<d;u++)if(a=c[u],!(Ee(e[a])||o&&o.includes(a)))if(Xc(A[a])&&Xc(e[a]))I+=tB(A[a],e[a],o,n);else{if(n&&n.includes(e[a]))continue;A[a]!==e[a]&&(A[a]=Dh(e[a]),I+=1)}return I};function Dh(A){if(Aa(A)){let e=[];return A.forEach((o,n)=>{e[n]=Dh(o)}),e}if(Xc(A)){let e={};return Object.keys(A).forEach(o=>{e[o]=Dh(A[o])}),e}return A}var Hf=A=>{let e=[];if(Aa(A))e=[...A];else if(Sr(A)){let o=document.getElementById(A);o&&e.push(o)}else A&&e.push(A);return e},LN=A=>Sr(A)?document.getElementById(A):A,MO=()=>(A=>{let e=d=>d<10?"0".concat(d):"".concat(d),o=A.getFullYear(),n=A.getMonth()+1,a=A.getDate(),I=e(A.getHours()),c=e(A.getMinutes()),u=e(A.getSeconds());return"".concat(o,"/").concat(n,"/").concat(a," ").concat(I,":").concat(c,":").concat(u)})(new Date);function nl(A,e){let{keysToInclude:o,keysToExclude:n}=e;try{if(Aa(A))return"[".concat(A.map(u=>nl(u,{keysToInclude:o,keysToExclude:n})).join(","),"]");if(!Cc(A)||!Aa(o)&&!Aa(n))return JSON.stringify(A);let a={},I=new Set(o),c=new Set(n);return Object.keys(A).forEach(u=>{(c.size===0&&I.has(u)||I.size===0&&!c.has(u))&&(a[u]=Cc(A[u])||Aa(A[u])?JSON.parse(nl(A[u],{keysToExclude:n,keysToInclude:o})):A[u])}),JSON.stringify(a)}catch{return"{}"}}function ZR(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=[];return Object.keys(A).forEach(n=>{e===A[n]&&o.push(n)}),nl(A,{keysToInclude:o})}function XR(A){return A.replace(/[\u4e00-\u9fa5]/g,"aa").length}var FN=()=>{var A,e,o,n;return(A=window.screen)!=null&&A.orientation?!((n=(o=(e=window.screen)==null?void 0:e.orientation)==null?void 0:o.type)==null||!n.includes("portrait")):window.orientation===0||window.orientation===180},Vf=A=>DA(null,null,function*(){return new Promise((e,o)=>{let n;if(Sr(A))n=new Image,n.crossOrigin="anonymous",n.src=A;else if(n=A,n.complete)return void e(n);n.onload=()=>e(n),n.onerror=()=>{o(new Ct({code:Ge.INVALID_PARAMETER,message:"load image failed, url: ".concat(A)}))}})}),UN=A=>{let e=A.split(".");return+e[0]<<24|+e[1]<<16|+e[2]<<8|+e[3]},$R=A=>(Object.keys(A).forEach(e=>{hr(A[e])&&(e.startsWith("uint")||e.startsWith("int"))?A[e]=Math.floor(A[e]):(Cc(A[e])||Aa(A[e]))&&$R(A[e])}),A);function AC(A,e){return new Promise(o=>{let n=setTimeout(o,A);e&&e(n)})}function ON(A,e){let o=null;return function(){for(var n=arguments.length,a=new Array(n),I=0;I<n;I++)a[I]=arguments[I];return o||(o=A.apply(e||this,a),o.finally(()=>o=null),o)}}function xN(A){return A.replace(/(^|[^:])\/{2,}/g,"$1/")}function YN(A){var e;try{let{width:o,height:n,frameRate:a,sampleRate:I,sampleSize:c,channelCount:u}=(e=A.getSettings)==null?void 0:e.call(A),d=A.kind===fA.AUDIO?"".concat(I,"x").concat(c,"@").concat(u):"".concat(o,"x").concat(n,"@").concat(a),R=A.stats?" stats: ".concat(JSON.stringify(A.stats).replaceAll('"',"")):"";return"".concat(A.id," ").concat(A.readyState," muted:").concat(A.muted," ").concat(A.kind," ").concat(A.label," ").concat(d).concat(R)}catch{return""}}function AM(A,e){return A.width*A.height===e.width*e.height?1:FN()&&e.width>e.height&&A.height>e.width?Math.max(A.width/e.height,A.height/e.width,1):Math.max(A.width/e.width,A.height/e.height,1)}function gu(A){return A===90||A===270}function wO(A){return DA(this,null,function*(){return new Promise((e,o)=>{let n=document.createElement("video");n.crossOrigin="anonymous",n.src=A,n.muted=!0,n.loop=!0,n.playsInline=!0,n.play().then(()=>e(n)),n.onerror=()=>{o(n.error)}})})}function yh(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new WeakMap;if(typeof A!="object"||A===null)return A;if(e.has(A))return e.get(A);if(Array.isArray(A)){let o=[];return e.set(A,o),A.forEach((n,a)=>{o[a]=yh(n,e)}),o}if(Object.prototype.toString.call(A)==="[object Object]"){let o={};return e.set(A,o),Reflect.ownKeys(A).forEach(n=>{o[n]=yh(A[n],e)}),o}return A}var eM=(A=>(A[A.END_REPORT=2001]="END_REPORT",A[A.LOG=2002]="LOG",A[A.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",A))(eM||{});function Iu(A,e,o,n){try{let a=function(I,c,u,d){let R={data:I,random:Math.floor(2147483648*Math.random()),sdkAppId:u};return Ee(d)||(R=fi(bt({},R),{gzip:+d})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:c,bytes_report_data:JSON.stringify(R)}}}(A,e,o,n);return vN(HR(a),o)}catch{return JSON.stringify(A)}}function qf(A,e){let o=new Uint8Array(A.byteLength+e.byteLength);return o.set(new Uint8Array(A),0),o.set(new Uint8Array(e),A.byteLength),o.buffer}function tM(A){return(65535&A)>>>0}function SO(A){return(4294901760&A)>>>0}function DQ(A){return!!(A&&A instanceof CanvasCaptureMediaStreamTrack&&A.canvas.id.includes("trtc_mix"))}function nq(A){let e=function(o){try{let n={},a=0;n.totalLength=MI(o,a),a+=4,n.version=MI(o,a),a+=4,n.encryption=CO(o,a),a+=1,n.uinType=CO(o,a),a+=1,n.uinLength=MI(o,a),a+=4,n.uin=n.uinLength>4?Qh(o,a,n.uinLength-4):"",a+=n.uinLength-4;let I=o.slice(a);return n.encryption===2?(o=function(c,u){let d=0,R=new Uint8Array(8).fill(0),k=new Uint8Array(c.slice(0,8)),_=iM(k,u),Z=7&_[0],iA=c.length-1-Z-eB-xf,cA=new Uint8Array(iA),TA=0,JA=R,Ie=c.slice(0,8);d=8;let XA=1;XA+=Z;for(let ie=1;ie<=eB;)if(XA<8)XA++,ie++;else if(XA===8){let ke=Rh(c,d,JA,Ie,_,u);JA=ke.ivPreCrypt,Ie=ke.ivCurCrypt,_=ke.debiBuf,d=ke.bufPos,XA=0}let Ft=iA;for(;Ft>0;)if(XA<8)cA[TA++]=_[XA]^JA[XA],XA++,Ft--;else if(XA===8){let ie=Rh(c,d,JA,Ie,_,u);JA=ie.ivPreCrypt,Ie=ie.ivCurCrypt,_=ie.debiBuf,d=ie.bufPos,XA=0}for(let ie=1;ie<=xf;)if(XA<8)_[XA],JA[XA],XA++,ie++;else if(XA===8){if(d>=c.length)break;let ke=Rh(c,d,JA,Ie,_,u);if(!ke.success)break;JA=ke.ivPreCrypt,Ie=ke.ivCurCrypt,_=ke.debiBuf,d=ke.bufPos,XA=0}return cA}(I,new Uint8Array(16).fill(0)),n.decrypted=!0,a=0):(o=I,a=0),n.rspHeadLength=MI(o,a),a+=4,n.seqNo=MI(o,a),a+=4,n.retCode=MI(o,a),a+=4,n.retStrLength=MI(o,a),a+=4,n.retStr=n.retStrLength?Qh(o,a,n.retStrLength-4):"",a+=n.retStrLength-4,n.serviceCmdLength=MI(o,a),a+=4,n.serviceCmd=n.serviceCmdLength?Qh(o,a,n.serviceCmdLength-4):"",a+=n.serviceCmdLength-4,n.cookieLength=MI(o,a),a+=4,n.cookie=n.cookieLength?Qh(o,a,n.cookieLength-4):"",a+=n.cookieLength-4,n.flag=MI(o,a),a+=4,n.busiBuffLength=MI(o,a),a+=4,n.busiBuff=n.busiBuffLength?Qh(o,a,n.busiBuffLength-4):"",a+=n.busiBuffLength-4,n}catch{}}(A);return e?.busiBuff}function iM(A,e){let o=A[0]<<24|A[1]<<16|A[2]<<8|A[3],n=A[4]<<24|A[5]<<16|A[6]<<8|A[7];o>>>=0,n>>>=0;let a=SN*VR>>>0;for(let I=0;I<VR;I++)n-=(o<<4)+e[2]^o+a^(o>>>5)+e[3],n>>>=0,o-=(n<<4)+e[0]^n+a^(n>>>5)+e[1],o>>>=0,a-=SN,a>>>=0;return new Uint8Array([o>>>24&255,o>>>16&255,o>>>8&255,255&o,n>>>24&255,n>>>16&255,n>>>8&255,255&n])}function Rh(A,e,o,n,a,I){if(e+8>A.length)return{success:!1};let c=new Uint8Array(n),u=A.slice(e,e+8),d=new Uint8Array(8);for(let R=0;R<8;R++)d[R]=a[R]^u[R];return{success:!0,ivPreCrypt:c,ivCurCrypt:u,debiBuf:iM(d,I),bufPos:e+8}}var yQ=typeof TextDecoder<"u"?new TextDecoder:void 0;function cu(A){let{url:e,body:o,method:n="POST",timeout:a,priority:I}=A;return new Promise((c,u)=>{if("fetch"in window)return fetch(e,{method:n,body:o,priority:I}).then(R=>R.clone().json().then(k=>({data:k}),()=>R.arrayBuffer().then(k=>({data:nq(new Uint8Array(k))||(yQ?yQ.decode(k):k)})))).then(c,u);let d=new XMLHttpRequest;d.onreadystatechange=()=>{if(d.readyState===4)if(d.status>=200&&d.status<300)try{let R=JSON.parse(d.response);c({data:R})}catch{c({data:d.response})}else u({status:d.status,statusText:d.statusText||"request failed!"})},d.timeout=a||5e3,d.open(n,e,!0),d.send(o)})}function PN(A){return DA(this,null,function*(){let e=ki(),o=JSON.stringify(A);try{if(!CompressionStream||o.length<=2800)return o;let n=new Blob([o],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(n)).blob()).arrayBuffer();return nA.debug("compressJSON ".concat(o.length," -> ").concat(a.byteLength," ").concat(ki()-e,"ms")),a}catch{return o}})}var vO=Object.prototype.hasOwnProperty,RQ=A=>typeof A=="function",$c=A=>A===void 0,JN=A=>typeof A=="string",NO=A=>typeof A=="boolean",HN=A=>A.isRemote,TO=function(A){if(!A||typeof A!="object"||Object.prototype.toString.call(A)!="[object Object]")return!1;let e=Object.getPrototypeOf(A);if(e===null)return!0;let o=Object.prototype.hasOwnProperty.call(e,"constructor")&&e.constructor;return typeof o=="function"&&o instanceof o&&Function.prototype.toString.call(o)===Function.prototype.toString.call(Object)},Kf=function(A){let{retryFunction:e,settings:o,onError:n,onRetrying:a,onRetryFailed:I,onRetrySuccess:c,context:u}=A;return function(){for(var d=arguments.length,R=new Array(d),k=0;k<d;k++)R[k]=arguments[k];let{retries:_=5,timeout:Z=1e3}=o,iA=0,cA=-1,TA=0,JA=(Ie,XA)=>DA(this,null,function*(){let Ft=u||this;try{let ie=yield e.apply(Ft,R);iA>0&&c&&c.call(this,iA),iA=0,Ie(ie)}catch(ie){let ke=()=>{clearTimeout(cA),iA=0,TA=2,XA(ie)},Nt=()=>{TA!==2&&iA<(RQ(_)?_():_)?(iA++,TA=1,RQ(a)&&a.call(this,iA,ke),cA=window.setTimeout(()=>{cA=-1,JA(Ie,XA)},RQ(Z)?Z(iA):Z)):(ke(),RQ(I)&&I.call(this,ie))};RQ(n)?n.call(this,{error:ie,retry:Nt,reject:XA,retryFuncArgs:R,retriedCount:iA}):Nt()}});return new Promise(JA)}},VN=class qZ{constructor(e){G(this,"_parentPath"),G(this,"userId"),G(this,"remoteUserId"),G(this,"id"),G(this,"sdkAppId"),G(this,"type"),G(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal=!NO(e.isLocal)||e.isLocal,this.type=this.isLocal?"":e.type}getFullId(){return this._parentPath&&this.id?"".concat(this._parentPath,"-").concat(this.id):this._parentPath?this._parentPath:this.id}createChild(e){let o=new qZ({id:e.id,userId:$c(e.userId)?this.userId:e.userId,sdkAppId:$c(e.sdkAppId)?this.sdkAppId:e.sdkAppId,type:$c(e.type)?this.type:e.type,isLocal:$c(e.isLocal)?this.isLocal:e.isLocal,remoteUserId:$c(e.remoteUserId)?this.remoteUserId:e.remoteUserId});return o.bindParent(this),o}bindParent(e){let o=e.getFullId();this._parentPath!==o&&(this.debug("bind logger parent: ".concat(e.id)),this._parentPath=o,this.userId=e.userId||this.userId,this.sdkAppId=e.sdkAppId||this.sdkAppId)}setUserId(e){this.userId=e}setSdkAppId(e){this.sdkAppId=e}log(e,o){let n=this.isLocal?this.userId:this.remoteUserId,a=this.getFullId();o.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&this.type!=="main"?"*":"").concat(a).concat(n?"|".concat(n):"","]")),nA.log(e,o,$c(this.userId)||function(I){if(I==null)return!0;if(typeof I=="boolean")return!1;if(typeof I=="number")return I===0;if(typeof I=="string"||typeof I=="function"||Array.isArray(I))return I.length===0;if(I instanceof Error)return I.message==="";if(TO(I))switch(Object.prototype.toString.call(I)){case"[object File]":case"[object Map]":case"[object Set]":return I.size===0;case"[object Object]":for(let c in I)if(vO.call(I,c))return!1;return!0}return!1}(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(2,o)}debug(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(1,o)}warn(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(3,o)}error(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(4,o)}},GO={};XC(GO,{ANDROID_VERSION:()=>nM,CHROME_MAJOR_VERSION:()=>tE,CHROME_VERSION:()=>uM,EDGE_VERSION:()=>KN,EDG_MAJOR_VERSION:()=>sM,EDG_VERSION:()=>jN,ELECTRON_MAJOR_VERSION:()=>OO,FIREFOX_MAJOR_VERSION:()=>aM,FIREFOX_VERSION:()=>Wf,HUAWEI_VERSION:()=>rT,IE_VERSION:()=>gq,IOS_MAIN_VERSION:()=>al,IOS_VERSION:()=>$g,IPADQQB_VERSION:()=>$f,IS_ANDROID:()=>ra,IS_ANDROID_WEBVIEW:()=>sT,IS_ANY_SAFARI:()=>TQ,IS_CHROME:()=>BM,IS_CHROME_OS:()=>eT,IS_CHROMIUM_128_TO_143:()=>Gh,IS_CHROMIUM_BASE:()=>Bc,IS_DESKTOP_IOS_CHROME:()=>PO,IS_EDG:()=>wh,IS_EDGE:()=>Mh,IS_ELECTRON:()=>Iq,IS_FIREFOX:()=>Yr,IS_HEADLESS_CHROME:()=>UO,IS_HONOR:()=>oT,IS_HUAWEI:()=>iT,IS_HUAWEIBROWSER:()=>iB,IS_IE:()=>LO,IS_IE8:()=>sq,IS_IOS:()=>Ea,IS_IOS_13_OR_14:()=>YO,IS_IOS_15_1:()=>xO,IS_IOS_CHROME:()=>rm,IS_IPAD:()=>MQ,IS_IPADQQB:()=>EM,IS_IPAD_PRO:()=>rM,IS_IPHONE:()=>wQ,IS_IPOD:()=>_O,IS_LINUX:()=>Nh,IS_LOCAL:()=>GQ,IS_MAC:()=>lu,IS_MACQQB:()=>Xf,IS_MIBROWSER:()=>lM,IS_MQQB:()=>Zf,IS_NATIVE_ANDROID:()=>bO,IS_OLD_ANDROID:()=>aq,IS_OPENHARMONY:()=>Th,IS_OPPOBROWSER:()=>em,IS_SAFARI:()=>Ma,IS_SAFARI_15_1:()=>cq,IS_SAMSUNGBROWSER:()=>Am,IS_SOGOU:()=>IM,IS_SOGOUM:()=>zf,IS_TBS:()=>eE,IS_UCBROWSER:()=>tT,IS_VIVOBROWSER:()=>tm,IS_WECHAT:()=>Eu,IS_WIN:()=>vh,IS_WQQB:()=>cM,IS_WX:()=>FO,IS_X5MQQB:()=>vQ,IS_XWEB:()=>SQ,MACQQB_VERSION:()=>AT,MI_VERSION:()=>NQ,MQQB_VERSION:()=>Sh,OPENHARMONY_VERSION:()=>CM,OPPO_VERSION:()=>aT,SAFARI_VERSION:()=>Cu,SAMSUNG_VERSION:()=>nT,SOGOUM_VERSION:()=>gM,SOGOU_VERSION:()=>WN,TBS_VERSION:()=>zN,UA_DATA_STRING:()=>eC,USER_AGENT:()=>AE,VIVO_VERSION:()=>im,WECHAT_VERSION:()=>XN,WQQB_VERSION:()=>$N,XWEB_VERSION:()=>ZN,browserInfo:()=>uu,getBrowserCoreNumber:()=>pg,getBrowserInfo:()=>IT,getChromeMajorVersion:()=>om,getDeviceModel:()=>Qu,getDeviceModelFromUA:()=>cT,getGPUInfo:()=>kQ,getOSName:()=>Js,getOSNumber:()=>_Q,getOSString:()=>bQ,getOSType:()=>l,getTerminalType:()=>er,getUserAgentData:()=>nm,isAMDGPU:()=>_h,isAppleSiliconGPU:()=>Eq,isLocalStorageEnabled:()=>Bu,isMobile:()=>QM,isNvidiaGPU:()=>JO,isRealIOS:()=>jf,isVersionLargerThan:()=>kh,isVersionSmallerThan:()=>gT});var AE=typeof navigator>"u"?"":navigator.userAgent,Do=A=>new RegExp(A,"i").test(AE),Ra=A=>{if(Do(A)){let e=new RegExp("".concat(A,"\\/([\\d.]+)")),o=AE.match(e);if(o&&o[1])return o[1]}return""},oM=A=>{if(Do(A)){let e=new RegExp("".concat(A,"\\/(\\d+)")),o=AE.match(e);if(o&&o[1])return parseFloat(o[1])}return NaN},qN=/AppleWebKit\/([\d.]+)/i.exec(AE),kO=qN?parseFloat(qN[1]):NaN,MQ=Do("iPad"),rM=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Do("Macintosh"),wQ=Do("iPhone")&&!MQ,_O=Do("iPod"),Ea=wQ||MQ||_O||rM,jf=()=>{try{return Ea&&navigator.maxTouchPoints>1&&navigator.vendor.includes("Apple")}catch{return Ea}},ra=Do("Android"),nM=function(){if(ra){let A=AE.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(A){let e=A[1]&&parseFloat(A[1]),o=A[2]&&parseFloat(A[2]);if(e&&o)return parseFloat("".concat(A[1],".").concat(A[2]));if(e)return e}}return NaN}(),aq=ra&&Do("webkit")&&nM<2.3,bO=ra&&nM<5&&kO<537,Yr=Do("Firefox"),Wf=Ra("Firefox"),aM=oM("Firefox"),Mh=Do("Edge"),KN=Ra("Edge"),wh=Do("Edg"),jN=Ra("Edg"),sM=oM("Edg"),zf=Do("SogouMobileBrowser"),gM=Ra("SogouMobileBrowser"),IM=Do("MetaSr\\s"),WN=Ra("MetaSr\\s"),eE=Do("TBS"),zN=Ra("TBS"),SQ=Do("XWEB"),ZN=Ra("XWEB"),sq=Do("MSIE\\s8\\.0"),LO=Do("MSIE\\/\\d+"),gq=function(){if(LO){let A=/MSIE\s(\d+)\.\d/.exec(AE),e=A&&parseFloat(A[1]);return!e&&/Trident\/7.0/i.test(AE)&&/rv:11.0/.test(AE)&&(e=11),e}return NaN}(),Eu=Do("(micromessenger|webbrowser)"),XN=Ra("MicroMessenger"),vQ=!eE&&Do("MQQBrowser")&&Do("COVC"),Zf=!eE&&Do("MQQBrowser")&&!Do("COVC"),Sh=Zf||vQ?Ra("MQQBrowser"):"",cM=!eE&&Do(" QQBrowser"),$N=Ra(" QQBrowser"),Xf=!eE&&Do("QQBrowserLite"),AT=Ra("QQBrowserLite"),EM=!eE&&Do("MQBHD"),$f=Ra("MQBHD"),vh=Do("Windows"),lu=!Ea&&Do("MAC OS X"),Nh=!ra&&Do("Linux"),eT=Do("CrOS"),FO=Do("MicroMessenger"),tT=Do("UCBrowser"),Iq=Do("Electron"),lM=Do("MiuiBrowser"),NQ=Ra("MiuiBrowser"),iB=Do("HuaweiBrowser"),iT=Do("Huawei")||Do("HUAWEI"),oT=Do("Honor")||Do("HONOR"),rT=Ra("HuaweiBrowser"),Am=Do("SamsungBrowser"),nT=Ra("SamsungBrowser"),em=Do("HeyTapBrowser"),aT=Ra("HeyTapBrowser"),tm=Do("VivoBrowser"),im=Ra("VivoBrowser"),Th=Do("OpenHarmony"),CM=Ra("OpenHarmony"),om=()=>oM("Chrome"),rm=Do("CriOS"),Bc=Do("Chrome"),BM=!Mh&&!IM&&!zf&&!eE&&!SQ&&!wh&&!cM&&!lM&&!iB&&!Am&&!em&&!tm&&Bc,UO=Do("HeadlessChrome"),tE=om(),Gh=Bc&&tE>=128&&tE<=143,uM=Ra("Chrome"),OO=oM("Electron"),Ma=!Bc&&!Zf&&!vQ&&!Xf&&!EM&&Do("Safari"),TQ=Ma||Ea,Cu=Ra("Version"),sT=/Android.*(wv|.0.0.0)/.test(AE),$g=(()=>{if(rM)return Cu;if(Ea){let A=AE.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){let e=A[1];return A[2]&&(e+=".".concat(A[2])),e}}return""})();function gT(A,e){let o=A.split(".").map(a=>Number(a)),n=e.split(".").map(a=>Number(a));for(let a=0;a<Math.max(o.length,n.length);a++){let I=o[a]||0,c=n[a]||0;if(I<c)return!0;if(I>c)return!1}return!1}function kh(A,e){let o=arguments.length>2&&arguments[2]!==void 0&&arguments[2],n=A.split(".").map(I=>Number(I)),a=e.split(".").map(I=>Number(I));for(let I=0;I<Math.max(n.length,a.length);I++){let c=n[I]||0,u=a[I]||0;if(c>u)return!0;if(c<u)return!1}return o}var al=Number($g.split(".")[0]),cq=Cu==="15.1",xO=$g==="15.1",YO=(()=>{let A=Number($g.split(".")[0]);return A===14||A===13})(),PO=rm&&Cu==="11.1.1",GQ=typeof location<"u"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),Bu=(()=>{let A;return()=>{if(A===void 0)try{A=!!window.localStorage}catch{A=!1}return A}})(),uu=IT();function IT(){let A=new Map([[Yr,["Firefox",Wf]],[wh,["Edg",jN]],[BM,["Chrome",uM]],[rm,["ChiOS",Ra("CriOS")]],[Ma&&!rm,["Safari",Cu]],[eE,["TBS",zN]],[SQ,["XWEB",ZN]],[Eu&&wQ,["WeChat",XN]],[cM,["QQ(Win)",$N]],[Zf,["QQ(Mobile)",Sh]],[vQ,["QQ(Mobile X5)",Sh]],[Xf,["QQ(Mac)",AT]],[EM,["QQ(iPad)",$f]],[lM,["MI",NQ]],[iB,["HW",rT]],[Am,["Samsung",nT]],[em,["OPPO",aT]],[tm,["VIVO",im]],[Mh,["EDGE",KN]],[zf,["SogouMobile",gM]],[IM,["Sogou",WN]]]),e="unknown",o="unknown";return A.has(!0)&&([e,o]=A.get(!0)),{name:e,version:o}}var Bn=null;function QM(){return Bn&&typeof Bn.mobile=="boolean"?Bn.mobile:ra||Ea||wQ||MQ||Th}var eC="";function nm(){return DA(this,null,function*(){if(Bn)return Bn;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return(Bn=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!eC&&(eC="UAData: ".concat(Bn.platform,"/").concat(Bn.platformVersion),Bn.architecture&&Bn.bitness&&(eC+=" ".concat(Bn.architecture,"/").concat(Bn.bitness)),Bn.mobile&&(eC+=" mobile"),Bn.model&&(eC+=" model: ".concat(Bn.model.replace(/\s+/g,"/"))),Bn.fullVersionList&&(eC+=" ".concat(Bn.fullVersionList.filter(A=>A.brand!=="Not/A)Brand").map(A=>"".concat(A.brand,"/").concat(A.version)).join(",")))),Bn}catch{return null}})}var am="";function kQ(){try{if(am)return am;let A=document.createElement("canvas"),e=A.getContext("webgl")||A.getContext("experimental-webgl");if(!e)return"";let o=e.getExtension("WEBGL_debug_renderer_info");if(o){let n=e.getParameter(o.UNMASKED_VENDOR_WEBGL),a=e.getParameter(o.UNMASKED_RENDERER_WEBGL);return am="".concat(n," ").concat(a)}return""}catch{return""}}function _h(){try{let A=kQ();return A.includes("AMD")||A.includes("ATI")}catch{return!1}}function JO(){try{let A=kQ();return A.includes("NVIDIA")||A.includes("GeForce")}catch{return!1}}function Eq(){try{return kQ().includes("Apple M")}catch{return!1}}function Qu(){return Bn?.model||cT()||""}function cT(){let A=AE.match(/;\s*([^;)]+)\s+Build\//);return A!=null&&A[1]?A[1].trim():null}var HO=new Map([[ra,"Android"],[Ea,"iOS"],[vh,"Windows"],[lu,"MacOS"],[Nh,"Linux"],[eT,"ChromeOS"]]),Js=function(){return HO.get(!0)?HO.get(!0):Bn?Bn.platform:"unknown"};function _Q(){return vh?1:ra?2:lu?3:Ea?4:Nh?5:eT?6:Th?7:0}function pg(){return Eu||SQ?4:Bc?1:Ma?2:Yr?3:0}var bQ=()=>{let A=Js();return Bn!=null&&Bn.platformVersion?A+="/".concat(Bn.platformVersion):Ea?A+="/".concat($g):ra&&(A+="/".concat(nM)),A+="/".concat(uu.name,"/").concat(Ma&&!rm?uu.version:uu.version.split(".")[0]),Bn!=null&&Bn.architecture&&(A+="/".concat(Bn.architecture)),A};function er(){return ra?4:wQ?2:MQ?3:lu?12:vh?5:Nh?13:Th?22:1}function l(){return ra?"Android":wQ?"iPhone":MQ?"iPad":lu?"Mac":vh?"Windows":Nh?"Linux":"unknown"}var p,S=new(es(hg(),1)).default,H=((p=H||{}).ROOM_DESTROY="1",p.JOIN_START="21",p.JOIN_SCHEDULE_SUCCESS="22",p.JOIN_SIGNAL_CONNECTION_START="23",p.JOIN_SIGNAL_CONNECTION_END="24",p.JOIN_SEND_CMD="25",p.JOIN_RECEIVED_CMD_RES="26",p.JOIN_SUCCESS="27",p.JOIN_FAILED="28",p.LEAVE_START="51",p.LEAVE_SEND_CMD="52",p.LEAVE_SUCCESS="53",p.PUBLISH_START="61",p.SEND_FIRST_VIDEO_FRAME="62",p.PUBLISH_FAILED="63",p.SUBSCRIBE_START="81",p.SUBSCRIBE_SUCCESS="82",p.SUBSCRIBE_FAILED="84",p.UNSUBSCRIBE_SUCCESS="83",p.LOCAL_TRACK_CAPTURE_START="101",p.LOCAL_TRACK_CAPTURE_SUCCESS="102",p.LOCAL_TRACK_CAPTURE_FAILED="103",p.LOCAL_TRACK_PUBLISHED="104",p.LOCAL_TRACK_UNPUBLISHED="105",p.LOCAL_TRACK_REPLACED="106",p.SWITCH_DEVICE_SUCCESS="107",p.TRACK_MUTED="108",p.TRACK_UNMUTED="109",p.REMOTE_TRACK_SUBSCRIBED="110",p.REMOTE_TRACK_UNSUBSCRIBED="111",p.LOCAL_TRACK_RECAPTURE="112",p.LOCAL_AUDIO_STARTED="113",p.LOCAL_AUDIO_STOPPED="114",p.REMOTE_AUDIO_STARTED="115",p.REMOTE_AUDIO_STOPPED="116",p.LOCAL_TRACK_STOPPED="117",p.LOCAL_VIDEO_TRACK_PREPROCESSED="118",p.PLAY_TRACK_START="151",p.PLAYER_STATE_CHANGED="152",p.VIDEO_LOADED_DATA="153",p.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",p.AUDIO_CONTEXT_LONG_SUSPENDED="155",p.REMOTE_VIDEO_PLAY_START="156",p.REMOTE_VIDEO_PLAY_FINISH="157",p.SIGNAL_CONNECTION_STATE_CHANGED="201",p.PEER_CONNECTION_STATE_CHANGED="202",p.SINGLE_CONNECTION_STAT="203",p.SPC_RECONNECTED="204",p.HEARTBEAT_REPORT="251",p.RECEIVED_PUBLISHED_USER_LIST="252",p.REMOTE_PUBLISH_STATE_CHANGED="253",p.AUDIO_LEVEL_INTERVAL="260",p.NETWORK_QUALITY="261",p.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",p.QUALITY_LIMITATION_CHANGED="263",p.LOG="264",p.AUDIO_PROCESSOR_DEBUG="265",p.SSO_SWITCH="266",p.SEI_MESSAGE="267",p.USER_PAUSE_IN_PIP="268",p.USER_RESUME_IN_PIP="269",p.ENTER_PICTURE_IN_PICTURE="270",p.LEAVE_PICTURE_IN_PICTURE="271",p.SWITCH_ROOM_START="401",p.SWITCH_ROOM_SUCCESS="407",p.SWITCH_ROOM_FAILED="408",p),K=H,lA=new class{constructor(){G(this,"enable",!1),G(this,"ssoFailCount",0),S.on("22",A=>{let{schedule:e}=A;var o;(o=e?.config)!=null&&o.sso&&S.emit("266",{enable:!0})}),S.on("266",A=>{let{enable:e}=A;this.enable=e})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&S.emit("266",{enable:!1})}},SA=class KZ{constructor(){G(this,"_isEnableUploadLog",!0),G(this,"_localJoinedUser",new Map),G(this,"_queue",[]),G(this,"_timeoutId",-1),G(this,"_logLevel",1),G(this,"_logLevelToUpload",2),!SR&&!vR&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){S.on(K.JOIN_SCHEDULE_SUCCESS,e=>{let{schedule:o}=e;var n;(n=o?.config)!=null&&n.logLevelToUpload&&ru[o.config.logLevelToUpload]&&(this._logLevelToUpload=o.config.logLevelToUpload)}),S.on(K.JOIN_START,e=>{let{params:o}=e;this.addJoinedUser({userId:o.userId,sdkAppId:o.sdkAppId}),this.startUpload()}),S.on(K.LEAVE_SUCCESS,e=>{let{room:o}=e;this.deleteJoinedUser(o.userId)})}startUpload(){this._timeoutId===-1&&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&&this._localJoinedUser.size===0)return e;let o=0;for(;o<this._queue.length&&o!==50;o++){let n=this._queue[o];if(n.forAllJoinedClients)this._localJoinedUser.forEach(a=>{let{userId:I,sdkAppId:c}=a;e.map.has(I)?e.map.get(I).logs.push(n):e.map.set(I,{userId:I,sdkAppId:c,logs:[n]})});else if(Sr(n.userId)&&hr(n.sdkAppId)){let{userId:a,sdkAppId:I}=n;e.map.has(a)?e.map.get(a).logs.push(n):e.map.set(a,{userId:a,sdkAppId:I,logs:[n]})}}return e.map.size>0&&(e.splicedQueue=this._queue.splice(0,o)),e}upload(){return DA(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:e,splicedQueue:o}=this.getLogsToUpload();if(e.size===0)return;try{let a=[...e.values()];for(let I=0;I<a.length;I++){let{userId:c,sdkAppId:u,logs:d}=a[I],R={timestamp:jU(),sdkAppId:String(u),userId:c,version:il,log:d.map(Z=>Z.log).join(`
`)},k=JSON.stringify(R),_=lA.enable?Iu(R,2002,u):k;yield this.uploadLogWithRetry(_,u,_ instanceof Uint8Array,k),d.forEach(Z=>Z.uploaded=!0)}}catch{}let n=o.filter(a=>!a.uploaded);n.length>0&&(this._queue=n.concat(this._queue))})}uploadLogWithRetry(e,o,n,a){return Kf({retryFunction:()=>cu({url:dh(o,Xg.LOG),body:e,timeout:5e3,priority:"low"}).then(I=>{n&&I.data!=="ok"&&(lA.handleUploadFailed(),this.uploadLogWithRetry(a,o,!1,a))}),settings:{retries:3,timeout:2e3},onError:I=>{let{retry:c}=I;c()}})()}getPrefix(e){let o=new Date;return o.setTime(gh()),"[".concat(lN(o),"] <").concat(ru[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){Ee(ru[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(Sr(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch{return""}}addLogToQueue(e,o){let n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=arguments.length>3?arguments[3]:void 0,I=arguments.length>4?arguments[4]:void 0,c={log:o.reduce((u,d)=>"".concat(u," ").concat(this.logChunkToString(d)).trim(),""),level:e,userId:a,sdkAppId:I,forAllJoinedClients:n};S.emit(K.LOG,{log:c}),this._isEnableUploadLog&&e>=this._logLevelToUpload&&this._queue.push(c)}log(e,o){let n=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],a=arguments.length>3?arguments[3]:void 0,I=arguments.length>4?arguments[4]:void 0;var c;if(o.unshift(this.getPrefix(e)),this.addLogToQueue(e,o,n,a,I),e<this._logLevel)return;let u=((c=ru[e])==null?void 0:c.toLowerCase())||"info";KZ.PRINT_LOG_TAG?console[u]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...o):console[u](...o)}debug(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(1,o)}info(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(2,o)}warn(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(3,o)}error(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];this.log(4,o)}createLogger(e){if(e.parent instanceof VN){let o=e,{parent:n}=o,a=PU(o,["parent"]),I=new VN(a);return I.bindParent(n),I}return new VN(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),o=e?Number(e):-1;ru[o]&&(this._logLevelToUpload=o)}getQueue(){return this._queue}};G(SA,"PRINT_LOG_TAG",!(Ea||ra||UO));var nA=new SA,hA=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,A=>{let e=16*Math.random()|0;return(A=="x"?e:3&e|8).toString(16)})},yA=new class{constructor(){G(this,"_prefix","TRTC"),G(this,"_queue",new Map)}getRealKey(A){return"".concat(this._prefix,"_").concat(A)}checkStorage(){Bu()&&(setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(A=>{if(A.startsWith(this._prefix))try{let e=localStorage.getItem(A);if(!e)return!1;let o=JSON.parse(e);if(o&&o.expiresIn<Date.now())return!0}catch{return!1}return!1}).forEach(A=>localStorage.removeItem(A)))}doFlush(){if(Bu())try{for(let[A,e]of this._queue)localStorage.setItem(A,JSON.stringify(e))}catch(A){nA.warn(A)}}getItem(A){if(!Bu())return null;try{let e=localStorage.getItem(this.getRealKey(A));if(!e)return null;let o=JSON.parse(e);return o&&o.expiresIn>=Date.now()?o.value:null}catch(e){nA.warn(e)}}setItem(A,e){if(Bu())try{let o={expiresIn:Date.now()+GR,value:e};this._queue.set(this.getRealKey(A),o)}catch(o){nA.warn(o)}}deleteItem(A){if(!Bu())return!1;try{return A=this.getRealKey(A),this._queue.delete(A),localStorage.removeItem(A),!0}catch(e){return nA.warn(e),!1}}clear(){if(Bu())try{localStorage.clear()}catch(A){nA.warn(A)}}},kA={};XC(kA,{HTTPS_API:()=>MT,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Ax,IS_GET_CAPABILITIES_SUPPORTED:()=>$O,IS_GET_SETTINGS_SUPPORTED:()=>Jh,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>GT,IS_INSERTABLE_STREAM_SUPPORTED:()=>xQ,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>Du,IS_RTC_RTP_SENDER_SUPPORTED:()=>tC,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>MM,IS_SEI_SUPPORTED:()=>kT,IS_SPC_SUPPORTED:()=>Qm,basis:()=>tx,capabilityCheck:()=>LT,checkSystemRequirementsInternal:()=>yT,decodeSupportStatus:()=>DT,detectH264SupportedByFakeStreaming:()=>ZO,detectVideoCodecCapabilities:()=>hm,detectVideoDecoderCapabilities:()=>UT,detectVideoEncoderCapabilities:()=>FT,encodeSupportStatus:()=>lm,getBrowserInfo:()=>cm,getDisplayResolution:()=>rE,getH264ProfileLevelIds:()=>rx,isAddTransceiverSupported:()=>sl,isBrowserSupported:()=>fT,isCanvasCaptureStreamAPISupported:()=>Bm,isCanvasSmallStreamSupported:()=>RM,isGetReceiversSupported:()=>Ph,isGetSendersSupported:()=>AI,isGetTransceiversSupported:()=>mu,isGetUserMediaSupported:()=>wT,isMediaDevicesSupported:()=>mT,isMediaSessionSupported:()=>ex,isMediaStreamTrackGeneratorSupported:()=>Bq,isMediaStreamTrackProcessorSupported:()=>Em,isReplaceTrackSupported:()=>XO,isRequestVideoFrameCallbackSupported:()=>YQ,isSIMDSupported:()=>dm,isScaleResolutionDownBySupported:()=>vT,isScreenCaptureApiAvailable:()=>OQ,isSelectedCandidatePair:()=>Cm,isSetParametersSupported:()=>TT,isSetSinkIdSupported:()=>Qq,isSmallStreamSupported:()=>um,isStopTransceiverSupported:()=>vn,isTRTCSupported:()=>uq,isUnifiedPlanDefault:()=>NT,isUsedInHttpProtocol:()=>wI,isWebAudioSupported:()=>ST,isWebCodecSupported:()=>wM,isWebCodecsSupported:()=>yM,isWebRTCSupported:()=>Hh,isWebTransportSupported:()=>Vh});var oe={};XC(oe,{AUDIO_LEVEL_SCALE:()=>iE,AlphaStitchingType:()=>Oh,AudioCodecPipelineType:()=>fu,AudioDecoderDowngradeState:()=>sm,AudioPlayerMode:()=>pM,AudioType:()=>VO,BASIC_TYPE:()=>uT,BannedReason:()=>wa,CONNECTION_CLOSED_REASON:()=>it,CheckPermissionType:()=>Hr,ClientEvent:()=>de,CodecType:()=>gm,ConnectionEvent:()=>Li,ConnectionState:()=>bh,DECODE_FAILED_ERROR_CODE:()=>Im,DenoiserMode:()=>LQ,DeviceType:()=>QT,FacingMode:()=>lT,FrameWorkType:()=>ni,LeaveReason:()=>CT,LocalTrackEvent:()=>Ri,MULTI_VIDEO_DATA_TYPE:()=>Uh,MediaType:()=>dM,MediaTypeLabel:()=>lq,MonitorEventId:()=>Hs,MutedFlag:()=>br,NetworkQualityValue:()=>uc,PlayerState:()=>ui,ReceiveMode:()=>fg,RemoteStreamType:()=>Fh,RemoteTrackEvent:()=>tr,RoomEvent:()=>ci,SMALL_MODE:()=>UQ,SceneNumber:()=>na,StreamEvent:()=>xt,StreamType:()=>pu,SubscribeMediaType:()=>BT,TIMER_TYPE:()=>mM,TRACK_ACTION:()=>ET,TRACK_KIND:()=>du,TrackEvent:()=>Fi,UserRole:()=>ws,UserRoleNumber:()=>zi,VideoCodec:()=>Vs,VideoCodecPipelineType:()=>FQ,VideoContentHint:()=>fM,VideoDecoderDowngradeState:()=>Lh,VideoPlayerMode:()=>hM,VideoType:()=>hu});var ee,PA,ve,dt,fe,Be,tA,Le,he,Zt,pt,ni=(A=>(A[A.WEBRTC=30]="WEBRTC",A[A.WASM=37]="WASM",A))(ni||{}),Li=((pt=Li||{}).TRACK_ADDED="track-added",pt.TRACK_UPDATED="track-updated",pt.TRACK_SUBSCRIBED="track-subscribed",pt.STREAM_ADDED="stream-added",pt.STREAM_REMOVED="stream-removed",pt.STREAM_UPDATED="stream-updated",pt.STREAM_PUBLISHED="stream-published",pt.STREAM_SUBSCRIBED="stream-subscribed",pt.STREAM_UNSUBSCRIBED="stream-unsubscribed",pt.STATE_CHANGED="state-changed",pt.ERROR="error",pt.CONNECTION_STATE_CHANGED="connection-state-changed",pt.FIREWALL_RESTRICTION="firewall-restriction",pt.SEI_MESSAGE="sei-message",pt.CLOSED="closed",pt),it=(A=>(A.REMOTE_LEAVE="remote user exitRoom",A.REMOTE_UNPUBLISH="remote user unpublished",A.LOCAL_LEAVE="you exitRoom",A.LOCAL_UNPUBLISH="you unpublished",A.LOCAL_UNSUBSCRIBE="you unsubscribed",A.SWITCH_ROLE="you switch role to audience",A))(it||{}),de=((Zt=de||{}).STREAM_ADDED="stream-added",Zt.STREAM_REMOVED="stream-removed",Zt.STREAM_UPDATED="stream-updated",Zt.STREAM_SUBSCRIBED="stream-subscribed",Zt.CONNECTION_STATE_CHANGED="connection-state-changed",Zt.PEER_JOIN="peer-join",Zt.PEER_LEAVE="peer-leave",Zt.MUTE_AUDIO="mute-audio",Zt.MUTE_VIDEO="mute-video",Zt.UNMUTE_AUDIO="unmute-audio",Zt.UNMUTE_VIDEO="unmute-video",Zt.CLIENT_BANNED="client-banned",Zt.NETWORK_QUALITY="network-quality",Zt.AUDIO_VOLUME="audio-volume",Zt.SEI_MESSAGE="sei-message",Zt.ERROR="error",Zt),xt=((he=xt||{}).PLAYER_STATE_CHANGED="player-state-changed",he.SCREEN_SHARING_STOPPED="screen-sharing-stopped",he.CONNECTION_STATE_CHANGED="connection-state-changed",he.DEVICE_AUTO_RECOVERED="device-auto-recovered",he.ERROR="error",he),Ri=((Le=Ri||{}).DEVICE_AUTO_RECOVERED="1",Le.DEVICE_RECOVER_FAILED="5",Le.DEVICE_CHANGED="2",Le.ERROR="3",Le.PUBLISH_STATE_CHANGED="4",Le.ENCODE_FAILED="6",Le.TRACK_ENDED="7",Le.RENDER="render",Le),ui=(A=>(A.PAUSED="PAUSED",A.PLAYING="PLAYING",A.STOPPED="STOPPED",A))(ui||{}),ci=((tA=ci||{}).PEER_JOIN="peer-join",tA.PEER_LEAVE="peer-leave",tA.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",tA.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",tA.BANNED="banned",tA.NETWORK_QUALITY="network-quality",tA.AUDIO_VOLUME="audio-volume",tA.SEI_MESSAGE="sei-message",tA.ERROR="error",tA.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",tA.REMOTE_PUBLISHED="remote-published",tA.REMOTE_UNPUBLISHED="remote-unpublished",tA.FIREWALL_RESTRICTION="firewall-restriction",tA.HEARTBEAT_REPORT="heartbeat-report",tA.CUSTOM_MESSAGE="custom-message",tA.LAYER_DATA="layerData",tA.FIRST_VIDEO_FRAME="first-video-frame",tA.FIRST_FRAME_RENDER="first-frame-render",tA.DUMP="dump",tA.AUDIO_FRAME="audio-frame",tA.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",tA.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",tA.NTP_TIME_UPDATED="ntp-time-updated",tA.DATA_CHANNEL_MESSAGE="data-channel-message",tA.ASR_ROBOT_PEER_JOIN="asr-robot-peer-join",tA.ASR_ROBOT_PEER_LEAVE="asr-robot-peer-leave",tA),Fi=((Be=Fi||{}).PLAYER_STATE_CHANGED="player-state-changed",Be.MUTE="mute",Be.UNMUTE="unmute",Be.ERROR="error",Be.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",Be.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",Be.FIRST_VIDEO_FRAME="first-video-frame",Be.FIRST_FRAME_RENDER="first-frame-render",Be.VIDEO_SIZE_CHANGED="video-size-changed",Be),tr=(A=>(A.DECODE_FAILED="decode-failed",A.DECODE_FAILED_DURING_CALL="decode-failed-during-call",A.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",A.REMOTE_PUBLISH_CHANGED="remote-publish-changed",A.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",A))(tr||{}),br=((fe=br||{})[fe.VIDEO=1]="VIDEO",fe[fe.SMALL=2]="SMALL",fe[fe.AUX=4]="AUX",fe[fe.AUDIO=8]="AUDIO",fe[fe.VIDEO_MUTE=16]="VIDEO_MUTE",fe[fe.AUX_MUTE=32]="AUX_MUTE",fe[fe.AUDIO_MUTE=64]="AUDIO_MUTE",fe),na=(A=>(A[A.RTC=1]="RTC",A[A.LIVE=2]="LIVE",A))(na||{}),zi=(A=>(A[A.ANCHOR=20]="ANCHOR",A[A.AUDIENCE=21]="AUDIENCE",A))(zi||{}),ws=(A=>(A.ANCHOR="anchor",A.AUDIENCE="audience",A))(ws||{}),bh=(A=>(A.CONNECTED="CONNECTED",A.DISCONNECTED="DISCONNECTED",A.CONNECTING="CONNECTING",A.RECONNECTED="RECONNECTED",A.RECONNECTING="RECONNECTING",A))(bh||{}),sm=((dt=sm||{}).INITIALIZED="INITIALIZED",dt.STARTING="STARTING",dt.STARTED="STARTED",dt.FAILED="FAILED",dt),Lh=(A=>(A.INITIALIZED="INITIALIZED",A.STARTING="STARTING",A.STARTED="STARTED",A.FAILED="FAILED",A))(Lh||{}),du=(A=>(A.AUDIO="audio",A.VIDEO="video",A.AUXILIARY="auxVideo",A))(du||{}),ET=(A=>(A.ADD="add",A.REMOVE="remove",A))(ET||{}),dM=(A=>(A[A.NULL=0]="NULL",A[A.AUDIO=1]="AUDIO",A[A.AUX_VIDEO=2]="AUX_VIDEO",A[A.BIG_VIDEO=4]="BIG_VIDEO",A[A.SMALL_VIDEO=8]="SMALL_VIDEO",A))(dM||{}),lq={1:"audio",2:"auxVideo",4:"video"},VO=((ve=VO||{})[ve.opus=111]="opus",ve),hu=(A=>(A[A.h264=100]="h264",A[A.vp8=101]="vp8",A))(hu||{}),pu=(A=>(A.Big="big",A.Small="small",A))(pu||{}),Fh=(A=>(A.Main="main",A.Aux="auxiliary",A))(Fh||{}),Uh=(A=>(A[A.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",A[A.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",A[A.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",A[A.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",A[A.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",A))(Uh||{}),Hs=((PA=Hs||{})[PA.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",PA[PA.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",PA[PA.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",PA[PA.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",PA[PA.MUTE_AUDIO=32772]="MUTE_AUDIO",PA[PA.MUTE_VIDEO=32773]="MUTE_VIDEO",PA[PA.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",PA[PA.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",PA[PA.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",PA[PA.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",PA[PA.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",PA[PA.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",PA[PA.SWITCH_CAMERA=32780]="SWITCH_CAMERA",PA[PA.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",PA[PA.REPLACE_VIDEO=32782]="REPLACE_VIDEO",PA[PA.REPLACE_AUDIO=32783]="REPLACE_AUDIO",PA[PA.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",PA[PA.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",PA[PA.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",PA[PA.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",PA[PA.JOIN=32788]="JOIN",PA[PA.LEAVE=32789]="LEAVE",PA[PA.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",PA[PA.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",PA[PA.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",PA[PA.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",PA[PA.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",PA[PA.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",PA[PA.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",PA[PA.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",PA[PA.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",PA[PA.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",PA[PA.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",PA[PA.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",PA[PA.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",PA[PA.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",PA[PA.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",PA[PA.PUBLISH_AUX=32805]="PUBLISH_AUX",PA[PA.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",PA[PA.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",PA[PA.VIDEO_ENCODER=4004]="VIDEO_ENCODER",PA[PA.VIDEO_DECODER=4005]="VIDEO_DECODER",PA),uc=(A=>(A[A.UNKNOWN=0]="UNKNOWN",A[A.EXCELLENT=1]="EXCELLENT",A[A.GOOD=2]="GOOD",A[A.POOR=3]="POOR",A[A.BAD=4]="BAD",A[A.VERY_BAD=5]="VERY_BAD",A[A.DISCONNECTED=6]="DISCONNECTED",A))(uc||{}),fg=(A=>(A[A.MANUAL=0]="MANUAL",A[A.AUTO_AUDIO=1]="AUTO_AUDIO",A[A.AUTO_VIDEO=2]="AUTO_VIDEO",A[A.AUTO_ALL=3]="AUTO_ALL",A))(fg||{}),lT=(A=>(A.user="user",A.environment="environment",A))(lT||{}),hM=(A=>(A[A.ELEMENT=0]="ELEMENT",A[A.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",A[A.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",A))(hM||{}),pM=(A=>(A[A.ELEMENT=0]="ELEMENT",A[A.CONTEXT=1]="CONTEXT",A))(pM||{}),wa=(A=>(A.BANNED="banned",A.KICK="kick",A.USER_TIME_OUT="user_time_out",A.ROOM_DISBAND="room_disband",A))(wa||{}),CT=(A=>(A[A.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",A[A.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",A[A.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",A[A.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",A[A.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",A[A.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",A[A.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",A[A.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",A[A.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",A))(CT||{}),iE=1e8,LQ=(A=>(A[A.NORMAL=0]="NORMAL",A[A.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",A))(LQ||{}),BT=class{constructor(){G(this,"mediaType",0)}set audio(A){A?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(1&this.mediaType)}set video(A){A?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(4&this.mediaType)}set auxiliary(A){A?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(2&this.mediaType)}set smallVideo(A){A?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(8&this.mediaType)}},uT=(A=>(A.String="string",A.Number="number",A.Boolean="boolean",A.Array="array",A.Object="object",A))(uT||{}),Vs=(A=>(A.H264="h264",A.H265="h265",A.VP8="vp8",A.VP9="vp9",A.AV1="av1",A))(Vs||{}),FQ=(A=>(A[A.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",A[A.DUMP=1]="DUMP",A[A.SEI=2]="SEI",A[A.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",A))(FQ||{}),fu=(A=>(A[A.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",A[A.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",A[A.DUMP=2]="DUMP",A[A.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",A))(fu||{}),gm=(A=>(A.WebRTC="webrtc",A.WebCodecs="webcodecs",A.WebAssembly="webassembly",A))(gm||{}),Im=((ee=Im||{})[ee.SUCCESS=0]="SUCCESS",ee[ee.FAILED=1]="FAILED",ee[ee.WEBCODEC_INIT=2]="WEBCODEC_INIT",ee[ee.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",ee[ee.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",ee[ee.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",ee[ee.WASM_INIT=6]="WASM_INIT",ee[ee.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",ee[ee.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",ee[ee.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",ee[ee.TEST=10]="TEST",ee[ee.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",ee),fM=(A=>(A.NONE="",A.DETAIL="detail",A.MOTION="motion",A.TEXT="text",A))(fM||{}),mM=(A=>(A.INTERVAL="interval",A.TIMEOUT="timeout",A.RAF="raf",A.RIC="ric",A.INTERVAL_IN_WORKER="intervalInWorker",A))(mM||{}),UQ=(A=>(A.CANVAS="canvas",A.API="api",A))(UQ||{}),Hr=(A=>(A[A.NONE=0]="NONE",A[A.MICROPHONE=1]="MICROPHONE",A[A.CAMERA=2]="CAMERA",A[A.BOTH=3]="BOTH",A))(Hr||{}),QT=(A=>(A.CAMERA="camera",A.MICROPHONE="microphone",A))(QT||{}),Oh=(A=>(A[A.none=0]="none",A[A.horizontal=1]="horizontal",A[A.vertical=2]="vertical",A))(Oh||{}),Mi={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",SWITCH_PLAYBACK_QUALITY_TIMEOUT:"SWITCH_PLAYBACK_QUALITY_TIMEOUT"},ts={AVOID_REPEATED_CALL:A=>"previous ".concat(A.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' is a required param when calling ").concat(n,"(), received: ").concat(a,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:o,fnName:n,value:a}=A,I="".concat(e||o.name),c="";return c=Array.isArray(o.type)?o.type.join("|"):o.type,"'".concat(I,"' must be type of ").concat(c," when calling ").concat(n,"(), received type: ").concat(ya(a),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' cannot be '").concat(a,"' when calling ").concat(n,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:o,fnName:n,value:a}=A,I="".concat(e||o.name),c="".concat(o.instanceOf.name||o.instanceOf);return"'".concat(I,"' must be instanceof ").concat(c," when calling ").concat(n,"(), received type: ").concat(ya(a),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' must be one of ").concat(o.values.join("|")," when calling ").concat(n,"(), received: ").concat(a,".")},INVALID_PARAMETER_MIN(A){let{key:e,rule:o,fnName:n,value:a}=A;return"the min value of ".concat(e||o.name," is ").concat(o.min,", received: ").concat(a,".")},INVALID_PARAMETER_MAX(A){let{key:e,rule:o,fnName:n,value:a}=A;return"the max value of ".concat(e||o.name," is ").concat(o.max,", received: ").concat(a,".")},API_CALL_TIMEOUT:A=>"".concat(A.commandDesc||A.command," timeout observed."),SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED:A=>"SignalChannel setup failure: (errorCode: ".concat(A.errorCode,", errorMsg: ").concat(A.errorMsg," })."),ERROR_MESSAGE(A){let e="".concat(A.type," failed");return A.message&&(e="".concat(e,": ").concat(A.message,".")),e},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED:A=>"exchange sdp failed ".concat(A.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:A=>"'".concat(A,"' must be validate string when useStringRoomId is true."),INVALID_ROOMID_INTEGER:A=>"'".concat(A,"' 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(A){let{error:e,code:o}=A;return"Failed to join room - ".concat(e," code: ").concat(o)},REJOIN_ROOM_FAILED:A=>"reJoin room: ".concat(A.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:A=>"duplicate ".concat(A," stream publishing, please unpublish your prev ").concat(A," 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(A){let{message:e,userId:o,streamType:n}=A;return"failed to subscribe ".concat(o," ").concat(n," stream, reason: ").concat(e,".")},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:A=>"switchRole failed, errCode: ".concat(A.code," errMsg: ").concat(A.message,"."),CLIENT_BANNED:A=>"client was banned because of ".concat(A.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:A=>"startPublishCDNStream failed, errMsg: ".concat(A.message,"."),STOP_PUBLISH_CDN_FAILED:A=>"stopPublishCDNStream failed, errMsg: ".concat(A.message,"."),INVALID_STREAM_ID:A=>"'".concat(A,"' 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:A=>"cannot replace ".concat(A.kind," track because stream has not ").concat(A.kind," track"),NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED:A=>"startMixTranscode failed, errMsg: ".concat(A.message,"."),STOP_MIX_TRANSCODE_FAILED:A=>"stopMixTranscode failed, errMsg: ".concat(A.message,"."),MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' cannot be less than 0 when calling ").concat(n,"().")},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:A=>"'".concat(A,"' 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:A=>{let{key:e,fnName:o}=A;return"'".concat(e,"' is not found in the document object when calling ").concat(o,"().")},INVALID_ELEMENT_ID_TYPE:A=>{let{key:e,fnName:o,type:n}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(o,"(), received: ").concat(n,".")},PLAY_FAILED:A=>"".concat(A.media," play failed, browser exception: ").concat(A.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:A=>"".concat(A,"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:A=>"".concat(A.signalResponse," failed, response code is ").concat(A.code," , errMsg: ").concat(A.message,"."),CATCH_HANDLER_ERROR(A){let{name:e,event:o}=A;return"an error was caught in ".concat(e,".on('").concat(o,"', handler), please check your code in 'handler'.")},API_NOT_EXIST(A){let{name:e}=A;return"experimental api ".concat(e," does not exist.")},REPEAT_JOIN:A=>"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(A){let{funName:e}=A;return"failed to call ".concat(e,"() because client was destroyed.")},SEI_NOT_SUPPORT:A=>"not support to sendSEIMessage".concat(A===!1?" without using h264 codec":""),SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:A=>{let{isSize:e,name:o,timesInSecond:n,maxSizeInSecond:a}=A;return"api ".concat(o," call ").concat(e?"size":"times"," is over ").concat(e?"".concat(a," bytes"):n," in a second.")},CONNECTION_ABORTED:A=>"connection aborted due to: ".concat(A),API_CALL_ABORTED(A){let e;return e=A.message.includes("REMOTE_STREAM_NOT_EXIST")?"Subscribe ".concat(A.userId," ").concat(A.streamType," stream aborted, reason: remote user ").concat(A.userId," unpublished stream."):"API aborted, reason: ".concat(A.message),e},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:A=>"'streamType' is required when 'userId' is not '*', calling ".concat(A,"()"),SWITCH_PLAYBACK_QUALITY_TIMEOUT:A=>"switchPlaybackQuality timeout: waiting for first frame of user ".concat(A.userId,".")},qO=(A,e)=>e?"".concat($C,"/").concat(A,"/").concat(e):"".concat($C,"/").concat(A,"/index.html"),dT=()=>{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 A=localStorage==null?void 0:localStorage.getItem(Sf);if(A){A=JSON.parse(A);let e=document.createElement("script");e.type="text/javascript",e.text=A.message,document.body.appendChild(e);let o=window.TRTC_ERROR_INFO,n=window.TRTC_ERROR_LINK;return document.body.removeChild(e),{TRTC_ERROR_INFO:o,TRTC_ERROR_LINK:n}}return{}};function Wi(A){let{key:e,data:o,link:n,addDocLink:a=!0}=A,I="",c="",u="";$n(ts[e])?I=ts[e](o):Sr(ts[e])&&(I=ts[e]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:R}=dT();n?u="".concat(n.className,".html#").concat(n.fnName):R&&R[e]&&($n(R[e])?u=R[e](o):Sr(R[e])&&(u=R[e]));let k=I;return rl()&&(d&&d[e]&&($n(d[e])?c=d[e](o):Sr(d[e])&&(c=d[e])),c&&(k=a?"".concat(c,`
请查看文档: `).concat(qO("zh-cn",u),`
`):"".concat(c,`
`),k+=I)),a&&(k+=`
Refer to: `.concat(qO("en",u),`
`)),k}var Io,ir,hT=es(VV(),1),pT=class{constructor(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];G(this,"countMap",new Map),G(this,"distributionMap",new Map),G(this,"version"),G(this,"log",nA.createLogger({id:"kv"})),A&&(S.on("102",e=>{let{track:o,cost:n}=e;this.addSuccessEvent({key:o.kind===fA.AUDIO?501700:511700,cost:n})}),S.on("103",e=>{let{track:o,error:n}=e;this.addFailedEvent({key:o.kind===fA.AUDIO?501700:511700,error:n})}),S.on("266",e=>{let{enable:o}=e;this.log.info("".concat(o?"enable":"disable"," sso")),o?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(A,e){let o={msg_sdk_basic_info:{uint32_sdk_version:UN(this.version||il),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(n=>{let[a,I]=n;return{uint32_key:a,uint32_count:I}}),stats_distribution:[...this.distributionMap.entries()].map(n=>{let[a,I]=n;return{uint32_key:a,distribution_items:[...I.entries()].map(c=>{let[u,d]=c;return{uint32_item_key:u,uint32_item_value:d}})}}),str_user_sig:A,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),o}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(A){let e=+String(A).slice(-3);return e>=700&&e<799}isErrorCodeKey(A){let e=+String(A).slice(-3);return e>=600&&e<699}isCountKey(A){let e=+String(A).slice(-3);return e>=0&&e<599}isNumberKey(A){let e=+String(A).slice(-3);return e>=800&&e<899}addCount(A){let{key:e,useUV:o=!1}=A;this.isCountKey(e)?o&&this.countMap.has(e)||this.countMap.set(e,(this.countMap.get(e)||0)+1):this.log.debug("".concat(e," is not count key, last 3 number should be 0~599"))}addEnum(A){let{key:e,value:o,useUV:n=!0}=A;var a;if(!this.isEnumKey(e))return this.log.debug("".concat(e," is not enum key, last 3 number should be 700~799"));if(n&&this.countMap.has(e))return;this.countMap.set(e,(this.countMap.get(e)||0)+1);let I=((a=this.distributionMap)==null?void 0:a.get(e))||new Map;I.set(o,(I.get(o)||0)+1),this.distributionMap.set(e,I)}addNumber(A){let{key:e,value:o,split:n=100,useUV:a=!1,max:I=5e3}=A;var c;if(!this.isNumberKey(e))return this.log.debug("".concat(e," is not number key, last 3 number should be 800~899"));if(a&&this.countMap.has(e))return;o>I&&(o=I),this.countMap.set(e,(this.countMap.get(e)||0)+1);let u=((c=this.distributionMap)==null?void 0:c.get(e))||new Map,d=0;if(hr(n))d=Math.floor(o/n);else for(let R=n.length-1;R>0;R--)if(o>n[R]){d=R;break}u.set(d,(u.get(d)||0)+1),this.distributionMap.set(e,u)}addSuccessEvent(A){let{key:e,cost:o,timeKey:n,split:a}=A;if(e&&(this.addEnum({key:e,value:1,useUV:!1}),o)){let I=+String(e).slice(-3);I<800&&I>=700?this.addNumber({key:n||e+100,value:o,split:a}):n||this.log.debug("time stat ignored, ".concat(e))}}addFailedEvent(A){let{key:e,error:o}=A;if(!e)return;let n=Ge.UNKNOWN;o&&(hr(o)?n=o:(!Ee(o.extraCode)||!Ee(o.code))&&(n=o.extraCode||o.code)),this.addEnum({key:e,value:0,useUV:!1}),this.addEnum({key:e,value:Math.abs(n),useUV:!1})}},KO=((Io=KO||{})[Io.enterRoom=500700]="enterRoom",Io[Io.exitRoom=500701]="exitRoom",Io[Io.switchRole=500702]="switchRole",Io[Io.destroy=500703]="destroy",Io[Io.startLocalAudio=500704]="startLocalAudio",Io[Io.updateLocalAudio=500705]="updateLocalAudio",Io[Io.stopLocalAudio=500706]="stopLocalAudio",Io[Io.startLocalVideo=500707]="startLocalVideo",Io[Io.updateLocalVideo=500708]="updateLocalVideo",Io[Io.stopLocalVideo=500709]="stopLocalVideo",Io[Io.startScreenShare=500710]="startScreenShare",Io[Io.updateScreenShare=500711]="updateScreenShare",Io[Io.stopScreenShare=500712]="stopScreenShare",Io[Io.startRemoteVideo=500713]="startRemoteVideo",Io[Io.updateRemoteVideo=500714]="updateRemoteVideo",Io[Io.stopRemoteVideo=500715]="stopRemoteVideo",Io[Io.muteRemoteAudio=500716]="muteRemoteAudio",Io[Io.setRemoteAudioVolume=500717]="setRemoteAudioVolume",Io[Io.use=500718]="use",Io[Io.switchRoom=500719]="switchRoom",Io[Io.getPermissions=500720]="getPermissions",Io[Io.sendSEIMessage=5e5]="sendSEIMessage",Io[Io.sendCustomMessage=500001]="sendCustomMessage",Io),jO=(A=>(A[A.AudioMixer=550700]="AudioMixer",A[A.AIDenoiser=551700]="AIDenoiser",A[A.VirtualBackground=570700]="VirtualBackground",A[A.Beauty=571700]="Beauty",A[A.Watermark=572700]="Watermark",A[A.BasicBeauty=574700]="BasicBeauty",A[A.FaceDetector=575700]="FaceDetector",A[A.CDNStreaming=590700]="CDNStreaming",A[A.DeviceDetector=591700]="DeviceDetector",A[A.Debug=592700]="Debug",A[A.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",A[A.VideoMixer=594700]="VideoMixer",A[A.AudioProcessor=595700]="AudioProcessor",A[A.LEBPlayer=596700]="LEBPlayer",A[A.RealtimeTranscriber=597700]="RealtimeTranscriber",A))(jO||{}),xh=(A=>(A[A.AudioMixer=550701]="AudioMixer",A[A.AIDenoiser=551701]="AIDenoiser",A[A.VirtualBackground=570701]="VirtualBackground",A[A.Beauty=571701]="Beauty",A[A.Watermark=572701]="Watermark",A[A.BasicBeauty=574701]="BasicBeauty",A[A.FaceDetector=575701]="FaceDetector",A[A.CDNStreaming=590701]="CDNStreaming",A[A.DeviceDetector=591701]="DeviceDetector",A[A.Debug=592701]="Debug",A[A.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",A[A.VideoMixer=594701]="VideoMixer",A[A.AudioProcessor=595701]="AudioProcessor",A[A.LEBPlayer=596701]="LEBPlayer",A[A.RealtimeTranscriber=597701]="RealtimeTranscriber",A))(xh||{}),DM=(A=>(A[A.AudioMixer=550702]="AudioMixer",A[A.AIDenoiser=551702]="AIDenoiser",A[A.VirtualBackground=570702]="VirtualBackground",A[A.Beauty=571702]="Beauty",A[A.Watermark=572702]="Watermark",A[A.BasicBeauty=574702]="BasicBeauty",A[A.FaceDetector=575702]="FaceDetector",A[A.CDNStreaming=590702]="CDNStreaming",A[A.DeviceDetector=591702]="DeviceDetector",A[A.Debug=592702]="Debug",A[A.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",A[A.VideoMixer=594702]="VideoMixer",A[A.AudioProcessor=595702]="AudioProcessor",A[A.LEBPlayer=596702]="LEBPlayer",A[A.RealtimeTranscriber=597702]="RealtimeTranscriber",A))(DM||{}),Yh=((ir=Yh||{})[ir.DECODER_TYPE=514700]="DECODER_TYPE",ir[ir.DECODER_HW_SW=514701]="DECODER_HW_SW",ir[ir.DECODE_RESULT=514702]="DECODE_RESULT",ir[ir.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",ir[ir.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",ir[ir.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",ir[ir.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",ir[ir.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",ir[ir.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",ir[ir.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",ir[ir.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",ir[ir.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",ir[ir.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",ir[ir.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",ir[ir.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",ir[ir.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",ir[ir.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",ir[ir.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",ir[ir.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",ir),Cq=new pT(!0),oB=new pT(!1),ct=Cq,co={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},WO=new Map([[Yr,["Firefox",Wf]],[wh,["Edg",jN]],[BM,["Chrome",uM]],[Ma,["Safari",Cu]],[eE,["TBS",zN]],[SQ,["XWEB",ZN]],[Eu&&wQ,["WeChat",XN]],[cM,["QQ(Win)",$N]],[Zf,["QQ(Mobile)",Sh]],[vQ,["QQ(Mobile X5)",Sh]],[Xf,["QQ(Mac)",AT]],[EM,["QQ(iPad)",$f]],[lM,["MI",NQ]],[iB,["HW",rT]],[Am,["Samsung",nT]],[em,["OPPO",aT]],[tm,["VIVO",im]],[Mh,["EDGE",KN]],[zf,["SogouMobile",gM]],[IM,["Sogou",WN]]]);function cm(){let A=WO.get(!0);return{browserName:A?A[0]:"unknown",browserVersion:A?A[1]:"unknown"}}var fT=function(){return!(tT||Mh||wh&&sM<80||Yr&&aM<56)},yM=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(A=>A in window)},mT=function(){if(!navigator.mediaDevices)return wI()||nA.error(ts.NOT_SUPPORTED_MEDIA),!1;let A=["getUserMedia","enumerateDevices"];return A.filter(e=>e in navigator.mediaDevices).length===A.length},zO=!1;function wI(){return location.protocol==="http:"&&!GQ&&(zO||nA.error(Wi({key:Mi.NOT_SUPPORTED_HTTP})),zO=!0,!0)}var Em=function(){return window?.OffscreenCanvas&&window?.MediaStreamTrackProcessor&&window?.MediaStreamTrackGenerator},Bq=function(){return!(window==null||!window.MediaStreamTrackGenerator)},lm=function(){return DA(this,null,function*(){var A,e,o;if(co.detail.isH264EncodeSupported&&co.detail.isVp8EncodeSupported)return{isH264EncodeSupported:co.detail.isH264EncodeSupported,isVp8EncodeSupported:co.detail.isVp8EncodeSupported,isH265EncodeSupported:co.detail.isH265EncodeSupported};let n,a=!1,I=!1,c=!1;try{let u=new RTCPeerConnection,d=document.createElement(fA.CANVAS);d.getContext("2d");let R=d.captureStream(0);return u.addTrack(R.getVideoTracks()[0],R),n=yield u.createOffer(),a=((A=n.sdp)==null?void 0:A.toLowerCase().indexOf("h264"))!==-1,I=((e=n.sdp)==null?void 0:e.toLowerCase().indexOf("vp8"))!==-1,c=((o=n.sdp)==null?void 0:o.toLowerCase().indexOf("h265"))!==-1,u.close(),{isH264EncodeSupported:a,isVp8EncodeSupported:I,isH265EncodeSupported:c}}catch{return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},DT=function(){return DA(this,null,function*(){var A;if(co.detail.isH264DecodeSupported&&co.detail.isVp8DecodeSupported)return{isH264DecodeSupported:co.detail.isH264DecodeSupported,isVp8DecodeSupported:co.detail.isVp8DecodeSupported,isH265DecodeSupported:co.detail.isH265DecodeSupported};let e,o=!1,n=!1;try{let a=new RTCPeerConnection;sl()?(a.addTransceiver(fA.VIDEO,{direction:"recvonly"}),e=yield a.createOffer()):e=yield a.createOffer({offerToReceiveVideo:!0}),e.sdp.toLowerCase().indexOf("h264")!==-1&&(o=!0),e.sdp.toLowerCase().indexOf("vp8")!==-1&&(n=!0);let I=((A=e.sdp)==null?void 0:A.toLowerCase().indexOf("h265"))!==-1;return a.close(),{isH264DecodeSupported:o,isVp8DecodeSupported:n,isH265DecodeSupported:I}}catch{return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})},yT=ON(A=>DA(null,null,function*(){let e=Date.now(),o=Hh(),n=mT(),a=yM();if(co.detail.isWebRTCSupported=o,co.detail.isMediaDevicesSupported=n,co.detail.isWebCodecsSupported=a,co.detail.isScreenShareSupported=OQ(),co.detail.isSmallStreamSupported=um(),A===37)return Object.assign(co.detail,yield function(){return DA(this,null,function*(){return oE||(oE=new Promise(cA=>DA(null,null,function*(){let TA={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!yM())return void cA(TA);let JA=null,Ie=null,XA=null,Ft=()=>{XA&&clearTimeout(XA),JA=null,Ie=null};try{JA=document.createElement("canvas"),Ie=JA.getContext("2d"),JA.width=320,JA.height=240;let ie=0,ke=()=>{!Ie||!JA||(Ie.fillStyle="hsl(".concat(ie%360,", 50%, 50%)"),Ie.fillRect(0,0,JA.width,JA.height),Ie.fillStyle="white",Ie.font="20px Arial",Ie.fillText("Frame ".concat(ie),10,30),ie++)};XA=setTimeout(()=>{Ft(),cA(TA)},5e3);let Nt=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(Nt.map(Ut=>DA(null,null,function*(){let Ui,Oi={type:Ut.type,encodeSupported:!1,decodeSupported:!1};try{Ui=yield new Promise((or,xi)=>DA(null,null,function*(){try{let yo=new VideoEncoder({output:Vn=>{or(Vn),Oi.encodeSupported=!0},error:xi});yo.configure(Ut.encodeConfig),ke();let Sa=new VideoFrame(JA,{timestamp:0});yo.encode(Sa,{keyFrame:!0}),Sa.close(),yield yo.flush(),yo.close()}catch(yo){xi(yo)}}))}catch(or){return nA.warn("".concat(Ut.type," encoder error:"),or),Oi}try{yield new Promise((or,xi)=>DA(null,null,function*(){try{let yo=new VideoDecoder({output:Sa=>{Oi.decodeSupported=!0,or(0),Sa.close()},error:xi});yo.configure(Ut.decodeConfig),yo.decode(Ui),yield yo.flush(),yo.close()}catch(yo){xi(yo)}}))}catch(or){nA.warn("".concat(Ut.type," decoder error:"),or)}return Oi})))).forEach(Ut=>{Ut.type==="h264"?(TA.isH264EncodeSupported=Ut.encodeSupported,TA.isH264DecodeSupported=Ut.decodeSupported):Ut.type==="vp8"&&(TA.isVp8EncodeSupported=Ut.encodeSupported,TA.isVp8DecodeSupported=Ut.decodeSupported)}),Ft(),cA(TA)}catch(ie){Ft(),nA.warn("detectWebCodecsSupported failed:",ie),cA(TA)}})),oE)})}()),co.detail.isBrowserSupported=a,co.result=n&&a,co.result||nA.error("".concat(navigator.userAgent," ").concat(ZR(co.detail,!1))),bT(A),ct.addNumber({key:523800,value:Date.now()-e}),co;if(co.result&&co.detail.isH264EncodeSupported&&co.detail.isVp8EncodeSupported&&co.detail.isH265EncodeSupported&&co.detail.isH264DecodeSupported&&co.detail.isVp8DecodeSupported&&co.detail.isH265DecodeSupported)return co;let I=fT(),{encode:c,decode:u}=yield function(){return DA(this,null,function*(){let[cA,TA]=yield Promise.all([lm(),DT()]);return{encode:{h264:cA.isH264EncodeSupported,vp8:cA.isVp8EncodeSupported,h265:cA.isH265EncodeSupported},decode:{h264:TA.isH264DecodeSupported,vp8:TA.isVp8DecodeSupported,h265:TA.isH265DecodeSupported}}})}(),{h264:d,vp8:R}=c,{h264:k}=u,{h265:_}=c,{vp8:Z,h265:iA}=u;if(!d||!R){let cA=yield lm();nA.warn("detect encode again h264:".concat(d," vp8:").concat(R," result: ").concat(JSON.stringify(cA))),d=cA.isH264EncodeSupported,R=cA.isVp8EncodeSupported}if(d&&k&&ra&&Bc&&!SQ&&!eE&&(!em||tE!==115)){let{encode:cA,decode:TA}=yield ZO();d=cA,k=TA}return co.result=I&&o&&n&&(d||R)&&(k||Z),co.detail.isBrowserSupported=I,co.detail.isWebRTCSupported=o,co.detail.isH264EncodeSupported=d,co.detail.isVp8EncodeSupported=R,co.detail.isH265EncodeSupported=_,co.detail.isH264DecodeSupported=k,co.detail.isVp8DecodeSupported=Z,co.detail.isH265DecodeSupported=iA,co.result||nA.error("".concat(navigator.userAgent," ").concat(ZR(co.detail,!1))),bT(),ct.addNumber({key:523800,value:Date.now()-e}),co})),uq=function(){return co.result},OQ=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},Qq=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype,RT=null;function ZO(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;return DA(this,null,function*(){return RT||(RT=new Promise(e=>DA(null,null,function*(){let o={encode:!1,decode:!1},n=()=>{};try{let a=document.createElement("canvas"),I=a.getContext("2d");a.width=640,a.height=480;let c=setInterval(()=>{I.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},66),u=-1,d=-1;n=()=>{clearInterval(u),clearInterval(c),clearTimeout(d),k.close(),_.close(),R.getTracks().forEach(JA=>JA.stop())},d=setTimeout(()=>{n(),e(o)},A);let R=a.captureStream(),k=new RTCPeerConnection({}),_=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});k.addEventListener("icecandidate",JA=>_.addIceCandidate(JA.candidate)),_.addEventListener("icecandidate",JA=>k.addIceCandidate(JA.candidate)),k.addTrack(R.getVideoTracks()[0],R);let Z=yield k.createOffer();yield k.setLocalDescription(Z),yield _.setRemoteDescription(Z);let iA=yield _.createAnswer(),cA=hT.default.parse(iA.sdp),TA=cA.media[0].rtp.findIndex(JA=>JA.codec==="H264");cA.media[0].rtp=[cA.media[0].rtp[TA]],cA.media[0].fmtp=cA.media[0].fmtp.filter(JA=>JA.payload===cA.media[0].rtp[0].payload),cA.media[0].rtcpFb&&(cA.media[0].rtcpFb=cA.media[0].rtcpFb.filter(JA=>JA.payload===cA.media[0].rtp[0].payload)),iA.sdp=hT.default.write(cA),yield _.setLocalDescription(iA),yield k.setRemoteDescription(iA),u=setInterval(()=>DA(null,null,function*(){o.encode&&o.decode&&(n(),e(o));let[JA,Ie]=yield Promise.all([k.getSenders()[0].getStats(),_.getReceivers()[0].getStats()]);o.encode||JA.forEach(XA=>{XA.type==="outbound-rtp"&&(XA.mediaType===fA.VIDEO||XA.kind===fA.VIDEO)&&XA.bytesSent>0&&(o.encode=!0)}),o.decode||Ie.forEach(XA=>{XA.type==="inbound-rtp"&&(XA.mediaType===fA.VIDEO||XA.kind===fA.VIDEO)&&XA.bytesReceived>0&&(o.decode=!0)})}),100)}catch(a){n(),nA.warn("detectH264Supported failed",a),e({encode:!0,decode:!0})}})).then(e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&nA.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(eC)),e)),RT)})}var oE=null,MT=(A,e,o)=>{location.protocol==="http:"&&!GQ&&(A[e]=()=>{throw new Ct({code:Ge.INVALID_OPERATION,message:ts.NOT_SUPPORTED_HTTP})})},Cm=function(A){return!(A.type!=="candidate-pair"||!A.nominated||A.state!=="in-progress"&&A.state!=="succeeded")&&!(rn(A.selected)&&!A.selected)};function rE(){let A="";if(screen.width){let e=screen.width?screen.width*window.devicePixelRatio:"",o=screen.height?screen.height*window.devicePixelRatio:"";A+="".concat(e," * ").concat(o)}return A}function wT(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ST(){let A={isSupported:!1},e=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let o=0;o<e.length;o++)if(e[o]in window){A.isSupported=!0;break}return A.isSupported}function Bm(){return"captureStream"in HTMLCanvasElement.prototype}function RM(){return!(Eu||Ea||tE&&tE<63)&&!(!fT()||!Bm())}function vT(){return!(tE<74||Mh||al<11||aM<46)}function um(){return RM()||vT()}var NT=function(){if(Ee(window.RTCRtpTransceiver)||!sl()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let A=null,e=!1;try{A=new RTCPeerConnection({sdpSemantics:_f}),A.addTransceiver(fA.AUDIO),e=!0}catch{}return A?.close(),e};function Ph(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function AI(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function mu(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function sl(){return!(al===11&&!PO)&&"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var Qm=!(!sl()||Bc&&tE<86);function vn(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var tC="RTCRtpSender"in window;function XO(){return tC&&"replaceTrack"in window.RTCRtpSender.prototype}function TT(){return tC&&"setParameters"in window.RTCRtpSender.prototype&&AI()}var GT="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Jh=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,$O=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Ax=typeof InputDeviceInfo<"u"&&"getCapabilities"in InputDeviceInfo.prototype,xQ=tC&&"createEncodedStreams"in window.RTCRtpSender.prototype&&om()>=86,MM="RTCRtpScriptTransform"in window,kT=tC&&(xQ||MM),Hh=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(A=>A in window).length>0};function wM(){let A={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return Ee(window.AudioDecoder)||(A.AudioDecoder=!0),Ee(window.AudioEncoder)||(A.AudioEncoder=!0),Ee(window.VideoDecoder)||(A.VideoDecoder=!0),Ee(window.VideoEncoder)||(A.VideoEncoder=!0),Ee(window.ImageDecoder)||(A.ImageDecoder=!0),A}function ex(){return"mediaSession"in navigator&&!Ee(navigator.mediaSession.setActionHandler)}function Vh(){return!Ee(window.WebTransport)}function dm(){return typeof WebAssembly<"u"&&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 tx(){let A={browser:"".concat(uu.name,"/").concat(uu.version),os:Js(),displayResolution:rE(),isScreenShareSupported:OQ(),isWebRTCSupported:Hh(),isGetUserMediaSupported:wT(),isWebAudioSupported:ST(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:wM(),isMediaSessionSupported:ex(),isWebTransportSupported:Vh()};return navigator.userAgent.includes("miniProgram")&&(A.browser="mini/".concat(A.browser)),A}var _T="checkResult";function bT(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30;yA.setItem(_T+A,{ua:navigator.userAgent,checkResult:co})}function LT(A){wI();let e=yA.getItem(_T+A);e&&e.ua===navigator.userAgent&&e.checkResult&&function(o,n){return!!Xc(o)&&Object.keys(n).every(a=>a in o)}(e.checkResult.detail,co.detail)&&(co=e.checkResult),yT(A)}function YQ(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var Du="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function ix(A){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[A]}var ox=!1;function hm(){return DA(this,null,function*(){var A;try{if(ox||(A=navigator?.mediaCapabilities)==null||!A.encodingInfo)return;let e=_Q(),o=pg();if(e===0||o===0)return;ox=!0;let n=["H264","VP8","VP9","AV1","H265"],[a,I]=yield Promise.all([FT(n),UT(n)]);a&&Object.keys(a).forEach(d=>{let R=ix(d.toLowerCase());ct.addEnum({key:513707,value:+"".concat(R).concat(+a[d].supported).concat(+a[d].powerEfficient).concat(e).concat(o),useUV:!1})}),I&&Object.keys(I).forEach(d=>{let R=ix(d.toLowerCase());ct.addEnum({key:514713,value:+"".concat(R).concat(+I[d].supported).concat(+I[d].powerEfficient).concat(e).concat(o),useUV:!1})});let{sender:c,receiver:u}=rx();ct.addEnum({key:513708,value:+"".concat(e).concat(o).concat(+c.high),useUV:!1}),ct.addEnum({key:513709,value:+"".concat(e).concat(o).concat(+c.main),useUV:!1}),ct.addEnum({key:514714,value:+"".concat(e).concat(o).concat(+u.high),useUV:!1}),ct.addEnum({key:514715,value:+"".concat(e).concat(o).concat(+u.main),useUV:!1})}catch(e){nA.info("detectVideoCodecCapabilities failed",e)}})}function FT(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return DA(this,null,function*(){let I={};try{for(let c of A){let u=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:"video/".concat(c),width:e,height:o,bitrate:a,framerate:n}});I[c]=u}}catch{}return I})}function UT(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return DA(this,null,function*(){let I={};try{for(let c of A){let u=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:"video/".concat(c),width:e,height:o,bitrate:a,framerate:n}});I[c]=u}}catch{}return I})}function rx(){let A={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let e=RTCRtpSender.getCapabilities("video");e&&e.codecs&&e.codecs.filter(o=>o.mimeType.toLowerCase()==="video/h264").forEach(o=>{if(o.sdpFmtpLine){let n=o.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(n&&n[1])switch(n[1].slice(0,2)){case"42":A.sender.base=!0;break;case"4d":A.sender.main=!0;break;case"64":A.sender.high=!0}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let e=RTCRtpReceiver.getCapabilities("video");e&&e.codecs&&e.codecs.filter(o=>o.mimeType.toLowerCase()==="video/h264").forEach(o=>{if(o.sdpFmtpLine){let n=o.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(n&&n[1])switch(n[1].slice(0,2)){case"42":A.receiver.base=!0;break;case"4d":A.receiver.main=!0;break;case"64":A.receiver.high=!0}}})}}catch(e){nA.warn("get H264 profile levelId failed",e)}return A}var dq=es(hg(),1),pm=Symbol("instance"),fm=Symbol("cacheResult"),iC=class{constructor(A,e,o){this.oldState=A,this.newState=e,this.action=o,this.aborted=!1}abort(A){this.aborted=!0,PQ.call(A,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},SM=class extends Error{constructor(A,e,o){super(e),this.state=A,this.message=e,this.cause=o}},mm=new Map;function is(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return(n,a,I)=>{let c=o.action||a;if(!o.context){let d=mm.get(n)||[];mm.has(n)||mm.set(n,d),d.push({from:A,to:e,action:c})}let u=I.value;I.value=function(){let d=this;for(var R=arguments.length,k=new Array(R),_=0;_<R;_++)k[_]=arguments[_];if(o.context&&(d=Uo.get(typeof o.context=="function"?o.context.call(this,...k):o.context)),d.state===e)return o.sync?d[fm]:Promise.resolve(d[fm]);d.state instanceof iC&&d.state.action==o.abortAction&&d.state.abort(d);let Z=null;Array.isArray(A)?A.length==0?d.state instanceof iC&&d.state.abort(d):(typeof d.state!="string"||!A.includes(d.state))&&(Z=new SM(d._state,"".concat(d.name," ").concat(c," to ").concat(e," failed: current state ").concat(d._state," not from ").concat(A.join("|")))):A!==d.state&&(Z=new SM(d._state,"".concat(d.name," ").concat(c," to ").concat(e," failed: current state ").concat(d._state," not from ").concat(A)));let iA=XA=>{if(o.fail&&o.fail.call(this,XA),o.sync){if(o.ignoreError)return XA;throw XA}return o.ignoreError?Promise.resolve(XA):Promise.reject(XA)};if(Z)return iA(Z);let cA=d.state,TA=new iC(cA,e,c);PQ.call(d,TA);let JA=XA=>{var Ft;return d[fm]=XA,TA.aborted||(PQ.call(d,e),(Ft=o.success)===null||Ft===void 0||Ft.call(this,d[fm])),XA},Ie=XA=>(PQ.call(d,cA,XA),iA(XA));try{let XA=u.apply(this,k);return function(Ft){return typeof Ft=="object"&&Ft&&"then"in Ft}(XA)?XA.then(JA).catch(Ie):o.sync?JA(XA):Promise.resolve(JA(XA))}catch(XA){return Ie(new SM(d._state,"".concat(d.name," ").concat(c," from ").concat(A," to ").concat(e," failed: ").concat(XA),XA instanceof Error?XA:new Error(String(XA))))}}}}var vM=typeof window<"u"&&window.__AFSM__?(A,e)=>{window.dispatchEvent(new CustomEvent(A,{detail:e}))}:typeof importScripts<"u"?(A,e)=>{postMessage({type:A,payload:e})}:()=>{};function PQ(A,e){let o=this._state;this._state=A;let n=A.toString();A&&this.emit(n,o),this.emit(Uo.STATECHANGED,A,o,e),this.updateDevTools({value:A,old:o,err:e instanceof Error?e.message:String(e)})}var Uo=class cC extends dq.default{constructor(e,o,n){super(),this.name=e,this.groupName=o,this._state=cC.INIT,e||(e=Date.now().toString(36)),n?Object.setPrototypeOf(this,n):n=Object.getPrototypeOf(this),o||(this.groupName=this.constructor.name);let a=n[pm];a?this.name=a.name+"-"+a.count++:n[pm]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),o=mm.get(e)||[],n=new Set,a=[],I=[],c=new Set,u=Object.getPrototypeOf(e);mm.has(u)&&(u.stateDiagram.forEach(R=>n.add(R)),u.allStates.forEach(R=>c.add(R))),o.forEach(R=>{let{from:k,to:_,action:Z}=R;typeof k=="string"?a.push({from:k,to:_,action:Z}):k.length?k.forEach(iA=>{a.push({from:iA,to:_,action:Z})}):I.push({to:_,action:Z})}),a.forEach(R=>{let{from:k,to:_,action:Z}=R;c.add(k),c.add(_),c.add(Z+"ing"),n.add("".concat(k," --> ").concat(Z,"ing : ").concat(Z)),n.add("".concat(Z,"ing --> ").concat(_," : ").concat(Z," 🟢")),n.add("".concat(Z,"ing --> ").concat(k," : ").concat(Z," 🔴"))}),I.forEach(R=>{let{to:k,action:_}=R;n.add("".concat(_,"ing --> ").concat(k," : ").concat(_," 🟢")),c.forEach(Z=>{Z!==k&&n.add("".concat(Z," --> ").concat(_,"ing : ").concat(_))})});let d=[...n];return Object.defineProperties(e,{stateDiagram:{value:d},allStates:{value:c}}),d}static get(e){let o;return typeof e=="string"?(o=cC.instances.get(e),o||cC.instances.set(e,o=new cC(e,void 0,Object.create(cC.prototype)))):(o=cC.instances2.get(e),o||cC.instances2.set(e,o=new cC(e.constructor.name,void 0,Object.create(cC.prototype)))),o}static getState(e){var o;return(o=cC.get(e))===null||o===void 0?void 0:o.state}updateDevTools(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};vM(cC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},e))}get state(){return this._state}set state(e){PQ.call(this,e)}};Uo.STATECHANGED="stateChanged",Uo.UPDATEAFSM="updateAFSM",Uo.INIT="[*]",Uo.ON="on",Uo.OFF="off",Uo.instances=new Map,Uo.instances2=new WeakMap;var NM=typeof window<"u",OT=NM&&window.requestIdleCallback||function(A){let e=Date.now();return setTimeout(()=>{A({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))})},1e3)},qs=NM&&window.cancelIdleCallback||function(A){clearTimeout(A)},JQ=NM&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),qh=class hc{static generateTaskID(){return this.currentTaskID++}static run(e,o,n){n!=null&&n.fps&&(n.delay=n.delay||Number((1e3/n.fps).toFixed(2))),n=bt(e==="interval"?{delay:2e3,count:0,backgroundTask:!0}:e==="ric"?{delay:1e4,count:0}:e==="raf"?{fps:60,delay:16.6,count:0,backgroundTask:!0}:{delay:2e3,count:0,backgroundTask:!0},n);let a=fi(bt({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:o},n),{delay:n.delay});return this.taskMap.set(a.taskID,a),this[e](a),a.taskID}static interval(e){return e.intervalID=setInterval(()=>{e.callback(),e.loopCount+=1,hc.isBreakLoop(e)},e.delay)}static intervalInWorker(e){hc.sharedWorker||(hc.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
const timers = new Map();
self.onmessage = function(e) {
const { taskId, delay, type } = e.data;
if (type === 'start') {
timers.set(taskId, setInterval(() => {
self.postMessage({ type: 'tick', taskId });
}, delay));
} else if (type === 'stop') {
clearInterval(timers.get(taskId));
timers.delete(taskId);
}
};
`],{type:"application/javascript"}))),hc.sharedWorker.onmessage=o=>{var n;if(o.data.type==="tick"){let a=hc.workerTasks.get(o.data.taskId);a&&(hc.isBreakLoop(a)?((n=hc.sharedWorker)==null||n.postMessage({type:"stop",taskId:a.taskID}),hc.workerTasks.delete(a.taskID)):(a.callback(),a.loopCount+=1))}}),hc.workerTasks.set(e.taskID,e),hc.sharedWorker.postMessage({taskId:e.taskID,delay:e.delay,type:"start"})}static timeout(e){let o=()=>{if(e.callback(),e.loopCount+=1,!hc.isBreakLoop(e))return e.timeoutID=setTimeout(o,e.delay)};return e.timeoutID=setTimeout(o,e.delay)}static ric(e){let o,n=ki(),a=()=>{if(o=ki()-n,o>=e.delay&&(n=ki()-Math.floor(o%e.delay),e.callback(),e.loopCount+=1),!hc.isBreakLoop(e))return e.ricID=OT(a,{timeout:e.delay})};return e.ricID=OT(a,{timeout:e.delay})}static raf(e){let o,n=ki(),a=()=>document.hidden&&e.backgroundTask?(o=ki()-n,n=ki(),e.callback(),e.loopCount+=1,hc.isBreakLoop(e)?void 0:e.timeoutID=setTimeout(a,e.delay-Math.floor(o%e.delay))):(o=ki()-n,o>=e.delay&&(n=ki()-Math.floor(o%e.delay),e.callback(),e.loopCount+=1),hc.isBreakLoop(e)?void 0:e.rafID=requestAnimationFrame(a));if(e.rafID=requestAnimationFrame(a),e.backgroundTask){let I=()=>{if(document.hidden){let c=ki()-n;c>=e.delay?a():e.timeoutID=setTimeout(a,e.delay-c)}};document.addEventListener("visibilitychange",I),e.onVisibilitychange=I,document.hidden&&I()}return e.taskID}static hasTask(e){return this.taskMap.has(e)}static clearTask(e){if(!this.taskMap.has(e))return!0;let{intervalID:o,timeoutID:n,rafID:a,ricID:I,onVisibilitychange:c}=this.taskMap.get(e);return o&&clearInterval(o),n&&clearTimeout(n),a&&JQ&&JQ(a),I&&qs(I),c&&document.removeEventListener("visibilitychange",c),this.taskMap.delete(e),!0}static isBreakLoop(e){return!this.hasTask(e.taskID)||e.count!==0&&e.loopCount>=e.count&&(this.clearTask(e.taskID),!0)}};G(qh,"taskMap",new Map),G(qh,"currentTaskID",1),G(qh,"sharedWorker",null),G(qh,"workerTasks",new Map);var nn=qh,mi={LOAD_START:fA.LOADSTART,LOADED_DATA:fA.LOADEDDATA,LOADED_META_DATA:fA.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",RESIZE:fA.RESIZE,TIME_UPDATE:"time-update",LEAVE_PICTURE_IN_PICTURE:fA.LEAVE_PICTURE_IN_PICTURE,ENTER_PICTURE_IN_PICTURE:fA.ENTER_PICTURE_IN_PICTURE,USER_RESUME_IN_PIP_OR_FULL_SCREEN:"user-resume-in-pip-or-full-screen",USER_PAUSE_IN_PIP_OR_FULL_SCREEN:"user-pause-in-pip-or-full-screen",ENTER_FULL_SCREEN:"enter-full-screen",LEAVE_FULL_SCREEN:"leave-full-screen",VOLUME_CHANGE:"volume-change",FIRST_FRAME_RENDER:"first-frame-render"},xT={};XC(xT,{create:()=>nE,remove:()=>pr});var rB=new WeakMap;function nE(A,e){rB.has(A)||rB.set(A,[]);let o=rB.get(A),n={add:(a,I)=>("addEventListener"in e?(o.push(e.removeEventListener.bind(e,a,I)),e.addEventListener(a,I)):(o.push(e.off.bind(e,a,I)),e.on(a,I)),n)};return n}function pr(A){let e=rB.get(A);e&&(e.forEach(o=>o()),rB.delete(A))}var Jo=new class{constructor(){G(this,"_roomIdMap",new Map),G(this,"_configs"),typeof registerProcessor>"u"&&(this._configs={sdkAppId:"",userId:"",version:il,env:ou.QCLOUD,browserVersion:uu.name+uu.version,ua:navigator.userAgent})}setConfig(A){let{sdkAppId:e,env:o,userId:n,roomId:a}=A;e!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(e)),this._configs.env=o,this._configs.userId=n,this._roomIdMap.set(n,String(a))}logSuccessEvent(A){GQ||!nA.isAbleToUpload||this._configs.env===ou.QCLOUD&&this.uploadEventToKibana(fi(bt({},A),{result:"success"}))}logFailedEvent(A){if(GQ||!nA.isAbleToUpload)return;let{eventType:e,code:o,error:n,userId:a}=A,I={roomId:this._roomIdMap.get(a||this._configs.userId),userId:a,eventType:e,result:"failed",code:o||n?.extraCode||n?.code||Ge.UNKNOWN};this._configs.env===ou.QCLOUD&&this.uploadEventToKibana(fi(bt({},I),{error:n}))}uploadEventToKibana(A){let e="stat-".concat(A.eventType,"-").concat(A.result);(A.eventType==="delta-join"||A.eventType==="delta-leave"||A.eventType==="delta-publish")&&(e="".concat(A.eventType,":").concat(A.delta)),this.uploadEvent({log:e,userId:A.userId}),A.result==="failed"&&(e="stat-".concat(A.eventType,"-").concat(A.result,"-").concat(A.code),this.uploadEvent({log:e,userId:A.userId,error:A.error}))}uploadEvent(A){let{log:e,userId:o,error:n}=A,a={timestamp:jU(),sdkAppId:this._configs.sdkAppId,userId:o||this._configs.userId,version:il,log:e};n&&(a.errorInfo=n.message,n.stack&&(a.errorInfo+=`
`.concat(n.stack)));let I=lA.enable?Iu(a,2002,Number(this._configs.sdkAppId)):JSON.stringify(a);this.sendRequest(dh(this._configs.sdkAppId,Xg.LOG),I)}sendRequest(A,e){setTimeout(()=>cu({url:A,body:e,priority:"low"}).catch(()=>{}),2e3)}},oC=new WeakMap;function nB(A){let{settings:e={retries:5,timeout:2e3},onError:o,onRetrying:n,onRetryFailed:a}=A;return function(I,c,u){let d=Kf({retryFunction:u.value,settings:e,onError(R){let{error:k,retry:_,reject:Z,retryFuncArgs:iA}=R;var cA;o?o.call(this,k,()=>{var TA;(TA=oC.get(I))!=null&&TA.has(c)?_():Z(k)},Z,iA):(cA=oC.get(I))!=null&&cA.has(c)?_():Z(k)},onRetrying(R,k){var _;RQ(n)&&n.call(this,R,k),(_=oC.get(I))!=null&&_.has(c)&&(oC.get(I).get(c).stopRetry=k)},onRetryFailed:a});return u.value=function(){let R=oC.get(I);for(var k=arguments.length,_=new Array(k),Z=0;Z<k;Z++)_[Z]=arguments[Z];return R?R.set(c,{args:_}):oC.set(I,new Map([[c,{args:_}]])),d.apply(this,_).finally(()=>{var iA;return(iA=oC.get(I))==null?void 0:iA.delete(c)})},u}}function TM(A){let{fnName:e,callback:o,validateArgs:n=!0}=A;return function(a,I,c){let u=c.value;return c.value=function(){for(var d,R,k=arguments.length,_=new Array(k),Z=0;Z<k;Z++)_[Z]=arguments[Z];if((d=oC.get(a))!=null&&d.has(e)){let{stopRetry:iA,args:cA}=oC.get(a).get(e),TA=!0;if(n){for(let JA of cA)if(!_.find(Ie=>Ie===JA)){TA=!1;break}}TA&&(o&&o.apply(this,_),iA&&iA(),(R=oC.get(a))==null||R.delete(e))}return u.apply(this,_)},c}}var rC=class extends Uo{constructor(A,e){super(A.id,"".concat(e,"-player")),this.options=A,this.kind=e,G(this,"id"),G(this,"element",null),G(this,"track"),G(this,"url"),G(this,"attr"),G(this,"mode"),G(this,"muted"),G(this,"_log"),G(this,"isPausedByUserCall",!1),G(this,"_pausedRetryCount"),G(this,"_isElementPlayingFired",!1),G(this,"_interval"),G(this,"_delayDestroyTimeoutId",0),G(this,"_playSuccessResolve"),G(this,"_isReplayByRecreateMediaStreamCalled",!1),G(this,"isPlayCalled",!1),G(this,"isInAutoPlayFailedState",!1),G(this,"isBindAutoPlayEvent",!1),this.id=A.id,this._log=A.log,this.track=A.track,this.muted=A.muted,this._pausedRetryCount=pQ,this._state="STOPPED",this.bindTrackEvents(),this._log.info("create ".concat(e,"-player ").concat(this.id))}get isPlaying(){var A;return this._state==="PLAYING"&&((A=this.element)==null?void 0:A.paused)===!1}get isPaused(){var A;return this._state==="PAUSED"||((A=this.element)==null?void 0:A.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(A){this.attr=A}setUrl(A){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),A!==this.url&&(this.url=A,A!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=A))}play(){return DA(this,null,function*(){if(!this.isPlaying)try{this.isPlayCalled=!0,this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((A,e)=>{this._playSuccessResolve=A,this.element.play().then(A,e)})}catch(A){let e=Wi({key:Mi.PLAY_FAILED,data:{media:this.kind,error:A}});if(this._log.warn(A),e.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Ct({code:Ge.PLAY_NOT_ALLOWED,message:e})}})}stop(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var e;this.isPlayCalled=!1,this.isPausedByUserCall=!1,this._isElementPlayingFired=!1,this.unbindEvents(),A>0&&!TQ?this._delayDestroyTimeoutId||((e=this.element)==null||e.remove(),this._log.info("destroy element after 3 * ".concat(A)),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*A)):this.destroyElement(),this.handleStopped(fA.ENDED),this._interval>0&&nn.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){this._log.info("pause"),this.isPausedByUserCall=!0,this.doPause()}doPause(){var A;(A=this.element)==null||A.pause()}resume(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this.isPausedByUserCall=!1,this.doResume(A)}doResume(){return this._log.info("resume"),this.isPausedByUserCall||this.isPlaying?Promise.resolve():xO?this.replay():this.play().catch(()=>{})}setMuted(A){this.element&&(this.element.muted=A),this.muted=A}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let A=this.handleElementEvent.bind(this);return nE(this.element,this.element).add(fA.PLAYING,A).add(fA.ENDED,A).add(fA.PAUSE,A).add(fA.ERROR,A).add(fA.LOADSTART,A).add(fA.LOADEDDATA,A).add(fA.LOADEDMETADATA,A)}}bindTrackEvents(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.track;if(A){let e=this.handleTrackEvent.bind(this);xT?.create(A,A).add(fA.ENDED,e).add(fA.MUTE,e).add(fA.UNMUTE,e),A.readyState===fA.ENDED&&this.handleTrackEvent({type:fA.ENDED}),A.muted&&this.handleTrackEvent({type:fA.MUTE})}}bindAutoPlayEvent(){this.isBindAutoPlayEvent||(this._log.warn("bindAutoPlayEvent"),S.on(K.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!0)}unbindTrackEvents(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.track;A&&pr(A)}unbindEvents(){this.element&&pr(this.element),this.unbindTrackEvents(),S.off(K.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!1}handleElementEvent(A){switch(A.type){case fA.PLAYING:Lt()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(fA.PLAYING),this._interval&&(nn.clearTask(this._interval),this._interval=-1);break;case fA.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(fA.ENDED);break;case fA.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(fA.PAUSE);break;case fA.ERROR:if(this.element&&this.element.error){this.handlePaused(fA.ERROR);let{code:e,message:o}=this.element.error;this._log.error("".concat(this.kind," ").concat(this._log.isLocal?"local":"remote"," MediaError code: ").concat(e," message: ").concat(o," userAgent: ").concat(navigator.userAgent)),Jo.uploadEvent({log:"stat-".concat(this.kind,"-").concat(oa.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),oT||iT?this.emit(mi.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case fA.LOADEDDATA:this.kind===fA.VIDEO&&this.emit(mi.LOADED_DATA);break;case fA.LOADEDMETADATA:this.kind===fA.VIDEO&&this.emit(mi.LOADED_META_DATA);break;case fA.LOADSTART:this.emit(mi.LOAD_START)}}replayByRecreateMediaStream(A){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Jo.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),ct.addSuccessEvent({key:this.kind===fA.AUDIO?506700:516700})}).catch(()=>{var e;this._log.error("replayByRecreateMediaStream failed"),Jo.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),ct.addFailedEvent({key:this.kind===fA.AUDIO?506700:516700,error:(e=this.element)==null?void 0:e.error}),this.emit(mi.ERROR,A)})}doReplayByRecreateMediaStream(A){return this._log.warn("delay ".concat(A,"ms to recreate mediaStream")),new Promise((e,o)=>{AC(A).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var n,a,I;this._log.warn("element onerror ".concat((a=(n=this.element)==null?void 0:n.error)==null?void 0:a.code," fired after recreated mediaStream")),o((I=this.element)==null?void 0:I.error)}),AC(5e3).then(()=>{var n,a;(!this.isPlaying||(n=this.element)!=null&&n.error)&&o((a=this.element)==null?void 0:a.error),e()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(A){return DA(this,null,function*(){let e=A.type;switch(this.options.enableLogTrackState&&this._log[e===fA.UNMUTE?"info":"warn"]("track ".concat(e)),e){case fA.ENDED:this.handleStopped(fA.ENDED);break;case fA.MUTE:this.handlePaused(fA.MUTE);break;case fA.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&!this.isPausedByUserCall&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),this.element&&!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(fA.UNMUTE))}})}handlePlaying(A){var e;return this._log.debug("handlePlaying",A),(e=this._playSuccessResolve)==null||e.call(this,A),A}handlePaused(A){return this._log.debug("handlePaused",A),A}handleStopped(A){return this._log.debug("handleStopped",A),A}getElement(){return this.element}};G(rC,"PlayerEvent",mi),vt([nB({settings:{retries:2,timeout:0},onError(A,e,o,n){n[0]=(n[0]||1e3)+1e3,e()}})],rC.prototype,"doReplayByRecreateMediaStream"),vt([is([],"PLAYING",{sync:!0,success(A){this.emit(mi.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:A})}})],rC.prototype,"handlePlaying"),vt([is("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(A){this.emit(mi.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:A})}})],rC.prototype,"handlePaused"),vt([is([],"STOPPED",{sync:!0,success(A){this.emit(mi.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:A})}})],rC.prototype,"handleStopped");var aB="trtc_autoplay",YT="".concat(aB,"_mask"),Dm="".concat(aB,"_wrapper"),ym="".concat(aB,"_header"),Rm="".concat(aB,"_content"),GM="".concat(aB,"_action_wrapper"),J="".concat(aB,"_question"),x="".concat(aB,"_collapse"),oA="".concat(aB,"_action_confirm"),uA="".concat(aB,"_detail"),FA="#2473E8",zA="dialog",$A="".concat(zA,"-show"),ne="".concat(zA,"-1"),De="".concat(zA,"-2"),le=!1,We=!1,Lt=()=>We,Pt="".concat($C,"/").concat(rl()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),uo="<br><a href='".concat(Pt,"' target='_blank'>").concat(rl()?"其他方案?":"Any other solution?","</a>"),Br="".concat(rl()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(uo):"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(uo)),Nn=class{constructor(){if(G(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),G(this,"_dialogNode",null),G(this,"_bodyPosition",""),G(this,"_showDetail",!1),G(this,"_isCollapseClicked",!1),G(this,"_isQuestionClicked",!1),rl()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!le){let A=document.createElement("style");A.innerHTML=".".concat(YT,"{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(YT," div:not(.").concat(GM,"){display:block !important;}.").concat(Dm,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(Dm," a{color:").concat(FA,";}.").concat(ym,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(Rm,"{margin:8px 0;}.").concat(GM,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(x,"{margin-right:auto;cursor:pointer}.").concat(J,"{height:100%;line-height:16px;cursor:pointer;}.").concat(oA,"{margin-left:8px;color:#fff;background:").concat(FA,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(oA,":hover{opacity:0.9;}.").concat(x,",.").concat(oA,",.").concat(Rm,",.").concat(J,"{font-size:14px;}@media screen and (max-width:750px){.").concat(Dm,"{width:80vw;}}"),document.head.appendChild(A),le=!0}this.addDiaLog()}createDiaLog(){let A=document.createElement("template");A.innerHTML='<div class="'.concat(YT,`"><div class='`).concat(Dm,"'><div class='").concat(ym,"'>").concat(location.host,"</div><div class='").concat(Rm,"'>").concat(this.content,"</div><div class='").concat(uA,`' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">`).concat(Br,"</div><div class='").concat(GM,"'></div></div></div>").trim();let e=document.createElement("button");e.className=oA,e.innerText=rl()?"恢复播放":"Resume",e.onclick=this.onConfirm.bind(this);let o=document.createElement("div");o.className=J,o.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
<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">
<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"/>
<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"/>
<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"/>
</svg>
`,o.onclick=this.onQuestionClick.bind(this);let n=document.createElement("div");n.className=x,n.innerText="".concat(rl()?"详情 >":"Detail >"),n.onclick=this.onCollapseClick.bind(this);let a=A.content.firstChild,I=a.querySelector(".".concat(GM));return I.appendChild(n),I.appendChild(o),I.appendChild(e),a}addDiaLog(){Lt()||(We=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(Dm)).onclick=A=>A.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",nA.info("show autoplay dialog"),Jo.uploadEvent({log:$A}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,We=!1),Ss=null}onConfirm(){nA.warn("confirm clicked, try resume stream"),S.emit(K.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let A=this._dialogNode.querySelector(".".concat(uA));A.style.visibility="".concat(this._showDetail?"hidden":"visible"),A.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||Jo.uploadEvent({log:ne}),this._isCollapseClicked=!0}onQuestionClick(){window.open(Pt,"_blank"),this._isQuestionClicked||Jo.uploadEvent({log:De}),this._isQuestionClicked=!0}},Ss=null;function nC(){Ss||(Ss=new Nn)}var Mt,wi=class jZ extends rC{constructor(e){super(e,fA.VIDEO),G(this,"stat",{}),G(this,"_calculateTimeout",-1),G(this,"viewMirror",!1),G(this,"objectFit","cover"),G(this,"container"),G(this,"canvas"),G(this,"shouldRenderAlpha",!1),G(this,"_preSize",{width:0,height:0}),G(this,"posterImg"),G(this,"pipWindow"),G(this,"enterPIPPromise"),G(this,"_originContainerPosition"),G(this,"_isResettingSrcObject",!1),G(this,"_wrapper",null),G(this,"_useWrapper",!1),G(this,"_isFirstFrameRenderEmitted",!1),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,Ee(e.viewMirror)||(this.viewMirror=e.viewMirror),Ee(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return!(this._state!=="PLAYING"||this.element&&this.element.paused)&&((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){let e=document.createElement(fA.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id","video_".concat(this.id)),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,ra&&(e.poster="data:,"),this._appendToWrapper(),this.bindElementEvents(),this.calculateStat(),this._bindFirstFrameRenderEvent(e)}_bindFirstFrameRenderEvent(e){let o=()=>{if(this._isFirstFrameRenderEmitted)return;this._isFirstFrameRenderEmitted=!0;let n=e.videoWidth||0,a=e.videoHeight||0;this._log.info("first frame render: ".concat(n,"x").concat(a)),this.emit(mi.FIRST_FRAME_RENDER,{width:n,height:a})};typeof e.requestVideoFrameCallback=="function"?e.requestVideoFrameCallback(o):e.addEventListener("loadeddata",o,{once:!0})}get styleAttribute(){let e=this._useWrapper?"grid-area:1/1;width:100%;height:100%;object-fit:".concat(this.objectFit,";").concat(this.shouldRenderAlpha?"":"background-color:black",";"):"width:100%;height:100%;object-fit:".concat(this.objectFit,";").concat(this.shouldRenderAlpha?"":"background-color:black",";");return this.viewMirror&&(e+="transform:scaleX(-1);"),e}setLiveMode(e){if(this._useWrapper!==e&&(this._useWrapper=e,this.elementToRender&&this.elementToRender.setAttribute("style",this.styleAttribute),this.container&&this.elementToRender))if(e){let o=this._getOrCreateWrapper();o.insertBefore(this.elementToRender,o.firstChild)}else this.container.appendChild(this.elementToRender),this._cleanupWrapper()}setContainer(e){if(this.container===e)return;let o=this._wrapper,n=this.container;this.container=e,this._pausedRetryCount=pQ,this.track&&this.elementToRender&&this._appendToWrapper(),o&&n&&n!==this.container&&o.isConnected&&o.children.length===0&&o.remove()}_getOrCreateWrapper(){if(!this.container)throw new Error("[VideoPlayer] container is required");let e=this.container.querySelector("[data-trtc-video-wrapper]");return e||(e=document.createElement("div"),e.setAttribute("data-trtc-video-wrapper","true"),e.style.cssText="display:grid;width:100%;height:100%;",this.container.appendChild(e)),this._wrapper=e,e}_appendToWrapper(e){let o=e??this.elementToRender;if(this.container&&o)if(this._useWrapper){let n=this._getOrCreateWrapper();n.insertBefore(o,n.firstChild)}else this.container.appendChild(o)}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),this.handleFullscreenChange=this.handleFullscreenChange.bind(this),this.handleVolumeChange=this.handleVolumeChange.bind(this),e&&e.add(fA.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(fA.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(fA.RESIZE,this.handleElementEvent),this.element&&(this.element.addEventListener(fA.FULLSCREEN_CHANGE,this.handleFullscreenChange),this.element.addEventListener("webkitbeginfullscreen",this.handleFullscreenChange),this.element.addEventListener("webkitendfullscreen",this.handleFullscreenChange),this.element.addEventListener("volumechange",this.handleVolumeChange))}handleTrackEvent(e){var o;return e.type===fA.MUTE&&((o=this.stat)!=null&&o.fps&&(this.stat.fps=0),this.isFullscreen()&&this.resetSrcObjectToReplay()),super.handleTrackEvent(e)}handleFullscreenChange(){this.isFullscreen()?(this._log.info("enter fullscreen"),this.emit(mi.ENTER_FULL_SCREEN)):(this._log.info("leave fullscreen"),this.emit(mi.LEAVE_FULL_SCREEN))}handleVolumeChange(){var e;(this.isPictureInPicture()||this.isFullscreen())&&this.emit(mi.VOLUME_CHANGE,{muted:(e=this.element)==null?void 0:e.muted})}handleElementEvent(e){var o,n,a,I,c,u;if(this.mode===2)return;super.handleElementEvent(e);let d=e.type,R=this.isPictureInPicture(),k=this.isFullscreen(),_=e.isTrusted&&(R&&Ma||k);if(d===fA.PLAYING&&_&&!this._isResettingSrcObject&&(this._log.warn("user resume in ".concat(k?"fullscreen":"pip")),this.emit(mi.USER_RESUME_IN_PIP_OR_FULL_SCREEN)),d===fA.PAUSE&&(_&&(this._log.warn("user pause in ".concat(k?"fullscreen":"pip")),this.emit(mi.USER_PAUSE_IN_PIP_OR_FULL_SCREEN)),this.container&&!this.container.isConnected&&(this._log.warn("".concat(this.kind," player has been remove, element ID: ").concat(this.container.id)),AC(500).then(()=>{var Z;(Z=this.container)!=null&&Z.isConnected&&(this._pausedRetryCount=pQ,this._log.info("view container ".concat(this.container.id," is in dom, reset pausedRetryCount")))})),this._pausedRetryCount>0&&!Lt()&&!this.isPausedByUserCall&&!_&&(this._log.info("[".concat(pQ-this._pausedRetryCount+1,"/").concat(pQ,"] ").concat(this.kind," player auto resume when paused")),this.doResume(),this._pausedRetryCount--),Ea&&!_&&(this._interval=nn.run("timeout",()=>{this.element&&this._state==="PAUSED"&&!this.isPausedByUserCall&&this.doResume()},{delay:3e3})),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let Z=this.element.style.transform;d===fA.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=Z.replace("scaleX(-1)",""):d===fA.LEAVE_PICTURE_IN_PICTURE&&!Z.includes("scaleX")&&(this.element.style.transform="".concat(Z," scaleX(-1)"))}d===fA.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((n=this.element)==null?void 0:n.videoWidth))&&(this._log.info("video size changed to ".concat((a=this.element)==null?void 0:a.videoWidth,"x").concat((I=this.element)==null?void 0:I.videoHeight)),this._preSize.height=((c=this.element)==null?void 0:c.videoHeight)||0,this._preSize.width=((u=this.element)==null?void 0:u.videoWidth)||0,this.emit(mi.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height})),d===fA.LEAVE_PICTURE_IN_PICTURE&&(this._log.warn("exit pip"),this.isPaused&&!this.isPausedByUserCall&&(this._log.warn("resume after exit pip"),this.doResume()),this.resetSrcObjectToReplay(),this.emit(mi.LEAVE_PICTURE_IN_PICTURE)),d===fA.ENTER_PICTURE_IN_PICTURE&&this.emit(mi.ENTER_PICTURE_IN_PICTURE)}resetSrcObjectToReplay(){ra&&Gh&&this.isPlayCalled&&this.element&&this.track&&!this.isPausedByUserCall&&(this._log.warn("reset srcObject to replay for android chromium"),this._isResettingSrcObject=!0,this.element.srcObject=new MediaStream([this.track]),this.element.play().catch(e=>{this._log.warn("play failed after reset srcObject",e)}).finally(()=>{this._isResettingSrcObject=!1}))}setCanvas(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;var n,a;this.canvas!==e&&((n=this.canvas)==null||n.remove(),e?.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?o:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((a=this.element)==null||a.remove(),this._appendToWrapper(e)):this.element&&this._appendToWrapper(this.element))}setAttr(e){let o=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);o.style=Object.assign({width:"100%",height:"100%"},o.style),super.setAttr(o)}get mirror(){return this.viewMirror}setRect(e,o){this.elementToRender&&(this.elementToRender.style.width="".concat(e,"px"),this.elementToRender.style.height="".concat(o,"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){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Promise(n=>{if(!this.element||(this._log.info("setPoster",e.slice(0,10)),e===""?this.element.removeAttribute("poster"):this.element.poster=e,!o||!Ma&&!Yr))return n();if(e==="")return this.removePosterImg(),n();if(this.posterImg)return n();let a=document.createElement("img");a.src=e;let I=window.getComputedStyle(this.element),c=I.objectFit||this.objectFit,u=1;if(this._useWrapper){let d=parseInt(I.zIndex,10);isNaN(d)||(u=d+1)}a.style.cssText=this._useWrapper?"grid-area:1/1;z-index:".concat(u,";width:100%;height:100%;object-fit:").concat(c,";"):"position:absolute;top:0;left:0;width:100%;height:100%;object-fit:".concat(c,";"),a.onload=()=>DA(this,null,function*(){try{a.decode&&(yield a.decode()),this.container&&!this._useWrapper&&window.getComputedStyle(this.container).position==="static"&&(this._originContainerPosition=this.container.style.position,this.container.style.position="relative"),this.posterImg=a;let d=this._useWrapper?this._wrapper:this.container;d?.appendChild(a),jf()&&al<=17&&this.elementToRender&&(this.elementToRender.style.visibility="hidden")}catch(d){this._log.warn("decode poster image error",d)}return n()}),a.onerror=()=>(this._log.warn("load poster image error"),n())})}removePosterImg(){this.posterImg&&(jf()&&al<=17&&this.elementToRender&&(this.elementToRender.style.visibility=""),this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),!this._useWrapper&&this.container&&!Ee(this._originContainerPosition)&&this.container.style.position==="relative"&&(this.container.style.position=this._originContainerPosition),delete this.posterImg)}get hasPoster(){var e;return!!this.posterImg||!((e=this.element)==null||!e.getAttribute("poster"))}pause(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return DA(this,null,function*(){zg(jZ.prototype,this,"pause").call(this),!this.isPictureInPicture()&&!this.hasPoster&&(Gh||e&&(Yr||Ma))&&(yield this.setPoster(this.getVideoFrame(),!0))})}resume(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return super.resume(e).then(()=>{var o;(this.posterImg||(o=this.element)!=null&&o.poster)&&this.setPoster("",!0)})}doResume(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this.isPaused&&e&&this.element&&this.track&&Gh&&this.track.kind==="video"&&(this.element.srcObject=new MediaStream([this.track])),super.doResume()}stop(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var o;this.isPictureInPicture()&&this.exitPictureInPicture().catch(n=>{}),this.isFullscreen()&&this.exitFullscreen().catch(n=>{}),this.element&&(this.element.removeEventListener(fA.FULLSCREEN_CHANGE,this.handleFullscreenChange),this.element.removeEventListener("webkitbeginfullscreen",this.handleFullscreenChange),this.element.removeEventListener("webkitendfullscreen",this.handleFullscreenChange),this.element.removeEventListener("volumechange",this.handleVolumeChange)),this._isFirstFrameRenderEmitted=!1,super.stop(e),(o=this.canvas)==null||o.remove(),this.removePosterImg(),this._useWrapper&&this._cleanupWrapper()}_cleanupWrapper(){this._wrapper&&this._wrapper.children.length===0&&this._wrapper.remove(),this._wrapper=null}play(e){if(Ee(e?.isLiveStream)||this.setLiveMode(e.isLiveStream),this.element){if(this.elementToRender&&this.container)if(this._useWrapper){let o=this._getOrCreateWrapper();this.elementToRender.parentElement!==o&&o.insertBefore(this.elementToRender,o.firstChild)}else this.elementToRender.parentElement!==this.container&&this.container.append(this.elementToRender)}else this.initializeElement();return this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(mi.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this._appendToWrapper()))}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(YQ()&&this.element&&this._calculateTimeout<0){let e=0,o=null,n=(a,I)=>{this.stat.width=I.width,this.stat.height=I.height,o&&(this.stat.fps=Math.round((I.presentedFrames-o.presentedFrames)/(a-e)*1e3)),e=a,o=I,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var c;return(c=this.element)==null?void 0:c.requestVideoFrameCallback(n)},2e3))};this.element.requestVideoFrameCallback(n)}}catch(e){this._log.warn("init stat failed",e)}}enterFullscreen(){return DA(this,null,function*(){let e=this.elementToRender;if(!e)throw this._log.warn("no element to render, cannot enter fullscreen"),new Error("No element available for fullscreen");if(Ea&&this.isPictureInPicture()){this._log.info("exit pip before entering fullscreen");try{yield this.exitPictureInPicture()}catch(o){this._log.warn("exit pip failed before fullscreen:",o)}}try{if(e.requestFullscreen)yield e.requestFullscreen();else if(e.webkitRequestFullscreen)yield e.webkitRequestFullscreen();else if(e.webkitEnterFullscreen)yield e.webkitEnterFullscreen();else if(e.mozRequestFullScreen)yield e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)throw new Error("Fullscreen API not supported");yield e.msRequestFullscreen()}this._log.info("entered fullscreen mode")}catch(o){throw this._log.error("failed to enter fullscreen:",o),o}})}exitFullscreen(){return DA(this,null,function*(){try{if(!this.isFullscreen())return;if(document.exitFullscreen)yield document.exitFullscreen();else if(document.webkitExitFullscreen)yield document.webkitExitFullscreen();else if(document.mozCancelFullScreen)yield document.mozCancelFullScreen();else{if(!document.msExitFullscreen)throw new Error("Exit fullscreen API not supported");yield document.msExitFullscreen()}this._log.info("exited fullscreen mode")}catch(e){throw this._log.error("failed to exit fullscreen:",e),e}})}isFullscreen(){let e=this.elementToRender;return!!e&&(this.element&&this.element.webkitDisplayingFullscreen?!this.isPictureInPicture():(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)===e)}toggleFullscreen(){return DA(this,null,function*(){this.isFullscreen()?yield this.exitFullscreen():yield this.enterFullscreen()})}enterPictureInPicture(){return DA(this,null,function*(){this.enterPIPPromise=this._enterPictureInPicture();try{return yield this.enterPIPPromise}finally{delete this.enterPIPPromise}})}_enterPictureInPicture(){return DA(this,null,function*(){try{if(!this.element)throw new Error("No video element available for pip");if(this.canvas&&this.mode!==1)throw new Error("pip is not supported for canvas-only mode");let{element:e}=this;if(e.requestPictureInPicture){this._log.info("requestPictureInPicture");let o=yield e.requestPictureInPicture();return this.pipWindow=o,this._log.info("entered pip mode"),this.elementToRender===this.canvas&&(this.canvas.remove(),this._appendToWrapper(this.element)),o}if(e.webkitSetPresentationMode)return this._log.info("webkitSetPresentationMode"),yield e.webkitSetPresentationMode("picture-in-picture"),this._log.info("entered pip mode (webkit)"),{};throw new Error("pip API not supported")}catch(e){throw this._log.error("failed to enter pip:",e.name,e.message),e}})}exitPictureInPicture(){return DA(this,null,function*(){var e;try{if(!this.isPictureInPicture())return;if(delete this.pipWindow,document.pictureInPictureElement&&document.exitPictureInPicture)yield document.exitPictureInPicture(),this.elementToRender===this.canvas&&((e=this.element)==null||e.remove(),this._pausedRetryCount=pQ,this._appendToWrapper(this.canvas)),this._log.info("exited pip mode");else{if(!this.element||!this.element.webkitSetPresentationMode)throw new Error("Exit pip API not supported or not in PiP mode");yield this.element.webkitSetPresentationMode("inline"),this._log.info("exited pip mode (webkit)")}}catch(o){throw this._log.error("failed to exit pip:",o),o}})}isPictureInPicture(){if(!this.element)return!1;let{element:e}=this;return document.pictureInPictureElement?document.pictureInPictureElement===e:!!e.webkitPresentationMode&&e.webkitPresentationMode==="picture-in-picture"}togglePictureInPicture(){return DA(this,null,function*(){this.isPictureInPicture()?yield this.exitPictureInPicture():yield this.enterPictureInPicture()})}};function Fa(A,e){return DA(this,null,function*(){if(!A.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield A.audioWorklet.addModule(e),nA.info("worklet addModule success")}catch(o){throw nA.info("worklet addModule catch error. ".concat(o.message)),o}})}typeof AudioContext<"u"?Mt=AudioContext:typeof webkitAudioContext<"u"?Mt=webkitAudioContext:typeof mozAudioContext<"u"&&(Mt=mozAudioContext);var fr,SI=1500,gl=-1,HQ=0,aE=-1,eI=!1,nx=0,kM=-1,PT=-1;(function A(){try{if(fr)return;(fr=new Mt({sampleRate:48e3})).onstatechange=()=>{nA.info("context state: ".concat(fr.state).concat(fr.state!=="running"?" visibilityState: ".concat(document.visibilityState):"")),_M()},clearTimeout(gl)}catch(e){nA.error("initAudioContext failed: ".concat(e," typeof AudioContextClass: ").concat(typeof Mt)),gl=setTimeout(A,1e3)}})();var _M=()=>{fr.state==="suspended"?(HQ=ki(),aE===-1&&(aE=setTimeout(()=>{fr.state==="suspended"&&(eI=!0,S.emit("155",{isSuspended:!0}))},SI)),JT(),document.addEventListener("click",_M)):fr.state==="interrupted"?JT():(HQ&&(ct.addNumber({key:507800,value:ki()-HQ,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),HQ=0),aE!==-1&&(clearTimeout(aE),aE=-1,eI&&(eI=!1,S.emit("155",{isSuspended:!1}))),document.removeEventListener("visibilitychange",_M),document.removeEventListener("click",_M))},hq=0,pq=-1;function JT(){return new Promise((A,e)=>{if(fr.state==="running")return A();Date.now()-hq<1e3?(clearTimeout(pq),pq=setTimeout(()=>{hq=Date.now(),fr.resume().then(A,e)},1e3)):(clearTimeout(pq),hq=Date.now(),fr.resume().then(A,e))}).catch(A=>{nA.warn("context resume failed: ".concat(A)),document.addEventListener("visibilitychange",_M)})}document.addEventListener("click",_M);var tI=A=>fr,iI=class{constructor(A){this.name=A,G(this,"node"),G(this,"node2"),G(this,"pre",new Set),G(this,"next",new Set),G(this,"context"),G(this,"connectedNodes",new Set),G(this,"nextInputChannelMap",new Map),G(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(A){this._channelCount=A,this.setChannelCount(this.node,A),this.setChannelCount(this.node2,A),this.next.forEach(e=>e.channelCount=A)}setChannelCount(A,e){!A||A instanceof ScriptProcessorNode||(A.channelCountMode="explicit",A.channelCount=e||this.channelCount||1)}setContext(A){this.context=A,this.node&&A.addMixWeight()}removeContext(){var A;this.node&&((A=this.context)==null||A.reduceMixWeight()),delete this.context}replaceNode(A){var e;if(A!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=A,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(o){nA.error(o)}}setNode(A,e){var o;if(!this.node)try{(o=this.context)==null||o.addMixWeight(),this.node=A,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),ct.addSuccessEvent({key:502701})}catch(n){nA.error(n),ct.addFailedEvent({key:502701,error:n})}}deleteNode(){var A;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(A=this.context)==null||A.reduceMixWeight(),this.preNodeReconnect(),ct.addSuccessEvent({key:502702})}catch(e){nA.error(e),ct.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(A=>{A.node?A.reconnect():A.preNodeReconnect()})}connectNext(A){this.next.forEach(e=>{let o=this.nextInputChannelMap.get(e);A._connect(e.node,o)||e.connectNext(A)})}_connect(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return!(!this.node||!A)&&((this.node2||this.node).connect(A,0,e),this.connectedNodes.add(A),!0)}_disconnect(){this.connectedNodes.forEach(A=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(A)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return this.next.add(A),A.pre.add(this),this.nextInputChannelMap.set(A,e),A}},Q$=class extends iI{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:256;super(),this.fftSize=A,G(this,"dataArray",new Uint8Array(0))}setNode(A){A.fftSize=this.fftSize,this.dataArray=new Uint8Array(A.frequencyBinCount),super.setNode(A)}getByteTimeDomainData(){var A;return(A=this.node)==null||A.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var A;return(A=this.node)==null||A.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let A=this.getByteTimeDomainData(),e=0,o=0,n="M".concat(e,",").concat(o);for(let a=0;a<A.length;a++)o=A[a]/128*100/2,n+="L".concat(e,",").concat(o),e+=1;return n}},uW=class{constructor(){G(this,"source",new iI),G(this,"gain",new iI),G(this,"destination",new iI)}get volume(){var A;return((A=this.gain.node)==null?void 0:A.gain.value)||1}setVolume(A){A!==1?(this.gain.node||this.gain.setNode(tI().createGain()),this.gain.node.gain.value=A):this.gain.node&&this.gain.deleteNode()}replaceSource(A){let e=ax(A);e&&this.source.replaceNode(e)}get track(){var A;return(A=this.stream)==null?void 0:A.getAudioTracks()[0]}get stream(){var A;return(A=this.destination.node)==null?void 0:A.stream}},QW=class extends uW{constructor(A){super(),this.context=A,G(this,"aec",new iI("aec")),G(this,"mixNode",new iI("mixNode")),G(this,"silentNode",new iI("silentNode")),G(this,"denoiser",new iI("denoiser")),G(this,"voiceChanger",new iI("voiceChanger")),this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(A){A!==1?(this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=A):this.gain.node&&this.gain.deleteNode()}},d$=class{constructor(){G(this,"audioContext",tI()),G(this,"destination",this.audioContext.createMediaStreamDestination()),G(this,"inputs",new Set),G(this,"mixWeight",0),this.destination.channelCount=1}addMixWeight(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.mixWeight+=A,this.mixWeight-1==A+1>>1&&this.mixOnChange()}reduceMixWeight(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.addMixWeight(-A)}close(){this.inputs.forEach(A=>A.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},dW=new WeakMap;function ax(A){try{let e=dW.get(A);if(e)return e;let o=tI();if(A instanceof HTMLAudioElement)e=o.createMediaElementSource(A);else{if(!(A instanceof MediaStreamTrack))return A;e=o.createMediaStreamSource(new MediaStream([A]))}return dW.set(A,e),e}catch(e){if(!(Yr&&e instanceof Error&&e.name==="NotSupportedError"))throw e;nA.warn(e)}}var sx=class XQ{constructor(e){G(this,"_volume",0),G(this,"_volumeDb",0),G(this,"_log"),G(this,"_scriptProcessorNode",null),G(this,"_audioWorkletNode",null),G(this,"_interval",200),G(this,"ready",this.preload());let{log:o}=e;this._log=o,S.on(K.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-XQ.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!XQ.workletReady){let e='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);';XQ.workletReady=Fa(XQ.audioContext,URL.createObjectURL(new Blob([e],{type:"application/javascript"})))}return XQ.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(XQ.audioContext,"volume-meter");let e=!1;this._audioWorkletNode.port.onmessage=o=>{XQ.lastMessageTime=Date.now(),this._volume=o.data.volume||0,this._volumeDb=o.data.volumeDb||0,!e&&o.data.cacheLen&&o.data.outputLen&&(this._log.warn("worklet play success"),e=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(e){this._log.error("volumeMeter init audio worklet error: ".concat(e)),Jo.logFailedEvent({userId:this._log.userId,eventType:oa.LOAD_WORKLET,error:e}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=tI().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=e=>{XQ.lastMessageTime=Date.now();let o=e.inputBuffer.getChannelData(0),n=0;for(let a=0;a<o.length;++a)n+=o[a]*o[a];this._volume=Math.sqrt(n/o.length)||0}}catch(e){this._log.error("volumeMeter init script processor error: ".concat(e))}}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,S.off(K.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 o;let{interval:n}=e;this._interval=n,(o=this._audioWorkletNode)==null||o.port.postMessage({name:"setIntervalTime",intervalTime:n})}};G(sx,"lastMessageTime",0),G(sx,"audioContext",tI()),G(sx,"workletReady");var hW=sx,pW=class extends iI{constructor(A){super(),G(this,"_volumeMeter"),this._volumeMeter=new hW(A)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return DA(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(A){if(this.node){let e=A.allocationSize({planeIndex:0}),o=new Float32Array(e>>2);A.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),A.close()}}},gx=hW,h$=es(hg(),1),fW=A=>e=>e.deviceId===A,fq=class{constructor(A,e){G(this,"kind"),G(this,"type"),G(this,"devices",[]),this.kind=A,this.type=e}update(A,e){let o=A.filter(n=>n.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase()));this.devices.length===1&&HT(this.devices[0])||e&&(o.forEach(n=>{if(n.deviceId&&!this.devices.find(fW(n.deviceId))){let a="".concat(this.kind).concat(this.type,"Added");nA.warn("".concat(a,": ").concat(JSON.stringify(n))),e.emit(a,n)}}),this.devices.forEach(n=>{if(n.deviceId&&!o.find(fW(n.deviceId))){let a="".concat(this.kind).concat(this.type,"Removed");nA.warn("".concat(a,": ").concat(JSON.stringify(n))),e.emit(a,n)}})),this.devices=o}hasDevice(A){return!!this.devices.find(e=>e.deviceId===A)}},p$=class extends h$.EventEmitter{constructor(){super(),G(this,"audioInputs",new fq(fA.AUDIO,"Input")),G(this,"videoInputs",new fq(fA.VIDEO,"Input")),G(this,"audioOutputs",new fq(fA.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||nn.run("interval",()=>{this.update()},{delay:1e4}))}init(){Ix().then(A=>{this.audioInputs.update(A),this.videoInputs.update(A),this.audioOutputs.update(A)})}update(){return DA(this,arguments,function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function*(){let o=yield Ix(e);return A.audioInputs.update(o,A),A.videoInputs.update(o,A),A.audioOutputs.update(o,A),A}()})}hasBlueTooth(){var A;if(1e3*((A=tI())==null?void 0:A.outputLatency)>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(n=>o.label.toLowerCase().includes(n)))||this.audioInputs.devices.some(o=>e.some(n=>o.label.toLowerCase().includes(n)))}},vs=vR||SR?null:new p$;function HT(A){return A.deviceId===A.groupId&&A.groupId===""}function Ix(){return DA(this,arguments,function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function*(){if(wI()||!mT())return[];let e=yield navigator.mediaDevices.enumerateDevices();if(A!==0){let o={audio:!1,video:!1};if(e.forEach(n=>{HT(n)&&(n.kind===fA.AUDIO_INPUT?o.audio=!0:n.kind===fA.VIDEO_INPUT&&(o.video=!0))}),A===2&&(o.audio=!1),A===1&&(o.video=!1),o.audio||o.video){let n;try{n=yield navigator.mediaDevices.getUserMedia(o),o.audio&&JT()}catch(a){nA.debug("capture before getDevices failed: ",a)}e=yield navigator.mediaDevices.enumerateDevices(),n?.getTracks().forEach(a=>a.stop())}}return e.map((o,n)=>{let a={kind:o.kind,deviceId:o.deviceId,groupId:o.groupId,label:o.label||"".concat(o.kind,"_").concat(n)};return o.deviceId.length>0&&mq.add("".concat(o.deviceId,"_").concat(o.kind)),o.getCapabilities&&(a.getCapabilities=()=>o.getCapabilities()),a})}()})}function VQ(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return vs.update(A?1:0).then(e=>e.audioInputs.devices)}function qQ(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return vs.update(A?2:0).then(e=>e.videoInputs.devices)}var mW=!1;function Mm(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return DA(this,null,function*(){return(Ea||Ma)&&(A=!1),vs.update(A?1:0).then(e=>e.audioOutputs.devices)})}var mq=new Set;function DW(A,e){return DA(this,null,function*(){let o=(yield VQ()).find(n=>n.deviceId===bf);return!e&&o?.groupId===A||o?.groupId===A&&o.label===e})}var cx,f$=class extends uW{constructor(A){super(),this.log=A,G(this,"volumeMeter"),G(this,"volumeMeterAfter3A"),G(this,"volumeDestination"),G(this,"analyser",new Q$),this.volumeMeter=new pW({log:this.log}),this.volumeMeterAfter3A=new pW({log:this.log}),this.volumeDestination=new iI,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Dq=class WZ extends rC{constructor(e){super(e,fA.AUDIO),G(this,"_outputDeviceId"),G(this,"_floatVolume",1),G(this,"_destination"),G(this,"pipeline"),G(this,"volumeMeterMode","worklet"),G(this,"enableVolumeControlInIOS"),this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new f$(this._log)}setTrack(e){}get duration(){var e;return Math.floor(1e3*(((e=this.element)==null?void 0:e.duration)||0))}get currentTime(){var e;return Math.floor(1e3*(((e=this.element)==null?void 0:e.currentTime)||0))}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if(($g==="15.2"||$g==="15.3"||$g==="15.4")&&this.muted)return void this._log.info("audioElement is muted.");this._log.info("audio player initializeElement");let o=cx||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,this.setVolume(hr(e)?e/100:this._floatVolume),o===cx&&(cx=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(mi.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return DA(this,null,function*(){if(this.track||this.url){try{!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e?.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(tI().createAnalyser()),function(){DA(this,null,function*(){try{mW||(mW=!0,nA.info("speakers:".concat((yield Mm()).map(o=>" ".concat(o.deviceId.slice(0,8),": ").concat(o.label)))))}catch{}})}()}catch(o){throw this._log.warn("audio play error: ".concat(o)),kh($g,"18.7",!0)&&this.bindAutoPlayEvent(),o}return zg(WZ.prototype,this,"play").call(this)}})}stop(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.pipeline.destroy(),super.stop(e)}setVolume(e){this._floatVolume=e,this.element&&(this.element.volume=e)}setSinkId(e){return DA(this,null,function*(){var o,n;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(n=(o=this.element).setSinkId)==null?void 0:n.call(o,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},m$=class extends Dq{setTrack(A){this.track!==A&&(this.unbindTrackEvents(),this.track=A,this.emit(mi.MEDIA_TRACK_CHANGED,A),A&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([A]))))}},yW=class extends Dq{constructor(A){super(A),G(this,"_sourceElement"),G(this,"_output",new iI),this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(tI().destination)}write(A){this.pipeline.volumeMeter.write(A)}setTrack(A){var e,o,n;((o=(e=this.element)==null?void 0:e.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==A&&(this.unbindTrackEvents(),this.track=A,this.emit(mi.MEDIA_TRACK_CHANGED,A),A?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([A]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([A])),this.pipeline.source.channelCount=((n=A.getSettings())==null?void 0:n.channelCount)||1,this.pipeline.replaceSource(A)):this.pipeline.source.deleteNode())}setVolume(A){var e;let o=A<=1&&!jf();if(this._floatVolume!==A||!(o&&((e=this.element)==null?void 0:e.volume)===A||!o&&this.pipeline.volume===A))if(this._floatVolume=A,this.useDestination)this.pipeline.setVolume(A),this._log.info("set pipeline volume: ".concat(A));else if(o)this.element?(this._log.info("set element volume: ".concat(A)),this.element.volume=A):this._log.info("set element volume: no element");else{if(jf()){if(!this.enableVolumeControlInIOS)return;(function(){if(!Ea||PT!==-1)return;let n=()=>{ki()-nx<500||(fr&&fr.state==="running"&&fr.currentTime===kM&&(nA.warn("context is fake running, auto resume"),fr.suspend().catch(a=>{nA.warn("context suspend failed: ".concat(a))})),kM=fr.currentTime,nx=ki())};PT=setInterval(()=>{n()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&n()})})()}if(Yr&&!this.pipeline.source.node)return void this._log.warn("set pipeline volume failed: no source node");this._log.info("start set pipeline volume: ".concat(A)),this.pipeline.setVolume(A),this.element&&!this._sourceElement&&(this._destination||(this._destination=tI().createMediaStreamDestination()),this.pipeline.destination.setNode(this._destination),pr(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play().catch(n=>{this.emit(mi.AUTOPLAY_FAILED,n)}))}}stop(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.pipeline.destroy();let e=this._sourceElement||this.element;e&&TQ&&(cx=e),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(A)}},yq=class extends Uo{constructor(A){let{userId:e,sdkAppId:o,mediaType:n,room:a,PlayerClass:I=n===1?yW:wi}=A;var c;super(),G(this,"id",hA()),G(this,"userId",""),G(this,"isRemote"),G(this,"mediaType"),G(this,"room"),G(this,"user"),G(this,"_log"),G(this,"_inputTrack"),G(this,"_outputTrack"),G(this,"isPlayCalled"),G(this,"container",null),G(this,"player"),G(this,"subVideoPlayerMap"),G(this,"muted",!1),G(this,"abortCtrl"),G(this,"objectFit","cover"),G(this,"mirror"),G(this,"rotation"),G(this,"isScreen",!1),G(this,"manager"),G(this,"trackSettings"),G(this,"isFirstVideoFrameEmitted",!1),this.userId=e||"",this.mediaType=n,this._log=nA.createLogger({parent:a?.getLogger(),id:"".concat(this.kind[0],"t"),userId:(c=a||this.room)==null?void 0:c.userId,remoteUserId:this instanceof ZT?void 0:this.userId,sdkAppId:o,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof ZT}),this.player=new I({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:a?.enableVolumeControlInIOS}),this.player.on(mi.PLAYER_STATE_CHANGED,u=>{if(S.emit(K.PLAYER_STATE_CHANGED,bt({track:this},u)),this.emit("player-state-changed",u),u.state==="PLAYING"&&this.room){let d=!0;for(let{remoteAudioTrack:R,remoteVideoTrack:k,remoteAuxiliaryTrack:_}of[...this.room.remotePublishedUserMap.values()])if(R.isAvailable&&!R.player.isPlaying||k.isAvailable&&!k.player.isPlaying||_.isAvailable&&!_.player.isPlaying){d=!1;break}d&&Lt()&&Ss&&Ss.deleteDialog()}}),this.kind===fA.VIDEO&&(this.player.on(mi.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(mi.LOADED_DATA),S.emit(K.VIDEO_LOADED_DATA,{track:this})}),this.player.on(mi.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(mi.LOADED_META_DATA)}),this.player.on(mi.MEDIA_TRACK_CHANGED,u=>{var d;(d=this.subVideoPlayerMap)==null||d.forEach(R=>R.setTrack(u))}),this.player.on(mi.RESIZE,u=>{this.emitFirstVideoFrameEvent(mi.RESIZE),this.emit("video-size-changed",bt({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},u))}),this.player.on(mi.FIRST_FRAME_RENDER,u=>{this.emit("first-frame-render",fi(bt({},u),{streamType:this.streamType,userId:this.isRemote?this.userId:""}))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(mi.ERROR,this.onPlayerError.bind(this)),this.player.on(mi.AUTOPLAY_FAILED,this.handleAutoPlayFailed,this)}get log(){return this._log||nA}get kind(){return this.mediaType===1?fA.AUDIO:fA.VIDEO}get isAudio(){return this.kind===fA.AUDIO}get strMediaType(){return this.mediaType===4?fA.VIDEO:this.mediaType===2?fA.SCREEN:fA.AUDIO}get streamType(){return 2&this.mediaType?"auxiliary":"main"}get isMediaTrackActive(){return!!this.mediaTrack&&!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}play(A,e){return DA(this,null,function*(){let o=Aa(A)?A[0]:A;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(e))),e&&!Ee(e.muted)&&this.setPlayerMute(e.muted),e&&!Ee(e.objectFit)&&(this.objectFit=e.objectFit),void(this.player instanceof wi&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(Aa(A)&&A.length>=1&&this.container&&A.includes(this.container)&&this.container.contains(this.player.elementToRender)?(A.splice(A.indexOf(this.container),1),A.unshift(this.container)):(this.container=o,this.player.setContainer(o))),Aa(A)&&A.length>=1&&(yield this.playSubContainer(A.slice(1),e))));if(e&&!Ee(e.muted)?this.setPlayerMute(e.muted):(!this.isRemote||this.kind===fA.VIDEO)&&this.setPlayerMute(!0),e&&!Ee(e.objectFit)&&(this.objectFit=e.objectFit),this.player instanceof wi&&(Ee(e?.isLiveStream)||this.player.setLiveMode(e.isLiveStream),this.player.setObjectFit(this.objectFit),e&&!Ee(e.poster)&&this.player.setPoster(e.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof wi&&this.player.setContainer(o)),S.emit(K.PLAY_TRACK_START,{track:this}),this._outputTrack){this._log.info("play with options: ".concat(JSON.stringify(e)));try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(e),Aa(A)&&A.length>1&&(yield this.playSubContainer(A.slice(1),e))}catch(n){throw this.handleAutoPlayFailed(n),n}}else this.log.info("play has not mediaTrack, abort")})}setMirror(A,e){if(this.isScreen||this.kind!==fA.VIDEO||Ee(A)||A===this.mirror)return;this.mirror=A;let o=this.player;e&&(o=e);let n=this.manager;if(rn(this.mirror))return o.setViewMirror(this.mirror),void(!this.isRemote&&n&&(n.mirror=!1));switch(this.mirror){case"view":n&&(n.mirror=!1),o.setViewMirror(!0);break;case"publish":n&&(n.mirror=!0),o.setViewMirror(!0);break;case"both":n&&(n.mirror=!0),o.setViewMirror(!1)}}playSubContainer(A,e){return DA(this,null,function*(){if(!this._outputTrack||this.kind===fA.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((n,a)=>{var I;A.find(c=>a===c)||(n.stop(),(I=this.subVideoPlayerMap)==null||I.delete(a))});for(let[n,a]of A.entries()){let I=this.subVideoPlayerMap.get(a);I?e&&(Ee(e.objectFit)||I.setObjectFit(e.objectFit)):this.subVideoPlayerMap.set(a,new wi({id:this.userId||this.id,track:this.playerMediaTrack,container:a,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(n+1)})}))}let o=[...this.subVideoPlayerMap.values()];for(let n of o)n.setViewMirror(this.player.mirror),yield n.play()})}setAudioOutput(A){return this.player.setSinkId(A)}setAudioVolume(A){this.player.setVolume(A)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var A;return((A=this.player)==null?void 0:A.getInternalAudioLevel())||0}stop(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isPlayCalled&&(this.isPlayCalled=!1,this.isFirstVideoFrameEmitted=!1,this.player&&(this.log.info("stop ".concat(this.kind," player")),this.player.stop(HN(this)&&!A?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(e=>{e.stop()}),this.container=null)}resume(){return DA(this,null,function*(){var A;this.isPlayCalled&&(yield(A=this.player)==null?void 0:A.resume())})}close(){this._toInitState(),this.log.info("close"),this.isPlayCalled&&this.stop(!0)}_toInitState(){}setMute(A){this.muted=A,this._inputTrack&&(this._inputTrack.enabled=!A),this._outputTrack&&(this._outputTrack.enabled=!A),this.emit(A?"mute":"unmute",this),S.emit(A?K.TRACK_MUTED:K.TRACK_UNMUTED,{track:this})}setPlayerMute(A){this.player.setMuted(A)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(A){nE(A,A).add(fA.MUTE,this.onTrackMuted).add(fA.UNMUTE,this.onTrackUnmuted).add(fA.ENDED,this.onTrackEnded),A.muted&&this.onTrackMuted(),A.readyState===fA.ENDED&&this.onTrackEnded()}uninstallTrackEvent(A){pr(A)}setInputMediaStreamTrack(A){var e;let o=this._inputTrack;if(A!==o)return this._inputTrack=A,this.trackSettings=(e=A.getSettings)==null?void 0:e.call(A),A.enabled=!this.muted,o&&this.uninstallTrackEvent(o),this.installTrackEvent(A),this.emit("input-media-track-changed",A||null,o||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(A)}setOutputMediaStreamTrack(A){var e;let o=this._outputTrack;this instanceof Ru&&DQ(o)||A!==o&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",A.label):this.log.info("setOutputMediaStreamTrack",(e=A.getSettings)==null?void 0:e.call(A).deviceId,A.label),this._outputTrack=A,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!A),this.emit("output-media-track-changed",A))}setMediaType(A){this.mediaType=A}updatePlayingState(A){var e,o;if(this.isPlayCalled){if(A){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped)return this.player.play().catch(n=>this.handleAutoPlayFailed(n)),void this.log.info("playing state updated, play ".concat(this.kind))}else if(!this.player.isStopped)return HN(this)&&this.isAudio&&(e=this.user)!=null&&e.muteState.hasAudio&&(o=this.user)!=null&&o.muteState.audioMuted?void 0:(this.player.stop(HN(this)?this.jitterBufferDelay:0),void this.log.info("playing state updated, stop ".concat(this.kind)))}this.log.debug("updatePlayingState abort ".concat(this.isPlayCalled," ").concat(A," ").concat(this.player.isStopped))}handleAutoPlayFailed(A){return DA(this,null,function*(){var e;this.log.warn("handleAutoPlayFailed",A);let o=()=>{this.resume().then(()=>{document.removeEventListener("click",o,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((SQ||Eu)&&(yield AC(100),(e=this.player)!=null&&e.isPlaying))return;nC()}else document.addEventListener("click",o,!0);S.once(K.LOCAL_TRACK_CAPTURE_SUCCESS,n=>{let{track:a}=n;a.kind==="audio"&&Lt()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&o()}),this.emit("error",A)})}getVideoFrame(){return this.player instanceof wi?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(A){var e,o,n;if(this.isFirstVideoFrameEmitted)return;let a=(e=this.mediaTrack)==null?void 0:e.getSettings(),I=a?.width||((o=this.player.element)==null?void 0:o.videoWidth)||0,c=a?.height||((n=this.player.element)==null?void 0:n.videoHeight)||0;A===mi.RESIZE&&!I&&!c||A===mi.LOADED_META_DATA&&!I&&!c||(A===mi.LOADED_DATA&&!I&&!c&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,gu(this.rotation)&&([I,c]=[c,I]),this.emit("first-video-frame",{width:I,height:c,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"))}};vt([is([],Uo.INIT,{sync:!0})],yq.prototype,"_toInitState");var D$=Object.prototype.hasOwnProperty,KQ=function(A){if(A==null)return!0;if(typeof A=="boolean")return!1;if(typeof A=="number")return A===0;if(typeof A=="string"||typeof A=="function"||Array.isArray(A))return A.length===0;if(A instanceof Error)return A.message==="";if(Cc(A))switch(Object.prototype.toString.call(A)){case"[object File]":case"[object Map]":case"[object Set]":return A.size===0;case"[object Object]":for(let e in A)if(D$.call(A,e))return!1;return!0}return!1},y$=Kf({retryFunction:function(A){return DA(this,null,function*(){let e=function(I){return{audio:R$(I),video:M$(I)}}(A);nA.info("getUserMedia with constraints: ".concat(JSON.stringify(e)));let o=[],n=[],a=["label","deviceId","groupId"];if(e.audio&&(o=yield VQ(),nA.info("microphones: ".concat(nl(o.map(I=>fi(bt({},I),{groupId:I.groupId.substring(0,8)})),{keysToInclude:a})))),e.video&&(n=yield qQ(),nA.info("cameras: ".concat(nl(n,{keysToInclude:a}))),!rn(e.video)&&e.video.facingMode==="user"&&!e.video.deviceId)){let I=n.filter(c=>!c.label.includes("infrared")).find(c=>c.label.includes("facing front"));I&&(e.video.deviceId=I.deviceId,nA.info("exclude infrared camera: ".concat(JSON.stringify(e))))}try{let I=yield navigator.mediaDevices.getUserMedia(e);return $O&&I.getTracks().forEach(c=>{var u;let d=c.getCapabilities();nA.info("".concat(c.kind," capabilities: ").concat(nl(d,{keysToInclude:RN}))),!Ee(A.echoCancellation)&&((u=d.echoCancellation)==null?void 0:u.indexOf(A.echoCancellation))===-1&&nA.warn("Invalid argument for 'echoCancellation'. Expected one of [".concat(JSON.stringify(d.echoCancellation),"], but received '").concat(A.echoCancellation,"'"))}),e.audio&&JT(),I}catch(I){let{message:c}=I;throw I.name==="NotFoundError"&&(A.video&&n&&n.length===0&&(c=Wi({key:Mi.CAMERA_NOT_FOUND})),A.audio&&o&&o.length===0&&(c=Wi({key:Mi.MICROPHONE_NOT_FOUND}))),new Ct({code:Ge.INITIALIZE_FAILED,name:I.name,message:c,constraint:I.constraint})}})},settings:{retries:3,timeout:500},onError:A=>{let{error:e,retry:o,reject:n,retryFuncArgs:a,retriedCount:I}=A,c=I+1;e.name==="NotReadableError"||e.name==="OverconstrainedError"||e.name==="AbortError"?(c===1?(a[0].video&&(a[0].maxResolution=!1,(!Ma||a[0].width*a[0].height<=2073600)&&a[0].frameRate&&(a[0].frameRate=a[0].frameRate>10?10:5)),a[0].retryWhenExactFailed&&a[0].useExactDeviceId&&(a[0].useExactDeviceId=!1)):c===2?a[0].useDeviceIdOnly=!0:c===3&&!a[0].useExactDeviceId&&(a[0].useTrueAsConstraint=!0),o()):n(e),a[0].microphoneId&&RW(a[0].microphoneId,!1),a[0].cameraId&&RW(a[0].cameraId,!0)},onRetrying:A=>{nA.warn("getUserMedia NotReadableError observed, retrying [".concat(A,"/3]"))},onRetryFailed:A=>{Jo.logFailedEvent({eventType:oa.GET_USER_MEDIA_RETRY,error:A})},onRetrySuccess:A=>{Jo.logSuccessEvent({eventType:oa.GET_USER_MEDIA_RETRY}),Jo.uploadEvent({log:"stat-".concat(oa.GET_USER_MEDIA_RETRY,"-success-").concat(A)})}});function RW(A,e){return DA(this,null,function*(){let o=(e?yield qQ():yield VQ()).find(n=>n.deviceId===A);o&&$n(o.getCapabilities)&&nA.warn(nl(o.getCapabilities(),{keysToInclude:RN}))})}function R$(A){if(!A.audio)return!1;if(A.useTrueAsConstraint)return!0;let e={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:A.sampleRate};return!KQ(A.microphoneId)&&(e.deviceId=A.useExactDeviceId?{exact:A.microphoneId}:A.microphoneId,A.useDeviceIdOnly)?e:(hr(A.channelCount)&&(e.channelCount=A.channelCount),(rn(A.echoCancellation)||A.echoCancellation==="remote-only"||A.echoCancellation==="all")&&(e.echoCancellation=A.echoCancellation),rn(A.noiseSuppression)&&!A.noiseSuppression&&(e.noiseSuppression=!1),rn(A.autoGainControl)&&!A.autoGainControl&&(e.autoGainControl=!1),!!KQ(e)||e)}function M$(A){if(!A.video)return!1;if(A.useTrueAsConstraint)return!0;let{maxResolution:e=!0}=A,o={};return A.cameraId?o.deviceId=A.useExactDeviceId?{exact:A.cameraId}:A.cameraId:A.facingMode&&(o.facingMode=A.facingMode),A.useDeviceIdOnly&&!KQ(o)?o:(A.width&&(o.width={ideal:A.width},e&&!Yr&&(o.width.max=A.width)),A.height&&(o.height={ideal:A.height},e&&!Yr&&(o.height.max=A.height)),Yr&&lu&&A.width&&A.height&&A.width*A.height<101376&&(o.width=A.width,o.height=A.height),A.frameRate&&(o.frameRate=A.frameRate),!!KQ(o)||o)}var w$=y$;function MW(A){return Dn((e,o)=>function(){for(var n=arguments.length,a=new Array(n),I=0;I<n;I++)a[I]=arguments[I];return DA(this,null,function*(){return yield A.apply(this,a),e.apply(this,a)})})}function wm(A){return Dn((e,o)=>function(){for(var n=arguments.length,a=new Array(n),I=0;I<n;I++)a[I]=arguments[I];return DA(this,null,function*(){let c=yield e.apply(this,a);return yield A.call(this,...a),c})})}function wW(A){return Dn((e,o)=>function(){for(var n=arguments.length,a=new Array(n),I=0;I<n;I++)a[I]=arguments[I];return DA(this,null,function*(){try{return yield e.apply(this,a)}catch(c){A.call(this,c)}})})}function Dn(A){return function(e,o,n){return n.value=A(n.value,o),n}}var S$=(()=>{let A=!1,e=document.visibilityState;return()=>{document.visibilityState!==e&&nA.info("visibility change: ".concat(document.visibilityState)),!A&&(document.addEventListener("visibilitychange",()=>{nA.info("visibility change: ".concat(document.visibilityState)),e=document.visibilityState}),A=!0)}})(),v$=0,SW=class{constructor(A){G(this,"log"),G(this,"isRunning",!1),G(this,"queue",[]);let e="fq".concat(++v$);A&&(e+="|".concat(A)),this.log=nA.createLogger({id:e})}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var o,n;let a=bt({},A),I=new Promise((c,u)=>{a.resolve=c,a.reject=u});return a.promise=I,e?this.length<=1?this.queue.push(a):(n=(o=this.lastQueueItem)==null?void 0:o.promise)==null||n.then(a.resolve,a.reject):this.queue.push(a),this.log.debug("push ".concat(this.length),A.funcName,A.args),this.isRunning||this.callNext(),I}shift(){let A=this.queue.shift();return this.log.debug("shift ".concat(this.length),A?.funcName,A?.args),A}callNext(){if(this.isRunning||this.length===0)return;let{fn:A,args:e,context:o,resolve:n,reject:a,funcName:I}=this.queue[0];this.log.debug("callNext",this.length,I,e),this.isRunning=!0,A.apply(o,e).then(n,a).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},Ex=new WeakMap,lx=new WeakMap;function VT(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return function(e,o,n){let a=n.value;return n.value=function(){let I=Ex.get(this)||new SW;for(var c=arguments.length,u=new Array(c),d=0;d<c;d++)u[d]=arguments[d];return Ex.set(this,I),I.push({fn:a,args:u,context:this,funcName:o},A)},n}}function vW(A){return function(e,o,n){let a=n.value;return n.value=function(){var I,c,u;let d=[];for(var R=arguments.length,k=new Array(R),_=0;_<R;_++)k[_]=arguments[_];return(c=(I=Ex.get(this))==null?void 0:I.queue)==null||c.forEach(Z=>d.push(Z)),(u=lx.get(this))==null||u.forEach(Z=>Z?.queue.forEach(iA=>d.push(iA))),d.forEach(Z=>{Z.reject(new Ct({code:Ge.API_CALL_ABORTED,message:A}))}),Ex.delete(this),lx.delete(this),a.apply(this,k)},n}}function Kh(A,e){return function(o,n,a){let I=a.value,c=u=>A(...u);return a.value=function(){for(var u=arguments.length,d=new Array(u),R=0;R<u;R++)d[R]=arguments[R];let k=lx.get(this)||new Map,_=k.get(c(d))||new SW(e?.(...d));return k.set(c(d),_),lx.set(this,k),_.push({fn:I,args:d,context:this,funcName:n})},a}}function jh(A,e){return Dn((o,n)=>function(){let a=A;try{for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];let d=o.apply(this,c),R=ki();return fh(d)?d.then(k=>(e?ct.addSuccessEvent({key:a,cost:ki()-R}):ct.addSuccessEvent({key:a}),k)).catch(k=>{throw ct.addFailedEvent({key:a,error:k}),k}):(ct.addSuccessEvent({key:a}),d)}catch(d){throw ct.addFailedEvent({key:a,error:d}),d}})}var NW={};function la(){}XC(NW,{Events:()=>os,Inspect:()=>Wh,LastSink:()=>Cx,Sink:()=>Go,Subscribe:()=>Bx,TimeoutError:()=>kW,audit:()=>CAA,bindCallback:()=>Z$,bindNodeCallback:()=>X$,buffer:()=>O$,bufferCount:()=>U$,bufferTime:()=>FAA,call:()=>TW,catchError:()=>XW,combineLatest:()=>LW,concat:()=>k$,concatMap:()=>wAA,concatMapTo:()=>SAA,count:()=>eAA,create:()=>Vr,debounce:()=>uAA,debounceTime:()=>QAA,defer:()=>FW,delay:()=>UAA,deliver:()=>ko,dispose:()=>Rq,elementAt:()=>dAA,empty:()=>Nq,every:()=>DAA,exhaustMap:()=>kAA,exhaustMapTo:()=>_AA,expand:()=>xAA,filter:()=>Sm,find:()=>hAA,findIndex:()=>pAA,first:()=>fAA,fromAnimationFrame:()=>W$,fromArray:()=>J$,fromEvent:()=>Ln,fromEventPattern:()=>H$,fromFetch:()=>V$,fromIterable:()=>q$,fromPromise:()=>YW,fromReadableStream:()=>j$,fromReader:()=>K$,groupBy:()=>bAA,identity:()=>N$,ignoreElements:()=>rAA,iif:()=>b$,inspect:()=>GW,interval:()=>xW,last:()=>mAA,map:()=>Gq,mapTo:()=>RAA,max:()=>tAA,merge:()=>Mq,mergeMap:()=>NAA,mergeMapTo:()=>TAA,min:()=>iAA,never:()=>$$,nothing:()=>la,of:()=>P$,pairwise:()=>yAA,pipe:()=>Jn,race:()=>bW,range:()=>z$,reduce:()=>PW,retry:()=>HAA,scan:()=>VW,setAsapScheduler:()=>Y$,share:()=>qT,shareReplay:()=>_$,skip:()=>sAA,skipUntil:()=>gAA,skipWhile:()=>Tq,startWith:()=>wq,subject:()=>yu,subscribe:()=>Ks,sum:()=>oAA,switchMap:()=>Qx,switchMapTo:()=>hx,take:()=>LM,takeLast:()=>aAA,takeUntil:()=>Qc,takeWhile:()=>nAA,tap:()=>kq,throttle:()=>EAA,throwError:()=>AAA,timeInterval:()=>LAA,timeout:()=>JAA,timer:()=>vq,toPromise:()=>YAA,toReadableStream:()=>PAA,withLatestFrom:()=>F$,zip:()=>L$});var TW=A=>A(),N$=A=>A;function Rq(){this.dispose()}var GW=()=>typeof __FASTRX_DEVTOOLS__<"u",T$=1,Wh=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(A){let e=new G$(A,this,this.streamId++);return os.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Cx=class{constructor(){this.defers=new Set,this.disposed=!1}next(A){}complete(){this.dispose()}error(A){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=la,this.error=la,this.next=la,this.dispose=la,this.subscribe=la,this.doDefer()}subscribe(A){return A instanceof Wh?A.subscribe(this):A(this),this}get bindSubscribe(){return A=>this.subscribe(A)}doDefer(){this.defers.forEach(TW),this.defers.clear()}defer(A){this.defers.add(A)}removeDefer(A){this.defers.delete(A)}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}},Go=class extends Cx{constructor(A){super(),this.sink=A,A.defer(this.bindDispose)}next(A){this.sink.next(A)}complete(){this.sink.complete()}error(A){this.sink.error(A)}},Bx=class extends Cx{constructor(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:la,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:la,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:la;if(super(),this._next=e,this._error=o,this._complete=n,this.then=la,A instanceof Wh){let a={toString:()=>"subscribe",id:0,source:A};this.defer(()=>{os.defer(a,0)}),os.create(a),os.pipe(a),this.sourceId=a.id,this.subscribe(A),os.subscribe({id:a.id,end:!0}),e==la?this._next=I=>os.next(a,0,I):this.next=I=>{os.next(a,0,I),e(I)},n==la?this._complete=()=>os.complete(a,0):this.complete=()=>{this.dispose(),os.complete(a,0),n()},o==la?this._error=I=>os.complete(a,0,I):this.error=I=>{this.dispose(),os.complete(a,0,I),o(I)}}else this.subscribe(A)}next(A){this._next(A)}complete(){this.dispose(),this._complete()}error(A){this.dispose(),this._error(A)}};function Jn(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),n=1;n<e;n++)o[n-1]=arguments[n];return o.reduce((a,I)=>I(a),A)}function Vr(A,e,o){if(GW()){let n=Object.defineProperties(Object.setPrototypeOf(A,Wh.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:e,writable:!0,configurable:!0},args:{value:o,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});os.create(n);for(let a=0;a<o.length;a++){let I=o[a];typeof I=="function"&&I instanceof Wh&&os.addSource(n,I)}return n}return A}function ko(A,e){return function(){for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];return I=>{if(I instanceof Wh){let c=Vr(u=>{let d=new A(u,...n);d.sourceId=c.id,d.subscribe(I)},e,arguments);return c.source=I,os.pipe(c),c}return c=>I(new A(c,...n))}}}function zh(A,e){window.postMessage({source:"fastrx-devtools-backend",payload:{event:A,payload:e}})}var G$=class extends Go{constructor(A,e,o){super(A),this.source=e,this.id=o,this.sourceId=A.sourceId,this.defer(()=>{os.defer(this.source,this.id)})}next(A){os.next(this.source,this.id,A),this.sink.next(A)}complete(){os.complete(this.source,this.id),this.sink.complete()}error(A){os.complete(this.source,this.id,A),this.sink.error(A)}},os={addSource(A,e){zh("addSource",{id:A.id,name:A.toString(),source:{id:e.id,name:e.toString()}})},next(A,e,o){zh("next",{id:A.id,streamId:e,data:o&&o.toString()})},subscribe(A,e){let{id:o,end:n}=A;zh("subscribe",{id:o,end:n,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(A,e,o){zh("complete",{id:A.id,streamId:e,err:o?o.toString():null})},defer(A,e){zh("defer",{id:A.id,streamId:e})},pipe(A){zh("pipe",{name:A.toString(),id:A.id,source:{id:A.source.id,name:A.source.toString()}})},update(A){zh("update",{id:A.id,name:A.toString()})},create(A){A.id||(A.id=T$++),zh("create",{name:A.toString(),id:A.id})}},kW=class extends Error{constructor(A){super("timeout after ".concat(A,"ms")),this.timeout=A}},_W=class extends Cx{constructor(A){super(),this.source=A,this.sinks=new Set}add(A){A.defer(()=>this.remove(A)),this.sinks.add(A).size===1&&(this.reset(),this.subscribe(this.source))}remove(A){this.sinks.delete(A),this.sinks.size===0&&this.dispose()}next(A){this.sinks.forEach(e=>e.next(A))}complete(){this.sinks.forEach(A=>A.complete()),this.sinks.clear()}error(A){this.sinks.forEach(e=>e.error(A)),this.sinks.clear()}};function qT(){return A=>{let e=new _W(A);if(A instanceof Wh){let o=Vr(n=>{e.add(n)},"share",arguments);return e.sourceId=o.id,o.source=A,os.pipe(o),o}return Vr(e.add.bind(e),"share",arguments)}}function Mq(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(n=>{let a=new Go(n),I=e.length;a.complete=()=>{--I===0&&n.complete()},e.forEach(a.bindSubscribe)},"merge",arguments)}function bW(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(n=>{let a=new Map;e.forEach(I=>{let c=new Go(n);a.set(I,c),c.complete=()=>{a.delete(I),a.size===0?n.complete():c.dispose()},c.next=u=>{a.delete(I),a.forEach(d=>d.dispose()),c.resetNext(),c.resetComplete(),c.next(u)}}),e.forEach(I=>a.get(I).subscribe(I))},"race",arguments)}function k$(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(n=>{let a=0,I=e.length,c=new Go(n);c.complete=()=>{a<I&&!c.disposed?(c.doDefer(),c.subscribe(e[a++])):n.complete()},c.complete()},"concat",arguments)}function _$(A){return e=>{let o=new _W(e),n=[];return o.next=function(a){n.push(a),n.length>A&&n.shift(),this.sinks.forEach(I=>I.next(a))},Vr(a=>{a.defer(()=>o.remove(a)),n.forEach(I=>a.next(I)),o.add(a)},"shareReplay",arguments)}}function b$(A,e,o){return Vr(n=>A()?e(n):o(n),"iif",arguments)}function LW(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(n=>{let a=e.length,I=a,c=a,u=new Array(a),d=()=>{--c===0&&n.complete()};e.forEach((R,k)=>{let _=new Go(n);_.next=Z=>{I--,_.next=iA=>{u[k]=iA,I===0&&n.next(u)},_.next(Z)},_.complete=d,_.subscribe(R)})},"combineLatest",arguments)}function L$(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(n=>{let a=e.length,I=a,c=new Array(a),u=()=>{--I===0&&n.complete()};e.forEach((d,R)=>{let k=new Go(n),_=[];c[R]=_,k.next=Z=>{_.push(Z),c.every(iA=>iA.length)&&n.next(c.map(iA=>iA.shift()))},k.complete=u,k.subscribe(d)})},"zip",arguments)}function wq(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return n=>Vr(function(a){let I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length;for(;I<c&&!a.disposed;)a.next(e[I++]);a.disposed||a.subscribe(n)},"startWith",arguments)}var F$=ko(class extends Go{constructor(A){super(A);let e=new Go(this.sink);for(var o=arguments.length,n=new Array(o>1?o-1:0),a=1;a<o;a++)n[a-1]=arguments[a];e.next=I=>this.buffer=I,e.complete=la,e.subscribe(LW(...n))}next(A){this.buffer&&this.sink.next([A,...this.buffer])}},"withLatestFrom"),U$=ko(class extends Go{constructor(A,e,o){super(A),this.bufferSize=e,this.startBufferEvery=o,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(A){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(A)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(A),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(A=>this.sink.next(A)),super.complete()}},"bufferCount"),O$=ko(class extends Go{constructor(A,e){super(A),this.buffer=[];let o=new Go(A);o.next=n=>{A.next(this.buffer),this.buffer=[]},o.complete=la,o.subscribe(e)}next(A){this.buffer.push(A)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),x$=function(A,e,o,n){return new(o||(o=Promise))(function(a,I){function c(R){try{d(n.next(R))}catch(k){I(k)}}function u(R){try{d(n.throw(R))}catch(k){I(k)}}function d(R){R.done?a(R.value):function(k){return k instanceof o?k:new o(function(_){_(k)})}(R.value).then(c,u)}d((n=n.apply(A,[])).next())})};function yu(A){let e=arguments,o=qT()(Vr(n=>{o.next=a=>n.next(a),o.complete=()=>n.complete(),o.error=a=>n.error(a),A&&n.subscribe(A)},"subject",e));return o.next=la,o.complete=la,o.error=la,o}function FW(A){return Vr(e=>e.subscribe(A()),"defer",arguments)}var bM={promise:A=>{Promise.resolve().then(A)},setImmediate:typeof setImmediate<"u"?A=>setImmediate(A):null,setTimeout:A=>setTimeout(A,0)},Sq=typeof Promise<"u"?bM.promise:bM.setImmediate?bM.setImmediate:bM.setTimeout,UW=A=>e=>{Sq(()=>A(e))},Y$=A=>{typeof A=="function"?Sq=A:bM[A]&&(Sq=bM[A])},OW=A=>UW(e=>{for(let o=0;!e.disposed&&o<A.length;o++)e.next(A[o]);e.complete()});function P$(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Vr(OW(e),"of",arguments)}function J$(A){return Vr(OW(A),"fromArray",arguments)}function xW(A){return Vr(e=>{let o=0,n=setInterval(()=>e.next(o++),A);return e.defer(()=>{clearInterval(n)}),"interval"},"interval",arguments)}function vq(A,e){return Vr(o=>{let n=0,a=setTimeout(()=>{if(o.removeDefer(I),o.next(n++),e){let c=setInterval(()=>o.next(n++),e);o.defer(()=>{clearInterval(c)})}else o.complete()},A),I=()=>clearTimeout(a);o.defer(I)},"timer",arguments)}function ux(A,e){return o=>{let n=a=>o.next(a);o.defer(()=>e(n)),A(n)}}function H$(A,e){return Vr(ux(A,e),"fromEventPattern",arguments)}function Ln(A,e){if("on"in A&&"off"in A)return Vr(ux(o=>A.on(e,o),o=>A.off(e,o)),"fromEvent",arguments);if("addListener"in A&&"removeListener"in A)return Vr(ux(o=>A.addListener(e,o),o=>A.removeListener(e,o)),"fromEvent",arguments);if("addEventListener"in A)return Vr(ux(o=>A.addEventListener(e,o),o=>A.removeEventListener(e,o)),"fromEvent",arguments);throw"target is not a EventDispachter"}function YW(A){return Vr(e=>{A.then(o=>{e.next(o),e.complete()},e.error.bind(e))},"fromPromise",arguments)}function V$(A,e){return Vr(FW(()=>YW(fetch(A,e))),"fromFetch",arguments)}function q$(A){return Vr(UW(e=>{try{for(let o of A){if(e.disposed)return;e.next(o)}e.complete()}catch(o){e.error(o)}}),"fromIterable",arguments)}function K$(A){let e=o=>x$(this,void 0,void 0,function*(){try{if(o.disposed)return;let{done:n,value:a}=yield A.read();if(n)return void o.complete();o.next(a),e(o)}catch(n){o.error(n)}});return Vr(o=>{e(o)},"fromReader",arguments)}function j$(A){return Vr(e=>{let o=new AbortController,n=o.signal;e.defer(()=>o.abort("cancelled")),A.pipeTo(new WritableStream({write(a){e.next(a)},close(){e.complete()},abort(a){e.error(a)}}),{signal:n}).then(()=>e.complete(),a=>e.error(a))},"fromReadableStream",arguments)}function W$(){return Vr(A=>{let e=requestAnimationFrame(function o(n){A.disposed||(A.next(n),e=requestAnimationFrame(o))});A.defer(()=>cancelAnimationFrame(e))},"fromAnimationFrame",arguments)}function z$(A,e){return Vr(function(o){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e+A;for(;n<a&&!o.disposed;)o.next(n++);return o.complete(),"range"},"range",arguments)}function Z$(A,e){for(var o=arguments.length,n=new Array(o>2?o-2:0),a=2;a<o;a++)n[a-2]=arguments[a];return Vr(I=>{let c=n.concat(u=>(I.next(u),I.complete()));A.apply(e,c)},"bindCallback",arguments)}function X$(A,e){for(var o=arguments.length,n=new Array(o>2?o-2:0),a=2;a<o;a++)n[a-2]=arguments[a];return Vr(I=>{let c=n.concat((u,d)=>u?I.error(u):(I.next(d),I.complete()));A.apply(e,c)},"bindNodeCallback",arguments)}function $$(){return Vr(()=>{},"never",arguments)}function AAA(A){return Vr(e=>e.error(A),"throwError",arguments)}function Nq(){return Vr(A=>A.complete(),"empty",arguments)}var KT=class extends Go{constructor(A,e,o){super(A),this.f=e;let n=()=>{this.sink.next(this.acc),this.sink.complete()};o===void 0?this.next=a=>{this.acc=a,this.complete=n,this.resetNext()}:(this.acc=o,this.complete=n)}next(A){this.acc=this.f(this.acc,A)}},PW=ko(KT,"reduce"),eAA=A=>ko(KT,"count")((e,o)=>A(o)?e+1:e,0),tAA=()=>ko(KT,"max")(Math.max),iAA=()=>ko(KT,"min")(Math.min),oAA=()=>ko(KT,"sum")((A,e)=>A+e,0),Sm=ko(class extends Go{constructor(A,e,o){super(A),this.filter=e,this.thisArg=o}next(A){this.filter.call(this.thisArg,A)&&this.sink.next(A)}},"filter"),rAA=ko(class extends Go{next(A){}},"ignoreElements"),LM=ko(class extends Go{constructor(A,e){super(A),this.count=e}next(A){this.sink.next(A),--this.count===0&&(this.doDefer(),this.complete())}},"take"),Qc=ko(class extends Go{constructor(A,e){super(A);let o=new Go(A);o.next=()=>{o.doDefer(),A.complete()},o.complete=Rq,o.subscribe(e)}},"takeUntil"),nAA=ko(class extends Go{constructor(A,e){super(A),this.f=e}next(A){this.f(A)?this.sink.next(A):(this.doDefer(),this.complete())}},"takeWhile"),aAA=A=>PW((e,o)=>(e.push(o),e.length>A&&e.shift(),e),[]),sAA=ko(class extends Go{constructor(A,e){super(A),this.count=e}next(A){--this.count===0&&(this.next=super.next)}},"skip"),gAA=ko(class extends Go{constructor(A,e){super(A),A.next=la;let o=new Go(A);o.next=()=>{o.doDefer(),A.resetNext()},o.complete=Rq,o.subscribe(e)}},"skipUntil"),Tq=ko(class extends Go{constructor(A,e){super(A),this.f=e}next(A){this.f(A)||(this.next=super.next,this.next(A))}},"skipWhile"),IAA={leading:!0,trailing:!1},cAA=class extends Go{constructor(A,e,o){super(A),this.durationSelector=e,this.trailing=o}cacheValue(A){this.last=A,this.disposed&&this.throttle(A)}send(A){this.sink.next(A),this.throttle(A)}throttle(A){this.reset(),this.subscribe(this.durationSelector(A))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},JW=class extends Go{constructor(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:IAA;super(A),this.durationSelector=e,this.config=o,this._throttle=new cAA(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(A){this._throttle.disposed&&this.config.leading?this._throttle.send(A):this._throttle.cacheValue(A)}complete(){this._throttle.throttle=la,this._throttle.complete(),super.complete()}},EAA=ko(JW,"throttle"),lAA={leading:!1,trailing:!0},CAA=A=>ko(JW,"audit")(A,lAA),BAA=class extends Go{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},HW=class extends Go{constructor(A,e){super(A),this.durationSelector=e,this._debounce=new BAA(this.sink),this._debounce.dispose()}next(A){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=A,this._debounce.subscribe(this.durationSelector(A))}complete(){this._debounce.complete(),super.complete()}},uAA=ko(HW,"debounce"),QAA=A=>ko(HW,"debounceTime")(e=>vq(A)),dAA=ko(class extends Go{constructor(A,e,o){super(A),this.count=e,this.defaultValue=o}next(A){this.count--===0&&(this.defaultValue=A,this.doDefer(),this.complete())}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("not enough elements in sequence"))}},"elementAt"),hAA=A=>e=>LM(1)(Tq(o=>!A(o))(e)),pAA=ko(class extends Go{constructor(A,e){super(A),this.f=e,this.i=0}next(A){this.f(A)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},"findIndex"),fAA=ko(class extends Go{constructor(A,e,o){super(A),this.f=e,this.defaultValue=o,this.index=0}next(A){(!this.f||this.f(A,this.index++))&&(this.defaultValue=A,this.doDefer(),this.complete())}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"first"),mAA=ko(class extends Go{constructor(A,e,o){super(A),this.f=e,this.defaultValue=o,this.index=0}next(A){(!this.f||this.f(A,this.index++))&&(this.defaultValue=A)}complete(){this.defaultValue!==void 0?(this.sink.next(this.defaultValue),super.complete()):this.error(new Error("no elements in sequence"))}},"last"),DAA=ko(class extends Go{constructor(A,e){super(A),this.predicate=e,this.index=0}next(A){this.predicate(A,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){this.result!==void 0?(this.sink.next(this.result),super.complete()):this.error(new Error("no elements in sequence"))}},"every"),VW=ko(class extends Go{constructor(A,e,o){super(A),this.f=e,o===void 0?this.next=n=>{this.acc=n,this.resetNext(),this.sink.next(this.acc)}:this.acc=o}next(A){this.sink.next(this.acc=this.f(this.acc,A))}},"scan"),yAA=ko(class extends Go{constructor(){super(...arguments),this.hasLast=!1}next(A){this.hasLast?this.sink.next([this.last,A]):this.hasLast=!0,this.last=A}},"pairwise"),qW=class extends Go{constructor(A,e,o){super(A),this.mapper=e,this.thisArg=o}next(A){super.next(this.mapper.call(this.thisArg,A))}},Gq=ko(qW,"map"),RAA=A=>ko(qW,"mapTo")(e=>A),jT=class extends Go{constructor(A,e,o){super(A),this.data=e,this.context=o}next(A){let e=this.context.combineResults;e?this.sink.next(e(this.data,A)):this.sink.next(A)}tryComplete(){this.context.resetComplete(),this.dispose()}},WT=class zZ extends Go{constructor(e,o,n){super(e),this.makeSource=o,this.combineResults=n,this.index=0}subInner(e,o){let n=this.currentSink=new o(this.sink,e,this);this.complete===zZ.prototype.complete&&(this.complete=this.tryComplete),n.complete=n.tryComplete,n.subscribe(this.makeSource(e,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},KW=class extends jT{},jW=class extends WT{next(A){this.subInner(A,KW),this.next=e=>{this.currentSink.dispose(),this.subInner(e,KW)}}},Qx=ko(jW,"switchMap");function dx(A){return(e,o)=>A(()=>e,o)}var hx=dx(ko(jW,"switchMapTo")),MAA=class extends jT{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},WW=class extends WT{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(A){this.next2(A),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),MAA),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},wAA=ko(WW,"concatMap"),SAA=dx(ko(WW,"concatMapTo")),vAA=class extends jT{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},zW=class extends WT{constructor(){super(...arguments),this.inners=new Set}next(A){this.subInner(A,vAA),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(A=>A.resetComplete()):this.dispose()}},NAA=ko(zW,"mergeMap"),TAA=dx(ko(zW,"mergeMapTo")),GAA=class extends jT{dispose(){this.context.resetNext(),super.dispose()}},ZW=class extends WT{next(A){this.next=la,this.subInner(A,GAA)}},kAA=ko(ZW,"exhaustMap"),_AA=dx(ko(ZW,"exhaustMapTo")),bAA=ko(class extends Go{constructor(A,e){super(A),this.f=e,this.groups=new Map}next(A){let e=this.f(A),o=this.groups.get(e);o===void 0&&(o=yu(),o.key=e,this.groups.set(e,o),super.next(o)),o.next(A)}complete(){this.groups.forEach(A=>A.complete()),super.complete()}error(A){this.groups.forEach(e=>e.error(A)),super.error(A)}},"groupBy"),LAA=ko(class extends Go{constructor(){super(...arguments),this.start=new Date}next(A){this.sink.next({value:A,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},"timeInterval"),FAA=ko(class extends Go{constructor(A,e){super(A),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(A){this.buffer.push(A)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},"bufferTime"),UAA=ko(class extends Go{constructor(A,e){super(A),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(A){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:o,data:n}=e;super.next(n),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(o))}},A)}next(A){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:A})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},"delay"),XW=ko(class extends Go{constructor(A,e){super(A),this.selector=e}error(A){this.dispose(),this.selector(A)(this.sink)}},"catchError"),OAA=class extends jT{tryComplete(){let A=this.context.inners.delete(this);super.dispose(),A&&this.context.checkComplete()}next(A){this.sink.next(A),this.context.expandValue(A)}},xAA=ko(class extends WT{constructor(A,e){super(A,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(A){this.sink.next(A),this.expandValue(A)}expandValue(A){let e=new OAA(this.sink,A,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(A,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},"expand"),YAA=()=>A=>new Promise((e,o)=>{let n;new Bx(A,a=>n=a,o,()=>e(n))}),PAA=()=>A=>{let e;return new ReadableStream({start(o){e=new Bx(A,o.enqueue.bind(o),o.error.bind(o),o.close.bind(o))},cancel(){e.dispose()}})},Ks=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:la,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:la,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:la;return n=>new Bx(n,A,e,o)},kq=ko(class extends Go{constructor(A,e){super(A),e instanceof Function?this.next=o=>{e(o),A.next(o)}:(e.next&&(this.next=o=>{e.next(o),A.next(o)}),e.complete&&(this.complete=()=>{e.complete(),A.complete()}),e.error&&(this.error=o=>{e.error(o),A.error(o)}))}},"tap"),JAA=ko(class extends Go{constructor(A,e){super(A),this.timeout=e,this.id=setTimeout(()=>this.error(new kW(this.timeout)),this.timeout)}next(A){super.next(A),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),HAA=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1/0;return e=>{if(e instanceof Wh){let o=Vr(n=>{let a=A,I=new Go(n);I.error=c=>{a-- >0?I.subscribe(e):n.error(c)},I.sourceId=o.id,I.subscribe(e)},"retry",[A]);return o.source=e,os.pipe(o),o}return o=>{let n=A,a=new Go(o);a.error=I=>{n-- >0?e(a):o.error(I)},e(a)}}},_q=(A=>(A[A.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",A[A.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",A))(_q||{}),zT=class ZZ extends yq{constructor(e,o){super({mediaType:e,PlayerClass:o}),G(this,"isRemote",!1),G(this,"deviceId"),G(this,"groupId",""),G(this,"label",""),G(this,"sourceTrack"),G(this,"enableAutoSwitchWhenRecapturing",!0),G(this,"_isRecapturing",!1),G(this,"_lastRecaptureTime",0),G(this,"_onMuteTimeoutId",-1),G(this,"_encodeCheckTimeoutId",-1),G(this,"recaptureMode",0),G(this,"profile"),G(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return!(!this.mediaTrack||this.sourceTrack===this.mediaTrack)}encodeFrame(e,o){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(fA.MUTE,this.onTrackMuted),e.addEventListener(fA.UNMUTE,this.onTrackUnmuted),e.addEventListener(fA.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===fA.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(fA.MUTE,this.onTrackMuted),e.removeEventListener(fA.UNMUTE,this.onTrackUnmuted),e.removeEventListener(fA.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){var n,a;let I=this.sourceTrack;try{let c,u=ki();S.emit(K.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(c=new MediaStream,c.addTrack(e.customSource)):(o||(n=this.sourceTrack)==null||n.stop(),c=yield w$(e));let d=c.getTracks()[0];return yield this.setInputMediaStreamTrack(d),e.customSource||(this.sourceTrack=d,this.updateDeviceIdInUse(),this.listenDeviceChange()),S.emit(K.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:ki()-u,profile:this.profile,room:(a=this.manager)==null?void 0:a.room}),c}catch(c){throw S.emit(K.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:c}),this.log.error("getUserMedia error observed ".concat(c)),c}finally{o&&I?.stop()}})}setOutputMediaStreamTrack(e){var o;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(o=this.room)==null?void 0:o.replaceTrack(this)}get hasFlag(){var e,o;let n=mQ(((e=this.room)==null?void 0:e.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&n.hasVideo||this.mediaType===1&&n.hasAudio||this.mediaType===2&&n.hasAuxiliary}publish(e,o){return DA(this,null,function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield o,this._checkPublishFlag(e)})}_checkPublishFlag(e){return new Promise((o,n)=>DA(this,null,function*(){var a,I,c,u,d;let R=()=>n(new Ct({code:Ge.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?o():((this.state===Uo.INIT||this.state==="ready")&&R(),Jn(Ln(e,"local-publish-flag-changed"),Sm(()=>this.hasFlag),Qc(Mq(Ln(this,Uo.INIT),Ln(this,"ready"))),Ks(o,n,R))),(c=(I=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:I.hadRecentBadUplink)!=null&&c.call(I,2))return o();let k=e.heartbeatCount,_=((d=(u=this.mediaTrack)==null?void 0:u.stats)==null?void 0:d.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>DA(this,null,function*(){var Z,iA,cA,TA,JA,Ie,XA,Ft;if((cA=(iA=(Z=this.room)==null?void 0:Z.networkQuality)==null?void 0:iA.hadRecentBadUplink)!=null&&cA.call(iA,2)||e.heartbeatCount-k<3)return o();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((TA=this.mediaTrack)!=null&&TA.stats){let Nt=this.mediaTrack.stats.totalFrames||0;Nt-_===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",Nt)}let ie=this.kind===fA.AUDIO,ke=this.stat.bytesSent>0;if(ct[ke?"addSuccessEvent":"addFailedEvent"]({key:ie?503700:513702}),!ie){let Nt={H264:513704,H265:513705,VP8:513706}[((Ie=(JA=this.room)==null?void 0:JA.videoCodec)==null?void 0:Ie.toUpperCase())||"H264"];Nt&&ct[ke?"addSuccessEvent":"addFailedEvent"]({key:Nt})}if(!ke){if(ct.addEnum({key:ie?503701:513703,value:_Q()}),Jo.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(Qu()||bQ()),userId:this.userId}),this.log.warn(ie?"encode failed":"".concat((Ft=(XA=this.room)==null?void 0:XA.videoCodec)==null?void 0:Ft.toUpperCase()," encode failed")),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield AC(5e3),this.stat.bytesSent>0||this.hasFlag)))return o();this.emit("6",this),n(new Ct({message:"".concat(this.strMediaType," encode failed"),code:ie?Ge.AUDIO_ENCODE_FAILED:Ge.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),S.emit(K.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return DA(this,null,function*(){if(this.sourceTrack&&Jh){let{deviceId:e,groupId:o}=this.sourceTrack.getSettings(),{label:n}=this.sourceTrack;(yield function(a){return DA(this,arguments,function(I){let{newDeviceId:c,oldDeviceId:u,oldGroupId:d,oldLabel:R,kind:k}=I;return function*(){return c===u&&(k!==fA.AUDIO||c!==bf||(yield DW(d,R)))}()})}({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=n,o&&(this.groupId=o),Ix().then(a=>{let I=a.find(c=>{let u=c.deviceId===e;return o&&(u=u&&c.groupId===o),u});I&&this.emit("2",I)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return!(!this.deviceId||!this.sourceTrack||this.kind===fA.AUDIO&&!function(o){if(o instanceof CanvasCaptureMediaStreamTrack||!(o instanceof MediaStreamTrack))return!1;let n=o.label.toLocaleLowerCase();if(n.includes("mic")||n.includes("麦克风"))return!0;let a="".concat((o?.getSettings()||{}).deviceId,"_").concat(fA.AUDIO_INPUT);return!!mq.has(a)}(this.sourceTrack)||this.kind===fA.VIDEO&&!function(o){if(o instanceof CanvasCaptureMediaStreamTrack||!(o instanceof MediaStreamTrack))return!1;let n=o.label.toLocaleLowerCase();if(n.includes("camera")||n.includes("webcam"))return!0;let a="".concat((o?.getSettings()||{}).deviceId,"_").concat(fA.VIDEO_INPUT);return!!mq.has(a)}(this.sourceTrack)||this._isRecapturing||e&&lu&&Ma)}onTrackMuted(){if(super.onTrackMuted(),S$(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Ff)return void setTimeout(()=>this.onTrackMuted(),Ff);this._onMuteTimeoutId=setTimeout(()=>DA(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((Ea||ra)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return DA(this,null,function*(){if(zg(ZZ.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Ff)return void setTimeout(()=>this.onTrackEnded(),Ff);this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let a=this.sourceTrack;o||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let I={useExactDeviceId:!0};if(e==="user"||e==="environment")I.facingMode=e;else{let c;(this.kind==="audio"?yield VQ():yield qQ()).find(u=>u.deviceId===e)&&(c=e),I.deviceId=c}return this.capture(I,o).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),S.emit(K.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(c=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(c.message)),this.emit("5",c),S.emit(K.LOCAL_TRACK_RECAPTURE,{track:this,error:c})}).finally(()=>{o&&a?.stop()})})}getRecoverCaptureDeviceId(){return DA(this,null,function*(){let e=this instanceof Ru;if(e&&this.facingMode)return this.facingMode;let{deviceId:o}=this;if(o){let n=(XT.get(o)||0)+1;if(XT.set(o,n),n>=3&&this.enableAutoSwitchWhenRecapturing){let a=e?(yield qQ()).find(I=>!XT.has(I.deviceId)):(yield VQ()).find(I=>!XT.has(I.deviceId));a&&(this.log.warn("".concat(o," capture fail ").concat(n," times, change new ").concat(a.deviceId)),o=a.deviceId)}}return o})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),S.emit(K.LOCAL_TRACK_STOPPED,{track:this}),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this),this._onMuteTimeoutId&&clearTimeout(this._onMuteTimeoutId)}close(){super.close(),this.stopCapture()}};vt([is(Uo.INIT,"ready",{ignoreError:!0,sync:!0})],zT.prototype,"setStateToReady"),vt([VT()],zT.prototype,"capture"),vt([is("ready","publish",{ignoreError:!0,success(){S.emit(K.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(A){var e;(e=this.room)==null||e.localTracks.delete(this);let o="error",n=A instanceof Ct?A:A.cause instanceof Ct?A.cause:A,a=!1;n instanceof Ct&&(n.message.includes("timeout")?o="timeout":n.code===Ge.API_CALL_ABORTED&&(a=!0,o="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:o,error:n}),this.log[a?"info":"error"]("publish failed",n)}}),jh(521714,!1)],zT.prototype,"publish"),vt([Dn(A=>function(){return DA(this,null,function*(){let e=this.state==="publish"?"started":"starting";A.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:e,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),is([],"ready",{sync:!0})],zT.prototype,"unpublish");var ZT=zT,XT=new Map;S.on(K.SWITCH_DEVICE_SUCCESS,A=>{A.track.deviceId&&XT.delete(A.track.deviceId)});var vm=class mG extends ZT{constructor(e){super(1,m$),G(this,"mediaType",1),G(this,"volume",0),G(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),G(this,"playerMuted",!0),G(this,"pipeline"),G(this,"earMonitorGainNode",new iI),G(this,"_output",new iI),G(this,"codecPipeline",[]),G(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),G(this,"mixedAudioReferenceMap",new Map),G(this,"isAudioContextLongSuspended",!1),G(this,"after3aSilenceStartTime",0),G(this,"_micMuted",!1),G(this,"_volumeDetectionTrack",null),G(this,"_volumeDetectionSource",new iI),this.manager=e,this.pipeline=new QW(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this._volumeDetectionSource.pipeTo(this.player.pipeline.volumeMeter),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),S.on(K.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return gx.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.isProcessEnabled)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){Ee(e)||(e!==0||this.after3aSilenceStartTime?e>0&&(this.after3aSilenceStartTime=0):this.after3aSilenceStartTime=ki())}setInputMediaStreamTrack(e){return DA(this,null,function*(){let o=this.trackSettings||{};ct.addEnum({key:501701,value:o.channelCount||0,useUV:!1}),ct.addEnum({key:501702,value:o.sampleRate||0,useUV:!1}),ct.addEnum({key:502700,value:0});let{sampleRate:n,channelCount:a}=o;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:n,channelCount:a}))),this.pipeline.source.channelCount=a||1,this.pipeline.replaceSource(e),yield zg(mG.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(e){return DA(this,arguments,function(o){var n=this;let{deviceId:a,customSource:I,useExactDeviceId:c=!0,retryWhenExactFailed:u}=o,d=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return function*(){let R=yield zg(mG.prototype,n,"capture").call(n,{video:!1,audio:!0,microphoneId:a,echoCancellation:n.profile.echoCancellation,autoGainControl:n.profile.autoGainControl,noiseSuppression:n.profile.noiseSuppression,sampleRate:n.profile.sampleRate,channelCount:n.profile.channelCount,useExactDeviceId:c,retryWhenExactFailed:u,customSource:I},d);return JT(),R}()})}switchDevice(e){return DA(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource&&(e!==bf||(yield DW(this.groupId,this.label))))return;try{this.log.info("switchDevice audio to: ".concat(e)),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),S.emit(K.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(o){throw this.log.error("switch microphone failed ".concat(o)),this.deviceId&&this.recapture(this.deviceId),o}}})}listenDeviceChange(){vs&&!vs.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&vs.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return DA(this,null,function*(){if(e.deviceId===this.deviceId){let o=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(_q[this.recaptureMode],". Current microphone is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){Ua(this.userId,{eventId:2003,param1:6,streamType:1});let n=yield VQ();n[0]?this.recapture(n[0].deviceId):o=!0}o&&vs.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(vs.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}update3A(e){return DA(this,arguments,function(o){var n=this;let{echoCancellation:a,noiseSuppression:I,autoGainControl:c}=o;return function*(){let u=n.sourceTrack||n.mediaTrack;if(!u)return;let d=u.getConstraints(),R=!1;!Ee(a)&&a!==n.profile.echoCancellation&&(n.profile.echoCancellation=a,d.echoCancellation=a,R=!0),!Ee(I)&&I!==n.profile.noiseSuppression&&(n.profile.noiseSuppression=I,d.noiseSuppression=I,R=!0),!Ee(c)&&c!==n.profile.autoGainControl&&(n.profile.autoGainControl=c,d.autoGainControl=c,R=!0),R&&(Yr||Ma?yield u.applyConstraints(d).catch(k=>n._log.warn("update3A failed: ",k)):n.deviceId&&(yield n.recapture(n.deviceId,!0)))}()})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&ct.addEnum({key:502700,value:2})}setMute(e,o){var n;this._cleanupVolumeDetectionTrack(),e==="microphone"?(this._micMuted=!0,this.sourceTrack&&(this.sourceTrack.enabled=!1),o&&this._setupVolumeDetectionTrack(),((n=this.manager)==null?void 0:n.mixWeight)<=1?(this.muted=!0,this._inputTrack&&(this._inputTrack.enabled=!1),this._outputTrack&&(this._outputTrack.enabled=!1),this.emit("mute",this),S.emit(K.TRACK_MUTED,{track:this})):this._outputTrack&&(this._outputTrack.enabled=!0)):e===!0?(this._micMuted=!1,this.muted=!0,this.sourceTrack&&(this.sourceTrack.enabled=!1),this._inputTrack&&(this._inputTrack.enabled=!1),this._outputTrack&&(this._outputTrack.enabled=!1),o&&this._setupVolumeDetectionTrack(),this.emit("mute",this),S.emit(K.TRACK_MUTED,{track:this})):(this._micMuted=!1,this.muted=!1,this.sourceTrack&&(this.sourceTrack.enabled=!0),this._inputTrack&&(this._inputTrack.enabled=!0),this._outputTrack&&(this._outputTrack.enabled=!0),this.emit("unmute",this),S.emit(K.TRACK_UNMUTED,{track:this}))}_setupVolumeDetectionTrack(){let e=this.sourceTrack||this.mediaTrack;if(!e)return;this._volumeDetectionTrack=e.clone(),this._volumeDetectionTrack.enabled=!0;let o=ax(this._volumeDetectionTrack);o&&this._volumeDetectionSource.setNode(o)}_cleanupVolumeDetectionTrack(){this._volumeDetectionTrack&&(this._volumeDetectionTrack.stop(),this._volumeDetectionTrack=null),this._volumeDetectionSource.deleteNode()}get isMicMuted(){return this._micMuted}setAudioVolume(e){super.setAudioVolume(0),Ea&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(tI().createGain()),this._output.setNode(tI().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!Ma&&!Ea)return this.update3A({echoCancellation:e})}addDenoiser(e){var o;tE<=92&&((o=this.trackSettings)==null?void 0:o.sampleRate)!==48e3?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(ct.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1))}mixAudioReference(e,o){if(this.mixedAudioReferenceMap.has(o))return;this.log.info("mixAudioReference() => ".concat(o));let n=ax(e);if(!n)return;let a=new iI,I=tI().createGain();I.gain.value=1;let c=new iI;a.pipeTo(c).pipeTo(this.pipeline.mixNode),a.setNode(n),c.setNode(I),this.mixedAudioReferenceMap.set(o,[a,c])}unMixAudioReference(e){let[o,n]=this.mixedAudioReferenceMap.get(e)||[];o&&(this.log.info("unMixAudioReference() => ".concat(e)),o.deleteNode(),n?.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,o){let[n,a]=this.mixedAudioReferenceMap.get(e)||[];a!=null&&a.node&&(a.node.gain.value=o/100,this.log.info("setAudioReferenceVolume() => ".concat(e," ").concat(a.node.gain.value)))}addAudioProcessor(e,o,n){this.pipeline.silentNode.setNode(n),this.pipeline.mixNode.setNode(o),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this._cleanupVolumeDetectionTrack(),this.mixedAudioReferenceMap.forEach(e=>{let[o,n]=e;o.deleteNode(),n.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),vs.off("audioInputAdded",this.handleMicrophoneAdded,this),vs.off("audioInputRemoved",this.handleMicrophoneRemoved,this),S.off(K.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){try{yield zg(mG.prototype,this,"recapture").call(this,e,o)}catch(n){let a=(yield VQ()).find(I=>I.deviceId!==e);if(!a)throw n;yield zg(mG.prototype,this,"recapture").call(this,a.deviceId)}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((o,n)=>n?n({frame:o,ntp:gh()}):o,e):e}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(e=>e)}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended(e){let{isSuspended:o}=e;if(this.pipeline.isProcessEnabled)if(o){this.isAudioContextLongSuspended=!0,this.log.warn("context has suspended for ".concat(1.5," seconds, change to source audio").concat(TQ?"":", non-Safari"));let n=this.sourceTrack||this.mediaTrack;n&&this.setOutputMediaStreamTrack(n)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let o=this.sourceTrack||this.mediaTrack;o&&(e=o)}super.setOutputMediaStreamTrack(e)}};function px(A,e){return e+4<=A.byteLength&&A.getUint8(e)===0&&A.getUint8(e+1)===0&&A.getUint8(e+2)===0&&A.getUint8(e+3)===1?4:e+3<=A.byteLength&&A.getUint8(e)===0&&A.getUint8(e+1)===0&&A.getUint8(e+2)===1?3:0}function $W(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=new DataView(A),n=[],a=0;for(;a<o.byteLength;){let I=px(o,a);if(I===0){a+=1;continue}let c=-1;for(let _=a+I;_<o.byteLength;_+=1)if(px(o,_)>0){c=_;break}let u=c===-1?o.byteLength:c,d=u-a,R=new ArrayBuffer(d),k=new DataView(R);for(let _=0;_<d;_+=1)k.setUint8(_,o.getUint8(a+_));n.push(new fx(k,e)),a=u}return n}var fx=class{constructor(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.dataView=A,this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let{seiPayloadStartIndex:A}=this,e=this.dataView.byteLength-2,o=[],n=0;for(let I=A;I<=e;I++){let c=this.dataView.getInt8(I);switch(c){case 0:case 1:case 2:case 3:n===2&&(o.push(3),n=0),c===0?n+=1:n=0,o.push(c);break;default:n=0,o.push(c)}}o.push(this.dataView.getInt8(this.dataView.byteLength-1));let a=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...o]).buffer);this.dataView=a}removePreventionByte(){let{seiPayloadStartIndex:A}=this,e=this.dataView.byteLength-1,o=[],n=0;for(let I=A;I<=e;I++)switch(this.dataView.getInt8(I)){case 0:n++,o.push(this.dataView.getInt8(I));break;case 3:n!==2&&o.push(this.dataView.getInt8(I)),n=0;break;default:o.push(this.dataView.getInt8(I)),n=0}let a=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...o]).buffer);this.dataView=a}get seiPayloadStartIndex(){let A=6;for(let e=6;e<this.dataView.buffer.byteLength&&(A+=1,this.dataView.getUint8(e)===255);e+=1);return A}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let A=0,e=6;for(let I=6;I<this.dataView.buffer.byteLength;I+=1){let c=this.dataView.getUint8(I);if(e+=1,c!==255){A+=c;break}A+=255}let o=new ArrayBuffer(A),n=new DataView(o),a=e;for(let I=0;I<o.byteLength;I+=1)n.setInt8(I,this.dataView.getInt8(a+I));return n}get naluType(){let A=this.getStartCodeLength();return A>=this.dataView.byteLength?0:31&this.dataView.getUint8(A)}getStartCodeLength(){return this.dataView.byteLength>=4&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===0&&this.dataView.getUint8(3)===1?4:this.dataView.byteLength>=3&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===1?3:0}get isIDR(){return this.naluType===5}get isSPS(){return this.naluType===7}get isPPS(){return this.naluType===8}get isSEI(){return this.naluType===6}},VAA=class{constructor(){G(this,"_seiMessageList",[]),G(this,"_smallSeiMessageList",[]),G(this,"_seiPayloadType",243)}encodeSEINalu(A){let e=A.byteLength,o=parseInt(String(e/255),10),n=e%255,a=[];a.push(0,0,0,1,6,this._seiPayloadType);for(let c=0;c<o;c++)a.push(255);a.push(n);let I=new DataView(A);return a.push(...new Uint8Array(I.buffer)),a.push(128),new fx(new DataView(new Uint8Array(a).buffer),!0)}sendSEI(A,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(A),e!=null&&e.small&&this._smallSeiMessageList.push(A)}isEmpty(){return!this._seiMessageList.length}getNaluCount(A){let e=0,o=0,n=new DataView(A);for(let a=0;a<A.byteLength;a++)switch(n.getUint8(a)){case 0:e++;break;case 1:(e===2||e===3)&&o++,e=0;break;default:e=0}return o}encode(A,e){let o=e?this._smallSeiMessageList:this._seiMessageList;if(o.length>0&&A.data.byteLength>0){let n=9-this.getNaluCount(A.data);if(n<=0)return 0;let a=o.splice(0,n).reverse().map(this.encodeSEINalu.bind(this)),I=a.reduce((k,_)=>k+_.dataView.byteLength,0),c=new ArrayBuffer(I+A.data.byteLength),u=new DataView(c),d=new DataView(A.data),R=0;for(let k=0;k<a.length;k++)for(let _=0;_<a[k].dataView.byteLength;_++)u.setInt8(R++,a[k].dataView.getInt8(_));for(let k=0;k<A.data.byteLength;k++)u.setInt8(R++,d.getInt8(k));return A.data=c,a.length}return 0}},A4=class $M extends ZT{constructor(e){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,wi),G(this,"profile",bt({},vf)),G(this,"avoidCropping",!1),G(this,"_scaleResolutionDownBy"),G(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0}),G(this,"small"),G(this,"isNeedToSetBandwidth"),G(this,"muteImage"),G(this,"manager"),G(this,"_seiCodec",new VAA),this.manager=e;let o=()=>{var n;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let a=ol(((n=this.room)==null?void 0:n.sdkAppId)||0)?uN:NR;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(a)),this.setProfile(fi(bt({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(Jh&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!((e=this.manager)==null||!e.hasSmall)}setMute(e){return DA(this,null,function*(){var o,n,a;if(Sr(e)){if(this.muteImage===e)return;yield(o=this.manager)==null?void 0:o.deleteWatermark("mute"),yield(n=this.manager)==null?void 0:n.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,zg($M.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(a=this.manager)==null?void 0:a.deleteWatermark("mute"),this.muteImage=void 0),zg($M.prototype,this,"setMute").call(this,e)})}capture(e){return DA(this,arguments,function(o){var n=this;let{deviceId:a,facingMode:I,useExactDeviceId:c=!0,customSource:u,retryWhenExactFailed:d=!0}=o;return function*(){let R={audio:!1,video:!0,facingMode:I||n.facingMode,cameraId:a,width:n.profile.width,height:n.profile.height,frameRate:n.profile.frameRate,useExactDeviceId:c,retryWhenExactFailed:d,customSource:u};if(R.facingMode==="environment"){let k=yield n.getDeviceIdWhenUsingBackCamera();k&&(R.cameraId=k)}return zg($M.prototype,n,"capture").call(n,R)}()})}setProfile(e){var o;let n=this.fallbackProfile(e);if(n.bitrate&&(this.isNeedToSetBandwidth=n.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(n);else{let a=ol(((o=this.room)==null?void 0:o.sdkAppId)||0)?uN:NR;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(a)),super.setProfile(fi(bt({},this.profile),{width:1920,height:1080}))}}applyProfile(){return DA(this,null,function*(){var e,o;if(!this.mediaTrack)return;let{width:n=0,height:a=0}=(this.sourceTrack||this.mediaTrack).getSettings(),I=n*a,c=this.settings,u=c.height!==this.profile.height||c.width!==this.profile.width||c.frameRate!==this.profile.frameRate;if(u&&(al===16&&this.deviceId?yield this.recapture(this.deviceId):(DQ(this.outMediaTrack)?yield(e=this.outMediaTrack)==null?void 0:e.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}):yield(o=this.sourceTrack||this.mediaTrack)==null?void 0:o.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:d=0,height:R=0}=(this.sourceTrack||this.mediaTrack).getSettings(),k=d*R;return u&&k&&I&&k===I?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:fA.VIDEO,videoType:fA.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},o=this.sourceTrack||this.mediaTrack;return Jh&&o&&Object.assign(e,o.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:AM(this.settings,this.profile)}isAllowed2k4k(e){var o;return!(this.room&&this.room.scheduleResult&&!this.isScreen&&!(e.height*e.width<3686400))||((o=this.room.scheduleResult.trtcAutoConf)==null?void 0:o["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return DA(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let o={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?o.facingMode=e:o.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(o),S.emit(K.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(o){throw this.log.error("switch camera failed ".concat(o)),this.deviceId&&this.recapture(this.deviceId),o}})}getDeviceIdWhenUsingBackCamera(){return DA(this,null,function*(){let e;try{if(iT&&!Th&&Ax){let o=(yield qQ(!0)).map(a=>{var I;return fi(bt({},a),{capabilities:(I=a.getCapabilities)==null?void 0:I.call(a)})}).filter(a=>{var I,c;return(c=(I=a.capabilities)==null?void 0:I.facingMode)==null?void 0:c.includes("environment")}),n=o[0];o.forEach(a=>{var I,c,u,d;let{capabilities:R}=a;((I=R.width)!=null&&I.max&&(c=R.height)!=null&&c.max?R.width.max*R.height.max:0)>((u=n.capabilities.width)!=null&&u.max&&(d=n.capabilities.height)!=null&&d.max?n.capabilities.width.max*n.capabilities.height.max:0)&&(n=a)}),n!=null&&n.capabilities&&(this._log.info("use max resolution back camera",n),e=n.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}return e})}updateSmallConfig(e){return DA(this,null,function*(){var o,n;this._log.info("update small stream config: ".concat(JSON.stringify(e)));let a=!this.small;this.small=this.fallbackProfile(e,!0),yield(o=this.manager)==null?void 0:o.update(),a&&(yield(n=this.room)==null?void 0:n.enableSmall(!0)),this.log.info("update small stream config success")})}fallbackProfile(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=e.width>e.height,a=bt({},e);return e.width*e.height<=19200&&ra&&Bc&&(this.log.warn("".concat(o?"small ":"","resolution is ").concat(e.width,"*").concat(e.height,", fallback to 240*180 for android chrome")),a.width=n?240:180,a.height=n?180:240,a.bitrate=Math.max(e.bitrate,150)),e.width*e.height>921600&&YO&&(a.width=n?1280:720,a.height=n?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),gT($g,"14.3")&&kh($g,"14.0",!0)&&this.on("7",()=>{let I=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=I?640:480,this.profile.height=I?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>230400&&(this.profile.width=I?640:360,this.profile.height=I?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!o&&this.avoidCropping&&(Bc||Yr)&&!QM()&&e.width*e.height<=230400&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,a.width=1280,a.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),a}stopSmall(){var e,o;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(o=this.room)==null||o.enableSmall(!1))}listenDeviceChange(){vs&&!vs.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&vs.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return DA(this,null,function*(){if(e.deviceId===this.deviceId){let o=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(_q[this.recaptureMode],". Current camera is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){Ua(this.userId,{eventId:2003,param1:7,streamType:2});let n=yield qQ();n[0]?this.recapture(n[0].deviceId):o=!0}o&&vs.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return DA(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(vs.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn("camera added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))})}encodeFrame(e,o){if(!this.manager)return e;let n=o?8:this.mediaType;return this.manager.encodePipeline.reduceRight((a,I)=>I?I({frame:a,mediaType:n}):a,e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(e=>e)}play(e,o){return Ee(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,o)}close(){vs.off("videoInputAdded",this.handleCameraAdded,this),vs.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return DA(this,null,function*(){try{yield zg($M.prototype,this,"recapture").call(this,e)}catch(o){let n=(yield qQ()).find(a=>a.deviceId!==e);if(!n)throw o;yield zg($M.prototype,this,"recapture").call(this,n.deviceId)}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info("setContentHint ".concat(e)),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||Ee(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};vt([wm(function(A){this.setContentHint(A.contentHint||"motion")})],A4.prototype,"capture");var Ru=A4,e4={};XC(e4,{REPORT_TYPE:()=>eM,buildSSOPackage:()=>Iu,bytes2ms:()=>jR,calculateScaleResolutionDownNumber:()=>AM,concatArrayBuffers:()=>qf,convertObjectNumberToInt:()=>$R,copyProperties:()=>dO,deepClone:()=>Dh,deepCloneBasic:()=>yh,deepMerge:()=>tB,delay:()=>AC,fibonacci:()=>ph,formatedTime:()=>MO,getConstructorName:()=>Yf,getContainerFromElement:()=>LN,getEnv:()=>BO,getFirst16Bits:()=>SO,getInternalVersion:()=>yO,getLast16Bits:()=>tM,getLoggerUrl:()=>dh,getMediaStreamTrackInfo:()=>YN,getMuteStateFromFlag:()=>mQ,getNetworkType:()=>qR,getNumNetworkType:()=>hh,getReconnectionTimeout:()=>fQ,getStringByteLength:()=>XR,getTestSignalDomain:()=>uO,getTurnServer:()=>RO,getUint32Version:()=>UN,getValueType:()=>ya,getViewListFromView:()=>Hf,glog:()=>pO,ipv4ToUint32:()=>Jf,isArray:()=>Aa,isAudioWorkletSupported:()=>fO,isBoolean:()=>rn,isConstructor:()=>mh,isEmpty:()=>zR,isFunction:()=>$n,isLangChinese:()=>rl,isMediaStreamTrack:()=>_N,isNumber:()=>hr,isObject:()=>Xc,isOverseaSdkAppId:()=>ol,isPlainObject:()=>Cc,isPortrait:()=>FN,isPromise:()=>fh,isRemoteTrack:()=>bN,isRotate90Or270:()=>gu,isSetSinkIdSupported:()=>mO,isString:()=>Sr,isUndefined:()=>Ee,isVideoMixerOutputTrack:()=>DQ,loadImage:()=>Vf,loadVideo:()=>wO,ms2bytes:()=>hO,ms2samples:()=>WR,normalizeUrl:()=>xN,performanceNow:()=>ki,promiseAny:()=>Pf,samples2ms:()=>kN,setNetworkTypeFromWebRTC:()=>KR,stringify:()=>nl,stringifyIncludeValue:()=>ZR,throttlePromise:()=>ON});var qAA=[-1,-1,1,-1,-1,1,1,1],KAA=[0,0,1,0,0,1,1,1],$T=class mj extends Uo{constructor(e,o){if(super(),this.context=e,G(this,"name"),G(this,"input"),G(this,"output"),G(this,"texture"),G(this,"ctx2d",null),G(this,"fbo"),G(this,"width",0),G(this,"height",0),G(this,"x",0),G(this,"y",0),G(this,"program"),G(this,"vertexShader"),G(this,"fragmentShader"),G(this,"totalFrames",0),G(this,"dropFrames",0),G(this,"matchInputSize",!0),G(this,"texCoordBuffer"),G(this,"positionBuffer"),G(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),G(this,"cost",0),G(this,"_canvas",null),G(this,"_image"),G(this,"log"),this.context.on("disconnect",this.close,this),this.name=o.name,this.log=o.logger,this.matchInputSize=o.matchInputSize!==!1,this.width=o.width||e.width,this.height=o.height||e.height,this._image=o.image,e instanceof Mu)e.ctx&&o.create2d&&(typeof OffscreenCanvas=="function"&&al!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);else try{let n=e.ctx;this.texCoordBuffer=this.createBuffer(KAA),this.positionBuffer=this.createBuffer(qAA),o.createTexture!==!1&&(this.texture=n.createTexture(),this.useTexture(),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.pixelStorei(n.UNPACK_ALIGNMENT,1)),o.useFbo&&(this.fbo=n.createFramebuffer(),this.useBufferFrame(),this.useTexture(),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,this.width,this.height,0,n.RGBA,n.UNSIGNED_BYTE,null),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,this.texture,0)),o.useDefaultProgram?this.program=e.defaultProgam:(o.vertexShaderSource||o.fragmentShaderSource)&&(this.vertexShader=o.vertexShaderSource?e.createShader(n.VERTEX_SHADER,o.vertexShaderSource):e.defaultVShader,this.fragmentShader=o.fragmentShaderSource?e.createShader(n.FRAGMENT_SHADER,o.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(n){this.context.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(n.message||n)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let o=this.context.ctx,n=o.createFramebuffer();return o.bindFramebuffer(o.FRAMEBUFFER,n),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,e,0),n}connect(e){for(var o=arguments.length,n=new Array(o>1?o-1:0),a=1;a<o;a++)n[a-1]=arguments[a];return e.addInput(this,...n),this.output=e,e}addInput(e){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let o=Date.now();return!!(this.context instanceof aC&&this.render(e)||this.context instanceof Mu&&this.render2d(e))&&(this.totalFrames++,this.cost=Date.now()-o,!0)}render2d(e){var o;return!((o=this.input)==null||!o.requestFrame(e))&&this.draw2d(this.input.image,0,0,this.width,this.height)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;var o;(o=this.output)==null||o.update(e)}disconnect(){for(var e,o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];(e=this.output)==null||e.removeInput(this,...n),delete this.output}removeInput(e){delete this.input}close(){var e,o;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(o=this.input)==null||o.disconnect(),this.context instanceof aC){let n=this.context.ctx;n.deleteBuffer(this.texCoordBuffer),n.deleteBuffer(this.positionBuffer),this.fbo&&n.deleteFramebuffer(this.fbo),this.texture&&n.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&n.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&n.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&n.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(){let e=this.context.ctx;for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];n.forEach((I,c)=>{I&&(e.activeTexture(e.TEXTURE0+c),e.bindTexture(e.TEXTURE_2D,I))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let o=this.context.ctx,n=o.createBuffer();return o.bindBuffer(o.ARRAY_BUFFER,n),o.bufferData(o.ARRAY_BUFFER,new Float32Array(e),o.STATIC_DRAW),n}setTexBuffer(e){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,this.texCoordBuffer),o.bufferData(o.ARRAY_BUFFER,new Float32Array(e),o.STATIC_DRAW)}setPosBuffer(e){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,this.positionBuffer),o.bufferData(o.ARRAY_BUFFER,new Float32Array(e),o.STATIC_DRAW)}changeBufferData(e,o){let n=this.context.ctx;n.bindBuffer(n.ARRAY_BUFFER,e),n.bufferData(n.ARRAY_BUFFER,new Float32Array(o),n.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];n.forEach((I,c)=>{e.enableVertexAttribArray(c),e.bindBuffer(e.ARRAY_BUFFER,I),e.vertexAttribPointer(c,2,e.FLOAT,!1,0,0)})}getVertexPoint(e,o){return[e/this.width*2-1,o/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,o){if(this.width!==e||this.height!==o){if(this.width=e,this.height=o,this._canvas&&(this._canvas.width=e,this._canvas.height=o),this.texture&&this.fbo){this.useTexture();let n=this.context.ctx;n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,o,0,n.RGBA,n.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,o)}}draw(e,o){this.setAttributes(e||this.positionBuffer,o||this.texCoordBuffer);let n=this.context.ctx;n.drawArrays(n.TRIANGLE_STRIP,0,4)}draw2d(e,o,n,a,I,c,u,d,R){let k=!(Ee(c)||Ee(u)||Ee(d)||Ee(R));return!(!this.ctx2d||!e)&&(e instanceof ImageData?(k?this.ctx2d.putImageData(e,o,n,c,u,d,R):this.ctx2d.putImageData(e,o,n),this.emit(mj.RENDER,this.ctx2d.canvas)):(k?this.ctx2d.drawImage(e,c,u,d,R,o,n,a,I):this.ctx2d.drawImage(e,o,n,a,I),this.emit(mj.RENDER,e)),typeof VideoFrame<"u"&&e instanceof VideoFrame&&e.close(),!0)}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var e;let{totalFrames:o,x:n,y:a,width:I,height:c,name:u,cost:d}=this,R=Date.now(),k=(o-this.lastInfo.totalFrames)/((R-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:o,x:n,y:a,width:I,height:c,timestamp:R,fps:k,name:u,cost:d},bt({parent:(e=this.input)==null?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let o=this.context.ctx,n=o.createTexture();return this.useTextures(n),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.UNPACK_ALIGNMENT,1),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,e),n}};G($T,"RENDER","render"),vt([is(Uo.INIT,"connected",{sync:!0})],$T.prototype,"connect"),vt([is("connected",Uo.INIT,{ignoreError:!0,sync:!0})],$T.prototype,"disconnect"),vt([is([],"closed",{sync:!0})],$T.prototype,"close");var Il=$T,jAA=Jn(xW(250),Gq(()=>performance.now()),qT()),WAA=[0,1,1,1,0,0,1,0],bq=class extends Il{constructor(A,e){super(A,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},e)),G(this,"_intervalId",0),G(this,"_sequence",0),G(this,"checkGLError",!1),G(this,"checkVisibilityChange"),A instanceof Mu?this.ctx2d=A.ctx||null:A.available&&e!=null&&e.mirrorUpAndDown&&this.setTexBuffer(WAA)}start(A){this.log.info("".concat(this.name," start render ").concat(A," fps")),nn.clearTask(this._intervalId),this._intervalId=nn.run("intervalInWorker",()=>{if(A!==this.context.frameRate&&(nn.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof aC){let e=this.context.ctx.getError();e&&this.context.destroy(new Ct({code:Ge.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(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(Il.RENDER,this.context._canvas),!0)}addInput(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),n=1;n<e;n++)o[n-1]=arguments[n];super.addInput(A,...o),this.start(this.context.frameRate)}update(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.state!=="closed"&&(this._intervalId&&(nn.clearTask(this._intervalId),this._intervalId=0,A===1&&(this.log.info("".concat(this.name," use requestVideoFrameCallback")),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info("".concat(this.name," use timer")),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(A){super.removeInput(A),nn.clearTask(this._intervalId)}resize(A,e){super.resize(A,e),this.context.setSize(A,e)}close(){super.close(),nn.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Lq=class extends bq{constructor(A,e){super(A,e),G(this,"_videoTrack"),G(this,"_muteOb"),G(this,"_closedOb",Ln(this,"closed")),G(this,"_subscription"),G(this,"_canvasContainer"),Number(Cu)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=A.canvas.captureStream().getVideoTracks(),this._muteOb=Ln(this._videoTrack,"mute"),Jn(Ln(this._videoTrack,"ended"),Qc(this._closedOb),Ks(()=>{this.context.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){var A;this._subscription=Jn(this._muteOb,Qc(this._closedOb),hx((A=5e3,e=>{let o=performance.now();Jn(jAA,Tq(n=>n-o<A),LM(1))(e)})),Sm(()=>{var e;return!((e=this._videoTrack)==null||!e.muted||document.hidden)}),Ks(()=>{this.context.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var A;(A=this._subscription)==null||A.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(A){return this.putCanvasIntoDom(),super.render(A)}render2d(A){return this.putCanvasIntoDom(),super.render2d(A)}close(){var A,e;super.close(),(A=this._videoTrack)==null||A.stop(),delete this._videoTrack,(e=this._canvasContainer)==null||e.remove()}},zAA=class extends Lq{render(A){var e;let o=!((e=this.input)==null||!e.requestFrame(A));if(this.context._canvas2d){let n=this.context._canvas2d.getContext("2d");n.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),n.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height),this.emit(Il.RENDER,this.context._canvas2d)}else this.emit(Il.RENDER,this.context._canvas);return o}},ZAA=class extends Lq{constructor(A,e,o){super(A,{name:"smallDestination",logger:o}),this.resolution=e}resize(A,e){let o,n=A*e,a=this.resolution.width*this.resolution.height;this.log.info("big res: ".concat(A,"*").concat(e," small res: ").concat(this.resolution.width,"*").concat(this.resolution.height," ")),n>a?o=n/a:(this.log.warn("Small stream resolution is not smaller than big stream, which is invalid. big: ".concat(A," * ").concat(e," small: ").concat(this.resolution.width," * ").concat(this.resolution.height)),o=n/19200),super.resize(A/Math.sqrt(o),e/Math.sqrt(o))}},t4=class extends Il{constructor(A,e){super(A,bt({name:"imageSource"},e)),G(this,"_lastImage"),G(this,"_totalFrames",0),G(this,"_autoResize",!1),G(this,"_canvasRendered"),G(this,"videoCallbackId",0),G(this,"waitingFirstFrame",!0),G(this,"shouldUpdate",!0),this._autoResize=e?.autoResize!==!1,al===16&&(this._canvasRendered=yu(),Jn(this._canvasRendered,wq(this._image),Qx(o=>o instanceof HTMLCanvasElement?Ln(o,"rendered"):Nq()),Qc(Ln(this,"closed")),Ks(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let A=this.image;this.videoCallbackId&&A.cancelVideoFrameCallback(this.videoCallbackId),YQ()&&!document.hidden&&(this.videoCallbackId=A.requestVideoFrameCallback((e,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(A,e){var o;let{width:n,height:a}=this,{image:I}=this;if(I instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:n,videoHeight:a}=I,!n||!a)return!1;I.width=n,I.height=a}else if(I instanceof HTMLImageElement||I instanceof ImageData||I instanceof ImageBitmap){if({width:n,height:a}=I,I!==this._lastImage)this._lastImage=I;else if(n===this.width&&a===this.height)return!0}else I instanceof HTMLCanvasElement||I instanceof OffscreenCanvas?({width:n,height:a}=I,this._lastImage=I):typeof VideoFrame<"u"&&I instanceof VideoFrame&&({displayWidth:n,displayHeight:a}=I,(o=this._lastImage)==null||o.close(),this._lastImage=I);if(!this._autoResize)return!0;if(this.width===n&&this.height===a&&this.totalFrames){if(e){this.useTexture();let c=this.context.ctx;c.texSubImage2D(c.TEXTURE_2D,0,0,0,c.RGBA,c.UNSIGNED_BYTE,I)}}else{if(e){this.useTexture();let c=this.context.ctx;c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,I)}this.resize(n,a)}return!0}get image(){return this._image}set image(A){var e;(e=this._canvasRendered)==null||e.next(A),this._image=A}render(A){return this._render(A,!0)}render2d(A){return this._render(A,!1)}},i4=class extends t4{constructor(A,e,o){super(A,o),this._player=e,this.name="videoPlayerSource",Jn(Ln(this._player,mi.PLAYER_STATE_CHANGED),Qc(Ln(this,"closed")),Sm(n=>{let{state:a}=n;return a==="PLAYING"}),Ks(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},FM=class extends i4{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(A,e,o){super(A,new wi({id:o.name,track:e,muted:!0,container:null,objectFit:"contain",log:o.logger}),o),this.name="videoTrackSource",this._player.play()}replaceTrack(A){this.waitingFirstFrame=!0,this._player.setTrack(A),this._player.play()}close(){super.close(),this._player.stop()}},XAA=class extends Il{constructor(A,e,o){super(A,fi(bt({name:"textSource"},o),{create2d:!0})),G(this,"hasChange",!0),G(this,"content",""),this.ctx2d.textBaseline="top",this.content=e.content||"",e.font&&(this.font=e.font),e.color&&(this.color=e.color)}set font(A){this.ctx2d&&(this.ctx2d.font=A,this.hasChange=!0)}get font(){var A;return((A=this.ctx2d)==null?void 0:A.font)||""}set color(A){this.ctx2d&&(this.ctx2d.fillStyle=A,this.hasChange=!0)}get color(){var A;return((A=this.ctx2d)==null?void 0:A.fillStyle)||""}render2d(A){return!(!this.ctx2d||!this.hasChange)&&(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0)}render(A){return!1}resize(A,e){if(!this.ctx2d)return;let{color:o,font:n}=this;super.resize(A,e),this.color=o,this.font=n}drawMultilineText(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1.2;if(!this.ctx2d)return;let n=this.ctx2d.measureText(this.content);e+=n.fontBoundingBoxAscent||n.actualBoundingBoxAscent||0;let a=this.font.match(/(\d+)px/),I=(a?parseInt(a[1],10):16)*o,c=this.content.split(`
`);for(let u=0;u<c.length;u++)this.ctx2d.fillText(c[u],A,e+u*I)}},AG=class extends Uo{constructor(A){super(),G(this,"frameRate"),G(this,"_canvas"),G(this,"log"),G(this,"hasAlpha",!1),G(this,"name"),G(this,"error"),this.name=A.name,this.log=A.logger.createChild({id:"vc-".concat(this.name)}),this.frameRate=A.frameRate}get canvas(){return this._canvas}set width(A){this._canvas&&(this._canvas.width=A)}get width(){var A;return((A=this._canvas)==null?void 0:A.width)||0}set height(A){this._canvas&&(this._canvas.height=A)}get height(){var A;return((A=this._canvas)==null?void 0:A.height)||0}setSize(A,e){this._canvas&&(this._canvas.width=A,this._canvas.height=e)}createVideoTrackSource(A,e){return new FM(this,A,{logger:this.log,name:e})}createVideoTrackDestination(A){return new Lq(this,A)}createVideoImageSource(A,e){return new t4(this,e?Object.assign(e,{logger:this.log,image:A}):{logger:this.log,image:A})}createVideoPlayerSource(A,e){return new i4(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}createTextSource(A,e){return new XAA(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};G(AG,"_ids",0);var eG=class extends AG{constructor(){super(...arguments),G(this,"defaultProgam"),G(this,"defaultVShader"),G(this,"defaultFShader"),G(this,"ctx"),G(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(AG._ids++)),A&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",MN),!this.ctx)throw new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,`
// 顶点着色器
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main() {
gl_Position = a_position;
v_texCoord = a_texCoord;
}
`),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,`
// 片元着色器
precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D u_texture;
void main() {
gl_FragColor = texture2D(u_texture, v_texCoord);
} `),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(A){let e="";return A&&(e=A.message,this.error=A,ct.addFailedEvent({key:512702,error:A})),this.disconnect(),this.log.info("video context destroy".concat(e)?": ".concat(e):""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),A}set width(A){var e;(e=this.ctx)==null||e.viewport(0,0,A,this.height),super.width=A,this._canvas2d&&(this._canvas2d.width=A)}set height(A){var e;(e=this.ctx)==null||e.viewport(0,0,this.width,A),super.height=A,this._canvas2d&&(this._canvas2d.height=A)}setSize(A,e){var o;(o=this.ctx)==null||o.viewport(0,0,A,e),super.setSize(A,e),this._canvas2d&&(this._canvas2d.width=A,this._canvas2d.height=e)}createShader(A,e){let o=this.ctx,n=o.createShader(A);return o.shaderSource(n,e),o.compileShader(n),n}createProgram(A,e){let o=this.ctx,n=o.createProgram();return o.attachShader(n,A),o.attachShader(n,e),o.linkProgram(n),o.getProgramParameter(n,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(n)),n}};G(eG,"UNAVAILABLE","unavailable"),vt([is(Uo.INIT,"created",{sync:!0,fail(A){this.log.error("video gl context create failed",A.cause),ct.addFailedEvent({key:512700,error:A.cause||A})},success(){this.log.info("video context created use webgl"),ct.addSuccessEvent({key:512700})}})],eG.prototype,"create"),vt([is("created",Uo.INIT,{ignoreError:!0,sync:!0,success(A){A&&this.emit(eG.UNAVAILABLE,A),this.removeAllListeners()}})],eG.prototype,"destroy");var aC=eG,Mu=class extends AG{constructor(){super(...arguments),G(this,"ctx")}create(A){if(this.hasAlpha=A.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(AG._ids++),this.ctx=this._canvas.getContext("2d",{alpha:A.alpha,willReadFrequently:A.willReadFrequently}),!this.ctx)throw new Ct({code:Ge.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(A){let e="";A&&(e=A.message,this.error=A,ct.addFailedEvent({key:512703,error:A})),this.disconnect(),this.log.info("video context destroy ".concat(e?": ".concat(e):"")),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),ct.addSuccessEvent({key:512703})}};function $AA(A,e,o,n,a){arguments.length>5&&arguments[5]!==void 0&&arguments[5]&&([o,n]=[n,o]);let I={sWidth:A,sHeight:e,dWidth:o,dHeight:n,sx:0,sy:0,dx:0,dy:0};if(A===0||e===0)return I;switch(a){case void 0:case"fill":break;case"contain":{let c=Math.min(o/A,n/e);I.dWidth=A*c,I.dHeight=e*c,I.dx=(o-I.dWidth)/2,I.dy=(n-I.dHeight)/2;break}case"cover":{let c=Math.max(o/A,n/e),u=o/c,d=n/c;I.sx=(A-u)/2,I.sy=(e-d)/2,I.sWidth=u,I.sHeight=d;break}}return I}vt([is(Uo.INIT,"created",{sync:!0,fail(A){this.log.error("video 2d context create failed",A.cause),ct.addFailedEvent({key:512701,error:A.cause||A})},success(){this.log.info("video context created use 2d"),ct.addSuccessEvent({key:512701})}})],Mu.prototype,"create"),vt([is("created",Uo.INIT,{ignoreError:!0,sync:!0})],Mu.prototype,"destroy");var AeA=class{constructor(A,e){this.node=A,this.layout=e,G(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},o4=class extends Il{constructor(A,e){super(A,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:e}),G(this,"inputs",[]),G(this,"backgroundColor","black")}addInput(A,e){let o=0,n=this.inputs.length;for(;o<n;){let I=Math.floor((o+n)/2);if(this.inputs[I].layout.zIndex<e.zIndex)o=I+1;else{if(!(this.inputs[I].layout.zIndex>e.zIndex))throw new Error("input already exists at zIndex ".concat(e.zIndex));n=I}}let a=new AeA(A,e);this.inputs.splice(o,0,a)}changeInputLayout(A,e){let o=this.inputs.findIndex(Z=>Z.node===A);if(o<0)return;let{x:n,y:a,width:I,height:c,zIndex:u,fillMode:d,rotation:R,hidden:k}=e;if(!Ee(u)&&this.inputs.some(Z=>Z.layout.zIndex===u&&Z.node!==A))throw new Error("input already exists at zIndex ".concat(e.zIndex));let _=this.inputs[o];Ee(n)||(_.layout.x=n),Ee(a)||(_.layout.y=a),Ee(I)||(_.layout.width=I),Ee(c)||(_.layout.height=c),Ee(R)||(_.layout.rotation=R),Ee(k)||(_.layout.hidden=k),d&&(_.layout.fillMode=d),!Ee(u)&&u!==_.layout.zIndex&&(_.layout.zIndex=u,this.inputs.sort((Z,iA)=>Z.layout.zIndex-iA.layout.zIndex))}hasInput(A){return this.inputs.some(e=>e.node===A)}hasNoInput(){return this.inputs.length===0}resize(A,e){if(!this.matchInputSize)return void super.resize(A,e);let o=this.inputs.reduce((n,a)=>a?Object.assign(n,{width:Math.max(n.width,a.right),height:Math.max(n.height,a.bottom)}):n,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof aC&&this.inputs.forEach(n=>{if(n){let a=this.layout2texCoords(n);n.positionBuffer?this.changeBufferData(n.positionBuffer,a):n.positionBuffer=this.createBuffer(a)}})}connect(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),n=1;n<e;n++)o[n-1]=arguments[n];return super.connect(A,...o),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),A}removeInput(A){this.inputs=this.inputs.filter(e=>e.node!==A),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(A){let e=this.context.ctx;if(e.clearColor(0,0,0,0),this.inputs.reduce((o,n)=>n.node.requestFrame(A)||o,!1)&&e){this.useProgram(),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let o=0;o<this.inputs.length;o++){let n=this.inputs[o];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(A){if(this.inputs.forEach(e=>e.node.requestFrame(A)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let e=0;e<this.inputs.length;e++){let o=this.inputs[e];if(o.hidden)continue;let n=$AA(o.node.width,o.node.height,o.width,o.height,o.fillMode,gu(o.rotation));this.draw2d(o.node.image,o.x+n.dx,o.y+n.dy,n.dWidth,n.dHeight,n.sx,n.sy,n.sWidth,n.sHeight)}return!0}return!1}debugLayout(A,e,o,n){let a=arguments.length>4&&arguments[4]!==void 0&&arguments[4];this.ctx2d&&(a&&([o,n]=[n,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(A,e,o,n),this.ctx2d.restore())}getInfo(){let{totalFrames:A,x:e,y:o,width:n,height:a,name:I}=this,c=Date.now(),u=(A-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:A,x:e,y:o,width:n,height:a,timestamp:c,fps:u,name:I},bt({parent:this.inputs.filter(d=>d).map(d=>d.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(A=>{var e;if(A.node.disconnect(),A.positionBuffer&&this.context instanceof aC)try{(e=this.context.ctx)==null||e.deleteBuffer(A.positionBuffer)}catch{}})}close(){super.close(),this.removeAllInputs()}},eeA=[1,0,0,0,1,1,0,1],Zh=class extends Il{constructor(A,e,o,n){if(super(A,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:e}),G(this,"mirror",!1),G(this,"rotation",0),o&&(this.mirror=o),n&&(this.rotation=n),A instanceof aC)try{this.setTexBuffer(eeA)}catch(a){A.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(a.message||a)}))}}draw2d(A,e,o,n,a){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(n,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(a/n,n/a)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,a),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(a/n,n/a));let I=super.draw2d(A,e,o,n,a);return this.ctx2d.restore(),I}return!1}render(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}resize(A,e){gu(this.rotation)&&([A,e]=[e,A]),super.resize(A,e)}},Fq=class extends ZT{constructor(A){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,wi),G(this,"inputLocalVideoTracks",new Map),G(this,"inputLocalScreenTracks",new Map),G(this,"cameraNodeMap",new Map),G(this,"screenNodeMap",new Map),G(this,"textNodeMap",new Map),G(this,"imageNodeMap",new Map),G(this,"videoNodeMap",new Map),G(this,"endedIds",new Set),G(this,"videoContext"),G(this,"mixNode"),G(this,"destination"),G(this,"manager"),G(this,"stat"),G(this,"_checkId",0),G(this,"autoSetFps",!0),this.manager=A,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Il.RENDER,e=>{this.emit("render",e)}),this.mixNode=new o4(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;this._checkId=nn.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:A})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Mu({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(A){this.autoSetFps=!1,this.videoContext.frameRate=A;for(let e of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])e.shouldUpdate=!1;setTimeout(()=>{var e;return(e=this.destination)==null?void 0:e.start(this.videoContext.frameRate)},500)}setFpsAuto(){var A;if(!this.autoSetFps)return;for(let a of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])a.shouldUpdate=!1;let e=null,o=0,n=!0;for(let[a,I]of this.inputLocalVideoTracks)if(I.profile.frameRate>o){if(this.endedIds.has(a)){let c=this.cameraNodeMap.get(a);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}o=I.profile.frameRate,e=a}for(let[a,I]of this.inputLocalScreenTracks)if(I.profile.frameRate>o){if(this.endedIds.has(a)){let c=this.screenNodeMap.get(a);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}o=I.profile.frameRate,e=a,n=!1}if(e!==null){let a=n?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);a&&(a.shouldUpdate=!0,a.tryVideoFrameCallback()),this.log.info("set mix fps: ",o)}else(A=this.destination)==null||A.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(A){this.mixNode&&(this.mixNode.backgroundColor=A)}resizeMixCanvas(A,e){var o;(o=this.mixNode)==null||o.resize(A,e)}startMix(){return DA(this,null,function*(){var A;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),TQ&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(A=this.manager)==null||A.changeInput(this)})}addCameraSource(A,e,o){if(this.inputLocalVideoTracks.has(A)||this.cameraNodeMap.has(A))throw new Error("There is already a cameraSource with the same ID: ".concat(A));let n,{mediaTrack:a}=e;if(!a)throw new Error("no mediaTrack, add cameraSource failed");e.recaptureMode=1,nE(this,vs).add("videoInputRemoved",I=>{I.deviceId===e.deviceId&&(this.endedIds.add(A),this.setFpsAuto())}),e.on("output-media-track-changed",()=>{this.endedIds.delete(A),this.updateCameraSource(A,o,e.mediaTrack)}),n=al===16&&a instanceof CanvasCaptureMediaStreamTrack?this.videoContext.createVideoImageSource(a.canvas,{name:"cameraCanvasSource",logger:this.log}):this.videoContext.createVideoTrackSource(a,"cameraNodeSource"),n.resize(e.settings.width,e.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(A,e),this.cameraNodeMap.set(A,n),this.setFpsAuto()}addScreenSource(A,e,o){if(this.inputLocalScreenTracks.has(A)||this.screenNodeMap.has(A))throw new Error("There is already a screenSource with the same ID: ".concat(A));let{mediaTrack:n}=e;if(!n)throw new Error("no mediaTrack, add screenSource failed");e.on("output-media-track-changed",()=>{this.updateScreenSource(A,o,e.mediaTrack)});let a=this.videoContext.createVideoTrackSource(n,"screenNodeSource");a.resize(e.settings.width,e.settings.height),a.shouldUpdate=!1,this._connectMix(a,o),this.inputLocalScreenTracks.set(A,e),this.screenNodeMap.set(A,a),this.setFpsAuto()}addTextSource(A){let{id:e,content:o="",font:n,color:a,layout:I}=A;if(this.textNodeMap.has(e))throw new Error("There is already a textSource with the same ID: ".concat(e));let c=this.videoContext.createTextSource({content:o,font:n,color:a});c.resize(I.width,I.height),this._connectMix(c,I),this.textNodeMap.set(e,c)}addImageSource(A,e,o){if(this.imageNodeMap.has(A))throw new Error("There is already a imageSource with the same ID: ".concat(A));let n=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});n.resize(e.width,e.height),this._connectMix(n,o),this.imageNodeMap.set(A,n)}addVideoSource(A,e,o){if(this.videoNodeMap.has(A))throw new Error("There is already a videoSource with the same ID: ".concat(A));let n=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});n.resize(e.videoWidth,e.videoHeight),n.shouldUpdate=!1,this._connectMix(n,o),this.videoNodeMap.set(A,n)}updateCameraSource(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,n=arguments.length>3?arguments[3]:void 0,a=this.inputLocalVideoTracks.get(A);a&&o&&o!==a.mediaTrack&&(this.log.debug("updateCameraSource mixerLocalVideoTrack newTrack:",o,"oldTrack:",a.mediaTrack),a.setInputMediaStreamTrack(o));let I=this.cameraNodeMap.get(A);if(I){if(o){if(al===16&&o instanceof CanvasCaptureMediaStreamTrack)if(I instanceof FM){let d=I.output;I.close(),I=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),I.connect(d),this.cameraNodeMap.set(A,I)}else I.image=o.canvas;else if(I instanceof FM)I.replaceTrack(o);else{let d=I.output;I.close(),I=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),I.connect(d),this.cameraNodeMap.set(A,I)}let{width:c,height:u}=o.getSettings();c&&u&&I.resize(c,u)}n&&I.resize(n.width,n.height),(n||o)&&this.setFpsAuto(),this._changeMixLayout(I,e)}}updateScreenSource(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,n=this.inputLocalScreenTracks.get(A);this.log.debug("updateScreenSource mixerLocalScreenTrack",n,o),n&&o&&o!==n.mediaTrack&&n.setInputMediaStreamTrack(o);let a=this.screenNodeMap.get(A);a&&(o&&a.replaceTrack(o),this._changeMixLayout(a,e))}updateTextSource(A){let{id:e,content:o,font:n,color:a,layout:I}=A,c=this.textNodeMap.get(e);c&&(Ee(o)||(c.content=o),Ee(n)||(c.font=n),Ee(a)||(c.color=a),c.resize(I.width,I.height),this._changeMixLayout(c,I))}updateImageSource(A,e,o){let n=this.imageNodeMap.get(A);n&&(o&&(n.image=o,n.resize(o.width,o.height)),this._changeMixLayout(n,e))}updateVideoSource(A,e,o){let n=this.videoNodeMap.get(A);if(n){if(o){let a=n.image;a instanceof HTMLVideoElement&&this.stopVideoElement(a),n.image=o,n.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(n,e)}}_connectMix(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"contain";if(!this.mixNode)return;let{mirror:n,rotation:a}=e;A.disconnect();let I=new Zh(this.videoContext,this.log,n,a);I=A.connect(I),e.fillMode||(e.fillMode=o),I.connect(this.mixNode,e)}_changeMixLayout(A,e){if(!this.mixNode)return;let{mirror:o,rotation:n}=e,a=A.output||A;a instanceof Zh&&(Ee(o)||(a.mirror=o),Ee(n)||(a.rotation=n),a.resize(A.width,A.height)),this.mixNode.changeInputLayout(a,e)}removeCameraSource(A){let e=this.inputLocalVideoTracks.get(A);if(!e)return;e.close(),this.inputLocalVideoTracks.delete(A);let o=this.cameraNodeMap.get(A);o&&(o.output instanceof Zh&&o.output.close(),o.close(),this.cameraNodeMap.delete(A)),this.checkAfterRemove(!0)}removeScreenSource(A){let e=this.inputLocalScreenTracks.get(A);if(!e)return;e.close(),this.inputLocalScreenTracks.delete(A);let o=this.screenNodeMap.get(A);o&&(o.output instanceof Zh&&o.output.close(),o.close(),this.screenNodeMap.delete(A)),this.checkAfterRemove(!0)}removeTextSource(A){let e=this.textNodeMap.get(A);e&&(e.output instanceof Zh&&e.output.close(),e.close(),this.textNodeMap.delete(A)),this.checkAfterRemove()}removeImageSource(A){let e=this.imageNodeMap.get(A);e&&(e.output instanceof Zh&&e.output.close(),e.close(),this.imageNodeMap.delete(A)),this.checkAfterRemove()}removeVideoSource(A){let e=this.videoNodeMap.get(A);e&&(e.output instanceof Zh&&e.output.close(),e.image instanceof HTMLVideoElement&&this.stopVideoElement(e.image),e.close(),this.videoNodeMap.delete(A)),this.checkAfterRemove()}checkAfterRemove(){arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&this.setFpsAuto()}stopVideoElement(A){A.pause(),A.src="",A.srcObject=null,A.remove()}close(){var A;super.close(),nn.clearTask(this._checkId),(A=this.videoContext)==null||A.destroy(),delete this.mixNode,delete this.destination;for(let e of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])e.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),pr(this);for(let e of this.videoNodeMap.values())e.image instanceof HTMLVideoElement&&this.stopVideoElement(e.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}},Uq=hA();if(typeof navigator<"u"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Uq,exposeOrigin:!0,permittedOrigins:["*"]})}catch{}var teA=function(A){return DA(this,null,function*(){let e=null,o=function(I){let c={preferCurrentTab:I.preferDisplaySurface==="current-tab"||!!I.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},u={width:Ma?{max:I.width}:{ideal:I.width,max:I.width},height:Ma?{max:I.height}:{ideal:I.height,max:I.height},frameRate:I.frameRate,displaySurface:I.preferDisplaySurface||"monitor"};if(c.video=u,I.systemAudio){let{echoCancellation:d=!0,noiseSuppression:R=!1,autoGainControl:k=!1}=I;c.audio={echoCancellation:d,noiseSuppression:R,autoGainControl:k,sampleRate:48e3}}return c}(A);nA.info("getDisplayMedia with constraints: ".concat(JSON.stringify(o)));let n=yield navigator.mediaDevices.getDisplayMedia(o);A.systemAudio&&n.getAudioTracks().length===0&&(BM&&tE<74||Ma||Yr)&&nA.warn("Your browser not support capture system audio");let a=n.getVideoTracks()[0];if(a){if(A.frameRate)try{yield a.applyConstraints({frameRate:{min:A.frameRate,ideal:A.frameRate},width:A.width,height:A.height})}catch(I){nA.warn("screen applyConstraints failed: ".concat(I))}A.captureElement&&(yield function(I,c){return DA(this,null,function*(){var u;if("CropTarget"in window&&"fromElement"in CropTarget&&$n(I.cropTo))try{if(((u=I.getCaptureHandle())==null?void 0:u.handle)!==Uq)return;let d=yield CropTarget.fromElement(c);yield I.cropTo(d)}catch(d){nA.warn("cropTo target failed ".concat(d))}})}(a,A.captureElement))}if(A.audio){let I=function(c){let u={echoCancellation:c.echoCancellation,autoGainControl:c.autoGainControl,noiseSuppression:c.noiseSuppression,sampleRate:c.sampleRate,channelCount:c.channelCount};return Ee(c.microphoneId)||(u.deviceId=c.microphoneId),{audio:u,video:!1}}(A);nA.info("getUserMedia with constraints: ".concat(JSON.stringify(I))),e=yield navigator.mediaDevices.getUserMedia(I),n.addTrack(e.getAudioTracks()[0])}return n})},Nm=class extends Ru{constructor(A){super(A,2),G(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),G(this,"objectFit","contain"),G(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}get isShareCurrentTab(){var A,e;try{return Uq===((e=(A=this.mediaTrack)==null?void 0:A.getCaptureHandle())==null?void 0:e.handle)}catch{return}}capture(A){return DA(this,arguments,function(e){var o=this;let{systemAudio:n=!1,autoGainControl:a,echoCancellation:I,noiseSuppression:c,audioTrack:u,videoTrack:d,captureElement:R,preferDisplaySurface:k}=e;return function*(){var _;try{let Z,iA=ki();return d||u?(Z=new MediaStream,d&&Z.addTrack(d),u&&Z.addTrack(u)):(Z=yield teA({audio:!1,systemAudio:n,width:o.profile.width,height:o.profile.height,frameRate:o.profile.frameRate,autoGainControl:a,echoCancellation:I,noiseSuppression:c,captureElement:R,preferDisplaySurface:k}),o.sourceTrack=Z.getVideoTracks()[0]),yield o.setInputMediaStreamTrack(Z.getVideoTracks()[0]),S.emit(K.LOCAL_TRACK_CAPTURE_SUCCESS,{track:o,cost:ki()-iA,profile:o.profile,room:(_=o.manager)==null?void 0:_.room}),Z}catch(Z){throw o.log.error("getDisplayMedia error observed ".concat(Z)),Z instanceof Ct?Z:new Ct({code:Ge.INITIALIZE_FAILED,name:Z.name,message:Z.message})}}()})}switchDevice(A){return DA(this,null,function*(){throw new Error("Method not implemented.")})}};vt([wm(function(A){this.setContentHint(A.contentHint||"detail")})],Nm.prototype,"capture");var Oq,xq=class extends vm{constructor(A){super(A),this._log.id="s-".concat(this._log.id),this.isScreen=!0}addAudioProcessor(A,e,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(A),this.enableTrackAEC(!1)}removeAudioProcessor(A){this.pipeline.aec.node===A&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};function Yq(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3?arguments[3]:void 0;return DA(this,null,function*(){let a=tI();Oq||(Oq=Fa(a,URL.createObjectURL(new Blob(['registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});'],{type:"application/javascript"})))),yield Oq;let I=a.sampleRate,c=new AudioWorkletNode(a,"dumper",{numberOfInputs:A.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:I,targetSampleRate:e}});return c.channelCountMode="explicit",c.channelCount=o,n&&c.port.postMessage({port:n},[n]),A.forEach((u,d)=>u.connect(c,0,d)),new ReadableStream({start(u){c.port.onmessage=d=>{u.enqueue(d.data)}},cancel(){A.forEach(u=>u.disconnect(c)),c.port.close()}})})}var ieA=class extends d${constructor(A){super(),this.room=A,G(this,"_localAudioTrack"),G(this,"_localScreenAudioTrack"),G(this,"log"),G(this,"denoiser"),G(this,"voiceChanger"),G(this,"mixChangedDebounce"),G(this,"audioProcessor"),G(this,"encodePipeline",[]),G(this,"decodePipeline",[]),G(this,"getPCMAbortCtrlMap",new Map),G(this,"audioFrameEventConfigMap",new Map),G(this,"audioReferenceMap",new Map),G(this,"isLocalAudioNeedAudioProcess",!1),G(this,"isScreenAudioNeedAudioProcess",!1),this.log=nA.createLogger({parent:A?.getLogger(),id:"am",userId:A?.userId,sdkAppId:A?.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var A;return(A=this._localAudioTrack)==null?void 0:A.pipeline}get _localScreenAudioPipeline(){var A;return(A=this._localScreenAudioTrack)==null?void 0:A.pipeline}dump(A){var e,o;if(!this._localAudioTrack)return;let n=[],a=[];(e=this._localAudioPipline)!=null&&e.source.node&&(n.push(this._localAudioPipline.source.node),a.push("mic")),(o=this._localAudioPipline)!=null&&o.denoiser.node&&(n.push(this._localAudioPipline.denoiser.node),a.push("mic-processed")),this.mixWeight>1&&(n.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),a.push("mix")),this.log.info("dump audio track ".concat(a,", duration: ").concat(A));let I=new AbortController,c=[],u=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),I.abort("timeout")},1e3*A),d=()=>{for(let k=0;k<a.length;k++){let _=URL.createObjectURL(new Blob(c[k])),Z=document.createElement("a");Z.href=_,Z.download="".concat(a[k],".pcm"),Z.style.display="none",document.body.appendChild(Z),Z.click(),URL.revokeObjectURL(_),Z.remove()}clearTimeout(u),I.abort("download")},R=Yq(n).then(k=>k.pipeTo(new WritableStream({write(_){_.forEach((Z,iA)=>c[iA]=c[iA]?c[iA].concat(Z[0]):[Z[0]])}}),I).catch(_=>d));return{then:R.then.bind(R),download:d}}getPCM(A,e){var o,n,a;if(typeof WritableStream>"u")return void this.log.warn("getPCM failed: browser not support WritableStream");let{enable:I,sampleRate:c=48e3,channelCount:u=1,port:d}=(e===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(e)||this.audioFrameEventConfigMap.get("*"))||{};if(!I)return;this.log.info("getPCM ".concat(e||"local"));let R,k,_=Math.floor(.04*c),Z=new Float32Array(_),iA=new Float32Array(_),cA=0,TA=new AbortController,JA=e===""?(o=this._localAudioTrack)==null?void 0:o.mediaTrack:(a=(n=this.room)==null?void 0:n.remotePublishedUserMap.get(e))==null?void 0:a.remoteAudioTrack.mediaTrack;if(JA)return Yq([tI().createMediaStreamSource(new MediaStream([JA]))],c,u,d).then(Ie=>Ie.pipeTo(new WritableStream({write(XA){XA[0][0]&&(cA+XA[0][0].length>_?(Z.set(XA[0][0].subarray(0,_-cA),cA),R=XA[0][0].subarray(_-cA),XA[0][1]&&(iA.set(XA[0][1].subarray(0,_-cA),cA),k=XA[0][1].subarray(_-cA)),cA+=_-cA):(R&&(Z.set(R,cA),cA+=R.length,R=void 0),k&&(iA.set(k,cA),k=void 0),Z.set(XA[0][0],cA),XA[0][1]&&iA.set(XA[0][1],cA),cA+=XA[0][0].length),cA>=_&&(cA=0,A({userId:e,sampleRate:c,channelCount:u,data:u===1?Z:[Z,iA]}),Z=new Float32Array(_),iA=new Float32Array(_)))}}),TA).catch(XA=>this.log.warn("stop getPCM reason:".concat(XA)))),TA;this.log.info("getPCM failed: ".concat(e||"local"," has no audio track"))}get hasScreenAudioTrack(){return!Ee(this._localScreenAudioTrack)}get hasAudioTrack(){return!Ee(this._localAudioTrack)}changeInput(A){var e,o;return A instanceof xq?(this._localScreenAudioTrack=A,this.isScreenAudioNeedAudioProcess&&(e=this.audioProcessor)!=null&&e.screenAudioWorkletNode&&(A.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((n,a)=>{A.mixAudioReference(n,a)})),A.pipeline.connect(),this.mixOnChange()):A instanceof vm?(this._localAudioTrack=A,this.denoiser&&A.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&(o=this.audioProcessor)!=null&&o.localAudioWorkletNode&&(A.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((n,a)=>{A.mixAudioReference(n,a)})),A.pipeline.connect(),this.mixOnChange()):A instanceof Dx?A.setOutputMediaStreamTrack(A.mediaTrack):void 0}mixAudioReference(A,e){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(A,e)}unMixAudioReference(A){var e;(e=this._localAudioTrack)==null||e.unMixAudioReference(A)}setAudioReferenceVolume(A,e){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(A,e)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var A,e;return delete this.mixChangedDebounce,Promise.all([(A=this._localAudioTrack)==null?void 0:A.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(e=this._localScreenAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(A){A instanceof xq?delete this._localScreenAudioTrack:A instanceof vm&&delete this._localAudioTrack}addDenoiser(A){var e;this.denoiser=A,(e=this._localAudioTrack)==null||e.addDenoiser(A)}addAudioProcessor(A,e,o,n){var a;this.audioProcessor={localAudioWorkletNode:o,mixNode:A,silentNode:e,screenAudioWorkletNode:n},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,A,e),this.audioReferenceMap.forEach((I,c)=>{var u;(u=this._localAudioTrack)==null||u.mixAudioReference(I,c)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&n&&((a=this._localScreenAudioTrack)==null||a.addAudioProcessor(n,A,e),this.audioReferenceMap.forEach((I,c)=>{var u;(u=this._localScreenAudioTrack)==null||u.mixAudioReference(I,c)}))}removeDenoiser(A){var e;return delete this.denoiser,(e=this._localAudioTrack)==null?void 0:e.removeDenoiser(A)}addVoiceChanger(A,e){var o;this.voiceChanger=[A,e],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(A,e)}removeVoiceChanger(){var A;delete this.voiceChanger,(A=this._localAudioTrack)==null||A.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(A,e){var o,n;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(A),(n=this._localScreenAudioTrack)==null||n.removeAudioProcessor(e)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(A=>A?.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor(A){let{processor:e,type:o}=A;var n;this.encodePipeline.includes(e)||(this.encodePipeline[o]=e,(n=this.room)==null||n.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:o}=A;var n;this.decodePipeline.includes(e)||(this.decodePipeline[o]=e,(n=this.room)==null||n.enableInsertableStreams())}removeEncodeProcessor(A){let{type:e}=A;this.encodePipeline[e]=void 0}removeDecodeProcessor(A){let{type:e}=A;this.decodePipeline[e]=void 0}handleLocalTrackStarted(A){let{room:e,userId:o}=A;var n;if(e!==this.room||this.getPCMAbortCtrlMap.get(o))return;let a=this.getPCM(I=>{var c;(c=this.room)==null||c.emit("audio-frame",I)},"");this.getPCMAbortCtrlMap.set(o,a),this.getPCMAbortCtrlMap.get(o)&&((n=this._localAudioTrack)==null||n.on("input-media-track-changed",()=>{let I=this.getPCMAbortCtrlMap.get(o);I&&(I.abort("inputMediaTrackChanged"),I=this.getPCM(c=>{var u;(u=this.room)==null||u.emit("audio-frame",c)},""),this.getPCMAbortCtrlMap.set(o,I))}))}handleLocalTrackStopped(A){let{room:e,userId:o}=A;if(e!==this.room)return;let n=this.getPCMAbortCtrlMap.get(o);n&&(n.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(o))}handleRemoteTrackStarted(A){let{room:e,userId:o}=A;if(e===this.room&&!this.getPCMAbortCtrlMap.get(o)){let n=this.room.audioManager.getPCM(a=>{var I;(I=this.room)==null||I.emit("audio-frame",a)},o);this.getPCMAbortCtrlMap.set(o,n)}}handleRemoteTrackStopped(A){let{room:e,userId:o}=A;if(e!==this.room)return;let n=this.getPCMAbortCtrlMap.get(o);n&&(n.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(o))}installEvent(){S.on("113",this.handleLocalTrackStarted,this),S.on("114",this.handleLocalTrackStopped,this),S.on("115",this.handleRemoteTrackStarted,this),S.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){S.off("113",this.handleLocalTrackStarted),S.off("114",this.handleLocalTrackStopped),S.off("115",this.handleRemoteTrackStarted),S.off("116",this.handleRemoteTrackStopped)}updateAudioReference(A){let{type:e,audioReference:o,refId:n,volume:a}=A;if(e==="add"){if(this.audioReferenceMap.get(n)||!o||(this.audioReferenceMap.set(n,o),!this.audioProcessor))return;this.mixAudioReference(o,n)}else if(e==="remove")this.audioReferenceMap.get(n)&&(this.audioReferenceMap.delete(n),this.unMixAudioReference(n));else if(e==="updateVolume"){if(!this.audioProcessor||Ee(a))return;this.setAudioReferenceVolume(n,a)}}};function mx(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return Dn((o,n)=>function(){for(var a=arguments.length,I=new Array(a),c=0;c<a;c++)I[c]=arguments[c];return new Promise((u,d)=>{let R=setTimeout(()=>{let k=new Ct({code:Ge.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(n,"() timeout ").concat(A,"s")});(this.log||this._log||nA).warn(k),e===2?d(k):e===1&&u()},1e3*A);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(R),o.apply(this,I).then(u,d).finally(()=>{clearTimeout(R),this._checkPendingPromiseSet&&R&&this._checkPendingPromiseSet.delete(R)})})})}var Tm=class Dj extends yq{constructor(e,o,n){super({userId:o.userId,sdkAppId:e.sdkAppId,mediaType:n,room:e}),this.room=e,this.user=o,G(this,"tinyId"),G(this,"isRemote",!0),G(this,"jitterBufferDelay",0),G(this,"availableState"),G(this,"remotePublishState"),G(this,"_triggerCheckDecodeSubject",yu(Ln(this,Dj.STATE_SUBSCRIBE))),G(this,"ignoreUpdatePlayingState"),this.tinyId=o.tinyId,this.availableState=new Uo("".concat(o.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new Uo("".concat(o.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),Jn(Mq(Ln(this,Uo.STATECHANGED),Ln(this.remotePublishState,Uo.STATECHANGED)),Gq(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Ks(u=>{this.availableState.state!==(u?Uo.ON:Uo.OFF)&&(this.availableState.state=u?Uo.ON:Uo.OFF),(!this.isRemotePublished||!this.ignoreUpdatePlayingState)&&this.updatePlayingState(u)}));let a=Jn(Ln(this.player,mi.ERROR),Sm(u=>u.code===MediaError.MEDIA_ERR_DECODE)),I=Jn(vq(5e3),Sm(()=>!!(!this.ignoreDecodeError&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived&&this.isRemotePublished)&&(!this.player.isPlaying&&!(this.kind===fA.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1)))),c=Jn(bW(a,I),Qc(Ln(this,Uo.INIT)));Jn(this._triggerCheckDecodeSubject,Sm(()=>!this.ignoreDecodeError),hx(c),Ks(u=>{this.reportDecodeResult(!1,u)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var e,o,n,a;return(a=(n=(o=(e=this.room)==null?void 0:e.networkQuality)==null?void 0:o.hadRecentBadDownlink)==null?void 0:n.call(o,2))!=null&&a||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Dj.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Uo.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,o){var n,a;let I=this.kind===fA.AUDIO;if(ct[e?"addSuccessEvent":"addFailedEvent"]({key:I?504700:514702}),!I){let c=((n=this.room)==null?void 0:n.downlinkVideoCodec.toUpperCase())||"H264";ct[e?"addSuccessEvent":"addFailedEvent"]({key:Yh["DECODE_".concat(c,"_RESULT")]}),e||this.log.warn("".concat((a=this.room)==null?void 0:a.downlinkVideoCodec," decode failed"))}e||(ct.addEnum({key:I?504701:514703,value:_Q()}),Jo.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(Qu()||bQ()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===fA.AUDIO?"audioLevel: ".concat(this.getAudioLevel()):"framesDecoded: ".concat(this.stat.framesDecoded>0))),this.emit("decode-failed",{error:o}))}updatePlayingState(e){if(this.player.isPlayCalled&&this.player.setTrack(this.playerMediaTrack),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?Uo.ON:Uo.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};G(Tm,"STATE_SUBSCRIBE","subscribe"),vt([mx(5,1)],Tm.prototype,"waitHasMediaTrack"),vt([is(Uo.INIT,Tm.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),S.emit(K.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),jh(521716,!1)],Tm.prototype,"subscribe"),vt([is(Tm.STATE_SUBSCRIBE,Uo.INIT,{sync:!0,success(){this.log.info("unsubscribed"),S.emit(K.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],Tm.prototype,"unsubscribe");var r4=Tm,Dx=class extends r4{constructor(A,e){super(A,e,1),G(this,"volume",0),G(this,"mediaType",1),G(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=A.audioManager}get dbVolume(){return gx.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(A){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var A,e;return!!this.manager&&(this.manager.decodePipeline.some(o=>o)||((e=(A=this.player.element)==null?void 0:A.error)==null?void 0:e.code)===MediaError.MEDIA_ERR_DECODE&&wM().AudioDecoder&&xQ)}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(A){if(!this.manager)return A;let e=A;for(let[o,n]of this.manager.decodePipeline.entries()){if(!n)continue;let a={frame:A,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(a.onAudioFrameNTPTime=I=>{let{ntp:c,frame:u,hasLeavingTag:d}=I;this.emit("audio-frame-with-ntp",{ntp:c,frame:u,hasLeavingTag:d})}),e=n(a),!e)return}return e}getAudioLevel(){if(!this.isAvailable)return 0;let A=this.volume||super.getAudioLevel();return A>1?1:A}getInternalAudioLevel(){return this.isAvailable?super.getInternalAudioLevel():0}get isRemotePublished(){return this.user.muteState.audioAvailable}},oeA=class extends Il{constructor(A,e,o,n,a){super(A,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:e}),this.setContainer=n,G(this,"initStat",{alphaStitchingType:1}),G(this,"end",yu()),G(this,"minSize",320),G(this,"maxSize",1280),G(this,"draggable",!1),G(this,"startDragX",0),G(this,"startDragY",0),G(this,"left",0),G(this,"top",0),G(this,"baseWidth",320),G(this,"baseRatio"),G(this,"container"),this.initStat=a,this.draggable=o,this.bindDragEvents(),ct.addEnum({key:515700,value:1}),this.draggable&&ct.addEnum({key:515700,value:11})}bindDragEvents(){let A=this.context._canvas;if(A)if(this.draggable){let e=Qc(this.end);Jn(Ln(A,"mousedown"),kq(this.startDrag.bind(this)),Qx(()=>Jn(Ln(window,"mousemove"),Qc(Ln(window,"mouseup")))),e,Ks(this.doDrag.bind(this))),Jn(Ln(A,"dblclick"),e,Ks(this.resetPosition.bind(this))),Jn(Ln(A,"wheel"),e,Ks(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(A){var e;return!((e=this.input)==null||!e.requestFrame(A))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0)}startDrag(A){A.preventDefault(),A.button===0&&(this.startDragX=A.clientX-this.left,this.startDragY=A.clientY-this.top)}renderCanvas(){let{container:A}=this;A||this.setContainer(),A&&this.baseRatio&&this.draggable&&(A.style.setProperty("width","".concat(this.baseWidth,"px")),A.style.setProperty("height","".concat(this.baseWidth/this.baseRatio,"px")),A.style.setProperty("position","fixed"),A.style.setProperty("left","".concat(this.left,"px")),A.style.setProperty("top","".concat(this.top,"px")))}doDrag(A){A.preventDefault(),this.left=A.clientX-this.startDragX,this.top=A.clientY-this.startDragY,this.renderCanvas()}handleZoom(A){A.preventDefault();let e=A.deltaY,o=this.context._canvas;o&&(this.baseWidth||(this.baseWidth=o.offsetWidth),this.baseWidth=e<0?Math.min(1.1*this.baseWidth,this.maxSize):Math.max(.9*this.baseWidth,this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(A,e,o,n,a){var I;let{ctx2d:c}=this,u=this.context._canvas;if(!c||!u)return!1;let d=super.draw2d(A,e,o,n,a),R=c.getImageData(0,0,n,a),{data:k}=R,_=!1;if(this.initStat.alphaStitchingType===1){let Z=Math.floor(n/2);for(let iA=0;iA<a;iA++)for(let cA=0;cA<Z;cA++){let TA=4*(iA*n+cA),JA=4*(iA*n+(cA+Z)),Ie=k[JA];k[JA+3]=0;let XA=Ie>=100;k[TA+3]=XA?255:0}_=super.draw2d(R,0,0,0,0,Z,a),u.width=Z}else if(this.initStat.alphaStitchingType===2){let Z=Math.floor(a/2);for(let iA=0;iA<Z;iA++)for(let cA=0;cA<n;cA++){let TA=4*(iA*n+cA),JA=4*((iA+Z)*n+cA),Ie=k[JA];k[JA+3]=0;let XA=Ie>=100;k[TA+3]=XA?255:0}_=super.draw2d(R,0,0,0,0,n,Z),u.height=Z}return(I=this.context.ctx)==null||I.clearRect(0,0,n,a),d&&_}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}},tG=class extends r4{constructor(A,e){super(A,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:4),G(this,"mediaType",4),G(this,"source"),G(this,"shouldRenderAlpha",!1),G(this,"alphaNode"),G(this,"shouldBeDraggable",!0),G(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0,keyFramesDecoded:0}),G(this,"_keyFrameCountLogged",!1),G(this,"_keyFrameStartTimestamp",0),G(this,"_keyFrameStartCount",0),G(this,"_keyFrameIntervals",[]),G(this,"_prevKeyFrameTimestamp",0),this.manager=A.videoManager,this.on("first-video-frame",o=>{this.room.emit("first-video-frame",o)}),this.on("first-frame-render",o=>{this.room.emit("first-frame-render",o)})}isAlphaSei(A){if(this.userId!==A.userId||A.seiPayloadType!==50)return!1;let e=new Uint8Array(A.data);return e.length%3==0&&e[0]===0&&e[1]===1&&e}play(A,e){return e!=null&&e.canvasRender&&!this.source&&this.useCanvasPlayer(),super.play(A,e).then(()=>{this.player.calculateStat(),S.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(A){let e=this.isAlphaSei(A);if(e)if(this.alphaNode){let o=e[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let n=this.player.getElement();if(n){let a=n.videoWidth/n.videoHeight;a&&(this.alphaNode.baseRatio=a*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}else this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(e[2])}generateAlphaCanvasName(A){let e=Oh[A];return"".concat("alpha","_").concat(e,"_").concat(this.userId)}useCanvasPlayer(A){if(this.log.info("useCanvasPlayer(), has element:".concat(!!this.player.element)),!this.player.element)return;let e=new Mu({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&A?this.generateAlphaCanvasName(A):this.userId});e.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new bq(e,{name:"remotePlayer",logger:this.log});if(this.source=e.createVideoPlayerSource(this.player),this.player.setCanvas(e._canvas),this.shouldRenderAlpha&&A){let n=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},a=new oeA(e,this.log,this.shouldBeDraggable,n,{alphaStitchingType:A});this.source.connect(a),a.connect(o),this.alphaNode=a}else this.source.connect(o);YQ()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(A){let e=this.decodeFPS,o=(n=e,[15,30,45,60].reduce((a,I)=>Math.abs(I-n)<Math.abs(a-n)?I:a));var n;!hr(e)||e<=0?this.log.debug("updateCanvasPlayerFPS() ignore decoder: ".concat(e," ")):o!==A.frameRate?(this.log.info("updateCanvasPlayerFPS() decoder: ".concat(e,", closest: ").concat(o,", current: ").concat(A.frameRate)),A.frameRate=o):this.log.debug("updateCanvasPlayerFPS() ignore ClosestFPS ".concat(o," == ").concat(A.frameRate))}get decodeFPS(){var A;let{msg_video_status:e}=((A=this.room.heartbeatReport)==null?void 0:A.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},o=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let n=e.find(a=>a.uint32_video_stream_type===o);return n?.uint32_video_dec_fps||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),S.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(A){if(!this.manager)return A;for(let e of this.manager.decodePipeline)if(e&&!(A=e({frame:A,track:this})))return;return A}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(A){this.room.changeType(A,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(A){A==="publish"||A==="both"||super.setMirror(A)}setDraggable(A){this.shouldBeDraggable=A,this.alphaNode&&(this.alphaNode.draggable=A,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(A){this.emit("decode-downgrade-state-changed",A)}updateKeyFramesDecoded(A){let e=this.stat.keyFramesDecoded||0;if(this.stat.keyFramesDecoded=A,this._keyFrameCountLogged)return;let o=Date.now();if(!this._keyFrameStartTimestamp)return this._keyFrameStartTimestamp=o,this._keyFrameStartCount=A,void(this._prevKeyFrameTimestamp=o);if(this._prevKeyFrameTimestamp&&A>e){let a=A-e,I=(o-this._prevKeyFrameTimestamp)/1e3/a;this._keyFrameIntervals.push(I)}this._prevKeyFrameTimestamp=o;let n=o-this._keyFrameStartTimestamp;if(n>=16e3){let a=A-this._keyFrameStartCount,I=a>0?n/1e3/a:0,c="".concat(a," keyframes in 16s ").concat(I," [").concat(this._keyFrameIntervals.map(d=>d.toFixed(1)).join(","),"] keyFramesDecoded ").concat(A),u=I<=2.5?"debug":"info";this.log[u](c),this._keyFrameCountLogged=!0}}},n4=class extends tG{constructor(A,e){super(A,e,2),G(this,"mediaType",2),G(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},UM=new Map;function Ua(A,e){let o=fi(bt({},e),{timestamp:gh()});UM.has(A)?UM.get(A).push(o):UM.set(A,[o])}function a4(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Dn((n,a)=>function(){for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];return reA.call(this,e,c,a,this._name),n.apply(this,c)})}function reA(A,e,o,n){try{if(Aa(A))for(let a=0;a<A.length;a++)yx.call(this,{rule:A[a],value:e[a],key:A[a].name,fnName:o,className:n});else yx.call(this,{rule:A,value:e[0],key:A.name,fnName:o,className:n})}catch(a){throw nA.error(a),a}}function yx(A){let{rule:e,value:o,key:n,fnName:a,className:I}=A;if(Ee(o)){if(e.required)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_REQUIRED,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(Ee(e.defaultValue))return;o=e.defaultValue}if(Array.isArray(e.type)){let d=!1;for(let R=0;R<e.type.length;R++)e.type[R]===null&&o===null&&(d=!0),$n(e.type[R])&&o instanceof e.type[R]&&(d=!0),Sr(e.type[R])&&ya(o)===e.type[R].toLowerCase()&&(d=!0);if(!d)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_TYPE,data:{key:n,rule:{type:e.type.map(R=>mh(R)?Yf(R):Sr(R)?R:ya(R))},fnName:a,value:o},link:{className:I,fnName:a}})})}else if(!Ee(e.type)&&ya(o)!==e.type)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_TYPE,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(e.allowEmpty===!1){let d=hr(o)&&(o===0||Number.isNaN(o)),R=Sr(o)&&o.trim()==="";if(d||R)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_EMPTY,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})})}if(e.notLessThanZero&&hr(o)&&o<0)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.CANNOT_LESS_THAN_ZERO,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(!Ee(e.min)&&hr(o)&&o<e.min)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_MIN,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(!Ee(e.max)&&hr(o)&&o>e.max)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_MAX,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(Sr(e.instanceOf)){if(!o||o._name!==e.instanceOf)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_INSTANCE,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})})}else if($n(e.instanceOf)&&!(o instanceof e.instanceOf))throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_INSTANCE,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});if(e.values&&!e.values.includes(o))throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PARAMETER_RANGE,data:{key:n,rule:e,fnName:a,value:o},link:{className:I,fnName:a}})});let{properties:c}=e;Cc(c)&&Xc(o)&&Object.keys(c).forEach(d=>{yx.call(this,{rule:c[d],value:o&&o[d],key:"".concat(n,".").concat(d),fnName:a,className:I})});let{arrayItem:u}=e;Cc(u)&&Aa(o)&&o.forEach((d,R)=>{yx.call(this,{rule:u,value:d,key:"".concat(n,"[").concat(R,"]"),fnName:a,className:I})}),$n(e.validate)&&e.validate.call(this,o,n,a,I,this)}S.on(K.JOIN_SUCCESS,A=>{let{room:e}=A;Ua(e.userId,{eventId:32788})}),S.on(K.LEAVE_START,A=>{let{room:e}=A;Ua(e.userId,{eventId:32789})}),S.on(K.LOCAL_TRACK_PUBLISHED,A=>{let{track:e}=A;if(e.room){let o=32769;e.mediaType===4?o=32768:e.mediaType===2&&(o=32805),Ua(e.room.userId,{eventId:o})}}),S.on(K.LOCAL_TRACK_UNPUBLISHED,A=>{let{track:e}=A;if(e.room){let o=32771;e.mediaType===4?o=32770:e.mediaType===2&&(o=32806),Ua(e.room.userId,{eventId:o})}}),S.on(K.TRACK_MUTED,A=>{let{track:e}=A;e.room&&(e.kind===fA.AUDIO?Ua(e.room.userId,{eventId:e.isRemote?32785:32772,remoteUserId:e.isRemote?e.userId:void 0}):Ua(e.room.userId,{eventId:e.isRemote?32784:32773,remoteUserId:e.isRemote?e.userId:void 0}))}),S.on(K.TRACK_UNMUTED,A=>{let{track:e}=A;e.room&&(e.kind===fA.AUDIO?Ua(e.room.userId,{eventId:e.isRemote?32787:32774,remoteUserId:e.isRemote?e.userId:void 0}):Ua(e.room.userId,{eventId:e.isRemote?32786:32775,remoteUserId:e.isRemote?e.userId:void 0}))}),S.on(K.REMOTE_TRACK_SUBSCRIBED,A=>{let{track:e}=A;e.room&&(e.mediaType===1&&Ua(e.room.userId,{eventId:32777,remoteUserId:e.userId}),e.mediaType===4&&Ua(e.room.userId,{eventId:32776,remoteUserId:e.userId}),e.mediaType===8&&Ua(e.room.userId,{eventId:32803,remoteUserId:e.userId}))}),S.on(K.REMOTE_TRACK_UNSUBSCRIBED,A=>{let{track:e}=A;e.room&&(e.mediaType===1&&Ua(e.room.userId,{eventId:32779,remoteUserId:e.userId}),e.mediaType===4&&Ua(e.room.userId,{eventId:32778,remoteUserId:e.userId}),e.mediaType===8&&Ua(e.room.userId,{eventId:32804,remoteUserId:e.userId}))}),S.on(K.SWITCH_DEVICE_SUCCESS,A=>{let{track:e}=A;e.room&&Ua(e.room.userId,{eventId:e.kind===fA.VIDEO?32780:32781})}),S.on(K.LOCAL_TRACK_REPLACED,A=>{let{track:e}=A;e.room&&Ua(e.room.userId,{eventId:e.kind===fA.VIDEO?32782:32783})}),S.on(K.SIGNAL_CONNECTION_STATE_CHANGED,A=>{let e,{room:o,prevState:n,state:a}=A;switch(a){case"CONNECTED":e=n==="RECONNECTING"?32795:32791;break;case"DISCONNECTED":e=n==="RECONNECTING"?32796:32790;break;case"RECONNECTING":e=32794}e&&Ua(o.userId,{eventId:e})}),S.on(K.PEER_CONNECTION_STATE_CHANGED,A=>{let e,{room:o,prevState:n,state:a,remoteUserId:I}=A,c=!!I;switch(a){case"CONNECTED":e=n==="RECONNECTING"?c?32801:32798:c?32793:32792;break;case"DISCONNECTED":n==="RECONNECTING"&&(e=c?32802:32799);break;case"RECONNECTING":e=c?32800:32797}e&&Ua(o.userId,{eventId:e,remoteUserId:I})}),S.on(K.VIDEO_CODEC_IMPLEMENTATION_CHANGED,A=>{let{implementation:e,userId:o,remoteUserId:n,codec:a,isHWCodec:I,prevImplementation:c,streamType:u}=A,d=I?1:0;c||(d=I?3:2);let R={H264:0,H265:1,VP8:2}[a.toUpperCase()],k={eventId:4004,param1:d,param2:R,streamType:u||2};n&&(k.remoteUserId=n,k.eventId=4005),Ua(o,k),ct.addEnum({key:n?514701:513701,value:d}),ct.addEnum({key:n?514700:513700,value:R})}),S.on(K.LOCAL_TRACK_RECAPTURE,A=>{let{track:e,error:o}=A;if(e.userId){let n={eventId:2003,param1:0};e.kind===fA.AUDIO?(n.streamType=1,o&&(n.param1=2)):(n.streamType=e.streamType==="auxiliary"?7:2,o&&(n.param1=8)),Ua(e.userId,n)}});var neA=es(hg(),1),aeA=class extends neA.EventEmitter{constructor(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"userId";super(),this.mySelfId=A,this._log=e,this.key=o,G(this,"userMap",new Map),G(this,"remotePublishedUserMap",new Map),G(this,"asrRobotUserMap",new Map)}get hasRobotUser(){return!![...this.remotePublishedUserMap.values()].find(A=>A.isRobot)}getPublishedUser(A){return this.remotePublishedUserMap.get(A)}addUser(A){let e=A[this.key],{userId:o,tinyId:n,role:a,fromType:I}=A;if(I===xR)return void this.addAsrRobotUser(A);if(this.userMap.has(e))return;let c={userId:o,tinyId:n,role:a===20?"anchor":"audience"};this.userMap.set(e,c),this.emit("1",c)}addAsrRobotUser(A){let e=A[this.key],{userId:o,tinyId:n,role:a}=A;if(this.asrRobotUserMap.has(e))return;let I={userId:o,tinyId:n,role:a===20?"anchor":"audience"};this.asrRobotUserMap.set(e,I),this.emit("8",I)}deleteUser(A,e){let o=this.userMap.get(A);if(!o)return;if(this.asrRobotUserMap.has(A))return void this.deleteAsrRobotUser(A);let n="peer leave [".concat(A,"]");Ee(e)||(n+=":".concat(cO[e])),this._log.info(n);let a=this.remotePublishedUserMap.get(A);if(a){let I=a.muteState;a.flag=0,this.emit("5",a.userId),this.deleteRemotePublishedUser(A),this.emit("6",{prevMuteState:I,muteState:a.muteState,flag:0})}this.userMap.delete(A),this.emit("2",{userId:o.userId,reason:e})}deleteAsrRobotUser(A){if(!this.asrRobotUserMap.has(A))return;let e=this.asrRobotUserMap.get(A);e&&(this.asrRobotUserMap.delete(A),this.emit("9",e))}setUserList(A){this.userMap.forEach(e=>{A.findIndex(o=>o[this.key]===e[this.key])<0&&this.deleteUser(e[this.key],0)}),A.forEach(e=>{!this.userMap.has(e[this.key])&&e[this.key]!==this.mySelfId&&this.addUser(e)})}addRemotePublishedUser(A){this.remotePublishedUserMap.has(A[this.key])||this.remotePublishedUserMap.set(A[this.key],A)}deleteRemotePublishedUser(A){this.remotePublishedUserMap.has(A)&&this.remotePublishedUserMap.delete(A)}setRemotePublishedUserList(A){this.remotePublishedUserMap.forEach(e=>{let o=e[this.key];if(A.findIndex(n=>n[this.key]===e[this.key])<0){this._log.info("remote [".concat(o,"] unpublish"));let n=e.muteState;e.flag=0,this.emit("5",e.userId),this.deleteRemotePublishedUser(o),this.emit("6",{prevMuteState:n,muteState:e.muteState,flag:0})}}),A.forEach(e=>{var o;let n=e[this.key];if(n===this.mySelfId)return void this.emit("7",e);let{flag:a,userId:I,tinyId:c,fromType:u}=e,d=mQ(a,I),R=(o=this.remotePublishedUserMap.get(n))==null?void 0:o.muteState;if(R){let k=this.remotePublishedUserMap.get(n);k&&k.flag!==a&&(k.flag=a,this._log.info("remote publish updated: ".concat(JSON.stringify(k.muteState))),this.emit("6",{prevMuteState:R,muteState:d,flag:a}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(d))),this.addUser({userId:I,tinyId:c,role:20,fromType:u}),this.emit("3",e),this.emit("6",{prevMuteState:mQ(0,I),muteState:d,flag:a})})}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}},seA=es(hg(),1),geA=class extends seA.default{constructor(){super(...arguments),G(this,"_connectionTimeoutCount",0),G(this,"_isFirewallRestrictionEventEmitted",!1)}increaseTimeoutCount(){this._connectionTimeoutCount+=1,this.checkAndEmitFirewallRestriction()}resetTimeoutCount(){this._connectionTimeoutCount=0}checkAndEmitFirewallRestriction(){this._connectionTimeoutCount>=3&&!this._isFirewallRestrictionEventEmitted&&(this._isFirewallRestrictionEventEmitted=!0,this.emit("firewall-restriction"))}destroy(){this._connectionTimeoutCount=0,this._isFirewallRestrictionEventEmitted=!1,this.removeAllListeners()}};function s4(A){let{timesInSecond:e,maxSizeInSecond:o,getSize:n}=A;return Dn((a,I)=>{let c=new WeakMap;return S.on(K.ROOM_DESTROY,u=>{let{room:d}=u;return c.delete(d)}),function(){let u=c.get(this);for(var d=arguments.length,R=new Array(d),k=0;k<d;k++)R[k]=arguments[k];if(u||(u={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},c.set(this,u)),u.timestamp===0?u.timestamp=Date.now():Date.now()-u.timestamp>1e3&&(u.timestamp=Date.now(),u.callCountInSecond=0,u.totalSizeInSecond=0),n&&(u.totalSizeInSecond+=n(...R)),u.timestamp!==0&&Date.now()-u.timestamp<1e3&&(u.callCountInSecond>=e||u.totalSizeInSecond>o))throw new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.CALL_FREQUENCY_LIMIT,data:{isTimes:u.callCountInSecond>=e,isSize:u.totalSizeInSecond>o,name:I,timesInSecond:e,maxSizeInSecond:o}})});u.callCountInSecond++,a.call(this,...R)}})}var xe,g4=!0,iG={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"},Si={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},Rx=((xe=Rx||{})[xe.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",xe[xe.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",xe[xe.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",xe[xe.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",xe[xe.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",xe[xe.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",xe[xe.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",xe[xe.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",xe[xe.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",xe[xe.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",xe[xe.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",xe[xe.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",xe[xe.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",xe[xe.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",xe[xe.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",xe[xe.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",xe[xe.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",xe[xe.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",xe[xe.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",xe[xe.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",xe[xe.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",xe[xe.INVALID_OPERATION=5100]="INVALID_OPERATION",xe[xe.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",xe[xe.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",xe[xe.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",xe[xe.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",xe[xe.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",xe[xe.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",xe[xe.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",xe[xe.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",xe[xe.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",xe[xe.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",xe[xe.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",xe[xe.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",xe[xe.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",xe[xe.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",xe[xe.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",xe[xe.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",xe[xe.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",xe[xe.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",xe[xe.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",xe[xe.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",xe[xe.DEVICE_ERROR=5300]="DEVICE_ERROR",xe[xe.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",xe[xe.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",xe[xe.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",xe[xe.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",xe[xe.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",xe[xe.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",xe[xe.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",xe[xe.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",xe[xe.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",xe[xe.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",xe[xe.SERVER_ERROR=5400]="SERVER_ERROR",xe[xe.NEED_TO_BUY=5401]="NEED_TO_BUY",xe[xe.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",xe[xe.OPERATION_FAILED=5500]="OPERATION_FAILED",xe[xe.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",xe[xe.REJOIN_FAILED=5502]="REJOIN_FAILED",xe[xe.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",xe[xe.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",xe[xe.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",xe[xe.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",xe[xe.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",xe[xe.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",xe[xe.OPERATION_ABORT=5998]="OPERATION_ABORT",xe[xe.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",xe),I4=fi(bt({},ts),{INVALID_PARAMETER(A){let{fnName:e}=A;return"the parameters of the '".concat(e,"' you called does not meet the requirements, please check the API documentation.")},INVALID_PARAMETER_REQUIRED(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' is a required param when calling ").concat(n,"(), received: ").concat(a,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:o,fnName:n,value:a}=A,I="".concat(e||o.name),c="";return c=Array.isArray(o.type)?o.type.join("|"):o.type,"'".concat(I,"' must be type of ").concat(c," when calling ").concat(n,"(), received type: ").concat(ya(a),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' cannot be '").concat(a,"' when calling ").concat(n,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:o,fnName:n,value:a}=A,I="".concat(e||o.name),c="".concat(o.instanceOf.name||o.instanceOf);return"'".concat(I,"' must be instanceof ").concat(c," when calling ").concat(n,"(), received type: ").concat(ya(a),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:o,fnName:n,value:a}=A;return"'".concat(e||o.name,"' must be one of ").concat(o.values.join("|")," when calling ").concat(n,"(), received: ").concat(a,".")},INVALID_PARAMETER_LESS_THAN_ZERO(A){let{key:e,rule:o,fnName:n}=A;return"'".concat(e||o.name,"' cannot be less than 0 when calling ").concat(n,"().")},INVALID_PARAMETER_MIN(A){let{key:e,rule:o,value:n}=A;return"the min value of ".concat(e||o.name," is ").concat(o.min,", received: ").concat(n,".")},INVALID_PARAMETER_MAX(A){let{key:e,rule:o,value:n}=A;return"the max value of ".concat(e||o.name," is ").concat(o.max,", received: ").concat(n,".")},INVALID_ELEMENT_ID(A){let{key:e,fnName:o}=A;return"'".concat(e,"' is not found in the document object when calling ").concat(o,"().")},INVALID_ELEMENT_ID_TYPE(A){let{key:e,fnName:o,type:n}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(o,"(), received: ").concat(n,".")},INVALID_STREAM_ID(A){let{key:e}=A;return"'".concat(e,"' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.")},INVALID_ROOM_ID_STRING(A){let{key:e}=A;return"'".concat(e,"' must be a valid string.")},INVALID_ROOM_ID_INTEGER(A){let{key:e}=A;return"'".concat(e,"' must be an integer between [1, 4294967294].")},INVALID_ROOM_ID_INTEGER_STRING(A){let{key:e}=A;return"'".concat(e,"' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.")},INVALID_ROOM_ID_REQUIRED:()=>"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required.",INVALID_ROOM_ID_TYPE_MISMATCH(A){let{key:e}=A;return"The type of target roomId must match the current roomId. Current room is using '".concat(e,"', but received '").concat(e==="strRoomId"?"roomId":"strRoomId","'.")},INVALID_ROOM_ID_DUPLICATE(A){let{key:e}=A;return"the target '".concat(e,"' must not be the same as the current '").concat(e,"'.")},INVALID_STREAM_TYPE:A=>{let{fnName:e}=A;return"'streamType' is required when 'userId' is not '*', calling ".concat(e,"()")},INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION(A){let{fnName:e}=A;return"the API '".concat(e,"' you called does not meet the requirements, please check the API documentation.")},INVALID_OPERATION_NOT_JOINED(A){let{fnName:e}=A;return"cannot ".concat(e," because you are not enter room yet.")},INVALID_OPERATION_REMOTE_USER_NOT_EXIST(A){let{fnName:e,value:o}=A;return"cannot ".concat(e," because remote user(userId: ").concat(o.userId,") does not publishing stream.")},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST(A){let{fnName:e,value:o}=A;return"cannot ".concat(e," because remote user(userId: ").concat(o.userId,") does not publishing ").concat(o.streamType," video.")},INVALID_OPERATION_REPEAT_CALL(A){let{fnName:e}=A;return"you are already ".concat(e,"(), cannot repeated call '").concat(e,"'.")},INVALID_OPERATION_NEED_VIDEO(A){let{fnName:e}=A;return"cannot call '".concat(e,"' because the camera is not turned on.")},INVALID_OPERATION_NEED_AUDIO(A){let{fnName:e}=A;return"cannot call '".concat(e,"' because the microphone or screen share is not turned on.")},INVALID_BUFFER_EMPTY:A=>{let{key:e}=A;return"the buffer size of paramerter '".concat(e,"' 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:A=>{let{fnName:e}=A;return"you need to call ".concat(e,"() after publish stream.")},ENV_NOT_SUPPORTED(A){let{fnName:e}=A;return"the current browser does not support the capability of the function '".concat(e,"' 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(A){let{fnName:e}=A;return"cannot call ".concat(e," because the browser version is too low, please upgrade to the latest version")},DEVICE_ERROR(A){let{fnName:e,error:o}=A;return"'".concat(e,"' got device exception").concat(o?", error: ".concat(o.toString(),"."):".")},DEVICE_NOT_FOUND_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"NotFoundError, no ".concat(o," detected, please check your device and the configuration on '").concat(e,"'").concat(n?", error: ".concat(n.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"NotAllowedError, you have disabled ".concat(o," access, please allow the current application to use the ").concat(o).concat(n?", error: ".concat(n.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"NotReadableError, the ".concat(o," maybe in use by another APP, please check if the device is pre-occupied by another APP.")},DEVICE_OVERCONSTRAINED_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(n?", error: ".concat(n.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(o).concat(n?", error: ".concat(n.toString(),"."):".")},DEVICE_SECURITY_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;return"SecurityError, check whether the system security policy restricts the use of the ".concat(o,", and it is recommended to turn on the ").concat(o," after the user interacts with the page").concat(n?", error: ".concat(n.toString(),"."):".")},DEVICE_ABORT_ERROR(A){let{fnName:e,deviceType:o=Gm(e),error:n}=A;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(n?" error: ".concat(n.toString(),"."):".")},CAMERA_RECOVER_FAILED(A){let{error:e}=A;return"camera recover capture failed ".concat(e?.name||"",": ").concat(e?.originMessage||e?.message)},MICROPHONE_RECOVER_FAILED(A){let{error:e}=A;return"microphone recover capture failed ".concat(e?.name||"",": ").concat(e?.originMessage||e?.message)},OPERATION_FAILED(A){let{fnName:e,error:o}=A;return"'".concat(e,"' failed, reason: ").concat(o?.toString())},FIREWALL_RESTRICTION:()=>"media connection failure due to firewall restrictions, please try to change your network.",EVENT_HANDLER_ERROR(A){let{eventName:e}=A;return"an error was caught on trtc.on('".concat(e,"', handler), please check your code on 'handler'.")},VIDEO_CONTEXT_ERROR(A){let{reason:e,error:o}=A;return"video context error ".concat(e," ").concat(o?.name||""," ").concat(o?.message||"")},SERVER_ERROR(A){let{fnName:e,error:o}=A;return"'".concat(e,"' got server error: ").concat(o?.toString(),", please check the SDK documentation.")},NEED_TO_BUY(A){let{value:e,url:o}=A;return"You need to buy packages for ".concat(e,". Refer to: ").concat(o)},ACCOUNT_NO_MONEY:A=>{let{fnParams:e}=A;return"your TRTC account run out of credit, please recharge.".concat(e.sdkAppId?" SDKAppId: ".concat(e.sdkAppId):"")},OPERATION_ABORT(A){let{fnName:e}=A;return"'".concat(e,"' abort")},UNKNOWN_ERROR(A){let{fnName:e,error:o}=A;return"'".concat(e,"' throw unknown exception").concat(o?", error: ".concat(o.toString(),"."):".")}});function Gm(A){if(!A)return"camera";let e=A.toLowerCase();return e.includes("screen")?"screen share":e.includes("audio")?"microphone":"camera"}var IeA=class p2 extends Error{constructor(e){let{code:o,extraCode:n,message:a="",messageParams:I,fnName:c="",originError:u,data:d}=e;var R;let k;k=a||function(_){let Z,{code:iA,params:cA,enableDocLink:TA=!1}=_,JA="",Ie=Rx[iA];try{Z=I4[Ie]}catch{Z=I4.UNKNOWN_ERROR}return $n(Z)?JA=Z(cA):Sr(Z)&&(JA=Z),cA.fnName&&!JA.includes(cA.fnName)&&(JA[JA.length-1]!=="."&&(JA+="."),JA+=" thrown from ".concat(cA.fnName,"()")),TA&&(JA+=" doc:"),JA}({code:o===Si.SERVER_ERROR?o:n||o,params:bt({fnName:c,error:u},I)}),super(k),G(this,"name","RtcError"),G(this,"code"),G(this,"extraCode"),G(this,"functionName"),G(this,"message"),G(this,"data"),G(this,"handler"),G(this,"originError"),this.name=Rx[o],this.code=o,this.extraCode=n,this.functionName=c,this.originError=u,this.message=k,this.data=d,this.extraCode===5302&&(R=this.originError)!=null&&R.message.includes("system")&&(this.handler=()=>{let _=document.createElement("a");vh?_.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):lu&&(_.href="x-apple.systempreferences:com.apple.preference.security?Privacy_".concat({startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"}[this.functionName])),_.href.length>0&&_.click()})}static convertFrom(e,o,n){let a=e;if(e instanceof Ct){let{stack:I}=e,c={code:Si.UNKNOWN_ERROR,fnName:o,originError:e};switch(e.getCode()){case Ge.INVALID_PARAMETER:c.code=Si.INVALID_PARAMETER,c.message=e.message;break;case Ge.INVALID_OPERATION:c.code=Si.INVALID_OPERATION,c.message=e.message;break;case Ge.NOT_SUPPORTED:case Ge.NOT_SUPPORTED_H264:c.code=Si.ENV_NOT_SUPPORTED,e.getCode()===Ge.NOT_SUPPORTED_H264&&(c.extraCode=e.message.includes(ts.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Ge.JOIN_ROOM_FAILED:c.messageParams={fnParams:n};case Ge.SERVER_TIMEOUT:case Ge.SWITCH_ROLE_FAILED:case Ge.SWITCH_ROOM_FAILED:c.code=Si.SERVER_ERROR,c.extraCode=e.getExtraCode();break;case Ge.API_CALL_ABORTED:c.code=Si.OPERATION_ABORT;break;case Ge.DEVICE_NOT_FOUND:case Ge.DEVICE_AUTO_RECOVER_FAILED:case Ge.INITIALIZE_FAILED:c.code=5300,e.name&&(c.extraCode=function(u){let d;switch(u){case"NotFoundError":d=5301;break;case"NotAllowedError":d=5302;break;case"NotReadableError":d=5303;break;case"OverconstrainedError":d=5304;break;case"InvalidStateError":d=5305;break;case"SecurityError":d=5306;break;case"AbortError":d=5307;break;default:d=5300}return d}(e.name));break;case Ge.VIDEO_ENCODE_FAILED:c.extraCode=5505;case Ge.AUDIO_ENCODE_FAILED:c.extraCode=5506,c.code=Si.OPERATION_FAILED;break;case Ge.UNKNOWN:break;default:c.code=Si.OPERATION_FAILED}a=new p2(c),I&&(a.stack+=I.substr(I.indexOf(`
`)))}else{if(e instanceof p2)return e;a=new p2({code:Si.UNKNOWN_ERROR,fnName:o,originError:e})}return a}},vi=IeA;function cl(A){return A==="sub"?"auxiliary":A==="auxiliary"?"sub":"main"}function Mx(A){return A===iG.QOS_PREFERENCE_CLEAR?"detail":A===iG.QOS_PREFERENCE_SMOOTH?"motion":""}function Sx(A,e){let o=e?AO:vf;return TO(A)?bt(bt({},o),A):$l[A]?$l[A]:o}var c4={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},E4={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}}},OM={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(A,e,o){if(Sr(A)&&!document.getElementById(A))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5009,fnName:o,messageParams:{key:e}})}},l4={name:"userId",required:!0,type:"string"},C4={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function xM(A,e){if(!A)throw new vi({code:Si.INVALID_OPERATION,extraCode:5101,fnName:e})}function B4(A,e,o){if(!A)throw new vi({code:Si.INVALID_OPERATION,extraCode:5102,fnName:e,messageParams:{value:o}})}function u4(A,e,o){if(!(/^[1-9]\d*$/.test(String(A))&&A<4294967295))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:o}})}function Q4(A,e,o){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(A))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:o}})}function d4(A){var e;if((e=A?.option)==null||!e.small)return;if(!um())return nA.warn("small stream is not supported"),void delete A.option.small;let o=Sx(A.option.profile),n=Sx(A.option.small,!0);return((a,I)=>a.width*a.height>=I.width*I.height&&a.frameRate>=I.frameRate&&a.bitrate>=I.bitrate)(o,n)?void 0:(nA.warn("small stream profile must be less than big stream profile. Big: ".concat(JSON.stringify(o),", Small: ").concat(JSON.stringify(n))),void delete A.option.small)}var ceA={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(A,e,o){if(this._room.isJoined)throw new vi({code:Si.INVALID_OPERATION,extraCode:5104,fnName:o});if(A.roomId){if(Sr(A.roomId))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5016,fnName:o,messageParams:{key:e}});u4(A.roomId,o,e)}else{if(!A.strRoomId)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5015,fnName:o});Q4(A.strRoomId,o,e)}},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:OM,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:c4},validate(A){var e,o;if(((e=A?.option)==null||!e.videoTrack)&&wI())throw new vi({code:Si.ENV_NOT_SUPPORTED,extraCode:5201});(o=A?.option)!=null&&o.small&&d4(A)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:fi(bt({},OM),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:c4},validate(A){var e;(e=A?.option)!=null&&e.small&&d4(A)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},mute:{type:["boolean","string"],values:[!0,!1,"microphone"]},muteKeepVolumeDetection:{type:"boolean"},option:C4},validate(A){var e;if(((e=A?.option)==null||!e.audioTrack)&&wI())throw new vi({code:Si.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:["boolean","string"],values:[!0,!1,"microphone"]},muteKeepVolumeDetection:{type:"boolean"},option:C4}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:OM,publish:{type:"boolean"},option:E4},validate(A,e,o,n,a){var I;if((I=A?.option)==null||!I.videoTrack){if(wI())throw new vi({code:Si.ENV_NOT_SUPPORTED,extraCode:5201});if(!OQ())throw new vi({code:Si.ENV_NOT_SUPPORTED,fnName:o,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:OM,publish:{type:"boolean"},option:E4}},muteRemoteAudio:[l4,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[l4,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:OM,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(A,e,o){xM(this._room.isJoined,o);let n=this._room.remotePublishedUserMap.get(A.userId);if(B4(!!n,o,A),n&&(A.streamType==="main"&&!n.muteState.videoAvailable||A.streamType==="sub"&&!n.muteState.hasAuxiliary))throw new vi({code:Si.INVALID_OPERATION,extraCode:5103,fnName:o,messageParams:{value:A}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:fi(bt({},OM),{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(A,e,o){xM(this._room.isJoined,o);let n=this._room.remotePublishedUserMap.get(A.userId);if(B4(!!n,o,A),n){if(A.streamType==="main"&&!n.muteState.videoAvailable||A.streamType==="sub"&&!n.muteState.hasAuxiliary)throw new vi({code:Si.INVALID_OPERATION,extraCode:5103,fnName:o,messageParams:{value:A}});if(A.option){let a=A.streamType==="main"?n.remoteVideoTrack:n.remoteAuxiliaryTrack;if((A.option.pictureInPicture||A.option.fullScreen||A.option.fullScreen)&&(!a.isSubscribed||!a.player.isPlaying))throw new vi({code:Si.INVALID_OPERATION,message:"cannot set pictureInPicture or fullScreen when remote video is not playing"})}}}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(A,e,o){if(A.userId!=="*"&&Ee(A.streamType))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5014,fnName:o})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(A,e,o){xM(this._room.isJoining||this._room.isJoined,o)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(A,e,o,n){if(!kT)throw new vi({code:Si.ENV_NOT_SUPPORTED,fnName:o,extraCode:5207});if(!this._room.enableSEI)throw new vi({code:Si.INVALID_OPERATION,fnName:o,extraCode:5108});if(A.byteLength>1e3)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5018,fnName:o});if(A.byteLength===0)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5017,messageParams:{key:e},fnName:o});xM(this._room.isJoined,o)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(A,e,o){if(!A&&!this._room.isMainStreamPublished||A&&!this._room.isAuxStreamPublished)throw new vi({code:Si.INVALID_OPERATION,extraCode:5109,messageParams:{key:e},fnName:o})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(A,e,o,n){if(A.byteLength>1e3)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5018,fnName:o});if(A.byteLength===0)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5017,fnName:o,messageParams:{key:e}})}}},validate(A,e,o){if(xM(this._room.isJoined,o),this._room.scene==="live"&&this._room.role==="audience")throw new vi({code:Si.INVALID_OPERATION,extraCode:5107,fnName:o,messageParams:{key:e}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(A,e,o){if(xM(this._room.isJoined,o),this._room.useStringRoomId&&A.strRoomId===this._room.roomId||!this._room.useStringRoomId&&A.roomId===Number(this._room.roomId))throw new vi({code:Si.INVALID_PARAMETER,extraCode:5020,fnName:o,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(A.roomId&&this._room.useStringRoomId||!A.roomId&&A.strRoomId&&!this._room.useStringRoomId)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5019,fnName:o,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(A.roomId)u4(A.roomId,o,e);else{if(!A.strRoomId)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5015,fnName:o});Q4(A.strRoomId,o,e)}},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},mg={TRTC:ceA},El=class extends Error{};function EeA(A,e){let o=Dh(A);for(let n=0;n<e.length;n++)tB(o[n],e[n]);return o}function leA(A){this._resolve=Promise.resolve(A)}function CeA(A){this._reject=Promise.reject(A)}var h4=class Aw{constructor(e,o){this.instance=e,this.group=o,G(this,"started",!1),G(this,"ops",[]),G(this,"startSame",()=>!0),G(this,"mergeUpdate",EeA);let n=Aw.instances.get(e);n?n.set(o,this):Aw.instances.set(e,new Map([[o,this]]))}static get(e,o){if(!o)return;let n=Aw.instances.get(e);return n&&n.get(o)||new Aw(e,o)}static gets(e,o){let n=Aw.instances.get(e),a=[];return n&&n.forEach((I,c)=>{o.test(c)&&a.push(I)}),a}action(e,o,n){let a=u=>{var d;return e===0?this.started=!0:e===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),u},I=u=>{var d,R;throw this.ops.shift(),e===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new El("start failed")),(R=this.currentOp)==null||R.action(),u},c={type:e,action:()=>o(...c.args).then(a,I),args:n,resolve:leA,reject:CeA};try{switch(this.state){case 1:if(e===0)throw new El("already started");break;case 4:if(e===2)throw new El("not started");break;default:return this.cacheOp(c)}}catch(u){return Promise.reject(u)}return this.ops.push(c),c.promise=o(...c.args).then(a,I)}cacheOp(e){if(this.ops.length===1)switch(this.state){case 0:case 2:if(e.type===0)throw new El("already start");break;case 3:switch(e.type){case 2:throw new El("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new El("unknown state")}else switch(e.type){case 3:if(this.lastOpType===3)return this.lastOp.promise;{let n=new El("keep stop");if(this.ops.slice(1).forEach(a=>a.reject(n)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,e.args),this.lastOp.promise;case 3:throw new El("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new El("start not allowed after update");case 0:throw new El("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new El("keep start")),new El("already start")}}e.promise=new Promise((n,a)=>{e._resolve?e._resolve.then(n):e.resolve=n,e._reject?e._reject.catch(a):e.reject=a});let{action:o}=e;return e.action=()=>o().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}};G(h4,"instances",new WeakMap);var oG=h4,vx=new WeakMap,Nx=(A,e)=>{if(e instanceof El){let{stack:o}=e;e=new vi({code:Si.OPERATION_ABORT,message:"".concat(A," abort: ").concat(e.message),fnName:A}),o&&(e.stack+=o.substr(o.indexOf(`
`)))}throw e};function km(A,e){return Dn((o,n)=>function(){for(var a=arguments.length,I=new Array(a),c=0;c<a;c++)I[c]=arguments[c];let u=oG.get(this,typeof A=="string"?A:A.call(this,...I));return u?(e&&(u.startSame=e.bind(this)),u.action(0,o.bind(this),I).catch(Nx.bind(null,n))):o.apply(this,I)})}function YM(A,e){let{merge:o,debounce:n}=e||{};return Dn((a,I)=>function(){for(var c=arguments.length,u=new Array(c),d=0;d<c;d++)u[d]=arguments[d];let R=oG.get(this,typeof A=="string"?A:A.call(this,...u));if(!R)return a.apply(this,u);if(o&&(R.mergeUpdate=o.bind(this)),n&&n.isNeedToDebounce.apply(this,u)){let{delay:k,getKey:_}=n;return new Promise((Z,iA)=>{var cA,TA;let JA=(cA=vx.get(this))==null?void 0:cA.get(_(...u));if(JA){let{timeoutId:XA,resolve:Ft}=JA;clearTimeout(XA),Ft()}let Ie=setTimeout(()=>{if(R.state===3||R.state===4)return Z();R.action(2,a.bind(this),u).catch(Nx.bind(null,I)).then(Z,iA)},k);vx.has(this)?(TA=vx.get(this))==null||TA.set(_(...u),{timeoutId:Ie,resolve:Z}):vx.set(this,new Map([[_(...u),{timeoutId:Ie,resolve:Z}]]))})}return R.action(2,a.bind(this),u).catch(Nx.bind(null,I))})}function _m(A){return Dn((e,o)=>function(){for(var n=arguments.length,a=new Array(n),I=0;I<n;I++)a[I]=arguments[I];let c=typeof A=="function"?A.call(this,...a):A;if(c instanceof RegExp)return Promise.all(oG.gets(this,c).map(d=>d.action(3,()=>Promise.resolve(),a))).then(()=>e.call(this,...a));let u=oG.get(this,c);return u?u.action(3,e.bind(this),a).catch(Nx.bind(null,o)):e.apply(this,a)})}function bm(){return function(A,e,o){return A.prototype[e]=function(){let n=this._log||console,a='"'.concat(e,'" is a static method. Use TRTC.').concat(e,"() instead. See: ").concat($C,"/en/TRTC.html#.").concat(e);n.warn(a)},o}}var Xt={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed",REALTIME_TRANSCRIBER_MESSAGE:"realtime-transcriber-message",REALTIME_TRANSCRIBER_STATE_CHANGED:"realtime-transcriber-state-changed",PICTURE_IN_PICTURE_STATE_CHANGED:"picture-in-picture-state-changed",FULL_SCREEN_STATE_CHANGED:"full-screen-state-changed"},BeA=new Set([Xt.AUDIO_VOLUME,Xt.AUDIO_FRAME,Xt.NETWORK_QUALITY,Xt.STATISTICS,Xt.SEI_MESSAGE,Xt.CUSTOM_MESSAGE,Xt.LAYER_DATA]),p4={};XC(p4,{ScheduleRequestType:()=>D4,getAbilityConfig:()=>ueA,getScheduleDomain:()=>Jq,isNeedToSchedule:()=>rG,scheduleProxy:()=>jQ,sendScheduleRequest:()=>m4,setIsNeedToSchedule:()=>wu,setScheduleProxy:()=>Pq});var Tx=null,Gx=0,f4=72e5,kx="trtc_schedule_cache",rG=!0;function wu(A){rn(A)&&A!==rG&&(rG=A,nA.info("setIsNeedToSchedule ".concat(A)),A?function(){if(typeof window<"u"&&typeof localStorage<"u")try{localStorage.removeItem(kx)}catch(e){nA.error("clearScheduleCache error",e)}}():Gx=Date.now()+f4)}function m4(A){return DA(this,arguments,function(e){let{userId:o,sdkAppId:n,useStringRoomId:a,roomId:I,userSig:c,version:u,frameWorkType:d,role:R,latencyLevel:k}=e;return function*(){var _;if(!rG&&Tx&&Gx>Date.now())return{isCached:!0,result:Tx};let Z={delta:0,count:[1,1],msg:[],detail:[]};try{let iA=new FormData;iA.append("userId",String(o)),iA.append("sdkAppId",String(n)),iA.append("isStrGroupId",String(a)),iA.append("groupId",String(I)),iA.append("sdkVersion",u),iA.append("userSig",String(c));let cA=((_=yield nm())==null?void 0:_.model)||cT();cA&&iA.append("model",cA);let TA=bQ();TA&&iA.append("osString",TA);let JA=kQ();JA&&iA.append("gpu",JA),R&&iA.append("role",String(R)),k&&iA.append("latencyLevel",String(k)),d&&iA.append("frameWorkType",String(d));let Ie=ki(),XA=yield function(ie,ke,Nt){return new Promise((Ut,Ui)=>{let Oi=null;Pf([y4(or=>ke.count[0]=or+1,or=>{let{error:xi,retry:yo,retriedCount:Sa,retryFuncArgs:Vn}=or;ke.msg[0]=xi.message,Oi||(Sa>=1&&(Vn[0]=Xh(Nt,"config",fA.MAIN,!0)),yo())})(Xh(Nt,"config",fA.MAIN),ie,{get timeout(){return 1e3*ph(2+ke.count[0])}}),y4(or=>ke.count[1]=or+1,or=>{let{error:xi,retry:yo,retriedCount:Sa,retryFuncArgs:Vn}=or;ke.msg[1]=xi.message,Oi||(Sa>=2&&(Vn[0]=Xh(Nt,"config",fA.BACKUP,!0)),yo())})(Xh(Nt,"config",fA.BACKUP),ie,{get timeout(){return 1e3*ph(2+ke.count[1])}})]).then(or=>{Oi=or,Ut(Oi)}).catch(Ui)})}(iA,Z,n);XA.config&&(XA.config.loggerDomain&&wf(XA.config.loggerDomain),rn(XA.config.scheduleCache)&&wu(!XA.config.scheduleCache)),Z.delta=ki()-Ie;let Ft=function(ie,ke,Nt){let Ut={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let Ui=performance.getEntriesByType("resource"),Oi=Xh(ie,"config",fA.MAIN),or=Xh(ie,"config",fA.BACKUP);for(let xi of Ui)if(xi.startTime>=Nt&&(xi.name===Oi||xi.name===or)&&xi.transferSize>0){let yo=xi.name===Oi?fA.MAIN:fA.BACKUP,Sa=Math.round(xi.duration),Vn=Math.round(xi.domainLookupStart-xi.startTime),NI=xi.redirectStart>0?Math.round(xi.redirectEnd-xi.redirectStart):0,IG=xi.fetchStart>0?Math.round(xi.domainLookupStart-xi.fetchStart):0,qM=Math.round(xi.domainLookupEnd-xi.domainLookupStart),Dz=Math.round(xi.requestStart-xi.secureConnectionStart),yz=Math.round(xi.secureConnectionStart-xi.connectStart),Rz=Math.round(xi.responseStart-xi.requestStart),Mz=Math.round(xi.responseEnd-xi.responseStart),JtA=[qM,Dz,yz,Rz,Mz];Jo.uploadEvent({log:"stat-schedule-net:".concat(Sa,"(").concat(Vn,"(").concat(NI,"->").concat(IG,")->").concat(JtA.join("->"),") ").concat(yo),userId:ke}),Ut=fi(bt({},Ut),{totalCost:Sa,local:Vn,dns:qM,tcp:yz,tls:Dz,request:Rz,response:Mz});break}}catch(Ui){nA.error("getScheduleDetailCost error",Ui)}return Ut}(Number(n),o,Ie);return Tx=XA,function(ie){if(typeof window<"u"&&typeof localStorage<"u")try{let ke=Date.now()+f4;localStorage.setItem(kx,JSON.stringify({result:ie,expireIn:ke})),Gx=ke}catch(ke){nA.error("saveScheduleToLocalStorage error",ke)}}(XA),{isCached:!1,result:XA,detailCost:Ft}}catch(iA){let cA=Aa(iA)?iA[0]:iA,TA=hr(cA.code)?cA.code:0,JA="schedule failed".concat(cA.message?": ".concat(cA.message):""),Ie=new Ct({code:Ge.SCHEDULE_FAILED,extraCode:TA,message:Wi({key:Mi.JOIN_ROOM_FAILED,data:{error:JA,code:TA}})});throw nA.error(JA,TA),Ie}}()})}typeof document<"u"&&document.head.insertAdjacentHTML("beforeend",Object.values(su).map(A=>'<link rel="dns-prefetch" href="https://'.concat(A,'">')).join(`\r
`)),function(){if(typeof window<"u"&&typeof localStorage<"u")try{let A=localStorage.getItem(kx);if(A){let{result:e,expireIn:o}=JSON.parse(A);o>Date.now()?(Tx=e,Gx=o,rG=!1):localStorage.removeItem(kx)}}catch(A){nA.error("loadScheduleFromLocalStorage error",A)}}(),S.on("28",()=>wu(!0)),S.on("63",()=>wu(!0)),S.on("84",()=>wu(!0)),S.on("201",A=>{A.state==="RECONNECTING"&&wu(!0)}),S.on("202",A=>{A.state==="RECONNECTING"&&wu(!0)});var jQ={main:"",backup:""};function Pq(A){Aa(A)?(jQ.main=A[0],jQ.backup=A[1]):(jQ.main=A,jQ.backup=A)}var D4=(A=>(A.CONFIG="config",A.TRTC_AUTO_CONF="trtcAutoConf",A.AUDIO_AI_AUTH="audioAiAuth",A))(D4||{});function Xh(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:fA.MAIN,n=arguments.length>3&&arguments[3]!==void 0&&arguments[3];return"https://".concat(jQ[o]||Jq(A,o,n),"/api/v1/").concat(e)}function ueA(A,e,o){let n=Xh(A,e),a=Xh(A,e,fA.BACKUP),I=new URLSearchParams(o).toString(),c=fetch("".concat(n,"?").concat(I)).then(d=>d.json()),u=fetch("".concat(a,"?").concat(I)).then(d=>d.json());return Pf([c,u])}function Jq(A){let e,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fA.MAIN,n=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return e=ol(A)?n?o===fA.MAIN?su.MAIN_OVERSEA_BACKUP:su.BACKUP_OVERSEA:o===fA.MAIN?su.MAIN_OVERSEA:su.BACKUP_OVERSEA:o===fA.MAIN?su.MAIN:su.BACKUP,e}function QeA(A,e,o){return new Promise((n,a)=>{cu({url:A,body:e,timeout:o.timeout,priority:"high"}).then(I=>{I.data.code===0?n(I.data.data):a({code:I.data.code,message:I.data.msg})}).catch(a)})}var y4=(A,e)=>Kf({retryFunction:QeA,settings:{retries:3,timeout:0},onError:e,onRetrying:A}),Hq=class{constructor(){G(this,"_log"),this._log=nA.createLogger({id:"fd"})}download(A,e){return DA(this,null,function*(){let{type:o="blob"}=e||{};A=xN(A);try{let n,a=ki();if(n=$n(fetch)?yield this.downloadWithFetch(A,o):yield this.downloadWithXHR(A,o),!n||!n.data)throw new Error("data is empty");let I=ki()-a;return this._log.info("downloaded: ".concat(A,", return type: ").concat(o,", cost: ").concat(I,"ms")),ct.addSuccessEvent({key:522700,cost:ki()-a}),n.data}catch(n){throw this._log.error("failed to download: ".concat(A,", error: ").concat(n)),ct.addFailedEvent({key:522700,error:n}),n}})}downloadWithFetch(A,e){return DA(this,null,function*(){this._log.info("download with fetch: ".concat(A,", return type: ").concat(e));try{let o,n=yield fetch(A);if(!n.ok){let a=new Error("network response was not ok: ".concat(n.status));throw a.status=n.status,a}return o=e==="arraybuffer"?yield n.arrayBuffer():yield n.blob(),{data:o}}catch(o){throw o}})}downloadWithXHR(A,e){return this._log.info("download with xhr: ".concat(A,", return type: ").concat(e)),new Promise((o,n)=>{let a=new XMLHttpRequest;a.open("GET",A,!0),a.responseType=e,a.onload=()=>{if(a.status===200||a.status===0&&a.response)o({data:a.response});else{let I=new Error("XHR failed, status: ".concat(a.status));I.status=a.status,n(I)}},a.onerror=n,a.send(null)})}loadWasm(A,e){return DA(this,null,function*(){this._log.info("loadWasm ".concat(A,", importObject: ").concat(JSON.stringify(e)));let o=ki(),n=null,a=null;if($n(WebAssembly.instantiateStreaming)&&!A.startsWith("data:application/octet-stream;base64,")&&!(I=>I.startsWith("file://"))(A)&&$n(fetch))try{let I=fetch(A);n=(yield WebAssembly.instantiateStreaming(I,e)).instance}catch(I){a=I}if(!n)try{let I=yield this.download(A,{type:"arraybuffer"});n=(yield WebAssembly.instantiate(I,e)).instance}catch(I){a=I}if(n){let I=ki()-o;return this._log.info("loadedWasm ".concat(A,", cost: ").concat(I,"ms")),ct.addSuccessEvent({key:522701,cost:I}),n}throw this._log.error("failed to loadWasm ".concat(A,", error: ").concat(a)),ct.addFailedEvent({key:522701,error:a}),a})}loadScript(A){this._log.info("loadScript ".concat(A));let e=ki();return new Promise((o,n)=>{let a=document.createElement("script");a.type="text/javascript",a.onload=()=>{this._log.info("loadedScript ".concat(A,", cost: ").concat(ki()-e,"ms")),ct.addSuccessEvent({key:522702,cost:ki()-e,split:1e3}),o(a)},a.onerror=I=>{this._log.error("failed to loadScript ".concat(A,", error: ").concat(I?.message||JSON.stringify(I))),ct.addFailedEvent({key:522702}),n(I)},a.crossOrigin="anonymous",a.src=A,document.head.append?document.head.append(a):document.getElementsByTagName("head")[0].appendChild(a)})}};vt([nB({settings:{timeout:0,retries:3},onError(A,e,o){var n;A?.status===404||(n=A?.message)!=null&&n.includes("404")?(this._log.warn("download 404, stop retry"),o(A)):e()},onRetrying(A){this._log.warn("download retrying: ".concat(A))}})],Hq.prototype,"download"),vt([nB({settings:{timeout:3e3,retries:3},onRetrying(A){this._log.warn("loadScript retrying: ".concat(A))}})],Hq.prototype,"loadScript");var Vq=new Hq;function R4(A){let[e,o]=A,n=o.byteLength,a=parseInt(String(n/255),10),I=n%255,c=[];c.push(0,0,0,1,6,e);for(let d=0;d<a;d++)c.push(255);c.push(I);let u=new DataView(o);return c.push(...new Uint8Array(u.buffer)),c.push(128),new fx(new DataView(new Uint8Array(c).buffer),!0)}function M4(A){return A.type==="empty"||A.data.byteLength===0}function w4(A){let e=new DataView(A),o=0;for(;o<e.byteLength;){let n=px(e,o);if(n===0){o+=1;continue}let a=o+n;if(a<e.byteLength&&(31&e.getUint8(a))==6)return!0;o+=n+1}return!1}function S4(A){let e=0,o=0,n=new DataView(A);for(let a=0;a<A.byteLength;a++)switch(n.getUint8(a)){case 0:e++;break;case 1:(e===2||e===3)&&o++,e=0;break;default:e=0}return o}function v4(A){let{frame:e,seiMessageList:o}=A;if(!o||o.length===0||e.data.byteLength===0)return e;let n=9-S4(e.data);if(n<=0)return e;let a=o.splice(0,n).reverse().map(R4),I=a.reduce((k,_)=>k+_.dataView.byteLength,0),c=new ArrayBuffer(I+e.data.byteLength),u=new DataView(c),d=new DataView(e.data),R=0;for(let k=0;k<a.length;k++)for(let _=0;_<a[k].dataView.byteLength;_++)u.setInt8(R++,a[k].dataView.getInt8(_));for(let k=0;k<e.data.byteLength;k++)u.setInt8(R++,d.getInt8(k));return e.data=c,e}function N4(A){let{frame:e,onSEI:o}=A;try{if(M4(e)||!w4(e.data))return e;let n=$W(e.data,!1).filter(a=>a.isSEI);o?.(n.reverse())}catch{}return e}function T4(A){let{seiMessageList:e,isAudio:o,getNtpTime:n,isMain:a}=A;return new TransformStream({transform(I,c){let u=I;o?audioEncodePipeline.forEach(d=>{u=d({frame:u,ntp:n(),onDump:()=>{self.postMessage({type:"dump",isAudio:o,data:u.data,userId:""})}})}):videoEncodePipeline.forEach(d=>{u=d({frame:u,seiMessageList:e,onDump:()=>{self.postMessage({type:"dump",isAudio:o,data:u.data,userId:"",streamType:a?"main":"auxiliary"})}})}),c.enqueue(u)}})}function G4(A){let{userId:e,streamType:o,isAudio:n}=A;return new TransformStream({transform(a,I){let c=a;n?(audioDecodePipeline.forEach(u=>{c=u({frame:c,onAudioFrameNTPTime:d=>{self.postMessage({type:"audio-ntp",data:d,userId:e,streamType:o})},onDump:()=>{self.postMessage({type:"dump",isAudio:n,data:c.data,userId:e})}})}),I.enqueue(c)):videoDecodePipeline.forEach(u=>{c=u({frame:c,onSEI:d=>{d.forEach(R=>{self.postMessage({type:"sei",seiPayloadType:R.seiPayloadType,data:R.seiPayload.buffer,userId:e,streamType:o})})},onDump:()=>{self.postMessage({type:"dump",isAudio:n,data:c.data,userId:e,streamType:o})}})}),I.enqueue(c)}})}function k4(A){let e=[fx],o=[S4,M4,$W,w4,R4,T4,G4,tM,qf,px],n="const videoEncodePipeline=[".concat(A.videoEncodePipeline.toString(),`];
const videoDecodePipeline=[`).concat(A.videoDecodePipeline.toString(),`];
const audioEncodePipeline = [`).concat(A.audioEncodePipeline.toString(),`];
const audioDecodePipeline = [`).concat(A.audioDecodePipeline.toString(),"];"),a="(()=>{".concat(e.map(d=>"const ".concat(d.name,"=(()=>").concat(d.toString(),")()")).join(`
`),`
`).concat(o.map(d=>d.toString()).join(`
`),";(").concat(()=>{let d=[],R=[],k=[],_=0;self.onmessage=Z=>{switch(Z.data.type){case"sei":Z.data.isMain?(d.push(Z.data.data),Z.data.small&&k.push(Z.data.data)):R.push(Z.data.data);break;case"ntp-offset":_=Z.data.data}},self.onrtctransform=Z=>{let{options:iA}=Z.transformer,cA=iA.isReceiver?G4({userId:iA.userId,streamType:iA.streamType,isAudio:iA.isAudio}):T4({getNtpTime:()=>Date.now()+_,isAudio:iA.isAudio,isMain:iA.isMain,seiMessageList:iA.isMain?iA.small?k:d:R});Z.transformer.readable.pipeThrough(cA).pipeTo(Z.transformer.writable)}},")();").concat(n,"})()"),I=new Blob([a],{type:"text/javascript"}),c=URL.createObjectURL(I),u=new Worker(c);return URL.revokeObjectURL(c),u}var _4,Kq=class{constructor(A){G(this,"audioPlayer"),G(this,"videoPlayer"),G(this,"log"),this.audioPlayer=A.audioPlayer,this.videoPlayer=A.videoPlayer,this.log=A.log.createChild({id:"pip"}),this.videoPlayer.on(mi.USER_RESUME_IN_PIP_OR_FULL_SCREEN,this.handleUserResumeInPIPOrFullScreen,this),this.videoPlayer.on(mi.USER_PAUSE_IN_PIP_OR_FULL_SCREEN,this.handleUserPauseInPIPOrFullScreen,this),this.videoPlayer.on(mi.ENTER_PICTURE_IN_PICTURE,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.on(mi.ENTER_FULL_SCREEN,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.on(mi.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this),this.videoPlayer.on(mi.LEAVE_FULL_SCREEN,this.handleLeaveFullScreen,this),this.videoPlayer.on(mi.VOLUME_CHANGE,this.handleVolumeChange,this)}handleUserResumeInPIPOrFullScreen(){this.audioPlayer.isPaused&&(this.log.warn("resume audio in ".concat(this.videoPlayer.isPictureInPicture()?"pip":"fullscreen")),this.audioPlayer.doResume()),ra&&Gh&&this.videoPlayer.resetSrcObjectToReplay()}handleUserPauseInPIPOrFullScreen(){this.audioPlayer.isPaused||(this.log.warn("pause audio in ".concat(this.videoPlayer.isPictureInPicture()?"pip":"fullscreen")),this.audioPlayer.doPause())}handleEnterPIPOrFullScreen(){this.videoPlayer.element&&this.audioPlayer.muted!==this.videoPlayer.element.muted&&(this.log.warn("sync video muted to ".concat(this.audioPlayer.muted," when enter ").concat(this.videoPlayer.isPictureInPicture()?"pip":"fullscreen")),this.videoPlayer.element.muted=this.audioPlayer.muted)}handleLeavePIP(){this.audioPlayer.isPaused&&!this.audioPlayer.isPausedByUserCall&&(this.log.warn("resume after leave pip"),this.audioPlayer.doResume()),this.videoPlayer.isPaused&&!this.videoPlayer.isPausedByUserCall&&(this.log.warn("resume video after leave pip"),this.videoPlayer.doResume())}handleLeaveFullScreen(){this.audioPlayer.isPaused&&!this.audioPlayer.isPausedByUserCall&&(this.log.warn("resume audio after leave fullscreen"),this.audioPlayer.doResume()),this.videoPlayer.isPaused&&!this.videoPlayer.isPausedByUserCall&&(this.log.warn("resume video after leave fullscreen"),ra&&Gh?this.videoPlayer.resetSrcObjectToReplay():this.videoPlayer.doResume())}handleVolumeChange(A){A.muted!==void 0&&this.audioPlayer.muted!==A.muted&&(this.log.warn("sync audio muted to ".concat(A.muted," in ").concat(this.videoPlayer.isPictureInPicture()?"pip":"fullscreen")),this.audioPlayer.setMuted(A.muted))}destroy(){this.videoPlayer.off(mi.USER_RESUME_IN_PIP_OR_FULL_SCREEN,this.handleUserResumeInPIPOrFullScreen,this),this.videoPlayer.off(mi.USER_PAUSE_IN_PIP_OR_FULL_SCREEN,this.handleUserPauseInPIPOrFullScreen,this),this.videoPlayer.off(mi.ENTER_PICTURE_IN_PICTURE,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.off(mi.ENTER_FULL_SCREEN,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.off(mi.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this),this.videoPlayer.off(mi.LEAVE_FULL_SCREEN,this.handleLeaveFullScreen,this),this.videoPlayer.off(mi.VOLUME_CHANGE,this.handleVolumeChange,this)}},b4=!1;function deA(A){var e=this;let{TRTC:o,room:n,errorModule:a,assetsPath:I}=A;return{TRTC:o,LocalMixVideoTrack:Fq,LocalVideoTrack:Ru,LocalScreenTrack:Nm,room:n,assetsPath:I,fileDownloader:Vq,innerEmitter:S,INNER_EVENT:K,constants:WU,environment:GO,utils:e4,eventLogger:Jo,log:this.room.getLogger(),loggerManager:nA,errorModule:a,kvStatManager:ct,rtcDectection:kA,trtc:this,rx:NW,enums:oe,schedule:p4,getDevices:Ix,initVisionTaskRegistry:function(c,u){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"/mediapipe/vision.js";return DA(e,null,function*(){!window.VisionTaskRegistry&&!b4&&(b4=!0,_4=Vq.loadScript("".concat(c,"/").concat(d).replace(/([^:]\/)\/+/g,"$1"))),yield _4,yield(yield window.VisionTaskRegistry.getInstance(c)).preloadModels(u)})},audioContext:tI(),deviceDetector:vs,AudioPlayer:Dq,RemoteAudioPlayer:yW,VideoPlayer:wi,showAutoPlayDialog:nC,Timer:nn,clearStarted:(c,u)=>{let d=c.getAlias(),R=oG.instances.get(this);if(R)if(u){let k=R.get(d+u);if(!k)return;k.started=!1}else R.forEach((k,_)=>{_.startsWith(d)&&(k.started=!1)})},startGetPCM:Yq,createAudioNode:ax,getNetworkTimeOffset:KU,validateSourceNode:()=>{var c;if(Yr&&((c=this.room.audioManager._localAudioPipline)==null||!c.source.node))throw new vi({code:Si.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})},createScriptTransformWorker:k4,AVPlayerStateSyncManager:Kq,PlayerEvent:mi}}var PM=new WeakMap,L4="5.15.3-beta.12";function vI(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Dn((n,a)=>function(){for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];try{jq.call(this,e,c,a,this._name)}catch(d){return Promise.reject(d)}return n.apply(this,c)})}function F4(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return Dn((n,a)=>function(){for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];try{jq.call(this,e,c,a,this._name)}catch(d){throw d}return n.apply(this,c)})}function jq(A,e,o,n){if(Aa(A))for(let a=0;a<A.length;a++)_x.call(this,{rule:A[a],value:e[a],key:A[a].name,fnName:o,className:n});else _x.call(this,{rule:A,value:e[0],key:A.name,fnName:o,className:n})}function _x(A){let{rule:e,value:o,key:n,fnName:a,className:I}=A;function c(R){return{code:Si.INVALID_PARAMETER,extraCode:R,fnName:a,messageParams:{key:n,rule:e,value:o}}}if(Ee(o)){if(e.required)throw new vi(c(5001));if(Ee(e.defaultValue))return void($n(e.validate)&&e.validate.call(this,o,n,a,I,this));o=e.defaultValue}if(Array.isArray(e.type)){let R=!1;for(let k=0;k<e.type.length;k++)e.type[k]===null&&o===null&&(R=!0),$n(e.type[k])&&o instanceof e.type[k]&&(R=!0),Sr(e.type[k])&&ya(o)===e.type[k].toLowerCase()&&(R=!0);if(!R)throw new vi({code:Si.INVALID_PARAMETER,extraCode:5002,fnName:a,messageParams:{key:n,rule:{type:e.type.map(k=>mh(k)?Yf(k):Sr(k)?k:ya(k))},value:o}})}else if(!Ee(e.type)&&ya(o)!==e.type)throw new vi(c(5002));if(e.allowEmpty===!1){let R=hr(o)&&(o===0||Number.isNaN(o)),k=Sr(o)&&o.trim()==="";if(R||k)throw new vi(c(5003))}if(e.notLessThanZero&&hr(o)&&o<0)throw new vi(c(5006));if(!Ee(e.min)&&hr(o)&&o<e.min)throw new vi(c(5007));if(!Ee(e.max)&&hr(o)&&o>e.max)throw new vi(c(5008));if(Sr(e.instanceOf)){if(!o||o._name!==e.instanceOf)throw new vi(c(5004))}else if($n(e.instanceOf)&&!(o instanceof e.instanceOf))throw new vi(c(5004));if(Array.isArray(e.values)&&!e.values.includes(o))throw new vi(c(5005));let{properties:u}=e;Cc(u)&&Xc(o)&&Object.keys(u).forEach(R=>{_x.call(this,{rule:u[R],value:o&&o[R],key:"".concat(R),fnName:a,className:I})});let{arrayItem:d}=e;Cc(d)&&Aa(o)&&o.forEach((R,k)=>{_x.call(this,{rule:d,value:R,key:"".concat(n,"[").concat(k,"]"),fnName:a,className:I})}),$n(e.validate)&&e.validate.call(this,o,n,a,I,this)}var heA=0;function Hn(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{getRemoteId:e=()=>"",replaceArg:o,getKVReportKey:n,ignoreLog:a,ignoreErrorLog:I}=A;return Dn((c,u)=>function(){for(var d=arguments.length,R=new Array(d),k=0;k<d;k++)R[k]=arguments[k];var _,Z,iA;function cA(Ft,ie,ke){if(ke&&ke.includes(Ft))return"hided";if(o){let Nt=o(...R);if(R[Nt.argIndex]===ie)return Nt.value}if(ie===R||Ft in R)return ie;try{return ie instanceof HTMLElement?"id: ".concat(ie.id," type:").concat(ya(ie)):ie instanceof MediaStreamTrack?YN(ie):(JSON.stringify(ie),ie)}catch{return"type:".concat(ya(ie))}}let TA=(this==null?void 0:this._log)||nA,JA=++heA;if(a!=null&&a(...R))return c.apply(this,R);R.length>0?TA.info("".concat(u,"() ").concat(JA," ").concat(JSON.stringify(R,(Ft,ie)=>cA(Ft,ie,["userSig","privateMapKey"])))):TA.info("".concat(u,"() ").concat(JA));let Ie=n?n(...R):KO[u],XA=I?.(...R)||!1;try{let Ft=c.apply(this,R),ie=ki();if(fh(Ft)){let ke="".concat(u.includes("Plugin")?"".concat(((Z=(_=R[0]).getName)==null?void 0:Z.call(_))||""," "):" ");return Ft.then(Nt=>(TA.info("".concat(u,"() success ").concat(JA," ").concat(ke).concat(e.call(this,...R))),ct.addSuccessEvent({key:Ie,cost:ki()-ie}),Nt)).catch(Nt=>{var Ut;let Ui=(Nt=vi.convertFrom.call(this,Nt,u,R.length===1?R[0]:R)).extraCode||Nt.code,Oi=(Ut=Nt.message)!=null&&Ut.includes(Ui)?"":" code:".concat(Ui),or=Nt?.code===Si.OPERATION_ABORT;throw XA||TA[or?"warn":"error"]("".concat(u,"() failed ").concat(JA," ").concat(ke).concat(e.call(this,...R)," ").concat(Nt).concat(Oi," params: ").concat(JSON.stringify(R,cA))),ct.addFailedEvent({key:Ie,error:Nt}),Nt})}return ct.addSuccessEvent({key:Ie}),Ft}catch(Ft){let ie=(Ft=vi.convertFrom.call(this,Ft,u)).extraCode||Ft.code,ke=(iA=Ft.message)!=null&&iA.includes(ie)?"":" code:".concat(ie),Nt=Ft?.code===Si.OPERATION_ABORT;throw XA||TA[Nt?"warn":"error"]("".concat(u,"() failed ").concat(JA," ").concat(Ft).concat(ke," params: ").concat(JSON.stringify(R,cA))),ct.addFailedEvent({key:Ie,error:Ft}),Ft}})}var Wq,zq=A=>Dn((e,o)=>function(n,a){return DA(this,null,function*(){let I=this._plugins.get(n);if(!I)throw this._log.error("plugin ".concat(String(n)," is not found")),new vi({code:Si.OPERATION_ABORT,message:"plugin ".concat(String(n)," is not found"),fnName:o});if($n(I.constructor.isSupported)&&!I.constructor.isSupported())throw this._log.error("plugin ".concat(String(n)," is not supported")),new vi({code:Si.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(n)," is not supported"),extraCode:5210,fnName:o});return jq.call(this,I.getValidateRule(A),[a],o,"TRTC"),e.call(this,I,a)})}),Zq=0,bx=class DG{constructor(e){this.core=e,G(this,"log"),G(this,"customAudioReferenceMap",new Map),G(this,"audioRefId",0),G(this,"audioContext",tI()),G(this,"localAudioWorkletNode"),G(this,"screenAudioWorkletNode"),G(this,"mixNode"),G(this,"silentNode"),Zq+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(Zq)}),this.log.info("created id=".concat(this.getAlias()).concat(Zq)),this.installEvent()}static getStartValidateRule(e){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(o,n,a,I){if(!e.room.audioManager.hasAudioTrack&&!e.room.audioManager.hasScreenAudioTrack)throw new vi({code:Si.INVALID_OPERATION,extraCode:5106,fnName:a})}}}preload(e){return Wq||(Wq=this.doPreload(e)),Wq}doPreload(e){return DA(this,null,function*(){let o=yield this.core.fileDownloader.download(e,{type:"blob"}),n=URL.createObjectURL(o);try{yield Fa(this.audioContext,n)}catch(a){this.log.error("preload audioProcessor failed. ".concat(a))}finally{URL.revokeObjectURL(n)}})}getName(){return DG.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(e){switch(e){case"start":return DG.getStartValidateRule(this.core);case"update":return DG.updateValidateRule;case"stop":return DG.stopValidateRule}}start(e){return DA(this,null,function*(){var o,n,a,I;let{room:c}=this.core,{sdkAppId:u,userId:d,userSig:R,assetsPath:k=this.core.assetsPath,audioReference:_,processLevel:Z,enableDump:iA,isLocalAudioNeedAudioProcess:cA=!0,isScreenAudioNeedAudioProcess:TA=!1}=e;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=cA,this.core.room.audioManager.isScreenAudioNeedAudioProcess=TA,!k)throw new vi({code:Si.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload("".concat(k,"/audioProcessor-wasm.js")),cA&&!this.localAudioWorkletNode){let{sign:JA,status:Ie,timestamp:XA}=yield this.getAuthData(u,d,R);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",u,d,XA,JA,Ie,c)}if(TA&&!this.screenAudioWorkletNode){let{sign:JA,status:Ie,timestamp:XA}=yield this.getAuthData(u,d,R);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",u,d,XA,JA,Ie,c)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(o=this.localAudioWorkletNode)==null||o.port.postMessage({type:"enable"}),(n=this.screenAudioWorkletNode)==null||n.port.postMessage({type:"enable"}),c.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),Ee(_)||_.forEach(JA=>{this.customAudioReferenceMap.set(JA,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:JA,refId:"o-".concat(this.audioRefId++)})}),Ee(Z)||(a=this.localAudioWorkletNode)==null||a.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:Z}}),Ee(iA)||(I=this.localAudioWorkletNode)==null||I.port.postMessage({type:"dump",data:{enable:iA}})})}update(e){return DA(this,null,function*(){var o,n,a;let{audioReference:I,enableDump:c,processLevel:u}=e;Ee(I)||(this.customAudioReferenceMap.forEach((d,R)=>{this.customAudioReferenceMap.delete(R),this.core.room.audioManager.updateAudioReference({type:"remove",refId:d})}),I.forEach(d=>{this.customAudioReferenceMap.set(d,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d,refId:"o-".concat(this.audioRefId++)})})),Ee(u)||(o=this.localAudioWorkletNode)==null||o.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:u}}),Ee(c)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:c}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:c}}))})}stop(){return DA(this,null,function*(){var e,o;let{room:n}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(o=this.screenAudioWorkletNode)==null||o.port.postMessage({type:"disable"}),yield n.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(e,o,n){return DA(this,null,function*(){let a=String(Date.now()).slice(0,-3),{auth:I,sign:c,status:u,message:d}=yield function(R){return DA(this,arguments,function(k){let{sdkAppId:_,userId:Z,userSig:iA,timestamp:cA}=k;return function*(){let TA="".concat(function(Ui){let Oi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fA.MAIN;return"https://".concat(jQ[Oi]||Jq(Ui,Oi),"/api/v1/audioAiAuth")}(_),"?sdkAppId=").concat(_,"&userId=").concat(Z,"&userSig=").concat(iA,"&timestamp=").concat(cA),JA=yield fetch(TA),{data:{errCode:Ie,errMsg:XA,sign:Ft,status:ie}}=yield JA.json();if(ie==="1")return{auth:!0,sign:Ft,status:ie,message:XA};let ke=ol(_)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",Nt="Init RTCAudioProcessor failed.",Ut="";switch(Ie){case 1:Ut="Please check your params.";break;case 2:Ut="You need to buy packages. Refer to: ".concat(ke);break;case 3:Ut="Server is invalid. Please contact our engineer. ";break;case 4:Ut="Your packages is not active. Refer to: ".concat(ke);break;case 5:Ut="Your packages is expired. Refer to: ".concat(ke);break;case 6:Ut="Your version is not supported."}return{auth:!1,status:ie,message:XA?"".concat(Nt," Reason: ").concat(XA,". ").concat(Ut):"".concat(Nt,", ").concat(Ut)}}()})}({sdkAppId:e,userSig:n,userId:o,timestamp:a});if(!I)throw this.log.info("audioProcessor: ".concat(o," auth result: ").concat(I,". Message: ").concat(d)),new vi({code:Si.INVALID_PARAMETER,message:d});return{sign:c,status:u,timestamp:a}})}initWorkletNode(e,o,n,a,I,c,u,d){e.port.postMessage({type:"init",data:{sdkAppId:String(n),userId:a,timestamp:I,sign:c,status:u}}),e.port.onmessage=R=>{var k;let{data:_}=R;switch(_.type){case"cost":let Z=_?.value>10?"info":"debug";return void this.log[Z]("".concat(o==="localAudio"?"":"[".concat(o,"] "),"avg cost: ").concat(_.value," max: ").concat(_?.max,"(").concat(lN(new Date(_?.maxCostTimestamp)),") hist: ").concat((k=_?.hist)==null?void 0:k.join(" ")));case"log":return void this.log[_.logLevel]("".concat(o==="localAudio"?"":"[".concat(o,"] ")).concat(_.value));case"dump":return void S.emit("265",{room:d,data:_.value,type:o==="localAudio"?"dump":"dump-screen-audio"});case"detectEcho":return void this.log.warn("".concat(o==="localAudio"?"":"[".concat(o,"] "),"detect echo: ").concat(QM()?Qu():bQ()))}}}handleLocalAudioStarted(e){return DA(this,null,function*(){var o;if(this.hitTest(e.room)&&((o=this.core.room.scheduleResult.config)==null?void 0:o.audioProcessor)===!0)try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(n){this.log.warn("audio processor auto start failed, error: ".concat(n))}})}handleLocalAudioStopped(e){return DA(this,null,function*(){var o;!this.hitTest(e.room)||((o=this.core.room.scheduleResult.config)==null?void 0:o.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(e){return e===this.core.room}};G(bx,"updateValidateRule",{type:"object"}),G(bx,"stopValidateRule",{type:"object"}),G(bx,"Name","AudioProcessor");var peA=bx,Xq=0,feA=class{constructor(A,e){G(this,"audioObjectURL"),G(this,"player"),G(this,"publisher"),G(this,"mixInput"),this.mixInput=new QW(e),A.url?(this.player=new Audio(A.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(A.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(A.track),this.mixInput.connect()}updateSettings(A){this.player&&(Ee(A.volume)||(this.volume=A.volume),Ee(A.loop)||(this.loop=A.loop),Ee(A.playbackRate)||(this.playbackRate=A.playbackRate))}updateListener(A){if(this.player){if(A.onDurationChange){let{onDurationChange:e}=A;this.player.ondurationchange=o=>{e(o.target.duration)}}if(A.onTimeUpdate){let e=A.onTimeUpdate,{player:o}=this;o.ontimeupdate=()=>{e(o.currentTime,o.duration)}}A.onEnded&&(this.player.onended=A.onEnded)}}reload(A){return DA(this,null,function*(){if(A.url){let e=yield Vq.download(A.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(A),this.updateSettings(A))}else this.mixInput.replaceSource(A.track)})}reset(){this.seek(0),this.mixInput.connect()}seek(A){this.player&&(A<0&&A>this.player.duration||(this.player.currentTime=A,this.publisher.currentTime=A))}play(){var A,e;return Promise.all([(A=this.player)==null?void 0:A.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var A,e;(A=this.player)==null||A.pause(),(e=this.publisher)==null||e.pause()}stop(){var A;(A=this.player)==null||A.pause(),this.mixInput.disconnect()}setOperation(A){A==="pause"&&this.pause(),A==="resume"&&(this.pause(),this.play()),A==="stop"&&(this.pause(),this.seek(0))}set volume(A){!this.player||!this.publisher||(this.player.volume=A,this.publisher.volume=A)}set loop(A){!this.player||!this.publisher||(this.player.loop=A,this.publisher.loop=A)}set playbackRate(A){!this.player||!this.publisher||(this.player.playbackRate=A,this.publisher.playbackRate=A)}};function JM(A,e){if(e&&typeof e!="function")throw new vi({code:Si.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(A," should be a function.")})}var nG=class yG{constructor(e){this.core=e,G(this,"log"),G(this,"mixedMusicMap",new Map),G(this,"cacheMusicMap",new Map),Xq+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(Xq)}),this.log.info("created id=".concat(this.getAlias()).concat(Xq))}getName(){return yG.Name}getAlias(){return"ax"}getGroup(e){return e?.id}getValidateRule(e){switch(e){case"start":return yG.startValidateRule;case"update":return yG.updateValidateRule;case"stop":return yG.stopValidateRule}}start(e){return DA(this,null,function*(){let{room:o}=this.core;this.core.validateSourceNode(),this.log.info("add music source, id: ".concat(e.id," url: ").concat(e.url,", track: ").concat(e.track));let{id:n,url:a}=e;if(this.mixedMusicMap.has(n))return;let I=this.cacheMusicMap.get(n);I?e.url?I.reset():(I.mixInput.replaceSource(e.track),I.mixInput.connect()):(I=new feA(e,o.audioManager),this.cacheMusicMap.set(n,I)),I.updateListener(e),I.updateSettings(e);try{yield I.play()}catch(c){yield this.handleAutoPlayFailed(I,e,c)}this.mixedMusicMap.set(n,I),I.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:I.mixInput.source.node,refId:"ax-".concat(n)}),this.log.info("start mix audio track ".concat(n," success.")),ct.addEnum({key:502700,value:3}),this.kvUpload(e)})}handleAutoPlayFailed(e,o,n){return DA(this,null,function*(){if(n.name==="NotSupportedError")this.log.error("play failed, try to reload source. error: ".concat(n)),yield e.reload(o),yield e.play();else{if(n.name!=="NotAllowedError")throw n;if(this.core.room.enableAutoPlayDialog){let a=()=>{var I;(I=e.play())==null||I.finally(()=>{S.off("154",a,this)})};S.on("154",a,this),nC()}else this.core.trtc.emit(Xt.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>DA(this,null,function*(){return e.play()})})}})}update(e){return DA(this,null,function*(){let{id:o,operation:n,seekFrom:a,playbackRate:I}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let c=this.mixedMusicMap.get(o);c?(c.updateSettings(e),c.updateListener(e),Ee(n)||c.setOperation(n),Ee(a)||c.seek(a),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(o," not found."))})}stop(e){return DA(this,arguments,function(o){var n=this;let{id:a}=o;return function*(){if(n.mixedMusicMap.has(a)){n.log.info("remove music source, music id: ".concat(a));let I=n.mixedMusicMap.get(a);I!=null&&I.mixInput.source.node&&n.core.room.audioManager.updateAudioReference({type:"remove",audioReference:I.mixInput.source.node,refId:"ax-".concat(a)}),I?.stop(),n.mixedMusicMap.delete(a)}a==="*"&&n.destroyAllMusic()}()})}kvUpload(e){let{track:o,loop:n,volume:a,playbackRate:I,operation:c,seekFrom:u,onTimeUpdate:d,onDurationChange:R,onEnded:k}=e;o&&ct.addCount({key:502009}),n&&ct.addCount({key:502001}),a&&ct.addCount({key:502002}),I&&ct.addCount({key:502003}),c&&ct.addCount({key:502004}),u&&ct.addCount({key:502005}),typeof d!="function"&&ct.addCount({key:502007}),typeof k!="function"&&ct.addCount({key:502008}),typeof R!="function"&&ct.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((e,o)=>{e!=null&&e.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:e.mixInput.track,refId:o}),this.stop({id:o})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};G(nG,"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(A,e,o){if(A.url&&A.url!=="*"){let n=A.url.split("?")[0],a=["mp3","ogg","wav","flac"],I=n.split(".").pop(),c=a.indexOf(I)>=0,u=n.startsWith("blob"),d=n.startsWith("data");if(!(c||u||d))throw new vi({code:Si.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:o})}if(!A.url&&!A.track)throw new vi({code:Si.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:o});JM("onTimeUpdate",A.onTimeUpdate),JM("onEnded",A.onEnded),JM("onDurationChange",A.onDurationChange)}}),G(nG,"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(A,e,o){JM("onTimeUpdate",A.onTimeUpdate),JM("onEnded",A.onEnded),JM("onDurationChange",A.onDurationChange)}}),G(nG,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),G(nG,"Name","AudioMixer");var $q,meA=nG,AK=0,Lx=class RG{constructor(e){this.core=e,G(this,"log"),G(this,"audioContext",tI()),G(this,"workletNode"),G(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5}),AK+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(AK)}),this.log.info("created id=".concat(this.getAlias()).concat(AK))}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},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(o,n,a,I){if(!e.room.audioManager.hasAudioTrack)throw new vi({code:Si.INVALID_OPERATION,extraCode:5106,fnName:a})}}}preload(e){return $q||($q=this.doPreload(e)),$q}doPreload(e){return DA(this,null,function*(){let o=yield this.core.fileDownloader.download(e,{type:"blob"}),n=URL.createObjectURL(o);try{yield Fa(this.audioContext,n)}catch(a){throw this.log.error("load worklet failed",a),a}finally{URL.revokeObjectURL(n)}})}getName(){return RG.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(e){switch(e){case"start":return RG.startValidateRule(this.core);case"update":return RG.updateValidateRule;case"stop":return RG.stopValidateRule}}start(e){return DA(this,null,function*(){let{room:o,schedule:n}=this.core,{assetsPath:a=this.core.assetsPath}=e;if(!a)throw new vi({code:Si.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload("".concat(a,"/denoiser-wasm").concat(dm()?"":"-nosimd",".js")),!this.workletNode){let I=String(Date.now()).slice(0,-3),{auth:c,sign:u,status:d,message:R}=yield function(k,_){return DA(this,arguments,function(Z,iA){let{sdkAppId:cA,userId:TA,userSig:JA,timestamp:Ie}=iA;return function*(){try{let{data:{errCode:XA,errMsg:Ft,sign:ie,status:ke}}=yield Z.getAbilityConfig(cA,Z.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:cA,userId:TA,userSig:JA,timestamp:Ie});if(ke==="1")return{auth:!0,sign:ie,status:ke,message:Ft};let Nt=ol(cA)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",Ut="Init RTCAIDenoiser failed.",Ui="";switch(XA){case 1:Ui="Please check your params.";break;case 2:Ui="You need to buy packages. Refer to: ".concat(Nt);break;case 3:Ui="Server is invalid. Please contact our engineer. ";break;case 4:Ui="Your packages is not active. Refer to: ".concat(Nt);break;case 5:Ui="Your packages is expired. Refer to: ".concat(Nt);break;case 6:Ui="Your version is not supported."}return{auth:!1,status:ke,message:Ft?"".concat(Ut," Reason: ").concat(Ft,". ").concat(Ui):"".concat(Ut,", ").concat(Ui)}}catch(XA){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(XA)}}}()})}(n,fi(bt({},e),{timestamp:I}));if(!c)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(c,". Message: ").concat(R)),new vi({code:Si.INVALID_PARAMETER,message:R});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:I,sign:u,status:d}}),this.workletNode.port.onmessage=k=>{var _;let{data:Z}=k;if(Z.type==="cost"){let iA=Z?.max>20?"warn":Z?.max>10?"info":"debug";this.log[iA]("avg cost: ".concat(Z.value," max: ").concat(Z?.max,"(").concat(lN(new Date(Z?.maxCostTimestamp)),") hist: ").concat((_=Z?.hist)==null?void 0:_.join(" ")))}else Z.type==="log"&&this.log[Z.logLevel]("".concat(Z.value))}}this.updateConfig(e),this.workletNode.port.postMessage({type:"enable"}),o.audioManager.addDenoiser(this.workletNode),o.sendAbilityStatus({ai_denoise:1})})}update(e){return DA(this,null,function*(){this.updateConfig(e)})}stop(){return DA(this,null,function*(){if(!this.workletNode)return;let{room:e}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield e.audioManager.removeDenoiser(this.workletNode)})}updateConfig(e){if(!this.workletNode)return;let o=!1;Ee(e.mode)||(e.mode===0?this.config.enableFarFieldReduce=!1:e.mode===1&&(this.config.enableFarFieldReduce=!0),o=!0),Ee(e.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=e.farFieldReduceThreshold,o=!0),o&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};G(Lx,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),G(Lx,"stopValidateRule",{type:"object"}),G(Lx,"Name","AIDenoiser");var DeA=Lx,yeA=es(hg(),1),ReA=class extends yeA.EventEmitter{constructor(){super(),G(this,"observer"),G(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 DA(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!ra&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(A){Jo.uploadEvent({log:"stat-pressure-detector-start-failed",error:A})}})}onPressureChange(A){let e=this.stateNum,o=A[A.length-1];this.state=o.state,(this.stateNum>3||e>3)&&nA.info("".concat(o.source,": ").concat(o.state)),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var A;try{(A=this.observer)==null||A.disconnect(),this.observer=null}catch(e){Jo.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:e})}}},U4=new ReA,eK=0,tK=class XZ{constructor(e){this.core=e,G(this,"log"),G(this,"_seiMessageList",[]),G(this,"_smallSeiMessageList",[]),G(this,"_subStreamSeiMessageList",[]),eK++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(eK)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(eK)),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:o,mediaType:n}=e;try{return v4({frame:o,seiMessageList:n===8?this._smallSeiMessageList:n===2?this._subStreamSeiMessageList:this._seiMessageList})}catch(a){this.log.warn(a)}return o}decode(e){let{frame:o,track:n}=e;return N4({frame:o,onSEI:a=>{a.forEach(I=>{n!=null&&n.userId?this.core.trtc.emit(Xt.SEI_MESSAGE,{seiPayloadType:I.seiPayloadType,data:I.seiPayload.buffer,userId:n.userId,streamType:n.mediaType===2?"sub":"main"}):this.core.innerEmitter.emit(this.core.INNER_EVENT.SEI_MESSAGE,{room:this.core.room,nalu:I})})}})}destroy(){this.log.debug("destroy"),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:xQ?this.encode:v4,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:xQ?this.decode:N4,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:o,options:n}=e;var a;let I=[n.seiPayloadType,o],c=!!n.small;n.toSubStream?this._subStreamSeiMessageList.push(I):(this._seiMessageList.push(I),c&&this._smallSeiMessageList.push(I)),(a=this.core.room.scriptTransformWorker)==null||a.postMessage({type:"sei",data:I,isMain:!n.toSubStream,small:c})}getName(){return XZ.Name}getAlias(){return"sei"}getGroup(){return"sei"}};G(tK,"autoStart",!0),G(tK,"Name","SEI");var Fx,MeA=tK,weA=0,iK=class $Z{constructor(e){this.core=e,G(this,"_core"),G(this,"log"),G(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++weA)}),this.log.info("created")}getName(){return $Z.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 DA(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog())})}update(e){return DA(this,arguments,function(o){var n=this;let{visible:a}=o;return function*(){a?yield n.openDebugDiaLog():n.closeDebugDiaLog()}()})}stop(){this.closeDebugDiaLog()}destroy(){this.stop()}openDebugDiaLog(){return DA(this,null,function*(){var e;if(!this.dialog)try{if(Fx)yield Fx;else{let o=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_DEBUG_DIALOG_PATH"))||"https://unpkg.com/".concat("trtc-sdk-v5","@").concat(il,"/assets/debug-dialog.js");Fx=this._core.fileDownloader.loadScript(o),yield Fx}this.dialog=new TRTCDebugDialog(this._core,this.log),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(o){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(o))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}};G(iK,"Name","Debug"),G(iK,"autoStart",!0);var SeA=iK,O4=A=>{switch(A){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},x4=class{constructor(A,e,o){G(this,"trackDoneOB"),G(this,"startOB"),G(this,"stopOB"),G(this,"inputFrameCount",0),G(this,"decodedFrameCount",0),G(this,"type","auto"),G(this,"config"),G(this,"decoder"),G(this,"_decodeSink");let{kvStatManager:n,trtc:a}=A;this.config=o.config,this.trackDoneOB=Ln(e,Uo.INIT),this.stopOB=yu(),this.startOB=yu(),o.type==="auto"?this.type="webCodecs":this.type=o.type;let I=yu();Jn(this.startOB,wq(0),Qx(c=>{let u=this.pipe(e);return I.next("STARTING"),e.log.info("decoder type: ".concat(this.type)),Jn(u,Qc(this.stopOB),Ks(()=>{},d=>{e.log.error(d),n.addFailedEvent({key:O4(this.type),error:d}),c>4?this.startOB.error(d):this.startOB.next(c+1)})),Jn(u,LM(1),XW(Nq))}),Qc(this.stopOB),Ks(()=>{e.player.setOutput(),I.next("STARTED")},c=>{I.next("FAILED")},()=>{n.addSuccessEvent({key:O4(this.type)}),n.addSuccessEvent({key:504702})}))}mock(A){this._decodeSink?this._decodeSink.error(A):this.startOB.next(0)}close(A){this.stopOB.next(A)}pipe(A){return qT()(e=>DA(this,null,function*(){this._decodeSink=e,e.defer(()=>{var n;(n=this.decoder)==null||n.close()});let{type:o}=this;try{o==="webCodecs"&&(this.decoder=new AudioDecoder({error:n=>{A.log.error(n),e.error(4)},output:n=>{this.decodedFrameCount++,e.next(n),A.player.write(n)}})),this.decoder.configure(this.config)}catch(n){A.log.error(n),e.error(o==="webCodecs"?2:6)}}))}decodeFrame(A){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:A.data,timestamp:A.timestamp,type:"key"}))}},veA={type:"object"},Y4=class yj{constructor(e){this.core=e,G(this,"log"),G(this,"contextMap",new Map),G(this,"decodeProcessorMap",new WeakMap),this.log=e.log.createChild({id:"".concat(this.getAlias())})}getAlias(){return yj.Name}getGroup(e){return e.track.userId+e.track.streamType}getName(){return yj.Name}getValidateRule(e){return veA}start(e){let{track:o}=e;this.decodeProcessorMap.set(o,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:n=>{let{frame:a,track:I}=n;return this.decodeProcessorMap.has(I)?this.decodeProcessorMap.get(I)({frame:a,track:I}):a},type:3})}decode(e){return o=>{let{frame:n,track:a}=o;if(a!==e.track)return n;if(this.contextMap.has(a))return this.contextMap.get(a).decodeFrame(n);let I=new x4(this.core,a,e);return Jn(I.trackDoneOB,LM(1),Ks(()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:a})})),this.contextMap.set(a,I),I.decodeFrame(n)}}stop(e){let{track:o}=e,n=this.contextMap.get(o);n&&(n.close("stop"),this.contextMap.delete(o),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(e){let o=this.contextMap.get(e.track);if(o){if(e.type==="mock")return void o.mock(10);o.close("update"),this.contextMap.set(e.track,new x4(this.core,e.track,e))}}};G(Y4,"Name","TRTCAudioDecoder");var P4=Y4,NeA={rttPoorLimit:150,lossPoorLimit:20,rttGoodLimit:100,lossGoodLimit:10,fpsPoorLimit:5,cooldownTime:1e4,poorCount:3,goodCount:5,maxUpgradeFailCount:3},TeA=class{constructor(){G(this,"log"),G(this,"autoMode",{enabled:!1,instance:null,config:NeA,sortedStreamList:[],currentQualityIndex:0}),G(this,"switchControl",{isInternal:!1,isSwitching:!1,lastSwitchTime:0,boundOnStatistics:null}),G(this,"networkMetrics",{frameRate:0,rtt:0,loss:0}),G(this,"counters",{rttUnder:0,lossUnder:0,downgradeCondition:0,upgradeFail:0}),G(this,"onStatistics",A=>{var e,o;if(!this.autoMode.instance)return;let{config:n}=this.autoMode;if(this.networkMetrics.rtt=A.rtt,this.networkMetrics.loss=A.downLoss,this.counters.rttUnder=A.rtt<n.rttGoodLimit?this.counters.rttUnder+1:0,this.counters.lossUnder=A.downLoss<n.lossGoodLimit?this.counters.lossUnder+1:0,(e=A?.remoteStatistics)==null||!e.length)return;let a=this.getCurrentPlayingStream(this.autoMode.instance);if(!a)return;let{userId:I,streamType:c}=a,u=A.remoteStatistics.find(k=>k.userId===I);if((o=u?.video)==null||!o.length)return;let d=c==="sub"?"sub":"big",R=u.video.find(k=>k.videoType===d);R?(this.networkMetrics.frameRate=R.frameRate||0,this.checkAndSwitchQuality()):this.log.warn("onStatistics: videoStat not found for userId=".concat(I,", streamType=").concat(c))}),this.log=nA.createLogger({id:"pqs"})}getCurrentPlayingStream(A){var e,o;let n=A,a=n._playbackQualityList;if(!a||a.length===0)return this.log.warn("getCurrentPlayingStream: streamList is empty"),null;for(let I of a){let c=A.room.remotePublishedUserMap.get(I.userId);if(!c)continue;let u=(e=I.streamType)!=null?e:"main";if((u==="sub"?c.remoteAuxiliaryTrack:c.remoteVideoTrack).isPlayCalled){let d=(o=n._remoteVideoConfigMap.get("".concat(I.userId,"_").concat(u)))==null?void 0:o.config;if(d)return{userId:I.userId,streamType:u,config:d}}}return null}switchPlaybackQuality(A){return DA(this,null,function*(){var e;let{trtcInstance:o,streamList:n,quality:a}=A;this.log.info("switchPlaybackQuality quality: ".concat(a,", streamList: ").concat(JSON.stringify(n)));let I=o;if(n&&n.length>0&&(I._playbackQualityList=n.map(cA=>{var TA;return fi(bt({},cA),{streamType:(TA=cA.streamType)!=null?TA:"main"})})),a==="auto")return void(yield this.startAutoMode(o));if(this.autoMode.enabled&&a&&!this.switchControl.isInternal&&this.stopAutoMode(),!a)return;if(!I._playbackQualityList||I._playbackQualityList.length<=0)return void this.log.warn("switchPlaybackQuality: streamList is empty, please call with streamList first");let c=I._playbackQualityList.find(cA=>cA.name===a);if(!c)return void this.log.warn('switchPlaybackQuality: quality "'.concat(a,'" not found in streamList'));let u=this.getCurrentPlayingStream(o);if(this.log.info("currentPlaying userId: ".concat(u?.userId,", streamType: ").concat(u?.streamType)),!u)return;let d=(e=c.streamType)!=null?e:"main";if(u.userId===c.userId&&u.streamType===d)return void this.log.info("switchPlaybackQuality: already playing target stream");let R=bt({},u.config);R.streamType==="main"&&d==="main"&&(yield o.muteRemoteAudio(R.userId,!0));let k,_=new Promise(cA=>{k=cA}),Z=cA=>{cA.userId===c.userId&&cA.streamType===d&&cA.state==="PLAYING"&&cA.reason==="playing"&&k("success")};o.on(Xt.VIDEO_PLAY_STATE_CHANGED,Z);let iA=new Promise(cA=>setTimeout(()=>cA("timeout"),1e4));try{if(yield o.startRemoteVideo(fi(bt({},u.config),{userId:c.userId,streamType:d,option:fi(bt({},u.config.option),{isLiveStream:!0})})),(yield Promise.race([_,iA]))==="timeout"){this.log.error("switchPlaybackQuality: VIDEO_PLAY_STATE_CHANGED timeout, rollback");try{yield o.stopRemoteVideo({userId:c.userId,streamType:d})}catch(TA){this.log.warn("switchPlaybackQuality: rollback stopRemoteVideo failed",TA)}throw R.streamType==="main"&&d==="main"&&(yield o.muteRemoteAudio(R.userId,!1).catch(TA=>{this.log.warn("switchPlaybackQuality: rollback muteRemoteAudio failed",TA)})),new Ct({code:Ge.SUBSCRIPTION_TIMEOUT,message:Wi({key:Mi.SWITCH_PLAYBACK_QUALITY_TIMEOUT,data:{userId:c.userId}})})}let cA=o.stopRemoteVideo(R);R.streamType==="main"&&d==="main"?yield Promise.all([o.muteRemoteAudio(c.userId,!1).catch(TA=>{this.log.warn("muteRemoteAudio(new, false) failed",TA)}),cA]):yield cA,I._currentLiveUserId=c.userId,I._currentLiveStreamType=d}finally{o.off(Xt.VIDEO_PLAY_STATE_CHANGED,Z)}})}startAutoMode(A){return DA(this,null,function*(){if(this.autoMode.enabled)return void this.log.info("auto mode already enabled");let e=A;if(!e._playbackQualityList||e._playbackQualityList.length<=1)return void this.log.warn("startAutoMode: need at least 2 streams in streamList for auto mode");this.autoMode.enabled=!0,this.autoMode.instance=A,this.counters.rttUnder=0,this.counters.lossUnder=0,this.counters.downgradeCondition=0,this.counters.upgradeFail=0,this.switchControl.lastSwitchTime=0;let o=e._playbackQualityList||[];this.autoMode.sortedStreamList=[...o].sort((a,I)=>I.bitrate-a.bitrate),this.log.info("auto mode streams: ".concat(this.autoMode.sortedStreamList.map(a=>"".concat(a.name,"(").concat(a.bitrate,"kbps)")).join(" > ")));let n=this.getCurrentPlayingStream(A);if(n){let{userId:a,streamType:I}=n,c=this.autoMode.sortedStreamList.findIndex(u=>{var d;return u.userId===a&&((d=u.streamType)!=null?d:"main")===I});this.autoMode.currentQualityIndex=c>=0?c:0}else this.autoMode.currentQualityIndex=0;this.switchControl.boundOnStatistics=this.onStatistics,A.on(Xt.STATISTICS,this.switchControl.boundOnStatistics),this.log.info("auto mode started")})}stopAutoMode(){this.autoMode.enabled&&(this.autoMode.instance&&this.switchControl.boundOnStatistics&&this.autoMode.instance.off(Xt.STATISTICS,this.switchControl.boundOnStatistics),this.switchControl.boundOnStatistics=null,this.autoMode.enabled=!1,this.autoMode.instance=null,this.autoMode.sortedStreamList=[],this.autoMode.currentQualityIndex=0,this.counters.rttUnder=0,this.counters.lossUnder=0,this.counters.downgradeCondition=0,this.counters.upgradeFail=0,this.networkMetrics.frameRate=0,this.networkMetrics.rtt=0,this.networkMetrics.loss=0,this.switchControl.isSwitching=!1,this.log.info("auto mode stopped"))}checkAndSwitchQuality(){var A;if(!this.autoMode.enabled||!this.autoMode.instance||this.switchControl.isSwitching)return;let{config:e}=this.autoMode,o=Date.now()-this.switchControl.lastSwitchTime<e.cooldownTime,n=((A=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex])==null?void 0:A.name)||"unknown",a=this.autoMode.currentQualityIndex<this.autoMode.sortedStreamList.length-1,I=this.autoMode.currentQualityIndex>0,c=this.networkMetrics.frameRate<=e.fpsPoorLimit,u=this.networkMetrics.loss>=e.lossPoorLimit||this.networkMetrics.rtt>=e.rttPoorLimit,d=c&&u;this.counters.downgradeCondition=d?this.counters.downgradeCondition+1:0;let R=this.counters.rttUnder>=e.goodCount&&this.counters.lossUnder>=e.goodCount,k=this.counters.upgradeFail<e.maxUpgradeFailCount;if(this.log.debug("[check] stream=".concat(n,", fps=").concat(this.networkMetrics.frameRate,", rtt=").concat(this.networkMetrics.rtt,", loss=").concat(this.networkMetrics.loss,", fpsLow=").concat(c,", networkPoor=").concat(u,", downgradeCount=").concat(this.counters.downgradeCondition,"/").concat(e.poorCount,", rttUnder=").concat(this.counters.rttUnder,", lossUnder=").concat(this.counters.lossUnder,", goodCondition=").concat(R,", canDowngrade=").concat(a,", canUpgrade=").concat(I&&k,", inCooldown=").concat(o)),!o){if(this.counters.downgradeCondition>=e.poorCount&&a){let _=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex+1];return this.log.info("auto mode downgrade: ".concat(n," → ").concat(_?.name,", fps=").concat(this.networkMetrics.frameRate,", rtt=").concat(this.networkMetrics.rtt,", loss=").concat(this.networkMetrics.loss)),void this.switchToQualityIndex(this.autoMode.currentQualityIndex+1)}if(R&&I&&k){let _=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex-1];this.log.info("auto mode upgrade: ".concat(n," → ").concat(_?.name,", rttUnder=").concat(this.counters.rttUnder,", lossUnder=").concat(this.counters.lossUnder)),this.switchToQualityIndex(this.autoMode.currentQualityIndex-1,!0)}}}switchToQualityIndex(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){if(!this.autoMode.instance||A<0||A>=this.autoMode.sortedStreamList.length||this.switchControl.isSwitching)return;this.switchControl.isSwitching=!0;let o=this.autoMode.sortedStreamList[A];this.log.info("auto mode: switching to quality index ".concat(A,", stream: ").concat(o.name,", isUpgrade: ").concat(e));try{this.switchControl.isInternal=!0,yield this.switchPlaybackQuality({trtcInstance:this.autoMode.instance,quality:o.name}),this.autoMode.currentQualityIndex=A,this.switchControl.lastSwitchTime=Date.now(),this.counters.rttUnder=0,this.counters.lossUnder=0,this.counters.downgradeCondition=0,e&&(this.counters.upgradeFail=0),this.log.info("auto mode switch success: now playing ".concat(o.name))}catch(n){this.log.warn("auto mode switch failed: ".concat(o.name),n),e&&(this.counters.upgradeFail+=1,this.log.info("auto mode upgrade failed, upgradeFailCount=".concat(this.counters.upgradeFail,"/").concat(this.autoMode.config.maxUpgradeFailCount)))}finally{this.switchControl.isInternal=!1,this.switchControl.isSwitching=!1}})}},oK=class{constructor(){G(this,"log"),this.log=nA.createLogger({id:"exp"})}call(A,e){return DA(this,null,function*(){return $n(this[A])?this[A](e):Promise.reject(new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.API_NOT_EXIST,data:{name:A}})}))})}enableAudioFrameEvent(A){return DA(this,null,function*(){let{trtcInstance:e,enable:o,userId:n,sampleRate:a=48e3,channelCount:I=1,port:c}=A,{audioManager:u}=e.room,{getPCMAbortCtrlMap:d,audioFrameEventConfigMap:R}=u;if(R.set(n,{enable:o,sampleRate:a,channelCount:I,port:c}),o)if(n==="*")e.room.remotePublishedUserMap.forEach(k=>{if(k.remoteAudioTrack.isAvailable){if(d.get(k.userId))return;let _=u.getPCM(Z=>{e.emit(Xt.AUDIO_FRAME,Z)},k.userId);d.set(k.userId,_)}});else{if(d.get(n))return;let k=u.getPCM(_=>{e.emit(Xt.AUDIO_FRAME,_)},n);d.set(n,k)}else if(n==="*")e.room.remotePublishedUserMap.forEach(k=>{if(k.remoteAudioTrack.isSubscribed){let{userId:_}=k,Z=d.get(_);Z?.abort("disable"),d.delete(_)}});else{let k=d.get(n);k?.abort("disable"),d.delete(n)}})}resumeRemotePlayer(A){return DA(this,null,function*(){if(A.userId==="*"){let o=[];return A.trtcInstance.room.remotePublishedUserMap.forEach(n=>{let{remoteAudioTrack:a,remoteVideoTrack:I,remoteAuxiliaryTrack:c}=n;A.streamType?A.streamType==="main"?(a.isAvailable&&o.push(a.player.resume()),I.isAvailable&&o.push(I.player.resume())):c.isAvailable&&o.push(c.player.resume()):(a.isAvailable&&o.push(a.player.resume()),I.isAvailable&&o.push(I.player.resume()),c.isAvailable&&o.push(c.player.resume()))}),Promise.all(o)}let e=A.trtcInstance.room.remotePublishedUserMap.get(A.userId);if(e)return A.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(A){if(A.userId==="*")A.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:o,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=e;A.streamType?A.streamType==="main"?(o.isAvailable&&o.player.pause(),n.isAvailable&&n.player.pause(!1)):a.isAvailable&&a.player.pause(!1):(o.isAvailable&&o.player.pause(),n.isAvailable&&n.player.pause(!1),a.isAvailable&&a.player.pause(!1))});else{let e=A.trtcInstance.room.remotePublishedUserMap.get(A.userId);e&&(A.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause(!1)):e.remoteAuxiliaryTrack.player.pause(!1))}}requestPictureInPicture(A){let e=[...A.trtcInstance.room.remotePublishedUserMap.values()].find(o=>o.remoteVideoTrack.isAvailable);return e?A.enable?e.remoteVideoTrack.player.enterPictureInPicture():e.remoteVideoTrack.player.exitPictureInPicture():Promise.reject(new Ct({code:Ge.INVALID_OPERATION,message:"no available remote video"}))}requestFullScreen(A){let e=[...A.trtcInstance.room.remotePublishedUserMap.values()].find(o=>o.remoteVideoTrack.isAvailable);return e?A.enable?e.remoteVideoTrack.player.enterFullscreen():e.remoteVideoTrack.player.exitFullscreen():Promise.reject(new Ct({code:Ge.INVALID_OPERATION,message:"no available remote video"}))}switchPlaybackQuality(A){return DA(this,null,function*(){let e=A.trtcInstance;return e._playbackQualitySwitcher||(e._playbackQualitySwitcher=new TeA),e._playbackQualitySwitcher.switchPlaybackQuality(A)})}prelink(A){return DA(this,null,function*(){let{trtcInstance:e}=A;return A.enable?e.room.prelink(A.sdkAppId,A.userId,A.userSig,sG.frameWorkType,A.roomId,A.strRoomId):e.room.closePrelink()})}};vt([a4({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],oK.prototype,"enableAudioFrameEvent"),vt([a4({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!1,type:"string"},sdkAppId:{required:!1,type:"number"},userSig:{required:!1,type:"string"},roomId:{required:!1,type:"number"},strRoomId:{required:!1,type:"string"}}})],oK.prototype,"prelink");var GeA=new oK,keA=es(hg(),1),_eA=class extends keA.EventEmitter{constructor(){super(),G(this,"states",{}),G(this,"permissionChangeHandler"),G(this,"log"),this.log=nA.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var A,e;this.emit("permission-state-change",{camera:(A=this.states.camera)==null?void 0:A.state,microphone:(e=this.states.microphone)==null?void 0:e.state})}}request(A){return DA(this,null,function*(){if(this.log.info("request ".concat(A.join(", "))),A.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:A.includes("camera"),audio:A.includes("microphone")})).getTracks().forEach(e=>e.stop())})}get(A){return DA(this,null,function*(){try{return this.states[A]||(this.states[A]=yield navigator.permissions.query({name:A}),this.states[A].addEventListener("change",this.permissionChangeHandler)),this.log.info("get ".concat(A," permission state: ").concat(this.states[A].state)),this.states[A].state}catch(e){return this.log.error("get ".concat(A," permission failed, error: ").concat(e instanceof Error?e.message:e)),null}})}destroy(){Object.values(this.states).forEach(A=>{A?.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},Ux=new _eA,J4=0,aG=new Set,Dg=null;zU(L4),yA.checkStorage();var Qo=class $Q extends qV.EventEmitter{constructor(e,o){super(),G(this,"_room"),G(this,"_eventListened",new Set),G(this,"_localVideoTrack",null),G(this,"_localAudioTrack",null),G(this,"_localScreenTrack",null),G(this,"_localScreenAudioTrack",null),G(this,"_localVideoConfig",null),G(this,"_localScreenConfig",null),G(this,"_localAudioConfig",null),G(this,"_remoteVideoConfigMap",new Map),G(this,"_remoteAudioConfigMap",new Map),G(this,"_remoteAudioVolumeMap",new Map),G(this,"_remoteAudioMuteMap",new Map),G(this,"_mediaTrackMap",new WeakMap),G(this,"_log",nA.createLogger({id:"t".concat(++J4)})),G(this,"_plugins",new Map),G(this,"_networkQuality",null),G(this,"_speakerId"),G(this,"enterRoomParams"),G(this,"_enableAutoSwitchWhenRecapturing",!0),G(this,"_autoSubscribeDataChannel",!1),G(this,"_playbackQualityList",[]),this._room=new e(bt({logger:this._log,frameWorkType:$Q.frameWorkType},o)),this._room.videoDecodeFallbackType=o.videoDecodeFallback,rn(o.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=o.enableAutoSwitchWhenRecapturing),this._log.info("create() ".concat(JSON.stringify(o,(n,a)=>n==="plugins"?a.map(I=>I.Name):a))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(n){return this._room.audioManager.dump(n)}}}),o.plugins&&o.plugins.forEach(n=>{this._use(n,o.assetsPath)}),this._use(meA,o.assetsPath),this._use(peA,o.assetsPath),this._use(DeA,o.assetsPath),this._use(P4,o.assetsPath),this._use(SeA),o.enableSEI&&kT&&this._use(MeA),this._room.on("audio-volume",n=>{var a,I;!n.find(c=>c.userId==="")&&this._localAudioTrack&&n.push({userId:"",volume:Math.floor(100*((a=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?a:this._localAudioTrack.getAudioLevel())),floatVolume:(I=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?I:this._localAudioTrack.getInternalAudioLevel()}),o.volumeType===1&&n.forEach(c=>{var u;let d=c.userId===""?this._localAudioTrack:(u=this.room.remotePublishedUserMap.get(c.userId))==null?void 0:u.remoteAudioTrack;d&&(c.volume=d.dbVolume)}),o.enableDbVolume&&n.forEach(c=>{var u;let d=c.userId===""?this._localAudioTrack:(u=this.room.remotePublishedUserMap.get(c.userId))==null?void 0:u.remoteAudioTrack;d&&(c.volume=d.dbVolume)}),this.emit(Xt.AUDIO_VOLUME,{result:n.sort((c,u)=>u.volume-c.volume)})}),this._room.videoManager.on("error",n=>{this._log.error(new vi({code:Si.OPERATION_FAILED,extraCode:5504,message:n.message,originError:n}))}),this._listenEvents(),this._initActiveSpeaker(),((n,a)=>{let{emit:I}=n;n.emit=function(){for(var c=arguments.length,u=new Array(c),d=0;d<c;d++)u[d]=arguments[d];try{return I.apply(n,u)}catch(R){let k=Wi({key:Mi.CATCH_HANDLER_ERROR,data:{name:a,event:u[0]},addDocLink:!1});return nA.warn("".concat(k,`
`).concat(R.stack)),!1}}})(this,"trtc")}static create(e){}static _create(e,o){(function(){var a;if(g4){g4=!1,nA.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat($C,"/en/index.html")),console.info("* Changelog: ".concat($C,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),nA.info("TRTC Web SDK Version:",il),GQ||nA.debug("Build Time:","2026-02-28 12:18:13");let I="UA: ".concat(navigator.userAgent,`
CPU core: `).concat(navigator.hardwareConcurrency,", GPU: ").concat(kQ());if(Ea&&window.screen&&(window.screen.width||window.screen.height)){let u="".concat(window.screen.width,"x").concat(window.screen.height,"@").concat(window.devicePixelRatio);I+=", screen: ".concat(u)}let c=navigator.deviceMemory;c&&(I+=", minRAM: ".concat(c,"GB")),nA.info(I),nA.info("URL: ".concat(location.href).concat(((a=self.frameElement)==null?void 0:a.tagName)==="IFRAME"?" in iframe":"")),nm().then(u=>{u&&nA.info(eC)})}})();let n=new $Q(e,o||{});return aG.add(n),n.__v_skip=!0,n}get room(){return this._room}_listenEvents(){nE(this,this._room).add("peer-join",e=>{let{userId:o}=e;this.emit(Xt.REMOTE_USER_ENTER,{userId:o})}).add("peer-leave",e=>{let{userId:o,reason:n}=e;this.emit(Xt.REMOTE_USER_EXIT,{userId:o,reason:n})}).add("banned",e=>{wu(!0),this._exitRoom().finally(()=>{this.emit(Xt.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(Xt.ERROR,vi.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(Xt.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let o=fi(bt({},e),{uplinkRTT:Math.min(e.uplinkRTT,OR),downlinkRTT:Math.min(e.downlinkRTT,OR)});this.emit(Xt.NETWORK_QUALITY,o)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{nE(o,o).add("player-state-changed",n=>{let a=fi(bt({},n),{userId:e.userId});o.kind===fA.VIDEO&&(a.streamType=cl(o.streamType)),this.emit(o.kind===fA.AUDIO?Xt.AUDIO_PLAY_STATE_CHANGED:Xt.VIDEO_PLAY_STATE_CHANGED,a)}).add("error",n=>{n.getCode()===Ge.PLAY_NOT_ALLOWED&&this.emit(Xt.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{pr(o)})}).add("remote-publish-state-changed",e=>{let{prevMuteState:o,muteState:n}=e,{userId:a}=n,I=o.audioAvailable,c=o.videoAvailable,{audioAvailable:u,videoAvailable:d}=n;u||this._remoteAudioConfigMap.delete(a),d||this._removeRemoteVideoConfig(a,"main"),n.hasAuxiliary||this._removeRemoteVideoConfig(a,"sub"),c!==d&&(d?this._onVideoAvailable({userId:a,streamType:"main"}):this._onVideoUnavailable({userId:a,streamType:"main"}),this.emit(d?Xt.REMOTE_VIDEO_AVAILABLE:Xt.REMOTE_VIDEO_UNAVAILABLE,{userId:a,streamType:"main"})),I!==u&&(u?this._onAudioAvailable({userId:a}):this._onAudioUnavailable({userId:a,muteState:n}),this.emit(u?Xt.REMOTE_AUDIO_AVAILABLE:Xt.REMOTE_AUDIO_UNAVAILABLE,{userId:a})),o.hasAuxiliary!==n.hasAuxiliary&&(n.hasAuxiliary?this._onVideoAvailable({userId:a,streamType:"sub"}):this._onVideoUnavailable({userId:a,streamType:"sub"}),this.emit(n.hasAuxiliary?Xt.REMOTE_VIDEO_AVAILABLE:Xt.REMOTE_VIDEO_UNAVAILABLE,{userId:a,streamType:"sub"})),o.hasDatachannel!==n.hasDatachannel&&n.hasDatachannel&&this._onDataChannelAvailable()}).add("sei-message",e=>{this.emit(Xt.SEI_MESSAGE,fi(bt({},e),{streamType:cl(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(Xt.ERROR,new vi({code:Si.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var o,n,a,I,c,u,d;let R={2:"big",3:"small",7:"sub"},k={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((o=e.msg_down_stream_info[0])==null?void 0:o.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,OR),upLoss:((I=this._networkQuality)==null?void 0:I.uplinkLoss)||0,downLoss:((c=this._networkQuality)==null?void 0:c.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((u=e.msg_up_stream_info.msg_audio_status)==null?void 0:u.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((d=e.msg_up_stream_info.msg_audio_status)==null?void 0:d.uint32_audio_level)||0)/iE},video:e.msg_up_stream_info.msg_video_status.filter(_=>R[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:R[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/iE,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(Z=>({bitrate:(Z.uint32_video_codec_bitrate||0)/1e3,width:Z.uint32_video_width,height:Z.uint32_video_height,frameRate:Z.uint32_video_dec_fps,videoType:R[Z.uint32_video_stream_type],point2pointDelay:(Z.uint32_video_p2p_delay||0)+(Z.uint32_video_cache_ms||0),jitterBufferDelay:Z.uint32_video_cache_ms||0,codec:Z.uint32_video_codec}))}))};this.emit(Xt.STATISTICS,k)}).add("custom-message",e=>{this.emit(Xt.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(Xt.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(Xt.FIRST_VIDEO_FRAME,fi(bt({},e),{streamType:cl(e.streamType)}))}).add("audio-frame",e=>{this.emit(Xt.AUDIO_FRAME,e)}).add("data-channel-message",e=>{var o,n,a,I,c;let{data:u}=e;if(u.sender==="")return;let d={segmentId:(o=u.payload)==null?void 0:o.roundid,speakerUserId:u.sender,sourceText:(n=u.payload)==null?void 0:n.text,translationTexts:(a=u.payload)==null?void 0:a.translate_msg,timestamp:(I=u.payload)==null?void 0:I.start_utc_ms,isCompleted:(c=u.payload)==null?void 0:c.end,robotId:u.robotid};d.sourceText!==""&&this.emit(Xt.REALTIME_TRANSCRIBER_MESSAGE,d)}).add("asr-robot-peer-join",e=>{this.emit(Xt.REALTIME_TRANSCRIBER_STATE_CHANGED,{state:"started",roomId:this.room.roomId,transcriberRobotId:e.userId})}).add("asr-robot-peer-leave",e=>{this.emit(Xt.REALTIME_TRANSCRIBER_STATE_CHANGED,{state:"stopped",roomId:this.room.roomId,transcriberRobotId:e.userId})}),nE(this,vs).add("audioInputAdded",e=>{this.emit(Xt.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(Xt.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(Xt.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(Xt.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>DA(this,null,function*(){if(this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Dg&&Dg.deviceId===UR){let o=(yield Mm()).find(n=>n.deviceId===UR);o&&Dg.groupId!==o.groupId&&(Dg=o,this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}))}})).add("audioOutputRemoved",e=>DA(this,null,function*(){this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let o=(yield Mm())[0];if(!o||!Dg||Dg.groupId===o.groupId)return;let n=Dg.deviceId===e.deviceId,a=Dg.deviceId===UR&&Dg.deviceId===o.deviceId;(n||a)&&(Dg=o,this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}))})),nE(this,Ux).add("permission-state-change",e=>{this.emit(Xt.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(Xt.SEI_MESSAGE,e=>{var o;let n=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;n&&n.updateAlphaRenderInfo(e)})}getNetworkTime(){return gh()}use(e){let o,n;return"plugin"in e?(o=e.plugin,n=e.assetsPath):o=e,o.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(o,n)}_use(e,o){let n=this._plugins.get(e.Name);if(n)return this._log.warn("duplicate install plugin",e.Name),n;let a=new e(deA.call(this,{TRTC:$Q,room:this._room,assetsPath:o,errorModule:{RtcError:vi,ErrorCode:Si,CoreErrorCode:Ge,ErrorCodeDictionary:Rx}}));return this._plugins.set(e.Name,a),a.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),a}enterRoom(e){return DA(this,null,function*(){var o,n;this.enterRoomParams=e;let{scene:a="rtc",enableAutoPlayDialog:I=!0,autoReceiveAudio:c=!0,autoReceiveVideo:u=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Sr(e.proxy)&&e.proxy.turnServer&&((n=(o=this._room).setTurnServer)==null||n.call(o,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=I,this._room.autoReceiveAudio=c,this._room.autoReceiveVideo=u,rn(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let d={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,enableDataChannel:this._plugins.has("RealtimeTranscriber"),frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265||!1,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(d,a,$Q.frameWorkType),this._checkTrackToPublish(),U4.start()})}exitRoom(){return DA(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return DA(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(o){if(!(o instanceof VU)||o.code!==Ge.API_CALL_TIMEOUT&&o.code!==Ge.SWITCH_ROOM_FAILED)throw o;this._log.warn("switchRoom ".concat(o.code===Ge.API_CALL_TIMEOUT?"timeout":"failed",", fallback to exitRoom() and enterRoom()")),yield this._rejoinRoom(e)}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return DA(this,null,function*(){yield this.exitRoom();let o=bt(bt({},this.enterRoomParams),e);yield this.enterRoom(o)})}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch(()=>{})}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let o=e.includes("main")?"main":"sub",n=e.split("_".concat(o))[0];n&&this._stopRemoteVideo({userId:n,streamType:o}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),function(e){let o=PM.get(e);o&&(o.forEach(n=>clearTimeout(n)),PM.delete(e))}(this),this._room.remotePublishedUserMap.forEach(e=>{pr(e.remoteAudioTrack),pr(e.remoteVideoTrack),pr(e.remoteAuxiliaryTrack)})}switchRole(e,o){return DA(this,null,function*(){o!=null&&o.privateMapKey&&(this._room.privateMapKey=o.privateMapKey),o!=null&&o.latencyLevel&&(this._room.latencyLevel=o.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){this._plugins.forEach(e=>{var o;return(o=e.destroy)==null?void 0:o.call(e)}),this._plugins.clear(),pr(this),this.removeAllListeners(),this._room.destroy(),aG.delete(this),aG.size===0&&U4.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),S.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return DA(this,arguments,function(){var e=this;let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0};return function*(){if(e._localAudioTrack)return void e._log.warn("local audio is already started");let{publish:n=!0,mute:a,muteKeepVolumeDetection:I,option:c}=o,u=new vm(e._room.audioManager),d={},R={muted:!0};c&&(Ee(c.microphoneId)?Ee(c.audioTrack)||(d.customSource=c.audioTrack):d.deviceId=c.microphoneId,c&&hr(c.captureVolume)&&u.setCaptureVolume(c.captureVolume),Ee(c.profile)||(Sr(c.profile)?dQ[c.profile]&&u.setProfile(dQ[c.profile]):u.setProfile(c.profile)),hr(c.earMonitorVolume)&&(R.muted=!(c.earMonitorVolume>0),R.volume=c.earMonitorVolume),Ee(c.echoCancellation)||(u.profile.echoCancellation=c.echoCancellation),Ee(c.noiseSuppression)||(u.profile.noiseSuppression=c.noiseSuppression),Ee(c.autoGainControl)||(u.profile.autoGainControl=c.autoGainControl),rn(e._enableAutoSwitchWhenRecapturing)&&(u.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),u.on("5",k=>{e.emit(Xt.ERROR,new vi({code:Si.DEVICE_ERROR,extraCode:5309,messageParams:{error:k}}))}),u.on("2",k=>{e.emit(Xt.DEVICE_CHANGED,{type:"microphone",action:"active",device:k})}),u.on("4",k=>{let _;k.error&&(_=vi.convertFrom(k.error)),e.emit(Xt.PUBLISH_STATE_CHANGED,fi(bt({},k),{error:_}))}),u.on("6",()=>{}),e._listenOutputTrackChanged(u),e._speakerId&&u.setAudioOutput(e._speakerId),yield u.capture(d),Ee(a)||u.setMute(a,I),nE(u,u).add("player-state-changed",k=>{e.emit(Xt.AUDIO_PLAY_STATE_CHANGED,fi(bt({},k),{userId:""}))}),n&&e._room.isJoined&&e._room.publish(u).catch(()=>{}),e._localAudioTrack=u,e._room.capturedLocalMainAudioTrack=u,e._localAudioConfig=fi(bt({},o),{publish:n}),yield e._updateAudioPlayOption({playOption:R,track:u}),S.emit("113",{userId:"",room:e.room})}()})}updateLocalAudio(e){return DA(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:o,mute:n,muteKeepVolumeDetection:a,option:I}=e,c={};I&&(I.microphoneId?yield this._localAudioTrack.switchDevice(I.microphoneId):Ee(I.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(I.audioTrack)),Ee(I.captureVolume)||this._localAudioTrack.setCaptureVolume(I.captureVolume),Ee(I.earMonitorVolume)||(c.muted=!(I.earMonitorVolume>0),c.volume=I.earMonitorVolume),yield this._localAudioTrack.update3A(I)),this._room.isJoined&&!Ee(o)&&(o&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!o&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),Ee(n)||this._localAudioTrack.setMute(n,a),yield this._updateAudioPlayOption({playOption:c,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),tB(this._localAudioConfig,e)})}stopLocalAudio(){return DA(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),S.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),pr(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,delete this._room.capturedLocalMainAudioTrack)})}startLocalVideo(){return DA(this,arguments,function(){var e=this;let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0,view:null,capture:!0};return function*(){var n,a,I;if(e._localVideoTrack)return void e._log.warn("local video is already started");let{view:c,publish:u=!0,capture:d=!0,mute:R,option:k,forcePublish:_=!1}=o,Z=u||_,iA=d,cA=new Ru(e._room.videoManager),TA={},JA={};if(k&&(rn(k.avoidCropping)&&(cA.avoidCropping=k.avoidCropping),k.cameraId?TA.deviceId=k.cameraId:Ee(k.useFrontCamera)?Ee(k.videoTrack)||(TA.customSource=k.videoTrack):TA.facingMode=k.useFrontCamera?fA.FACING_MODE_USER:fA.FACING_MODE_ENVIRONMENT,Ee(k.retryWhenExactFailed)||(TA.retryWhenExactFailed=k.retryWhenExactFailed),k.qosPreference&&(TA.contentHint=Mx(k.qosPreference)),Ee(k.profile)||(Sr(k.profile)?$l[k.profile]&&cA.setProfile($l[k.profile]):cA.setProfile(k.profile)),Ee(k.fillMode)||(JA.objectFit=k.fillMode),Ee(k.mirror)||(JA.mirror=k.mirror),Ee(k.small)||(Ee(k.smallMode)||(e._room.smallMode=k.smallMode),rn(k.small)&&k.small===!1?cA.stopSmall():cA.updateSmallConfig(Sx(k.small,!0))),Ee(k.rotation)||cA.setRotation(k.rotation),rn(e._enableAutoSwitchWhenRecapturing)&&(cA.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),cA.once("first-video-frame",Ie=>{e.emit(Xt.FIRST_VIDEO_FRAME,fi(bt({},Ie),{streamType:cl(Ie.streamType)}))}),cA.on("5",Ie=>{e.emit(Xt.ERROR,new vi({code:Si.DEVICE_ERROR,extraCode:5308,messageParams:{error:Ie}}))}),cA.on("2",Ie=>{e.emit(Xt.DEVICE_CHANGED,{type:"camera",action:"active",device:Ie})}),cA.on("4",Ie=>{let XA;Ie.error&&(XA=vi.convertFrom(Ie.error)),e.emit(Xt.PUBLISH_STATE_CHANGED,fi(bt({},Ie),{error:XA}))}),cA.on("6",()=>{}),e._listenOutputTrackChanged(cA),TA.customSource&&DQ(TA.customSource)?(cA.setOutputMediaStreamTrack(TA.customSource),iA=!1):iA?yield cA.capture(TA):(n=cA.manager)==null||n.changeInput(cA),Ee(R)||(yield cA.setMute(R)),nE(cA,cA).add("player-state-changed",Ie=>{e.emit(Xt.VIDEO_PLAY_STATE_CHANGED,fi(bt({},Ie),{userId:"",streamType:"main"}))}).add("video-size-changed",Ie=>{e.emit(Xt.VIDEO_SIZE_CHANGED,fi(bt({},Ie),{streamType:cl(Ie.streamType)}))}),Z){let Ie=e._localScreenTrack&&((a=e._localScreenConfig)==null?void 0:a.publish)&&e._localScreenConfig.streamType==="main";e._room.isJoined?!Ie||_?(e._room.publish(cA).catch(()=>{}),((I=e._localScreenConfig)==null?void 0:I.streamType)==="main"&&e._localScreenConfig&&(e._localScreenConfig.publish=!1)):(Z=!1,e._log.warn("main stream is already published, local video track will not publish")):Ie&&(Z=!1)}e._localVideoTrack=cA,e._room.capturedLocalMainVideoTrack=cA,e._localVideoConfig=fi(bt({},o),{view:c,publish:Z,capture:iA}),yield e._updateVideoPlayOption({view:c,playOption:JA,track:cA})}()})}updateLocalVideo(e){return DA(this,null,function*(){var o,n,a,I,c,u,d;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:R,publish:k=!0,mute:_,capture:Z,option:iA,forcePublish:cA=!1}=e,TA=k||cA,JA=Z,Ie={};if(!this._localVideoConfig.capture&&DQ((o=this.localVideoTrack)==null?void 0:o.outMediaTrack)&&(iA!=null&&iA.cameraId||iA!=null&&iA.videoTrack)&&this._localVideoTrack.outMediaTrack!==iA?.videoTrack&&(JA=!0),this._localVideoConfig.capture)JA!==!1?iA!=null&&iA.cameraId?yield this._localVideoTrack.switchDevice(iA?.cameraId):Ee(iA?.useFrontCamera)?Ee(iA?.videoTrack)||(DQ(iA?.videoTrack)?iA?.videoTrack!==((n=this.localVideoTrack)==null?void 0:n.outMediaTrack)&&(yield this._localVideoTrack.setOutputMediaStreamTrack(iA?.videoTrack)):yield this._localVideoTrack.setInputMediaStreamTrack(iA?.videoTrack)):yield this._localVideoTrack.switchDevice(iA!=null&&iA.useFrontCamera?fA.FACING_MODE_USER:fA.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(JA){let XA={};XA.deviceId=iA?.cameraId||((a=this._localVideoConfig.option)==null?void 0:a.cameraId),XA.facingMode=iA!=null&&iA.useFrontCamera||(I=this._localVideoConfig.option)!=null&&I.useFrontCamera?fA.FACING_MODE_USER:fA.FACING_MODE_ENVIRONMENT,XA.customSource=iA!=null&&iA.videoTrack||!XA.deviceId?(c=this._localVideoConfig.option)==null?void 0:c.videoTrack:void 0,yield this._localVideoTrack.capture(XA)}iA&&(Ee(iA.profile)||(Sr(iA.profile)?$l[iA.profile]&&this._localVideoTrack.setProfile($l[iA.profile]):this._localVideoTrack.setProfile(iA.profile),(!iA.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(iA.cameraId||iA.useFrontCamera?fA.FACING_MODE_USER:fA.FACING_MODE_ENVIRONMENT))&&(yield this._localVideoTrack.applyProfile())),Ee(iA.fillMode)||(Ie.objectFit=iA.fillMode),Ee(iA.mirror)||(Ie.mirror=iA.mirror),Ee(iA.rotation)||this._localVideoTrack.setRotation(iA.rotation),iA.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Mx(iA.qosPreference)),Ee(iA.small)||(rn(iA.small)&&!iA.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(Sx(iA.small,!0)))),this._room.isJoined&&Ee(TA)&&this._localVideoConfig.publish&&JA&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((TA??this._localVideoConfig.publish)||cA?this._localScreenTrack&&((u=this._localScreenConfig)!=null&&u.publish)&&this._localScreenConfig.streamType==="main"&&!cA?(TA=!1,this._log.warn("main stream is already published, local video track will not publish")):(this._room.publish(this._localVideoTrack).catch(()=>{}),((d=this._localScreenConfig)==null?void 0:d.streamType)==="main"&&this._localScreenConfig&&(this._localScreenConfig.publish=!1)):this._room.unpublish(this._localVideoTrack).catch(()=>{})),Ee(_)||(yield this._localVideoTrack.setMute(_)),yield this._updateVideoPlayOption({view:R,playOption:Ie,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),tB(this._localVideoConfig,fi(bt({},e),{publish:TA,capture:JA}))})}stopLocalVideo(){return DA(this,null,function*(){var e;this._localVideoTrack&&(this._room.isJoined&&(e=this._localVideoConfig)!=null&&e.publish&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),pr(this._localVideoTrack),this._localVideoTrack=null,delete this._room.capturedLocalMainVideoTrack,this._localVideoConfig=null)})}startScreenShare(){return DA(this,arguments,function(){var e=this;let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0,view:null};return function*(){var n,a,I;if(e._localScreenTrack)return void e._log.warn("screen share is already started");let{view:c=null,publish:u=!0,muteSystemAudio:d,option:R}=o,k=u,_=new Nm(e._room.videoManager);_.on("4",JA=>{let Ie;JA.error&&(Ie=vi.convertFrom(JA.error)),e.emit(Xt.PUBLISH_STATE_CHANGED,fi(bt({},JA),{error:Ie}))}),_.once("first-video-frame",JA=>{e.emit(Xt.FIRST_VIDEO_FRAME,fi(bt({},JA),{streamType:cl(JA.streamType)}))}),e._listenOutputTrackChanged(_),o.streamType==="main"&&(_.mediaType=4);let Z=null,iA={},cA={};R&&(Ee(R.profile)||(Sr(R.profile)?QN[R.profile]&&_.setProfile(QN[R.profile]):_.setProfile(R.profile)),R.systemAudio&&(iA.systemAudio=!0,iA.echoCancellation=R.echoCancellation,iA.noiseSuppression=R.noiseSuppression,iA.autoGainControl=R.autoGainControl),Ee(R.fillMode)||(cA.objectFit=R.fillMode),R.videoTrack&&(iA.videoTrack=R.videoTrack),R.audioTrack&&(iA.audioTrack=R.audioTrack),R.captureElement&&(iA.captureElement=R.captureElement),R.preferDisplaySurface&&(iA.preferDisplaySurface=R.preferDisplaySurface),R.qosPreference&&(iA.contentHint=Mx(R.qosPreference)));let TA=yield _.capture(iA);if(_.mediaTrack.addEventListener(fA.ENDED,()=>{e._stopScreenShare(),e.emit(Xt.SCREEN_SHARE_STOPPED)}),TA.getAudioTracks()[0]){Z=new xq(e._room.audioManager);let JA=TA.getAudioTracks()[0];(n=o.option)!=null&&n.systemAudio&&!((a=o.option)!=null&&a.audioTrack)&&(Z.sourceTrack=JA),yield Z.setInputMediaStreamTrack(JA),rn(d)&&Z.mediaTrack&&(Z.mediaTrack.enabled=!d),e._speakerId&&Z.setAudioOutput(e._speakerId)}if(nE(_,_).add("player-state-changed",JA=>{e.emit(Xt.VIDEO_PLAY_STATE_CHANGED,fi(bt({},JA),{userId:"",streamType:"sub"}))}),k){let JA=e._localVideoTrack&&((I=e._localVideoConfig)==null?void 0:I.publish),Ie=!(o.streamType==="main"&&JA);e._room.isJoined?(Ie?e._room.publish(_).catch(()=>{}):(k=!1,e._log.warn("main stream is already published, screen share main will not publish")),Z&&(e._checkScreenAudioEchoCancellation(_,Z),e._room.publish(Z).catch(()=>{}))):Ie||(k=!1)}e._localScreenTrack=_,e._room.capturedLocalAuxVideoTrack=_,e._localScreenAudioTrack=Z,e._localScreenConfig=fi(bt({},o),{view:c,publish:k}),yield e._updateVideoPlayOption({view:c,playOption:cA,track:_})}()})}updateScreenShare(e){return DA(this,null,function*(){var o,n;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:a,publish:I,muteSystemAudio:c,option:u}=e,d=I,R={};if(u){if(Ee(u.fillMode)||(R.objectFit=u.fillMode),u.qosPreference){let k=Mx(u.qosPreference);this._localScreenTrack.setContentHint(k)}u.videoTrack&&this._localScreenTrack.setInputMediaStreamTrack(u.videoTrack),u.audioTrack&&this._localScreenAudioTrack&&this._localScreenAudioTrack.setInputMediaStreamTrack(u.audioTrack)}if(this._room.isJoined&&!Ee(d)){if(d&&!this._localScreenConfig.publish){let k=this._localVideoTrack&&((o=this._localVideoConfig)==null?void 0:o.publish);this._localScreenConfig.streamType==="main"&&k?(d=!1,this._log.warn("main stream is already published, screen share main will not publish")):this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})}if(this._localScreenConfig.publish&&!d){let k=[this._localScreenTrack];this._localScreenAudioTrack&&k.push(this._localScreenAudioTrack),k.forEach(_=>this._room.unpublish(_).catch(()=>{}))}}(n=this._localScreenAudioTrack)!=null&&n.mediaTrack&&rn(c)&&(this._localScreenAudioTrack.mediaTrack.enabled=!c),yield this._updateVideoPlayOption({view:a,playOption:R,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),tB(this._localScreenConfig,fi(bt({},e),{publish:d}))})}stopScreenShare(){return DA(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return DA(this,null,function*(){let{view:o,userId:n,streamType:a,option:I}=e,c="".concat(n,"_").concat(a);if(this._remoteVideoConfigMap.has(c))return void this._log.warn("remote video has already started. userId:".concat(n,", streamType:").concat(a));let u=this._room.remotePublishedUserMap.get(n);if(!u)return;let d={},R=a==="main"?u.remoteVideoTrack:u.remoteAuxiliaryTrack,k=this._bindRemoteVideoTrackEvents(R);this._listenOutputTrackChanged(R),I&&(Ee(I.fillMode)||(d.objectFit=I.fillMode),Ee(I.mirror)||(d.mirror=I.mirror),Ee(I.poster)||(d.poster=I.poster),d.canvasRender=I.canvasRender,a==="main"&&!Ee(I.small)&&(!u.remoteVideoTrack.isSubscribing&&!u.remoteVideoTrack.isSubscribed&&u.remoteVideoTrack.setMediaType(I.small?8:4),this._room.changeType(I.small,R.user)),Ee(I.draggable)||R.setDraggable(I.draggable)),d.isLiveStream=!!this._playbackQualityList.find(_=>_.userId===n&&_.streamType===a),yield this._room.subscribe(R),yield this._enableVideoDecodeFallback(R,a),yield this._updateVideoPlayOption({view:o,playOption:d,track:R}),this._emitTrackEvent(R),this._remoteVideoConfigMap.set(c,{config:e,handlers:k}),I&&!Ee(I.receiveWhenViewVisible)&&this._observeView({remoteTrack:R,view:o,receiveWhenViewVisible:I.receiveWhenViewVisible,viewRoot:I?.viewRoot})})}updateRemoteVideo(e){return DA(this,null,function*(){var o,n;let{view:a,userId:I,streamType:c,option:u,mute:d}=e,R="".concat(I,"_").concat(c),k=this._remoteVideoConfigMap.get(R);if(!k||!this._room.remotePublishedUserMap.has(I))return;let _={};u&&(Ee(u.fillMode)||(_.objectFit=u.fillMode),Ee(u.mirror)||(_.mirror=u.mirror));let Z=null,iA=this._room.remotePublishedUserMap.get(I);if(c==="main"&&iA!=null&&iA.muteState.hasVideo&&(Z=iA.remoteVideoTrack),c==="sub"&&iA!=null&&iA.muteState.hasAuxiliary&&(Z=iA.remoteAuxiliaryTrack),!Z)return;let{config:cA}=k;c==="main"&&u&&!Ee(u.small)&&this._room.changeType(u.small,Z.user),u&&!Ee(u.draggable)&&Z.setDraggable(u.draggable),u&&(rn(u.pictureInPicture)&&(u.pictureInPicture?yield Z.player.enterPictureInPicture():yield Z.player.exitPictureInPicture()),rn(u.fullScreen)&&(u.fullScreen?yield Z.player.enterFullscreen():yield Z.player.exitFullscreen())),rn(d)&&(Z.ignoreUpdatePlayingState=!0,d?(yield Z.player.pause(),yield this.room.unsubscribe(Z)):(yield this.room.subscribe(Z),yield Z.player.resume(!0))),yield this._updateVideoPlayOption({view:a,playOption:_,track:Z,prevConfig:cA}),tB(cA,e);let TA=Ee(u?.receiveWhenViewVisible)?(o=cA.option)==null?void 0:o.receiveWhenViewVisible:u.receiveWhenViewVisible,JA=Ee(a)?cA.view:a,Ie=Ee(u?.viewRoot)?(n=cA.option)==null?void 0:n.viewRoot:u.viewRoot;this._observeView({remoteTrack:Z,view:JA,receiveWhenViewVisible:TA,viewRoot:Ie})})}stopRemoteVideo(e){return DA(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return DA(this,null,function*(){let n=[],a=this._room.remotePublishedUserMap.get(e.userId);if(a){let{muteState:I,remoteVideoTrack:c,remoteAuxiliaryTrack:u}=a;e.streamType==="main"&&(c.stop(),I.hasVideo&&n.push(c)),e.streamType==="sub"&&(u.stop(),I.hasAuxiliary&&n.push(u))}for(let I of n)o&&(delete I.ignoreUpdatePlayingState,yield this._room.unsubscribe(I),this._mediaTrackMap.delete(I.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,o){let n="".concat(e,"_").concat(o),a=this._remoteVideoConfigMap.get(n);if(a&&(a.observer&&a.observer.disconnect(),a.handlers)){let I=this._room.remotePublishedUserMap.get(e);if(I){let c=o==="main"?I.remoteVideoTrack:I.remoteAuxiliaryTrack;this._unbindRemoteVideoTrackEvents(c,a.handlers)}}this._remoteVideoConfigMap.delete(n)}_bindRemoteVideoTrackEvents(e){let o={onEnterPIP:()=>DA(this,null,function*(){yield e.player.enterPIPPromise,this.emit(Xt.PICTURE_IN_PICTURE_STATE_CHANGED,{streamType:cl(e.streamType),userId:e.userId,isPictureInPicture:!0,pictureInPictureWindow:e.player.pipWindow})}),onLeavePIP:()=>{this.emit(Xt.PICTURE_IN_PICTURE_STATE_CHANGED,{streamType:cl(e.streamType),userId:e.userId,isPictureInPicture:!1})},onEnterFullScreen:()=>{this.emit(Xt.FULL_SCREEN_STATE_CHANGED,{streamType:cl(e.streamType),userId:e.userId,isFullScreen:!0})},onLeaveFullScreen:()=>{this.emit(Xt.FULL_SCREEN_STATE_CHANGED,{streamType:cl(e.streamType),userId:e.userId,isFullScreen:!1})},onDecodeFailed:()=>{this.emit(Xt.ERROR,new vi({code:Si.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))},onVideoSizeChanged:n=>{this.emit(Xt.VIDEO_SIZE_CHANGED,fi(bt({},n),{streamType:cl(n.streamType)}))}};return e.player.on(mi.ENTER_PICTURE_IN_PICTURE,o.onEnterPIP),e.player.on(mi.LEAVE_PICTURE_IN_PICTURE,o.onLeavePIP),e.player.on(mi.ENTER_FULL_SCREEN,o.onEnterFullScreen),e.player.on(mi.LEAVE_FULL_SCREEN,o.onLeaveFullScreen),e.on("decode-failed",o.onDecodeFailed),e.on("video-size-changed",o.onVideoSizeChanged),o}_unbindRemoteVideoTrackEvents(e,o){e.player.off(mi.ENTER_PICTURE_IN_PICTURE,o.onEnterPIP),e.player.off(mi.LEAVE_PICTURE_IN_PICTURE,o.onLeavePIP),e.player.off(mi.ENTER_FULL_SCREEN,o.onEnterFullScreen),e.player.off(mi.LEAVE_FULL_SCREEN,o.onLeaveFullScreen),e.off("decode-failed",o.onDecodeFailed),e.off("video-size-changed",o.onVideoSizeChanged)}muteRemoteAudio(e,o){return DA(this,null,function*(){this._remoteAudioMuteMap.set(e,o);try{if(e==="*")if(o)yield this._stopRemoteAudio({userId:e});else{let n=[...this._room.remotePublishedUserMap.values()];for(let a of n)a.muteState.hasAudio&&!this._remoteAudioConfigMap.has(a.userId)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:a.userId}))}else o?yield this._stopRemoteAudio({userId:e}):!this._remoteAudioConfigMap.has(e)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:e}))}catch(n){throw n.code!==Si.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),n}})}setRemoteAudioVolume(e,o){if(e==="*"){this._remoteAudioVolumeMap.set("*",o),this._remoteAudioVolumeMap.forEach((a,I)=>this._remoteAudioVolumeMap.set(I,o));let n=[...this._room.remotePublishedUserMap.values()];for(let a of n)this._remoteAudioVolumeMap.set(a.userId,o),a.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:o},track:a.remoteAudioTrack})}else if(e){let n=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,o),n&&n.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:o},track:n.remoteAudioTrack})}}startPlugin(e,o){return DA(this,null,function*(){return e.start(o)})}updatePlugin(e,o){return DA(this,null,function*(){return e.update(o)})}stopPlugin(e,o){return DA(this,null,function*(){return e.stop(o)})}enableAudioVolumeEvaluation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3,o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._room.enableAudioVolumeEvaluation(e,o)}on(e,o,n){if(this.listeners(e).includes(o))return this;if(this._log.debug("on",e),super.on(e,o,n),this._eventListened.add(e),this.listeners(Xt.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:a}=this.room.audioManager;a.get("")||a.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return e==="realtime-transcriber-message"&&this._room.subscribeDataChannel(),this}emit(e){for(var o=arguments.length,n=new Array(o>1?o-1:0),a=1;a<o;a++)n[a-1]=arguments[a];try{BeA.has(e)||this._log.debug("emit ".concat(e," ").concat(JSON.stringify(n)))}catch{}return super.emit(e,...n)}off(e,o,n){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,o,n),(e==="realtime-transcriber-message"||e==="*")&&this.listeners("realtime-transcriber-message").length===0&&this._room.unsubscribeDataChannel(),(e===$Q.EVENT.AUDIO_FRAME||e==="*")&&this.listeners($Q.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:a}=this.room.audioManager;a.forEach(I=>{I?.abort("off")}),a.clear()}return this}getAudioTrack(){let e,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},n=null,a="main",I=!1;if(Sr(o)?e=o:(e=o.userId,I=o.processed===!0,o.streamType&&(a=o.streamType)),e){let c=this._room.remotePublishedUserMap.get(e);c&&(n=c.remoteAudioTrack)}else n=a==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return n?I&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},{userId:o="",streamType:n="main",processed:a=!1}=e,I=null;if(o==="")n==="main"&&this._localVideoTrack&&(I=this._localVideoTrack),n==="sub"&&this._localScreenTrack&&(I=this._localScreenTrack);else{let c=this._room.remotePublishedUserMap.get(o);c&&(I=n==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack)}return I?a&&I.outMediaTrack&&I.outMediaTrack!==I.mediaTrack?I.outMediaTrack.clone():I.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{userId:o,streamType:n="main"}=e;if(o){let a=this._room.remotePublishedUserMap.get(o);if(n==="main"&&a!=null&&a.muteState.hasVideo)return a.remoteVideoTrack.getVideoFrame();if(n==="sub"&&a!=null&&a.muteState.hasAuxiliary)return a.remoteAuxiliaryTrack.getVideoFrame()}else{if(n==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(n==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var o,n;this._speakerId=e,(o=this._localAudioTrack)==null||o.setAudioOutput(e),(n=this._localScreenAudioTrack)==null||n.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(a=>a.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return DA(this,null,function*(){(yield Mm()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Dg=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: '.concat($C,"/en/TRTC.html#.setCurrentSpeaker"))})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return DA(this,null,function*(){var o;let{userId:n}=e;if(this._remoteAudioConfigMap.has(n))return void this._log.warn("remote audio has already started. userId:".concat(n));let a=this._room.remotePublishedUserMap.get(n);if(!a)return;let I={},c=a.remoteAudioTrack;c.on("decode-failed",u=>{this.emit(Xt.ERROR,new vi({code:Si.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(c),this._speakerId&&c.setAudioOutput(this._speakerId);try{let u=(o=this._remoteAudioVolumeMap.get(n))!=null?o:this._remoteAudioVolumeMap.get("*"),d=hr(u)?u:100;I.volume=d,this._remoteAudioConfigMap.set(n,e),yield this._room.subscribe(c),Jn(Ln(c,"decode-failed"),Qc(Ln(c,Uo.INIT)),Ks(()=>{this.startPlugin(P4.Name,{track:c,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:I,track:c}),S.emit("115",{userId:n,room:this.room}),c.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:c.outMediaTrack,refId:"ra-".concat(n)})}catch(u){throw this._remoteAudioConfigMap.delete(n),u}this._emitTrackEvent(c)})}_stopRemoteAudio(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return DA(this,null,function*(){let n=this._room.remotePublishedUserMap.get(e.userId);n&&(n.remoteAudioTrack.stop(),n.muteState.hasAudio&&o&&(yield this._room.unsubscribe(n.remoteAudioTrack)),this._mediaTrackMap.delete(n.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId)),S.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:"ra-".concat(e.userId)})})}_enableVideoDecodeFallback(e,o){let n,a=this._room.videoDecodeFallbackType;a&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),Jn(Ln(e,"decode-failed"),Qc(Ln(e,Uo.INIT)),kq(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:a})}),hx(Ln(e,"decode-downgrade-state-changed")),Ks(I=>{n=I.state,this.emit(Xt.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,fi(bt({},I),{streamType:o,userId:e.userId}))},I=>{e.log.error("fallback",I)},()=>{n==="STARTED"&&e.log.info("fallback complete")})))}_updateVideoPlayOption(e){return DA(this,arguments,function(o){let{view:n,playOption:a,track:I,prevConfig:c}=o;return function*(){if(I.setMirror(a.mirror),Ee(n)&&c&&c.view&&!zR(a)){let u=Hf(c.view);u.length>0&&(yield I.play(u,a))}if(!Ee(n)){let u=Hf(n);u.length>0?yield I.play(u,a):I.stop()}}()})}_updateAudioPlayOption(e){return DA(this,arguments,function(o){var n=this;let{playOption:a={},track:I,prevConfig:c}=o;return function*(){if(!I.isPlayCalled)try{yield I.play(null,a)}catch{}if(Ee(a.muted)||I.setPlayerMute(a.muted),Ee(a.volume)||I.setAudioVolume(a.volume/100),I instanceof vm&&I.mediaTrack){let u=a.muted===!1&&!Ee(a.volume)&&a.volume>0?"add":"remove";n.room.audioManager.updateAudioReference({type:u,audioReference:I.mediaTrack,refId:"em"})}else if(I instanceof Dx){let u=a.muted?0:a.volume;if(Ee(u))return;n.room.audioManager.updateAudioReference({type:"updateVolume",refId:"ra-".concat(I.userId),volume:a.volume})}}()})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],n=e.isRemote?e.userId:"";e.outMediaTrack&&(o&&this._mediaTrackMap.get(e.outMediaTrack)===n||(this._mediaTrackMap.set(e.outMediaTrack,n),this.emit(Xt.TRACK,{userId:n,streamType:cl(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,o,n;let a=[];if((e=this._localAudioConfig)!=null&&e.publish&&this._localAudioTrack&&a.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&a.push(this._localVideoTrack),(n=this._localScreenConfig)!=null&&n.publish&&(this._localScreenTrack&&a.push(this._localScreenTrack),this._localScreenAudioTrack&&a.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),a.length!==0)return Promise.all(a.map(I=>this._room.publish(I).catch(()=>{})))}_observeView(e){let{remoteTrack:o,view:n,receiveWhenViewVisible:a,viewRoot:I}=e;if(Ee(n)||Ee(a))return;let c=this._remoteVideoConfigMap.get("".concat(o.userId,"_").concat(cl(o.streamType)));if(!c)return;let u=c.observer||void 0;if(n===null||Aa(n)&&n.length===0||!a)return u?.disconnect(),void(o.isSubscribed||(this._log.info("_observeView observer disconnect, resubscribe",o.userId,o.strMediaType),this._room.subscribe(o).catch(()=>{})));let d=c.visibleViewMap||new Map,R=-1;(!u||u.root!==I)&&(u?.disconnect(),d.clear(),u=new IntersectionObserver(_=>{_.forEach(Z=>{d.set(Z.target,Z.isIntersecting),o.log.info("view ".concat(Z.target.id," is").concat(Z.isIntersecting?"":" not"," visible"))}),clearTimeout(R),R=window.setTimeout(()=>{[...d.values()].find(Z=>Z)?o.isSubscribed||this._room.subscribe(o).catch(()=>{}):o.isSubscribed&&this._room.unsubscribe(o).catch(()=>{})},200)},{root:I}));let k=new Set(Hf(n));d.forEach((_,Z)=>{k.has(Z)||(u.unobserve(Z),d.delete(Z))}),k.forEach(_=>{d.set(_,!0),u.observe(_)}),u.takeRecords().forEach(_=>{d.set(_.target,_.isIntersecting)}),c.visibleViewMap=d,c.observer=u}_exitRoom(){return DA(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return DA(this,null,function*(){var e,o;if(this._localScreenTrack){if(this._room.isJoined){let n=[];(e=this._localScreenConfig)!=null&&e.publish&&n.push(this._localScreenTrack),this._localScreenAudioTrack&&n.push(this._localScreenAudioTrack),yield Promise.all(n.map(a=>this._room.unpublish(a).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((o=this._localScreenAudioTrack.trackSettings)==null?void 0:o.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),pr(this._localScreenTrack),this._localScreenTrack=null,delete this._room.capturedLocalAuxVideoTrack,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,o){return DA(this,null,function*(){var n,a;if(!e||!o)return;let I=(n=e.trackSettings)==null?void 0:n.displaySurface;if(((a=o.trackSettings)==null?void 0:a.echoCancellation)===!1&&(I==="monitor"||I==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(c){this._log.warn("start audioProcessor plugin failed: ",c)}}})}_onLocalTrackCaptured(e){let{track:o}=e;o.kind==="audio"&&(!Dg||HT(Dg))&&(this._initActiveSpeaker(),S.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return DA(this,null,function*(){if(Dg&&!HT(Dg))this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:Dg});else{let e=yield Mm();e[0]&&!HT(e[0])?(Dg=e[0],this.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):S.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable(e){let{userId:o}=e,n=this._remoteAudioMuteMap.has(o)?this._remoteAudioMuteMap.get(o):this._remoteAudioMuteMap.get("*");(n===!1||this._room.autoReceiveAudio&&!n)&&this._doStartRemoteAudio({userId:o}).catch(()=>{})}_onVideoAvailable(e){let{userId:o,streamType:n}=e;if(!this._room.autoReceiveVideo)return;let a=this._room.remotePublishedUserMap.get(o);if(a){let I=n==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack,c=[I];this._room.autoReceiveAudio&&a.remoteAudioTrack.isAvailable&&c.push(a.remoteAudioTrack),this._room.subscribe(...c).then(()=>{this._emitTrackEvent(I)}).catch(()=>{})}}_onAudioUnavailable(e){let{userId:o,muteState:n}=e;n.hasAudio&&n.audioMuted||this._stopRemoteAudio({userId:o},!1).catch(()=>{})}_onVideoUnavailable(e){let{userId:o,streamType:n}=e;this._stopRemoteVideo({userId:o,streamType:n},!1).catch(()=>{})}_onDataChannelAvailable(){if(this.listeners("realtime-transcriber-message").length>0)return this._room.subscribeDataChannel()}sendSEIMessage(e,o){var n;let a=this._plugins.get("SEI");a&&(a.update({buffer:e,options:fi(bt({seiPayloadType:243},o),{small:!((n=this._localVideoTrack)==null||!n.small)})}),ct.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var o,n;(n=(o=this._room).sendCustomMessage)==null||n.call(o,e),ct.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,o){return DA(this,null,function*(){return this._log.info("callExperimentalAPI(".concat(e,", ").concat(JSON.stringify(o),")")),GeA.call(e,bt({trtcInstance:this},o))})}static setLogLevel(e,o){nA.setLogLevel(e),Ee(o)||(o?nA.enableUploadLog():nA.disableUploadLog())}static isSupported(){return yT($Q.frameWorkType)}static getPermissions(e){return DA(this,arguments,function(o){let{request:n=!0,types:a=["camera","microphone"]}=o;return function*(){n&&(yield Ux.request(a).catch(u=>{var d;return nA.error("getPermissions request failed, error: ".concat((d=u?.message)!=null?d:u))}));let[I,c]=yield Promise.all([Ux.get("camera"),Ux.get("microphone")]);return{camera:I,microphone:c}}()})}static getCameraList(){return qQ(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getMicrophoneList(){return VQ(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getSpeakerList(){return Mm(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static setCurrentSpeaker(e){return DA(this,null,function*(){if(ra&&(e===iG.SPEAKER||e===iG.HEADSET)){let o=yield $Q.getMicrophoneList(),n="";return o.forEach(a=>{a.label===e&&(n=a.deviceId)}),n?void aG.forEach(a=>DA(null,null,function*(){a._localAudioTrack&&(yield a.updateLocalAudio({option:{microphoneId:n}}))})):void 0}(yield Mm()).forEach(o=>{o.deviceId===e&&(aG.forEach(n=>{n._setCurrentSpeaker(e),n.emit(Xt.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Dg=o)})})}static _addKVStat(e){let{type:o,key:n,value:a,base:I,useUV:c,version:u,max:d}=e;switch(u&&(oB.version=u),o){case"count":oB.addCount({key:n,useUV:c});break;case"enum":oB.addEnum({key:n,value:a,useUV:c});break;case"number":oB.addNumber({key:n,value:a,split:I,max:d})}}get localVideoTrack(){return this._localVideoTrack}get localScreenTrack(){return this._localScreenTrack}get localScreenAudioTrack(){return this._localScreenAudioTrack}};G(Qo,"VERSION",L4),G(Qo,"_loggerManager",nA),G(Qo,"EVENT",Xt),G(Qo,"ERROR_CODE",Si),G(Qo,"TYPE",iG),G(Qo,"frameWorkType",30),vt([Hn({replaceArg:A=>({argIndex:0,value:{name:"plugin"in A?A.plugin.Name:A.Name,assetsPath:"assetsPath"in A?A?.assetsPath:"default"}})})],Qo.prototype,"use"),vt([vI(mg.TRTC.enterRoom),km("room",(A,e)=>{let[o]=A,[n]=e;return(o.roomId||o.strRoomId)===(n.roomId||n.strRoomId)&&o.userId===n.userId&&o.sdkAppId===n.sdkAppId}),Dn(A=>function(e){return this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),A.call(this,e)}),Hn()],Qo.prototype,"enterRoom"),vt([Hn()],Qo.prototype,"exitRoom"),vt([vI(mg.TRTC.switchRoom),Hn(),VT()],Qo.prototype,"switchRoom"),vt([vI(mg.TRTC.switchRole),YM("room",{merge:(A,e)=>e}),Hn()],Qo.prototype,"switchRole"),vt([Hn()],Qo.prototype,"destroy"),vt([vI(mg.TRTC.startLocalAudio),km("audio",(A,e)=>{let[o]=A,[n]=e;var a,I;return((a=o?.option)==null?void 0:a.microphoneId)===((I=n?.option)==null?void 0:I.microphoneId)}),Hn()],Qo.prototype,"startLocalAudio"),vt([vI(mg.TRTC.updateLocalAudio),YM("audio",{debounce:{delay:200,getKey:()=>"".concat(J4,"-localAudio"),isNeedToDebounce:A=>{var e;return!Ee((e=A.option)==null?void 0:e.captureVolume)}}}),Hn()],Qo.prototype,"updateLocalAudio"),vt([_m("audio"),Hn()],Qo.prototype,"stopLocalAudio"),vt([vI(mg.TRTC.startLocalVideo),km("video",(A,e)=>{let[o]=A,[n]=e;var a,I;return((a=o?.option)==null?void 0:a.cameraId)===((I=n?.option)==null?void 0:I.cameraId)}),Hn()],Qo.prototype,"startLocalVideo"),vt([vI(mg.TRTC.updateLocalVideo),YM("video"),Hn()],Qo.prototype,"updateLocalVideo"),vt([_m("video"),Hn()],Qo.prototype,"stopLocalVideo"),vt([vI(mg.TRTC.startScreenShare),km("screen",()=>!0),Hn()],Qo.prototype,"startScreenShare"),vt([vI(mg.TRTC.updateScreenShare),YM("screen"),Hn()],Qo.prototype,"updateScreenShare"),vt([Hn()],Qo.prototype,"stopScreenShare"),vt([vI(mg.TRTC.startRemoteVideo),km(A=>"v".concat(A.userId).concat(A.streamType),()=>!0),Hn({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Qo.prototype,"startRemoteVideo"),vt([vI(mg.TRTC.updateRemoteVideo),YM(A=>"v".concat(A.userId).concat(A.streamType)),Hn({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Qo.prototype,"updateRemoteVideo"),vt([vI(mg.TRTC.stopRemoteVideo),Dn(A=>function(e){return DA(this,null,function*(){if(e.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(n=>{this._remoteVideoConfigMap.has("".concat(n.userId,"_main"))&&o.push(this.stopRemoteVideo({streamType:"main",userId:n.userId}).catch(()=>{})),this._remoteVideoConfigMap.has("".concat(n.userId,"_sub"))&&o.push(this.stopRemoteVideo({streamType:"sub",userId:n.userId}).catch(()=>{}))}),Promise.all(o)}return A.call(this,e)})}),Hn({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Qo.prototype,"stopRemoteVideo"),vt([_m(A=>"v".concat(A.userId).concat(A.streamType))],Qo.prototype,"_stopRemoteVideo"),vt([vI(...mg.TRTC.muteRemoteAudio),Hn({getRemoteId:A=>A})],Qo.prototype,"muteRemoteAudio"),vt([F4(...mg.TRTC.setRemoteAudioVolume),function(A,e){return Dn((o,n)=>function(){for(var a=arguments.length,I=new Array(a),c=0;c<a;c++)I[c]=arguments[c];let u=PM.get(this);u||(u=new Map,PM.set(this,u));let d=e(...I),R=u.get(d);if(!R||R<=0){o.apply(this,I);let k=setTimeout(()=>{var _;(_=PM.get(this))==null||_.delete(d)},A);u.set(d,k)}else{clearTimeout(R);let k=window.setTimeout(()=>{var _;o.apply(this,I),(_=PM.get(this))==null||_.delete(d)},A);u.set(d,k)}})}(200,A=>A),Hn({getRemoteId:A=>A})],Qo.prototype,"setRemoteAudioVolume"),vt([zq("start"),wm(A=>{var e;return(e=A.afterStart)==null?void 0:e.call(A)}),km((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e)),Hn({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>jO[A.getName()],ignoreLog:A=>A.getName()==="Debug",ignoreErrorLog:A=>A.getName()==="AudioProcessor"})],Qo.prototype,"startPlugin"),vt([zq("update"),YM((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e),{merge:(A,e)=>(tB(A[1],e[1]),A)}),Hn({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>xh[A.getName()]})],Qo.prototype,"updatePlugin"),vt([zq("stop"),_m((A,e)=>{if(A.disableRandomCall)return null;let o=A.getGroup(e),n=A.getAlias();return o==="*"?new RegExp("".concat(n,".*")):n+o}),Hn({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>DM[A.getName()]})],Qo.prototype,"stopPlugin"),vt([F4(...mg.TRTC.enableAudioVolumeEvaluation)],Qo.prototype,"enableAudioVolumeEvaluation"),vt([Hn()],Qo.prototype,"getVideoSnapshot"),vt([Hn()],Qo.prototype,"_setCurrentSpeaker"),vt([km(A=>"a".concat(A.userId),()=>!0)],Qo.prototype,"_startRemoteAudio"),vt([Dn(A=>function(e){return DA(this,null,function*(){return e.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(fi(bt({},e),{userId:o.userId})).catch(()=>{}))):A.call(this,e)})}),_m(A=>"a".concat(A.userId))],Qo.prototype,"_stopRemoteAudio"),vt([_m("room")],Qo.prototype,"_exitRoom"),vt([_m("screen")],Qo.prototype,"_stopScreenShare"),vt([vI(...mg.TRTC.sendSEIMessage),s4({timesInSecond:30,maxSizeInSecond:8e3,getSize:function(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return e[0].byteLength}})],Qo.prototype,"sendSEIMessage"),vt([vI(mg.TRTC.sendCustomMessage),s4({timesInSecond:30,maxSizeInSecond:8e3,getSize:A=>A.data.byteLength})],Qo.prototype,"sendCustomMessage"),vt([Hn()],Qo.prototype,"callExperimentalAPI"),vt([bm()],Qo,"create"),vt([vI(mg.TRTC.create)],Qo,"_create"),vt([bm()],Qo,"setLogLevel"),vt([bm()],Qo,"isSupported"),vt([bm(),Hn()],Qo,"getPermissions"),vt([bm()],Qo,"getCameraList"),vt([bm()],Qo,"getMicrophoneList"),vt([bm()],Qo,"getSpeakerList");var sG=Qo,beA=class{constructor(){G(this,"_set",new Set),S.on(K.LEAVE_SUCCESS,this.delete,this),S.on(K.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add(A){let{room:e,roomId:o}=A;if(e.scene==="rtc")return;let n=this.getKey(e.userId,o||e.roomId,e.sdkAppId,e.useStringRoomId);this._set.add(n)}delete(A){let{room:e,roomId:o}=A;if(e.scene==="rtc")return;let n=this.getKey(e.userId,e.roomId||o,e.sdkAppId,e.useStringRoomId);this._set.delete(n)}getKey(A,e,o,n){return"".concat(o,"_").concat(e,"_").concat(A,"_").concat(n)}isJoined(A){let{userId:e,roomId:o,sdkAppId:n,room:a}=A;return a.scene!=="rtc"&&this._set.has(this.getKey(e,o,n,a.useStringRoomId))}handleSwitchRoomSuccess(A){let{room:e,currentRoomId:o,targetRoomId:n}=A;e.scene!=="rtc"&&(this._set.delete(this.getKey(e.userId,o,e.sdkAppId,e.useStringRoomId)),this._set.add(this.getKey(e.userId,n,e.sdkAppId,e.useStringRoomId)))}};function LeA(){return DA(this,null,function*(){let A,e;try{let iA=yield VQ();A=iA&&iA.length}catch{}try{let iA=yield qQ();e=iA&&iA.length}catch{}let o={microphone:A,camera:e},{isH264EncodeSupported:n,isVp8EncodeSupported:a,isH264DecodeSupported:I,isVp8DecodeSupported:c,isH265EncodeSupported:u,isH265DecodeSupported:d}=this.checkSystemResult.detail,R=kA.basis(),k={webRTC:R.isWebRTCSupported,getUserMedia:R.isGetUserMediaSupported,webSocket:R.isWebSocketsSupported,screenShare:R.isScreenShareSupported,webAudio:R.isWebAudioSupported,h264Encode:n,h264Decode:I,vp8Encode:a,vp8Decode:c,h265Encode:u,h265Decode:d},_={browser:R.browser,os:R.os,trtc:k,devices:o},Z={isWebCodecSupported:R.isWebCodecSupported,isMediaSessionSupported:R.isMediaSessionSupported,isWebTransportSupported:R.isWebTransportSupported};Jo.uploadEvent({log:"trtcstats-".concat(JSON.stringify(_)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(_))),Jo.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(Z)),userId:this.userId}),hm()})}var FeA=es(hg()),H4="1",rK="2",gG="3",UeA="4",Ox="5",OeA="6",xx="7",V4="8",sB={CLIENT_BANNED:9,CHANNEL_SETUP_RESULT:19,CHANNEL_RECONNECT_RESULT:514,JOIN_ROOM_RESULT:20,PEER_JOIN:4134,PEER_LEAVE:4135,STREAM_ADDED:16,STREAM_REMOVED:18,UPLINK_NETWORK_STATS:22,UPDATE_REMOTE_MUTE_STAT:23,PUBLISH_RESULT:4098,PUBLISH_STATE_CHANGE_RESULT:4112,UNPUBLISH_RESULT:4100,SUBSCRIBE_RESULT:4102,UNSUBSCRIBE_RESULT:4104,SUBSCRIBE_CHANGE_RESULT:4106,MUTE_RESULT:4108,UPDATE_OFFER_RESULT:4128,START_PUBLISH_TENCENT_CDN_RES:1286,STOP_PUBLISH_TENCENT_CDN_RES:1288,START_PUBLISH_GIVEN_CDN_RES:777,STOP_PUBLISH_GIVEN_CDN_RES:779,START_MIX_TRANSCODE_RES:781,STOP_MIX_TRANSCODE_RES:783,START_PUBLISH_CDN_STREAM_RES:8196,UPDATE_PUBLISH_CDN_STREAM_RES:8198,STOP_PUBLISH_CDN_STREAM_RES:8200,USER_LIST_RES:4137,SWITCH_ROLE_RES:4110,UPDATE_CONSTRAINT_CONFIG_RES:772,REBUILD_PEER_CONNECTION_RES:4150,SPC_PUBLISH_RESULT:4146,SPC_SUBSCRIBE_RESULT:4156,ABILITY_STATUS_REPORT_RESULT:4158,SERVER_FIRST_PACKAGE_RECEIVED:5e3,RECEIVE_CUSTOM_MSG:4140,FALLBACK_CODEC:66,SEND_SWITCH_ROOM_RES:4160,SEND_SWITCH_ROOM_SUBED_REQ:4161,UPDATE_NETWORK_TIME_RESULT:5001,CUSTOM_CMD_RES:8220},xeA=[sB.UPDATE_REMOTE_MUTE_STAT,sB.UPLINK_NETWORK_STATS,sB.USER_LIST_RES,sB.MUTE_RESULT,sB.SERVER_FIRST_PACKAGE_RECEIVED,sB.RECEIVE_CUSTOM_MSG,sB.UPDATE_NETWORK_TIME_RESULT],io={CLIENT_BANNED:"client-banned",CHANNEL_SETUP_RESULT:"channel-setup-result",CHANNEL_RECONNECT_RESULT:"channel-reconnect-result",JOIN_ROOM_RESULT:"join-room-result",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",UPLINK_NETWORK_STATS:"uplink-network-stats",UPDATE_REMOTE_MUTE_STAT:"update-remote-mute-stat",PUBLISH_RESULT:"publish-result",PUBLISH_STATE_CHANGE_RESULT:"publish-state-change-result",UNPUBLISH_RESULT:"unpublish-result",SUBSCRIBE_RESULT:"subscribe-result",SUBSCRIBE_CHANGE_RESULT:"subscribe-change-result",UNSUBSCRIBE_RESULT:"unsubscribe-result",UPDATE_OFFER_RESULT:"update-offer-result",START_PUBLISH_TENCENT_CDN_RES:"start-publish-tencent-cdn-res",STOP_PUBLISH_TENCENT_CDN_RES:"stop-publish-tencent-cdn-res",START_PUBLISH_GIVEN_CDN_RES:"start-publish-given-cdn-res",STOP_PUBLISH_GIVEN_CDN_RES:"stop-publish-given-cdn-res",START_MIX_TRANSCODE_RES:"start-mix-transcode-res",STOP_MIX_TRANSCODE_RES:"stop-mix-transcode-res",START_PUBLISH_CDN_STREAM_RES:"start-publish-cdn-stream-res",UPDATE_PUBLISH_CDN_STREAM_RES:"update-publish-cdn-stream-res",STOP_PUBLISH_CDN_STREAM_RES:"stop-publish-cdn-stream-res",USER_LIST_RES:"user-list-res",SWITCH_ROLE_RES:"switch_role_res",MUTE_RESULT:"mute-result",UPDATE_CONSTRAINT_CONFIG_RES:"update-contraint-config-res",REBUILD_PEER_CONNECTION_RES:"rebuild-pc-res",SPC_PUBLISH_RESULT:"spc-publish-result",SPC_SUBSCRIBE_RESULT:"spc-subscribe-result",ABILITY_STATUS_REPORT_RESULT:"ability-status-report",SERVER_FIRST_PACKAGE_RECEIVED:"first-pkg-received",RECEIVE_CUSTOM_MSG:"receive-custom-msg",FALLBACK_CODEC:"fallback-codec",SEND_SWITCH_ROOM_RES:"send-switch-room-res",SEND_SWITCH_ROOM_SUBED_REQ:"send-switch-room-subed-res",UPDATE_NETWORK_TIME_RESULT:"update_network_time_result",CUSTOM_CMD_RES:"custom-cmd-res"},q4="publish_change",YeA="join",PeA="leave",JeA="quality_report",K4="mute_uplink",j4="publish",nK="publish_state_change",Yx="unpublish",W4="subscribe",aK="unsubscribe",sK="subscribe_change",HeA="start_publishing",VeA="stop_publishing",qeA="start_push_user_cdn",KeA="stop_push_user_cdn",jeA="start_mcu_mix",WeA="stop_mcu_mix",zeA="start_publish_cdn_stream",ZeA="update_publish_cdn_stream",XeA="stop_publish_cdn_stream",$eA="get_user_list",AtA="change_role",gK="update_constraint_config",etA="rebuild_pc",ttA="join/v2",z4="publish/v2",Z4="subscribe/v3",itA="ability_status_report",otA="reconnect",rtA="channel_msg",ntA="switch_room",atA="update_network_time",stA=new Set([j4,q4,nK,Yx,W4,sK,aK,z4,Z4]),Px=new Set,gtA=["autoTest","relayInnerIp","relayOuterIp","mcd","newRelay","clientIp"],ItA=0,X4=class extends FeA.default{constructor(A){var e,o,n;super(),G(this,"room"),G(this,"sdkAppId"),G(this,"userId"),G(this,"userSig"),G(this,"url"),G(this,"backupUrl"),G(this,"destroyed",!1),G(this,"_socketInUse"),G(this,"_socket"),G(this,"_backupSocket"),G(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[],reportToken:void 0}),G(this,"_currentState","DISCONNECTED"),G(this,"_isReconnecting",!1),G(this,"_seq",0),G(this,"_log"),G(this,"_lastMessageTime",-1),G(this,"_connectStartTime",-1),G(this,"_stopConnectRetry"),G(this,"_isFirstConnect",!0),G(this,"bytesSent",0),G(this,"bytesReceived",0),G(this,"keepAlive",!1),G(this,"signalDomainWhenUnifiedProxy"),G(this,"stopKeepAliveTimeout"),G(this,"stopPrelinkTimeout"),G(this,"rtt",0),G(this,"prelink",!1),G(this,"_prelinkConfig"),this.room=A.room,this.sdkAppId=A.sdkAppId,this.userId=A.userId,this.userSig=A.userSig,this.signalDomainWhenUnifiedProxy=A.signalDomainWhenUnifiedProxy,this.prelink=A.prelink||!1;let a=((o=(e=this.room.scheduleResult)==null?void 0:e.config)==null?void 0:o.keepAliveClient)||0;(n=this.room.joinParams)!=null&&n.keepAlive&&!a&&(a=1),a-Px.size>0&&this.room.enableSPC&&(this.keepAlive=!0,Px.add(this)),this.url=A.url,this.backupUrl=A.backupUrl,this._seq=0,this._log=nA.createLogger({parent:this.room.getLogger(),id:"ws".concat(++ItA),userId:this.userId,sdkAppId:this.sdkAppId}),this.onmessage=this.onmessage.bind(this),this.onerror=this.onerror.bind(this),this.onclose=this.onclose.bind(this)}get race(){return this.room.enableSPC&&!this.room.proxy_ws}get urlParam(){let A="?sdkAppId=".concat(encodeURIComponent(this.sdkAppId),"&userId=").concat(encodeURIComponent(this.userId),"&userSig=").concat(encodeURIComponent(this.userSig),"&keepAlive=").concat(encodeURIComponent(Number(this.keepAlive)));this.signalDomainWhenUnifiedProxy&&(A+="&signalDomain=".concat(encodeURIComponent(this.signalDomainWhenUnifiedProxy))),this.prelink&&(A+="&prelink=1");let e=new URLSearchParams(location.search);return gtA.forEach(o=>{let n=e.get("trtc_".concat(o));n&&(A+="&".concat(o,"=").concat(encodeURIComponent(n)))}),this.race?"".concat(A,"&race=1"):A}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 this._currentState==="CONNECTED"}get isConnecting(){return this._currentState==="CONNECTING"}get isOnline(){return this._currentState==="CONNECTED"&&Date.now()-this._lastMessageTime<12e3}connect(){return DA(this,arguments,function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1e4;return function*(){if(A.isConnected)return Promise.resolve();A._log.info("connect to [".concat(A.url,", ").concat(A.backupUrl,"] ").concat(A.race?"race":"").concat(e?" timeout: ".concat(e):""," keepAlive: ").concat(Number(A.keepAlive))),A.emitConnectionStateChanged("CONNECTING"),A._connectStartTime=ki();let o=[A.connectWS({url:A._urlWithParam,isMain:!0,timeout:e})];A.race&&A._backupUrlWithParam!==A._urlWithParam&&o.push(A.connectWS({url:A._backupUrlWithParam,isMain:!1,timeout:e})),A._socketInUse=yield Pf(o),A.unbindAndCloseSocket(A._socketInUse===A._socket?fA.BACKUP:fA.MAIN),A._isFirstConnect&&(ct.addSuccessEvent({key:521720}),A._isFirstConnect=!1),A.emitConnectionStateChanged("CONNECTED")}()})}connectWS(A){let{url:e,timeout:o,isMain:n}=A,a=new WebSocket(e);this.bindSocket(a),n?this._socket=a:this._backupSocket=a;let I=-1;return new Promise((c,u)=>{a.onclose=u,a.onerror=u,a.onopen=()=>c(a),o&&(I=setTimeout(()=>{this.unbindAndCloseSocket(n?fA.MAIN:fA.BACKUP),u(new Ct({code:Ge.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))},o))}).finally(()=>{a.onclose=null,a.onerror=null,a.onopen=null,clearTimeout(I)})}bindSocket(A){A.addEventListener("close",this.onclose),A.addEventListener("error",this.onerror),A.addEventListener("message",this.onmessage)}unbindSocket(A){A.removeEventListener("close",this.onclose),A.removeEventListener("error",this.onerror),A.removeEventListener("message",this.onmessage)}unbindAndCloseSocket(A){if(A===fA.MAIN){if(this._socket){this.unbindSocket(this._socket);try{this._socket.close(1e3)}catch{}this._socket=null}}else if(this._backupSocket){this.unbindSocket(this._backupSocket);try{this._backupSocket.close(1e3)}catch{}this._backupSocket=null}}onclose(A){A.target===this._socketInUse&&(this._log.warn("".concat(A.target===this._socket?"main":"backup"," is closed code:").concat(A.code," ").concat(A.reason)),this.emitConnectionStateChanged("DISCONNECTED"),(!A.wasClean||A.code!==1e3&&A.code!==4013)&&this.startReconnection(),this.prelink&&A.code===4013&&this.room.clearNetworkQuality(),this.room.isJoining&&this.emit(Ox,new Ct({code:Ge.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onclose"})))}onerror(A){this._log.error("".concat(A.target===this._socket?"main":"backup"," error observed")),this.emitConnectionStateChanged("DISCONNECTED"),A.target===this._socketInUse&&(this.unbindAndCloseSocket(fA.MAIN),this.unbindAndCloseSocket(fA.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(Ox,new Ct({code:Ge.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(A){if(!this.isConnected)return;let{isOnline:e}=this;this._lastMessageTime=Date.now(),e||this.emit(V4),this.bytesReceived+=XR(A.data);let o=JSON.parse(A.data),{cmd:n,data:a}=o,I=Object.values(sB),c=Object.keys(sB)[I.indexOf(n)],u=io[c]||n;switch(xeA.includes(n)||(this._log.debug("received ".concat(n," msg: ").concat(A.data)),u&&this._log.info("Received event: [ ".concat(u," ]"))),n){case sB.CHANNEL_SETUP_RESULT:if(o.code===0)this._signalInfo.clientIp=a.clientIp,this._signalInfo.signalIp=a.signalInnerIp,a.svrTime&&iu(a.svrTime-new Date().getTime()),this._log.info("ChannelSetup Success ".concat(ki()-this._connectStartTime)),ct.addSuccessEvent({key:521701,cost:ki()-this._connectStartTime}),this._connectStartTime=-1,this.room.firewallDetector.resetTimeoutCount(),this.emit(H4,{signalInfo:this._signalInfo});else{let d=new Ct({code:Ge.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:o.code,message:Wi({key:Mi.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:o.code,errorMsg:o.message}})});this._log.error("".concat(o.code,", ").concat(o.message)),this.close(),ct.addFailedEvent({key:521701,error:d}),this.emit(Ox,d)}break;case sB.JOIN_ROOM_RESULT:o.code===0&&(this._signalInfo.relayIp=a.relayOuterIp,this._signalInfo.relayInnerIp=a.relayInnerIp,this._signalInfo.bakRelayIps=a.bakRelayIps,this._signalInfo.relayPort=a.relayPort,this._signalInfo.tinyId=o.tinyId,this._signalInfo.endReportExtend=a.endReportExtend,this._signalInfo.reportToken=a.reportToken,this._log.info("signalIp:".concat(this._signalInfo.signalIp," clientIp:").concat(this._signalInfo.clientIp," relayIp: ").concat(this._signalInfo.relayIp))),this.emit(u,{data:o});break;default:this.emit(String(u),{data:o})}}reGetSignalChannelUrl(){return DA(this,null,function*(){try{if(!this.room.joinParams)return;wu(!0),yield this.room.schedule(this.room.joinParams);let{mainUrl:A,backupUrl:e}=this.room.getSignalChannelUrl();this.url=A,this.backupUrl=e}catch{}})}startReconnection(){if(!this._socketInUse)return;this._socketInUse.onclose=null,this._socketInUse.close(4011);let A=this._socketInUse===this._socket;this.unbindAndCloseSocket(A?fA.MAIN:fA.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return DA(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:A,useStringRoomId:e}=this.room,{relayIp:o,relayInnerIp:n,relayPort:a}=this._signalInfo,{data:I}=yield this.sendWaitForResponse({command:otA,data:{roomId:A,useStringRoomId:e,relayInnerIp:n,relayOuterIp:o,relayPort:a},responseCommand:io.CHANNEL_RECONNECT_RESULT});I.code===0?(this._log.warn("reconnect success"),this.stopReconnection(),ct.addSuccessEvent({key:521702,cost:ki()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(ct.addFailedEvent({key:521702,error:I.code}),this._log.warn("reconnect failed, ".concat(I.code," ").concat(I.message)),this.room.reJoin())}catch(A){this._log.error(A),this.room.reJoin()}}})}send(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.isConnected&&!this.room.isLeft){let o={cmd:A,data:e,userId:this.userId,tinyId:this._signalInfo.tinyId,seq:++this._seq},n=JSON.stringify(o);return this._socketInUse.send(n),stA.has(A)&&this._log.info("send",A,e),this.bytesSent+=XR(n),o.seq}}sendWaitForResponse(A){let{command:e,data:o,timeout:n=5e3,responseCommand:a,commandDesc:I,enableLog:c=!0,addReceiveTime:u=!1}=A;return new Promise((d,R)=>{let k=()=>{clearTimeout(_),R(new Ct({code:Ge.API_CALL_ABORTED,message:"".concat(e," aborted due to connection closed")}))};this.once(xx,k);let _=setTimeout(()=>{this.off(a,Z),this.off(xx,k);let cA=new Ct({code:Ge.API_CALL_TIMEOUT,message:Wi({key:Mi.API_CALL_TIMEOUT,data:{commandDesc:I,command:e}})});c&&this._log.warn(cA),R(cA)},n),Z=cA=>{cA.data.seq===iA&&(clearTimeout(_),this.off(a,Z),this.off(xx,k),u&&(cA.data.receiveTime=Date.now()),d(cA))};this.on(a,Z);let iA=this.send(e,o)})}sendWaitForResponseWithRetry(A){let{commandDesc:e,command:o,retries:n=0,retryTimeout:a=0}=A;return Kf({retryFunction:this.sendWaitForResponse,onError:I=>{let{retry:c,reject:u,error:d}=I;!this.room.isJoined||this.destroyed||d.code===Ge.API_CALL_ABORTED?u(d):this.isOnline?c():(this._log.warn("retry ".concat(o," when connected")),this.once(V4,c))},onRetrying:I=>{this._log.warn("".concat(e||o," timeout observed, retrying [").concat(I,"/").concat(n,"]"))},settings:{retries:n,timeout:a},context:this})(A)}getCurrentState(){return this._currentState}getSignalInfo(){return this._signalInfo}stopReconnection(){this._isReconnecting=!1,this._stopConnectRetry&&this._stopConnectRetry()}close(){this._log.info("closed"),clearTimeout(this.stopKeepAliveTimeout),clearTimeout(this.stopPrelinkTimeout),Px.delete(this),this.stopReconnection(),this._signalInfo={tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,bakRelayIps:[],endReportExtend:void 0,reportToken:void 0},this._socketInUse=null,this.bytesSent=0,this.bytesReceived=0,this._stopConnectRetry&&this._stopConnectRetry(),this.unbindAndCloseSocket(fA.MAIN),this.unbindAndCloseSocket(fA.BACKUP),this.emitConnectionStateChanged("DISCONNECTED"),this.emit(xx)}destroy(){this.close(),this.destroyed=!0}getBackupRelayIpPair(){var A;let e=(A=this._signalInfo.bakRelayIps)==null?void 0:A.shift();return e&&(e.relayPort=e.relayPort||this._signalInfo.relayPort),e}clearBakRelayIps(){this._signalInfo.bakRelayIps=[]}stopKeepAliveIn(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3600;if(this.keepAlive){this._log.info("stopKeepAlive in ".concat(A,"s")),this.stopKeepAliveTimeout=setTimeout(()=>{this.keepAlive=!1,this._log.info("close due to not used ".concat(A,"s")),this.close(),this.off(io.JOIN_ROOM_RESULT,e)},1e3*A);let e=o=>{o.data.code===0&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(io.JOIN_ROOM_RESULT,e))};this.on(io.JOIN_ROOM_RESULT,e)}}stopPrelinkIn(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:300;if(this.keepAlive)return;this._log.info("stopPrelink in ".concat(A,"s")),this.stopPrelinkTimeout=setTimeout(()=>{this._log.info("close prelink due to not used in ".concat(A,"s")),this.close(),this.room.clearNetworkQuality(),this.off(io.JOIN_ROOM_RESULT,e)},1e3*A);let e=o=>{o.data.code===0&&(this._log.info("stopPrelink clear timeout"),clearTimeout(this.stopPrelinkTimeout),this.off(io.JOIN_ROOM_RESULT,e))};this.on(io.JOIN_ROOM_RESULT,e)}markPrelinkConnected(A){this._prelinkConfig=fi(bt({},A),{linkedTime:Date.now()})}isPrelinkValid(A,e,o){return!(!this.prelink||!this._prelinkConfig)&&(A!==this._prelinkConfig.sdkAppId||e!==this._prelinkConfig.userId||o!==this._prelinkConfig.userSig?(this._log.warn("prelink params not match"),!1):!!this.isConnected||(this._log.warn("prelink is not connected"),!1))}consumePrelink(){this.prelink=!1,this._prelinkConfig=void 0}emitConnectionStateChanged(A){if(A===this._currentState)return;this._log.info("".concat(this._currentState," -> ").concat(A));let e={prevState:this._currentState,state:A};A==="CONNECTING"&&(e.isReconnecting=this._isReconnecting),this.emit(rK,e),this._currentState=A,A==="CONNECTED"?this.emit(gG):A==="DISCONNECTED"&&this.emit(OeA)}};vt([nB({settings:{retries:1/0,timeout:2e3},onError(A,e){!this.room.isDestroyed&&!this.destroyed&&(this._isFirstConnect&&(ct.addFailedEvent({key:521720,error:A}),this._isFirstConnect=!1),this.room.firewallDetector.increaseTimeoutCount(),e())},onRetrying(A,e){this._log.warn("retrying to connect ".concat(A)),A>=3&&A%3==0&&this.reGetSignalChannelUrl(),e&&(this._stopConnectRetry=e,(this.room.isDestroyed||this.destroyed)&&e())}})],X4.prototype,"connect");var ctA=es(hg()),$4=!1,WQ=class{constructor(A){G(this,"userId"),G(this,"tinyId"),G(this,"_sdpSemantics"),G(this,"_isUplink"),G(this,"_room"),G(this,"_log"),G(this,"_signalChannel"),G(this,"_isErrorObserved",!1),G(this,"_waitForPeerConnectionConnectedPromise"),G(this,"_waitForPeerConnectionConnectedPromiseReject",null),G(this,"_peerConnection",null),G(this,"_emitter",new ctA.default),G(this,"_currentState","DISCONNECTED"),G(this,"_isReconnecting",!1),G(this,"_reconnectionCount",0),G(this,"_reconnectionTimer",-1),G(this,"_isFirstConnection",!0),G(this,"_prevTime",-1),G(this,"_localAddress"),G(this,"_remoteAddress"),G(this,"isDestoyed",!1),this.userId=A.userId,this.tinyId=A.tinyId,this._room=A.room,this._sdpSemantics=A.room.sdpSemantics,this._isUplink=A.isUplink,this._log=A.room.getLogger().createChild({id:"n-mpc",userId:this._room.userId,remoteUserId:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink}),this._signalChannel=A.signalChannel}beforeConnect(){this._prevTime<0&&(this._prevTime=ki())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,ct.addSuccessEvent({key:521705,cost:Math.min(ki()-this._prevTime,3e4)})):this._isReconnecting&&ct.addSuccessEvent({key:521706,cost:ki()-this._prevTime}),this._prevTime=-1}catch(A){throw this._isFirstConnection?(this._isFirstConnection=!1,ct.addFailedEvent({key:521705,error:A})):this._isReconnecting&&this._reconnectionCount>=3&&ct.addFailedEvent({key:521706,error:A}),A}}initialize(){let A={iceServers:this._room.getIceServers(),iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"};this._peerConnection=new RTCPeerConnection(A),this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this)}close(A){this._log.info("close connection"),this._emitter.emit("closed",A),this._isReconnecting&&this.stopReconnection(),this.closePeerConnection()}destroy(){this.isDestoyed=!0}closePeerConnection(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._peerConnection&&(this._log.info("close pc"),this._peerConnection.onconnectionstatechange=null,this._peerConnection.close(),this._peerConnection=null,A&&this.emitConnectionStateChangedEvent("DISCONNECTED")),this._waitForPeerConnectionConnectedPromiseReject&&this._waitForPeerConnectionConnectedPromiseReject(new Ct({code:Ge.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return AB;let A=null;if(this._isUplink){if(!AI()||this._peerConnection.getSenders().length===0)return AB;A=this._peerConnection.getSenders()[0].transport}else{if(!Ph()||this._peerConnection.getReceivers().length===0)return AB;A=this._peerConnection.getReceivers()[0].transport}return A?A.state:AB}onConnectionStateChange(A){let e=this._peerConnection.iceConnectionState,o=this.getDTLSTransportState();if(this._log.info("connectionState: ".concat(A.target.connectionState,", ICE: ").concat(e,", DTLS: ").concat(o)),A.target.connectionState===hi.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),A.target.connectionState===hi.FAILED||A.target.connectionState===hi.CLOSED){let n="connection ".concat(A.target.connectionState,". ICE Transport state: ").concat(e,", DTLS Transport state: ").concat(o),a=new Ct({message:n,code:Ge.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",a)}(A.target.connectionState===hi.CONNECTED||A.target.connectionState===hi.COMPLETED)&&(this.logSelectedCandidate(),Jo.logSuccessEvent({userId:this._room.userId,eventType:oa.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(A){return A!==this._currentState&&(A==="CONNECTED"&&(this._room.firewallDetector.resetTimeoutCount(),$4=!0),S.emit(K.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:A,remoteUserId:this._isUplink?void 0:this.userId}),this._emitter.emit("connection-state-changed",{prevState:this._currentState,state:A}),this._currentState=A,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}logSelectedCandidate(){return DA(this,null,function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[,e]of A)if(Cm(e)){let o=A.get(e.localCandidateId),n=A.get(e.remoteCandidateId);o&&(this._log.info("local candidate: ".concat(o.candidateType," ").concat(o.protocol,":").concat(o.ip||o.address,":").concat(o.port," ").concat(o.networkType||""," ").concat(o.candidateType==="relay"?"relayProtocol:".concat(o.relayProtocol):"")),this._localAddress="".concat(o.ip||o.address,":").concat(o.port)),n&&(this._log.info("remote candidate: ".concat(n.candidateType," ").concat(n.protocol,":").concat(n.ip||n.address,":").concat(n.port)),this._remoteAddress="".concat(n.protocol,":").concat(n.ip||n.address));break}})}getCurrentState(){return this._currentState}waitForPeerConnectionConnected(){return this._waitForPeerConnectionConnectedPromise||(this._waitForPeerConnectionConnectedPromise=new Promise((A,e)=>{if(this._currentState==="CONNECTED")return A();this._waitForPeerConnectionConnectedPromiseReject=e;let o=c=>{c.state==="CONNECTED"&&(clearTimeout(I),a(),A())},n=c=>{let{room:u}=c;u===this._room&&(clearTimeout(I),a(),e(new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.CONNECTION_ABORTED,data:"leave room"})})))},a=()=>{S.off(K.LEAVE_SUCCESS,n,this),this._emitter.off("connection-state-changed",o,this)},I=setTimeout(()=>{a();let c=new Ct({code:Ge.API_CALL_TIMEOUT,message:"connection timeout"});this._room.firewallDetector.increaseTimeoutCount(),e(c)},yN);S.on(K.LEAVE_SUCCESS,n,this),this._emitter.on("connection-state-changed",o,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(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}stopReconnection(){this._log.info("stop reconnection"),this._isReconnecting=!1,this._reconnectionCount=0,this.clearReconnectionTimer(),this._signalChannel.off(gG,this.reconnect,this)}beforeReconnect(){if(this._reconnectionTimer!==-1)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=Ch()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let A=new Ct({code:this._isUplink?Ge.UPLINK_RECONNECTION_FAILED:Ge.DOWNLINK_RECONNECTION_FAILED,message:Wi({key:this._isUplink?Mi.UPLINK_RECONNECTION_FAILED:Mi.DOWNLINK_RECONNECTION_FAILED})});return this.emitConnectionStateChangedEvent("DISCONNECTED"),this._emitter.emit("error",A),-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(gG,this.reconnect,this),-1)}on(A,e,o){this._emitter.on(A,e,o)}off(A,e,o){this._emitter.off(A,e,o)}getIsReconnecting(){return this._isReconnecting}get isH264(){var A,e;return!((e=(A=this._peerConnection)==null?void 0:A.remoteDescription)==null||!e.sdp.includes("H264"))}setOffer(A){var e;return(e=this._peerConnection)==null?void 0:e.setLocalDescription(A)}setAnswer(A){var e;return(e=this._peerConnection)==null?void 0:e.setRemoteDescription(A)}};vt([jh(521712,!1)],WQ.prototype,"setOffer"),vt([jh(521713,!1)],WQ.prototype,"setAnswer");var Az=es(cN()),rs=function(A){return Az.default.parse(A)},$h=function(A){return Az.default.write(A)};function IK(A){return Object.keys(A).filter(e=>A[e])}var Jx=class A6 extends WQ{constructor(e){super(fi(bt({},e),{isUplink:!1})),G(this,"_flag",0),G(this,"isRobot",!1),G(this,"role","anchor"),G(this,"remoteAudioTrack"),G(this,"remoteVideoTrack"),G(this,"remoteAuxiliaryTrack"),G(this,"avPlayerStateSyncManager"),G(this,"ssrc",{audio:0,video:0,auxiliary:0}),G(this,"_isSDPExchanging",!1),G(this,"_videoCodec"),G(this,"fromType"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new Dx(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new tG(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new n4(this._room,this),this.avPlayerStateSyncManager=new Kq({log:this._log,audioPlayer:this.remoteAudioTrack.player,videoPlayer:this.remoteVideoTrack.player})}get videoCodec(){var e,o;let n=(o=(e=this._peerConnection)==null?void 0:e.remoteDescription)==null?void 0:o.sdp;return n?n.includes("H264")?"h264":"vp8":this._videoCodec||"h264"}set videoCodec(e){this._videoCodec=e}get subscribeState(){let e={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(8&this.remoteVideoTrack.mediaType?e.smallVideo=!0:e.video=!0),this.remoteAudioTrack.isSubscribed&&(e.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(e.auxiliary=!0),e}get muteState(){return mQ(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var o,n,a;e!==this._flag&&(this._flag=e,(o=this.remoteAudioTrack)==null||o.onFlagChanged(),(n=this.remoteVideoTrack)==null||n.onFlagChanged(),(a=this.remoteAuxiliaryTrack)==null||a.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===fA.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.avPlayerStateSyncManager.destroy(),this.uninstallEvents()}installEvents(){}uninstallEvents(){this._emitter.removeAllListeners()}emitConnectionStateChangedEvent(e){var o,n;let a=this._currentState,I=super.emitConnectionStateChangedEvent(e);return I&&a!==e&&((o=this.remoteVideoTrack)==null||o.emit("connection-state-changed",{prevState:a,state:e}),(n=this.remoteAuxiliaryTrack)==null||n.emit("connection-state-changed",{prevState:a,state:e})),I}onTrack(e){let o=e.streams[0],{track:n}=e,a=o.id===RI?fA.MAIN:fA.AUXILIARY;this._log.debug("ontrack ".concat(a," ").concat(n.kind));let I=fA.AUDIO;n.kind===fA.VIDEO&&(I=a===fA.MAIN?fA.VIDEO:fA.AUXILIARY);let c=this.remoteAudioTrack;I===fA.VIDEO?c=this.remoteVideoTrack:I===fA.AUXILIARY&&(c=this.remoteAuxiliaryTrack),c.setInputMediaStreamTrack(n)}addRRTRLine(e){let o=e.split(`\r
`),n=new Map;o.forEach((I,c)=>{/^a=rtcp-fb:/.test(I)&&o[c+1]&&!/^a=rtcp-fb:/.test(o[c+1])&&n.set(c+1,"".concat(I.match(/^a=rtcp-fb:\d+/)[0]," rrtr"))});let a=[...n];for(let I=0;I<a.length;I++){let[c,u]=a[I];o.splice(c+I,0,u)}return o.join(`\r
`)}addSPSDescription(e){let o=rs(e);return o.media.forEach(n=>{n.type===fA.VIDEO&&n.fmtp.forEach(a=>{a.config+=";sps-pps-idr-in-keyframe=1"})}),$h(o)}removeSDESDescription(e){let o=["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"],n=rs(e);return n.media.forEach(a=>{a.ext&&(a.ext=a.ext.filter(I=>!o.includes(I.uri)))}),$h(n)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,o){return DA(this,null,function*(){var n,a;try{if((((n=this._peerConnection)==null?void 0:n.connectionState)===hi.NEW||((a=this._peerConnection)==null?void 0:a.connectionState)===hi.CONNECTING)&&(yield this.waitForPeerConnectionConnected()),this.isSubscriptionStateNotChanged(e))return void(this._peerConnection||(this.initialize(),yield this.connect(e)));if(this._log.info("subscribe ".concat(o," ").concat(JSON.stringify(e))),this._peerConnection||this._isSDPExchanging){let I="subscribe_change";Object.values(e).find(c=>c===!0)||(I="unsubscribe"),yield this.sendSubscription(I,e)}else this.initialize(),yield this.connect(e)}catch(I){throw this._room.isJoined&&this.isStreamUnpublished(o)?(this._log.warn("".concat(I.message," ").concat(JSON.stringify(this.muteState))),new Ct({code:Ge.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):I}})}unsubscribe(e){return DA(this,arguments,function(o){var n=this;let{remoteTracks:a,streamType:I}=o;return function*(){if(n._currentState==="CONNECTED"&&(I==="main"&&!n.isMainStreamSubscribed||I==="auxiliary"&&!n.isAuxStreamSubscribed))return void n._log.info("".concat(I," stream already unsubscribed"));let c=bt({},n.subscribeState);a.forEach(d=>{switch(d.mediaType){case 1:c.audio=!1;break;case 4:c.video=!1;break;case 8:c.smallVideo=!1;break;case 2:c.auxiliary=!1}});let u="subscribe_change";Object.values(c).find(d=>d===!0)||(u="unsubscribe"),n._log.info("".concat(u==="unsubscribe"?u:"subscribe"," ").concat(I," [").concat(IK(c),"]")),yield n.sendSubscription(u,c),u==="unsubscribe"&&(n.closePeerConnection(),n.emitConnectionStateChangedEvent("DISCONNECTED"))}()})}unsubscribeDataChannel(){return DA(this,null,function*(){})}sendSubscription(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscribeState,n={srcTinyId:this.tinyId,srcUserId:this.userId},a=aK,I=io.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(n={audio:o.audio,bigVideo:o.video,auxVideo:o.auxiliary,smallVideo:o.smallVideo,srcTinyId:this.tinyId},a=sK,I=io.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:a,data:n,responseCommand:I,timeout:1e4}).then(c=>{let{data:u}=c;if(u.code!==0){let d=new Ct({code:u.code,message:Wi({key:Mi.ERROR_MESSAGE,data:{type:e,message:u.message}})});throw this._log.error(d),d}})}connect(){return DA(this,arguments,function(){var e=this;let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.subscribeState;return function*(){try{yield e.exchangeSDP(o),yield e.waitForPeerConnectionConnected()}catch(n){throw e.closePeerConnection(!0),n}}()})}exchangeSDP(e){return DA(this,null,function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:o,sdp:n}=this._peerConnection.localDescription,a={type:o,sdp:n,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},I=yield this._signalChannel.sendWaitForResponse({command:W4,commandDesc:"exchange sdp",data:a,responseCommand:io.SUBSCRIBE_RESULT,timeout:aO});if(!this._peerConnection){let c=new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.CONNECTION_CLOSED})});throw this._log.warn(c),c}yield this.onSubscribeResult(I),this._isSDPExchanging=!1}catch(o){throw this._isSDPExchanging=!1,o}})}createOffer(){return DA(this,null,function*(){let e={voiceActivityDetection:!1};sl()&&this._sdpSemantics===_f?(this._peerConnection.addTransceiver(fA.AUDIO,{direction:_r.RECVONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:_r.RECVONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:_r.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let o=yield this._peerConnection.createOffer(e);if(o.sdp){let{isH264DecodeSupported:n}=yield DT();n||(this._log.warn("remove h264 desc from sdp"),o.sdp=function(a){let I=rs(a);return I.media.forEach(c=>{var u,d;if(c.type===fA.VIDEO){let R=new Set;c.rtp.forEach(_=>{let{payload:Z,codec:iA}=_;return iA==="H264"&&R.add(Z)}),c.fmtp.forEach(_=>{let{payload:Z,config:iA}=_,cA=iA.match(/apt=(\d+)/);cA&&cA[1]&&R.has(Number(cA[1]))&&R.add(Z)});let k=_=>{let{payload:Z}=_;return!R.has(Z)};c.rtp=c.rtp.filter(k),c.rtcpFb=(u=c.rtcpFb)==null?void 0:u.filter(k),c.fmtp=c.fmtp.filter(k),c.payloads=(d=c.payloads)==null?void 0:d.split(" ").filter(_=>!R.has(Number(_))).join(" ")}}),$h(I)}(o.sdp)),o.sdp=this.addRRTRLine(o.sdp),o.sdp=this.addSPSDescription(o.sdp),o.sdp=function(a){let I=rs(a);return I.media.forEach(c=>{c.type===fA.AUDIO&&c.fmtp.forEach(u=>{u.config+=";sprop-stereo=1;stereo=1"})}),$h(I)}(o.sdp),this._sdpSemantics===_f&&(o.sdp=this.removeSDESDescription(o.sdp))}yield this.setOffer(o)})}onSubscribeResult(e){return DA(this,null,function*(){let{code:o,message:n=""}=e&&e.data||{},{type:a,sdp:I}=e&&e.data&&e.data.data||{};if(o===FR)throw new Ct({code:Ge.NOT_SUPPORTED_H264,message:Wi({key:Mi.NOT_SUPPORTED_H264DECODE})});try{if(o!==0)throw new Ct({code:o,message:Wi({key:Mi.EXCHANGE_SDP_FAILED,data:{errMsg:n}})});this._log.debug("accept remote answer: ".concat(I)),yield this.setAnswer({type:a,sdp:I}),this.updateSSRC(I)}catch(c){throw this._log.error(c),c}})}updateSSRC(e){try{rs(e).media.forEach(o=>{if(o.ssrcs)if(o.type===fA.AUDIO){let n=o.ssrcs.find(a=>{var I;return(I=a.value)==null?void 0:I.includes(RI)});n&&(this.ssrc.audio=Number(n.id))}else{let n=o.ssrcs.find(I=>{var c;return(c=I.value)==null?void 0:c.includes(RI)}),a=o.ssrcs.find(I=>{var c;return(c=I.value)==null?void 0:c.includes(tO)});n&&(this.ssrc.video=Number(n.id)),a&&(this.ssrc.auxiliary=Number(a.id))}})}catch{}}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}reconnect(){return DA(this,null,function*(){if(!(zg(A6.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch{let o=fQ(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(o/1e3,"s")),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},o)}})}getIsReconnecting(){return this._isReconnecting}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}getCurrentState(){return this._currentState}setDelay(e){let{audioDelay:o,videoDelay:n}=e;this.remoteAudioTrack.stat.end2EndDelay=o,this.remoteVideoTrack.stat.end2EndDelay=n}get audioReceiver(){var e;return((e=this._peerConnection)==null?void 0:e.getReceivers()[0])||null}};vt([Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return new Promise((a,I)=>{let c=u=>{this._emitter.off("closed",c),I(new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.CONNECTION_ABORTED,data:u})}))};this._emitter.on("closed",c),A.apply(this,o).then(a,I).finally(()=>{this._emitter.off("closed",c)})})})],Jx.prototype,"subscribe"),vt([jh(521717,!1)],Jx.prototype,"unsubscribe"),vt([wm(WQ.prototype.afterConnect),MW(WQ.prototype.beforeConnect)],Jx.prototype,"connect");var ez=Jx,tz={voiceActivityDetection:!1},Hx=class e6 extends WQ{constructor(e){super(fi(bt({},e),{isUplink:!0})),G(this,"localMainAudioTrack",null),G(this,"localMainVideoTrack",null),G(this,"localAuxAudioTrack",null),G(this,"localAuxVideoTrack",null),G(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),G(this,"_isPublishingAux",!1),G(this,"_publishingLocalAudioTrack"),G(this,"_publishingLocalVideoTrack"),G(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}),G(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)}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,o){var n,a,I;let c=this._currentState,u=super.emitConnectionStateChangedEvent(e);return u&&c!==e&&(o?o.emit("connection-state-changed",{prevState:c,state:e}):((n=this.localMainVideoTrack)==null||n.emit("connection-state-changed",{prevState:c,state:e}),(a=this.localAuxVideoTrack)==null||a.emit("connection-state-changed",{prevState:c,state:e}),(I=this._publishingLocalVideoTrack)==null||I.emit("connection-state-changed",{prevState:c,state:e}))),u}publish(e){return DA(this,arguments,function(o){var n=this;let{localAudioTrack:a,localVideoTrack:I,isAuxiliary:c}=o;return function*(){let u;n._peerConnection||n.initialize(),a&&(n._publishingLocalAudioTrack=a),I&&(n._publishingLocalVideoTrack=I),n._isPublishingAux=c,I&&!c&&I.small&&(u=n._room.videoManager.smallTrack),n.sendMediaSettings(),sl()?yield n.publishByTransceiver({localAudioTrack:a,localVideoTrack:I,smallTrack:u,isAuxiliary:c}):yield n.publishByAddTrack({localAudioTrack:a,localVideoTrack:I,smallTrack:u}),n._publishingLocalAudioTrack=null,n._publishingLocalVideoTrack=null,n._isPublishingAux=!1,c?(I&&(n.localAuxVideoTrack=I),a&&(n.localAuxAudioTrack=a)):(I&&(n.localMainVideoTrack=I),a&&(n.localMainAudioTrack=a)),n.installTrackMuteEvents(a,I),n.sendMutedFlag()}()})}publishByTransceiver(e){return DA(this,arguments,function(o){var n=this;let{localAudioTrack:a,localVideoTrack:I,smallTrack:c,isAuxiliary:u}=o;return function*(){n._log.info("publish by transceiver");let d=new MediaStream,R=I?.outMediaTrack,k=a?.outMediaTrack;k&&d.addTrack(k),R&&d.addTrack(R);let _=n._peerConnection.getTransceivers();if(_.length===0)n._peerConnection.addTransceiver(k||fA.AUDIO,{direction:_r.SENDONLY,streams:[d]}),n._peerConnection.addTransceiver(u?fA.VIDEO:R||fA.VIDEO,{direction:_r.SENDONLY,streams:[d]}),n._peerConnection.addTransceiver(c||fA.VIDEO,{direction:_r.SENDONLY,streams:[d]}),n._peerConnection.addTransceiver(u&&R||fA.VIDEO,{direction:_r.SENDONLY,streams:[d]}),yield n.connect();else{let Z=[];if(k&&(_[0].sender.track||Z.push(0),yield _[0].sender.replaceTrack(k),yield n.setBandwidth({bandwidth:a?.profile.bitrate||40,type:fA.AUDIO})),R){let iA=u?3:1;yield _[iA].sender.replaceTrack(R),yield n.setBandwidth({bandwidth:I.profile.bitrate,type:fA.VIDEO,videoType:u?fA.AUXILIARY:fA.BIG}),Z.push(iA),c&&(yield _[2].sender.replaceTrack(c),yield n.setBandwidth({bandwidth:I.small.bitrate,type:fA.VIDEO,videoType:fA.SMALL}),Z.push(2))}yield n.setTransceiverDirection(_r.SENDONLY,Z),yield n.doPublishChange(),I?.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),I?.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}}()})}publishByAddTrack(e){return DA(this,arguments,function(o){var n=this;let{localAudioTrack:a,localVideoTrack:I,smallTrack:c}=o;return function*(){n._log.info("publish by addtrack");let u=I?.outMediaTrack,d=a?.outMediaTrack;if(n._peerConnection&&n._peerConnection.connectionState!=="new")return a&&d&&(yield n.addTrack(a)),void(u&&(yield n.addTrack(I)));let R=new MediaStream;if(d&&R.addTrack(d),u&&R.addTrack(u),d&&n._peerConnection.addTrack(d,R),u&&(n._peerConnection.addTrack(u,R),c)){let k=new MediaStream;k.addTrack(c),n._peerConnection.addTrack(c,k)}yield n.connect()}()})}enableSmall(e){return DA(this,null,function*(){let o=this._peerConnection.getTransceivers();e?this._room.videoManager.smallTrack&&(yield o[2].sender.replaceTrack(this._room.videoManager.smallTrack),yield this.setTransceiverDirection(_r.SENDONLY,[2])):(yield o[2].sender.replaceTrack(null),yield this.setTransceiverDirection(_r.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()})}installTrackMuteEvents(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];o.forEach(a=>{a&&(a?.on("mute",this.sendMutedFlag,this),a?.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];o.forEach(a=>{a&&(a?.off("mute",this.sendMutedFlag,this),a?.off("unmute",this.sendMutedFlag,this))})}unpublish(e){return DA(this,arguments,function(o){var n=this;let{localAudioTrack:a,localVideoTrack:I}=o;return function*(){if(!mu())return a&&a.outMediaTrack&&!I&&n.localMainVideoTrack?(yield n.removeTrack(a),void(n.localMainAudioTrack=null)):I&&I.outMediaTrack&&!a&&n.localMainAudioTrack?(yield n.removeTrack(I),void(n.localMainVideoTrack=null)):(yield n.doUnpublish(),n.uninstallTrackMuteEvents(a,I),void n.emitConnectionStateChangedEvent("DISCONNECTED",I));let c=I&&I===n.localAuxVideoTrack,u=I?.outMediaTrack,d=n._peerConnection.getSenders(),R=[];a&&(c?n.localAuxAudioTrack=null:n.localMainAudioTrack=null,!n.localAuxAudioTrack&&!n.localMainAudioTrack&&(yield d[0].replaceTrack(null),R.push(0))),u&&(c?(yield d[3].replaceTrack(null),n.localAuxVideoTrack=null,n._mediaSettings=fi(bt({},n._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),R.push(3)):(yield d[1].replaceTrack(null),yield d[2].replaceTrack(null),n.localMainVideoTrack=null,n._mediaSettings=fi(bt({},n._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),R.push(1,2))),n.isMainStreamPublished||n.isAuxStreamPublished?(yield n.setTransceiverDirection(_r.INACTIVE,R),yield n.doPublishChange(!1)):yield n.doUnpublish(),n.uninstallTrackMuteEvents(a,I),I?.emit("connection-state-changed",{prevState:n._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return DA(this,null,function*(){let o={state:this._room.publishState,constraintConfig:this._mediaSettings},n=yield this._signalChannel.sendWaitForResponse({command:nK,data:o,responseCommand:io.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(n.data.code,n.data.message)})}doUnpublish(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this._signalChannel.sendWaitForResponse({command:Yx,commandDesc:"unpublish",responseCommand:io.UNPUBLISH_RESULT,enableLog:e}).catch(o=>{if(o.getCode()===Ge.API_CALL_TIMEOUT)return Promise.resolve();throw o})}updateMediaSettings(){let{detail:{isH264EncodeSupported:e,isVp8EncodeSupported:o}}=this._room.checkSystemResult;e?this._mediaSettings.videoCodec="H264":o&&(this._mediaSettings.videoCodec="VP8");let n=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:a,localAuxVideoTrack:I}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?I=this._publishingLocalVideoTrack:a=this._publishingLocalVideoTrack),Jh){if(n&&n.outMediaTrack){let c=n.outMediaTrack.getSettings();this._mediaSettings.audioChannel=c.channelCount||1,this._mediaSettings.audioBps=1e3*n.profile.bitrate,this._mediaSettings.audioFs=c.sampleRate||0}if(a&&a.outMediaTrack){let c=a.outMediaTrack.getSettings();this._mediaSettings.videoWidth=c.width||0,this._mediaSettings.videoHeight=c.height||0,this._mediaSettings.videoFps=c.frameRate||0,this._mediaSettings.videoBps=1e3*a.profile.bitrate,a.small&&(this._mediaSettings.smallVideoWidth=a.small.width,this._mediaSettings.smallVideoHeight=a.small.height,this._mediaSettings.smallVideoFps=a.small.frameRate,this._mediaSettings.smallVideoBps=1e3*a.small.bitrate)}if(I&&I.outMediaTrack){let c=I.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=c.width||0,this._mediaSettings.auxVideoHeight=c.height||0,this._mediaSettings.auxVideoFps=c.frameRate||0,this._mediaSettings.auxVideoBps=1e3*I.profile.bitrate}}else n&&n.outMediaTrack&&(this._mediaSettings.audioChannel=n.profile.channelCount,this._mediaSettings.audioBps=1e3*n.profile.bitrate,this._mediaSettings.audioFs=n.profile.sampleRate),a&&a.outMediaTrack&&(this._mediaSettings.videoWidth=a.profile.width,this._mediaSettings.videoHeight=a.profile.height,this._mediaSettings.videoFps=a.profile.frameRate,this._mediaSettings.videoBps=1e3*a.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:gK,data:this._mediaSettings,responseCommand:io.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{e.data.code!==0&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return DA(this,null,function*(){if(!this._peerConnection)return;let o=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is adding ".concat(e.kind," track to current published local ").concat(o?fA.AUXILIARY:fA.MAIN," stream")),sl()?yield this.addTrackByTransceiver(e,o):yield this.addTrackBySender(e)})}addTrackByTransceiver(e,o){return DA(this,null,function*(){var n;if(!e.mediaTrack)return;let a=this._peerConnection.getTransceivers();if(e.kind===fA.AUDIO)yield a[0].sender.replaceTrack(e.outMediaTrack);else{let I=o?3:1;yield a[I].sender.replaceTrack(e.outMediaTrack),I===1&&(n=this.localMainVideoTrack)!=null&&n.small&&(yield a[2].sender.replaceTrack(this._room.videoManager.smallTrack)),a[I].direction===_r.INACTIVE&&(yield this.setTransceiverDirection(_r.SENDONLY,[I]))}this.updateMediaSettings(),yield this.doPublishChange()})}addTrackBySender(e){return DA(this,null,function*(){if(!e.outMediaTrack)return;let o=e.outMediaTrack;mu()&&this._peerConnection.getTransceivers().findIndex(a=>a.direction==="stopped")>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",o));let n=this._peerConnection.getSenders().find(a=>a.track&&a.track.kind===o.kind);if(n&&n.track){this._log.warn("sender already exists, remove sender first");let a=n.track;this.removeSender(n),yield this.updateOffer("remove",a)}if(o&&this._peerConnection.addTrack(o,new MediaStream([o])),o.kind===fA.VIDEO&&e instanceof Ru&&e.small){let a=new MediaStream,{smallTrack:I}=this._room.videoManager;a.addTrack(I),this._peerConnection.addTrack(I,a)}yield this.updateOffer("add",o)})}isNeedToResetOfferOrder(){if(this._sdpSemantics===LR||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,o=rs(e);for(let n=0;n<o.media.length;n++)if(Number(o.media[n].mid)===0&&o.media[n].type===fA.VIDEO)return!0;return!1}removeSender(e){let o=null;mu()&&(o=this._peerConnection.getTransceivers().find(n=>n.sender&&n.sender.track===e.track)),this._peerConnection.removeTrack(e),o&&$n(o.stop)&&(this._log.info("stop transceiver"),o.stop())}removeTrack(e){return DA(this,null,function*(){if(!this._peerConnection)return;let o=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;this._log.info("is removing ".concat(e.kind," track from current published local ").concat(o?fA.AUXILIARY:fA.MAIN," stream")),sl()?yield this.removeTrackByTransceiver(e,o):yield this.removeTrackBySender(e)})}removeTrackByTransceiver(e,o){return DA(this,null,function*(){if(!e.outMediaTrack)return;let n=this._peerConnection.getTransceivers();if(e.kind===fA.AUDIO)yield n[0].sender.replaceTrack(null);else{let a=o?3:1;yield n[a].sender.replaceTrack(null),a===1&&e.small&&(yield n[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(_r.INACTIVE,[a])}this.updateMediaSettings(),yield this.doPublishChange()})}setTransceiverDirection(e,o){return DA(this,null,function*(){if(!Yr)return;let n=!1,a=!1;this._log.info("setting transceiver ".concat(o.join(",")," direction to ").concat(e));let I=this._peerConnection.getTransceivers();if(o.forEach(d=>{I[d].direction!==e&&(I[d].direction=e,n=!0)}),n){this._log.info("updating offer");let d=yield this._peerConnection.createOffer();yield this.setOffer(d)}let c=-1,u=this._peerConnection.remoteDescription.sdp.split(`\r
`).map(d=>{if(d.match(new RegExp("a=(".concat(_r.INACTIVE,"|").concat(_r.RECVONLY,"|").concat(_r.SENDONLY,")")))&&c++,o.includes(c)){if(e===_r.INACTIVE&&d.includes("a=".concat(_r.RECVONLY)))return a=!0,"a=".concat(e);if(e===_r.SENDONLY&&d.includes("a=".concat(_r.INACTIVE)))return a=!0,"a=".concat(_r.RECVONLY)}return d}).join(`\r
`);a&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:u}))})}removeTrackBySender(e){return DA(this,null,function*(){if(!e.outMediaTrack)return;if(e.kind===fA.VIDEO&&this.isNeedToResetOfferOrder()&&this.localMainAudioTrack)return this.reset(),this.initialize(),void(yield this.publish({localAudioTrack:this.localMainAudioTrack,isAuxiliary:!1}));let o=this._peerConnection.getSenders().find(n=>n.track===e.outMediaTrack);o&&(this.removeSender(o),e.kind===fA.VIDEO&&e.small&&this._peerConnection.getSenders().forEach(n=>{n.track&&n.track.kind===fA.VIDEO&&this.removeSender(n)})),yield this.updateOffer("remove",e.outMediaTrack)})}replaceTrack(e){return DA(this,null,function*(){var o;let n,a=(o=this._peerConnection)==null?void 0:o.getSenders();if(!a||a.length===0||!e.mediaTrack||(n=sl()?e.kind===fA.AUDIO?a[0]:a[1]:a.find(c=>c.track&&c.track.kind===e.kind),!n))return!1;let I=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(e.kind," track on ").concat(I?fA.AUXILIARY:fA.MAIN," stream")),e.kind===fA.AUDIO?yield n.replaceTrack(e.outMediaTrack):e.kind===fA.VIDEO&&(I?a[3]&&(yield a[3].replaceTrack(e.outMediaTrack)):yield n.replaceTrack(e.outMediaTrack)),!0})}updateOffer(e,o){return DA(this,null,function*(){try{let n=yield this._peerConnection.createOffer(tz);Yr&&n.sdp&&(n.sdp=this.setSDPDirection(n.sdp,"sendrecv")),yield this.setOffer(n);let a=this.updateMediaSettings(),I={action:e,trackId:o.id,kind:o.kind===fA.VIDEO?"bigVideo":o.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:a,state:this._room.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug("updatedOffer: ".concat(I.sdp));let c=yield this._signalChannel.sendWaitForResponse({command:q4,data:I,responseCommand:io.UPDATE_OFFER_RESULT,timeout:nO,commandDesc:"update offer"}),{code:u,message:d}=c.data;u!==0&&this.checkPublishResultCode(u,d),yield this.acceptAnswer(c.data.data),n.sdp&&this.updateSSRC(n.sdp)}catch(n){throw this._log.error(n),n}})}setBandwidth(e){return DA(this,arguments,function(o){var n=this;let{bandwidth:a,type:I,videoType:c,sdp:u}=o;return function*(){if(!TT())return u?I===fA.VIDEO?n.updateVideoBandwidthRestriction(u,a,c):n.updateAudioBandwidthRestriction(u,a):void 0;let d,R=n._peerConnection.getSenders();if(sl()){let k=0;I===fA.VIDEO&&(k=c===fA.SMALL?2:c===fA.AUXILIARY?3:1),d=R[k]}else d=R.find(k=>k.track&&k.track.kind===I);if(d){let k=d.getParameters();(!k.encodings||k.encodings.length===0)&&(k.encodings=[{}]),k.encodings[0].maxBitrate=1e3*a;try{return yield d.setParameters(k),n._log.info("".concat(c||"").concat(I," bandwidth ").concat(a," kbps")),u}catch(_){if(n._log.info("failed to set bandwidth by setting maxBitrate: ".concat(_)),u)return I===fA.VIDEO?n.updateVideoBandwidthRestriction(u,a,c):n.updateAudioBandwidthRestriction(u,a)}}return u}()})}updateVideoBandwidthRestriction(e,o,n){let a="AS";Yr&&(a="TIAS",o*=1e3);let I=0,c=-1;return n===fA.SMALL?I=1:n===fA.AUXILIARY&&(I=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,u=>(c+=1,c===I?"".concat(u,"b=").concat(a,":").concat(o,`\r
`):u)),e}updateAudioBandwidthRestriction(e,o){let n="AS";return Yr&&(n="TIAS",o*=1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,`m=audio $1\r
c=IN $2\r
b=`.concat(n,":").concat(o,`\r
`))}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 DA(this,null,function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(e){throw this.closePeerConnection(!0),this.uninstallEvents(),e}})}exchangeSDP(){return DA(this,null,function*(){try{yield this.createOffer(),this._log.info("createOffer success, sending offer to remote server"),yield this.doExchangeSDP()}catch(e){throw e}})}createOffer(){return DA(this,null,function*(){try{let e=yield this._peerConnection.createOffer(tz);yield this.setOffer(e),e.sdp&&this.updateSSRC(e.sdp)}catch(e){throw e}})}doExchangeSDP(){let e={command:j4,responseCommand:io.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof Nm||this.localAuxVideoTrack instanceof Nm,state:this._room.publishState,constraintConfig:this._mediaSettings},enableLog:!1};return this._log.debug("sending sdp offer: ".concat(e.data.sdp)),this._signalChannel.sendWaitForResponse(e).then(o=>{let{code:n,message:a,data:I}=o.data;return n===0?this.acceptAnswer(I):this.checkPublishResultCode(n,a)})}setSDPDirection(e,o){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"all",a=rs(e);return a.media.forEach(I=>{(n==="all"||I.type===n)&&(I.direction=o)}),$h(a)}acceptAnswer(e){return DA(this,null,function*(){var o,n,a,I,c;try{let u;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let R=((o=this._publishingLocalVideoTrack)==null?void 0:o.profile.bitrate)||((n=this.localMainVideoTrack)==null?void 0:n.profile.bitrate),k=((a=this._publishingLocalAudioTrack)==null?void 0:a.profile.bitrate)||((I=this.localMainAudioTrack)==null?void 0:I.profile.bitrate);if(R){let _=this._isPublishingAux?fA.AUXILIARY:fA.BIG;u=yield this.setBandwidth({bandwidth:R,type:fA.VIDEO,sdp:u,videoType:_})}k&&(u=yield this.setBandwidth({bandwidth:k,type:fA.AUDIO,sdp:u}))}if(u=this.removeVideoOrientation(e.sdp),(c=this._publishingLocalVideoTrack)!=null&&c.small){let{smallStreamConfig:R}=this._room;u=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||R.bitrate,type:fA.VIDEO,videoType:fA.SMALL,sdp:u})}let d={type:e.type,sdp:u};yield this.setAnswer(d),this._log.debug("accepted answer: ".concat(u))}catch(u){throw this._log.error("failed to accept remote answer ".concat(u)),u}})}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this._room.muteState))),this._signalChannel.send(K4,this._room.muteState))}getIsReconnecting(){return this._isReconnecting}reconnect(){return DA(this,null,function*(){if(!(zg(e6.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:Yx,responseCommand:io.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{let o=fQ(this._reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(o/1e3,"s")),this._reconnectionTimer=setTimeout(()=>{this.clearReconnectionTimer(),this.reconnect()},o)}})}handleConnectionStateChange(e){e.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&S.emit(K.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{rs(e).media.forEach((o,n)=>{if(o.type===fA.AUDIO){let a=o.ssrcs&&o.ssrcs[0];a&&(this.ssrc.audio=Number(a.id))}else{if(this._sdpSemantics===LR&&o.ssrcGroups)return void o.ssrcGroups.forEach((I,c)=>{let u=Number(I.ssrcs.split(" ")[0]);c===0?this.ssrc.video=u:c===1&&(this.ssrc.small=u)});let a=o.ssrcs&&o.ssrcs[0];if(!a)return;switch(n){case 1:this.ssrc.video=Number(a.id);break;case 2:this.ssrc.small=Number(a.id);break;case 3:this.ssrc.auxiliary=Number(a.id)}}})}catch{}}getVideoTrackId(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:fA.VIDEO;if(this._peerConnection){let o=this._peerConnection.getSenders();if(e===fA.AUXILIARY&&o[3]&&o[3].track)return o[3].track.id;if(e===fA.VIDEO&&o[1]&&o[1].track)return o[1].track.id}if(this.localMainVideoTrack&&e===fA.VIDEO){let o=this.localMainVideoTrack.mediaTrack;if(o)return o.id}if(this.localAuxVideoTrack&&e===fA.AUXILIARY){let o=this.localAuxVideoTrack.mediaTrack;if(o)return o.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,o){if(e!==0)throw e===FR?(this._log.error(ts.NOT_SUPPORTED_H264ENCODE),new Ct({code:Ge.NOT_SUPPORTED_H264,message:Wi({key:Mi.NOT_SUPPORTED_H264ENCODE})})):new Ct({code:Ge.UNKNOWN,message:Wi({key:Mi.SIGNAL_RESPONSE_FAILED,data:{signalResponse:io.PUBLISH_RESULT,code:e,message:o}})})}};vt([Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return new Promise((a,I)=>{let c=u=>{this._emitter.off("closed",c),I(new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.CONNECTION_ABORTED,data:u})}))};this._emitter.on("closed",c),A.apply(this,o).then(a,I).finally(()=>{this._emitter.off("closed",c)})})})],Hx.prototype,"publish"),vt([jh(521715,!1)],Hx.prototype,"unpublish"),vt([wm(WQ.prototype.afterConnect),MW(WQ.prototype.beforeConnect)],Hx.prototype,"connect");var Vx=Hx,EtA=class{constructor(A,e){this.room=A,G(this,"_log"),G(this,"_prevReportTime",0),G(this,"_prevReport",{}),G(this,"_prevStats",null),G(this,"_prevEncoderImplementation",""),G(this,"_prevAuxEncoderImpl",""),G(this,"_prevQualityLimitationReason",""),G(this,"_prevAuxQualityLimitationReason",""),G(this,"_prevDecoderImplementationMap",new Map),G(this,"_decodeMap",new Map),G(this,"_prevQpSum",0),G(this,"_prevAuxQpSum",0),G(this,"totalBytesSent",0),G(this,"totalBytesReceived",0),G(this,"_spcStats",null),this._log=e}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(A){return DA(this,null,function*(){var e,o,n,a,I,c,u;let d={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=A.getPeerConnection(),k=A.getSSRC();if(R)try{if((this._spcStats||(yield R.getStats())).forEach(_=>{var Z,iA,cA,TA,JA,Ie,XA,Ft,ie,ke,Nt,Ut,Ui;let Oi,or;if(_.type==="outbound-rtp")if((_.mediaType||_.kind)===fA.VIDEO){if(_.ssrc===k.video?(Oi=fA.VIDEO,or=A.localMainVideoTrack):_.ssrc===k.small?Oi=fA.SMALL:_.ssrc===k.auxiliary&&(or=A.localAuxVideoTrack,Oi=fA.AUXILIARY),!Oi)return;d[Oi].bytesSent=_.bytesSent,d[Oi].packetsSent=_.packetsSent,d[Oi].framesEncoded=_.framesEncoded,Ee(_.keyFramesEncoded)||(d[Oi].keyFramesEncoded=_.keyFramesEncoded),Ee(_.nackCount)||(d[Oi].nackCount=_.nackCount),Ee(_.pliCount)||(d[Oi].pliCount=_.pliCount),Ee(_.retransmittedPacketsSent)||(d[Oi].retransmittedPacketsSent=_.retransmittedPacketsSent),Ee(_.totalEncodeTime)||(d[Oi].totalEncodeTime=_.totalEncodeTime),Ee(_.totalPacketSendDelay)||(d[Oi].totalPacketSendDelay=_.totalPacketSendDelay);let xi=0;if(!Ee(_.qpSum)&&!Ee(_.framesEncoded)&&_.framesEncoded>0){let yo=_.qpSum,Sa=_.framesEncoded,Vn=Oi===fA.VIDEO?this._prevQpSum:this._prevAuxQpSum,NI=Oi===fA.VIDEO?((iA=(Z=A.localMainVideoTrack)==null?void 0:Z.stat)==null?void 0:iA.framesEncoded)||0:((TA=(cA=A.localAuxVideoTrack)==null?void 0:cA.stat)==null?void 0:TA.framesEncoded)||0;if(Sa>NI&&yo>Vn){let IG=yo-Vn,qM=Sa-NI;xi=Math.round(IG/qM),xi>35&&A.videoCodec==="h264"&&this._log.warn("".concat(Oi===fA.AUXILIARY?"aux ":"","video encoder QP is high: ").concat(xi,", resolution: ").concat(_.frameWidth,"x").concat(_.frameHeight,", codec: ").concat(A.videoCodec,", "))}Oi===fA.VIDEO?this._prevQpSum=yo:Oi===fA.AUXILIARY&&(this._prevAuxQpSum=yo)}if(!Ee(_.encoderImplementation)&&(Oi===fA.VIDEO&&this._prevEncoderImplementation!==_.encoderImplementation||Oi===fA.AUXILIARY&&this._prevAuxEncoderImpl!==_.encoderImplementation)){let yo=2,Sa=this._prevEncoderImplementation;Oi===fA.AUXILIARY&&(yo=7,Sa=this._prevAuxEncoderImpl),S.emit("262",{userId:A.userId,streamType:yo,prevImplementation:Sa,implementation:_.encoderImplementation,codec:A.videoCodec,isHWCodec:_.powerEfficientEncoder}),this[Oi===fA.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=_.encoderImplementation,or?.log.info("encoderImplementation change to ".concat(_.encoderImplementation,"(").concat(A.videoCodec,") HWEncoder: ").concat(_.powerEfficientEncoder))}_.ssrc===k.video?!Ee(_.qualityLimitationReason)&&_.bytesSent!==0&&this._prevQualityLimitationReason!==_.qualityLimitationReason&&(or?.log.info("qualityLimitationReason change to ".concat(_.qualityLimitationReason)),S.emit("263",{userId:A.userId,reason:_.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:(JA=A.localMainVideoTrack)==null?void 0:JA.isQosClearFirst}),this._prevQualityLimitationReason=_.qualityLimitationReason):_.ssrc===k.auxiliary&&!Ee(_.qualityLimitationReason)&&_.bytesSent!==0&&this._prevAuxQualityLimitationReason!==_.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(_.qualityLimitationReason)),S.emit("263",{userId:A.userId,reason:_.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:(Ie=A.localAuxVideoTrack)==null?void 0:Ie.isQosClearFirst}),this._prevAuxQualityLimitationReason=_.qualityLimitationReason)}else d.audio.bytesSent=_.bytesSent,d.audio.packetsSent=_.packetsSent;else if(_.type==="candidate-pair")Cm(_)&&(this.totalBytesSent=_.bytesSent,hr(_.currentRoundTripTime)&&(d.rtt=Math.floor(1e3*_.currentRoundTripTime)));else if(_.type==="media-source"){if(_.kind===fA.AUDIO)d.audio.audioLevel=_.audioLevel||0,d.audio.totalAudioEnergy=_.totalAudioEnergy||0,_.echoReturnLoss,Ee((ie=(Ft=(XA=A.localMainAudioTrack)==null?void 0:XA.sourceTrack)==null?void 0:Ft.stats)==null?void 0:ie.deliveredFramesDuration)?_.totalSamplesDuration&&(d.audio.totalSamplesDuration=_.totalSamplesDuration):d.audio.totalSamplesDuration=A.localMainAudioTrack.sourceTrack.stats.deliveredFramesDuration/1e3;else if(_.kind===fA.VIDEO)if(_.trackIdentifier===A.getVideoTrackId(fA.VIDEO))if((Ut=(Nt=(ke=A.localMainVideoTrack)==null?void 0:ke.sourceTrack)==null?void 0:Nt.stats)!=null&&Ut.deliveredFrames){let{deliveredFrames:xi}=A.localMainVideoTrack.sourceTrack.stats;d.video.framesCaptured=xi,A.localMainVideoTrack.stat.framesCaptured&&A.localMainVideoTrack.stat.framesCaptured>0&&xi>=A.localMainVideoTrack.stat.framesCaptured?d.video.fpsCapture=Math.floor((xi-A.localMainVideoTrack.stat.framesCaptured)/this.statInterval):d.video.fpsCapture=_.framesPerSecond}else d.video.fpsCapture=_.framesPerSecond;else _.trackIdentifier===A.getVideoTrackId(fA.AUXILIARY)?d.auxiliary.fpsCapture=_.framesPerSecond:d.small.fpsCapture=_.framesPerSecond}if(!Ee(_.audioLevel)&&(Ui=A.localMainAudioTrack)!=null&&Ui.mediaTrack&&_.trackIdentifier===A.localMainAudioTrack.mediaTrack.id&&(d.audio.audioLevel=_.audioLevel||0),!Ee(_.frameWidth)){let xi=fA.SMALL;_.trackIdentifier===A.getVideoTrackId(fA.VIDEO)||_.ssrc===k.video?xi=fA.VIDEO:(_.trackIdentifier===A.getVideoTrackId(fA.AUXILIARY)||_.ssrc===k.auxiliary)&&(xi=fA.AUXILIARY),d[xi].frameWidth=_.frameWidth,d[xi].frameHeight=_.frameHeight,d[xi].framesSent=_.framesSent}}),A.localMainAudioTrack||A.getRoom().capturedLocalMainAudioTrack){let _=A.localMainAudioTrack||A.getRoom().capturedLocalMainAudioTrack;if(_){let Z=_.getInternalAudioLevel(),iA=_.getInternalAudioLevelAfter3A();d.audio.audioCaptureEnergyAfter3a=iA,d.audio.micAudioLevel=Z,d.audio.audioLevel===0&&A.localMainAudioTrack&&(d.audio.audioLevel=iA??Z),!A.localMainAudioTrack&&!Ee((o=(e=_.sourceTrack)==null?void 0:e.stats)==null?void 0:o.deliveredFramesDuration)&&(d.audio.totalSamplesDuration=_.sourceTrack.stats.deliveredFramesDuration/1e3)}}if(!A.localMainVideoTrack&&A.getRoom().capturedLocalMainVideoTrack){let _=A.getRoom().capturedLocalMainVideoTrack;if((a=(n=_?.sourceTrack)==null?void 0:n.stats)!=null&&a.deliveredFrames){let{deliveredFrames:Z}=_.sourceTrack.stats;d.video.framesCaptured=Z,_.stat.framesCaptured&&_.stat.framesCaptured>0&&Z>=_.stat.framesCaptured&&(d.video.fpsCapture=Math.floor((Z-_.stat.framesCaptured)/this.statInterval)),_.stat.framesCaptured=Z}}if(!A.localAuxVideoTrack&&A.getRoom().capturedLocalAuxVideoTrack){let _=A.getRoom().capturedLocalAuxVideoTrack;if((c=(I=_?.sourceTrack)==null?void 0:I.stats)!=null&&c.deliveredFrames){let{deliveredFrames:Z}=_.sourceTrack.stats;d.auxiliary.framesCaptured=Z,_.stat.framesCaptured&&_.stat.framesCaptured>0&&Z>=_.stat.framesCaptured&&(d.auxiliary.fpsCapture=Math.floor((Z-_.stat.framesCaptured)/this.statInterval)),_.stat.framesCaptured=Z}}this.totalBytesSent||(this.totalBytesSent+=d.audio.bytesSent+d.video.bytesSent+d.auxiliary.bytesSent),Object.keys(d).forEach(_=>{_===fA.AUDIO?(A.localMainAudioTrack&&(A.localMainAudioTrack.stat=d[_]),A.localAuxAudioTrack&&(A.localAuxAudioTrack.stat=d[_])):_===fA.VIDEO?A.localMainVideoTrack&&(A.localMainVideoTrack.stat=d[_]):_===fA.AUXILIARY&&A.localAuxVideoTrack&&(A.localAuxVideoTrack.stat=d[_])})}catch(_){this._log.warn("failed to getStats on sender connection ".concat(_))}return d.rtt===0&&(d.rtt=((u=this.room.networkQuality)==null?void 0:u.uplinkRTT)||0),d})}getReceiverStats(A){return DA(this,null,function*(){var e,o,n;let a={tinyId:A.tinyId,userId:A.userId,rtt:0,hasAudio:!1,hasVideo:!1,hasAuxiliary:!1,isSmallSubscribed:!1,avSyncDelay:0,audio:{bytesReceived:0,packetsReceived:0,packetsLost:0,p2pDelay:0,totalJitter:0,totalJitterCount:0,audioLevel:0,totalAudioEnergy:0,insertedSamplesForDeceleration:0,removedSamplesForAcceleration:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,freezeCount:0,totalFreezesDuration:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""},auxiliary:{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,fpsDecoded:0,totalJitter:0,totalJitterCount:0,p2pDelay:0,codec:""}},I=A.getPeerConnection();if(I)try{let{ssrc:c}=A,{muteState:u,subscribeState:d}=A;(this._spcStats||(yield I.getStats())).forEach(_=>{var Z,iA;if(_.type==="codec"&&this._decodeMap.set(_.id,_),_.type==="inbound-rtp"){let cA=(_.mediaType||_.kind)===fA.AUDIO;if(cA){if(_.ssrc!==c.audio||!u.hasAudio)return;a.audio.packetsReceived=_.packetsReceived,a.audio.bytesReceived=_.bytesReceived,a.audio.packetsLost=_.packetsLost,_.insertedSamplesForDeceleration&&(a.audio.insertedSamplesForDeceleration=_.insertedSamplesForDeceleration),_.removedSamplesForAcceleration&&(a.audio.removedSamplesForAcceleration=_.removedSamplesForAcceleration),_.totalSamplesDuration&&(a.audio.totalSamplesDuration=_.totalSamplesDuration),_.totalSamplesReceived&&(a.audio.totalSamplesReceived=_.totalSamplesReceived),_.concealedSamples&&(a.audio.concealedSamples=_.concealedSamples),_.silentConcealedSamples&&(a.audio.silentConcealedSamples=_.silentConcealedSamples);let{remoteAudioTrack:TA}=A;TA.stat.packetsReceived=_.packetsReceived,TA.stat.bytesReceived=_.bytesReceived,TA.stat.packetsLost=_.packetsLost,a.audio.p2pDelay=TA.stat.end2EndDelay,a.hasAudio=!0}else{if(Yr&&_.bytesReceived===0)return;let TA;_.ssrc===c.video&&u.hasVideo&&(a.video.packetsReceived=_.packetsReceived,a.video.bytesReceived=_.bytesReceived,a.video.packetsLost=_.packetsLost,a.video.framesReceived=_.framesReceived,a.video.framesDecoded=_.framesDecoded,a.video.fpsDecoded=_.framesPerSecond,a.hasVideo=!0,A.videoCodec=Vs[(Z=this._decodeMap.get(_.codecId))==null?void 0:Z.mimeType.split("/")[1]]||"h264",a.video.codec=A.videoCodec,TA=A.remoteVideoTrack,u.hasSmall&&d.smallVideo&&(a.isSmallSubscribed=!0),_.decoderImplementation&&(!this._prevDecoderImplementationMap.has(a.userId)||this._prevDecoderImplementationMap.get(a.userId)!==_.decoderImplementation)&&(TA.log.info("decoderImplementation change to ".concat(_.decoderImplementation,"(").concat(A.videoCodec,") HWDecoder: ").concat(_.powerEfficientDecoder)),S.emit("262",{userId:this.room.userId,remoteUserId:a.userId,prevImplementation:this._prevDecoderImplementationMap.get(a.userId),implementation:_.decoderImplementation,codec:A.videoCodec,isHWCodec:_.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(a.userId,_.decoderImplementation)),Ee(_.keyFramesDecoded)||TA.updateKeyFramesDecoded(_.keyFramesDecoded)),_.ssrc===c.auxiliary&&u.hasAuxiliary&&(a.auxiliary.packetsReceived=_.packetsReceived,a.auxiliary.bytesReceived=_.bytesReceived,a.auxiliary.packetsLost=_.packetsLost,a.auxiliary.framesReceived=_.framesReceived,a.auxiliary.framesDecoded=_.framesDecoded,a.auxiliary.fpsDecoded=_.framesPerSecond,TA=A.remoteAuxiliaryTrack,a.auxiliary.p2pDelay=TA.stat.end2EndDelay,a.hasAuxiliary=!0,a.video.codec=((iA=this._decodeMap.get(_.codecId))==null?void 0:iA.mimeType.split("/")[1].toLowerCase())||"h264",Ee(_.keyFramesDecoded)||TA.updateKeyFramesDecoded(_.keyFramesDecoded)),TA&&(TA.stat.packetsReceived=_.packetsReceived,TA.stat.bytesReceived=_.bytesReceived,TA.stat.packetsLost=_.packetsLost,TA.stat.framesReceived=_.framesReceived,TA.stat.framesDecoded=_.framesDecoded,_.jitterBufferDelay&&(TA.stat.jitterBufferDelay=Math.floor(_.jitterBufferDelay/_.jitterBufferEmittedCount*1e3)),a.video.p2pDelay=TA.stat.end2EndDelay)}_.jitterBufferDelay&&(cA?(a.audio.totalJitter=_.jitterBufferDelay,a.audio.totalJitterCount=_.jitterBufferEmittedCount,a.audio.estimatedPlayoutTimestamp=_.estimatedPlayoutTimestamp):_.ssrc===c.video&&u.hasVideo?(a.video.totalJitter=_.jitterBufferDelay,a.video.totalJitterCount=_.jitterBufferEmittedCount,a.video.estimatedPlayoutTimestamp=_.estimatedPlayoutTimestamp):_.ssrc===c.auxiliary&&u.hasAuxiliary&&(a.auxiliary.totalJitter=_.jitterBufferDelay,a.auxiliary.totalJitterCount=_.jitterBufferEmittedCount))}else _.type==="candidate-pair"&&Cm(_)&&(this.totalBytesReceived=_.bytesReceived,hr(_.currentRoundTripTime)&&(a.rtt=Math.floor(1e3*_.currentRoundTripTime)));Ee(_.frameWidth)||((_.trackIdentifier===A.getMainStreamVideoTrackId()||_.ssrc===c.video)&&(a.video.frameWidth=_.frameWidth,a.video.frameHeight=_.frameHeight,A.remoteVideoTrack.stat.frameWidth=_.frameWidth,A.remoteVideoTrack.stat.frameHeight=_.frameHeight),(_.trackIdentifier===A.getAuxStreamVideoTrackId()||_.ssrc===c.auxiliary)&&(a.auxiliary.frameWidth=_.frameWidth,a.auxiliary.frameHeight=_.frameHeight,A.remoteAuxiliaryTrack.stat.frameWidth=_.frameWidth,A.remoteAuxiliaryTrack.stat.frameHeight=_.frameHeight)),!Ee(_.audioLevel)&&A.muteState.audioAvailable&&A.remoteAudioTrack.mediaTrack&&_.trackIdentifier===A.remoteAudioTrack.mediaTrack.id&&(a.audio.audioLevel=_.audioLevel||0,a.audio.totalAudioEnergy=_.totalAudioEnergy||0)}),a.audio.audioLevel===0&&A.muteState.audioAvailable&&(a.audio.audioLevel=A.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=a.audio.bytesReceived+a.video.bytesReceived+a.auxiliary.bytesReceived),Ee((e=A.remoteVideoTrack.player.stat)==null?void 0:e.fps)||(a.video.fpsRender=A.remoteVideoTrack.player.stat.fps),Ee((o=A.remoteAuxiliaryTrack.player.stat)==null?void 0:o.fps)||(a.auxiliary.fpsRender=A.remoteAuxiliaryTrack.player.stat.fps);let R=a.audio.estimatedPlayoutTimestamp,k=a.video.estimatedPlayoutTimestamp;if(R&&k&&A.remoteAudioTrack.isAvailable&&A.remoteVideoTrack.isAvailable){let _=k-R;Math.abs(_)<=1e4&&(a.avSyncDelay=_,Math.abs(_)>150&&this._log.warn("av sync delay",_))}}catch(c){this._log.warn("failed to getStats on receiver connection ".concat(c))}return a.rtt===0&&(a.rtt=((n=this.room.networkQuality)==null?void 0:n.uplinkRTT)||0),a})}getStats(A,e){return DA(this,null,function*(){let o,n={},a=[];if(this.room.singlePC){let I=this.room.singlePC.getPeerConnection();if(!I)return{senderStats:n,receiverStats:a};let c=ki(),u=yield I.getStats(),d=ki();d-c>2e3&&this._log.warn("getStats cost ".concat(d-c,"ms"));let R=[],k=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source","codec","media-playout"]);u.forEach(_=>k.has(_.type)&&R.push(_)),this._spcStats=R}A&&(n=yield this.getSenderStats(A));for(let[I,c]of e){let u=yield this.getReceiverStats(c);u&&a.push(u)}return e.size&&(o=this.getMediaPlayoutStats(this._spcStats)),{senderStats:n,receiverStats:a,mediaPlayoutStats:o}})}getDifferenceValue(A,e){if(KQ(A))return e;let o=e-A;return o<0?0:o}prepareReport(A){let{stats:e,report:o,freezeMap:n,uplinkConnection:a}=A;var I,c,u,d,R,k,_,Z,iA;if(!KQ(e.senderStats)){let ie={uint32_audio_level:e.senderStats.audio.audioLevel*iE,uint32_audio_energy:1e6*(e.senderStats.audio.totalAudioEnergy||0),uint32_audio_codec_bitrate:e.senderStats.audio.bytesSent};e.senderStats.audio.micAudioLevel&&(ie.uint32_mic_audio_level=e.senderStats.audio.micAudioLevel*iE),Ee(e.senderStats.audio.audioCaptureEnergyAfter3a)||(ie.uint32_audio_capture_energy_after3a=e.senderStats.audio.audioCaptureEnergyAfter3a*iE),e.senderStats.audio.totalSamplesDuration&&(o.msg_device_info.uint32_audio_capture_cost=e.senderStats.audio.totalSamplesDuration);let ke=[];if(e.senderStats.video.bytesSent){let Ut={uint32_video_stream_type:2,uint32_video_codec_fps:e.senderStats.video.framesSent,uint32_video_capture_fps:e.senderStats.video.fpsCapture,uint32_video_width:e.senderStats.video.frameWidth,uint32_video_height:e.senderStats.video.frameHeight,uint32_video_codec_bitrate:e.senderStats.video.bytesSent,uint32_video_enc_fps:e.senderStats.video.framesEncoded,uint32_key_frame_count:e.senderStats.video.keyFramesEncoded,uint32_nack_count:e.senderStats.video.nackCount,uint32_pli_count:e.senderStats.video.pliCount,uint32_encode_cost:1e3*(e.senderStats.video.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.video.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.video.retransmittedPacketsSent};ke.push(Ut)}if(e.senderStats.small.bytesSent){let Ut={uint32_video_stream_type:3,uint32_video_codec_fps:e.senderStats.small.framesSent||0,uint32_video_capture_fps:e.senderStats.small.fpsCapture||0,uint32_video_width:e.senderStats.small.frameWidth||0,uint32_video_height:e.senderStats.small.frameHeight||0,uint32_video_codec_bitrate:e.senderStats.small.bytesSent,uint32_video_enc_fps:e.senderStats.small.framesEncoded||0,uint32_key_frame_count:e.senderStats.small.keyFramesEncoded,uint32_nack_count:e.senderStats.small.nackCount,uint32_pli_count:e.senderStats.small.pliCount,uint32_encode_cost:1e3*(e.senderStats.small.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.small.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.small.retransmittedPacketsSent};ke.push(Ut)}if(e.senderStats.auxiliary.bytesSent){let Ut={uint32_video_stream_type:7,uint32_video_codec_fps:e.senderStats.auxiliary.framesSent||0,uint32_video_capture_fps:e.senderStats.auxiliary.fpsCapture||0,uint32_video_width:e.senderStats.auxiliary.frameWidth||0,uint32_video_height:e.senderStats.auxiliary.frameHeight||0,uint32_video_codec_bitrate:e.senderStats.auxiliary.bytesSent,uint32_video_enc_fps:e.senderStats.auxiliary.framesEncoded||0,uint32_key_frame_count:e.senderStats.auxiliary.keyFramesEncoded,uint32_nack_count:e.senderStats.auxiliary.nackCount,uint32_pli_count:e.senderStats.auxiliary.pliCount,uint32_encode_cost:1e3*(e.senderStats.auxiliary.totalEncodeTime||0),uint32_send_packet_cost:1e3*(e.senderStats.auxiliary.totalPacketSendDelay||0),uint32_video_arq_packets:e.senderStats.auxiliary.retransmittedPacketsSent};ke.push(Ut)}let Nt={uint32_bitrate:0,uint32_lost:0,uint32_rtt:e.senderStats.rtt};o.msg_up_stream_info={msg_audio_status:ie,msg_video_status:ke,msg_network_status:Nt}}let{statInterval:cA}=this;o.msg_down_stream_info=[],e.receiverStats.forEach(ie=>{let ke={msg_user_info:{str_identifier:ie.userId,uint64_tinyid:ie.tinyId},msg_network_status:{uint32_rtt:ie.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(ie.hasAudio){let Nt={uint32_audio_p2p_delay:ie.audio.p2pDelay,uint32_audio_cache_ms:ie.audio.totalJitter,uint32_audio_cache_ms_count:ie.audio.totalJitterCount,uint32_audio_codec_bitrate:ie.audio.bytesReceived,uint32_audio_total_bitrate:ie.audio.bytesReceived,uint32_audio_level:1e8*ie.audio.audioLevel,uint32_audio_energy:1e6*ie.audio.totalAudioEnergy,uint32_audio_receive:ie.audio.packetsReceived,uint32_audio_origin_lost:ie.audio.packetsLost};ke.msg_audio_status=Nt}if(ie.hasVideo){let Nt=n.get("".concat(ie.userId,"_").concat(kR)),Ut=Nt?Nt.duration:0,Ui={uint32_video_stream_type:ie.isSmallSubscribed?3:2,uint32_video_receive_fps:ie.video.framesReceived,uint32_video_width:ie.video.frameWidth,uint32_video_height:ie.video.frameHeight,uint32_video_codec_bitrate:ie.video.bytesReceived,uint32_video_receive:ie.video.packetsReceived,uint32_video_origin_lost:ie.video.packetsLost,uint32_video_block_time:Ut,uint32_video_dec_fps:ie.video.framesDecoded,uint32_video_codec_fps:ie.video.fpsRender,uint32_video_cache_ms:ie.video.totalJitter,uint32_video_cache_ms_count:ie.video.totalJitterCount,uint32_video_p2p_delay:ie.video.p2pDelay,uint32_video_codec:ie.video.codec,int32_video_audio_relative_delay:ie.avSyncDelay+5e3};ke.msg_video_status.push(Ui)}if(ie.hasAuxiliary){let Nt=n.get("".concat(ie.userId,"_").concat(pN)),Ut=Nt?Nt.duration:0,Ui={uint32_video_stream_type:7,uint32_video_receive_fps:ie.auxiliary.framesReceived,uint32_video_width:ie.auxiliary.frameWidth,uint32_video_height:ie.auxiliary.frameHeight,uint32_video_codec_bitrate:ie.auxiliary.bytesReceived,uint32_video_receive:ie.auxiliary.packetsReceived+ie.auxiliary.packetsLost,uint32_video_origin_lost:ie.auxiliary.packetsLost,uint32_video_block_time:Ut,uint32_video_dec_fps:ie.auxiliary.framesDecoded,uint32_video_codec_fps:ie.video.fpsRender,uint32_video_cache_ms:ie.auxiliary.totalJitter,uint32_video_cache_ms_count:ie.auxiliary.totalJitterCount,uint32_video_p2p_delay:ie.auxiliary.p2pDelay,uint32_video_codec:ie.video.codec};ke.msg_video_status.push(Ui)}o.msg_down_stream_info.push(ke)}),e.mediaPlayoutStats&&!KQ(e.mediaPlayoutStats)&&(e.mediaPlayoutStats.synthesizedSamplesDuration*=1e3,e.mediaPlayoutStats.totalSamplesDuration*=1e3);let TA=this._prevReport,JA=this._prevStats;if(this._prevReport=JSON.parse(JSON.stringify(o)),this._prevStats=JSON.parse(JSON.stringify(e)),o.msg_up_stream_info.msg_audio_status&&TA.msg_up_stream_info.msg_audio_status){let ie=TA.msg_up_stream_info.msg_audio_status,ke=o.msg_up_stream_info.msg_audio_status;if(ie.uint32_audio_codec_bitrate===0)ke.uint32_audio_codec_bitrate=0;else{let Nt=this.getDifferenceValue(ie.uint32_audio_codec_bitrate,ke.uint32_audio_codec_bitrate);ke.uint32_audio_codec_bitrate=Math.round(8*Nt/cA),o.msg_up_stream_info.msg_network_status.uint32_bitrate+=ke.uint32_audio_codec_bitrate}(I=TA.msg_device_info)!=null&&I.uint32_audio_capture_cost?(o.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(TA.msg_device_info.uint32_audio_capture_cost,o.msg_device_info.uint32_audio_capture_cost)/cA),o.msg_device_info.uint32_audio_capture_cost>0&&((u=a?.localMainAudioTrack)==null||u.updateAfter3aSilenceStartTime((c=e.senderStats.audio.audioCaptureEnergyAfter3a)!=null?c:e.senderStats.audio.micAudioLevel))):delete o.msg_device_info.uint32_audio_capture_cost}let Ie=TA.msg_up_stream_info.msg_video_status;o.msg_up_stream_info.msg_video_status.forEach(ie=>{let ke=Ie.find(or=>or.uint32_video_stream_type===ie.uint32_video_stream_type);if(!ke||ke.uint32_video_codec_bitrate===0)return ie.uint32_video_codec_bitrate=0,ie.uint32_video_enc_fps=0,void(ie.uint32_video_codec_fps=0);let Nt=0,Ut=0,Ui=0;ke&&ie.uint32_video_codec_bitrate>=ke.uint32_video_codec_bitrate&&(Nt=ke.uint32_video_codec_bitrate,Ut=ke.uint32_video_enc_fps,Ui=ke.uint32_video_codec_fps);let Oi=this.getDifferenceValue(Nt,ie.uint32_video_codec_bitrate);ie.uint32_video_codec_bitrate=Math.round(8*Oi/cA),o.msg_up_stream_info.msg_network_status.uint32_bitrate+=ie.uint32_video_codec_bitrate,ie.uint32_video_enc_fps=Math.round(this.getDifferenceValue(Ut,ie.uint32_video_enc_fps)/cA),ie.uint32_video_codec_fps=Math.round(this.getDifferenceValue(Ui,ie.uint32_video_codec_fps)/cA),ke.uint32_video_width===0&&ke.uint32_video_height===0&&ke.uint32_video_codec_fps===0&&(ie.uint32_video_codec_fps=ie.uint32_video_enc_fps),Ee(ke.uint32_key_frame_count)||(ie.uint32_key_frame_count=Math.round(this.getDifferenceValue(ke.uint32_key_frame_count,ie.uint32_key_frame_count))),Ee(ke.uint32_nack_count)||(ie.uint32_nack_count=Math.round(this.getDifferenceValue(ke.uint32_nack_count,ie.uint32_nack_count))),Ee(ke.uint32_pli_count)||(ie.uint32_pli_count=Math.round(this.getDifferenceValue(ke.uint32_pli_count,ie.uint32_pli_count))),Ee(ke.uint32_video_arq_packets)||(ie.uint32_video_arq_packets=Math.round(this.getDifferenceValue(ke.uint32_video_arq_packets,ie.uint32_video_arq_packets))),Ee(ke.uint32_encode_cost)||(ie.uint32_encode_cost=Math.round(this.getDifferenceValue(ke.uint32_encode_cost,ie.uint32_encode_cost)/cA)),Ee(ke.uint32_send_packet_cost)||(ie.uint32_send_packet_cost=Math.round(this.getDifferenceValue(ke.uint32_send_packet_cost,ie.uint32_send_packet_cost)/cA))});let XA=TA.msg_down_stream_info;o.msg_down_stream_info=o.msg_down_stream_info.filter(ie=>XA.find(ke=>ke.msg_user_info.uint64_tinyid===ie.msg_user_info.uint64_tinyid));let Ft=o.msg_down_stream_info;if(Ft.forEach(ie=>{let ke=XA.find(Nt=>Nt.msg_user_info.uint64_tinyid===ie.msg_user_info.uint64_tinyid);if(KQ(ie.msg_audio_status)||KQ(ke.msg_audio_status))ie.msg_audio_status={};else{let Nt=ie.msg_audio_status,Ut=ke.msg_audio_status,Ui=this.getDifferenceValue(Ut.uint32_audio_cache_ms_count,Nt.uint32_audio_cache_ms_count);delete Nt.uint32_audio_cache_ms_count,Nt.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(Ut.uint32_audio_cache_ms,Nt.uint32_audio_cache_ms)/Ui)||0;let Oi=this.room.remotePublishedUserMap.get(ie.msg_user_info.str_identifier);Oi&&(Oi.remoteAudioTrack.stat.jitterBufferDelay=Nt.uint32_audio_cache_ms),Nt.uint32_audio_origin_lost=this.getDifferenceValue(Ut.uint32_audio_origin_lost,Nt.uint32_audio_origin_lost),Nt.uint32_audio_receive=this.getDifferenceValue(Ut.uint32_audio_receive,Nt.uint32_audio_receive),Nt.uint32_audio_receive+=Nt.uint32_audio_origin_lost;let or=this.getDifferenceValue(Ut.uint32_audio_codec_bitrate,Nt.uint32_audio_codec_bitrate);Nt.uint32_audio_codec_bitrate=Math.round(8*or/cA),Nt.uint32_audio_total_bitrate=Math.round(8*or/cA)}if(ie.msg_video_status&&ke.msg_video_status){let Nt=ke.msg_video_status;ie.msg_video_status=ie.msg_video_status.filter(Ut=>Nt.find(Ui=>Ui.uint32_video_stream_type===Ut.uint32_video_stream_type)),ie.msg_video_status.forEach(Ut=>{let Ui=Nt.find(qM=>qM.uint32_video_stream_type===Ut.uint32_video_stream_type),Oi=Ui.uint32_video_receive,or=Ui.uint32_video_origin_lost,xi=Ui.uint32_video_codec_bitrate,yo=Ui.uint32_video_receive_fps,Sa=Ui.uint32_video_dec_fps;Ut.uint32_video_origin_lost=this.getDifferenceValue(or,Ut.uint32_video_origin_lost),Ut.uint32_video_receive=this.getDifferenceValue(Oi,Ut.uint32_video_receive)+Ut.uint32_video_origin_lost;let Vn=this.getDifferenceValue(xi,Ut.uint32_video_codec_bitrate);Ut.uint32_video_codec_bitrate=Math.round(8*Vn/cA);let NI=this.getDifferenceValue(yo,Ut.uint32_video_receive_fps);Ut.uint32_video_receive_fps=Math.round(NI/cA),Ut.uint32_video_dec_fps=Math.round(this.getDifferenceValue(Sa,Ut.uint32_video_dec_fps)/cA);let IG=this.getDifferenceValue(Ui.uint32_video_cache_ms_count,Ut.uint32_video_cache_ms_count);delete Ut.uint32_video_cache_ms_count,Ut.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(Ui.uint32_video_cache_ms,Ut.uint32_video_cache_ms)/IG)||0})}}),!Ee((d=JA?.mediaPlayoutStats)==null?void 0:d.totalSamplesDuration)&&!Ee((R=e.mediaPlayoutStats)==null?void 0:R.totalSamplesDuration)){let ie=2*Math.floor(this.getDifferenceValue((k=JA?.mediaPlayoutStats)==null?void 0:k.synthesizedSamplesDuration,(_=e.mediaPlayoutStats)==null?void 0:_.synthesizedSamplesDuration)/cA),ke=2*Math.floor(this.getDifferenceValue((Z=JA?.mediaPlayoutStats)==null?void 0:Z.totalSamplesDuration,(iA=e.mediaPlayoutStats)==null?void 0:iA.totalSamplesDuration)/cA);o.msg_device_info.uint32_audio_play_cost=ke-ie}return JA&&e.receiverStats.forEach(ie=>{if(ie.audio.concealedSamples&&ie.audio.totalSamplesReceived){let ke=JA.receiverStats.find(Nt=>Nt.userId===ie.userId);if(ke&&ke.audio.concealedSamples&&ke.audio.totalSamplesReceived){let Nt=(ie.audio.silentConcealedSamples||0)-(ke.audio.silentConcealedSamples||0),Ut=ie.audio.concealedSamples-ke.audio.concealedSamples,Ui=ie.audio.totalSamplesReceived-ke.audio.totalSamplesReceived,Oi=Math.floor((Ut-Nt)/Ui*1e3*cA);if(Oi>1e3*cA/5){let or=Ft.find(xi=>xi.msg_user_info.str_identifier===ie.userId);or&&(or.msg_audio_status.uint32_audio_block_time=Oi)}}}}),o.msg_down_stream_info.forEach(ie=>{ie.msg_video_status.forEach(ke=>{ke.uint32_video_codec_bitrate===0&&ke.uint32_video_receive_fps===0&&(ke.uint32_video_width=0,ke.uint32_video_height=0)})}),o}getStatsReport(A){return DA(this,arguments,function(e){var o=this;let{uplinkConnection:n,downlinkConnections:a,freezeMap:I}=e;return function*(){let c={msg_device_info:{},msg_up_stream_info:{msg_audio_status:{uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_capture_energy_after3a:0},msg_video_status:[],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}},msg_down_stream_info:[{msg_user_info:{str_identifier:"",uint64_tinyid:0},msg_audio_status:{uint32_audio_cache_ms:0,uint32_audio_format:11,uint32_audio_sample_rate:0,uint32_audio_codec_bitrate:0,uint32_audio_total_bitrate:0,uint32_audio_level:0,uint32_audio_energy:0,uint32_audio_receive:0,uint32_audio_origin_lost:0,uint32_audio_final_lost:0},msg_video_status:[{uint32_video_cache_ms:0,uint32_video_stream_type:0,uint32_video_receive_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_codec_bitrate:0,uint32_video_receive:0,uint32_video_origin_lost:0,uint32_video_block_time:0,uint32_video_dec_fps:0,uint32_video_codec_fps:0}],msg_network_status:{uint32_bitrate:0,uint32_rtt:0,uint32_lost:0}}]},u=yield o.getStats(n,a);return JSON.stringify(o._prevReport)==="{}"&&(o._prevReport=JSON.parse(JSON.stringify(c))),o.prepareReport({stats:u,report:c,freezeMap:I,uplinkConnection:n}),o._prevReportTime=Date.now(),c}()})}getMediaPlayoutStats(A){let e;if(Aa(A)){for(let o of A)if(o.type==="media-playout"){let{synthesizedSamplesDuration:n,totalSamplesDuration:a}=o;e={synthesizedSamplesDuration:n,totalSamplesDuration:a};break}return e}}reset(){this._prevReportTime=0,this._prevReport={},this._prevEncoderImplementation="",this._prevQualityLimitationReason="",this._prevDecoderImplementationMap=new Map,[this.room.localMainVideoTrack,this.room.capturedLocalMainVideoTrack,this.room.localAuxVideoTrack,this.room.capturedLocalAuxVideoTrack].forEach(A=>{A!=null&&A.stat&&(A.stat.framesCaptured=0)})}},ltA=es(hg());function CtA(A){return new Promise(e=>DA(null,null,function*(){let o=setTimeout(()=>{e({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})},1e4),n=Date.now(),a="https://".concat(A,"/?t=").concat(n);try{yield fetch(a)}catch{}clearTimeout(o);let I=function(c){let u={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let d=performance.getEntriesByType("resource").reverse();for(let R of d)if(R.name===c){let k=Math.round(R.duration),_=Math.max(Math.round(R.domainLookupStart-R.startTime),0),Z=R.redirectStart>0?Math.max(Math.round(R.redirectEnd-R.redirectStart),0):0,iA=R.fetchStart>0?Math.max(Math.round(R.domainLookupStart-R.fetchStart),0):0,cA=Math.round(R.domainLookupEnd-R.domainLookupStart),TA=Math.round(R.requestStart-R.secureConnectionStart),JA=Math.round(R.secureConnectionStart-R.connectStart),Ie=Math.round(R.responseStart-R.requestStart),XA=Math.round(R.responseEnd-(R.responseStart||R.startTime));u=fi(bt({},u),{totalCost:k,local:_,redirect:Z,httpCache:iA,dns:cA,tcp:JA,tls:TA,request:Ie,response:XA});break}}catch{}return u}(a);I.totalCost===0&&(I.totalCost=Date.now()-n),e(I)}))}var qx=class ew extends ltA.default{constructor(e){let{signalChannel:o,room:n}=e;super(),G(this,"_room"),G(this,"_signalChannel"),G(this,"_log"),G(this,"uplinkRTT",0),G(this,"uplinkLoss",0),G(this,"downlinkRTT",0),G(this,"downlinkLoss",0),G(this,"pingResults",{}),G(this,"_downlinkPrevStatMap",new Map),G(this,"_downlinkLossAndRTTMap",new Map),G(this,"_interval",-1),G(this,"_uplinkNetworkQuality",0),G(this,"_downlinkNetworkQuality",0),G(this,"_uplinkQualityHistory",[]),G(this,"_downlinkQualityHistory",[]),this._room=n,this._signalChannel=o,this._log=nA.createLogger({parent:n.getLogger(),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,this._uplinkQualityHistory.push(e),this._uplinkQualityHistory.length>ew.HISTORY_SIZE&&this._uplinkQualityHistory.shift()}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:o,loss:n}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info("downlink ".concat(this.downlinkNetworkQuality," -> ").concat(e,", rtt: ").concat(o,", loss: ").concat(n," ws-rtt: ").concat(this._signalChannel.rtt))}this._downlinkNetworkQuality=e,this._downlinkQualityHistory.push(e),this._downlinkQualityHistory.length>ew.HISTORY_SIZE&&this._downlinkQualityHistory.shift()}initialize(){this._signalChannel.on(io.UPLINK_NETWORK_STATS,e=>{this.handleUplinkNetworkQuality(e)}),this._signalChannel.on(rK,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var o,n;if(e.data.code!==0)return;let a=e.data.data;if(a.delay&&this.updateDelay(a.delay),this._room.signalChannel&&a.wsRtt&&(this._room.signalChannel.rtt=a.wsRtt),!this._room.uplinkConnection)return this.uplinkNetworkQuality=0,this.uplinkLoss=0,void(this.uplinkRTT=0);let I=(n=(o=this._room)==null?void 0:o.uplinkConnection)==null?void 0:n.getPeerConnection();if(I&&this.isPeerConnectionDisconnected(I))return this.uplinkNetworkQuality=6,this.uplinkLoss=0,void(this.uplinkRTT=0);let c=a.expectAudPkg+a.expectVidPkg,u=a.recvAudPkg+a.recvVidPkg,d=c-u;c===0&&u===0||(this.uplinkLoss=d<=0?0:Math.round(d/c*100),this.uplinkRTT=a.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return DA(this,null,function*(){if(this._room.remotePublishedUserMap.size===0)return void(this.downlinkNetworkQuality=0);let e=[...this._room.remotePublishedUserMap.values()],o=new Set,n=e.filter(u=>{let d=u.getPeerConnection();return!(!d||o.has(d))&&(o.add(d),!0)}),a=n.filter(u=>{var d;return((d=u.getPeerConnection())==null?void 0:d.connectionState)===hi.CONNECTED});if(n.filter(u=>this.isPeerConnectionDisconnected(u.getPeerConnection())).length===e.length)return void(this.downlinkNetworkQuality=6);for(let u=0;u<a.length;u++){let d=a[u].getPeerConnection();if(!d)return;let{rtt:R,totalPacketsLost:k,totalPacketsReceived:_}=yield this.getStat(d);if(!this._downlinkPrevStatMap.has(d)){this._downlinkPrevStatMap.set(d,{totalPacketsLost:k,totalPacketsReceived:_});continue}let Z=0,iA=this._downlinkPrevStatMap.get(d),cA=k-iA.totalPacketsLost,TA=_-iA.totalPacketsReceived;Z=cA<=0||TA<0?0:Math.round(cA/(cA+TA)*100),this._downlinkPrevStatMap.set(d,{totalPacketsLost:k,totalPacketsReceived:_}),this._downlinkLossAndRTTMap.set(d,{rtt:R,loss:Z,userId:a[u].getUserId(),audioDelay:a[u].remoteAudioTrack.stat.end2EndDelay,videoDelay:a[u].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach(u=>{this.isPeerConnectionDisconnected(u)&&(this._downlinkPrevStatMap.delete(u),this._downlinkLossAndRTTMap.delete(u))}),this._downlinkLossAndRTTMap.size===0)return this.downlinkRTT=0,this.downlinkLoss=0,void(this.downlinkNetworkQuality=0);let{rtt:I,loss:c}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=I,this.downlinkLoss=c,this.downlinkNetworkQuality=this.getNetworkQuality(c,I)})}getStat(e){return DA(this,null,function*(){let o={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!Ph())return o;let n=e.getReceivers();try{for(let a=0;a<n.length;a++)(yield n[a].getStats()).forEach(I=>{I.type==="candidate-pair"&&hr(I.currentRoundTripTime)&&(o.rtt=Math.round(1e3*I.currentRoundTripTime)),I.type==="inbound-rtp"&&(I.mediaType===fA.AUDIO||I.mediaType===fA.VIDEO)&&(o.totalPacketsLost+=I.packetsLost,o.totalPacketsReceived+=I.packetsReceived)});return o.rtt===0&&(o.rtt=this.uplinkRTT),o}catch{return o}})}getAverageLossAndRTT(e){let o={rtt:0,loss:0};return Array.isArray(e)&&e.length>0&&(e.forEach(n=>{o.rtt+=n.rtt,o.loss+=n.loss}),Object.keys(o).forEach(n=>{o[n]=Math.round(o[n]/e.length)})),o}getNetworkQuality(e,o){return e>50||o>500?5:e>30||o>350?4:e>20||o>200?3:e>10||o>100?2:e>=0||o>=0?1:0}handleSignalConnectionStateChange(e){e.state==="DISCONNECTED"?(this.uplinkRTT=0,this.uplinkLoss=0,this.uplinkNetworkQuality=6):e.state==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=1)}handleUplinkConnectionStateChange(e){let{state:o}=e;o==="DISCONNECTED"?(this.uplinkLoss=0,this.uplinkRTT=0,this.uplinkNetworkQuality=6):o==="CONNECTED"&&this.uplinkNetworkQuality===6&&(this.uplinkNetworkQuality=5)}isPeerConnectionDisconnected(e){return!(!e||e.connectionState!==hi.DISCONNECTED&&e.connectionState!==hi.FAILED&&e.connectionState!==hi.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(){this._interval===-1?(this._log.debug("start network quality calculating"),this._interval=nn.run("ric",()=>{var e;this.handleDownlinkNetworkQuality();let o=[...this._downlinkLossAndRTTMap.values()];S.emit(K.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:o});let n=(e=this._room.scheduleResult.config)==null?void 0:e.pingDomainInfo,a={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};n&&(a=fi(bt({},a),{pingResults:this.uplinkRTT>n.rttThreshold||this.downlinkRTT>n.rttThreshold?this.pingResults:{}})),this.emit(ew.EVENT_NETWORK_QUALITY,a);let I=Date.now();if(n&&(this.uplinkRTT>n.rttThreshold||this.downlinkRTT>n.rttThreshold)&&I-ew.lastPingTime>1e3*n.interval){ew.lastPingTime=Date.now();let c=n.domain.map(u=>CtA(u).then(d=>({domain:u,cost:d.totalCost})));Promise.all(c).then(u=>{this.pingResults.isPoorNetwork=u.some(d=>d.cost>700),this.pingResults.timestamp=I,this.pingResults.data=u,u.forEach(d=>{ct.addSuccessEvent({key:521718,cost:d.cost})}),this._log.warn("All ping results: ".concat(JSON.stringify(u)))}).catch(u=>{this._log.warn("Error during pinging domains: ".concat(u))})}},{delay:2e3})):this._log.info("network quality calculating is already started")}hadRecentBadUplink(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2;return this._uplinkQualityHistory.some(o=>o>e)}hadRecentBadDownlink(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2;return this._downlinkQualityHistory.some(o=>o>e)}stop(){this._log.debug("stopped"),this._interval!==-1&&(nn.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:o}=this._room;e.forEach(n=>{let{srcTinyId:a,videoDelay:I,audioDelay:c}=n,u=o.get(a);if(u){let d=this._room.remotePublishedUserMap.get(u);d?.setDelay({videoDelay:I,audioDelay:c})}})}};G(qx,"HISTORY_SIZE",10),G(qx,"EVENT_NETWORK_QUALITY","0"),G(qx,"lastPingTime",0);var iz=qx,oz=class{constructor(A){G(this,"_frameWorkType"),G(this,"_component"),G(this,"_language"),G(this,"connectionType"),G(this,"_room"),G(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0}),G(this,"_keyPrefix"),G(this,"_log"),G(this,"_intervalId"),G(this,"_firstPublishedUserList"),G(this,"_networkQuality"),G(this,"_basicInfo"),G(this,"_pathJoinRoom"),G(this,"_pathLeaveRoom"),G(this,"_pathMainVideoMap"),G(this,"_pathMainAudioMap"),G(this,"_pathAuxiliaryMap"),G(this,"_remoteStreamStatMap"),G(this,"_localStreamStat"),G(this,"_eventMap",new Map),G(this,"_captureCostSum",0),G(this,"_captureCostCount",0),G(this,"isDestroyed",!1),this._frameWorkType=A.frameWorkType||30,this._component=A.component||0,this.connectionType=A.connectionType||1,this._language=A.language||0,this._room=A.room,this._keyPrefix="key_point",this._log=nA.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&$n(this[e])&&(this[e]=function(o){let{fn:n,context:a}=o;return function(){try{for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];let d=n.apply(a,c);return fh(d)?d.catch(R=>nA.error("".concat(n.name,"() error observed ").concat(R))):d}catch(d){nA.error("".concat(n.name,"() error observed ").concat(d))}}}({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:il,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,nm().then(()=>{this._basicInfo.string_os_version=bQ(),this._basicInfo.string_device_name=Qu()||this._basicInfo.string_os_version})}addEvent(A,e){return this._eventMap.set(A,e),S.on(A,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(K.JOIN_START,this.handleJoinStart).addEvent(K.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(K.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(K.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(K.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(K.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(K.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(K.JOIN_FAILED,this.handleJoinFailed).addEvent(K.LEAVE_START,this.handleLeaveStart).addEvent(K.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(K.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(K.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(K.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(K.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(K.PUBLISH_START,this.handlePublishStart).addEvent(K.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(K.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(K.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(K.PLAY_TRACK_START,this.handlePlayStart).addEvent(K.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(K.PLAYER_STATE_CHANGED,A=>{let{track:e,state:o,type:n}=A;!e.isRemote||!this.hitTest(e.room)||o==="PLAYING"&&(n===fA.AUDIO?this.handleAudioPlaying(e):this.handleVideoPlaying(e))}).addEvent(K.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(K.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(K.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(K.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(K.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(K.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(K.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:n}=A;if(!this.hitTest(e))return;let a=o.hasAudio||o.hasVideo||o.hasSmall,I=o.hasAuxiliary,c=n.hasAudio||n.hasVideo||n.hasSmall,u=n.hasAuxiliary;!a&&c&&this.handleRemoteStreamAdded(n.userId,"main"),!I&&u&&this.handleRemoteStreamAdded(n.userId,"auxiliary")}).addEvent(K.SINGLE_CONNECTION_STAT,A=>{let{room:e,stat:o}=A;this.hitTest(e)&&(this._pathJoinRoom.int32_ice_cost=o.ice,this._pathJoinRoom.int32_dtls_cost=o.dtls,this._pathJoinRoom.int32_peer_connection_cost=o.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((A,e)=>S.off(e,A)),this._eventMap.clear()}destroy(){this.uninstallEvents(),nn.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(A){this.hitTest(A.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),A.params&&(Ee(A.params.frameWorkType)||(this._frameWorkType=A.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),Ee(A.params.component)||(this._component=A.params.component,this._basicInfo.uint32_component=this._component),Ee(A.params.language)||(this._language=A.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess(A){let{room:e,detailCost:o}=A;if(this.hitTest(e)&&o){let{totalCost:n,local:a,dns:I,tcp:c,tls:u,request:d,response:R}=o;this._pathJoinRoom.int32_schedule_cost=n,this._pathJoinRoom.int32_schedule_local=a,this._pathJoinRoom.int32_schedule_dns=I,this._pathJoinRoom.int32_schedule_tcp=c,this._pathJoinRoom.int32_schedule_tls=u,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=R}}handleSignalConnectionStart(A){let{room:e}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd(A){let{room:e,error:o}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),o&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=o instanceof Ct?Number(o.getExtraCode()||o.getCode()):Ge.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=A.code,A.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=A.room.getSignalInfo())}handleJoinFailed(A){let{room:e,error:o}=A;this.hitTest(e)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=o.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(A){this.hitTest(A.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=A.publishedUserList||[])}handleSendFirstVideoFrame(A){let{room:e}=A;this.hitTest(e)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(A){this.hitTest(A.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(A){var e;if(this.hitTest(A.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let o=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;o&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=ki()-o)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(A){this.hitTest(A.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(A){if(this.hitTest(A.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess(A){let{room:e}=A;if(this.hitTest(e)&&this._pathJoinRoom.uint64_end_time===0){let o=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=o,this._pathJoinRoom.uint64_end_time=o,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed(A){let{room:e,error:o}=A;if(this.hitTest(e)){let n=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=n,this._pathJoinRoom.uint64_end_time=n,o&&(this._pathJoinRoom.int32_end_ret=o instanceof Ct?Number(o.getExtraCode()||o.getCode()):Ge.UNKNOWN)}}handleRemoteStreamAdded(A,e){var o;let n="".concat(A,"_").concat(e);if(!this._remoteStreamStatMap.has(n)){let a={userId:A,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:fi(bt({},BtA),{msg_user_info:new cK({userId:A,tinyId:(o=this._room.remotePublishedUserMap.get(A))==null?void 0:o.tinyId,role:20})})};a.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(n,a)}}handleSubscribeStart(A){let{room:e,remotePublishedUser:o,streamType:n,subscribeState:a}=A;if(!this.hitTest(e))return;let{userId:I,tinyId:c,role:u}=o,d=new cK({userId:I,tinyId:c,role:u==="anchor"?20:21}),R=Date.now(),k="".concat(I,"_").concat(n),_=this._remoteStreamStatMap.get(k);_&&_.subscribeStartTime===0&&(_.subscribeStartTime=R),n==="main"?(o.muteState.hasVideo&&(a.video||a.smallVideo)&&!this._pathMainVideoMap.has(k)&&this._pathMainVideoMap.set(k,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:I,sendSubscribeCMDTime:R}),o.muteState.hasAudio&&a.audio&&!this._pathMainAudioMap.has(k)&&this._pathMainAudioMap.set(k,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:I,sendSubscribeCMDTime:R})):o.muteState.hasAuxiliary&&a.auxiliary&&!this._pathAuxiliaryMap.has(k)&&this._pathAuxiliaryMap.set(k,{sendSubscribeCMDTime:R})}handleSubscribed(A){let{room:e,remotePublishedUser:o,streamType:n}=A;if(this.hitTest(e)){let a="".concat(o.userId,"_").concat(n),I=this._remoteStreamStatMap.get(a);I&&I.subscribedTime===0&&(I.subscribedTime=Date.now())}}handlePlayStart(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room))return;let o="".concat(e.userId,"_").concat(e.streamType),n=this._remoteStreamStatMap.get(o);n?.playStreamTime===0&&(n.playStreamTime=Date.now())}handleVideoLoadedData(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room))return;let o="".concat(e.userId,"_").concat(e.streamType),n=this._pathMainVideoMap.get(o);n&&n.statsToReport.uint64_combine_first_frame_time===0&&(n.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(A){let e="".concat(A.userId,"_").concat(A.streamType),o=Date.now(),n=this._pathMainVideoMap.get(e),a=this._remoteStreamStatMap.get(e);if(a){let{statsToReport:I}=a;if(I.uint32_video_render_first||A.streamType!=="main"?this.hasAuxFlag(A.userId):this.hasVideoFlag(A.userId)){let c=o-this._pathJoinRoom.uint64_start_time;I.uint32_video_render_first=c,ct.addNumber({key:516820,value:c})}}n?.statsToReport.uint64_render_first_frame_time===0&&(n.statsToReport.uint64_render_first_frame_time=o)}handleAudioPlaying(A){let e="".concat(A.userId,"_").concat(A.streamType),o=this._pathMainAudioMap.get(e);o&&o.statsToReport.uint64_play_first_frame_time===0&&(o.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(A){this.hitTest(A.room)&&(this._networkQuality.totalUplinkLoss+=A.uplink.loss,this._networkQuality.totalUplinkRTT+=A.uplink.rtt,this._networkQuality.count++,A.downlinks.forEach(e=>{let{rtt:o,loss:n,userId:a,videoDelay:I,audioDelay:c}=e,u=this._networkQuality.totalDownlinkRTTAndLossMap.get(a);if(u)u.totalRTT+=o,u.totalLoss+=n,I&&(u.totalVideoDelay=(u.totalVideoDelay||0)+I,u.videoDelayCount=(u.videoDelayCount||0)+1),c&&(u.totalAudioDelay=(u.totalAudioDelay||0)+c,u.audioDelayCount=(u.audioDelayCount||0)+1),u.count++;else{let d,R,k,_;I&&(R=I,k=1),c&&(d=c,_=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(a,{totalRTT:o,totalLoss:n,count:1,totalAudioDelay:d,totalVideoDelay:R,audioDelayCount:_,videoDelayCount:k})}}))}handleHeartbeatStats(A){var e;if(this.hitTest(A.room)){let{msg_device_info:o,msg_up_stream_info:n,msg_down_stream_info:a}=A.report;if(n.msg_video_status[0]){let{uint32_video_codec_bitrate:I,uint32_video_enc_fps:c,uint32_video_width:u,uint32_video_height:d}=n.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=I,this._localStreamStat.totalVideoFPS+=c,this._localStreamStat.totalVideoWidth+=u,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(n.msg_audio_status){let{uint32_audio_level:I}=n.msg_audio_status;Math.floor(I/iE*100)>0&&(this._localStreamStat.totalAudioLevel+=I/iE,this._localStreamStat.audioLevelCount++)}a.forEach(I=>{let{msg_user_info:c,msg_audio_status:u,msg_video_status:d}=I,R=c.str_identifier,k=this._room.remotePublishedUserMap.get(R);if(d.forEach(_=>{let Z=_.uint32_video_stream_type===2,iA=_.uint32_video_stream_type===7,cA="".concat(R,"_").concat(Z?"main":"auxiliary"),TA=this._remoteStreamStatMap.get(cA);if(TA&&(Z&&k!=null&&k.remoteVideoTrack.isSubscribed||iA&&k!=null&&k.remoteAuxiliaryTrack)){TA.totalVideoFPS+=_.uint32_video_receive_fps,TA.totalVideoBitrate+=_.uint32_video_codec_bitrate,TA.videoCount++,TA.statsToReport.uint32_video_width===0&&(TA.statsToReport.uint32_video_width=_.uint32_video_width),TA.statsToReport.uint32_video_height===0&&(TA.statsToReport.uint32_video_height=_.uint32_video_height);let JA=Z?k.remoteVideoTrack:k.remoteAuxiliaryTrack;JA.stat.jitterBufferDelay&&(TA.videoJitterBufferDelay=JA.stat.jitterBufferDelay),JA.stat.framesReceived&&(TA.statsToReport.uint32_video_consume_render_rate=Math.floor(JA.stat.framesDecoded/JA.stat.framesReceived*Rf(10,6)))}}),!zR(u)){let _="".concat(R,"_main"),Z=this._remoteStreamStatMap.get(_);this._remoteStreamStatMap.has(_)&&Z&&k!=null&&k.remoteAudioTrack.isSubscribed&&(Z.totalAudioBitrate+=u.uint32_audio_codec_bitrate,Z.audioCount++,k.remoteAudioTrack.stat.jitterBufferDelay&&(Z.audioJitterBufferDelay=k.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(u.uint32_audio_level/iE*100)>0&&(Z.totalAudioLevel+=u.uint32_audio_level/iE,Z.audioLevelCount++),u.uint32_audio_block_time&&(Z.statsToReport.uint32_audio_block_time+=u.uint32_audio_block_time))}}),o.uint32_audio_capture_cost&&(this._captureCostSum+=o.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)),o.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart(A){let{room:e}=A;this.hitTest(e)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart(A){let{track:e}=A;e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess(A){let{track:e}=A;e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed(A){let{track:e,error:o}=A,n={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[o.name]||(o instanceof Ct?o.getExtraCode()||o.getCode():Ge.UNKNOWN);e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=n,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),e.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=n,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&Nf)>=0}hasAudioFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&Gf)>=0}hasAuxFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&Tf)>=0}hitTest(A){return A===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 A=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=A<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((A,e)=>{let{userId:o}=A,n=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(n){let{totalLoss:R,count:k,audioDelayCount:_,videoDelayCount:Z,totalAudioDelay:iA,totalVideoDelay:cA}=n;A.statsToReport.uint32_avg_down_loss=Math.floor(R/k),_&&iA&&(A.statsToReport.uint32_audio_network_p2p_delay=Math.floor(iA/_),A.audioJitterBufferDelay&&(A.statsToReport.uint32_p2p_delay=Math.floor(A.statsToReport.uint32_audio_network_p2p_delay+A.audioJitterBufferDelay))),Z&&cA&&(A.statsToReport.uint32_video_network_p2p_delay=Math.floor(cA/Z))}A.videoCount>0&&(A.statsToReport.uint32_video_avg_fps=Math.floor(A.totalVideoFPS/A.videoCount),A.statsToReport.uint32_video_avg_bitrate=Math.floor(A.totalVideoBitrate/A.videoCount)),A.audioCount>0&&(A.statsToReport.uint32_audio_recv_bitrate=A.statsToReport.uint32_audio_bitrate=Math.floor(A.totalAudioBitrate/A.audioCount)),A.audioLevelCount>0&&(A.statsToReport.uint32_audio_play_db=Math.floor(A.totalAudioLevel/A.audioLevelCount*100));let{callDurationCalculator:a}=this._room;a&&(A.statsToReport.uint32_audio_play_time=a.getDuration(e,fA.AUDIO),A.statsToReport.uint32_video_play_time=a.getDuration(e,fA.VIDEO)),A.statsToReport.uint32_video_render_first&&(A.statsToReport.uint32_video_render_first=Math.min(A.statsToReport.uint32_video_render_first,Lm));let{badCaseDetector:I}=this._room,{dataFreeze:c,count:u}=I.getDataFreezeDuration(e),{renderFreeze:d}=I.getRenderFreezeDuration(e);A.statsToReport.uint32_video_block_count=u,A.statsToReport.uint32_video_block_time=Math.min(c,A.statsToReport.uint32_video_play_time),A.statsToReport.uint32_video_external_block_time=Math.min(d,A.statsToReport.uint32_video_play_time),A.statsToReport.uint32_audio_block_time=Math.min(A.statsToReport.uint32_audio_block_time,A.statsToReport.uint32_audio_play_time),I.isBlackStream(e)&&A.statsToReport.uint32_video_avg_fps===0?A.statsToReport.uint32_video_black_screen_subjective=1:A.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((A,e)=>{this.hasAudioFlag(A.userId)?A.statsToReport.uint64_play_first_frame_time-A.statsToReport.uint64_start_enter_time>Lm&&(A.statsToReport.uint64_play_first_frame_time=A.statsToReport.uint64_start_enter_time+Lm):this._pathMainAudioMap.delete(e)}),this._pathMainVideoMap.forEach((A,e)=>{this.hasVideoFlag(A.userId)?A.statsToReport.uint64_render_first_frame_time-A.statsToReport.uint64_start_enter_time>Lm&&(A.statsToReport.uint64_render_first_frame_time=A.statsToReport.uint64_start_enter_time+Lm):this._pathMainVideoMap.delete(e)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>Lm&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+Lm)}getReportData(){this._basicInfo.uint32_networkType=hh();let A={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new cK({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Jf(this._signalInfo.relayIp),uint32_client_ip:Jf(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Rf(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:Jf(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return $R(A),A}report(){return DA(this,null,function*(){try{this.prepareReport();let A=this.getReportData();yield this.upload(A),this.initData()}catch(A){this._log.warn(A)}finally{this.isDestroyed&&(this._room=null)}})}upload(A){return DA(this,null,function*(){if(A.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),o=lA.enable?Iu(A,2001,e):yield PN(A),n=o instanceof ArrayBuffer,a="".concat(dh(e,Xg.KEY_POINT),"&gzip=").concat(+n),I=!1;navigator.sendBeacon&&(I=navigator.sendBeacon(a,o));let c=[this.uploadKVStat(ct),this.uploadKVStat(oB)];I||c.push(cu({url:a,body:o,priority:"low"})),yield Promise.all(c)})}setConnectionType(A){this.connectionType=A,this._basicInfo.uint32_connection_type=A}uploadKVStat(A){return DA(this,arguments,function(e){var o=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._room.sdkAppId;return function*(){var a,I;let c=e.getReportData((a=o._room)==null?void 0:a.userSig,(I=o._signalInfo)==null?void 0:I.reportToken);if(c.stats_count.length===0&&c.stats_distribution.length===0)return;c.msg_sdk_basic_info=fi(bt({},c.msg_sdk_basic_info),{bytes_device_name:o._basicInfo.string_device_name||"",bytes_os_version:o._basicInfo.string_os_version||"",uint32_framework:o._frameWorkType,uint32_network_type:o._basicInfo.uint32_networkType||0}),o._log.debug(c);let u=lA.enable?Iu(c,2003,n):yield PN(c),d=u instanceof ArrayBuffer,R="".concat(dh(+n,Xg.KV_STAT),"&gzip=").concat(+d),k=!1;navigator.sendBeacon&&(k=navigator.sendBeacon(R,u)),k||cu({url:R,body:u})}()})}};vt([nB({settings:{timeout:500,retries:3}})],oz.prototype,"upload");var Lm=5e3,BtA={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},cK=class{constructor(A){G(this,"str_identifier"),G(this,"str_tinyid"),G(this,"uint32_role"),this.str_identifier=String(A.userId),this.str_tinyid=String(A.tinyId||0),this.uint32_role=A.role}},utA=oz,rz=class{constructor(){G(this,"_startTime"),G(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=ki())}stop(){this._endTime===0&&(this._endTime=ki())}getDuration(){return this._endTime===0?ki()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},QtA=class{constructor(A){G(this,"_room",null),G(this,"_durationMap"),G(this,"_eventMap",new Map),this._room=A.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(K.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(K.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(K.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:n}=A;var a;let{userId:I}=n;if(!this.hitTest(e))return;o.hasAudio&&!n.hasAudio&&this.stopDurationItem("".concat(I,"_main"),fA.AUDIO),o.hasVideo&&!n.hasVideo&&this.stopDurationItem("".concat(I,"_main"),fA.VIDEO),o.hasAuxiliary&&!n.hasAuxiliary&&this.stopDurationItem("".concat(I,"_auxiliary"),fA.VIDEO);let c=(a=this._room)==null?void 0:a.remotePublishedUserMap.get(I);c&&(!o.hasAudio&&n.hasAudio&&c.remoteAudioTrack.isSubscribed&&this.addDuractionItem(I,fA.AUDIO,"main"),!o.hasVideo&&n.hasVideo&&c.remoteVideoTrack.isSubscribed&&this.addDuractionItem(I,fA.VIDEO,"main"),!o.hasAuxiliary&&n.hasAuxiliary&&c.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(I,fA.VIDEO,"auxiliary"))}),this._eventMap.forEach((A,e)=>S.on(e,A,this))}uninstallEvents(){this._eventMap.forEach((A,e)=>S.off(e,A,this)),this._eventMap.clear()}handleSubscribed(A){let{track:e}=A;if(!this.hitTest(e.room))return;let{userId:o,streamType:n,kind:a}=e;e.isSubscribed?this.addDuractionItem(o,a,n):this.stopDurationItem("".concat(o,"_").concat(n),a)}handleUnsubscribed(A){let{track:e}=A;this.hitTest(e.room)&&this.stopDurationItem("".concat(e.userId,"_").concat(e.streamType),e.kind)}isRecording(A){return A.findIndex(e=>e.endTime===0)>=0}addDuractionItem(A,e,o){let n="".concat(A,"_").concat(o),a=new rz,I=this._durationMap.get(n);I?this.isRecording(I[e])||I[e].push(a):this._durationMap.set(n,{userId:A,type:o,audio:e===fA.AUDIO?[a]:[],video:e===fA.AUDIO?[]:[a]})}stopDurationItem(A,e){if(this._durationMap.has(A)){let o=this._durationMap.get(A)[e].find(n=>n.endTime===0);o&&o.stop()}}hitTest(A){return this._room===A}getDuration(A,e){return this._durationMap.has(A)?this._durationMap.get(A)[e].reduce((o,n)=>o+n.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},dtA=class{constructor(){G(this,"renderFreezeMap",new Map),G(this,"dataFreezeMap",new Map)}get(A,e){let o=this.renderFreezeMap.get(A),n=this.dataFreezeMap.get(A);return e?e==="data"?n:o:(Ma||Yr)&&o&&n&&o.duration>n.duration?o:n}set(A,e,o){o==="data"?this.dataFreezeMap.set(A,e):this.renderFreezeMap.set(A,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},htA=class{constructor(A){G(this,"_room"),G(this,"_renderFreezeMap",new Map),G(this,"_isVideoPlayingEventFiredMap",new Map),G(this,"_dataFreezeMap",new Map),G(this,"_monitorFreezeData",new dtA),G(this,"_eventMap",new Map),G(this,"_videoEncodeFailedCount",0),G(this,"_audioEncodeFailedCount",0),G(this,"_encodeFailedThreshold",3),G(this,"ABNORMAL_TIME_LOWER_LIMIT",3e3),G(this,"ABNORMAL_TIME_UPPER_LIMIT",5e3),G(this,"_videoAbnormalTimestampMap",new Map),G(this,"_remoteVideoAbnormalTimestampMap",new Map),G(this,"_audioAbnormalTimestampMap",new Map),G(this,"eventListenerMap",new Map),this._room=A.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(K.LEAVE_SUCCESS,A=>{let{room:e}=A;this.hitTest(e)&&this.stop()}).set(K.PLAY_TRACK_START,this.onPlayTrackStart).set(K.UNSUBSCRIBE_SUCCESS,A=>{let{room:e,streamType:o,remotePublishedUser:n}=A;if(!this.hitTest(e))return;let{userId:a}=n,I="".concat(a,"_").concat(o);this.stopDataFreeze({key:I,userId:a,type:o})}).set(K.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:n}=A;if(!this.hitTest(e))return;let{userId:a}=n;if(o.hasVideo&&!n.hasVideo){let I="main",c="".concat(n.userId,"_").concat(I);this.stopDataFreeze({key:c,userId:a,type:I})}if(o.hasAuxiliary&&!n.hasAuxiliary){let I="auxiliary",c="".concat(n.userId,"_").concat(I);this.stopDataFreeze({key:c,userId:a,type:I})}}).set(K.PLAYER_STATE_CHANGED,A=>{let{track:e,state:o,reason:n,type:a}=A;if(e.isRemote&&e.room&&this.hitTest(e.room)&&a===fA.VIDEO){if(o==="PLAYING"){let I="".concat(e.userId,"_").concat(e.streamType);this._isVideoPlayingEventFiredMap.set(I,!0)}n===fA.MUTE?this.onVideoTrackMuted(e):n===fA.UNMUTE&&this.onVideoTrackUnmuted(e)}}).set(K.HEARTBEAT_REPORT,this.onHearBeatReport).set(K.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(K.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((A,e)=>S.on(e,A,this))}uninstallEvents(){this._eventMap.forEach((A,e)=>S.off(e,A,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(A){if(!A.isSubscribed)return;let{userId:e,streamType:o}=A,n="".concat(e,"_").concat(o),a=this._dataFreezeMap.get(n),I=new rz;a?a.durationItemList.push(I):this._dataFreezeMap.set(n,{userId:e,type:o,durationItemList:[I],isFreezing(){let c=this.durationItemList[this.durationItemList.length-1];return c&&c.endTime===0}})}onVideoTrackUnmuted(A){if(!A.isSubscribed)return;let{userId:e,streamType:o}=A,n="".concat(e,"_").concat(o);this.stopDataFreeze({key:n,userId:e,type:o})}onHearBeatReport(A){let{room:e,report:o}=A;this.hitTest(e)&&(this.localMediaTrackDetector(o),this.remoteMediaTrackDetector(o))}remoteMediaTrackDetector(A){A.msg_down_stream_info.length>0&&A.msg_down_stream_info.forEach(e=>{var o;if(e.msg_video_status.length===0)return;let n=e.msg_user_info.str_identifier,a=(o=this._room.remotePublishedUserMap.get(n))==null?void 0:o.remoteVideoTrack;e.msg_video_status.forEach(I=>{let c=ki();if(I.uint32_video_codec_bitrate!==void 0&&I.uint32_video_codec_bitrate>0&&I.uint32_video_receive_fps===0&&a!=null&&a.muted)if(this._remoteVideoAbnormalTimestampMap.has("".concat(n,"-decode"))){let u=this._remoteVideoAbnormalTimestampMap.get("".concat(n,"-decode"));u&&c-u>this.ABNORMAL_TIME_LOWER_LIMIT&&c-u<this.ABNORMAL_TIME_UPPER_LIMIT&&Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_DECODE_FAILED_DURING_CALL)})}else this._remoteVideoAbnormalTimestampMap.set("".concat(n,"-decode"),c);else{let u=this._remoteVideoAbnormalTimestampMap.get("".concat(n,"-decode"));u&&c-u>=this.ABNORMAL_TIME_UPPER_LIMIT&&(Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_DECODE_RESUME_DURING_CALL)}),this._remoteVideoAbnormalTimestampMap.delete("".concat(n,"-decode")))}if(I.uint32_video_codec_bitrate!==void 0&&I.uint32_video_codec_bitrate>5e5&&I.uint32_video_dec_fps!==void 0&&I.uint32_video_dec_fps<=5)if(this._remoteVideoAbnormalTimestampMap.has("".concat(n,"-hardware"))){let u=this._remoteVideoAbnormalTimestampMap.get("".concat(n,"-hardware"));if(u&&c-u>this.ABNORMAL_TIME_LOWER_LIMIT/2&&c-u<2*this.ABNORMAL_TIME_UPPER_LIMIT){Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_HARDWARE_DECODE_FAILED)});let d=this._room.remotePublishedUserMap.get(n);if(d){let R=I.uint32_video_stream_type===2?d.remoteVideoTrack:d.remoteAuxiliaryTrack;R&&(R.log.warn("decode failed during call"),R.emit("decode-failed-during-call"))}}}else this._remoteVideoAbnormalTimestampMap.set("".concat(n,"-hardware"),c);else{let u=this._remoteVideoAbnormalTimestampMap.get("".concat(n,"-hardware"));u&&c-u>=2*this.ABNORMAL_TIME_UPPER_LIMIT&&(Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_HARDWARE_DECODE_RESUME)}),this._remoteVideoAbnormalTimestampMap.delete("".concat(n,"-hardware")))}})})}localMediaTrackDetector(A){if(A.msg_up_stream_info.msg_video_status){let e=A.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(a=>a.kind==="video"&&!a.isScreen),n=o?.stat.bytesSent||0;if(o?.isMediaTrackActive===!1||n<=0||o!=null&&o.isUseCustomSource)return;e.forEach(a=>{let I=ki();if(a.uint32_video_stream_type===2)if(a.uint32_video_capture_fps!==0&&a.uint32_video_codec_bitrate===0&&a.uint32_video_enc_fps===0&&o!=null&&o.isPublished)if(this._videoAbnormalTimestampMap.has("local-encode")){let c=this._videoAbnormalTimestampMap.get("local-encode");c&&I-c>this.ABNORMAL_TIME_LOWER_LIMIT&&I-c<this.ABNORMAL_TIME_UPPER_LIMIT&&Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_ENCODE_FAILED_DURING_CALL)})}else this._videoAbnormalTimestampMap.set("local-encode",I);else{let c=this._videoAbnormalTimestampMap.get("local-encode");c&&I-c>=this.ABNORMAL_TIME_UPPER_LIMIT&&Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.VIDEO_ENCODE_RESUME_DURING_CALL)}),this._videoAbnormalTimestampMap.delete("local-encode")}})}if(A.msg_up_stream_info.msg_audio_status){let e=A.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(I=>I.kind==="audio"),n=o?.stat.bytesSent||0;if(o?.isMediaTrackActive===!1||n<=0||o!=null&&o.isUseCustomSource)return;let a=ki();if(e.uint32_audio_codec_bitrate===0&&o!=null&&o.isPublished)if(this._audioAbnormalTimestampMap.has("local-encode")){let I=this._audioAbnormalTimestampMap.get("local-encode");I&&a-I>this.ABNORMAL_TIME_LOWER_LIMIT&&a-I<this.ABNORMAL_TIME_UPPER_LIMIT&&Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.AUDIO_ENCODE_FAILED_DURING_CALL)})}else this._audioAbnormalTimestampMap.set("local-encode",a);else{let I=this._audioAbnormalTimestampMap.get("local-encode");I&&a-I>=this.ABNORMAL_TIME_UPPER_LIMIT&&Jo.uploadEvent({userId:this._room.userId,log:"stat-".concat(oa.AUDIO_ENCODE_RESUME_DURING_CALL)}),this._audioAbnormalTimestampMap.delete("local-encode")}}}stopDataFreeze(A){let{key:e,userId:o,type:n}=A,a=this._dataFreezeMap.get(e);if(!a||!a.isFreezing())return;let I=a.durationItemList[a.durationItemList.length-1];I.stop();let c=I.getDuration();if(c>DN){let u=this._monitorFreezeData.get(e,"data");this._monitorFreezeData.set(e,{userId:o,type:n,duration:u?u.duration+c:c},"data")}else a.durationItemList.pop()}getTotalDuration(A){return A.reduce((e,o)=>{let n=o.getDuration();return e+Math.min(n,5e3)},0)}onPlayTrackStart(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room)||e.kind!==fA.VIDEO||!e.isRemotePublished)return;let o="".concat(e.userId,"_").concat(e.streamType);this._isVideoPlayingEventFiredMap.has(o)||this._isVideoPlayingEventFiredMap.set(o,!1)}getDataFreezeDuration(A){let e={dataFreeze:0,count:0},o=this._dataFreezeMap.get(A);if(o){if(o.isFreezing()){let n=o.durationItemList[o.durationItemList.length-1];n.stop(),n.getDuration()<DN&&o.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(o.durationItemList),e.count=o.durationItemList.length}return e}getRenderFreezeDuration(A){let e={renderFreeze:0,count:0},o=this._renderFreezeMap.get(A);return o&&(e.renderFreeze=o.totalDuration,e.count=o.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(A){return!!this._isVideoPlayingEventFiredMap.has(A)&&!this._isVideoPlayingEventFiredMap.get(A)}onRemoteVideoPlayStart(A){let{track:e,player:o}=A;var n;if(!YQ())return;let a=0,I=()=>{document.hidden||(a=0)};document.addEventListener("visibilitychange",I);let c=(u,d)=>{var R;if(a){let k=e.decodeFPS,_=k>0&&k<=5?600+1e3/k:600,Z=d.presentationTime-a;if(Z>_){Z=Math.min(Z,5e3);let iA="".concat(e.userId,"_").concat(e.streamType),cA=this._monitorFreezeData.get(iA,"render");cA?cA.duration+=Z:this._monitorFreezeData.set(iA,{userId:e.userId,type:e.streamType,duration:Z},"render");let TA=this._renderFreezeMap.get(iA);TA?(TA.totalDuration+=Z,TA.count+=1):this._renderFreezeMap.set(iA,{userId:e.userId,type:e.streamType,totalDuration:Z,count:1})}}a=d.presentationTime,(R=o.element)==null||R.requestVideoFrameCallback(c)};(n=o.element)==null||n.requestVideoFrameCallback(c),this.eventListenerMap.set("".concat(e.userId,"_").concat(e.streamType),{onVisibilityChange:I})}onRemoteVideoPlayEnd(A){let{track:e,player:o}=A,n="".concat(e.userId,"_").concat(e.streamType),a=this.eventListenerMap.get(n);a&&document.removeEventListener("visibilitychange",a.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(A){return A===this._room}destroy(){this.uninstallEvents()}},ptA=es(hg(),1),ftA=class{constructor(A,e,o,n,a){let I=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1.3333333333333333;this.vbMode=A,this.faceDetectorHash=o,this.visionTaskRegistry=n,this.logger=a,G(this,"animationState"),G(this,"originalAspect"),G(this,"totalOffsetX",0),G(this,"totalOffsetY",0),G(this,"defaultScaleRatio",.1),G(this,"isRecovering",!1),G(this,"boundaryY",280),G(this,"lastActionTime",0),G(this,"restTime",400),this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=I||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(A,e,o){let n=[{key:570704,error:o??(e?void 0:11)},{key:570705,error:o??(e?void 0:22)}][A-1];n&&(e?ct.addSuccessEvent({key:n.key}):ct.addFailedEvent({key:n.key,error:n.error}))}actionCentering(A){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:o,videoHeight:n}=A;this.animationState.debounceThreshold=o/30,this.animationState.movementThreshold=o/20,this.boundaryY=.6*n;try{let a=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(a.detections.length<=0)return void(this.vbMode===1&&this.recoverOriginal(o,n));let I=a.detections[0].boundingBox,c=I.originX,u=I.originY,d=I.width,R=I.height;this.vbMode===1?this.dualStageCropping(o,n,c,u,d,R):this.vbMode===2&&this.movingPortrait(o,n,c,u,d,R)}catch(a){this.logger.error(a)}this.lastActionTime=e}calculateBoundary(A,e,o,n){let a,I;return A>e/2?(a=e-o-n,I=o-a):(a=o,I=0),{min:a,offset:I}}calculateTargetPosition(A,e,o,n,a,I){let c,u,d=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.4,R=A+o/2,k=e+n/2,{min:_,offset:Z}=this.calculateBoundary(R,a,A,o),{min:iA,offset:cA}=this.calculateBoundary(k,I,e,n);return c=2*_+o,u=2*iA+n,c/u>this.originalAspect?(c=u*this.originalAspect,Z=R-c/2):(u=c/this.originalAspect,cA=k-u/2),o/a>d&&(Z=0,cA=0,c=a,u=I),Z=Math.max(0,Math.min(Z,a-c)),cA=Math.max(0,Math.min(cA,I-u)),{sx:Z,sy:cA,cropWidth:c,cropHeight:u,timestamp:Date.now()}}processFacePositionCrop(A,e,o){if(!this.animationState.current||!this.animationState.target){let c={sx:0,sy:0,cropWidth:e,cropHeight:o,timestamp:Date.now()};return this.animationState.current=c,void(this.animationState.target=c)}let n=this.positionDistance(this.animationState.target,A),a=this.positionDistance(this.animationState.current,A),I=this.animationState.current.cropWidth/e;n>this.animationState.debounceThreshold*I&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&a>this.animationState.movementThreshold*I&&(this.animationState.target=A,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(A){if(!this.animationState.current||!this.animationState.target)return this.animationState.current=bt({},A),void(this.animationState.target=bt({},A));let e=this.positionDistance(this.animationState.current,A),o=this.positionDistance(this.animationState.target,A);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&o>this.animationState.movementThreshold&&(this.animationState.current=A,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let A=Date.now()-this.animationState.startTime,e=Math.min(A/this.animationState.duration,1),o=n=>n<.5?2*n*n:(4-2*n)*n-1;if(this.animationState.current&&this.animationState.target){let n=(this.animationState.target.sx-this.animationState.current.sx)*o(e);this.animationState.current.sx+=n,this.totalOffsetX+=n;let a=(this.animationState.target.sy-this.animationState.current.sy)*o(e);if(this.animationState.current.sy+=a,this.totalOffsetY+=a,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*o(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*o(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*o(e)),hr(this.animationState.current.scaleOffsetX)&&hr(this.animationState.target.scaleOffsetX)&&hr(this.animationState.current.scaleOffsetY)&&hr(this.animationState.target.scaleOffsetY)){let I=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*o(e);this.animationState.current.scaleOffsetX+=I;let c=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*o(e);this.animationState.current.scaleOffsetY+=c}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(A,e){return Math.sqrt(Rf(A.sx-e.sx,2)+Rf(A.sy-e.sy,2))}recoverOriginal(A,e){this.animationState.target={sx:0,sy:0,cropWidth:A,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(A,e,o,n,a,I){let c=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.3;if(this.isRecovering)return;let u=this.calculateTargetPosition(o,n,a,I,A,e);this.processFacePositionCrop(u,A,e),a*I/u.cropWidth/u.cropHeight>c&&this.recoverOriginal(A,e)}movingPortrait(A,e,o,n,a,I){var c,u,d,R,k,_,Z,iA,cA,TA,JA,Ie;let XA={sx:o+a/2+this.totalOffsetX,sy:n+I/2+this.totalOffsetY,cropWidth:A,cropHeight:e,scaleRatio:(u=(c=this.animationState.current)==null?void 0:c.scaleRatio)!=null?u:1,scaleOffsetX:(R=(d=this.animationState.current)==null?void 0:d.scaleOffsetX)!=null?R:0,scaleOffsetY:(_=(k=this.animationState.current)==null?void 0:k.scaleOffsetY)!=null?_:0,timestamp:Date.now()};this.animationState.target={sx:A/2,sy:n+I/2,cropWidth:A,cropHeight:e,scaleRatio:(iA=(Z=this.animationState.target)==null?void 0:Z.scaleRatio)!=null?iA:1,scaleOffsetX:(TA=(cA=this.animationState.target)==null?void 0:cA.scaleOffsetX)!=null?TA:0,scaleOffsetY:(Ie=(JA=this.animationState.target)==null?void 0:JA.scaleOffsetY)!=null?Ie:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(a*I/A/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=1-this.animationState.target.scaleRatio,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(XA)}set aspectRatio(A){this.originalAspect=A}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}},mtA=class extends FM{constructor(A,e){super(A,e.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:e.width,height:e.height,logger:A.log}),G(this,"_bgTexture"),G(this,"_waterMarkTexture"),G(this,"_lastMaskTexture"),G(this,"_lastMaskFbo"),G(this,"_textureValid",!1),G(this,"_selfieTextureValid",!1),G(this,"_selfieSegmentationHash"),G(this,"wasm"),G(this,"predictReady"),G(this,"_color"),G(this,"_prePrograme"),G(this,"_segmentationMask"),G(this,"_weixin",!1),G(this,"_centerFace"),G(this,"_textureMatrixLocation"),G(this,"_offsetMatrixLocation"),G(this,"_colorLocation"),G(this,"_enableFaceCentering",!1),G(this,"_enableEffectOptimization",!1),G(this,"_mat4"),G(this,"_postProcessing"),G(this,"_onAbort"),G(this,"_visionTaskRegistry"),G(this,"resolvePreditReady"),this.init(e).catch(o=>{A.log.error(o),A.destroy(new Ct({code:Ge.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(o.message||o)})),this.resolvePreditReady()})}init(A){return DA(this,null,function*(){var e,o,n;this.predictReady=new Promise(u=>{this.resolvePreditReady=u});let a=A.Wasm,I=this.context.ctx;if(A.color&&(this._color=A.color),A.mat4&&(this._mat4=A.mat4),A.postProcessing&&(this._postProcessing=A.postProcessing),this._enableFaceCentering=(e=A.enableFaceCentering)!=null&&e,this._enableEffectOptimization=(o=A.enableEffectOptimization)!=null&&o,this.wasm=new a.AllIn1(I),this.wasm.blurRadius=A.blurRadius||3,this.wasm.mirror=!!A.mirror,this.wasm.rotation=A.rotation||0,this.wasm.vbMode=A.bg==="blur"?1:A.bg instanceof HTMLImageElement?2:A.bg==="color"?3:0,this._onAbort=A.onAbort,A.bg||this.resolvePreditReady(),A.waterMark){let{x:u,y:d,width:R,height:k}=A.waterMark;this.wasm.setWaterMark(u,d,R,k)}if(A.beautyParams){let{beauty:u,brightness:d,ruddy:R}=A.beautyParams;this.wasm.setBeauty(u,d,R,A?.width,A?.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),I.uniform1i(I.getUniformLocation(this.program,"mask"),1),A.bg instanceof HTMLImageElement&&(I.uniform1i(I.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(A.bg)),A.waterMark&&(I.uniform1i(I.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(A.waterMark.image));let c=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=I.getUniformLocation(this.program,"u_textureMatrix"),I.uniformMatrix4fv(this._textureMatrixLocation,!1,c),this._offsetMatrixLocation=I.getUniformLocation(this.program,"u_offsetMatrix"),I.uniformMatrix4fv(this._offsetMatrixLocation,!1,c),this._colorLocation=I.getUniformLocation(this.program,"u_color"),I.uniform1i(I.getUniformLocation(this.program,"lastMask"),4),this._weixin){let u=this.context.createShader(I.FRAGMENT_SHADER,`#version 300 es
precision highp float;
uniform sampler2D u_texture;
uniform sampler2D mask;
in vec2 v_texCoord;
out vec4 outColor;
void main() {
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
}`),d=this.context.createShader(I.VERTEX_SHADER,`#version 300 es
in vec2 a_position;
in vec2 a_texCoord;
out vec2 v_texCoord;
void main() {
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
v_texCoord = a_texCoord;
}`);this._prePrograme=this.context.createProgram(d,u),I.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),I.uniform1i(I.getUniformLocation(this._prePrograme,"mask"),1)}!this._enableEffectOptimization||this.wasm.vbMode!==2&&this.wasm.vbMode!==3?this._postProcessing=void 0:QM()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(n=this._postProcessing)==null||n.init(I,this.positionBuffer,this.texCoordBuffer,4/3),yield this.initVisionTasks(A)})}initVisionTasks(A){return DA(this,null,function*(){if(A.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let e=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!e)return;this._centerFace=new ftA(this.wasm.vbMode,this.image,e,this._visionTaskRegistry,this.context.log)}catch{this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(A){let e=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(A);if(!o)return;let n=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,n=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,n||null),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this._bgTexture||null),e.activeTexture(e.TEXTURE3),e.bindTexture(e.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&e.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=A,this.totalFrames++,this.centerFace(),gu(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),e.viewport(0,0,e.canvas.width,e.canvas.height),e.drawArrays(e.TRIANGLE_STRIP,0,4),A.close()}getMaskTexture(A){return A.confidenceMasks?A.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let A=this.context.ctx;this.useTexture(),A.texImage2D(A.TEXTURE_2D,0,A.RGBA,A.RGBA,A.UNSIGNED_BYTE,this.image)}render(A){let e=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:n,videoHeight:a}=o;if(gu(this.wasm.rotation)&&!this._visionTaskRegistry&&([n,a]=[a,n]),n===0||a===0||!this.available)return!1;o.width=n,o.height=a;let I=!1;if(this.totalFrames)this.useTexture(),I=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),I=this._textureValid,this._textureValid=!0}if(this.width===n&&this.height===a&&I?e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,o):(this.resize(n,a),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,o)),this._weixin){if(e.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let c=this.getMaskTexture(this._segmentationMask);e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,c||null),e.bindFramebuffer(e.FRAMEBUFFER,this._lastMaskFbo||null)}e.drawArrays(e.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?e.copyTexSubImage2D(e.TEXTURE_2D,0,0,0,0,0,n,a):e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,n,a,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let c=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(c)}}catch(c){this._onAbort&&this._onAbort(c)}return this.totalFrames||(e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this._bgTexture||null),e.activeTexture(e.TEXTURE3),e.bindTexture(e.TEXTURE_2D,this._waterMarkTexture||null),e.drawArrays(e.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let A=this.context.ctx;this._centerFace.aspectRatio=A.canvas.width/A.canvas.height,this._centerFace.actionCentering(this.image);let{current:e,offset:o}=this._centerFace;if(e&&(this.wasm.vbMode===1&&this.drawImage(e.sx,e.sy,e.cropWidth,e.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let n=this._mat4.create(),{scaleRatio:a=1,scaleOffsetX:I=0,scaleOffsetY:c=0}=e;this._mat4.fromTranslation(n,[-o.offsetX/A.canvas.width+I,c,0]),this._mat4.scale(n,n,[a,a,1]),A.uniformMatrix4fv(this._offsetMatrixLocation,!1,n)}}drawImage(A,e,o,n){let a=this.context.ctx;if(!this._mat4)return;let{width:I,height:c}=a.canvas,u=this._mat4.create();this._mat4.fromTranslation(u,[A/I,1-(e+n)/c,0]),this._mat4.scale(u,u,[o/I,n/c,1]),a.uniformMatrix4fv(this._textureMatrixLocation,!1,u)}close(){var A;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(A=this.wasm)==null||A.close()}},DtA=class extends Il{constructor(A){super(A,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:A.log,fragmentShaderSource:`
precision highp float;
uniform sampler2D ySampler;
uniform sampler2D uSampler;
uniform sampler2D vSampler;
varying highp vec2 textureCoord;
const mat4 YUV2RGB = mat4(
1.1643828125, 0, 1.59602734375, -.87078515625,
1.1643828125, -.39176171875, -.81296875, .52959375,
1.1643828125, 2.017234375, 0, -1.081390625,
0, 0, 0, 1);
void main() {
vec3 yuv;
yuv.r = texture2D(ySampler, textureCoord).r;
yuv.g = texture2D(uSampler, textureCoord).r;
yuv.b = texture2D(vSampler, textureCoord).r;
gl_FragColor = vec4(yuv,1) * YUV2RGB;
}
`,vertexShaderSource:`
attribute vec4 vertexPos;
attribute vec2 texturePos;
varying vec2 textureCoord;
void main() {
gl_Position = vertexPos;
textureCoord = texturePos;
}`}),G(this,"yTextureRef"),G(this,"uTextureRef"),G(this,"vTextureRef"),G(this,"Y"),G(this,"U"),G(this,"V"),this.useProgram();let e=this.context.ctx;e.pixelStorei(e.PACK_ALIGNMENT,1),e.pixelStorei(e.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=A._canvas}_initTexture(A,e){let o=this.context.ctx,n=o.createTexture();return o.bindTexture(o.TEXTURE_2D,n),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,A),e),n}render(A){let e=this.context.ctx,o=this.width,n=this.height;return this.useProgram(),e.viewport(0,0,o,n),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.yTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,n,e.LUMINANCE,e.UNSIGNED_BYTE,this.Y),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.uTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o/2,n/2,e.LUMINANCE,e.UNSIGNED_BYTE,this.U),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,this.vTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o/2,n/2,e.LUMINANCE,e.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(A,e){super.resize(A,e);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,A,e,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,A/2,e/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,A/2,e/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}},nz=(A,e)=>{switch(A){case"webCodecs":return e==="videoFrame"?514705:514706;case"wasm":return e==="webgl"?514707:e==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},ytA=0,RtA=class{constructor(A){G(this,"id",ytA++),G(this,"trackDoneOB"),G(this,"startOB"),G(this,"stopOB"),G(this,"decoder"),G(this,"videoContext"),G(this,"gop",0),G(this,"gop_helper",0),G(this,"waitFirstKeyFrame",!0),G(this,"startTimestamp",0),G(this,"startTime",0),G(this,"startPerformanceTime",0),G(this,"inputFrameCount",0),G(this,"decodedFrameCount",0),G(this,"decodeFrameCount",0),G(this,"downgradeLevel",0),G(this,"lastDowngradeTime",0),G(this,"lastFrameDiff",0),G(this,"lastDecodeFrameTimestamp",0),G(this,"config"),G(this,"gop_before_configure",[]),G(this,"videoElement"),G(this,"type","wasm"),G(this,"goodType"),G(this,"renderer","2d"),G(this,"wasmOption"),G(this,"createDecoder"),G(this,"_decodeSink"),G(this,"isReported",!1),G(this,"track"),G(this,"stateChangeOB"),G(this,"failedReason");let{track:e,createDecoder:o}=A;if(this.stateChangeOB=yu(),this.track=e,this.createDecoder=o,this.wasmOption={yuvMode:A.renderer==="webgl",wasmPath:A.wasmPath,workerMode:A.workerMode,canvas:A.canvas},this.config=A.config,this.videoElement=A.videoElement,this.renderer=A.renderer,this.trackDoneOB=Ln(e.availableState,Uo.OFF),this.stopOB=yu(),A.type==="auto"){switch(A.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=A.type;this.changeRenderer(this.renderer),Jn(this.stateChangeOB,VW((n,a)=>(n!==a&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:n,state:a}),a),"INITIALIZED"),Qc(this.stopOB),Ks()),this.start()}start(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Jn(this.pipe(this.track),Qc(this.stopOB),qT());Jn(e,Ks(()=>{this.track.stat.framesDecoded++},o=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(o," retryCount: ").concat(A)),ct.addFailedEvent({key:nz(this.type,this.renderer),error:o}),A>4)this.failedReason=o,this.stateChangeOB.next("FAILED"),ct.addFailedEvent({key:514704});else{if(this.goodType)return void this.start(A);switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":this.renderer==="webgl"&&this.changeRenderer("videoFrame")}this.start(A+1)}},()=>{this.track.log.warn("".concat(this.id," decoderOB completed")),ct.addSuccessEvent({key:nz(this.type,this.renderer)}),ct.addSuccessEvent({key:514704})})),Jn(e,LM(1),Ks(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(A){this._decodeSink?this._decodeSink.error(A):this.start()}close(A){this.stopOB.next(A)}changeRenderer(A){this.renderer=A,this.renderer==="videoFrame"&&!Em()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var o,n;if(this.failedReason)return;this.inputFrameCount++;let a=new Uint8Array(A.data);if((I=a)[0]!==0||I[1]!==0||I[2]!==0||I[3]!==1||a.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(a.subarray(0,5))),A;var I;let c=!1;switch(31&a[4]){case 5:case 7:c=!0}if(((o=this.decoder)==null?void 0:o.state)!=="configured")return this.track.log.debug("not configured ".concat(this.inputFrameCount)),c&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:A.data,timestamp:A.timestamp,type:A.type}),A;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(d=>this.decode(d,!0)),this.gop_before_configure=[]);let{timestamp:u}=A;if(c?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame){if(!c)return void this.track.log.debug("wait first key frame ".concat(this.inputFrameCount," ").concat(a.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=u,this.startTime=Date.now(),this.startPerformanceTime=ki()}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(u," ").concat((n=A.getMetadata)==null?void 0:n.call(A).rtpTimestamp)),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=u,void this.decoder.decode({data:A.data,type:A.type,timestamp:this.lastDecodeFrameTimestamp})}return A}checkDowngradeByFrameDiff(){let A=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==A&&this.track.log.debug("downgrade level ".concat(A," to ").concat(this.downgradeLevel," ").concat(this.decodeFrameCount," frameDiff: ").concat(e,", lastFrameDiff: ").concat(this.lastFrameDiff)),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(A){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-A>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug("downgrade level ".concat(e," to ").concat(this.downgradeLevel))}pipe(A){return e=>DA(this,null,function*(){this._decodeSink=e;let o,n=A.mediaTrack;e.defer(()=>{var c;n&&(A.player.setCanvas(),A.setInputMediaStreamTrack(n)),o?.close(),(c=this.videoContext)==null||c.destroy(),delete this._decodeSink});let{renderer:a,type:I}=this;A.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(I){case"wasm":o=this.createDecoder(I,this.wasmOption);break;case"webCodecs":o=this.createDecoder(I);break;default:throw new Error("not supported yet")}let c=0;if(o.on("videoFrame",u=>{this.decodedFrameCount++,c++,(c<=10||c%500==0)&&A.log.debug("frame ".concat(c," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(u.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(u.timestamp)),e.next(u)}),o.on("error",u=>{A.log.error(u),e.error(I==="webCodecs"?4:8)}),yield o.initialize(this.videoElement),!this._decodeSink)return;if(o.configure(this.config),I==="wasm"&&a==="webgl"){this.videoContext=new aC({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create(),this.videoContext.on(aC.UNAVAILABLE,d=>{A.log.error(d),e.error(7)});let u=new DtA(this.videoContext);o.on("videoCodecInfo",d=>u.resize(d.width,d.height)),o.on("videoFrame",d=>{({y:u.Y,u:u.U,v:u.V}=d),this.downgradeLevel===1?this.decodedFrameCount%2==0&&u.render(this.decodedFrameCount):u.render(this.decodedFrameCount)}),A.source=u,A.player.setCanvas(this.videoContext._canvas,2)}else if(a==="videoFrame"){A.player.setCanvas();let u=new MediaStreamTrackGenerator({kind:"video"}),d=u.writable.getWriter();A.setInputMediaStreamTrack(u),o.on("videoFrame",R=>d.write(R))}else{this.videoContext=new Mu({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create({alpha:!1});let u=this.videoContext.createVideoImageSource();o.on("videoFrame",R=>{try{u.image=R,u.update()}catch(k){delete this.goodType,A.log.error(k),e.error(11)}});let d=new bq(this.videoContext,{name:"remotePlayer",logger:A.log});u.connect(d),A.source=u,A.player.setCanvas(this.videoContext._canvas,2)}this.decoder=o}catch(c){A.log.error(c),e.error(I==="webCodecs"?2:6)}})}},az=Promise.resolve(),sz=class extends ptA.EventEmitter{constructor(A){super(),this.room=A,G(this,"videoContext"),G(this,"_glVideoContext"),G(this,"_2dVideoContext"),G(this,"destination"),G(this,"smallVideoContext"),G(this,"smallDestination"),G(this,"smallTrackSource"),G(this,"smallImageSource"),G(this,"_isMirror",!1),G(this,"_rotation",0),G(this,"cameraTrack"),G(this,"cameraNode"),G(this,"transformNode"),G(this,"mixNode"),G(this,"screenTrack"),G(this,"screenNode"),G(this,"selfModel",!1),G(this,"blurRadius",3),G(this,"arTrack"),G(this,"_enableFaceCentering",!1),G(this,"_enableEffectOptimization",!1),G(this,"onAbort"),G(this,"_color"),G(this,"Wasm"),G(this,"waterMarkNode"),G(this,"_waterMarkOption"),G(this,"watermarkImageList",[]),G(this,"_beautyParams"),G(this,"isUsingArTrack",!1),G(this,"mixTrack"),G(this,"_isMixScreen",!1),G(this,"_virtualBackground"),G(this,"_virtualBackgroundAbortCallback"),G(this,"virtualBackgroundInstance"),G(this,"_bgAssetPath"),G(this,"log"),G(this,"_mat4"),G(this,"_postProcessing"),G(this,"_checkId",0),G(this,"_use2d",!1),G(this,"_autoSwitchRenderMode",!0),G(this,"encodePipeline",[]),G(this,"decodePipeline",[]),G(this,"updated",az),G(this,"_updateFlag",!1),this.log=nA.createLogger({parent:A?.getLogger(),id:"vm",userId:A?.userId,sdkAppId:A?.sdkAppId}),this.smallVideoContext=new Mu({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var A;return((A=this.room)==null?void 0:A.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(A){if(this._autoSwitchRenderMode=A==="auto",this._autoSwitchRenderMode)return;let e=A==="2d";this._use2d!==e&&(this._use2d=e,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var A;let{width:e,height:o}=((A=this.cameraTrack)==null?void 0:A.settings)||{};return gu(this._rotation)?{width:o,height:e}:{width:e,height:o}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Mu({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 aC({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(OO<=22),this._glVideoContext.on(aC.UNAVAILABLE,A=>{var e;this.emit("error",A),this.log.warn("video context unavailable",A),(e=this._virtualBackgroundAbortCallback)==null||e.call(this,A),this.update().catch(o=>{this.log.error(o)})})}catch(A){this.emit("error",A)}}initVirtualBackground(A,e,o){this.onAbort=A,this._mat4=e,this._postProcessing=o}enablePrintDetail(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;this._checkId=nn.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:A})}destroy(){var A,e;(A=this._2dVideoContext)==null||A.destroy(),(e=this._glVideoContext)==null||e.destroy(),this.smallVideoContext.destroy(),nn.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(TQ||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(){let A=arguments.length>1?arguments[1]:void 0,e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"videoCtxGl")==="videoCtxGl"?512700:512701;A?ct.addFailedEvent({key:e,error:A}):ct.addSuccessEvent({key:e})}checkOrCreateVideoContext(){let A=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let e=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&A===this._hasVirtualBg)this.clear();else{if(!e||!this._use2d)return!0;this.clear()}}else{if(this._glVideoContext=new aC({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 A;return(A=this.smallDestination)==null?void 0:A.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var A;return(A=this.cameraTrack)==null?void 0:A.mediaTrack}setSmallVideo(A,e){if(this.smallMode!=="api")if(A){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new ZAA(this.smallVideoContext,A,this.log),this.smallVideoContext.on(aC.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=A.frameRate,this.smallDestination.resolution=A,e)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.resize(e.width,e.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:n}=this.cameraTrack.settings;this.smallTrackSource.resize(o,n),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(A){var e,o;try{let n=this.cameraTrack,{small:a,player:I}=n;TQ&&I.setCanvas(A);let c=A&&((e=this.destination)==null?void 0:e.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),c=this.arTrack),this.log.info("set main output ".concat(c?c.label:"no output track")),this.setSmallVideo(a,A),S.emit(K.LOCAL_VIDEO_TRACK_PREPROCESSED,{mediaTrack:c,profile:(o=this.cameraTrack)==null?void 0:o.profile,room:this.room}),n.setOutputMediaStreamTrack(c)}catch(n){this.log.error("set main output failed",n)}}update(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return DA(this,null,function*(){var e;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:o,profile:n}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(Il.RENDER,a=>{var I;(I=this.cameraTrack)==null||I.emit("render",a)})),al===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof FM?(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 FM?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(o.width,o.height);else if(A&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new zAA(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(Il.RENDER,u=>{var d;(d=this.cameraTrack)==null||d.emit("render",u)}));let{width:a,height:I}=this.cameraResolution,c=yield this.getWatermarkImage(a,I);this._waterMarkOption={x:0,y:0,width:c.width,height:c.height,image:c},this.cameraNode=new mtA(this.videoContext,{input:this.initialTrack,width:a,height:I,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=n.frameRate,this._use2d){let a=this.cameraNode;if(a.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new Zh(this.videoContext,this.log,this._isMirror,this._rotation),a=a.connect(this.transformNode),a.disconnect(),this.log.info("start mirror ".concat(this._isMirror," rotate ").concat(this.rotation))),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new o4(this.videoContext,this.log),a.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:I,height:c}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(I,c),I&&c&&this.waterMarkNode.resize(I,c)}(e=this.waterMarkNode)==null||e.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),a=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))}a.connect(this.destination)}return this.log.info("update ".concat(this._use2d?"2d":"webgl")),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var A;this.destination&&((A=this.destination.ctx2d)==null||A.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(A){var e,o,n,a,I;if(A instanceof Nm)return this.log.info("change screen input",(e=A.mediaTrack)==null?void 0:e.label),this.setScreenTrack(A);if(A instanceof Ru)return this.log.info("change video input",(o=A.mediaTrack)==null?void 0:o.label),this.setCameraTrack(A);if(A instanceof tG){this.log.info("change remote input",(n=A.mediaTrack)==null?void 0:n.label);let c=A.mediaTrack;return A.setOutputMediaStreamTrack(c)}if(A instanceof Fq)return this.log.info("change mix input",(a=A.outMediaTrack)==null?void 0:a.label),this.setMixTrack(A);this.log.warn("change unknown input",(I=A.mediaTrack)==null?void 0:I.label)}removeInput(A){var e;A instanceof Nm?((e=this.screenNode)==null||e.close(),delete this.screenNode,delete this.screenTrack,this.update()):A instanceof Ru?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):A instanceof tG?A.source&&A.source.context.destroy():A instanceof Fq&&(delete this.mixTrack,this.update())}setMixTrack(A){this.mixTrack=A}setCameraTrack(A){return this.cameraTrack=A,this.update(!0)}setScreenTrack(A){return DA(this,null,function*(){return this.screenTrack=A,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(A.mediaTrack):yield this.update()),A.setOutputMediaStreamTrack(A.mediaTrack)})}getWatermarkImage(A,e){return DA(this,null,function*(){let o=document.createElement("canvas");e&&A&&(o.height=e,o.width=A);let n=o.getContext("2d");if(!n)throw new Ct({code:Ge.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((a,I)=>a.zIndex-I.zIndex),this.watermarkImageList.forEach(a=>{let{image:I,x:c,y:u,width:d,height:R,fillVideo:k}=a,_=k&&A||d,Z=k&&e||R,iA=k?0:c,cA=k?0:u;n.drawImage(I,iA,cA,_,Z)}),Vf(o.toDataURL())})}pushWaterMarkImageList(A){let{type:e}=A;this.watermarkImageList.some(o=>o.imageUrl===A.imageUrl&&o.height===A.height&&o.width===A.width&&o.x===A.x&&o.y===A.y&&o.type===A.type&&o.zIndex===A.zIndex&&o.fillVideo===A.fillVideo)||((e==="mute"||e==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(o=>o.type!==e)),this.watermarkImageList.push(A))}setBeautyParams(A){return DA(this,null,function*(){this._beautyParams=A,this.update()})}stopBeauty(){return DA(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(A){return DA(this,null,function*(){let e;try{e=yield Vf(A?.imageElement||A.imageUrl)}catch{throw new Ct({code:Ge.INVALID_PARAMETER,message:"load image failed, url: ".concat(A.imageUrl)})}let{x:o=0,y:n=0,width:a=e.width,height:I=e.height,type:c="watermark",zIndex:u=2,fillVideo:d=!1}=A;this.watermarkImageList.some(R=>R.type===c)?(this.watermarkImageList=this.watermarkImageList.filter(R=>R.type!==c),this.pushWaterMarkImageList({x:o,y:n,width:a,height:I,image:e,zIndex:u,type:c,imageUrl:A.imageUrl,fillVideo:d}),e=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(e.width,e.height),this.waterMarkNode.image=e):this.update()):(this.pushWaterMarkImageList({x:o,y:n,width:a,height:I,image:e,zIndex:u,type:c,imageUrl:A.imageUrl,fillVideo:d}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(R,k)=>R==="imageUrl"?void 0:k))})}deleteWatermark(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"watermark";return DA(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(e=>e.type!==A),this.log.info("delete watermark",A,JSON.stringify(this.watermarkImageList,(e,o)=>e==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return DA(this,null,function*(){var A;(A=this.waterMarkNode)==null||A.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:o}=this.cameraResolution,n=yield this.getWatermarkImage(e,o);this._waterMarkOption={x:0,y:0,width:n.width,height:n.height,image:n},this.update()})}setVirtualBackground(A){return DA(this,null,function*(){var e,o,n;if(A){if(A.onAbort&&(this._virtualBackgroundAbortCallback=A.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=A.assetPath,A.type==="image"?this._virtualBackground=yield Vf(A.imageUrl):(this.blurRadius=A.blurLevel||this.blurRadius||3,this._virtualBackground=A.type),this._enableFaceCentering=(e=A.enableFaceCentering)!=null?e:this._enableFaceCentering,this._enableEffectOptimization=(o=A.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(n=A.color)!=null?n:[0,1,0]}else delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;if(this.log.info("".concat(this._virtualBackground?"start":"stop"," virtual background, ").concat(A?.type||"",", ").concat(this.blurRadius||"")),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new Ct({code:Ge.INVALID_OPERATION,message:"webgl context create failed, ".concat(this._glVideoContext.error)})})}get mixScreen(){return this._isMixScreen}set mixScreen(A){var e;this._isMixScreen=A,this._isMixScreen||((e=this.screenNode)==null||e.close(),delete this.screenNode),this.update()}set mirror(A){var e;this._isMirror!==A&&(this._isMirror=A,this._isTransform||((e=this.transformNode)==null||e.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(A){var e;this._rotation!==A&&(this._rotation=A,this._isTransform||((e=this.transformNode)==null||e.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(A){this.arTrack=A,this.isUsingArTrack=!0,this.update()}updateAr(){return DA(this,null,function*(){var A;(A=this.cameraTrack)!=null&&A.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var A;this.isUsingArTrack=!1,(A=this.arTrack)==null||A.stop(),this.arTrack=void 0,this.update()}createDecodeContext(A){return new RtA(A)}clear(){var A,e;(A=this.videoContext)==null||A.disconnect(),(e=this.destination)==null||e.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor(A){let{processor:e,type:o}=A;var n;this.encodePipeline.includes(e)||(this.encodePipeline[o]=e,(n=this.room)==null||n.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:o}=A;var n;this.decodePipeline.includes(e)||(this.decodePipeline[o]=e,(n=this.room)==null||n.enableInsertableStreams())}removeEncodeProcessor(A){let{type:e}=A;this.encodePipeline[e]=void 0}removeDecodeProcessor(A){let{type:e}=A;this.decodePipeline[e]=void 0}};vt([wW(function(A){this.log.error("update failed",A)}),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return DA(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield az,this.updated=new Promise((a,I)=>{A.apply(this,o).then(a,I),setTimeout(I,5e3,new Ct({code:Ge.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],sz.prototype,"update");var MtA=0,wtA=class extends Uo{constructor(A){super("room"),G(this,"seq",++MtA),G(this,"sdkAppId"),G(this,"userId"),G(this,"userSig"),G(this,"privateMapKey"),G(this,"latencyLevel"),G(this,"tinyId"),G(this,"scene"),G(this,"roomId"),G(this,"useStringRoomId"),G(this,"role","anchor"),G(this,"joinParams",null),G(this,"localPublishFlag",0),G(this,"localTracks",new Set),G(this,"enableAutoPlayDialog",!0),G(this,"autoReceiveAudio",!0),G(this,"autoReceiveVideo",!0),G(this,"proxy_ws"),G(this,"proxy_wt"),G(this,"proxy_unified"),G(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}}),G(this,"keyPointManager"),G(this,"audioManager"),G(this,"videoManager"),G(this,"callDurationCalculator"),G(this,"badCaseDetector"),G(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),G(this,"videoDecodeFallbackType"),G(this,"smallMode","canvas"),G(this,"prelinkPromise",null),G(this,"enableChorus",!1),G(this,"_isUsingCachedSchedule",!1),G(this,"_log"),G(this,"_joinedTimestamp",0),G(this,"_sdkType"),G(this,"heartbeatReport"),G(this,"heartbeatCount",0),G(this,"quality"),G(this,"enableSEI"),G(this,"isDestroyed",!1),this._log=nA.createLogger({parent:A.logger,id:"r".concat(this.seq)}),this.useStringRoomId=!!A.useStringRoomId,rn(A.autoReceiveAudio)&&(this.autoReceiveAudio=A.autoReceiveAudio),rn(A.autoReceiveVideo)&&(this.autoReceiveVideo=A.autoReceiveVideo),rn(A.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=A.enableAutoPlayDialog),this._sdkType=A.sdkType,this.keyPointManager=new utA({room:this,frameWorkType:A.frameWorkType,component:A.component,language:A.language}),this.callDurationCalculator=new QtA({room:this}),this.badCaseDetector=new htA({room:this}),this.audioManager=new ieA(this),this.videoManager=new sz(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let A of this.localTracks)if(4&A.mediaType)return!0;return!1}get isAuxStreamPublished(){for(let A of this.localTracks)if(2&A.mediaType)return!0;return!1}get hasAuxStream(){for(let A of this.remotePublishedUserMap.values())if(A.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let A of this.localTracks)if(1&A.mediaType)return A;return null}get localMainVideoTrack(){for(let A of this.localTracks)if(4&A.mediaType)return A;return null}get localAuxVideoTrack(){for(let A of this.localTracks)if(2&A.mediaType)return A;return null}get publishState(){let A={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(e=>{if(e.isPublished||e.isPublishing)switch(e.mediaType){case 1:A.audio=!0;break;case 4:A.bigVideo=!0,A.smallVideo=e.hasSmall;break;case 2:A.auxVideo=!0}}),A}get muteState(){var A,e,o;return{audio:!((A=this.localMainAudioTrack)==null||!A.muted),bigVideo:!((e=this.localMainVideoTrack)==null||!e.muted),auxVideo:!((o=this.localAuxVideoTrack)==null||!o.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(A){return DA(this,null,function*(){return this.publish(A)})}removeTrack(A){return DA(this,null,function*(){return this.unpublish(A)})}replaceTrack(A){return DA(this,null,function*(){})}setEncodedDataProcessingListener(A){throw new Error("Method not implemented.")}enableAIVoice(A){throw new Error("Method not implemented.")}setProxyServer(A){if(Sr(A))/^wss?:\/\//i.test(A)?this.proxy_ws=A:/^https?:\/\//i.test(A)&&(this.proxy_wt=A);else if(Cc(A)){let{websocketProxy:e,webtransportProxy:o,loggerProxy:n,scheduleProxy:a,unifiedProxy:I}=A;this.proxy_ws=e,this.proxy_wt=o,this.proxy_unified=I,I?(Pq([I,I]),wf("https://".concat(I))):(n&&wf(n),a&&Pq(a))}S.once(K.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:jQ.main,sched_back_domain:jQ.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return DA(this,null,function*(){let A={};return this.remotePublishedUserMap.forEach(e=>{A[e.userId]=e.remoteAudioTrack.stat}),A})}getTransportStats(){return DA(this,null,function*(){var A;let e={rtt:((A=this.quality)==null?void 0:A.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return DA(this,arguments,function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"main";return function*(){let o={};return A.remotePublishedUserMap.forEach(n=>{let a=e==="auxiliary"?n.remoteAuxiliaryTrack:n.remoteVideoTrack;o[n.userId]=a.stat}),o}()})}checkDestroy(){if(this.isDestroyed)throw new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(ts.INVALID_DESTROY),new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.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,S.emit(K.ROOM_DESTROY,{room:this})}schedule(A,e){return DA(this,null,function*(){var o,n,a,I;let c=ki();try{let{isCached:u,result:d,detailCost:R}=yield m4({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?A.strRoomId:A.roomId,useStringRoomId:this.useStringRoomId,version:il,userSig:this.userSig,role:this.scene==="live"?A.role:void 0,frameWorkType:e,latencyLevel:A.latencyLevel});this._isUsingCachedSchedule=u,this._log.info("schedule cache:".concat(+u," ").concat(nl(d,{keysToExclude:["username","credential"]}))),u&&S.once(K.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=bt(bt({},this.scheduleResult),d),hr((o=d.config)==null?void 0:o.retryCount)&&bR(d.config.retryCount),Sr((n=d.config)==null?void 0:n.loggerDomain)&&wf(d.config.loggerDomain),this.videoDecodeFallbackType=((a=d.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((I=d.config)==null?void 0:I.smallMode)||this.smallMode,S.emit(K.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:R}),ct.addSuccessEvent({key:521700,cost:ki()-c})}catch(u){throw ct.addFailedEvent({key:521700,error:u}),u}})}sendAbilityStatus(A){}enableInsertableStreams(){return Promise.resolve()}switchRoom(A){return Promise.reject()}isSwitchRoomSupported(){return!1}prelink(A,e,o,n,a,I){return DA(this,null,function*(){return Promise.resolve()})}closePrelink(){return DA(this,null,function*(){return Promise.resolve()})}},StA=es(hg()),gz=es(cN());function Iz(A){var e;let o=[];for(let n=0;n<A.rtp.length;n++){if(["rtx","red","ulpfec"].includes(A.rtp[n].codec))continue;let a=A.fmtp.filter(I=>I.payload===A.rtp[n].payload)[0];o.push({payload:A.rtp[n].payload,codec:A.rtp[n].codec,fmtp:a?a.config:"",rate:A.rtp[n].rate,rtx:((e=A.rtp[n+1])==null?void 0:e.codec)==="rtx"?A.rtp[n+1].payload:0,rtcpfb:(A?.rtcpFb||[]).filter(I=>I.payload===A.rtp[n].payload).map(I=>{let{type:c,subtype:u}=I;return{id:c,params:u?[u]:[]}})})}return o}var vtA=(A,e,o)=>DA(null,null,function*(){var n;let a=rs(A),I={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:o};I.ice.ufrag=String(a.media[0].iceUfrag),I.ice.password=a.media[0].icePwd||"",a.fingerprint&&(I.dtls.hash=a.fingerprint.type,I.dtls.fingerprint=a.fingerprint.hash,I.dtls.setup=a.setup||""),a.media[0].fingerprint&&(I.dtls.hash=a.media[0].fingerprint.type,I.dtls.fingerprint=a.media[0].fingerprint.hash),I.dtls.setup=a.media[0].setup||"";let c=a.media[0],u=a.media[1];c.ext&&(I.audio.extensions=c.ext.map(R=>({id:R.value,uri:R.uri}))),u.ext&&(I.video.extensions=u.ext.map(R=>({id:R.value,uri:R.uri})));for(let R of c.rtp){if(R.codec!=="opus")continue;let k=c.fmtp.find(Z=>Z.payload===R.payload);if(!k)continue;let _={codec:R.codec,fmtp:k.config,payload:k.payload,rate:R.rate,channels:R.encoding,rtcpfb:[],rtx:0};(n=c.rtcpFb)==null||n.forEach(Z=>{let{payload:iA,type:cA,subtype:TA}=Z;if(iA===_.payload){let JA={id:cA,params:[]};TA&&JA.params.push(TA),_.rtcpfb.push(JA)}}),I.audio.codecs.push(_);break}let d=["h264","vp8","h265"];return e&&d.shift(),I.video.codecs=[...Iz(u)].filter(R=>d.includes(R.codec.toLocaleLowerCase())),I.video.decoders=(yield function(){return DA(this,null,function*(){let R=new RTCPeerConnection;R.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_RECVONLY});let k=yield R.createOffer();if(!k.sdp)return[];let _=Iz(rs(k.sdp).media[0]);return R.close(),_})}()).filter(R=>["h264","vp8","h265"].includes(R.codec.toLocaleLowerCase())),I}),cz=(A,e)=>{let o=(A||"").trim(),n=(e||"").trim(),a="profile-level-id",I="".concat(a,"=[0-9a-fA-F]{6}");if(new RegExp(I).test(o)){let u=new RegExp(I,"g");return o.replace(u,"".concat(a,"=").concat(n))}if(!o)return"".concat(a,"=").concat(n);let c=o.endsWith(";")?"":";";return"".concat(o).concat(c).concat(a,"=").concat(n)},NtA=A=>{let{serverAbility:e,clientAbility:o,offerSDP:n,enableCustomMessage:a,profileLevelIdConfig:I}=A,c=rs(n),u={extmapAllowMixed:"extmap-allow-mixed",groups:c.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},d={candidates:e.candidates.map(k=>({component:1,foundation:"1",generation:0,ip:k.ip,port:k.port,priority:k.priority,transport:k.foundation,type:k.type})),connection:{version:4,ip:"0.0.0.0"},direction:fA.TRANSCEIVER_DIRECTION_RECVONLY,ext:e.audio.extensions.map(k=>({value:k.id,uri:k.uri})),fingerprint:{type:e.dtls.hash,hash:e.dtls.fingerprint},fmtp:[{payload:e.audio.codecs[0].payload,config:e.audio.codecs[0].fmtp}],icePwd:e.ice.password,iceUfrag:e.ice.ufrag,mid:"0",payloads:String(e.audio.codecs[0].payload),port:c.media[0].port,protocol:c.media[0].protocol,type:fA.AUDIO,setup:e.dtls.setup,rtcpFb:e.audio.codecs[0].rtcpfb.map(k=>({payload:e.audio.codecs[0].payload,type:k.id,subtype:k.params[0]})),rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[{payload:e.audio.codecs[0].payload,codec:e.audio.codecs[0].codec,rate:e.audio.codecs[0].rate,encoding:e.audio.codecs[0].channels}]};u.media.push(d);let R=[I?.big,I?.small,I?.aux];return[1,2,3].forEach((k,_)=>{u.media.push(Ez({mid:k,serverAbility:e,clientAbility:o,parsedOffer:c,profileLevelId:R[_]}))}),a&&u.media.push(c.media.find(k=>k.mid==="dc")),$h(u)},Ez=A=>{let{mid:e,serverAbility:o,clientAbility:n,parsedOffer:a,isDownlink:I=!1,profileLevelId:c}=A,u={candidates:o.candidates.map(d=>({component:1,foundation:"1",generation:0,ip:d.ip,port:d.port,priority:d.priority,transport:d.foundation,type:d.type})),connection:{version:4,ip:"0.0.0.0"},direction:fA.TRANSCEIVER_DIRECTION_RECVONLY,ext:o.video.extensions.map(d=>({value:d.id,uri:d.uri})),fingerprint:{type:o.dtls.hash,hash:o.dtls.fingerprint},fmtp:[],icePwd:o.ice.password,iceUfrag:o.ice.ufrag,mid:String(e),payloads:"",port:a.media[0].port,protocol:a.media[0].protocol,type:fA.VIDEO,setup:o.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(I){let d=o.video.decoders;(!d||d.length===0)&&(d=o.video.codecs),(!d||d.length===0)&&(d=n.video.decoders),d.forEach(R=>{HM(u,R)})}else{let d;d=o.useH265?o.video.codecs.findIndex(k=>k.codec.toLowerCase()==="h265"):o.video.codecs.findIndex(k=>k.codec.toLowerCase()===(o.useVp8?"vp8":"h264"));let R=o.video.codecs[d]||n.video.codecs[0];HM(u,R)}if(!I&&c){let d=u.fmtp,R=u.rtp.find(k=>{var _;return((_=k.codec)==null?void 0:_.toLowerCase())==="h264"});if(R){let k=d.find(_=>String(_.payload)===String(R.payload));k&&(k.config=cz(k.config,c))}}return u},HM=(A,e)=>{A.payloads="".concat(A.payloads," ").concat(e.payload).trim(),A.fmtp.push({payload:e.payload,config:e.fmtp}),A.rtcpFb=[...A.rtcpFb||[],...e.rtcpfb.map(o=>({payload:e.payload,type:o.id,subtype:o.params[0]}))],A.rtp.push({payload:e.payload,codec:e.codec.toUpperCase(),rate:e.rate}),e.rtx&&(A.payloads="".concat(A.payloads," ").concat(e.rtx),A.fmtp.push({payload:e.rtx,config:"apt=".concat(e.payload)}),A.rtp.push({payload:e.rtx,codec:"rtx",rate:e.rate}))},TtA=(A,e,o)=>{let n=gz.default.parse(A);return n.media.forEach((a,I)=>{var c;if((a.type===fA.AUDIO||a.type===fA.VIDEO)&&(function(u){if(!u.rtcpFb)return;let d=[];u.rtcpFb.forEach((R,k)=>{var _;d.push(R),u.rtcpFb&&((_=u.rtcpFb[k+1])==null?void 0:_.payload)!==R.payload&&R.type!=="rrtr"&&d.push({payload:R.payload,type:"rrtr"})}),u.rtcpFb=d}(a),function(u){u.type===fA.VIDEO&&u.fmtp&&u.fmtp.forEach(d=>{d.config.includes("apt")||(d.config+=";sps-pps-idr-in-keyframe=1")})}(a),function(u){u.type===fA.AUDIO&&u.fmtp&&u.fmtp.forEach(d=>{d.config+=";sprop-stereo=1;stereo=1"})}(a),function(u){let d=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"]);u.ext&&(u.ext=u.ext.filter(R=>!d.has(R.uri)))}(a),a.type===fA.VIDEO)){if(I<4)a.payloads="",a.fmtp=[],a.rtp=[],a.rtcpFb=[],e.video.codecs.forEach(u=>HM(a,u));else if(o){a.payloads="",a.fmtp=[],a.rtp=[],a.rtcpFb=[];let u=o.video.decoders;(!u||u.length===0)&&(u=o.video.codecs),(!u||u.length===0)&&(u=e.video.decoders),u.forEach(d=>HM(a,d))}}(c=a.payloads)!=null&&c.includes("datachannel")&&n.groups&&a.mid&&(n.groups[0].mids=n.groups[0].mids.replace(a.mid,"dc"),a.mid="dc")}),gz.default.write(n)};function EK(A){var e,o;let n=/profile-level-id=([0-9a-fA-F]{6})/.exec(A);return(o=(e=n?.[1])==null?void 0:e.toLowerCase())!=null?o:null}function lK(A){let e=A.toLowerCase();if(!/^[0-9a-f]{6}$/.test(e))return"unknown";let o=parseInt(e.slice(0,2),16);return o===66?"baseline":o===77?"main":o===100?"high":"unknown"}function lz(A,e){if(!e)return"";let o=A.trim().toLowerCase().replace(/_/g,"-");if(!o)return"";if(/^[0-9a-f]{6}$/.test(o))return o;if(o!=="baseline"&&o!=="main"&&o!=="high")return"";for(let n of e.video.codecs){let a=EK(n.fmtp);if(a&&lK(a)===o)return a}return""}var GtA=es(hg()),Cz=class extends GtA.EventEmitter{constructor(A){super(),this.room=A,G(this,"mainFpsHealth",1),G(this,"mainBitrateHealth",1),G(this,"badMainBitrateHealthCount",0),G(this,"lastEmitBadHealthTime",0),G(this,"log"),!ra&&Bc&&S.on("262",this.onVideoCodecChanged,this),this.log=A.getLogger().createChild({id:"h-d"})}onVideoCodecChanged(A){let{remoteUserId:e,streamType:o,isHWCodec:n,codec:a}=A;if(!e&&o!==7&&a==="h264"){if(!n)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(A){Date.now()-this.lastEmitBadHealthTime<3e4||(A.msg_up_stream_info.msg_video_status.forEach(e=>{if(e.uint32_video_enc_fps&&e.uint32_video_capture_fps){let o=e.uint32_video_enc_fps/e.uint32_video_capture_fps;e.uint32_video_stream_type===2&&(this.mainFpsHealth=o)}if(e.uint32_video_codec_bitrate&&e.uint32_video_stream_type===2){let{localMainVideoTrack:o}=this.room;o&&(this.mainBitrateHealth=e.uint32_video_codec_bitrate/1e3/o.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(){S.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};G(Cz,"EVENT_BAD_HEALTH","bad_health");var ktA=Cz,VM=(A=>(A.TRACK="track",A.DATA_CHANNEL_MESSAGE="data_channel_msg",A[A.CONNECTION_STATE_CHANGED="connection-state-changed"]="CONNECTION_STATE_CHANGED",A[A.FIREWALL_RESTRICTION="firewall-restriction"]="FIREWALL_RESTRICTION",A.RECONNECTED="spc-reconnected",A.RECONNECT_FAILED="spc-reconnect-failed",A.ERROR="error",A.SEI_MESSAGE="sei-message",A.DUMP="dump",A))(VM||{}),_tA=1,Ap=class extends StA.default{constructor(A){let{signalChannel:e,room:o,enableDataChannel:n}=A;super(),G(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),G(this,"isDestroyed",!1),G(this,"currentState","DISCONNECTED"),G(this,"_room"),G(this,"_signalChannel"),G(this,"_peerConnection",null),G(this,"_datachannel",null),G(this,"_enableDataChannel"),G(this,"_log"),G(this,"_downlinkMIDMap",new Map),G(this,"_downlinkMIDUserIDMap",new Map),G(this,"_reconnectionTimer",-1),G(this,"reconnectionCount",0),G(this,"clientAbility"),G(this,"_serverAbility",null),G(this,"addDownlinkQueue",new Set),G(this,"removeDownlinkQueue",new Set),G(this,"_parsedAnswer",null),G(this,"_updateSDPPromise",null),G(this,"_waitForPCConnectedPromise"),G(this,"clearWaitForConnectedPromise"),G(this,"clearConnectTimeout"),G(this,"_isSDPLogged",!1),G(this,"enableInsertableStreams",!1),G(this,"insertableStreamsAbortMap",new Map),G(this,"receiverRemoteTrackMap",new WeakMap),G(this,"scriptTransformWorker"),G(this,"_isRelayTried",!1),G(this,"_rttOverCount",0),G(this,"originOffer",null),G(this,"autoSubscribedSsrcGroups",new Map),G(this,"autoSubscribedUserMap",new Map),G(this,"_h265DecodeFailed",!1),this._room=o,this._enableDataChannel=n,this._signalChannel=e,this._log=nA.createLogger({parent:this._room.getLogger(),id:"spc".concat(_tA++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(xQ?this.enableInsertableStreams=!0:this.initScriptTransformWorker()),this._room.healthDetector.on("1",this.onBadHealth,this)}get isH264EncodeSupported(){let A=this._room.checkSystemResult.detail.isH264EncodeSupported;return this._serverAbility&&(A=A&&!!this._serverAbility.video.codecs.find(e=>e.codec.toLowerCase()==="h264")),A}addAbortController(A,e){var o;(o=this.insertableStreamsAbortMap.get(A))==null||o.abort("destroy"),this.insertableStreamsAbortMap.set(A,e)}get isVP8EncodeSupported(){let A=this._room.checkSystemResult.detail.isVp8EncodeSupported;return this._serverAbility&&(A=A&&this._serverAbility.video.codecs.find(e=>e.codec.toLowerCase()==="vp8")),A}get isH265EncodeSupported(){let A=this._room.checkSystemResult.detail.isH265EncodeSupported;return this._serverAbility&&(A=A&&!!this._serverAbility.video.codecs.find(e=>e.codec.toLowerCase()==="h265")),A}get videoCodec(){var A,e,o;let n=(A=this._parsedAnswer)==null?void 0:A.media[1].rtp.find(a=>["h264","vp8","h265"].includes(a.codec.toLowerCase()));return n?n.codec.toLowerCase():(e=this._serverAbility)!=null&&e.useH265?"h265":(o=this._serverAbility)!=null&&o.useVp8?"vp8":"h264"}get downlinkVideoCodec(){var A,e,o;return(A=this._serverAbility)!=null&&A.useH265&&(e=this._serverAbility)!=null&&e.video.decoders.find(n=>n.codec.toLowerCase()==="h265")&&!this._h265DecodeFailed?"h265":(o=this._serverAbility)!=null&&o.video.decoders.find(n=>n.codec.toLowerCase()==="h264")?"h264":"vp8"}get isUsingH264(){return this.videoCodec==="h264"}get isUsingH265(){return this.videoCodec==="h265"}get isUsingVP8(){return this.videoCodec==="vp8"}get is42001fSupported(){return!!this.clientAbility&&!!this.clientAbility.video.codecs.find(A=>A.fmtp.includes("42001f"))}isProfileLevelIdSupported(A){return!!this.clientAbility&&!!this.clientAbility.video.codecs.find(e=>e.fmtp.includes(A))}get uplinkSSRC(){return this._peerConnection&&this._peerConnection.localDescription?(A=>{let e=rs(A),o={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return e.media.forEach((n,a)=>{var I;if(n.ssrcs&&!Ee(n.ssrcs[0].id)){let c=Number(n.ssrcs[0].id),u=Number((I=n.ssrcs.filter(d=>d.attribute==="cname")[1])==null?void 0:I.id);switch(a){case 0:o.audioSsrc=c;break;case 1:o.bigVideoSsrc=c,o.bigVideoRtxSsrc=u;break;case 2:o.smallVideoSsrc=c,o.smallVideoRtxSsrc=u;break;case 3:o.auxVideoSsrc=c,o.auxVideoRtxSsrc=u}}}),o})(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth(A){}initScriptTransformWorker(){MM&&(this.scriptTransformWorker=k4({videoEncodePipeline:this._room.videoManager.encodePipeline,videoDecodePipeline:this._room.videoManager.decodePipeline,audioEncodePipeline:this._room.audioManager.encodePipeline,audioDecodePipeline:this._room.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=A=>{A.data.type==="sei"?this.emit("sei-message",A.data):A.data.type,A.data.type==="dump"&&this.emit("dump",A.data)},this.scriptTransformWorker.onerror=A=>{this._log.error("scriptTransformWorker error: ",A.message)})}get isReconnecting(){return this.currentState==="RECONNECTING"||this._reconnectionTimer>0||this.reconnectionCount>0}get dtlsTransport(){if(!this._peerConnection)return null;let A=this._peerConnection.getSenders();return A.length===0?null:A[0].transport}getPeerConnectionConfig(A){var e;let o={encodedInsertableStreams:this.enableInsertableStreams,offerExtmapAllowMixed:!0,iceServers:A,iceTransportPolicy:this._room.getIceTransportPolicy(),sdpSemantics:this._room.sdpSemantics,bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},n=(e=this._peerConnection)==null?void 0:e.getConfiguration().encodedInsertableStreams;return NO(n)&&(o.encodedInsertableStreams=n),this._log.debug("getPeerConnectionConfig",JSON.stringify(o)),o}initialize(A){return DA(this,null,function*(){var e;let o;try{return this._peerConnection=new RTCPeerConnection(this.getPeerConnectionConfig(A)),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let n=this._peerConnection.iceConnectionState;this._log.debug("ice state: ".concat(n)),n==="checking"&&this.stat.iceStartTime===0?this.stat.iceStartTime=Date.now():n==="connected"&&this.stat.iceEndTime===0?(this.stat.iceEndTime=Date.now(),this._signalChannel.clearBakRelayIps(),ct.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):n==="failed"&&ct.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var n;let a=((n=this._peerConnection)==null?void 0:n.signalingState)||"";this._log[a==="closed"?"debug":"info"]("signaling state: ".concat(a))},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=n=>this.emit("track",n),this._enableDataChannel&&(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=n=>{let a=new LtA(n.data);this.emit("data_channel_msg",{data:a})},this._datachannel.onerror=n=>{this._log.warn("datachannel error",n)}),this._peerConnection.addTransceiver(fA.AUDIO,{direction:fA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_SENDONLY}),o=yield this._peerConnection.createOffer(),this.clientAbility=yield vtA(o.sdp,((e=this._room.scheduleResult.config)==null?void 0:e.remove264FromSDP)||!1,this._enableDataChannel),this.originOffer=o,this.dtlsTransport&&(this.dtlsTransport.onstatechange=()=>{let{dtlsTransport:n}=this;n&&(this._log.debug("dtls state: ".concat(n.state)),n.state==="connecting"&&this.stat.dtlsStartTime===0?this.stat.dtlsStartTime=Date.now():n.state==="connected"&&this.stat.dtlsEndTime===0&&(this.stat.dtlsEndTime=Date.now()))}),ct.addSuccessEvent({key:521707}),this.clientAbility}catch(n){throw ct.addFailedEvent({key:521707,error:n}),this._log.error("initialize failed ".concat(n,`
offer: `).concat(o?.sdp)),n}})}setIceServers(A){return DA(this,null,function*(){var e;if(this._peerConnection&&A.length!==0)try{if(this._log.info("setIceServers",JSON.stringify(A,(o,n)=>o==="username"||o==="credential"?"hided":n)),this._peerConnection.setConfiguration(this.getPeerConnectionConfig(A)),(e=this._peerConnection)!=null&&e.localDescription||!this.originOffer)return void this._log.warn("setIceServers already has localDescription or no origin Offer");yield this.setOffer(this.originOffer)}catch(o){this._log.warn("setIceServers error ",o)}})}setPriority(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"high";if(this._peerConnection)try{this._peerConnection.getSenders().forEach(e=>{let o=e.getParameters();o.encodings[0]&&(o.encodings[0].priority=A,o.encodings[0].networkPriority=A,e.setParameters(o).catch(n=>{this._log.warn("setPriority error ",n)}))})}catch(e){this._log.warn("setPriority error ",e)}}connect(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){var o,n,a;try{if(this.currentState==="CONNECTED")return;((o=this._peerConnection)==null||!o.localDescription)&&this.originOffer&&(yield this.setOffer(this.originOffer));let I=ki(),c=this.getProfileLevelIdConfig(),u={type:"answer",sdp:NtA({serverAbility:A,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableDataChannel,profileLevelIdConfig:c})};this._serverAbility=A,yield this.setAnswer(u),yield this.waitForPeerConnectionConnected(),this._room.firewallDetector.resetTimeoutCount();let d=((n=this._room.scheduleResult.config)==null?void 0:n.priority)||((a=this._room.joinParams)==null?void 0:a.priority)||new URLSearchParams(location.search).get("priority");d&&this.setPriority(d),e||ct.addSuccessEvent({key:521703,cost:ki()-I})}catch(I){let c=I instanceof Ct&&I.code===Ge.API_CALL_ABORTED;throw c||this._log.error("connect failed: ".concat(I),A),this.reset(),!c&&!this.isReconnecting&&!this.isDestroyed&&(ct.addFailedEvent({key:521703,error:I}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),I}})}reconnect(){return DA(this,null,function*(){if(this._reconnectionTimer===-1){if(!this._signalChannel.isConnected)return this._log.warn("reconnect() wait signal channel is connected"),void this._signalChannel.once(gG,this.reconnect,this);try{this.reconnectionCount+=1,this._log.warn("reconnect() trying [".concat(this.reconnectionCount,"]")),this.reset();let A=this._signalChannel.getBackupRelayIpPair(),e=yield this.initialize(this._room.getIceServers(A!=null&&A.iceServer?[A.iceServer]:[])),o=bt({ability:e},A),n=yield this._signalChannel.sendWaitForResponse({command:etA,responseCommand:io.REBUILD_PEER_CONNECTION_RES,data:o,enableLog:!1});if(n.data.code!==0)throw new Ct({code:n.data.code,message:n.data.message});yield this.connect(n.data.data.ability,!0),ct.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),S.emit(K.SPC_RECONNECTED,{room:this._room}),this.emit("spc-reconnected")}catch(A){if(!this.isReconnecting||this.isDestroyed)return;if(A!=null&&A.message.includes("timeout")){let e=fQ(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield AC(e,o=>{this._reconnectionTimer=o}),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(A?.code," ").concat(A)),ct.addFailedEvent({key:521704,error:A}),this.reconnectionCount>=Ch()&&this._log.warn("SDK has tried reconnect for ".concat(Ch()," 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 DA(this,null,function*(){this.isReconnecting||(this._log.warn("start reconnect"),this._updateSDPPromise=null,this.emitConnectionStateChangedEvent("RECONNECTING"),yield this.reconnect())})}stopReconnection(){var A;this.isReconnecting&&(this._log.info("stop reconnect"),this.reconnectionCount=0,this.clearReconnectionTimer(),(A=this.clearConnectTimeout)==null||A.call(this),this._signalChannel.off(gG,this.reconnect,this),this.currentState==="RECONNECTING"&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var A;!this.isReconnecting&&((A=this._peerConnection)==null?void 0:A.connectionState)===hi.CLOSED&&this.startReconnection()}clearReconnectionTimer(){this._reconnectionTimer!==-1&&(clearTimeout(this._reconnectionTimer),this._reconnectionTimer=-1)}onConnectionStateChange(A){var e;let o=((e=this._peerConnection)==null?void 0:e.iceConnectionState)||"closed",n=this.getDTLSTransportState();this._log.info("connectionState: ".concat(A.target.connectionState," ICE: ").concat(o," DTLS: ").concat(n)),A.target.connectionState===hi.CONNECTING&&(this.stat.peerConnectionStartTime===0&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(A.target.connectionState===hi.FAILED||A.target.connectionState===hi.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(A.target.connectionState===hi.CONNECTED||A.target.connectionState===hi.COMPLETED)&&(this.stat.peerConnectionEndTime===0&&(this.stat.peerConnectionEndTime=Date.now()),S.emit(K.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 AB;let A=null;return AI()&&this._peerConnection.getSenders().length!==0?(A=this._peerConnection.getSenders()[0].transport,Ph()&&this._peerConnection.getReceivers().length!==0&&A?A.state:AB):AB}emitConnectionStateChangedEvent(A){A!==this.currentState&&(this.currentState==="RECONNECTING"&&A==="CONNECTING"||(this.emit(VM.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:A}),this.currentState=A))}logSelectedCandidate(){return DA(this,null,function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[e,o]of A)if(Cm(o)){let n=A.get(o.localCandidateId),a=A.get(o.remoteCandidateId);n&&(this._log.info("local candidate: ".concat(n.candidateType," ").concat(n.protocol,":").concat(n.ip||n.address,":").concat(n.port," ").concat(n.networkType||""," ").concat(n.relayProtocol?"relayProtocol:".concat(n.relayProtocol," url: ").concat(n.url):"")),n.networkType&&KR(n.networkType)),a&&this._log.info("remote candidate: ".concat(a.candidateType," ").concat(a.protocol,":").concat(a.ip||a.address,":").concat(a.port));break}})}waitForPeerConnectionConnected(){return this._waitForPCConnectedPromise||(this._waitForPCConnectedPromise=new Promise((A,e)=>{if(this.currentState==="CONNECTED")return A();let o=c=>{c.state==="CONNECTED"&&(clearTimeout(I),a(),A())},n=c=>{let{room:u}=c;u===this._room&&(clearTimeout(I),a(),e(new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.CONNECTION_ABORTED,data:"leave room"})})))},a=()=>{S.off(K.LEAVE_SUCCESS,n,this),this.off(VM.CONNECTION_STATE_CHANGED,o,this)},I=setTimeout(()=>{a();let c=new Ct({code:Ge.API_CALL_TIMEOUT,message:"connection timeout"});this._room.firewallDetector.increaseTimeoutCount(),e(c)},yN);this.clearConnectTimeout=()=>{a(),clearTimeout(I),delete this.clearConnectTimeout},this.clearWaitForConnectedPromise=()=>{this._waitForPCConnectedPromise=null,e(new Ct({code:Ge.API_CALL_TIMEOUT,message:"connection timeout"}))},S.on(K.LEAVE_SUCCESS,n,this),this.on(VM.CONNECTION_STATE_CHANGED,o,this)}),this._waitForPCConnectedPromise=this._waitForPCConnectedPromise.finally(()=>{this._waitForPCConnectedPromise=null,delete this.clearConnectTimeout})),this._waitForPCConnectedPromise}waitForReconnected(){return this.isReconnecting?new Promise((A,e)=>{this.once("spc-reconnected",A),this.once("error",e)}):Promise.resolve()}addDownlink(A){return DA(this,null,function*(){if(this._log.info("addDownlink(".concat(A.userId,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise),this.updateLocalAndRemoteSDPConfig(A),this.addDownlinkQueue.size===0)try{yield this.updateSDP(),this._log.info("addDownlink(".concat(A.userId,") done"))}catch(e){this._log.error("addDownlink(".concat(A.userId,") failed ").concat(e)),yield this.startReconnection()}})}updateLocalAndRemoteSDPConfig(A){let{ssrc:e,userId:o,tinyId:n,prevMids:a}=A;if(!this._peerConnection)return;this._log.info("updateLocalAndRemoteSDPConfig ".concat(o," ").concat(JSON.stringify(e))),this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp));let I,c,u,d=this._parsedAnswer.media.filter(_=>{var Z;return(Z=_.ssrcs)==null?void 0:Z.find(iA=>{var cA;return(cA=iA.value)==null?void 0:cA.includes(n)})});if(d.length===3)I=d[0],c=d[1],u=d[2];else{let _,Z=this._peerConnection.getTransceivers().slice(4);if(a?.length===3&&a.every(cA=>{var TA;return((TA=Z.find(JA=>Number(JA.mid)===cA))==null?void 0:TA.direction)==="inactive"})?(_=a,this._log.info("reusing previous mids for ".concat(o,": ").concat(_.join(","))),Z.forEach(cA=>{_.includes(Number(cA.mid))&&(cA.direction=fA.TRANSCEIVER_DIRECTION_RECVONLY)})):_=Z.filter(cA=>cA.direction==="inactive").slice(0,3).map(cA=>(cA.direction=fA.TRANSCEIVER_DIRECTION_RECVONLY,Number(cA.mid))),_.length===3)I=this._parsedAnswer.media.find(cA=>Number(cA.mid)===Number(_[0])),c=this._parsedAnswer.media.find(cA=>Number(cA.mid)===Number(_[1])),u=this._parsedAnswer.media.find(cA=>Number(cA.mid)===Number(_[2]));else if(_.length===0){this._peerConnection.addTransceiver(fA.AUDIO,{direction:fA.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(fA.VIDEO,{direction:fA.TRANSCEIVER_DIRECTION_RECVONLY}),I=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let cA=Ez({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:rs(this._peerConnection.localDescription.sdp),isDownlink:!0});c=JSON.parse(JSON.stringify(cA)),u=JSON.parse(JSON.stringify(cA)),I.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(I),c.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(c),u.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(u)}}I.direction=fA.TRANSCEIVER_DIRECTION_SENDONLY;let R="".concat(n,"-").concat(e.audio);I.ssrcs=[{id:e.audio,attribute:"cname",value:"".concat(R)},{id:e.audio,attribute:"msid",value:"".concat(R,"-").concat(fA.MAIN," ").concat(R,"-audio")}],c.direction=fA.TRANSCEIVER_DIRECTION_SENDONLY,c.ssrcs=[{id:e.video,attribute:"cname",value:"".concat(R)},{id:e.video,attribute:"msid",value:"".concat(R,"-").concat(fA.MAIN," ").concat(R,"-bigvideo")},{id:e.videoRtx,attribute:"cname",value:"".concat(R)},{id:e.videoRtx,attribute:"msid",value:"".concat(R,"-").concat(fA.MAIN," ").concat(R,"-bigvideo")}],c.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.video," ").concat(e.videoRtx)}],u.direction=fA.TRANSCEIVER_DIRECTION_SENDONLY;let k="".concat(R,"-aux");u.ssrcs=[{id:e.auxiliary,attribute:"cname",value:k},{id:e.auxiliary,attribute:"msid",value:"".concat(k," ").concat(R,"-aux").concat(fA.VIDEO)},{id:e.auxiliaryRtx,attribute:"cname",value:"".concat(k," ").concat(R,"-aux").concat(fA.VIDEO)},{id:e.auxiliaryRtx,attribute:"msid",value:"".concat(k," ").concat(R,"-aux").concat(fA.VIDEO)}],u.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.auxiliary," ").concat(e.auxiliaryRtx)}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map(_=>_.mid).join(" ")),this._downlinkMIDMap.set(o,[I.mid,c.mid,u.mid]),this._downlinkMIDUserIDMap.set(I.mid,o),this._downlinkMIDUserIDMap.set(c.mid,o),this._downlinkMIDUserIDMap.set(u.mid,o)}removeDownlink(A){return DA(this,null,function*(){if(!this._downlinkMIDMap.has(A)||!this._peerConnection)return;this._log.info("removeDownlink(".concat(A,") trying")),this.isReconnecting&&(yield this.waitForReconnected()),this._updateSDPPromise&&(yield this._updateSDPPromise);let e=this._downlinkMIDMap.get(A),o=!1;return this._peerConnection.getTransceivers().forEach(n=>{e!=null&&e.includes(Number(n.mid))&&(o=!0,n.direction="inactive")}),this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach(n=>{e!=null&&e.includes(Number(n.mid))&&(o=!0,n.direction="inactive",n.ssrcs=[],n.ssrcGroups=[])}),this.removeDownlinkQueue.size===0&&o&&(yield this.updateSDP()),this._downlinkMIDMap.delete(A),e?.forEach(n=>this._downlinkMIDUserIDMap.delete(n)),this._log.info("removeDownlink(".concat(A,") done")),e})}setBandwidth(A){return DA(this,null,function*(){if(!this._peerConnection)return;let{audio:e,bigVideo:o,smallVideo:n,auxVideo:a}=A;try{if(TT()){let I=this._peerConnection.getSenders().slice(0,4);for(let u=0;u<I.length;u++){let d,R=I[u];u===0&&e?d=e:u===1&&o?d=o:u===2&&n?d=n:u===3&&a&&(d=a),d&&(yield this.setSenderMaxBitrate(R,d))}let c=!1;o&&I[1].track&&(c=this.setStartBitrate(1,o)),a&&I[3].track&&(c=this.setStartBitrate(3,a)||c),c&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(A);this._log.info("setBandwidth ".concat(JSON.stringify(A)))}catch(I){this._log.error("failed to set bandwidth: ".concat(I))}})}setStartBitrate(A,e){var o,n;return!((o=this._peerConnection)==null||!o.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp)),(n=this._parsedAnswer.media[A])==null||!n.fmtp[0]))&&(this._parsedAnswer.media[A].fmtp[0].config+=";x-google-start-bitrate=".concat(e>5e3?5e3:e),!0)}setSenderMaxBitrate(A,e){let o=A.getParameters();if((!o.encodings||o.encodings.length===0)&&(o.encodings=[{}]),e==="unlimited")delete o.encodings[0].maxBitrate;else{if(o.encodings[0].maxBitrate===1e3*e)return;o.encodings[0].maxBitrate=1e3*e}return A.setParameters(o)}setBandwidthBySDP(A){let{audio:e,bigVideo:o,smallVideo:n,auxVideo:a}=A;if(!this._peerConnection||!this._peerConnection.localDescription)return;let I=rs(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp));let c=Yr?"TIAS":"AS";e&&(I.media[0].bandwidth=[{type:c,limit:Yr?1e3*e:e}],this._parsedAnswer.media[0].bandwidth=[{type:c,limit:Yr?1e3*e:e}]),o&&(I.media[1].bandwidth=[{type:c,limit:Yr?1e3*o:o}],this._parsedAnswer.media[1].bandwidth=[{type:c,limit:Yr?1e3*o:o}]),n&&(I.media[2].bandwidth=[{type:c,limit:Yr?1e3*n:n}],this._parsedAnswer.media[2].bandwidth=[{type:c,limit:Yr?1e3*n:n}]),a&&(I.media[3].bandwidth=[{type:c,limit:Yr?1e3*a:a}],this._parsedAnswer.media[3].bandwidth=[{type:c,limit:Yr?1e3*a:a}]);let u={type:"offer",sdp:$h(I)};return this.updateSDP({localDescription:u})}setScaleResolutionDownBy(A,e,o){let n=A.getParameters();(!n.encodings||n.encodings.length===0)&&(n.encodings=[{}]);let a=n.encodings[0].scaleResolutionDownBy;if(Ee(a)?e===1:e===a)return;let I="setScaleResolutionDownBy ".concat(o," ").concat(e);return a&&(I+=" prevScale: ".concat(a)),this._log.warn(I),n.encodings[0].scaleResolutionDownBy=e,A.setParameters(n)}setDegradationPreference(A,e,o){if(Bc&&tE<83||Ea&&gT($g,"12.1")||Yr&&aM<138)return;let n=A.getParameters(),a="balanced";if(e==="motion"?a="maintain-framerate":e==="detail"&&(a="maintain-resolution"),n.degradationPreference===a)return;let I="setDegradationPreference ".concat(o," ").concat(a);return this._log.info(I),n.degradationPreference=a,A.setParameters(n).catch(c=>this._log.warn("".concat(I," failed: ").concat(c)))}updateSDP(){let{localDescription:A}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let e=$h(this._parsedAnswer);return this._updateSDPPromise=new Promise((o,n)=>DA(this,null,function*(){var a,I;try{!A&&this._peerConnection&&(this._log.info("creating offer"),A=yield this._peerConnection.createOffer()),A&&(yield this.setOffer(A)),yield this.setAnswer({type:"answer",sdp:e}),this._updateSDPPromise=null,o()}catch(c){this._log.error(c),!this._isSDPLogged&&this._peerConnection&&(this._log.warn("current offer: ".concat(this.filterSDPDirection((a=this._peerConnection.localDescription)==null?void 0:a.sdp),`
next offer: `).concat(this.filterSDPDirection(A?.sdp))),this._log.warn("current answer: ".concat(this.filterSDPDirection((I=this._peerConnection.remoteDescription)==null?void 0:I.sdp),`
next answer: `).concat(this.filterSDPDirection(e))),this._log.warn("offer: ".concat(A?.sdp)),this._log.warn("answer: ".concat(e)),this._log.warn("transceivers: ".concat(JSON.stringify(this._peerConnection.getTransceivers().map(u=>{let{mid:d,currentDirection:R,direction:k,stopped:_}=u;return{mid:d,currentDirection:R,direction:k,stopped:_}})))),this._log.warn("parsedAnswer: ".concat(JSON.stringify(this._parsedAnswer))),this._isSDPLogged=!0),this._updateSDPPromise=null,n(c)}})),this._updateSDPPromise}setTransceiverDirection(A,e){return DA(this,null,function*(){if(!Yr||!this._peerConnection||!this._parsedAnswer)return;this._log.info("setting transceiver ".concat(e.join(",")," direction to ").concat(A));let o=this._peerConnection.getTransceivers();e.forEach(n=>{o[n].direction!==A&&(o[n].direction=A)});for(let n of e){let a=this._parsedAnswer.media[n].direction;A===_r.INACTIVE&&a===_r.RECVONLY&&(this._parsedAnswer.media[n].direction=A),A===_r.SENDONLY&&a===_r.INACTIVE&&(this._parsedAnswer.media[n].direction=_r.RECVONLY)}yield this.updateSDP()})}filterSDPDirection(){return rs(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").media.map(A=>A.direction)}setOffer(A){this._log.info("setting offer");let e=TtA(A.sdp,this.clientAbility,this._serverAbility);return this._log.debug(e),this._peerConnection.setLocalDescription({type:"offer",sdp:e})}setAnswer(A){return this._log.info("setting answer"),this._log.debug(A.sdp),this._peerConnection.setRemoteDescription(A)}switchVideoEncoder(A){return DA(this,null,function*(){if(this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp)),!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let e=!1;this._parsedAnswer.media.forEach(o=>{var n;if(o.type===fA.VIDEO){let a=this._serverAbility.video.codecs.find(I=>I.codec.toLowerCase()===A);a&&((n=o.payloads)==null||!n.includes(String(a.payload)))&&(o.fmtp=[],o.payloads="",o.rtp=[],o.rtcpFb=[],HM(o,a),e=!0)}}),e&&(this._log.warn("switch video encoder to ".concat(A)),yield this.updateSDP())})}getScheduleProfileLevelId(A){var e;try{let o=(e=this._room.scheduleResult.config)==null?void 0:e.profileLevelId,n="";if(A===2?n=JN(o?.big)?o.big:"":A===3?n=JN(o?.small)?o.small:"":A===7&&(n=JN(o?.aux)?o.aux:""),!n)return"";let a=lz(n,this.clientAbility);return a?this._log.info("use schedule profile level id: streamType=".concat(A,", raw=").concat(n,", resolved=").concat(a)):this._log.warn("schedule profile level id not resolved: streamType=".concat(A,", raw=").concat(n)),a}catch(o){return this._log.warn("getScheduleProfileLevelId error: ".concat(o)),""}}getProfileLevelIdConfig(){try{let A=new URLSearchParams(location.search).get("profileLevelId")||"",e=lz(A,this.clientAbility);if(e)return this._log.info("use url profile level id: raw=".concat(A,", resolved=").concat(e)),{big:e,small:e,aux:e};let o=this.getScheduleProfileLevelId(2),n=this.getScheduleProfileLevelId(3),a=this.getScheduleProfileLevelId(7);if(!o&&!n&&!a)return;let I={};return o&&(I.big=o),n&&(I.small=n),a&&(I.aux=a),I}catch(A){return void this._log.warn("getProfileLevelIdConfig error: ".concat(A))}}setH264ProfileLevelId(A,e){return DA(this,null,function*(){if(!this._peerConnection||!this._serverAbility)return;this._updateSDPPromise&&(yield this._updateSDPPromise),this._log.info("set H264 profile-level-id to ".concat(e?"high":"default"," for ").concat(A)),this._parsedAnswer||(this._parsedAnswer=rs(this._peerConnection.remoteDescription.sdp));let o=A==="main"?1:3,n=this._parsedAnswer.media[o];if(!n||n.type!==fA.VIDEO)return;let a=n.rtp||[],I=n.fmtp||[],c=a.find(Z=>{var iA;return((iA=Z.codec)==null?void 0:iA.toLowerCase())==="h264"});if(!c)return;let u=I.find(Z=>String(Z.payload)===String(c.payload));if(!u)return;let d=EK(u.config);if(!d)return;let R=lK(d)==="high";if(e&&R||!e&&!R)return;let k=this._serverAbility.video.codecs.map(Z=>EK(Z.fmtp)).filter(Boolean).find(Z=>{let iA=lK(Z);return e?iA==="high":iA!=="high"});if(!k)return;let _=u.config;u.config=cz(u.config,k),u.config!==_&&(yield this.updateSDP(),this._log.info("set H264 profile-level-id to ".concat(e?"high":"default"," success")))})}useHWEncoder(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],e=arguments.length>1?arguments[1]:void 0;return DA(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let o=!1,n=[];Ee(e)?n=this._parsedAnswer.media.slice(1,4):e===2?n.push(this._parsedAnswer.media[1]):e===3?n.push(this._parsedAnswer.media[2]):e===7&&n.push(this._parsedAnswer.media[3]),n.forEach(a=>{var I;if(a.type===fA.VIDEO){let c;A&&this.is42001fSupported?c=this.clientAbility.video.codecs.find(u=>u.fmtp.includes("42001f")):A||(c=this._serverAbility.video.codecs.find(u=>u.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264"))),c&&((I=a.payloads)==null||!I.includes(String(c.payload)))&&(a.fmtp=[],a.payloads="",a.rtp=[],a.rtcpFb=[],HM(a,c),o=!0)}}),o&&(this._log.warn("use ".concat(A?"hw":"sw"," encoder")),yield this.updateSDP())})}sendDataChannelMessage(A){var e;(e=this._datachannel)==null||e.send(A)}reset(){var A;this._peerConnection&&(this._peerConnection.close(),this._peerConnection.removeEventListener("track",this._peerConnection._onaddstreampoly,this),this._peerConnection._onaddstreampoly=null,this._peerConnection=null),this._datachannel=null,(A=this.clearWaitForConnectedPromise)==null||A.call(this),this._parsedAnswer=null,this.originOffer=null}close(){this._log.info("close pc"),this.isDestroyed=!0,this.removeRTCListener(),this.insertableStreamsAbortMap.forEach(A=>RQ(A.abort)&&A.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(A){if(!this._peerConnection)return[];let e=this._peerConnection.getReceivers();return(this._downlinkMIDMap.get(A)||[]).map(o=>e[o])}get isUsingRelay(){return this._room.getIceTransportPolicy()==="relay"}detectTCPAndUDP(A){let{uplinkRTT:e,downlinkRTT:o}=A;var n;if(this.currentState!=="CONNECTED"||this._isRelayTried&&!this._room.forceRelay||this._room.getIceServers().length===0)return;let a=this._signalChannel.rtt,I=Math.max(e,o),{rttRatioThreshold:c,rttThreshold:u}=((n=this._room.scheduleResult.config)==null?void 0:n.useTurnTcpInfo)||{};if(!(c&&u&&a&&I))return;let d=Math.floor(I/a),R=(this._isRelayTried||d>c)&&I>u;R?++this._rttOverCount<5||(this._log.warn("detectTCPAndUDP ws-rtt: ".concat(a," upRTT: ").concat(e," downRTT: ").concat(o," ratio: ").concat(d," over-count: ").concat(this._rttOverCount," isOver: ").concat(R," 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(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return DA(this,null,function*(){if(this.isUsingRelay===A)return;let o=A?"relay":"udp",n=A?521709:521710;try{this._room.forceRelay=A,this._log.warn("switchRelay ".concat(o));let a=Date.now();yield this.doSwitchRelay(o),this._log.warn("switchRelay ".concat(o," success")),ct.addSuccessEvent({key:n,cost:Date.now()-a})}catch(a){this._log.warn("switchRelay ".concat(o," failed"),a),ct.addFailedEvent({key:n,error:a}),e?this._room.reJoin():yield this.switchRelay(!A,!0)}})}doSwitchRelay(A){return new Promise((e,o)=>{let n=setTimeout(()=>{this.stopReconnection(),o(new Error("switch ".concat(A," timeout")))},1e4);this.startReconnection().then(e,o).finally(()=>clearTimeout(n))})}removeRTCListener(){this._peerConnection&&(this._peerConnection.oniceconnectionstatechange=null,this._peerConnection.onconnectionstatechange=null,this._peerConnection.onsignalingstatechange=null,this._peerConnection.ontrack=null),this.dtlsTransport&&(this.dtlsTransport.onstatechange=null)}requestRemoteFallbackToH264(){this._log.warn("H265 decode failed, remote need to fallback h264"),this._h265DecodeFailed=!0,this._signalChannel.sendWaitForResponse({command:gK,data:{videoDecCodec:"h264"},responseCommand:io.UPDATE_CONSTRAINT_CONFIG_RES}).then(A=>{A.data.code!==0&&this._log.warn(A.data.message)})}};vt([vW("reconnect")],Ap.prototype,"startReconnection"),vt([Kh(A=>A.userId)],Ap.prototype,"addDownlink"),vt([Kh(A=>A)],Ap.prototype,"removeDownlink"),vt([VT(!0)],Ap.prototype,"updateSDP"),vt([jh(521712,!1),mx(10,0)],Ap.prototype,"setOffer"),vt([jh(521713,!1),mx(10,0)],Ap.prototype,"setAnswer"),vt([Dn((A,e)=>function(){for(var o=arguments.length,n=new Array(o),a=0;a<o;a++)n[a]=arguments[a];return this._checkPendingPromiseSet&&(this._checkPendingPromiseSet.forEach(I=>clearTimeout(I)),this._checkPendingPromiseSet.clear()),A.apply(this,n)})],Ap.prototype,"close");var btA=class{constructor(A){G(this,"tag"),G(this,"len"),G(this,"data");let e=new DataView(A);this.tag=e.getUint16(),this.len=e.getUint16(2),this.data=new Uint8Array(A).slice(4,4+this.len).buffer}},LtA=class{constructor(A){G(this,"tinyId"),G(this,"data");let e=new DataView(A),o=0,n=[];for(;o<e.byteLength;){let d=e.getUint16(o+2),R=new btA(new Uint8Array(A).slice(o,o+2+2+d).buffer);n.push(R),o+=4+d}let a=[];n.forEach(d=>{d.tag===1?this.tinyId=new TextDecoder().decode(d.data):d.tag===2&&a.push(d.data)});let I=a.reduce((d,R)=>d+R.byteLength,0),c=new Uint8Array(I),u=0;a.forEach(d=>{c.set(new Uint8Array(d),u),u+=d.byteLength}),this.data=c.buffer}},Bz=new Set;function gB(){let A=Math.floor(4294967296*Math.random());return Bz.has(A)?gB():(Bz.add(A),A)}var FtA=es(hg()),uz=class extends FtA.default{constructor(A){super(),G(this,"userId"),G(this,"tinyId"),G(this,"_sdpSemantics"),G(this,"_isUplink"),G(this,"_room"),G(this,"_log"),G(this,"_currentState","DISCONNECTED"),G(this,"_prevTime",-1),G(this,"_blackSmallVideoDetectionId"),G(this,"isDestroyed",!1),this.userId=A.userId,this.tinyId=A.tinyId,this._room=A.room,this._sdpSemantics=A.room.sdpSemantics,this._isUplink=A.isUplink,this._log=nA.createLogger({parent:this._room.getLogger(),id:"n",userId:this._room.userId,remoteUserId:this._isUplink?void 0:this.userId,sdkAppId:this._room.sdkAppId,isLocal:this._isUplink})}get _peerConnection(){var A;return((A=this.singlePC)==null?void 0:A.getPeerConnection())||null}get singlePC(){return this._room.singlePC}get _signalChannel(){return this._room.signalChannel}close(A){this._log.info("close connection"),this.emit("closed",A)}destroy(){this.isDestroyed=!0}emitConnectionStateChangedEvent(A){return A!==this._currentState&&(S.emit(K.PEER_CONNECTION_STATE_CHANGED,{room:this._room,prevState:this._currentState,state:A,remoteUserId:this._isUplink?void 0:this.userId}),this.emit("connection-state-changed",{prevState:this._currentState,state:A}),this._currentState=A,!0)}getPeerConnection(){return this._peerConnection}getRoom(){return this._room}getUserId(){return this.userId}getTinyId(){return this.tinyId}getCurrentState(){return this._currentState}get isH264(){var A,e;return!((e=(A=this._peerConnection)==null?void 0:A.remoteDescription)==null||!e.sdp.includes("H264"))}};function Qz(A){let{when:e,onSkip:o}=A;return Dn((n,a)=>function(){for(var I=arguments.length,c=new Array(I),u=0;u<I;u++)c[u]=arguments[u];return DA(this,null,function*(){if(!e.apply(this,c))return n.apply(this,c);o?.call(this,a,...c)})})}var Fm=new class{constructor(){G(this,"worker"),G(this,"callbacks",new Map),G(this,"_log"),G(this,"sleep",{}),G(this,"heartbeatListenerCleaner",new Map),G(this,"userIdMap",new Map),this._log=nA.createLogger({id:"bvd"})}getWorker(){if(!this.worker){let A=new Blob([`
const tracks=new Map;let canvas,ctx;const log=(...t)=>postMessage({type:"log",message:"[worker] "+t.join(" ")});function startDetection(e,t,a){if(!tracks.has(e)){const c={reader:a.getReader(),blackCount:0,timeoutId:null,intervalId:null};tracks.set(e,c),c.timeoutId=setTimeout(()=>stopDetection(e,"timeout"),t),c.intervalId=setInterval(async()=>{try{await isFrameBlack(e)?(c.blackCount++,postMessage({type:"blackCount",trackId:e,count:c.blackCount}),3<=c.blackCount&&(postMessage({type:"black",trackId:e}),stopDetection(e,"black"))):c.blackCount=0}catch(t){log("check black video error:",t.message),stopDetection(e,"error")}},1e3)}}function stopDetection(t,e){var a=tracks.get(t);a&&(a.timeoutId&&clearTimeout(a.timeoutId),a.intervalId&&clearInterval(a.intervalId),a.reader&&a.reader.cancel(),tracks.delete(t),postMessage({type:e,trackId:t}))}async function isFrameBlack(t){t=tracks.get(t);if(!t)return!1;var t=t.reader,{done:t,value:e}=await t.read();if(!e||t)return!1;canvas||(canvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),ctx=canvas.getContext("2d",{willReadFrequently:!0})),canvas.width===e.codedWidth&&canvas.height===e.codedHeight||(canvas.width=e.codedWidth,canvas.height=e.codedHeight,ctx=canvas.getContext("2d",{willReadFrequently:!0})),ctx.drawImage(e,0,0,canvas.width,canvas.height);t=getFrameBlackRatio(ctx.getImageData(0,0,canvas.width,canvas.height));return e.close(),1===t}function getFrameBlackRatio(t){var e=t.data;let a=0;for(let t=0;t<100;t++){var c=4*Math.floor(Math.random()*(e.length/4)),[c,r,n,o]=[e[c],e[1+c],e[2+c],e[3+c]];0<o&&0===c&&0===r&&0===n&&a++}return a/100}self.onmessage=t=>{var{type:t,trackId:e,timeout:a,readable:c}=t.data;"addTrack"===t&&startDetection(e,a,c),"removeTrack"===t&&stopDetection(e)};
`],{type:"application/javascript"}),e=URL.createObjectURL(A);this.worker=new Worker(e),URL.revokeObjectURL(e),this.worker.onerror=o=>this._log.warn("worker error:",o.message,o.filename||"unknown",o.lineno||"unknown"),this.worker.onmessage=o=>{var n;let{type:a,trackId:I,message:c,count:u}=o.data;if(a==="black")(n=this.callbacks.get(I))==null||n();else if(a==="log")this._log.warn(c);else if(a==="blackCount"){let d=this.userIdMap.get(I);this._log.warn("".concat(d||I," black count: ").concat(u))}}}return this.worker}start(A){let{track:e,isUplink:o,room:n,userId:a,onBlack:I}=A;if(this._log.debug("start detect black video",e.id),!Em()||!I||!e||typeof Worker>"u")return void this._log.warn("black video detector not supported");let c=u=>{var d,R,k,_;let Z;if(o)Z=(R=(d=u.msg_up_stream_info)==null?void 0:d.msg_video_status)==null?void 0:R.filter(iA=>iA.uint32_video_stream_type===3)[0];else{let iA=(k=u.msg_down_stream_info)==null?void 0:k.filter(cA=>{var TA;return((TA=cA.msg_user_info)==null?void 0:TA.str_identifier)===a})[0];Z=(_=iA?.msg_video_status)==null?void 0:_.filter(cA=>cA.uint32_video_stream_type===3)[0]}if(Z){let iA=(Z.uint32_video_codec_bitrate||0)/1e3;if(this.sleep[e.id]&&this.sleep[e.id]>0)return void(this.sleep[e.id]-=1);iA>0&&iA<10&&(this.sleep[e.id]=30,this._log.info("track bitrate",iA,"start check"),this.checkOnce(e,3e4))}};return n.on("heartbeat-report",c),this.heartbeatListenerCleaner.set(e.id,()=>n.off("heartbeat-report",c)),this.callbacks.set(e.id,I),this.userIdMap.set(e.id,a),e.id}checkOnce(A,e){try{let o=this.getWorker();if(!o)throw new Error("Worker not available");let n=new MediaStreamTrackProcessor({track:A});o.postMessage({type:"addTrack",trackId:A.id,timeout:e,readable:n.readable},[n.readable])}catch(o){this._log.warn("check error:",o),this.stop(A.id)}}stop(A){if(A){this.worker&&this.worker.postMessage({type:"removeTrack",trackId:A}),this.callbacks.delete(A),delete this.sleep[A];let e=this.heartbeatListenerCleaner.get(A);e&&e(),this.heartbeatListenerCleaner.delete(A),this.userIdMap.delete(A)}}destroy(){this.callbacks.forEach((A,e)=>this.stop(e)),this.worker&&(this.worker.terminate(),this.worker=null)}},Kx=class extends uz{constructor(A){super(fi(bt({},A),{isUplink:!0})),G(this,"localMainAudioTrack",null),G(this,"localMainVideoTrack",null),G(this,"localAuxAudioTrack",null),G(this,"localAuxVideoTrack",null),G(this,"_isPublishingAux",!1),G(this,"_publishingLocalAudioTrack"),G(this,"_publishingLocalVideoTrack"),G(this,"_mediaSettings",{videoCodec:"",videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,videoDecCodec:"",audioCodec:"opus",audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0,auxVideoWidth:0,auxVideoHeight:0,auxVideoFps:0,auxVideoBps:0}),G(this,"_flag",0),G(this,"_checkPublishStateTimeoutId",-1),this.initialize()}get videoCodec(){var A;return((A=this.singlePC)==null?void 0:A.videoCodec)||"h264"}get ssrc(){if(!this.singlePC)return{audio:0,video:0,videoRtx:0,small:0,smallRtx:0,auxiliary:0,auxiliaryRtx:0};let{audioSsrc:A,bigVideoSsrc:e,bigVideoRtxSsrc:o,smallVideoSsrc:n,smallVideoRtxSsrc:a,auxVideoSsrc:I,auxVideoRtxSsrc:c}=this.singlePC.uplinkSSRC;return{audio:A||0,video:e||0,videoRtx:o||0,small:n||0,smallRtx:a||0,auxiliary:I||0,auxiliaryRtx:c||0}}get flag(){return this._flag}set flag(A){this._flag!==A&&(this._flag=A,this.checkPublishState())}checkPublishState(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];try{if(!A&&this._checkPublishStateTimeoutId>0)return;let{serverPublishState:e}=this,{publishState:o}=this._room,n=Object.keys(o).filter(a=>{if(o[a]!==e[a]&&o[a])switch(a){case"audio":return!(!this.localMainAudioTrack||!this.localMainAudioTrack.isMediaTrackActive);case"bigVideo":case"smallVideo":return!(!this.localMainVideoTrack||!this.localMainVideoTrack.isMediaTrackActive);case"auxVideo":return!(!this.localAuxVideoTrack||!this.localAuxVideoTrack.isMediaTrackActive)}return!1});if(n.length>0){if(!A)return void(this._checkPublishStateTimeoutId=nn.run("timeout",()=>this.checkPublishState(!0),{delay:1e4,count:1}));ct.addCount({key:521e3}),n.forEach(a=>{this._log.warn("".concat(a," publish failed during call ").concat(bQ()," ").concat(Qu())),ct.addEnum({key:521719,value:dz[a]})}),nn.clearTask(this._checkPublishStateTimeoutId),this._checkPublishStateTimeoutId=-1}}catch(e){this._log.warn("checkPublishState failed",e)}}get isMainStreamPublished(){return!(!this.localMainAudioTrack&&!this.localMainVideoTrack)}get isAuxStreamPublished(){return!(!this.localAuxVideoTrack&&!this.localAuxAudioTrack)}get serverPublishState(){return{audio:!!(this.flag&Gf),bigVideo:!!(this.flag&Nf),smallVideo:!!(this.flag&dN),auxVideo:!!(this.flag&Tf)}}initialize(){this.installEvents()}close(A){var e;let o=((e=this._peerConnection)==null?void 0:e.getSenders())||[];for(let n of o)n.replaceTrack(null);super.close(A),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 A,e;(A=this.singlePC)!=null&&A.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||(e=this.singlePC)==null||e.on("spc-reconnected",this.onSinglePCReconnected,this)}uninstallSPCEvents(){var A;(A=this.singlePC)==null||A.off("spc-reconnected",this.onSinglePCReconnected,this)}uninstallEvents(){this.off("connection-state-changed",this.handleConnectionStateChange,this),this.uninstallSPCEvents()}emitConnectionStateChangedEvent(A,e){var o,n,a;let I=this._currentState,c=super.emitConnectionStateChangedEvent(A);return c&&I!==A&&(e?e.emit("connection-state-changed",{prevState:I,state:A}):((o=this.localMainVideoTrack)==null||o.emit("connection-state-changed",{prevState:I,state:A}),(n=this.localAuxVideoTrack)==null||n.emit("connection-state-changed",{prevState:I,state:A}),(a=this._publishingLocalVideoTrack)==null||a.emit("connection-state-changed",{prevState:I,state:A}))),c}onVideoEncodeFailed(A){return DA(this,null,function*(){if(!A||!A.isMediaTrackActive)return;let{videoCodec:e,singlePC:o}=this;if(!o)return;let n={h265:{supported:o.isH264EncodeSupported,target:"h264",log:"h265 encoder not working"},h264:{supported:o.isVP8EncodeSupported,target:"vp8",log:"h264 encoder not working"},vp8:{supported:!1,target:"vp8",log:"vp8 encoder not working, no fallback available"}};if(e==="vp9"||e==="av1")return;let a=n[e];this._log.warn(a.log),a!=null&&a.supported&&(yield o.switchVideoEncoder(a.target))})}publish(A){return DA(this,arguments,function(e){var o=this;let{localAudioTrack:n,localVideoTrack:a,isAuxiliary:I}=e;return function*(){var c,u,d,R,k,_,Z;if(!o.singlePC)return;if(o.installEvents(),o.installTrackMuteEvents(n,a),a&&(a.retryEncodeFailed=o.onVideoEncodeFailed.bind(o),Ea&&(kh($g,"26.2",!0)||kh(Cu,"26.2",!0)||Eu&&kh($g,"18.7",!0)))){o._log.warn("detectH264Supported for fallback 26.2 video encode issue");try{yield kA.detectH264SupportedByFakeStreaming(500)}catch{}}if(yield o.singlePC.waitForPeerConnectionConnected(),n&&(o._publishingLocalAudioTrack=n),a){if(!o.singlePC.isH264EncodeSupported&&!o.singlePC.isVP8EncodeSupported)throw new Ct({code:Ge.NOT_SUPPORTED_H264,message:Wi({key:Mi.NOT_SUPPORTED_H264ENCODE})});o.singlePC.isUsingH264&&!o.singlePC.isH264EncodeSupported&&o.singlePC.isVP8EncodeSupported&&(o._log.warn("h264 encoder not supported"),yield o.singlePC.switchVideoEncoder("vp8")),ra&&om()===115&&a.profile.width*a.profile.height<=230400&&(o._log.warn("fallback video to defaultBigVideoProfile: ".concat(JSON.stringify(vf))),a.setProfile(vf),yield a.applyProfile()),o._publishingLocalVideoTrack=a}let iA;if(o._isPublishingAux=I,a&&!I&&a.small&&(iA=o._room.videoManager.smallTrack),yield o._signalChannel.sendWaitForResponseWithRetry({command:z4,responseCommand:io.SPC_PUBLISH_RESULT,data:fi(bt({},o.singlePC.uplinkSSRC),{state:o._room.publishState,muteState:o._room.muteState}),retries:3}),a&&(yield o.checkHighProfile({streamType:a.streamType,newWidth:a.settings.width,newHeight:a.settings.height})),yield o.publishByTransceiver({localAudioTrack:n,localVideoTrack:a,smallTrack:iA,isAuxiliary:I}),o._publishingLocalAudioTrack=null,o._publishingLocalVideoTrack=null,o._isPublishingAux=!1,a){o[I?"localAuxVideoTrack":"localMainVideoTrack"]=a,yield o.singlePC.setDegradationPreference(o._peerConnection.getSenders()[I?3:1],a.contentHint,a.streamType);let{scaleResolutionDownBy:TA}=a;yield o.singlePC.setScaleResolutionDownBy(o._peerConnection.getSenders()[I?3:1],TA,a.streamType)}n&&(o[I?"localAuxAudioTrack":"localMainAudioTrack"]=n),yield o.singlePC.setBandwidth({audio:((c=o.localMainAudioTrack)==null?void 0:c.profile.bitrate)||((u=o.localAuxAudioTrack)==null?void 0:u.profile.bitrate),bigVideo:(d=o.localMainVideoTrack)==null?void 0:d.profile.bitrate,smallVideo:(k=(R=o.localMainVideoTrack)==null?void 0:R.small)==null?void 0:k.bitrate,auxVideo:(_=o.localAuxVideoTrack)==null?void 0:_.profile.bitrate}),o.sendMediaSettings();let cA=I?7:2;(o._room.preferHW||(Z=o._room.scheduleResult.config)!=null&&Z.preferHW)&&a&&a.profile.width*a.profile.height>=921600&&o.singlePC.useHWEncoder(!0,cA)}()})}publishByTransceiver(A){let{localAudioTrack:e,localVideoTrack:o,smallTrack:n,isAuxiliary:a}=A;if(!sl())return;this._log.info("publish by transceiver");let I=o?.outMediaTrack,c=e?.outMediaTrack,u=this._peerConnection.getTransceivers(),d=[],R=[],k=(Z,iA,cA)=>{var TA;let JA=u[iA].sender.replaceTrack(cA);R.push(iA),(TA=this.singlePC)!=null&&TA.enableInsertableStreams&&JA.then(()=>this.createEncodedStreams(u[iA].sender,Z)),this.initSenderTransform(u[iA].sender,Z),d.push(JA)};c&&k(e.mediaType,0,c),I&&k(o.mediaType,a?3:1,I),o!=null&&o.small&&d.push(this.publishSmall(this._room.videoManager.smallMode,o));let _=this.singlePC.setTransceiverDirection(_r.SENDONLY,R);return d.push(_),Promise.all(d)}getTrackByMediaType(A){switch(A){case 1:return this.localMainAudioTrack||this._room.localMainAudioTrack;case 4:case 8:return this.localMainVideoTrack||this._room.localMainVideoTrack;case 2:return this.localAuxVideoTrack||this._room.localAuxVideoTrack;default:return null}}createEncodedStreams(A,e){var o,n;if(this.singlePC.insertableStreamsAbortMap.has(A))return;let a=A.createEncodedStreams(),I=new AbortController;(o=this.singlePC)==null||o.addAbortController(A,I),((n=this.getTrackByMediaType(e))!=null&&n.enableEncodeFrame?a.readable.pipeThrough(new TransformStream({transform:(c,u)=>{var d,R;let k=this.getTrackByMediaType(e);if(!k||!k.encodeFrame)return u.enqueue(c);k.isAudio?u.enqueue(k.enableEncodeFrame?k.encodeFrame(c):c):u.enqueue((d=this.singlePC)!=null&&d.isUsingH264||(R=this.singlePC)!=null&&R.isUsingH265?k.encodeFrame(c,e===8):c)}}),I):a.readable).pipeTo(a.writable,I).catch(c=>{this._log.debug("encoded stream error",c),c!=="destroy"&&this._log.warn(c)})}initSenderTransform(A,e){if(!(this._peerConnection&&this.singlePC&&this.singlePC.scriptTransformWorker&&MM))return;let o=e!==2,n=e===8;A.transform||(A.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:e===1,isMain:o,isSmall:n}))}enableSmall(A){return DA(this,null,function*(){A?yield this.publishSmall(this._room.videoManager.smallMode):yield this.unpublishSmall()})}publishSmall(A){return DA(this,arguments,function(e){var o=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.localMainVideoTrack;return function*(){var a;if(!o.singlePC)return;if(e==="canvas"&&!RM())return void o._log.warn("canvas mode small stream is not supported");let I=o._peerConnection.getTransceivers(),{sender:c}=I[2],u=yield o.doPublishSmall(e,n),d=e==="canvas"?524700:524701;ct.addSuccessEvent({key:d}),u?((a=o.singlePC)!=null&&a.enableInsertableStreams&&o.createEncodedStreams(c,8),o.initSenderTransform(c,8),yield o.singlePC.setTransceiverDirection(_r.SENDONLY,[2]),o.updateMediaSettings(),yield o.doPublishChange(),c.track&&(o._blackSmallVideoDetectionId=Fm.start({track:c.track,room:o._room,isUplink:!0,userId:o.userId,onBlack:()=>{o._log.warn("small video is black");let R=e==="canvas"?524700:524701;ct.addFailedEvent({key:R,error:10002}),Fm.stop(o._blackSmallVideoDetectionId),o._blackSmallVideoDetectionId=void 0}}))):ct.addFailedEvent({key:d,error:10001})}()})}doPublishSmall(A){return DA(this,arguments,function(e){var o=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.localMainVideoTrack;return function*(){if(!o.singlePC)return null;o._log.info("publish small",e);let a=o._peerConnection.getTransceivers(),{sender:I}=a[2];if(e==="canvas"&&o._room.videoManager.smallTrack)return yield I.replaceTrack(o._room.videoManager.smallTrack),"canvas";if(e==="api"&&n!=null&&n.outMediaTrack&&n!=null&&n.small){yield I.replaceTrack(n?.outMediaTrack);let c=I.getParameters(),u=AM(n?.profile,n?.small);return o._log.info("small scaleResolutionDownBy",u),c.encodings[0].scaleResolutionDownBy=u,I.setParameters(c),"api"}return o._log.warn("small track can not be enabled, smallMode: ".concat(o._room.videoManager.smallMode,", smallTrack: ").concat(!!o._room.videoManager.smallTrack,", bigVideoTrack: ").concat(!(n==null||!n.outMediaTrack))),null}()})}unpublishSmall(){return DA(this,null,function*(){this.singlePC&&(this._log.info("unpublish small"),yield this._peerConnection.getTransceivers()[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(_r.INACTIVE,[2]),this.updateMediaSettings(),yield this.doPublishChange(),Fm.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)})}checkHighProfile(A){return DA(this,null,function*(){var e,o;if((((e=this._room.scheduleResult.config)==null?void 0:e.profileLevelId)||{})[A.streamType==="main"?"big":"aux"]!=="high")return;let n=A.newWidth*A.newHeight>=921600&&!_h();try{yield(o=this.singlePC)==null?void 0:o.setH264ProfileLevelId(A.streamType,n)}catch(a){this._log.warn("setH264ProfileLevelId failed, ignore",a)}})}installTrackMuteEvents(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];e.forEach(n=>{n&&(n?.on("mute",this.sendMutedFlag,this),n?.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];e.forEach(n=>{n&&(n?.off("mute",this.sendMutedFlag,this),n?.off("unmute",this.sendMutedFlag,this))})}unpublish(A){return DA(this,arguments,function(e){var o=this;let{localAudioTrack:n,localVideoTrack:a}=e;return function*(){var I;yield(I=o.singlePC)==null?void 0:I.waitForPeerConnectionConnected();let c=a&&a===o.localAuxVideoTrack||n&&n===o.localAuxAudioTrack,u=a?.outMediaTrack,d=o._peerConnection.getSenders(),R=[];n&&(c?o.localAuxAudioTrack=null:o.localMainAudioTrack=null,!o.localMainAudioTrack&&!o.localAuxAudioTrack&&(yield d[0].replaceTrack(null),R.push(0))),u&&(c?(yield d[3].replaceTrack(null),o.localAuxVideoTrack=null,o._mediaSettings=fi(bt({},o._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),R.push(3)):(yield d[1].replaceTrack(null),yield d[2].replaceTrack(null),o.localMainVideoTrack=null,o._mediaSettings=fi(bt({},o._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),R.push(1,2))),o.isMainStreamPublished||o.isAuxStreamPublished?(yield o.singlePC.setTransceiverDirection(_r.INACTIVE,R),yield o.doPublishChange(!1)):yield o.doUnpublish(),o.uninstallTrackMuteEvents(n,a),a?.emit("connection-state-changed",{prevState:o._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return DA(this,null,function*(){let e={state:this._room.publishState,constraintConfig:this._mediaSettings},o=yield this._signalChannel.sendWaitForResponseWithRetry({command:nK,data:e,responseCommand:io.PUBLISH_STATE_CHANGE_RESULT,enableLog:A,retries:3});this.checkPublishResultCode(o.data.code,o.data.message)})}doUnpublish(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this._signalChannel.sendWaitForResponse({command:Yx,commandDesc:"unpublish",responseCommand:io.UNPUBLISH_RESULT,enableLog:A}).catch(e=>{if(e.getCode()===Ge.API_CALL_TIMEOUT||e.getCode()===Ge.API_CALL_ABORTED)return Promise.resolve();throw e})}updateMediaSettings(){var A,e;this._mediaSettings.videoCodec=((A=this.singlePC)==null?void 0:A.videoCodec)||"h264",this._mediaSettings.videoDecCodec=((e=this.singlePC)==null?void 0:e.downlinkVideoCodec)||"h264";let o=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:n,localAuxVideoTrack:a}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?a=this._publishingLocalVideoTrack:n=this._publishingLocalVideoTrack),Jh){if(o&&o.outMediaTrack){let I=o.outMediaTrack.getSettings();this._mediaSettings.audioChannel=I.channelCount||1,this._mediaSettings.audioBps=1e3*o.profile.bitrate,this._mediaSettings.audioFs=I.sampleRate||0}if(n&&n.outMediaTrack){let I=n.outMediaTrack.getSettings(),{scaleResolutionDownBy:c}=n;this._mediaSettings.videoWidth=(I.width||0)/c||0,this._mediaSettings.videoHeight=(I.height||0)/c||0,this._mediaSettings.videoFps=I.frameRate||0,this._mediaSettings.videoBps=1e3*n.profile.bitrate,n.small&&(this._mediaSettings.smallVideoWidth=n.small.width,this._mediaSettings.smallVideoHeight=n.small.height,this._mediaSettings.smallVideoFps=n.small.frameRate,this._mediaSettings.smallVideoBps=1e3*n.small.bitrate)}if(a&&a.outMediaTrack){let I=a.outMediaTrack.getSettings(),{scaleResolutionDownBy:c}=a;this._mediaSettings.auxVideoWidth=(I.width||0)/c||0,this._mediaSettings.auxVideoHeight=(I.height||0)/c||0,this._mediaSettings.auxVideoFps=I.frameRate||0,this._mediaSettings.auxVideoBps=1e3*a.profile.bitrate}}else o&&o.outMediaTrack&&(this._mediaSettings.audioChannel=o.profile.channelCount,this._mediaSettings.audioBps=1e3*o.profile.bitrate,this._mediaSettings.audioFs=o.profile.sampleRate),n&&n.outMediaTrack&&(this._mediaSettings.videoWidth=n.profile.width,this._mediaSettings.videoHeight=n.profile.height,this._mediaSettings.videoFps=n.profile.frameRate,this._mediaSettings.videoBps=1e3*n.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:gK,data:this._mediaSettings,responseCommand:io.UPDATE_CONSTRAINT_CONFIG_RES}).then(A=>{A.data.code!==0&&this._log.warn(A.data.message)}).catch(()=>{})}addTrack(A){return DA(this,null,function*(){if(!this._peerConnection)return;let e=A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;this._log.info("is adding ".concat(A.kind," track to current published local ").concat(e?fA.AUXILIARY:fA.MAIN," stream")),mu()&&(yield this.addTrackByTransceiver(A,e))})}addTrackByTransceiver(A,e){return DA(this,null,function*(){var o;if(!A.mediaTrack)return;let n=this._peerConnection.getTransceivers();if(A.kind===fA.AUDIO)yield n[0].sender.replaceTrack(A.outMediaTrack);else{let a=e?3:1;yield n[a].sender.replaceTrack(A.outMediaTrack),a===1&&(o=this.localMainVideoTrack)!=null&&o.small&&this._room.videoManager.smallTrack&&(yield n[2].sender.replaceTrack(this._room.videoManager.smallTrack)),n[a].direction===_r.INACTIVE&&(yield this.singlePC.setTransceiverDirection(_r.SENDONLY,[a]))}this.updateMediaSettings(),yield this.doPublishChange()})}removeTrack(A){return DA(this,null,function*(){if(!this._peerConnection)return;let e=A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;this._log.info("is removing ".concat(A.kind," track from current published local ").concat(e?fA.AUXILIARY:fA.MAIN," stream")),mu()&&(yield this.removeTrackByTransceiver(A,e))})}removeTrackByTransceiver(A,e){return DA(this,null,function*(){if(!A.mediaTrack)return;let o=this._peerConnection.getTransceivers();if(A.kind===fA.AUDIO)yield o[0].sender.replaceTrack(null);else{let n=e?3:1;yield o[n].sender.replaceTrack(null),n===1&&this._room.videoManager.hasSmall&&(yield o[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(_r.INACTIVE,[n])}this.updateMediaSettings(),yield this.doPublishChange()})}replaceTrack(A){return DA(this,null,function*(){var e;let o=(e=this._peerConnection)==null?void 0:e.getSenders(),n=A.outMediaTrack||A.mediaTrack;if(!o||o.length===0||!n||o.find(I=>I.track===n))return!1;let a=A.mediaType===2||A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(n.kind," track ").concat(n.id," ").concat(n.label," on ").concat(a?fA.AUXILIARY:fA.MAIN," stream")),n.kind===fA.AUDIO&&o[0]&&(yield o[0].replaceTrack(n)),n.kind===fA.VIDEO&&(!a&&o[1]&&(yield o[1].replaceTrack(n)),a&&o[3]&&(yield o[3].replaceTrack(n))),!0})}setBandwidth(A){return DA(this,arguments,function(e){var o=this;let{bandwidth:n,type:a,videoType:I}=e;return function*(){if(o.singlePC){let c={};a===fA.AUDIO?c.audio=n:I==="big"?c.bigVideo=n:I==="small"?c.smallVideo=n:c.auxVideo=n,yield o.singlePC.setBandwidth(c)}}()})}sendMutedFlag(A){A===this.localAuxAudioTrack||A===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this._room.muteState))),this._signalChannel.sendWaitForResponseWithRetry({command:K4,responseCommand:io.MUTE_RESULT,data:this._room.muteState,retries:3}).catch(()=>{}))}handleConnectionStateChange(A){A.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&S.emit(K.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:fA.VIDEO;if(this._peerConnection){let e=this._peerConnection.getSenders();if(A===fA.AUXILIARY&&e[3]&&e[3].track)return e[3].track.id;if(A===fA.VIDEO&&e[1]&&e[1].track)return e[1].track.id}if(this.localMainVideoTrack&&A===fA.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&A===fA.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(A,e){if(A!==0)throw A===FR?(this._log.error(ts.NOT_SUPPORTED_H264ENCODE),new Ct({code:Ge.NOT_SUPPORTED_H264,message:Wi({key:Mi.NOT_SUPPORTED_H264ENCODE})})):new Ct({code:Ge.UNKNOWN,message:Wi({key:Mi.SIGNAL_RESPONSE_FAILED,data:{signalResponse:io.PUBLISH_RESULT,code:A,message:e}})})}onSinglePCReconnected(){return DA(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}))})}};vt([wm(A=>{let{localVideoTrack:e}=A;e==null||delete e.retryEncodeFailed})],Kx.prototype,"unpublish"),vt([Qz({when(){return this.isDestroyed}})],Kx.prototype,"doPublishChange"),vt([Qz({when(){return this.isDestroyed}})],Kx.prototype,"doUnpublish");var dz=(A=>(A[A.audio=1]="audio",A[A.bigVideo=2]="bigVideo",A[A.smallVideo=3]="smallVideo",A[A.auxVideo=4]="auxVideo",A))(dz||{}),hz=Kx;function pz(A){return Object.keys(A).filter(e=>A[e])}var jx=class extends uz{constructor(A){super(fi(bt({},A),{isUplink:!1})),G(this,"_flag",0),G(this,"isRobot",!1),G(this,"role","anchor"),G(this,"fromType"),G(this,"remoteAudioTrack"),G(this,"remoteVideoTrack"),G(this,"remoteAuxiliaryTrack"),G(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),G(this,"_prevMids"),G(this,"jitterBufferTimeoutId",-1),G(this,"_jitterBufferResolve"),G(this,"_videoCodec"),G(this,"avPlayerStateSyncManager"),G(this,"isDataChannelSubscribed",!1),this.flag=A.flag,this.isRobot=A.isRobot||!1,this.fromType=A.fromType,this.remoteAudioTrack=new Dx(this._room,this),this.remoteVideoTrack=new tG(this._room,this),this.remoteAuxiliaryTrack=new n4(this._room,this),this.avPlayerStateSyncManager=new Kq({log:this._log,audioPlayer:this.remoteAudioTrack.player,videoPlayer:this.remoteVideoTrack.player}),this.initialize()}get videoCodec(){var A;return this._videoCodec||((A=this.singlePC)==null?void 0:A.downlinkVideoCodec)||"h264"}set videoCodec(A){this._videoCodec=A}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,datachannel:this.isDataChannelSubscribed}}get muteState(){return mQ(this.flag,this.userId)}get flag(){return this._flag}set flag(A){var e,o,n;A!==this._flag&&(this._flag=A,(e=this.remoteAudioTrack)==null||e.onFlagChanged(),(o=this.remoteVideoTrack)==null||o.onFlagChanged(),(n=this.remoteAuxiliaryTrack)==null||n.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(A){return A===fA.MAIN?!this.muteState.hasAudio&&!this.muteState.hasVideo:!this.muteState.hasAuxiliary}initialize(){this.installEvents()}close(A){clearTimeout(this.jitterBufferTimeoutId),super.close(A),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.remoteAudioTrack.close(),this.remoteVideoTrack.close(),this.remoteAuxiliaryTrack.close(),this.avPlayerStateSyncManager.destroy(),this.uninstallEvents(),this.removeDownlink()}installEvents(){this.singlePC&&(this.listeners("track").includes(this.onTrack)||this.singlePC.on("track",this.onTrack,this),this.listeners("spc-reconnected").includes(this.onSinglePCReconnected)||this.singlePC.on("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.on("decode-failed",this.onDecodeFailed,this))}uninstallEvents(){this.singlePC&&(this.singlePC.off("track",this.onTrack,this),this.singlePC.off("spc-reconnected",this.onSinglePCReconnected,this),this.remoteVideoTrack.off("decode-failed",this.onDecodeFailed,this))}emitConnectionStateChangedEvent(A){var e,o;let n=this._currentState,a=super.emitConnectionStateChangedEvent(A);return a&&n!==A&&((e=this.remoteVideoTrack)==null||e.emit("connection-state-changed",{prevState:n,state:A}),(o=this.remoteAuxiliaryTrack)==null||o.emit("connection-state-changed",{prevState:n,state:A})),a}onTrack(A){var e,o;let n=A.streams[0],{track:a,receiver:I}=A;if(!n.id.includes(this.tinyId))return;let c=n.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(c," ").concat(a.kind));let u=fA.AUDIO;a.kind===fA.VIDEO&&(u=c===fA.MAIN?fA.VIDEO:fA.AUXILIARY);let d=this.remoteAudioTrack;u===fA.VIDEO?d=this.remoteVideoTrack:u===fA.AUXILIARY&&(d=this.remoteAuxiliaryTrack),(e=this.singlePC)==null||e.receiverRemoteTrackMap.set(I,d),(o=this.singlePC)!=null&&o.scriptTransformWorker&&this.initReceiverTransform(I,c,a.kind===fA.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(I),d.setInputMediaStreamTrack(a)}createEncodedStreams(A){if(!this.singlePC.insertableStreamsAbortMap.has(A)){let e=A.createEncodedStreams(),o=new AbortController,n={abortController:o,enqueue:a=>{var I,c,u;let d=(I=this.singlePC)==null?void 0:I.receiverRemoteTrackMap.get(A);return d&&(d.kind!=="video"||(c=this.singlePC)!=null&&c.isUsingH264||(u=this.singlePC)!=null&&u.isUsingH265)?d.decodeFrame(a):a}};e.readable.pipeThrough(new TransformStream({transform:(a,I)=>{let c=n.enqueue(a);c&&I.enqueue(c)}})).pipeTo(e.writable,o).catch(a=>{a!=="destroy"&&this._log.warn(a)}),this.singlePC.addAbortController(A,o)}}initReceiverTransform(A,e,o){!this._peerConnection||!this.singlePC||!this.singlePC.scriptTransformWorker||A.transform||(A.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!0,isAudio:o,userId:this.userId,streamType:e}))}subscribe(A,e){return DA(this,null,function*(){var o,n;try{let a=!0;if(this._log.info("subscribe ".concat(e," ").concat(pz(A))),this.hasSSRC){let u="subscribe_change";Object.values(A).find(d=>d===!0)||(u="unsubscribe"),yield this.sendSubscription(u,A)}else{if(yield this._room.switchRoomSubedReq,(o=this.singlePC)!=null&&o.autoSubscribedUserMap.size){let u=this.singlePC.autoSubscribedUserMap.get(this.userId);if(u){this.singlePC.autoSubscribedUserMap.delete(this.userId);let d=(n=this.singlePC.autoSubscribedSsrcGroups.get(this._room.roomId))==null?void 0:n[u.groupIndex];d&&(this.ssrc={audio:d.audioSsrc,video:d.bigVideoSsrc,videoRtx:d.bigVideoRtxSsrc,auxiliary:d.auxVideoSsrc,auxiliaryRtx:d.auxVideoRtxSsrc},a=!1)}}yield this.doSubscribe(A,a),this.checkTrackEnded(A)}let{user:I,mediaTrack:c}=this.remoteVideoTrack;A.smallVideo&&c?(ct.addSuccessEvent({key:524702}),this._blackSmallVideoDetectionId=Fm.start({track:c,isUplink:!1,room:this._room,userId:this.userId,onBlack:()=>{this._log.warn("small video is black, auto change to big"),this._room.changeType(!1,I),ct.addFailedEvent({key:524702}),Fm.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}})):(Fm.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}catch(a){throw this._room.isJoined&&this.isStreamUnpublished(e)?(this._log.warn("".concat(a.message," ").concat(JSON.stringify(this.muteState))),new Ct({code:Ge.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):a}})}checkTrackEnded(A){var e,o,n;if((A.audio&&((e=this.remoteAudioTrack.mediaTrack)==null?void 0:e.readyState)==="ended"||A.video&&((o=this.remoteVideoTrack.mediaTrack)==null?void 0:o.readyState)==="ended"||A.auxiliary&&((n=this.remoteAuxiliaryTrack.mediaTrack)==null?void 0:n.readyState)==="ended")&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),Bc&&tE<92)return;this.singlePC.startReconnection()}}unsubscribe(A){return DA(this,arguments,function(e){var o=this;let{remoteTracks:n,streamType:a}=e;return function*(){var I;if(a==="main"&&!o.isMainStreamSubscribed||a==="auxiliary"&&!o.isAuxStreamSubscribed)return void o._log.info("".concat(a," stream already unsubscribed"));let c=bt({},o.subscribeState);n.forEach(d=>{switch(d.mediaType){case 1:c.audio=!1;break;case 4:c.video=!1;break;case 8:c.smallVideo=!1;break;case 2:c.auxiliary=!1}});let u="subscribe_change";Object.values(c).find(d=>d===!0)||(u="unsubscribe"),o._log.info("".concat(u==="unsubscribe"?u:"subscribe"," ").concat(a," [").concat(pz(c),"]")),u==="unsubscribe"&&((I=o.singlePC)==null||I.removeDownlinkQueue.add(o.tinyId)),yield o.sendSubscription(u,c),a==="main"&&(Fm.stop(o._blackSmallVideoDetectionId),o._blackSmallVideoDetectionId=void 0),u==="unsubscribe"&&(yield o.removeDownlink())}()})}subscribeDataChannel(){return DA(this,null,function*(){if(!this.singlePC)return;yield this.singlePC.waitForPeerConnectionConnected();let A=fi(bt({},this.subscribeState),{datachannel:!0});yield this.doSubscribe(A)})}unsubscribeDataChannel(){return DA(this,null,function*(){let A=fi(bt({},this.subscribeState),{datachannel:!1});yield this.sendSubscription("unsubscribe",A),yield this.removeDownlink()})}sendSubscription(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscribeState,o={srcTinyId:this.tinyId,srcUserId:this.userId},n=aK,a=io.UNSUBSCRIBE_RESULT;return A==="subscribe_change"&&(o={audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,customData:e.datachannel,srcTinyId:this.tinyId},n=sK,a=io.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:n,data:o,responseCommand:a,timeout:1e4,retries:3}).then(I=>{let{data:c}=I;if(c.code!==0){let u=new Ct({code:c.code,message:Wi({key:Mi.ERROR_MESSAGE,data:{type:A,message:c.message}})});throw this._log.error(u),u}})}getMainStreamVideoTrackId(){return this.remoteVideoTrack&&this.remoteVideoTrack.mediaTrack?this.remoteVideoTrack.mediaTrack.id:""}getAuxStreamVideoTrackId(){return this.remoteAuxiliaryTrack&&this.remoteAuxiliaryTrack.mediaTrack?this.remoteAuxiliaryTrack.mediaTrack.id:""}setDelay(A){let{audioDelay:e,videoDelay:o}=A;this.remoteAudioTrack.stat.end2EndDelay=e,this.remoteVideoTrack.stat.end2EndDelay=o}onSinglePCReconnected(){return DA(this,null,function*(){(this.ssrc.audio||this.ssrc.video||this.ssrc.auxiliary||this.isDataChannelSubscribed)&&(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 DA(this,arguments,function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.subscribeState,o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return function*(){var n,a;if(A.singlePC){A.singlePC.addDownlinkQueue.add(A.tinyId),yield A.singlePC.waitForPeerConnectionConnected();try{if(o||!A.hasSSRC){let I={audioSsrc:gB(),bigVideoSsrc:gB(),bigVideoRtxSsrc:gB(),auxVideoSsrc:gB(),auxVideoRtxSsrc:gB()},{audioSsrc:c,bigVideoSsrc:u,bigVideoRtxSsrc:d,auxVideoSsrc:R,auxVideoRtxSsrc:k}=I;A.ssrc={audio:c,video:u,videoRtx:d,auxiliary:R,auxiliaryRtx:k},A.singlePC.addDownlinkQueue.delete(A.tinyId),yield A.singlePC.addDownlink({userId:A.userId,tinyId:A.tinyId,ssrc:A.ssrc,prevMids:A._prevMids});try{let _=yield A._signalChannel.sendWaitForResponseWithRetry({command:Z4,responseCommand:io.SPC_SUBSCRIBE_RESULT,data:{srcUserId:A.userId,srcTinyId:A.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,customData:(n=e.datachannel)!=null&&n,ssrc:I},retries:3,retryTimeout:0});if(_.data.code!==0&&_.data.code!==-10036)throw new Ct({code:_.data.code,message:_.data.message});A.isDataChannelSubscribed=(a=e.datachannel)!=null&&a}catch(_){throw yield A.removeDownlink(),_}return}A.singlePC.addDownlinkQueue.delete(A.tinyId),yield A.singlePC.addDownlink({userId:A.userId,tinyId:A.tinyId,ssrc:A.ssrc,prevMids:A._prevMids})}finally{if((e.audio||e.video||e.smallVideo||e.auxiliary||!e.datachannel)&&Du){let{main:I,aux:c}=A._room.jitterBufferDelay||{},{jitterDelay:u=I,jitterDelayAux:d=c}=A._room.scheduleResult.config||{};(hr(u)||hr(d))&&A.setJitterBufferDelay({mainDelay:u,auxDelay:d})}}}}()})}removeDownlink(){return DA(this,null,function*(){this.singlePC&&(this.isDataChannelSubscribed=!1,this.ssrc={audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0},this.singlePC.removeDownlinkQueue.delete(this.tinyId),clearTimeout(this.jitterBufferTimeoutId),this._jitterBufferResolve&&(this._jitterBufferResolve(),this._jitterBufferResolve=void 0),this.setJitterBufferDelay({mainDelay:0,auxDelay:0}),this._prevMids=yield this.singlePC.removeDownlink(this.userId))})}setJitterBufferDelay(A){let{mainDelay:e,auxDelay:o}=A;if(!Du||!this.singlePC||!this._peerConnection||$c(e)&&$c(o))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(o));let n=this.singlePC.getReceiversByUserId(this.userId);return hr(e)&&(this.remoteAudioTrack.jitterBufferDelay=e,this.remoteVideoTrack.jitterBufferDelay=e),hr(o)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=o,$c(e)&&(this.remoteAudioTrack.jitterBufferDelay=o)),new Promise(a=>{this._jitterBufferResolve=a,this.doSetJitterBufferDelay({mainDelay:e,auxDelay:o,receivers:n,resolve:a})})}doSetJitterBufferDelay(A){let{mainDelay:e,auxDelay:o,receivers:n,resolve:a}=A;try{if(e===0&&o===0)return n.forEach(I=>I.jitterBufferTarget=0),this._jitterBufferResolve=void 0,a();if(n.forEach(I=>{var c;let u=I.track===this.remoteAuxiliaryTrack.outMediaTrack||$c(e)&&I.track===this.remoteAudioTrack.outMediaTrack;if(u&&$c(o)||!u&&$c(e))return;let d=u?o||0:e,R=(I.jitterBufferTarget||0)+100;R>d||(I.jitterBufferTarget=R,this._log.debug("set ".concat(u?"aux ":"").concat((c=I?.track)==null?void 0:c.kind," jitterBuffer delay ").concat(R," -> ").concat(d)))}),!n.find(I=>{let c=I.track===this.remoteAuxiliaryTrack.outMediaTrack?o||0:e;return I.jitterBufferTarget<c}))return this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(o," done")),this._jitterBufferResolve=void 0,a();this.jitterBufferTimeoutId=setTimeout(()=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:o,receivers:n,resolve:a})},1e3)}catch(I){this._log.warn("set jitterBuffer delay error: ".concat(I)),clearTimeout(this.jitterBufferTimeoutId),this._jitterBufferResolve=void 0,a()}}get audioReceiver(){var A;return((A=this.singlePC)==null?void 0:A.getReceiversByUserId(this.userId)[0])||null}onDecodeFailed(){this._room.downlinkVideoCodec==="h265"&&this._room.requestRemoteFallbackToH264()}};vt([VT(),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return new Promise((a,I)=>{let c=u=>{this.off("closed",c),I(new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.CONNECTION_ABORTED,data:u})}))};this.on("closed",c),A.apply(this,o).then(a,I).finally(()=>{this.off("closed",c)})})})],jx.prototype,"subscribe"),vt([VT()],jx.prototype,"unsubscribe"),vt([Kh(()=>"jitter")],jx.prototype,"setJitterBufferDelay");var UtA=jx,OtA=es(hg()),fz=class t6 extends OtA.EventEmitter{constructor(e,o){super(),this.room=e,this.signalChannel=o,G(this,"log"),G(this,"cmdIdSeqMap",new Map),G(this,"messageMap",new Map),this.log=nA.createLogger({parent:e.getLogger(),id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),o.on(io.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",n=>{let{userId:a}=n;[...this.messageMap.keys()].forEach(I=>{I.split("_").slice(0,-1).join("_")===a&&this.messageMap.delete(I)})})}send(e){let{cmdId:o,data:n}=e,a=this.cmdIdSeqMap.get(o)||Math.floor(16383*Math.random()),I={cmdId:o,msg:btoa(String.fromCharCode(...new Uint8Array(n))),ordered:!0,reliable:!0,streamSeq:a};this.cmdIdSeqMap.set(o,a+1),this.signalChannel.send(rtA,I),this.log.debug("send custom msg: ".concat(JSON.stringify(I)))}onReceiveMsg(e){let{data:o}=e.data,n=this.room.tinyIdToUserIdMap.get(o.srcTinyId);if(n){let a={userId:n,cmdId:o.cmdId,seq:o.streamSeq,data:Uint8Array.from(atob(o.msg),I=>I.charCodeAt(0)).buffer};if(o.ordered){let I="".concat(n,"_").concat(a.cmdId),c=this.messageMap.get(I);if(c&&c.lastSeq!==0)if(Math.abs(c.lastSeq-a.seq)>t6.SEQ_INTERVAL)this.messageMap.set(I,{lastSeq:a.seq,cachedMessageMap:new Map}),this.emitMessage(a);else if(a.seq>c.lastSeq){if(a.seq===c.lastSeq+1)this.emitMessage(a);else if(!c.cachedMessageMap.has(a.seq)){let u=setTimeout(()=>this.emitMessage(a,!0),5e3);c.cachedMessageMap.set(a.seq,{message:a,timeoutId:u})}}else this.log.debug("drop message ".concat(a.userId,"-").concat(a.cmdId,"-").concat(a.seq));else c||(c={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(I,c),setTimeout(()=>this.emitMessage(a,!0),100)),c.cachedMessageMap.set(a.seq,{message:a})}else this.emit("message",a)}else{this.log.warn("receive msg from unknown user, wait peer-join tinyId: ".concat(o.srcTinyId));let a=I=>{I.tinyId===o.srcTinyId&&(this.room.off("peer-join",a),this.onReceiveMsg(e))};this.room.on("peer-join",a),AC(2e3).then(()=>this.room.off("peer-join",a))}}emitMessage(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var n;let a=this.messageMap.get("".concat(e.userId,"_").concat(e.cmdId)),I=e;if(a){if(o){let u=[...a.cachedMessageMap.values()].sort((d,R)=>d.message.seq-R.message.seq);u[0]&&(I=u[0].message)}a.lastSeq!==0&&I.seq-a.lastSeq>1&&this.log.debug("msg lost userId: ".concat(I.userId," seq: ").concat(a.lastSeq," -> ").concat(I.seq)),a.lastSeq=I.seq,clearTimeout((n=a.cachedMessageMap.get(I.seq))==null?void 0:n.timeoutId),a.cachedMessageMap.delete(I.seq)}this.log.debug("receive custom msg: ".concat(JSON.stringify(I))),this.emit("message",I);let c=a?.cachedMessageMap.get(I.seq+1);c&&this.emitMessage(c.message)}};G(fz,"SEQ_INTERVAL",300);var xtA=fz,{isString:mz,isUndefined:Um,getNetworkType:YtA,isEmpty:PtA}=tl,ep=class extends wtA{constructor(A){super(A),G(this,"_businessInfo"),G(this,"userManager"),G(this,"_version"),G(this,"_heartbeat",-1),G(this,"_lastHeartBeatTime",-1),G(this,"_stats"),G(this,"_joinTimeout",-1),G(this,"_firstPublishedList",null),G(this,"_joinReject",null),G(this,"_isRelayChanged",!1),G(this,"sdpSemantics"),G(this,"signalChannel",null),G(this,"uplinkConnection",null),G(this,"singlePC",null),G(this,"enableSPC",Qm),G(this,"_changeBigSmallRecords",new Map),G(this,"networkQuality"),G(this,"_iceTransportPolicy"),G(this,"forceRelay",!1),G(this,"_turnServers",[]),G(this,"_iceServersFromJoin"),G(this,"_syncUserListInterval",-1),G(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),G(this,"enableSEI",!1),G(this,"_enableAudioVolumeEvaluation",!1),G(this,"_audioVolumeIntervalId",0),G(this,"_enableMultiAuxStream",!1),G(this,"_pureAudioPushMode",!1),G(this,"_customMessageManager"),G(this,"_enableDataChannel",!1),G(this,"preferHW",!1),G(this,"healthDetector"),G(this,"playoutDelay"),G(this,"jitterBufferDelay"),G(this,"_updateAudioLevelTaskId",-1),G(this,"switchRoomSubedReq"),G(this,"resolveSwitchRoomSubedReq"),G(this,"enableVolumeControlInIOS"),G(this,"capturedLocalMainAudioTrack"),G(this,"capturedLocalMainVideoTrack"),G(this,"capturedLocalAuxVideoTrack"),G(this,"PRELINK_EXPIRED_TIME",3e5),G(this,"PRELINK_TIMEOUT",1e4),G(this,"prelinkTimeoutId",null),G(this,"firewallDetector"),this.firewallDetector=new geA,this.firewallDetector.on("firewall-restriction",()=>{this._log.warn("firewall restriction"),this.emit("firewall-restriction")}),this._stats=new EtA(this,this._log),this.userManager=new aeA(this.userId,this._log),this._version=il,this.sdpSemantics=LR,Um(A.sdpSemantics)?kA.isUnifiedPlanDefault()&&(this.sdpSemantics=_f):this.sdpSemantics=A.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(YtA())),A.iceTransportPolicy&&(this._iceTransportPolicy=A.iceTransportPolicy),this._enableMultiAuxStream=!Um(A.enableMultiAuxStream)&&A.enableMultiAuxStream,this.enableSEI=A.enableSEI&&Qm,!Um(A.enableSPC)&&Qm&&(this.enableSPC=A.enableSPC),this.preferHW=!!A.preferHW,this.enableVolumeControlInIOS=A.enableVolumeControlInIOS,this._initBusinessInfo(A),this.healthDetector=new ktA(this)}get isMainStreamPublished(){var A;return!((A=this.uplinkConnection)==null||!A.isMainStreamPublished)}get isMainAudioPublished(){var A;return!((A=this.uplinkConnection)==null||!A.localMainAudioTrack)}get isAuxStreamPublished(){var A;return!((A=this.uplinkConnection)==null||!A.isAuxStreamPublished)}get hasAuxStream(){return[...this.remotePublishedUserMap.values()].findIndex(A=>A.muteState.hasAuxiliary)>=0}get userMap(){return this.userManager.userMap}get remotePublishedUserMap(){return this.userManager.remotePublishedUserMap}get tinyIdToUserIdMap(){return new Map([...this.userMap.values()].map(A=>[A.tinyId,A.userId]))}get videoCodec(){var A;return((A=this.singlePC)==null?void 0:A.videoCodec)||"h264"}get downlinkVideoCodec(){var A;return((A=this.singlePC)==null?void 0:A.downlinkVideoCodec)||"h264"}join(A,e,o){return DA(this,null,function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",n=>{this.emit("peer-join",n)}),this.userManager.on("8",n=>{this.emit("asr-robot-peer-join",n)}),this.userManager.on("9",n=>{this.emit("asr-robot-peer-leave",n)}),this.userManager.on("2",n=>{let{userId:a,reason:I}=n;this.closeDownLinkConnection(a,"remote user exitRoom"),this.emit("peer-leave",{userId:a,reason:I})}),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",n=>{var a=PU(n,[]);S.emit(K.REMOTE_PUBLISH_STATE_CHANGED,bt({room:this},a)),this.emit("remote-publish-state-changed",bt({},a))}),this.joinParams=A,rn(A.enableDataChannel)&&(this._enableDataChannel=A.enableDataChannel),new Promise((n,a)=>DA(this,null,function*(){var I,c;this._joinReject=a;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(d){if(!(d instanceof Ct&&d.code===Ge.SPC_INITIALIZED_FAILED))return a(d);(I=this.signalChannel)==null||I.destroy(),yield this.initialize()}let u=ki();yield this.doJoin(A,(c=this.singlePC)==null?void 0:c.clientAbility),ct.addSuccessEvent({key:521708,cost:ki()-u}),n(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(u){ct.addFailedEvent({key:521708,error:u}),a(u)}this._joinReject=null}))})}initSinglePC(){return DA(this,null,function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new Ap({signalChannel:this.signalChannel,room:this,enableDataChannel:this._enableDataChannel}),this.singlePC.on("sei-message",A=>this.emit("sei-message",A)),this.singlePC.on("dump",A=>this.emit("dump",A)),this.singlePC.once("error",()=>this.fallbackToMPC()),this.singlePC.on("data_channel_msg",A=>{let e=new TextDecoder().decode(A.data.data||A.data);try{this.emit("data-channel-message",{data:JSON.parse(e)})}catch{}});try{return yield this.singlePC.initialize()}catch(A){throw this.fallbackToMPC(),new Ct({code:Ge.SPC_INITIALIZED_FAILED,message:A?.message})}}})}doJoin(A,e){return new Promise((o,n)=>DA(this,null,function*(){var a,I,c,u,d,R,k,_;A.privateMapKey&&(this.privateMapKey=A.privateMapKey),A.latencyLevel&&(this.latencyLevel=A.latencyLevel),this.signalChannel.once(Ox,cA=>{this.clearJoinTimeout(),S.emit(K.JOIN_SIGNAL_CONNECTION_END,{room:this,error:cA}),n(cA)}),rn((I=(a=this.scheduleResult)==null?void 0:a.config)==null?void 0:I.singlePC)&&Qm&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2),(!((u=(c=this.scheduleResult)==null?void 0:c.config)!=null&&u.jitterDelay)&&!((R=(d=this.scheduleResult)==null?void 0:d.config)!=null&&R.jitterDelayAux)||!Du)&&e&&this.playoutDelay&&(this._log.info("set playoutDelay",JSON.stringify(this.playoutDelay)),e.playoutDelay=this.playoutDelay);let Z={roomId:String(A.roomId||A.strRoomId),useStringRoomId:this.useStringRoomId,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel,trtcRole:A.role,trtcScene:this.scene==="live"?2:1,sdpSemantics:this.sdpSemantics,version:this._version,ua:navigator&&navigator.userAgent||"",terminalType:er(),netType:hh(),bussinessInfo:this._businessInfo,ability:e,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0,isChorus:!!this.enableChorus,enableNtpAudioFrame:!!this.enableChorus&&yM(),transcription:this._enableDataChannel,downUseVp8:((k=this.scheduleResult.config)==null?void 0:k.downUseVp8)||!1};this._log.debug("join room signal data: ".concat(JSON.stringify(Z)));let iA=5e3;(_=this.scheduleResult.config)!=null&&_.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(iA=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout(()=>{n(new Ct({code:Ge.JOIN_ROOM_FAILED,message:Wi({key:Mi.JOIN_ROOM_TIMEOUT})}))},iA),S.emit(K.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?ttA:YeA,Z),this.signalChannel.once(io.JOIN_ROOM_RESULT,cA=>DA(this,null,function*(){this.clearJoinTimeout();let{code:TA,message:JA,data:Ie,tinyId:XA}=cA.data;S.emit(K.JOIN_RECEIVED_CMD_RES,{room:this,code:TA}),TA===0?(this._log.info("Join room success, start heartbeat"),XA&&(this.tinyId=XA),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=Ie.publishers,this._iceServersFromJoin=Ie.iceServer?[Ie.iceServer]:[],this.singlePC&&this.singlePC.setIceServers(this.getIceServers()).then(()=>{var Ft;(Ft=this.singlePC)==null||Ft.connect(fi(bt({},Ie.ability),{useVp8:Ie.ability.useVp8||!!A.useVp8,useH265:Ie.ability.useH265&&!!A.useH265})).catch(()=>{})}),o()):(this._log.error("Join room failed result: ".concat(TA," error: ").concat(JA)),n(new Ct({code:Ge.JOIN_ROOM_FAILED,extraCode:TA,message:Wi({key:Mi.JOIN_ROOM_FAILED,data:{error:JA,code:TA}})})))}))}))}reJoin(){return DA(this,null,function*(){if(this.isJoined)try{this._log.warn("reJoin pending: ".concat(this.joinParams.roomId));let A,e=[];if(this.singlePC&&(this.singlePC.close(),this.singlePC=null,e.push(this.initSinglePC().then(o=>(A=o,o)))),this.signalChannel&&(this.signalChannel.close(),e.push(this.signalChannel.connect())),yield Promise.all(e),yield this.doJoin(fi(bt({},this.joinParams),{role:this.role==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),A),this._log.warn("reJoin success"),Jo.logSuccessEvent({userId:this.userId,eventType:oa.REJOIN}),this.singlePC){let o=n=>{var a;n.state==="CONNECTED"&&((a=this.singlePC)==null||a.off(VM.CONNECTION_STATE_CHANGED,o),this.uplinkConnection instanceof hz&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach(I=>{I.installEvents(),I.onSinglePCReconnected()}))};this.singlePC.on(VM.CONNECTION_STATE_CHANGED,o),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof Vx&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(A){this._log.warn("reJoin fail ".concat(A)),this.reset(),Jo.logFailedEvent({userId:this.userId,eventType:oa.REJOIN,error:A}),this.emit("error",new Ct({code:Ge.JOIN_ROOM_FAILED,message:Wi({key:Mi.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")})}initialize(A){return DA(this,null,function*(){var e,o;if(!(A!=null&&A.isPrelink)&&this.prelinkPromise&&(yield this.prelinkPromise),(e=this.signalChannel)!=null&&e.isPrelinkValid(this.sdkAppId,this.userId,this.userSig))return this._log.info("reuse prelink signal channel"),void this.signalChannel.consumePrelink();(o=this.signalChannel)!=null&&o.prelink&&this.signalChannel.close();let n,{mainUrl:a,backupUrl:I}=this.getSignalChannelUrl(),c=this.signalChannel||function(d){return[...Px.values()].find(k=>k.room.userId===d&&!k.room.isJoined)||null}(this.userId),u=!!(c&&c.isConnected&&c.keepAlive&&c.userId===this.userId);return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(n=this.scheduleResult.domains[0]),this._log.info("".concat(u?"reuse":"setup"," signal channel")),u?(c.url=a,c.backupUrl=I,c.room.setSignalChannel(null),c.room=this,this.signalChannel=c):(c&&c.close(),this.signalChannel=new X4({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:a,backupUrl:I,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?n:void 0,prelink:A?.isPrelink}),this._customMessageManager=new xtA(this,this.signalChannel),this._customMessageManager.on("message",d=>{this.emit("custom-message",d)})),this.networkQuality||(this.networkQuality=new iz({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(iz.EVENT_NETWORK_QUALITY,d=>{var R;this.emit("network-quality",d),(R=this.singlePC)==null||R.detectTCPAndUDP(d)})),nE(this,this.signalChannel).add(rK,d=>{S.emit(K.SIGNAL_CONNECTION_STATE_CHANGED,bt({room:this},d)),this.emit("signal-connection-state-changed",d)}).add(UeA,d=>{this.reset(),this.emit("error",d)}).add(io.PEER_JOIN,d=>{let{srcTinyId:R,userId:k,role:_,fromType:Z}=d.data.data;this.userManager.addUser({userId:k,tinyId:R,role:_,fromType:Z})}).add(io.PEER_LEAVE,d=>{let{userId:R,reason:k=0}=d.data.data;this.userManager.deleteUser(R,k)}).add(io.UPDATE_REMOTE_MUTE_STAT,d=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(d.data)}).add(io.CLIENT_BANNED,d=>{let R=d.data.data,{reason:k}=R;if(Jo.uploadEvent({log:"stat-banned:".concat(k),userId:this.userId}),k==="user_time_out")return this._log.warn("".concat(k," last heart beat time: ").concat(this._lastHeartBeatTime," interval: ").concat(Date.now()-this._lastHeartBeatTime,", visibility: ").concat(document.visibilityState)),void this.reJoin();this._log[k==="kick"?"error":"info"]("user was banned because of [".concat(k,"]")),this.reset(),this.emit("banned",{reason:k})}).add(io.SEND_SWITCH_ROOM_SUBED_REQ,d=>{if(!this.singlePC)return;let{subList:R}=d.data.data;this._log.info("auto subscribe ".concat(nl(R,{keysToInclude:["userId"]}))),R.forEach(k=>{this.singlePC.autoSubscribedUserMap.set(k.userId,k)}),this.resolveSwitchRoomSubedReq()}).add(io.FALLBACK_CODEC,d=>DA(this,null,function*(){var R,k,_,Z,iA;let cA=d.data.data;((R=cA.videoControlInfo)==null?void 0:R.enableH265Enc)===0&&((k=this.singlePC)==null?void 0:k.videoCodec)==="h265"&&(this._log.warn("fallback codec enableH265Enc: ".concat((_=cA.videoControlInfo)==null?void 0:_.enableH265Enc)),ct.addCount({key:513e3}),yield(Z=this.singlePC)==null?void 0:Z.switchVideoEncoder("h264"),yield(iA=this.uplinkConnection)==null?void 0:iA.sendMediaSettings())})),this.signalChannel.once(H4,d=>{this.tinyId=d.signalInfo.tinyId,S.emit(K.JOIN_SIGNAL_CONNECTION_END,{room:this})}),S.emit(K.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),u&&S.emit(K.JOIN_SIGNAL_CONNECTION_END,{room:this}),u})}setSignalChannel(A){this.signalChannel=A,A||pr(this)}leave(){return DA(this,null,function*(){var A;try{yield this.doHeartbeat()}catch{}this._log.info("leave() => leaving room"),S.emit(K.LEAVE_SEND_CMD,{room:this}),(A=this.signalChannel)==null||A.send(PeA),this.switchRoomSubedReq=void 0,this._changeBigSmallRecords.clear()})}clearNetworkQuality(){this.networkQuality&&(this.networkQuality.stop(),delete this.networkQuality)}closeConnections(){this.remotePublishedUserMap.forEach(A=>{this.closeDownLinkConnection(A.userId,"you exitRoom")})}clearJoinTimeout(){clearTimeout(this._joinTimeout),this._joinTimeout=-1}startHeartbeat(){this._heartbeat===-1&&(this._heartbeat=nn.run("ric",this.doHeartbeat.bind(this),{delay:2e3}),this.enableChorus&&this.startUpdateNTPTime())}stopHeartbeat(){this._heartbeat!==-1&&(this._log.info("stopHeartbeat"),nn.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return DA(this,null,function*(){var A;let e=this.badCaseDetector.getMonitorFreeze(),o=yield this._stats.getStatsReport({uplinkConnection:this.uplinkConnection,downlinkConnections:this.remotePublishedUserMap,freezeMap:e});this.badCaseDetector.resetMonitor();let n=(A=this.signalChannel)!=null&&A.isConnected?function(I){if(UM.has(I)){let c=UM.get(I).map(u=>({uint32_event_id:u.eventId,uint64_date:u.timestamp,str_userid:u.remoteUserId,uint32_param1:u.param1,uint32_param2:u.param2,uint32_video_stream_type:u.streamType}));return UM.delete(I),c}return[]}(this.userId):[],a=fi(bt({str_sdk_version:wR,uint64_datetime:new Date().getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:n,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},o),{msg_device_info:bt({uint32_terminal_type:15,str_device_name:Qu(),str_os_version:"",uint32_net_type:hh()},o.msg_device_info)});if(this.heartbeatReport=a,this.heartbeatCount++,S.emit(K.HEARTBEAT_REPORT,{room:this,report:a}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(JeA,a);let I=Date.now();this._lastHeartBeatTime>0&&I-this._lastHeartBeatTime>1e4&&this._log.warn("heartbeat took ".concat(I-this._lastHeartBeatTime)),this._lastHeartBeatTime=I,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",fi(bt({},a),{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(A){if(!this.isJoined)return;let e=!1,o=A.data.userList||[],n=A.data.mixRobotList||[],a=[];for(let c of o){if(c.flag===hN)continue;let{userId:u,srcTinyId:d,flag:R,fromType:k}=c;u===this.userId&&(e=!0,this.uplinkConnection&&(this.uplinkConnection.flag=R),this.localPublishFlag!==R&&(this.localPublishFlag=R,this.emit("local-publish-flag-changed",R))),a.push({userId:u,tinyId:d,flag:R,fromType:k})}let I=[...n.map(c=>{let{userId:u,srcTinyId:d,flag:R,mixUserList:k,fromType:_}=c;return{userId:u,tinyId:d,flag:R,isRobot:!0,mixUserList:k,fromType:_}}),...a];I.forEach(c=>{let{userId:u}=c,d=this.remotePublishedUserMap.get(u);d&&this.checkSubscribeBigSmallVideo(d)}),A.data.fakeMixUser&&(A.data.fakeMixUser.tinyId=A.data.fakeMixUser.srcTinyId,I.push(A.data.fakeMixUser)),S.emit(K.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:I}),e||(this.localPublishFlag=0,this.emit("local-publish-flag-changed",0)),this.userManager.setRemotePublishedUserList(I)}closeUplink(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"you unpublished";this.uplinkConnection&&(this.localTracks.size>0&&this.uplinkConnection.doUnpublish().catch(()=>{}),this.uplinkConnection.close(A),A==="you exitRoom"&&(this.uplinkConnection.destroy(),this.uplinkConnection=null),this.uplinkConnection instanceof Vx&&(this.uplinkConnection=null)),this.localTracks.forEach(e=>e.unpublish()),this.localTracks.clear()}createDownlinkConnection(A){let{userId:e,tinyId:o,flag:n,isRobot:a,fromType:I}=A,c=new(this.singlePC?UtA:ez)({userId:e,tinyId:o,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:n,isRobot:a,fromType:I});this.userManager.addRemotePublishedUser(c),this.installDownlinkEvents(c,e),this.emit("remote-published",c)}closeDownLinkConnection(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"remote user unpublished",o=this.remotePublishedUserMap.get(A);o&&(o.close(e),this.emit("remote-unpublished",o))}installDownlinkEvents(A,e){A.on("error",o=>{let n=o.getCode();n!==Ge.ICE_TRANSPORT_ERROR&&(n===Ge.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(e),this.emit("error",o))}),A.on("connection-state-changed",o=>{this.emit("media-connection-state-changed",fi(bt({},o),{userId:A.userId}))})}startSyncUserListInterval(){this._syncUserListInterval===-1&&(this._syncUserListInterval=nn.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){nn.clearTask(this._syncUserListInterval),this._syncUserListInterval=-1}syncUserList(){return this.getUserList().then(A=>{this.userManager.setUserList(A)}).catch(A=>{this._log.debug("sync user list failed: ".concat(A))})}getUserList(){var A;return(A=this.signalChannel)!=null&&A.isConnected?this.signalChannel.sendWaitForResponse({command:$eA,responseCommand:io.USER_LIST_RES,enableLog:!1,timeout:2e3}).then(e=>{let{data:o}=e,{code:n,message:a}=o;if(n===0)return(o.data&&o.data.userList||[]).map(I=>{let{userId:c,srcTinyId:u,role:d,fromType:R}=I;return{userId:c,tinyId:u,role:d,fromType:R}});throw Wi({key:Mi.SIGNAL_RESPONSE_FAILED,data:{signalResponse:io.USER_LIST_RES,code:n,message:a}})}):Promise.reject("not connected")}getAllConnections(){let A=[...this.remotePublishedUserMap.values()];return this.uplinkConnection&&A.push(this.uplinkConnection),A}isRelayMaybeFailed(){if(this.signalChannel&&!this.signalChannel.isOnline||!$4)return!1;if(this.singlePC)return this.singlePC.reconnectionCount>6;let A=this.getAllConnections();if(A.length===0)return!1;for(let e=0;e<A.length;e++)if(A[e].getReconnectionCount()<6)return!1;return!0}checkConnectionsToReconnect(){var A;this.singlePC?((A=this.singlePC.getPeerConnection())==null?void 0:A.connectionState)===hi.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach(e=>{if(e instanceof WQ&&!e.getIsReconnecting()){let o=e.getPeerConnection();o&&o.connectionState===hi.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}})}fallbackToMPC(){return DA(this,null,function*(){var A;if(this._log.warn("fallback to multi pc"),Jo.uploadEvent({log:"stat-fallback",userId:this.userId}),this.enableSPC=!1,(A=this.singlePC)==null||A.close(),this.singlePC=null,this.isJoined&&(yield this.reJoin()),this.uplinkConnection){let e=this.uplinkConnection;this.uplinkConnection=new Vx({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 e of[...this.remotePublishedUserMap.values()]){let o=new ez({userId:e.userId,tinyId:e.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:e.flag,remoteAudioTrack:e.remoteAudioTrack,remoteVideoTrack:e.remoteVideoTrack,remoteAuxiliaryTrack:e.remoteAuxiliaryTrack});this.installDownlinkEvents(o,e.userId),this.remotePublishedUserMap.set(e.userId,o),e.isMainStreamSubscribed&&(yield o.subscribe(e.subscribeState,"main")),e.isAuxStreamSubscribed&&(yield o.subscribe(e.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 Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.firewallDetector.destroy(),this.removeAllListeners(),this.healthDetector.destroy(),nn.clearTask(this._audioVolumeIntervalId))}switchRole(A){return DA(this,null,function*(){this.role!==A&&(A==="audience"&&this.uplinkConnection&&this.closeUplink("you switch role to audience"),yield this.doSwitchRole(A))})}doSwitchRole(A){let e={command:AtA,data:{role:A==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:io.SWITCH_ROLE_RES,retries:1};return this._log.info("switchRole signal data: ".concat(JSON.stringify(e.data))),this.signalChannel.sendWaitForResponseWithRetry(e).then(o=>{let{code:n,message:a}=o.data;if(n!==0)throw new Ct({code:Ge.SWITCH_ROLE_FAILED,message:Wi({key:Mi.SWITCH_ROLE_FAILED,data:{message:a,code:n}})});this.role=A}).catch(o=>{throw o instanceof Ct&&o.getCode()===Ge.API_CALL_TIMEOUT&&(o=new Ct({code:Ge.SWITCH_ROLE_FAILED,message:Wi({key:Mi.SWITCH_ROLE_TIMEOUT})})),this._log.error(o),o})}subscribeDataChannel(){return DA(this,null,function*(){if(this.remotePublishedUserMap.size===0)return;let A=[...this.remotePublishedUserMap.values()].filter(e=>e.fromType===xR);this._log.info("subscribeDataChannel",A.map(e=>e.userId)),yield Promise.all(A.map(e=>DA(this,null,function*(){try{yield e.subscribe(fi(bt({},e.subscribeState),{datachannel:!0}),"main")}catch(o){this._log.error("subscribeDataChannel failed:",e.userId,o)}})))})}unsubscribeDataChannel(){return DA(this,null,function*(){if(this.remotePublishedUserMap.size===0)return;let A=[...this.remotePublishedUserMap.values()].filter(e=>e.fromType===xR);this._log.info("unsubscribeDataChannel",A.map(e=>e.userId)),yield Promise.all(A.map(e=>e.unsubscribeDataChannel()))})}_initUplinkConnection(){this.uplinkConnection=this.singlePC?new hz({userId:this.userId,tinyId:this.tinyId,room:this}):new Vx({userId:this.userId,tinyId:this.tinyId,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI}),this.uplinkConnection.on("connection-state-changed",A=>{this.emit("media-connection-state-changed",fi(bt({},A),{userId:this.userId}))}),this.uplinkConnection.on("error",A=>{let e=A.getCode();e!==Ge.ICE_TRANSPORT_ERROR&&(e===Ge.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",A))})}publish(A){return DA(this,null,function*(){var e;this.uplinkConnection||this._initUplinkConnection();let o="".concat(A.streamType," ").concat(A.isAudio&&A.isScreen?"screen":"").concat(A.kind);this._log.info("publish() => ".concat(o)),yield(e=this.singlePC)==null?void 0:e.waitForPeerConnectionConnected(),yield this.uplinkConnection.publish({localAudioTrack:A instanceof vm?A:null,localVideoTrack:A instanceof Ru?A:null,isAuxiliary:A.streamType==="auxiliary"})})}unpublish(A){return DA(this,null,function*(){if((this.scene!=="live"||this.role==="anchor")&&(this.isMainStreamPublished||this.isAuxStreamPublished)&&this.uplinkConnection){try{let e="".concat(A.streamType," ").concat(A.isAudio&&A.isScreen?"screen":"").concat(A.kind);this._log.info("unpublish() => ".concat(e)),yield this.uplinkConnection.unpublish({localAudioTrack:A instanceof vm?A:null,localVideoTrack:A instanceof Ru?A:null})}catch{}this.localTracks.size===0&&this.closeUplink("you unpublished")}})}addTrack(A){if(!this.uplinkConnection||!A.mediaTrack)return Promise.resolve();let e=this.uplinkConnection.addTrack(A);return A.publish(this,e),e}removeTrack(A){return this.uplinkConnection&&A.mediaTrack?(A.unpublish(),this.uplinkConnection.removeTrack(A)):Promise.resolve()}replaceTrack(A){return this.uplinkConnection&&A.mediaTrack&&XO()?this.uplinkConnection.replaceTrack(A).then(e=>{e&&S.emit(K.LOCAL_TRACK_REPLACED,{track:A})}):Promise.resolve()}setBandWidth(A){return DA(this,null,function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(A),yield this.uplinkConnection.sendMediaSettings())})}enableSmall(A){return DA(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();A&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:fA.VIDEO,videoType:fA.SMALL,bandwidth:this.uplinkConnection.localMainVideoTrack.small.bitrate})),yield this.uplinkConnection.enableSmall(A)})}subscribe(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return DA(this,null,function*(){if(e=e.filter(c=>!c.isSubscribed),e.length===0)return;let{userId:n}=e[0],a=this.remotePublishedUserMap.get(n);if(!a)return;let I=e.find(c=>c.mediaType===2)?"auxiliary":"main";try{let c=bt({},a.subscribeState);e.forEach(d=>{switch(d.mediaType){case 1:c.audio=!0;break;case 4:c.video=!0;break;case 8:c.smallVideo=!0;break;case 2:c.auxiliary=!0}});let u=this._changeBigSmallRecords.get(n);u&&u.options.smallVideo&&a.muteState.hasSmall&&c.video&&(c.video=!1,c.smallVideo=!0),S.emit(K.SUBSCRIBE_START,{room:this,streamType:I,remotePublishedUser:a,subscribeState:c}),this._log.info("subscribe() => ".concat(n," ").concat(I," ").concat(e.map(d=>d.strMediaType).join(",")," [").concat(IK(c),"] prev: [").concat(IK(a.subscribeState),"]")),yield a.subscribe(c,I),this._log.info("subscribe ".concat(n," ").concat(I," done"));for(let d of e)d.mediaTrack||(yield d.waitHasMediaTrack());S.emit(K.SUBSCRIBE_SUCCESS,{room:this,streamType:I,remotePublishedUser:a})}catch(c){let u=c instanceof Ct?c.getCode():Ge.UNKNOWN,d=c;throw c instanceof Ct?u===Ge.REMOTE_STREAM_NOT_EXIST&&(d=new Ct({code:Ge.API_CALL_ABORTED,message:Wi({key:Mi.API_CALL_ABORTED,data:{message:c.message,userId:n,streamType:I}})}),this._log.warn(d)):(d=new Ct({code:u,message:Wi({key:Mi.SUBSCRIBE_FAILED,data:{message:c.message,userId:n,streamType:I}})}),this._log.error(d)),d}})}unsubscribe(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return DA(this,null,function*(){let{userId:n}=e[0],a=this.remotePublishedUserMap.get(n);if(!a)return;let I=e.find(c=>c.mediaType===2)?"auxiliary":"main";this._log.info("unsubscribe() => ".concat(n," ").concat(I," ").concat(e.map(c=>c.strMediaType).join(",")));try{yield a.unsubscribe({remoteTracks:e,streamType:I})}catch(c){this._log.warn("unsubscribe() => failed ".concat(c))}e.forEach(c=>{c.unsubscribe(),c.mediaType===8&&c.setMediaType(4)}),S.emit(K.UNSUBSCRIBE_SUCCESS,{room:this,streamType:I,remotePublishedUser:a})})}setEncodedDataProcessingListener(A){throw new Error("Method not implemented.")}enableAudioVolumeEvaluation(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3,e=arguments.length>1?arguments[1]:void 0;if(A<=0)return this._enableAudioVolumeEvaluation=!1,void nn.clearTask(this._audioVolumeIntervalId);A=Math.floor(Math.max(A,100)),S.emit(K.AUDIO_LEVEL_INTERVAL,{interval:A}),this._audioVolumeIntervalId&&nn.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=nn.run("intervalInWorker",()=>{var o;gx.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(A,e);let n=[];(o=this.remotePublishedUserMap)==null||o.forEach(a=>{if(a.muteState.hasAudio){!gx.isRunning&&a.muteState.audioAvailable&&a.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(a):a.remoteAudioTrack.volume=0;let I=Math.floor(100*a.remoteAudioTrack.getAudioLevel());n.push({userId:a.userId,volume:I,floatVolume:a.remoteAudioTrack.getInternalAudioLevel()})}}),this.emit("audio-volume",n)},{delay:A,backgroundTask:e})}updateAudioLevelFromSenderStat(A,e){return DA(this,null,function*(){var o;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||this._updateAudioLevelTaskId!==-1)return;let n=(o=this.uplinkConnection.getPeerConnection())==null?void 0:o.getSenders()[0];if(!n)return;let a=Math.max(A,500);this._log.warn("updateAudioLevelFromSenderStat ".concat(a)),this._updateAudioLevelTaskId=nn.run("intervalInWorker",()=>DA(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let I=yield n.getStats();if(this._updateAudioLevelTaskId<0)return;let{localMainAudioTrack:c}=this.uplinkConnection;I.forEach(u=>{u.type==="media-source"&&u.audioLevel&&(c.volume=u.audioLevel)})}),{delay:a,backgroundTask:e})})}stopUpdateAudioLevelFromSenderStat(){var A;this._updateAudioLevelTaskId!==-1&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),nn.clearTask(this._updateAudioLevelTaskId),this._updateAudioLevelTaskId=-1,(A=this.uplinkConnection)!=null&&A.localMainAudioTrack&&(this.uplinkConnection.localMainAudioTrack.volume=0))}updateDownlinkAudioLevelFromReceiver(A){var e;let{audioReceiver:o}=A;if(!GT||!o)return;let n=(e=o.getSynchronizationSources()[0])==null?void 0:e.audioLevel;hr(n)?A.remoteAudioTrack.volume=Math.min(2*n,1):o.getStats().then(a=>{a.forEach(I=>{I.type==="inbound-rtp"&&hr(I.audioLevel)&&(A.remoteAudioTrack.volume=I.audioLevel)})})}getLocalAudioStats(){return DA(this,null,function*(){var A;let e={};return e[this.userId]={bytesSent:0,packetsSent:0,audioLevel:0},(A=this.uplinkConnection)!=null&&A.localMainAudioTrack&&(e[this.userId]=this.uplinkConnection.localMainAudioTrack.stat),e})}getLocalVideoStats(){return DA(this,null,function*(){var A,e;let o={};return o[this.userId]=((e=(A=this.uplinkConnection)==null?void 0:A.localMainVideoTrack)==null?void 0:e.stat)||{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0},o})}getTransportStats(){return DA(this,null,function*(){let A={rtt:0,downlinksRTT:{}};if(this.uplinkConnection){let e=yield this._stats.getSenderStats(this.uplinkConnection);A.rtt=e.rtt}for(let[,e]of this.remotePublishedUserMap){let o=yield this._stats.getReceiverStats(e);A.downlinksRTT[o.userId]=o.rtt}return A})}getRemoteVideoStats(A){return DA(this,null,function*(){let e={};for(let[o,n]of this.remotePublishedUserMap)A==="main"&&n.muteState.hasVideo&&(e[o]=n.remoteVideoTrack.stat),A==="auxiliary"&&n.muteState.hasAuxiliary&&(e[o]=n.remoteAuxiliaryTrack.stat);return e})}getRemoteAudioStats(){return DA(this,null,function*(){let A={};for(let[e,o]of this.remotePublishedUserMap)o.muteState.hasAudio&&(A[e]=o.remoteAudioTrack.stat);return A})}setTurnServer(A,e){this._log.info("set turn server: ".concat(JSON.stringify(A)," ").concat(e||""));let o=[];Array.isArray(A)?A.forEach(n=>o.push(tl.getTurnServer(n))):tl.isPlainObject(A)&&o.push(tl.getTurnServer(A)),this._turnServers=o,e&&(this._iceTransportPolicy=e)}sendStartMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:jeA,data:A,timeout:5e3,responseCommand:io.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"}).catch(e=>{if(e.code!==Ge.API_CALL_ABORTED)throw e})}sendStopMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:WeA,data:A,timeout:5e3,responseCommand:io.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"}).catch(e=>{if(e.code!==Ge.API_CALL_ABORTED)throw e})}sendStartPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?HeA:qeA,data:A,timeout:5e3,responseCommand:e?io.START_PUBLISH_TENCENT_CDN_RES:io.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"}).catch(o=>{if(o.code!==Ge.API_CALL_ABORTED)throw o})}sendStopPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?VeA:KeA,data:A,timeout:5e3,responseCommand:e?io.STOP_PUBLISH_TENCENT_CDN_RES:io.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"}).catch(o=>{if(o.code!==Ge.API_CALL_ABORTED)throw o})}sendStartPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:zeA,data:A,timeout:5e3,responseCommand:io.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"}).catch(e=>{if(e.code!==Ge.API_CALL_ABORTED)throw e})}sendUpdatePushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:ZeA,data:A,timeout:5e3,responseCommand:io.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"}).catch(e=>{if(e.code!==Ge.API_CALL_ABORTED)throw e})}sendStopPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:XeA,data:A,timeout:5e3,responseCommand:io.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"}).catch(e=>{if(e.code!==Ge.API_CALL_ABORTED)throw e})}sendAbilityStatus(A){var e;(e=this.signalChannel)==null||e.sendWaitForResponse({command:itA,data:A,timeout:5e3,responseCommand:io.ABILITY_STATUS_REPORT_RESULT,commandDesc:"ability status report"}).catch(o=>{})}getIceServers(A){var e,o;return this._turnServers.length>0?this._turnServers:(e=this.scheduleResult.iceServers)!=null&&e.length?this.scheduleResult.iceServers:A!=null&&A.length?A:(o=this._iceServersFromJoin)!=null&&o.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 A={mainUrl:"",backupUrl:""},e=tl.getEnv();return e?(A.mainUrl="wss://".concat(tl.getTestSignalDomain(e)),A.backupUrl=A.mainUrl):this.proxy_ws?(A.mainUrl=this.proxy_ws,A.backupUrl=A.mainUrl):this.proxy_unified?(A.mainUrl="wss://".concat(this.proxy_unified),A.backupUrl=A.mainUrl):Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(A.mainUrl="wss://".concat(this.scheduleResult.domains[0]),A.backupUrl=A.mainUrl,this.scheduleResult.domains[1]&&(A.backupUrl="wss://".concat(this.scheduleResult.domains[1]))),A}getSignalInfo(){var A;return((A=this.signalChannel)==null?void 0:A.getSignalInfo())||{clientIp:"",relayIp:""}}reset(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.stopSyncUserListInterval(),this.stopHeartbeat(),this.closeConnections(),this.clearNetworkQuality(),this.closeUplink("you exitRoom"),this.signalChannel&&(A&&this.signalChannel.keepAlive&&this.signalChannel.isConnected?this.signalChannel.stopKeepAliveIn(3600):(this.signalChannel.close(),this.setSignalChannel(null))),this.localPublishFlag=0,this.heartbeatCount=0,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},this.clearPrelinkTimeout(),this.prelinkPromise=null}prelink(A,e,o,n,a,I){return DA(this,null,function*(){var c;if(this.isJoined)throw new Ct({code:Ge.INVALID_OPERATION,message:"already joined room"});if(!a&&!I)throw new Ct({code:Ge.INVALID_OPERATION,message:"roomId or strRoomId is required"});if((c=this.signalChannel)!=null&&c.prelink){if(this.signalChannel.isConnecting)return void this._log.warn("prelink is connecting, please wait");if(this.signalChannel.isConnected)return void this._log.warn("prelink is already connected")}return this.userId=e,this.sdkAppId=A,this.userSig=o,this.roomId=String(a||I),this.useStringRoomId=!(!I||a),this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.prelinkPromise=Promise.race([this.doPrelink(A,e,o,n,a,I),new Promise((u,d)=>{this.prelinkTimeoutId=setTimeout(()=>{d(new Ct({code:Ge.INVALID_OPERATION,message:"prelink timeout after ".concat(this.PRELINK_TIMEOUT,"ms")}))},this.PRELINK_TIMEOUT)})]).then(()=>{this.clearPrelinkTimeout()}).catch(u=>{throw this.clearPrelinkTimeout(),this.closePrelink().catch(()=>{}),u}),this.prelinkPromise})}doPrelink(A,e,o,n,a,I){return DA(this,null,function*(){var c,u,d;try{if(!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!tl.getEnv()&&(yield this.schedule({sdkAppId:A,userId:e,userSig:o,roomId:a,strRoomId:I,role:20,privateMapKey:null,businessInfo:null,streamId:null,userDefineRecordId:null},n)),(c=this.scheduleResult.config)==null||!c.prelink)throw new Ct({code:Ge.INVALID_OPERATION,message:"prelink failed: your sdkAppId is not supported, please contact us [https://trtc.io/contact] to enable it."});yield this.initialize({isPrelink:!0}),(u=this.signalChannel)==null||u.markPrelinkConnected({sdkAppId:A,userId:e,userSig:o}),(d=this.signalChannel)==null||d.stopPrelinkIn(this.PRELINK_EXPIRED_TIME/1e3),this._log.info("prelink success")}catch(R){throw this._log.error("prelink failed",R),R}})}clearPrelinkTimeout(){this.prelinkTimeoutId&&(clearTimeout(this.prelinkTimeoutId),this.prelinkTimeoutId=null)}closePrelink(){return DA(this,null,function*(){var A;if(this.isJoined)throw new Ct({code:Ge.INVALID_OPERATION,message:"close prelink failed: has joined room"});if((A=this.signalChannel)!=null&&A.prelink){if(this.signalChannel.keepAlive)return void this._log.info("skip close prelink: use keepAlive");this.reset()}})}checkSubscribeBigSmallVideo(A){return DA(this,null,function*(){let{subscribeState:e,userId:o,muteState:{hasSmall:n,hasVideo:a}}=A;if(!n&&!a||!e.video&&!e.smallVideo)return;let I=this._changeBigSmallRecords.get(o);if(!I||I.isSubscribing||I.reSubscribeCount<=0)return;let{options:c,reSubscribeCount:u}=I;if(c.video&&e.video||c.smallVideo&&e.smallVideo&&n)return;let d={audio:A.remoteAudioTrack.isSubscribed||A.remoteAudioTrack.isSubscribing,auxiliary:A.remoteAuxiliaryTrack.isSubscribed||A.remoteAuxiliaryTrack.isSubscribing,video:c.video,smallVideo:c.smallVideo,datachannel:A.subscribeState.datachannel};try{if(!n&&d.smallVideo&&(d.video=!0,d.smallVideo=!1),d.smallVideo===e.smallVideo&&d.video===e.video)return;I.isSubscribing=!0,I.reSubscribeCount=u-1,yield A.subscribe(d,"main"),A.remoteVideoTrack.setMediaType(d.smallVideo?8:4),this._log.info("change [".concat(o,"] to ").concat(d.smallVideo?"small":"big"," video successfully. count ").concat(Lf-I.reSubscribeCount,".")),I.isSubscribing=!1,I.reSubscribeCount=Lf}catch(R){this._log.info("change [".concat(o,"] to ").concat(d.smallVideo?"small":"big"," video failed. count ").concat(Lf-I.reSubscribeCount,". reason: ").concat(R)),I.isSubscribing=!1,I.reSubscribeCount===0&&this._changeBigSmallRecords.delete(o)}})}changeType(A,e){let o={options:{video:!A,smallVideo:A},isSubscribing:!1,reSubscribeCount:Lf};this._changeBigSmallRecords.set(e.userId,o),this._log.info("set [".concat(e.userId,"] video prefer type: ").concat(A?"small":"big")),this.emit("subscribe-small-video-changed",{userId:e.userId,isSmall:A});let n=this.remotePublishedUserMap.get(e.userId);n&&this.checkSubscribeBigSmallVideo(n)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(A){this._businessInfo=A.businessInfo;let e={};if(mz(A.businessInfo)&&(e=JSON.parse(A.businessInfo)),!Um(A.pureAudioPushMode)){if(!Number.isInteger(Number(A.pureAudioPushMode)))throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_PURE_AUDIO})});this._pureAudioPushMode=A.pureAudioPushMode,e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.pure_audio_push_mod=this._pureAudioPushMode}if(!Um(A.userDefineRecordId)){let o=/^[A-Za-z0-9_-]{1,64}$/gi;if(A.userDefineRecordId.match(o)===null)throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_USER_DEFINE_RECORDID})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_record_id=A.userDefineRecordId}if(!Um(A.userDefinePushArgs)){if(!(mz(A.userDefinePushArgs)&&String(A.userDefinePushArgs)&&String(A.userDefinePushArgs).length<=256))throw new Ct({code:Ge.INVALID_PARAMETER,message:Wi({key:Mi.INVALID_USER_DEFINE_PUSH_ARGS})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_push_args=A.userDefinePushArgs}PtA(e)||(this._businessInfo=JSON.stringify(e))}sendCustomMessage(A){var e;(e=this._customMessageManager)==null||e.send(A)}enableInsertableStreams(){return DA(this,null,function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&xQ)return this.singlePC.enableInsertableStreams=!0,yield this.singlePC.waitForPeerConnectionConnected(),yield this.singlePC.startReconnection()})}sendSignalMessage(A){var e;return this.signalChannel?(e=this.signalChannel)==null?void 0:e.sendWaitForResponseWithRetry(A):Promise.reject(new Ct({code:Ge.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 A;return(A=this.singlePC)==null?void 0:A.scriptTransformWorker}switchRoom(A){return DA(this,null,function*(){var e;if(!this.signalChannel||!this.singlePC)return;let{roomId:o,strRoomId:n,userSig:a,privateMapKey:I}=A,c=((e=this.scheduleResult.config)==null?void 0:e.autoSubscribeCount)||A?.autoSubscribeCount||1,u=String(this.useStringRoomId?n:o),d=[];for(let Z=0;Z<c;Z++)d.push({audioSsrc:gB(),bigVideoSsrc:gB(),bigVideoRtxSsrc:gB(),auxVideoSsrc:gB(),auxVideoRtxSsrc:gB()});let R={currRoomId:this.roomId,targetRoomId:u,useStringRoomId:this.useStringRoomId,ability:this.singlePC.clientAbility,userSig:a,privateMapKey:I??this.privateMapKey,subscribe:d};this.singlePC.autoSubscribedUserMap.clear(),this.singlePC.autoSubscribedSsrcGroups.clear(),this.singlePC.autoSubscribedSsrcGroups.set(u,d);let k,_=this.roomId;this.roomId=this.useStringRoomId?n:String(o),this.switchRoomSubedReq=new Promise(Z=>{this.resolveSwitchRoomSubedReq=Z,AC(5e3).then(Z)}),S.emit(K.SWITCH_ROOM_START,{room:this}),yield this.singlePC.waitForPeerConnectionConnected();try{this.userManager.clear(),k=yield this.signalChannel.sendWaitForResponse({command:ntA,responseCommand:io.SEND_SWITCH_ROOM_RES,data:R});let{code:Z,message:iA}=k.data;if(Z!==0){this._log.error("switch room failed. result: ".concat(Z," error: ").concat(iA));let cA=new Ct({code:Ge.SWITCH_ROOM_FAILED,extraCode:Z,message:iA});throw S.emit(K.SWITCH_ROOM_FAILED,{room:this,error:cA}),cA}this.userSig=a,Um(I)||(this.privateMapKey=I),S.emit(K.SWITCH_ROOM_SUCCESS,{room:this,currentRoomId:_,targetRoomId:u})}catch(Z){throw this.singlePC.autoSubscribedSsrcGroups.clear(),this.roomId=_,this.resolveSwitchRoomSubedReq(),Z}})}isSwitchRoomSupported(){var A;let e="unable to use switchRoom API, fallback to exitRoom and enterRoom.";return((A=this.scheduleResult.config)==null?void 0:A.switchRoom)!==!0?(this._log.warn("".concat(e," Reason: this sdkAppId is not supported, please contact us [https://trtc.io/contact] to enable it.")),!1):this.scene!=="live"?(this._log.warn("".concat(e," Reason: the scene is not 'live'.")),!1):this.role!=="audience"?(this._log.warn("".concat(e," Reason: the role is not 'audience'.")),!1):!!this.singlePC||(this._log.warn("".concat(e," Reason: is not using single peerConnection.")),!1)}requestRemoteFallbackToH264(){var A;(A=this.singlePC)==null||A.requestRemoteFallbackToH264()}startUpdateNTPTime(){if(!this.signalChannel)return;let A=[];for(let e=0;e<5;e++)A.push(this.updateNTPTime());return Promise.all(A).then(e=>{var o;let n=e[0].offset,a=e[0].offset;e.forEach(u=>{n=Math.min(u.offset,n),a=Math.max(u.offset,a)});let I=Math.floor(e.reduce((u,d)=>u+d.rtt,0)/e.length),c=Math.floor(e.reduce((u,d)=>u+d.offset,0)/e.length);(a-n>30||I>50)&&setTimeout(()=>this.startUpdateNTPTime(),5e3),iu(c),(o=this.scriptTransformWorker)==null||o.postMessage({type:"ntp-offset",data:c}),this._log.debug("ntp updated offset: ".concat(c)),this.emit("ntp-time-updated")}).catch(e=>{this._log.warn("ntp updated failed: ".concat(e))})}updateNTPTime(){let A=Date.now();return this.signalChannel.sendWaitForResponse({command:atA,responseCommand:io.UPDATE_NETWORK_TIME_RESULT,addReceiveTime:!0,data:{clientSendTime:String(A)},enableLog:!1}).then(e=>{let o=Number(e.data.data.serverSendTime),n=Number(e.data.data.serverRecvTime),a=e.data.receiveTime||Date.now();return{rtt:a-A-(n-o),offset:(n-A+(o-a))/2}})}};return vt([is(["left",Uo.INIT],"joined"),nB({settings:{retries:1,timeout:0},onRetrying(A){this._log.warn("join retry ".concat(A))},onRetryFailed(A){this._log.error("join failed",A)},onError(A,e){this._isUsingCachedSchedule&&!this.isDestroyed?(this._log.warn("is using cached schedule, retry join"),wu(!0),this.reset(),e()):this.signalChannel&&this.signalChannel.isConnected&&this.signalChannel.keepAlive?(this._log.warn("is using keepAlive ws, retry join"),this.signalChannel.close(),this.reset(),e()):(this.reset(),e())}}),Dn(A=>{let e=new beA;return function(o,n,a){return DA(this,null,function*(){let I=String(o.roomId||o.strRoomId);if(this.userId=o.userId,this.sdkAppId=o.sdkAppId,this.userSig=o.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=n,o.privateMapKey=o.privateMapKey||"",this.isJoined)throw new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.INVALID_JOIN})});if(this.checkDestroy(),e.isJoined({userId:this.userId,roomId:I,sdkAppId:this.sdkAppId,room:this}))throw new Ct({code:Ge.INVALID_OPERATION,message:Wi({key:Mi.REPEAT_JOIN,data:this.userId})});e.add({room:this,roomId:I}),this.role=o.role===21?"audience":"anchor",this._log.info("Join() => joining room: ".concat(I," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),S.emit(K.JOIN_START,{room:this,roomId:I,params:o});let c=tl.getEnv();c||(c=ou.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Ih.OLD_CLOUD_LADDER)?c=ou.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Ih.WEBRTC)&&(c=ou.WEBRTC))),Jo.setConfig({env:c,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:I}),kA.checkSystemRequirementsInternal(a).then(u=>{this.checkSystemResult=u,LeA.call(this)});try{!this.prelinkPromise&&!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!tl.getEnv()&&(yield this.schedule(o,a));let u=yield A.call(this,o,n,a);return this.roomId=I,this._joinedTimestamp=tl.performanceNow(),S.emit(K.JOIN_SUCCESS,{room:this}),a===30&&!o.component&&Jo.uploadEvent({log:"stat-conv-".concat(Number(GQ),"-").concat(location.hostname),userId:this.userId}),u}catch(u){throw e.delete({room:this,roomId:I}),S.emit(K.JOIN_FAILED,{room:this,error:u}),u}})}})],ep.prototype,"join"),vt([is("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return DA(this,null,function*(){S.emit(K.LEAVE_START,{room:this}),yield A.call(this,...o),S.emit(K.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})}),vW("leave room"),TM({fnName:"publish",validateArgs:!1}),TM({fnName:"unsubscribe",validateArgs:!1})],ep.prototype,"leave"),vt([Kh(A=>A.mediaType),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return DA(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(o=o.filter(I=>I.outMediaTrack&&I.state==="ready"),!o.length))return;S.emit("61",{room:this});let a=A.apply(this,o);return Promise.all(o.map(I=>I.publish(this,a)))})}),nB({settings:{retries:Ch,timeout:A=>fQ(A)},onError(A,e,o,n){let[a]=n;var I;(I=A.message)!=null&&I.includes("timeout")?(this._log.warn("publish ".concat(a.strMediaType," timeout"),A),e()):(this._log.error("publish ".concat(a.strMediaType," failed: ").concat(A)),o(A),S.emit(K.PUBLISH_FAILED,{room:this}))}})],ep.prototype,"publish"),vt([TM({fnName:"publish"}),Kh(A=>A.mediaType),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];let a=A.apply(this,o);return o.forEach(I=>I.unpublish()),a}),wm(function(){var A,e;this.localTracks.size===0&&AI()&&((e=(A=this.singlePC)==null?void 0:A.getPeerConnection())==null||e.getSenders().forEach(o=>o.track&&o.replaceTrack(null)))})],ep.prototype,"unpublish"),vt([wW(A=>{if(A.code!==Ge.API_CALL_ABORTED)throw A}),Kh(A=>A.userId)],ep.prototype,"replaceTrack"),vt([Kh(function(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return e[0].userId},function(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return"".concat(e[0].userId,"|sub")}),mx(),Dn(A=>function(){for(var e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];let a=A.apply(this,o);return o.forEach(I=>!I.isSubscribed&&I.subscribe(a)),a}),nB({settings:{retries:Ch,timeout:A=>fQ(A)},onError(A,e,o,n){if(A.message.includes("timeout"))this._log.warn("subscribe timeout"),e();else{let a=A?.code===Ge.API_CALL_ABORTED;this._log[a?"warn":"error"]("subscribe failed ".concat(n.map(I=>I.strMediaType).join(","),": ").concat(A)),o(A),S.emit(K.SUBSCRIBE_FAILED,{room:this,remoteTracks:n})}}})],ep.prototype,"subscribe"),vt([TM({fnName:"subscribe",callback(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];this.singlePC||e.forEach(n=>{let a=this.remotePublishedUserMap.get(n.userId);a&&!a.isMainStreamSubscribed&&!a.isAuxStreamSubscribed&&a.close("you unsubscribed")})}}),Kh(function(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return e[0].userId},function(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return"".concat(e[0].userId,"|sub")})],ep.prototype,"unsubscribe"),sG.create=sG._create.bind(sG,ep),LT(30),sG})}(h2)),h2.exports}var NrA=Object.create,pY=Object.defineProperty,i6=Object.getOwnPropertyDescriptor,o6=Object.getOwnPropertyNames,E5=Object.getOwnPropertySymbols,TrA=Object.getPrototypeOf,r6=Object.prototype.hasOwnProperty,GrA=Object.prototype.propertyIsEnumerable,Rj=(t,i,r)=>i in t?pY(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,krA=(t,i)=>{for(var r in i||(i={}))r6.call(i,r)&&Rj(t,r,i[r]);if(E5)for(var r of E5(i))GrA.call(i,r)&&Rj(t,r,i[r]);return t},_rA=(t,i)=>function(){return i||(0,t[o6(t)[0]])((i={exports:{}}).exports,i),i.exports},brA=(t,i,r,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let g of o6(i))r6.call(t,g)||g===r||pY(t,g,{get:()=>i[g],enumerable:!(s=i6(i,g))||s.enumerable});return t},LrA=(t,i,r)=>(r=t!=null?NrA(TrA(t)):{},brA(pY(r,"default",{value:t,enumerable:!0}),t)),gw=(t,i,r,s)=>{for(var g,B=i6(i,r),Q=t.length-1;Q>=0;Q--)(g=t[Q])&&(B=g(i,r,B)||B);return B&&pY(i,r,B),B},rr=(t,i,r)=>Rj(t,typeof i!="symbol"?i+"":i,r),FrA=_rA({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(t,i){var r=Object.prototype.hasOwnProperty,s="~";function g(){}function B(M,v,U){this.fn=M,this.context=v,this.once=U||!1}function Q(M,v,U,AA,z){if(typeof U!="function")throw new TypeError("The listener must be a function");var sA=new B(U,AA||M,z),eA=s?s+v:v;return M._events[eA]?M._events[eA].fn?M._events[eA]=[M._events[eA],sA]:M._events[eA].push(sA):(M._events[eA]=sA,M._eventsCount++),M}function f(M,v){--M._eventsCount===0?M._events=new g:delete M._events[v]}function m(){this._events=new g,this._eventsCount=0}Object.create&&(g.prototype=Object.create(null),new g().__proto__||(s=!1)),m.prototype.eventNames=function(){var M,v,U=[];if(this._eventsCount===0)return U;for(v in M=this._events)r.call(M,v)&&U.push(s?v.slice(1):v);return Object.getOwnPropertySymbols?U.concat(Object.getOwnPropertySymbols(M)):U},m.prototype.listeners=function(M){var v=s?s+M:M,U=this._events[v];if(!U)return[];if(U.fn)return[U.fn];for(var AA=0,z=U.length,sA=new Array(z);AA<z;AA++)sA[AA]=U[AA].fn;return sA},m.prototype.listenerCount=function(M){var v=s?s+M:M,U=this._events[v];return U?U.fn?1:U.length:0},m.prototype.emit=function(M,v,U,AA,z,sA){var eA=s?s+M:M;if(!this._events[eA])return!1;var X,QA,wA=this._events[eA],HA=arguments.length;if(wA.fn){switch(wA.once&&this.removeListener(M,wA.fn,void 0,!0),HA){case 1:return wA.fn.call(wA.context),!0;case 2:return wA.fn.call(wA.context,v),!0;case 3:return wA.fn.call(wA.context,v,U),!0;case 4:return wA.fn.call(wA.context,v,U,AA),!0;case 5:return wA.fn.call(wA.context,v,U,AA,z),!0;case 6:return wA.fn.call(wA.context,v,U,AA,z,sA),!0}for(QA=1,X=new Array(HA-1);QA<HA;QA++)X[QA-1]=arguments[QA];wA.fn.apply(wA.context,X)}else{var VA,ue=wA.length;for(QA=0;QA<ue;QA++)switch(wA[QA].once&&this.removeListener(M,wA[QA].fn,void 0,!0),HA){case 1:wA[QA].fn.call(wA[QA].context);break;case 2:wA[QA].fn.call(wA[QA].context,v);break;case 3:wA[QA].fn.call(wA[QA].context,v,U);break;case 4:wA[QA].fn.call(wA[QA].context,v,U,AA);break;default:if(!X)for(VA=1,X=new Array(HA-1);VA<HA;VA++)X[VA-1]=arguments[VA];wA[QA].fn.apply(wA[QA].context,X)}}return!0},m.prototype.on=function(M,v,U){return Q(this,M,v,U,!1)},m.prototype.once=function(M,v,U){return Q(this,M,v,U,!0)},m.prototype.removeListener=function(M,v,U,AA){var z=s?s+M:M;if(!this._events[z])return this;if(!v)return f(this,z),this;var sA=this._events[z];if(sA.fn)sA.fn!==v||AA&&!sA.once||U&&sA.context!==U||f(this,z);else{for(var eA=0,X=[],QA=sA.length;eA<QA;eA++)(sA[eA].fn!==v||AA&&!sA[eA].once||U&&sA[eA].context!==U)&&X.push(sA[eA]);X.length?this._events[z]=X.length===1?X[0]:X:f(this,z)}return this},m.prototype.removeAllListeners=function(M){var v;return M?(v=s?s+M:M,this._events[v]&&f(this,v)):(this._events=new g,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=s,m.EventEmitter=m,i!==void 0&&(i.exports=m)}}),UrA={name:"option",required:!0,properties:{view:{type:["string",HTMLElement],required:!0},url:{type:"string",required:!0},muted:{type:"boolean",required:!1},volume:{type:"number",required:!1},fillMode:{type:"string",required:!1,values:["contain","cover","fill"]},loggerConfig:{type:"object",required:!0,properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0}}}}},OrA=t=>{if(!navigator.userAgent.includes("Firefox"))return t;const i=t.split(`\r
`),r=[],s=[];i.forEach(Q=>{const f=Q.toLowerCase();f.includes("a=rtpmap")&&f.includes("h264")&&r.push(Q)}),r.length>1&&s.push(...r.slice(1));const g=s.map(Q=>{const f=/a=rtpmap:(\d+)\s/.exec(Q);return f&&f.length>1?f[1]:null}).filter(Q=>Q!==null),B=[];return i.forEach(Q=>{let f=Q;if(Q.includes("a=setup")&&(f="a=setup:passive"),(Q.includes("m=audio")||Q.includes("m=video"))&&(f=Q.split(" ").filter((m,M)=>M<3||!g.includes(m)).join(" ")),Q.includes("a=fmtp")||Q.includes("a=rtcp-fb")||Q.includes("a=rtpmap")){const m=/a=(?:fmtp|rtcp-fb|rtpmap):(\d+)\s/.exec(Q);if(m&&m.length>1&&g.includes(m[1]))return}B.push(f)}),B.join(`\r
`)},l5=t=>{const i=t.split(`\r
`),r=[];i.forEach(Q=>{const f=Q.toLowerCase();f.includes("a=rtpmap")&&f.includes("h264")&&r.push(Q)});const s=r.map(Q=>{const f=/a=rtpmap:(\d+)\s/.exec(Q);return f&&f.length>1?f[1]:null}).filter(Q=>Q!==null),g=[];i.forEach(Q=>{let f=Q;if(Q.includes("a=fmtp:111")&&(f=`${Q};stereo=1`),Q.includes("a=fmtp")){const m=/a=fmtp:(\d+)\s/.exec(Q);m&&m.length>1&&s.includes(m[1])&&(f=`${Q};sps-pps-idr-in-keyframe=1`)}g.push(f)});const B=g.join(`\r
`);return OrA(B)},xrA="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",SK=(t=21)=>{let i="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)i+=xrA[63&r[t]];return i},tw=t=>typeof t=="function",YrA=0,PrA=1,C5=2;function JrA({retryFunction:t,settings:i,onError:r,onRetrying:s,onRetryFailed:g,onRetrySuccess:B,context:Q}){return function(...f){const{retries:m=5,timeout:M=1e3}=i;let v=0,U=-1,AA=YrA;const z=async(sA,eA)=>{const X=Q||this;try{const QA=await t.apply(X,f);v>0&&B&&B.call(this,v),v=0,sA(QA)}catch(QA){const wA=()=>{clearTimeout(U),v=0,AA=C5,eA(QA)},HA=()=>{AA!==C5&&v<(tw(m)?m():m)?(v++,AA=PrA,tw(s)&&s.call(this,v,wA),U=window.setTimeout(()=>{U=-1,z(sA,eA)},tw(M)?M(v):M)):(wA(),tw(g)&&g.call(this,QA))};tw(r)?r.call(this,{error:QA,retry:HA,reject:eA,retryFuncArgs:f,retriedCount:v}):HA()}};return new Promise(z)}}var HrA=JrA,Nu=new WeakMap;function VrA({settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:s}){return function(g,B,Q){const f=HrA({retryFunction:Q.value,settings:t,onError({error:m,retry:M,reject:v,retryFuncArgs:U}){var AA;i?i.call(this,m,()=>{var z;(z=Nu.get(g))!=null&&z.has(B)?M():v(m)},v,U):(AA=Nu.get(g))!=null&&AA.has(B)?M():v(m)},onRetrying(m,M){var v;tw(r)&&r.call(this,m,M),(v=Nu.get(g))!=null&&v.has(B)&&(Nu.get(g).get(B).stopRetry=M)},onRetryFailed:s});return Q.value=function(...m){const M=Nu.get(g);return M?M.set(B,{args:m}):Nu.set(g,new Map([[B,{args:m}]])),f.apply(this,m).finally(()=>{var v;return(v=Nu.get(g))==null?void 0:v.delete(B)})},Q}}function qrA({fnName:t,callback:i,validateArgs:r=!0}){return function(s,g,B){const Q=B.value;return B.value=function(...f){var m,M;if((m=Nu.get(s))!=null&&m.has(t)){const{stopRetry:v,args:U}=Nu.get(s).get(t);let AA=!0;if(r){for(const z of U)if(!f.find(sA=>sA===z)){AA=!1;break}}AA&&(i&&i.apply(this,f),v&&v(),(M=Nu.get(s))==null||M.delete(t))}return Q.apply(this,f)},B}}var KrA=class{constructor(t,i){this.core=i,rr(this,"peerConnection"),rr(this,"audioTransceiver",null),rr(this,"videoTransceiver",null),rr(this,"timerId",null),rr(this,"callback",null),rr(this,"previousRawStats",null),rr(this,"_prevReportTime",0),rr(this,"_prevDecoderImplementation",""),rr(this,"_decodeMap",new Map),this.peerConnection=t,this.findTransceivers()}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}findTransceivers(){const t=this.peerConnection.getTransceivers();for(const i of t)if(i.receiver&&i.receiver.track){const{track:r}=i.receiver;r.kind==="audio"?this.audioTransceiver=i:r.kind==="video"&&(this.videoTransceiver=i)}}start(t,i=2e3){this.stop(),this.callback=t,this.collectStats(),this.timerId=window.setInterval(()=>{this.collectStats()},i)}stop(){this.timerId!==null&&(clearInterval(this.timerId),this.timerId=null),this.callback=null,this.previousRawStats=null,this._prevReportTime=0}async collectStats(){if(this.callback)try{const t=await this.peerConnection.getStats(),i=new Set(["inbound-rtp","track","candidate-pair","media-source","codec"]),r=[];t.forEach(f=>i.has(f.type)&&r.push(f));const s=Date.now(),g=this.parseAudioStats(r),B=this.parseVideoStats(r),Q=this.parseNetworkStats(r);this._prevReportTime=s,this.callback({audio:g,video:B,network:Q})}catch(t){this.core.log.error("Failed to collect WebRTC stats:",t)}}getDifferenceValue(t,i){if(this.core.utils.isUndefined(t))return i;const r=(i||0)-t;return r<0?0:r}parseAudioStats(t){var i,r,s,g;const B={bitrate:0,volume:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0};for(const Q of t){if(Q.type==="inbound-rtp"&&(Q.mediaType==="audio"||Q.kind==="audio")){if(B.bytesReceived=Q.bytesReceived||0,B.packetsReceived=Q.packetsReceived||0,B.packetsLost=Q.packetsLost||0,this.previousRawStats&&this.previousRawStats.audio){const M=this.getDifferenceValue(this.previousRawStats.audio.bytesReceived,B.bytesReceived);B.bitrate=Math.round(8*M/this.statInterval/1e3)}const f=this.getDifferenceValue((i=this.previousRawStats)==null?void 0:i.audio.packetsLost,B.packetsLost),m=this.getDifferenceValue((r=this.previousRawStats)==null?void 0:r.audio.packetsReceived,B.packetsReceived)+f;if(m>0&&(B.packetLossRate=Math.round(f/m*100)),this.core.utils.isUndefined(Q.audioLevel)||(B.volume=Q.audioLevel||0),Q.jitterBufferDelay&&Q.jitterBufferEmittedCount){let{jitterBufferEmittedCount:M}=Q,{jitterBufferDelay:v}=Q;(s=this.previousRawStats)!=null&&s.audio&&(M=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferEmittedCount,Q.jitterBufferEmittedCount),v=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferDelay,Q.jitterBufferDelay)),M>0&&(B.jitterBufferDelay=Math.floor(v/M*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.jitterBufferDelay=Q.jitterBufferDelay,this.previousRawStats.audio.jitterBufferEmittedCount=Q.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.bytesReceived=B.bytesReceived,this.previousRawStats.audio.packetsReceived=B.packetsReceived,this.previousRawStats.audio.packetsLost=B.packetsLost}!this.core.utils.isUndefined(Q.audioLevel)&&((g=this.audioTransceiver)!=null&&g.receiver.track)&&Q.trackIdentifier===this.audioTransceiver.receiver.track.id&&(B.volume=Q.audioLevel||0)}return B}parseVideoStats(t){var i,r,s,g,B;const Q={bitrate:0,frameRate:0,width:0,height:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0,framesDecoded:0};for(const f of t){if(f.type==="codec"&&this._decodeMap.set(f.id,f),f.type==="inbound-rtp"&&(f.mediaType==="video"||f.kind==="video")){if(Q.bytesReceived=f.bytesReceived||0,Q.packetsReceived=f.packetsReceived||0,Q.packetsLost=f.packetsLost||0,Q.framesDecoded=f.framesDecoded||0,this.core.utils.isUndefined(f.framesPerSecond)||(Q.frameRate=Math.round(f.framesPerSecond)),f.decoderImplementation&&this._prevDecoderImplementation!==f.decoderImplementation){const v=this._decodeMap.get(f.codecId),U=((i=v?.mimeType)==null?void 0:i.split("/")[1])||"unknown",AA=f.powerEfficientDecoder;this.core.log.info(`decoderImplementation change to ${f.decoderImplementation}(${U}) HWDecoder: ${AA}`),this._prevDecoderImplementation=f.decoderImplementation}if(this.previousRawStats&&this.previousRawStats.video){const v=this.getDifferenceValue(this.previousRawStats.video.bytesReceived,Q.bytesReceived);Q.bitrate=Math.round(8*v/this.statInterval/1e3)}const m=this.getDifferenceValue((r=this.previousRawStats)==null?void 0:r.video.packetsLost,Q.packetsLost),M=this.getDifferenceValue((s=this.previousRawStats)==null?void 0:s.video.packetsReceived,Q.packetsReceived)+m;if(M>0&&(Q.packetLossRate=Math.round(m/M*100)),f.jitterBufferDelay&&f.jitterBufferEmittedCount){let{jitterBufferEmittedCount:v}=f,{jitterBufferDelay:U}=f;(g=this.previousRawStats)!=null&&g.video&&(v=this.getDifferenceValue(this.previousRawStats.video.jitterBufferEmittedCount,f.jitterBufferEmittedCount),U=this.getDifferenceValue(this.previousRawStats.video.jitterBufferDelay,f.jitterBufferDelay)),v>0&&(Q.jitterBufferDelay=Math.floor(U/v*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.jitterBufferDelay=f.jitterBufferDelay,this.previousRawStats.video.jitterBufferEmittedCount=f.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.bytesReceived=Q.bytesReceived,this.previousRawStats.video.packetsReceived=Q.packetsReceived,this.previousRawStats.video.packetsLost=Q.packetsLost}!this.core.utils.isUndefined(f.frameWidth)&&((B=this.videoTransceiver)!=null&&B.receiver.track)&&f.trackIdentifier===this.videoTransceiver.receiver.track.id&&(Q.width=f.frameWidth,Q.height=f.frameHeight)}return Q}parseNetworkStats(t){const i={rtt:0};for(const r of t)if(r.type==="candidate-pair"&&(r.selected||r.state==="succeeded")&&this.core.utils.isNumber(r.currentRoundTripTime)){i.rtt=Math.floor(1e3*r.currentRoundTripTime);break}return i}initPreviousRawStats(){this.previousRawStats={timestamp:Date.now(),audio:{bytesReceived:0,packetsReceived:0,packetsLost:0},video:{bytesReceived:0,packetsReceived:0,packetsLost:0}}}},jrA=LrA(FrA()),B5=Symbol("instance"),A2=Symbol("cacheResult"),vK=class{constructor(i,r,s){this.oldState=i,this.newState=r,this.action=s,this.aborted=!1}abort(i){this.aborted=!0,HG.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},NK=class extends Error{constructor(i,r,s){super(r),this.state=i,this.message=r,this.cause=s}};function WrA(t){return typeof t=="object"&&t&&"then"in t}var JG=new Map;function e2(t,i,r={}){return(s,g,B)=>{const Q=r.action||g;if(!r.context){const m=JG.get(s)||[];JG.has(s)||JG.set(s,m),m.push({from:t,to:i,action:Q})}const f=B.value;B.value=function(...m){let M=this;if(r.context&&(M=uC.get(typeof r.context=="function"?r.context.call(this,...m):r.context)),M.state===i)return r.sync?M[A2]:Promise.resolve(M[A2]);M.state instanceof vK&&M.state.action==r.abortAction&&M.state.abort(M);let v=null;Array.isArray(t)?t.length==0?M.state instanceof vK&&M.state.abort(M):typeof M.state=="string"&&t.includes(M.state)||(v=new NK(M._state,`${M.name} ${Q} to ${i} failed: current state ${M._state} not from ${t.join("|")}`)):t!==M.state&&(v=new NK(M._state,`${M.name} ${Q} to ${i} failed: current state ${M._state} not from ${t}`));const U=X=>{if(r.fail&&r.fail.call(this,X),r.sync){if(r.ignoreError)return X;throw X}return r.ignoreError?Promise.resolve(X):Promise.reject(X)};if(v)return U(v);const AA=M.state,z=new vK(AA,i,Q);HG.call(M,z);const sA=X=>{var QA;return M[A2]=X,z.aborted||(HG.call(M,i),(QA=r.success)===null||QA===void 0||QA.call(this,M[A2])),X},eA=X=>(HG.call(M,AA,X),U(X));try{const X=f.apply(this,m);return WrA(X)?X.then(sA).catch(eA):r.sync?sA(X):Promise.resolve(sA(X))}catch(X){return eA(new NK(M._state,`${M.name} ${Q} from ${t} to ${i} failed: ${X}`,X instanceof Error?X:new Error(String(X))))}}}}var zrA=typeof window<"u"&&window.__AFSM__?(r,s)=>{window.dispatchEvent(new CustomEvent(r,{detail:s}))}:typeof importScripts<"u"?(r,s)=>{postMessage({type:r,payload:s})}:()=>{};function HG(t,i){const r=this._state;this._state=t;const s=t.toString();t&&this.emit(s,r),this.emit(uC.STATECHANGED,t,r,i),this.updateDevTools({value:t,old:r,err:i instanceof Error?i.message:String(i)})}var uC=class EC extends jrA.default{constructor(i,r,s){super(),this.name=i,this.groupName=r,this._state=EC.INIT,i||(i=Date.now().toString(36)),s?Object.setPrototypeOf(this,s):s=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);const g=s[B5];g?this.name=g.name+"-"+g.count++:s[B5]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const i=Object.getPrototypeOf(this),r=JG.get(i)||[];let s=new Set,g=[],B=[];const Q=new Set,f=Object.getPrototypeOf(i);JG.has(f)&&(f.stateDiagram.forEach(M=>s.add(M)),f.allStates.forEach(M=>Q.add(M))),r.forEach(({from:M,to:v,action:U})=>{typeof M=="string"?g.push({from:M,to:v,action:U}):M.length?M.forEach(AA=>{g.push({from:AA,to:v,action:U})}):B.push({to:v,action:U})}),g.forEach(({from:M,to:v,action:U})=>{Q.add(M),Q.add(v),Q.add(U+"ing"),s.add(`${M} --> ${U}ing : ${U}`),s.add(`${U}ing --> ${v} : ${U} 🟢`),s.add(`${U}ing --> ${M} : ${U} 🔴`)}),B.forEach(({to:M,action:v})=>{s.add(`${v}ing --> ${M} : ${v} 🟢`),Q.forEach(U=>{U!==M&&s.add(`${U} --> ${v}ing : ${v}`)})});const m=[...s];return Object.defineProperties(i,{stateDiagram:{value:m},allStates:{value:Q}}),m}static get(i){let r;return typeof i=="string"?(r=EC.instances.get(i),r||EC.instances.set(i,r=new EC(i,void 0,Object.create(EC.prototype)))):(r=EC.instances2.get(i),r||EC.instances2.set(i,r=new EC(i.constructor.name,void 0,Object.create(EC.prototype)))),r}static getState(i){var r;return(r=EC.get(i))===null||r===void 0?void 0:r.state}updateDevTools(i={}){zrA(EC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},i))}get state(){return this._state}set state(i){HG.call(this,i)}};uC.STATECHANGED="stateChanged",uC.UPDATEAFSM="updateAFSM",uC.INIT="[*]",uC.ON="on",uC.OFF="off",uC.instances=new Map,uC.instances2=new WeakMap;var MG=class extends uC{constructor(i,r){super(),this.core=i,rr(this,"audioPlayer"),rr(this,"videoPlayer"),rr(this,"callback"),rr(this,"avPlayerStateSyncManager"),rr(this,"_log"),rr(this,"_videoPlayerLog"),rr(this,"_audioPlayerLog"),rr(this,"lastPausedReason"),rr(this,"muted",!1),this._log=r,this._videoPlayerLog=this._log.createChild({id:"vp"}),this._audioPlayerLog=this._log.createChild({id:"ap"}),this.videoPlayer=new i.VideoPlayer({id:"vp",log:this._videoPlayerLog,track:null,muted:!1,container:null,enableLogTrackState:!0}),this.audioPlayer=new i.RemoteAudioPlayer({id:"ap",log:this._audioPlayerLog,track:null,muted:!1,container:null,enableVolumeControlInIOS:!0,enableLogTrackState:!0}),this.audioPlayer.on(i.PlayerEvent.AUTOPLAY_FAILED,s=>this.handleAutoPlayFailed(this.audioPlayer,s)),this.videoPlayer.on(i.PlayerEvent.LOAD_START,()=>this.handleLoadStart("video")),this.audioPlayer.on(i.PlayerEvent.LOAD_START,()=>this.handleLoadStart("audio")),this.videoPlayer.on(i.PlayerEvent.PLAYER_STATE_CHANGED,this.handlePlayerStateChanged,this),this.audioPlayer.on(i.PlayerEvent.PLAYER_STATE_CHANGED,this.handlePlayerStateChanged,this),this.videoPlayer.on(i.PlayerEvent.ENTER_PICTURE_IN_PICTURE,this.handleEnterPictureInPicture,this),this.videoPlayer.on(i.PlayerEvent.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePictureInPicture,this),this.videoPlayer.on(i.PlayerEvent.ENTER_FULL_SCREEN,this.handleEnterFullScreen,this),this.videoPlayer.on(i.PlayerEvent.LEAVE_FULL_SCREEN,this.handleLeaveFullScreen,this),this.avPlayerStateSyncManager=new i.AVPlayerStateSyncManager({log:this._log,audioPlayer:this.audioPlayer,videoPlayer:this.videoPlayer})}get isPlaying(){return this.videoPlayer.isPlaying&&this.audioPlayer.isPlaying}get isPaused(){return this.videoPlayer.isPaused&&this.audioPlayer.isPaused}get isStopped(){return this.videoPlayer.isStopped&&this.audioPlayer.isStopped}setCallback(i){this.callback=i}updateLogConfig(i){this._audioPlayerLog.setSdkAppId(i.sdkAppId),this._audioPlayerLog.setUserId(i.userId),this._videoPlayerLog.setSdkAppId(i.sdkAppId),this._videoPlayerLog.setUserId(i.userId)}handleLoadStart(i){this.onLoadStart()}handlePlayerStateChanged(i){i.state==="PLAYING"&&this.isPlaying&&this.onPlaying(),i.state==="PAUSED"&&this.isPaused&&this.onPaused(i.reason),i.state==="STOPPED"&&this.isStopped&&this.onStopped()}async handleEnterPictureInPicture(){var i,r;await this.videoPlayer.enterPIPPromise,(r=(i=this.callback)==null?void 0:i.onPictureInPictureStateChanged)==null||r.call(i,{isPictureInPicture:!0,pictureInPictureWindow:this.videoPlayer.pipWindow})}handleLeavePictureInPicture(){var i,r;(r=(i=this.callback)==null?void 0:i.onPictureInPictureStateChanged)==null||r.call(i,{isPictureInPicture:!1})}handleEnterFullScreen(){var i,r;(r=(i=this.callback)==null?void 0:i.onFullScreenStateChanged)==null||r.call(i,{isFullScreen:!0})}handleLeaveFullScreen(){var i,r;(r=(i=this.callback)==null?void 0:i.onFullScreenStateChanged)==null||r.call(i,{isFullScreen:!1})}onLoadStart(){}onPlaying(){}onPaused(i){this.lastPausedReason=i}onStopped(){}setVideoContainer(i){if(this.core.utils.isString(i)){const r=document.getElementById(i);r&&this.videoPlayer.setContainer(r)}else this.videoPlayer.setContainer(i)}setVolume(i){this.core.utils.isUndefined(i)||this.audioPlayer.setVolume(i/100)}setMuted(i){this.core.utils.isUndefined(i)||(this.muted=i,this.audioPlayer.setMuted(i))}setFillMode(i){i&&this.videoPlayer.setObjectFit(i)}setAudioTrack(i){this.audioPlayer.setTrack(i)}setVideoTrack(i){this.videoPlayer.setTrack(i)}async play(){const i=this.videoPlayer.play().catch(s=>{this.handleAutoPlayFailed(this.videoPlayer,s,"video")}),r=this.audioPlayer.play().catch(s=>{this.handleAutoPlayFailed(this.audioPlayer,s)});await Promise.all([i,r])}handleAutoPlayFailed(i,r,s="audio"){var g,B;this._log.warn("handleAutoPlayFailed",r);const Q=()=>{this.audioPlayer.resume().then(()=>{document.removeEventListener("click",Q,!0)})};document.addEventListener("click",Q,!0),(B=(g=this.callback)==null?void 0:g.onAutoPlayFailed)==null||B.call(g,{type:s,resume:()=>i.resume()})}pause(){this.videoPlayer.pause(!0),this.audioPlayer.setMuted(!0),this.audioPlayer.pause()}resume(){this.videoPlayer.resume(!0),this.audioPlayer.setMuted(this.muted),this.audioPlayer.resume()}async enterFullscreen(){await this.videoPlayer.enterFullscreen()}async exitFullscreen(){await this.videoPlayer.exitFullscreen()}async enterPictureInPicture(){await this.videoPlayer.enterPictureInPicture()}async exitPictureInPicture(){await this.videoPlayer.exitPictureInPicture()}stop(){this.videoPlayer&&this.videoPlayer.stop(),this.audioPlayer&&(this.audioPlayer.stop(),this.audioPlayer.setMuted(!1))}};gw([e2([uC.INIT,"PAUSED"],"LOADSTART",{ignoreError:!0,sync:!0,success(){var t,i;(i=(t=this.callback)==null?void 0:t.onLoadStart)==null||i.call(t)},fail(t){this._log.warn("onLoadStart",t)}})],MG.prototype,"onLoadStart"),gw([e2(["LOADSTART","PAUSED"],"PLAYING",{ignoreError:!0,sync:!0,success(){var t,i;(i=(t=this.callback)==null?void 0:t.onPlaying)==null||i.call(t)},fail(t){this._log.warn("onPlaying",t)}})],MG.prototype,"onPlaying"),gw([e2("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(){var t,i;(i=(t=this.callback)==null?void 0:t.onPaused)==null||i.call(t,{reason:this.lastPausedReason})},fail(t){this._log.warn("onPaused",t)}})],MG.prototype,"onPaused"),gw([e2([],uC.INIT,{ignoreError:!0,sync:!0,success(){var t,i;(i=(t=this.callback)==null?void 0:t.onStopped)==null||i.call(t)},fail(t){this._log.warn("onStopped",t)}})],MG.prototype,"onStopped");var u5=MG,ZrA=["overseas-webrtc.tlivewebrtc.com","oswebrtc-lint.tliveplay.com"],f2=class n6{constructor(i){this.core=i,rr(this,"_sdkAppId"),rr(this,"_userId"),rr(this,"connectedRoomIdSet",new Set),rr(this,"updateSeq",0),rr(this,"_log"),rr(this,"player"),rr(this,"peerConnection"),rr(this,"svrSig"),rr(this,"streamURL"),rr(this,"signalURL"),rr(this,"insertableStreamsAbortMap",new Map),rr(this,"scriptTransformWorker"),rr(this,"connectionState","disconnected"),rr(this,"isStarted",!1),rr(this,"isStopped",!0),rr(this,"isReconnecting",!1),rr(this,"callback"),rr(this,"isFireWallErrorEmitted",!1),rr(this,"stat"),rr(this,"isH264DecodeSupported"),rr(this,"connectionTimeoutId"),rr(this,"streamHealthCheckTimeoutId"),rr(this,"streamHealthCheckReject"),i.loggerManager.startUpload(),this._log=this.core.log.createChild({id:`${this.getAlias()}`}),this.player=new u5(i,this._log),i.innerEmitter.on(i.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}getName(){return n6.Name}getAlias(){return"LEB"}getGroup(){return""}getValidateRule(i){switch(i){case"start":return UrA;case"update":case"stop":return{}}}get enableSEI(){return this.core.room.enableSEI&&(this.core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED||this.core.rtcDectection.IS_SCRIPT_TRANSFORM_SUPPORTED)}wrapCallback(i){if(!i)return;const r={},s=["onStats","onSEIMessage"];for(const g of Object.keys(i)){const B=i[g];typeof B=="function"&&(s.includes(g)?r[g]=B:r[g]=(...Q)=>(this._log.debug(`callback ${g} called`,Q.length>0?Q[0]:""),B(...Q)))}return r}async start(i){var r;this.isStopped=!1;const{view:s,url:g,volume:B,muted:Q,fillMode:f,loggerConfig:m,callback:M}=i;this.callback=this.wrapCallback(M),this.player.setCallback(this.callback);const{errorModule:{RtcError:v,ErrorCode:U,ErrorCodeDictionary:AA},loggerManager:z,rtcDectection:sA}=this.core;if(this._sdkAppId=m.sdkAppId,this._userId=m.userId,this._log.setSdkAppId(m.sdkAppId),this._log.setUserId(m.userId),this.player.updateLogConfig(m),z.addJoinedUser(m),!sA.isWebRTCSupported()||!sA.isAddTransceiverSupported())throw new v({code:U.ENV_NOT_SUPPORTED,extraCode:AA.NOT_SUPPORTED_WEBRTC,message:"webrtc not supported"});if(!(await sA.decodeSupportStatus()).isH264DecodeSupported||this.isH264DecodeSupported===!1)throw this.isH264DecodeSupported=!1,new v({code:U.ENV_NOT_SUPPORTED,extraCode:AA.NOT_SUPPORTED_H264_DECODE,message:"h264 not supported"});!sA.IS_SEI_SUPPORTED&&M?.onSEIMessage&&((r=M.onError)==null||r.call(M,new v({code:U.ENV_NOT_SUPPORTED,extraCode:AA.NOT_SUPPORTED_SEI,message:"sei not supported"}))),this.player.setVideoContainer(s),this.player.setMuted(Q),this.player.setFillMode(f);try{await this.connect(g),this.stat=new KrA(this.peerConnection,this.core),this.stat.start(QA=>{var wA,HA;return(HA=(wA=this.callback)==null?void 0:wA.onStats)==null?void 0:HA.call(wA,QA)});const eA=this.player.play();this.player.setVolume(B);const X=this.createStreamHealthCheckPromise();await Promise.race([eA,X]),this.clearStreamHealthCheck(),this.isStarted=!0}catch(eA){throw this.stop(),eA}}async update(i){const{view:r,url:s,volume:g,muted:B,fillMode:Q,action:f,fullScreen:m,pictureInPicture:M}=i;s&&s!==this.streamURL&&await this.switchStream(s),this.player.setMuted(B),this.player.setVolume(g),this.player.setFillMode(Q),r&&this.player.videoPlayer.setContainer(this.core.utils.isString(r)?document.getElementById(r):r),f==="pause"?this.player.pause():f==="resume"&&this.player.resume(),this.core.utils.isBoolean(m)&&(m?await this.player.enterFullscreen():await this.player.exitFullscreen()),this.core.utils.isBoolean(M)&&(M?await this.player.enterPictureInPicture():await this.player.exitPictureInPicture())}async switchStream(i){this._log.info("switchStream",i);const r=this.peerConnection,s=this.streamURL,g=this.signalURL,B=this.svrSig,Q=new Map(this.insertableStreamsAbortMap),f=this.player;delete this.peerConnection,delete this.streamURL,delete this.signalURL,delete this.svrSig,this.insertableStreamsAbortMap.clear();const m=new u5(this.core,this._log);m.setVideoContainer(f.videoPlayer.container),m.setFillMode(f.videoPlayer.objectFit),m.setMuted(f.muted),m.setCallback(this.callback);const M=v=>{const{track:U}=v;this.createEncodedStreams(v.receiver),this.initReceiverTransform(v.receiver,U.kind==="audio"),U.kind==="audio"?m.setAudioTrack(U):m.setVideoTrack(U)};try{await this.connectForSwitch(i,M),this._log.info("switchStream: new connection established"),await this.waitForNewPlayerFirstFrame(m),this._log.info("switchStream: new stream first frame received"),f.audioPlayer.setMuted(!0),f.stop(),this.player=m,r&&(clearTimeout(this.connectionTimeoutId),r.close(),r.getReceivers().forEach(v=>Q.delete(v)),s&&B&&g&&this.fetchStopStreamWithParams(s,g,B).catch(v=>{this._log.warn("switchStream: stop old stream failed",v)})),this._log.info("switchStream: switch completed successfully")}catch(v){this._log.error("switchStream failed",v),m.stop();const U=this.peerConnection;throw U&&(U.close(),U.getReceivers().forEach(AA=>this.insertableStreamsAbortMap.delete(AA))),this.peerConnection=r,this.streamURL=s,this.signalURL=g,this.svrSig=B,this.insertableStreamsAbortMap=Q,this.player=f,f.audioPlayer.setMuted(f.muted),v}}waitForNewPlayerFirstFrame(i){return new Promise((r,s)=>{let g=0,B=!1;const Q=i.videoPlayer.getElement();if(!Q)return void s(new Error("VideoPlayer has no video element"));const f=()=>{B=!0,clearInterval(v),Q.removeEventListener("loadeddata",m),Q.removeEventListener("playing",M)},m=()=>{B||(this._log.info("waitForNewPlayerFirstFrame: loadeddata event fired"),f(),r())},M=()=>{B||(this._log.info("waitForNewPlayerFirstFrame: playing event fired"),f(),r())};Q.addEventListener("loadeddata",m,{once:!0}),Q.addEventListener("playing",M,{once:!0}),i.play().catch(U=>{this._log.warn("waitForNewPlayerFirstFrame: play failed",U)});const v=setInterval(()=>{if(!B){if(g+=100,Q.videoWidth>0&&Q.videoHeight>0)return this._log.info(`waitForNewPlayerFirstFrame: video has valid dimensions ${Q.videoWidth}x${Q.videoHeight}`),f(),void r();g>=1e4&&(f(),s(new Error("waitForNewPlayerFirstFrame timeout")))}},100)})}connectForSwitch(i,r){return new Promise((s,g)=>{try{this.initScriptTransformWorker();const B={encodedInsertableStreams:this.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},Q=new RTCPeerConnection(B);this.peerConnection=Q,Q.onconnectionstatechange=()=>{this.connectionState=Q.connectionState,this._log.info("connectForSwitch connectionState",Q.connectionState),Q.connectionState!=="failed"&&Q.connectionState!=="closed"||g(new Error(`connection is ${Q.connectionState}`)),Q.connectionState==="connected"&&(this.logSelectedCandidate(),s())},Q.ontrack=r,Q.addTransceiver("audio",{direction:"recvonly"}),Q.addTransceiver("video",{direction:"recvonly"}),this._log.info("connectForSwitch createOffer"),Q.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(f=>(f.sdp=l5(f.sdp),this._log.info("connectForSwitch setOffer"),Q.setLocalDescription(f))).then(()=>{const f={sessionId:SK(),streamurl:i,clientinfo:this.core.environment.getOSString(),localsdp:Q.localDescription};return this.exchangeSDP(i,f)}).then(f=>(this._log.info("connectForSwitch setAnswer"),Q.setRemoteDescription(f))).catch(g)}catch(B){g(B)}this.connectionTimeoutId=setTimeout(()=>g(new Error("connection timeout")),1e4)})}async fetchStopStreamWithParams(i,r,s){try{const g=`${r}/webrtc/v1/stopstream`,B=await t2(g,{streamurl:i,svrsig:s},{timeout:3}),{errcode:Q,errmsg:f}=B;if(Q!==0)throw new Error(`errCode:${Q}, errmsg:${f}`);return B}catch(g){this._log.error("fetchStopStreamWithParams error",g)}}async stop(){this.isStopped=!0,this.clearStreamHealthCheck(),this.player.stop(),this.peerConnection&&(clearTimeout(this.connectionTimeoutId),this.peerConnection.close(),this.peerConnection.getReceivers().forEach(i=>this.insertableStreamsAbortMap.delete(i)),delete this.peerConnection,await this.fetchStopStream(),delete this.streamURL,delete this.signalURL,delete this.svrSig),this.stat&&(this.stat.stop(),delete this.stat),this.core.room.keyPointManager.uploadKVStat(this.core.kvStatManager,this._sdkAppId)}destroy(){this.stop(),this.core.innerEmitter.off(this.core.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}createStreamHealthCheckPromise(){return new Promise((i,r)=>{this.streamHealthCheckReject=r,this.streamHealthCheckTimeoutId=window.setTimeout(()=>this.checkStreamHealth(r),5e3)})}clearStreamHealthCheck(){this.streamHealthCheckTimeoutId&&(clearTimeout(this.streamHealthCheckTimeoutId),delete this.streamHealthCheckTimeoutId),delete this.streamHealthCheckReject}async checkStreamHealth(i){if(!this.isStopped&&this.peerConnection)try{const r=this.peerConnection.getReceivers().find(U=>{var AA;return((AA=U.track)==null?void 0:AA.kind)==="video"});if(!r)return void this._log.warn("checkStreamHealth: no video receiver found");const s=await r.getStats();let g=0,B=0;s.forEach(U=>{U.type==="inbound-rtp"&&(U.mediaType==="video"||U.kind==="video")&&(g=U.bytesReceived||0,B=U.framesDecoded||0)});const{isPlaying:Q}=this.player,f=Q||B>0;this._log.info(`checkStreamHealth: bytesReceived=${g}, framesDecoded=${B}, isPlaying=${Q}`);const{RtcError:m,ErrorCode:M,ErrorCodeDictionary:v}=this.core.errorModule;g===0?(this._log.warn("checkStreamHealth: no stream data received after 5s"),i(new m({code:M.OPERATION_FAILED,message:"no stream data received"}))):f||(this._log.warn("checkStreamHealth: decode failed"),this.isH264DecodeSupported=!1,i(new m({code:M.ENV_NOT_SUPPORTED,extraCode:v.NOT_SUPPORTED_H264_DECODE,message:"h264 decode failed"})))}catch(r){this._log.warn("checkStreamHealth error",r)}}connect(i){return new Promise((r,s)=>{try{this.initScriptTransformWorker();const g={encodedInsertableStreams:this.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},B=new RTCPeerConnection(g);this.peerConnection=B,B.onconnectionstatechange=()=>{this.connectionState=B.connectionState,this._log.info("connectionState",B.connectionState),B.connectionState!=="failed"&&B.connectionState!=="closed"||(this.isStarted?this.reconnect(i):s(new Error(`connection is ${B.connectionState}`))),B.connectionState==="connected"&&(this.logSelectedCandidate(),r())},B.ontrack=Q=>this.onTrack(Q),B.addTransceiver("audio",{direction:"recvonly"}),B.addTransceiver("video",{direction:"recvonly"}),this._log.info("createOffer"),B.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(Q=>(Q.sdp=l5(Q.sdp),this._log.info("setOffer"),B.setLocalDescription(Q))).then(()=>{const Q={sessionId:SK(),streamurl:i,clientinfo:this.core.environment.getOSString(),localsdp:B.localDescription};return this.exchangeSDP(i,Q)}).then(Q=>(this._log.info("setAnswer"),B.setRemoteDescription(Q))).catch(s)}catch(g){s(g)}this.connectionTimeoutId=setTimeout(()=>s(new Error("connection timeout")),1e4)})}async exchangeSDP(i,r){let s,g,B;try{this._log.info("exchangeSDP");const Q=XrA(i);if(!Q)throw new Error("streamDomain is empty");const{signalDomain:f,cached:m}=await this.fetchSignalDomain(Q);if(!f)throw new Error("signalDomain is empty");{this._log.info("try exchangeSDP signalDomain:",f,m);const M=await this.doExchangeSDP(`https://${f}`,r,3);s=M.url,g=M.remoteSdp,B=M.svrSig}}catch(Q){this._log.warn("exchangeSDP failed, fallback",Q);try{const f=await this.core.utils.promiseAny(ZrA.map(m=>this.doExchangeSDP(`https://${m}`,r,3)));s=f.url,g=f.remoteSdp,B=f.svrSig}catch(f){throw this._log.error("exchangeSDP failed",f),f[0]||f}}return this.streamURL=i,this.signalURL=s,this.svrSig=B,g}async reconnect(i){var r,s;if(!this.isReconnecting){this.isReconnecting=!0;try{this._log.warn("start reconnect"),await this.connect(i),this._log.warn("reconnect success")}catch(g){this._log.error("reconnect error",g);const{RtcError:B,ErrorCode:Q}=this.core.errorModule;(s=(r=this.callback)==null?void 0:r.onError)==null||s.call(r,new B({code:Q.OPERATION_FAILED,message:"reconnect failed"}))}finally{this.isReconnecting=!1}}}async logSelectedCandidate(){if(!this.peerConnection)return;const i=await this.peerConnection.getStats();for(const[r,s]of i)if(this.core.rtcDectection.isSelectedCandidatePair(s)){const g=i.get(s.localCandidateId),B=i.get(s.remoteCandidateId);g&&this._log.info(`local candidate: ${g.candidateType} ${g.protocol}:${g.ip||g.address}:${g.port} ${g.networkType||""} ${g.relayProtocol?`relayProtocol:${g.relayProtocol} url: ${g.url}`:""}`),B&&this._log.info(`remote candidate: ${B.candidateType} ${B.protocol}:${B.ip||B.address}:${B.port}`);break}}async doExchangeSDP(i,r,s){const g=`${i}/webrtc/v1/pullstream`,B=await t2(g,r,{timeout:s}),{errcode:Q,errmsg:f,remotesdp:m,svrsig:M}=B;if(Q!==0){const v=new Error(`errCode:${Q}, errMsg:${f}`);throw v.name="RequestSignalError",v}return{url:i,remoteSdp:m,svrSig:M}}createEncodedStreams(i){var r;if(this.enableSEI&&this.core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED)try{if(this._log.warn("enableSEI",this.enableSEI),!this.insertableStreamsAbortMap.has(i)){const s=i.createEncodedStreams(),g=new AbortController,B={abortController:g,enqueue:Q=>i.track.kind==="audio"?Q:this.decodeVideoFrame(Q)};s.readable.pipeThrough(new TransformStream({transform:(Q,f)=>{const m=B.enqueue(Q);m&&f.enqueue(m)}})).pipeTo(s.writable,g).catch(Q=>{Q!=="destroy"&&this._log.warn(Q)}),(r=this.insertableStreamsAbortMap.get(i))==null||r.abort("destroy"),this.insertableStreamsAbortMap.set(i,g)}}catch(s){this._log.warn(`createEncodedStreams ${i.track.kind} failed`,s)}}initReceiverTransform(i,r){this.peerConnection&&this.enableSEI&&this.scriptTransformWorker&&!i.transform&&(i.transform=new RTCRtpScriptTransform(this.scriptTransformWorker,{isReceiver:!0,isAudio:r,userId:"",streamType:this.core.enums.RemoteStreamType.Main}))}initScriptTransformWorker(){const{room:i,rtcDectection:r,createScriptTransformWorker:s,trtc:g,TRTC:B}=this.core;!this.enableSEI||r.IS_INSERTABLE_STREAM_SUPPORTED||this.scriptTransformWorker||r.IS_SCRIPT_TRANSFORM_SUPPORTED&&(this._log.info("initScriptTransformWorker"),this.scriptTransformWorker=s({videoEncodePipeline:i.videoManager.encodePipeline,videoDecodePipeline:i.videoManager.decodePipeline,audioEncodePipeline:i.audioManager.encodePipeline,audioDecodePipeline:i.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=Q=>{var f,m;Q.data.type==="sei"&&((m=(f=this.callback)==null?void 0:f.onSEIMessage)==null||m.call(f,{data:Q.data.data,seiPayloadType:Q.data.seiPayloadType}))},this.scriptTransformWorker.onerror=Q=>{this._log.error("scriptTransformWorker error: ",Q.message)})}decodeVideoFrame(i){if(!this.core.room.videoManager)return i;for(const r of this.core.room.videoManager.decodePipeline)if(r&&!(i=r({frame:i})))return;return i}async fetchStopStream(){if(this.streamURL&&this.svrSig&&this.signalURL)try{const i=`${this.signalURL}/webrtc/v1/stopstream`,r=await t2(i,{streamurl:this.streamURL,svrsig:this.svrSig},{timeout:3}),{errcode:s,errmsg:g}=r;if(s!==0)throw new Error(`errCode:${s}, errmsg:${g}`);return r}catch(i){this._log.error("fetchStopStream error",i)}}onTrack(i){const{track:r}=i;this.createEncodedStreams(i.receiver),this.initReceiverTransform(i.receiver,r.kind==="audio"),r.kind==="audio"?this.player.setAudioTrack(r):this.player.setVideoTrack(r)}onSEIMessage({room:i,nalu:r}){var s,g;i===this.core.room&&((g=(s=this.callback)==null?void 0:s.onSEIMessage)==null||g.call(s,{data:r.seiPayload.buffer,seiPayloadType:r.seiPayloadType}))}async fetchSignalDomain(i,r=i2[0]){var s;const g=`https://${r}/signal_query`;try{const B=window.localStorage.getItem(TK);if(B){const v=JSON.parse(B);if(((s=v[i])==null?void 0:s.expire)-new Date().getTime()>0)return{signalDomain:v[i].signal,cached:!0}}const Q=await t2(g,{domain:i,requestid:SK(16),client_type:"Web",client_info:window.navigator.userAgent}),{errcode:f,errmsg:m,data:M}=Q;if(f===0){const{signal_domain:v,cache_time:U}=M;let AA={};const z=window.localStorage.getItem(TK);z&&(AA=JSON.parse(z)),AA[i]={signal:v,expire:new Date().getTime()+1e3*U};try{window.localStorage.setItem(TK,JSON.stringify(AA))}catch{}return{signalDomain:v,cached:!1}}throw new Error(`errCode:${f} errmsg:${m}`)}catch(B){return this._log.error("fetchSignalDomain error",B),i2[1]&&r!==i2[1]?this.fetchSignalDomain(i,i2[1]):{signalDomain:"",cached:!1}}}};rr(f2,"Name","LEBPlayer"),gw([qrA({fnName:"connect"})],f2.prototype,"stop"),gw([VrA({settings:{retries:1/0,timeout:2e3},onRetrying(t){var i;if(this._log.warn(`retry connect ${t}`),t>=3&&((i=this.callback)==null?void 0:i.onError)&&!this.isFireWallErrorEmitted){const{RtcError:r,ErrorCode:s,ErrorCodeDictionary:g}=this.core.errorModule;this.isFireWallErrorEmitted=!0,this.callback.onError(new r({code:s.OPERATION_FAILED,extraCode:g.FIREWALL_RESTRICTION,message:"firewall restriction"}))}},onError(t,i,r,s){var g;if(this._log.warn("connect failed",t),this.peerConnection&&(this.peerConnection.close(),delete this.peerConnection),!this.isStopped&&((g=t.message||t)==null?void 0:g.includes("connection")))i();else{const{RtcError:B,ErrorCode:Q}=this.core.errorModule;r(new B({code:Q.UNKNOWN_ERROR,message:t.message}))}}})],f2.prototype,"connect");var a6=f2,t2=async(t,i,r={})=>{const{timeout:s=10}=r;let g,B=0,Q={};window.AbortController&&(g=new window.AbortController,Q={signal:g.signal},B=window.setTimeout(()=>g.abort(),1e3*s));const f=await fetch(t,krA({body:JSON.stringify(i),cache:"no-cache",credentials:"same-origin",headers:{"content-type":"text/plain;charset=utf-8"},method:"POST",mode:"cors"},Q));if(B&&window.clearTimeout(B),f.status!==200)throw new Error(`Network Error, status code:${f.status}`);return f.json()},i2=["webrtc-signal-scheduler.tlivesource.com","bak-webrtc-signal-scheduler.tlivesource.com"],TK="LEB_PLAYER_STORAGE_KEY",XrA=t=>{const i=/^(?:webrtc:\/\/)([0-9.\-A-Za-z_]+)(?:\/)(?:[0-9.\-A-Za-z_=]+)(?:\/)(?:[^?#]*)(?:\?*)(?:[^?#]*)/.exec(t);return i?i[1]:""},$rA=a6;const AnA=Object.freeze(Object.defineProperty({__proto__:null,LEBPlayer:a6,default:$rA},Symbol.toStringTag,{value:"Module"})),enA=hk(AnA);var s6=Object.defineProperty,tnA=Object.defineProperties,inA=Object.getOwnPropertyDescriptors,Q5=Object.getOwnPropertySymbols,onA=Object.prototype.hasOwnProperty,rnA=Object.prototype.propertyIsEnumerable,Mj=(t,i,r)=>i in t?s6(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,nnA=(t,i)=>{for(var r in i||(i={}))onA.call(i,r)&&Mj(t,r,i[r]);if(Q5)for(var r of Q5(i))rnA.call(i,r)&&Mj(t,r,i[r]);return t},anA=(t,i)=>tnA(t,inA(i)),snA=(t,i)=>{for(var r in i)s6(t,r,{get:i[r],enumerable:!0})},Oa=(t,i,r)=>Mj(t,typeof i!="symbol"?i+"":i,r);async function gnA({sdkAppId:t,userId:i,userSig:r,core:s}){var g;const B=Math.round(new Date().getTime()/1e3);try{const Q=await s.schedule.getAbilityConfig(t,s.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:t,userId:i,userSig:r,timestamp:B});s.log.info(`virtual background ability response: ${JSON.stringify(Q)}`);const{data:f}=Q;return(g=f?.trtcAutoConf)!=null&&g.web_ar?{auth:!0,timestamp:B}:{auth:!1}}catch(Q){return s.log.error("virtual background fetch error",Q),{auth:!1}}}var InA={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function cnA(t){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:anA(nnA({},InA),{type:{required:!1,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}}),validate(i,r,s,g){var B;const{RtcError:Q,ErrorCode:f,ErrorCodeDictionary:m}=t.errorModule;if(!i)return;const{type:M,src:v,onAbort:U}=i;if(M==="image"&&!v)throw new Q({code:f.INVALID_PARAMETER,extraCode:m.INVALID_PARAMETER_REQUIRED,fnName:s,messageParams:{key:"src"}});if(U&&!t.utils.isFunction(U))throw new Q({code:f.INVALID_PARAMETER,extraCode:m.INVALID_PARAMETER_TYPE,fnName:s,messageParams:{key:"onAbort",value:typeof U,rule:{type:"Function"}}});if(!((B=t.room.videoManager.cameraTrack)!=null&&B.mediaTrack))throw new Q({code:f.INVALID_OPERATION,extraCode:m.INVALID_OPERATION_NEED_VIDEO,fnName:s})}}}function EnA(t){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur","color"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},color:{required:!1,type:["array","string"]},enableFaceCentering:{required:!1,type:"boolean"},enableEffectOptimization:{required:!1,type:"boolean"}},validate(i,r,s,g){if(!i)return;const{RtcError:B,ErrorCode:Q,ErrorCodeDictionary:f}=t.errorModule,{type:m,src:M}=i;if(m==="image"&&!M)throw new B({code:Q.INVALID_PARAMETER,extraCode:f.INVALID_PARAMETER_REQUIRED,fnName:s,messageParams:{key:"src"}})}}}function lnA(t){return{name:"StopVirtualBackgroundOptions",required:!1}}var CnA=(()=>{var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var r,s,g=i;g.ready=new Promise((P,F)=>{r=P,s=F});var B=Object.assign({},g),Q="";typeof document<"u"&&document.currentScript&&(Q=document.currentScript.src),t&&(Q=t),Q=Q.indexOf("blob:")!==0?Q.substr(0,Q.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var f,m,M=g.print||console.log.bind(console),v=g.printErr||console.error.bind(console);function U(P){if(bi(P))return function(F){for(var EA=atob(F),RA=new Uint8Array(EA.length),GA=0;GA<EA.length;++GA)RA[GA]=EA.charCodeAt(GA);return RA}(P.slice(Zi.length))}Object.assign(g,B),B=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(f=g.wasmBinary),typeof WebAssembly!="object"&&Je("no native wasm support detected");var AA,z,sA,eA,X,QA,wA,HA,VA=!1,ue=[],jA=[],Ve=[];function Ze(P){ue.unshift(P)}function Me(P){Ve.unshift(P)}var qe=0,Et=null;function Je(P){g.onAbort&&g.onAbort(P),v(P="Aborted("+P+")"),VA=!0,P+=". Build with -sASSERTIONS for more info.";var F=new WebAssembly.RuntimeError(P);throw s(F),F}var $e,Dt,Zi="data:application/octet-stream;base64,",bi=P=>P.startsWith(Zi);function qt(P){return Promise.resolve().then(()=>function(F){if(F==$e&&f)return new Uint8Array(f);var EA=U(F);if(EA)return EA;throw"both async and sync fetching of the wasm failed"}(P))}function ai(P,F,EA,RA){return function(GA,WA,Ce){return qt(GA).then(ge=>WebAssembly.instantiate(ge,WA)).then(ge=>ge).then(Ce,ge=>{v(`failed to asynchronously prepare wasm: ${ge}`),Je(ge)})}(F,EA,RA)}bi($e="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRB8MoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEHo3gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQA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KAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFBjM0AECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRB1M8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEHUzwAgAkEIahAHNgIEIABB1NUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUHMLSACQQhqEAc2AgQgAUHU1QA2AgAgAUEBNgIcIAFB1NUANgIYIAFBATYCFCABQdTVADYCECABQQE2AgwgAUHU1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJB1NUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9B6N4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9B6N4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABBnNAAIAJBCGoQBzYCBCAAQdTVADYCACACQRBqJAALC/NKFQBBgAgLhCZzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBtYXgoc21vb3RoQ29sb3IsIHZlYzMoMC4wKSk7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICB1bmlmb3JtIG1hdDQgdV9vZmZzZXRNYXRyaXg7CiAgICB1bmlmb3JtIHZlYzMgdV9jb2xvcjsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5yPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgICAgdmVjMiBvZmZzZXRNYXNrVVYgPSAodV9vZmZzZXRNYXRyaXggKiB2ZWM0KGMsIDAsIDEpKS54eTsKICAgICAgZmxvYXQgaXNJbnNpZGVYID0gKG9mZnNldE1hc2tVVi54ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi54IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlWSA9IChvZmZzZXRNYXNrVVYueSA+PSAwLjApICYmIChvZmZzZXRNYXNrVVYueSA8PSAxLjApID8gMS4wIDogMC4wOwogICAgICBmbG9hdCBpc0luc2lkZSA9IGlzSW5zaWRlWCAqIGlzSW5zaWRlWTsKICAgICAgZmxvYXQgbWFza2VkQWxwaGEgPSB0ZXh0dXJlKG1hc2ssIG9mZnNldE1hc2tVVikuciAqIGlzSW5zaWRlOwogICAgICBtYXNrZWRBbHBoYSA9IG1hc2tlZEFscGhhPDAuNT8yLjAqbWFza2VkQWxwaGEqbWFza2VkQWxwaGE6MS4wLTIuMCooMS4wLW1hc2tlZEFscGhhKSooMS4wLW1hc2tlZEFscGhhKTsKICAgICAgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgb2Zmc2V0TWFza1VWICwgaXNJbnNpZGUpOwogICAgICBvdXRDb2xvciA9IG1peCh0ZXh0dXJlKGJnLCBjKSwgc3JjX2NvbG9yLCBtYXNrZWRBbHBoYSk7CiAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykucjsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQodV9jb2xvciwxLjApLHNyY19jb2xvcixhKTsKADZBbGxJbjEAAIAoAABfFgAAUDZBbGxJbjEAAAAABCkAAHAWAAAAAAAAaBYAAFBLNkFsbEluMQAAAAQpAACMFgAAAQAAAGgWAABpaQB2AHZpAHwWAADMFgAATjEwZW1zY3JpcHRlbjN2YWxFAACAKAAAuBYAAGlpaQB2aWlpAAAAALwnAAB8FgAAcCgAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkZABBkC4LyAi8JwAAfBYAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkALwnAAB8FgAAdmlpALwnAADMFgAAzBYAAHwWAADMFgAAHCgAALwnAADMFgAAoBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACAKAAAYBcAAMwWAAC8JwAAzBYAAMwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAgCgAALgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAgCgAAAAYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAIAoAABIGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACAKAAAlBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAgCgAAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAIAoAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACAKAAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAgCgAAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAIAoAACAGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACAKAAAqBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAgCgAANAZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAIAoAAD4GQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACAKAAAIBoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAgCgAAEgaAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAIAoAABwGgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAACAKAAAmBoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAAgCgAAMAaAAD+gitlRxVnQAAAAAAAADhDAAD6/kIudr86O568mvcMvb39/////98/PFRVVVVVxT+RKxfPVVWlPxfQpGcREYE/AAAAAAAAyELvOfr+Qi7mPyTEgv+9v84/tfQM1whrrD/MUEbSq7KDP4Q6Tpvg11U/AEHmNgu7EPA/br+IGk87mzw1M/upPfbvP13c2JwTYHG8YYB3Pprs7z/RZocQel6QvIV/bugV4+8/E/ZnNVLSjDx0hRXTsNnvP/qO+SOAzou83vbdKWvQ7z9hyOZhTvdgPMibdRhFx+8/mdMzW+SjkDyD88bKPr7vP217g12mmpc8D4n5bFi17z/87/2SGrWOPPdHciuSrO8/0ZwvcD2+Pjyi0dMy7KPvPwtukIk0A2q8G9P+r2ab7z8OvS8qUlaVvFFbEtABk+8/VepOjO+AULzMMWzAvYrvPxb01bkjyZG84C2prpqC7z+vVVzp49OAPFGOpciYeu8/SJOl6hUbgLx7UX08uHLvPz0y3lXwH4+86o2MOPlq7z+/UxM/jImLPHXLb+tbY+8/JusRdpzZlrzUXASE4FvvP2AvOj737Jo8qrloMYdU7z+dOIbLguePvB3Z/CJQTe8/jcOmREFvijzWjGKIO0bvP30E5LAFeoA8ltx9kUk/7z+UqKjj/Y6WPDhidW56OO8/fUh08hhehzw/prJPzjHvP/LnH5grR4A83XziZUUr7z9eCHE/e7iWvIFj9eHfJO8/MasJbeH3gjzh3h/1nR7vP/q/bxqbIT28kNna0H8Y7z+0CgxygjeLPAsD5KaFEu8/j8vOiZIUbjxWLz6prwzvP7arsE11TYM8FbcxCv4G7z9MdKziAUKGPDHYTPxwAe8/SvjTXTndjzz/FmSyCPzuPwRbjjuAo4a88Z+SX8X27j9oUEvM7UqSvMupOjen8e4/ji1RG/gHmbxm2AVtruzuP9I2lD7o0XG895/lNNvn7j8VG86zGRmZvOWoE8Mt4+4/bUwqp0ifhTwiNBJMpt7uP4ppKHpgEpO8HICsBEXa7j9biRdIj6dYvCou9yEK1u4/G5pJZ5ssfLyXqFDZ9dHuPxGswmDtY0M8LYlhYAjO7j/vZAY7CWaWPFcAHe1Byu4/eQOh2uHMbjzQPMG1osbuPzASDz+O/5M83tPX8CrD7j+wr3q7zpB2PCcqNtXav+4/d+BU670dkzwN3f2ZsrzuP46jcQA0lI+8pyyddrK57j9Jo5PczN6HvEJmz6Latu4/XzgPvcbeeLyCT51WK7TuP/Zce+xGEoa8D5JdyqSx7j+O1/0YBTWTPNontTZHr+4/BZuKL7eYezz9x5fUEq3uPwlUHOLhY5A8KVRI3Qer7j/qxhlQhcc0PLdGWYomqe4/NcBkK+YylDxIIa0Vb6fuP592mWFK5Iy8Cdx2ueGl7j+oTe87xTOMvIVVOrB+pO4/rukriXhThLwgw8w0RqPuP1hYVnjdzpO8JSJVgjii7j9kGX6AqhBXPHOpTNRVoe4/KCJev++zk7zNO39mnqDuP4K5NIetEmq8v9oLdRKg7j/uqW2472djvC8aZTyyn+4/UYjgVD3cgLyElFH5fZ/uP88+Wn5kH3i8dF/s6HWf7j+wfYvASu6GvHSBpUian+4/iuZVHjIZhrzJZ0JW65/uP9PUCV7LnJA8P13eT2mg7j8dpU253DJ7vIcB63MUoe4/a8BnVP3slDwywTAB7aHuP1Vs1qvh62U8Yk7PNvOi7j9Cz7MvxaGIvBIaPlQnpO4/NDc78bZpk7wTzkyZiaXuPx7/GTqEXoC8rccjRhqn7j9uV3LYUNSUvO2SRJvZqO4/AIoOW2etkDyZZorZx6ruP7Tq8MEvt40826AqQuWs7j//58WcYLZlvIxEtRYyr+4/RF/zWYP2ezw2dxWZrrHuP4M9HqcfCZO8xv+RC1u07j8pHmyLuKldvOXFzbA3t+4/WbmQfPkjbLwPUsjLRLruP6r59CJDQ5K8UE7en4K97j9LjmbXbMqFvLoHynDxwO4/J86RK/yvcTyQ8KOCkcTuP7tzCuE10m08IyPjGWPI7j9jImIiBMWHvGXlXXtmzO4/1THi44YcizwzLUrsm9DuPxW7vNPRu5G8XSU+sgPV7j/SMe6cMcyQPFizMBOe2e4/s1pzboRphDy//XlVa97uP7SdjpfN34K8evPTv2vj7j+HM8uSdxqMPK3TWpmf6O4/+tnRSo97kLxmto0pB+7uP7qu3FbZw1W8+xVPuKLz7j9A9qY9DqSQvDpZ5Y1y+e4/NJOtOPTWaLxHXvvydv/uPzWKWGvi7pG8SgahMLAF7z/N3V8K1/90PNLBS5AeDO8/rJiS+vu9kbwJHtdbwhLvP7MMrzCubnM8nFKF3ZsZ7z+U/Z9cMuOOPHrQ/1+rIO8/rFkJ0Y/ghDxL0Vcu8SfvP2caTjivzWM8tecGlG0v7z9oGZJsLGtnPGmQ79wgN+8/0rXMgxiKgLz6w11VCz/vP2/6/z9drY+8fIkHSi1H7z9JqXU4rg2QvPKJDQiHT+8/pwc9poWjdDyHpPvcGFjvPw8iQCCekYK8mIPJFuNg7z+sksHVUFqOPIUy2wPmae8/S2sBrFk6hDxgtAHzIXPvPx8+tAch1YK8X5t7M5d87z/JDUc7uSqJvCmh9RRGhu8/04g6YAS2dDz2P4vnLpDvP3FynVHsxYM8g0zH+1Ga7z/wkdOPEvePvNqQpKKvpO8/fXQj4piujbzxZ44tSK/vPwggqkG8w448J1ph7hu67z8y66nDlCuEPJe6azcrxe8/7oXRMalkijxARW5bdtDvP+3jO+S6N468FL6crf3b7z+dzZFNO4l3PNiQnoHB5+8/icxgQcEFUzzxcY8rwvPvPwAAAAAAAAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQbHHAAshDgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAEHrxwALAQwAQffHAAsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEGlyAALARAAQbHIAAsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEHfyAALARIAQevIAAseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEGiyQALDhoAAAAaGhoAAAAAAAAJAEHTyQALARQAQd/JAAsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEGNygALARYAQZnKAAulCRUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgAAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjsAAAAAAAAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5TjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAAqCgAADgmAAC4KQAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAAqCgAAGgmAABcJgAATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAAAAqCgAAJgmAABcJgAATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UAqCgAAMgmAAC8JgAATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAAAAAKgoAAD4JgAAXCYAAE4xMF9fY3h4YWJpdjEyOV9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvRQAAAKgoAAAsJwAAvCYAAAAAAACsJwAAIQAAACIAAAAjAAAAJAAAACUAAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAqCgAAIQnAABcJgAAdgAAAHAnAAC4JwAARG4AAHAnAADEJwAAYgAAAHAnAADQJwAAYwAAAHAnAADcJwAAaAAAAHAnAADoJwAAYQAAAHAnAAD0JwAAcwAAAHAnAAAAKAAAdAAAAHAnAAAMKAAAaQAAAHAnAAAYKAAAagAAAHAnAAAkKAAAbAAAAHAnAAAwKAAAbQAAAHAnAAA8KAAAeAAAAHAnAABIKAAAeQAAAHAnAABUKAAAZgAAAHAnAABgKAAAZAAAAHAnAABsKAAAAAAAAIwmAAAhAAAAJgAAACMAAAAkAAAAJwAAACgAAAApAAAAKgAAAAAAAADwKAAAIQAAACsAAAAjAAAAJAAAACcAAAAsAAAALQAAAC4AAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAAqCgAAMgoAACMJgAAAAAAAOwmAAAhAAAALwAAACMAAAAkAAAAMAAAAAAAAAA8KQAAMQAAADIAAAAzAAAAU3Q5ZXhjZXB0aW9uAAAAAIAoAAAsKQAAAAAAAGgpAAAYAAAANAAAADUAAABTdDExbG9naWNfZXJyb3IAqCgAAFgpAAA8KQAAAAAAAJwpAAAYAAAANgAAADUAAABTdDEybGVuZ3RoX2Vycm9yAAAAAKgoAACIKQAAaCkAAFN0OXR5cGVfaW5mbwAAAACAKAAAqCkAQcDTAAsJCxUAAAAAAAAFAEHU0wALARsAQezTAAsOHAAAAB0AAABoKwAAAAQAQYTUAAsBAQBBlNQACwX/////CgBB2NQACwNgMQE=")||(Dt=$e,$e=g.locateFile?g.locateFile(Dt,Q):Q+Dt);var Ki=P=>{for(;P.length>0;)P.shift()(g)};g.noExitRuntime;function Ur(P){this.excPtr=P,this.ptr=P-24,this.set_type=function(F){QA[this.ptr+4>>2]=F},this.get_type=function(){return QA[this.ptr+4>>2]},this.set_destructor=function(F){QA[this.ptr+8>>2]=F},this.get_destructor=function(){return QA[this.ptr+8>>2]},this.set_caught=function(F){F=F?1:0,AA[this.ptr+12|0]=F},this.get_caught=function(){return AA[this.ptr+12|0]!=0},this.set_rethrown=function(F){F=F?1:0,AA[this.ptr+13|0]=F},this.get_rethrown=function(){return AA[this.ptr+13|0]!=0},this.init=function(F,EA){this.set_adjusted_ptr(0),this.set_type(F),this.set_destructor(EA)},this.set_adjusted_ptr=function(F){QA[this.ptr+16>>2]=F},this.get_adjusted_ptr=function(){return QA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Cs(this.get_type()))return QA[this.excPtr>>2];var F=this.get_adjusted_ptr();return F!==0?F:this.excPtr}}var Er,no,Kn,Xi=P=>{for(var F="",EA=P;z[EA];)F+=Er[z[EA++]];return F},yr={},lr={},Ni={},wt=P=>{throw new no(P)},Ji=P=>{throw new Kn(P)},Di=(P,F,EA)=>{function RA(ge){var we=EA(ge);we.length!==P.length&&Ji("Mismatched type converter count");for(var _e=0;_e<P.length;++_e)ar(P[_e],we[_e])}P.forEach(function(ge){Ni[ge]=F});var GA=new Array(F.length),WA=[],Ce=0;F.forEach((ge,we)=>{lr.hasOwnProperty(ge)?GA[we]=lr[ge]:(WA.push(ge),yr.hasOwnProperty(ge)||(yr[ge]=[]),yr[ge].push(()=>{GA[we]=lr[ge],++Ce===WA.length&&RA(GA)}))}),WA.length===0&&RA(GA)};function ar(P,F,EA={}){if(!("argPackAdvance"in F))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(RA,GA,WA={}){var Ce=GA.name;if(RA||wt(`type "${Ce}" must have a positive integer typeid pointer`),lr.hasOwnProperty(RA)){if(WA.ignoreDuplicateRegistrations)return;wt(`Cannot register type '${Ce}' twice`)}if(lr[RA]=GA,delete Ni[RA],yr.hasOwnProperty(RA)){var ge=yr[RA];delete yr[RA],ge.forEach(we=>we())}}(P,F,EA)}var MA,YA=P=>{wt(P.$$.ptrType.registeredClass.name+" instance already deleted")},pe=!1,st=P=>{},Te=P=>{P.count.value-=1,P.count.value===0&&(F=>{F.smartPtr?F.smartPtrType.rawDestructor(F.smartPtr):F.ptrType.registeredClass.rawDestructor(F.ptr)})(P)},be=(P,F,EA)=>{if(F===EA)return P;if(EA.baseClass===void 0)return null;var RA=be(P,F,EA.baseClass);return RA===null?null:EA.downcast(RA)},yt={},ht=()=>Object.keys(zt).length,ae=()=>{var P=[];for(var F in zt)zt.hasOwnProperty(F)&&P.push(zt[F]);return P},ye=[],Xe=()=>{for(;ye.length;){var P=ye.pop();P.$$.deleteScheduled=!1,P.delete()}},ot=P=>{MA=P,ye.length&&MA&&MA(Xe)},zt={},yi=(P,F)=>(F=((EA,RA)=>{for(RA===void 0&&wt("ptr should not be undefined");EA.baseClass;)RA=EA.upcast(RA),EA=EA.baseClass;return RA})(P,F),zt[F]),Hi=(P,F)=>(F.ptrType&&F.ptr||Ji("makeClassHandle requires ptr and ptrType"),!!F.smartPtrType!=!!F.smartPtr&&Ji("Both smartPtrType and smartPtr must be specified"),F.count={value:1},ji(Object.create(P,{$$:{value:F}})));function Ei(P){var F=this.getPointee(P);if(!F)return this.destructor(P),null;var EA=yi(this.registeredClass,F);if(EA!==void 0){if(EA.$$.count.value===0)return EA.$$.ptr=F,EA.$$.smartPtr=P,EA.clone();var RA=EA.clone();return this.destructor(P),RA}function GA(){return this.isSmartPointer?Hi(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:F,smartPtrType:this,smartPtr:P}):Hi(this.registeredClass.instancePrototype,{ptrType:this,ptr:P})}var WA,Ce=this.registeredClass.getActualType(F),ge=yt[Ce];if(!ge)return GA.call(this);WA=this.isConst?ge.constPointerType:ge.pointerType;var we=be(F,this.registeredClass,WA.registeredClass);return we===null?GA.call(this):this.isSmartPointer?Hi(WA.registeredClass.instancePrototype,{ptrType:WA,ptr:we,smartPtrType:this,smartPtr:P}):Hi(WA.registeredClass.instancePrototype,{ptrType:WA,ptr:we})}var ji=P=>typeof FinalizationRegistry>"u"?(ji=F=>F,P):(pe=new FinalizationRegistry(F=>{Te(F.$$)}),st=F=>pe.unregister(F),(ji=F=>{var EA=F.$$;if(EA.smartPtr){var RA={$$:EA};pe.register(F,RA,F)}return F})(P));function Xo(){}var sr=(P,F)=>Object.defineProperty(F,"name",{value:P}),Lo=(P,F,EA)=>{if(P[F].overloadTable===void 0){var RA=P[F];P[F]=function(){return P[F].overloadTable.hasOwnProperty(arguments.length)||wt(`Function '${EA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${P[F].overloadTable})!`),P[F].overloadTable[arguments.length].apply(this,arguments)},P[F].overloadTable=[],P[F].overloadTable[RA.argCount]=RA}};function Nr(P,F,EA,RA,GA,WA,Ce,ge){this.name=P,this.constructor=F,this.instancePrototype=EA,this.rawDestructor=RA,this.baseClass=GA,this.getActualType=WA,this.upcast=Ce,this.downcast=ge,this.pureVirtualFunctions=[]}var Vo=(P,F,EA)=>{for(;F!==EA;)F.upcast||wt(`Expected null or instance of ${EA.name}, got an instance of ${F.name}`),P=F.upcast(P),F=F.baseClass;return P};function et(P,F){if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`);var EA=F.$$.ptrType.registeredClass;return Vo(F.$$.ptr,EA,this.registeredClass)}function Kr(P,F){var EA;if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),this.isSmartPointer?(EA=this.rawConstructor(),P!==null&&P.push(this.rawDestructor,EA),EA):0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&F.$$.ptrType.isConst&&wt(`Cannot convert argument of type ${F.$$.smartPtrType?F.$$.smartPtrType.name:F.$$.ptrType.name} to parameter type ${this.name}`);var RA=F.$$.ptrType.registeredClass;if(EA=Vo(F.$$.ptr,RA,this.registeredClass),this.isSmartPointer)switch(F.$$.smartPtr===void 0&&wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:F.$$.smartPtrType===this?EA=F.$$.smartPtr:wt(`Cannot convert argument of type ${F.$$.smartPtrType?F.$$.smartPtrType.name:F.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:EA=F.$$.smartPtr;break;case 2:if(F.$$.smartPtrType===this)EA=F.$$.smartPtr;else{var GA=F.clone();EA=this.rawShare(EA,gr.toHandle(()=>GA.delete())),P!==null&&P.push(this.rawDestructor,EA)}break;default:wt("Unsupporting sharing policy")}return EA}function Qn(P,F){if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`),F.$$.ptrType.isConst&&wt(`Cannot convert argument of type ${F.$$.ptrType.name} to parameter type ${this.name}`);var EA=F.$$.ptrType.registeredClass;return Vo(F.$$.ptr,EA,this.registeredClass)}function ho(P){return this.fromWireType(QA[P>>2])}function jn(P,F,EA,RA,GA,WA,Ce,ge,we,_e,Ke){this.name=P,this.registeredClass=F,this.isReference=EA,this.isConst=RA,this.isSmartPointer=GA,this.pointeeType=WA,this.sharingPolicy=Ce,this.rawGetPointee=ge,this.rawConstructor=we,this.rawShare=_e,this.rawDestructor=Ke,GA||F.baseClass!==void 0?this.toWireType=Kr:RA?(this.toWireType=et,this.destructorFunction=null):(this.toWireType=Qn,this.destructorFunction=null)}var $t,$r,On=[],An=P=>{var F=On[P];return F||(P>=On.length&&(On.length=P+1),On[P]=F=$t.get(P)),F},Tr=(P,F,EA)=>P.includes("j")?((RA,GA,WA)=>{var Ce=g["dynCall_"+RA];return WA&&WA.length?Ce.apply(null,[GA].concat(WA)):Ce.call(null,GA)})(P,F,EA):An(F).apply(null,EA),ei=(P,F)=>{var EA,RA,GA,WA=(P=Xi(P)).includes("j")?(EA=P,RA=F,GA=[],function(){return GA.length=0,Object.assign(GA,arguments),Tr(EA,RA,GA)}):An(F);return typeof WA!="function"&&wt(`unknown function pointer with signature ${P}: ${F}`),WA},Es=P=>{var F=Ba(P),EA=Xi(F);return Mr(F),EA},jr=(P,F)=>{var EA=[],RA={};throw F.forEach(function GA(WA){RA[WA]||lr[WA]||(Ni[WA]?Ni[WA].forEach(GA):(EA.push(WA),RA[WA]=!0))}),new $r(`${P}: `+EA.map(Es).join([", "]))},Gr=(P,F)=>{for(var EA=[],RA=0;RA<P;RA++)EA.push(QA[F+4*RA>>2]);return EA},$o=P=>{for(;P.length;){var F=P.pop();P.pop()(F)}};function sn(P,F,EA,RA,GA,WA){var Ce=F.length;Ce<2&&wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var ge=F[1]!==null&&EA!==null,we=!1,_e=1;_e<F.length;++_e)if(F[_e]!==null&&F[_e].destructorFunction===void 0){we=!0;break}var Ke=F[0].name!=="void",Bt=Ce-2,Rt=new Array(Bt),Ye=[],nt=[];return sr(P,function(){var ii;arguments.length!==Bt&&wt(`function ${P} called with ${arguments.length} arguments, expected ${Bt}`),nt.length=0,Ye.length=ge?2:1,Ye[0]=GA,ge&&(ii=F[1].toWireType(nt,this),Ye[1]=ii);for(var oi=0;oi<Bt;++oi)Rt[oi]=F[oi+2].toWireType(nt,arguments[oi]),Ye.push(Rt[oi]);return function(Ko){if(we)$o(nt);else for(var Kt=ge?1:2;Kt<F.length;Kt++){var ro=Kt===1?ii:Rt[Kt-2];F[Kt].destructorFunction!==null&&F[Kt].destructorFunction(ro)}if(Ke)return F[0].fromWireType(Ko)}(RA.apply(null,Ye))})}var dn=(P,F,EA)=>(P instanceof Object||wt(`${EA} with invalid "this": ${P}`),P instanceof F.registeredClass.constructor||wt(`${EA} incompatible with "this" of type ${P.constructor.name}`),P.$$.ptr||wt(`cannot call emscripten binding method ${EA} on deleted object`),Vo(P.$$.ptr,P.$$.ptrType.registeredClass,F.registeredClass));function hn(){this.allocated=[void 0],this.freelist=[]}var Gi=new hn,pn=P=>{P>=Gi.reserved&&--Gi.get(P).refcount===0&&Gi.free(P)},nI=()=>{for(var P=0,F=Gi.reserved;F<Gi.allocated.length;++F)Gi.allocated[F]!==void 0&&++P;return P},gr={toValue:P=>(P||wt("Cannot use deleted val. handle = "+P),Gi.get(P).value),toHandle:P=>{switch(P){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Gi.allocate({refcount:1,value:P})}}};function gn(P){return this.fromWireType(X[P>>2])}var Yo,Tg,So,ao=P=>{if(P===null)return"null";var F=typeof P;return F==="object"||F==="array"||F==="function"?P.toString():""+P},EE=(P,F)=>{switch(F){case 4:return function(EA){return this.fromWireType(wA[EA>>2])};case 8:return function(EA){return this.fromWireType(HA[EA>>3])};default:throw new TypeError(`invalid float width (${F}): ${P}`)}},Ta=(P,F,EA)=>{switch(F){case 1:return EA?RA=>AA[RA|0]:RA=>z[RA|0];case 2:return EA?RA=>sA[RA>>1]:RA=>eA[RA>>1];case 4:return EA?RA=>X[RA>>2]:RA=>QA[RA>>2];default:throw new TypeError(`invalid integer width (${F}): ${P}`)}},po=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ja=(P,F,EA)=>{for(var RA=F+EA,GA=F;P[GA]&&!(GA>=RA);)++GA;if(GA-F>16&&P.buffer&&po)return po.decode(P.subarray(F,GA));for(var WA="";F<GA;){var Ce=P[F++];if(128&Ce){var ge=63&P[F++];if((224&Ce)!=192){var we=63&P[F++];if((Ce=(240&Ce)==224?(15&Ce)<<12|ge<<6|we:(7&Ce)<<18|ge<<12|we<<6|63&P[F++])<65536)WA+=String.fromCharCode(Ce);else{var _e=Ce-65536;WA+=String.fromCharCode(55296|_e>>10,56320|1023&_e)}}else WA+=String.fromCharCode((31&Ce)<<6|ge)}else WA+=String.fromCharCode(Ce)}return WA},Mc=(P,F)=>P?Ja(z,P,F):"",Qr=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Fo=(P,F)=>{for(var EA=P,RA=EA>>1,GA=RA+F/2;!(RA>=GA)&&eA[RA];)++RA;if((EA=RA<<1)-P>32&&Qr)return Qr.decode(z.subarray(P,EA));for(var WA="",Ce=0;!(Ce>=F/2);++Ce){var ge=sA[P+2*Ce>>1];if(ge==0)break;WA+=String.fromCharCode(ge)}return WA},$s=(P,F,EA)=>{if(EA===void 0&&(EA=2147483647),EA<2)return 0;for(var RA=F,GA=(EA-=2)<2*P.length?EA/2:P.length,WA=0;WA<GA;++WA){var Ce=P.charCodeAt(WA);sA[F>>1]=Ce,F+=2}return sA[F>>1]=0,F-RA},Ha=P=>2*P.length,Gs=(P,F)=>{for(var EA=0,RA="";!(EA>=F/4);){var GA=X[P+4*EA>>2];if(GA==0)break;if(++EA,GA>=65536){var WA=GA-65536;RA+=String.fromCharCode(55296|WA>>10,56320|1023&WA)}else RA+=String.fromCharCode(GA)}return RA},Ga=(P,F,EA)=>{if(EA===void 0&&(EA=2147483647),EA<4)return 0;for(var RA=F,GA=RA+EA-4,WA=0;WA<P.length;++WA){var Ce=P.charCodeAt(WA);if(Ce>=55296&&Ce<=57343&&(Ce=65536+((1023&Ce)<<10)|1023&P.charCodeAt(++WA)),X[F>>2]=Ce,(F+=4)+4>GA)break}return X[F>>2]=0,F-RA},Rr=P=>{for(var F=0,EA=0;EA<P.length;++EA){var RA=P.charCodeAt(EA);RA>=55296&&RA<=57343&&++EA,F+=4}return F},Ia=(P,F)=>{var EA=lr[P];return EA===void 0&&wt(F+" has unknown type "+Es(P)),EA},fo=(P,F,EA)=>{var RA=[],GA=P.toWireType(RA,EA);return RA.length&&(QA[F>>2]=gr.toHandle(RA)),GA},aI={},en=[],qo=Reflect.construct,Gg=[null,[],[]],kg=(P,F)=>{var EA=Gg[P];F===0||F===10?((P===1?M:v)(Ja(EA,0)),EA.length=0):EA.push(F)};(()=>{for(var P=new Array(256),F=0;F<256;++F)P[F]=String.fromCharCode(F);Er=P})(),no=g.BindingError=class extends Error{constructor(P){super(P),this.name="BindingError"}},Kn=g.InternalError=class extends Error{constructor(P){super(P),this.name="InternalError"}},Object.assign(Xo.prototype,{isAliasOf(P){if(!(this instanceof Xo)||!(P instanceof Xo))return!1;var F=this.$$.ptrType.registeredClass,EA=this.$$.ptr;P.$$=P.$$;for(var RA=P.$$.ptrType.registeredClass,GA=P.$$.ptr;F.baseClass;)EA=F.upcast(EA),F=F.baseClass;for(;RA.baseClass;)GA=RA.upcast(GA),RA=RA.baseClass;return F===RA&&EA===GA},clone(){if(this.$$.ptr||YA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var P,F=ji(Object.create(Object.getPrototypeOf(this),{$$:{value:(P=this.$$,{count:P.count,deleteScheduled:P.deleteScheduled,preservePointerOnDelete:P.preservePointerOnDelete,ptr:P.ptr,ptrType:P.ptrType,smartPtr:P.smartPtr,smartPtrType:P.smartPtrType})}}));return F.$$.count.value+=1,F.$$.deleteScheduled=!1,F},delete(){this.$$.ptr||YA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),st(this),Te(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||YA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),ye.push(this),ye.length===1&&MA&&MA(Xe),this.$$.deleteScheduled=!0,this}}),g.getInheritedInstanceCount=ht,g.getLiveInheritedInstances=ae,g.flushPendingDeletes=Xe,g.setDelayFunction=ot,Object.assign(jn.prototype,{getPointee(P){return this.rawGetPointee&&(P=this.rawGetPointee(P)),P},destructor(P){this.rawDestructor&&this.rawDestructor(P)},argPackAdvance:8,readValueFromPointer:ho,deleteObject(P){P!==null&&P.delete()},fromWireType:Ei}),$r=g.UnboundTypeError=(Yo=Error,(So=sr(Tg="UnboundTypeError",function(P){this.name=Tg,this.message=P;var F=new Error(P).stack;F!==void 0&&(this.stack=this.toString()+`
`+F.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Yo.prototype),So.prototype.constructor=So,So.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},So),Object.assign(hn.prototype,{get(P){return this.allocated[P]},has(P){return this.allocated[P]!==void 0},allocate(P){var F=this.freelist.pop()||this.allocated.length;return this.allocated[F]=P,F},free(P){this.allocated[P]=void 0,this.freelist.push(P)}}),Gi.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Gi.reserved=Gi.allocated.length,g.count_emval_handles=nI;var fn,ls={w:(P,F,EA)=>{throw new Ur(P).init(F,EA),P},q:(P,F,EA,RA,GA)=>{},u:(P,F,EA,RA)=>{ar(P,{name:F=Xi(F),fromWireType:function(GA){return!!GA},toWireType:function(GA,WA){return WA?EA:RA},argPackAdvance:8,readValueFromPointer:function(GA){return this.fromWireType(z[GA])},destructorFunction:null})},y:(P,F,EA,RA,GA,WA,Ce,ge,we,_e,Ke,Bt,Rt)=>{Ke=Xi(Ke),WA=ei(GA,WA),ge&&(ge=ei(Ce,ge)),_e&&(_e=ei(we,_e)),Rt=ei(Bt,Rt);var Ye=(nt=>{if(nt===void 0)return"_unknown";var ii=(nt=nt.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return ii>=48&&ii<=57?`_${nt}`:nt})(Ke);((nt,ii,oi)=>{g.hasOwnProperty(nt)?(wt(`Cannot register public name '${nt}' twice`),Lo(g,nt,nt),g.hasOwnProperty(oi)&&wt(`Cannot register multiple overloads of a function with the same number of arguments (${oi})!`),g[nt].overloadTable[oi]=ii):g[nt]=ii})(Ye,function(){jr(`Cannot construct ${Ke} due to unbound types`,[RA])}),Di([P,F,EA],RA?[RA]:[],function(nt){var ii,oi;nt=nt[0],oi=RA?(ii=nt.registeredClass).instancePrototype:Xo.prototype;var Ko=sr(Ke,function(){if(Object.getPrototypeOf(this)!==Kt)throw new no("Use 'new' to construct "+Ke);if(ro.constructor_body===void 0)throw new no(Ke+" has no accessible constructor");var xr=ro.constructor_body[arguments.length];if(xr===void 0)throw new no(`Tried to invoke ctor of ${Ke} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(ro.constructor_body).toString()}) parameters instead!`);return xr.apply(this,arguments)}),Kt=Object.create(oi,{constructor:{value:Ko}});Ko.prototype=Kt;var ro=new Nr(Ke,Ko,Kt,Rt,ii,WA,ge,_e);ro.baseClass&&(ro.baseClass.__derivedClasses===void 0&&(ro.baseClass.__derivedClasses=[]),ro.baseClass.__derivedClasses.push(ro));var ks=new jn(Ke,ro,!0,!1,!1),Zr=new jn(Ke+"*",ro,!1,!1,!1),In=new jn(Ke+" const*",ro,!1,!0,!1);return yt[P]={pointerType:Zr,constPointerType:In},((xr,sI,jo)=>{g.hasOwnProperty(xr)||Ji("Replacing nonexistant public symbol"),g[xr].overloadTable!==void 0&&jo!==void 0?g[xr].overloadTable[jo]=sI:(g[xr]=sI,g[xr].argCount=jo)})(Ye,Ko),[ks,Zr,In]})},x:(P,F,EA,RA,GA,WA)=>{var Ce=Gr(F,EA);GA=ei(RA,GA),Di([],[P],function(ge){var we=`constructor ${(ge=ge[0]).name}`;if(ge.registeredClass.constructor_body===void 0&&(ge.registeredClass.constructor_body=[]),ge.registeredClass.constructor_body[F-1]!==void 0)throw new no(`Cannot register multiple constructors with identical number of parameters (${F-1}) for class '${ge.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return ge.registeredClass.constructor_body[F-1]=()=>{jr(`Cannot construct ${ge.name} due to unbound types`,Ce)},Di([],Ce,_e=>(_e.splice(1,0,null),ge.registeredClass.constructor_body[F-1]=sn(we,_e,null,GA,WA),[])),[]})},i:(P,F,EA,RA,GA,WA,Ce,ge,we)=>{var _e=Gr(EA,RA);F=(Ke=>{const Bt=(Ke=Ke.trim()).indexOf("(");return Bt!==-1?Ke.substr(0,Bt):Ke})(F=Xi(F)),WA=ei(GA,WA),Di([],[P],function(Ke){var Bt=`${(Ke=Ke[0]).name}.${F}`;function Rt(){jr(`Cannot call ${Bt} due to unbound types`,_e)}F.startsWith("@@")&&(F=Symbol[F.substring(2)]),ge&&Ke.registeredClass.pureVirtualFunctions.push(F);var Ye=Ke.registeredClass.instancePrototype,nt=Ye[F];return nt===void 0||nt.overloadTable===void 0&&nt.className!==Ke.name&&nt.argCount===EA-2?(Rt.argCount=EA-2,Rt.className=Ke.name,Ye[F]=Rt):(Lo(Ye,F,Bt),Ye[F].overloadTable[EA-2]=Rt),Di([],_e,function(ii){var oi=sn(Bt,ii,Ke,WA,Ce);return Ye[F].overloadTable===void 0?(oi.argCount=EA-2,Ye[F]=oi):Ye[F].overloadTable[EA-2]=oi,[]}),[]})},k:(P,F,EA,RA,GA,WA,Ce,ge,we,_e)=>{F=Xi(F),GA=ei(RA,GA),Di([],[P],function(Ke){var Bt=`${(Ke=Ke[0]).name}.${F}`,Rt={get(){jr(`Cannot access ${Bt} due to unbound types`,[EA,Ce])},enumerable:!0,configurable:!0};return Rt.set=we?()=>jr(`Cannot access ${Bt} due to unbound types`,[EA,Ce]):Ye=>wt(Bt+" is a read-only property"),Object.defineProperty(Ke.registeredClass.instancePrototype,F,Rt),Di([],we?[EA,Ce]:[EA],function(Ye){var nt=Ye[0],ii={get(){var Ko=dn(this,Ke,Bt+" getter");return nt.fromWireType(GA(WA,Ko))},enumerable:!0};if(we){we=ei(ge,we);var oi=Ye[1];ii.set=function(Ko){var Kt=dn(this,Ke,Bt+" setter"),ro=[];we(_e,Kt,oi.toWireType(ro,Ko)),$o(ro)}}return Object.defineProperty(Ke.registeredClass.instancePrototype,F,ii),[]}),[]})},t:(P,F)=>{ar(P,{name:F=Xi(F),fromWireType:EA=>{var RA=gr.toValue(EA);return pn(EA),RA},toWireType:(EA,RA)=>gr.toHandle(RA),argPackAdvance:8,readValueFromPointer:gn,destructorFunction:null})},p:(P,F,EA)=>{ar(P,{name:F=Xi(F),fromWireType:RA=>RA,toWireType:(RA,GA)=>GA,argPackAdvance:8,readValueFromPointer:EE(F,EA),destructorFunction:null})},g:(P,F,EA,RA,GA)=>{F=Xi(F);var WA=we=>we;if(RA===0){var Ce=32-8*EA;WA=we=>we<<Ce>>>Ce}var ge=F.includes("unsigned");ar(P,{name:F,fromWireType:WA,toWireType:ge?function(we,_e){return this.name,_e>>>0}:function(we,_e){return this.name,_e},argPackAdvance:8,readValueFromPointer:Ta(F,EA,RA!==0),destructorFunction:null})},a:(P,F,EA)=>{var RA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][F];function GA(WA){var Ce=QA[WA>>2],ge=QA[WA+4>>2];return new RA(AA.buffer,ge,Ce)}ar(P,{name:EA=Xi(EA),fromWireType:GA,argPackAdvance:8,readValueFromPointer:GA},{ignoreDuplicateRegistrations:!0})},o:(P,F)=>{var EA=(F=Xi(F))==="std::string";ar(P,{name:F,fromWireType(RA){var GA,WA=QA[RA>>2],Ce=RA+4;if(EA)for(var ge=Ce,we=0;we<=WA;++we){var _e=Ce+we;if(we==WA||z[_e]==0){var Ke=Mc(ge,_e-ge);GA===void 0?GA=Ke:(GA+="\0",GA+=Ke),ge=_e+1}}else{var Bt=new Array(WA);for(we=0;we<WA;++we)Bt[we]=String.fromCharCode(z[Ce+we]);GA=Bt.join("")}return Mr(RA),GA},toWireType(RA,GA){var WA;GA instanceof ArrayBuffer&&(GA=new Uint8Array(GA));var Ce=typeof GA=="string";Ce||GA instanceof Uint8Array||GA instanceof Uint8ClampedArray||GA instanceof Int8Array||wt("Cannot pass non-string to std::string"),WA=EA&&Ce?(Bt=>{for(var Rt=0,Ye=0;Ye<Bt.length;++Ye){var nt=Bt.charCodeAt(Ye);nt<=127?Rt++:nt<=2047?Rt+=2:nt>=55296&&nt<=57343?(Rt+=4,++Ye):Rt+=3}return Rt})(GA):GA.length;var ge=Po(4+WA+1),we=ge+4;if(QA[ge>>2]=WA,EA&&Ce)((Bt,Rt,Ye,nt)=>{if(!(nt>0))return 0;for(var ii=Ye,oi=Ye+nt-1,Ko=0;Ko<Bt.length;++Ko){var Kt=Bt.charCodeAt(Ko);if(Kt>=55296&&Kt<=57343&&(Kt=65536+((1023&Kt)<<10)|1023&Bt.charCodeAt(++Ko)),Kt<=127){if(Ye>=oi)break;Rt[Ye++]=Kt}else if(Kt<=2047){if(Ye+1>=oi)break;Rt[Ye++]=192|Kt>>6,Rt[Ye++]=128|63&Kt}else if(Kt<=65535){if(Ye+2>=oi)break;Rt[Ye++]=224|Kt>>12,Rt[Ye++]=128|Kt>>6&63,Rt[Ye++]=128|63&Kt}else{if(Ye+3>=oi)break;Rt[Ye++]=240|Kt>>18,Rt[Ye++]=128|Kt>>12&63,Rt[Ye++]=128|Kt>>6&63,Rt[Ye++]=128|63&Kt}}Rt[Ye]=0})(GA,z,we,WA+1);else if(Ce)for(var _e=0;_e<WA;++_e){var Ke=GA.charCodeAt(_e);Ke>255&&(Mr(we),wt("String has UTF-16 code units that do not fit in 8 bits")),z[we+_e]=Ke}else for(_e=0;_e<WA;++_e)z[we+_e]=GA[_e];return RA!==null&&RA.push(Mr,ge),ge},argPackAdvance:8,readValueFromPointer:ho,destructorFunction(RA){Mr(RA)}})},l:(P,F,EA)=>{var RA,GA,WA,Ce,ge;EA=Xi(EA),F===2?(RA=Fo,GA=$s,Ce=Ha,WA=()=>eA,ge=1):F===4&&(RA=Gs,GA=Ga,Ce=Rr,WA=()=>QA,ge=2),ar(P,{name:EA,fromWireType:we=>{for(var _e,Ke=QA[we>>2],Bt=WA(),Rt=we+4,Ye=0;Ye<=Ke;++Ye){var nt=we+4+Ye*F;if(Ye==Ke||Bt[nt>>ge]==0){var ii=RA(Rt,nt-Rt);_e===void 0?_e=ii:(_e+="\0",_e+=ii),Rt=nt+F}}return Mr(we),_e},toWireType:(we,_e)=>{typeof _e!="string"&&wt(`Cannot pass non-string to C++ string type ${EA}`);var Ke=Ce(_e),Bt=Po(4+Ke+F);return QA[Bt>>2]=Ke>>ge,GA(_e,Bt+4,Ke+F),we!==null&&we.push(Mr,Bt),Bt},argPackAdvance:8,readValueFromPointer:gn,destructorFunction(we){Mr(we)}})},v:(P,F)=>{ar(P,{isVoid:!0,name:F=Xi(F),argPackAdvance:0,fromWireType:()=>{},toWireType:(EA,RA)=>{}})},j:(P,F,EA)=>(P=gr.toValue(P),F=Ia(F,"emval::as"),fo(F,EA,P)),e:(P,F,EA,RA,GA)=>{var WA,Ce;return(P=en[P])(F=gr.toValue(F),F[EA=(Ce=aI[WA=EA])===void 0?Xi(WA):Ce],RA,GA)},d:pn,f:(P,F,EA)=>{var RA=((_e,Ke)=>{for(var Bt=new Array(_e),Rt=0;Rt<_e;++Rt)Bt[Rt]=Ia(QA[Ke+4*Rt>>2],"parameter "+Rt);return Bt})(P,F),GA=RA.shift();P--;var WA,Ce,ge=new Array(P),we=`methodCaller<(${RA.map(_e=>_e.name).join(", ")}) => ${GA.name}>`;return WA=sr(we,(_e,Ke,Bt,Rt)=>{for(var Ye=0,nt=0;nt<P;++nt)ge[nt]=RA[nt].readValueFromPointer(Rt+Ye),Ye+=RA[nt].argPackAdvance;var ii=EA===1?qo(Ke,ge):Ke.apply(_e,ge);for(nt=0;nt<P;++nt)RA[nt].deleteObject&&RA[nt].deleteObject(ge[nt]);return fo(GA,Bt,ii)}),Ce=en.length,en.push(WA),Ce},c:P=>{P>4&&(Gi.get(P).refcount+=1)},b:P=>{var F=gr.toValue(P);$o(F),pn(P)},h:(P,F)=>{var EA=(P=Ia(P,"_emval_take_value")).readValueFromPointer(F);return gr.toHandle(EA)},m:()=>{Je("")},s:(P,F,EA)=>z.copyWithin(P,F,F+EA),r:P=>{z.length,Je("OOM")},n:(P,F,EA,RA)=>{for(var GA=0,WA=0;WA<EA;WA++){var Ce=QA[F>>2],ge=QA[F+4>>2];F+=8;for(var we=0;we<ge;we++)kg(P,z[Ce+we]);GA+=ge}return QA[RA>>2]=GA,0}},Or=function(){var P={a:ls};function F(EA,RA){var GA,WA;return Or=EA.exports,m=Or.z,GA=m.buffer,g.HEAP8=AA=new Int8Array(GA),g.HEAP16=sA=new Int16Array(GA),g.HEAPU8=z=new Uint8Array(GA),g.HEAPU16=eA=new Uint16Array(GA),g.HEAP32=X=new Int32Array(GA),g.HEAPU32=QA=new Uint32Array(GA),g.HEAPF32=wA=new Float32Array(GA),g.HEAPF64=HA=new Float64Array(GA),$t=Or.C,WA=Or.A,jA.unshift(WA),function(){if(qe--,g.monitorRunDependencies&&g.monitorRunDependencies(qe),qe==0&&Et){var Ce=Et;Et=null,Ce()}}(),Or}if(qe++,g.monitorRunDependencies&&g.monitorRunDependencies(qe),g.instantiateWasm)try{return g.instantiateWasm(P,F)}catch(EA){v(`Module.instantiateWasm callback failed with error: ${EA}`),s(EA)}return ai(0,$e,P,function(EA){F(EA.instance)}).catch(s),{}}(),Po=P=>(Po=Or.B)(P),Ba=P=>(Ba=Or.D)(P),Mr=P=>(Mr=Or.E)(P),Cs=P=>(Cs=Or.F)(P);g.dynCall_jiji=(P,F,EA,RA,GA)=>(g.dynCall_jiji=Or.G)(P,F,EA,RA,GA),g._vertexShaderSource=10688;function Va(){function P(){fn||(fn=!0,g.calledRun=!0,VA||(Ki(jA),r(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;)Me(g.postRun.shift());Ki(Ve)}()))}qe>0||(function(){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)Ze(g.preRun.shift());Ki(ue)}(),qe>0||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),P()},1)):P()))}if(Et=function P(){fn||Va(),fn||(Et=P)},g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return Va(),i.ready}})(),BnA=CnA,nd=typeof navigator>"u"?"":navigator.userAgent,_o=t=>new RegExp(t,"i").test(nd),Is=t=>{if(_o(t)){const i=new RegExp(`${t}\\/([\\d.]+)`),r=nd.match(i);if(r&&r[1])return r[1]}return""},fY=t=>{if(_o(t)){const i=new RegExp(`${t}\\/(\\d+)`),r=nd.match(i);if(r&&r[1])return parseFloat(r[1])}return NaN},d5=/AppleWebKit\/([\d.]+)/i.exec(nd);d5&&parseFloat(d5[1]);var g6=_o("iPad"),I6=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&_o("Macintosh"),c6=_o("iPhone")&&!g6,unA=_o("iPod"),E6=c6||g6||unA||I6,B3=_o("Android"),QnA=function(){if(B3){const t=nd.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(t){const i=t[1]&&parseFloat(t[1]),r=t[2]&&parseFloat(t[2]);if(i&&r)return parseFloat(`${t[1]}.${t[2]}`);if(i)return i}}return NaN}();B3&&_o("webkit")&&QnA<2.3;var dnA=_o("Firefox"),hnA=Is("Firefox");fY("Firefox");var l6=_o("Edge"),pnA=Is("Edge"),C6=_o("Edg"),fnA=Is("Edg");fY("Edg");var B6=_o("SogouMobileBrowser"),mnA=Is("SogouMobileBrowser"),u6=_o("MetaSr\\s"),DnA=Is("MetaSr\\s"),hD=_o("TBS"),ynA=Is("TBS"),Q6=_o("XWEB"),RnA=Is("XWEB");_o("MSIE\\s8\\.0");var MnA=_o("MSIE\\/\\d+");(function(){if(MnA){const t=/MSIE\s(\d+)\.\d/.exec(nd);let i=t&&parseFloat(t[1]);return!i&&/Trident\/7.0/i.test(nd)&&/rv:11.0/.test(nd)&&(i=11),i}return NaN})();var wnA=_o("(micromessenger|webbrowser)"),SnA=Is("MicroMessenger"),u3=!hD&&_o("MQQBrowser")&&_o("COVC"),Q3=!hD&&_o("MQQBrowser")&&!_o("COVC"),h5=Q3||u3?Is("MQQBrowser"):"",d6=!hD&&_o(" QQBrowser"),vnA=Is(" QQBrowser"),h6=!hD&&_o("QQBrowserLite"),NnA=Is("QQBrowserLite"),p6=!hD&&_o("MQBHD"),TnA=Is("MQBHD");_o("Windows");!E6&&_o("MAC OS X");!B3&&_o("Linux");_o("CrOS");_o("MicroMessenger");_o("UCBrowser");_o("Electron");var f6=_o("MiuiBrowser"),GnA=Is("MiuiBrowser"),m6=_o("HuaweiBrowser");_o("Huawei")||_o("HUAWEI");_o("Honor")||_o("HONOR");var knA=Is("HuaweiBrowser"),D6=_o("SamsungBrowser"),_nA=Is("SamsungBrowser"),y6=_o("HeyTapBrowser"),bnA=Is("HeyTapBrowser"),R6=_o("VivoBrowser"),LnA=Is("VivoBrowser");_o("OpenHarmony");Is("OpenHarmony");var FnA=()=>fY("Chrome"),p5=_o("CriOS"),M6=_o("Chrome"),UnA=!l6&&!u6&&!B6&&!hD&&!Q6&&!C6&&!d6&&!f6&&!m6&&!D6&&!y6&&!R6&&M6;_o("HeadlessChrome");var OnA=FnA(),xnA=Is("Chrome");fY("Electron");var YnA=!M6&&!Q3&&!u3&&!h6&&!p6&&_o("Safari"),w6=Is("Version"),S6=(()=>{if(I6)return w6;if(E6){const t=nd.match(/OS (\d+)_(\d+)/i);if(t&&t[1]){let i=t[1];return t[2]&&(i+=`.${t[2]}`),i}}return""})();Number(S6.split(".")[0]);(()=>{const t=Number(S6.split(".")[0]);return t===14||t===13})();PnA();function PnA(){const t=new Map([[dnA,["Firefox",hnA]],[C6,["Edg",fnA]],[UnA,["Chrome",xnA]],[p5,["ChiOS",Is("CriOS")]],[YnA&&!p5,["Safari",w6]],[hD,["TBS",ynA]],[Q6,["XWEB",RnA]],[wnA&&c6,["WeChat",SnA]],[d6,["QQ(Win)",vnA]],[Q3,["QQ(Mobile)",h5]],[u3,["QQ(Mobile X5)",h5]],[h6,["QQ(Mac)",NnA]],[p6,["QQ(iPad)",TnA]],[f6,["MI",GnA]],[m6,["HW",knA]],[D6,["Samsung",_nA]],[y6,["OPPO",bnA]],[R6,["VIVO",LnA]],[l6,["EDGE",pnA]],[B6,["SogouMobile",mnA]],[u6,["Sogou",DnA]]]);let i="unknown",r="unknown";return t.has(!0)&&([i,r]=t.get(!0)),{name:i,version:r}}var as=1e-6,Dw=typeof Float32Array<"u"?Float32Array:Array,v6={};function JnA(){var t=new Dw(16);return Dw!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function HnA(t){var i=new Dw(16);return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],i}function VnA(t,i){return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],t}function qnA(t,i,r,s,g,B,Q,f,m,M,v,U,AA,z,sA,eA){var X=new Dw(16);return X[0]=t,X[1]=i,X[2]=r,X[3]=s,X[4]=g,X[5]=B,X[6]=Q,X[7]=f,X[8]=m,X[9]=M,X[10]=v,X[11]=U,X[12]=AA,X[13]=z,X[14]=sA,X[15]=eA,X}function KnA(t,i,r,s,g,B,Q,f,m,M,v,U,AA,z,sA,eA,X){return t[0]=i,t[1]=r,t[2]=s,t[3]=g,t[4]=B,t[5]=Q,t[6]=f,t[7]=m,t[8]=M,t[9]=v,t[10]=U,t[11]=AA,t[12]=z,t[13]=sA,t[14]=eA,t[15]=X,t}function N6(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function jnA(t,i){if(t===i){var r=i[1],s=i[2],g=i[3],B=i[6],Q=i[7],f=i[11];t[1]=i[4],t[2]=i[8],t[3]=i[12],t[4]=r,t[6]=i[9],t[7]=i[13],t[8]=s,t[9]=B,t[11]=i[14],t[12]=g,t[13]=Q,t[14]=f}else t[0]=i[0],t[1]=i[4],t[2]=i[8],t[3]=i[12],t[4]=i[1],t[5]=i[5],t[6]=i[9],t[7]=i[13],t[8]=i[2],t[9]=i[6],t[10]=i[10],t[11]=i[14],t[12]=i[3],t[13]=i[7],t[14]=i[11],t[15]=i[15];return t}function WnA(t,i){var r=i[0],s=i[1],g=i[2],B=i[3],Q=i[4],f=i[5],m=i[6],M=i[7],v=i[8],U=i[9],AA=i[10],z=i[11],sA=i[12],eA=i[13],X=i[14],QA=i[15],wA=r*f-s*Q,HA=r*m-g*Q,VA=r*M-B*Q,ue=s*m-g*f,jA=s*M-B*f,Ve=g*M-B*m,Ze=v*eA-U*sA,Me=v*X-AA*sA,qe=v*QA-z*sA,Et=U*X-AA*eA,Je=U*QA-z*eA,$e=AA*QA-z*X,Dt=wA*$e-HA*Je+VA*Et+ue*qe-jA*Me+Ve*Ze;return Dt?(Dt=1/Dt,t[0]=(f*$e-m*Je+M*Et)*Dt,t[1]=(g*Je-s*$e-B*Et)*Dt,t[2]=(eA*Ve-X*jA+QA*ue)*Dt,t[3]=(AA*jA-U*Ve-z*ue)*Dt,t[4]=(m*qe-Q*$e-M*Me)*Dt,t[5]=(r*$e-g*qe+B*Me)*Dt,t[6]=(X*VA-sA*Ve-QA*HA)*Dt,t[7]=(v*Ve-AA*VA+z*HA)*Dt,t[8]=(Q*Je-f*qe+M*Ze)*Dt,t[9]=(s*qe-r*Je-B*Ze)*Dt,t[10]=(sA*jA-eA*VA+QA*wA)*Dt,t[11]=(U*VA-v*jA-z*wA)*Dt,t[12]=(f*Me-Q*Et-m*Ze)*Dt,t[13]=(r*Et-s*Me+g*Ze)*Dt,t[14]=(eA*HA-sA*ue-X*wA)*Dt,t[15]=(v*ue-U*HA+AA*wA)*Dt,t):null}function znA(t,i){var r=i[0],s=i[1],g=i[2],B=i[3],Q=i[4],f=i[5],m=i[6],M=i[7],v=i[8],U=i[9],AA=i[10],z=i[11],sA=i[12],eA=i[13],X=i[14],QA=i[15],wA=r*f-s*Q,HA=r*m-g*Q,VA=r*M-B*Q,ue=s*m-g*f,jA=s*M-B*f,Ve=g*M-B*m,Ze=v*eA-U*sA,Me=v*X-AA*sA,qe=v*QA-z*sA,Et=U*X-AA*eA,Je=U*QA-z*eA,$e=AA*QA-z*X;return t[0]=f*$e-m*Je+M*Et,t[1]=g*Je-s*$e-B*Et,t[2]=eA*Ve-X*jA+QA*ue,t[3]=AA*jA-U*Ve-z*ue,t[4]=m*qe-Q*$e-M*Me,t[5]=r*$e-g*qe+B*Me,t[6]=X*VA-sA*Ve-QA*HA,t[7]=v*Ve-AA*VA+z*HA,t[8]=Q*Je-f*qe+M*Ze,t[9]=s*qe-r*Je-B*Ze,t[10]=sA*jA-eA*VA+QA*wA,t[11]=U*VA-v*jA-z*wA,t[12]=f*Me-Q*Et-m*Ze,t[13]=r*Et-s*Me+g*Ze,t[14]=eA*HA-sA*ue-X*wA,t[15]=v*ue-U*HA+AA*wA,t}function ZnA(t){var i=t[0],r=t[1],s=t[2],g=t[3],B=t[4],Q=t[5],f=t[6],m=t[7],M=t[8],v=t[9],U=t[10],AA=t[11],z=t[12],sA=t[13],eA=t[14],X=i*Q-r*B,QA=i*f-s*B,wA=r*f-s*Q,HA=M*sA-v*z,VA=M*eA-U*z,ue=v*eA-U*sA;return m*(i*ue-r*VA+s*HA)-g*(B*ue-Q*VA+f*HA)+t[15]*(M*wA-v*QA+U*X)-AA*(z*wA-sA*QA+eA*X)}function T6(t,i,r){var s=i[0],g=i[1],B=i[2],Q=i[3],f=i[4],m=i[5],M=i[6],v=i[7],U=i[8],AA=i[9],z=i[10],sA=i[11],eA=i[12],X=i[13],QA=i[14],wA=i[15],HA=r[0],VA=r[1],ue=r[2],jA=r[3];return t[0]=HA*s+VA*f+ue*U+jA*eA,t[1]=HA*g+VA*m+ue*AA+jA*X,t[2]=HA*B+VA*M+ue*z+jA*QA,t[3]=HA*Q+VA*v+ue*sA+jA*wA,HA=r[4],VA=r[5],ue=r[6],jA=r[7],t[4]=HA*s+VA*f+ue*U+jA*eA,t[5]=HA*g+VA*m+ue*AA+jA*X,t[6]=HA*B+VA*M+ue*z+jA*QA,t[7]=HA*Q+VA*v+ue*sA+jA*wA,HA=r[8],VA=r[9],ue=r[10],jA=r[11],t[8]=HA*s+VA*f+ue*U+jA*eA,t[9]=HA*g+VA*m+ue*AA+jA*X,t[10]=HA*B+VA*M+ue*z+jA*QA,t[11]=HA*Q+VA*v+ue*sA+jA*wA,HA=r[12],VA=r[13],ue=r[14],jA=r[15],t[12]=HA*s+VA*f+ue*U+jA*eA,t[13]=HA*g+VA*m+ue*AA+jA*X,t[14]=HA*B+VA*M+ue*z+jA*QA,t[15]=HA*Q+VA*v+ue*sA+jA*wA,t}function XnA(t,i,r){var s,g,B,Q,f,m,M,v,U,AA,z,sA,eA=r[0],X=r[1],QA=r[2];return i===t?(t[12]=i[0]*eA+i[4]*X+i[8]*QA+i[12],t[13]=i[1]*eA+i[5]*X+i[9]*QA+i[13],t[14]=i[2]*eA+i[6]*X+i[10]*QA+i[14],t[15]=i[3]*eA+i[7]*X+i[11]*QA+i[15]):(s=i[0],g=i[1],B=i[2],Q=i[3],f=i[4],m=i[5],M=i[6],v=i[7],U=i[8],AA=i[9],z=i[10],sA=i[11],t[0]=s,t[1]=g,t[2]=B,t[3]=Q,t[4]=f,t[5]=m,t[6]=M,t[7]=v,t[8]=U,t[9]=AA,t[10]=z,t[11]=sA,t[12]=s*eA+f*X+U*QA+i[12],t[13]=g*eA+m*X+AA*QA+i[13],t[14]=B*eA+M*X+z*QA+i[14],t[15]=Q*eA+v*X+sA*QA+i[15]),t}function $nA(t,i,r){var s=r[0],g=r[1],B=r[2];return t[0]=i[0]*s,t[1]=i[1]*s,t[2]=i[2]*s,t[3]=i[3]*s,t[4]=i[4]*g,t[5]=i[5]*g,t[6]=i[6]*g,t[7]=i[7]*g,t[8]=i[8]*B,t[9]=i[9]*B,t[10]=i[10]*B,t[11]=i[11]*B,t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],t}function AaA(t,i,r,s){var g,B,Q,f,m,M,v,U,AA,z,sA,eA,X,QA,wA,HA,VA,ue,jA,Ve,Ze,Me,qe,Et,Je=s[0],$e=s[1],Dt=s[2],Zi=Math.sqrt(Je*Je+$e*$e+Dt*Dt);return Zi<as?null:(Je*=Zi=1/Zi,$e*=Zi,Dt*=Zi,g=Math.sin(r),Q=1-(B=Math.cos(r)),f=i[0],m=i[1],M=i[2],v=i[3],U=i[4],AA=i[5],z=i[6],sA=i[7],eA=i[8],X=i[9],QA=i[10],wA=i[11],HA=Je*Je*Q+B,VA=$e*Je*Q+Dt*g,ue=Dt*Je*Q-$e*g,jA=Je*$e*Q-Dt*g,Ve=$e*$e*Q+B,Ze=Dt*$e*Q+Je*g,Me=Je*Dt*Q+$e*g,qe=$e*Dt*Q-Je*g,Et=Dt*Dt*Q+B,t[0]=f*HA+U*VA+eA*ue,t[1]=m*HA+AA*VA+X*ue,t[2]=M*HA+z*VA+QA*ue,t[3]=v*HA+sA*VA+wA*ue,t[4]=f*jA+U*Ve+eA*Ze,t[5]=m*jA+AA*Ve+X*Ze,t[6]=M*jA+z*Ve+QA*Ze,t[7]=v*jA+sA*Ve+wA*Ze,t[8]=f*Me+U*qe+eA*Et,t[9]=m*Me+AA*qe+X*Et,t[10]=M*Me+z*qe+QA*Et,t[11]=v*Me+sA*qe+wA*Et,i!==t&&(t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15]),t)}function eaA(t,i,r){var s=Math.sin(r),g=Math.cos(r),B=i[4],Q=i[5],f=i[6],m=i[7],M=i[8],v=i[9],U=i[10],AA=i[11];return i!==t&&(t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15]),t[4]=B*g+M*s,t[5]=Q*g+v*s,t[6]=f*g+U*s,t[7]=m*g+AA*s,t[8]=M*g-B*s,t[9]=v*g-Q*s,t[10]=U*g-f*s,t[11]=AA*g-m*s,t}function taA(t,i,r){var s=Math.sin(r),g=Math.cos(r),B=i[0],Q=i[1],f=i[2],m=i[3],M=i[8],v=i[9],U=i[10],AA=i[11];return i!==t&&(t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15]),t[0]=B*g-M*s,t[1]=Q*g-v*s,t[2]=f*g-U*s,t[3]=m*g-AA*s,t[8]=B*s+M*g,t[9]=Q*s+v*g,t[10]=f*s+U*g,t[11]=m*s+AA*g,t}function iaA(t,i,r){var s=Math.sin(r),g=Math.cos(r),B=i[0],Q=i[1],f=i[2],m=i[3],M=i[4],v=i[5],U=i[6],AA=i[7];return i!==t&&(t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15]),t[0]=B*g+M*s,t[1]=Q*g+v*s,t[2]=f*g+U*s,t[3]=m*g+AA*s,t[4]=M*g-B*s,t[5]=v*g-Q*s,t[6]=U*g-f*s,t[7]=AA*g-m*s,t}function oaA(t,i){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=i[0],t[13]=i[1],t[14]=i[2],t[15]=1,t}function raA(t,i){return t[0]=i[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=i[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function naA(t,i,r){var s,g,B,Q=r[0],f=r[1],m=r[2],M=Math.sqrt(Q*Q+f*f+m*m);return M<as?null:(Q*=M=1/M,f*=M,m*=M,s=Math.sin(i),B=1-(g=Math.cos(i)),t[0]=Q*Q*B+g,t[1]=f*Q*B+m*s,t[2]=m*Q*B-f*s,t[3]=0,t[4]=Q*f*B-m*s,t[5]=f*f*B+g,t[6]=m*f*B+Q*s,t[7]=0,t[8]=Q*m*B+f*s,t[9]=f*m*B-Q*s,t[10]=m*m*B+g,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function aaA(t,i){var r=Math.sin(i),s=Math.cos(i);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function saA(t,i){var r=Math.sin(i),s=Math.cos(i);return t[0]=s,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function gaA(t,i){var r=Math.sin(i),s=Math.cos(i);return t[0]=s,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function G6(t,i,r){var s=i[0],g=i[1],B=i[2],Q=i[3],f=s+s,m=g+g,M=B+B,v=s*f,U=s*m,AA=s*M,z=g*m,sA=g*M,eA=B*M,X=Q*f,QA=Q*m,wA=Q*M;return t[0]=1-(z+eA),t[1]=U+wA,t[2]=AA-QA,t[3]=0,t[4]=U-wA,t[5]=1-(v+eA),t[6]=sA+X,t[7]=0,t[8]=AA+QA,t[9]=sA-X,t[10]=1-(v+z),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function IaA(t,i){var r=new Dw(3),s=-i[0],g=-i[1],B=-i[2],Q=i[3],f=i[4],m=i[5],M=i[6],v=i[7],U=s*s+g*g+B*B+Q*Q;return U>0?(r[0]=2*(f*Q+v*s+m*B-M*g)/U,r[1]=2*(m*Q+v*g+M*s-f*B)/U,r[2]=2*(M*Q+v*B+f*g-m*s)/U):(r[0]=2*(f*Q+v*s+m*B-M*g),r[1]=2*(m*Q+v*g+M*s-f*B),r[2]=2*(M*Q+v*B+f*g-m*s)),G6(t,i,r),t}function caA(t,i){return t[0]=i[12],t[1]=i[13],t[2]=i[14],t}function k6(t,i){var r=i[0],s=i[1],g=i[2],B=i[4],Q=i[5],f=i[6],m=i[8],M=i[9],v=i[10];return t[0]=Math.sqrt(r*r+s*s+g*g),t[1]=Math.sqrt(B*B+Q*Q+f*f),t[2]=Math.sqrt(m*m+M*M+v*v),t}function EaA(t,i){var r=new Dw(3);k6(r,i);var s=1/r[0],g=1/r[1],B=1/r[2],Q=i[0]*s,f=i[1]*g,m=i[2]*B,M=i[4]*s,v=i[5]*g,U=i[6]*B,AA=i[8]*s,z=i[9]*g,sA=i[10]*B,eA=Q+v+sA,X=0;return eA>0?(X=2*Math.sqrt(eA+1),t[3]=.25*X,t[0]=(U-z)/X,t[1]=(AA-m)/X,t[2]=(f-M)/X):Q>v&&Q>sA?(X=2*Math.sqrt(1+Q-v-sA),t[3]=(U-z)/X,t[0]=.25*X,t[1]=(f+M)/X,t[2]=(AA+m)/X):v>sA?(X=2*Math.sqrt(1+v-Q-sA),t[3]=(AA-m)/X,t[0]=(f+M)/X,t[1]=.25*X,t[2]=(U+z)/X):(X=2*Math.sqrt(1+sA-Q-v),t[3]=(f-M)/X,t[0]=(AA+m)/X,t[1]=(U+z)/X,t[2]=.25*X),t}function laA(t,i,r,s){i[0]=s[12],i[1]=s[13],i[2]=s[14];var g=s[0],B=s[1],Q=s[2],f=s[4],m=s[5],M=s[6],v=s[8],U=s[9],AA=s[10];r[0]=Math.sqrt(g*g+B*B+Q*Q),r[1]=Math.sqrt(f*f+m*m+M*M),r[2]=Math.sqrt(v*v+U*U+AA*AA);var z=1/r[0],sA=1/r[1],eA=1/r[2],X=g*z,QA=B*sA,wA=Q*eA,HA=f*z,VA=m*sA,ue=M*eA,jA=v*z,Ve=U*sA,Ze=AA*eA,Me=X+VA+Ze,qe=0;return Me>0?(qe=2*Math.sqrt(Me+1),t[3]=.25*qe,t[0]=(ue-Ve)/qe,t[1]=(jA-wA)/qe,t[2]=(QA-HA)/qe):X>VA&&X>Ze?(qe=2*Math.sqrt(1+X-VA-Ze),t[3]=(ue-Ve)/qe,t[0]=.25*qe,t[1]=(QA+HA)/qe,t[2]=(jA+wA)/qe):VA>Ze?(qe=2*Math.sqrt(1+VA-X-Ze),t[3]=(jA-wA)/qe,t[0]=(QA+HA)/qe,t[1]=.25*qe,t[2]=(ue+Ve)/qe):(qe=2*Math.sqrt(1+Ze-X-VA),t[3]=(QA-HA)/qe,t[0]=(jA+wA)/qe,t[1]=(ue+Ve)/qe,t[2]=.25*qe),t}function CaA(t,i,r,s){var g=i[0],B=i[1],Q=i[2],f=i[3],m=g+g,M=B+B,v=Q+Q,U=g*m,AA=g*M,z=g*v,sA=B*M,eA=B*v,X=Q*v,QA=f*m,wA=f*M,HA=f*v,VA=s[0],ue=s[1],jA=s[2];return t[0]=(1-(sA+X))*VA,t[1]=(AA+HA)*VA,t[2]=(z-wA)*VA,t[3]=0,t[4]=(AA-HA)*ue,t[5]=(1-(U+X))*ue,t[6]=(eA+QA)*ue,t[7]=0,t[8]=(z+wA)*jA,t[9]=(eA-QA)*jA,t[10]=(1-(U+sA))*jA,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function BaA(t,i,r,s,g){var B=i[0],Q=i[1],f=i[2],m=i[3],M=B+B,v=Q+Q,U=f+f,AA=B*M,z=B*v,sA=B*U,eA=Q*v,X=Q*U,QA=f*U,wA=m*M,HA=m*v,VA=m*U,ue=s[0],jA=s[1],Ve=s[2],Ze=g[0],Me=g[1],qe=g[2],Et=(1-(eA+QA))*ue,Je=(z+VA)*ue,$e=(sA-HA)*ue,Dt=(z-VA)*jA,Zi=(1-(AA+QA))*jA,bi=(X+wA)*jA,qt=(sA+HA)*Ve,ai=(X-wA)*Ve,Ki=(1-(AA+eA))*Ve;return t[0]=Et,t[1]=Je,t[2]=$e,t[3]=0,t[4]=Dt,t[5]=Zi,t[6]=bi,t[7]=0,t[8]=qt,t[9]=ai,t[10]=Ki,t[11]=0,t[12]=r[0]+Ze-(Et*Ze+Dt*Me+qt*qe),t[13]=r[1]+Me-(Je*Ze+Zi*Me+ai*qe),t[14]=r[2]+qe-($e*Ze+bi*Me+Ki*qe),t[15]=1,t}function uaA(t,i){var r=i[0],s=i[1],g=i[2],B=i[3],Q=r+r,f=s+s,m=g+g,M=r*Q,v=s*Q,U=s*f,AA=g*Q,z=g*f,sA=g*m,eA=B*Q,X=B*f,QA=B*m;return t[0]=1-U-sA,t[1]=v+QA,t[2]=AA-X,t[3]=0,t[4]=v-QA,t[5]=1-M-sA,t[6]=z+eA,t[7]=0,t[8]=AA+X,t[9]=z-eA,t[10]=1-M-U,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function QaA(t,i,r,s,g,B,Q){var f=1/(r-i),m=1/(g-s),M=1/(B-Q);return t[0]=2*B*f,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*B*m,t[6]=0,t[7]=0,t[8]=(r+i)*f,t[9]=(g+s)*m,t[10]=(Q+B)*M,t[11]=-1,t[12]=0,t[13]=0,t[14]=Q*B*2*M,t[15]=0,t}function _6(t,i,r,s,g){var B=1/Math.tan(i/2);if(t[0]=B/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=B,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,g!=null&&g!==1/0){var Q=1/(s-g);t[10]=(g+s)*Q,t[14]=2*g*s*Q}else t[10]=-1,t[14]=-2*s;return t}snA(v6,{add:()=>waA,adjoint:()=>znA,clone:()=>HnA,copy:()=>VnA,create:()=>JnA,decompose:()=>laA,determinant:()=>ZnA,equals:()=>TaA,exactEquals:()=>NaA,frob:()=>MaA,fromQuat:()=>uaA,fromQuat2:()=>IaA,fromRotation:()=>naA,fromRotationTranslation:()=>G6,fromRotationTranslationScale:()=>CaA,fromRotationTranslationScaleOrigin:()=>BaA,fromScaling:()=>raA,fromTranslation:()=>oaA,fromValues:()=>qnA,fromXRotation:()=>aaA,fromYRotation:()=>saA,fromZRotation:()=>gaA,frustum:()=>QaA,getRotation:()=>EaA,getScaling:()=>k6,getTranslation:()=>caA,identity:()=>N6,invert:()=>WnA,lookAt:()=>DaA,mul:()=>GaA,multiply:()=>T6,multiplyScalar:()=>SaA,multiplyScalarAndAdd:()=>vaA,ortho:()=>faA,orthoNO:()=>b6,orthoZO:()=>maA,perspective:()=>daA,perspectiveFromFieldOfView:()=>paA,perspectiveNO:()=>_6,perspectiveZO:()=>haA,rotate:()=>AaA,rotateX:()=>eaA,rotateY:()=>taA,rotateZ:()=>iaA,scale:()=>$nA,set:()=>KnA,str:()=>RaA,sub:()=>kaA,subtract:()=>L6,targetTo:()=>yaA,translate:()=>XnA,transpose:()=>jnA});var daA=_6;function haA(t,i,r,s,g){var B=1/Math.tan(i/2);if(t[0]=B/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=B,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,g!=null&&g!==1/0){var Q=1/(s-g);t[10]=g*Q,t[14]=g*s*Q}else t[10]=-1,t[14]=-s;return t}function paA(t,i,r,s){var g=Math.tan(i.upDegrees*Math.PI/180),B=Math.tan(i.downDegrees*Math.PI/180),Q=Math.tan(i.leftDegrees*Math.PI/180),f=Math.tan(i.rightDegrees*Math.PI/180),m=2/(Q+f),M=2/(g+B);return t[0]=m,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=M,t[6]=0,t[7]=0,t[8]=-(Q-f)*m*.5,t[9]=(g-B)*M*.5,t[10]=s/(r-s),t[11]=-1,t[12]=0,t[13]=0,t[14]=s*r/(r-s),t[15]=0,t}function b6(t,i,r,s,g,B,Q){var f=1/(i-r),m=1/(s-g),M=1/(B-Q);return t[0]=-2*f,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*m,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*M,t[11]=0,t[12]=(i+r)*f,t[13]=(g+s)*m,t[14]=(Q+B)*M,t[15]=1,t}var faA=b6;function maA(t,i,r,s,g,B,Q){var f=1/(i-r),m=1/(s-g),M=1/(B-Q);return t[0]=-2*f,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*m,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=M,t[11]=0,t[12]=(i+r)*f,t[13]=(g+s)*m,t[14]=B*M,t[15]=1,t}function DaA(t,i,r,s){var g,B,Q,f,m,M,v,U,AA,z,sA=i[0],eA=i[1],X=i[2],QA=s[0],wA=s[1],HA=s[2],VA=r[0],ue=r[1],jA=r[2];return Math.abs(sA-VA)<as&&Math.abs(eA-ue)<as&&Math.abs(X-jA)<as?N6(t):(v=sA-VA,U=eA-ue,AA=X-jA,g=wA*(AA*=z=1/Math.sqrt(v*v+U*U+AA*AA))-HA*(U*=z),B=HA*(v*=z)-QA*AA,Q=QA*U-wA*v,(z=Math.sqrt(g*g+B*B+Q*Q))?(g*=z=1/z,B*=z,Q*=z):(g=0,B=0,Q=0),f=U*Q-AA*B,m=AA*g-v*Q,M=v*B-U*g,(z=Math.sqrt(f*f+m*m+M*M))?(f*=z=1/z,m*=z,M*=z):(f=0,m=0,M=0),t[0]=g,t[1]=f,t[2]=v,t[3]=0,t[4]=B,t[5]=m,t[6]=U,t[7]=0,t[8]=Q,t[9]=M,t[10]=AA,t[11]=0,t[12]=-(g*sA+B*eA+Q*X),t[13]=-(f*sA+m*eA+M*X),t[14]=-(v*sA+U*eA+AA*X),t[15]=1,t)}function yaA(t,i,r,s){var g=i[0],B=i[1],Q=i[2],f=s[0],m=s[1],M=s[2],v=g-r[0],U=B-r[1],AA=Q-r[2],z=v*v+U*U+AA*AA;z>0&&(v*=z=1/Math.sqrt(z),U*=z,AA*=z);var sA=m*AA-M*U,eA=M*v-f*AA,X=f*U-m*v;return(z=sA*sA+eA*eA+X*X)>0&&(sA*=z=1/Math.sqrt(z),eA*=z,X*=z),t[0]=sA,t[1]=eA,t[2]=X,t[3]=0,t[4]=U*X-AA*eA,t[5]=AA*sA-v*X,t[6]=v*eA-U*sA,t[7]=0,t[8]=v,t[9]=U,t[10]=AA,t[11]=0,t[12]=g,t[13]=B,t[14]=Q,t[15]=1,t}function RaA(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}function MaA(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function waA(t,i,r){return t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t[3]=i[3]+r[3],t[4]=i[4]+r[4],t[5]=i[5]+r[5],t[6]=i[6]+r[6],t[7]=i[7]+r[7],t[8]=i[8]+r[8],t[9]=i[9]+r[9],t[10]=i[10]+r[10],t[11]=i[11]+r[11],t[12]=i[12]+r[12],t[13]=i[13]+r[13],t[14]=i[14]+r[14],t[15]=i[15]+r[15],t}function L6(t,i,r){return t[0]=i[0]-r[0],t[1]=i[1]-r[1],t[2]=i[2]-r[2],t[3]=i[3]-r[3],t[4]=i[4]-r[4],t[5]=i[5]-r[5],t[6]=i[6]-r[6],t[7]=i[7]-r[7],t[8]=i[8]-r[8],t[9]=i[9]-r[9],t[10]=i[10]-r[10],t[11]=i[11]-r[11],t[12]=i[12]-r[12],t[13]=i[13]-r[13],t[14]=i[14]-r[14],t[15]=i[15]-r[15],t}function SaA(t,i,r){return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=i[3]*r,t[4]=i[4]*r,t[5]=i[5]*r,t[6]=i[6]*r,t[7]=i[7]*r,t[8]=i[8]*r,t[9]=i[9]*r,t[10]=i[10]*r,t[11]=i[11]*r,t[12]=i[12]*r,t[13]=i[13]*r,t[14]=i[14]*r,t[15]=i[15]*r,t}function vaA(t,i,r,s){return t[0]=i[0]+r[0]*s,t[1]=i[1]+r[1]*s,t[2]=i[2]+r[2]*s,t[3]=i[3]+r[3]*s,t[4]=i[4]+r[4]*s,t[5]=i[5]+r[5]*s,t[6]=i[6]+r[6]*s,t[7]=i[7]+r[7]*s,t[8]=i[8]+r[8]*s,t[9]=i[9]+r[9]*s,t[10]=i[10]+r[10]*s,t[11]=i[11]+r[11]*s,t[12]=i[12]+r[12]*s,t[13]=i[13]+r[13]*s,t[14]=i[14]+r[14]*s,t[15]=i[15]+r[15]*s,t}function NaA(t,i){return t[0]===i[0]&&t[1]===i[1]&&t[2]===i[2]&&t[3]===i[3]&&t[4]===i[4]&&t[5]===i[5]&&t[6]===i[6]&&t[7]===i[7]&&t[8]===i[8]&&t[9]===i[9]&&t[10]===i[10]&&t[11]===i[11]&&t[12]===i[12]&&t[13]===i[13]&&t[14]===i[14]&&t[15]===i[15]}function TaA(t,i){var r=t[0],s=t[1],g=t[2],B=t[3],Q=t[4],f=t[5],m=t[6],M=t[7],v=t[8],U=t[9],AA=t[10],z=t[11],sA=t[12],eA=t[13],X=t[14],QA=t[15],wA=i[0],HA=i[1],VA=i[2],ue=i[3],jA=i[4],Ve=i[5],Ze=i[6],Me=i[7],qe=i[8],Et=i[9],Je=i[10],$e=i[11],Dt=i[12],Zi=i[13],bi=i[14],qt=i[15];return Math.abs(r-wA)<=as*Math.max(1,Math.abs(r),Math.abs(wA))&&Math.abs(s-HA)<=as*Math.max(1,Math.abs(s),Math.abs(HA))&&Math.abs(g-VA)<=as*Math.max(1,Math.abs(g),Math.abs(VA))&&Math.abs(B-ue)<=as*Math.max(1,Math.abs(B),Math.abs(ue))&&Math.abs(Q-jA)<=as*Math.max(1,Math.abs(Q),Math.abs(jA))&&Math.abs(f-Ve)<=as*Math.max(1,Math.abs(f),Math.abs(Ve))&&Math.abs(m-Ze)<=as*Math.max(1,Math.abs(m),Math.abs(Ze))&&Math.abs(M-Me)<=as*Math.max(1,Math.abs(M),Math.abs(Me))&&Math.abs(v-qe)<=as*Math.max(1,Math.abs(v),Math.abs(qe))&&Math.abs(U-Et)<=as*Math.max(1,Math.abs(U),Math.abs(Et))&&Math.abs(AA-Je)<=as*Math.max(1,Math.abs(AA),Math.abs(Je))&&Math.abs(z-$e)<=as*Math.max(1,Math.abs(z),Math.abs($e))&&Math.abs(sA-Dt)<=as*Math.max(1,Math.abs(sA),Math.abs(Dt))&&Math.abs(eA-Zi)<=as*Math.max(1,Math.abs(eA),Math.abs(Zi))&&Math.abs(X-bi)<=as*Math.max(1,Math.abs(X),Math.abs(bi))&&Math.abs(QA-qt)<=as*Math.max(1,Math.abs(QA),Math.abs(qt))}var GaA=T6,kaA=L6,CG=`#version 300 es
in vec2 a_position;
in vec2 a_texCoord;
out vec2 v_texCoord;
void main() {
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
v_texCoord = a_texCoord;
}`,d3=t=>`precision highp float;
uniform sampler2D mask;in vec2 v_texCoord;
out vec4 outColor;
void main() {${t}}`,_aA=`#version 300 es
uniform sampler2D lastMask;
${d3(`highp float current = texture(mask, v_texCoord).r;
highp float previous = texture(lastMask, v_texCoord).r;
highp float diff = abs(current - previous);
const float smoothFactor = 0.05;
const float threshold = 0.3;
highp float blendedMask = diff < threshold
? previous * (1.0 - smoothFactor) + current * smoothFactor
: current;
outColor = vec4(blendedMask,0.0,0.0, 1.0);`)}
`,baA=`#version 300 es
${d3(` vec2 o = 1.0 / vec2(textureSize(mask, 0));
float size = 3.0;
int sizeDb = int(size*size);
float samples[9];
int idx = 0;
float side = (size - 1.0) / 2.0;
for (float x = -side; x <= side; x += 1.0) {
for (float y = -side; y <= side; y += 1.0) {
vec2 sampleCoord = v_texCoord + vec2(x, y) * o;
int index = int((x + 1.0) * size + (y + 1.0));
samples[index] = texture(mask, sampleCoord).r;
}
}
for (int i = 0; i < sizeDb - 1; i++) {
for (int j = 0; j < sizeDb - 1 - i; j++) {
if (samples[j] > samples[j + 1]) {
float temp = samples[j];
samples[j] = samples[j + 1];
samples[j + 1] = temp;
}
}
}
float endR=samples[sizeDb/2]>0.5?1.0:0.0;
outColor = vec4(endR, 0.0, 0.0, 1.0);`)}
`,LaA=`#version 300 es
${d3(` vec2 o = 1.0 / vec2(textureSize(mask, 0));
float size = 3.0;
float side = (size - 1.0) / 2.0;
float stronglyEroded = 1.0;
for (float x = -side; x <= side; x += 1.0) {
for (float y = -side; y <= side; y += 1.0) {
vec2 sampleCoord = v_texCoord + vec2(x, y) * o;
stronglyEroded = min(stronglyEroded, texture(mask, sampleCoord).r);
}
}
outColor = vec4(stronglyEroded, 0.0, 0.0, 1.0);`)}
`,FaA=`#version 300 es
precision highp float;
uniform sampler2D mask;
uniform sampler2D originalMask;
uniform sampler2D maskEdge;
in vec2 v_texCoord;
out vec4 outColor;
float u_highThreshold = 0.9;
float u_smoothSigma = 2.0;
float u_featherRadius = 4.0;
float balancedTransition(float value) {
return value * value * (3.0 - 2.0 * value);
}
float hybridBlur(sampler2D tex, vec2 uv, vec2 texelSize, float edgeIntensity, float sigma) {
float edgeWeight = smoothstep(u_highThreshold * 0.8, u_highThreshold, edgeIntensity);
if (edgeWeight < u_highThreshold * 0.8) {
return texture(tex, uv).r;
}
float adaptiveRadius = mix(u_featherRadius * 0.5, u_featherRadius * 1.5, edgeWeight);
int kernelSize = int(ceil(2.5 * sigma));
float sum = 0.0;
float weightSum = 0.0;
for (int i = -kernelSize; i <= kernelSize; i++) {
for (int j = -kernelSize; j <= kernelSize; j++) {
vec2 offset = vec2(float(i), float(j)) * texelSize * adaptiveRadius;
vec2 sampleUV = uv + offset;
float sampleValue = texture(originalMask, sampleUV).r;
float dist = length(vec2(i, j)) / float(kernelSize);
float weight = 1.0 - balancedTransition(dist);
sum += sampleValue * weight;
weightSum += weight;
}
}
return sum / weightSum;
}
void main() {
vec2 texelSize = 1.0 / vec2(textureSize(mask, 0));
float edge = texture(maskEdge, v_texCoord).r;
float centerValue = texture(mask, v_texCoord).r;
float smoothedValue = hybridBlur(mask, v_texCoord, texelSize, edge, u_smoothSigma);
float finalAlpha;
if (edge == 1.0) {
finalAlpha = smoothedValue;
} else if (centerValue > 0.70) {
finalAlpha = 1.0;
} else if (centerValue < 0.30) {
finalAlpha = 0.0;
} else {
float t = balancedTransition((centerValue - 0.30));
finalAlpha = mix(centerValue, smoothedValue, 1.0 - t * 0.95);
}
outColor = vec4(finalAlpha, 0.0, 0.0, 1.0);
}
`,UaA=`#version 300 es
precision highp float;
uniform sampler2D mask;
in vec2 v_texCoord;
out vec4 outColor;
float u_gradientScale = 0.25;
const float SOBEL_KERNEL_X[9] = float[9](
-1.0, 0.0, 1.0,
-2.0, 0.0, 2.0,
-1.0, 0.0, 1.0
);
const float SOBEL_KERNEL_Y[9] = float[9](
-1.0, -2.0, -1.0,
0.0, 0.0, 0.0,
1.0, 2.0, 1.0
);
float nonMaxSuppression(float gradient, vec2 uv, vec2 texelSize, float angle) {
vec2 dir = vec2(cos(angle), sin(angle));
vec2 offset1 = dir * texelSize;
vec2 offset2 = -dir * texelSize;
float n1 = texture(mask, uv + offset1).r;
float n2 = texture(mask, uv + offset2).r;
return (gradient >= n1 && gradient >= n2) ? gradient : 0.0;
}
void main() {
vec2 o = 1.0 / vec2(textureSize(mask, 0));
float gx = 0.0, gy = 0.0;
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
vec2 offset = vec2(float(i), float(j)) * o;
float maskValue = texture(mask, v_texCoord + offset).r;
int idx = (i+1)*3 + (j+1);
gx += maskValue * SOBEL_KERNEL_X[idx];
gy += maskValue * SOBEL_KERNEL_Y[idx];
}
}
float gradient = sqrt(gx*gx + gy*gy) * u_gradientScale;
float angle = atan(gy, gx);
float nmsEdge = nonMaxSuppression(gradient, v_texCoord, o, angle);
float edge = nmsEdge > 0.0 ? 1.0 : 0.0;
outColor = vec4(edge, 0.0, 0.0, 1.0);
}
`,OaA=class{constructor(){Oa(this,"gl"),Oa(this,"positionBuffer"),Oa(this,"texCoordBuffer"),Oa(this,"ratio"),Oa(this,"_tdProgram"),Oa(this,"_kcProgram"),Oa(this,"_mdProgram"),Oa(this,"_edgeProgram"),Oa(this,"_borderProgram"),Oa(this,"_lastMaskTexture")}init(t,i,r,s){this.initParams(t,i,r,s),this.initPrograms()}initParams(t,i,r,s){this.gl=t,this.positionBuffer=i,this.texCoordBuffer=r,this.ratio=s}initPrograms(){this._tdProgram=this.createProgram(CG,_aA,["mask","lastMask"]),this._mdProgram=this.createProgram(CG,baA,["mask"]),this._kcProgram=this.createProgram(CG,LaA,["mask"]),this._borderProgram=this.createProgram(CG,FaA,["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(CG,UaA,["mask"])}setAttributes(...t){const{gl:i}=this;t.forEach((r,s)=>{i.enableVertexAttribArray(s),i.bindBuffer(i.ARRAY_BUFFER,r),i.vertexAttribPointer(s,2,i.FLOAT,!1,0,0)})}createShader(t,i){const{gl:r}=this,s=r.createShader(t);return r.shaderSource(s,i),r.compileShader(s),s}createProgram(t,i,r){const{gl:s}=this,g=this.createShader(s.FRAGMENT_SHADER,i),B=this.createShader(s.VERTEX_SHADER,t),Q=s.createProgram();if(s.attachShader(Q,B),s.attachShader(Q,g),s.linkProgram(Q),!s.getProgramParameter(Q,s.LINK_STATUS))throw new Error(`${s.getProgramInfoLog(Q)}`);return s.useProgram(Q),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.forEach((f,m)=>{s.uniform1i(s.getUniformLocation(Q,f),1+m)}),Q}createFramebuffer(t){const{gl:i}=this,r=i.createFramebuffer();return i.bindFramebuffer(i.FRAMEBUFFER,r),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,t,0),r}getTempTexture(t,i,r=!0,s){const{gl:g}=this;let B,Q;g.useProgram(t),this.ratio===16/9?(B=640,Q=360):(B=640,Q=480);const f=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,f),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.pixelStorei(g.PACK_ALIGNMENT,1),g.pixelStorei(g.UNPACK_ALIGNMENT,1),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,B,Q,0,g.RGBA,g.UNSIGNED_BYTE,null);const m=this.createFramebuffer(f);return i.forEach((M,v)=>{M&&(g.activeTexture(g.TEXTURE1+v),g.bindTexture(g.TEXTURE_2D,M||null))}),this.setAttributes(this.positionBuffer,this.texCoordBuffer),g.viewport(0,0,B,Q),g.drawArrays(g.TRIANGLE_STRIP,0,4),r&&i.forEach((M,v)=>{M&&s!==v&&g.deleteTexture(M)}),g.deleteFramebuffer(m),f}postProcessing(t){this._lastMaskTexture=this.getTempTexture(this._tdProgram,[t,this._lastMaskTexture]);let i=this.getTempTexture(this._kcProgram,[this._lastMaskTexture],!1);for(let r=0;r<3;r++){i=this.getTempTexture(this._mdProgram,[i]);const s=this.getTempTexture(this._edgeProgram,[i],!1);i=this.getTempTexture(this._borderProgram,[i,s,this._lastMaskTexture],!0,2)}return i}close(){const{gl:t}=this;this._borderProgram&&t.deleteProgram(this._borderProgram),this._edgeProgram&&t.deleteProgram(this._edgeProgram),this._kcProgram&&t.deleteProgram(this._kcProgram),this._mdProgram&&t.deleteProgram(this._mdProgram),this._tdProgram&&t.deleteProgram(this._tdProgram)}},xaA=new OaA,YaA=(t=>(t[t.TRACE=0]="TRACE",t[t.DEBUG=1]="DEBUG",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.NONE=5]="NONE",t))(YaA||{}),PaA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},jM=570703,GK=0,F6=class U6{constructor(i){this.core=i,Oa(this,"seq"),Oa(this,"_core"),Oa(this,"log"),Oa(this,"preLoadPromise"),Oa(this,"startResolve"),Oa(this,"startReject"),Oa(this,"mediaPipeSolutions"),Oa(this,"assetsPath"),Oa(this,"currentType"),Oa(this,"onAbort"),Oa(this,"isAborted",!1),GK+=1,this.seq=GK,this._core=i,this.log=i.log.createChild({id:`${this.getAlias()}${GK}`}),this.log.info("created"),i.assetsPath&&(this.preLoadPromise=this.preload(i.assetsPath))}static isSupported(){if(OnA<90)return!1;const i=document.createElement("canvas").getContext("webgl2",PaA);return!!(i&&i instanceof WebGL2RenderingContext)}async preload(i){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await BnA());const r=s=>{var g;this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",s),this.core.clearStarted(this,this.getGroup()),this.stop(),(g=this.onAbort)==null||g.call(this,s)};this._core.room.videoManager.initVirtualBackground(r,v6,xaA),await this._core.initVisionTaskRegistry(i,["ImageSegmenter"])}catch(r){const{RtcError:s,ErrorCode:g}=this._core.errorModule;throw new s({code:g.INVALID_OPERATION,message:`VirtualBackground preload error, please redeploy the assets of the npm package. detail: ${r}`})}}getName(){return U6.Name}getAlias(){return"vb"}getValidateRule(i){switch(i){case"start":return cnA(this._core);case"update":return EnA(this._core);case"stop":return lnA(this._core)}}getGroup(){return"vb"}getKVTypeValue(i=!1,r=!1,s="NONE"){let g=0;switch(this.currentType){case"blur":g|=0;break;case"image":g|=1;break;case"color":g|=2}switch(i&&(g|=256),r&&(g|=512),s){case"ABORT_IN_INFERENCE":g|=4096;break;case"ABORT_IN_VIDEO_MANAGER":g|=8192;break;case"OTHER":g|=61440}return g}hexToRgb(i){const r=i.replace("#","");return[parseInt(r.slice(0,2),16)/255,parseInt(r.slice(2,4),16)/255,parseInt(r.slice(4,6),16)/255]}async start(i){const{type:r="blur",src:s,blurLevel:g=3,onAbort:B}=i;this.currentType=r,this.onAbort=B,r==="color"&&typeof i.color=="string"&&(i.color=this.hexToRgb(i.color));const{auth:Q}=await gnA({sdkAppId:i.sdkAppId,userId:i.userId,userSig:i.userSig,core:this._core}),{RtcError:f,ErrorCodeDictionary:m,ErrorCode:M}=this._core.errorModule;if(!Q){const v=this._core.utils.isOverseaSdkAppId(i.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386";throw new f({code:m.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:v}})}if(!this.preLoadPromise){if(!this._core.assetsPath)throw new f({code:M.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});this.preLoadPromise=this.preload(this._core.assetsPath)}return await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:r,imageUrl:s,blurLevel:g,enableFaceCentering:i.enableFaceCentering,enableEffectOptimization:i.enableEffectOptimization,color:i.color,onAbort:v=>{var U;this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(U=this.onAbort)==null||U.call(this,v)}}).then(()=>{this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})}).catch(v=>{throw this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")}),v})}async update(i){const{type:r,src:s}=i;return r!==this.currentType&&(this.currentType=r),r==="color"&&typeof i.color=="string"&&(i.color=this.hexToRgb(i.color)),this.core.room.videoManager.setVirtualBackground({type:r,imageUrl:s,blurLevel:i.blurLevel,enableFaceCentering:i.enableFaceCentering,enableEffectOptimization:i.enableEffectOptimization,color:i.color}).then(()=>{this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!1,!1,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:jM,value:this.getKVTypeValue(!0,!1,"OTHER")})})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Oa(F6,"Name","VirtualBackground");var O6=F6,JaA=O6;const HaA=Object.freeze(Object.defineProperty({__proto__:null,VirtualBackground:O6,default:JaA},Symbol.toStringTag,{value:"Module"})),VaA=hk(HaA);var qaA=Object.defineProperty,KaA=(t,i,r)=>i in t?qaA(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,wG=(t,i,r)=>KaA(t,typeof i!="symbol"?i+"":i,r);function jaA(t){return{name:"BasicBeautyOptions",type:"object",required:!0,allowEmpty:!1,properties:{beauty:{required:!1,type:"number"},brightness:{required:!1,type:"number"},ruddy:{required:!1,type:"number"}},validate(i,r,s,g){const{RtcError:B,ErrorCode:Q,ErrorCodeDictionary:f}=t.errorModule;if(t.utils.isOverseaSdkAppId(i.sdkAppId))throw new B({code:Q.INVALID_OPERATION,extraCode:f.INVALID_OPERATION,message:"This feature is not yet available in your country or region. If you have any questions, you can go to the community for consultation: https://zhiliao.qq.com/s/cWSPGIIM62CC/c3TPGIIM62CQ"})}}}function WaA(t){return{name:"StopBasicBeautyOptions",required:!1}}var zaA=(()=>{var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var r,s,g=i;g.ready=new Promise((P,F)=>{r=P,s=F});var B=Object.assign({},g),Q="";typeof document<"u"&&document.currentScript&&(Q=document.currentScript.src),t&&(Q=t),Q=Q.indexOf("blob:")!==0?Q.substr(0,Q.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var f,m,M=g.print||console.log.bind(console),v=g.printErr||console.error.bind(console);function U(P){if(bi(P))return function(F){for(var EA=atob(F),RA=new Uint8Array(EA.length),GA=0;GA<EA.length;++GA)RA[GA]=EA.charCodeAt(GA);return RA}(P.slice(Zi.length))}Object.assign(g,B),B=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(f=g.wasmBinary),typeof WebAssembly!="object"&&Je("no native wasm support detected");var AA,z,sA,eA,X,QA,wA,HA,VA=!1,ue=[],jA=[],Ve=[];function Ze(P){ue.unshift(P)}function Me(P){Ve.unshift(P)}var qe=0,Et=null;function Je(P){g.onAbort&&g.onAbort(P),v(P="Aborted("+P+")"),VA=!0,P+=". Build with -sASSERTIONS for more info.";var F=new WebAssembly.RuntimeError(P);throw s(F),F}var $e,Dt,Zi="data:application/octet-stream;base64,",bi=P=>P.startsWith(Zi);function qt(P){return Promise.resolve().then(()=>function(F){if(F==$e&&f)return new Uint8Array(f);var EA=U(F);if(EA)return EA;throw"both async and sync fetching of the wasm failed"}(P))}function ai(P,F,EA,RA){return function(GA,WA,Ce){return qt(GA).then(ge=>WebAssembly.instantiate(ge,WA)).then(ge=>ge).then(Ce,ge=>{v(`failed to asynchronously prepare wasm: ${ge}`),Je(ge)})}(F,EA,RA)}bi($e="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRB8MoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRr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ACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/UCAQV/IwBBEGsiByQAIAIgAUF/c0Hv////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSAAIAFB5////wNJBH8gByABQQF0NgIMIAcgASACajYCBCMAQRBrIgIkACAJKAIAIAdBDGoiCigCAEkhCyACQRBqJAAgCiAJIAsbKAIAIgJBC08EfyACQRBqQXBxIgIgAkEBayICIAJBC0YbBUEKC0EBagVB7////wcLEDAgBygCBCECIAcoAggaIAQEQCACIAggBBAjCyAFBEAgAiAEaiAGIAUQIwsgAyAEayEGIAMgBEcEQCACIARqIAVqIAQgCGogBhAjCyABQQpHBEAgCBAZCyAAIAI2AgAgACAAKAIIQYCAgIB4cSAHKAIIQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAQgBWogBmoiADYCBCAHQQA6AAwgACACaiAHLQAMOgAAIAdBEGokAA8LECcACwoAIAAgASACEEMLuQEBBH8jAEEQayIEJAAgBCACNgIMIwBBoAFrIgMkACADIAAgA0GeAWogARsiBjYClAFBfyEFIAMgAUEBayIAQQAgACABTRs2ApgBIANBAEGQARAmIgBBfzYCTCAAQSA2AiQgAEF/NgJQIAAgAEGfAWo2AiwgACAAQZQBajYCVAJAIAFBAEgEQEHo3gBBPTYCAAwBCyAGQQA6AAAgAEH9CiACQR8QTSEFCyAAQaABaiQAIARBEGokACAFCwQAIAALmQIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQbTWACgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtB6N4AQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC54YAxN/AXwCfiMAQbAEayIMJAAgDEEANgIsAkAgAb0iGkIAUwRAQQEhD0GUCCETIAGaIgG9IRoMAQsgBEGAEHEEQEEBIQ9BlwghEwwBC0GaCEGVCCAEQQFxIg8bIRMgD0UhFQsCQCAaQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgD0EDaiIDIARB//97cRAfIAAgEyAPEB0gAEHLCUHVCyAFQSBxIgUbQfkKQdkLIAUbIAEgAWIbQQMQHSAAQSAgAiADIARBgMAAcxAfIAMgAiACIANIGyEJDAELIAxBEGohEgJAAn8CQCABIAxBLGoQTiIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQpBBiADIANBAEgbDAELIAwgBkEdayIKNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAKQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIApBAEwEQCAKIQMgByEGIA0hCAwBCyANIQggCiEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEbQgAhGgNAIAYgGkL/////D4MgBjUCACAbhnwiGiAaQoCU69wDgCIaQoCU69wDfn0+AgAgBkEEayIGIAhPDQALIBqnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIRAgDkHmAEYhEQNAQQlBACADayIDIANBCU4bIQkCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAl2IRRBfyAJdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAl2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAJaiIDNgIsIA0gCCAHRUECdGoiCCARGyIHIBBBAnRqIAYgBiAHa0ECdSAQShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQCAMQTBqQQRBpAIgCkEASBtqIAdBgMgAaiIJQQltIhFBAnRqIhBBgCBrIQpBCiEHIAkgEUEJbGsiCUEHTARAA0AgB0EKbCEHIAlBAWoiCUEIRw0ACwsCQCAKKAIAIhEgESAHbiIUIAdsayIJRSAQQfwfayIWIAZGcQ0AAkAgFEEBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHDQEgCCAKTw0BIBBBhCBrLQAAQQFxRQ0BC0QBAAAAAABAQyEBC0QAAAAAAADgP0QAAAAAAADwP0QAAAAAAAD4PyAGIBZGG0QAAAAAAAD4PyAJIAdBAXYiFEYbIAkgFEkbIRkCQCAVDQAgEy0AAEEtRw0AIBmaIRkgAZohAQsgCiARIAlrIgk2AgAgASAZoCABYQ0AIAogByAJaiIDNgIAIANBgJTr3ANPBEADQCAKQQA2AgAgCCAKQQRrIgpLBEAgCEEEayIIQQA2AgALIAogCigCAEEBaiIDNgIAIANB/5Pr3ANLDQALCyANIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCUEKSQ0AA0AgA0EBaiEDIAkgB0EKbCIHTw0ACwsgCkEEaiIHIAYgBiAHSxshBgsDQCAGIgcgCE0iCUUEQCAGQQRrIgYoAgBFDQELCwJAIA5B5wBHBEAgBEEIcSEKDAELIANBf3NBfyALQQEgCxsiBiADSiADQXtKcSIKGyAGaiELQX9BfiAKGyAFaiEFIARBCHEiCg0AQXchBgJAIAkNACAHQQRrKAIAIg5FDQBBCiEJQQAhBiAOQQpwDQADQCAGIgpBAWohBiAOIAlBCmwiCXBFDQALIApBf3MhBgsgByANa0ECdUEJbCEJIAVBX3FBxgBGBEBBACEKIAsgBiAJakEJayIGQQAgBkEAShsiBiAGIAtKGyELDAELQQAhCiALIAMgCWogBmpBCWsiBkEAIAZBAEobIgYgBiALShshCwtBfyEJIAtB/f///wdB/v///wcgCiALciIRG0oNASALIBFBAEdqQQFqIQ4CQCAFQV9xIhVBxgBGBEAgAyAOQf////8Hc0oNAyADQQAgA0EAShshBgwBCyASIAMgA0EfdSIGcyAGa60gEhApIgZrQQFMBEADQCAGQQFrIgZBMDoAACASIAZrQQJIDQALCyAGQQJrIhAgBToAACAGQQFrQS1BKyADQQBIGzoAACASIBBrIgYgDkH/////B3NKDQILIAYgDmoiAyAPQf////8Hc0oNASAAQSAgAiADIA9qIgUgBBAfIAAgEyAPEB0gAEEwIAIgBSAEQYCABHMQHwJAAkACQCAVQcYARgRAIAxBEGoiBkEIciEDIAZBCXIhCiANIAggCCANSxsiCSEIA0AgCDUCACAKECkhBgJAIAggCUcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAYgCkcNACAMQTA6ABggAyEGCyAAIAYgCiAGaxAdIAhBBGoiCCANTQ0ACyARBEAgAEGhEkEBEB0LIAcgCE0NASALQQBMDQEDQCAINQIAIAoQKSIGIAxBEGpLBEADQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALCyAAIAZBCSALIAtBCU4bEB0gC0EJayEGIAhBBGoiCCAHTw0DIAtBCUohGCAGIQsgGA0ACwwCCwJAIAtBAEgNACAHIAhBBGogByAISxshCSAMQRBqIgZBCHIhAyAGQQlyIQ0gCCEHA0AgDSAHNQIAIA0QKSIGRgRAIAxBMDoAGCADIQYLAkAgByAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgACAGQQEQHSAGQQFqIQYgCiALckUNACAAQaESQQEQHQsgACAGIA0gBmsiBiALIAYgC0gbEB0gCyAGayELIAdBBGoiByAJTw0BIAtBAE4NAAsLIABBMCALQRJqQRJBABAfIAAgECASIBBrEB0MAgsgCyEGCyAAQTAgBkEJakEJQQAQHwsgAEEgIAIgBSAEQYDAAHMQHyAFIAIgAiAFSBshCQwBCyATIAVBGnRBH3VBCXFqIQgCQCADQQtLDQBBDCADayEGRAAAAAAAADBAIRkDQCAZRAAAAAAAADBAoiEZIAZBAWsiBg0ACyAILQAAQS1GBEAgGSABmiAZoaCaIQEMAQsgASAZoCAZoSEBCyASIAwoAiwiBiAGQR91IgZzIAZrrSASECkiBkYEQCAMQTA6AA8gDEEPaiEGCyAPQQJyIQsgBUEgcSENIAwoAiwhByAGQQJrIgogBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgDEEQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBsMoAai0AACANcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAVBAWoiByAMQRBqa0EBRw0AAkAgBg0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAFQS46AAEgBUECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIAprIgZqIg1rIANIDQAgAEEgIAIgDSADQQJqIAcgDEEQaiIHayIFIAVBAmsgA0gbIAUgAxsiCWoiAyAEEB8gACAIIAsQHSAAQTAgAiADIARBgIAEcxAfIAAgByAFEB0gAEEwIAkgBWtBAEEAEB8gACAKIAYQHSAAQSAgAiADIARBgMAAcxAfIAMgAiACIANIGyEJCyAMQbAEaiQAIAkLvAIAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACAkKCAkBAgMECgkKCggJBQYHCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxEAAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALcgEDfyAAKAIALAAAQTBrQQpPBEBBAA8LA0AgACgCACEDQX8hASACQcyZs+YATQRAQX8gAywAAEEwayIBIAJBCmwiAmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAAUEwa0EKSQ0ACyACC9AUAhh/AX4jAEHQAGsiByQAIAcgATYCTCAEQcABayEXIANBgANrIRggB0E3aiEZIAdBOGohEwJAAkACQANAQQAhBgNAIAEhDCAGIBJB/////wdzSg0CIAYgEmohEgJAAkACQCABIgYtAAAiCARAA0ACQAJAIAhB/wFxIgFFBEAgBiEBDAELIAFBJUcNASAGIQgDQCAILQABQSVHBEAgCCEBDAILIAZBAWohBiAILQACIRsgCEECaiIBIQggG0ElRg0ACwsgBiAMayIGIBJB/////wdzIhpKDQggAARAIAAgDCAGEB0LIAYNBiAHIAE2AkwgAUEBaiEGQX8hDgJAIAEsAAFBMGsiCkEKTw0AIAEtAAJBJEcNACABQQNqIQYgCiEOQQEhFAsgByAGNgJMQQAhCwJAIAYsAAAiCEEgayIBQR9LBEAgBiEKDAELIAYhCkEBIAF0IgFBidEEcUUNAANAIAcgBkEBaiIKNgJMIAEgC3IhCyAGLAABIghBIGsiAUEgTw0BIAohBkEBIAF0IgFBidEEcQ0ACwsCQCAIQSpGBEAgCkEBaiEIAn8CQCAKLAABQTBrQQpPDQAgCi0AAkEkRw0AIAgsAAAhASAKQQNqIQhBASEUAn8gAEUEQCAXIAFBAnRqQQo2AgBBAAwBCyAYIAFBA3RqKAIACwwBCyAUDQYgAEUEQCAHIAg2AkxBACEUQQAhDwwDCyACIAIoAgAiAUEEajYCAEEAIRQgASgCAAshDyAHIAg2AkwgD0EATg0BQQAgD2shDyALQYDAAHIhCwwBCyAHQcwAahBLIg9BAEgNCSAHKAJMIQgLQQAhBkF/IQkCfyAILQAAQS5HBEAgCCEBQQAMAQsgCC0AAUEqRgRAIAhBAmohAQJAAkAgCCwAAkEwa0EKTw0AIAgtAANBJEcNACABLAAAIQECfyAARQRAIBcgAUECdGpBCjYCAEEADAELIBggAUEDdGooAgALIQkgCEEEaiEBDAELIBQNBiAARQRAQQAhCQwBCyACIAIoAgAiCkEEajYCACAKKAIAIQkLIAcgATYCTCAJQQBODAELIAcgCEEBajYCTCAHQcwAahBLIQkgBygCTCEBQQELIRUDQCAGIQ1BHCEQIAEiESwAACIGQfsAa0FGSQ0KIAFBAWohASAGIA1BOmxqQZ/GAGotAAAiBkEBa0EISQ0ACyAHIAE2AkwCQCAGQRtHBEAgBkUNCyAOQQBOBEAgAEUEQCAEIA5BAnRqIAY2AgAMCwsgByADIA5BA3RqKQMANwNADAILIABFDQcgB0FAayAGIAIgBRBKDAELIA5BAE4NCkEAIQYgAEUNBwtBfyEQIAAtAABBIHENCiALQf//e3EiCCALIAtBgMAAcRshC0EAIQ5BigghFiATIQoCQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCARLAAAIgZBX3EgBiAGQQ9xQQNGGyAGIA0bIgZB2ABrDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAZBwQBrDgcOFAsUDg4OAAsgBkHTAEYNCQwTCyAHKQNAIR5BiggMBQtBACEGAkACQAJAAkACQAJAAkAgDUH/AXEOCAABAgMEGgUGGgsgBygCQCASNgIADBkLIAcoAkAgEjYCAAwYCyAHKAJAIBKsNwMADBcLIAcoAkAgEjsBAAwWCyAHKAJAIBI6AAAMFQsgBygCQCASNgIADBQLIAcoAkAgEqw3AwAMEwtBCCAJIAlBCE0bIQkgC0EIciELQfgAIQYLIBMhASAHKQNAIh5CAFIEQCAGQSBxIQgDQCABQQFrIgEgHqdBD3FBsMoAai0AACAIcjoAACAeQg9WIRwgHkIEiCEeIBwNAAsLIAEhDCAHKQNAUA0DIAtBCHFFDQMgBkEEdkGKCGohFkECIQ4MAwsgEyEBIAcpA0AiHkIAUgRAA0AgAUEBayIBIB6nQQdxQTByOgAAIB5CB1YhHSAeQgOIIR4gHQ0ACwsgASEMIAtBCHFFDQIgCSATIAFrIgFBAWogASAJSBshCQwCCyAHKQNAIh5CAFMEQCAHQgAgHn0iHjcDQEEBIQ5BiggMAQsgC0GAEHEEQEEBIQ5BiwgMAQtBjAhBigggC0EBcSIOGwshFiAeIBMQKSEMCyAVIAlBAEhxDQ8gC0H//3txIAsgFRshCwJAIAcpA0AiHkIAUg0AIAkNACATIQxBACEJDAwLIAkgHlAgEyAMa2oiASABIAlIGyEJDAsLAn9B/////wcgCSAJQf////8HTxsiCiIRQQBHIQsCQAJAAkAgBygCQCIBQa8SIAEbIgwiBiINQQNxRQ0AIBFFDQADQCANLQAARQ0CIBFBAWsiEUEARyELIA1BAWoiDUEDcUUNASARDQALCyALRQ0BAkAgDS0AAEUNACARQQRJDQADQCANKAIAIgFBf3MgAUGBgoQIa3FBgIGChHhxDQIgDUEEaiENIBFBBGsiEUEDSw0ACwsgEUUNAQsDQCANIA0tAABFDQIaIA1BAWohDSARQQFrIhENAAsLQQALIgEgBmsgCiABGyIBIAxqIQogCUEATgRAIAghCyABIQkMCwsgCCELIAEhCSAKLQAADQ4MCgsgCQRAIAcoAkAMAgtBACEGIABBICAPQQAgCxAfDAILIAdBADYCDCAHIAcpA0A+AgggByAHQQhqIgY2AkBBfyEJIAYLIQhBACEGAkADQCAIKAIAIgxFDQECQCAHQQRqIAwQSCIKQQBIIgwNACAKIAkgBmtLDQAgCEEEaiEIIAYgCmoiBiAJSQ0BDAILCyAMDQ4LQT0hECAGQQBIDQwgAEEgIA8gBiALEB8gBkUEQEEAIQYMAQtBACEKIAcoAkAhCANAIAgoAgAiDEUNASAHQQRqIgkgDBBIIgwgCmoiCiAGSw0BIAAgCSAMEB0gCEEEaiEIIAYgCksNAAsLIABBICAPIAYgC0GAwABzEB8gDyAGIAYgD0gbIQYMCAsgFSAJQQBIcQ0JQT0hECAAIAcrA0AgDyAJIAsgBhBJIgZBAE4NBwwKCyAHIAcpA0A8ADdBASEJIBkhDCAIIQsMBAsgBi0AASEIIAZBAWohBgwACwALIBIhECAADQcgFEUNAkEBIQYDQCAEIAZBAnRqKAIAIgAEQCADIAZBA3RqIAAgAiAFEEpBASEQIAZBAWoiBkEKRw0BDAkLC0EBIRAgBkEKTw0HA0AgBCAGQQJ0aigCAA0BIAZBAWoiBkEKRw0ACwwHC0EcIRAMBQsgCSAKIAxrIgogCSAKShsiASAOQf////8Hc0oNA0E9IRAgDyABIA5qIgggCCAPSBsiBiAaSg0EIABBICAGIAggCxAfIAAgFiAOEB0gAEEwIAYgCCALQYCABHMQHyAAQTAgASAKQQAQHyAAIAwgChAdIABBICAGIAggC0GAwABzEB8gBygCTCEBDAELCwtBACEQDAILQT0hEAtB6N4AIBA2AgBBfyEQCyAHQdAAaiQAIBALvwIBBX8jAEHQAWsiBCQAIAQgAjYCzAEgBEGgAWoiAkEAQSgQJhogBCAEKALMATYCyAECQEEAIAEgBEHIAWogBEHQAGogAiADEExBAEgEQEF/IQMMAQsgACgCTEEASCEIIAAgACgCACIHQV9xNgIAAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhBSAAIAQ2AiwMAQsgACgCEA0BC0F/IAAQTw0BGgsgACABIARByAFqIARB0ABqIARBoAFqIAMQTAshAiAFBEAgAEEAQQAgACgCJBECABogAEEANgIwIAAgBTYCLCAAQQA2AhwgACgCFCEBIABCADcDECACQX8gARshAgsgACAAKAIAIgAgB0EgcXI2AgBBfyACIABBIHEbIQMgCA0ACyAEQdABaiQAIAMLfgIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQTiEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwIAC/ADAEG8zwBBoQsQFUHUzwBB9wlBAUEAEBRB4M8AQa4JQQFBgH9B/wAQBkH4zwBBpwlBAUGAf0H/ABAGQezPAEGlCUEBQQBB/wEQBkGE0ABBsAhBAkGAgH5B//8BEAZBkNAAQacIQQJBAEH//wMQBkGc0ABBvwhBBEGAgICAeEH/////BxAGQajQAEG2CEEEQQBBfxAGQbTQAEGwCkEEQYCAgIB4Qf////8HEAZBwNAAQacKQQRBAEF/EAZBzNAAQc8IQoCAgICAgICAgH9C////////////ABBUQdjQAEHOCEIAQn8QVEHk0ABByAhBBBAPQfDQAEGGC0EIEA9BoC9BzwoQDkH4L0HVDxAOQcAwQQRBtQoQC0GMMUECQdsKEAtB2DFBBEHqChALQcwtQfwJEBNBgDJBAEGQDxAAQagyQQBB9g8QAEHQMkEBQa4PEABB+DJBAkHdCxAAQaAzQQNB/AsQAEHIM0EEQaQMEABB8DNBBUHBDBAAQZg0QQRBmxAQAEHANEEFQbkQEABBqDJBAEGnDRAAQdAyQQFBhg0QAEH4MkECQekNEABBoDNBA0HHDRAAQcgzQQRB7w4QAEHwM0EFQc0OEABB6DRBCEGsDhAAQZA1QQlBig4QAEG4NUEGQecMEABB4DVBB0HgEBAAC2YBA39B2AAQLUHQAGoiAUGg0gA2AgAgAUHM0gA2AgAgABAqIgJBDWoQHCIDQQA2AgggAyACNgIEIAMgAjYCACABIANBDGogACACQQFqECI2AgQgAUH80gA2AgAgAUGc0wBBGBAWAAvYAwIEfwF8IwBBEGsiBCQAIAQgAjYCCCAEQQA2AgRB9NQALQAAQQFxRQRAQQJBzC5BABAFIQJB9NQAQQE6AABB8NQAIAI2AgALAn9B8NQAKAIAIAEoAgRBigkgBEEEaiAEQQhqEAQiCEQAAAAAAADwQWMgCEQAAAAAAAAAAGZxBEAgCKsMAQtBAAshBSAEKAIEIQIgACAFNgIEIABB1NUANgIAIAIEQCACEAELIwBBIGsiAiQAIAAoAgQiBRACIAIgBTYCECADKAIEIAMtAAsiBSAFwEEASCIHGyIFQQRqEC0iBiAFNgIAIAZBBGogAygCACADIAcbIAUQIhogAiAGNgIYIAJBADYCDEH81AAtAABBAXFFBEBBA0HULkEAEAUhA0H81ABBAToAAEH41AAgAzYCAAtB+NQAKAIAIAEoAgRBlAsgAkEMaiACQRBqEAQaIAIoAgwiAwRAIAMQAQsgAkEgaiQAIAAoAgQiABACIAQgADYCCCAEQQA2AgRB7NQALQAAQQFxRQRAQQJBvC5BABAFIQBB7NQAQQE6AABB6NQAIAA2AgALQejUACgCACABKAIEQZcJIARBBGogBEEIahAEGiAEKAIEIgAEQCAAEAELIARBEGokAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAQC4sEAQJ/QegsQfwsQZgtQQBBqC1BAUGrLUEAQastQQBBmhJBrS1BAhAYQegsQQJBsC1B1C1BA0EEEBdBCBAcIgBBADYCBCAAQQU2AgBBCBAcIgFBADYCBCABQQY2AgBB6CxB6QhBzC1B1C1BByAAQcwtQdgtQQggARAKQQgQHCIAQQA2AgQgAEEJNgIAQQgQHCIBQQA2AgQgAUEKNgIAQegsQY0LQcwtQdQtQQcgAEHMLUHYLUEIIAEQCkEIEBwiAEEANgIEIABBCzYCAEEIEBwiAUEANgIEIAFBDDYCAEHoLEHXCEHMLUHULUEHIABBzC1B2C1BCCABEApBCBAcIgBBADYCBCAAQQ02AgBBCBAcIgFBADYCBCABQQ42AgBB6CxBwglBzC1B1C1BByAAQcwtQdgtQQggARAKQQgQHCIAQQA2AgQgAEEPNgIAQegsQYAIQQdB4C1B/C1BECAAQQBBABAIQQgQHCIAQQA2AgQgAEERNgIAQegsQYwKQQZBkC5BqC5BEiAAQQBBABAIQQgQHCIAQQA2AgQgAEETNgIAQegsQZkKQQJBsC5BuC5BFCAAQQBBABAIQQgQHCIAQQA2AgQgAEEVNgIAQegsQYALQQJBsC5BuC5BFCAAQQBBABAIQQgQHCIAQQA2AgQgAEEWNgIAQegsQcMIQQJBxC5B1C1BFyAAQQBBABAICwcAIAAoAgQLBQBBswkLFgAgAEUEQEEADwsgAEHszQAQIEEARwsaACAAIAEoAgggBRAeBEAgASACIAMgBBA7Cws3ACAAIAEoAgggBRAeBEAgASACIAMgBBA7DwsgACgCCCIAIAEgAiADIAQgBSAAKAIAKAIUEQkAC6cBACAAIAEoAgggBBAeBEACQCABKAIEIAJHDQAgASgCHEEBRg0AIAEgAzYCHAsPCwJAIAAgASgCACAEEB5FDQACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQEgAUEBNgIgDwsgASACNgIUIAEgAzYCICABIAEoAihBAWo2AigCQCABKAIkQQFHDQAgASgCGEECRw0AIAFBAToANgsgAUEENgIsCwuIAgAgACABKAIIIAQQHgRAAkAgASgCBCACRw0AIAEoAhxBAUYNACABIAM2AhwLDwsCQCAAIAEoAgAgBBAeBEACQCACIAEoAhBHBEAgASgCFCACRw0BCyADQQFHDQIgAUEBNgIgDwsgASADNgIgAkAgASgCLEEERg0AIAFBADsBNCAAKAIIIgAgASACIAJBASAEIAAoAgAoAhQRCQAgAS0ANQRAIAFBAzYCLCABLQA0RQ0BDAMLIAFBBDYCLAsgASACNgIUIAEgASgCKEEBajYCKCABKAIkQQFHDQEgASgCGEECRw0BIAFBAToANg8LIAAoAggiACABIAIgAyAEIAAoAgAoAhgRCAALC2kBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAIARBAXEEQCABKAIAIABqKAIAIQALIAMgAjYCDCADQdTVADYCCCABIANBCGogABEAACADKAIMIgAEQCAAEAMLIANBEGokAAuEBQEEfyMAQUBqIgQkAAJAIAFByM8AQQAQHgRAIAJBADYCAEEBIQUMAQsCQCAAIAEgAC0ACEEYcQR/QQEFIAFFDQEgAUG8zQAQICIDRQ0BIAMtAAhBGHFBAEcLEB4hBgsgBgRAQQEhBSACKAIAIgBFDQEgAiAAKAIANgIADAELAkAgAUUNACABQezNABAgIgZFDQEgAigCACIBBEAgAiABKAIANgIACyAGKAIIIgMgACgCCCIBQX9zcUEHcQ0BIANBf3MgAXFB4ABxDQFBASEFIAAoAgwgBigCDEEAEB4NASAAKAIMQbzPAEEAEB4EQCAGKAIMIgBFDQIgAEGgzgAQIEUhBQwCCyAAKAIMIgNFDQBBACEFIANB7M0AECAiAQRAIAAtAAhBAXFFDQICfyAGKAIMIQBBACECAkADQEEAIABFDQIaIABB7M0AECAiA0UNASADKAIIIAEoAghBf3NxDQFBASABKAIMIAMoAgxBABAeDQIaIAEtAAhBAXFFDQEgASgCDCIARQ0BIABB7M0AECAiAQRAIAMoAgwhAAwBCwsgAEHczgAQICIARQ0AIAAgAygCDBA8IQILIAILIQUMAgsgA0HczgAQICIBBEAgAC0ACEEBcUUNAiABIAYoAgwQPCEFDAILIANBjM0AECAiAUUNASAGKAIMIgBFDQEgAEGMzQAQICIARQ0BIARBDGpBAEE0ECYaIARBATYCOCAEQX82AhQgBCABNgIQIAQgADYCCCAAIARBCGogAigCAEEBIAAoAgAoAhwRBgACQCAEKAIgIgBBAUcNACACKAIARQ0AIAIgBCgCGDYCAAsgAEEBRiEFDAELQQAhBQsgBEFAayQAIAULMQAgACABKAIIQQAQHgRAIAEgAiADED0PCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAsYACAAIAEoAghBABAeBEAgASACIAMQPQsLnQEBAn8jAEFAaiIDJAACf0EBIAAgAUEAEB4NABpBACABRQ0AGkEAIAFBjM0AECAiAUUNABogA0EMakEAQTQQJhogA0EBNgI4IANBfzYCFCADIAA2AhAgAyABNgIIIAEgA0EIaiACKAIAQQEgASgCACgCHBEGACADKAIgIgBBAUYEQCACIAMoAhg2AgALIABBAUYLIQQgA0FAayQAIAQLCgAgACABQQAQHgtOAgF/AXwjAEEQayICJAAgAkEANgIMIAEoAgRB1M8AIAJBDGoQCSEDIAIoAgwiAQRAIAEQAQsgACADRAAAAAAAAAAAYjoAOCACQRBqJAALNwEBfyMAQRBrIgIkACACIAEtADg2AgggAEHUzwAgAkEIahAHNgIEIABB1NUANgIAIAJBEGokAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECIaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECIaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC5wBAQJ/IwBBEGsiAiQAQcgAEBwhASAAKAIEIgAQAiACIAA2AgggAUHMLSACQQhqEAc2AgQgAUHU1QA2AgAgAUEBNgIcIAFB1NUANgIYIAFBATYCFCABQdTVADYCECABQQE2AgwgAUHU1QA2AgggAUEAOgAgIAFBADYCRCABQoCAgIAwNwI8IAFBADsANyABQQA7ACsgAkEQaiQAIAELigUCBn4CfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQkgASkDACEDIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBUIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAhSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBUIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIBQZH3AEkNACADIQIgBUL///////8/g0KAgICAgIDAAIQiBCEGAkAgAUGB9wBrIghBwABxBEAgAyAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCAEIAFBQGqtiCEDQgAhBAwBCyABRQ0AIARBwAAgAWuthiADIAGtIgKIhCEDIAQgAoghBAsgACADNwMAIAAgBDcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACAJIAIgBUKAgICAgICAgIB/g4S/OQMAC0ABAn8jAEEQayICJAAgAiABNgIMIAJB1NUANgIIIAJBCGogABEBACEDIAIoAgwiAQRAIAEQAwsgAkEQaiQAIAMLBABCAAsEAEEAC/YCAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQcCfwJAAkACQCAAKAI8IANBEGoiAUECIANBDGoQDSIEBH9B6N4AIAQ2AgBBfwVBAAsEQCABIQQMAQsDQCAFIAMoAgwiBkYNAiAGQQBIBEAgASEEDAQLIAEgBiABKAIEIghLIglBA3RqIgQgBiAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAZrIQUgACgCPCAEIgEgByAJayIHIANBDGoQDSIGBH9B6N4AIAY2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2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EGokAAsiAQF+IAEgAq0gA61CIIaEIAQgABEMACIFQiCIpyQBIAWnCzcBAX8jAEEQayICJAAgAiABKAI8NgIIIABBnNAAIAJBCGoQBzYCBCAAQdTVADYCACACQRBqJAALC/NKFQBBgAgLhCZzZXRCZWF1dHkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweAB1bnNpZ25lZCBzaG9ydAB1bnNpZ25lZCBpbnQAaW5pdABmbG9hdAB1aW50NjRfdABibHVyUmFkaXVzAHZlY3RvcgBtaXJyb3IAYXR0YWNoU2hhZGVyAGRlbGV0ZVNoYWRlcgBjcmVhdGVTaGFkZXIAY29tcGlsZVNoYWRlcgB1bnNpZ25lZCBjaGFyAHN0ZDo6ZXhjZXB0aW9uAHJvdGF0aW9uAG5hbgBsaW5rUHJvZ3JhbQBkZWxldGVQcm9ncmFtAGNyZWF0ZVByb2dyYW0AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAYyA9IHZlYzIoMS4wIC0gYy54LCAxLjAgLSBjLnkpOwBjID0gdmVjMihjLnksIDEuMCAtIGMueCk7AGMgPSB2ZWMyKDEuMCAtIGMueSwgYy54KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KABvdXRDb2xvci5yZ2IgKz0gdmVjMygAKTsgICAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgICAgc21vb3RoQ29sb3IgPSBtYXgoc21vb3RoQ29sb3IsIHZlYzMoMC4wKSk7ICAgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKABnKz1HKGMsdmVjMigAICAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgICAgdmVjMyBzY3JlZW4gPSB2ZWMzKDEuMCkgLSAodmVjMygxLjApLXNtb290aENvbG9yKSAqICh2ZWMzKDEuMCktb3V0Q29sb3IucmdiKTsgICAgICAgdmVjMyBsaWdodGVuID0gbWF4KHNtb290aENvbG9yLCBvdXRDb2xvci5yZ2IpOyAgICAgICB2ZWMzIGJlYXV0eUNvbG9yID0gbWl4KG1peChvdXRDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSk7ICAgICAgb3V0Q29sb3IucmdiID0gbWl4KG91dENvbG9yLnJnYiwgYmVhdXR5Q29sb3IsIAAKICAgICAgY29uc3QgbWF0MyBzYXR1cmF0ZU1hdHJpeCA9IG1hdDMoMS4xMTAyLC0wLjA1OTgsLTAuMDYxLC0wLjA3NzQsMS4wODI2LC0wLjExODYsLTAuMDIyOCwtMC4wMjI4LDEuMTc3Mik7CiAgICAgIHZlYzMgd2FybUNvbG9yID0gb3V0Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7CiAgICAgIG91dENvbG9yLnJnYiA9IG1peChvdXRDb2xvci5yZ2IsIHdhcm1Db2xvciwgACAgICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgICBmbG9hdCBoaWdoUGFzcyA9IG91dENvbG9yLmcgLSBzYW1wbGVDb2xvciArIDAuNTsgICAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgICAgZmxvYXQgbHVtaW5hbmNlID0gZG90KG91dENvbG9yLnJnYiwgVyk7ICAgICAgIGZsb2F0IGFscGhhID0gcG93KGx1bWluYW5jZSwgAF0pLmcgKiAAKSkpOyAgICAgIG91dENvbG9yID0gbWl4KG91dENvbG9yLHdhdGVyQ29sb3IsICB3YXRlckNvbG9yLmEpOyAgICB9ICAgIAApOyAgICAAKTsgICAgICB2ZWMyIGJsdXJDb29yZGluYXRlc1syNF07ICAgICAgACAgICAgIGZsb2F0IHNhbXBsZUNvbG9yID0gb3V0Q29sb3IuZyAqIDIyLjA7ICAgICAgIAAjdmVyc2lvbiAzMDAgZXMKICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGZyYW1lOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbWFzazsKICAgIHVuaWZvcm0gc2FtcGxlcjJEIGJnOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgd2F0ZXJNYXJrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgbGFzdE1hc2s7CiAgICB1bmlmb3JtIG1hdDQgdV9vZmZzZXRNYXRyaXg7CiAgICB1bmlmb3JtIHZlYzMgdV9jb2xvcjsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5yPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgICAgdmVjMiBvZmZzZXRNYXNrVVYgPSAodV9vZmZzZXRNYXRyaXggKiB2ZWM0KGMsIDAsIDEpKS54eTsKICAgICAgZmxvYXQgaXNJbnNpZGVYID0gKG9mZnNldE1hc2tVVi54ID49IDAuMCkgJiYgKG9mZnNldE1hc2tVVi54IDw9IDEuMCkgPyAxLjAgOiAwLjA7CiAgICAgIGZsb2F0IGlzSW5zaWRlWSA9IChvZmZzZXRNYXNrVVYueSA+PSAwLjApICYmIChvZmZzZXRNYXNrVVYueSA8PSAxLjApID8gMS4wIDogMC4wOwogICAgICBmbG9hdCBpc0luc2lkZSA9IGlzSW5zaWRlWCAqIGlzSW5zaWRlWTsKICAgICAgZmxvYXQgbWFza2VkQWxwaGEgPSB0ZXh0dXJlKG1hc2ssIG9mZnNldE1hc2tVVikuciAqIGlzSW5zaWRlOwogICAgICBtYXNrZWRBbHBoYSA9IG1hc2tlZEFscGhhPDAuNT8yLjAqbWFza2VkQWxwaGEqbWFza2VkQWxwaGE6MS4wLTIuMCooMS4wLW1hc2tlZEFscGhhKSooMS4wLW1hc2tlZEFscGhhKTsKICAgICAgc3JjX2NvbG9yID0gdGV4dHVyZShmcmFtZSwgb2Zmc2V0TWFza1VWICwgaXNJbnNpZGUpOwogICAgICBvdXRDb2xvciA9IG1peCh0ZXh0dXJlKGJnLCBjKSwgc3JjX2NvbG9yLCBtYXNrZWRBbHBoYSk7CiAgICAACiAgICB2ZWM0IGcgPSB2ZWM0KDAuMCk7CiAgICAACiAgICAgIGMueSA9IDEuMCAtIGMueTsKICAgICAgdmVjNCBzcmNfY29sb3IgPSB0ZXh0dXJlKGZyYW1lLCBjKTsKICAgICAgZmxvYXQgYSA9IHRleHR1cmUobWFzaywgYykucjsKICAgICAgYSA9IGE8MC41PzIuMCphKmE6MS4wLTIuMCooMS4wLWEpKigxLjAtYSk7CiAgICAgIC8vIGZsb2F0IGEyID0gdGV4dHVyZShsYXN0TWFzaywgYykuYTsKICAgICAgLy8gYTIgPSBhMjwwLjU/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQodV9jb2xvciwxLjApLHNyY19jb2xvcixhKTsKADZBbGxJbjEAAIAoAABfFgAAUDZBbGxJbjEAAAAABCkAAHAWAAAAAAAAaBYAAFBLNkFsbEluMQAAAAQpAACMFgAAAQAAAGgWAABpaQB2AHZpAHwWAADMFgAATjEwZW1zY3JpcHRlbjN2YWxFAACAKAAAuBYAAGlpaQB2aWlpAAAAALwnAAB8FgAAcCgAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkZABBkC4LyAi8JwAAfBYAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkALwnAAB8FgAAdmlpALwnAADMFgAAzBYAAHwWAADMFgAAHCgAALwnAADMFgAAoBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACAKAAAYBcAAMwWAAC8JwAAzBYAAMwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAgCgAALgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAgCgAAAAYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAIAoAABIGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFj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")||(Dt=$e,$e=g.locateFile?g.locateFile(Dt,Q):Q+Dt);var Ki=P=>{for(;P.length>0;)P.shift()(g)};g.noExitRuntime;function Ur(P){this.excPtr=P,this.ptr=P-24,this.set_type=function(F){QA[this.ptr+4>>2]=F},this.get_type=function(){return QA[this.ptr+4>>2]},this.set_destructor=function(F){QA[this.ptr+8>>2]=F},this.get_destructor=function(){return QA[this.ptr+8>>2]},this.set_caught=function(F){F=F?1:0,AA[this.ptr+12|0]=F},this.get_caught=function(){return AA[this.ptr+12|0]!=0},this.set_rethrown=function(F){F=F?1:0,AA[this.ptr+13|0]=F},this.get_rethrown=function(){return AA[this.ptr+13|0]!=0},this.init=function(F,EA){this.set_adjusted_ptr(0),this.set_type(F),this.set_destructor(EA)},this.set_adjusted_ptr=function(F){QA[this.ptr+16>>2]=F},this.get_adjusted_ptr=function(){return QA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Cs(this.get_type()))return QA[this.excPtr>>2];var F=this.get_adjusted_ptr();return F!==0?F:this.excPtr}}var Er,no,Kn,Xi=P=>{for(var F="",EA=P;z[EA];)F+=Er[z[EA++]];return F},yr={},lr={},Ni={},wt=P=>{throw new no(P)},Ji=P=>{throw new Kn(P)},Di=(P,F,EA)=>{function RA(ge){var we=EA(ge);we.length!==P.length&&Ji("Mismatched type converter count");for(var _e=0;_e<P.length;++_e)ar(P[_e],we[_e])}P.forEach(function(ge){Ni[ge]=F});var GA=new Array(F.length),WA=[],Ce=0;F.forEach((ge,we)=>{lr.hasOwnProperty(ge)?GA[we]=lr[ge]:(WA.push(ge),yr.hasOwnProperty(ge)||(yr[ge]=[]),yr[ge].push(()=>{GA[we]=lr[ge],++Ce===WA.length&&RA(GA)}))}),WA.length===0&&RA(GA)};function ar(P,F,EA={}){if(!("argPackAdvance"in F))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(RA,GA,WA={}){var Ce=GA.name;if(RA||wt(`type "${Ce}" must have a positive integer typeid pointer`),lr.hasOwnProperty(RA)){if(WA.ignoreDuplicateRegistrations)return;wt(`Cannot register type '${Ce}' twice`)}if(lr[RA]=GA,delete Ni[RA],yr.hasOwnProperty(RA)){var ge=yr[RA];delete yr[RA],ge.forEach(we=>we())}}(P,F,EA)}var MA,YA=P=>{wt(P.$$.ptrType.registeredClass.name+" instance already deleted")},pe=!1,st=P=>{},Te=P=>{P.count.value-=1,P.count.value===0&&(F=>{F.smartPtr?F.smartPtrType.rawDestructor(F.smartPtr):F.ptrType.registeredClass.rawDestructor(F.ptr)})(P)},be=(P,F,EA)=>{if(F===EA)return P;if(EA.baseClass===void 0)return null;var RA=be(P,F,EA.baseClass);return RA===null?null:EA.downcast(RA)},yt={},ht=()=>Object.keys(zt).length,ae=()=>{var P=[];for(var F in zt)zt.hasOwnProperty(F)&&P.push(zt[F]);return P},ye=[],Xe=()=>{for(;ye.length;){var P=ye.pop();P.$$.deleteScheduled=!1,P.delete()}},ot=P=>{MA=P,ye.length&&MA&&MA(Xe)},zt={},yi=(P,F)=>(F=((EA,RA)=>{for(RA===void 0&&wt("ptr should not be undefined");EA.baseClass;)RA=EA.upcast(RA),EA=EA.baseClass;return RA})(P,F),zt[F]),Hi=(P,F)=>(F.ptrType&&F.ptr||Ji("makeClassHandle requires ptr and ptrType"),!!F.smartPtrType!=!!F.smartPtr&&Ji("Both smartPtrType and smartPtr must be specified"),F.count={value:1},ji(Object.create(P,{$$:{value:F}})));function Ei(P){var F=this.getPointee(P);if(!F)return this.destructor(P),null;var EA=yi(this.registeredClass,F);if(EA!==void 0){if(EA.$$.count.value===0)return EA.$$.ptr=F,EA.$$.smartPtr=P,EA.clone();var RA=EA.clone();return this.destructor(P),RA}function GA(){return this.isSmartPointer?Hi(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:F,smartPtrType:this,smartPtr:P}):Hi(this.registeredClass.instancePrototype,{ptrType:this,ptr:P})}var WA,Ce=this.registeredClass.getActualType(F),ge=yt[Ce];if(!ge)return GA.call(this);WA=this.isConst?ge.constPointerType:ge.pointerType;var we=be(F,this.registeredClass,WA.registeredClass);return we===null?GA.call(this):this.isSmartPointer?Hi(WA.registeredClass.instancePrototype,{ptrType:WA,ptr:we,smartPtrType:this,smartPtr:P}):Hi(WA.registeredClass.instancePrototype,{ptrType:WA,ptr:we})}var ji=P=>typeof FinalizationRegistry>"u"?(ji=F=>F,P):(pe=new FinalizationRegistry(F=>{Te(F.$$)}),st=F=>pe.unregister(F),(ji=F=>{var EA=F.$$;if(EA.smartPtr){var RA={$$:EA};pe.register(F,RA,F)}return F})(P));function Xo(){}var sr=(P,F)=>Object.defineProperty(F,"name",{value:P}),Lo=(P,F,EA)=>{if(P[F].overloadTable===void 0){var RA=P[F];P[F]=function(){return P[F].overloadTable.hasOwnProperty(arguments.length)||wt(`Function '${EA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${P[F].overloadTable})!`),P[F].overloadTable[arguments.length].apply(this,arguments)},P[F].overloadTable=[],P[F].overloadTable[RA.argCount]=RA}};function Nr(P,F,EA,RA,GA,WA,Ce,ge){this.name=P,this.constructor=F,this.instancePrototype=EA,this.rawDestructor=RA,this.baseClass=GA,this.getActualType=WA,this.upcast=Ce,this.downcast=ge,this.pureVirtualFunctions=[]}var Vo=(P,F,EA)=>{for(;F!==EA;)F.upcast||wt(`Expected null or instance of ${EA.name}, got an instance of ${F.name}`),P=F.upcast(P),F=F.baseClass;return P};function et(P,F){if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`);var EA=F.$$.ptrType.registeredClass;return Vo(F.$$.ptr,EA,this.registeredClass)}function Kr(P,F){var EA;if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),this.isSmartPointer?(EA=this.rawConstructor(),P!==null&&P.push(this.rawDestructor,EA),EA):0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&F.$$.ptrType.isConst&&wt(`Cannot convert argument of type ${F.$$.smartPtrType?F.$$.smartPtrType.name:F.$$.ptrType.name} to parameter type ${this.name}`);var RA=F.$$.ptrType.registeredClass;if(EA=Vo(F.$$.ptr,RA,this.registeredClass),this.isSmartPointer)switch(F.$$.smartPtr===void 0&&wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:F.$$.smartPtrType===this?EA=F.$$.smartPtr:wt(`Cannot convert argument of type ${F.$$.smartPtrType?F.$$.smartPtrType.name:F.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:EA=F.$$.smartPtr;break;case 2:if(F.$$.smartPtrType===this)EA=F.$$.smartPtr;else{var GA=F.clone();EA=this.rawShare(EA,gr.toHandle(()=>GA.delete())),P!==null&&P.push(this.rawDestructor,EA)}break;default:wt("Unsupporting sharing policy")}return EA}function Qn(P,F){if(F===null)return this.isReference&&wt(`null is not a valid ${this.name}`),0;F.$$||wt(`Cannot pass "${ao(F)}" as a ${this.name}`),F.$$.ptr||wt(`Cannot pass deleted object as a pointer of type ${this.name}`),F.$$.ptrType.isConst&&wt(`Cannot convert argument of type ${F.$$.ptrType.name} to parameter type ${this.name}`);var EA=F.$$.ptrType.registeredClass;return Vo(F.$$.ptr,EA,this.registeredClass)}function ho(P){return this.fromWireType(QA[P>>2])}function jn(P,F,EA,RA,GA,WA,Ce,ge,we,_e,Ke){this.name=P,this.registeredClass=F,this.isReference=EA,this.isConst=RA,this.isSmartPointer=GA,this.pointeeType=WA,this.sharingPolicy=Ce,this.rawGetPointee=ge,this.rawConstructor=we,this.rawShare=_e,this.rawDestructor=Ke,GA||F.baseClass!==void 0?this.toWireType=Kr:RA?(this.toWireType=et,this.destructorFunction=null):(this.toWireType=Qn,this.destructorFunction=null)}var $t,$r,On=[],An=P=>{var F=On[P];return F||(P>=On.length&&(On.length=P+1),On[P]=F=$t.get(P)),F},Tr=(P,F,EA)=>P.includes("j")?((RA,GA,WA)=>{var Ce=g["dynCall_"+RA];return WA&&WA.length?Ce.apply(null,[GA].concat(WA)):Ce.call(null,GA)})(P,F,EA):An(F).apply(null,EA),ei=(P,F)=>{var EA,RA,GA,WA=(P=Xi(P)).includes("j")?(EA=P,RA=F,GA=[],function(){return GA.length=0,Object.assign(GA,arguments),Tr(EA,RA,GA)}):An(F);return typeof WA!="function"&&wt(`unknown function pointer with signature ${P}: ${F}`),WA},Es=P=>{var F=Ba(P),EA=Xi(F);return Mr(F),EA},jr=(P,F)=>{var EA=[],RA={};throw F.forEach(function GA(WA){RA[WA]||lr[WA]||(Ni[WA]?Ni[WA].forEach(GA):(EA.push(WA),RA[WA]=!0))}),new $r(`${P}: `+EA.map(Es).join([", "]))},Gr=(P,F)=>{for(var EA=[],RA=0;RA<P;RA++)EA.push(QA[F+4*RA>>2]);return EA},$o=P=>{for(;P.length;){var F=P.pop();P.pop()(F)}};function sn(P,F,EA,RA,GA,WA){var Ce=F.length;Ce<2&&wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var ge=F[1]!==null&&EA!==null,we=!1,_e=1;_e<F.length;++_e)if(F[_e]!==null&&F[_e].destructorFunction===void 0){we=!0;break}var Ke=F[0].name!=="void",Bt=Ce-2,Rt=new Array(Bt),Ye=[],nt=[];return sr(P,function(){var ii;arguments.length!==Bt&&wt(`function ${P} called with ${arguments.length} arguments, expected ${Bt}`),nt.length=0,Ye.length=ge?2:1,Ye[0]=GA,ge&&(ii=F[1].toWireType(nt,this),Ye[1]=ii);for(var oi=0;oi<Bt;++oi)Rt[oi]=F[oi+2].toWireType(nt,arguments[oi]),Ye.push(Rt[oi]);return function(Ko){if(we)$o(nt);else for(var Kt=ge?1:2;Kt<F.length;Kt++){var ro=Kt===1?ii:Rt[Kt-2];F[Kt].destructorFunction!==null&&F[Kt].destructorFunction(ro)}if(Ke)return F[0].fromWireType(Ko)}(RA.apply(null,Ye))})}var dn=(P,F,EA)=>(P instanceof Object||wt(`${EA} with invalid "this": ${P}`),P instanceof F.registeredClass.constructor||wt(`${EA} incompatible with "this" of type ${P.constructor.name}`),P.$$.ptr||wt(`cannot call emscripten binding method ${EA} on deleted object`),Vo(P.$$.ptr,P.$$.ptrType.registeredClass,F.registeredClass));function hn(){this.allocated=[void 0],this.freelist=[]}var Gi=new hn,pn=P=>{P>=Gi.reserved&&--Gi.get(P).refcount===0&&Gi.free(P)},nI=()=>{for(var P=0,F=Gi.reserved;F<Gi.allocated.length;++F)Gi.allocated[F]!==void 0&&++P;return P},gr={toValue:P=>(P||wt("Cannot use deleted val. handle = "+P),Gi.get(P).value),toHandle:P=>{switch(P){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Gi.allocate({refcount:1,value:P})}}};function gn(P){return this.fromWireType(X[P>>2])}var Yo,Tg,So,ao=P=>{if(P===null)return"null";var F=typeof P;return F==="object"||F==="array"||F==="function"?P.toString():""+P},EE=(P,F)=>{switch(F){case 4:return function(EA){return this.fromWireType(wA[EA>>2])};case 8:return function(EA){return this.fromWireType(HA[EA>>3])};default:throw new TypeError(`invalid float width (${F}): ${P}`)}},Ta=(P,F,EA)=>{switch(F){case 1:return EA?RA=>AA[RA|0]:RA=>z[RA|0];case 2:return EA?RA=>sA[RA>>1]:RA=>eA[RA>>1];case 4:return EA?RA=>X[RA>>2]:RA=>QA[RA>>2];default:throw new TypeError(`invalid integer width (${F}): ${P}`)}},po=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,Ja=(P,F,EA)=>{for(var RA=F+EA,GA=F;P[GA]&&!(GA>=RA);)++GA;if(GA-F>16&&P.buffer&&po)return po.decode(P.subarray(F,GA));for(var WA="";F<GA;){var Ce=P[F++];if(128&Ce){var ge=63&P[F++];if((224&Ce)!=192){var we=63&P[F++];if((Ce=(240&Ce)==224?(15&Ce)<<12|ge<<6|we:(7&Ce)<<18|ge<<12|we<<6|63&P[F++])<65536)WA+=String.fromCharCode(Ce);else{var _e=Ce-65536;WA+=String.fromCharCode(55296|_e>>10,56320|1023&_e)}}else WA+=String.fromCharCode((31&Ce)<<6|ge)}else WA+=String.fromCharCode(Ce)}return WA},Mc=(P,F)=>P?Ja(z,P,F):"",Qr=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Fo=(P,F)=>{for(var EA=P,RA=EA>>1,GA=RA+F/2;!(RA>=GA)&&eA[RA];)++RA;if((EA=RA<<1)-P>32&&Qr)return Qr.decode(z.subarray(P,EA));for(var WA="",Ce=0;!(Ce>=F/2);++Ce){var ge=sA[P+2*Ce>>1];if(ge==0)break;WA+=String.fromCharCode(ge)}return WA},$s=(P,F,EA)=>{if(EA===void 0&&(EA=2147483647),EA<2)return 0;for(var RA=F,GA=(EA-=2)<2*P.length?EA/2:P.length,WA=0;WA<GA;++WA){var Ce=P.charCodeAt(WA);sA[F>>1]=Ce,F+=2}return sA[F>>1]=0,F-RA},Ha=P=>2*P.length,Gs=(P,F)=>{for(var EA=0,RA="";!(EA>=F/4);){var GA=X[P+4*EA>>2];if(GA==0)break;if(++EA,GA>=65536){var WA=GA-65536;RA+=String.fromCharCode(55296|WA>>10,56320|1023&WA)}else RA+=String.fromCharCode(GA)}return RA},Ga=(P,F,EA)=>{if(EA===void 0&&(EA=2147483647),EA<4)return 0;for(var RA=F,GA=RA+EA-4,WA=0;WA<P.length;++WA){var Ce=P.charCodeAt(WA);if(Ce>=55296&&Ce<=57343&&(Ce=65536+((1023&Ce)<<10)|1023&P.charCodeAt(++WA)),X[F>>2]=Ce,(F+=4)+4>GA)break}return X[F>>2]=0,F-RA},Rr=P=>{for(var F=0,EA=0;EA<P.length;++EA){var RA=P.charCodeAt(EA);RA>=55296&&RA<=57343&&++EA,F+=4}return F},Ia=(P,F)=>{var EA=lr[P];return EA===void 0&&wt(F+" has unknown type "+Es(P)),EA},fo=(P,F,EA)=>{var RA=[],GA=P.toWireType(RA,EA);return RA.length&&(QA[F>>2]=gr.toHandle(RA)),GA},aI={},en=[],qo=Reflect.construct,Gg=[null,[],[]],kg=(P,F)=>{var EA=Gg[P];F===0||F===10?((P===1?M:v)(Ja(EA,0)),EA.length=0):EA.push(F)};(()=>{for(var P=new Array(256),F=0;F<256;++F)P[F]=String.fromCharCode(F);Er=P})(),no=g.BindingError=class extends Error{constructor(P){super(P),this.name="BindingError"}},Kn=g.InternalError=class extends Error{constructor(P){super(P),this.name="InternalError"}},Object.assign(Xo.prototype,{isAliasOf(P){if(!(this instanceof Xo)||!(P instanceof Xo))return!1;var F=this.$$.ptrType.registeredClass,EA=this.$$.ptr;P.$$=P.$$;for(var RA=P.$$.ptrType.registeredClass,GA=P.$$.ptr;F.baseClass;)EA=F.upcast(EA),F=F.baseClass;for(;RA.baseClass;)GA=RA.upcast(GA),RA=RA.baseClass;return F===RA&&EA===GA},clone(){if(this.$$.ptr||YA(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var P,F=ji(Object.create(Object.getPrototypeOf(this),{$$:{value:(P=this.$$,{count:P.count,deleteScheduled:P.deleteScheduled,preservePointerOnDelete:P.preservePointerOnDelete,ptr:P.ptr,ptrType:P.ptrType,smartPtr:P.smartPtr,smartPtrType:P.smartPtrType})}}));return F.$$.count.value+=1,F.$$.deleteScheduled=!1,F},delete(){this.$$.ptr||YA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),st(this),Te(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||YA(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&wt("Object already scheduled for deletion"),ye.push(this),ye.length===1&&MA&&MA(Xe),this.$$.deleteScheduled=!0,this}}),g.getInheritedInstanceCount=ht,g.getLiveInheritedInstances=ae,g.flushPendingDeletes=Xe,g.setDelayFunction=ot,Object.assign(jn.prototype,{getPointee(P){return this.rawGetPointee&&(P=this.rawGetPointee(P)),P},destructor(P){this.rawDestructor&&this.rawDestructor(P)},argPackAdvance:8,readValueFromPointer:ho,deleteObject(P){P!==null&&P.delete()},fromWireType:Ei}),$r=g.UnboundTypeError=(Yo=Error,(So=sr(Tg="UnboundTypeError",function(P){this.name=Tg,this.message=P;var F=new Error(P).stack;F!==void 0&&(this.stack=this.toString()+`
`+F.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Yo.prototype),So.prototype.constructor=So,So.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},So),Object.assign(hn.prototype,{get(P){return this.allocated[P]},has(P){return this.allocated[P]!==void 0},allocate(P){var F=this.freelist.pop()||this.allocated.length;return this.allocated[F]=P,F},free(P){this.allocated[P]=void 0,this.freelist.push(P)}}),Gi.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Gi.reserved=Gi.allocated.length,g.count_emval_handles=nI;var fn,ls={w:(P,F,EA)=>{throw new Ur(P).init(F,EA),P},q:(P,F,EA,RA,GA)=>{},u:(P,F,EA,RA)=>{ar(P,{name:F=Xi(F),fromWireType:function(GA){return!!GA},toWireType:function(GA,WA){return WA?EA:RA},argPackAdvance:8,readValueFromPointer:function(GA){return this.fromWireType(z[GA])},destructorFunction:null})},y:(P,F,EA,RA,GA,WA,Ce,ge,we,_e,Ke,Bt,Rt)=>{Ke=Xi(Ke),WA=ei(GA,WA),ge&&(ge=ei(Ce,ge)),_e&&(_e=ei(we,_e)),Rt=ei(Bt,Rt);var Ye=(nt=>{if(nt===void 0)return"_unknown";var ii=(nt=nt.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return ii>=48&&ii<=57?`_${nt}`:nt})(Ke);((nt,ii,oi)=>{g.hasOwnProperty(nt)?(wt(`Cannot register public name '${nt}' twice`),Lo(g,nt,nt),g.hasOwnProperty(oi)&&wt(`Cannot register multiple overloads of a function with the same number of arguments (${oi})!`),g[nt].overloadTable[oi]=ii):g[nt]=ii})(Ye,function(){jr(`Cannot construct ${Ke} due to unbound types`,[RA])}),Di([P,F,EA],RA?[RA]:[],function(nt){var ii,oi;nt=nt[0],oi=RA?(ii=nt.registeredClass).instancePrototype:Xo.prototype;var Ko=sr(Ke,function(){if(Object.getPrototypeOf(this)!==Kt)throw new no("Use 'new' to construct "+Ke);if(ro.constructor_body===void 0)throw new no(Ke+" has no accessible constructor");var xr=ro.constructor_body[arguments.length];if(xr===void 0)throw new no(`Tried to invoke ctor of ${Ke} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(ro.constructor_body).toString()}) parameters instead!`);return xr.apply(this,arguments)}),Kt=Object.create(oi,{constructor:{value:Ko}});Ko.prototype=Kt;var ro=new Nr(Ke,Ko,Kt,Rt,ii,WA,ge,_e);ro.baseClass&&(ro.baseClass.__derivedClasses===void 0&&(ro.baseClass.__derivedClasses=[]),ro.baseClass.__derivedClasses.push(ro));var ks=new jn(Ke,ro,!0,!1,!1),Zr=new jn(Ke+"*",ro,!1,!1,!1),In=new jn(Ke+" const*",ro,!1,!0,!1);return yt[P]={pointerType:Zr,constPointerType:In},((xr,sI,jo)=>{g.hasOwnProperty(xr)||Ji("Replacing nonexistant public symbol"),g[xr].overloadTable!==void 0&&jo!==void 0?g[xr].overloadTable[jo]=sI:(g[xr]=sI,g[xr].argCount=jo)})(Ye,Ko),[ks,Zr,In]})},x:(P,F,EA,RA,GA,WA)=>{var Ce=Gr(F,EA);GA=ei(RA,GA),Di([],[P],function(ge){var we=`constructor ${(ge=ge[0]).name}`;if(ge.registeredClass.constructor_body===void 0&&(ge.registeredClass.constructor_body=[]),ge.registeredClass.constructor_body[F-1]!==void 0)throw new no(`Cannot register multiple constructors with identical number of parameters (${F-1}) for class '${ge.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return ge.registeredClass.constructor_body[F-1]=()=>{jr(`Cannot construct ${ge.name} due to unbound types`,Ce)},Di([],Ce,_e=>(_e.splice(1,0,null),ge.registeredClass.constructor_body[F-1]=sn(we,_e,null,GA,WA),[])),[]})},i:(P,F,EA,RA,GA,WA,Ce,ge,we)=>{var _e=Gr(EA,RA);F=(Ke=>{const Bt=(Ke=Ke.trim()).indexOf("(");return Bt!==-1?Ke.substr(0,Bt):Ke})(F=Xi(F)),WA=ei(GA,WA),Di([],[P],function(Ke){var Bt=`${(Ke=Ke[0]).name}.${F}`;function Rt(){jr(`Cannot call ${Bt} due to unbound types`,_e)}F.startsWith("@@")&&(F=Symbol[F.substring(2)]),ge&&Ke.registeredClass.pureVirtualFunctions.push(F);var Ye=Ke.registeredClass.instancePrototype,nt=Ye[F];return nt===void 0||nt.overloadTable===void 0&&nt.className!==Ke.name&&nt.argCount===EA-2?(Rt.argCount=EA-2,Rt.className=Ke.name,Ye[F]=Rt):(Lo(Ye,F,Bt),Ye[F].overloadTable[EA-2]=Rt),Di([],_e,function(ii){var oi=sn(Bt,ii,Ke,WA,Ce);return Ye[F].overloadTable===void 0?(oi.argCount=EA-2,Ye[F]=oi):Ye[F].overloadTable[EA-2]=oi,[]}),[]})},k:(P,F,EA,RA,GA,WA,Ce,ge,we,_e)=>{F=Xi(F),GA=ei(RA,GA),Di([],[P],function(Ke){var Bt=`${(Ke=Ke[0]).name}.${F}`,Rt={get(){jr(`Cannot access ${Bt} due to unbound types`,[EA,Ce])},enumerable:!0,configurable:!0};return Rt.set=we?()=>jr(`Cannot access ${Bt} due to unbound types`,[EA,Ce]):Ye=>wt(Bt+" is a read-only property"),Object.defineProperty(Ke.registeredClass.instancePrototype,F,Rt),Di([],we?[EA,Ce]:[EA],function(Ye){var nt=Ye[0],ii={get(){var Ko=dn(this,Ke,Bt+" getter");return nt.fromWireType(GA(WA,Ko))},enumerable:!0};if(we){we=ei(ge,we);var oi=Ye[1];ii.set=function(Ko){var Kt=dn(this,Ke,Bt+" setter"),ro=[];we(_e,Kt,oi.toWireType(ro,Ko)),$o(ro)}}return Object.defineProperty(Ke.registeredClass.instancePrototype,F,ii),[]}),[]})},t:(P,F)=>{ar(P,{name:F=Xi(F),fromWireType:EA=>{var RA=gr.toValue(EA);return pn(EA),RA},toWireType:(EA,RA)=>gr.toHandle(RA),argPackAdvance:8,readValueFromPointer:gn,destructorFunction:null})},p:(P,F,EA)=>{ar(P,{name:F=Xi(F),fromWireType:RA=>RA,toWireType:(RA,GA)=>GA,argPackAdvance:8,readValueFromPointer:EE(F,EA),destructorFunction:null})},g:(P,F,EA,RA,GA)=>{F=Xi(F);var WA=we=>we;if(RA===0){var Ce=32-8*EA;WA=we=>we<<Ce>>>Ce}var ge=F.includes("unsigned");ar(P,{name:F,fromWireType:WA,toWireType:ge?function(we,_e){return this.name,_e>>>0}:function(we,_e){return this.name,_e},argPackAdvance:8,readValueFromPointer:Ta(F,EA,RA!==0),destructorFunction:null})},a:(P,F,EA)=>{var RA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][F];function GA(WA){var Ce=QA[WA>>2],ge=QA[WA+4>>2];return new RA(AA.buffer,ge,Ce)}ar(P,{name:EA=Xi(EA),fromWireType:GA,argPackAdvance:8,readValueFromPointer:GA},{ignoreDuplicateRegistrations:!0})},o:(P,F)=>{var EA=(F=Xi(F))==="std::string";ar(P,{name:F,fromWireType(RA){var GA,WA=QA[RA>>2],Ce=RA+4;if(EA)for(var ge=Ce,we=0;we<=WA;++we){var _e=Ce+we;if(we==WA||z[_e]==0){var Ke=Mc(ge,_e-ge);GA===void 0?GA=Ke:(GA+="\0",GA+=Ke),ge=_e+1}}else{var Bt=new Array(WA);for(we=0;we<WA;++we)Bt[we]=String.fromCharCode(z[Ce+we]);GA=Bt.join("")}return Mr(RA),GA},toWireType(RA,GA){var WA;GA instanceof ArrayBuffer&&(GA=new Uint8Array(GA));var Ce=typeof GA=="string";Ce||GA instanceof Uint8Array||GA instanceof Uint8ClampedArray||GA instanceof Int8Array||wt("Cannot pass non-string to std::string"),WA=EA&&Ce?(Bt=>{for(var Rt=0,Ye=0;Ye<Bt.length;++Ye){var nt=Bt.charCodeAt(Ye);nt<=127?Rt++:nt<=2047?Rt+=2:nt>=55296&&nt<=57343?(Rt+=4,++Ye):Rt+=3}return Rt})(GA):GA.length;var ge=Po(4+WA+1),we=ge+4;if(QA[ge>>2]=WA,EA&&Ce)((Bt,Rt,Ye,nt)=>{if(!(nt>0))return 0;for(var ii=Ye,oi=Ye+nt-1,Ko=0;Ko<Bt.length;++Ko){var Kt=Bt.charCodeAt(Ko);if(Kt>=55296&&Kt<=57343&&(Kt=65536+((1023&Kt)<<10)|1023&Bt.charCodeAt(++Ko)),Kt<=127){if(Ye>=oi)break;Rt[Ye++]=Kt}else if(Kt<=2047){if(Ye+1>=oi)break;Rt[Ye++]=192|Kt>>6,Rt[Ye++]=128|63&Kt}else if(Kt<=65535){if(Ye+2>=oi)break;Rt[Ye++]=224|Kt>>12,Rt[Ye++]=128|Kt>>6&63,Rt[Ye++]=128|63&Kt}else{if(Ye+3>=oi)break;Rt[Ye++]=240|Kt>>18,Rt[Ye++]=128|Kt>>12&63,Rt[Ye++]=128|Kt>>6&63,Rt[Ye++]=128|63&Kt}}Rt[Ye]=0})(GA,z,we,WA+1);else if(Ce)for(var _e=0;_e<WA;++_e){var Ke=GA.charCodeAt(_e);Ke>255&&(Mr(we),wt("String has UTF-16 code units that do not fit in 8 bits")),z[we+_e]=Ke}else for(_e=0;_e<WA;++_e)z[we+_e]=GA[_e];return RA!==null&&RA.push(Mr,ge),ge},argPackAdvance:8,readValueFromPointer:ho,destructorFunction(RA){Mr(RA)}})},l:(P,F,EA)=>{var RA,GA,WA,Ce,ge;EA=Xi(EA),F===2?(RA=Fo,GA=$s,Ce=Ha,WA=()=>eA,ge=1):F===4&&(RA=Gs,GA=Ga,Ce=Rr,WA=()=>QA,ge=2),ar(P,{name:EA,fromWireType:we=>{for(var _e,Ke=QA[we>>2],Bt=WA(),Rt=we+4,Ye=0;Ye<=Ke;++Ye){var nt=we+4+Ye*F;if(Ye==Ke||Bt[nt>>ge]==0){var ii=RA(Rt,nt-Rt);_e===void 0?_e=ii:(_e+="\0",_e+=ii),Rt=nt+F}}return Mr(we),_e},toWireType:(we,_e)=>{typeof _e!="string"&&wt(`Cannot pass non-string to C++ string type ${EA}`);var Ke=Ce(_e),Bt=Po(4+Ke+F);return QA[Bt>>2]=Ke>>ge,GA(_e,Bt+4,Ke+F),we!==null&&we.push(Mr,Bt),Bt},argPackAdvance:8,readValueFromPointer:gn,destructorFunction(we){Mr(we)}})},v:(P,F)=>{ar(P,{isVoid:!0,name:F=Xi(F),argPackAdvance:0,fromWireType:()=>{},toWireType:(EA,RA)=>{}})},j:(P,F,EA)=>(P=gr.toValue(P),F=Ia(F,"emval::as"),fo(F,EA,P)),e:(P,F,EA,RA,GA)=>{var WA,Ce;return(P=en[P])(F=gr.toValue(F),F[EA=(Ce=aI[WA=EA])===void 0?Xi(WA):Ce],RA,GA)},d:pn,f:(P,F,EA)=>{var RA=((_e,Ke)=>{for(var Bt=new Array(_e),Rt=0;Rt<_e;++Rt)Bt[Rt]=Ia(QA[Ke+4*Rt>>2],"parameter "+Rt);return Bt})(P,F),GA=RA.shift();P--;var WA,Ce,ge=new Array(P),we=`methodCaller<(${RA.map(_e=>_e.name).join(", ")}) => ${GA.name}>`;return WA=sr(we,(_e,Ke,Bt,Rt)=>{for(var Ye=0,nt=0;nt<P;++nt)ge[nt]=RA[nt].readValueFromPointer(Rt+Ye),Ye+=RA[nt].argPackAdvance;var ii=EA===1?qo(Ke,ge):Ke.apply(_e,ge);for(nt=0;nt<P;++nt)RA[nt].deleteObject&&RA[nt].deleteObject(ge[nt]);return fo(GA,Bt,ii)}),Ce=en.length,en.push(WA),Ce},c:P=>{P>4&&(Gi.get(P).refcount+=1)},b:P=>{var F=gr.toValue(P);$o(F),pn(P)},h:(P,F)=>{var EA=(P=Ia(P,"_emval_take_value")).readValueFromPointer(F);return gr.toHandle(EA)},m:()=>{Je("")},s:(P,F,EA)=>z.copyWithin(P,F,F+EA),r:P=>{z.length,Je("OOM")},n:(P,F,EA,RA)=>{for(var GA=0,WA=0;WA<EA;WA++){var Ce=QA[F>>2],ge=QA[F+4>>2];F+=8;for(var we=0;we<ge;we++)kg(P,z[Ce+we]);GA+=ge}return QA[RA>>2]=GA,0}},Or=function(){var P={a:ls};function F(EA,RA){var GA,WA;return Or=EA.exports,m=Or.z,GA=m.buffer,g.HEAP8=AA=new Int8Array(GA),g.HEAP16=sA=new Int16Array(GA),g.HEAPU8=z=new Uint8Array(GA),g.HEAPU16=eA=new Uint16Array(GA),g.HEAP32=X=new Int32Array(GA),g.HEAPU32=QA=new Uint32Array(GA),g.HEAPF32=wA=new Float32Array(GA),g.HEAPF64=HA=new Float64Array(GA),$t=Or.C,WA=Or.A,jA.unshift(WA),function(){if(qe--,g.monitorRunDependencies&&g.monitorRunDependencies(qe),qe==0&&Et){var Ce=Et;Et=null,Ce()}}(),Or}if(qe++,g.monitorRunDependencies&&g.monitorRunDependencies(qe),g.instantiateWasm)try{return g.instantiateWasm(P,F)}catch(EA){v(`Module.instantiateWasm callback failed with error: ${EA}`),s(EA)}return ai(0,$e,P,function(EA){F(EA.instance)}).catch(s),{}}(),Po=P=>(Po=Or.B)(P),Ba=P=>(Ba=Or.D)(P),Mr=P=>(Mr=Or.E)(P),Cs=P=>(Cs=Or.F)(P);g.dynCall_jiji=(P,F,EA,RA,GA)=>(g.dynCall_jiji=Or.G)(P,F,EA,RA,GA),g._vertexShaderSource=10688;function Va(){function P(){fn||(fn=!0,g.calledRun=!0,VA||(Ki(jA),r(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;)Me(g.postRun.shift());Ki(Ve)}()))}qe>0||(function(){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)Ze(g.preRun.shift());Ki(ue)}(),qe>0||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),P()},1)):P()))}if(Et=function P(){fn||Va(),fn||(Et=P)},g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return Va(),i.ready}})(),ZaA=zaA,kK=0,x6=class Y6{constructor(i){this.core=i,wG(this,"seq"),wG(this,"_core"),wG(this,"log"),wG(this,"beautyParams"),kK+=1,this.seq=kK,this._core=i,this.log=i.log.createChild({id:`${this.getAlias()}${kK}`}),this.log.info("created")}getName(){return Y6.Name}getAlias(){return"bb"}getValidateRule(i){switch(i){case"start":case"update":return jaA(this._core);case"stop":return WaA(this._core)}}getGroup(){return"bb"}async start(i){this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await ZaA()),this._core.room.videoManager.renderMode="webgl";const r=this._core.utils.isUndefined(i.beauty)?.5:i.beauty,s=this._core.utils.isUndefined(i.brightness)?.5:i.brightness,g=this._core.utils.isUndefined(i.ruddy)?.5:i.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:r,brightness:s,ruddy:g})}async update(i){const r=this._core.utils.isUndefined(i.beauty)?.5:i.beauty,s=this._core.utils.isUndefined(i.brightness)?.5:i.brightness,g=this._core.utils.isUndefined(i.ruddy)?.5:i.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:r,brightness:s,ruddy:g})}async stop(){return this._core.room.videoManager.renderMode="auto",this._core.room.videoManager.stopBeauty()}destroy(){this._core.room.videoManager.renderMode="auto"}};wG(x6,"Name","BasicBeauty");var P6=x6,XaA=P6;const $aA=Object.freeze(Object.defineProperty({__proto__:null,BasicBeauty:P6,default:XaA},Symbol.toStringTag,{value:"Module"})),AsA=hk($aA);var esA=Object.defineProperty,tsA=(t,i,r)=>i in t?esA(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,m2=(t,i,r)=>tsA(t,typeof i!="symbol"?i+"":i,r),isA={name:"option",required:!0,properties:{sourceLanguage:{type:"string",required:!0},translationLanguages:{type:["string","array"],required:!1},userIdsToTranscribe:{type:["string","array"],required:!1},transcriberRobotId:{type:"string",required:!1}}},osA={name:"option",required:!0,properties:{transcriberRobotId:{type:"string",required:!0}}},rsA=new Set([2002,4003]),J6=class H6{constructor(i){this.core=i,m2(this,"disableRandomCall",!0),m2(this,"activeTranscriberMap",new Map),m2(this,"_log"),this._log=this.core.log.createChild({id:`${this.getAlias()}`})}getName(){return H6.Name}getAlias(){return"rt-trans"}getGroup(){return"*"}getValidateRule(i){switch(i){case"start":return isA;case"update":return{};case"stop":return osA}}async start(i){var r;const{RtcError:s,ErrorCode:g}=this.core.errorModule;if(!this.core.room.sendSignalMessage)throw new s({code:g.ENV_NOT_SUPPORTED});const{sourceLanguage:B,translationLanguages:Q,userIdsToTranscribe:f="all",transcriberRobotId:m}=i,M=m||`transcriber_${this.core.room.roomId}_robot_${this.core.room.userId}`,v={sdkappid:this.core.room.sdkAppId,roomid:String(this.core.room.roomId),roomType:this.core.room.useStringRoomId?1:0,agentParam:{cdnRobotUserid:M,lifecycleUserid:this.core.room.userId,maxIdletime:30},subscribeParams:{subUsers:[]},asrParams:{lang:B,vadSilenceTime:1e3},translationParams:{mode:1,targetLangs:[""]}};Q&&Q.length>0&&(v.translationParams.mode=1,v.translationParams.targetLangs=Array.isArray(Q)?Q:[Q]),f==="all"?v.subscribeParams.subUsers=[]:Array.isArray(f)?v.subscribeParams.subUsers=f.map(U=>({userId:U,roomType:this.core.room.useStringRoomId?1:0,roomid:String(this.core.room.roomId)})):f&&(v.subscribeParams.subUsers=[{userId:f,roomType:this.core.room.useStringRoomId?1:0,roomid:String(this.core.room.roomId)}]);try{this._log.info(`start_cloud_transcription ${JSON.stringify(v)}`);const U=await this.core.room.sendSignalMessage({command:"start_cloud_transcription",responseCommand:String(8268),data:v,retries:0}),{code:AA,data:z}=U.data;if(AA!==0){const eA=((r=U.data)==null?void 0:r.message)||"";throw this._log.error("start_cloud_transcription failed",{extraCode:AA,reason:eA,data:z}),new s({code:g.SERVER_ERROR,extraCode:AA,message:eA})}const{taskId:sA}=z;if(!sA)throw this._log.error("taskId is required",{data:U.data}),new s({code:g.SERVER_ERROR,message:"taskId is required"});return this.activeTranscriberMap.set(sA,i),this._log.info(`start_cloud_transcription success ${sA}, activeSize: ${this.activeTranscriberMap.size}`),sA}catch(U){throw this._log.error("start_cloud_transcription failed",{error:U}),U}}async update(){}async stop({transcriberRobotId:i}){var r;const{RtcError:s,ErrorCode:g}=this.core.errorModule;if(!this.core.room.sendSignalMessage)throw new s({code:g.ENV_NOT_SUPPORTED});try{const B=await this.core.room.sendSignalMessage({command:"stop_cloud_transcription",responseCommand:String(8270),data:{taskId:i},retries:3});if(B.data.code!==0){const Q=B.data.code,f=((r=B.data)==null?void 0:r.message)||"";if(!rsA.has(Q))throw this._log.error("stop_cloud_transcription failed",{extraCode:Q,reason:f,data:B.data.data}),new s({code:g.SERVER_ERROR,extraCode:Q,message:f});this._log.warn("stop_cloud_transcription ignored error",{extraCode:Q,reason:f,data:B.data.data})}this.activeTranscriberMap.delete(i)}catch(B){throw this._log.error("stop_cloud_transcription failed",{error:B}),B}}destroy(){this.activeTranscriberMap.clear()}};m2(J6,"Name","RealtimeTranscriber");var V6=J6,nsA=V6;const asA=Object.freeze(Object.defineProperty({__proto__:null,RealtimeTranscriber:V6,default:nsA},Symbol.toStringTag,{value:"Module"})),ssA=hk(asA);var gsA=Object.create,pk=Object.defineProperty,IsA=Object.defineProperties,q6=Object.getOwnPropertyDescriptor,csA=Object.getOwnPropertyDescriptors,K6=Object.getOwnPropertyNames,O2=Object.getOwnPropertySymbols,EsA=Object.getPrototypeOf,h3=Object.prototype.hasOwnProperty,j6=Object.prototype.propertyIsEnumerable,wj=(t,i,r)=>i in t?pk(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,cr=(t,i)=>{for(var r in i||(i={}))h3.call(i,r)&&wj(t,r,i[r]);if(O2)for(var r of O2(i))j6.call(i,r)&&wj(t,r,i[r]);return t},lB=(t,i)=>IsA(t,csA(i)),lsA=(t,i)=>{var r={};for(var s in t)h3.call(t,s)&&i.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&O2)for(var s of O2(t))i.indexOf(s)<0&&j6.call(t,s)&&(r[s]=t[s]);return r},fk=(t,i)=>function(){return i||(0,t[K6(t)[0]])((i={exports:{}}).exports,i),i.exports},p3=(t,i)=>{for(var r in i)pk(t,r,{get:i[r],enumerable:!0})},CsA=(t,i,r,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let g of K6(i))h3.call(t,g)||g===r||pk(t,g,{get:()=>i[g],enumerable:!(s=q6(i,g))||s.enumerable});return t},Tw=(t,i,r)=>(r=t!=null?gsA(EsA(t)):{},CsA(pk(r,"default",{value:t,enumerable:!0}),t)),ss=(t,i,r,s)=>{for(var g,B=q6(i,r),Q=t.length-1;Q>=0;Q--)(g=t[Q])&&(B=g(i,r,B)||B);return B&&pk(i,r,B),B},OA=(t,i,r)=>wj(t,typeof i!="symbol"?i+"":i,r),mk=fk({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(t,i){var r=Object.prototype.hasOwnProperty,s="~";function g(){}function B(M,v,U){this.fn=M,this.context=v,this.once=U||!1}function Q(M,v,U,AA,z){if(typeof U!="function")throw new TypeError("The listener must be a function");var sA=new B(U,AA||M,z),eA=s?s+v:v;return M._events[eA]?M._events[eA].fn?M._events[eA]=[M._events[eA],sA]:M._events[eA].push(sA):(M._events[eA]=sA,M._eventsCount++),M}function f(M,v){--M._eventsCount===0?M._events=new g:delete M._events[v]}function m(){this._events=new g,this._eventsCount=0}Object.create&&(g.prototype=Object.create(null),new g().__proto__||(s=!1)),m.prototype.eventNames=function(){var M,v,U=[];if(this._eventsCount===0)return U;for(v in M=this._events)r.call(M,v)&&U.push(s?v.slice(1):v);return Object.getOwnPropertySymbols?U.concat(Object.getOwnPropertySymbols(M)):U},m.prototype.listeners=function(M){var v=s?s+M:M,U=this._events[v];if(!U)return[];if(U.fn)return[U.fn];for(var AA=0,z=U.length,sA=new Array(z);AA<z;AA++)sA[AA]=U[AA].fn;return sA},m.prototype.listenerCount=function(M){var v=s?s+M:M,U=this._events[v];return U?U.fn?1:U.length:0},m.prototype.emit=function(M,v,U,AA,z,sA){var eA=s?s+M:M;if(!this._events[eA])return!1;var X,QA,wA=this._events[eA],HA=arguments.length;if(wA.fn){switch(wA.once&&this.removeListener(M,wA.fn,void 0,!0),HA){case 1:return wA.fn.call(wA.context),!0;case 2:return wA.fn.call(wA.context,v),!0;case 3:return wA.fn.call(wA.context,v,U),!0;case 4:return wA.fn.call(wA.context,v,U,AA),!0;case 5:return wA.fn.call(wA.context,v,U,AA,z),!0;case 6:return wA.fn.call(wA.context,v,U,AA,z,sA),!0}for(QA=1,X=new Array(HA-1);QA<HA;QA++)X[QA-1]=arguments[QA];wA.fn.apply(wA.context,X)}else{var VA,ue=wA.length;for(QA=0;QA<ue;QA++)switch(wA[QA].once&&this.removeListener(M,wA[QA].fn,void 0,!0),HA){case 1:wA[QA].fn.call(wA[QA].context);break;case 2:wA[QA].fn.call(wA[QA].context,v);break;case 3:wA[QA].fn.call(wA[QA].context,v,U);break;case 4:wA[QA].fn.call(wA[QA].context,v,U,AA);break;default:if(!X)for(VA=1,X=new Array(HA-1);VA<HA;VA++)X[VA-1]=arguments[VA];wA[QA].fn.apply(wA[QA].context,X)}}return!0},m.prototype.on=function(M,v,U){return Q(this,M,v,U,!1)},m.prototype.once=function(M,v,U){return Q(this,M,v,U,!0)},m.prototype.removeListener=function(M,v,U,AA){var z=s?s+M:M;if(!this._events[z])return this;if(!v)return f(this,z),this;var sA=this._events[z];if(sA.fn)sA.fn!==v||AA&&!sA.once||U&&sA.context!==U||f(this,z);else{for(var eA=0,X=[],QA=sA.length;eA<QA;eA++)(sA[eA].fn!==v||AA&&!sA[eA].once||U&&sA[eA].context!==U)&&X.push(sA[eA]);X.length?this._events[z]=X.length===1?X[0]:X:f(this,z)}return this},m.prototype.removeAllListeners=function(M){var v;return M?(v=s?s+M:M,this._events[v]&&f(this,v)):(this._events=new g,this._eventsCount=0),this},m.prototype.off=m.prototype.removeListener,m.prototype.addListener=m.prototype.on,m.prefixed=s,m.EventEmitter=m,i!==void 0&&(i.exports=m)}}),f3=fk({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/grammar.js"(t,i){var r=i.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(s){return s.encoding?"rtpmap:%d %s/%s/%s":s.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(s){return s.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(s){return s.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(s){return"extmap:%d"+(s.direction?"/%s":"%v")+(s["encrypt-uri"]?" %s":"%v")+" %s"+(s.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(s){return s.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(s){var g="candidate:%s %d %s %d %s %d typ %s";return g+=s.raddr!=null?" raddr %s rport %d":"%v%v",g+=s.tcptype!=null?" tcptype %s":"%v",s.generation!=null&&(g+=" generation %d"),g+=s["network-id"]!=null?" network-id %d":"%v",g+=s["network-cost"]!=null?" 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(s){var g="ssrc:%d";return s.attribute!=null&&(g+=" %s",s.value!=null&&(g+=":%s")),g}},{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(s){return s.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(s){return s.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(s){return"imageattr:%s %s %s"+(s.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(s){return"simulcast:%s %s"+(s.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(s){return"ts-refclk:%s"+(s.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(s){var g="mediaclk:";return g+=s.id!=null?"id=%s %s":"%v%s",g+=s.mediaClockValue!=null?"=%s":"",g+=s.rateNumerator!=null?" rate=%s":"",g+=s.rateDenominator!=null?"/%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(s){r[s].forEach(function(g){g.reg||(g.reg=/(.*)/),g.format||(g.format="%s")})})}}),BsA=fk({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/parser.js"(t){var i=function(Q){return String(Number(Q))===Q?Number(Q):Q},r=function(Q,f,m){var M=Q.name&&Q.names;Q.push&&!f[Q.push]?f[Q.push]=[]:M&&!f[Q.name]&&(f[Q.name]={});var v=Q.push?{}:M?f[Q.name]:f;(function(U,AA,z,sA){if(sA&&!z)AA[sA]=i(U[1]);else for(var eA=0;eA<z.length;eA+=1)U[eA+1]!=null&&(AA[z[eA]]=i(U[eA+1]))})(m.match(Q.reg),v,Q.names,Q.name),Q.push&&f[Q.push].push(v)},s=f3(),g=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(Q){var f={},m=[],M=f;return Q.split(/(\r\n|\r|\n)/).filter(g).forEach(function(v){var U=v[0],AA=v.slice(2);U==="m"&&(m.push({rtp:[],fmtp:[]}),M=m[m.length-1]);for(var z=0;z<(s[U]||[]).length;z+=1){var sA=s[U][z];if(sA.reg.test(AA))return r(sA,M,AA)}}),f.media=m,f};var B=function(Q,f){var m=f.split(/=(.+)/,2);return m.length===2?Q[m[0]]=i(m[1]):m.length===1&&f.length>1&&(Q[m[0]]=void 0),Q};t.parseParams=function(Q){return Q.split(/;\s?/).reduce(B,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(Q){return Q.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(Q){for(var f=[],m=Q.split(" ").map(i),M=0;M<m.length;M+=3)f.push({component:m[M],ip:m[M+1],port:m[M+2]});return f},t.parseImageAttributes=function(Q){return Q.split(" ").map(function(f){return f.substring(1,f.length-1).split(",").reduce(B,{})})},t.parseSimulcastStreamList=function(Q){return Q.split(";").map(function(f){return f.split(",").map(function(m){var M,v=!1;return m[0]!=="~"?M=i(m):(M=i(m.substring(1,m.length)),v=!0),{scid:M,paused:v}})})}}}),usA=fk({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/writer.js"(t,i){var r=f3(),s=/%[sdv%]/g,g=function(m){var M=1,v=arguments,U=v.length;return m.replace(s,function(AA){if(M>=U)return AA;var z=v[M];switch(M+=1,AA){case"%%":return"%";case"%s":return String(z);case"%d":return Number(z);case"%v":return""}})},B=function(m,M,v){var U=[m+"="+(M.format instanceof Function?M.format(M.push?v:v[M.name]):M.format)];if(M.names)for(var AA=0;AA<M.names.length;AA+=1){var z=M.names[AA];M.name?U.push(v[M.name][z]):U.push(v[M.names[AA]])}else U.push(v[M.name]);return g.apply(null,U)},Q=["v","o","s","i","u","e","p","c","b","t","r","z","a"],f=["i","c","b","a"];i.exports=function(m,M){M=M||{},m.version==null&&(m.version=0),m.name==null&&(m.name=" "),m.media.forEach(function(z){z.payloads==null&&(z.payloads="")});var v=M.outerOrder||Q,U=M.innerOrder||f,AA=[];return v.forEach(function(z){r[z].forEach(function(sA){sA.name in m&&m[sA.name]!=null?AA.push(B(z,sA,m)):sA.push in m&&m[sA.push]!=null&&m[sA.push].forEach(function(eA){AA.push(B(z,sA,eA))})})}),m.media.forEach(function(z){AA.push(B("m",r.m[0],z)),U.forEach(function(sA){r[sA].forEach(function(eA){eA.name in z&&z[eA.name]!=null?AA.push(B(sA,eA,z)):eA.push in z&&z[eA.push]!=null&&z[eA.push].forEach(function(X){AA.push(B(sA,eA,X))})})})}),AA.join(`\r
`)+`\r
`}}}),QsA=fk({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/index.js"(t){var i=BsA(),r=usA(),s=f3();t.grammar=s,t.write=r,t.parse=i.parse,t.parseParams=i.parseParams,t.parseFmtpConfig=i.parseFmtpConfig,t.parsePayloads=i.parsePayloads,t.parseRemoteCandidates=i.parseRemoteCandidates,t.parseImageAttributes=i.parseImageAttributes,t.parseSimulcastStreamList=i.parseSimulcastStreamList}}),dsA={x:{required:!0,type:"number"},y:{required:!0,type:"number"},width:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},height:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},zIndex:{required:!0,type:"number"},fillMode:{required:!1,type:"string"},mirror:{required:!1,type:"boolean"},rotation:{required:!1,type:"number"},hidden:{required:!1,type:"boolean"}},W6=(t,i=!1)=>({type:"object",required:i,properties:{canvasColor:{required:!1,type:["string",CanvasGradient,CanvasPattern]},width:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},height:{required:!0,type:"number",notLessThanZero:!0,min:1,max:3840},frameRate:{required:!1,type:"number",notLessThanZero:!0,min:1,max:60}},validate(r,s,g){const{RtcError:B,ErrorCode:Q,ErrorCodeDictionary:f}=t.errorModule;if(!r)return;const{width:m,height:M}=r;if(m&&M&&m*M>8294400)throw new B({code:Q.INVALID_PARAMETER,message:"The mix resolution cannot be set higher than 3840 * 2160."})}}),z6=t=>({required:!1,type:["string",HTMLElement,null],validate(i,r,s){const{RtcError:g,ErrorCode:B,ErrorCodeDictionary:Q}=t.errorModule;if(t.utils.isString(i)&&!document.getElementById(i))throw new g({code:B.INVALID_PARAMETER,extraCode:Q.INVALID_ELEMENT_ID,fnName:s,messageParams:{key:r}})}}),Dk=(t,i=!0)=>({type:"object",required:i,properties:cr({},dsA),validate(r,s,g){const{RtcError:B,ErrorCode:Q,ErrorCodeDictionary:f}=t.errorModule;if(r){if(r.fillMode&&!["contain","cover","fill"].includes(r.fillMode))throw new B({code:Q.INVALID_PARAMETER,extraCode:f.INVALID_PARAMETER_TYPE,message:"The fillMode parameter must be 'contain', 'cover' or 'fill'",fnName:g});if(r.rotation&&![0,90,180,270].includes(r.rotation))throw new B({code:Q.INVALID_PARAMETER,extraCode:f.INVALID_PARAMETER_TYPE,message:"The rotation parameter must be 0, 90, 180 or 270",fnName:g})}}}),Z6=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},cameraId:{required:!1,type:"string"},videoTrack:{required:!1,instanceof:MediaStreamTrack},profile:{required:!1,type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},layout:cr({},Dk(t))}}}),X6=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},profile:{required:!1,type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},captureElement:{required:!1,type:HTMLElement},preferDisplaySurface:{required:!1,type:"string"},layout:cr({},Dk(t))},validate(i,r,s){const{RtcError:g,ErrorCode:B,ErrorCodeDictionary:Q}=t.errorModule;if(!t.rtcDectection.isScreenCaptureApiAvailable())throw new g({code:B.ENV_NOT_SUPPORTED,fnName:s,extraCode:Q.NOT_SUPPORTED_SCREEN_SHARE})}}}),$6=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},content:{required:!0,type:"string"},font:{required:!1,type:"string"},color:{required:!1,type:["string",CanvasGradient,CanvasPattern]},layout:cr({},Dk(t))}}}),A9=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:cr({},Dk(t))}}}),e9=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:cr({},Dk(t))}}});function hsA(t){return{name:"VideoMixerOptions",type:"object",required:!0,allowEmpty:!1,properties:{view:cr({},z6(t)),canvasInfo:cr({},W6(t,!0)),camera:cr({},Z6(t)),screen:cr({},X6(t)),text:cr({},$6(t)),image:cr({},A9(t)),video:cr({},e9(t))},validate(i,r,s,g){const{RtcError:B,ErrorCode:Q,ErrorCodeDictionary:f}=t.errorModule;if(t.environment.isMobile())throw new B({code:Q.ENV_NOT_SUPPORTED,message:"VideoMixer is not supported on mobile devices currently"});const{onScreenShareStop:m}=i;if(m&&!t.utils.isFunction(m))throw new B({code:Q.INVALID_PARAMETER,extraCode:f.INVALID_PARAMETER_TYPE,fnName:s,messageParams:{key:"onScreenShareStop",value:typeof m,rule:{type:"Function"}}})}}}function psA(t){return{name:"VideoMixerOptions",type:"object",required:!1,allowEmpty:!1,properties:{view:cr({},z6(t)),canvasInfo:cr({},W6(t)),camera:cr({},Z6(t)),screen:cr({},X6(t)),text:cr({},$6(t)),image:cr({},A9(t)),video:cr({},e9(t))}}}function fsA(t){return{name:"StopVideoMixerOptions",required:!1}}var t9=(t=>(t[t.INVALID_PARAMETER=4096]="INVALID_PARAMETER",t[t.INVALID_OPERATION=4097]="INVALID_OPERATION",t[t.NOT_SUPPORTED=4098]="NOT_SUPPORTED",t[t.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",t[t.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",t[t.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",t[t.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",t[t.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",t[t.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",t[t.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",t[t.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",t[t.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",t[t.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",t[t.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",t[t.CLIENT_BANNED=16448]="CLIENT_BANNED",t[t.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",t[t.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",t[t.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",t[t.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",t[t.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",t[t.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",t[t.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",t[t.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",t[t.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",t[t.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",t[t.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",t[t.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",t[t.API_CALL_ABORTED=16461]="API_CALL_ABORTED",t[t.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",t[t.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",t[t.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",t[t.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",t[t.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",t[t.UNKNOWN=65535]="UNKNOWN",t))(t9||{}),xa=t9,msA=function(t){for(const i in xa)if(xa[i]===t)return i;return"UNKNOWN"},DsA=class extends Error{constructor({name:t="RtcError",message:i,code:r=xa.UNKNOWN,extraCode:s=0,constraint:g}){const B=`<${msA(r)} 0x${r.toString(16)}>`,Q=`${i}${g?` constraint: ${g}`:""}${i?.includes(B)?"":` ${B}`}`;super(Q),OA(this,"code"),OA(this,"extraCode"),OA(this,"message"),OA(this,"originMessage"),OA(this,"name"),OA(this,"constraint"),this.code=r,this.extraCode=s,this.name=t,this.message=Q,this.constraint=g,this.originMessage=i}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Ws=DsA,ysA=0,m3=function(){return Date.now()+ysA},i9=function(){const t=new Date;return t.setTime(m3()),t.toLocaleString()},RsA=function(t){let i=String(t.getMilliseconds());return"padStart"in String.prototype&&(i=i.toString().padStart(3,"0")),`${t.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${i}`},MsA={};p3(MsA,{REPORT_TYPE:()=>y9,buildSSOPackage:()=>M3,bytes2ms:()=>AgA,calculateScaleResolutionDownNumber:()=>m9,concatArrayBuffers:()=>RgA,convertObjectNumberToInt:()=>p9,copyProperties:()=>$sA,deepClone:()=>P2,deepCloneBasic:()=>Lj,deepMerge:()=>Q9,delay:()=>Rw,fibonacci:()=>R3,formatedTime:()=>dgA,getConstructorName:()=>ngA,getContainerFromElement:()=>ugA,getEnv:()=>qsA,getFirst16Bits:()=>wgA,getInternalVersion:()=>IgA,getLast16Bits:()=>MgA,getLoggerUrl:()=>D3,getMediaStreamTrackInfo:()=>mgA,getMuteStateFromFlag:()=>u9,getNetworkType:()=>y3,getNumNetworkType:()=>XsA,getReconnectionTimeout:()=>igA,getStringByteLength:()=>hgA,getTestSignalDomain:()=>jsA,getTurnServer:()=>lgA,getUint32Version:()=>h9,getValueType:()=>BD,getViewListFromView:()=>BgA,glog:()=>tgA,ipv4ToUint32:()=>CgA,isArray:()=>dC,isAudioWorkletSupported:()=>agA,isBoolean:()=>rD,isConstructor:()=>B9,isEmpty:()=>EgA,isFunction:()=>oD,isLangChinese:()=>Bp,isMediaStreamTrack:()=>ogA,isNumber:()=>uD,isObject:()=>$m,isOverseaSdkAppId:()=>Y2,isPlainObject:()=>yw,isPortrait:()=>d9,isPromise:()=>C9,isRemoteTrack:()=>rgA,isRotate90Or270:()=>D9,isSetSinkIdSupported:()=>sgA,isString:()=>pC,isUndefined:()=>Fr,isVideoMixerOutputTrack:()=>w3,loadImage:()=>pgA,loadVideo:()=>DgA,ms2bytes:()=>egA,ms2samples:()=>l9,normalizeUrl:()=>fgA,performanceNow:()=>Ns,promiseAny:()=>ggA,samples2ms:()=>E9,setNetworkTypeFromWebRTC:()=>ZsA,stringify:()=>up,stringifyIncludeValue:()=>bj,throttlePromise:()=>f9});var x2="5.0.0",o9=typeof importScripts<"u",r9=typeof registerProcessor<"u",wsA="web.sdk.qcloud.com",Sj=`https://${wsA}/trtc/webrtc/doc`,f5="https://cloud.tencent.com/document/product/647/85386",m5="https://trtc.io/document/56025",SsA="https://yun.tim.qq.com",vsA="https://apisgp.my-imcloud.com",NsA="trtc_error_assistance",n9={LOG:"jssdk_log"},_K={QCLOUD:"qcloud"},iw=(t=>(t[t.TRACE=0]="TRACE",t[t.DEBUG=1]="DEBUG",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.NONE=5]="NONE",t))(iw||{}),a9={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},TsA=6048e5,GsA={"480p_2":{width:640,height:480,frameRate:15,bitrate:500}},ksA=GsA["480p_2"],gt={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",LOADSTART:"loadstart",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",FULLSCREEN_CHANGE:"fullscreenchange",RESIZE:"resize",TIME_UPDATE:"timeupdate"},D5=1,_sA=2,bsA=4,y5=8,R5=64,M5=16,LsA=256,VG={PLAYER_ERROR:"player-error",LOAD_WORKLET:"load-worklet",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},FsA="unified-plan",ow=5,s9="default",o2=2e3,g9=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],UsA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},OsA=function(t,i,r,s){return new(r||(r=Promise))(function(g,B){function Q(M){try{m(s.next(M))}catch(v){B(v)}}function f(M){try{m(s.throw(M))}catch(v){B(v)}}function m(M){var v;M.done?g(M.value):(v=M.value,v instanceof r?v:new r(function(U){U(v)})).then(Q,f)}m((s=s.apply(t,[])).next())})},vj=Symbol(32),Nj=Symbol(16),Tj=Symbol(8),pw=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,i){return i&&this.consume(),this.need=t,this.flush()}read(t){return OsA(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((i,r)=>{var s;this.reject=r,this.resolve=g=>{delete this.lastReadPromise,delete this.resolve,delete this.need,i(g)},this.demand(t,!0)||(s=this.pull)===null||s===void 0||s.call(this,t)})})}readU32(){return this.read(vj)}readU16(){return this.read(Nj)}readU8(){return this.read(Tj)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null;const i=this.buffer.subarray(this.consumed);let r=0;const s=g=>i.length<(r=g);if(typeof this.need=="number"){if(s(this.need))return;t=i.subarray(0,r)}else if(this.need===vj){if(s(4))return;t=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===Nj){if(s(2))return;t=i[0]<<8|i[1]}else if(this.need===Tj){if(s(1))return;t=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(s(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,r)),t=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(s(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),!this.g&&!this.resolve)return new Promise(i=>this.pull=i);this.flush()}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,255&t]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,255&t]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){const i=this.buffer.length,r=i+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const s=new Uint8Array(r);s.set(this.buffer),this.buffer=s}return this.buffer.subarray(i,r)}return this.buffer=new Uint8Array(t),this.buffer}};pw.U32=vj,pw.U16=Nj,pw.U8=Tj;var xsA=128;function bK(t){const i=new pw;for(;t>=128;)i.malloc(1)[0]=255&t|xsA,t>>>=7;return i.malloc(1)[0]=255&t,i.buffer||new Uint8Array(0)}function Gj(t,i=0){const r=new pw,s=i<<3;switch(typeof t){case"boolean":const g=r.malloc(2);g[0]=s,g[1]=t?1:0;break;case"number":r.malloc(1)[0]=s,r.write(bK(t));break;case"string":r.malloc(1)[0]=2|s;const B=new TextEncoder().encode(t);r.write(bK(B.length));const Q=r.malloc(B.length);for(let m=0;m<B.length;m++)Q[m]=B[m];break;case"object":const f=new pw;if(Array.isArray(t))for(let m=0;m<t.length;m++){const M=Gj(t[m],m+1);M&&f.write(M)}else{let m=1;for(const M in t){const v=Gj(t[M],m++);v&&f.write(v)}}i===0?f.buffer&&r.write(f.buffer):(r.malloc(1)[0]=2|s,f.buffer&&(r.write(bK(f.buffer.length)),r.write(f.buffer)))}return r.buffer||new Uint8Array(0)}var w5=class{constructor(){OA(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(255&t)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(255&t)}writeByte(t){this.buffer.push(255&t)}writeBytes(t){for(let i=0;i<t.length;i++)this.buffer.push(t[i])}};function S5(t,i,r){t[r]=i>>>24&255,t[r+1]=i>>>16&255,t[r+2]=i>>>8&255,t[r+3]=255&i}function sE(t,i){return t[i]<<24|t[i+1]<<16|t[i+2]<<8|t[i+3]}function v5(t,i){return t[i]}function BG(t,i,r){return new TextDecoder().decode(YsA(t,i,r))}function YsA(t,i,r){return t.slice(i,i+r)}var LK=0,kj=2654435769,_j=16,N5=4,qG=2,KG=7;function PsA(t,i,r,s="AVQualityReportSvc.C2S",g=2e3,B=2,Q=30){return{version:g,encryption:B,d2:"",d2Len:0,uinType:Q,uin:"",uinLen:0,reqHead:{seqNumber:r,appId:t,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:s,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:i}}function JsA(t,i){const r=new w5,s=PsA(i,t,LK);LK=LK+1&2147483647,r.writeInt32(0),r.writeInt32(s.version),r.writeByte(s.encryption);const g=new TextEncoder().encode(s.d2);r.writeInt32(g.length+4),g&&r.writeBytes(g),r.writeByte(s.uinType);const B=new TextEncoder().encode(s.uin);r.writeInt32(B.length+4),B.length&&r.writeBytes(B);const Q=new w5;Q.writeInt32(0),Q.writeInt32(s.reqHead.seqNumber),Q.writeInt32(s.reqHead.appId),Q.writeByte(s.reqHead.appId>>>24&255),Q.writeByte(s.reqHead.appId>>>16&255),Q.writeByte(s.reqHead.appId>>>8&255),Q.writeByte(255&s.reqHead.appId);for(let wA=4;wA<16;wA++)Q.writeByte(0);const f=new TextEncoder().encode(s.reqHead.a2);Q.writeInt32(f.length+4),f.length&&Q.writeBytes(f);const m=new TextEncoder().encode(s.reqHead.serviceCmd);Q.writeInt32(m.length+4),m.length&&Q.writeBytes(m);const M=new TextEncoder().encode(s.reqHead.cookie);Q.writeInt32(M.length+4),M.length&&Q.writeBytes(M);const v=new TextEncoder().encode(s.reqHead.imei);Q.writeInt32(v.length+4),v.length&&Q.writeBytes(v);const U=new TextEncoder().encode(s.reqHead.ksid);Q.writeInt32(U.length+4),U.length&&Q.writeBytes(U);const AA=new TextEncoder().encode(s.reqHead.clientVersionInfo);Q.writeInt16(AA.length+2),AA.length&&Q.writeBytes(AA);const z=Q.length;Q.data[0]=z>>>24&255,Q.data[1]=z>>>16&255,Q.data[2]=z>>>8&255,Q.data[3]=255&z,pC(t)&&(t=new TextEncoder().encode(t)),Q.writeInt32(t.length+4),t.length&&Q.writeBytes(t);let sA=new Uint8Array(Q.data),eA=null;s.encryption===1?eA=new TextEncoder().encode(s.uin):s.encryption===2&&(eA=new Uint8Array(16)),eA&&(sA=HsA(sA,eA)),r.writeBytes(sA);const X=new Uint8Array(r.data),QA=X.length;return X[0]=QA>>>24&255,X[1]=QA>>>16&255,X[2]=QA>>>8&255,X[3]=255&QA,X}function HsA(t,i){const r=t.length;let s=(r+1+qG+KG)%8;s&&(s=8-s);const g=new Uint8Array(r+1+qG+KG+s);let B=0;const Q=new Uint8Array(8),f=new Uint8Array(8),m=new Uint8Array(8);let M=0;Q[0]=248&Math.floor(256*Math.random())|s,M=1;for(let U=0;U<s;U++)Q[M]=255&Math.floor(256*Math.random()),M+=1;for(let U=0;U<qG;)if(M<8&&(Q[M]=255&Math.floor(256*Math.random()),M+=1,U+=1),M===8){FK(Q,i,f,m,g,B),B+=8,M=0;for(let AA=0;AA<8;AA++)m[AA]=g[B-8+AA]}let v=0;for(;v<r;)if(M<8&&(Q[M]=t[v],M+=1,v+=1),M===8){FK(Q,i,f,m,g,B),B+=8,M=0;for(let U=0;U<8;U++)m[U]=g[B-8+U]}for(let U=0;U<KG;)if(M<8&&(Q[M]=0,M+=1,U+=1),M===8){FK(Q,i,f,m,g,B),B+=8,M=0;for(let AA=0;AA<8;AA++)m[AA]=g[B-8+AA]}return g}function FK(t,i,r,s,g,B){for(let Q=0;Q<8;Q++)t[Q]^=s[Q];VsA(t,i,g,B);for(let Q=0;Q<8;Q++)g[B+Q]^=r[Q];for(let Q=0;Q<8;Q++)r[Q]=t[Q]}function VsA(t,i,r,s){let g=sE(t,0),B=sE(t,4);const Q=[];for(let m=0;m<4;m++)Q[m]=sE(i,4*m);let f=0;for(let m=0;m<_j;m++)f+=kj,f>>>=0,g+=(B<<4)+Q[0]^B+f^(B>>>5)+Q[1],g>>>=0,B+=(g<<4)+Q[2]^g+f^(g>>>5)+Q[3],B>>>=0;S5(r,g,s),S5(r,B,s+4)}var qsA=function(){return new URLSearchParams(location.search).get("trtc_env")||""},KsA=".rtc.qq.com",jsA=function(t){return t.includes(".")?t:`${t}${KsA}`},Y2=t=>Number(t)<14e8,D3=function(t,i){let r;return r=Y2(t)?vsA:SsA,`${r}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*2**31)}&sdkappid=${t}&cmdtype=${i}`},I9="unknown";function y3(){zsA();const{userAgent:t,connection:i}=navigator;let r=(t.match(/NetType\/\S+/)||[])[0]||"";r=r.toLowerCase().replace("nettype/",""),r==="3gnet"&&(r="3g");const s=i&&i.type&&i.type.toLowerCase();let g=i&&i.effectiveType&&i.effectiveType.toLowerCase();return g==="slow-2"&&(g="2g"),s?c9(s,g):I9}function WsA(){qi.warn("netType changed",y3())}var T5=!1;function zsA(){var t;T5||(T5=!0,(t=navigator.connection)==null||t.addEventListener("typechange",WsA))}function c9(t,i){if(a9[t])return t;switch(t){case"cellular":case"wimax":return i||"unknown";case"ethernet":return"wired";default:return"unknown"}}function ZsA(t){I9=c9(t)}function XsA(){return a9[y3()]}function $sA(t,i){for(const r of Reflect.ownKeys(i))if(r!=="constructor"&&r!=="prototype"&&r!=="name"){const s=Object.getOwnPropertyDescriptor(i,r)||"";Object.defineProperty(t,r,s)}return t}function AgA(t,i=48e3){return E9(t/4,i)}function E9(t,i=48e3){return 1e3*t/i}function egA(t,i=48e3){return 4*l9(t,i)}function l9(t,i=48e3){return t*i/1e3}var tgA=typeof window<"u"&&typeof window.glog=="function"?window.glog:()=>{},Bp=()=>{let t=navigator.language;return t=t.substring(0,2),t==="zh"},yw=function(t){if(!t||typeof t!="object"||Object.prototype.toString.call(t)!="[object Object]")return!1;const i=Object.getPrototypeOf(t);if(i===null)return!0;const r=Object.prototype.hasOwnProperty.call(i,"constructor")&&i.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.toString.call(r)===Function.prototype.toString.call(Object)};function R3(t,i=1,r=1){return t<=1?r:R3(t-1,r,i+r)}function igA(t){return t>8?3e4:1e3*R3(t)}function BD(t){return Reflect.apply(Object.prototype.toString,t,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var oD=t=>typeof t=="function",Fr=t=>t===void 0,pC=t=>typeof t=="string",uD=t=>typeof t=="number",rD=t=>typeof t=="boolean",$m=t=>BD(t)==="object",dC=t=>BD(t)==="array",ogA=t=>BD(t)==="MediaStreamTrack".toLowerCase(),rgA=t=>t.isRemote,C9=t=>BD(t)==="promise",B9=t=>oD(t)&&t.prototype.constructor===t,ngA=t=>B9(t)?t.prototype.constructor.name:"",agA=typeof AudioWorkletNode<"u",sgA=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype;function ggA(t){return new Promise((i,r)=>{const s=[];t.forEach(g=>{g.then(i).catch(B=>{s.push(B),s.length===t.length&&r(s)})})})}function Ns(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var G5=t=>+t<10?`0${t}`:t,IgA=t=>{const i=t.match(/^\d+\.\d+\.\d+/)[0];if(!i)return t;const r=i.split("."),s=G5(r[1])+G5(r[2]);return r[1]-15>0&&(r[1]="15"),r[2]-15>0&&(r[2]="15"),`${r.join(".")}.${s}`},cgA=Object.prototype.hasOwnProperty;function EgA(t){if(t==null)return!0;if(typeof t=="boolean")return!1;if(typeof t=="number")return t===0;if(typeof t=="string"||typeof t=="function"||Array.isArray(t))return t.length===0;if(t instanceof Error)return t.message==="";if(yw(t))switch(Object.prototype.toString.call(t)){case"[object File]":case"[object Map]":case"[object Set]":return t.size===0;case"[object Object]":for(const i in t)if(cgA.call(t,i))return!1;return!0}return!1}function u9(t,i){return{userId:i,hasAudio:!!(t&y5),hasVideo:!!(t&D5),hasAuxiliary:!!(t&bsA),hasSmall:!!(t&_sA),audioMuted:!!(t&R5),videoMuted:!!(t&M5),audioAvailable:!(!(t&y5)||t&R5),videoAvailable:!(!(t&D5)||t&M5),hasDatachannel:!!(t&LsA)}}function lgA(t){const i={urls:t.url.startsWith("turn:")||t.url.startsWith("turns:")?t.url:`turn:${t.url}`};return Fr(t.username)||Fr(t.credential)||(i.username=t.username,i.credential=t.credential,i.credentialType="password",Fr(t.credentialType)||(i.credentialType=t.credentialType)),i}function CgA(t,i=!0){if(!pC(t))return 0;const r=t.split(".");return i?(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 Q9=function(t,i,r,s){if(!$m(t)||!$m(i))return 0;let g=0;const B=Object.keys(i);let Q;for(let f=0,m=B.length;f<m;f++)if(Q=B[f],!(Fr(i[Q])||r&&r.includes(Q)))if($m(t[Q])&&$m(i[Q]))g+=Q9(t[Q],i[Q],r,s);else{if(s&&s.includes(i[Q]))continue;t[Q]!==i[Q]&&(t[Q]=P2(i[Q]),g+=1)}return g};function P2(t){if(dC(t)){const i=[];return t.forEach((r,s)=>{i[s]=P2(r)}),i}if($m(t)){const i={};return Object.keys(t).forEach(r=>{i[r]=P2(t[r])}),i}return t}var BgA=t=>{let i=[];if(dC(t))i=[...t];else if(pC(t)){const r=document.getElementById(t);r&&i.push(r)}else t&&i.push(t);return i},ugA=t=>pC(t)?document.getElementById(t):t,QgA=t=>{const i=r=>r<10?`0${r}`:`${r}`;return`${t.getFullYear()}/${t.getMonth()+1}/${t.getDate()} ${i(t.getHours())}:${i(t.getMinutes())}:${i(t.getSeconds())}`},dgA=()=>QgA(new Date);function up(t,{keysToInclude:i,keysToExclude:r}){try{if(dC(t))return`[${t.map(Q=>up(Q,{keysToInclude:i,keysToExclude:r})).join(",")}]`;if(!yw(t)||!dC(i)&&!dC(r))return JSON.stringify(t);const s={},g=new Set(i),B=new Set(r);return Object.keys(t).forEach(Q=>{(B.size===0&&g.has(Q)||g.size===0&&!B.has(Q))&&(s[Q]=yw(t[Q])||dC(t[Q])?JSON.parse(up(t[Q],{keysToExclude:r,keysToInclude:i})):t[Q])}),JSON.stringify(s)}catch{return"{}"}}function bj(t,i=!1){const r=[];return Object.keys(t).forEach(s=>{i===t[s]&&r.push(s)}),up(t,{keysToInclude:r})}function hgA(t){return t.replace(/[\u4e00-\u9fa5]/g,"aa").length}var d9=()=>{var t,i,r,s;return(t=window.screen)!=null&&t.orientation?!!((s=(r=(i=window.screen)==null?void 0:i.orientation)==null?void 0:r.type)!=null&&s.includes("portrait")):window.orientation===0||window.orientation===180},pgA=async t=>new Promise((i,r)=>{let s;if(pC(t))s=new Image,s.crossOrigin="anonymous",s.src=t;else if(s=t,s.complete)return void i(s);s.onload=()=>i(s),s.onerror=()=>{r(new Ws({code:xa.INVALID_PARAMETER,message:`load image failed, url: ${t}`}))}}),h9=t=>{const i=t.split(".");return+i[0]<<24|+i[1]<<16|+i[2]<<8|+i[3]},p9=t=>(Object.keys(t).forEach(i=>{uD(t[i])&&(i.startsWith("uint")||i.startsWith("int"))?t[i]=Math.floor(t[i]):(yw(t[i])||dC(t[i]))&&p9(t[i])}),t);function Rw(t,i){return new Promise(r=>{const s=setTimeout(r,t);i&&i(s)})}function f9(t,i){let r=null;return function(...s){return r||(r=t.apply(i||this,s),r.finally(()=>r=null),r)}}function fgA(t){return t.replace(/(^|[^:])\/{2,}/g,"$1/")}function mgA(t){var i;try{const{width:r,height:s,frameRate:g,sampleRate:B,sampleSize:Q,channelCount:f}=(i=t.getSettings)==null?void 0:i.call(t),m=t.kind===gt.AUDIO?`${B}x${Q}@${f}`:`${r}x${s}@${g}`,M=t.stats?` stats: ${JSON.stringify(t.stats).replaceAll('"',"")}`:"";return`${t.id} ${t.readyState} muted:${t.muted} ${t.kind} ${t.label} ${m}${M}`}catch{return""}}function m9(t,i){return t.width*t.height===i.width*i.height?1:d9()&&i.width>i.height&&t.height>i.width?Math.max(t.width/i.height,t.height/i.width,1):Math.max(t.width/i.width,t.height/i.height,1)}function D9(t){return t===90||t===270}async function DgA(t){return new Promise((i,r)=>{const s=document.createElement("video");s.crossOrigin="anonymous",s.src=t,s.muted=!0,s.loop=!0,s.playsInline=!0,s.play().then(()=>i(s)),s.onerror=()=>{r(s.error)}})}function Lj(t,i=new WeakMap){if(typeof t!="object"||t===null)return t;if(i.has(t))return i.get(t);if(Array.isArray(t)){const r=[];return i.set(t,r),t.forEach((s,g)=>{r[g]=Lj(s,i)}),r}if(Object.prototype.toString.call(t)==="[object Object]"){const r={};return i.set(t,r),Reflect.ownKeys(t).forEach(s=>{r[s]=Lj(t[s],i)}),r}return t}var y9=(t=>(t[t.END_REPORT=2001]="END_REPORT",t[t.LOG=2002]="LOG",t[t.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",t))(y9||{});function ygA(t,i,r,s){let g={data:t,random:Math.floor(Math.random()*2147483648),sdkAppId:r};return Fr(s)||(g=lB(cr({},g),{gzip:+s})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:i,bytes_report_data:JSON.stringify(g)}}}function M3(t,i,r,s){try{const g=ygA(t,i,r,s);return JsA(Gj(g),r)}catch{return JSON.stringify(t)}}function RgA(t,i){const r=new Uint8Array(t.byteLength+i.byteLength);return r.set(new Uint8Array(t),0),r.set(new Uint8Array(i),t.byteLength),r.buffer}function MgA(t){return(65535&t)>>>0}function wgA(t){return(4294901760&t)>>>0}function w3(t){return!!(t&&t instanceof CanvasCaptureMediaStreamTrack&&t.canvas.id.includes("trtc_mix"))}function SgA(t){const i=vgA(t);return i?.busiBuff}function vgA(t){try{const i={};let r=0;i.totalLength=sE(t,r),r+=4,i.version=sE(t,r),r+=4,i.encryption=v5(t,r),r+=1,i.uinType=v5(t,r),r+=1,i.uinLength=sE(t,r),r+=4,i.uin=i.uinLength>4?BG(t,r,i.uinLength-4):"",r+=i.uinLength-4;const s=t.slice(r);if(i.encryption===2){const g=new Uint8Array(16).fill(0);t=NgA(s,g),i.decrypted=!0,r=0}else t=s,r=0;return i.rspHeadLength=sE(t,r),r+=4,i.seqNo=sE(t,r),r+=4,i.retCode=sE(t,r),r+=4,i.retStrLength=sE(t,r),r+=4,i.retStr=i.retStrLength?BG(t,r,i.retStrLength-4):"",r+=i.retStrLength-4,i.serviceCmdLength=sE(t,r),r+=4,i.serviceCmd=i.serviceCmdLength?BG(t,r,i.serviceCmdLength-4):"",r+=i.serviceCmdLength-4,i.cookieLength=sE(t,r),r+=4,i.cookie=i.cookieLength?BG(t,r,i.cookieLength-4):"",r+=i.cookieLength-4,i.flag=sE(t,r),r+=4,i.busiBuffLength=sE(t,r),r+=4,i.busiBuff=i.busiBuffLength?BG(t,r,i.busiBuffLength-4):"",r+=i.busiBuffLength-4,i}catch{}}function R9(t,i){let r=t[0]<<24|t[1]<<16|t[2]<<8|t[3],s=t[4]<<24|t[5]<<16|t[6]<<8|t[7];r>>>=0,s>>>=0;let g=kj*_j>>>0;for(let B=0;B<_j;B++)s-=(r<<N5)+i[2]^r+g^(r>>>5)+i[3],s>>>=0,r-=(s<<N5)+i[0]^s+g^(s>>>5)+i[1],r>>>=0,g-=kj,g>>>=0;return new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r,s>>>24&255,s>>>16&255,s>>>8&255,255&s])}function NgA(t,i){let r=0;const s=new Uint8Array(8).fill(0);let g=R9(new Uint8Array(t.slice(0,8)),i);const B=7&g[0],Q=t.length-1-B-qG-KG,f=new Uint8Array(Q);let m=0,M=s,v=t.slice(0,8);r=8;let U=1;U+=B;for(let z=1;z<=qG;)if(U<8)U++,z++;else if(U===8){const sA=UK(t,r,M,v,g,i);M=sA.ivPreCrypt,v=sA.ivCurCrypt,g=sA.debiBuf,r=sA.bufPos,U=0}let AA=Q;for(;AA>0;)if(U<8)f[m++]=g[U]^M[U],U++,AA--;else if(U===8){const z=UK(t,r,M,v,g,i);M=z.ivPreCrypt,v=z.ivCurCrypt,g=z.debiBuf,r=z.bufPos,U=0}for(let z=1;z<=KG;)if(U<8)g[U],M[U],U++,z++;else if(U===8){if(r>=t.length)break;const sA=UK(t,r,M,v,g,i);if(!sA.success)break;M=sA.ivPreCrypt,v=sA.ivCurCrypt,g=sA.debiBuf,r=sA.bufPos,U=0}return f}function UK(t,i,r,s,g,B){if(i+8>t.length)return{success:!1};const Q=new Uint8Array(s),f=t.slice(i,i+8),m=new Uint8Array(8);for(let M=0;M<8;M++)m[M]=g[M]^f[M];return{success:!0,ivPreCrypt:Q,ivCurCrypt:f,debiBuf:R9(m,B),bufPos:i+8}}var k5=typeof TextDecoder<"u"?new TextDecoder:void 0;function M9({url:t,body:i,method:r="POST",timeout:s,priority:g}){return new Promise((B,Q)=>{if("fetch"in window)return fetch(t,{method:r,body:i,priority:g}).then(m=>m.clone().json().then(M=>({data:M}),()=>m.arrayBuffer().then(M=>({data:SgA(new Uint8Array(M))||(k5?k5.decode(M):M)})))).then(B,Q);const f=new XMLHttpRequest;f.onreadystatechange=()=>{if(f.readyState===4)if(f.status>=200&&f.status<300)try{const m=JSON.parse(f.response);B({data:m})}catch{B({data:f.response})}else Q({status:f.status,statusText:f.statusText||"request failed!"})},f.timeout=s||5e3,f.open(r,t,!0),f.send(i)})}var TgA=Object.prototype.hasOwnProperty,rw=t=>typeof t=="function",WM=t=>t===void 0,GgA=t=>typeof t=="boolean",OK=t=>t.isRemote,kgA=function(t){if(!t||typeof t!="object"||Object.prototype.toString.call(t)!="[object Object]")return!1;const i=Object.getPrototypeOf(t);if(i===null)return!0;const r=Object.prototype.hasOwnProperty.call(i,"constructor")&&i.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.toString.call(r)===Function.prototype.toString.call(Object)};function _gA(t){if(t==null)return!0;if(typeof t=="boolean")return!1;if(typeof t=="number")return t===0;if(typeof t=="string"||typeof t=="function"||Array.isArray(t))return t.length===0;if(t instanceof Error)return t.message==="";if(kgA(t))switch(Object.prototype.toString.call(t)){case"[object File]":case"[object Map]":case"[object Set]":return t.size===0;case"[object Object]":for(const i in t)if(TgA.call(t,i))return!1;return!0}return!1}var bgA=0,LgA=1,_5=2;function FgA({retryFunction:t,settings:i,onError:r,onRetrying:s,onRetryFailed:g,onRetrySuccess:B,context:Q}){return function(...f){const{retries:m=5,timeout:M=1e3}=i;let v=0,U=-1,AA=bgA;const z=async(sA,eA)=>{const X=Q||this;try{const QA=await t.apply(X,f);v>0&&B&&B.call(this,v),v=0,sA(QA)}catch(QA){const wA=()=>{clearTimeout(U),v=0,AA=_5,eA(QA)},HA=()=>{AA!==_5&&v<(rw(m)?m():m)?(v++,AA=LgA,rw(s)&&s.call(this,v,wA),U=window.setTimeout(()=>{U=-1,z(sA,eA)},rw(M)?M(v):M)):(wA(),rw(g)&&g.call(this,QA))};rw(r)?r.call(this,{error:QA,retry:HA,reject:eA,retryFuncArgs:f,retriedCount:v}):HA()}};return new Promise(z)}}var S3=FgA,xK=class w9{constructor(i){OA(this,"_parentPath"),OA(this,"userId"),OA(this,"remoteUserId"),OA(this,"id"),OA(this,"sdkAppId"),OA(this,"type"),OA(this,"isLocal"),this.id=i.id,this.userId=i.userId,this.sdkAppId=i.sdkAppId,this.remoteUserId=i.remoteUserId,this.isLocal=!GgA(i.isLocal)||i.isLocal,this.type=this.isLocal?"":i.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(i){const r=new w9({id:i.id,userId:WM(i.userId)?this.userId:i.userId,sdkAppId:WM(i.sdkAppId)?this.sdkAppId:i.sdkAppId,type:WM(i.type)?this.type:i.type,isLocal:WM(i.isLocal)?this.isLocal:i.isLocal,remoteUserId:WM(i.remoteUserId)?this.remoteUserId:i.remoteUserId});return r.bindParent(this),r}bindParent(i){const r=i.getFullId();this._parentPath!==r&&(this.debug(`bind logger parent: ${i.id}`),this._parentPath=r,this.userId=i.userId||this.userId,this.sdkAppId=i.sdkAppId||this.sdkAppId)}setUserId(i){this.userId=i}setSdkAppId(i){this.sdkAppId=i}log(i,r){const s=this.isLocal?this.userId:this.remoteUserId,g=this.getFullId();r.unshift(`[${this.isLocal?"↑":"↓"}${this.type&&this.type!=="main"?"*":""}${g}${s?`|${s}`:""}]`),qi.log(i,r,WM(this.userId)||_gA(this.userId),this.userId,this.sdkAppId)}info(...i){this.log(2,i)}debug(...i){this.log(1,i)}warn(...i){this.log(3,i)}error(...i){this.log(4,i)}},Fu=typeof navigator>"u"?"":navigator.userAgent,bo=t=>new RegExp(t,"i").test(Fu),cs=t=>{if(bo(t)){const i=new RegExp(`${t}\\/([\\d.]+)`),r=Fu.match(i);if(r&&r[1])return r[1]}return""},mY=t=>{if(bo(t)){const i=new RegExp(`${t}\\/(\\d+)`),r=Fu.match(i);if(r&&r[1])return parseFloat(r[1])}return NaN},b5=/AppleWebKit\/([\d.]+)/i.exec(Fu);b5&&parseFloat(b5[1]);var v3=bo("iPad"),S9=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&bo("Macintosh"),DY=bo("iPhone")&&!v3,UgA=bo("iPod"),UI=DY||v3||UgA||S9,J2=()=>{try{return UI&&navigator.maxTouchPoints>1&&navigator.vendor.includes("Apple")}catch{return UI}},hl=bo("Android"),v9=function(){if(hl){const t=Fu.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(t){const i=t[1]&&parseFloat(t[1]),r=t[2]&&parseFloat(t[2]);if(i&&r)return parseFloat(`${t[1]}.${t[2]}`);if(i)return i}}return NaN}();hl&&bo("webkit")&&v9<2.3;var Ql=bo("Firefox"),N9=cs("Firefox"),T9=mY("Firefox"),yk=bo("Edge"),G9=cs("Edge"),yY=bo("Edg"),k9=cs("Edg"),OgA=mY("Edg"),N3=bo("SogouMobileBrowser"),_9=cs("SogouMobileBrowser"),T3=bo("MetaSr\\s"),b9=cs("MetaSr\\s"),Id=bo("TBS"),L9=cs("TBS"),Gw=bo("XWEB"),F9=cs("XWEB");bo("MSIE\\s8\\.0");var xgA=bo("MSIE\\/\\d+");(function(){if(xgA){const t=/MSIE\s(\d+)\.\d/.exec(Fu);let i=t&&parseFloat(t[1]);return!i&&/Trident\/7.0/i.test(Fu)&&/rv:11.0/.test(Fu)&&(i=11),i}return NaN})();var Rk=bo("(micromessenger|webbrowser)"),U9=cs("MicroMessenger"),RY=!Id&&bo("MQQBrowser")&&bo("COVC"),MY=!Id&&bo("MQQBrowser")&&!bo("COVC"),H2=MY||RY?cs("MQQBrowser"):"",G3=!Id&&bo(" QQBrowser"),O9=cs(" QQBrowser"),k3=!Id&&bo("QQBrowserLite"),x9=cs("QQBrowserLite"),_3=!Id&&bo("MQBHD"),Y9=cs("MQBHD"),P9=bo("Windows"),wY=!UI&&bo("MAC OS X"),J9=!hl&&bo("Linux"),H9=bo("CrOS");bo("MicroMessenger");var YgA=bo("UCBrowser");bo("Electron");var b3=bo("MiuiBrowser"),V9=cs("MiuiBrowser"),L3=bo("HuaweiBrowser"),q9=bo("Huawei")||bo("HUAWEI"),PgA=bo("Honor")||bo("HONOR"),K9=cs("HuaweiBrowser"),F3=bo("SamsungBrowser"),j9=cs("SamsungBrowser"),SY=bo("HeyTapBrowser"),W9=cs("HeyTapBrowser"),U3=bo("VivoBrowser"),z9=cs("VivoBrowser"),O3=bo("OpenHarmony");cs("OpenHarmony");var Z9=()=>mY("Chrome"),V2=bo("CriOS"),pp=bo("Chrome"),x3=!yk&&!T3&&!N3&&!Id&&!Gw&&!yY&&!G3&&!b3&&!L3&&!F3&&!SY&&!U3&&pp,JgA=bo("HeadlessChrome"),fp=Z9(),YK=pp&&fp>=128&&fp<=143,X9=cs("Chrome");mY("Electron");var IE=!pp&&!MY&&!RY&&!k3&&!_3&&bo("Safari"),$9=IE||UI,Mk=cs("Version"),_u=(()=>{if(S9)return Mk;if(UI){const t=Fu.match(/OS (\d+)_(\d+)/i);if(t&&t[1]){let i=t[1];return t[2]&&(i+=`.${t[2]}`),i}}return""})();function HgA(t,i){const r=t.split(".").map(g=>Number(g)),s=i.split(".").map(g=>Number(g));for(let g=0;g<Math.max(r.length,s.length);g++){const B=r[g]||0,Q=s[g]||0;if(B<Q)return!0;if(B>Q)return!1}return!1}function AX(t,i,r=!1){const s=t.split(".").map(B=>Number(B)),g=i.split(".").map(B=>Number(B));for(let B=0;B<Math.max(s.length,g.length);B++){const Q=s[B]||0,f=g[B]||0;if(Q>f)return!0;if(Q<f)return!1}return r}var QD=Number(_u.split(".")[0]),VgA=_u==="15.1",qgA=(()=>{const t=Number(_u.split(".")[0]);return t===14||t===13})(),KgA=V2&&Mk==="11.1.1",q2=typeof location<"u"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),zM=(()=>{let t;return()=>{if(t===void 0)try{t=!!window.localStorage}catch{t=!1}return t}})(),nD=jgA();function jgA(){const t=new Map([[Ql,["Firefox",N9]],[yY,["Edg",k9]],[x3,["Chrome",X9]],[V2,["ChiOS",cs("CriOS")]],[IE&&!V2,["Safari",Mk]],[Id,["TBS",L9]],[Gw,["XWEB",F9]],[Rk&&DY,["WeChat",U9]],[G3,["QQ(Win)",O9]],[MY,["QQ(Mobile)",H2]],[RY,["QQ(Mobile X5)",H2]],[k3,["QQ(Mac)",x9]],[_3,["QQ(iPad)",Y9]],[b3,["MI",V9]],[L3,["HW",K9]],[F3,["Samsung",j9]],[SY,["OPPO",W9]],[U3,["VIVO",z9]],[yk,["EDGE",G9]],[N3,["SogouMobile",_9]],[T3,["Sogou",b9]]]);let i="unknown",r="unknown";return t.has(!0)&&([i,r]=t.get(!0)),{name:i,version:r}}function WgA(){return hl||UI||DY||v3||O3}var zgA="";function eX(){return ZgA()||""}function ZgA(){const t=Fu.match(/;\s*([^;)]+)\s+Build\//);return t?.[1]?t[1].trim():null}var L5=new Map([[hl,"Android"],[UI,"iOS"],[P9,"Windows"],[wY,"MacOS"],[J9,"Linux"],[H9,"ChromeOS"]]),tX=function(){return L5.get(!0)?L5.get(!0):"unknown"};function Y3(){return P9?1:hl?2:wY?3:UI?4:J9?5:H9?6:O3?7:0}function XgA(){return Rk||Gw?4:pp?1:IE?2:Ql?3:0}var iX=()=>{let t=tX();return UI?t+=`/${_u}`:hl&&(t+=`/${v9}`),t+=`/${nD.name}/${IE&&!V2?nD.version:nD.version.split(".")[0]}`,t},$gA=Tw(mk()),AIA=new $gA.default,Eo=AIA,oX=(t=>(t.ROOM_DESTROY="1",t.JOIN_START="21",t.JOIN_SCHEDULE_SUCCESS="22",t.JOIN_SIGNAL_CONNECTION_START="23",t.JOIN_SIGNAL_CONNECTION_END="24",t.JOIN_SEND_CMD="25",t.JOIN_RECEIVED_CMD_RES="26",t.JOIN_SUCCESS="27",t.JOIN_FAILED="28",t.LEAVE_START="51",t.LEAVE_SEND_CMD="52",t.LEAVE_SUCCESS="53",t.PUBLISH_START="61",t.SEND_FIRST_VIDEO_FRAME="62",t.PUBLISH_FAILED="63",t.SUBSCRIBE_START="81",t.SUBSCRIBE_SUCCESS="82",t.SUBSCRIBE_FAILED="84",t.UNSUBSCRIBE_SUCCESS="83",t.LOCAL_TRACK_CAPTURE_START="101",t.LOCAL_TRACK_CAPTURE_SUCCESS="102",t.LOCAL_TRACK_CAPTURE_FAILED="103",t.LOCAL_TRACK_PUBLISHED="104",t.LOCAL_TRACK_UNPUBLISHED="105",t.LOCAL_TRACK_REPLACED="106",t.SWITCH_DEVICE_SUCCESS="107",t.TRACK_MUTED="108",t.TRACK_UNMUTED="109",t.REMOTE_TRACK_SUBSCRIBED="110",t.REMOTE_TRACK_UNSUBSCRIBED="111",t.LOCAL_TRACK_RECAPTURE="112",t.LOCAL_AUDIO_STARTED="113",t.LOCAL_AUDIO_STOPPED="114",t.REMOTE_AUDIO_STARTED="115",t.REMOTE_AUDIO_STOPPED="116",t.LOCAL_TRACK_STOPPED="117",t.LOCAL_VIDEO_TRACK_PREPROCESSED="118",t.PLAY_TRACK_START="151",t.PLAYER_STATE_CHANGED="152",t.VIDEO_LOADED_DATA="153",t.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",t.AUDIO_CONTEXT_LONG_SUSPENDED="155",t.REMOTE_VIDEO_PLAY_START="156",t.REMOTE_VIDEO_PLAY_FINISH="157",t.SIGNAL_CONNECTION_STATE_CHANGED="201",t.PEER_CONNECTION_STATE_CHANGED="202",t.SINGLE_CONNECTION_STAT="203",t.SPC_RECONNECTED="204",t.HEARTBEAT_REPORT="251",t.RECEIVED_PUBLISHED_USER_LIST="252",t.REMOTE_PUBLISH_STATE_CHANGED="253",t.AUDIO_LEVEL_INTERVAL="260",t.NETWORK_QUALITY="261",t.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",t.QUALITY_LIMITATION_CHANGED="263",t.LOG="264",t.AUDIO_PROCESSOR_DEBUG="265",t.SSO_SWITCH="266",t.SEI_MESSAGE="267",t.USER_PAUSE_IN_PIP="268",t.USER_RESUME_IN_PIP="269",t.ENTER_PICTURE_IN_PICTURE="270",t.LEAVE_PICTURE_IN_PICTURE="271",t.SWITCH_ROOM_START="401",t.SWITCH_ROOM_SUCCESS="407",t.SWITCH_ROOM_FAILED="408",t))(oX||{}),nr=oX,eIA=class{constructor(){OA(this,"enable",!1),OA(this,"ssoFailCount",0),Eo.on("22",({schedule:t})=>{var i;(i=t?.config)!=null&&i.sso&&Eo.emit("266",{enable:!0})}),Eo.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&Eo.emit("266",{enable:!1})}},Fj=new eIA,tIA="%cTRTC%c%s",iIA="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",oIA="display: inline",rX=class nX{constructor(){OA(this,"_isEnableUploadLog",!0),OA(this,"_localJoinedUser",new Map),OA(this,"_queue",[]),OA(this,"_timeoutId",-1),OA(this,"_logLevel",1),OA(this,"_logLevelToUpload",2),o9||r9||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){Eo.on(nr.JOIN_SCHEDULE_SUCCESS,({schedule:i})=>{var r;(r=i?.config)!=null&&r.logLevelToUpload&&iw[i.config.logLevelToUpload]&&(this._logLevelToUpload=i.config.logLevelToUpload)}),Eo.on(nr.JOIN_START,({params:i})=>{this.addJoinedUser({userId:i.userId,sdkAppId:i.sdkAppId}),this.startUpload()}),Eo.on(nr.LEAVE_SUCCESS,({room:i})=>{this.deleteJoinedUser(i.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(i){this._localJoinedUser.set(i.userId,i),this.startUpload()}deleteJoinedUser(i){this._localJoinedUser.delete(i)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){const i={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return i;let r=0;for(;r<this._queue.length&&r!==50;r++){const s=this._queue[r];if(s.forAllJoinedClients)this._localJoinedUser.forEach(({userId:g,sdkAppId:B})=>{i.map.has(g)?i.map.get(g).logs.push(s):i.map.set(g,{userId:g,sdkAppId:B,logs:[s]})});else if(pC(s.userId)&&uD(s.sdkAppId)){const{userId:g,sdkAppId:B}=s;i.map.has(g)?i.map.get(g).logs.push(s):i.map.set(g,{userId:g,sdkAppId:B,logs:[s]})}}return i.map.size>0&&(i.splicedQueue=this._queue.splice(0,r)),i}async upload(){if(this._queue.length===0||!this._isEnableUploadLog)return;const{map:i,splicedQueue:r}=this.getLogsToUpload();if(i.size===0)return;try{const g=[...i.values()];for(let B=0;B<g.length;B++){const{userId:Q,sdkAppId:f,logs:m}=g[B],M={timestamp:i9(),sdkAppId:String(f),userId:Q,version:x2,log:m.map(AA=>AA.log).join(`
`)},v=JSON.stringify(M),U=Fj.enable?M3(M,2002,f):v;await this.uploadLogWithRetry(U,f,U instanceof Uint8Array,v),m.forEach(AA=>AA.uploaded=!0)}}catch{}const s=r.filter(g=>!g.uploaded);s.length>0&&(this._queue=s.concat(this._queue))}uploadLogWithRetry(i,r,s,g){return S3({retryFunction:()=>M9({url:D3(r,n9.LOG),body:i,timeout:5e3,priority:"low"}).then(B=>{s&&B.data!=="ok"&&(Fj.handleUploadFailed(),this.uploadLogWithRetry(g,r,!1,g))}),settings:{retries:3,timeout:2e3},onError:({retry:B})=>{B()}})()}getPrefix(i){const r=new Date;return r.setTime(m3()),`[${RsA(r)}] <${iw[i]}>`}getLogLevel(){return this._logLevel}setLogLevel(i){Fr(iw[i])||(this._logLevel!==i&&this.info("setLogLevel",i),this._logLevel=i)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(i){if(pC(i))return i;try{return i instanceof Error?i.toString():JSON.stringify(i)}catch{return""}}addLogToQueue(i,r,s=!0,g,B){const Q={log:r.reduce((f,m)=>`${f} ${this.logChunkToString(m)}`.trim(),""),level:i,userId:g,sdkAppId:B,forAllJoinedClients:s};Eo.emit(nr.LOG,{log:Q}),this._isEnableUploadLog&&i>=this._logLevelToUpload&&this._queue.push(Q)}log(i,r,s=!0,g,B){var Q;if(r.unshift(this.getPrefix(i)),this.addLogToQueue(i,r,s,g,B),i<this._logLevel)return;const f=((Q=iw[i])==null?void 0:Q.toLowerCase())||"info";nX.PRINT_LOG_TAG?console[f](tIA,iIA,oIA,...r):console[f](...r)}debug(...i){this.log(1,i)}info(...i){this.log(2,i)}warn(...i){this.log(3,i)}error(...i){this.log(4,i)}createLogger(i){if(i.parent instanceof xK){const r=i,{parent:s}=r,g=lsA(r,["parent"]),B=new xK(g);return B.bindParent(s),B}return new xK(i)}checkURLParam(){const i=new URLSearchParams(location.search).get("logLevelToUpload"),r=i?Number(i):-1;iw[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};OA(rX,"PRINT_LOG_TAG",!(UI||hl||JgA));var rIA=rX,qi=new rIA,nIA=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const i=16*Math.random()|0;return(t=="x"?i:3&i|8).toString(16)})},aX=nIA,aIA=class{constructor(){OA(this,"_prefix","TRTC"),OA(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){zM()&&(setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(t=>{if(t.startsWith(this._prefix))try{const i=localStorage.getItem(t);if(!i)return!1;const r=JSON.parse(i);if(r&&r.expiresIn<Date.now())return!0}catch{return!1}return!1}).forEach(t=>localStorage.removeItem(t)))}doFlush(){if(zM())try{for(const[t,i]of this._queue)localStorage.setItem(t,JSON.stringify(i))}catch(t){qi.warn(t)}}getItem(t){if(!zM())return null;try{const i=localStorage.getItem(this.getRealKey(t));if(!i)return null;const r=JSON.parse(i);return r&&r.expiresIn>=Date.now()?r.value:null}catch(i){qi.warn(i)}}setItem(t,i){if(zM())try{const r={expiresIn:Date.now()+TsA,value:i};this._queue.set(this.getRealKey(t),r)}catch(r){qi.warn(r)}}deleteItem(t){if(!zM())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(i){return qi.warn(i),!1}}clear(){if(zM())try{localStorage.clear()}catch(t){qi.warn(t)}}},sX=new aIA,sIA={};p3(sIA,{HTTPS_API:()=>fIA,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>DX,IS_GET_CAPABILITIES_SUPPORTED:()=>mX,IS_GET_SETTINGS_SUPPORTED:()=>W2,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>NIA,IS_INSERTABLE_STREAM_SUPPORTED:()=>yX,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>LIA,IS_RTC_RTP_SENDER_SUPPORTED:()=>wk,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>RX,IS_SEI_SUPPORTED:()=>TIA,IS_SPC_SUPPORTED:()=>MIA,basis:()=>kIA,capabilityCheck:()=>_IA,checkSystemRequirementsInternal:()=>EX,decodeSupportStatus:()=>cX,detectH264SupportedByFakeStreaming:()=>lX,detectVideoCodecCapabilities:()=>FIA,detectVideoDecoderCapabilities:()=>TX,detectVideoEncoderCapabilities:()=>NX,encodeSupportStatus:()=>V3,getBrowserInfo:()=>CIA,getDisplayResolution:()=>CX,getH264ProfileLevelIds:()=>GX,isAddTransceiverSupported:()=>NY,isBrowserSupported:()=>P3,isCanvasCaptureStreamAPISupported:()=>QX,isCanvasSmallStreamSupported:()=>dX,isGetReceiversSupported:()=>yIA,isGetSendersSupported:()=>fX,isGetTransceiversSupported:()=>RIA,isGetUserMediaSupported:()=>BX,isMediaDevicesSupported:()=>H3,isMediaSessionSupported:()=>wX,isMediaStreamTrackGeneratorSupported:()=>uIA,isMediaStreamTrackProcessorSupported:()=>BIA,isReplaceTrackSupported:()=>SIA,isRequestVideoFrameCallbackSupported:()=>j3,isSIMDSupported:()=>GIA,isScaleResolutionDownBySupported:()=>hX,isScreenCaptureApiAvailable:()=>q3,isSelectedCandidatePair:()=>mIA,isSetParametersSupported:()=>vIA,isSetSinkIdSupported:()=>hIA,isSmallStreamSupported:()=>pX,isStopTransceiverSupported:()=>wIA,isTRTCSupported:()=>dIA,isUnifiedPlanDefault:()=>DIA,isUsedInHttpProtocol:()=>vY,isWebAudioSupported:()=>uX,isWebCodecSupported:()=>MX,isWebCodecsSupported:()=>J3,isWebRTCSupported:()=>K3,isWebTransportSupported:()=>SX});var K2={PLAY_FAILED:"PLAY_FAILED",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND"},Iw={AVOID_REPEATED_CALL:t=>`previous ${t.name}() is ongoing, please avoid repeated calls.`,INVALID_PARAMETER_REQUIRED:({key:t,rule:i,fnName:r,value:s})=>`'${t||i.name}' is a required param when calling ${r}(), received: ${s}.`,INVALID_PARAMETER_TYPE({key:t,rule:i,fnName:r,value:s}){const g=`${t||i.name}`;let B="";return B=Array.isArray(i.type)?i.type.join("|"):i.type,`'${g}' must be type of ${B} when calling ${r}(), received type: ${BD(s)}.`},INVALID_PARAMETER_EMPTY:({key:t,rule:i,fnName:r,value:s})=>`'${t||i.name}' cannot be '${s}' when calling ${r}().`,INVALID_PARAMETER_INSTANCE:({key:t,rule:i,fnName:r,value:s})=>`'${`${t||i.name}`}' must be instanceof ${`${i.instanceOf.name||i.instanceOf}`} when calling ${r}(), received type: ${BD(s)}.`,INVALID_PARAMETER_RANGE:({key:t,rule:i,fnName:r,value:s})=>`'${t||i.name}' must be one of ${i.values.join("|")} when calling ${r}(), received: ${s}.`,INVALID_PARAMETER_MIN:({key:t,rule:i,fnName:r,value:s})=>`the min value of ${t||i.name} is ${i.min}, received: ${s}.`,INVALID_PARAMETER_MAX:({key:t,rule:i,fnName:r,value:s})=>`the max value of ${t||i.name} is ${i.max}, received: ${s}.`,API_CALL_TIMEOUT:t=>`${t.commandDesc||t.command} timeout observed.`,SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED:t=>`SignalChannel setup failure: (errorCode: ${t.errorCode}, errorMsg: ${t.errorMsg} }).`,ERROR_MESSAGE(t){let i=`${t.type} failed`;return t.message&&(i=`${i}: ${t.message}.`),i},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED:t=>`exchange sdp failed ${t.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:t=>`'${t}' must be validate string when useStringRoomId is true.`,INVALID_ROOMID_INTEGER:t=>`'${t}' must be an integer between [1, 4294967294] when useStringRoomId is false.`,INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED:({error:t,code:i})=>`Failed to join room - ${t} code: ${i}`,REJOIN_ROOM_FAILED:t=>`reJoin room: ${t.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:t=>`duplicate ${t} stream publishing, please unpublish your prev ${t} stream and then re-publish.`,INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED:({message:t,userId:i,streamType:r})=>`failed to subscribe ${i} ${r} stream, reason: ${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:t=>`switchRole failed, errCode: ${t.code} errMsg: ${t.message}.`,CLIENT_BANNED:t=>`client was banned because of ${t.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:t=>`startPublishCDNStream failed, errMsg: ${t.message}.`,STOP_PUBLISH_CDN_FAILED:t=>`stopPublishCDNStream failed, errMsg: ${t.message}.`,INVALID_STREAM_ID:t=>`'${t}' 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:t=>`cannot replace ${t.kind} track because stream has not ${t.kind} track`,NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED:t=>`startMixTranscode failed, errMsg: ${t.message}.`,STOP_MIX_TRANSCODE_FAILED:t=>`stopMixTranscode failed, errMsg: ${t.message}.`,MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO:({key:t,rule:i,fnName:r,value:s})=>`'${t||i.name}' cannot be less than 0 when calling ${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:t=>`'${t}' is required and must be between 1 and 15.`,MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:t,fnName:i})=>`'${t}' is not found in the document object when calling ${i}().`,INVALID_ELEMENT_ID_TYPE:({key:t,fnName:i,type:r})=>`the element corresponding to '${t}' must be instanceof HTMLElement when calling ${i}(), received: ${r}.`,PLAY_FAILED:t=>`${t.media} play failed, browser exception: ${t.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:t=>`${t}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:t=>`${t.signalResponse} failed, response code is ${t.code} , errMsg: ${t.message}.`,CATCH_HANDLER_ERROR:({name:t,event:i})=>`an error was caught in ${t}.on('${i}', handler), please check your code in 'handler'.`,API_NOT_EXIST:({name:t})=>`experimental api ${t} does not exist.`,REPEAT_JOIN:t=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED:({funName:t})=>`failed to call ${t}() because client was destroyed.`,SEI_NOT_SUPPORT:t=>"not support to sendSEIMessage"+(t===!1?" without using h264 codec":""),SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:t,name:i,timesInSecond:r,maxSizeInSecond:s})=>`api ${i} call ${t?"size":"times"} is over ${t?`${s} bytes`:r} in a second.`,CONNECTION_ABORTED:t=>`connection aborted due to: ${t}`,API_CALL_ABORTED(t){let i;return i=t.message.includes("REMOTE_STREAM_NOT_EXIST")?`Subscribe ${t.userId} ${t.streamType} stream aborted, reason: remote user ${t.userId} unpublished stream.`:`API aborted, reason: ${t.message}`,i},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:t=>`'streamType' is required when 'userId' is not '*', calling ${t}()`,SWITCH_PLAYBACK_QUALITY_TIMEOUT:t=>`switchPlaybackQuality timeout: waiting for first frame of user ${t.userId}.`},F5=(t,i)=>i?`${Sj}/${t}/${i}`:`${Sj}/${t}/index.html`,gIA=()=>{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 t=localStorage==null?void 0:localStorage.getItem(NsA);if(t){t=JSON.parse(t);const i=document.createElement("script");i.type="text/javascript",i.text=t.message,document.body.appendChild(i);const r=window.TRTC_ERROR_INFO,s=window.TRTC_ERROR_LINK;return document.body.removeChild(i),{TRTC_ERROR_INFO:r,TRTC_ERROR_LINK:s}}return{}};function j2(t){const{key:i,data:r,link:s,addDocLink:g=!0}=t;let B="",Q="",f="";oD(Iw[i])?B=Iw[i](r):pC(Iw[i])&&(B=Iw[i]);const{TRTC_ERROR_INFO:m,TRTC_ERROR_LINK:M}=gIA();s?f=`${s.className}.html#${s.fnName}`:M&&M[i]&&(oD(M[i])?f=M[i](r):pC(M[i])&&(f=M[i]));let v=B;return Bp()&&(m&&m[i]&&(oD(m[i])?Q=m[i](r):pC(m[i])&&(Q=m[i])),Q&&(v=g?`${Q}
请查看文档: ${F5("zh-cn",f)}
`:`${Q}
`,v+=B)),g&&(v+=`
Refer to: ${F5("en",f)}
`),v}var U5=Tw(QsA()),IIA=1,cIA=0,gX=class{constructor(t=!0){OA(this,"countMap",new Map),OA(this,"distributionMap",new Map),OA(this,"version"),OA(this,"log",qi.createLogger({id:"kv"})),t&&(Eo.on("102",({track:i,cost:r})=>{this.addSuccessEvent({key:i.kind===gt.AUDIO?501700:511700,cost:r})}),Eo.on("103",({track:i,error:r})=>{this.addFailedEvent({key:i.kind===gt.AUDIO?501700:511700,error:r})}),Eo.on("266",({enable:i})=>{this.log.info((i?"enable":"disable")+" sso"),i?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,i){const r={msg_sdk_basic_info:{uint32_sdk_version:h9(this.version||x2),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([s,g])=>({uint32_key:s,uint32_count:g})),stats_distribution:[...this.distributionMap.entries()].map(([s,g])=>({uint32_key:s,distribution_items:[...g.entries()].map(([B,Q])=>({uint32_item_key:B,uint32_item_value:Q}))})),str_user_sig:t,bytes_report_token:i};return this.countMap.clear(),this.distributionMap.clear(),r}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){const i=+String(t).slice(-3);return i>=700&&i<799}isErrorCodeKey(t){const i=+String(t).slice(-3);return i>=600&&i<699}isCountKey(t){const i=+String(t).slice(-3);return i>=0&&i<599}isNumberKey(t){const i=+String(t).slice(-3);return i>=800&&i<899}addCount({key:t,useUV:i=!1}){this.isCountKey(t)?i&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1):this.log.debug(`${t} is not count key, last 3 number should be 0~599`)}addEnum({key:t,value:i,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);const g=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;g.set(i,(g.get(i)||0)+1),this.distributionMap.set(t,g)}addNumber({key:t,value:i,split:r=100,useUV:s=!1,max:g=5e3}){var B;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(s&&this.countMap.has(t))return;i>g&&(i=g),this.countMap.set(t,(this.countMap.get(t)||0)+1);const Q=((B=this.distributionMap)==null?void 0:B.get(t))||new Map;let f=0;if(uD(r))f=Math.floor(i/r);else for(let m=r.length-1;m>0;m--)if(i>r[m]){f=m;break}Q.set(f,(Q.get(f)||0)+1),this.distributionMap.set(t,Q)}addSuccessEvent({key:t,cost:i,timeKey:r,split:s}){if(t&&(this.addEnum({key:t,value:IIA,useUV:!1}),i)){const g=+String(t).slice(-3);g<800&&g>=700?this.addNumber({key:r||t+100,value:i,split:s}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:i}){if(!t)return;let r=xa.UNKNOWN;i&&(uD(i)?r=i:Fr(i.extraCode)&&Fr(i.code)||(r=i.extraCode||i.code)),this.addEnum({key:t,value:cIA,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},IX=(t=>(t[t.DECODER_TYPE=514700]="DECODER_TYPE",t[t.DECODER_HW_SW=514701]="DECODER_HW_SW",t[t.DECODE_RESULT=514702]="DECODE_RESULT",t[t.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",t[t.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",t[t.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",t[t.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",t[t.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",t[t.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",t[t.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",t[t.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",t[t.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",t[t.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",t[t.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",t[t.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",t[t.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",t[t.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",t[t.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",t[t.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",t))(IX||{}),EIA=new gX(!0);new gX(!1);var qr=EIA,Oo={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},lIA=new Map([[Ql,["Firefox",N9]],[yY,["Edg",k9]],[x3,["Chrome",X9]],[IE,["Safari",Mk]],[Id,["TBS",L9]],[Gw,["XWEB",F9]],[Rk&&DY,["WeChat",U9]],[G3,["QQ(Win)",O9]],[MY,["QQ(Mobile)",H2]],[RY,["QQ(Mobile X5)",H2]],[k3,["QQ(Mac)",x9]],[_3,["QQ(iPad)",Y9]],[b3,["MI",V9]],[L3,["HW",K9]],[F3,["Samsung",j9]],[SY,["OPPO",W9]],[U3,["VIVO",z9]],[yk,["EDGE",G9]],[N3,["SogouMobile",_9]],[T3,["Sogou",b9]]]);function CIA(){const t=lIA.get(!0);return{browserName:t?t[0]:"unknown",browserVersion:t?t[1]:"unknown"}}var P3=function(){return!YgA&&!yk&&!(yY&&OgA<80)&&!(Ql&&T9<56)},J3=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},H3=function(){if(!navigator.mediaDevices)return vY()||qi.error(Iw.NOT_SUPPORTED_MEDIA),!1;const t=["getUserMedia","enumerateDevices"];return t.filter(i=>i in navigator.mediaDevices).length===t.length},O5=!1;function vY(){return location.protocol==="http:"&&!q2&&(O5||qi.error(j2({key:K2.NOT_SUPPORTED_HTTP})),O5=!0,!0)}var BIA=function(){return window?.OffscreenCanvas&&window?.MediaStreamTrackProcessor&&window?.MediaStreamTrackGenerator},uIA=function(){return!!window?.MediaStreamTrackGenerator},V3=async function(){var t,i,r;if(Oo.detail.isH264EncodeSupported&&Oo.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Oo.detail.isH264EncodeSupported,isVp8EncodeSupported:Oo.detail.isVp8EncodeSupported,isH265EncodeSupported:Oo.detail.isH265EncodeSupported};let s,g=!1,B=!1,Q=!1;try{const f=new RTCPeerConnection,m=document.createElement(gt.CANVAS);m.getContext("2d");const M=m.captureStream(0);return f.addTrack(M.getVideoTracks()[0],M),s=await f.createOffer(),g=((t=s.sdp)==null?void 0:t.toLowerCase().indexOf("h264"))!==-1,B=((i=s.sdp)==null?void 0:i.toLowerCase().indexOf("vp8"))!==-1,Q=((r=s.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1,f.close(),{isH264EncodeSupported:g,isVp8EncodeSupported:B,isH265EncodeSupported:Q}}catch{return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}},cX=async function(){var t;if(Oo.detail.isH264DecodeSupported&&Oo.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Oo.detail.isH264DecodeSupported,isVp8DecodeSupported:Oo.detail.isVp8DecodeSupported,isH265DecodeSupported:Oo.detail.isH265DecodeSupported};let i,r=!1,s=!1;try{const g=new RTCPeerConnection;NY()?(g.addTransceiver(gt.VIDEO,{direction:"recvonly"}),i=await g.createOffer()):i=await g.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(r=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(s=!0);const B=((t=i.sdp)==null?void 0:t.toLowerCase().indexOf("h265"))!==-1;return g.close(),{isH264DecodeSupported:r,isVp8DecodeSupported:s,isH265DecodeSupported:B}}catch{return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}};async function QIA(){const[t,i]=await Promise.all([V3(),cX()]);return{encode:{h264:t.isH264EncodeSupported,vp8:t.isVp8EncodeSupported,h265:t.isH265EncodeSupported},decode:{h264:i.isH264DecodeSupported,vp8:i.isVp8DecodeSupported,h265:i.isH265DecodeSupported}}}var EX=f9(async t=>{const i=Date.now(),r=K3(),s=H3(),g=J3();if(Oo.detail.isWebRTCSupported=r,Oo.detail.isMediaDevicesSupported=s,Oo.detail.isWebCodecsSupported=g,Oo.detail.isScreenShareSupported=q3(),Oo.detail.isSmallStreamSupported=pX(),t===37)return Object.assign(Oo.detail,await pIA()),Oo.detail.isBrowserSupported=g,Oo.result=s&&g,Oo.result||qi.error(`${navigator.userAgent} ${bj(Oo.detail,!1)}`),P5(t),qr.addNumber({key:523800,value:Date.now()-i}),Oo;if(Oo.result&&Oo.detail.isH264EncodeSupported&&Oo.detail.isVp8EncodeSupported&&Oo.detail.isH265EncodeSupported&&Oo.detail.isH264DecodeSupported&&Oo.detail.isVp8DecodeSupported&&Oo.detail.isH265DecodeSupported)return Oo;const B=P3(),{encode:Q,decode:f}=await QIA();let{h264:m,vp8:M}=Q,{h264:v}=f;const{h265:U}=Q,{vp8:AA,h265:z}=f;if(!m||!M){const sA=await V3();qi.warn(`detect encode again h264:${m} vp8:${M} result: ${JSON.stringify(sA)}`),m=sA.isH264EncodeSupported,M=sA.isVp8EncodeSupported}if(m&&v&&hl&&pp&&!Gw&&!Id&&(!SY||fp!==115)){const{encode:sA,decode:eA}=await lX();m=sA,v=eA}return Oo.result=B&&r&&s&&(m||M)&&(v||AA),Oo.detail.isBrowserSupported=B,Oo.detail.isWebRTCSupported=r,Oo.detail.isH264EncodeSupported=m,Oo.detail.isVp8EncodeSupported=M,Oo.detail.isH265EncodeSupported=U,Oo.detail.isH264DecodeSupported=v,Oo.detail.isVp8DecodeSupported=AA,Oo.detail.isH265DecodeSupported=z,Oo.result||qi.error(`${navigator.userAgent} ${bj(Oo.detail,!1)}`),P5(),qr.addNumber({key:523800,value:Date.now()-i}),Oo}),dIA=function(){return Oo.result},q3=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},hIA=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype,x5=null;async function lX(t=2e3){return x5||(x5=new Promise(async i=>{const r={encode:!1,decode:!1};let s=()=>{};try{const g=document.createElement("canvas"),B=g.getContext("2d");g.width=640,g.height=480;const Q=setInterval(()=>{B.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},66);let f=-1,m=-1;s=()=>{clearInterval(f),clearInterval(Q),clearTimeout(m),v.close(),U.close(),M.getTracks().forEach(X=>X.stop())},m=setTimeout(()=>{s(),i(r)},t);const M=g.captureStream(),v=new RTCPeerConnection({}),U=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});v.addEventListener("icecandidate",X=>U.addIceCandidate(X.candidate)),U.addEventListener("icecandidate",X=>v.addIceCandidate(X.candidate)),v.addTrack(M.getVideoTracks()[0],M);const AA=await v.createOffer();await v.setLocalDescription(AA),await U.setRemoteDescription(AA);const z=await U.createAnswer(),sA=U5.default.parse(z.sdp),eA=sA.media[0].rtp.findIndex(X=>X.codec==="H264");sA.media[0].rtp=[sA.media[0].rtp[eA]],sA.media[0].fmtp=sA.media[0].fmtp.filter(X=>X.payload===sA.media[0].rtp[0].payload),sA.media[0].rtcpFb&&(sA.media[0].rtcpFb=sA.media[0].rtcpFb.filter(X=>X.payload===sA.media[0].rtp[0].payload)),z.sdp=U5.default.write(sA),await U.setLocalDescription(z),await v.setRemoteDescription(z),f=setInterval(async()=>{r.encode&&r.decode&&(s(),i(r));const[X,QA]=await Promise.all([v.getSenders()[0].getStats(),U.getReceivers()[0].getStats()]);r.encode||X.forEach(wA=>{wA.type==="outbound-rtp"&&(wA.mediaType===gt.VIDEO||wA.kind===gt.VIDEO)&&wA.bytesSent>0&&(r.encode=!0)}),r.decode||QA.forEach(wA=>{wA.type==="inbound-rtp"&&(wA.mediaType===gt.VIDEO||wA.kind===gt.VIDEO)&&wA.bytesReceived>0&&(r.decode=!0)})},100)}catch(g){s(),qi.warn("detectH264Supported failed",g),i({encode:!0,decode:!0})}}).then(i=>(i.encode||(i.decode=!0),i.encode&&i.decode||qi.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${zgA}`),i)))}var Y5=null;async function pIA(){return Y5||(Y5=new Promise(async t=>{const i={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!J3())return void t(i);let r=null,s=null,g=null;const B=()=>{g&&clearTimeout(g),r=null,s=null};try{r=document.createElement("canvas"),s=r.getContext("2d"),r.width=320,r.height=240;let Q=0;const f=()=>{s&&r&&(s.fillStyle=`hsl(${Q%360}, 50%, 50%)`,s.fillRect(0,0,r.width,r.height),s.fillStyle="white",s.font="20px Arial",s.fillText(`Frame ${Q}`,10,30),Q++)};g=setTimeout(()=>{B(),t(i)},5e3);const m=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(await Promise.all(m.map(async M=>{const v={type:M.type,encodeSupported:!1,decodeSupported:!1};let U;try{U=await new Promise(async(AA,z)=>{try{const sA=new VideoEncoder({output:X=>{AA(X),v.encodeSupported=!0},error:z});sA.configure(M.encodeConfig),f();const eA=new VideoFrame(r,{timestamp:0});sA.encode(eA,{keyFrame:!0}),eA.close(),await sA.flush(),sA.close()}catch(sA){z(sA)}})}catch(AA){return qi.warn(`${M.type} encoder error:`,AA),v}try{await new Promise(async(AA,z)=>{try{const sA=new VideoDecoder({output:eA=>{v.decodeSupported=!0,AA(0),eA.close()},error:z});sA.configure(M.decodeConfig),sA.decode(U),await sA.flush(),sA.close()}catch(sA){z(sA)}})}catch(AA){qi.warn(`${M.type} decoder error:`,AA)}return v}))).forEach(M=>{M.type==="h264"?(i.isH264EncodeSupported=M.encodeSupported,i.isH264DecodeSupported=M.decodeSupported):M.type==="vp8"&&(i.isVp8EncodeSupported=M.encodeSupported,i.isVp8DecodeSupported=M.decodeSupported)}),B(),t(i)}catch(Q){B(),qi.warn("detectWebCodecsSupported failed:",Q),t(i)}}))}var fIA=(t,i,r)=>{location.protocol!=="http:"||q2||(t[i]=()=>{throw new Ws({code:xa.INVALID_OPERATION,message:Iw.NOT_SUPPORTED_HTTP})})},mIA=function(t){return!(t.type!=="candidate-pair"||!t.nominated||t.state!=="in-progress"&&t.state!=="succeeded")&&!(rD(t.selected)&&!t.selected)};function CX(){let t="";return screen.width&&(t+=`${screen.width?screen.width*window.devicePixelRatio:""} * ${screen.height?screen.height*window.devicePixelRatio:""}`),t}function BX(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function uX(){const t={isSupported:!1},i=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let r=0;r<i.length;r++)if(i[r]in window){t.isSupported=!0;break}return t.isSupported}function QX(){return"captureStream"in HTMLCanvasElement.prototype}function dX(){return!(Rk||UI||fp&&fp<63)&&!(!P3()||!QX())}function hX(){return!(fp<74||yk||QD<11||T9<46)}function pX(){return dX()||hX()}var DIA=function(){if(Fr(window.RTCRtpTransceiver)||!NY()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let t=null,i=!1;try{t=new RTCPeerConnection({sdpSemantics:FsA}),t.addTransceiver(gt.AUDIO),i=!0}catch{}return t?.close(),i};function yIA(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function fX(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function RIA(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function NY(){return!(QD===11&&!KgA)&&"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var MIA=!(!NY()||pp&&fp<86);function wIA(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var wk="RTCRtpSender"in window;function SIA(){return wk&&"replaceTrack"in window.RTCRtpSender.prototype}function vIA(){return wk&&"setParameters"in window.RTCRtpSender.prototype&&fX()}var NIA="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,W2=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,mX=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,DX=typeof InputDeviceInfo<"u"&&"getCapabilities"in InputDeviceInfo.prototype,yX=wk&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Z9()>=86,RX="RTCRtpScriptTransform"in window,TIA=wk&&(yX||RX),K3=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function MX(){const t={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return Fr(window.AudioDecoder)||(t.AudioDecoder=!0),Fr(window.AudioEncoder)||(t.AudioEncoder=!0),Fr(window.VideoDecoder)||(t.VideoDecoder=!0),Fr(window.VideoEncoder)||(t.VideoEncoder=!0),Fr(window.ImageDecoder)||(t.ImageDecoder=!0),t}function wX(){return"mediaSession"in navigator&&!Fr(navigator.mediaSession.setActionHandler)}function SX(){return!Fr(window.WebTransport)}function GIA(){return typeof WebAssembly<"u"&&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 kIA(){const t={browser:`${nD.name}/${nD.version}`,os:tX(),displayResolution:CX(),isScreenShareSupported:q3(),isWebRTCSupported:K3(),isGetUserMediaSupported:BX(),isWebAudioSupported:uX(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:MX(),isMediaSessionSupported:wX(),isWebTransportSupported:SX()};return navigator.userAgent.includes("miniProgram")&&(t.browser=`mini/${t.browser}`),t}var vX="checkResult";function P5(t=30){sX.setItem(vX+t,{ua:navigator.userAgent,checkResult:Oo})}function _IA(t){vY();const i=sX.getItem(vX+t);i&&i.ua===navigator.userAgent&&i.checkResult&&bIA(i.checkResult.detail,Oo.detail)&&(Oo=i.checkResult),EX(t)}function bIA(t,i){return!!$m(t)&&Object.keys(i).every(r=>r in t)}function j3(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var LIA="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function J5(t){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[t]}var H5=!1;async function FIA(){var t;try{if(H5||!((t=navigator?.mediaCapabilities)!=null&&t.encodingInfo))return;const i=Y3(),r=XgA();if(i===0||r===0)return;H5=!0;const s=["H264","VP8","VP9","AV1","H265"],[g,B]=await Promise.all([NX(s),TX(s)]);g&&Object.keys(g).forEach(m=>{const M=J5(m.toLowerCase());qr.addEnum({key:513707,value:+`${M}${+g[m].supported}${+g[m].powerEfficient}${i}${r}`,useUV:!1})}),B&&Object.keys(B).forEach(m=>{const M=J5(m.toLowerCase());qr.addEnum({key:514713,value:+`${M}${+B[m].supported}${+B[m].powerEfficient}${i}${r}`,useUV:!1})});const{sender:Q,receiver:f}=GX();qr.addEnum({key:513708,value:+`${i}${r}${+Q.high}`,useUV:!1}),qr.addEnum({key:513709,value:+`${i}${r}${+Q.main}`,useUV:!1}),qr.addEnum({key:514714,value:+`${i}${r}${+f.high}`,useUV:!1}),qr.addEnum({key:514715,value:+`${i}${r}${+f.main}`,useUV:!1})}catch(i){qi.info("detectVideoCodecCapabilities failed",i)}}async function NX(t,i=1920,r=1080,s=30,g=3e3){const B={};try{for(const Q of t){const f=await navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${Q}`,width:i,height:r,bitrate:g,framerate:s}});B[Q]=f}}catch{}return B}async function TX(t,i=1920,r=1080,s=30,g=3e3){const B={};try{for(const Q of t){const f=await navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${Q}`,width:i,height:r,bitrate:g,framerate:s}});B[Q]=f}}catch{}return B}function GX(){const t={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){const i=RTCRtpSender.getCapabilities("video");i&&i.codecs&&i.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){const s=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(s&&s[1])switch(s[1].slice(0,2)){case"42":t.sender.base=!0;break;case"4d":t.sender.main=!0;break;case"64":t.sender.high=!0}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){const i=RTCRtpReceiver.getCapabilities("video");i&&i.codecs&&i.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){const s=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(s&&s[1])switch(s[1].slice(0,2)){case"42":t.receiver.base=!0;break;case"4d":t.receiver.main=!0;break;case"64":t.receiver.high=!0}}})}}catch(i){qi.warn("get H264 profile levelId failed",i)}return t}var UIA=Tw(mk()),V5=Symbol("instance"),r2=Symbol("cacheResult"),PK=class{constructor(t,i,r){this.oldState=t,this.newState=i,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,WG.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},JK=class extends Error{constructor(t,i,r){super(i),this.state=t,this.message=i,this.cause=r}};function OIA(t){return typeof t=="object"&&t&&"then"in t}var jG=new Map;function FI(t,i,r={}){return(s,g,B)=>{const Q=r.action||g;if(!r.context){const m=jG.get(s)||[];jG.has(s)||jG.set(s,m),m.push({from:t,to:i,action:Q})}const f=B.value;B.value=function(...m){let M=this;if(r.context&&(M=Lr.get(typeof r.context=="function"?r.context.call(this,...m):r.context)),M.state===i)return r.sync?M[r2]:Promise.resolve(M[r2]);M.state instanceof PK&&M.state.action==r.abortAction&&M.state.abort(M);let v=null;Array.isArray(t)?t.length==0?M.state instanceof PK&&M.state.abort(M):typeof M.state=="string"&&t.includes(M.state)||(v=new JK(M._state,`${M.name} ${Q} to ${i} failed: current state ${M._state} not from ${t.join("|")}`)):t!==M.state&&(v=new JK(M._state,`${M.name} ${Q} to ${i} failed: current state ${M._state} not from ${t}`));const U=X=>{if(r.fail&&r.fail.call(this,X),r.sync){if(r.ignoreError)return X;throw X}return r.ignoreError?Promise.resolve(X):Promise.reject(X)};if(v)return U(v);const AA=M.state,z=new PK(AA,i,Q);WG.call(M,z);const sA=X=>{var QA;return M[r2]=X,z.aborted||(WG.call(M,i),(QA=r.success)===null||QA===void 0||QA.call(this,M[r2])),X},eA=X=>(WG.call(M,AA,X),U(X));try{const X=f.apply(this,m);return OIA(X)?X.then(sA).catch(eA):r.sync?sA(X):Promise.resolve(sA(X))}catch(X){return eA(new JK(M._state,`${M.name} ${Q} from ${t} to ${i} failed: ${X}`,X instanceof Error?X:new Error(String(X))))}}}}var xIA=typeof window<"u"&&window.__AFSM__?(r,s)=>{window.dispatchEvent(new CustomEvent(r,{detail:s}))}:typeof importScripts<"u"?(r,s)=>{postMessage({type:r,payload:s})}:()=>{};function WG(t,i){const r=this._state;this._state=t;const s=t.toString();t&&this.emit(s,r),this.emit(Lr.STATECHANGED,t,r,i),this.updateDevTools({value:t,old:r,err:i instanceof Error?i.message:String(i)})}var Lr=class lC extends UIA.default{constructor(i,r,s){super(),this.name=i,this.groupName=r,this._state=lC.INIT,i||(i=Date.now().toString(36)),s?Object.setPrototypeOf(this,s):s=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);const g=s[V5];g?this.name=g.name+"-"+g.count++:s[V5]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const i=Object.getPrototypeOf(this),r=jG.get(i)||[];let s=new Set,g=[],B=[];const Q=new Set,f=Object.getPrototypeOf(i);jG.has(f)&&(f.stateDiagram.forEach(M=>s.add(M)),f.allStates.forEach(M=>Q.add(M))),r.forEach(({from:M,to:v,action:U})=>{typeof M=="string"?g.push({from:M,to:v,action:U}):M.length?M.forEach(AA=>{g.push({from:AA,to:v,action:U})}):B.push({to:v,action:U})}),g.forEach(({from:M,to:v,action:U})=>{Q.add(M),Q.add(v),Q.add(U+"ing"),s.add(`${M} --> ${U}ing : ${U}`),s.add(`${U}ing --> ${v} : ${U} 🟢`),s.add(`${U}ing --> ${M} : ${U} 🔴`)}),B.forEach(({to:M,action:v})=>{s.add(`${v}ing --> ${M} : ${v} 🟢`),Q.forEach(U=>{U!==M&&s.add(`${U} --> ${v}ing : ${v}`)})});const m=[...s];return Object.defineProperties(i,{stateDiagram:{value:m},allStates:{value:Q}}),m}static get(i){let r;return typeof i=="string"?(r=lC.instances.get(i),r||lC.instances.set(i,r=new lC(i,void 0,Object.create(lC.prototype)))):(r=lC.instances2.get(i),r||lC.instances2.set(i,r=new lC(i.constructor.name,void 0,Object.create(lC.prototype)))),r}static getState(i){var r;return(r=lC.get(i))===null||r===void 0?void 0:r.state}updateDevTools(i={}){xIA(lC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},i))}get state(){return this._state}set state(i){WG.call(this,i)}};Lr.STATECHANGED="stateChanged",Lr.UPDATEAFSM="updateAFSM",Lr.INIT="[*]",Lr.ON="on",Lr.OFF="off",Lr.instances=new Map,Lr.instances2=new WeakMap;var W3=typeof window<"u",q5=W3&&window.requestIdleCallback||function(t){const i=Date.now();return setTimeout(()=>{t({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-i))})},1e3)},YIA=W3&&window.cancelIdleCallback||function(t){clearTimeout(t)},K5=W3&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),SG=class pc{static generateTaskID(){return this.currentTaskID++}static run(i,r,s){s?.fps&&(s.delay=s.delay||Number((1e3/s.fps).toFixed(2))),s=cr(cr({},i==="interval"?{delay:2e3,count:0,backgroundTask:!0}:i==="ric"?{delay:1e4,count:0}:i==="raf"?{fps:60,delay:16.6,count:0,backgroundTask:!0}:{delay:2e3,count:0,backgroundTask:!0}),s);const g=lB(cr({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:i,callback:r},s),{delay:s.delay});return this.taskMap.set(g.taskID,g),this[i](g),g.taskID}static interval(i){return i.intervalID=setInterval(()=>{i.callback(),i.loopCount+=1,pc.isBreakLoop(i)},i.delay)}static intervalInWorker(i){pc.sharedWorker||(pc.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
const timers = new Map();
self.onmessage = function(e) {
const { taskId, delay, type } = e.data;
if (type === 'start') {
timers.set(taskId, setInterval(() => {
self.postMessage({ type: 'tick', taskId });
}, delay));
} else if (type === 'stop') {
clearInterval(timers.get(taskId));
timers.delete(taskId);
}
};
`],{type:"application/javascript"}))),pc.sharedWorker.onmessage=r=>{var s;if(r.data.type==="tick"){const g=pc.workerTasks.get(r.data.taskId);g&&(pc.isBreakLoop(g)?((s=pc.sharedWorker)==null||s.postMessage({type:"stop",taskId:g.taskID}),pc.workerTasks.delete(g.taskID)):(g.callback(),g.loopCount+=1))}}),pc.workerTasks.set(i.taskID,i),pc.sharedWorker.postMessage({taskId:i.taskID,delay:i.delay,type:"start"})}static timeout(i){const r=()=>{if(i.callback(),i.loopCount+=1,!pc.isBreakLoop(i))return i.timeoutID=setTimeout(r,i.delay)};return i.timeoutID=setTimeout(r,i.delay)}static ric(i){let r,s=Ns();const g=()=>{if(r=Ns()-s,r>=i.delay&&(s=Ns()-Math.floor(r%i.delay),i.callback(),i.loopCount+=1),!pc.isBreakLoop(i))return i.ricID=q5(g,{timeout:i.delay})};return i.ricID=q5(g,{timeout:i.delay})}static raf(i){let r,s=Ns();const g=()=>{if(document.hidden&&i.backgroundTask)return r=Ns()-s,s=Ns(),i.callback(),i.loopCount+=1,pc.isBreakLoop(i)?void 0:i.timeoutID=setTimeout(g,i.delay-Math.floor(r%i.delay));if(r=Ns()-s,r>=i.delay&&(s=Ns()-Math.floor(r%i.delay),i.callback(),i.loopCount+=1),!pc.isBreakLoop(i))return i.rafID=requestAnimationFrame(g)};if(i.rafID=requestAnimationFrame(g),i.backgroundTask){const B=()=>{if(document.hidden){const Q=Ns()-s;Q>=i.delay?g():i.timeoutID=setTimeout(g,i.delay-Q)}};document.addEventListener("visibilitychange",B),i.onVisibilitychange=B,document.hidden&&B()}return i.taskID}static hasTask(i){return this.taskMap.has(i)}static clearTask(i){if(!this.taskMap.has(i))return!0;const{intervalID:r,timeoutID:s,rafID:g,ricID:B,onVisibilitychange:Q}=this.taskMap.get(i);return r&&clearInterval(r),s&&clearTimeout(s),g&&K5&&K5(g),B&&YIA(B),Q&&document.removeEventListener("visibilitychange",Q),this.taskMap.delete(i),!0}static isBreakLoop(i){return!this.hasTask(i.taskID)||i.count!==0&&i.loopCount>=i.count&&(this.clearTask(i.taskID),!0)}};OA(SG,"taskMap",new Map),OA(SG,"currentTaskID",1),OA(SG,"sharedWorker",null),OA(SG,"workerTasks",new Map);var PIA=SG,ku=PIA,vr={LOAD_START:gt.LOADSTART,LOADED_DATA:gt.LOADEDDATA,LOADED_META_DATA:gt.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",RESIZE:gt.RESIZE,TIME_UPDATE:"time-update",LEAVE_PICTURE_IN_PICTURE:gt.LEAVE_PICTURE_IN_PICTURE,ENTER_PICTURE_IN_PICTURE:gt.ENTER_PICTURE_IN_PICTURE,USER_RESUME_IN_PIP_OR_FULL_SCREEN:"user-resume-in-pip-or-full-screen",USER_PAUSE_IN_PIP_OR_FULL_SCREEN:"user-pause-in-pip-or-full-screen",ENTER_FULL_SCREEN:"enter-full-screen",LEAVE_FULL_SCREEN:"leave-full-screen",VOLUME_CHANGE:"volume-change",FIRST_FRAME_RENDER:"first-frame-render"},Uj={};p3(Uj,{create:()=>z3,remove:()=>gk});var zG=new WeakMap;function z3(t,i){zG.has(t)||zG.set(t,[]);const r=zG.get(t),s={add:(g,B)=>("addEventListener"in i?(r.push(i.removeEventListener.bind(i,g,B)),i.addEventListener(g,B)):(r.push(i.off.bind(i,g,B)),i.on(g,B)),s)};return s}function gk(t){const i=zG.get(t);i&&(i.forEach(r=>r()),zG.delete(t))}var JIA=class{constructor(){OA(this,"_roomIdMap",new Map),OA(this,"_configs"),typeof registerProcessor>"u"&&(this._configs={sdkAppId:"",userId:"",version:x2,env:_K.QCLOUD,browserVersion:nD.name+nD.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:i,userId:r,roomId:s}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=i,this._configs.userId=r,this._roomIdMap.set(r,String(s))}logSuccessEvent(t){!q2&&qi.isAbleToUpload&&this._configs.env===_K.QCLOUD&&this.uploadEventToKibana(lB(cr({},t),{result:"success"}))}logFailedEvent(t){if(q2||!qi.isAbleToUpload)return;const{eventType:i,code:r,error:s,userId:g}=t,B={roomId:this._roomIdMap.get(g||this._configs.userId),userId:g,eventType:i,result:"failed",code:r||s?.extraCode||s?.code||xa.UNKNOWN};this._configs.env===_K.QCLOUD&&this.uploadEventToKibana(lB(cr({},B),{error:s}))}uploadEventToKibana(t){let i=`stat-${t.eventType}-${t.result}`;t.eventType!=="delta-join"&&t.eventType!=="delta-leave"&&t.eventType!=="delta-publish"||(i=`${t.eventType}:${t.delta}`),this.uploadEvent({log:i,userId:t.userId}),t.result==="failed"&&(i=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:i,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:i,error:r}){const s={timestamp:i9(),sdkAppId:this._configs.sdkAppId,userId:i||this._configs.userId,version:x2,log:t};r&&(s.errorInfo=r.message,r.stack&&(s.errorInfo+=`
${r.stack}`));const g=Fj.enable?M3(s,2002,Number(this._configs.sdkAppId)):JSON.stringify(s);this.sendRequest(D3(this._configs.sdkAppId,n9.LOG),g)}sendRequest(t,i){setTimeout(()=>M9({url:t,body:i,priority:"low"}).catch(()=>{}),2e3)}},fC=new JIA,Jm=new WeakMap;function HIA({settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:s}){return function(g,B,Q){const f=S3({retryFunction:Q.value,settings:t,onError({error:m,retry:M,reject:v,retryFuncArgs:U}){var AA;i?i.call(this,m,()=>{var z;(z=Jm.get(g))!=null&&z.has(B)?M():v(m)},v,U):(AA=Jm.get(g))!=null&&AA.has(B)?M():v(m)},onRetrying(m,M){var v;rw(r)&&r.call(this,m,M),(v=Jm.get(g))!=null&&v.has(B)&&(Jm.get(g).get(B).stopRetry=M)},onRetryFailed:s});return Q.value=function(...m){const M=Jm.get(g);return M?M.set(B,{args:m}):Jm.set(g,new Map([[B,{args:m}]])),f.apply(this,m).finally(()=>{var v;return(v=Jm.get(g))==null?void 0:v.delete(B)})},Q}}var jm=class extends Lr{constructor(t,i){super(t.id,`${i}-player`),this.options=t,this.kind=i,OA(this,"id"),OA(this,"element",null),OA(this,"track"),OA(this,"url"),OA(this,"attr"),OA(this,"mode"),OA(this,"muted"),OA(this,"_log"),OA(this,"isPausedByUserCall",!1),OA(this,"_pausedRetryCount"),OA(this,"_isElementPlayingFired",!1),OA(this,"_interval"),OA(this,"_delayDestroyTimeoutId",0),OA(this,"_playSuccessResolve"),OA(this,"_isReplayByRecreateMediaStreamCalled",!1),OA(this,"isPlayCalled",!1),OA(this,"isInAutoPlayFailedState",!1),OA(this,"isBindAutoPlayEvent",!1),this.id=t.id,this._log=t.log,this.track=t.track,this.muted=t.muted,this._pausedRetryCount=ow,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${i}-player ${this.id}`)}get isPlaying(){var t;return this._state==="PLAYING"&&((t=this.element)==null?void 0:t.paused)===!1}get isPaused(){var t;return this._state==="PAUSED"||((t=this.element)==null?void 0:t.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(t){this.attr=t}setUrl(t){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),t!==this.url&&(this.url=t,t!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=t))}async play(){if(!this.isPlaying)try{this.isPlayCalled=!0,this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),await new Promise((t,i)=>{this._playSuccessResolve=t,this.element.play().then(t,i)})}catch(t){const i=j2({key:K2.PLAY_FAILED,data:{media:this.kind,error:t}});if(this._log.warn(t),i.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Ws({code:xa.PLAY_NOT_ALLOWED,message:i})}}stop(t=0){var i;this.isPlayCalled=!1,this.isPausedByUserCall=!1,this._isElementPlayingFired=!1,this.unbindEvents(),t>0&&!$9?this._delayDestroyTimeoutId||((i=this.element)==null||i.remove(),this._log.info(`destroy element after 3 * ${t}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*t)):this.destroyElement(),this.handleStopped(gt.ENDED),this._interval>0&&ku.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){this._log.info("pause"),this.isPausedByUserCall=!0,this.doPause()}doPause(){var t;(t=this.element)==null||t.pause()}resume(t=!1){return this.isPausedByUserCall=!1,this.doResume(t)}doResume(t=!1){return this._log.info("resume"),this.isPausedByUserCall||this.isPlaying?Promise.resolve():VgA?this.replay():this.play().catch(()=>{})}setMuted(t){this.element&&(this.element.muted=t),this.muted=t}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){const t=this.handleElementEvent.bind(this);return z3(this.element,this.element).add(gt.PLAYING,t).add(gt.ENDED,t).add(gt.PAUSE,t).add(gt.ERROR,t).add(gt.LOADSTART,t).add(gt.LOADEDDATA,t).add(gt.LOADEDMETADATA,t)}}bindTrackEvents(t=this.track){if(t){const i=this.handleTrackEvent.bind(this);Uj?.create(t,t).add(gt.ENDED,i).add(gt.MUTE,i).add(gt.UNMUTE,i),t.readyState===gt.ENDED&&this.handleTrackEvent({type:gt.ENDED}),t.muted&&this.handleTrackEvent({type:gt.MUTE})}}bindAutoPlayEvent(){this.isBindAutoPlayEvent||(this._log.warn("bindAutoPlayEvent"),Eo.on(nr.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!0)}unbindTrackEvents(t=this.track){t&&gk(t)}unbindEvents(){this.element&&gk(this.element),this.unbindTrackEvents(),Eo.off(nr.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!1}handleElementEvent(t){switch(t.type){case gt.PLAYING:Ik()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(gt.PLAYING),this._interval&&(ku.clearTask(this._interval),this._interval=-1);break;case gt.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(gt.ENDED);break;case gt.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(gt.PAUSE);break;case gt.ERROR:if(this.element&&this.element.error){this.handlePaused(gt.ERROR);const{code:i,message:r}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${i} message: ${r} userAgent: ${navigator.userAgent}`),fC.uploadEvent({log:`stat-${this.kind}-${VG.PLAYER_ERROR}-${i}-${navigator.userAgent}`,error:this.element.error}),PgA||q9?this.emit(vr.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case gt.LOADEDDATA:this.kind===gt.VIDEO&&this.emit(vr.LOADED_DATA);break;case gt.LOADEDMETADATA:this.kind===gt.VIDEO&&this.emit(vr.LOADED_META_DATA);break;case gt.LOADSTART:this.emit(vr.LOAD_START)}}replayByRecreateMediaStream(t){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),fC.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),qr.addSuccessEvent({key:this.kind===gt.AUDIO?506700:516700})}).catch(()=>{var i;this._log.error("replayByRecreateMediaStream failed"),fC.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),qr.addFailedEvent({key:this.kind===gt.AUDIO?506700:516700,error:(i=this.element)==null?void 0:i.error}),this.emit(vr.ERROR,t)})}doReplayByRecreateMediaStream(t){return this._log.warn(`delay ${t}ms to recreate mediaStream`),new Promise((i,r)=>{Rw(t).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,g,B;this._log.warn(`element onerror ${(g=(s=this.element)==null?void 0:s.error)==null?void 0:g.code} fired after recreated mediaStream`),r((B=this.element)==null?void 0:B.error)}),Rw(5e3).then(()=>{var s,g;this.isPlaying&&!((s=this.element)!=null&&s.error)||r((g=this.element)==null?void 0:g.error),i()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}async handleTrackEvent(t){const i=t.type;switch(this.options.enableLogTrackState&&this._log[i===gt.UNMUTE?"info":"warn"](`track ${i}`),i){case gt.ENDED:this.handleStopped(gt.ENDED);break;case gt.MUTE:this.handlePaused(gt.MUTE);break;case gt.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&!this.isPausedByUserCall&&(this._log.warn("track unmuted and element is paused, resume"),await this.doResume()),this.element&&!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(gt.UNMUTE))}}handlePlaying(t){var i;return this._log.debug("handlePlaying",t),(i=this._playSuccessResolve)==null||i.call(this,t),t}handlePaused(t){return this._log.debug("handlePaused",t),t}handleStopped(t){return this._log.debug("handleStopped",t),t}getElement(){return this.element}};OA(jm,"PlayerEvent",vr),ss([HIA({settings:{retries:2,timeout:0},onError(t,i,r,s){s[0]=(s[0]||1e3)+1e3,i()}})],jm.prototype,"doReplayByRecreateMediaStream"),ss([FI([],"PLAYING",{sync:!0,success(t){this.emit(vr.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:t})}})],jm.prototype,"handlePlaying"),ss([FI("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(t){this.emit(vr.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:t})}})],jm.prototype,"handlePaused"),ss([FI([],"STOPPED",{sync:!0,success(t){this.emit(vr.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:t})}})],jm.prototype,"handleStopped");var cd="trtc_autoplay",HK=`${cd}_mask`,uG=`${cd}_wrapper`,j5=`${cd}_header`,VK=`${cd}_content`,n2=`${cd}_action_wrapper`,qK=`${cd}_question`,KK=`${cd}_collapse`,a2=`${cd}_action_confirm`,W5=`${cd}_detail`,z5="#2473E8",Z3="dialog",VIA=`${Z3}-show`,qIA=`${Z3}-1`,KIA=`${Z3}-2`,Z5=!1,Oj=!1,Ik=()=>Oj,kX=`${Sj}/${Bp()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,X5=`<br><a href='${kX}' target='_blank'>${Bp()?"其他方案?":"Any other solution?"}</a>`,jIA=Bp()?`浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。${X5}`:`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. ${X5}`,WIA=class{constructor(){if(OA(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),OA(this,"_dialogNode",null),OA(this,"_bodyPosition",""),OA(this,"_showDetail",!1),OA(this,"_isCollapseClicked",!1),OA(this,"_isQuestionClicked",!1),Bp()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Z5){const t=document.createElement("style");t.innerHTML=`.${HK}{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;}.${HK} div:not(.${n2}){display:block !important;}.${uG}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${uG} a{color:${z5};}.${j5}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${VK}{margin:8px 0;}.${n2}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${KK}{margin-right:auto;cursor:pointer}.${qK}{height:100%;line-height:16px;cursor:pointer;}.${a2}{margin-left:8px;color:#fff;background:${z5};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${a2}:hover{opacity:0.9;}.${KK},.${a2},.${VK},.${qK}{font-size:14px;}@media screen and (max-width:750px){.${uG}{width:80vw;}}`,document.head.appendChild(t),Z5=!0}this.addDiaLog()}createDiaLog(){const t=document.createElement("template");t.innerHTML=`<div class="${HK}"><div class='${uG}'><div class='${j5}'>${location.host}</div><div class='${VK}'>${this.content}</div><div class='${W5}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${jIA}</div><div class='${n2}'></div></div></div>`.trim();const i=document.createElement("button");i.className=a2,i.innerText=Bp()?"恢复播放":"Resume",i.onclick=this.onConfirm.bind(this);const r=document.createElement("div");r.className=qK,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
<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">
<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"/>
<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"/>
<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"/>
</svg>
`,r.onclick=this.onQuestionClick.bind(this);const s=document.createElement("div");s.className=KK,s.innerText=Bp()?"详情 >":"Detail >",s.onclick=this.onCollapseClick.bind(this);const g=t.content.firstChild,B=g.querySelector(`.${n2}`);return B.appendChild(s),B.appendChild(r),B.appendChild(i),g}addDiaLog(){Ik()||(Oj=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${uG}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",qi.info("show autoplay dialog"),fC.uploadEvent({log:VIA}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,Oj=!1),ck=null}onConfirm(){qi.warn("confirm clicked, try resume stream"),Eo.emit(nr.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){const t=this._dialogNode.querySelector(`.${W5}`);t.style.visibility=this._showDetail?"hidden":"visible",t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||fC.uploadEvent({log:qIA}),this._isCollapseClicked=!0}onQuestionClick(){window.open(kX,"_blank"),this._isQuestionClicked||fC.uploadEvent({log:KIA}),this._isQuestionClicked=!0}},ck=null;function zIA(){ck||(ck=new WIA)}function ZIA(){ck&&ck.deleteDialog()}var ZG,Ip=class extends jm{constructor(t){super(t,gt.VIDEO),OA(this,"stat",{}),OA(this,"_calculateTimeout",-1),OA(this,"viewMirror",!1),OA(this,"objectFit","cover"),OA(this,"container"),OA(this,"canvas"),OA(this,"shouldRenderAlpha",!1),OA(this,"_preSize",{width:0,height:0}),OA(this,"posterImg"),OA(this,"pipWindow"),OA(this,"enterPIPPromise"),OA(this,"_originContainerPosition"),OA(this,"_isResettingSrcObject",!1),OA(this,"_wrapper",null),OA(this,"_useWrapper",!1),OA(this,"_isFirstFrameRenderEmitted",!1),this.mode=t.canvas?1:0,this.container=t.container,this.canvas=t.canvas,Fr(t.viewMirror)||(this.viewMirror=t.viewMirror),Fr(t.objectFit)||(this.objectFit=t.objectFit),this.initializeElement()}get isPlaying(){var t;return this._state==="PLAYING"&&(!this.element||!this.element.paused)&&((t=this.track)==null?void 0:t.readyState)==="live"&&!this.track.muted}initializeElement(){const t=document.createElement(gt.VIDEO);this.track&&this.mode!==2&&(t.srcObject=new MediaStream([this.track])),t.muted=!0,t.setAttribute("id",`video_${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,hl&&(t.poster="data:,"),this._appendToWrapper(),this.bindElementEvents(),this.calculateStat(),this._bindFirstFrameRenderEvent(t)}_bindFirstFrameRenderEvent(t){const i=()=>{if(this._isFirstFrameRenderEmitted)return;this._isFirstFrameRenderEmitted=!0;const r=t.videoWidth||0,s=t.videoHeight||0;this._log.info(`first frame render: ${r}x${s}`),this.emit(vr.FIRST_FRAME_RENDER,{width:r,height:s})};typeof t.requestVideoFrameCallback=="function"?t.requestVideoFrameCallback(i):t.addEventListener("loadeddata",i,{once:!0})}get styleAttribute(){let t=this._useWrapper?`grid-area:1/1;width:100%;height:100%;object-fit:${this.objectFit};${this.shouldRenderAlpha?"":"background-color:black"};`:`width:100%;height:100%;object-fit:${this.objectFit};${this.shouldRenderAlpha?"":"background-color:black"};`;return this.viewMirror&&(t+="transform:scaleX(-1);"),t}setLiveMode(t){if(this._useWrapper!==t&&(this._useWrapper=t,this.elementToRender&&this.elementToRender.setAttribute("style",this.styleAttribute),this.container&&this.elementToRender))if(t){const i=this._getOrCreateWrapper();i.insertBefore(this.elementToRender,i.firstChild)}else this.container.appendChild(this.elementToRender),this._cleanupWrapper()}setContainer(t){if(this.container===t)return;const i=this._wrapper,r=this.container;this.container=t,this._pausedRetryCount=ow,this.track&&this.elementToRender&&this._appendToWrapper(),i&&r&&r!==this.container&&i.isConnected&&i.children.length===0&&i.remove()}_getOrCreateWrapper(){if(!this.container)throw new Error("[VideoPlayer] container is required");let t=this.container.querySelector("[data-trtc-video-wrapper]");return t||(t=document.createElement("div"),t.setAttribute("data-trtc-video-wrapper","true"),t.style.cssText="display:grid;width:100%;height:100%;",this.container.appendChild(t)),this._wrapper=t,t}_appendToWrapper(t){const i=t??this.elementToRender;if(this.container&&i)if(this._useWrapper){const r=this._getOrCreateWrapper();r.insertBefore(i,r.firstChild)}else this.container.appendChild(i)}bindElementEvents(){const t=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),this.handleFullscreenChange=this.handleFullscreenChange.bind(this),this.handleVolumeChange=this.handleVolumeChange.bind(this),t&&t.add(gt.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(gt.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(gt.RESIZE,this.handleElementEvent),this.element&&(this.element.addEventListener(gt.FULLSCREEN_CHANGE,this.handleFullscreenChange),this.element.addEventListener("webkitbeginfullscreen",this.handleFullscreenChange),this.element.addEventListener("webkitendfullscreen",this.handleFullscreenChange),this.element.addEventListener("volumechange",this.handleVolumeChange))}handleTrackEvent(t){var i;return t.type===gt.MUTE&&((i=this.stat)!=null&&i.fps&&(this.stat.fps=0),this.isFullscreen()&&this.resetSrcObjectToReplay()),super.handleTrackEvent(t)}handleFullscreenChange(){this.isFullscreen()?(this._log.info("enter fullscreen"),this.emit(vr.ENTER_FULL_SCREEN)):(this._log.info("leave fullscreen"),this.emit(vr.LEAVE_FULL_SCREEN))}handleVolumeChange(){var t;(this.isPictureInPicture()||this.isFullscreen())&&this.emit(vr.VOLUME_CHANGE,{muted:(t=this.element)==null?void 0:t.muted})}handleElementEvent(t){var i,r,s,g,B,Q;if(this.mode===2)return;super.handleElementEvent(t);const f=t.type,m=this.isPictureInPicture(),M=this.isFullscreen(),v=t.isTrusted&&(m&&IE||M);if(f===gt.PLAYING&&v&&!this._isResettingSrcObject&&(this._log.warn("user resume in "+(M?"fullscreen":"pip")),this.emit(vr.USER_RESUME_IN_PIP_OR_FULL_SCREEN)),f===gt.PAUSE&&(v&&(this._log.warn("user pause in "+(M?"fullscreen":"pip")),this.emit(vr.USER_PAUSE_IN_PIP_OR_FULL_SCREEN)),this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),Rw(500).then(()=>{var U;(U=this.container)!=null&&U.isConnected&&(this._pausedRetryCount=ow,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!Ik()&&!this.isPausedByUserCall&&!v&&(this._log.info(`[${ow-this._pausedRetryCount+1}/${ow}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),UI&&!v&&(this._interval=ku.run("timeout",()=>{this.element&&this._state==="PAUSED"&&!this.isPausedByUserCall&&this.doResume()},{delay:3e3})),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){const U=this.element.style.transform;f===gt.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=U.replace("scaleX(-1)",""):f!==gt.LEAVE_PICTURE_IN_PICTURE||U.includes("scaleX")||(this.element.style.transform=`${U} scaleX(-1)`)}f===gt.RESIZE&&(this._preSize.height===((i=this.element)==null?void 0:i.videoHeight)&&this._preSize.width===((r=this.element)==null?void 0:r.videoWidth)||(this._log.info(`video size changed to ${(s=this.element)==null?void 0:s.videoWidth}x${(g=this.element)==null?void 0:g.videoHeight}`),this._preSize.height=((B=this.element)==null?void 0:B.videoHeight)||0,this._preSize.width=((Q=this.element)==null?void 0:Q.videoWidth)||0,this.emit(vr.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))),f===gt.LEAVE_PICTURE_IN_PICTURE&&(this._log.warn("exit pip"),this.isPaused&&!this.isPausedByUserCall&&(this._log.warn("resume after exit pip"),this.doResume()),this.resetSrcObjectToReplay(),this.emit(vr.LEAVE_PICTURE_IN_PICTURE)),f===gt.ENTER_PICTURE_IN_PICTURE&&this.emit(vr.ENTER_PICTURE_IN_PICTURE)}resetSrcObjectToReplay(){hl&&YK&&this.isPlayCalled&&this.element&&this.track&&!this.isPausedByUserCall&&(this._log.warn("reset srcObject to replay for android chromium"),this._isResettingSrcObject=!0,this.element.srcObject=new MediaStream([this.track]),this.element.play().catch(t=>{this._log.warn("play failed after reset srcObject",t)}).finally(()=>{this._isResettingSrcObject=!1}))}setCanvas(t,i=1){var r,s;this.canvas!==t&&((r=this.canvas)==null||r.remove(),t?.setAttribute("style",this.styleAttribute),this.canvas=t,this.mode=t?i:0,this.mode===2&&this.setTrack(t.captureStream().getVideoTracks()[0]),t?((s=this.element)==null||s.remove(),this._appendToWrapper(t)):this.element&&this._appendToWrapper(this.element))}setAttr(t){const i=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},t);i.style=Object.assign({width:"100%",height:"100%"},i.style),super.setAttr(i)}get mirror(){return this.viewMirror}setRect(t,i){this.elementToRender&&(this.elementToRender.style.width=`${t}px`,this.elementToRender.style.height=`${i}px`)}setViewMirror(t){this.elementToRender&&(this.elementToRender.style.transform=t?"scaleX(-1)":""),this.viewMirror=t}setObjectFit(t){this.elementToRender&&(this.elementToRender.style.objectFit=`${t}`),this.objectFit=t}setPoster(t,i=!1){return new Promise(r=>{if(!this.element||(this._log.info("setPoster",t.slice(0,10)),t===""?this.element.removeAttribute("poster"):this.element.poster=t,!(i&&(IE||Ql))))return r();if(t==="")return this.removePosterImg(),r();if(this.posterImg)return r();const s=document.createElement("img");s.src=t;const g=window.getComputedStyle(this.element),B=g.objectFit||this.objectFit;let Q=1;if(this._useWrapper){const f=parseInt(g.zIndex,10);isNaN(f)||(Q=f+1)}s.style.cssText=this._useWrapper?`grid-area:1/1;z-index:${Q};width:100%;height:100%;object-fit:${B};`:`position:absolute;top:0;left:0;width:100%;height:100%;object-fit:${B};`,s.onload=async()=>{try{s.decode&&await s.decode(),this.container&&!this._useWrapper&&window.getComputedStyle(this.container).position==="static"&&(this._originContainerPosition=this.container.style.position,this.container.style.position="relative"),this.posterImg=s;const f=this._useWrapper?this._wrapper:this.container;f?.appendChild(s),J2()&&QD<=17&&this.elementToRender&&(this.elementToRender.style.visibility="hidden")}catch(f){this._log.warn("decode poster image error",f)}return r()},s.onerror=()=>(this._log.warn("load poster image error"),r())})}removePosterImg(){this.posterImg&&(J2()&&QD<=17&&this.elementToRender&&(this.elementToRender.style.visibility=""),this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),this._useWrapper||!this.container||Fr(this._originContainerPosition)||this.container.style.position!=="relative"||(this.container.style.position=this._originContainerPosition),delete this.posterImg)}get hasPoster(){var t;return!!this.posterImg||!!((t=this.element)!=null&&t.getAttribute("poster"))}async pause(t=!0){super.pause(),this.isPictureInPicture()||this.hasPoster||!(YK||t&&(Ql||IE))||await this.setPoster(this.getVideoFrame(),!0)}resume(t=!1){return super.resume(t).then(()=>{var i;(this.posterImg||(i=this.element)!=null&&i.poster)&&this.setPoster("",!0)})}doResume(t=!1){return this.isPaused&&t&&this.element&&this.track&&YK&&this.track.kind==="video"&&(this.element.srcObject=new MediaStream([this.track])),super.doResume()}stop(t=0){var i;this.isPictureInPicture()&&this.exitPictureInPicture().catch(r=>{}),this.isFullscreen()&&this.exitFullscreen().catch(r=>{}),this.element&&(this.element.removeEventListener(gt.FULLSCREEN_CHANGE,this.handleFullscreenChange),this.element.removeEventListener("webkitbeginfullscreen",this.handleFullscreenChange),this.element.removeEventListener("webkitendfullscreen",this.handleFullscreenChange),this.element.removeEventListener("volumechange",this.handleVolumeChange)),this._isFirstFrameRenderEmitted=!1,super.stop(t),(i=this.canvas)==null||i.remove(),this.removePosterImg(),this._useWrapper&&this._cleanupWrapper()}_cleanupWrapper(){this._wrapper&&this._wrapper.children.length===0&&this._wrapper.remove(),this._wrapper=null}play(t){if(Fr(t?.isLiveStream)||this.setLiveMode(t.isLiveStream),this.element){if(this.elementToRender&&this.container)if(this._useWrapper){const i=this._getOrCreateWrapper();this.elementToRender.parentElement!==i&&i.insertBefore(this.elementToRender,i.firstChild)}else this.elementToRender.parentElement!==this.container&&this.container.append(this.elementToRender)}else this.initializeElement();return this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(t){t!==this.track&&(this.unbindTrackEvents(),this.track=t,this.emit(vr.MEDIA_TRACK_CHANGED,t),t!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([t]),this.element.remove()),this._appendToWrapper()))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";const t=document.createElement("canvas");return t.width=this.element.videoWidth,t.height=this.element.videoHeight,t.getContext("2d").drawImage(this.element,0,0),t.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(j3()&&this.element&&this._calculateTimeout<0){let t=0,i=null;const r=(s,g)=>{this.stat.width=g.width,this.stat.height=g.height,i&&(this.stat.fps=Math.round((g.presentedFrames-i.presentedFrames)/(s-t)*1e3)),t=s,i=g,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var B;return(B=this.element)==null?void 0:B.requestVideoFrameCallback(r)},2e3))};this.element.requestVideoFrameCallback(r)}}catch(t){this._log.warn("init stat failed",t)}}async enterFullscreen(){const t=this.elementToRender;if(!t)throw this._log.warn("no element to render, cannot enter fullscreen"),new Error("No element available for fullscreen");if(UI&&this.isPictureInPicture()){this._log.info("exit pip before entering fullscreen");try{await this.exitPictureInPicture()}catch(i){this._log.warn("exit pip failed before fullscreen:",i)}}try{if(t.requestFullscreen)await t.requestFullscreen();else if(t.webkitRequestFullscreen)await t.webkitRequestFullscreen();else if(t.webkitEnterFullscreen)await t.webkitEnterFullscreen();else if(t.mozRequestFullScreen)await t.mozRequestFullScreen();else{if(!t.msRequestFullscreen)throw new Error("Fullscreen API not supported");await t.msRequestFullscreen()}this._log.info("entered fullscreen mode")}catch(i){throw this._log.error("failed to enter fullscreen:",i),i}}async exitFullscreen(){try{if(!this.isFullscreen())return;if(document.exitFullscreen)await document.exitFullscreen();else if(document.webkitExitFullscreen)await document.webkitExitFullscreen();else if(document.mozCancelFullScreen)await document.mozCancelFullScreen();else{if(!document.msExitFullscreen)throw new Error("Exit fullscreen API not supported");await document.msExitFullscreen()}this._log.info("exited fullscreen mode")}catch(t){throw this._log.error("failed to exit fullscreen:",t),t}}isFullscreen(){const t=this.elementToRender;return t?this.element&&this.element.webkitDisplayingFullscreen?!this.isPictureInPicture():(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)===t:!1}async toggleFullscreen(){this.isFullscreen()?await this.exitFullscreen():await this.enterFullscreen()}async enterPictureInPicture(){this.enterPIPPromise=this._enterPictureInPicture();try{return await this.enterPIPPromise}finally{delete this.enterPIPPromise}}async _enterPictureInPicture(){try{if(!this.element)throw new Error("No video element available for pip");if(this.canvas&&this.mode!==1)throw new Error("pip is not supported for canvas-only mode");const{element:t}=this;if(t.requestPictureInPicture){this._log.info("requestPictureInPicture");const i=await t.requestPictureInPicture();return this.pipWindow=i,this._log.info("entered pip mode"),this.elementToRender===this.canvas&&(this.canvas.remove(),this._appendToWrapper(this.element)),i}if(t.webkitSetPresentationMode)return this._log.info("webkitSetPresentationMode"),await t.webkitSetPresentationMode("picture-in-picture"),this._log.info("entered pip mode (webkit)"),{};throw new Error("pip API not supported")}catch(t){throw this._log.error("failed to enter pip:",t.name,t.message),t}}async exitPictureInPicture(){var t;try{if(!this.isPictureInPicture())return;if(delete this.pipWindow,document.pictureInPictureElement&&document.exitPictureInPicture)await document.exitPictureInPicture(),this.elementToRender===this.canvas&&((t=this.element)==null||t.remove(),this._pausedRetryCount=ow,this._appendToWrapper(this.canvas)),this._log.info("exited pip mode");else{if(!this.element||!this.element.webkitSetPresentationMode)throw new Error("Exit pip API not supported or not in PiP mode");await this.element.webkitSetPresentationMode("inline"),this._log.info("exited pip mode (webkit)")}}catch(i){throw this._log.error("failed to exit pip:",i),i}}isPictureInPicture(){if(!this.element)return!1;const{element:t}=this;return document.pictureInPictureElement?document.pictureInPictureElement===t:!!t.webkitPresentationMode&&t.webkitPresentationMode==="picture-in-picture"}async togglePictureInPicture(){this.isPictureInPicture()?await this.exitPictureInPicture():await this.enterPictureInPicture()}};async function XIA(t,i){if(!t.audioWorklet)return Promise.reject("audioWorklet is not supported");try{await t.audioWorklet.addModule(i),qi.info("worklet addModule success")}catch(r){throw qi.info(`worklet addModule catch error. ${r.message}`),r}}typeof AudioContext<"u"?ZG=AudioContext:typeof webkitAudioContext<"u"?ZG=webkitAudioContext:typeof mozAudioContext<"u"&&(ZG=mozAudioContext);var LI,$IA=1500,$5=-1,s2=0,XG=-1,xj=!1,A8=0,e8=-1,t8=-1;function _X(){try{if(LI)return;(LI=new ZG({sampleRate:48e3})).onstatechange=()=>{qi.info(`context state: ${LI.state}${LI.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),fw()},clearTimeout($5)}catch(t){qi.error(`initAudioContext failed: ${t} typeof AudioContextClass: ${typeof ZG}`),$5=setTimeout(_X,1e3)}}_X();var fw=()=>{LI.state==="suspended"?(s2=Ns(),AcA(),z2(),document.addEventListener("click",fw)):LI.state==="interrupted"?z2():(s2&&(qr.addNumber({key:507800,value:Ns()-s2,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),s2=0),ecA(),document.removeEventListener("visibilitychange",fw),document.removeEventListener("click",fw))},jK=0,WK=-1;function z2(){return new Promise((t,i)=>{if(LI.state==="running")return t();Date.now()-jK<1e3?(clearTimeout(WK),WK=setTimeout(()=>{jK=Date.now(),LI.resume().then(t,i)},1e3)):(clearTimeout(WK),jK=Date.now(),LI.resume().then(t,i))}).catch(t=>{qi.warn(`context resume failed: ${t}`),document.addEventListener("visibilitychange",fw)})}function AcA(){XG===-1&&(XG=setTimeout(()=>{LI.state==="suspended"&&(xj=!0,Eo.emit("155",{isSuspended:!0}))},$IA))}function ecA(){XG!==-1&&(clearTimeout(XG),XG=-1,xj&&(xj=!1,Eo.emit("155",{isSuspended:!1})))}function tcA(){if(!UI||t8!==-1)return;const t=()=>{Ns()-A8<500||(LI&&LI.state==="running"&&LI.currentTime===e8&&(qi.warn("context is fake running, auto resume"),LI.suspend().catch(i=>{qi.warn(`context suspend failed: ${i}`)})),e8=LI.currentTime,A8=Ns())};t8=setInterval(()=>{t()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&t()})}document.addEventListener("click",fw);var mp=t=>LI,aD=class{constructor(t){this.name=t,OA(this,"node"),OA(this,"node2"),OA(this,"pre",new Set),OA(this,"next",new Set),OA(this,"context"),OA(this,"connectedNodes",new Set),OA(this,"nextInputChannelMap",new Map),OA(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(i=>i.channelCount=t)}setChannelCount(t,i){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=i||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var i;if(t!==this.node)try{this.node?this._disconnect():(i=this.context)==null||i.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){qi.error(r)}}setNode(t,i){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),i&&(this.node2=i,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),qr.addSuccessEvent({key:502701})}catch(s){qi.error(s),qr.addFailedEvent({key:502701,error:s})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),qr.addSuccessEvent({key:502702})}catch(i){qi.error(i),qr.addFailedEvent({key:502702,error:i})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(i=>{const r=this.nextInputChannelMap.get(i);t._connect(i.node,r)||i.connectNext(t)})}_connect(t,i=0){return!(!this.node||!t)&&((this.node2||this.node).connect(t,0,i),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var i;return(i=this.node2||this.node)==null?void 0:i.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,i=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,i),t}},icA=class extends aD{constructor(t=256){super(),this.fftSize=t,OA(this,"dataArray",new Uint8Array(0))}setNode(t){t.fftSize=this.fftSize,this.dataArray=new Uint8Array(t.frequencyBinCount),super.setNode(t)}getByteTimeDomainData(){var t;return(t=this.node)==null||t.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var t;return(t=this.node)==null||t.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){const t=this.getByteTimeDomainData();let i=0,r=0,s=`M${i},${r}`;for(let g=0;g<t.length;g++)r=100*(t[g]/128)/2,s+=`L${i},${r}`,i+=1;return s}},ocA=class{constructor(){OA(this,"source",new aD),OA(this,"gain",new aD),OA(this,"destination",new aD)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){t!==1?(this.gain.node||this.gain.setNode(mp().createGain()),this.gain.node.gain.value=t):this.gain.node&&this.gain.deleteNode()}replaceSource(t){const i=rcA(t);i&&this.source.replaceNode(i)}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},i8=new WeakMap;function rcA(t){try{let i=i8.get(t);if(i)return i;const r=mp();if(t instanceof HTMLAudioElement)i=r.createMediaElementSource(t);else{if(!(t instanceof MediaStreamTrack))return t;i=r.createMediaStreamSource(new MediaStream([t]))}return i8.set(t,i),i}catch(i){if(!(Ql&&i instanceof Error&&i.name==="NotSupportedError"))throw i;qi.warn(i)}}var D2=class Ad{constructor(i){OA(this,"_volume",0),OA(this,"_volumeDb",0),OA(this,"_log"),OA(this,"_scriptProcessorNode",null),OA(this,"_audioWorkletNode",null),OA(this,"_interval",200),OA(this,"ready",this.preload());const{log:r}=i;this._log=r,Eo.on(nr.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Ad.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Ad.workletReady){const i='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);';Ad.workletReady=XIA(Ad.audioContext,URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}return Ad.workletReady.then(()=>this.initAudioWorklet()).catch(i=>(this._log.error(`volumeMeter preload error: ${i}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Ad.audioContext,"volume-meter");let i=!1;this._audioWorkletNode.port.onmessage=r=>{Ad.lastMessageTime=Date.now(),this._volume=r.data.volume||0,this._volumeDb=r.data.volumeDb||0,!i&&r.data.cacheLen&&r.data.outputLen&&(this._log.warn("worklet play success"),i=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(i){this._log.error(`volumeMeter init audio worklet error: ${i}`),fC.logFailedEvent({userId:this._log.userId,eventType:VG.LOAD_WORKLET,error:i}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=mp("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=i=>{Ad.lastMessageTime=Date.now();const r=i.inputBuffer.getChannelData(0);let s=0;for(let g=0;g<r.length;++g)s+=r[g]*r[g];this._volume=Math.sqrt(s/r.length)||0}}catch(i){this._log.error(`volumeMeter init script processor error: ${i}`)}}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,Eo.off(nr.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(i){var r;const{interval:s}=i;this._interval=s,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:s})}};OA(D2,"lastMessageTime",0),OA(D2,"audioContext",mp()),OA(D2,"workletReady");var ncA=D2,o8=class extends aD{constructor(t){super(),OA(this,"_volumeMeter"),this._volumeMeter=new ncA(t)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}async init(){await this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(t){if(this.node){const i=t.allocationSize({planeIndex:0}),r=new Float32Array(i>>2);t.copyTo(r,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:r},[r.buffer]),t.close()}}},acA=Tw(mk()),r8=t=>i=>i.deviceId===t,zK=class{constructor(t,i){OA(this,"kind"),OA(this,"type"),OA(this,"devices",[]),this.kind=t,this.type=i}update(t,i){const r=t.filter(s=>s.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);this.devices.length===1&&bX(this.devices[0])||i&&(r.forEach(s=>{if(s.deviceId&&!this.devices.find(r8(s.deviceId))){const g=`${this.kind}${this.type}Added`;qi.warn(`${g}: ${JSON.stringify(s)}`),i.emit(g,s)}}),this.devices.forEach(s=>{if(s.deviceId&&!r.find(r8(s.deviceId))){const g=`${this.kind}${this.type}Removed`;qi.warn(`${g}: ${JSON.stringify(s)}`),i.emit(g,s)}})),this.devices=r}hasDevice(t){return!!this.devices.find(i=>i.deviceId===t)}},scA=class extends acA.EventEmitter{constructor(){super(),OA(this,"audioInputs",new zK(gt.AUDIO,"Input")),OA(this,"videoInputs",new zK(gt.VIDEO,"Input")),OA(this,"audioOutputs",new zK(gt.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ku.run("interval",()=>{this.update()},{delay:1e4}))}init(){Yj().then(t=>{this.audioInputs.update(t),this.videoInputs.update(t),this.audioOutputs.update(t)})}async update(t=0){const i=await Yj(t);return this.audioInputs.update(i,this),this.videoInputs.update(i,this),this.audioOutputs.update(i,this),this}hasBlueTooth(){var t;if(1e3*((t=mp())==null?void 0:t.outputLatency)>150)return!0;const i=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(r=>i.some(s=>r.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(r=>i.some(s=>r.label.toLowerCase().includes(s)))}},Tu=r9||o9?null:new scA;function bX(t){return t.deviceId===t.groupId&&t.groupId===""}async function Yj(t=0){if(vY()||!H3())return[];let i=await navigator.mediaDevices.enumerateDevices();if(t!==0){const r={audio:!1,video:!1};if(i.forEach(s=>{bX(s)&&(s.kind===gt.AUDIO_INPUT?r.audio=!0:s.kind===gt.VIDEO_INPUT&&(r.video=!0))}),t===2&&(r.audio=!1),t===1&&(r.video=!1),r.audio||r.video){let s;try{s=await navigator.mediaDevices.getUserMedia(r),r.audio&&z2()}catch(g){qi.debug("capture before getDevices failed: ",g)}i=await navigator.mediaDevices.enumerateDevices(),s?.getTracks().forEach(g=>g.stop())}}return i.map((r,s)=>{const g={kind:r.kind,deviceId:r.deviceId,groupId:r.groupId,label:r.label||`${r.kind}_${s}`};return r.deviceId.length>0&&X3.add(`${r.deviceId}_${r.kind}`),r.getCapabilities&&(g.getCapabilities=()=>r.getCapabilities()),g})}function Ek(t=!1){return Tu.update(t?1:0).then(i=>i.audioInputs.devices)}function sD(t=!1){return Tu.update(t?2:0).then(i=>i.videoInputs.devices)}var n8=!1;async function gcA(){try{n8||(n8=!0,qi.info(`speakers:${(await IcA()).map(t=>` ${t.deviceId.slice(0,8)}: ${t.label}`)}`))}catch{}}async function IcA(t=!1){return(UI||IE)&&(t=!1),Tu.update(t?1:0).then(i=>i.audioOutputs.devices)}var y2,X3=new Set;function ccA(t){if(t instanceof CanvasCaptureMediaStreamTrack||!(t instanceof MediaStreamTrack))return!1;const i=t.label.toLocaleLowerCase();if(i.includes("camera")||i.includes("webcam"))return!0;const r=`${(t?.getSettings()||{}).deviceId}_${gt.VIDEO_INPUT}`;return!!X3.has(r)}function EcA(t){if(t instanceof CanvasCaptureMediaStreamTrack||!(t instanceof MediaStreamTrack))return!1;const i=t.label.toLocaleLowerCase();if(i.includes("mic")||i.includes("麦克风"))return!0;const r=`${(t?.getSettings()||{}).deviceId}_${gt.AUDIO_INPUT}`;return!!X3.has(r)}async function lcA(t,i){const r=(await Ek()).find(s=>s.deviceId===s9);return!i&&r?.groupId===t||r?.groupId===t&&r.label===i}async function CcA({newDeviceId:t,oldDeviceId:i,oldGroupId:r,oldLabel:s,kind:g}){return t===i&&(g!==gt.AUDIO||t!==s9||await lcA(r,s))}var BcA=class extends ocA{constructor(t){super(),this.log=t,OA(this,"volumeMeter"),OA(this,"volumeMeterAfter3A"),OA(this,"volumeDestination"),OA(this,"analyser",new icA),this.volumeMeter=new o8({log:this.log}),this.volumeMeterAfter3A=new o8({log:this.log}),this.volumeDestination=new aD,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},ucA=class extends jm{constructor(t){super(t,gt.AUDIO),OA(this,"_outputDeviceId"),OA(this,"_floatVolume",1),OA(this,"_destination"),OA(this,"pipeline"),OA(this,"volumeMeterMode","worklet"),OA(this,"enableVolumeControlInIOS"),this.enableVolumeControlInIOS=t.enableVolumeControlInIOS,this.mode=0,t.url&&(this.url=t.url),this.pipeline=new BcA(this._log)}setTrack(t){}get duration(){var t;return Math.floor(1e3*(((t=this.element)==null?void 0:t.duration)||0))}get currentTime(){var t;return Math.floor(1e3*(((t=this.element)==null?void 0:t.currentTime)||0))}set currentTime(t){this.element&&(this.element.currentTime=t/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(t){if((_u==="15.2"||_u==="15.3"||_u==="15.4")&&this.muted)return void this._log.info("audioElement is muted.");this._log.info("audio player initializeElement");const i=y2||new Audio;i.setAttribute("autoplay","autoplay"),i.srcObject=this.getMediaStream(),i.muted=this.muted,this.url&&(i.crossOrigin="anonymous",i.src=this.url),this.element=i,this.setVolume(uD(t)?t/100:this._floatVolume),i===y2&&(y2=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(vr.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}async play(t){if(this.track||this.url){try{!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(t?.volume),this._outputDeviceId&&await this.setSinkId(this._outputDeviceId),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(mp("player").createAnalyser()),gcA()}catch(i){throw this._log.warn(`audio play error: ${i}`),AX(_u,"18.7",!0)&&this.bindAutoPlayEvent(),i}return super.play()}}stop(t=0){this.pipeline.destroy(),super.stop(t)}setVolume(t){this._floatVolume=t,this.element&&(this.element.volume=t)}async setSinkId(t){var i,r;this._outputDeviceId!==t&&(this._outputDeviceId=t),this.element&&this.element.sinkId!==t&&await((r=(i=this.element).setSinkId)==null?void 0:r.call(i,t))}get useDestination(){return!!this.pipeline.stream}setLoop(t){this.element&&(this.element.loop=t)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},QcA=class extends ucA{constructor(t){super(t),OA(this,"_sourceElement"),OA(this,"_output",new aD),this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(mp().destination)}write(t){this.pipeline.volumeMeter.write(t)}setTrack(t){var i,r,s;((r=(i=this.element)==null?void 0:i.error)==null?void 0:r.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(vr.MEDIA_TRACK_CHANGED,t),t?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([t]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([t])),this.pipeline.source.channelCount=((s=t.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(t)):this.pipeline.source.deleteNode())}setVolume(t){var i;const r=t<=1&&!J2();if(!(this._floatVolume===t&&(r&&((i=this.element)==null?void 0:i.volume)===t||!r&&this.pipeline.volume===t)))if(this._floatVolume=t,this.useDestination)this.pipeline.setVolume(t),this._log.info(`set pipeline volume: ${t}`);else if(r)this.element?(this._log.info(`set element volume: ${t}`),this.element.volume=t):this._log.info("set element volume: no element");else{if(J2()){if(!this.enableVolumeControlInIOS)return;tcA()}if(Ql&&!this.pipeline.source.node)return void this._log.warn("set pipeline volume failed: no source node");this._log.info(`start set pipeline volume: ${t}`),this.pipeline.setVolume(t),this.element&&!this._sourceElement&&(this._destination||(this._destination=mp().createMediaStreamDestination()),this.pipeline.destination.setNode(this._destination),gk(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play().catch(s=>{this.emit(vr.AUTOPLAY_FAILED,s)}))}}stop(t=0){this.pipeline.destroy();const i=this._sourceElement||this.element;i&&$9&&(y2=i),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(t)}},$3=class extends Lr{constructor({userId:t,sdkAppId:i,mediaType:r,room:s,PlayerClass:g=r===1?QcA:Ip}){var B;super(),OA(this,"id",aX()),OA(this,"userId",""),OA(this,"isRemote"),OA(this,"mediaType"),OA(this,"room"),OA(this,"user"),OA(this,"_log"),OA(this,"_inputTrack"),OA(this,"_outputTrack"),OA(this,"isPlayCalled"),OA(this,"container",null),OA(this,"player"),OA(this,"subVideoPlayerMap"),OA(this,"muted",!1),OA(this,"abortCtrl"),OA(this,"objectFit","cover"),OA(this,"mirror"),OA(this,"rotation"),OA(this,"isScreen",!1),OA(this,"manager"),OA(this,"trackSettings"),OA(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=r,this._log=qi.createLogger({parent:s?.getLogger(),id:`${this.kind[0]}t`,userId:(B=s||this.room)==null?void 0:B.userId,remoteUserId:this instanceof AD?void 0:this.userId,sdkAppId:i,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof AD}),this.player=new g({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s?.enableVolumeControlInIOS}),this.player.on(vr.PLAYER_STATE_CHANGED,Q=>{if(Eo.emit(nr.PLAYER_STATE_CHANGED,cr({track:this},Q)),this.emit("player-state-changed",Q),Q.state==="PLAYING"&&this.room){let f=!0;for(const{remoteAudioTrack:m,remoteVideoTrack:M,remoteAuxiliaryTrack:v}of[...this.room.remotePublishedUserMap.values()])if(m.isAvailable&&!m.player.isPlaying||M.isAvailable&&!M.player.isPlaying||v.isAvailable&&!v.player.isPlaying){f=!1;break}f&&Ik()&&ZIA()}}),this.kind===gt.VIDEO&&(this.player.on(vr.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(vr.LOADED_DATA),Eo.emit(nr.VIDEO_LOADED_DATA,{track:this})}),this.player.on(vr.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(vr.LOADED_META_DATA)}),this.player.on(vr.MEDIA_TRACK_CHANGED,Q=>{var f;(f=this.subVideoPlayerMap)==null||f.forEach(m=>m.setTrack(Q))}),this.player.on(vr.RESIZE,Q=>{this.emitFirstVideoFrameEvent(vr.RESIZE),this.emit("video-size-changed",cr({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},Q))}),this.player.on(vr.FIRST_FRAME_RENDER,Q=>{this.emit("first-frame-render",lB(cr({},Q),{streamType:this.streamType,userId:this.isRemote?this.userId:""}))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(vr.ERROR,this.onPlayerError.bind(this)),this.player.on(vr.AUTOPLAY_FAILED,this.handleAutoPlayFailed,this)}get log(){return this._log||qi}get kind(){return this.mediaType===1?gt.AUDIO:gt.VIDEO}get isAudio(){return this.kind===gt.AUDIO}get strMediaType(){return this.mediaType===4?gt.VIDEO:this.mediaType===2?gt.SCREEN:gt.AUDIO}get streamType(){return 2&this.mediaType?"auxiliary":"main"}get isMediaTrackActive(){return!!this.mediaTrack&&!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}async play(t,i){const r=dC(t)?t[0]:t;if(this.isPlayCalled)return this.log.info(`play update options: ${JSON.stringify(i)}`),i&&!Fr(i.muted)&&this.setPlayerMute(i.muted),i&&!Fr(i.objectFit)&&(this.objectFit=i.objectFit),void(this.player instanceof Ip&&(this.player.setObjectFit(this.objectFit),this.container!==r&&r&&(dC(t)&&t.length>=1&&this.container&&t.includes(this.container)&&this.container.contains(this.player.elementToRender)?(t.splice(t.indexOf(this.container),1),t.unshift(this.container)):(this.container=r,this.player.setContainer(r))),dC(t)&&t.length>=1&&await this.playSubContainer(t.slice(1),i)));if(i&&!Fr(i.muted)?this.setPlayerMute(i.muted):this.isRemote&&this.kind!==gt.VIDEO||this.setPlayerMute(!0),i&&!Fr(i.objectFit)&&(this.objectFit=i.objectFit),this.player instanceof Ip&&(Fr(i?.isLiveStream)||this.player.setLiveMode(i.isLiveStream),this.player.setObjectFit(this.objectFit),i&&!Fr(i.poster)&&this.player.setPoster(i.poster)),this.isPlayCalled=!0,r&&(this.container=r,this.player instanceof Ip&&this.player.setContainer(r)),Eo.emit(nr.PLAY_TRACK_START,{track:this}),this._outputTrack){this._log.info(`play with options: ${JSON.stringify(i)}`);try{this.player.setTrack(this.playerMediaTrack),await this.player.play(i),dC(t)&&t.length>1&&await this.playSubContainer(t.slice(1),i)}catch(s){throw this.handleAutoPlayFailed(s),s}}else this.log.info("play has not mediaTrack, abort")}setMirror(t,i){if(this.isScreen||this.kind!==gt.VIDEO||Fr(t)||t===this.mirror)return;this.mirror=t;let r=this.player;i&&(r=i);const s=this.manager;if(rD(this.mirror))return r.setViewMirror(this.mirror),void(!this.isRemote&&s&&(s.mirror=!1));switch(this.mirror){case"view":s&&(s.mirror=!1),r.setViewMirror(!0);break;case"publish":s&&(s.mirror=!0),r.setViewMirror(!0);break;case"both":s&&(s.mirror=!0),r.setViewMirror(!1)}}async playSubContainer(t,i){if(!this._outputTrack||this.kind===gt.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,g)=>{var B;t.find(Q=>g===Q)||(s.stop(),(B=this.subVideoPlayerMap)==null||B.delete(g))});for(const[s,g]of t.entries()){const B=this.subVideoPlayerMap.get(g);B?i&&(Fr(i.objectFit)||B.setObjectFit(i.objectFit)):this.subVideoPlayerMap.set(g,new Ip({id:this.userId||this.id,track:this.playerMediaTrack,container:g,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}const r=[...this.subVideoPlayerMap.values()];for(const s of r)s.setViewMirror(this.player.mirror),await s.play()}setAudioOutput(t){return this.player.setSinkId(t)}setAudioVolume(t){this.player.setVolume(t)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var t;return((t=this.player)==null?void 0:t.getInternalAudioLevel())||0}stop(t=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.isFirstVideoFrameEmitted=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(OK(this)&&!t?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(i=>{i.stop()}),this.container=null)}async resume(){var t;this.isPlayCalled&&await((t=this.player)==null?void 0:t.resume())}close(){this._toInitState(),this.log.info("close"),this.isPlayCalled&&this.stop(!0)}_toInitState(){}setMute(t){this.muted=t,this._inputTrack&&(this._inputTrack.enabled=!t),this._outputTrack&&(this._outputTrack.enabled=!t),this.emit(t?"mute":"unmute",this),Eo.emit(t?nr.TRACK_MUTED:nr.TRACK_UNMUTED,{track:this})}setPlayerMute(t){this.player.setMuted(t)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(t){z3(t,t).add(gt.MUTE,this.onTrackMuted).add(gt.UNMUTE,this.onTrackUnmuted).add(gt.ENDED,this.onTrackEnded),t.muted&&this.onTrackMuted(),t.readyState===gt.ENDED&&this.onTrackEnded()}uninstallTrackEvent(t){gk(t)}setInputMediaStreamTrack(t){var i;const r=this._inputTrack;if(t!==r)return this._inputTrack=t,this.trackSettings=(i=t.getSettings)==null?void 0:i.call(t),t.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(t),this.emit("input-media-track-changed",t||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(t)}setOutputMediaStreamTrack(t){var i;const r=this._outputTrack;this instanceof GY&&w3(r)||t!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",t.label):this.log.info("setOutputMediaStreamTrack",(i=t.getSettings)==null?void 0:i.call(t).deviceId,t.label),this._outputTrack=t,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!t),this.emit("output-media-track-changed",t))}setMediaType(t){this.mediaType=t}updatePlayingState(t){var i,r;if(this.isPlayCalled){if(t){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped)return this.player.play().catch(s=>this.handleAutoPlayFailed(s)),void this.log.info(`playing state updated, play ${this.kind}`)}else if(!this.player.isStopped)return OK(this)&&this.isAudio&&((i=this.user)!=null&&i.muteState.hasAudio)&&((r=this.user)!=null&&r.muteState.audioMuted)?void 0:(this.player.stop(OK(this)?this.jitterBufferDelay:0),void this.log.info(`playing state updated, stop ${this.kind}`))}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${t} ${this.player.isStopped}`)}async handleAutoPlayFailed(t){var i;this.log.warn("handleAutoPlayFailed",t);const r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((Gw||Rk)&&(await Rw(100),(i=this.player)==null?void 0:i.isPlaying))return;zIA()}else document.addEventListener("click",r,!0);Eo.once(nr.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&Ik()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",t)}getVideoFrame(){return this.player instanceof Ip?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(t){var i,r,s;if(this.isFirstVideoFrameEmitted)return;const g=(i=this.mediaTrack)==null?void 0:i.getSettings();let B=g?.width||((r=this.player.element)==null?void 0:r.videoWidth)||0,Q=g?.height||((s=this.player.element)==null?void 0:s.videoHeight)||0;(t!==vr.RESIZE||B||Q)&&(t!==vr.LOADED_META_DATA||B||Q)&&(t!==vr.LOADED_DATA||B||Q||this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,D9(this.rotation)&&([B,Q]=[Q,B]),this.emit("first-video-frame",{width:B,height:Q,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};ss([FI([],Lr.INIT,{sync:!0})],$3.prototype,"_toInitState");var dcA=Object.prototype.hasOwnProperty;function hcA(t){if(t==null)return!0;if(typeof t=="boolean")return!1;if(typeof t=="number")return t===0;if(typeof t=="string"||typeof t=="function"||Array.isArray(t))return t.length===0;if(t instanceof Error)return t.message==="";if(yw(t))switch(Object.prototype.toString.call(t)){case"[object File]":case"[object Map]":case"[object Set]":return t.size===0;case"[object Object]":for(const i in t)if(dcA.call(t,i))return!1;return!0}return!1}var Z2=hcA,pcA=async function(t){const i=mcA(t);qi.info(`getUserMedia with constraints: ${JSON.stringify(i)}`);let r=[],s=[];const g=["label","deviceId","groupId"];if(i.audio&&(r=await Ek(),qi.info(`microphones: ${up(r.map(B=>lB(cr({},B),{groupId:B.groupId.substring(0,8)})),{keysToInclude:g})}`)),i.video&&(s=await sD(),qi.info(`cameras: ${up(s,{keysToInclude:g})}`),!rD(i.video)&&i.video.facingMode==="user"&&!i.video.deviceId)){const B=s.filter(Q=>!Q.label.includes("infrared")).find(Q=>Q.label.includes("facing front"));B&&(i.video.deviceId=B.deviceId,qi.info(`exclude infrared camera: ${JSON.stringify(i)}`))}try{const B=await navigator.mediaDevices.getUserMedia(i);return mX&&B.getTracks().forEach(Q=>{var f;const m=Q.getCapabilities();qi.info(`${Q.kind} capabilities: ${up(m,{keysToInclude:g9})}`),Fr(t.echoCancellation)||((f=m.echoCancellation)==null?void 0:f.indexOf(t.echoCancellation))!==-1||qi.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(m.echoCancellation)}], but received '${t.echoCancellation}'`)}),i.audio&&z2(),B}catch(B){let{message:Q}=B;throw B.name==="NotFoundError"&&(t.video&&s&&s.length===0&&(Q=j2({key:K2.CAMERA_NOT_FOUND})),t.audio&&r&&r.length===0&&(Q=j2({key:K2.MICROPHONE_NOT_FOUND}))),new Ws({code:xa.INITIALIZE_FAILED,name:B.name,message:Q,constraint:B.constraint})}},fcA=S3({retryFunction:pcA,settings:{retries:3,timeout:500},onError:({error:t,retry:i,reject:r,retryFuncArgs:s,retriedCount:g})=>{const B=g+1;t.name==="NotReadableError"||t.name==="OverconstrainedError"||t.name==="AbortError"?(B===1?(s[0].video&&(s[0].maxResolution=!1,(!IE||s[0].width*s[0].height<=2073600)&&s[0].frameRate&&(s[0].frameRate=s[0].frameRate>10?10:5)),s[0].retryWhenExactFailed&&s[0].useExactDeviceId&&(s[0].useExactDeviceId=!1)):B===2?s[0].useDeviceIdOnly=!0:B!==3||s[0].useExactDeviceId||(s[0].useTrueAsConstraint=!0),i()):r(t),s[0].microphoneId&&a8(s[0].microphoneId,!1),s[0].cameraId&&a8(s[0].cameraId,!0)},onRetrying:t=>{qi.warn(`getUserMedia NotReadableError observed, retrying [${t}/3]`)},onRetryFailed:t=>{fC.logFailedEvent({eventType:VG.GET_USER_MEDIA_RETRY,error:t})},onRetrySuccess:t=>{fC.logSuccessEvent({eventType:VG.GET_USER_MEDIA_RETRY}),fC.uploadEvent({log:`stat-${VG.GET_USER_MEDIA_RETRY}-success-${t}`})}});async function a8(t,i){const r=(i?await sD():await Ek()).find(s=>s.deviceId===t);r&&oD(r.getCapabilities)&&qi.warn(up(r.getCapabilities(),{keysToInclude:g9}))}function mcA(t){return{audio:DcA(t),video:ycA(t)}}function DcA(t){if(!t.audio)return!1;if(t.useTrueAsConstraint)return!0;const i={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:t.sampleRate};return!Z2(t.microphoneId)&&(i.deviceId=t.useExactDeviceId?{exact:t.microphoneId}:t.microphoneId,t.useDeviceIdOnly)?i:(uD(t.channelCount)&&(i.channelCount=t.channelCount),(rD(t.echoCancellation)||t.echoCancellation==="remote-only"||t.echoCancellation==="all")&&(i.echoCancellation=t.echoCancellation),rD(t.noiseSuppression)&&!t.noiseSuppression&&(i.noiseSuppression=!1),rD(t.autoGainControl)&&!t.autoGainControl&&(i.autoGainControl=!1),!!Z2(i)||i)}function ycA(t){if(!t.video)return!1;if(t.useTrueAsConstraint)return!0;const{maxResolution:i=!0}=t,r={};return t.cameraId?r.deviceId=t.useExactDeviceId?{exact:t.cameraId}:t.cameraId:t.facingMode&&(r.facingMode=t.facingMode),t.useDeviceIdOnly&&!Z2(r)?r:(t.width&&(r.width={ideal:t.width},i&&!Ql&&(r.width.max=t.width)),t.height&&(r.height={ideal:t.height},i&&!Ql&&(r.height.max=t.height)),Ql&&wY&&t.width&&t.height&&t.width*t.height<101376&&(r.width=t.width,r.height=t.height),t.frameRate&&(r.frameRate=t.frameRate),!!Z2(r)||r)}var RcA=fcA;function LX(t){return TY((i,r)=>async function(...s){const g=await i.apply(this,s);return await t.call(this,...s),g})}function TY(t){return function(i,r,s){return s.value=t(s.value,r),s}}var McA=(()=>{let t=!1,i=document.visibilityState;return()=>{document.visibilityState!==i&&qi.info(`visibility change: ${document.visibilityState}`),t||(document.addEventListener("visibilitychange",()=>{qi.info(`visibility change: ${document.visibilityState}`),i=document.visibilityState}),t=!0)}})(),wcA=0,ScA=class{constructor(t){OA(this,"log"),OA(this,"isRunning",!1),OA(this,"queue",[]);let i="fq"+ ++wcA;t&&(i+=`|${t}`),this.log=qi.createLogger({id:i})}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,i=!1){var r,s;const g=cr({},t),B=new Promise((Q,f)=>{g.resolve=Q,g.reject=f});return g.promise=B,i?this.length<=1?this.queue.push(g):(s=(r=this.lastQueueItem)==null?void 0:r.promise)==null||s.then(g.resolve,g.reject):this.queue.push(g),this.log.debug(`push ${this.length}`,t.funcName,t.args),this.isRunning||this.callNext(),B}shift(){const t=this.queue.shift();return this.log.debug(`shift ${this.length}`,t?.funcName,t?.args),t}callNext(){if(this.isRunning||this.length===0)return;const{fn:t,args:i,context:r,resolve:s,reject:g,funcName:B}=this.queue[0];this.log.debug("callNext",this.length,B,i),this.isRunning=!0,t.apply(r,i).then(s,g).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},s8=new WeakMap;function vcA(t=!1){return function(i,r,s){const g=s.value;return s.value=function(...B){const Q=s8.get(this)||new ScA;return s8.set(this,Q),Q.push({fn:g,args:B,context:this,funcName:r},t)},s}}function FX(t,i){return TY((r,s)=>function(...g){const B=t;try{const Q=r.apply(this,g),f=Ns();return C9(Q)?Q.then(m=>(i?qr.addSuccessEvent({key:B,cost:Ns()-f}):qr.addSuccessEvent({key:B}),m)).catch(m=>{throw qr.addFailedEvent({key:B,error:m}),m}):(qr.addSuccessEvent({key:B}),Q)}catch(Q){throw qr.addFailedEvent({key:B,error:Q}),Q}})}function Rg(...t){}var NcA=t=>t();function TcA(){this.dispose()}var GcA=()=>typeof __FASTRX_DEVTOOLS__<"u",kcA=1,Mw=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){const i=new bcA(t,this,this.streamId++);return js.subscribe({id:this.id,end:!1},{nodeId:i.sourceId,streamId:i.id}),this(i),i}},AW=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Rg,this.error=Rg,this.next=Rg,this.dispose=Rg,this.subscribe=Rg,this.doDefer()}subscribe(t){return t instanceof Mw?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(NcA),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},BB=class extends AW{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},_cA=class extends AW{constructor(t,i=Rg,r=Rg,s=Rg){if(super(),this._next=i,this._error=r,this._complete=s,this.then=Rg,t instanceof Mw){const g={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{js.defer(g,0)}),js.create(g),js.pipe(g),this.sourceId=g.id,this.subscribe(t),js.subscribe({id:g.id,end:!0}),i==Rg?this._next=B=>js.next(g,0,B):this.next=B=>{js.next(g,0,B),i(B)},s==Rg?this._complete=()=>js.complete(g,0):this.complete=()=>{this.dispose(),js.complete(g,0),s()},r==Rg?this._error=B=>js.complete(g,0,B):this.error=B=>{this.dispose(),js.complete(g,0,B),r(B)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function QC(t,...i){return i.reduce((r,s)=>s(r),t)}function dl(t,i,r){if(GcA()){const s=Object.defineProperties(Object.setPrototypeOf(t,Mw.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:i,writable:!0,configurable:!0},args:{value:r,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});js.create(s);for(let g=0;g<r.length;g++){const B=r[g];typeof B=="function"&&B instanceof Mw&&js.addSource(s,B)}return s}return t}function pD(t,i){return function(...r){return s=>{if(s instanceof Mw){const g=dl(B=>{const Q=new t(B,...r);Q.sourceId=g.id,Q.subscribe(s)},i,arguments);return g.source=s,js.pipe(g),g}return g=>s(new t(g,...r))}}}function ip(t,i){window.postMessage({source:"fastrx-devtools-backend",payload:{event:t,payload:i}})}var bcA=class extends BB{constructor(t,i,r){super(t),this.source=i,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{js.defer(this.source,this.id)})}next(t){js.next(this.source,this.id,t),this.sink.next(t)}complete(){js.complete(this.source,this.id),this.sink.complete()}error(t){js.complete(this.source,this.id,t),this.sink.error(t)}},js={addSource(t,i){ip("addSource",{id:t.id,name:t.toString(),source:{id:i.id,name:i.toString()}})},next(t,i,r){ip("next",{id:t.id,streamId:i,data:r&&r.toString()})},subscribe({id:t,end:i},r){ip("subscribe",{id:t,end:i,sink:{nodeId:r&&r.nodeId,streamId:r&&r.streamId}})},complete(t,i,r){ip("complete",{id:t.id,streamId:i,err:r?r.toString():null})},defer(t,i){ip("defer",{id:t.id,streamId:i})},pipe(t){ip("pipe",{name:t.toString(),id:t.id,source:{id:t.source.id,name:t.source.toString()}})},update(t){ip("update",{id:t.id,name:t.toString()})},create(t){t.id||(t.id=kcA++),ip("create",{name:t.toString(),id:t.id})}},LcA=class extends AW{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(i=>i.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(i=>i.error(t)),this.sinks.clear()}};function UX(){return t=>{const i=new LcA(t);if(t instanceof Mw){const r=dl(s=>{i.add(s)},"share",arguments);return i.sourceId=r.id,r.source=t,js.pipe(r),r}return dl(i.add.bind(i),"share",arguments)}}function OX(...t){return dl(i=>{const r=new BB(i);let s=t.length;r.complete=()=>{--s===0&&i.complete()},t.forEach(r.bindSubscribe)},"merge",arguments)}function FcA(...t){return dl(i=>{const r=new Map;t.forEach(s=>{const g=new BB(i);r.set(s,g),g.complete=()=>{r.delete(s),r.size===0?i.complete():g.dispose()},g.next=B=>{r.delete(s),r.forEach(Q=>Q.dispose()),g.resetNext(),g.resetComplete(),g.next(B)}}),t.forEach(s=>r.get(s).subscribe(s))},"race",arguments)}function UcA(...t){return i=>dl((r,s=0,g=t.length)=>{for(;s<g&&!r.disposed;)r.next(t[s++]);r.disposed||r.subscribe(i)},"startWith",arguments)}function xX(t){const i=arguments,r=UX()(dl(s=>{r.next=g=>s.next(g),r.complete=()=>s.complete(),r.error=g=>s.error(g),t&&s.subscribe(t)},"subject",i));return r.next=Rg,r.complete=Rg,r.error=Rg,r}function OcA(t){return dl(i=>{let r=0;const s=setInterval(()=>i.next(r++),t);return i.defer(()=>{clearInterval(s)}),"interval"},"interval",arguments)}function xcA(t,i){return dl(r=>{let s=0;const g=setTimeout(()=>{r.removeDefer(B),r.next(s++),i||r.complete()},t),B=()=>clearTimeout(g);r.defer(B)},"timer",arguments)}function ZK(t,i){return r=>{const s=g=>r.next(g);r.defer(()=>i(s)),t(s)}}function Rc(t,i){if("on"in t&&"off"in t)return dl(ZK(r=>t.on(i,r),r=>t.off(i,r)),"fromEvent",arguments);if("addListener"in t&&"removeListener"in t)return dl(ZK(r=>t.addListener(i,r),r=>t.removeListener(i,r)),"fromEvent",arguments);if("addEventListener"in t)return dl(ZK(r=>t.addEventListener(i,r),r=>t.removeEventListener(i,r)),"fromEvent",arguments);throw"target is not a EventDispachter"}function YcA(){return dl(t=>t.complete(),"empty",arguments)}var PcA=class extends BB{constructor(t,i,r){super(t),this.filter=i,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},mw=pD(PcA,"filter"),JcA=class extends BB{constructor(t,i){super(t),this.count=i}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},HcA=pD(JcA,"take"),VcA=class extends BB{constructor(t,i){super(t);const r=new BB(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=TcA,r.subscribe(i)}},ww=pD(VcA,"takeUntil"),qcA=class extends BB{constructor(t,i){super(t),this.f=i}next(t){this.f(t)||(this.next=super.next,this.next(t))}},KcA=pD(qcA,"skipWhile"),jcA=class extends BB{constructor(t,i,r){super(t),this.mapper=i,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},YX=pD(jcA,"map"),WcA=class extends BB{constructor(t,i,r){super(t),this.data=i,this.context=r}next(t){const i=this.context.combineResults;i?this.sink.next(i(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},zcA=class PX extends BB{constructor(i,r,s){super(i),this.makeSource=r,this.combineResults=s,this.index=0}subInner(i,r){const s=this.currentSink=new r(this.sink,i,this);this.complete===PX.prototype.complete&&(this.complete=this.tryComplete),s.complete=s.tryComplete,s.subscribe(this.makeSource(i,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},g8=class extends WcA{},JX=class extends zcA{next(t){this.subInner(t,g8),this.next=i=>{this.currentSink.dispose(),this.subInner(i,g8)}}},ZcA=pD(JX,"switchMap");function XcA(t){return(i,r)=>t(()=>i,r)}var HX=XcA(pD(JX,"switchMapTo")),dD=(t=Rg,i=Rg,r=Rg)=>s=>new _cA(s,t,i,r),VX=(t=>(t[t.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",t[t.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",t))(VX||{}),AD=class extends $3{constructor(t,i){super({mediaType:t,PlayerClass:i}),OA(this,"isRemote",!1),OA(this,"deviceId"),OA(this,"groupId",""),OA(this,"label",""),OA(this,"sourceTrack"),OA(this,"enableAutoSwitchWhenRecapturing",!0),OA(this,"_isRecapturing",!1),OA(this,"_lastRecaptureTime",0),OA(this,"_onMuteTimeoutId",-1),OA(this,"_encodeCheckTimeoutId",-1),OA(this,"recaptureMode",0),OA(this,"profile"),OA(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return!(!this.mediaTrack||this.sourceTrack===this.mediaTrack)}encodeFrame(t,i){throw new Error("Method not implemented.")}installTrackEvent(t){t.addEventListener(gt.MUTE,this.onTrackMuted),t.addEventListener(gt.UNMUTE,this.onTrackUnmuted),t.addEventListener(gt.ENDED,this.onTrackEnded),t.muted&&this.onTrackMuted(),t.readyState===gt.ENDED&&this.onTrackEnded()}uninstallTrackEvent(t){t.removeEventListener(gt.MUTE,this.onTrackMuted),t.removeEventListener(gt.UNMUTE,this.onTrackUnmuted),t.removeEventListener(gt.ENDED,this.onTrackEnded)}setStateToReady(){}async capture(t,i=!1){var r,s;const g=this.sourceTrack;try{const B=Ns();let Q;Eo.emit(nr.LOCAL_TRACK_CAPTURE_START,{track:this}),t.customSource?(Q=new MediaStream,Q.addTrack(t.customSource)):(i||(r=this.sourceTrack)==null||r.stop(),Q=await RcA(t));const f=Q.getTracks()[0];return await this.setInputMediaStreamTrack(f),t.customSource||(this.sourceTrack=f,this.updateDeviceIdInUse(),this.listenDeviceChange()),Eo.emit(nr.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Ns()-B,profile:this.profile,room:(s=this.manager)==null?void 0:s.room}),Q}catch(B){throw Eo.emit(nr.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:B}),this.log.error(`getUserMedia error observed ${B}`),B}finally{i&&g?.stop()}}setOutputMediaStreamTrack(t){var i;if(super.setOutputMediaStreamTrack(t),this.setStateToReady(),this.isPublishing||this.isPublished)return(i=this.room)==null?void 0:i.replaceTrack(this)}get hasFlag(){var t,i;const r=u9(((t=this.room)==null?void 0:t.localPublishFlag)||0,((i=this.room)==null?void 0:i.userId)||"");return this.mediaType===4&&r.hasVideo||this.mediaType===1&&r.hasAudio||this.mediaType===2&&r.hasAuxiliary}async publish(t,i){return this.room=t,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=t.userId,this._log.bindParent(t.getLogger()),await i,this._checkPublishFlag(t)}_checkPublishFlag(t){return new Promise(async(i,r)=>{var s,g,B,Q,f;const m=()=>r(new Ws({code:xa.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?i():(this.state!==Lr.INIT&&this.state!=="ready"||m(),QC(Rc(t,"local-publish-flag-changed"),mw(()=>this.hasFlag),ww(OX(Rc(this,Lr.INIT),Rc(this,"ready"))),dD(i,r,m))),(B=(g=(s=this.room)==null?void 0:s.networkQuality)==null?void 0:g.hadRecentBadUplink)==null?void 0:B.call(g,2))return i();const M=t.heartbeatCount,v=((f=(Q=this.mediaTrack)==null?void 0:Q.stats)==null?void 0:f.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(async()=>{var U,AA,z,sA,eA,X,QA,wA;if((z=(AA=(U=this.room)==null?void 0:U.networkQuality)==null?void 0:AA.hadRecentBadUplink)!=null&&z.call(AA,2)||t.heartbeatCount-M<3)return i();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((sA=this.mediaTrack)!=null&&sA.stats){const ue=this.mediaTrack.stats.totalFrames||0;ue-v===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",ue)}const HA=this.kind===gt.AUDIO,VA=this.stat.bytesSent>0;if(qr[VA?"addSuccessEvent":"addFailedEvent"]({key:HA?503700:513702}),!HA){const ue={H264:513704,H265:513705,VP8:513706}[((X=(eA=this.room)==null?void 0:eA.videoCodec)==null?void 0:X.toUpperCase())||"H264"];ue&&qr[VA?"addSuccessEvent":"addFailedEvent"]({key:ue})}if(!VA){if(qr.addEnum({key:HA?503701:513703,value:Y3()}),fC.uploadEvent({log:`stat-encode-failed-${this.kind}-${eX()||iX()}`,userId:this.userId}),this.log.warn(HA?"encode failed":`${(wA=(QA=this.room)==null?void 0:QA.videoCodec)==null?void 0:wA.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),await this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(await Rw(5e3),this.stat.bytesSent>0||this.hasFlag)))return i();this.emit("6",this),r(new Ws({message:`${this.strMediaType} encode failed`,code:HA?xa.AUDIO_ENCODE_FAILED:xa.VIDEO_ENCODE_FAILED}))}}},1e4)})}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),Eo.emit(nr.LOCAL_TRACK_UNPUBLISHED,{track:this})}async updateDeviceIdInUse(){if(this.sourceTrack&&W2){const{deviceId:t,groupId:i}=this.sourceTrack.getSettings(),{label:r}=this.sourceTrack;await CcA({newDeviceId:t,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind})||(this.deviceId=t,this.label=r,i&&(this.groupId=i),Yj().then(s=>{const g=s.find(B=>{let Q=B.deviceId===t;return i&&(Q=Q&&B.groupId===i),Q});g&&this.emit("2",g)}))}}setProfile(t){this.log.info("setProfile",t),Object.assign(this.profile,t)}isNeedToRecapture(t=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===gt.AUDIO&&!EcA(this.sourceTrack)||this.kind===gt.VIDEO&&!ccA(this.sourceTrack)||this._isRecapturing||t&&wY&&IE)}onTrackMuted(){super.onTrackMuted(),McA(),this.isNeedToRecapture(!0)&&(Date.now()-this._lastRecaptureTime<o2?setTimeout(()=>this.onTrackMuted(),o2):this._onMuteTimeoutId=setTimeout(async()=>{var t;if((t=this.sourceTrack)!=null&&t.muted){if((UI||hl)&&document.visibilityState!=="visible")return;this.recapture(await this.getRecoverCaptureDeviceId())}},5e3))}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}async onTrackEnded(){if(super.onTrackEnded(),this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<o2)return void setTimeout(()=>this.onTrackEnded(),o2);this.emit("7"),this.recapture(await this.getRecoverCaptureDeviceId())}}async recapture(t,i=!1){var r;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");const s=this.sourceTrack;i||(r=this.sourceTrack)==null||r.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();const g={useExactDeviceId:!0};if(t==="user"||t==="environment")g.facingMode=t;else{let B;(this.kind==="audio"?await Ek():await sD()).find(Q=>Q.deviceId===t)&&(B=t),g.deviceId=B}return this.capture(g,i).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),Eo.emit(nr.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(B=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${B.message}`),this.emit("5",B),Eo.emit(nr.LOCAL_TRACK_RECAPTURE,{track:this,error:B})}).finally(()=>{i&&s?.stop()})}async getRecoverCaptureDeviceId(){const t=this instanceof GY;if(t&&this.facingMode)return this.facingMode;let{deviceId:i}=this;if(i){const r=(vG.get(i)||0)+1;if(vG.set(i,r),r>=3&&this.enableAutoSwitchWhenRecapturing){const s=t?(await sD()).find(g=>!vG.has(g.deviceId)):(await Ek()).find(g=>!vG.has(g.deviceId));s&&(this.log.warn(`${i} capture fail ${r} times, change new ${s.deviceId}`),i=s.deviceId)}}return i}stopCapture(){var t;this.sourceTrack&&(this.sourceTrack.stop(),Eo.emit(nr.LOCAL_TRACK_STOPPED,{track:this}),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(t=this.manager)==null||t.removeInput(this),this._onMuteTimeoutId&&clearTimeout(this._onMuteTimeoutId)}close(){super.close(),this.stopCapture()}};ss([FI(Lr.INIT,"ready",{ignoreError:!0,sync:!0})],AD.prototype,"setStateToReady"),ss([vcA()],AD.prototype,"capture"),ss([FI("ready","publish",{ignoreError:!0,success(){Eo.emit(nr.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(t){var i;(i=this.room)==null||i.localTracks.delete(this);let r="error";const s=t instanceof Ws?t:t.cause instanceof Ws?t.cause:t;let g=!1;s instanceof Ws&&(s.message.includes("timeout")?r="timeout":s.code===xa.API_CALL_ABORTED&&(g=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:s}),this.log[g?"info":"error"]("publish failed",s)}}),FX(521714,!1)],AD.prototype,"publish"),ss([TY(t=>async function(){const i=this.state==="publish"?"started":"starting";t.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:i,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)}),FI([],"ready",{sync:!0})],AD.prototype,"unpublish");var vG=new Map;Eo.on(nr.SWITCH_DEVICE_SUCCESS,t=>{t.track.deviceId&&vG.delete(t.track.deviceId)});var $cA=class{constructor(t,i=!1){this.dataView=t,this.isSEI&&(i?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){const{seiPayloadStartIndex:t}=this,i=this.dataView.byteLength-2,r=[];let s=0;for(let B=t;B<=i;B++){const Q=this.dataView.getInt8(B);switch(Q){case 0:case 1:case 2:case 3:s===2&&(r.push(3),s=0),Q===0?s+=1:s=0,r.push(Q);break;default:s=0,r.push(Q)}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));const g=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=g}removePreventionByte(){const{seiPayloadStartIndex:t}=this,i=this.dataView.byteLength-1,r=[];let s=0;for(let B=t;B<=i;B++)switch(this.dataView.getInt8(B)){case 0:s++,r.push(this.dataView.getInt8(B));break;case 3:s!==2&&r.push(this.dataView.getInt8(B)),s=0;break;default:r.push(this.dataView.getInt8(B)),s=0}const g=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=g}get seiPayloadStartIndex(){let t=6;for(let i=6;i<this.dataView.buffer.byteLength&&(t+=1,this.dataView.getUint8(i)===255);i+=1);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,i=6;for(let B=6;B<this.dataView.buffer.byteLength;B+=1){const Q=this.dataView.getUint8(B);if(i+=1,Q!==255){t+=Q;break}t+=255}const r=new ArrayBuffer(t),s=new DataView(r),g=i;for(let B=0;B<r.byteLength;B+=1)s.setInt8(B,this.dataView.getInt8(g+B));return s}get naluType(){const t=this.getStartCodeLength();return t>=this.dataView.byteLength?0:31&this.dataView.getUint8(t)}getStartCodeLength(){return this.dataView.byteLength>=4&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===0&&this.dataView.getUint8(3)===1?4:this.dataView.byteLength>=3&&this.dataView.getUint8(0)===0&&this.dataView.getUint8(1)===0&&this.dataView.getUint8(2)===1?3:0}get isIDR(){return this.naluType===5}get isSPS(){return this.naluType===7}get isPPS(){return this.naluType===8}get isSEI(){return this.naluType===6}},AEA=class{constructor(){OA(this,"_seiMessageList",[]),OA(this,"_smallSeiMessageList",[]),OA(this,"_seiPayloadType",243)}encodeSEINalu(t){const i=t.byteLength,r=parseInt(String(i/255),10),s=i%255,g=[];g.push(0,0,0,1,6,this._seiPayloadType);for(let Q=0;Q<r;Q++)g.push(255);g.push(s);const B=new DataView(t);return g.push(...new Uint8Array(B.buffer)),g.push(128),new $cA(new DataView(new Uint8Array(g).buffer),!0)}sendSEI(t,i){i?.seiPayloadType&&(this._seiPayloadType=i.seiPayloadType),this._seiMessageList.push(t),i?.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let i=0,r=0;const s=new DataView(t);for(let g=0;g<t.byteLength;g++)switch(s.getUint8(g)){case 0:i++;break;case 1:i!==2&&i!==3||r++,i=0;break;default:i=0}return r}encode(t,i){const r=i?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){const s=9-this.getNaluCount(t.data);if(s<=0)return 0;const g=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),B=g.reduce((v,U)=>v+U.dataView.byteLength,0),Q=new ArrayBuffer(B+t.data.byteLength),f=new DataView(Q),m=new DataView(t.data);let M=0;for(let v=0;v<g.length;v++)for(let U=0;U<g[v].dataView.byteLength;U++)f.setInt8(M++,g[v].dataView.getInt8(U));for(let v=0;v<t.data.byteLength;v++)f.setInt8(M++,m.getInt8(v));return t.data=Q,g.length}return 0}},GY=class extends AD{constructor(t,i=4){super(i,Ip),OA(this,"profile",cr({},ksA)),OA(this,"avoidCropping",!1),OA(this,"_scaleResolutionDownBy"),OA(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0}),OA(this,"small"),OA(this,"isNeedToSetBandwidth"),OA(this,"muteImage"),OA(this,"manager"),OA(this,"_seiCodec",new AEA),this.manager=t;const r=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{const g=Y2(((s=this.room)==null?void 0:s.sdkAppId)||0)?m5:f5;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${g}`),this.setProfile(lB(cr({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",r),this.on("publish",r),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(W2&&this.mediaTrack)return this.mediaTrack.getSettings().facingMode}get contentHint(){var t;return((t=this._inputTrack)==null?void 0:t.contentHint)||""}get isQosClearFirst(){var t;return((t=this._inputTrack)==null?void 0:t.contentHint)==="detail"}get hasSmall(){var t;return!!((t=this.manager)!=null&&t.hasSmall)}async setMute(t){var i,r,s;if(pC(t)){if(this.muteImage===t)return;await((i=this.manager)==null?void 0:i.deleteWatermark("mute")),await((r=this.manager)==null?void 0:r.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:t,fillVideo:!0})),this.muteImage=t,super.setMute(!1)}else this.muteImage&&(await((s=this.manager)==null?void 0:s.deleteWatermark("mute")),this.muteImage=void 0),super.setMute(t)}async capture({deviceId:t,facingMode:i,useExactDeviceId:r=!0,customSource:s,retryWhenExactFailed:g=!0}){const B={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:g,customSource:s};if(B.facingMode==="environment"){const Q=await this.getDeviceIdWhenUsingBackCamera();Q&&(B.cameraId=Q)}return super.capture(B)}setProfile(t){var i;const r=this.fallbackProfile(t);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{const s=Y2(((i=this.room)==null?void 0:i.sdkAppId)||0)?m5:f5;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(lB(cr({},this.profile),{width:1920,height:1080}))}}async applyProfile(){var t,i;if(!this.mediaTrack)return;const{width:r=0,height:s=0}=(this.sourceTrack||this.mediaTrack).getSettings(),g=r*s,B=this.settings,Q=B.height!==this.profile.height||B.width!==this.profile.width||B.frameRate!==this.profile.frameRate;if(Q&&(QD===16&&this.deviceId?await this.recapture(this.deviceId):(w3(this.outMediaTrack)?await((t=this.outMediaTrack)==null?void 0:t.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate})):await((i=this.sourceTrack||this.mediaTrack)==null?void 0:i.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate})),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;const{width:f=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),M=f*m;return Q&&M&&g&&M===g?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:gt.VIDEO,videoType:gt.BIG})}}get settings(){const t={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},i=this.sourceTrack||this.mediaTrack;return W2&&i&&Object.assign(t,i.getSettings()),t}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:m9(this.settings,this.profile)}isAllowed2k4k(t){var i;return!this.room||!this.room.scheduleResult||!!this.isScreen||t.height*t.width<3686400||((i=this.room.scheduleResult.trtcAutoConf)==null?void 0:i["2k4k"])===1}isNeedToSwitchDevice(t){return!(!this.mediaTrack||this.deviceId===t||this.facingMode===t)}async switchDevice(t){try{if(!this.isNeedToSwitchDevice(t)&&!this.isUseCustomSource)return;const i={useExactDeviceId:!0,retryWhenExactFailed:!1};t==="user"||t==="environment"?i.facingMode=t:i.deviceId=t,this.sourceTrack&&this.sourceTrack.stop(),await this.capture(i),Eo.emit(nr.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(i){throw this.log.error(`switch camera failed ${i}`),this.deviceId&&this.recapture(this.deviceId),i}}async getDeviceIdWhenUsingBackCamera(){let t;try{if(q9&&!O3&&DX){const i=(await sD(!0)).map(s=>{var g;return lB(cr({},s),{capabilities:(g=s.getCapabilities)==null?void 0:g.call(s)})}).filter(s=>{var g,B;return(B=(g=s.capabilities)==null?void 0:g.facingMode)==null?void 0:B.includes("environment")});let r=i[0];i.forEach(s=>{var g,B,Q,f;const{capabilities:m}=s;((g=m.width)!=null&&g.max&&((B=m.height)!=null&&B.max)?m.width.max*m.height.max:0)>((Q=r.capabilities.width)!=null&&Q.max&&((f=r.capabilities.height)!=null&&f.max)?r.capabilities.width.max*r.capabilities.height.max:0)&&(r=s)}),r?.capabilities&&(this._log.info("use max resolution back camera",r),t=r.deviceId)}}catch(i){this._log.warn("get max res camera failed",i)}return t}async updateSmallConfig(t){var i,r;this._log.info(`update small stream config: ${JSON.stringify(t)}`);const s=!this.small;this.small=this.fallbackProfile(t,!0),await((i=this.manager)==null?void 0:i.update()),s&&await((r=this.room)==null?void 0:r.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(t,i=!1){const r=t.width>t.height,s=cr({},t);return t.width*t.height<=19200&&hl&&pp&&(this.log.warn(`${i?"small ":""}resolution is ${t.width}*${t.height}, fallback to 240*180 for android chrome`),s.width=r?240:180,s.height=r?180:240,s.bitrate=Math.max(t.bitrate,150)),t.width*t.height>921600&&qgA&&(s.width=r?1280:720,s.height=r?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),HgA(_u,"14.3")&&AX(_u,"14.0",!0)&&this.on("7",()=>{const g=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=g?640:480,this.profile.height=g?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>230400&&(this.profile.width=g?640:360,this.profile.height=g?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!i&&this.avoidCropping&&(pp||Ql)&&!WgA()&&t.width*t.height<=230400&&t.width/t.height===16/9&&(this._scaleResolutionDownBy=1280/t.width,s.width=1280,s.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var t,i;this.small&&(delete this.small,(t=this.manager)==null||t.update(),(i=this.room)==null||i.enableSmall(!1))}listenDeviceChange(){Tu&&!Tu.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&Tu.on("videoInputRemoved",this.handleCameraRemoved,this)}async handleCameraRemoved(t){if(t.deviceId===this.deviceId){let i=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${VX[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(t)}`),this.recaptureMode===0){ns(this.userId,{eventId:2003,param1:7,streamType:2});const r=await sD();r[0]?this.recapture(r[0].deviceId):i=!0}i&&Tu.on("videoInputAdded",this.handleCameraAdded,this)}}async handleCameraAdded(t){this.recaptureMode===1&&t.deviceId!==this.deviceId||(Tu.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn(`camera added: ${JSON.stringify(t)}`),this.recapture(t.deviceId))}encodeFrame(t,i){if(!this.manager)return t;const r=i?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,g)=>g?g({frame:s,mediaType:r}):s,t)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(t=>t)}play(t,i){return Fr(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(t,i)}close(){Tu.off("videoInputAdded",this.handleCameraAdded,this),Tu.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}async recapture(t){try{await super.recapture(t)}catch(i){const r=(await sD()).find(s=>s.deviceId!==t);if(!r)throw i;await super.recapture(r.deviceId)}}setContentHint(t){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==t&&(this.log.info(`setContentHint ${t}`),this.mediaTrack.contentHint=t),this.outMediaTrack&&this.outMediaTrack.contentHint!==t&&(this.outMediaTrack.contentHint=t))}setRotation(t){this.manager&&(this.isScreen||Fr(t)||t!==this.rotation&&(this.rotation=t,this.manager.rotation=t))}};ss([LX(function(t){this.setContentHint(t.contentHint||"motion")})],GY.prototype,"capture");var eEA=[-1,-1,1,-1,-1,1,1,1],tEA=[0,0,1,0,0,1,1,1],NG=class Pj extends Lr{constructor(i,r){if(super(),this.context=i,OA(this,"name"),OA(this,"input"),OA(this,"output"),OA(this,"texture"),OA(this,"ctx2d",null),OA(this,"fbo"),OA(this,"width",0),OA(this,"height",0),OA(this,"x",0),OA(this,"y",0),OA(this,"program"),OA(this,"vertexShader"),OA(this,"fragmentShader"),OA(this,"totalFrames",0),OA(this,"dropFrames",0),OA(this,"matchInputSize",!0),OA(this,"texCoordBuffer"),OA(this,"positionBuffer"),OA(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),OA(this,"cost",0),OA(this,"_canvas",null),OA(this,"_image"),OA(this,"log"),this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||i.width,this.height=r.height||i.height,this._image=r.image,i instanceof Ck)i.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&QD!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);else try{const s=i.ctx;this.texCoordBuffer=this.createBuffer(tEA),this.positionBuffer=this.createBuffer(eEA),r.createTexture!==!1&&(this.texture=s.createTexture(),this.useTexture(),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.pixelStorei(s.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=s.createFramebuffer(),this.useBufferFrame(),this.useTexture(),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,this.width,this.height,0,s.RGBA,s.UNSIGNED_BYTE,null),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=i.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?i.createShader(s.VERTEX_SHADER,r.vertexShaderSource):i.defaultVShader,this.fragmentShader=r.fragmentShaderSource?i.createShader(s.FRAGMENT_SHADER,r.fragmentShaderSource):i.defaultFShader,this.program=i.createProgram(this.vertexShader,this.fragmentShader))}catch(s){this.context.destroy(new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${s.message||s}`}))}}get image(){return this._image}set image(i){this._image=i}createFramebuffer(i){const r=this.context.ctx,s=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,i,0),s}connect(i,...r){return i.addInput(this,...r),this.output=i,i}addInput(i,...r){this.input=i,this.matchInputSize&&i.width&&i.height&&this.resize(i.width,i.height)}requestFrame(i){const r=Date.now();return!!(this.context instanceof Jj&&this.render(i)||this.context instanceof Ck&&this.render2d(i))&&(this.totalFrames++,this.cost=Date.now()-r,!0)}render2d(i){var r;return!!((r=this.input)!=null&&r.requestFrame(i))&&this.draw2d(this.input.image,0,0,this.width,this.height)}update(i=0){var r;(r=this.output)==null||r.update(i)}disconnect(...i){var r;(r=this.output)==null||r.removeInput(this,...i),delete this.output}removeInput(i,...r){delete this.input}close(){var i,r;if(this.context.off("disconnect",this.close,this),(i=this.output)==null||i.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Jj){const s=this.context.ctx;s.deleteBuffer(this.texCoordBuffer),s.deleteBuffer(this.positionBuffer),this.fbo&&s.deleteFramebuffer(this.fbo),this.texture&&s.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&s.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&s.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&s.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 i;this.useTextures((i=this.input)==null?void 0:i.texture)}useTextures(...i){const r=this.context.ctx;i.forEach((s,g)=>{s&&(r.activeTexture(r.TEXTURE0+g),r.bindTexture(r.TEXTURE_2D,s))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){const i=this.context.ctx;i.bindFramebuffer(i.FRAMEBUFFER,this.fbo||null)}createBuffer(i){const r=this.context.ctx,s=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,s),r.bufferData(r.ARRAY_BUFFER,new Float32Array(i),r.STATIC_DRAW),s}setTexBuffer(i){const r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(i),r.STATIC_DRAW)}setPosBuffer(i){const r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(i),r.STATIC_DRAW)}changeBufferData(i,r){const s=this.context.ctx;s.bindBuffer(s.ARRAY_BUFFER,i),s.bufferData(s.ARRAY_BUFFER,new Float32Array(r),s.STATIC_DRAW)}setAttributes(...i){const r=this.context.ctx;i.forEach((s,g)=>{r.enableVertexAttribArray(g),r.bindBuffer(r.ARRAY_BUFFER,s),r.vertexAttribPointer(g,2,r.FLOAT,!1,0,0)})}getVertexPoint(i,r){return[i/this.width*2-1,r/this.height*2-1]}layout2texCoords(i){return[...this.getVertexPoint(i.x,i.y),...this.getVertexPoint(i.x+i.width,i.y),...this.getVertexPoint(i.x,i.y+i.height),...this.getVertexPoint(i.x+i.width,i.y+i.height)]}resize(i,r){if(this.width!==i||this.height!==r){if(this.width=i,this.height=r,this._canvas&&(this._canvas.width=i,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();const s=this.context.ctx;s.texImage2D(s.TEXTURE_2D,0,s.RGBA,i,r,0,s.RGBA,s.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(i,r)}}draw(i,r){this.setAttributes(i||this.positionBuffer,r||this.texCoordBuffer);const s=this.context.ctx;s.drawArrays(s.TRIANGLE_STRIP,0,4)}draw2d(i,r,s,g,B,Q,f,m,M){const v=!(Fr(Q)||Fr(f)||Fr(m)||Fr(M));return!(!this.ctx2d||!i)&&(i instanceof ImageData?(v?this.ctx2d.putImageData(i,r,s,Q,f,m,M):this.ctx2d.putImageData(i,r,s),this.emit(Pj.RENDER,this.ctx2d.canvas)):(v?this.ctx2d.drawImage(i,Q,f,m,M,r,s,g,B):this.ctx2d.drawImage(i,r,s,g,B),this.emit(Pj.RENDER,i)),typeof VideoFrame<"u"&&i instanceof VideoFrame&&i.close(),!0)}drawBackGround2d(i){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=i,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var i;const{totalFrames:r,x:s,y:g,width:B,height:Q,name:f,cost:m}=this,M=Date.now(),v=(r-this.lastInfo.totalFrames)/((M-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:r,x:s,y:g,width:B,height:Q,timestamp:M,fps:v,name:f,cost:m},cr({parent:(i=this.input)==null?void 0:i.getInfo()},this.lastInfo)}createTexture(i){const r=this.context.ctx,s=r.createTexture();return this.useTextures(s),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i),s}};OA(NG,"RENDER","render"),ss([FI(Lr.INIT,"connected",{sync:!0})],NG.prototype,"connect"),ss([FI("connected",Lr.INIT,{ignoreError:!0,sync:!0})],NG.prototype,"disconnect"),ss([FI([],"closed",{sync:!0})],NG.prototype,"close");var X2=NG,iEA=QC(OcA(250),YX(()=>performance.now()),UX()),oEA=t=>i=>{const r=performance.now();QC(iEA,KcA(s=>s-r<t),HcA(1))(i)},rEA=[0,1,1,1,0,0,1,0],nEA=class extends X2{constructor(t,i){super(t,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},i)),OA(this,"_intervalId",0),OA(this,"_sequence",0),OA(this,"checkGLError",!1),OA(this,"checkVisibilityChange"),t instanceof Ck?this.ctx2d=t.ctx||null:t.available&&i?.mirrorUpAndDown&&this.setTexBuffer(rEA)}start(t){this.log.info(`${this.name} start render ${t} fps`),ku.clearTask(this._intervalId),this._intervalId=ku.run("intervalInWorker",()=>{if(t!==this.context.frameRate&&(ku.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Jj){const i=this.context.ctx.getError();i&&this.context.destroy(new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${i}`}))}},{fps:this.context.frameRate})}render(t){var i;return!!((i=this.input)!=null&&i.requestFrame(t))&&(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(X2.RENDER,this.context._canvas),!0)}addInput(t,...i){super.addInput(t,...i),this.start(this.context.frameRate)}update(t=0){this.state!=="closed"&&(this._intervalId&&(ku.clearTask(this._intervalId),this._intervalId=0,t===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(t){super.removeInput(t),ku.clearTask(this._intervalId)}resize(t,i){super.resize(t,i),this.context.setSize(t,i)}close(){super.close(),ku.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},aEA=class extends nEA{constructor(t,i){super(t,i),OA(this,"_videoTrack"),OA(this,"_muteOb"),OA(this,"_closedOb",Rc(this,"closed")),OA(this,"_subscription"),OA(this,"_canvasContainer"),Number(Mk)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=t.canvas.captureStream().getVideoTracks(),this._muteOb=Rc(this._videoTrack,"mute"),QC(Rc(this._videoTrack,"ended"),ww(this._closedOb),dD(()=>{this.context.destroy(new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=QC(this._muteOb,ww(this._closedOb),HX(oEA(5e3)),mw(()=>{var t;return!!((t=this._videoTrack)!=null&&t.muted)&&!document.hidden}),dD(()=>{this.context.destroy(new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var t;(t=this._subscription)==null||t.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){this.context._canvas&&this._canvasContainer&&(document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas)))}render(t){return this.putCanvasIntoDom(),super.render(t)}render2d(t){return this.putCanvasIntoDom(),super.render2d(t)}close(){var t,i;super.close(),(t=this._videoTrack)==null||t.stop(),delete this._videoTrack,(i=this._canvasContainer)==null||i.remove()}},qX=class extends X2{constructor(t,i){super(t,cr({name:"imageSource"},i)),OA(this,"_lastImage"),OA(this,"_totalFrames",0),OA(this,"_autoResize",!1),OA(this,"_canvasRendered"),OA(this,"videoCallbackId",0),OA(this,"waitingFirstFrame",!0),OA(this,"shouldUpdate",!0),this._autoResize=i?.autoResize!==!1,QD===16&&(this._canvasRendered=xX(),QC(this._canvasRendered,UcA(this._image),ZcA(r=>r instanceof HTMLCanvasElement?Rc(r,"rendered"):YcA()),ww(Rc(this,"closed")),dD(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;const t=this.image;this.videoCallbackId&&t.cancelVideoFrameCallback(this.videoCallbackId),j3()&&!document.hidden&&(this.videoCallbackId=t.requestVideoFrameCallback((i,r)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=r.presentedFrames,this.update(1))}))}_render(t,i){var r;let{width:s,height:g}=this;const{image:B}=this;if(B instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:s,videoHeight:g}=B,!s||!g)return!1;B.width=s,B.height=g}else if(B instanceof HTMLImageElement||B instanceof ImageData||B instanceof ImageBitmap){if({width:s,height:g}=B,B!==this._lastImage)this._lastImage=B;else if(s===this.width&&g===this.height)return!0}else B instanceof HTMLCanvasElement||B instanceof OffscreenCanvas?({width:s,height:g}=B,this._lastImage=B):typeof VideoFrame<"u"&&B instanceof VideoFrame&&({displayWidth:s,displayHeight:g}=B,(r=this._lastImage)==null||r.close(),this._lastImage=B);if(!this._autoResize)return!0;if(this.width===s&&this.height===g&&this.totalFrames){if(i){this.useTexture();const Q=this.context.ctx;Q.texSubImage2D(Q.TEXTURE_2D,0,0,0,Q.RGBA,Q.UNSIGNED_BYTE,B)}}else{if(i){this.useTexture();const Q=this.context.ctx;Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,B)}this.resize(s,g)}return!0}get image(){return this._image}set image(t){var i;(i=this._canvasRendered)==null||i.next(t),this._image=t}render(t){return this._render(t,!0)}render2d(t){return this._render(t,!1)}},KX=class extends qX{constructor(t,i,r){super(t,r),this._player=i,this.name="videoPlayerSource",QC(Rc(this._player,vr.PLAYER_STATE_CHANGED),ww(Rc(this,"closed")),mw(({state:s})=>s==="PLAYING"),dD(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},sEA=class extends KX{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,i,r){super(t,new Ip({id:r.name,track:i,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},gEA=class extends X2{constructor(t,i,r){super(t,lB(cr({name:"textSource"},r),{create2d:!0})),OA(this,"hasChange",!0),OA(this,"content",""),this.ctx2d.textBaseline="top",this.content=i.content||"",i.font&&(this.font=i.font),i.color&&(this.color=i.color)}set font(t){this.ctx2d&&(this.ctx2d.font=t,this.hasChange=!0)}get font(){var t;return((t=this.ctx2d)==null?void 0:t.font)||""}set color(t){this.ctx2d&&(this.ctx2d.fillStyle=t,this.hasChange=!0)}get color(){var t;return((t=this.ctx2d)==null?void 0:t.fillStyle)||""}render2d(t){return!(!this.ctx2d||!this.hasChange)&&(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0)}render(t){return!1}resize(t,i){if(!this.ctx2d)return;const{color:r,font:s}=this;super.resize(t,i),this.color=r,this.font=s}drawMultilineText(t=0,i=0,r=1.2){if(!this.ctx2d)return;const s=this.ctx2d.measureText(this.content);i+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;const g=this.font.match(/(\d+)px/),B=(g?parseInt(g[1],10):16)*r,Q=this.content.split(`
`);for(let f=0;f<Q.length;f++)this.ctx2d.fillText(Q[f],t,i+f*B)}},IEA=`
// 顶点着色器
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main() {
gl_Position = a_position;
v_texCoord = a_texCoord;
}
`,cEA=`
// 片元着色器
precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D u_texture;
void main() {
gl_FragColor = texture2D(u_texture, v_texCoord);
} `,lk=class extends Lr{constructor(t){super(),OA(this,"frameRate"),OA(this,"_canvas"),OA(this,"log"),OA(this,"hasAlpha",!1),OA(this,"name"),OA(this,"error"),this.name=t.name,this.log=t.logger.createChild({id:`vc-${this.name}`}),this.frameRate=t.frameRate}get canvas(){return this._canvas}set width(t){this._canvas&&(this._canvas.width=t)}get width(){var t;return((t=this._canvas)==null?void 0:t.width)||0}set height(t){this._canvas&&(this._canvas.height=t)}get height(){var t;return((t=this._canvas)==null?void 0:t.height)||0}setSize(t,i){this._canvas&&(this._canvas.width=t,this._canvas.height=i)}createVideoTrackSource(t,i){return new sEA(this,t,{logger:this.log,name:i})}createVideoTrackDestination(t){return new aEA(this,t)}createVideoImageSource(t,i){return new qX(this,i?Object.assign(i,{logger:this.log,image:t}):{logger:this.log,image:t})}createVideoPlayerSource(t,i){return new KX(this,t,i?Object.assign(i,{logger:this.log}):{logger:this.log})}createTextSource(t,i){return new gEA(this,t,i?Object.assign(i,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};OA(lk,"_ids",0);var TG=class extends lk{constructor(){super(...arguments),OA(this,"defaultProgam"),OA(this,"defaultVShader"),OA(this,"defaultFShader"),OA(this,"ctx"),OA(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(t=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${lk._ids++}`),t&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",UsA),!this.ctx)throw new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,IEA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,cEA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new Ws({code:xa.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(t){let i="";return t&&(i=t.message,this.error=t,qr.addFailedEvent({key:512702,error:t})),this.disconnect(),this.log.info(`video context destroy${i}`?`: ${i}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),t}set width(t){var i;(i=this.ctx)==null||i.viewport(0,0,t,this.height),super.width=t,this._canvas2d&&(this._canvas2d.width=t)}set height(t){var i;(i=this.ctx)==null||i.viewport(0,0,this.width,t),super.height=t,this._canvas2d&&(this._canvas2d.height=t)}setSize(t,i){var r;(r=this.ctx)==null||r.viewport(0,0,t,i),super.setSize(t,i),this._canvas2d&&(this._canvas2d.width=t,this._canvas2d.height=i)}createShader(t,i){const r=this.ctx,s=r.createShader(t);return r.shaderSource(s,i),r.compileShader(s),s}createProgram(t,i){const r=this.ctx,s=r.createProgram();return r.attachShader(s,t),r.attachShader(s,i),r.linkProgram(s),r.getProgramParameter(s,r.LINK_STATUS)||this.log.error(r.getProgramInfoLog(s)),s}};OA(TG,"UNAVAILABLE","unavailable"),ss([FI(Lr.INIT,"created",{sync:!0,fail(t){this.log.error("video gl context create failed",t.cause),qr.addFailedEvent({key:512700,error:t.cause||t})},success(){this.log.info("video context created use webgl"),qr.addSuccessEvent({key:512700})}})],TG.prototype,"create"),ss([FI("created",Lr.INIT,{ignoreError:!0,sync:!0,success(t){t&&this.emit(TG.UNAVAILABLE,t),this.removeAllListeners()}})],TG.prototype,"destroy");var Jj=TG,Ck=class extends lk{constructor(){super(...arguments),OA(this,"ctx")}create(t){if(this.hasAlpha=t.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${lk._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:t.alpha,willReadFrequently:t.willReadFrequently}),!this.ctx)throw new Ws({code:xa.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(t){let i="";t&&(i=t.message,this.error=t,qr.addFailedEvent({key:512703,error:t})),this.disconnect(),this.log.info("video context destroy "+(i?`: ${i}`:"")),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),qr.addSuccessEvent({key:512703})}};ss([FI(Lr.INIT,"created",{sync:!0,fail(t){this.log.error("video 2d context create failed",t.cause),qr.addFailedEvent({key:512701,error:t.cause||t})},success(){this.log.info("video context created use 2d"),qr.addSuccessEvent({key:512701})}})],Ck.prototype,"create"),ss([FI("created",Lr.INIT,{ignoreError:!0,sync:!0})],Ck.prototype,"destroy");var eW=aX();if(typeof navigator<"u"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:eW,exposeOrigin:!0,permittedOrigins:["*"]})}catch{}var EEA=async function(t){let i=null;const r=BEA(t);qi.info(`getDisplayMedia with constraints: ${JSON.stringify(r)}`);const s=await navigator.mediaDevices.getDisplayMedia(r);t.systemAudio&&s.getAudioTracks().length===0&&(x3&&fp<74||IE||Ql)&&qi.warn("Your browser not support capture system audio");const g=s.getVideoTracks()[0];if(g){if(t.frameRate)try{await g.applyConstraints({frameRate:{min:t.frameRate,ideal:t.frameRate},width:t.width,height:t.height})}catch(B){qi.warn(`screen applyConstraints failed: ${B}`)}t.captureElement&&await lEA(g,t.captureElement)}if(t.audio){const B=CEA(t);qi.info(`getUserMedia with constraints: ${JSON.stringify(B)}`),i=await navigator.mediaDevices.getUserMedia(B),s.addTrack(i.getAudioTracks()[0])}return s};async function lEA(t,i){var r;if("CropTarget"in window&&"fromElement"in CropTarget&&oD(t.cropTo))try{if(((r=t.getCaptureHandle())==null?void 0:r.handle)!==eW)return;const s=await CropTarget.fromElement(i);await t.cropTo(s)}catch(s){qi.warn(`cropTo target failed ${s}`)}}function CEA(t){const i={echoCancellation:t.echoCancellation,autoGainControl:t.autoGainControl,noiseSuppression:t.noiseSuppression,sampleRate:t.sampleRate,channelCount:t.channelCount};return Fr(t.microphoneId)||(i.deviceId=t.microphoneId),{audio:i,video:!1}}function BEA(t){const i={preferCurrentTab:t.preferDisplaySurface==="current-tab"||!!t.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},r={width:IE?{max:t.width}:{ideal:t.width,max:t.width},height:IE?{max:t.height}:{ideal:t.height,max:t.height},frameRate:t.frameRate,displaySurface:t.preferDisplaySurface||"monitor"};if(i.video=r,t.systemAudio){const{echoCancellation:s=!0,noiseSuppression:g=!1,autoGainControl:B=!1}=t;i.audio={echoCancellation:s,noiseSuppression:g,autoGainControl:B,sampleRate:48e3}}return i}var uEA=EEA,QEA=class extends GY{constructor(t){super(t,2),OA(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),OA(this,"objectFit","contain"),OA(this,"isScreen",!0),this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var t,i;try{return eW===((i=(t=this.mediaTrack)==null?void 0:t.getCaptureHandle())==null?void 0:i.handle)}catch{return}}async capture({systemAudio:t=!1,autoGainControl:i,echoCancellation:r,noiseSuppression:s,audioTrack:g,videoTrack:B,captureElement:Q,preferDisplaySurface:f}){var m;try{const M=Ns();let v;return B||g?(v=new MediaStream,B&&v.addTrack(B),g&&v.addTrack(g)):(v=await uEA({audio:!1,systemAudio:t,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:i,echoCancellation:r,noiseSuppression:s,captureElement:Q,preferDisplaySurface:f}),this.sourceTrack=v.getVideoTracks()[0]),await this.setInputMediaStreamTrack(v.getVideoTracks()[0]),Eo.emit(nr.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Ns()-M,profile:this.profile,room:(m=this.manager)==null?void 0:m.room}),v}catch(M){throw this.log.error(`getDisplayMedia error observed ${M}`),M instanceof Ws?M:new Ws({code:xa.INITIALIZE_FAILED,name:M.name,message:M.message})}}async switchDevice(t){throw new Error("Method not implemented.")}};function dEA(t=30,i=2){return TY((r,s)=>function(...g){return new Promise((B,Q)=>{const f=setTimeout(()=>{const m=new Ws({code:xa.API_CALL_TIMEOUT,message:`checkPendingPromise ${s}() timeout ${t}s`});(this.log||this._log||qi).warn(m),i===2?Q(m):i===1&&B()},1e3*t);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(f),r.apply(this,g).then(B,Q).finally(()=>{clearTimeout(f),this._checkPendingPromiseSet&&f&&this._checkPendingPromiseSet.delete(f)})})})}ss([LX(function(t){this.setContentHint(t.contentHint||"detail")})],QEA.prototype,"capture");var ZM=class Hj extends $3{constructor(i,r,s){super({userId:r.userId,sdkAppId:i.sdkAppId,mediaType:s,room:i}),this.room=i,this.user=r,OA(this,"tinyId"),OA(this,"isRemote",!0),OA(this,"jitterBufferDelay",0),OA(this,"availableState"),OA(this,"remotePublishState"),OA(this,"_triggerCheckDecodeSubject",xX(Rc(this,Hj.STATE_SUBSCRIBE))),OA(this,"ignoreUpdatePlayingState"),this.tinyId=r.tinyId,this.availableState=new Lr(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new Lr(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),QC(OX(Rc(this,Lr.STATECHANGED),Rc(this.remotePublishState,Lr.STATECHANGED)),YX(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),dD(f=>{this.availableState.state!==(f?Lr.ON:Lr.OFF)&&(this.availableState.state=f?Lr.ON:Lr.OFF),this.isRemotePublished&&this.ignoreUpdatePlayingState||this.updatePlayingState(f)}));const g=QC(Rc(this.player,vr.ERROR),mw(f=>f.code===MediaError.MEDIA_ERR_DECODE)),B=QC(xcA(5e3),mw(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived||!this.isRemotePublished?!1:!(this.player.isPlaying||(this.kind===gt.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0))||(this.reportDecodeResult(!0),!1))),Q=QC(FcA(g,B),ww(Rc(this,Lr.INIT)));QC(this._triggerCheckDecodeSubject,mw(()=>!this.ignoreDecodeError),HX(Q),dD(f=>{this.reportDecodeResult(!1,f)}))}setMute(i){this.isRemotePublished&&super.setMute(i)}setInputMediaStreamTrack(i){super.setInputMediaStreamTrack(i),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(i=>{this.mediaTrack?i():this.once("input-media-track-changed",i)})}get ignoreDecodeError(){var i,r,s,g;return(g=(s=(r=(i=this.room)==null?void 0:i.networkQuality)==null?void 0:r.hadRecentBadDownlink)==null?void 0:s.call(r,2))!=null&&g||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Hj.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Lr.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(i){return i}unsubscribe(){this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(i,r){var s,g;const B=this.kind===gt.AUDIO;if(qr[i?"addSuccessEvent":"addFailedEvent"]({key:B?504700:514702}),!B){const Q=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";qr[i?"addSuccessEvent":"addFailedEvent"]({key:IX[`DECODE_${Q}_RESULT`]}),i||this.log.warn(`${(g=this.room)==null?void 0:g.downlinkVideoCodec} decode failed`)}i||(qr.addEnum({key:B?504701:514703,value:Y3()}),fC.uploadEvent({log:`stat-decode-failed-${this.kind}-${eX()||iX()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===gt.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(i){if(this.player.isPlayCalled&&this.player.setTrack(this.playerMediaTrack),this.isPlayCalled&&this.player.isStopped===i){if(i&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack))return void this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);super.updatePlayingState(i)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?Lr.ON:Lr.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};OA(ZM,"STATE_SUBSCRIBE","subscribe"),ss([dEA(5,1)],ZM.prototype,"waitHasMediaTrack"),ss([FI(Lr.INIT,ZM.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),Eo.emit(nr.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),FX(521716,!1)],ZM.prototype,"subscribe"),ss([FI(ZM.STATE_SUBSCRIBE,Lr.INIT,{sync:!0,success(){this.log.info("unsubscribed"),Eo.emit(nr.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ZM.prototype,"unsubscribe");var XK=new Map;function ns(t,i){const r=lB(cr({},i),{timestamp:m3()});XK.has(t)?XK.get(t).push(r):XK.set(t,[r])}Eo.on(nr.JOIN_SUCCESS,({room:t})=>{ns(t.userId,{eventId:32788})}),Eo.on(nr.LEAVE_START,({room:t})=>{ns(t.userId,{eventId:32789})}),Eo.on(nr.LOCAL_TRACK_PUBLISHED,({track:t})=>{if(t.room){let i=32769;t.mediaType===4?i=32768:t.mediaType===2&&(i=32805),ns(t.room.userId,{eventId:i})}}),Eo.on(nr.LOCAL_TRACK_UNPUBLISHED,({track:t})=>{if(t.room){let i=32771;t.mediaType===4?i=32770:t.mediaType===2&&(i=32806),ns(t.room.userId,{eventId:i})}}),Eo.on(nr.TRACK_MUTED,({track:t})=>{t.room&&(t.kind===gt.AUDIO?ns(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):ns(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))}),Eo.on(nr.TRACK_UNMUTED,({track:t})=>{t.room&&(t.kind===gt.AUDIO?ns(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):ns(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))}),Eo.on(nr.REMOTE_TRACK_SUBSCRIBED,({track:t})=>{t.room&&(t.mediaType===1&&ns(t.room.userId,{eventId:32777,remoteUserId:t.userId}),t.mediaType===4&&ns(t.room.userId,{eventId:32776,remoteUserId:t.userId}),t.mediaType===8&&ns(t.room.userId,{eventId:32803,remoteUserId:t.userId}))}),Eo.on(nr.REMOTE_TRACK_UNSUBSCRIBED,({track:t})=>{t.room&&(t.mediaType===1&&ns(t.room.userId,{eventId:32779,remoteUserId:t.userId}),t.mediaType===4&&ns(t.room.userId,{eventId:32778,remoteUserId:t.userId}),t.mediaType===8&&ns(t.room.userId,{eventId:32804,remoteUserId:t.userId}))}),Eo.on(nr.SWITCH_DEVICE_SUCCESS,({track:t})=>{t.room&&ns(t.room.userId,{eventId:t.kind===gt.VIDEO?32780:32781})}),Eo.on(nr.LOCAL_TRACK_REPLACED,({track:t})=>{t.room&&ns(t.room.userId,{eventId:t.kind===gt.VIDEO?32782:32783})}),Eo.on(nr.SIGNAL_CONNECTION_STATE_CHANGED,({room:t,prevState:i,state:r})=>{let s;switch(r){case"CONNECTED":s=i==="RECONNECTING"?32795:32791;break;case"DISCONNECTED":s=i==="RECONNECTING"?32796:32790;break;case"RECONNECTING":s=32794}s&&ns(t.userId,{eventId:s})}),Eo.on(nr.PEER_CONNECTION_STATE_CHANGED,({room:t,prevState:i,state:r,remoteUserId:s})=>{const g=!!s;let B;switch(r){case"CONNECTED":B=i==="RECONNECTING"?g?32801:32798:g?32793:32792;break;case"DISCONNECTED":i==="RECONNECTING"&&(B=g?32802:32799);break;case"RECONNECTING":B=g?32800:32797}B&&ns(t.userId,{eventId:B,remoteUserId:s})}),Eo.on(nr.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:t,userId:i,remoteUserId:r,codec:s,isHWCodec:g,prevImplementation:B,streamType:Q})=>{let f=g?1:0;B||(f=g?3:2);const m={H264:0,H265:1,VP8:2}[s.toUpperCase()],M={eventId:4004,param1:f,param2:m,streamType:Q||2};r&&(M.remoteUserId=r,M.eventId=4005),ns(i,M),qr.addEnum({key:r?514701:513701,value:f}),qr.addEnum({key:r?514700:513700,value:m})}),Eo.on(nr.LOCAL_TRACK_RECAPTURE,({track:t,error:i})=>{if(t.userId){const r={eventId:2003,param1:0};t.kind===gt.AUDIO?(r.streamType=1,i&&(r.param1=2)):(r.streamType=t.streamType==="auxiliary"?7:2,i&&(r.param1=8)),ns(t.userId,r)}});Tw(mk());Tw(mk());var $K=0,jX=class WX{constructor(i){this.core=i,OA(this,"seq"),OA(this,"log"),OA(this,"localMixVideoTrack",null),OA(this,"systemAudioTrackList",{}),OA(this,"_mixVideoConfig"),OA(this,"onScreenShareStop"),OA(this,"eventListeners",new Map),$K+=1,this.seq=$K,this.log=i.log.createChild({id:`${this.getAlias()}${$K}`}),this.log.info("created")}getName(){return WX.Name}getAlias(){return"vmix"}getValidateRule(i){switch(i){case"start":return hsA(this.core);case"update":return psA(this.core);case"stop":return fsA(this.core)}}getGroup(){return"vmix"}async start(i){this.localMixVideoTrack||(this.localMixVideoTrack=new this.core.LocalMixVideoTrack(this.core.room.videoManager)),this._mixVideoConfig={canvasInfo:{width:1920,height:1080}},i=this.core.utils.deepCloneBasic(i);const{view:r,onScreenShareStop:s}=i,g=await this.parseMixOptions(i);return s&&(this.onScreenShareStop=s,this._mixVideoConfig.onScreenShareStop=s),this._updatePreview({view:r,track:this.localMixVideoTrack}),this.core.utils.isUndefined(r)||(this._mixVideoConfig.view=r),await this.localMixVideoTrack.startMix(),{track:this.localMixVideoTrack.outMediaTrack,systemAudioTrackList:this.systemAudioTrackList,result:g}}async update(i){const{RtcError:r,ErrorCode:s}=this.core.errorModule;if(!this.localMixVideoTrack)throw new r({code:s.INVALID_OPERATION,message:"mixTrack doesn't initialize!"});i=this.core.utils.deepCloneBasic(i);const{view:g}=i,B=await this.parseMixOptions(i);return await this._updatePreview({view:g,track:this.localMixVideoTrack,prevConfig:this._mixVideoConfig}),this.core.utils.isUndefined(g)||(this._mixVideoConfig.view=g),{track:this.localMixVideoTrack.outMediaTrack,systemAudioTrackList:this.systemAudioTrackList,result:B}}stop(){var i;this.eventListeners.forEach((r,s)=>{this.removeEventListeners(s)}),this.eventListeners.clear(),(i=this.localMixVideoTrack)==null||i.close(),this.localMixVideoTrack=null,Object.values(this.systemAudioTrackList).forEach(r=>r.stop()),this.systemAudioTrackList={},delete this.onScreenShareStop,delete this._mixVideoConfig}async parseMixOptions(i){const{RtcError:r,ErrorCode:s}=this.core.errorModule;if(!this.localMixVideoTrack||!this._mixVideoConfig)return{successOptions:{},failedDetails:[]};const g=[],B=cr({},i),{canvasInfo:Q,camera:f,screen:m,text:M,image:v,video:U}=i;Q&&this.parseCanvasOptions(Q);let AA=0,z=0;const sA=[{key:"camera",options:f,parser:this.parseCameraOptions.bind(this)},{key:"screen",options:m,parser:this.parseScreenOptions.bind(this)},{key:"text",options:M,parser:this.parseTextOptions.bind(this)},{key:"image",options:v,parser:this.parseImageOptions.bind(this)},{key:"video",options:U,parser:this.parseVideoOptions.bind(this)}];for(const{key:eA,options:X,parser:QA}of sA)if(X){AA++;const wA=await QA(this.localMixVideoTrack,X,this._mixVideoConfig[eA]||[]);this._mixVideoConfig[eA]=wA.finalOptions,B[eA]=wA.finalOptions,wA.errors.length>0&&(g.push(...wA.errors),wA.errors.length===X.length&&z++)}if(z>0&&z===AA)throw new r({code:s.INVALID_PARAMETER,message:"all sources mix failed",data:{failedDetails:g}});return{successOptions:B,failedDetails:g}}parseCanvasOptions(i){if(!this.localMixVideoTrack||!this._mixVideoConfig)return;const{canvasColor:r,width:s,height:g,frameRate:B}=i;r&&this.localMixVideoTrack.setMixBackground(r),B&&this.localMixVideoTrack.setFps(B),this.localMixVideoTrack.resizeMixCanvas(s,g),this._mixVideoConfig.canvasInfo=i}prepareSourceOptions(i,r){const s=new Set(i.map(g=>g.id));return{removeIdList:r.filter(g=>!s.has(g.id)).map(g=>g.id),preOptionsMap:new Map(r.map(g=>[g.id,g]))}}recordSourceError(i,r,s,g,B){B.push({id:i,error:r}),s.has(i)&&g.push(s.get(i))}async parseCameraOptions(i,r,s=[]){const{removeIdList:g,preOptionsMap:B}=this.prepareSourceOptions(r,s);this.log.debug("videomixer removeIdList",r,g,B);for(const m of g)i.removeCameraSource(m),this.removeEventListeners(m);const Q=[],f=[];for(const m of r)try{await this.processSingleCameraSource(i,m),Q.push(m)}catch(M){this.recordSourceError(m.id,M,B,Q,f)}return{finalOptions:Q,errors:f}}async processSingleCameraSource(i,r){const{id:s}=r;this.resolveCameraInternalTrack(i,r),i.inputLocalVideoTracks.has(s)?await this.updateExistingCameraSource(i,r):await this.addNewCameraSource(i,r)}async updateExistingCameraSource(i,r){var s,g;const{id:B,layout:Q,profile:f}=r,m=(s=i.inputLocalVideoTracks.get(B))==null?void 0:s.mediaTrack;await this.updateCameraProfile(r);const M=(g=i.inputLocalVideoTracks.get(B))==null?void 0:g.mediaTrack,v=this.resolveVideoProfile(f);M!==m?i.updateCameraSource(B,Q,M,v):i.updateCameraSource(B,Q,null,v)}resolveCameraInternalTrack(i,r){var s;const{id:g,layout:B,profile:Q,useInternalTrack:f}=r;if(f){if(i.inputLocalVideoTracks.get(g))return r;this.log.debug("resolve camera internal track",r,r.id,r.videoTrack),(s=this.core.trtc.localVideoTrack)!=null&&s.sourceTrack?(this.log.debug("resolve camera internal track outMediaTrack:",this.core.trtc.localVideoTrack.outMediaTrack,"sourceTrack:",this.core.trtc.localVideoTrack.sourceTrack),r.videoTrack=this.core.trtc.localVideoTrack.outMediaTrack,r.profile=this.core.trtc.localVideoTrack.profile):r.videoTrack=this.createPlaceholderVideoTrack(),this.removeEventListeners(g);const m=v=>{var U,AA;const z=i.inputLocalVideoTracks.get(g);this.log.debug(`camera internal track preprocessed event from ${(U=v.room)==null?void 0:U.userId} to ${this.core.room.userId}, is same instance:${v.room===this.core.room} ,new track:`,v.mediaTrack,z?.mediaTrack,i.outMediaTrack),((AA=v.mediaTrack)==null?void 0:AA.kind)!==gt.AUDIO&&z?.mediaTrack!==v.mediaTrack&&i.outMediaTrack!==v.mediaTrack&&v.room===this.core.room?z&&v.mediaTrack&&i.updateCameraSource(g,B,v.mediaTrack):this.log.debug("camera internal track preprocessed event return")},M=v=>{var U,AA,z,sA,eA,X,QA,wA;const HA=i.inputLocalVideoTracks.get(g);this.log.debug(`camera internal track stopped ${((U=v.track)==null?void 0:U.mediaTrack)===HA?.mediaTrack||((AA=v.track)==null?void 0:AA.outMediaTrack)===HA?.mediaTrack||((z=v.track)==null?void 0:z.outMediaTrack)===i.outMediaTrack}`,(sA=v.track)==null?void 0:sA.mediaTrack,(eA=v.track)==null?void 0:eA.outMediaTrack,HA?.mediaTrack,i.outMediaTrack),!HA||((X=v.track)==null?void 0:X.mediaTrack)!==HA?.mediaTrack&&((QA=v.track)==null?void 0:QA.outMediaTrack)!==HA?.mediaTrack&&((wA=v.track)==null?void 0:wA.outMediaTrack)!==i.outMediaTrack||i.updateCameraSource(g,B,this.createPlaceholderVideoTrack())};this.core.innerEmitter.on("118",m),this.core.innerEmitter.on("117",M),this.eventListeners.has(g)||this.eventListeners.set(g,{}),this.eventListeners.get(g).captureSuccess=()=>{this.core.innerEmitter.off("118",m)},this.eventListeners.get(g).trackStop=()=>{this.core.innerEmitter.off("117",M)}}return r}async addNewCameraSource(i,r){const{id:s,layout:g,useInternalTrack:B}=r,Q=await this.captureCamera(r);try{i.addCameraSource(s,Q,g)}catch(f){throw Q.close(),f}}resolveVideoProfile(i){if(!this.core.utils.isUndefined(i))return this.core.utils.isString(i)?this.core.constants.videoProfileMap[i]:i}async parseScreenOptions(i,r,s=[]){const{removeIdList:g,preOptionsMap:B}=this.prepareSourceOptions(r,s);for(const m of g)i.removeScreenSource(m),this.removeSystemAudioTrack(m),this.removeEventListeners(m);const Q=[],f=[];for(const m of r)try{await this.processSingleScreenSource(i,m,B),Q.push(m)}catch(M){this.recordSourceError(m.id,M,B,Q,f)}return{finalOptions:Q,errors:f}}async processSingleScreenSource(i,r,s){const{id:g,layout:B,useInternalTrack:Q}=r;this.resolveScreenInternalTrack(i,r);const f=s.get(g),m=i.inputLocalScreenTracks.has(g),M=!f?.systemAudio&&r.systemAudio;m&&!M?this.updateExistingScreenSource(i,g,B,f,r):await this.addNewScreenSource(i,r,f)}updateExistingScreenSource(i,r,s,g,B){i.updateScreenSource(r,s),g?.systemAudio&&!B.systemAudio&&this.removeSystemAudioTrack(r)}resolveScreenInternalTrack(i,r){var s,g;const{id:B,layout:Q,useInternalTrack:f}=r;if(f){if(i.inputLocalScreenTracks.get(B))return r;this.log.debug("resolve screen internal track",r,r.id,r.videoTrack),(s=this.core.trtc.localScreenTrack)!=null&&s.sourceTrack?(r.videoTrack=this.core.trtc.localScreenTrack.sourceTrack,r.profile=this.core.trtc.localScreenTrack.profile,(g=this.core.trtc.localScreenAudioTrack)!=null&&g.mediaTrack&&(r.audioTrack=this.core.trtc.localScreenAudioTrack.mediaTrack),delete r.captureElement,delete r.preferDisplaySurface,delete r.systemAudio):r.videoTrack=this.createPlaceholderVideoTrack(),this.removeEventListeners(B);const m=v=>{var U,AA,z,sA,eA,X,QA;const wA=i.inputLocalScreenTracks.get(B);this.log.debug(`screen internal track capture success event from ${(U=v.room)==null?void 0:U.userId} to ${this.core.room.userId}, is same instance:${v.room===this.core.room}, isScreen:${(AA=v.track)==null?void 0:AA.isScreen} kind:${(z=v.track)==null?void 0:z.kind}`,wA,v.track.sourceTrack),(sA=v.track)!=null&&sA.isScreen&&((eA=v.track)==null?void 0:eA.kind)!==gt.AUDIO&&wA&&(this.log.debug("screen internal track capture success event ",(X=v.track)==null?void 0:X.sourceTrack),(QA=v.track)!=null&&QA.sourceTrack&&i.updateScreenSource(B,Q,v.track.sourceTrack))},M=v=>{var U,AA;const z=i.inputLocalScreenTracks.get(B);this.log.debug(`screen internal track stopped, is same track:${((U=v.track)==null?void 0:U.sourceTrack)===z?.mediaTrack}, isScreen:${v.track.isScreen}`),v.track.isScreen&&((AA=v.track)==null?void 0:AA.sourceTrack)===z?.mediaTrack&&i.updateScreenSource(B,Q,this.createPlaceholderVideoTrack())};this.core.innerEmitter.on("102",m),this.core.innerEmitter.on("117",M),this.eventListeners.has(B)||this.eventListeners.set(B,{}),this.eventListeners.get(B).captureSuccess=()=>{this.core.innerEmitter.off("102",m)},this.eventListeners.get(B).trackStop=()=>{this.core.innerEmitter.off("117",M)}}return r}async addNewScreenSource(i,r,s){const{id:g,layout:B}=r,Q=await this.captureScreen(r);!s?.systemAudio&&r.systemAudio&&i.inputLocalScreenTracks.has(g)&&i.removeScreenSource(g);try{i.addScreenSource(g,Q,B)}catch(f){throw Q.close(),f}}async parseTextOptions(i,r,s=[]){const{removeIdList:g,preOptionsMap:B}=this.prepareSourceOptions(r,s);for(const m of g)i.removeTextSource(m);const Q=[],f=[];for(const m of r)try{B.has(m.id)?i.updateTextSource(m):i.addTextSource(m),Q.push(m)}catch(M){this.recordSourceError(m.id,M,B,Q,f)}return{finalOptions:Q,errors:f}}async parseImageOptions(i,r,s=[]){const{removeIdList:g,preOptionsMap:B}=this.prepareSourceOptions(r,s);for(const m of g)i.removeImageSource(m);const Q=[],f=[];for(const m of r)try{await this.processSingleImageSource(i,m,B),Q.push(m)}catch(M){this.recordSourceError(m.id,M,B,Q,f)}return{finalOptions:Q,errors:f}}async processSingleImageSource(i,r,s){const{id:g,url:B,layout:Q}=r,f=s.get(g);if(f){let m;f.url!==B&&(m=await this.core.utils.loadImage(B)),i.updateImageSource(g,Q,m)}else{const m=await this.core.utils.loadImage(B);i.addImageSource(g,m,Q)}}async parseVideoOptions(i,r,s=[]){const{removeIdList:g,preOptionsMap:B}=this.prepareSourceOptions(r,s);for(const m of g)i.removeVideoSource(m);const Q=[],f=[];for(const m of r)try{await this.processSingleVideoSource(i,m,B),Q.push(m)}catch(M){this.recordSourceError(m.id,M,B,Q,f)}return{finalOptions:Q,errors:f}}async processSingleVideoSource(i,r,s){const{id:g,url:B,layout:Q}=r,f=s.get(g);if(f){let m;f.url!==B&&(m=await this.core.utils.loadVideo(B)),i.updateVideoSource(g,Q,m)}else{const m=await this.core.utils.loadVideo(B);i.addVideoSource(g,m,Q)}}createPlaceholderVideoTrack(){const i=document.createElement("canvas");i.width=1,i.height=1;const r=i.getContext("2d");if(!r)return i.captureStream(30).getVideoTracks()[0];let s=null;const g=1e3/30,B=i.captureStream(30).getVideoTracks()[0],Q=()=>{r.fillStyle="rgba(255, 255, 255, 0)",r.fillRect(0,0,i.width,i.height),B.readyState==="live"&&(s=setTimeout(Q,g))};Q();const f=B.stop.bind(B);return B.stop=()=>{s&&(clearTimeout(s),s=null),f()},B}removeEventListeners(i){const r=this.eventListeners.get(i);r&&(r.captureSuccess&&r.captureSuccess(),r.trackStop&&r.trackStop(),this.eventListeners.delete(i))}async captureCamera(i){const{id:r,cameraId:s,videoTrack:g,profile:B}=i,Q=new this.core.LocalVideoTrack;Q.log.id+=`-${r}`;const f={};if(s?f.deviceId=s:this.core.utils.isUndefined(g)||(f.customSource=g),!this.core.utils.isUndefined(B)){const m=this.resolveVideoProfile(B);m&&Q.setProfile(m)}return await Q.capture(f),Q}async updateCameraProfile(i){var r;const{id:s,cameraId:g,videoTrack:B,profile:Q}=i,f=(r=this.localMixVideoTrack)==null?void 0:r.inputLocalVideoTracks.get(s);if(f&&(g?await f.switchDevice(g):this.core.utils.isUndefined(B)||await f.setInputMediaStreamTrack(B),!this.core.utils.isUndefined(Q))){const m=this.resolveVideoProfile(Q);m&&f.setProfile(m),g&&f.isNeedToSwitchDevice(g)||await f.applyProfile()}}async captureScreen(i){const{id:r,profile:s,captureElement:g,preferDisplaySurface:B,systemAudio:Q,videoTrack:f,audioTrack:m}=i,M=new this.core.LocalScreenTrack;M.log.id+=`-${r}`;const v={captureElement:g,preferDisplaySurface:B,systemAudio:Q,videoTrack:f,audioTrack:m};if(!this.core.utils.isUndefined(s))if(this.core.utils.isString(s)){const AA=this.core.constants.screenProfileMap[s];AA&&M.setProfile(AA)}else M.setProfile(s);const U=await M.capture(v);return Q&&U.getAudioTracks().length>0?(this.systemAudioTrackList[r]=U.getAudioTracks()[0],this.log.info(`${r} system audio track captured`)):this.removeSystemAudioTrack(r),M.mediaTrack.addEventListener(this.core.constants.NAME.ENDED,()=>{this.handleScreenShareEnded(r)}),M}handleScreenShareEnded(i){var r,s,g;(r=this.localMixVideoTrack)==null||r.removeScreenSource(i),(s=this._mixVideoConfig)!=null&&s.screen&&(this._mixVideoConfig.screen=this._mixVideoConfig.screen.filter(B=>B.id!==i)),(g=this.onScreenShareStop)==null||g.call(this,i)}async _updatePreview({view:i,track:r,prevConfig:s}){if(this.core.utils.isUndefined(i)&&s?.view){const g=this.core.utils.getViewListFromView(s.view);return void(g.length>0&&await r.play(g))}if(!this.core.utils.isUndefined(i)){const g=this.core.utils.getViewListFromView(i);g.length>0?await r.play(g):r.stop()}}removeSystemAudioTrack(i){const r=this.systemAudioTrackList[i];r&&(r.stop(),this.log.info(`${i} system audio track stop`),delete this.systemAudioTrackList[i])}};OA(jX,"Name","VideoMixer");var zX=jX,hEA=zX;const pEA=Object.freeze(Object.defineProperty({__proto__:null,VideoMixer:zX,default:hEA},Symbol.toStringTag,{value:"Module"})),fEA=hk(pEA);var mEA=fG.exports,I8;function DEA(){return I8||(I8=1,function(t,i){(function(r,s){s(i,vrA(),enA,VaA,AsA,ssA,fEA)})(mEA,function(r,s,g,B,Q,f,m){function M(L){return L&&typeof L=="object"&&"default"in L?L:{default:L}}var v=M(s),U=M(m),AA=function(L,w){return AA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(q,y){q.__proto__=y}||function(q,y){for(var T in y)Object.prototype.hasOwnProperty.call(y,T)&&(q[T]=y[T])},AA(L,w)},z=function(){return z=Object.assign||function(L){for(var w,q=1,y=arguments.length;q<y;q++)for(var T in w=arguments[q])Object.prototype.hasOwnProperty.call(w,T)&&(L[T]=w[T]);return L},z.apply(this,arguments)};function sA(L,w,q,y){var T,V=arguments.length,$=V<3?w:y===null?y=Object.getOwnPropertyDescriptor(w,q):y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")$=Reflect.decorate(L,w,q,y);else for(var CA=L.length-1;CA>=0;CA--)(T=L[CA])&&($=(V<3?T($):V>3?T(w,q,$):T(w,q))||$);return V>3&&$&&Object.defineProperty(w,q,$),$}function eA(L,w,q,y){return new(q||(q=Promise))(function(T,V){function $(KA){try{NA(y.next(KA))}catch(C){V(C)}}function CA(KA){try{NA(y.throw(KA))}catch(C){V(C)}}function NA(KA){var C;KA.done?T(KA.value):(C=KA.value,C instanceof q?C:new q(function(E){E(C)})).then($,CA)}NA((y=y.apply(L,[])).next())})}function X(L,w){var q,y,T,V,$={label:0,sent:function(){if(1&T[0])throw T[1];return T[1]},trys:[],ops:[]};return V={next:CA(0),throw:CA(1),return:CA(2)},typeof Symbol=="function"&&(V[Symbol.iterator]=function(){return this}),V;function CA(NA){return function(KA){return function(C){if(q)throw new TypeError("Generator is already executing.");for(;V&&(V=0,C[0]&&($=0)),$;)try{if(q=1,y&&(T=2&C[0]?y.return:C[0]?y.throw||((T=y.return)&&T.call(y),0):y.next)&&!(T=T.call(y,C[1])).done)return T;switch(y=0,T&&(C=[2&C[0],T.value]),C[0]){case 0:case 1:T=C;break;case 4:return $.label++,{value:C[1],done:!1};case 5:$.label++,y=C[1],C=[0];continue;case 7:C=$.ops.pop(),$.trys.pop();continue;default:if(T=$.trys,!((T=T.length>0&&T[T.length-1])||C[0]!==6&&C[0]!==2)){$=0;continue}if(C[0]===3&&(!T||C[1]>T[0]&&C[1]<T[3])){$.label=C[1];break}if(C[0]===6&&$.label<T[1]){$.label=T[1],T=C;break}if(T&&$.label<T[2]){$.label=T[2],$.ops.push(C);break}T[2]&&$.ops.pop(),$.trys.pop();continue}C=w.call(L,$)}catch(E){C=[6,E],y=0}finally{q=T=0}if(5&C[0])throw C[1];return{value:C[0]?C[1]:void 0,done:!0}}([NA,KA])}}}function QA(L){var w=typeof Symbol=="function"&&Symbol.iterator,q=w&&L[w],y=0;if(q)return q.call(L);if(L&&typeof L.length=="number")return{next:function(){return L&&y>=L.length&&(L=void 0),{value:L&&L[y++],done:!L}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")}function wA(L,w,q){if(q||arguments.length===2)for(var y,T=0,V=w.length;T<V;T++)!y&&T in w||(y||(y=Array.prototype.slice.call(w,0,T)),y[T]=w[T]);return L.concat(y||Array.prototype.slice.call(w))}function HA(L){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var w,q=L[Symbol.asyncIterator];return q?q.call(L):(L=QA(L),w={},y("next"),y("throw"),y("return"),w[Symbol.asyncIterator]=function(){return this},w);function y(T){w[T]=L[T]&&function(V){return new Promise(function($,CA){(function(NA,KA,C,E){Promise.resolve(E).then(function(h){NA({value:h,done:C})},KA)})($,CA,(V=L[T](V)).done,V.value)})}}}var VA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof bI<"u"?bI:typeof self<"u"?self:{};function ue(L,w){return L(w={exports:{}},w.exports),w.exports}var jA,Ve,Ze,Me,qe,Et,Je,$e,Dt=ue(function(L){var w=Object.prototype.hasOwnProperty,q="~";function y(){}function T(NA,KA,C){this.fn=NA,this.context=KA,this.once=C||!1}function V(NA,KA,C,E,h){if(typeof C!="function")throw new TypeError("The listener must be a function");var D=new T(C,E||NA,h),N=q?q+KA:KA;return NA._events[N]?NA._events[N].fn?NA._events[N]=[NA._events[N],D]:NA._events[N].push(D):(NA._events[N]=D,NA._eventsCount++),NA}function $(NA,KA){--NA._eventsCount==0?NA._events=new y:delete NA._events[KA]}function CA(){this._events=new y,this._eventsCount=0}Object.create&&(y.prototype=Object.create(null),new y().__proto__||(q=!1)),CA.prototype.eventNames=function(){var NA,KA,C=[];if(this._eventsCount===0)return C;for(KA in NA=this._events)w.call(NA,KA)&&C.push(q?KA.slice(1):KA);return Object.getOwnPropertySymbols?C.concat(Object.getOwnPropertySymbols(NA)):C},CA.prototype.listeners=function(NA){var KA=q?q+NA:NA,C=this._events[KA];if(!C)return[];if(C.fn)return[C.fn];for(var E=0,h=C.length,D=new Array(h);E<h;E++)D[E]=C[E].fn;return D},CA.prototype.listenerCount=function(NA){var KA=q?q+NA:NA,C=this._events[KA];return C?C.fn?1:C.length:0},CA.prototype.emit=function(NA,KA,C,E,h,D){var N=q?q+NA:NA;if(!this._events[N])return!1;var O,Y,j=this._events[N],IA=arguments.length;if(j.fn){switch(j.once&&this.removeListener(NA,j.fn,void 0,!0),IA){case 1:return j.fn.call(j.context),!0;case 2:return j.fn.call(j.context,KA),!0;case 3:return j.fn.call(j.context,KA,C),!0;case 4:return j.fn.call(j.context,KA,C,E),!0;case 5:return j.fn.call(j.context,KA,C,E,h),!0;case 6:return j.fn.call(j.context,KA,C,E,h,D),!0}for(Y=1,O=new Array(IA-1);Y<IA;Y++)O[Y-1]=arguments[Y];j.fn.apply(j.context,O)}else{var BA,mA=j.length;for(Y=0;Y<mA;Y++)switch(j[Y].once&&this.removeListener(NA,j[Y].fn,void 0,!0),IA){case 1:j[Y].fn.call(j[Y].context);break;case 2:j[Y].fn.call(j[Y].context,KA);break;case 3:j[Y].fn.call(j[Y].context,KA,C);break;case 4:j[Y].fn.call(j[Y].context,KA,C,E);break;default:if(!O)for(BA=1,O=new Array(IA-1);BA<IA;BA++)O[BA-1]=arguments[BA];j[Y].fn.apply(j[Y].context,O)}}return!0},CA.prototype.on=function(NA,KA,C){return V(this,NA,KA,C,!1)},CA.prototype.once=function(NA,KA,C){return V(this,NA,KA,C,!0)},CA.prototype.removeListener=function(NA,KA,C,E){var h=q?q+NA:NA;if(!this._events[h])return this;if(!KA)return $(this,h),this;var D=this._events[h];if(D.fn)D.fn!==KA||E&&!D.once||C&&D.context!==C||$(this,h);else{for(var N=0,O=[],Y=D.length;N<Y;N++)(D[N].fn!==KA||E&&!D[N].once||C&&D[N].context!==C)&&O.push(D[N]);O.length?this._events[h]=O.length===1?O[0]:O:$(this,h)}return this},CA.prototype.removeAllListeners=function(NA){var KA;return NA?(KA=q?q+NA:NA,this._events[KA]&&$(this,KA)):(this._events=new y,this._eventsCount=0),this},CA.prototype.off=CA.prototype.removeListener,CA.prototype.addListener=CA.prototype.on,CA.prefixed=q,CA.EventEmitter=CA,L.exports=CA});r.TRTCVideoResolution=void 0,(jA=r.TRTCVideoResolution||(r.TRTCVideoResolution={}))[jA.TRTCVideoResolution_120_120=1]="TRTCVideoResolution_120_120",jA[jA.TRTCVideoResolution_160_160=3]="TRTCVideoResolution_160_160",jA[jA.TRTCVideoResolution_270_270=5]="TRTCVideoResolution_270_270",jA[jA.TRTCVideoResolution_480_480=7]="TRTCVideoResolution_480_480",jA[jA.TRTCVideoResolution_160_120=50]="TRTCVideoResolution_160_120",jA[jA.TRTCVideoResolution_240_180=52]="TRTCVideoResolution_240_180",jA[jA.TRTCVideoResolution_280_210=54]="TRTCVideoResolution_280_210",jA[jA.TRTCVideoResolution_320_240=56]="TRTCVideoResolution_320_240",jA[jA.TRTCVideoResolution_400_300=58]="TRTCVideoResolution_400_300",jA[jA.TRTCVideoResolution_480_360=60]="TRTCVideoResolution_480_360",jA[jA.TRTCVideoResolution_640_480=62]="TRTCVideoResolution_640_480",jA[jA.TRTCVideoResolution_960_720=64]="TRTCVideoResolution_960_720",jA[jA.TRTCVideoResolution_160_90=100]="TRTCVideoResolution_160_90",jA[jA.TRTCVideoResolution_256_144=102]="TRTCVideoResolution_256_144",jA[jA.TRTCVideoResolution_320_180=104]="TRTCVideoResolution_320_180",jA[jA.TRTCVideoResolution_480_270=106]="TRTCVideoResolution_480_270",jA[jA.TRTCVideoResolution_640_360=108]="TRTCVideoResolution_640_360",jA[jA.TRTCVideoResolution_960_540=110]="TRTCVideoResolution_960_540",jA[jA.TRTCVideoResolution_1280_720=112]="TRTCVideoResolution_1280_720",jA[jA.TRTCVideoResolution_1920_1080=114]="TRTCVideoResolution_1920_1080",r.TRTCVideoStreamType=void 0,(Ve=r.TRTCVideoStreamType||(r.TRTCVideoStreamType={}))[Ve.TRTCVideoStreamTypeBig=0]="TRTCVideoStreamTypeBig",Ve[Ve.TRTCVideoStreamTypeSmall=1]="TRTCVideoStreamTypeSmall",Ve[Ve.TRTCVideoStreamTypeSub=2]="TRTCVideoStreamTypeSub",r.TRTCVideoFillMode=void 0,(Ze=r.TRTCVideoFillMode||(r.TRTCVideoFillMode={}))[Ze.TRTCVideoFillMode_Fill=0]="TRTCVideoFillMode_Fill",Ze[Ze.TRTCVideoFillMode_Fit=1]="TRTCVideoFillMode_Fit",r.TRTCVideoMirrorType=void 0,(Me=r.TRTCVideoMirrorType||(r.TRTCVideoMirrorType={}))[Me.TRTCVideoMirrorType_Auto=0]="TRTCVideoMirrorType_Auto",Me[Me.TRTCVideoMirrorType_Enable=1]="TRTCVideoMirrorType_Enable",Me[Me.TRTCVideoMirrorType_Disable=2]="TRTCVideoMirrorType_Disable",r.TRTCBeautyStyle=void 0,(qe=r.TRTCBeautyStyle||(r.TRTCBeautyStyle={}))[qe.TRTCBeautyStyleSmooth=0]="TRTCBeautyStyleSmooth",qe[qe.TRTCBeautyStyleNature=1]="TRTCBeautyStyleNature",r.TRTCAppScene=void 0,(Et=r.TRTCAppScene||(r.TRTCAppScene={}))[Et.TRTCAppSceneVideoCall=0]="TRTCAppSceneVideoCall",Et[Et.TRTCAppSceneLIVE=1]="TRTCAppSceneLIVE",Et[Et.TRTCAppSceneAudioCall=2]="TRTCAppSceneAudioCall",Et[Et.TRTCAppSceneVoiceChatRoom=3]="TRTCAppSceneVoiceChatRoom",r.TRTCRoleType=void 0,(Je=r.TRTCRoleType||(r.TRTCRoleType={}))[Je.TRTCRoleAnchor=20]="TRTCRoleAnchor",Je[Je.TRTCRoleAudience=21]="TRTCRoleAudience",r.TRTCAudioQuality=void 0,($e=r.TRTCAudioQuality||(r.TRTCAudioQuality={}))[$e.TRTCAudioQualitySpeech=1]="TRTCAudioQualitySpeech",$e[$e.TRTCAudioQualityDefault=2]="TRTCAudioQualityDefault",$e[$e.TRTCAudioQualityMusic=3]="TRTCAudioQualityMusic";var Zi,bi,qt=function(L,w,q,y,T){L===void 0&&(L=""),w===void 0&&(w=""),q===void 0&&(q=""),y===void 0&&(y=""),T===void 0&&(T=""),this.deviceId=L,this.deviceName=w,this.kind=q,this.label=y,this.groupId=T};r.TRTCDeviceState=void 0,(Zi=r.TRTCDeviceState||(r.TRTCDeviceState={}))[Zi.TRTCDeviceStateAdd=0]="TRTCDeviceStateAdd",Zi[Zi.TRTCDeviceStateRemove=1]="TRTCDeviceStateRemove",Zi[Zi.TRTCDeviceStateActive=2]="TRTCDeviceStateActive",r.TRTCDeviceType=void 0,(bi=r.TRTCDeviceType||(r.TRTCDeviceType={}))[bi.TRTCDeviceTypeUnknow=-1]="TRTCDeviceTypeUnknow",bi[bi.TRTCDeviceTypeMic=0]="TRTCDeviceTypeMic",bi[bi.TRTCDeviceTypeSpeaker=1]="TRTCDeviceTypeSpeaker",bi[bi.TRTCDeviceTypeCamera=2]="TRTCDeviceTypeCamera";var ai,Ki=function(L,w,q,y,T,V,$,CA,NA,KA,C){L===void 0&&(L=0),w===void 0&&(w=""),q===void 0&&(q=""),y===void 0&&(y=0),T===void 0&&(T=""),V===void 0&&(V=r.TRTCRoleType.TRTCRoleAnchor),$===void 0&&($=null),NA===void 0&&(NA=null),KA===void 0&&(KA=null),C===void 0&&(C=30),this.sdkAppId=L,this.userId=w,this.userSig=q,this.roomId=y,this.strRoomId=T,this.role=V,this.privateMapKey=$,this.streamId=NA,this.userDefineRecordId=KA,this.frameWorkType=C},Ur=function(L,w,q,y){L===void 0&&(L=r.TRTCVideoResolution.TRTCVideoResolution_640_360),w===void 0&&(w=r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape),q===void 0&&(q=15),y===void 0&&(y=550),this.videoResolution=L,this.resMode=w,this.videoFps=q,this.videoBitrate=y};r.TRTCVideoRotation=void 0,(ai=r.TRTCVideoRotation||(r.TRTCVideoRotation={}))[ai.TRTCVideoRotation0=0]="TRTCVideoRotation0",ai[ai.TRTCVideoRotation90=1]="TRTCVideoRotation90",ai[ai.TRTCVideoRotation180=2]="TRTCVideoRotation180",ai[ai.TRTCVideoRotation270=3]="TRTCVideoRotation270";var Er,no=function(L,w,q){L===void 0&&(L=r.TRTCVideoRotation.TRTCVideoRotation0),w===void 0&&(w=r.TRTCVideoFillMode.TRTCVideoFillMode_Fit),q===void 0&&(q=r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),this.rotation=L,this.fillMode=w,this.mirrorType=q};r.TRTCQuality=void 0,(Er=r.TRTCQuality||(r.TRTCQuality={}))[Er.TRTCQuality_Unknown=0]="TRTCQuality_Unknown",Er[Er.TRTCQuality_Excellent=1]="TRTCQuality_Excellent",Er[Er.TRTCQuality_Good=2]="TRTCQuality_Good",Er[Er.TRTCQuality_Poor=3]="TRTCQuality_Poor",Er[Er.TRTCQuality_Bad=4]="TRTCQuality_Bad",Er[Er.TRTCQuality_Vbad=5]="TRTCQuality_Vbad",Er[Er.TRTCQuality_Down=6]="TRTCQuality_Down";var Kn,Xi,yr,lr=function(L,w){L===void 0&&(L=""),w===void 0&&(w=r.TRTCQuality.TRTCQuality_Unknown),this.userId=L,this.quality=w},Ni=function(L,w){L===void 0&&(L=""),w===void 0&&(w=0),this.userId=L,this.volume=w},wt=function(L,w,q){L===void 0&&(L=0),w===void 0&&(w=0),q===void 0&&(q=null),this.appId=L,this.bizId=w,this.url=q},Ji=function(L,w,q,y,T,V,$){L===void 0&&(L=0),w===void 0&&(w=0),q===void 0&&(q=0),y===void 0&&(y=0),V===void 0&&(V=0),$===void 0&&($=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.width=L,this.height=w,this.frameRate=q,this.videoBitrate=y,this.audioBitrate=V,this.streamType=$},Di=function(L,w,q,y,T,V,$,CA,NA,KA,C,E,h,D){L===void 0&&(L=""),q===void 0&&(q=0),y===void 0&&(y=0),T===void 0&&(T=0),V===void 0&&(V=0),CA===void 0&&(CA=0),D===void 0&&(D=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.userId=L,this.width=q,this.height=y,this.frameRate=T,this.videoBitrate=V,this.audioBitrate=CA,this.streamType=D},ar=function(L,w,q,y,T,V,$,CA,NA,KA,C){L===void 0&&(L=0),w===void 0&&(w=0),T===void 0&&(T=0),V===void 0&&(V=0),$===void 0&&($=0),CA===void 0&&(CA=[]),NA===void 0&&(NA=0),KA===void 0&&(KA=[]),C===void 0&&(C=0),this.upLoss=L,this.downLoss=w,this.rtt=T,this.receivedBytes=V,this.sentBytes=$,this.localStatisticsArray=CA,this.localStatisticsArraySize=NA,this.remoteStatisticsArray=KA,this.remoteStatisticsArraySize=C};r.TRTCVideoResolutionMode=void 0,(Kn=r.TRTCVideoResolutionMode||(r.TRTCVideoResolutionMode={}))[Kn.TRTCVideoResolutionModeLandscape=0]="TRTCVideoResolutionModeLandscape",Kn[Kn.TRTCVideoResolutionModePortrait=1]="TRTCVideoResolutionModePortrait",r.TRTCVideoQosPreference=void 0,(Xi=r.TRTCVideoQosPreference||(r.TRTCVideoQosPreference={}))[Xi.TRTCVideoQosPreferenceSmooth=1]="TRTCVideoQosPreferenceSmooth",Xi[Xi.TRTCVideoQosPreferenceClear=2]="TRTCVideoQosPreferenceClear",r.TRTCQosControlMode=void 0,(yr=r.TRTCQosControlMode||(r.TRTCQosControlMode={}))[yr.TRTCQosControlModeClient=0]="TRTCQosControlModeClient",yr[yr.TRTCQosControlModeServer=1]="TRTCQosControlModeServer";var MA,YA,pe=function(L,w){L===void 0&&(L=r.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear),w===void 0&&(w=r.TRTCQosControlMode.TRTCQosControlModeServer),this.preference=L,this.controlMode=w},st=function(L,w,q,y){L===void 0&&(L=new ArrayBuffer(0)),w===void 0&&(w=0),q===void 0&&(q=0),y===void 0&&(y=0),this.buffer=L,this.length=w,this.width=q,this.height=y};r.TRTCLogLevel=void 0,(MA=r.TRTCLogLevel||(r.TRTCLogLevel={}))[MA.TRTCLogLevelVerbose=0]="TRTCLogLevelVerbose",MA[MA.TRTCLogLevelDebug=1]="TRTCLogLevelDebug",MA[MA.TRTCLogLevelInfo=2]="TRTCLogLevelInfo",MA[MA.TRTCLogLevelWarn=3]="TRTCLogLevelWarn",MA[MA.TRTCLogLevelError=4]="TRTCLogLevelError",MA[MA.TRTCLogLevelFatal=5]="TRTCLogLevelFatal",MA[MA.TRTCLogLevelNone=6]="TRTCLogLevelNone",r.TRTCScreenCaptureSourceType=void 0,(YA=r.TRTCScreenCaptureSourceType||(r.TRTCScreenCaptureSourceType={}))[YA.TRTCScreenCaptureSourceTypeUnknown=-1]="TRTCScreenCaptureSourceTypeUnknown",YA[YA.TRTCScreenCaptureSourceTypeWindow=0]="TRTCScreenCaptureSourceTypeWindow",YA[YA.TRTCScreenCaptureSourceTypeScreen=1]="TRTCScreenCaptureSourceTypeScreen",YA[YA.TRTCScreenCaptureSourceTypeCustom=2]="TRTCScreenCaptureSourceTypeCustom";var Te,be=function(L,w,q,y,T,V){L===void 0&&(L=r.TRTCScreenCaptureSourceType.TRTCScreenCaptureSourceTypeUnknown),w===void 0&&(w=""),q===void 0&&(q=""),y===void 0&&(y=new st),T===void 0&&(T=new st),V===void 0&&(V=!1),this.type=L,this.sourceId=w,this.sourceName=q,this.thumbBGRA=y,this.iconBGRA=T,this.isMinimizeWindow=V},yt=function(L,w,q,y){L===void 0&&(L=0),w===void 0&&(w=0),q===void 0&&(q=0),y===void 0&&(y=0),this.left=L,this.top=w,this.right=q,this.bottom=y},ht=function(L,w,q,y,T,V,$,CA,NA,KA,C,E,h,D,N){L===void 0&&(L=r.TRTCTranscodingConfigMode.TRTCTranscodingConfigMode_Unknown),w===void 0&&(w=0),q===void 0&&(q=0),y===void 0&&(y=0),T===void 0&&(T=0),V===void 0&&(V=0),$===void 0&&($=15),CA===void 0&&(CA=2),NA===void 0&&(NA=0),KA===void 0&&(KA=""),C===void 0&&(C=64),E===void 0&&(E=48e3),h===void 0&&(h=1),D===void 0&&(D=[]),N===void 0&&(N=""),this.mode=L,this.appId=w,this.bizId=q,this.videoWidth=y,this.videoHeight=T,this.videoBitrate=V,this.videoFramerate=$,this.videoGOP=CA,this.backgroundColor=NA,this.backgroundImage=KA,this.audioSampleRate=C,this.audioBitrate=E,this.audioChannels=h,this.mixUsersArray=D,this.mixUsersArraySize=D.length,this.streamId=N};r.TRTCTranscodingConfigMode=void 0,(Te=r.TRTCTranscodingConfigMode||(r.TRTCTranscodingConfigMode={}))[Te.TRTCTranscodingConfigMode_Unknown=0]="TRTCTranscodingConfigMode_Unknown",Te[Te.TRTCTranscodingConfigMode_Manual=1]="TRTCTranscodingConfigMode_Manual",Te[Te.TRTCTranscodingConfigMode_Template_PureAudio=2]="TRTCTranscodingConfigMode_Template_PureAudio",Te[Te.TRTCTranscodingConfigMode_Template_PresetLayout=3]="TRTCTranscodingConfigMode_Template_PresetLayout",Te[Te.TRTCTranscodingConfigMode_Template_ScreenSharing=4]="TRTCTranscodingConfigMode_Template_ScreenSharing",Te[Te.TRTC_TranscodingConfigMode_Unknown=5]="TRTC_TranscodingConfigMode_Unknown",Te[Te.TRTC_TranscodingConfigMode_Manual=6]="TRTC_TranscodingConfigMode_Manual",Te[Te.TRTC_TranscodingConfigMode_Template_PureAudio=7]="TRTC_TranscodingConfigMode_Template_PureAudio",Te[Te.TRTC_TranscodingConfigMode_Template_PresetLayout=8]="TRTC_TranscodingConfigMode_Template_PresetLayout",Te[Te.TRTC_TranscodingConfigMode_Template_ScreenSharing=9]="TRTC_TranscodingConfigMode_Template_ScreenSharing";var ae,ye,Xe=function(L,w,q,y,T,V,$,CA){L===void 0&&(L=""),w===void 0&&(w=""),q===void 0&&(q=null),y===void 0&&(y=0),T===void 0&&(T=!1),V===void 0&&(V=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),$===void 0&&($=r.TRTCMixInputType.TRTCMixInputTypeUndefined),CA===void 0&&(CA=0),this.userId=L,this.roomId=w,this.rect=q,this.zOrder=y,this.pureAudio=T,this.streamType=V,this.inputType=$,this.renderMode=CA};r.TRTCMixInputType=void 0,(ae=r.TRTCMixInputType||(r.TRTCMixInputType={}))[ae.TRTCMixInputTypeUndefined=0]="TRTCMixInputTypeUndefined",ae[ae.TRTCMixInputTypeAudioVideo=1]="TRTCMixInputTypeAudioVideo",ae[ae.TRTCMixInputTypePureVideo=2]="TRTCMixInputTypePureVideo",ae[ae.TRTCMixInputTypePureAudio=3]="TRTCMixInputTypePureAudio",r.TRTCCameraCaptureMode=void 0,(ye=r.TRTCCameraCaptureMode||(r.TRTCCameraCaptureMode={}))[ye.TRTCCameraResolutionStrategyAuto=0]="TRTCCameraResolutionStrategyAuto",ye[ye.TRTCCameraResolutionStrategyPerformance=1]="TRTCCameraResolutionStrategyPerformance",ye[ye.TRTCCameraResolutionStrategyHighQuality=2]="TRTCCameraResolutionStrategyHighQuality",ye[ye.TRTCCameraCaptureManual=3]="TRTCCameraCaptureManual";var ot,zt=function(L,w,q,y,T,V){L===void 0&&(L=!0),w===void 0&&(w=!0),q===void 0&&(q=!0),y===void 0&&(y=0),T===void 0&&(T=0),V===void 0&&(V=!1),this.enableCaptureMouse=L,this.enableHighLight=w,this.enableHighPerformance=q,this.highLightColor=y,this.highLightWidth=T,this.enableCaptureChildWindow=V},yi="onError",Hi="onWarning",Ei="rtc",ji="live",Xo="VirtualBackground",sr="BasicBeauty",Lo="blur",Nr="image",Vo={20:"anchor",21:"audience"},et={0:Ei,1:ji,2:Ei,3:ji};(function(L){L[L.ActiveExitRoom=0]="ActiveExitRoom",L[L.KickedExitRoom=1]="KickedExitRoom"})(ot||(ot={}));var Kr="enum";function Qn(){return Math.floor(performance.now())}var ho=function(L){return L===void 0},jn=function(L){return typeof L=="number"},$t=function(L){return typeof L=="boolean"};function $r(L){if(typeof L!="string")return L;var w;try{var q=JSON.parse(L);w=typeof q=="object"&&q?q:L}catch{w=L}return w}function On(L){return L==null}function An(){for(var L=[],w=0;w<arguments.length;w++)L[w]=arguments[w];return L.reduce(function(q,y){return Object.keys(y).forEach(function(T){q[T]&&typeof q[T]=="object"?q[T]=An(q[T],y[T]):q[T]=y[T]}),q},{})}function Tr(L){var w=null;return L instanceof MediaStream||L instanceof MediaStreamTrack||L instanceof HTMLElement?L:([Date,RegExp,Set,WeakSet,Map,WeakMap,Error].includes(L?.constructor)?w=new L.constructor(L):Array.isArray(L)?(w=[],L.forEach(function(q,y){w[y]=Tr(q)})):typeof L=="object"&&L!==null?(w={},Object.keys(L).forEach(function(q){Object.hasOwnProperty.call(L,q)&&(w[q]=Tr(L[q]))})):w=L,w)}var ei,Es,jr=function(L){return L&&L.Math===Math&&L},Gr=jr(typeof globalThis=="object"&&globalThis)||jr(typeof window=="object"&&window)||jr(typeof self=="object"&&self)||jr(typeof VA=="object"&&VA)||function(){return this}()||VA||Function("return this")(),$o=function(L){try{return!!L()}catch{return!0}},sn=!$o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),dn=!$o(function(){var L=function(){}.bind();return typeof L!="function"||L.hasOwnProperty("prototype")}),hn=Function.prototype.call,Gi=dn?hn.bind(hn):function(){return hn.apply(hn,arguments)},pn={}.propertyIsEnumerable,nI=Object.getOwnPropertyDescriptor,gr={f:nI&&!pn.call({1:2},1)?function(L){var w=nI(this,L);return!!w&&w.enumerable}:pn},gn=function(L,w){return{enumerable:!(1&L),configurable:!(2&L),writable:!(4&L),value:w}},Yo=Function.prototype,Tg=Yo.call,So=dn&&Yo.bind.bind(Tg,Tg),ao=dn?So:function(L){return function(){return Tg.apply(L,arguments)}},EE=ao({}.toString),Ta=ao("".slice),po=function(L){return Ta(EE(L),8,-1)},Ja=Object,Mc=ao("".split),Qr=$o(function(){return!Ja("z").propertyIsEnumerable(0)})?function(L){return po(L)==="String"?Mc(L,""):Ja(L)}:Ja,Fo=function(L){return L==null},$s=TypeError,Ha=function(L){if(Fo(L))throw $s("Can't call method on "+L);return L},Gs=function(L){return Qr(Ha(L))},Ga=typeof document=="object"&&document.all,Rr={all:Ga,IS_HTMLDDA:Ga===void 0&&Ga!==void 0},Ia=Rr.all,fo=Rr.IS_HTMLDDA?function(L){return typeof L=="function"||L===Ia}:function(L){return typeof L=="function"},aI=Rr.all,en=Rr.IS_HTMLDDA?function(L){return typeof L=="object"?L!==null:fo(L)||L===aI}:function(L){return typeof L=="object"?L!==null:fo(L)},qo=function(L,w){return arguments.length<2?(q=Gr[L],fo(q)?q:void 0):Gr[L]&&Gr[L][w];var q},Gg=ao({}.isPrototypeOf),kg=typeof navigator<"u"&&String(navigator.userAgent)||"",fn=Gr.process,ls=Gr.Deno,Or=fn&&fn.versions||ls&&ls.version,Po=Or&&Or.v8;Po&&(Es=(ei=Po.split("."))[0]>0&&ei[0]<4?1:+(ei[0]+ei[1])),!Es&&kg&&(!(ei=kg.match(/Edge\/(\d+)/))||ei[1]>=74)&&(ei=kg.match(/Chrome\/(\d+)/))&&(Es=+ei[1]);var Ba=Es,Mr=Gr.String,Cs=!!Object.getOwnPropertySymbols&&!$o(function(){var L=Symbol("symbol detection");return!Mr(L)||!(Object(L)instanceof Symbol)||!Symbol.sham&&Ba&&Ba<41}),Va=Cs&&!Symbol.sham&&typeof Symbol.iterator=="symbol",P=Object,F=Va?function(L){return typeof L=="symbol"}:function(L){var w=qo("Symbol");return fo(w)&&Gg(w.prototype,P(L))},EA=String,RA=TypeError,GA=function(L){if(fo(L))return L;throw RA(function(w){try{return EA(w)}catch{return"Object"}}(L)+" is not a function")},WA=function(L,w){var q=L[w];return Fo(q)?void 0:GA(q)},Ce=TypeError,ge=Object.defineProperty,we=function(L,w){try{ge(Gr,L,{value:w,configurable:!0,writable:!0})}catch{Gr[L]=w}return w},_e="__core-js_shared__",Ke=Gr[_e]||we(_e,{}),Bt=ue(function(L){(L.exports=function(w,q){return Ke[w]||(Ke[w]=q!==void 0?q:{})})("versions",[]).push({version:"3.32.1",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),Rt=Object,Ye=function(L){return Rt(Ha(L))},nt=ao({}.hasOwnProperty),ii=Object.hasOwn||function(L,w){return nt(Ye(L),w)},oi=0,Ko=Math.random(),Kt=ao(1 .toString),ro=function(L){return"Symbol("+(L===void 0?"":L)+")_"+Kt(++oi+Ko,36)},ks=Gr.Symbol,Zr=Bt("wks"),In=Va?ks.for||ks:ks&&ks.withoutSetter||ro,xr=function(L){return ii(Zr,L)||(Zr[L]=Cs&&ii(ks,L)?ks[L]:In("Symbol."+L)),Zr[L]},sI=TypeError,jo=xr("toPrimitive"),OI=function(L,w){if(!en(L)||F(L))return L;var q,y=WA(L,jo);if(y){if(q=Gi(y,L,w),!en(q)||F(q))return q;throw sI("Can't convert object to primitive value")}return function(T,V){var $,CA;if(fo($=T.toString)&&!en(CA=Gi($,T))||fo($=T.valueOf)&&!en(CA=Gi($,T)))return CA;throw Ce("Can't convert object to primitive value")}(L)},_g=function(L){var w=OI(L,"string");return F(w)?w:w+""},gI=Gr.document,ml=en(gI)&&en(gI.createElement),ua=function(L){return ml?gI.createElement(L):{}},II=!sn&&!$o(function(){return Object.defineProperty(ua("div"),"a",{get:function(){return 7}}).a!==7}),ZA=Object.getOwnPropertyDescriptor,Ag={f:sn?ZA:function(L,w){if(L=Gs(L),w=_g(w),II)try{return ZA(L,w)}catch{}if(ii(L,w))return gn(!Gi(gr.f,L,w),L[w])}},cI=sn&&$o(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Bs=String,eg=TypeError,kr=function(L){if(en(L))return L;throw eg(Bs(L)+" is not an object")},EI=TypeError,Gt=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,xI="enumerable",_s="configurable",tg="writable",ka={f:sn?cI?function(L,w,q){if(kr(L),w=_g(w),kr(q),typeof L=="function"&&w==="prototype"&&"value"in q&&tg in q&&!q[tg]){var y=Dl(L,w);y&&y[tg]&&(L[w]=q.value,q={configurable:_s in q?q[_s]:y[_s],enumerable:xI in q?q[xI]:y[xI],writable:!1})}return Gt(L,w,q)}:Gt:function(L,w,q){if(kr(L),w=_g(w),kr(q),II)try{return Gt(L,w,q)}catch{}if("get"in q||"set"in q)throw EI("Accessors not supported");return"value"in q&&(L[w]=q.value),L}},wc=sn?function(L,w,q){return ka.f(L,w,gn(1,q))}:function(L,w,q){return L[w]=q,L},lE=Function.prototype,qa=sn&&Object.getOwnPropertyDescriptor,CE=ii(lE,"name"),yC={CONFIGURABLE:CE&&(!sn||sn&&qa(lE,"name").configurable)},us=ao(Function.toString);fo(Ke.inspectSource)||(Ke.inspectSource=function(L){return us(L)});var lI,ig,yl,_a=Ke.inspectSource,Qs=Gr.WeakMap,Rl=fo(Qs)&&/native code/.test(String(Qs)),YI=Bt("keys"),vo=function(L){return YI[L]||(YI[L]=ro(L))},Qa={},BE="Object already initialized",cn=Gr.TypeError,kt=Gr.WeakMap;if(Rl||Ke.state){var Gn=Ke.state||(Ke.state=new kt);Gn.get=Gn.get,Gn.has=Gn.has,Gn.set=Gn.set,lI=function(L,w){if(Gn.has(L))throw cn(BE);return w.facade=L,Gn.set(L,w),w},ig=function(L){return Gn.get(L)||{}},yl=function(L){return Gn.has(L)}}else{var PI=vo("state");Qa[PI]=!0,lI=function(L,w){if(ii(L,PI))throw cn(BE);return w.facade=L,wc(L,PI,w),w},ig=function(L){return ii(L,PI)?L[PI]:{}},yl=function(L){return ii(L,PI)}}var Sc={get:ig,enforce:function(L){return yl(L)?ig(L):lI(L,{})}},tn=ue(function(L){var w=yC.CONFIGURABLE,q=Sc.enforce,y=Sc.get,T=String,V=Object.defineProperty,$=ao("".slice),CA=ao("".replace),NA=ao([].join),KA=sn&&!$o(function(){return V(function(){},"length",{value:8}).length!==8}),C=String(String).split("String"),E=L.exports=function(h,D,N){$(T(D),0,7)==="Symbol("&&(D="["+CA(T(D),/^Symbol\(([^)]*)\)/,"$1")+"]"),N&&N.getter&&(D="get "+D),N&&N.setter&&(D="set "+D),(!ii(h,"name")||w&&h.name!==D)&&(sn?V(h,"name",{value:D,configurable:!0}):h.name=D),KA&&N&&ii(N,"arity")&&h.length!==N.arity&&V(h,"length",{value:N.arity});try{N&&ii(N,"constructor")&&N.constructor?sn&&V(h,"prototype",{writable:!1}):h.prototype&&(h.prototype=void 0)}catch{}var O=q(h);return ii(O,"source")||(O.source=NA(C,typeof D=="string"?D:"")),h};Function.prototype.toString=E(function(){return fo(this)&&y(this).source||_a(this)},"toString")}),Ml=function(L,w,q,y){y||(y={});var T=y.enumerable,V=y.name!==void 0?y.name:w;if(fo(q)&&tn(q,V,y),y.global)T?L[w]=q:we(w,q);else{try{y.unsafe?L[w]&&(T=!0):delete L[w]}catch{}T?L[w]=q:ka.f(L,w,{value:q,enumerable:!1,configurable:!y.nonConfigurable,writable:!y.nonWritable})}return L},ba=Math.ceil,da=Math.floor,on=Math.trunc||function(L){var w=+L;return(w>0?da:ba)(w)},Xr=function(L){var w=+L;return w!=w||w===0?0:on(w)},wl=Math.max,bs=Math.min,vc=Math.min,CI=function(L){return L>0?vc(Xr(L),9007199254740991):0},uE=function(L){return CI(L.length)},RC=function(L){return function(w,q,y){var T,V=Gs(w),$=uE(V),CA=function(NA,KA){var C=Xr(NA);return C<0?wl(C+KA,0):bs(C,KA)}(y,$);if(L&&q!=q){for(;$>CA;)if((T=V[CA++])!=T)return!0}else for(;$>CA;CA++)if((L||CA in V)&&V[CA]===q)return L||CA||0;return!L&&-1}},Nc={indexOf:RC(!1)}.indexOf,Sl=ao([].push),JI=function(L,w){var q,y=Gs(L),T=0,V=[];for(q in y)!ii(Qa,q)&&ii(y,q)&&Sl(V,q);for(;w.length>T;)ii(y,q=w[T++])&&(~Nc(V,q)||Sl(V,q));return V},bg=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],QE=bg.concat("length","prototype"),vl={f:Object.getOwnPropertyNames||function(L){return JI(L,QE)}},Tc={f:Object.getOwnPropertySymbols},lo=ao([].concat),ds=qo("Reflect","ownKeys")||function(L){var w=vl.f(kr(L)),q=Tc.f;return q?lo(w,q(L)):w},QB=function(L,w,q){for(var y=ds(w),T=ka.f,V=Ag.f,$=0;$<y.length;$++){var CA=y[$];ii(L,CA)||q||T(L,CA,V(w,CA))}},Gc=/#|\.prototype\./,kc=function(L,w){var q=dB[MC(L)];return q===mn||q!==HI&&(fo(w)?$o(w):!!w)},MC=kc.normalize=function(L){return String(L).replace(Gc,".").toLowerCase()},dB=kc.data={},HI=kc.NATIVE="N",mn=kc.POLYFILL="P",Lg=kc,dE=Ag.f,Ir=function(L,w){var q,y,T,V,$,CA=L.target,NA=L.global,KA=L.stat;if(q=NA?Gr:KA?Gr[CA]||we(CA,{}):(Gr[CA]||{}).prototype)for(y in w){if(V=w[y],T=L.dontCallGetSet?($=dE(q,y))&&$.value:q[y],!Lg(NA?y:CA+(KA?".":"#")+y,L.forced)&&T!==void 0){if(typeof V==typeof T)continue;QB(V,T)}(L.sham||T&&T.sham)&&wc(V,"sham",!0),Ml(q,y,V,L)}},og={};og[xr("toStringTag")]="z";var Ka,ca=String(og)==="[object z]",hE=xr("toStringTag"),wC=Object,Ls=po(function(){return arguments}())==="Arguments",_c=ca?po:function(L){var w,q,y;return L===void 0?"Undefined":L===null?"Null":typeof(q=function(T,V){try{return T[V]}catch{}}(w=wC(L),hE))=="string"?q:Ls?po(w):(y=po(w))==="Object"&&fo(w.callee)?"Arguments":y},SC=String,rg=function(L){if(_c(L)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return SC(L)},Wr=function(){var L=kr(this),w="";return L.hasIndices&&(w+="d"),L.global&&(w+="g"),L.ignoreCase&&(w+="i"),L.multiline&&(w+="m"),L.dotAll&&(w+="s"),L.unicode&&(w+="u"),L.unicodeSets&&(w+="v"),L.sticky&&(w+="y"),w},ng=Gr.RegExp,hs=$o(function(){var L=ng("a","y");return L.lastIndex=2,L.exec("abcd")!==null});hs||$o(function(){return!ng("a","y").sticky});var hB={BROKEN_CARET:hs||$o(function(){var L=ng("^r","gy");return L.lastIndex=2,L.exec("str")!==null})},pB=Object.keys||function(L){return JI(L,bg)},Nl=sn&&!cI?Object.defineProperties:function(L,w){kr(L);for(var q,y=Gs(w),T=pB(w),V=T.length,$=0;V>$;)ka.f(L,q=T[$++],y[q]);return L},bc={f:Nl},VI=qo("document","documentElement"),BI="prototype",pE="script",Lc=vo("IE_PROTO"),uI=function(){},Fg=function(L){return"<"+pE+">"+L+"</"+pE+">"},ja=function(L){L.write(Fg("")),L.close();var w=L.parentWindow.Object;return L=null,w},Fs=function(){try{Ka=new ActiveXObject("htmlfile")}catch{}var L,w,q;Fs=typeof document<"u"?document.domain&&Ka?ja(Ka):(w=ua("iframe"),q="java"+pE+":",w.style.display="none",VI.appendChild(w),w.src=String(q),(L=w.contentWindow.document).open(),L.write(Fg("document.F=Object")),L.close(),L.F):ja(Ka);for(var y=bg.length;y--;)delete Fs[BI][bg[y]];return Fs()};Qa[Lc]=!0;var No,Fc,Ug=Object.create||function(L,w){var q;return L!==null?(uI[BI]=kr(L),q=new uI,uI[BI]=null,q[Lc]=L):q=Fs(),w===void 0?q:bc.f(q,w)},vC=Gr.RegExp,fE=$o(function(){var L=vC(".","s");return!(L.dotAll&&L.exec(`
`)&&L.flags==="s")}),Tl=Gr.RegExp,Ou=$o(function(){var L=Tl("(?<a>b)","g");return L.exec("b").groups.a!=="b"||"b".replace(L,"$<a>c")!=="bc"}),fB=Sc.get,xu=Bt("native-string-replace",String.prototype.replace),Og=RegExp.prototype.exec,QI=Og,pi=ao("".charAt),mB=ao("".indexOf),Gl=ao("".replace),kl=ao("".slice),NC=(Fc=/b*/g,Gi(Og,No=/a/,"a"),Gi(Og,Fc,"a"),No.lastIndex!==0||Fc.lastIndex!==0),_l=hB.BROKEN_CARET,xg=/()??/.exec("")[1]!==void 0;(NC||xg||_l||fE||Ou)&&(QI=function(L){var w,q,y,T,V,$,CA,NA=this,KA=fB(NA),C=rg(L),E=KA.raw;if(E)return E.lastIndex=NA.lastIndex,w=Gi(QI,E,C),NA.lastIndex=E.lastIndex,w;var h=KA.groups,D=_l&&NA.sticky,N=Gi(Wr,NA),O=NA.source,Y=0,j=C;if(D&&(N=Gl(N,"y",""),mB(N,"g")===-1&&(N+="g"),j=kl(C,NA.lastIndex),NA.lastIndex>0&&(!NA.multiline||NA.multiline&&pi(C,NA.lastIndex-1)!==`
`)&&(O="(?: "+O+")",j=" "+j,Y++),q=new RegExp("^(?:"+O+")",N)),xg&&(q=new RegExp("^"+O+"$(?!\\s)",N)),NC&&(y=NA.lastIndex),T=Gi(Og,D?q:NA,j),D?T?(T.input=kl(T.input,Y),T[0]=kl(T[0],Y),T.index=NA.lastIndex,NA.lastIndex+=T[0].length):NA.lastIndex=0:NC&&T&&(NA.lastIndex=NA.global?T.index+T[0].length:y),xg&&T&&T.length>1&&Gi(xu,T[0],q,function(){for(V=1;V<arguments.length-2;V++)arguments[V]===void 0&&(T[V]=void 0)}),T&&h)for(T.groups=$=Ug(null),V=0;V<h.length;V++)$[(CA=h[V])[0]]=T[CA[1]];return T});var qI=QI;Ir({target:"RegExp",proto:!0,forced:/./.exec!==qI},{exec:qI});var mE=`
\v\f\r                 \u2028\u2029\uFEFF`,DE=ao("".replace),DB=RegExp("^["+mE+"]+"),Rn=RegExp("(^|[^"+mE+"])["+mE+"]+$"),ps=function(L){return function(w){var q=rg(Ha(w));return 1&L&&(q=DE(q,DB,"")),2&L&&(q=DE(q,Rn,"$1")),q}},ag={trim:ps(3)}.trim,yB=ao("".charAt),KI=Gr.parseFloat,RB=Gr.Symbol,Wn=RB&&RB.iterator,yE=1/KI(mE+"-0")!=-1/0||Wn&&!$o(function(){KI(Object(Wn))})?function(L){var w=ag(rg(L)),q=KI(w);return q===0&&yB(w,0)==="-"?-0:q}:KI;Ir({global:!0,forced:parseFloat!==yE},{parseFloat:yE});var wr=function(L){if(po(L)==="Function")return ao(L)},MB=xr("species"),Yg=RegExp.prototype,TC=ao("".charAt),jI=ao("".charCodeAt),ha=ao("".slice),wB=function(L){return function(w,q){var y,T,V=rg(Ha(w)),$=Xr(q),CA=V.length;return $<0||$>=CA?L?"":void 0:(y=jI(V,$))<55296||y>56319||$+1===CA||(T=jI(V,$+1))<56320||T>57343?L?TC(V,$):y:L?ha(V,$,$+2):T-56320+(y-55296<<10)+65536}},pa={charAt:wB(!0)}.charAt,sg=function(L,w,q){return w+(q?pa(L,w).length:1)},GC=TypeError,bl=function(L,w){var q=L.exec;if(fo(q)){var y=Gi(q,L,w);return y!==null&&kr(y),y}if(po(L)==="RegExp")return Gi(qI,L,w);throw GC("RegExp#exec called on incompatible receiver")};(function(L,w,q,y){var T=xr(L),V=!$o(function(){var KA={};return KA[T]=function(){return 7},""[L](KA)!==7}),$=V&&!$o(function(){var KA=!1,C=/a/;return L==="split"&&((C={}).constructor={},C.constructor[MB]=function(){return C},C.flags="",C[T]=/./[T]),C.exec=function(){return KA=!0,null},C[T](""),!KA});if(!V||!$||q){var CA=wr(/./[T]),NA=w(T,""[L],function(KA,C,E,h,D){var N=wr(KA),O=C.exec;return O===qI||O===Yg.exec?V&&!D?{done:!0,value:CA(C,E,h)}:{done:!0,value:N(E,C,h)}:{done:!1}});Ml(String.prototype,L,NA[0]),Ml(Yg,T,NA[1])}})("match",function(L,w,q){return[function(y){var T=Ha(this),V=Fo(y)?void 0:WA(y,L);return V?Gi(V,y,T):new RegExp(y)[L](rg(T))},function(y){var T=kr(this),V=rg(y),$=q(w,T,V);if($.done)return $.value;if(!T.global)return bl(T,V);var CA=T.unicode;T.lastIndex=0;for(var NA,KA=[],C=0;(NA=bl(T,V))!==null;){var E=rg(NA[0]);KA[C]=E,E===""&&(T.lastIndex=sg(V,CI(T.lastIndex),CA)),C++}return C===0?null:KA}]});var Mn=Array.isArray||function(L){return po(L)==="Array"},WI=TypeError,RE=function(L){if(L>9007199254740991)throw WI("Maximum allowed index exceeded");return L},dI=function(L,w,q){var y=_g(w);y in L?ka.f(L,y,gn(0,q)):L[y]=q},fs=function(){},Uc=[],ms=qo("Reflect","construct"),zI=/^\s*(?:class|function)\b/,xn=ao(zI.exec),Yu=!zI.exec(fs),Wo=function(L){if(!fo(L))return!1;try{return ms(fs,Uc,L),!0}catch{return!1}},Oc=function(L){if(!fo(L))return!1;switch(_c(L)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Yu||!!xn(zI,_a(L))}catch{return!0}};Oc.sham=!0;var ME,Pg=!ms||$o(function(){var L;return Wo(Wo.call)||!Wo(Object)||!Wo(function(){L=!0})||L})?Oc:Wo,gg=xr("species"),En=Array,Ds=function(L,w){return new(function(q){var y;return Mn(q)&&(y=q.constructor,(Pg(y)&&(y===En||Mn(y.prototype))||en(y)&&(y=y[gg])===null)&&(y=void 0)),y===void 0?En:y}(L))(0)},Wa=xr("species"),Ll=xr("isConcatSpreadable"),SB=Ba>=51||!$o(function(){var L=[];return L[Ll]=!1,L.concat()[0]!==L}),Pu=function(L){if(!en(L))return!1;var w=L[Ll];return w!==void 0?!!w:Mn(L)};Ir({target:"Array",proto:!0,arity:1,forced:!(SB&&(ME="concat",Ba>=51||!$o(function(){var L=[];return(L.constructor={})[Wa]=function(){return{foo:1}},L[ME](Boolean).foo!==1})))},{concat:function(L){var w,q,y,T,V,$=Ye(this),CA=Ds($),NA=0;for(w=-1,y=arguments.length;w<y;w++)if(Pu(V=w===-1?$:arguments[w]))for(T=uE(V),RE(NA+T),q=0;q<T;q++,NA++)q in V&&dI(CA,NA,V[q]);else RE(NA+1),dI(CA,NA++,V);return CA.length=NA,CA}});var li=window.navigator&&window.navigator.userAgent||"",wE=/AppleWebKit\/([\d.]+)/i.exec(li);wE&&parseFloat(wE.pop());var hI=/iPad/i.test(li),vB=/iPhone/i.test(li)&&!hI,NB=/iPod/i.test(li),pI=vB||hI||NB,SE=/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(li);pI&&function(){var L=li.match(/OS (\d+)_/i);L&&L[1]&&L[1]}();var ZI=/Android/i.test(li);ZI&&function(){var L=li.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!L)return null;var w=L[1]&&parseFloat(L[1]),q=L[2]&&parseFloat(L[2]);w&&q&&parseFloat("".concat(L[1],".").concat(L[2]))}(),/Firefox/i.test(li)&&function(){var L=li.match(/Firefox\/(\d+)/);L&&L[1]&&parseFloat(L[1])}();var xc=/Edge\//i.test(li);xc&&function(){var L=li.match(/Edge\/(\d+)/i);L&&L[1]&&L[1]}();var TB=/Edg\//i.test(li);TB&&function(){var L=li.match(/Edg\/(\d+)/);L&&L[1]&&parseFloat(L[1])}();var Yc=/SogouMobileBrowser\//i.test(li);Yc&&function(){var L=li.match(/SogouMobileBrowser\/(\d+)/);L&&L[1]&&parseFloat(L[1])}();var XI=/MetaSr\s/i.test(li);XI&&function(){var L=li.match(/MetaSr(\s\d+(\.\d+)+)/);L&&L[1]&&parseFloat(L[1])}();var Us=/TBS\/\d+/i.test(li);Us&&function(){var L=li.match(/TBS\/(\d+)/i);L&&L[1]&&L[1]}();var fI=/XWEB\/\d+/i.test(li);fI&&function(){var L=li.match(/XWEB\/(\d+)/i);L&&L[1]&&L[1]}(),/MSIE\/\d+/i.test(li)&&function(){var L=/MSIE\s(\d+)\.\d/.exec(li);L&&parseFloat(L[1])}(),/(micromessenger|webbrowser)/i.test(li)&&function(){var L=li.match(/MicroMessenger\/(\d+)/i);L&&L[1]&&L[1]}();var kC=!Us&&/MQQBrowser\/\d+/i.test(li)&&/COVC\/\d+/i.test(li),Fl=!Us&&/MQQBrowser\/\d+/i.test(li)&&!/COVC\/\d+/i.test(li);(Fl||kC)&&function(){var L=li.match(/ MQQBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var Pc=!Us&&/ QQBrowser\/\d+/i.test(li);Pc&&function(){var L=li.match(/ QQBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var vE=!Us&&/QQBrowserLite\/\d+/i.test(li);vE&&function(){var L=li.match(/QQBrowserLite\/([\d.]+)/);L&&L[1]&&L[1]}();var di=!Us&&/MQBHD\/\d+/i.test(li);di&&function(){var L=li.match(/MQBHD\/([\d.]+)/);L&&L[1]&&L[1]}();var Ul=/MiuiBrowser/i.test(li);Ul&&function(){var L=li.match(/MiuiBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var za=/HuaweiBrowser/i.test(li);za&&function(){var L=li.match(/HuaweiBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var NE=/SamsungBrowser/i.test(li);NE&&function(){var L=li.match(/SamsungBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var Ol=/HeyTapBrowser/i.test(li);Ol&&function(){var L=li.match(/HeyTapBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var Jg=/VivoBrowser/i.test(li);Jg&&function(){var L=li.match(/VivoBrowser\/([\d.]+)/);L&&L[1]&&L[1]}();var TE,Hg,Vg,fa=/Chrome/i.test(li),xl=!xc&&!XI&&!Yc&&!Us&&!fI&&!TB&&!Pc&&!Ul&&!za&&!NE&&!Ol&&!Jg&&/Chrome/i.test(li);xl&&function(){var L=li.match(/Chrome\/(\d+)/);L&&L[1]&&parseFloat(L[1])}(),xl&&function(){var L=li.match(/Chrome\/([\d.]+)/);L&&L[1]&&L[1]}(),!fa&&!Fl&&!kC&&!vE&&!di&&/Safari/i.test(li)&&function(){var L=li.match(/Version\/([\d.]+)/);L&&L[1]&&L[1]}(),function(L){L.LIVE="live",L.RTC="rtc"}(TE||(TE={})),function(L){L.CONTAIN="contain",L.COVER="cover",L.FILL="fill"}(Hg||(Hg={})),function(L){L[L.exitRoom=0]="exitRoom",L[L.banned=1]="banned",L[L.roomDisband=2]="roomDisband"}(Vg||(Vg={}));var zn,dr,Yn,qg=-3340,GE=-1301,$I=-1314,GB=-1315,Ig=-1316,kE=-1302,kB=-1317,_E=-1318,Ju=-1319,bE=-70252,Jc={code:-1001,message:"参数错误, 请检查参数格式、是否非空等"},LE={code:-1005,message:"not supported"},_B="2.10.19";r.TRTCMediaMixingErrorCode=void 0,(zn=r.TRTCMediaMixingErrorCode||(r.TRTCMediaMixingErrorCode={}))[zn.Success=0]="Success",zn[zn.Error=-1]="Error",zn[zn.InvalidParams=-2]="InvalidParams",zn[zn.NotFoundSource=-3]="NotFoundSource",zn[zn.ImageSourceLoadFailed=-4]="ImageSourceLoadFailed",zn[zn.CameraNotAuthorized=-5]="CameraNotAuthorized",zn[zn.CameraIsOccupied=-6]="CameraIsOccupied",zn[zn.CameraDisconnected=-7]="CameraDisconnected",r.TRTCMediaSourceType=void 0,(dr=r.TRTCMediaSourceType||(r.TRTCMediaSourceType={}))[dr.kCamera=0]="kCamera",dr[dr.kScreen=1]="kScreen",dr[dr.kImage=2]="kImage",dr[dr.kPhoneMirror=4]="kPhoneMirror",dr[dr.kText=5]="kText",dr[dr.kVideo=6]="kVideo",r.TRTCMediaMixingEvent=void 0,(Yn=r.TRTCMediaMixingEvent||(r.TRTCMediaMixingEvent={})).onSourceSelected="onSourceSelected",Yn.onSourceMoved="onSourceMoved",Yn.onSourceResized="onSourceResized",Yn.onRightButtonClicked="onRightButtonClicked",Yn.onError="onError",Yn.onSourcePlugged="onSourcePlugged",Yn.onSourceConnected="onSourceConnected",Yn.onSourceDisconnected="onSourceDisconnected",Yn.onSourceUnplugged="onSourceUnplugged",Yn.onMediaSourceSizeChanged="onMediaSourceSizeChanged";var Zn,Os=function(){function L(w,q){if(this.logRegion="tc",this.loggerManager=w,q){var y=q.sdkAppId,T=q.userId,V=q.seq;this.seq=V,w&&(this.logger=w.createLogger({id:"".concat(this.logRegion).concat(V),userId:T,sdkAppId:y}))}else this.logger=w;this.logger||(this.logger={debug:function($){console.debug($)},info:function($){console.info($)},warn:function($){console.warn($)},error:function($){console.error($)}})}return L.prototype.getLogMessage=function(w){var q=this;return w.map(function(y){return q.getStringifyMessage(y)}).join(" ")},L.prototype.getStringifyMessage=function(w){var q=this;if(typeof w!="object")return w;if(w instanceof HTMLElement)return"".concat(w.tagName.toLocaleLowerCase(),"#").concat(w.id);if(w instanceof Array){var y=[];return Object.keys(w).forEach(function(V){return y[V]=q.getStringifyMessage(w[V])}),JSON.stringify(y)}if(w instanceof Object){var T={};return Object.keys(w).forEach(function(V){return T[V]=q.getStringifyMessage(w[V])}),JSON.stringify(T)}return w},L.prototype.update=function(w){var q=w.userId,y=w.sdkAppId;this.loggerManager&&this.loggerManager.createLogger&&(this.logger=this.loggerManager.createLogger({id:"".concat(this.logRegion).concat(this.seq),userId:q,sdkAppId:y}))},L.prototype.log=function(){for(var w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];var y=this.getLogMessage(w);this.logger&&this.logger.info&&this.logger.info(y)},L.prototype.debug=function(){for(var w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];var y=this.getLogMessage(w);this.logger.debug(y)},L.prototype.info=function(){for(var w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];var y=this.getLogMessage(w);this.logger&&this.logger.info&&this.logger.info(y)},L.prototype.warn=function(){for(var w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];var y=this.getLogMessage(w);this.logger&&this.logger.warn&&this.logger.warn(y)},L.prototype.error=function(){for(var w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];var y=this.getLogMessage(w);this.logger&&this.logger.error&&this.logger.error(y)},L}(),Za=new Os(null),FE=function(){function L(w,q,y){y===void 0&&(y={calcPositionOnly:!1,canExceedContainer:!1}),this.logPrefix="[Movable]",this.movable=null,this.container=null,this.options={calcPositionOnly:!1,canExceedContainer:!1},this.callbacksMap=new Map,this.enabled=!0,this.originLeft=0,this.originTop=0,this.moveStartOfLeft=0,this.moveStartOfTop=0,this.movable=w,this.container=q||document.body,this.options={calcPositionOnly:!!y.calcPositionOnly||!1,canExceedContainer:!!y.canExceedContainer||!1},this.setStyle(),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onMouseMove5px=this.onMouseMove5px.bind(this),this.onMouseUp5px=this.onMouseUp5px.bind(this),this.movable.addEventListener("mousedown",this.onMouseDown,!1)}return L.prototype.setStyle=function(){this.movable?(this.movable.style.position="absolute",this.movable.style.cursor="move"):Za.debug("".concat(this.logPrefix,"setStyle 'movable' is null"))},L.prototype.onMouseDown=function(w){if(this.enabled&&w.button===0){if(w.preventDefault(),document.defaultView&&this.movable){var q=document.defaultView.getComputedStyle(this.movable);this.originLeft=window.parseInt(q.left),this.originTop=window.parseInt(q.top)}else Za.debug("".concat(this.logPrefix,"onMouseDown 'movable' is null"));this.moveStartOfLeft=w.screenX,this.moveStartOfTop=w.screenY,document.addEventListener("mousemove",this.onMouseMove5px,!1),document.addEventListener("mouseup",this.onMouseUp5px,!1)}},L.prototype.onMouseMove5px=function(w){var q=w.screenX-(this.moveStartOfLeft||0),y=w.screenY-(this.moveStartOfTop||0);Math.abs(q)>=5||Math.abs(y)>=5?(document.removeEventListener("mousemove",this.onMouseMove5px,!1),document.removeEventListener("mouseup",this.onMouseUp5px,!1),document.addEventListener("mousemove",this.onMouseMove,!1),document.addEventListener("mouseup",this.onMouseUp,!1)):Za.debug("".concat(this.logPrefix,"on Movable mouse move less than 5px"))},L.prototype.onMouseUp5px=function(){document.removeEventListener("mousemove",this.onMouseMove5px,!1),document.removeEventListener("mouseup",this.onMouseUp5px,!1)},L.prototype.onMouseMove=function(w){if(this.movable&&this.container){var q=w.screenX-this.moveStartOfLeft,y=w.screenY-this.moveStartOfTop,T=this.originLeft+q,V=this.originTop+y,$=this.movable.offsetWidth,CA=this.movable.offsetHeight,NA=this.container.offsetWidth,KA=this.container.offsetHeight;this.options.canExceedContainer||(T<0?T=0:T>NA-$&&(T=NA-$),V<0?V=0:V>KA-CA&&(V=KA-CA)),!this.options.calcPositionOnly&&this.movable&&(this.movable.style.left="".concat(T,"px"),this.movable.style.top="".concat(V,"px")),this.emit("move",T,V)}else Za.debug("".concat(this.logPrefix,"onMouseMove error:No 'movable' and 'container'."))},L.prototype.onMouseUp=function(){document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.originLeft=0,this.originTop=0,this.moveStartOfLeft=0,this.moveStartOfTop=0},L.prototype.on=function(w,q){var y=this.callbacksMap.get(w);y?y.push(q):this.callbacksMap.set(w,[q])},L.prototype.off=function(w,q){var y=this.callbacksMap.get(w);y&&(y=y.filter(function(T){return T!=q}),this.callbacksMap.set(w,y))},L.prototype.emit=function(w){for(var q=[],y=1;y<arguments.length;y++)q[y-1]=arguments[y];var T=this.callbacksMap.get(w);T&&T.forEach(function(V){try{V.apply(null,q)}catch($){console.error("[Movable]emit error:",V,$)}})},L.prototype.destroy=function(){var w;(w=this.movable)===null||w===void 0||w.removeEventListener("mousedown",this.onMouseDown,!1),this.callbacksMap.clear(),this.movable=null,this.container=null},L.prototype.setEnabled=function(w){Za.debug("".concat(this.logPrefix,"setEnabled: ").concat(this.enabled," -> ").concat(w)),this.enabled=w,this.movable&&(this.movable.style.cursor=w?"move":"default",Za.debug("".concat(this.logPrefix,"setEnabled: cursor updated to '").concat(w?"move":"default","'")))},L.prototype.isEnabled=function(){return this.enabled},L}();(function(L){L[L.Both=0]="Both",L[L.Corner=1]="Corner",L[L.Edge=2]="Edge"})(Zn||(Zn={}));var Yl="trtc-resizable-top-left-anchor",UE="trtc-resizable-top-anchor",OE="trtc-resizable-top-right-anchor",Ac="trtc-resizable-left-anchor",ec="trtc-resizable-right-anchor",Xn="trtc-resizable-bottom-left-anchor",kn="trtc-resizable-bottom-anchor",ys="trtc-resizable-bottom-right-anchor",ln={resizeAnchor:{position:"absolute",width:"".concat(8,"px"),height:"".concat(8,"px"),border:"1px solid #3D7EFD",backgroundColor:"#FFFFFF"},topLeftAnchor:{top:"-".concat(4,"px"),left:"-".concat(4,"px"),cursor:"nw-resize"},topAnchor:{top:"-".concat(4,"px"),left:"calc(50% - ".concat(4,"px)"),cursor:"n-resize"},topRightAnchor:{top:"-".concat(4,"px"),right:"-".concat(4,"px"),cursor:"ne-resize"},leftAnchor:{top:"calc(50% - ".concat(4,"px)"),left:"-".concat(4,"px"),cursor:"w-resize"},rightAnchor:{top:"calc(50% - ".concat(4,"px)"),right:"-".concat(4,"px"),cursor:"e-resize"},bottomLeftAnchor:{bottom:"-".concat(4,"px"),left:"-".concat(4,"px"),cursor:"sw-resize"},bottomAnchor:{bottom:"-".concat(4,"px"),left:"calc(50% - ".concat(4,"px)"),cursor:"s-resize"},bottomRightAnchor:{bottom:"-".concat(4,"px"),right:"-".concat(4,"px"),cursor:"se-resize"}};function wn(L,w){for(var q in w)L.style[q]=w[q]}var Kg=function(){function L(w,q,y){y===void 0&&(y={keepRatio:!1,stopPropagation:!1,anchorMode:Zn.Both,canExceedContainer:!1}),this.logPrefix="[Resizable]",this.container=null,this.options={keepRatio:!1,stopPropagation:!1,anchorMode:Zn.Both,canExceedContainer:!1},this.callbacksMap=new Map,this.topLeftAnchor=null,this.topAnchor=null,this.topRightAnchor=null,this.leftAnchor=null,this.rightAnchor=null,this.bottomLeftAnchor=null,this.bottomAnchor=null,this.bottomRightAnchor=null,this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0,this.resizeTarget=w,this.container=q||document.body,this.options={keepRatio:!!y.keepRatio||!1,stopPropagation:!!y.stopPropagation||!1,anchorMode:y.anchorMode||Zn.Both,canExceedContainer:!!y.canExceedContainer||!1},this.mousedown=this.mousedown.bind(this),this.mousemove=this.mousemove.bind(this),this.mouseup=this.mouseup.bind(this),this.currentAnchor=null,this.createResizeAnchor(),this.resizeTarget.classList.add("trtc-resizable"),this.resizeTarget.style.position="absolute",this.resizeTarget.style.border="1px solid #3D7EFD",this.resizeTarget.style.boxSizing="border-box",this.initResizeEvent()}return L.prototype.createResizeAnchor=function(){var w,q,y,T,V,$,CA,NA,KA=document.createElement("div");KA.className="trtc-resizable-resize-anchor ".concat(Yl),wn(KA,Object.assign({},ln.resizeAnchor,ln.topLeftAnchor)),this.topLeftAnchor=KA;var C=document.createElement("div");C.className="trtc-resizable-resize-anchor ".concat(UE),wn(C,Object.assign({},ln.resizeAnchor,ln.topAnchor)),this.topAnchor=C;var E=document.createElement("div");E.className="trtc-resizable-resize-anchor ".concat(OE),wn(E,Object.assign({},ln.resizeAnchor,ln.topRightAnchor)),this.topRightAnchor=E;var h=document.createElement("div");h.className="trtc-resizable-resize-anchor ".concat(Ac),wn(h,Object.assign({},ln.resizeAnchor,ln.leftAnchor)),this.leftAnchor=h;var D=document.createElement("div");D.className="trtc-resizable-resize-anchor ".concat(ec),wn(D,Object.assign({},ln.resizeAnchor,ln.rightAnchor)),this.rightAnchor=D;var N=document.createElement("div");N.className="trtc-resizable-resize-anchor ".concat(Xn),wn(N,Object.assign({},ln.resizeAnchor,ln.bottomLeftAnchor)),this.bottomLeftAnchor=N;var O=document.createElement("div");O.className="trtc-resizable-resize-anchor ".concat(kn),wn(O,Object.assign({},ln.resizeAnchor,ln.bottomAnchor)),this.bottomAnchor=O;var Y=document.createElement("div");Y.className="trtc-resizable-resize-anchor ".concat(ys),wn(Y,Object.assign({},ln.resizeAnchor,ln.bottomRightAnchor)),this.bottomRightAnchor=Y,this.options.anchorMode!==Zn.Both&&this.options.anchorMode!==Zn.Edge||((w=this.resizeTarget)===null||w===void 0||w.appendChild(C),(q=this.resizeTarget)===null||q===void 0||q.appendChild(h),(y=this.resizeTarget)===null||y===void 0||y.appendChild(D),(T=this.resizeTarget)===null||T===void 0||T.appendChild(O)),this.options.anchorMode!==Zn.Both&&this.options.anchorMode!==Zn.Corner||((V=this.resizeTarget)===null||V===void 0||V.appendChild(KA),($=this.resizeTarget)===null||$===void 0||$.appendChild(E),(CA=this.resizeTarget)===null||CA===void 0||CA.appendChild(N),(NA=this.resizeTarget)===null||NA===void 0||NA.appendChild(Y))},L.prototype.initResizeEvent=function(){var w,q,y,T,V,$,CA,NA;(w=this.topLeftAnchor)===null||w===void 0||w.addEventListener("mousedown",this.mousedown,!1),(q=this.topAnchor)===null||q===void 0||q.addEventListener("mousedown",this.mousedown,!1),(y=this.topRightAnchor)===null||y===void 0||y.addEventListener("mousedown",this.mousedown,!1),(T=this.leftAnchor)===null||T===void 0||T.addEventListener("mousedown",this.mousedown,!1),(V=this.rightAnchor)===null||V===void 0||V.addEventListener("mousedown",this.mousedown,!1),($=this.bottomLeftAnchor)===null||$===void 0||$.addEventListener("mousedown",this.mousedown,!1),(CA=this.bottomAnchor)===null||CA===void 0||CA.addEventListener("mousedown",this.mousedown,!1),(NA=this.bottomRightAnchor)===null||NA===void 0||NA.addEventListener("mousedown",this.mousedown,!1)},L.prototype.mousedown=function(w){if(w.button===0){if(w.preventDefault(),this.options.stopPropagation&&w.stopPropagation(),this.currentAnchor=w.target,this.resizeStartLeft=w.screenX,this.resizeStartTop=w.screenY,document.defaultView&&this.resizeTarget){var q=document.defaultView.getComputedStyle(this.resizeTarget);this.originTop=window.parseInt(q.top),this.originLeft=window.parseInt(q.left),this.originWidth=this.resizeTarget.offsetWidth,this.originHeight=this.resizeTarget.offsetHeight,Za.debug("resize origin:",this.originTop,this.originLeft,this.originWidth,this.originHeight)}else Za.debug("".concat(this.logPrefix,"mouseDown 'resizeTarget' is null"));document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1)}},L.prototype.mousemove=function(w){if(this.container&&this.resizeTarget&&this.currentAnchor){var q,y=this.currentAnchor.classList[1],T=this.originLeft,V=this.originTop,$=this.originWidth,CA=this.originHeight;switch(y){case Yl:V=(q=this._resizeTop(w)).top,CA=q.height,T=(q=this._resizeLeft(w)).left,$=q.width,this.options.keepRatio&&($/this.originWidth<CA/this.originHeight?(CA=$*this.originHeight/this.originWidth,V=this.originTop+this.originHeight-CA):($=CA*this.originWidth/this.originHeight,T=this.originLeft+this.originWidth-$));break;case UE:V=(q=this._resizeTop(w)).top,CA=q.height,this.options.keepRatio&&(($=this.originWidth*CA/this.originHeight)<20?($=20,CA=this.originHeight*$/this.originWidth,V=this.originTop+this.originHeight-CA):!this.options.canExceedContainer&&$>this.container.offsetWidth-this.originLeft&&($=this.container.offsetWidth-this.originLeft,CA=this.originHeight*$/this.originWidth,V=this.originTop+this.originHeight-CA));break;case OE:V=(q=this._resizeTop(w)).top,CA=q.height,$=this._resizeRight(w),this.options.keepRatio&&($/this.originWidth<CA/this.originHeight?(CA=$*this.originHeight/this.originWidth,V=this.originTop+this.originHeight-CA):$=CA*this.originWidth/this.originHeight);break;case Ac:T=(q=this._resizeLeft(w)).left,$=q.width,this.options.keepRatio&&((CA=this.originHeight*$/this.originWidth)<20?(CA=20,$=this.originWidth*CA/this.originHeight,T=this.originLeft+this.originWidth-$):!this.options.canExceedContainer&&CA>this.container.offsetHeight-this.originTop&&(CA=this.container.offsetHeight-this.originTop,$=this.originWidth*CA/this.originHeight,T=this.originLeft+this.originWidth-$));break;case ec:$=this._resizeRight(w),this.options.keepRatio&&((CA=$*this.originHeight/this.originWidth)<20?$=(CA=20)*this.originWidth/this.originHeight:!this.options.canExceedContainer&&CA>this.container.offsetHeight-this.originTop&&($=(CA=this.container.offsetHeight-this.originTop)*this.originWidth/this.originHeight));break;case Xn:CA=this._resizeBottom(w),T=(q=this._resizeLeft(w)).left,$=q.width,this.options.keepRatio&&($/this.originWidth<CA/this.originHeight?CA=$*this.originHeight/this.originWidth:($=CA*this.originWidth/this.originHeight,T=this.originLeft+this.originWidth-$));break;case kn:CA=this._resizeBottom(w),this.options.keepRatio&&(($=CA*this.originWidth/this.originHeight)<20?CA=($=20)*this.originHeight/this.originWidth:!this.options.canExceedContainer&&$>this.container.offsetWidth-this.originLeft&&(CA=($=this.container.offsetWidth-this.originLeft)*this.originHeight/this.originWidth));break;case ys:CA=this._resizeBottom(w),$=this._resizeRight(w),this.options.keepRatio&&($/this.originWidth<CA/this.originHeight?CA=$*this.originHeight/this.originWidth:$=CA*this.originWidth/this.originHeight)}this.resizeTarget.style.left="".concat(T,"px"),this.resizeTarget.style.top="".concat(V,"px"),this.resizeTarget.style.height="".concat(CA,"px"),this.resizeTarget.style.width="".concat($,"px"),this.emit("resize",T,V,$,CA)}else Za.debug("".concat(this.logPrefix,"mouseMove error. No valid inner info:"),this.container,this.resizeTarget,this.currentAnchor)},L.prototype._resizeLeft=function(w){var q=w.screenX-this.resizeStartLeft,y=this.originLeft+q,T=this.originWidth-q;return!this.options.canExceedContainer&&y<0?(y=0,T=this.originWidth+this.originLeft):y>this.originLeft+this.originWidth-20&&(y=this.originLeft+this.originWidth-20,T=20),{left:y,width:T}},L.prototype._resizeTop=function(w){var q=w.screenY-this.resizeStartTop,y=this.originTop+q,T=this.originHeight-q;return!this.options.canExceedContainer&&y<0?(y=0,T=this.originHeight+this.originTop):y>this.originTop+this.originHeight-20&&(y=this.originTop+this.originHeight-20,T=20),{top:y,height:T}},L.prototype._resizeRight=function(w){if(!this.container)return Za.debug("".concat(this.logPrefix,"_resizeRight error. No container:"),this.container),0;var q=w.screenX-this.resizeStartLeft,y=this.originWidth+q;return y<20?y=20:!this.options.canExceedContainer&&y>this.container.offsetWidth-this.originLeft&&(y=this.container.offsetWidth-this.originLeft),y},L.prototype._resizeBottom=function(w){if(!this.container)return Za.debug("".concat(this.logPrefix,"_resizeBottom error. No container:"),this.container),0;var q=w.screenY-this.resizeStartTop,y=this.originHeight+q;return y<20?y=20:!this.options.canExceedContainer&&y>this.container.offsetHeight-this.originTop&&(y=this.container.offsetHeight-this.originTop),y},L.prototype.mouseup=function(){document.removeEventListener("mousemove",this.mousemove,!1),document.removeEventListener("mouseup",this.mouseup,!1),this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0},L.prototype.on=function(w,q){var y=this.callbacksMap.get(w);y?y.push(q):this.callbacksMap.set(w,[q])},L.prototype.off=function(w,q){var y=this.callbacksMap.get(w);y&&(y=y.filter(function(T){return T!=q}),this.callbacksMap.set(w,y))},L.prototype.emit=function(w){for(var q=[],y=1;y<arguments.length;y++)q[y-1]=arguments[y];var T=this.callbacksMap.get(w);T&&T.slice().forEach(function(V){try{V.apply(null,q)}catch($){console.error("[Resizable]emit error:",V,$)}})},L.prototype.destroy=function(){var w,q,y,T,V,$,CA,NA,KA,C,E,h,D,N,O,Y;(w=this.topLeftAnchor)===null||w===void 0||w.removeEventListener("mousedown",this.mousedown,!1),(q=this.topAnchor)===null||q===void 0||q.removeEventListener("mousedown",this.mousedown,!1),(y=this.topRightAnchor)===null||y===void 0||y.removeEventListener("mousedown",this.mousedown,!1),(T=this.leftAnchor)===null||T===void 0||T.removeEventListener("mousedown",this.mousedown,!1),(V=this.rightAnchor)===null||V===void 0||V.removeEventListener("mousedown",this.mousedown,!1),($=this.bottomLeftAnchor)===null||$===void 0||$.removeEventListener("mousedown",this.mousedown,!1),(CA=this.bottomAnchor)===null||CA===void 0||CA.removeEventListener("mousedown",this.mousedown,!1),(NA=this.bottomRightAnchor)===null||NA===void 0||NA.removeEventListener("mousedown",this.mousedown,!1),this.callbacksMap.clear(),this.options.anchorMode!==Zn.Both&&this.options.anchorMode!==Zn.Edge||(this.topAnchor&&((KA=this.resizeTarget)===null||KA===void 0||KA.removeChild(this.topAnchor)),this.leftAnchor&&((C=this.resizeTarget)===null||C===void 0||C.removeChild(this.leftAnchor)),this.rightAnchor&&((E=this.resizeTarget)===null||E===void 0||E.removeChild(this.rightAnchor)),this.bottomAnchor&&((h=this.resizeTarget)===null||h===void 0||h.removeChild(this.bottomAnchor))),this.options.anchorMode!==Zn.Both&&this.options.anchorMode!==Zn.Corner||(this.topLeftAnchor&&((D=this.resizeTarget)===null||D===void 0||D.removeChild(this.topLeftAnchor)),this.topRightAnchor&&((N=this.resizeTarget)===null||N===void 0||N.removeChild(this.topRightAnchor)),this.bottomLeftAnchor&&((O=this.resizeTarget)===null||O===void 0||O.removeChild(this.bottomLeftAnchor)),this.bottomRightAnchor&&((Y=this.resizeTarget)===null||Y===void 0||Y.removeChild(this.bottomRightAnchor))),this.topLeftAnchor=null,this.topAnchor=null,this.topRightAnchor=null,this.leftAnchor=null,this.rightAnchor=null,this.bottomLeftAnchor=null,this.bottomAnchor=null,this.bottomRightAnchor=null,this.resizeTarget=null,this.container=null,this.currentAnchor=null,this.resizeStartLeft=0,this.resizeStartTop=0,this.originLeft=0,this.originTop=0,this.originWidth=0,this.originHeight=0},L.prototype.setVisible=function(w){var q=w?"block":"none";this.topLeftAnchor&&(this.topLeftAnchor.style.display=q),this.topAnchor&&(this.topAnchor.style.display=q),this.topRightAnchor&&(this.topRightAnchor.style.display=q),this.leftAnchor&&(this.leftAnchor.style.display=q),this.rightAnchor&&(this.rightAnchor.style.display=q),this.bottomLeftAnchor&&(this.bottomLeftAnchor.style.display=q),this.bottomAnchor&&(this.bottomAnchor.style.display=q),this.bottomRightAnchor&&(this.bottomRightAnchor.style.display=q)},L}(),cg=function(){var L=new Map;for(var w in r.TRTCVideoResolution)if(isNaN(Number(w))){var q=r.TRTCVideoResolution[w],y=w.split("_");L.set(q,{width:parseInt(y[1]),height:parseInt(y[2])})}return L}(),Rs=function(){function L(w){if(this.logPrefix="[TRTCMediaMixingDesigner]",this.mixingVideoWidth=640,this.mixingVideoHeight=360,this.canExceedContainer=!1,this.movableHandler=null,this.resizableHandler=null,this.previewScale=1,this.previewWidth=0,this.previewHeight=0,this.previewLeft=0,this.previewTop=0,this.BOUNDARY_ADSORPTION_THRESHOLD=10,this.newSelected=null,this.clickedMediaSources=[],this.oldSelectedIndex=-1,this.mousedownLeft=null,this.mousedownTop=null,this.eventButton=null,this.resizeObserver=null,this.logger=w.logger,this.container=w.view,this.container.style.position="relative",this.videoResolution=w.videoResolution,this.resMode=w.resMode,cg.has(w.videoResolution)){var q=cg.get(w.videoResolution),y=q.width,T=q.height;this.resMode===r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=y,this.mixingVideoHeight=T):(this.mixingVideoWidth=T,this.mixingVideoHeight=y)}this.updatePreviewProperty(),this.canExceedContainer=w.canExceedContainer||!1,this.eventEmitter=new Dt,this.mediaList=[],this.selectedMediaIndex=-1,this.moveAndResizeOverlay=document.createElement("div"),this.moveAndResizeOverlay.style.position="relative",this.container.appendChild(this.moveAndResizeOverlay),this.initMediaMovable(),this.initMediaResizable(),this.initContainerMouseEventHander(),this.initContainerResizeObserver()}return L.prototype.updateOptions=function(w){if(!On(w.videoResolution)||!On(w.resMode)){if(this.resMode=On(w.resMode)?this.resMode:w.resMode,w.videoResolution&&cg.has(w.videoResolution)){var q=cg.get(w.videoResolution),y=q.width,T=q.height;this.resMode===r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=y,this.mixingVideoHeight=T):(this.mixingVideoWidth=T,this.mixingVideoHeight=y)}this.updatePreviewProperty(),this.updateOverlay()}},L.prototype.addMedia=function(w){this.mediaList.unshift(w),w.isSelected&&(this.selectedMediaIndex=0,this.updateOverlay())},L.prototype.removeMedia=function(w){var q=this.mediaList.findIndex(function(y){return y.id===w.id});q!==-1&&(this.mediaList.splice(q,1),(this.selectedMediaIndex===q||w.isSelected)&&(this.selectedMediaIndex=-1,this.updateOverlay()))},L.prototype.updateMedia=function(w){var q=this.mediaList.findIndex(function(y){return y.id===w.id});q!==-1&&(this.mediaList[q]=Object.assign({},this.mediaList[q],w),w.isSelected&&(this.selectedMediaIndex=q,this.updateOverlay()))},L.prototype.on=function(w,q){var y;(y=this.eventEmitter)===null||y===void 0||y.on(w,q)},L.prototype.off=function(w,q){var y;(y=this.eventEmitter)===null||y===void 0||y.off(w,q)},L.prototype.destroy=function(){var w,q,y,T;this.resizeObserver&&(this.container&&this.resizeObserver.unobserve(this.container),this.resizeObserver.disconnect(),this.resizeObserver=null),(w=this.movableHandler)===null||w===void 0||w.destroy(),(q=this.resizableHandler)===null||q===void 0||q.destroy(),this.movableHandler=null,this.resizableHandler=null,(y=this.container)===null||y===void 0||y.removeEventListener("contextmenu",this.onRightButtonClicked,!1),document.removeEventListener("mousedown",this.onContainerMousedown,!1),this.moveAndResizeOverlay&&((T=this.container)===null||T===void 0||T.removeChild(this.moveAndResizeOverlay),this.moveAndResizeOverlay=null),this.container=null,this.eventEmitter=null,this.mediaList=[]},L.prototype.initMediaMovable=function(){this.onMove=this.onMove.bind(this),this.movableHandler=new FE(this.moveAndResizeOverlay,this.container,{canExceedContainer:this.canExceedContainer,calcPositionOnly:!1}),this.movableHandler.on("move",this.onMove)},L.prototype.initMediaResizable=function(){this.onResize=this.onResize.bind(this),this.resizableHandler=new Kg(this.moveAndResizeOverlay,this.container,{keepRatio:!0,stopPropagation:!0,canExceedContainer:this.canExceedContainer,anchorMode:0}),this.resizableHandler.on("resize",this.onResize)},L.prototype.updateCanExceedContainer=function(w){this.movableHandler&&(this.movableHandler.options.canExceedContainer=w),this.resizableHandler&&(this.resizableHandler.options.canExceedContainer=w)},L.prototype.initContainerMouseEventHander=function(){this.container?(this.onContainerMousedown=this.onContainerMousedown.bind(this),this.onContainerMousemove=this.onContainerMousemove.bind(this),this.onContainerMouseup=this.onContainerMouseup.bind(this),document.addEventListener("mousedown",this.onContainerMousedown,!1),this.onRightButtonClicked=this.onRightButtonClicked.bind(this),this.container.addEventListener("contextmenu",this.onRightButtonClicked,!1)):this.logger.error("".concat(this.logPrefix,"initContainerMouseEventHander failed, no container view"))},L.prototype.initContainerResizeObserver=function(){this.container&&(this.onPreviewAreaResize=this.onPreviewAreaResize.bind(this),this.resizeObserver=new ResizeObserver(this.onPreviewAreaResize),this.resizeObserver.observe(this.container))},L.prototype.onPreviewAreaResize=function(w){for(var q=0,y=w;q<y.length;q++)if(y[q].target===this.container){this.updatePreviewProperty(),this.updateOverlay();break}},L.prototype.updatePreviewProperty=function(){if(this.container){var w=this.container.offsetWidth,q=this.container.offsetHeight,y=w/this.mixingVideoWidth,T=q/this.mixingVideoHeight;this.previewScale=y>T?y:T,this.previewWidth=this.mixingVideoWidth*this.previewScale,this.previewHeight=this.mixingVideoHeight*this.previewScale,this.previewLeft=(w-this.previewWidth)/2,this.previewTop=(q-this.previewHeight)/2}else console.debug("".concat(this.logPrefix,"calcPreviewScale failed, no HTML element to display"))},L.prototype.updateOverlay=function(){if(this.moveAndResizeOverlay){var w=void 0,q=void 0,y=void 0,T=void 0;if(this.selectedMediaIndex>=0){var V=this.mediaList[this.selectedMediaIndex],$={left:V.rect.left*this.previewScale,top:V.rect.top*this.previewScale,right:V.rect.right*this.previewScale,bottom:V.rect.bottom*this.previewScale};w="".concat($.left+this.previewLeft,"px"),q="".concat($.top+this.previewTop,"px"),y="".concat($.right-$.left,"px"),T="".concat($.bottom-$.top,"px");var CA=V.interaction||{},NA=CA.showBorder!==!1,KA=CA.showResizeAnchors!==!1,C=CA.draggable!==!1,E=CA.canExceedCanvas!==!1;this.logger.debug("".concat(this.logPrefix,"updateOverlay: interaction config -"),{showBorder:NA,showResizeAnchors:KA,draggable:C,canExceedCanvas:E}),this.updateCanExceedContainer(E),this.moveAndResizeOverlay.style.display="block",this.moveAndResizeOverlay.style.border=NA?"1px solid #3D7EFD":"none",this.resizableHandler&&this.resizableHandler.setVisible(KA),this.movableHandler&&(this.logger.debug("".concat(this.logPrefix,"updateOverlay: setting movableHandler.setEnabled(").concat(C,")")),this.movableHandler.setEnabled(C))}else w="".concat(this.previewLeft,"px"),q="".concat(this.previewTop,"px"),y="0px",T="0px",this.moveAndResizeOverlay.style.display="none";this.moveAndResizeOverlay.style.left=w,this.moveAndResizeOverlay.style.top=q,this.moveAndResizeOverlay.style.width=y,this.moveAndResizeOverlay.style.height=T}},L.prototype.onMove=function(w,q){var y;console.debug("".concat(this.logPrefix,"onMove: ").concat(w," ").concat(q));var T=this.mediaList[this.selectedMediaIndex];if(T&&this.moveAndResizeOverlay){var V={left:w-this.previewLeft,top:q-this.previewTop,right:w-this.previewLeft+this.moveAndResizeOverlay.offsetWidth,bottom:q-this.previewTop+this.moveAndResizeOverlay.offsetHeight};this.doAdsorption(V);var $={left:Math.round(V.left/this.previewScale),top:Math.round(V.top/this.previewScale),right:Math.round(V.right/this.previewScale),bottom:Math.round(V.bottom/this.previewScale)};(y=this.eventEmitter)===null||y===void 0||y.emit("onSourceMoved",z({},T),$)}else console.debug("".concat(this.logPrefix,"onMove no selected media"))},L.prototype.doAdsorption=function(w){var q=this.BOUNDARY_ADSORPTION_THRESHOLD;Math.abs(w.left)<q&&(w.right=w.right-w.left,w.left=0),Math.abs(w.top)<q&&(w.bottom=w.bottom-w.top,w.top=0),Math.abs(w.right-this.previewWidth)<q&&(w.left=w.left+this.previewWidth-w.right,w.right=this.previewWidth),Math.abs(w.bottom-this.previewHeight)<q&&(w.top=w.top+this.previewHeight-w.bottom,w.bottom=this.previewHeight)},L.prototype.onResize=function(w,q,y,T){var V;console.debug("".concat(this.logPrefix,"onResize: ").concat(w," ").concat(q," ").concat(y," ").concat(T));var $=this.mediaList[this.selectedMediaIndex];if($){var CA=$.interaction||{};if(!ho(CA.showResizeAnchors)&&!CA.showResizeAnchors)return;var NA={left:w-this.previewLeft,top:q-this.previewTop,right:w-this.previewLeft+y,bottom:q-this.previewTop+T},KA={left:Math.round(NA.left/this.previewScale),top:Math.round(NA.top/this.previewScale),right:Math.round(NA.right/this.previewScale),bottom:Math.round(NA.bottom/this.previewScale)};(V=this.eventEmitter)===null||V===void 0||V.emit("onSourceResized",z({},$),KA)}else console.debug("".concat(this.logPrefix,"onResize no selected media"))},L.prototype.getMaxZOrderMedia=function(w){var q,y,T,V,$,CA;if(w.length===0)return null;for(var NA=w[0],KA=(T=(y=(q=NA.origin)===null||q===void 0?void 0:q.layout)===null||y===void 0?void 0:y.zOrder)!==null&&T!==void 0?T:-1/0,C=1;C<w.length;C++){var E=(CA=($=(V=w[C].origin)===null||V===void 0?void 0:V.layout)===null||$===void 0?void 0:$.zOrder)!==null&&CA!==void 0?CA:-1/0;E>KA&&(KA=E,NA=w[C])}return NA},L.prototype.emitOnSelect=function(w){var q;if(w){for(var y=this.mediaList.length,T=0;T<y;T++)if(w.id===this.mediaList[T].id){this.selectedMediaIndex=T;break}}else this.selectedMediaIndex=-1;this.updateOverlay(),(q=this.eventEmitter)===null||q===void 0||q.emit("onSourceSelected",w?z({},w):null)},L.prototype.onContainerMousedown=function(w){var q;console.debug("".concat(this.logPrefix,"onContainerMousedown event:"),w,w.target,w.currentTarget);var y=w.target;if(this.eventButton=w.button,y&&this.container){if(this.container.contains(y)){console.debug("".concat(this.logPrefix,"onContainerMousedown mix video image clicked"));var T=this.container.getBoundingClientRect(),V=w.clientX-T.x-this.previewLeft,$=w.clientY-T.y-this.previewTop,CA=V/this.previewScale,NA=$/this.previewScale;console.debug("".concat(this.logPrefix,"onContainerMousedown click point coordinates in mix video:"),V,$,CA,NA);for(var KA=0;KA<this.mediaList.length;KA++){var C=this.mediaList[KA];C.rect&&CA>=C.rect.left&&CA<=C.rect.right&&NA>=C.rect.top&&NA<=C.rect.bottom&&((q=C.interaction)===null||q===void 0?void 0:q.selectable)!==!1&&(this.clickedMediaSources.push(C),this.mediaList[this.selectedMediaIndex]&&C.id===this.mediaList[this.selectedMediaIndex].id&&(this.oldSelectedIndex=this.clickedMediaSources.length-1))}this.mousedownLeft=w.screenX,this.mousedownTop=w.screenY}this.clickedMediaSources.length>0?this.eventButton===2&&this.oldSelectedIndex===-1?(this.newSelected=this.getMaxZOrderMedia(this.clickedMediaSources),console.debug("".concat(this.logPrefix,"onContainerMousedown find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected),this.clickedMediaSources.splice(0,this.clickedMediaSources.length)):(document.addEventListener("mousemove",this.onContainerMousemove,!1),document.addEventListener("mouseup",this.onContainerMouseup,!1)):(this.newSelected=null,console.debug("".concat(this.logPrefix,"onContainerMousedown find clicked media source:"),this.newSelected),this.emitOnSelect(null),this.mousedownLeft=null,this.mousedownTop=null,this.eventButton=null)}},L.prototype.onContainerMousemove=function(w){var q;if(w.target&&this.container&&this.mousedownLeft!==null&&this.mousedownTop!==null){var y=w.screenX-this.mousedownLeft,T=w.screenY-this.mousedownTop;(Math.abs(y)>=5||Math.abs(T)>=5)&&(this.oldSelectedIndex>=0?(console.debug("".concat(this.logPrefix,"onContainerMousemove move or resize old selected media source, clear data:"),this.clickedMediaSources,this.oldSelectedIndex),this.clickedMediaSources.splice(0,this.clickedMediaSources.length),this.oldSelectedIndex=-1):this.clickedMediaSources.length>0&&(this.newSelected=this.getMaxZOrderMedia(this.clickedMediaSources),console.debug("".concat(this.logPrefix,"onContainerMousemove find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected),this.clickedMediaSources.splice(0,this.clickedMediaSources.length),(q=this.moveAndResizeOverlay)===null||q===void 0||q.dispatchEvent(new MouseEvent("mousedown",{screenX:this.mousedownLeft,screenY:this.mousedownTop,button:this.eventButton}))))}},L.prototype.onContainerMouseup=function(w){if(document.removeEventListener("mousemove",this.onContainerMousemove,!1),document.removeEventListener("mouseup",this.onContainerMouseup,!1),console.debug("".concat(this.logPrefix,"onContainerMouseup data:"),this.clickedMediaSources,this.oldSelectedIndex),w.target&&this.container){if(this.clickedMediaSources.length>0)if(this.oldSelectedIndex>=0){if(this.eventButton===0){var q=(this.oldSelectedIndex+1)%this.clickedMediaSources.length;this.newSelected=this.clickedMediaSources[q],console.debug("".concat(this.logPrefix,"onContainerMouseup find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected)}}else this.newSelected=this.getMaxZOrderMedia(this.clickedMediaSources),console.debug("".concat(this.logPrefix,"onContainerMouseup find clicked media source:"),this.newSelected),this.emitOnSelect(this.newSelected)}else console.debug("".concat(this.logPrefix,"onContainerMouseup click outside of mixing video image")),this.emitOnSelect(null);this.mousedownLeft=null,this.mousedownTop=null,this.clickedMediaSources.splice(0,this.clickedMediaSources.length),this.oldSelectedIndex=-1,this.newSelected=null,this.eventButton=null},L.prototype.onRightButtonClicked=function(w){var q;console.debug("".concat(this.logPrefix,"onRightButtonClicked:"),w.target,w.currentTarget,w.buttons),w.preventDefault(),(q=this.eventEmitter)===null||q===void 0||q.emit("onRightButtonClicked",z({},this.mediaList[this.selectedMediaIndex]))},L}(),Hc=function(){function L(w){if(this.logPrefix="[TRTCMediaMixingManager]",this.eventEmitter=new Dt,this.publishParams={videoEncoderParams:{videoResolution:r.TRTCVideoResolution.TRTCVideoResolution_1280_720,resMode:r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape,videoFps:15,videoBitrate:1800},canvasColor:0},this.mediaMixingDesigner=null,this.sourceList=[],this.trtcSourceMap=new Map,this.mixVideoTrack=null,this.selectedSource=null,this.view=null,this.screensWithSystemAudio=new Set,L.mediaMixingManager)return L.mediaMixingManager;L.mediaMixingManager=this,this.logger=w.logger,this.trtc=w.trtc,this.trtcCloud=w.trtcCloud,this.onSourceSelected=this.onSourceSelected.bind(this),this.onSourceMoved=this.onSourceMoved.bind(this),this.onSourceResized=this.onSourceResized.bind(this),this.onRightButtonClicked=this.onRightButtonClicked.bind(this)}return L.prototype.destroy=function(){return eA(this,void 0,Promise,function(){var w,q,y,T,V;return X(this,function($){switch($.label){case 0:this.view=null,$.label=1;case 1:return $.trys.push([1,3,,4]),[4,this.trtc.stopPlugin("VideoMixer")];case 2:return $.sent(),[3,4];case 3:return w=$.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin error:"),w),[3,4];case 4:if(!(this.screensWithSystemAudio.size>0))return[3,12];$.label=5;case 5:$.trys.push([5,10,,11]),q=0,y=Array.from(this.screensWithSystemAudio),$.label=6;case 6:return q<y.length?(T=y[q],[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack_".concat(T)})]):[3,9];case 7:$.sent(),$.label=8;case 8:return q++,[3,6];case 9:return[3,11];case 10:return V=$.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin AudioMixer error:"),V),[3,11];case 11:this.screensWithSystemAudio.clear(),$.label=12;case 12:return this.destroyDesigner(),this.eventEmitter=null,L.mediaMixingManager=null,[2]}})})},L.prototype.bindPreviewArea=function(w){return eA(this,void 0,Promise,function(){var q,y,T,V,$=this;return X(this,function(CA){switch(CA.label){case 0:return this.logger.log("".concat(this.logPrefix," bindPreviewArea:"),w),this.view=w,q=this._getCanvasSize(this.publishParams.videoEncoderParams.videoResolution,this.publishParams.videoEncoderParams.resMode),y=q.width,T=q.height,[4,this.trtc.startPlugin("VideoMixer",{view:w,canvasInfo:{width:y,height:T,canvasColor:String(this.publishParams.canvasColor)},onScreenShareStop:function(NA){var KA,C=$.sourceList.find(function(E){return E.id===NA});$.removeMediaSource(C),(KA=$.eventEmitter)===null||KA===void 0||KA.emit("onSourceDisconnected",C||null)}})];case 1:return V=CA.sent(),console.log("startPlugin result",V,V.track),this.mixVideoTrack=V.track,this.createDesigner(),[2]}})})},L.prototype._getTRTCSourceKey=function(w){var q;return((q={})[r.TRTCMediaSourceType.kCamera]="camera",q[r.TRTCMediaSourceType.kScreen]="screen",q[r.TRTCMediaSourceType.kText]="text",q[r.TRTCMediaSourceType.kVideo]="video",q[r.TRTCMediaSourceType.kImage]="image",q)[w.type]},L.prototype._getTRTCFillMode=function(w){var q;return((q={})[r.TRTCVideoFillMode.TRTCVideoFillMode_Fill]="cover",q[r.TRTCVideoFillMode.TRTCVideoFillMode_Fit]="contain",q)[w]},L.prototype._getTRTCVideoProfile=function(w,q){var y,T=((y={})[r.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},y[r.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},y[r.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},y[r.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},y[r.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},y);return{width:T[w].width,height:T[w].height,frameRate:q,bitrate:1e3}},L.prototype._getTRTCLayout=function(w){var q,y,T,V,$,CA,NA,KA,C,E,h,D,N,O,Y,j,IA={zIndex:((T=w.layout)===null||T===void 0?void 0:T.zOrder)||0};if(ho((V=w.layout)===null||V===void 0?void 0:V.rect)||(IA.x=($=w.layout)===null||$===void 0?void 0:$.rect.left,IA.y=(CA=w.layout)===null||CA===void 0?void 0:CA.rect.top,IA.width=((NA=w.layout)===null||NA===void 0?void 0:NA.rect.right)-((KA=w.layout)===null||KA===void 0?void 0:KA.rect.left),IA.height=((C=w.layout)===null||C===void 0?void 0:C.rect.bottom)-((E=w.layout)===null||E===void 0?void 0:E.rect.top)),ho((h=w.layout)===null||h===void 0?void 0:h.fillMode)||(IA.fillMode=this._getTRTCFillMode((D=w.layout)===null||D===void 0?void 0:D.fillMode)),!ho((N=w.layout)===null||N===void 0?void 0:N.mirror)){var BA=((q={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!0,q[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,q[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,q);IA.mirror=BA[(O=w.layout)===null||O===void 0?void 0:O.mirror]}if(!ho((Y=w.layout)===null||Y===void 0?void 0:Y.rotation)){var mA=((y={})[r.TRTCVideoRotation.TRTCVideoRotation0]=0,y[r.TRTCVideoRotation.TRTCVideoRotation90]=90,y[r.TRTCVideoRotation.TRTCVideoRotation180]=180,y[r.TRTCVideoRotation.TRTCVideoRotation270]=270,y);IA.rotation=mA[(j=w.layout)===null||j===void 0?void 0:j.rotation]}return IA},L.prototype._getTRTCSourceItem=function(w){var q,y,T,V,$,CA,NA,KA,C,E;switch(w.type){case r.TRTCMediaSourceType.kScreen:return E=r.TRTCVideoResolution.TRTCVideoResolution_1920_1080,w?.useInternalTrack?{id:w.id,layout:this._getTRTCLayout(w),useInternalTrack:!0}:{id:w.id,profile:this._getTRTCVideoProfile(((q=w.screen)===null||q===void 0?void 0:q.resolution)||E,((y=w.screen)===null||y===void 0?void 0:y.fps)||15),layout:this._getTRTCLayout(w),systemAudio:(T=w.screen)===null||T===void 0?void 0:T.systemAudio};case r.TRTCMediaSourceType.kCamera:return E=r.TRTCVideoResolution.TRTCVideoResolution_1280_720,w?.useInternalTrack?{id:w.id,layout:this._getTRTCLayout(w),useInternalTrack:!0}:{id:w.id,cameraId:(V=w.camera)===null||V===void 0?void 0:V.cameraId,profile:this._getTRTCVideoProfile((($=w.camera)===null||$===void 0?void 0:$.resolution)||E,((CA=w.camera)===null||CA===void 0?void 0:CA.fps)||15),videoTrack:(NA=w.camera)===null||NA===void 0?void 0:NA.videoTrack,layout:this._getTRTCLayout(w)};case r.TRTCMediaSourceType.kText:return z(z({id:w.id},w.text||{}),{layout:this._getTRTCLayout(w)});case r.TRTCMediaSourceType.kImage:return{id:w.id,url:(KA=w.image)===null||KA===void 0?void 0:KA.url,layout:this._getTRTCLayout(w)};case r.TRTCMediaSourceType.kVideo:return{id:w.id,url:(C=w.video)===null||C===void 0?void 0:C.url,layout:this._getTRTCLayout(w)};default:return null}},L.prototype._getCanvasSize=function(w,q){var y,T,V=((y={})[r.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},y[r.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},y[r.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},y[r.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},y[r.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},y)[w],$=V.width,CA=V.height;return q===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait&&($=(T=[CA,$])[0],CA=T[1]),{width:$,height:CA}},L.prototype.addMediaSource=function(w){var q;return eA(this,void 0,Promise,function(){var y,T,V,$,CA,NA,KA,C,E;return X(this,function(h){switch(h.label){case 0:if(this.findMediaSourceIndex(w)!==-1)throw new Error("Media source already existed");if(y=Tr(w),T=this._getTRTCSourceKey(y),!(V=this._getTRTCSourceItem(y))||!T)throw new Error("Invalid media source");return($=Tr(this.trtcSourceMap.get(T))||[]).push(V),[4,this.trtc.updatePlugin("VideoMixer",(E={},E[T]=$,E))];case 1:return CA=h.sent(),NA=CA.result,KA=CA.systemAudioTrackList,w.type===r.TRTCMediaSourceType.kScreen&&KA?.[w.id]?(this.screensWithSystemAudio.add(w.id),C=KA?.[w.id],this.logger.log("".concat(this.logPrefix," startPlugin AudioMixer, track ID:"),C.id),[4,this.trtc.startPlugin("AudioMixer",{id:"systemAudioTrack_".concat(w.id),track:C})]):[3,3];case 2:h.sent(),h.label=3;case 3:if(NA.failedDetails.find(function(D){return D.id===w.id}))throw new Error("Failed to add media source");return y.isSelected&&(this.unselectMediaSource(this.selectedSource),this.selectedSource=w),this.trtcSourceMap.set(T,$),(q=this.mediaMixingDesigner)===null||q===void 0||q.addMedia({id:y.id,rect:this._getDesignerMediaRect(w),isSelected:!!ho(y.isSelected)||y.isSelected,origin:y,interaction:y.interaction}),y.isSelected&&(this.selectedSource=y),this.sourceList.push(y),[2]}})})},L.prototype.removeMediaSource=function(w){var q,y,T;return eA(this,void 0,Promise,function(){var V,$,CA,NA,KA,C;return X(this,function(E){switch(E.label){case 0:if(this.logger.log("".concat(this.logPrefix,"removeMediaSource:"),w),(V=this.findMediaSourceIndex(w))===-1)throw new Error("Not existing media source to remove");return $=this._getTRTCSourceKey(w),CA=Tr(this.trtcSourceMap.get($))||[],NA=CA.findIndex(function(h){return h.id===w.id}),CA.splice(NA,1),[4,this.trtc.updatePlugin("VideoMixer",(C={},C[$]=CA,C))];case 1:return KA=E.sent().result,w.type===r.TRTCMediaSourceType.kScreen&&this.screensWithSystemAudio.has(w.id)?(this.screensWithSystemAudio.delete(w.id),[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack_".concat(w.id)})]):[3,3];case 2:E.sent(),E.label=3;case 3:if(KA.failedDetails.find(function(h){return h.id===w.id}))throw new Error("Failed to remove media source");return(q=this.mediaMixingDesigner)===null||q===void 0||q.removeMedia({id:w.id,rect:(y=w.layout)===null||y===void 0?void 0:y.rect,isSelected:w.isSelected||!1,origin:Tr(w)}),((T=this.selectedSource)===null||T===void 0?void 0:T.id)===w.id&&(this.selectedSource=null),this.trtcSourceMap.set($,CA),this.sourceList.splice(V,1),[2]}})})},L.prototype._getDesignerMediaRect=function(w){var q,y,T=((q=w.layout)===null||q===void 0?void 0:q.rect)||{left:0,top:0,right:0,bottom:0},V=T.left,$=T.top,CA=T.right,NA=T.bottom,KA=CA-V,C=NA-$;switch((y=w.layout)===null||y===void 0?void 0:y.rotation){case r.TRTCVideoRotation.TRTCVideoRotation0:case r.TRTCVideoRotation.TRTCVideoRotation180:return{left:V,top:$,right:CA,bottom:NA};case r.TRTCVideoRotation.TRTCVideoRotation90:case r.TRTCVideoRotation.TRTCVideoRotation270:return{left:V,top:$,right:V+C,bottom:$+KA};default:return{left:V,top:$,right:CA,bottom:NA}}},L.prototype._getPluginMediaRect=function(w){var q,y,T=((q=w.layout)===null||q===void 0?void 0:q.rect)||{left:0,top:0,right:0,bottom:0},V=T.left,$=T.top,CA=T.right,NA=T.bottom;switch((y=w.layout)===null||y===void 0?void 0:y.rotation){case r.TRTCVideoRotation.TRTCVideoRotation0:case r.TRTCVideoRotation.TRTCVideoRotation180:return{left:V,top:$,right:CA,bottom:NA};case r.TRTCVideoRotation.TRTCVideoRotation90:case r.TRTCVideoRotation.TRTCVideoRotation270:return{left:V,top:$,right:V+(NA-$),bottom:$+(CA-V)};default:return{left:V,top:$,right:CA,bottom:NA}}},L.prototype.updateMediaSource=function(w){var q,y;return eA(this,void 0,Promise,function(){var T,V,$,CA,NA,KA,C,E;return X(this,function(h){switch(h.label){case 0:if(this.logger.log("".concat(this.logPrefix,"updateMediaSource:"),w),(T=this.findMediaSourceIndex(w))===-1)throw new Error("Not existing media source to update");return V=z(z({},this.sourceList[T]),Tr(w)),w.isSelected?(this.unselectMediaSource(this.selectedSource),this.selectedSource=w):((q=this.selectedSource)===null||q===void 0?void 0:q.id)===w.id&&(this.selectedSource=null),$=this._getTRTCSourceKey(V),CA=this._getTRTCSourceItem(V),NA=Tr(this.trtcSourceMap.get($))||[],KA=NA.findIndex(function(D){return D.id===w.id}),NA[KA]=CA,[4,this.trtc.updatePlugin("VideoMixer",(E={},E[$]=NA,E))];case 1:if(h.sent().result.failedDetails.find(function(D){return D.id===w.id}))throw new Error("Failed to update media source");return C={id:w.id,rect:this._getDesignerMediaRect(w),isSelected:w.isSelected||!1,origin:Tr(w),interaction:V.interaction},this.logger.log("".concat(this.logPrefix,"updateParams:"),JSON.stringify(C)),(y=this.mediaMixingDesigner)===null||y===void 0||y.updateMedia(C),this.trtcSourceMap.set($,NA),this.sourceList[T]=V,[2]}})})},L.prototype.startPublish=function(){return eA(this,void 0,Promise,function(){return X(this,function(w){switch(w.label){case 0:return this.logger.log("".concat(this.logPrefix," startPublish")),[4,this.trtcCloud._startPublishVideoTrack({videoTrack:this.mixVideoTrack})];case 1:return w.sent(),[2]}})})},L.prototype.stopPublish=function(){return eA(this,void 0,Promise,function(){return X(this,function(w){switch(w.label){case 0:return this.logger.log("".concat(this.logPrefix," stopPublish")),[4,this.trtcCloud._stopPublishVideoTrack()];case 1:return w.sent(),[2]}})})},L.prototype.updatePublishParams=function(w){var q,y,T,V,$;return eA(this,void 0,Promise,function(){var CA,NA,KA,C,E,h,D,N,O,Y,j,IA,BA,mA,_A,xA,Qe,Re,Se,At,at,jt,Bi,ri;return X(this,function(St){switch(St.label){case 0:this.logger.log("".concat(this.logPrefix,"updatePublishParams:"),w),CA=this.publishParams,this.publishParams=w,NA=this._getCanvasSize(w.videoEncoderParams.videoResolution,w.videoEncoderParams.resMode),KA=NA.width,C=NA.height,St.label=1;case 1:return St.trys.push([1,3,,4]),[4,this.trtc.updatePlugin("VideoMixer",{canvasInfo:{width:KA,height:C,canvasColor:String(w.canvasColor)}})];case 2:return St.sent(),[3,4];case 3:if((E=St.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw E;return[3,4];case 4:(T=this.mediaMixingDesigner)===null||T===void 0||T.updateOptions({videoResolution:this.publishParams.videoEncoderParams.videoResolution,resMode:this.publishParams.videoEncoderParams.resMode}),St.label=5;case 5:St.trys.push([5,11,12,17]),h=HA(this.sourceList),St.label=6;case 6:return[4,h.next()];case 7:return(D=St.sent()).done?[3,10]:(N=D.value).layout?(O=N.layout.rect||{left:0,top:0,right:0,bottom:0},Y=O.left,j=O.top,IA=O.right,BA=O.bottom,mA=this._getCanvasSize(CA.videoEncoderParams.videoResolution),_A=mA.width,xA=mA.height,Qe=this._getCanvasSize(w.videoEncoderParams.videoResolution),Re=Qe.width,Se=Qe.height,At=Y*Re/_A,at=j*Se/xA,jt=IA*Re/_A,Bi=BA*Se/xA,N.layout.rect={left:At,top:at,right:jt,bottom:Bi},[4,this.updateMediaSource(N)]):[3,9];case 8:St.sent(),(V=this.eventEmitter)===null||V===void 0||V.emit("onSourceResized",N,($=N.layout)===null||$===void 0?void 0:$.rect),St.label=9;case 9:return[3,6];case 10:return[3,17];case 11:return ri=St.sent(),q={error:ri},[3,17];case 12:return St.trys.push([12,,15,16]),D&&!D.done&&(y=h.return)?[4,y.call(h)]:[3,14];case 13:St.sent(),St.label=14;case 14:return[3,16];case 15:if(q)throw q.error;return[7];case 16:return[7];case 17:return[4,this.trtcCloud.setVideoEncoderParam(w.videoEncoderParams)];case 18:return St.sent(),[2]}})})},L.prototype.on=function(w,q){var y;(y=this.eventEmitter)===null||y===void 0||y.on(w,q)},L.prototype.off=function(w,q){var y;(y=this.eventEmitter)===null||y===void 0||y.off(w,q)},L.prototype.onVisibilityChange=function(){this.logger.log("".concat(this.logPrefix,"onVisibilityChange document.hidden:").concat(document.hidden)),document.hidden?this.bindPreviewArea(null):this.bindPreviewArea(this.view)},L.prototype.createDesigner=function(){var w,q;this.view&&(this.mediaMixingDesigner=new Rs({view:this.view,videoResolution:((w=this.publishParams)===null||w===void 0?void 0:w.videoEncoderParams.videoResolution)||r.TRTCVideoResolution.TRTCVideoResolution_1920_1080,resMode:((q=this.publishParams)===null||q===void 0?void 0:q.videoEncoderParams.resMode)||r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape,canExceedContainer:!0,logger:this.logger}),this.listenDesignerEvent())},L.prototype.destroyDesigner=function(){var w;this.mediaMixingDesigner&&(this.unlistenDesignerEvent(),(w=this.mediaMixingDesigner)===null||w===void 0||w.destroy(),this.mediaMixingDesigner=null)},L.prototype.listenDesignerEvent=function(){var w,q,y,T,V;(w=this.mediaMixingDesigner)===null||w===void 0||w.on("onError",this.onError),(q=this.mediaMixingDesigner)===null||q===void 0||q.on("onSourceSelected",this.onSourceSelected),(y=this.mediaMixingDesigner)===null||y===void 0||y.on("onSourceMoved",this.onSourceMoved),(T=this.mediaMixingDesigner)===null||T===void 0||T.on("onSourceResized",this.onSourceResized),(V=this.mediaMixingDesigner)===null||V===void 0||V.on("onRightButtonClicked",this.onRightButtonClicked)},L.prototype.unlistenDesignerEvent=function(){var w,q,y,T,V;(w=this.mediaMixingDesigner)===null||w===void 0||w.off("onError",this.onError),(q=this.mediaMixingDesigner)===null||q===void 0||q.off("onSourceSelected",this.onSourceSelected),(y=this.mediaMixingDesigner)===null||y===void 0||y.off("onSourceMoved",this.onSourceMoved),(T=this.mediaMixingDesigner)===null||T===void 0||T.off("onSourceResized",this.onSourceResized),(V=this.mediaMixingDesigner)===null||V===void 0||V.off("onRightButtonClicked",this.onRightButtonClicked)},L.prototype.onError=function(w,q){this.logger.log("".concat(this.logPrefix,"onError:"),w,q)},L.prototype.onSourceSelected=function(w){var q;return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this.logger.debug("".concat(this.logPrefix,"onSourceSelected: "),w,this.selectedSource),w&&this.selectedSource&&w.origin.id===this.selectedSource.id?[2]:w?.origin?(this.updateMediaSource(z(z({},w.origin),{isSelected:!0})),[3,3]):[3,1];case 1:return this.selectedSource?[4,this.updateMediaSource(z(z({},this.selectedSource),{isSelected:!1}))]:[3,3];case 2:y.sent(),this.selectedSource=null,y.label=3;case 3:return(q=this.eventEmitter)===null||q===void 0||q.emit("onSourceSelected",w?w.origin:null),[2]}})})},L.prototype.onSourceMoved=function(w,q){var y,T;if(this.logger.debug("".concat(this.logPrefix,"onSourceMoved:"),w,q),w?.origin){var V=z(z({},w.origin),{layout:z(z({},w.origin.layout),{rect:q})});this.updateMediaSource(An(V,{layout:{rect:this._getPluginMediaRect(V)}})),((y=this.selectedSource)===null||y===void 0?void 0:y.id)===w.origin.id&&(this.selectedSource=this.sourceList.find(function($){return $.id===w.origin.id})),(T=this.eventEmitter)===null||T===void 0||T.emit("onSourceMoved",w.origin,this._getPluginMediaRect(V))}},L.prototype.onSourceResized=function(w,q){var y,T;if(this.logger.debug("".concat(this.logPrefix,"onSourceResized:"),w,q),w?.origin){var V=z(z({},w.origin),{layout:z(z({},w.origin.layout),{rect:q})});this.updateMediaSource(An(V,{layout:{rect:this._getPluginMediaRect(V)}})),((y=this.selectedSource)===null||y===void 0?void 0:y.id)===w.origin.id&&(this.selectedSource=this.sourceList.find(function($){return $.id===w.origin.id}))}(T=this.eventEmitter)===null||T===void 0||T.emit("onSourceResized",w.origin,q)},L.prototype.onRightButtonClicked=function(w){var q;this.logger.debug("".concat(this.logPrefix,"onRightButtonClicked:"),w),(q=this.eventEmitter)===null||q===void 0||q.emit("onRightButtonClicked",w.origin)},L.prototype.isSameMediaSource=function(w,q){return w.id===q.id},L.prototype.isMediaSourceExisted=function(w){var q=this;return this.sourceList.some(function(y){return q.isSameMediaSource(y,w)})},L.prototype.findMediaSourceIndex=function(w){return this.sourceList.findIndex(function(q){return q.id===w.id})},L.prototype.unselectMediaSource=function(w){var q,y;return eA(this,void 0,Promise,function(){var T;return X(this,function(V){return w?((T=this.findMediaSourceIndex(w))!==-1&&(this.sourceList[T].isSelected=!1),(q=this.mediaMixingDesigner)===null||q===void 0||q.updateMedia({id:w.id,rect:(y=w.layout)===null||y===void 0?void 0:y.rect,isSelected:!1,origin:Tr(w)}),[2]):[2]})})},L.mediaMixingManager=null,L}(),Ms=function(){function L(){this.isRunning=!1,this.queue=[]}return Object.defineProperty(L.prototype,"length",{get:function(){return this.queue.length},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"lastQueueItem",{get:function(){return this.length===0?null:this.queue[this.length-1]},enumerable:!1,configurable:!0}),L.prototype.push=function(w,q,y,T){var V,$;q===void 0&&(q=!1),y===void 0&&(y=!1);var CA=z(z({},w),{functionName:T}),NA=new Promise(function(C,E){CA.resolve=C,CA.reject=E});if(CA.promise=NA,q)this.length<=1?this.queue.push(CA):($=(V=this.lastQueueItem)===null||V===void 0?void 0:V.promise)===null||$===void 0||$.then(CA.resolve,CA.reject);else{if(y&&T&&this.queue.length>1){var KA=[];this.queue=this.queue.filter(function(C,E){return E===0||C.functionName!==T||(KA.push(C),!1)}),KA.forEach(function(C){C.reject(new Error("aborted by newer task"))})}this.queue.push(CA)}return this.isRunning||this.callNext(),NA},L.prototype.shift=function(){return this.queue.shift()},L.prototype.callNext=function(){var w=this;if(!this.isRunning&&this.length!==0){var q=this.queue[0],y=q.fn,T=q.args,V=q.context,$=q.resolve,CA=q.reject;this.isRunning=!0,y.apply(V,T).then($,CA).finally(function(){w.isRunning=!1,w.shift(),w.callNext()})}},L}(),Vc=new WeakMap,Pl=new WeakMap,ma=new WeakMap;function tc(L,w){return w===void 0&&(w={}),function(q,y,T){var V=T.value,$=w.deduplicate,CA=$!==void 0&&$;return T.value=function(){for(var NA=[],KA=0;KA<arguments.length;KA++)NA[KA]=arguments[KA];var C=L.apply(void 0,NA),E=Array.isArray(C)?C:[C],h=ma.get(this)||new Map;ma.set(this,h);for(var D=null,N=0,O=E;N<O.length;N++){var Y=O[N],j=h.get(Y);if(j){D=j;break}}for(var IA=D||new Ms,BA=0,mA=E;BA<mA.length;BA++)Y=mA[BA],h.set(Y,IA);var _A=CA?y:void 0;return IA.push({fn:V,args:NA,context:this},!1,CA,_A)},T}}var bB=function(){function L(w){var q=this;this.logPrefix="[AITranscriberManager]",this.listeners=new Set,this.isPaused=!1,this.isMessageListenerRegistered=!1,this.handleMessageEvent=function(y){var T=q.createMessageFromEvent(y);q._notifyListeners("onReceiveTranscriberMessage",y.roomId,T)},this.handleStateEvent=function(y){var T=y.transcriberRobotId,V=y.state,$=y.roomId,CA=y.sourceLanguage,NA=CA===void 0?"":CA,KA=y.error,C=y.errorMessage,E=C===void 0?"":C;$&&T&&(V==="started"?q._notifyListeners("onRealtimeTranscriberStarted",$,T,NA):V==="stopped"&&q._notifyListeners("onRealtimeTranscriberStopped",$,T,0),KA!=null&&q._notifyListeners("onRealtimeTranscriberError",$,T,KA,E))},this.logger=w.logger,this.trtc=w.trtc,this.registerStateListener()}return L.prototype.registerStateListener=function(){this.trtc.on(v.default.EVENT.REALTIME_TRANSCRIBER_STATE_CHANGED,this.handleStateEvent)},L.prototype.createMessageFromEvent=function(w){var q,y,T,V;return{segmentId:(q=w?.segmentId)!==null&&q!==void 0?q:"",speakerUserId:(y=w?.speakerUserId)!==null&&y!==void 0?y:"",sourceText:(T=w?.sourceText)!==null&&T!==void 0?T:"",translationTexts:w?.translationTexts?new Map(Object.entries(w.translationTexts)):void 0,timestamp:(V=w?.timestamp)!==null&&V!==void 0?V:Date.now(),isCompleted:!!w?.isCompleted}},L.prototype.updateMessageSubscription=function(){var w=!this.isPaused&&this.listeners.size>0;if(w&&!this.isMessageListenerRegistered)return this.trtc.on(v.default.EVENT.REALTIME_TRANSCRIBER_MESSAGE,this.handleMessageEvent),void(this.isMessageListenerRegistered=!0);!w&&this.isMessageListenerRegistered&&(this.trtc.off(v.default.EVENT.REALTIME_TRANSCRIBER_MESSAGE,this.handleMessageEvent),this.isMessageListenerRegistered=!1)},L.prototype.log=function(){for(var w,q,y=[],T=0;T<arguments.length;T++)y[T]=arguments[T];(q=(w=this.logger)===null||w===void 0?void 0:w.log)===null||q===void 0||q.call.apply(q,wA([w,this.logPrefix],y,!1))},L.prototype.logError=function(){for(var w,q,y=[],T=0;T<arguments.length;T++)y[T]=arguments[T];(q=(w=this.logger)===null||w===void 0?void 0:w.error)===null||q===void 0||q.call.apply(q,wA([w,this.logPrefix],y,!1))},L.prototype._notifyListeners=function(w){for(var q=this,y=[],T=1;T<arguments.length;T++)y[T-1]=arguments[T];this.listeners.forEach(function(V){var $=V[w];if(typeof $=="function")try{$.apply(V,y)}catch(CA){q.logError("Error notifying listener:",CA)}})},L.prototype.startRealtimeTranscriber=function(w){return eA(this,void 0,Promise,function(){var q,y,T;return X(this,function(V){switch(V.label){case 0:if(this.log("startRealtimeTranscriber:",w),!w?.sourceLanguage)throw new Error("sourceLanguage is required");q={sourceLanguage:w.sourceLanguage},w.transcriberRobotId&&(q.transcriberRobotId=w.transcriberRobotId),w.userIdsToTranscribe!==void 0&&(q.userIdsToTranscribe=w.userIdsToTranscribe),w.translationLanguages!==void 0&&(q.translationLanguages=w.translationLanguages),V.label=1;case 1:return V.trys.push([1,3,,4]),[4,this.trtc.startPlugin("RealtimeTranscriber",q)];case 2:return y=V.sent(),this.log("startRealtimeTranscriber success, robotId:",y),[2,y];case 3:throw T=V.sent(),this.logError("startRealtimeTranscriber error:",T),T;case 4:return[2]}})})},L.prototype.stopRealtimeTranscriber=function(w){return eA(this,void 0,Promise,function(){var q;return X(this,function(y){switch(y.label){case 0:if(this.log("stopRealtimeTranscriber:",w),!w)throw new Error("transcriberRobotId is required");y.label=1;case 1:return y.trys.push([1,3,,4]),[4,this.trtc.stopPlugin("RealtimeTranscriber",{transcriberRobotId:w})];case 2:return y.sent(),this.log("stopRealtimeTranscriber success"),[3,4];case 3:throw q=y.sent(),this.logError("stopRealtimeTranscriber error:",q),q;case 4:return[2]}})})},L.prototype.pauseReceivingMessage=function(){this.isPaused||(this.log("pauseReceivingMessage"),this.isPaused=!0,this.updateMessageSubscription())},L.prototype.resumeReceivingMessage=function(){this.isPaused&&(this.log("resumeReceivingMessage"),this.isPaused=!1,this.updateMessageSubscription())},L.prototype.addListener=function(w){this.listeners.add(w),this.updateMessageSubscription()},L.prototype.removeListener=function(w){this.log("removeListener"),this.listeners.delete(w),this.updateMessageSubscription()},L.prototype.destroy=function(){this.log("destroy"),this.listeners.clear(),this.isPaused=!0,this.updateMessageSubscription(),this.trtc.off(v.default.EVENT.REALTIME_TRANSCRIBER_STATE_CHANGED,this.handleStateEvent)},L}(),Jl=v.default._loggerManager;Jl.info("TRTCCloud Version: ".concat(_B));var Hl,qc,xE,Ci="trtcCloud",Vl=1;navigator&&navigator.mediaDevices&&navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(Hl=function(){YE.size!==0&&Array.from(YE.values()).forEach(function(L){L.fn()})},qc=30,function(){for(var L=this,w=[],q=0;q<arguments.length;q++)w[q]=arguments[q];xE>0&&clearTimeout(xE),xE=window.setTimeout(function(){Hl.apply(L,w),xE=-1},qc)}));var YE=new Map,LB=function(L){function w(y){y===void 0&&(y={});var T=L.call(this)||this;T._version="",T._frameWorkType=30,T._component=0,T._language=0,T._networkProxy={},T._localView=null,T._autoRecvAudio=!0,T._autoRecvVideo=!1,T._localTestView=null,T._isVideoPublish=!0,T._localRenderParams={rotation:r.TRTCVideoRotation.TRTCVideoRotation0,fillMode:r.TRTCVideoFillMode.TRTCVideoFillMode_Fill,mirrorType:r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto},T._encoderMirror=void 0,T._videoProfile={},T._isAudioPublish=!0,T._audioMuteType=!1,T._audioProfile=v.default.TYPE.AUDIO_PROFILE_STANDARD,T._captureVolume=100,T._playoutVolume=100,T._isSharingScreen=!1,T._remoteStreamConfig=new Map,T._remoteStreamMap=new Map,T._cameraList=[],T._microphoneList=[],T._speakerList=[],T._currentCamera={},T._currentMicrophone={},T._currentSpeaker={},T._currentCameraId="",T._currentMicrophoneId="",T._currentSpeakerId="",T._screenShareParams={option:{}},T._isMobile=SE,T._isFrontCamera=!0,T._cameraVideoTrack=null,T._smallStreamVideoProfile=void 0,T._qosPreference=void 0,T._defaultVideoProfile={width:640,height:480,frameRate:15,bitrate:900},T._defaultScreenProfile={width:1920,height:1080,frameRate:15,bitrate:1500},T._defaultSmallVideoProfile={width:160,height:120,frameRate:15,bitrate:200},T._isVirtualBackground=!1,T._isTestVirtualBackground=!1,T._isBeautyEnabled=!1,T._isTestBeautyEnabled=!1,T._remoteStatisticsUserIdList=[],T._hasJoinedRoom=!1,T._isExitingRoom=!1,T._version=_B;var V=y.frameWorkType,$=V===void 0?30:V,CA=y.component,NA=CA===void 0?0:CA,KA=y.language,C=KA===void 0?0:KA;return T._frameWorkType=$,T._component=NA,T._language=C,T._trtc=v.default.create({enableSEI:w.enableSEI,assetsPath:w.assetsPath,enableVolumeControlInIOS:!0,plugins:[U.default,g.LEBPlayer,f.RealtimeTranscriber]}),T._testTrtc=v.default.create(),T._log=v.default._loggerManager,T.logger=new Os(Jl,{seq:Vl++}),T._echoCancellation=void 0,T._noiseSuppression=void 0,T._autoGainControl=void 0,T._addTRTCEvents(),T.handleDeviceChange=T.handleDeviceChange.bind(T),YE.set(T,{fn:T.handleDeviceChange,self:T}),T}var q;return function(y,T){if(typeof T!="function"&&T!==null)throw new TypeError("Class extends value "+String(T)+" is not a constructor or null");function V(){this.constructor=y}AA(y,T),y.prototype=T===null?Object.create(T):(V.prototype=T.prototype,new V)}(w,L),w.getPlugin=function(y){return y==="VirtualBackground"?B.VirtualBackground:y==="BasicBeauty"?Q.BasicBeauty:y==="VideoMixer"?U.default:null},w.getTRTCShareInstance=function(y){return w.shareInstance||(w.shareInstance=new w(y)),w.shareInstance},w.setLogLevel=function(y,T){var V,$=((V={})[r.TRTCLogLevel.TRTCLogLevelVerbose]=0,V[r.TRTCLogLevel.TRTCLogLevelDebug]=1,V[r.TRTCLogLevel.TRTCLogLevelInfo]=2,V[r.TRTCLogLevel.TRTCLogLevelWarn]=3,V[r.TRTCLogLevel.TRTCLogLevelError]=4,V[r.TRTCLogLevel.TRTCLogLevelFatal]=4,V[r.TRTCLogLevel.TRTCLogLevelNone]=5,V),CA=$[y];ho(CA)&&(CA=$[r.TRTCLogLevel.TRTCLogLevelInfo]);var NA=!$t(T)||T;v.default.setLogLevel(CA,NA)},w.destroyTRTCShareInstance=function(){w.shareInstance&&(w.shareInstance._destroy(),w.shareInstance=null),Array.from(w.subCloudMap.keys()).forEach(function(y){return y._destroy()})},w.callExperimentalAPI=function(y){console.log("static ".concat(Ci,".callExperimentalAPI"),y);var T=$r(y);if(T!==y){var V=T.api,$=T.params;if(V&&$)try{switch(V){case"enableSEI":w.enableSEI=$.enable;break;case"setAssetsPath":w.assetsPath=$.assetsPath}}catch(CA){throw CA}}},w.prototype.createSubCloud=function(){if(this!==w.shareInstance)return null;var y=new w;return this._inheritPropertiesToSubCloud(y),this._inheritEventsToSubCloud(y),w.subCloudMap.set(y,y),y},w.prototype.destroy=function(){this!==w.shareInstance?(w.subCloudMap.get(this)&&w.subCloudMap.delete(this),this._destroy()):w.destroyTRTCShareInstance()},w.prototype._destroy=function(){YE.delete(this),this.removeAllListeners(),this._trtc.off("*"),this._trtc.destroy(),this._trtc=null,this._testTrtc.off("*"),this._testTrtc.destroy(),this._testTrtc=null},w.prototype.getSDKVersion=function(){return this._version||""},w.prototype.enterRoom=function(y,T){return eA(this,void 0,Promise,function(){var V,$,CA,NA,KA,C,E,h,D,N,O,Y,j,IA,BA,mA,_A,xA;return X(this,function(Qe){switch(Qe.label){case 0:if(V=y.sdkAppId,$=y.userId,CA=y.userSig,NA=y.roomId,KA=y.strRoomId,C=y.role,E=y.privateMapKey,h=y.businessInfo,D=y.enableAutoPlayDialog,N=y.proxy,O=y.streamId,Y=y.userDefineRecordId,this.logger.update({sdkAppId:V,userId:$}),this.logger.info("".concat(Ci,".enterRoom with params: "),y,T),N&&(this._networkProxy=N),!(V&&$&&CA))return[3,5];Qe.label=1;case 1:return Qe.trys.push([1,3,,4]),j={sdkAppId:V,userId:$,userSig:CA,roomId:NA,strRoomId:KA,role:Vo[C],scene:et[T],autoReceiveAudio:this._autoRecvAudio,autoReceiveVideo:this._autoRecvVideo,frameWorkType:this._frameWorkType,component:this._component,language:this._language},j=E?z(z({},j),{privateMapKey:E}):j,j=h?z(z({},j),{businessInfo:h}):j,IA=D||this._enableAutoPlayDialog,j=$t(IA)?z(z({},j),{enableAutoPlayDialog:IA}):j,j=this._networkProxy?z(z({},j),{proxy:this._networkProxy}):j,j=O?z(z({},j),{streamId:O}):j,j=Y?z(z({},j),{userDefineRecordId:Y}):j,j=this._latencyLevel!==void 0?z(z({},j),{latencyLevel:this._latencyLevel}):j,BA=Qn(),[4,this._trtc.enterRoom(j)];case 2:return Qe.sent(),this._hasJoinedRoom=!0,mA=Qn()-BA,this.emit("onEnterRoom",mA),[3,4];case 3:return _A=Qe.sent(),xA=(xA=this._transformTRTCErrorCode(_A,"enterRoom"))<0?xA:-1,this.emit("onEnterRoom",xA),this._callFunctionErrorManage(_A,"enterRoom"),[3,4];case 4:return[3,6];case 5:this._emitError(Jc),Qe.label=6;case 6:return[2]}})})},w.prototype.exitRoom=function(){return eA(this,void 0,Promise,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),this.logger.info("".concat(Ci,".exitRoom")),this._isExitingRoom=!0,this._isSharingScreen&&this.stopScreenShare(),this.resetTRTCCloud(),this.stopLocalPreview(),this.stopLocalAudio(),[4,this._trtc.exitRoom()];case 1:return T.sent(),this._hasJoinedRoom=!1,this._isExitingRoom=!1,this._isVideoPublish=!0,this._isAudioPublish=!0,this.emit("onExitRoom",Vg.exitRoom),[3,3];case 2:return y=T.sent(),this._callFunctionErrorManage(y,"exitRoom"),[3,3];case 3:return[2]}})})},w.prototype.switchRole=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".switchRole with param: "),y),V.label=1;case 1:return V.trys.push([1,3,,4]),[4,this._trtc.switchRole(Vo[y])];case 2:return V.sent(),this.emit("onSwitchRole",0,"switch role success, role = ".concat(y,", ").concat(Vo[y])),[3,4];case 3:return T=V.sent(),this.emit("onSwitchRole",T?.getCode(),T.message),[3,4];case 4:return[2]}})})},w.prototype.setDefaultStreamRecvMode=function(y,T){return eA(this,void 0,void 0,function(){return X(this,function(V){return this.logger.info("".concat(Ci,".setDefaultStreamRecvMode with param: "),{autoRecvAudio:y,autoRecvVideo:T}),$t(y)&&(this._autoRecvAudio=y),$t(T)&&(this._autoRecvVideo=T),[2]})})},w.prototype.resetTRTCCloud=function(){this._setIsAudioPublish(!0),this._setAudioMuteType(!1),this._echoCancellation=void 0,this._noiseSuppression=void 0,this._autoGainControl=void 0,this._isVirtualBackground=!1,this._isTestVirtualBackground=!1,this._remoteStatisticsUserIdList=[],this._resetBeautyStyle()},w.prototype._updateLocalVideo=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),[4,this._trtc.updateLocalVideo(this._generateLocalVideoData())];case 1:return T.sent(),[3,3];case 2:if((y=T.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw y;return[3,3];case 3:return[2]}})})},w.prototype._updateLocalTestVideo=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalVideo(this._generateLocalTestVideoData())];case 1:return T.sent(),[3,3];case 2:if((y=T.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw y;return[3,3];case 3:return[2]}})})},w.prototype._updateLocalScreen=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),[4,this._trtc.updateScreenShare(this._getScreenShareParams())];case 1:return T.sent(),[3,3];case 2:if((y=T.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw y;return[3,3];case 3:return[2]}})})},w.prototype._updateRemoteVideo=function(y,T){return eA(this,void 0,void 0,function(){var V;return X(this,function($){switch($.label){case 0:if(!this._hasJoinedRoom||this._isExitingRoom)return[2];$.label=1;case 1:return $.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo(this._generateRemoteVideoData(y,T))];case 2:return $.sent(),[3,4];case 3:if((V=$.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw V;return[3,4];case 4:return[2]}})})},w.prototype.startLocalPreview=function(){for(var y=[],T=0;T<arguments.length;T++)y[T]=arguments[T];return eA(this,void 0,Promise,function(){var V,$,CA,NA,KA;return X(this,function(C){switch(C.label){case 0:this.logger.info("".concat(Ci,".startLocalPreview with params: "),y),wA([],y,!0).length===1?$=wA([],y,!0)[0]:wA([],y,!0).length===2&&(KA=wA([],y,!0),V=KA[0],$=KA[1]),ho(V)||(this._setIsMobile(!0),this._setIsFrontCamera(V)),this._setLocalView($),C.label=1;case 1:C.trys.push([1,9,,10]),C.label=2;case 2:return C.trys.push([2,4,,8]),[4,this._trtc.startLocalVideo(this._generateLocalVideoData())];case 3:return C.sent(),[3,8];case 4:return(CA=C.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalVideo()];case 5:return C.sent(),[3,7];case 6:throw CA;case 7:return[3,8];case 8:return this.emit("onCameraDidReady"),[3,10];case 9:return NA=C.sent(),this._callFunctionErrorManage(NA,"startLocalPreview"),[3,10];case 10:return[2]}})})},w.prototype.updateLocalView=function(y){return eA(this,void 0,void 0,function(){return X(this,function(T){switch(T.label){case 0:return this.logger.info("".concat(Ci,".updateLocalView with param: "),y),this._setLocalView(y),[4,this._updateLocalVideo()];case 1:return T.sent(),[2]}})})},w.prototype.stopLocalPreview=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:this.logger.info("".concat(Ci,".stopLocalPreview")),T.label=1;case 1:return T.trys.push([1,3,,4]),this._setLocalView(null),[4,this._trtc.stopLocalVideo()];case 2:return T.sent(),this.emit("onCameraStopped"),[3,4];case 3:return y=T.sent(),console.warn("".concat(Ci," stopLocalPreview error: ").concat(y)),this._callFunctionErrorManage(y,"stopLocalPreview"),[3,4];case 4:return[2]}})})},w.prototype.muteLocalVideo=function(y){return y===void 0&&(y=!1),eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".muteLocalVideo with params: "),y),V.label=1;case 1:return V.trys.push([1,3,,4]),this._setIsVideoPublish(!y),[4,this._updateLocalVideo()];case 2:return V.sent(),[3,4];case 3:return T=V.sent(),this._callFunctionErrorManage(T,"muteLocalVideo"),[3,4];case 4:return[2]}})})},w.prototype.startRemoteView=function(y,T,V){return eA(this,void 0,void 0,function(){var $,CA;return X(this,function(NA){switch(NA.label){case 0:this.logger.info("".concat(Ci,".startRemoteView with params: "),y,T,V),NA.label=1;case 1:if(NA.trys.push([1,9,,10]),this._setRemoteStreamConfig(y,V,{view:T,small:V===r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall}),!this._remoteStreamMap.get("".concat(y,"_").concat(this._getTRTCStreamType(V))))return[2];NA.label=2;case 2:return NA.trys.push([2,4,,8]),[4,this._trtc.startRemoteVideo(this._generateRemoteVideoData(y,V))];case 3:return NA.sent(),[3,8];case 4:return($=NA.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateRemoteVideo(y,V)];case 5:return NA.sent(),[3,7];case 6:throw $;case 7:return[3,8];case 8:return[3,10];case 9:return CA=NA.sent(),this._callFunctionErrorManage(CA,"startRemoteView"),[3,10];case 10:return[2]}})})},w.prototype.updateRemoteView=function(y,T,V){return eA(this,void 0,void 0,function(){return X(this,function($){switch($.label){case 0:return this.logger.info("".concat(Ci,".updateRemoteView with params: "),y,T,V),this._setRemoteStreamConfig(y,V,{view:T}),this._remoteStreamMap.get("".concat(y,"_").concat(this._getTRTCStreamType(V)))?[4,this._updateRemoteVideo(y,V)]:[2];case 1:return $.sent(),[2]}})})},w.prototype.stopRemoteView=function(y,T){return eA(this,void 0,void 0,function(){var V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".stopRemoteView with params: "),y,T),$.label=1;case 1:return $.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:y,streamType:this._getTRTCStreamType(T)})];case 2:return $.sent(),[3,4];case 3:return V=$.sent(),this._callFunctionErrorManage(V,"stopRemoteView"),[3,4];case 4:return[2]}})})},w.prototype.stopAllRemoteView=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:this.logger.info("".concat(Ci,".stopAllRemoteView")),T.label=1;case 1:return T.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:"*"})];case 2:return T.sent(),[3,4];case 3:return y=T.sent(),this._callFunctionErrorManage(y,"stopAllRemoteView"),[3,4];case 4:return[2]}})})},w.prototype.setVideoEncoderParam=function(y){return eA(this,void 0,void 0,function(){var T,V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".setVideoEncoderParam with params: "),y),$.label=1;case 1:return $.trys.push([1,4,,5]),T=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeBig,y),this._setVideoProfile(T),[4,this._updateLocalVideo()];case 2:return $.sent(),[4,this._updateLocalTestVideo()];case 3:return $.sent(),[3,5];case 4:return V=$.sent(),this._callFunctionErrorManage(V,"setVideoEncoderParam"),[3,5];case 5:return[2]}})})},w.prototype.setNetworkQosParam=function(y){return eA(this,void 0,void 0,function(){var T,V,$=this;return X(this,function(CA){return this.logger.info("".concat(Ci,".setNetworkQosParam with params: "),y),T=y.preference,V=this._getTRTCQosPreference(T),this._setQosPreference(V),this._setScreenShareParams({qosPreference:V}),[2,new Promise(function(NA,KA){Promise.all([$._updateLocalVideo(),$._updateLocalScreen()]).then(function(){NA(!0)}).catch(function(C){$._callFunctionErrorManage(C,"setNetworkQosParam"),KA(C)})})]})})},w.prototype.setLocalRenderParams=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".setLocalRenderParams with params: "),y),Object.assign(this._localRenderParams,y),V.label=1;case 1:return V.trys.push([1,4,,5]),[4,this._updateLocalVideo()];case 2:return V.sent(),[4,this._updateLocalTestVideo()];case 3:return V.sent(),[3,5];case 4:return T=V.sent(),this._callFunctionErrorManage(T,"setLocalRenderParams"),[3,5];case 5:return[2]}})})},w.prototype.setVideoEncoderMirror=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".setVideoEncoderMirror with params: "),y),this._encoderMirror=y,V.label=1;case 1:return V.trys.push([1,3,,4]),[4,this._updateLocalVideo()];case 2:return V.sent(),[3,4];case 3:return T=V.sent(),this._callFunctionErrorManage(T,"setVideoEncoderMirror"),[3,4];case 4:return[2]}})})},w.prototype.setRemoteRenderParams=function(y,T,V){return eA(this,void 0,void 0,function(){var $;return X(this,function(CA){switch(CA.label){case 0:this.logger.info("".concat(Ci,".setRemoteRenderParams with params: "),y,T,V),CA.label=1;case 1:return CA.trys.push([1,3,,4]),this._setRemoteStreamConfig(y,T,V),[4,this._updateRemoteVideo(y,T)];case 2:return CA.sent(),[3,4];case 3:return $=CA.sent(),this._callFunctionErrorManage($,"setRemoteRenderParams"),[3,4];case 4:return[2]}})})},w.prototype._updateLocalAudio=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),[4,this._trtc.updateLocalAudio(this._generateLocalAudioData())];case 1:return T.sent(),[3,3];case 2:if((y=T.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw y;return[3,3];case 3:return[2]}})})},w.prototype._updateLocalTestAudio=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:return T.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalAudio(this._generateLocalTestAudioData())];case 1:return T.sent(),[3,3];case 2:if((y=T.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw y;return[3,3];case 3:return[2]}})})},w.prototype.startLocalAudio=function(y){return y===void 0&&(y=r.TRTCAudioQuality.TRTCAudioQualityDefault),eA(this,void 0,void 0,function(){var T,V,$;return X(this,function(CA){switch(CA.label){case 0:y===r.TRTCAudioQuality.TRTCAudioQualitySpeech?this.logger.warn("Web trtcCloud not support audioQuality of TRTCAudioQualitySpeech, and will use TRTCAudioQualityDefault"):this.logger.info("".concat(Ci,".startLocalAudio with params: "),y),T=this._getTRTCAudioQuality(y),CA.label=1;case 1:CA.trys.push([1,9,,10]),this._setAudioProfile(T),CA.label=2;case 2:return CA.trys.push([2,4,,8]),[4,this._trtc.startLocalAudio(this._generateLocalAudioData())];case 3:return CA.sent(),[3,8];case 4:return(V=CA.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalAudio()];case 5:return CA.sent(),[3,7];case 6:throw V;case 7:return[3,8];case 8:return this.emit("onMicDidReady"),[3,10];case 9:return $=CA.sent(),console.warn("".concat(Ci," startLocalAudio error: ").concat($)),this._callFunctionErrorManage($,"startLocalAudio"),[3,10];case 10:return[2]}})})},w.prototype.stopLocalAudio=function(){return eA(this,void 0,void 0,function(){var y;return X(this,function(T){switch(T.label){case 0:this.logger.info("".concat(Ci,".stopLocalAudio")),T.label=1;case 1:return T.trys.push([1,3,,4]),[4,this._trtc.stopLocalAudio()];case 2:return T.sent(),[3,4];case 3:return y=T.sent(),this._callFunctionErrorManage(y,"stopLocalAudio"),[3,4];case 4:return[2]}})})},w.prototype.muteLocalAudio=function(y){return y===void 0&&(y=!1),eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".muteLocalAudio with params: "),y),V.label=1;case 1:return V.trys.push([1,3,,4]),this._setAudioMuteType(!!y&&"microphone"),[4,this._updateLocalAudio()];case 2:return V.sent(),[3,4];case 3:return T=V.sent(),this._callFunctionErrorManage(T,"muteLocalAudio"),[3,4];case 4:return[2]}})})},w.prototype.setAudioCaptureVolume=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".setAudioCaptureVolume with params: "),y),V.label=1;case 1:return V.trys.push([1,3,,4]),this._setCaptureVolume(y),[4,this._updateLocalAudio()];case 2:return V.sent(),[3,4];case 3:return T=V.sent(),this._callFunctionErrorManage(T,"setAudioCaptureVolume"),[3,4];case 4:return[2]}})})},w.prototype.getAudioCaptureVolume=function(){return this.logger.info("".concat(Ci,".getAudioCaptureVolume")),this._getCaptureVolume()},w.prototype.setAudioPlayoutVolume=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".setAudioPlayoutVolume with params: "),y),V.label=1;case 1:return V.trys.push([1,3,,4]),this._playoutVolume=y,[4,this._trtc.setRemoteAudioVolume("*",y)];case 2:return V.sent(),[3,4];case 3:return T=V.sent(),this._callFunctionErrorManage(T,"setAudioPlayoutVolume"),[3,4];case 4:return[2]}})})},w.prototype.getAudioPlayoutVolume=function(){return this.logger.info("".concat(Ci,".getAudioPlayoutVolume")),this._playoutVolume},w.prototype.muteRemoteAudio=function(y,T){return T===void 0&&(T=!1),eA(this,void 0,void 0,function(){var V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".muteRemoteAudio with params: "),y,T),$.label=1;case 1:return $.trys.push([1,3,,4]),y?[4,this._trtc.muteRemoteAudio(y,T)]:(this._emitError(Jc),[2]);case 2:return $.sent(),[3,4];case 3:return V=$.sent(),this._callFunctionErrorManage(V,"muteRemoteAudio"),[3,4];case 4:return[2]}})})},w.prototype.muteAllRemoteAudio=function(y){this.logger.info("".concat(Ci,".muteAllRemoteAudio with params: "),y);try{this._trtc.muteRemoteAudio("*",y)}catch(T){this._callFunctionErrorManage(T,"muteAllRemoteAudio")}},w.prototype.muteRemoteVideoStream=function(y,T,V){return eA(this,void 0,void 0,function(){var $;return X(this,function(CA){switch(CA.label){case 0:this.logger.info("".concat(Ci,".muteRemoteVideoStream with params: "),y,T,V),CA.label=1;case 1:return CA.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo({userId:y,mute:T,streamType:this._getTRTCStreamType(V)})];case 2:return CA.sent(),[3,4];case 3:return $=CA.sent(),this._callFunctionErrorManage($,"muteRemoteVideoStream"),[3,4];case 4:return[2]}})})},w.prototype.muteAllRemoteVideoStreams=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".muteAllRemoteVideoStreams with params: "),y),V.label=1;case 1:return V.trys.push([1,6,,7]),y?[4,this._trtc.callExperimentalAPI("pauseRemotePlayer",{userId:"*"})]:[3,3];case 2:return V.sent(),[3,5];case 3:return[4,this._trtc.callExperimentalAPI("resumeRemotePlayer",{userId:"*"})];case 4:V.sent(),V.label=5;case 5:return[3,7];case 6:return T=V.sent(),this._callFunctionErrorManage(T,"muteAllRemoteVideoStreams"),[3,7];case 7:return[2]}})})},w.prototype.setRemoteAudioVolume=function(y,T){this.logger.info("".concat(Ci,".setRemoteAudioVolume with params: "),y,T);try{this._trtc.setRemoteAudioVolume(y,T)}catch(V){this._callFunctionErrorManage(V,"setRemoteAudioVolume")}},w.prototype.enableAudioVolumeEvaluation=function(y){this.logger.info("".concat(Ci,".enableAudioVolumeEvaluation with params: "),y);try{this._trtc.enableAudioVolumeEvaluation(y)}catch(T){this._callFunctionErrorManage(T,"enableAudioVolumeEvaluation")}},w.prototype.enableSmallVideoStream=function(y,T){return eA(this,void 0,Promise,function(){var V;return X(this,function($){switch($.label){case 0:return this.logger.info("".concat(Ci,".enableSmallVideoStream with params: "),y,T),y?(V=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,T),this._setSmallStreamVideoProfile(V)):this._setSmallStreamVideoProfile(void 0),[4,this._updateLocalVideo()];case 1:return $.sent(),[2]}})})},w.prototype.snapshotVideo=function(y,T){var V="";return V=y===""&&T===r.TRTCVideoStreamType.TRTCVideoStreamTypeBig?this._trtc.getVideoSnapshot():y===""&&T===r.TRTCVideoStreamType.TRTCVideoStreamTypeSub?this._trtc.getVideoSnapshot({streamType:this._getTRTCStreamType(T)}):this._trtc.getVideoSnapshot({userId:y,streamType:this._getTRTCStreamType(T)}),this.emit("onSnapshotComplete",y,T,V),V},w.prototype.startScreenShare=function(y,T,V){return eA(this,void 0,void 0,function(){var $,CA,NA,KA,C,E;return X(this,function(h){switch(h.label){case 0:this.logger.info("".concat(Ci,".startScreenShare with params: "),y,T,V),h.label=1;case 1:return h.trys.push([1,3,,4]),CA=($=V||{}).screenAudio,NA=CA!==void 0&&CA,KA=$.videoTrack,C=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSub,V),this._setScreenShareParams({view:y,profile:C,systemAudio:NA,videoTrack:KA,streamType:T}),[4,this._trtc.startScreenShare(this._getScreenShareParams())];case 2:return h.sent(),this._isSharingScreen=!0,this.emit("onScreenCaptureStarted"),[3,4];case 3:if((E=h.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT)throw console.error("Start share screen error:",E,E.code,E.name,E.message),E;return[3,4];case 4:return[2]}})})},w.prototype.setSubStreamEncoderParam=function(y){return eA(this,void 0,void 0,function(){var T,V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".setSubStreamEncoderParam with params: "),y),T=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSub,y),this._setScreenShareParams({profile:T}),$.label=1;case 1:return $.trys.push([1,3,,4]),[4,this._updateLocalScreen()];case 2:return $.sent(),[3,4];case 3:return V=$.sent(),this._callFunctionErrorManage(V,"setSubStreamEncoderParam"),[3,4];case 4:return[2]}})})},w.prototype.stopScreenShare=function(){return eA(this,void 0,Promise,function(){var y;return X(this,function(T){switch(T.label){case 0:this.logger.info("".concat(Ci,".stopScreenShare")),T.label=1;case 1:return T.trys.push([1,3,,4]),[4,this._trtc.stopScreenShare()];case 2:return T.sent(),this._clearScreenShareParams(),this._isSharingScreen=!1,this.emit("onScreenCaptureStopped",0),[3,4];case 3:return y=T.sent(),this._callFunctionErrorManage(y,"stopScreenShare"),[3,4];case 4:return[2]}})})},w.prototype._startPublishVideoTrack=function(y){var T=y.videoTrack;return eA(this,void 0,void 0,function(){var V,$;return X(this,function(CA){switch(CA.label){case 0:CA.trys.push([0,7,,8]),CA.label=1;case 1:return CA.trys.push([1,3,,6]),[4,this._trtc.startLocalVideo({option:{videoTrack:T,profile:this._getVideoProfile()},forcePublish:!0})];case 2:return CA.sent(),[3,6];case 3:return(V=CA.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._trtc.updateLocalVideo({option:{videoTrack:T,profile:this._getVideoProfile()},forcePublish:!0})];case 4:CA.sent(),CA.label=5;case 5:throw V;case 6:return[3,8];case 7:return $=CA.sent(),this._callFunctionErrorManage($,"startPublishVideoTrack"),[3,8];case 8:return[2]}})})},w.prototype._stopPublishVideoTrack=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this._cameraVideoTrack=null,[4,this._trtc.stopLocalVideo()];case 1:return y.sent(),[2]}})})},w.prototype.startScreenCapture=function(){this._emitError(LE)},w.prototype.pauseScreenCapture=function(){this._emitError(LE)},w.prototype.resumeScreenCapture=function(){this._emitError(LE)},w.prototype.getScreenCaptureSources=function(){this._emitError(LE)},w.prototype.selectScreenCaptureTarget=function(){this._emitError(LE)},w.prototype.getCameraDevicesList=function(){return eA(this,void 0,Promise,function(){var y,T,V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".getCameraDevicesList")),$.label=1;case 1:return $.trys.push([1,5,,6]),[4,v.default.getCameraList()];case 2:return y=$.sent(),T=y.map(function(CA){return z(z({},CA),{deviceName:CA.label})}),this._cameraList=y,JSON.stringify(this._currentCamera)!=="{}"?[3,4]:(this._currentCamera=this.getDefaultDeviceInfo(y),this._currentCameraId=this._currentCamera.deviceId,[4,this.setCurrentCameraDevice(this._currentCameraId)]);case 3:$.sent(),$.label=4;case 4:return[2,Promise.resolve(T)];case 5:return V=$.sent(),this._callFunctionErrorManage(V,"getCameraDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},w.prototype.setCurrentCameraDevice=function(y){var T;return eA(this,void 0,Promise,function(){var V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".setCurrentCameraDevice with params: "),{cameraId:y}),$.label=1;case 1:return $.trys.push([1,4,,5]),y?(this._currentCameraId=y,[4,this._updateLocalVideo()]):[2,!1];case 2:return $.sent(),[4,this._updateLocalTestVideo()];case 3:return $.sent(),this._currentCamera=this._cameraList.find(function(CA){return CA.deviceId===y})||{},[3,5];case 4:throw V=$.sent(),this._currentCameraId=(T=this._currentCamera)===null||T===void 0?void 0:T.cameraId,this._callFunctionErrorManage(V,"setCurrentCameraDevice"),V;case 5:return[2]}})})},w.prototype.getCurrentCameraDevice=function(){this.logger.info("".concat(Ci,".getCurrentCameraDevice"));var y=this._currentCamera,T=y.deviceId,V=y.label,$=y.kind,CA=y.groupId;return new qt(T,V,$,V,CA)},w.prototype.isFrontCamera=function(){return this._getIsFrontCamera()},w.prototype.switchCamera=function(y){return eA(this,void 0,void 0,function(){return X(this,function(T){switch(T.label){case 0:return this.logger.info("".concat(Ci,".switchCamera with params: "),y),this._setIsFrontCamera(y),[4,this._updateLocalVideo()];case 1:return T.sent(),[4,this._updateLocalTestVideo()];case 2:return T.sent(),[2]}})})},w.prototype._onVirtualBackgroundError=function(y){this._emitError({code:-1006,message:y.message?y.message:"virtual background error"})},w.prototype.setVirtualBackground=function(y){return eA(this,void 0,void 0,function(){var T,V,$,CA,NA;return X(this,function(KA){switch(KA.label){case 0:return KA.trys.push([0,10,,11]),T=y.enable,V=y.type,$=y.blurLevel,CA=y.imagePath,T?this._isVirtualBackground?V!==Lo?[3,2]:[4,this._trtc.updatePlugin(Xo,{type:V,blurLevel:$})]:[3,5]:[3,8];case 1:KA.sent(),KA.label=2;case 2:return V!==Nr?[3,4]:[4,this._trtc.updatePlugin(Xo,{type:V,src:CA})];case 3:KA.sent(),KA.label=4;case 4:return[3,7];case 5:return[4,this._trtc.startPlugin(Xo,z(z({},y),{src:CA,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:KA.sent(),this._isVirtualBackground=!0,KA.label=7;case 7:return[3,9];case 8:this._trtc.stopPlugin(Xo),this._isVirtualBackground=!1,KA.label=9;case 9:return[3,11];case 10:throw NA=KA.sent(),this.logger.error("".concat(Ci,".setVirtualBackground fail: "),NA),NA;case 11:return[2]}})})},w.prototype.setTestVirtualBackground=function(y){return eA(this,void 0,void 0,function(){var T,V,$,CA,NA;return X(this,function(KA){switch(KA.label){case 0:return KA.trys.push([0,10,,11]),T=y.enable,V=y.type,$=y.blurLevel,CA=y.imagePath,T?this._isTestVirtualBackground?V!==Lo?[3,2]:[4,this._testTrtc.updatePlugin(Xo,{type:V,blurLevel:$})]:[3,5]:[3,8];case 1:KA.sent(),KA.label=2;case 2:return V!==Nr?[3,4]:[4,this._testTrtc.updatePlugin(Xo,{type:V,src:CA})];case 3:KA.sent(),KA.label=4;case 4:return[3,7];case 5:return[4,this._testTrtc.startPlugin(Xo,z(z({},y),{src:CA,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:KA.sent(),this._isTestVirtualBackground=!0,KA.label=7;case 7:return[3,9];case 8:this._testTrtc.stopPlugin(Xo),this._isTestVirtualBackground=!1,KA.label=9;case 9:return[3,11];case 10:throw NA=KA.sent(),this.logger.error("".concat(Ci,".setTestVirtualBackground fail: "),NA),NA;case 11:return[2]}})})},w.prototype.useVirtualBackground=function(y){return eA(this,void 0,void 0,function(){return X(this,function(T){switch(T.label){case 0:return this._trtc?[4,this._trtc.use({plugin:B.VirtualBackground,assetsPath:y})]:[3,2];case 1:T.sent(),T.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:B.VirtualBackground,assetsPath:y})]:[3,4];case 3:T.sent(),T.label=4;case 4:return[2]}})})},w.prototype.setBeautyStyle=function(y,T,V,$){return eA(this,void 0,void 0,function(){return X(this,function(CA){switch(CA.label){case 0:return[4,this._handleBeautyStyleParam(this._trtc,this._isBeautyEnabled,y,T,V,$,!1)];case 1:return CA.sent(),[2]}})})},w.prototype.setTestBeautyStyle=function(y,T,V,$){return eA(this,void 0,void 0,function(){return X(this,function(CA){switch(CA.label){case 0:return[4,this._handleBeautyStyleParam(this._testTrtc,this._isTestBeautyEnabled,y,T,V,$,!0)];case 1:return CA.sent(),[2]}})})},w.prototype.useBeautyStyle=function(y){return eA(this,void 0,void 0,function(){return X(this,function(T){switch(T.label){case 0:return this._trtc?[4,this._trtc.use({plugin:Q.BasicBeauty,assetsPath:y})]:[3,2];case 1:T.sent(),T.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:Q.BasicBeauty,assetsPath:y})]:[3,4];case 3:T.sent(),T.label=4;case 4:return[2]}})})},w.prototype._handleBeautyStyleParam=function(y,T,V,$,CA,NA,KA){return eA(this,void 0,void 0,function(){var C,E,h,D,N;return X(this,function(O){switch(O.label){case 0:if($<0||$>9)throw new Error("beautyLevel must be between 0 and 9");if(CA<0||CA>9)throw new Error("whitenessLevel must be between 0 and 9");if(NA<0||NA>9)throw new Error("ruddinessLevel must be between 0 and 9");O.label=1;case 1:return O.trys.push([1,8,,9]),E=CA/9,h=NA/9,(C=$/9)===0&&E===0&&h===0?[4,y.stopPlugin(sr)]:[3,3];case 2:return O.sent(),KA?this._isTestBeautyEnabled=!1:this._isBeautyEnabled=!1,[3,7];case 3:return D={beauty:C,brightness:E,ruddy:h},T?[3,5]:[4,y.startPlugin(sr,D)];case 4:return O.sent(),KA?this._isTestBeautyEnabled=!0:this._isBeautyEnabled=!0,[3,7];case 5:return[4,y.updatePlugin(sr,D)];case 6:O.sent(),O.label=7;case 7:return[3,9];case 8:throw N=O.sent(),KA?this.logger.error("".concat(Ci,".").concat("setTestBeautyStyle"," fail: "),N):this.logger.error("".concat(Ci,".").concat("setBeautyStyle"," fail: "),N),N;case 9:return[2]}})})},w.prototype._resetBeautyStyle=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this._isBeautyEnabled?[4,this._trtc.stopPlugin(sr)]:[3,2];case 1:y.sent(),this._isBeautyEnabled=!1,y.label=2;case 2:return this._isTestBeautyEnabled?[4,this._testTrtc.stopPlugin(sr)]:[3,4];case 3:y.sent(),this._isTestBeautyEnabled=!1,y.label=4;case 4:return[2]}})})},w.prototype.getMicDevicesList=function(){return eA(this,void 0,Promise,function(){var y,T,V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".getMicDevicesList")),$.label=1;case 1:return $.trys.push([1,5,,6]),[4,v.default.getMicrophoneList()];case 2:return y=$.sent(),T=y.map(function(CA){return z(z({},CA),{deviceName:CA.label})}),this._microphoneList=y,JSON.stringify(this._currentMicrophone)!=="{}"?[3,4]:(this._currentMicrophone=this.getDefaultDeviceInfo(y),this._currentMicrophoneId=this._currentMicrophone.deviceId,[4,this.setCurrentMicDevice(this._currentMicrophoneId)]);case 3:$.sent(),$.label=4;case 4:return[2,Promise.resolve(T)];case 5:return V=$.sent(),this._callFunctionErrorManage(V,"getMicDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},w.prototype.setCurrentMicDevice=function(y){var T;return eA(this,void 0,Promise,function(){var V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".setCurrentMicDevice with params: "),{micId:y}),$.label=1;case 1:return $.trys.push([1,4,,5]),y?(this._setCurrentMicrophoneId(y),[4,this._updateLocalAudio()]):[2,!1];case 2:return $.sent(),[4,this._updateLocalTestAudio()];case 3:return $.sent(),this._currentMicrophone=this._microphoneList.find(function(CA){return CA.deviceId===y})||{},[3,5];case 4:throw V=$.sent(),this._setCurrentMicrophoneId((T=this._currentMicrophone)===null||T===void 0?void 0:T.deviceId),this._callFunctionErrorManage(V,"setCurrentMicDevice"),V;case 5:return[2]}})})},w.prototype.getCurrentMicDevice=function(){this.logger.info("".concat(Ci,".getCurrentMicDevice"));var y=this._currentMicrophone,T=y.deviceId,V=y.label,$=y.kind,CA=y.groupId;return new qt(T,V,$,V,CA)},w.prototype.getSpeakerDevicesList=function(){return eA(this,void 0,Promise,function(){var y,T,V;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".getSpeakerDevicesList")),$.label=1;case 1:return $.trys.push([1,5,,6]),[4,v.default.getSpeakerList()];case 2:return y=$.sent(),T=y.map(function(CA){return z(z({},CA),{deviceName:CA.label})}),this._speakerList=y,JSON.stringify(this._currentSpeaker)!=="{}"?[3,4]:(this._currentSpeaker=this.getDefaultDeviceInfo(y),this._currentSpeakerId=this._currentSpeaker.deviceId,[4,this.setCurrentSpeakerDevice(this._currentSpeakerId)]);case 3:$.sent(),$.label=4;case 4:return[2,Promise.resolve(T)];case 5:return V=$.sent(),this._callFunctionErrorManage(V,"getSpeakerDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},w.prototype.setCurrentSpeakerDevice=function(y){return eA(this,void 0,Promise,function(){var T;return X(this,function(V){switch(V.label){case 0:this.logger.info("".concat(Ci,".setCurrentSpeakerDevice with params: "),{speakerId:y}),V.label=1;case 1:return V.trys.push([1,3,,4]),y?[4,v.default.setCurrentSpeaker(y)]:[2,!1];case 2:return V.sent(),this._setCurrentSpeakerId(y),this._currentSpeaker=this._speakerList.find(function($){return $.deviceId===y})||{},[3,4];case 3:throw T=V.sent(),this._callFunctionErrorManage(T,"setCurrentSpeakerDevice"),T;case 4:return[2]}})})},w.prototype.getCurrentSpeakerDevice=function(){this.logger.info("".concat(Ci,".getCurrentSpeakerDevice"));var y=this._currentSpeaker,T=y.deviceId,V=y.label,$=y.kind,CA=y.groupId;return new qt(T,V,$,V,CA)},w.prototype.startCameraDeviceTest=function(y){return eA(this,void 0,void 0,function(){var T;return X(this,function(V){switch(V.label){case 0:if(this.logger.info("".concat(Ci,".startCameraDeviceTest with params: "),y),!y)return[2];this._setLocalTestView(y),V.label=1;case 1:return V.trys.push([1,3,,7]),[4,this._testTrtc.startLocalVideo(this._generateLocalTestVideoData())];case 2:return V.sent(),[3,7];case 3:return(T=V.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestVideo()];case 4:return V.sent(),[3,6];case 5:throw this._callFunctionErrorManage(T,"startCameraDeviceTest"),T;case 6:return[3,7];case 7:return[2]}})})},w.prototype.stopCameraDeviceTest=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this.logger.info("".concat(Ci,".stopCameraDeviceTest")),this._setLocalTestView(null),[4,this._testTrtc.stopLocalVideo()];case 1:return y.sent(),[2]}})})},w.prototype.startMicDeviceTest=function(y){return eA(this,void 0,void 0,function(){var T,V=this;return X(this,function($){switch($.label){case 0:this.logger.info("".concat(Ci,".startMicDeviceTest with params: "),y),$.label=1;case 1:return $.trys.push([1,3,,7]),[4,this._testTrtc.startLocalAudio(this._generateLocalTestAudioData())];case 2:return $.sent(),[3,7];case 3:return(T=$.sent()).code!==v.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestAudio()];case 4:return $.sent(),[3,6];case 5:throw this._callFunctionErrorManage(T,"startMicDeviceTest"),T;case 6:return[3,7];case 7:return this._testTrtc.on(v.default.EVENT.AUDIO_VOLUME,function(CA){CA?.result.forEach(function(NA){var KA=NA.userId,C=NA.volume;KA===""&&V.emit("onTestMicVolume",C)})}),[4,this._testTrtc.enableAudioVolumeEvaluation(y)];case 8:return $.sent(),[2]}})})},w.prototype.stopMicDeviceTest=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this.logger.info("".concat(Ci,".stopMicDeviceTest")),[4,this._testTrtc.stopLocalAudio()];case 1:return y.sent(),[2]}})})},w.prototype.callExperimentalAPI=function(y){return eA(this,void 0,void 0,function(){var T,V,$;return X(this,function(CA){switch(CA.label){case 0:if(this.logger.info("".concat(Ci,".callExperimentalAPI"),y),(T=$r(y))===y)return[2];if(V=T.api,$=T.params,!V||!$)return[2];CA.label=1;case 1:switch(CA.trys.push([1,25,,26]),V){case"setFramework":return[3,2];case"enableAudioAEC":return[3,3];case"enableAudioANS":return[3,4];case"enableAudioAGC":return[3,5];case"KeyMetricsStats":return[3,6];case"setNetworkProxy":return[3,7];case"enableVirtualBackground":return[3,8];case"enableTestVirtualBackground":return[3,10];case"enableTestBeautyStyle":return[3,12];case"setVideoEncodeParamEx":return[3,14];case"enableAutoPlayDialog":return[3,15];case"setAudienceLatencyLevel":return[3,16];case"switchPlaybackQuality":return[3,17];case"requestPictureInPicture":return[3,19];case"exitPictureInPicture":return[3,21]}return[3,23];case 2:return this._handleSetFrameWork($),[3,24];case 3:return this._echoCancellation=!!$.enable,[3,24];case 4:return this._noiseSuppression=!!$.enable,[3,24];case 5:return this._autoGainControl=!!$.enable,[3,24];case 6:return this._handleKeyMetricsStats($),[3,24];case 7:return this._networkProxy=$,[3,24];case 8:return[4,this.setVirtualBackground($)];case 9:return CA.sent(),[3,24];case 10:return[4,this.setTestVirtualBackground($)];case 11:return CA.sent(),[3,24];case 12:return[4,this.setTestBeautyStyle($.style,$.beautyLevel,$.whitenessLevel,$.ruddinessLevel)];case 13:return CA.sent(),[3,24];case 14:return this._setVideoEncodeParamEx($),[3,24];case 15:return this._enableAutoPlayDialog=!!$.enable,[3,24];case 16:return this._latencyLevel=$.latencyLevel,[3,24];case 17:return[4,this._switchPlaybackQuality($)];case 18:return CA.sent(),[3,24];case 19:return[4,this._requestPictureInPicture()];case 20:return CA.sent(),[3,24];case 21:return[4,this._exitPictureInPicture()];case 22:return CA.sent(),[3,24];case 23:return[3,24];case 24:return[3,26];case 25:throw CA.sent();case 26:return[2]}})})},w.prototype._handleSetFrameWork=function(y){var T=y.frameWork,V=y.component,$=y.language;jn(T)&&(this._frameWorkType=T),jn(V)&&(this._component=V),jn($)&&(this._language=$)},w.prototype._handleKeyMetricsStats=function(y){var T=y.key,V=y.opt,$=y.value,CA=y.version,NA=V===Kr;v.default._addKVStat({type:V,key:T,value:$,version:CA,useUV:NA,base:100})},w.prototype._setVideoEncodeParamEx=function(y){return eA(this,void 0,void 0,function(){return X(this,function(T){switch(T.label){case 0:switch(y.streamType){case r.TRTCVideoStreamType.TRTCVideoStreamTypeBig:return[3,1];case r.TRTCVideoStreamType.TRTCVideoStreamTypeSub:return[3,3]}return[3,5];case 1:return[4,this.setVideoEncoderParam(y)];case 2:case 4:return T.sent(),[3,6];case 3:return[4,this.setSubStreamEncoderParam(y)];case 5:return[3,6];case 6:return[2]}})})},w.prototype._switchPlaybackQuality=function(y){return eA(this,void 0,void 0,function(){var T,V,$,CA,NA,KA,C,E;return X(this,function(h){switch(h.label){case 0:if(V=(T=y||{}).quality,$=T.stream_list,CA=$===void 0?[]:$,!V||CA.length===0)return[2];for(NA=null,KA=0,C=CA;KA<C.length;KA++)(E=C[KA]).name===V&&(NA=E),E.userId=E.user_id;return NA&&NA.user_id?[4,this._trtc.callExperimentalAPI("switchPlaybackQuality",{streamList:CA,quality:NA.name})]:[2];case 1:return h.sent(),[2]}})})},w.prototype._requestPictureInPicture=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this.logger.info("".concat(Ci,"._requestPictureInPicture")),[4,this._trtc.callExperimentalAPI("requestPictureInPicture",{enable:!0})];case 1:return y.sent(),[2]}})})},w.prototype._exitPictureInPicture=function(){return eA(this,void 0,void 0,function(){return X(this,function(y){switch(y.label){case 0:return this.logger.info("".concat(Ci,"._exitPictureInPicture")),[4,this._trtc.callExperimentalAPI("requestPictureInPicture",{enable:!1})];case 1:return y.sent(),[2]}})})},w.prototype._emitError=function(y){y&&this.emit&&this.emit(yi,y.code,y.message)},w.prototype._emitWarning=function(y){this.emit&&this.emit(Hi,y)},w.prototype._transformTRTCServerError=function(y){return y.extraCode===-8?bE:String(y.extraCode).indexOf("70")===0?0-y.extraCode:void 0},w.prototype._transformTRTCInvalidOperationError=function(y,T){return T!=="enterRoom"||y.extraCode!==5104&&y.code!==5998?y.code:qg},w.prototype._isCameraError=function(y){return["startLocalPreview","updateLocalView","muteLocalVideo","setVideoEncoderParam","setCurrentCameraDevice","switchCamera","setLocalRenderParams","enableSmallVideoStream","startCameraDeviceTest"].includes(y)},w.prototype._isMicError=function(y){return["startLocalAudio","muteLocalAudio","setAudioCaptureVolume","setCurrentMicDevice","startMicDeviceTest"].includes(y)},w.prototype._transformTRTCDeviceError=function(y,T){var V=this._isCameraError(T),$=this._isMicError(T);switch(y.extraCode){case 5301:case 5305:case 5306:case 5307:case 5308:case 5309:if(V)return GE;if($)return kE;break;case 5302:if(V)return $I;if($)return kB;break;case 5303:if(V)return Ig;if($)return Ju;break;case 5304:if(V)return GB;if($)return _E}},w.prototype._transformTRTCUnKnowError=function(y,T){var V=this._isCameraError(T),$=this._isMicError(T);return V?GE:$?kE:y.code},w.prototype._transformTRTCErrorCode=function(y,T){var V=y?.code;if(y&&y.code)switch(y.code){case v.default.ERROR_CODE.DEVICE_ERROR:V=this._transformTRTCDeviceError(y,T);break;case v.default.ERROR_CODE.SERVER_ERROR:V=this._transformTRTCServerError(y);break;case v.default.ERROR_CODE.INVALID_OPERATION:case v.default.ERROR_CODE.OPERATION_ABORT:V=this._transformTRTCInvalidOperationError(y,T);break;case v.default.ERROR_CODE.UNKNOWN_ERROR:V=this._transformTRTCUnKnowError(y,T)}return V},w.prototype._callFunctionErrorManage=function(y,T){if(!y||y.code!==v.default.ERROR_CODE.OPERATION_ABORT){this.logger.warn("(".concat(T,") failed - ").concat(y.code," - ").concat(y.message));var V=this._transformTRTCErrorCode(y,T);this.emit(yi,V,y.message)}},w.prototype._getTRTCResolution=function(y){var T=(r.TRTCVideoResolution[y]||"").split("_");return{width:+(T.length>1&&T[1]),height:+(T.length>2&&T[2])}},w.prototype._getTRTCVideoProfile=function(y,T){T===void 0&&(T={});var V=T.videoWidth,$=T.videoHeight,CA=T.videoResolution,NA=T.videoFps,KA=T.videoBitrate,C=T.resMode,E=T.resolutionMode,h={};switch(y){case r.TRTCVideoStreamType.TRTCVideoStreamTypeSub:h=this._defaultScreenProfile;break;case r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall:h=this._defaultSmallVideoProfile;break;case r.TRTCVideoStreamType.TRTCVideoStreamTypeBig:default:h=this._defaultVideoProfile}if(ho(CA))ho(V)||(h.width=V),ho($)||(h.height=$);else{var D=this._getTRTCResolution(CA);h.width=D.width,h.height=D.height}if(!ho(C)&&C===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait||!ho(E)&&E===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait){var N=h.height,O=h.width;h.width=N,h.height=O}return NA&&(h.frameRate=NA),KA&&(h.bitrate=KA),h},w.prototype._getTRTCStreamType=function(y){var T;return((T={})[r.TRTCVideoStreamType.TRTCVideoStreamTypeBig]=v.default.TYPE.STREAM_TYPE_MAIN,T[r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall]=v.default.TYPE.STREAM_TYPE_MAIN,T[r.TRTCVideoStreamType.TRTCVideoStreamTypeSub]=v.default.TYPE.STREAM_TYPE_SUB,T)[y]},w.prototype._getTRTCFillMode=function(y){var T;return((T={})[r.TRTCVideoFillMode.TRTCVideoFillMode_Fill]=Hg.COVER,T[r.TRTCVideoFillMode.TRTCVideoFillMode_Fit]=Hg.CONTAIN,T)[y]},w.prototype._getTRTCCloudVideoFillMode=function(y){var T;return((T={})[Hg.COVER]=r.TRTCVideoFillMode.TRTCVideoFillMode_Fill,T[Hg.CONTAIN]=r.TRTCVideoFillMode.TRTCVideoFillMode_Fit,T)[y]},w.prototype._getTRTCCloudMirrorType=function(y){return y===!0?r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable},w.prototype._getLocalRenderMirror=function(y){var T;return y===r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto?!this._getIsMobile()||this._getIsFrontCamera():((T={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,T[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,T)[y]},w.prototype._getTRTCLocalMirror=function(y,T){var V=this._getLocalRenderMirror(y);return ho(T)?!!V&&"both":V&&T?"both":V&&!T?"view":!V&&T?"publish":!(!V&&!T)&&"view"},w.prototype._getTRTCRemoteMirror=function(y){var T;return((T={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!1,T[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,T[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,T)[y]},w.prototype._getTRTCQosPreference=function(y){var T;return((T={})[r.TRTCVideoQosPreference.TRTCVideoQosPreferenceSmooth]=v.default.TYPE.QOS_PREFERENCE_SMOOTH,T[r.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear]=v.default.TYPE.QOS_PREFERENCE_CLEAR,T)[y]},w.prototype._getTRTCAudioQuality=function(y){var T;return((T={})[r.TRTCAudioQuality.TRTCAudioQualitySpeech]=v.default.TYPE.AUDIO_PROFILE_STANDARD,T[r.TRTCAudioQuality.TRTCAudioQualityDefault]=v.default.TYPE.AUDIO_PROFILE_STANDARD,T[r.TRTCAudioQuality.TRTCAudioQualityMusic]=v.default.TYPE.AUDIO_PROFILE_HIGH_STEREO,T)[y]},w.prototype._getTRTCCloudDeviceType=function(y){return{camera:r.TRTCDeviceType.TRTCDeviceTypeCamera,microphone:r.TRTCDeviceType.TRTCDeviceTypeMic,speaker:r.TRTCDeviceType.TRTCDeviceTypeSpeaker}[y]},w.prototype._getTRTCCloudDeviceState=function(y){return{add:r.TRTCDeviceState.TRTCDeviceStateAdd,remove:r.TRTCDeviceState.TRTCDeviceStateRemove,active:r.TRTCDeviceState.TRTCDeviceStateActive}[y]},w.prototype._getTRTCCloudQuality=function(y){return[r.TRTCQuality.TRTCQuality_Unknown,r.TRTCQuality.TRTCQuality_Excellent,r.TRTCQuality.TRTCQuality_Good,r.TRTCQuality.TRTCQuality_Poor,r.TRTCQuality.TRTCQuality_Bad,r.TRTCQuality.TRTCQuality_Vbad,r.TRTCQuality.TRTCQuality_Down][y]},w.prototype._generateLocalVideoData=function(){var y={view:this._getLocalView(),publish:this._getIsVideoPublish(),option:{profile:this._getVideoProfile(),small:this._getSmallStreamVideoProfile()||!1,mirror:this._getTRTCLocalMirror(this._localRenderParams.mirrorType,this._encoderMirror),fillMode:this._getTRTCFillMode(this._localRenderParams.fillMode)}};return this._cameraVideoTrack?y&&Object.assign(y.option,{videoTrack:this._cameraVideoTrack}):this._getIsMobile()?y&&Object.assign(y.option,{useFrontCamera:this._getIsFrontCamera()}):y&&Object.assign(y.option,{cameraId:this._getCurrentCameraId()}),this._getQosPreference()&&y&&Object.assign(y.option,{qosPreference:this._getQosPreference()}),y},w.prototype._generateLocalTestVideoData=function(){var y={view:this._getLocalTestView(),publish:!1,option:{profile:this._getVideoProfile(),mirror:this._getTRTCLocalMirror(this._localRenderParams.mirrorType,this._encoderMirror),fillMode:this._getTRTCFillMode(this._localRenderParams.fillMode)}};return this._getIsMobile()?y&&Object.assign(y.option,{useFrontCamera:this._getIsFrontCamera()}):y&&Object.assign(y.option,{cameraId:this._getCurrentCameraId()}),y},w.prototype._generateLocalAudioData=function(){var y={publish:this._getIsAudioPublish(),mute:this._getAudioMuteType(),muteKeepVolumeDetection:!0,option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile(),captureVolume:this._getCaptureVolume()}};return $t(this._echoCancellation)&&(y.option.echoCancellation=this._echoCancellation),$t(this._autoGainControl)&&(y.option.autoGainControl=this._autoGainControl),$t(this._noiseSuppression)&&(y.option.noiseSuppression=this._noiseSuppression),y},w.prototype._generateLocalTestAudioData=function(){return{publish:!1,option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile()}}},w.prototype._generateRemoteVideoData=function(y,T){return Tr(this._remoteStreamConfig.get("".concat(y,"_").concat(this._getTRTCStreamType(T))))},w.prototype._addTRTCEvents=function(){var y=this;this._trtc.on(v.default.EVENT.ERROR,function(T){T&&y.emit("onError",T.code,T.message)}),this._trtc.on(v.default.EVENT.REMOTE_USER_ENTER,function(T){T?.userId&&y.emit("onRemoteUserEnterRoom",T.userId)}),this._trtc.on(v.default.EVENT.REMOTE_USER_EXIT,function(T){T?.userId&&y.emit("onRemoteUserLeaveRoom",T.userId)}),this._trtc.on(v.default.EVENT.REMOTE_AUDIO_AVAILABLE,function(T){T?.userId&&y.emit("onUserAudioAvailable",T.userId,!0)}),this._trtc.on(v.default.EVENT.REMOTE_AUDIO_UNAVAILABLE,function(T){T?.userId&&y.emit("onUserAudioAvailable",T.userId,!1)}),this._trtc.on(v.default.EVENT.REMOTE_VIDEO_AVAILABLE,function(T){y._emitVideoAvailable(T,!0)}),this._trtc.on(v.default.EVENT.REMOTE_VIDEO_UNAVAILABLE,function(T){y._emitVideoAvailable(T,!1)}),this._trtc.on(v.default.EVENT.AUDIO_VOLUME,function(T){T?.result&&y.emit("onUserVoiceVolume",T?.result,(T?.result||[]).length)}),this._trtc.on(v.default.EVENT.KICKED_OUT,function(T){var V={banned:Vg.banned,room_disband:Vg.roomDisband};jn(V[T.reason])&&y.emit("onExitRoom",V[T.reason])}),this._trtc.on(v.default.EVENT.NETWORK_QUALITY,function(T){var V=T.uplinkNetworkQuality,$=T.downlinkNetworkQuality,CA=new lr("",y._getTRTCCloudQuality(V)),NA=[];y._remoteStatisticsUserIdList.length>0&&(NA=y._remoteStatisticsUserIdList.map(function(KA){return new lr(KA,y._getTRTCCloudQuality($))})),y.emit("onNetworkQuality",CA,NA)}),this._trtc.on(v.default.EVENT.AUTOPLAY_FAILED,function(T){y.emit("onAutoPlayFailed",T)}),this._trtc.on(v.default.EVENT.SEI_MESSAGE,function(T){if(T.data&&typeof T.data=="object"&&T.data instanceof ArrayBuffer){for(var V=new Uint8Array(T.data),$="",CA=0;CA<V.length;CA++)$+=String.fromCharCode(V[CA]);T.stringData=$}y.emit("onRecvSEIMsg",T.userId,JSON.stringify(T))}),this._trtc.on(v.default.EVENT.STATISTICS,function(T){var V,$=T.rtt,CA=T.upLoss,NA=T.downLoss,KA=T.bytesSent,C=T.bytesReceived,E=T.localStatistics,h=T.remoteStatistics;y._remoteStatisticsUserIdList=h.map(function(IA){return IA.userId});var D={big:r.TRTCVideoStreamType.TRTCVideoStreamTypeBig,small:r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,sub:r.TRTCVideoStreamType.TRTCVideoStreamTypeSub},N=((V=E.video)===null||V===void 0?void 0:V.length)>0?E.video.map(function(IA){var BA=new Ji;return BA.width=IA.width,BA.height=IA.height,BA.frameRate=IA.frameRate,BA.videoBitrate=IA.bitrate,BA.audioBitrate=E.audio.bitrate||0,BA.streamType=D[IA.videoType],BA}):[];if(N.length===0&&E.audio.bitrate>0){var O=new Ji;O.audioBitrate=E.audio.bitrate||0,N.push(O)}var Y=[];h.forEach(function(IA){var BA=[],mA=IA.userId,_A=IA.audio.bitrate;if(IA.video&&IA.video.forEach(function(Qe){var Re=new Di;Re.userId=mA,Re.width=Qe.width,Re.height=Qe.height,Re.frameRate=Qe.frameRate,Re.videoBitrate=Qe.bitrate,Re.audioBitrate=_A||0,Re.streamType=D[Qe.videoType],BA.push(Re)}),BA.length===0){var xA=new Di;xA.userId=mA,xA.audioBitrate=_A||0,BA.push(xA)}Y.push.apply(Y,BA)});var j=new ar;j.upLoss=CA,j.downLoss=NA,j.rtt=$,j.sentBytes=KA,j.receivedBytes=C,j.localStatisticsArray=N,j.localStatisticsArraySize=N.length,j.remoteStatisticsArray=Y,j.remoteStatisticsArraySize=Y.length,y.emit("onStatistics",j)}),this._trtc.on(v.default.EVENT.SCREEN_SHARE_STOPPED,function(){y.emit("onScreenCaptureStopped",0),y._clearScreenShareParams(),y._isSharingScreen=!1}),this._trtc.on(v.default.EVENT.PUBLISH_STATE_CHANGED,function(T){var V=T.mediaType;T.state==="started"&&(V==="audio"?y.emit("onSendFirstLocalAudioFrame"):V==="video"?y.emit("onSendFirstLocalVideoFrame",r.TRTCVideoStreamType.TRTCVideoStreamTypeBig):V==="screen"&&y.emit("onSendFirstLocalVideoFrame",r.TRTCVideoStreamType.TRTCVideoStreamTypeSub))}),this._trtc.on(v.default.EVENT.FIRST_VIDEO_FRAME,function(T){var V=T.userId,$=T.streamType,CA=T.width,NA=T.height;y.emit("onFirstVideoFrame",V,$,CA,NA)}),this._trtc.on(v.default.EVENT.AUDIO_PLAY_STATE_CHANGED,function(T){var V=T.userId;T.state==="PLAYING"&&y.emit("onFirstAudioFrame",V)}),this._trtc.on(v.default.EVENT.DEVICE_CHANGED,function(T){var V=T.type,$=T.device,CA=T.action,NA=$.deviceId;if(CA==="active"){switch(V){case"camera":y._currentCameraId=NA,y._currentCamera=$;break;case"microphone":y._currentMicrophoneId=NA,y._currentMicrophone=$;break;case"speaker":y._currentSpeakerId=NA,y._currentSpeaker=$}y.emitOnDeviceChange(NA,y._getTRTCCloudDeviceType(V),y._getTRTCCloudDeviceState(CA))}}),this._trtc.on(v.default.EVENT.CUSTOM_MESSAGE,function(T){T&&y.emit("onRecvCustomCmdMsg",T.userId,T.cmdId,T.seq,T?.data)}),this._trtc.on(v.default.EVENT.CONNECTION_STATE_CHANGED,function(T){y._hasJoinedRoom&&!y._isExitingRoom&&(T.prevState==="CONNECTED"&&T.state==="DISCONNECTED"?y.emit("onConnectionLost"):T.prevState==="DISCONNECTED"&&T.state==="CONNECTING"?y.emit("onTryToReconnect"):T.prevState==="CONNECTING"&&T.state==="CONNECTED"&&y.emit("onConnectionRecovery"))}),this._trtc.on(v.default.EVENT.PICTURE_IN_PICTURE_STATE_CHANGED,function(T){y.emit("onPictureInPictureStateChanged",T)})},w.prototype._removeTRTCEvents=function(){this._trtc.off("*")},w.prototype._emitVideoAvailable=function(y,T){var V=y.userId,$=y.streamType;T?this._remoteStreamMap.set("".concat(V,"_").concat($),!0):this._remoteStreamMap.delete("".concat(V,"_").concat($)),$===v.default.TYPE.STREAM_TYPE_SUB?V&&this.emit("onUserSubStreamAvailable",V,T):V&&this.emit("onUserVideoAvailable",V,T)},w.prototype._setLocalView=function(y){this._localView=y},w.prototype._getLocalView=function(){return this._localView},w.prototype._setIsMobile=function(y){this._isMobile=y},w.prototype._getIsMobile=function(){return this._isMobile},w.prototype._setIsFrontCamera=function(y){this._isFrontCamera=y},w.prototype._getIsFrontCamera=function(){return this._isFrontCamera},w.prototype._getSmallStreamVideoProfile=function(){return this._smallStreamVideoProfile},w.prototype._setSmallStreamVideoProfile=function(y){this._smallStreamVideoProfile=y},w.prototype._setIsVideoPublish=function(y){this._isVideoPublish=y},w.prototype._getIsVideoPublish=function(){return this._isVideoPublish},w.prototype._setVideoProfile=function(y){this._videoProfile=y},w.prototype._getVideoProfile=function(){return this._videoProfile},w.prototype._setQosPreference=function(y){this._qosPreference=y},w.prototype._getQosPreference=function(){return this._qosPreference},w.prototype._setLocalTestView=function(y){this._localTestView=y},w.prototype._getLocalTestView=function(){return this._localTestView},w.prototype._setScreenShareParams=function(y){var T=y.view,V=y.systemAudio,$=y.fillMode,CA=y.profile,NA=y.videoTrack,KA=y.qosPreference;ho(T)||(this._screenShareParams.view=T),ho(V)||(this._screenShareParams.option.systemAudio=V),ho($)||(this._screenShareParams.option.fillMode=$),ho(CA)||(this._screenShareParams.option.profile=CA),ho(NA)||(this._screenShareParams.option.videoTrack=NA),ho(KA)||(this._screenShareParams.option.qosPreference=KA),ho(y.streamType)||(this._screenShareParams.streamType=this._getTRTCStreamType(y.streamType))},w.prototype._clearScreenShareParams=function(){var y,T,V,$,CA;!((y=this._screenShareParams)===null||y===void 0)&&y.view&&delete this._screenShareParams.view,!((V=(T=this._screenShareParams)===null||T===void 0?void 0:T.option)===null||V===void 0)&&V.systemAudio&&delete this._screenShareParams.option.systemAudio,!((CA=($=this._screenShareParams)===null||$===void 0?void 0:$.option)===null||CA===void 0)&&CA.videoTrack&&delete this._screenShareParams.option.videoTrack},w.prototype._getScreenShareParams=function(){return this._screenShareParams},w.prototype._setIsAudioPublish=function(y){this._isAudioPublish=y},w.prototype._getIsAudioPublish=function(){return this._isAudioPublish},w.prototype._setAudioMuteType=function(y){this._audioMuteType=y},w.prototype._getAudioMuteType=function(){return this._audioMuteType},w.prototype._setAudioProfile=function(y){this._audioProfile=y},w.prototype._getAudioProfile=function(){return this._audioProfile},w.prototype._getCaptureVolume=function(){return this._captureVolume},w.prototype._setCaptureVolume=function(y){this._captureVolume=y},w.prototype._setCurrentCameraId=function(y){this._currentCameraId=y},w.prototype._getCurrentCameraId=function(){return this._currentCameraId},w.prototype._setCurrentMicrophoneId=function(y){this._currentMicrophoneId=y},w.prototype._getCurrentMicrophoneId=function(){return this._currentMicrophoneId},w.prototype._setCurrentSpeakerId=function(y){this._currentSpeakerId=y},w.prototype._getCurrentSpeakerId=function(){return this._currentSpeakerId},w.prototype._setRemoteStreamConfig=function(y,T,V){var $=this._remoteStreamConfig.get("".concat(y,"_").concat(this._getTRTCStreamType(T)));$||($={userId:y,streamType:this._getTRTCStreamType(T),option:{mirror:this._getTRTCRemoteMirror(r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),fillMode:this._getTRTCFillMode(r.TRTCVideoFillMode.TRTCVideoFillMode_Fit)}});var CA=V.view,NA=V.mirrorType,KA=V.fillMode,C=V.small;ho(CA)||($.view=CA),ho(NA)||($.option.mirror=this._getTRTCRemoteMirror(NA)),ho(KA)||($.option.fillMode=this._getTRTCFillMode(KA)),ho(C)||($.option.small=C),this._remoteStreamConfig.set("".concat(y,"_").concat(this._getTRTCStreamType(T)),$)},w.prototype._inheritPropertiesToSubCloud=function(y){y._frameWorkType=this._frameWorkType,y._component=this._component,y._language=this._language,y._networkProxy=z({},this._networkProxy),y._latencyLevel=this._latencyLevel,y._enableAutoPlayDialog=this._enableAutoPlayDialog},w.prototype._inheritEventsToSubCloud=function(y){var T=this;y._trtc.on(v.default.EVENT.AUTOPLAY_FAILED,function(V){T.emit("onAutoPlayFailed",V)}),y._trtc.on(v.default.EVENT.PICTURE_IN_PICTURE_STATE_CHANGED,function(V){T.emit("onPictureInPictureStateChanged",V)})},w.prototype.handleDeviceChange=function(){return eA(this,void 0,void 0,function(){var y=this;return X(this,function(T){return v.default.getCameraList().then(function(V){return eA(y,void 0,void 0,function(){return X(this,function($){switch($.label){case 0:return this._cameraList.length===V.length?[2]:[4,this.deviceChangeManage(this._cameraList,V,r.TRTCDeviceType.TRTCDeviceTypeCamera)];case 1:return $.sent(),this._cameraList=V,[2]}})})}),v.default.getMicrophoneList().then(function(V){return eA(y,void 0,void 0,function(){return X(this,function($){switch($.label){case 0:return[4,this.deviceChangeManage(this._microphoneList,V,r.TRTCDeviceType.TRTCDeviceTypeMic)];case 1:return $.sent(),this._microphoneList=V,[2]}})})}),v.default.getSpeakerList().then(function(V){return eA(y,void 0,void 0,function(){return X(this,function($){switch($.label){case 0:return[4,this.deviceChangeManage(this._speakerList,V,r.TRTCDeviceType.TRTCDeviceTypeSpeaker)];case 1:return $.sent(),this._speakerList=V,[2]}})})}),[2]})})},w.prototype.isSameDevice=function(y,T){var V=y&&y.deviceId&&y.groupId&&y.label,$=T&&T.deviceId&&T.groupId&&T.label;return!(!V||!$)&&y.deviceId===T.deviceId&&y.groupId===T.groupId&&y.label===T.label},w.prototype.deviceChangeManage=function(y,T,V){return eA(this,void 0,void 0,function(){var $,CA,NA,KA,C;return X(this,function(E){switch(E.label){case 0:return $=void 0,y.length!==T.length&&(CA=(T||[]).map(function(h){return h.deviceId}),NA=new qt,y.length>T.length?(NA=y.filter(function(h){return!CA.includes(h.deviceId)})[0]||{},$=r.TRTCDeviceState.TRTCDeviceStateRemove):(CA=(y||[]).map(function(h){return h.deviceId}),NA=T.filter(function(h){return!CA.includes(h.deviceId)})[0]||{},$=r.TRTCDeviceState.TRTCDeviceStateAdd),KA=NA.deviceId,this.emitOnDeviceChange(KA,V,$)),C=this.getDefaultDeviceInfo(T),V!==r.TRTCDeviceType.TRTCDeviceTypeCamera||$!==r.TRTCDeviceState.TRTCDeviceStateRemove?[3,3]:this.isSameDevice(this._currentCamera,C)?[2]:C.deviceId?[4,this.autoChangeDevice(V,C)]:[3,2];case 1:E.sent(),E.label=2;case 2:E.label=3;case 3:return V!==r.TRTCDeviceType.TRTCDeviceTypeMic?[3,6]:this.isSameDevice(this._currentMicrophone,C)?[2]:C.deviceId?[4,this.autoChangeDevice(V,C)]:[3,5];case 4:E.sent(),E.label=5;case 5:E.label=6;case 6:return V!==r.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,9]:this.isSameDevice(this._currentSpeaker,C)?[2]:C.deviceId?[4,this.autoChangeDevice(V,C)]:[3,8];case 7:E.sent(),E.label=8;case 8:E.label=9;case 9:return[2]}})})},w.prototype.getDefaultDeviceInfo=function(y){var T=new qt;if(y.length===0)return T;var V=y.filter(function($){return $.deviceId==="default"});return T=V.length>0?V[0]:y[0]},w.prototype.autoChangeDevice=function(y,T){return eA(this,void 0,void 0,function(){var V,$,CA;return X(this,function(NA){switch(NA.label){case 0:return V=T.deviceId,y!==r.TRTCDeviceType.TRTCDeviceTypeCamera?[3,6]:(this._setCurrentCameraId(V),[4,this._updateLocalVideo()]);case 1:NA.sent(),NA.label=2;case 2:return NA.trys.push([2,4,,5]),[4,this._testTrtc.updateLocalVideo({option:{cameraId:V}})];case 3:return NA.sent(),[3,5];case 4:return $=NA.sent(),console.log("testTRTC error",JSON.stringify($)),$.code,v.default.ERROR_CODE.OPERATION_ABORT,[3,5];case 5:this._currentCameraId=V,this._currentCamera=T,this.emitOnDeviceChange(V,y,r.TRTCDeviceState.TRTCDeviceStateActive),NA.label=6;case 6:return y!==r.TRTCDeviceType.TRTCDeviceTypeMic?[3,12]:(this._setCurrentMicrophoneId(V),[4,this._updateLocalAudio()]);case 7:NA.sent(),NA.label=8;case 8:return NA.trys.push([8,10,,11]),[4,this._testTrtc.updateLocalAudio({option:{microphoneId:V}})];case 9:return NA.sent(),[3,11];case 10:return CA=NA.sent(),console.log("testTRTC error",JSON.stringify(CA)),CA.code,v.default.ERROR_CODE.OPERATION_ABORT,[3,11];case 11:this._currentMicrophoneId=V,this._currentMicrophone=T,this.emitOnDeviceChange(V,y,r.TRTCDeviceState.TRTCDeviceStateActive),NA.label=12;case 12:return y!==r.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,14]:[4,v.default.setCurrentSpeaker(V)];case 13:NA.sent(),this._currentSpeakerId=V,this._currentSpeaker=T,this.emitOnDeviceChange(V,y,r.TRTCDeviceState.TRTCDeviceStateActive),NA.label=14;case 14:return[2]}})})},w.prototype.emitOnDeviceChange=function(y,T,V){this.emit("onDeviceChange",y,T,V)},w.prototype.getMediaMixingManager=function(){return new Hc({logger:this.logger,trtc:this._trtc,trtcCloud:this})},w.prototype.getAITranscriberManager=function(){return new bB({logger:this.logger,trtc:this._trtc})},w.shareInstance=null,w.subCloudMap=new Map,w.enableSEI=!1,w.assetsPath="",sA([(q="exitRoom",function(y,T,V){var $=V.value;return V.value=function(){for(var CA,NA,KA,C,E=[],h=0;h<arguments.length;h++)E[h]=arguments[h];var D=[];return(NA=(CA=Vc.get(this))===null||CA===void 0?void 0:CA.queue)===null||NA===void 0||NA.forEach(function(N){return D.push(N)}),(KA=Pl.get(this))===null||KA===void 0||KA.forEach(function(N){return N?.queue.forEach(function(O){return D.push(O)})}),(C=ma.get(this))===null||C===void 0||C.forEach(function(N){return N?.queue.forEach(function(O){return D.push(O)})}),D.forEach(function(N){N.reject(new Error("aborted ".concat(q)))}),Vc.delete(this),Pl.delete(this),ma.delete(this),$.apply(this,E)},V})],w.prototype,"exitRoom",null),sA([tc(function(y){return y})],w.prototype,"muteRemoteAudio",null),sA([tc(function(y){return y})],w.prototype,"muteRemoteVideoStream",null),sA([tc(function(y){var T=y||{},V=T.quality,$=T.stream_list,CA=$===void 0?[]:$,NA=CA.some(function(KA){return KA.name===V});return V&&NA?CA.map(function(KA){return KA.user_id}):(console.warn("[QualitySwitch] Invalid params: target ".concat(V," not found in list")),[])},{deduplicate:!0})],w.prototype,"_switchPlaybackQuality",null),w}(Dt);r.Rect=yt,r.TRTCDeviceInfo=qt,r.TRTCImageBuffer=st,r.TRTCLocalStatistics=Ji,r.TRTCMixUser=Xe,r.TRTCNetworkQosParam=pe,r.TRTCParams=Ki,r.TRTCPublishCDNParam=wt,r.TRTCQualityInfo=lr,r.TRTCRemoteStatistics=Di,r.TRTCRenderParams=no,r.TRTCScreenCaptureProperty=zt,r.TRTCScreenCaptureSourceInfo=be,r.TRTCStatistics=ar,r.TRTCTranscodingConfig=ht,r.TRTCVideoEncParam=Ur,r.TRTCVolumeInfo=Ni,r.default=LB,Object.defineProperty(r,"__esModule",{value:!0})})}(fG,fG.exports)),fG.exports}var R2={exports:{}},yEA=R2.exports,c8;function REA(){return c8||(c8=1,function(t,i){(function(r,s){t.exports=s()})(yEA,function(){function r(b,rA){var gA=Object.keys(b);if(Object.getOwnPropertySymbols){var pA=Object.getOwnPropertySymbols(b);rA&&(pA=pA.filter(function(vA){return Object.getOwnPropertyDescriptor(b,vA).enumerable})),gA.push.apply(gA,pA)}return gA}function s(b){for(var rA=1;rA<arguments.length;rA++){var gA=arguments[rA]!=null?arguments[rA]:{};rA%2?r(Object(gA),!0).forEach(function(pA){m(b,pA,gA[pA])}):Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(gA)):r(Object(gA)).forEach(function(pA){Object.defineProperty(b,pA,Object.getOwnPropertyDescriptor(gA,pA))})}return b}function g(b){return(g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(rA){return typeof rA}:function(rA){return rA&&typeof Symbol=="function"&&rA.constructor===Symbol&&rA!==Symbol.prototype?"symbol":typeof rA})(b)}function B(b,rA,gA,pA,vA,Ae,UA){try{var re=b[Ae](UA),LA=re.value}catch(se){return void gA(se)}re.done?rA(LA):Promise.resolve(LA).then(pA,vA)}function Q(b){return function(){var rA=this,gA=arguments;return new Promise(function(pA,vA){var Ae=b.apply(rA,gA);function UA(LA){B(Ae,pA,vA,UA,re,"next",LA)}function re(LA){B(Ae,pA,vA,UA,re,"throw",LA)}UA(void 0)})}}function f(b,rA){for(var gA=0;gA<rA.length;gA++){var pA=rA[gA];pA.enumerable=pA.enumerable||!1,pA.configurable=!0,"value"in pA&&(pA.writable=!0),Object.defineProperty(b,pA.key,pA)}}function m(b,rA,gA){return rA in b?Object.defineProperty(b,rA,{value:gA,enumerable:!0,configurable:!0,writable:!0}):b[rA]=gA,b}function M(b,rA){return function(gA){if(Array.isArray(gA))return gA}(b)||function(gA,pA){var vA=gA==null?null:typeof Symbol<"u"&&gA[Symbol.iterator]||gA["@@iterator"];if(vA!=null){var Ae,UA,re=[],LA=!0,se=!1;try{for(vA=vA.call(gA);!(LA=(Ae=vA.next()).done)&&(re.push(Ae.value),!pA||re.length!==pA);LA=!0);}catch(He){se=!0,UA=He}finally{try{LA||vA.return==null||vA.return()}finally{if(se)throw UA}}return re}}(b,rA)||function(gA,pA){if(gA){if(typeof gA=="string")return v(gA,pA);var vA=Object.prototype.toString.call(gA).slice(8,-1);if(vA==="Object"&&gA.constructor&&(vA=gA.constructor.name),vA==="Map"||vA==="Set")return Array.from(gA);if(vA==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(vA))return v(gA,pA)}}(b,rA)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function v(b,rA){(rA==null||rA>b.length)&&(rA=b.length);for(var gA=0,pA=new Array(rA);gA<rA;gA++)pA[gA]=b[gA];return pA}var U=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof bI<"u"?bI:typeof self<"u"?self:{};function AA(b,rA){return b(rA={exports:{}},rA.exports),rA.exports}AA(function(b){var rA=function(gA){var pA=Object.prototype,vA=pA.hasOwnProperty,Ae=typeof Symbol=="function"?Symbol:{},UA=Ae.iterator||"@@iterator",re=Ae.asyncIterator||"@@asyncIterator",LA=Ae.toStringTag||"@@toStringTag";function se(Ht,Qt,Ti){return Object.defineProperty(Ht,Qt,{value:Ti,enumerable:!0,configurable:!0,writable:!0}),Ht[Qt]}try{se({},"")}catch{se=function(Qt,Ti,Ar){return Qt[Ti]=Ar}}function He(Ht,Qt,Ti,Ar){var so=Qt&&Qt.prototype instanceof Pe?Qt:Pe,As=Object.create(so.prototype),ic=new lg(Ar||[]);return As._invoke=function(_C,Cg,Cn){var PE="suspendedStart";return function(JE,Ys){if(PE==="executing")throw new Error("Generator is already running");if(PE==="completed"){if(JE==="throw")throw Ys;return fD()}for(Cn.method=JE,Cn.arg=Ys;;){var Kc=Cn.delegate;if(Kc){var oc=$a(Kc,Cn);if(oc){if(oc===ft)continue;return oc}}if(Cn.method==="next")Cn.sent=Cn._sent=Cn.arg;else if(Cn.method==="throw"){if(PE==="suspendedStart")throw PE="completed",Cn.arg;Cn.dispatchException(Cn.arg)}else Cn.method==="return"&&Cn.abrupt("return",Cn.arg);PE="executing";var jg=It(_C,Cg,Cn);if(jg.type==="normal"){if(PE=Cn.done?"completed":"suspendedYield",jg.arg===ft)continue;return{value:jg.arg,done:Cn.done}}jg.type==="throw"&&(PE="completed",Cn.method="throw",Cn.arg=jg.arg)}}}(Ht,Ti,ic),As}function It(Ht,Qt,Ti){try{return{type:"normal",arg:Ht.call(Qt,Ti)}}catch(Ar){return{type:"throw",arg:Ar}}}gA.wrap=He;var ft={};function Pe(){}function Ot(){}function gi(){}var go={};se(go,UA,function(){return this});var Vi=Object.getPrototypeOf,mt=Vi&&Vi(Vi(ql([])));mt&&mt!==pA&&vA.call(mt,UA)&&(go=mt);var Sn=gi.prototype=Pe.prototype=Object.create(go);function $i(Ht){["next","throw","return"].forEach(function(Qt){se(Ht,Qt,function(Ti){return this._invoke(Qt,Ti)})})}function Jr(Ht,Qt){var Ti;this._invoke=function(Ar,so){function As(){return new Qt(function(ic,_C){(function Cg(Cn,PE,JE,Ys){var Kc=It(Ht[Cn],Ht,PE);if(Kc.type!=="throw"){var oc=Kc.arg,jg=oc.value;return jg&&typeof jg=="object"&&vA.call(jg,"__await")?Qt.resolve(jg.__await).then(function(Kl){Cg("next",Kl,JE,Ys)},function(Kl){Cg("throw",Kl,JE,Ys)}):Qt.resolve(jg).then(function(Kl){oc.value=Kl,JE(oc)},function(Kl){return Cg("throw",Kl,JE,Ys)})}Ys(Kc.arg)})(Ar,so,ic,_C)})}return Ti=Ti?Ti.then(As,As):As()}}function $a(Ht,Qt){var Ti=Ht.iterator[Qt.method];if(Ti===void 0){if(Qt.delegate=null,Qt.method==="throw"){if(Ht.iterator.return&&(Qt.method="return",Qt.arg=void 0,$a(Ht,Qt),Qt.method==="throw"))return ft;Qt.method="throw",Qt.arg=new TypeError("The iterator does not provide a 'throw' method")}return ft}var Ar=It(Ti,Ht.iterator,Qt.arg);if(Ar.type==="throw")return Qt.method="throw",Qt.arg=Ar.arg,Qt.delegate=null,ft;var so=Ar.arg;return so?so.done?(Qt[Ht.resultName]=so.value,Qt.next=Ht.nextLoc,Qt.method!=="return"&&(Qt.method="next",Qt.arg=void 0),Qt.delegate=null,ft):so:(Qt.method="throw",Qt.arg=new TypeError("iterator result is not an object"),Qt.delegate=null,ft)}function La(Ht){var Qt={tryLoc:Ht[0]};1 in Ht&&(Qt.catchLoc=Ht[1]),2 in Ht&&(Qt.finallyLoc=Ht[2],Qt.afterLoc=Ht[3]),this.tryEntries.push(Qt)}function bn(Ht){var Qt=Ht.completion||{};Qt.type="normal",delete Qt.arg,Ht.completion=Qt}function lg(Ht){this.tryEntries=[{tryLoc:"root"}],Ht.forEach(La,this),this.reset(!0)}function ql(Ht){if(Ht){var Qt=Ht[UA];if(Qt)return Qt.call(Ht);if(typeof Ht.next=="function")return Ht;if(!isNaN(Ht.length)){var Ti=-1,Ar=function so(){for(;++Ti<Ht.length;)if(vA.call(Ht,Ti))return so.value=Ht[Ti],so.done=!1,so;return so.value=void 0,so.done=!0,so};return Ar.next=Ar}}return{next:fD}}function fD(){return{value:void 0,done:!0}}return Ot.prototype=gi,se(Sn,"constructor",gi),se(gi,"constructor",Ot),Ot.displayName=se(gi,LA,"GeneratorFunction"),gA.isGeneratorFunction=function(Ht){var Qt=typeof Ht=="function"&&Ht.constructor;return!!Qt&&(Qt===Ot||(Qt.displayName||Qt.name)==="GeneratorFunction")},gA.mark=function(Ht){return Object.setPrototypeOf?Object.setPrototypeOf(Ht,gi):(Ht.__proto__=gi,se(Ht,LA,"GeneratorFunction")),Ht.prototype=Object.create(Sn),Ht},gA.awrap=function(Ht){return{__await:Ht}},$i(Jr.prototype),se(Jr.prototype,re,function(){return this}),gA.AsyncIterator=Jr,gA.async=function(Ht,Qt,Ti,Ar,so){so===void 0&&(so=Promise);var As=new Jr(He(Ht,Qt,Ti,Ar),so);return gA.isGeneratorFunction(Qt)?As:As.next().then(function(ic){return ic.done?ic.value:As.next()})},$i(Sn),se(Sn,LA,"Generator"),se(Sn,UA,function(){return this}),se(Sn,"toString",function(){return"[object Generator]"}),gA.keys=function(Ht){var Qt=[];for(var Ti in Ht)Qt.push(Ti);return Qt.reverse(),function Ar(){for(;Qt.length;){var so=Qt.pop();if(so in Ht)return Ar.value=so,Ar.done=!1,Ar}return Ar.done=!0,Ar}},gA.values=ql,lg.prototype={constructor:lg,reset:function(Ht){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(bn),!Ht)for(var Qt in this)Qt.charAt(0)==="t"&&vA.call(this,Qt)&&!isNaN(+Qt.slice(1))&&(this[Qt]=void 0)},stop:function(){this.done=!0;var Ht=this.tryEntries[0].completion;if(Ht.type==="throw")throw Ht.arg;return this.rval},dispatchException:function(Ht){if(this.done)throw Ht;var Qt=this;function Ti(Cg,Cn){return As.type="throw",As.arg=Ht,Qt.next=Cg,Cn&&(Qt.method="next",Qt.arg=void 0),!!Cn}for(var Ar=this.tryEntries.length-1;Ar>=0;--Ar){var so=this.tryEntries[Ar],As=so.completion;if(so.tryLoc==="root")return Ti("end");if(so.tryLoc<=this.prev){var ic=vA.call(so,"catchLoc"),_C=vA.call(so,"finallyLoc");if(ic&&_C){if(this.prev<so.catchLoc)return Ti(so.catchLoc,!0);if(this.prev<so.finallyLoc)return Ti(so.finallyLoc)}else if(ic){if(this.prev<so.catchLoc)return Ti(so.catchLoc,!0)}else{if(!_C)throw new Error("try statement without catch or finally");if(this.prev<so.finallyLoc)return Ti(so.finallyLoc)}}}},abrupt:function(Ht,Qt){for(var Ti=this.tryEntries.length-1;Ti>=0;--Ti){var Ar=this.tryEntries[Ti];if(Ar.tryLoc<=this.prev&&vA.call(Ar,"finallyLoc")&&this.prev<Ar.finallyLoc){var so=Ar;break}}so&&(Ht==="break"||Ht==="continue")&&so.tryLoc<=Qt&&Qt<=so.finallyLoc&&(so=null);var As=so?so.completion:{};return As.type=Ht,As.arg=Qt,so?(this.method="next",this.next=so.finallyLoc,ft):this.complete(As)},complete:function(Ht,Qt){if(Ht.type==="throw")throw Ht.arg;return Ht.type==="break"||Ht.type==="continue"?this.next=Ht.arg:Ht.type==="return"?(this.rval=this.arg=Ht.arg,this.method="return",this.next="end"):Ht.type==="normal"&&Qt&&(this.next=Qt),ft},finish:function(Ht){for(var Qt=this.tryEntries.length-1;Qt>=0;--Qt){var Ti=this.tryEntries[Qt];if(Ti.finallyLoc===Ht)return this.complete(Ti.completion,Ti.afterLoc),bn(Ti),ft}},catch:function(Ht){for(var Qt=this.tryEntries.length-1;Qt>=0;--Qt){var Ti=this.tryEntries[Qt];if(Ti.tryLoc===Ht){var Ar=Ti.completion;if(Ar.type==="throw"){var so=Ar.arg;bn(Ti)}return so}}throw new Error("illegal catch attempt")},delegateYield:function(Ht,Qt,Ti){return this.delegate={iterator:ql(Ht),resultName:Qt,nextLoc:Ti},this.method==="next"&&(this.arg=void 0),ft}},gA}(b.exports);try{regeneratorRuntime=rA}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=rA:Function("r","regeneratorRuntime = r")(rA)}});var z,sA,eA=function(b){return b&&b.Math==Math&&b},X=eA(typeof globalThis=="object"&&globalThis)||eA(typeof window=="object"&&window)||eA(typeof self=="object"&&self)||eA(typeof U=="object"&&U)||function(){return this}()||Function("return this")(),QA=function(b){try{return!!b()}catch{return!0}},wA=!QA(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),HA={}.propertyIsEnumerable,VA=Object.getOwnPropertyDescriptor,ue={f:VA&&!HA.call({1:2},1)?function(b){var rA=VA(this,b);return!!rA&&rA.enumerable}:HA},jA=function(b,rA){return{enumerable:!(1&b),configurable:!(2&b),writable:!(4&b),value:rA}},Ve={}.toString,Ze=function(b){return Ve.call(b).slice(8,-1)},Me="".split,qe=QA(function(){return!Object("z").propertyIsEnumerable(0)})?function(b){return Ze(b)=="String"?Me.call(b,""):Object(b)}:Object,Et=function(b){if(b==null)throw TypeError("Can't call method on "+b);return b},Je=function(b){return qe(Et(b))},$e=function(b){return typeof b=="function"},Dt=function(b){return typeof b=="object"?b!==null:$e(b)},Zi=function(b){return $e(b)?b:void 0},bi=function(b,rA){return arguments.length<2?Zi(X[b]):X[b]&&X[b][rA]},qt=bi("navigator","userAgent")||"",ai=X.process,Ki=X.Deno,Ur=ai&&ai.versions||Ki&&Ki.version,Er=Ur&&Ur.v8;Er?sA=(z=Er.split("."))[0]<4?1:z[0]+z[1]:qt&&(!(z=qt.match(/Edge\/(\d+)/))||z[1]>=74)&&(z=qt.match(/Chrome\/(\d+)/))&&(sA=z[1]);var no=sA&&+sA,Kn=!!Object.getOwnPropertySymbols&&!QA(function(){var b=Symbol();return!String(b)||!(Object(b)instanceof Symbol)||!Symbol.sham&&no&&no<41}),Xi=Kn&&!Symbol.sham&&typeof Symbol.iterator=="symbol",yr=Xi?function(b){return typeof b=="symbol"}:function(b){var rA=bi("Symbol");return $e(rA)&&Object(b)instanceof rA},lr=function(b){try{return String(b)}catch{return"Object"}},Ni=function(b){if($e(b))return b;throw TypeError(lr(b)+" is not a function")},wt=function(b,rA){var gA=b[rA];return gA==null?void 0:Ni(gA)},Ji=function(b,rA){try{Object.defineProperty(X,b,{value:rA,configurable:!0,writable:!0})}catch{X[b]=rA}return rA},Di=X["__core-js_shared__"]||Ji("__core-js_shared__",{}),ar=AA(function(b){(b.exports=function(rA,gA){return Di[rA]||(Di[rA]=gA!==void 0?gA:{})})("versions",[]).push({version:"3.18.2",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})}),MA=function(b){return Object(Et(b))},YA={}.hasOwnProperty,pe=Object.hasOwn||function(b,rA){return YA.call(MA(b),rA)},st=0,Te=Math.random(),be=function(b){return"Symbol("+String(b===void 0?"":b)+")_"+(++st+Te).toString(36)},yt=ar("wks"),ht=X.Symbol,ae=Xi?ht:ht&&ht.withoutSetter||be,ye=function(b){return pe(yt,b)&&(Kn||typeof yt[b]=="string")||(Kn&&pe(ht,b)?yt[b]=ht[b]:yt[b]=ae("Symbol."+b)),yt[b]},Xe=ye("toPrimitive"),ot=function(b,rA){if(!Dt(b)||yr(b))return b;var gA,pA=wt(b,Xe);if(pA){if(gA=pA.call(b,rA),!Dt(gA)||yr(gA))return gA;throw TypeError("Can't convert object to primitive value")}return function(vA,Ae){var UA,re;if($e(UA=vA.toString)&&!Dt(re=UA.call(vA))||$e(UA=vA.valueOf)&&!Dt(re=UA.call(vA)))return re;throw TypeError("Can't convert object to primitive value")}(b)},zt=function(b){var rA=ot(b,"string");return yr(rA)?rA:String(rA)},yi=X.document,Hi=Dt(yi)&&Dt(yi.createElement),Ei=function(b){return Hi?yi.createElement(b):{}},ji=!wA&&!QA(function(){return Object.defineProperty(Ei("div"),"a",{get:function(){return 7}}).a!=7}),Xo=Object.getOwnPropertyDescriptor,sr={f:wA?Xo:function(b,rA){if(b=Je(b),rA=zt(rA),ji)try{return Xo(b,rA)}catch{}if(pe(b,rA))return jA(!ue.f.call(b,rA),b[rA])}},Lo=function(b){if(Dt(b))return b;throw TypeError(String(b)+" is not an object")},Nr=Object.defineProperty,Vo={f:wA?Nr:function(b,rA,gA){if(Lo(b),rA=zt(rA),Lo(gA),ji)try{return Nr(b,rA,gA)}catch{}if("get"in gA||"set"in gA)throw TypeError("Accessors not supported");return"value"in gA&&(b[rA]=gA.value),b}},et=wA?function(b,rA,gA){return Vo.f(b,rA,jA(1,gA))}:function(b,rA,gA){return b[rA]=gA,b},Kr=Function.toString;$e(Di.inspectSource)||(Di.inspectSource=function(b){return Kr.call(b)});var Qn,ho,jn,$t=Di.inspectSource,$r=X.WeakMap,On=$e($r)&&/native code/.test($t($r)),An=ar("keys"),Tr=function(b){return An[b]||(An[b]=be(b))},ei={},Es=X.WeakMap;if(On||Di.state){var jr=Di.state||(Di.state=new Es),Gr=jr.get,$o=jr.has,sn=jr.set;Qn=function(b,rA){if($o.call(jr,b))throw new TypeError("Object already initialized");return rA.facade=b,sn.call(jr,b,rA),rA},ho=function(b){return Gr.call(jr,b)||{}},jn=function(b){return $o.call(jr,b)}}else{var dn=Tr("state");ei[dn]=!0,Qn=function(b,rA){if(pe(b,dn))throw new TypeError("Object already initialized");return rA.facade=b,et(b,dn,rA),rA},ho=function(b){return pe(b,dn)?b[dn]:{}},jn=function(b){return pe(b,dn)}}var hn={set:Qn,get:ho,has:jn,enforce:function(b){return jn(b)?ho(b):Qn(b,{})},getterFor:function(b){return function(rA){var gA;if(!Dt(rA)||(gA=ho(rA)).type!==b)throw TypeError("Incompatible receiver, "+b+" required");return gA}}},Gi=Function.prototype,pn=wA&&Object.getOwnPropertyDescriptor,nI=pe(Gi,"name"),gr={PROPER:nI&&function(){}.name==="something",CONFIGURABLE:nI&&(!wA||wA&&pn(Gi,"name").configurable)},gn=AA(function(b){var rA=gr.CONFIGURABLE,gA=hn.get,pA=hn.enforce,vA=String(String).split("String");(b.exports=function(Ae,UA,re,LA){var se,He=!!LA&&!!LA.unsafe,It=!!LA&&!!LA.enumerable,ft=!!LA&&!!LA.noTargetGet,Pe=LA&&LA.name!==void 0?LA.name:UA;$e(re)&&(String(Pe).slice(0,7)==="Symbol("&&(Pe="["+String(Pe).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!pe(re,"name")||rA&&re.name!==Pe)&&et(re,"name",Pe),(se=pA(re)).source||(se.source=vA.join(typeof Pe=="string"?Pe:""))),Ae!==X?(He?!ft&&Ae[UA]&&(It=!0):delete Ae[UA],It?Ae[UA]=re:et(Ae,UA,re)):It?Ae[UA]=re:Ji(UA,re)})(Function.prototype,"toString",function(){return $e(this)&&gA(this).source||$t(this)})}),Yo=Math.ceil,Tg=Math.floor,So=function(b){var rA=+b;return rA!=rA||rA===0?0:(rA>0?Tg:Yo)(rA)},ao=Math.max,EE=Math.min,Ta=Math.min,po=function(b){return b>0?Ta(So(b),9007199254740991):0},Ja=function(b){return po(b.length)},Mc=function(b){return function(rA,gA,pA){var vA,Ae=Je(rA),UA=Ja(Ae),re=function(LA,se){var He=So(LA);return He<0?ao(He+se,0):EE(He,se)}(pA,UA);if(b&&gA!=gA){for(;UA>re;)if((vA=Ae[re++])!=vA)return!0}else for(;UA>re;re++)if((b||re in Ae)&&Ae[re]===gA)return b||re||0;return!b&&-1}},Qr={indexOf:Mc(!1)},Fo=Qr.indexOf,$s=function(b,rA){var gA,pA=Je(b),vA=0,Ae=[];for(gA in pA)!pe(ei,gA)&&pe(pA,gA)&&Ae.push(gA);for(;rA.length>vA;)pe(pA,gA=rA[vA++])&&(~Fo(Ae,gA)||Ae.push(gA));return Ae},Ha=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Gs=Ha.concat("length","prototype"),Ga={f:Object.getOwnPropertyNames||function(b){return $s(b,Gs)}},Rr={f:Object.getOwnPropertySymbols},Ia=bi("Reflect","ownKeys")||function(b){var rA=Ga.f(Lo(b)),gA=Rr.f;return gA?rA.concat(gA(b)):rA},fo=function(b,rA){for(var gA=Ia(rA),pA=Vo.f,vA=sr.f,Ae=0;Ae<gA.length;Ae++){var UA=gA[Ae];pe(b,UA)||pA(b,UA,vA(rA,UA))}},aI=/#|\.prototype\./,en=function(b,rA){var gA=Gg[qo(b)];return gA==fn||gA!=kg&&($e(rA)?QA(rA):!!rA)},qo=en.normalize=function(b){return String(b).replace(aI,".").toLowerCase()},Gg=en.data={},kg=en.NATIVE="N",fn=en.POLYFILL="P",ls=en,Or=sr.f,Po=function(b,rA){var gA,pA,vA,Ae,UA,re=b.target,LA=b.global,se=b.stat;if(gA=LA?X:se?X[re]||Ji(re,{}):(X[re]||{}).prototype)for(pA in rA){if(Ae=rA[pA],vA=b.noTargetGet?(UA=Or(gA,pA))&&UA.value:gA[pA],!ls(LA?pA:re+(se?".":"#")+pA,b.forced)&&vA!==void 0){if(typeof Ae==typeof vA)continue;fo(Ae,vA)}(b.sham||vA&&vA.sham)&&et(Ae,"sham",!0),gn(gA,pA,Ae,b)}},Ba=Array.isArray||function(b){return Ze(b)=="Array"},Mr=function(b,rA,gA){var pA=zt(rA);pA in b?Vo.f(b,pA,jA(0,gA)):b[pA]=gA},Cs={};Cs[ye("toStringTag")]="z";var Va=String(Cs)==="[object z]",P=ye("toStringTag"),F=Ze(function(){return arguments}())=="Arguments",EA=Va?Ze:function(b){var rA,gA,pA;return b===void 0?"Undefined":b===null?"Null":typeof(gA=function(vA,Ae){try{return vA[Ae]}catch{}}(rA=Object(b),P))=="string"?gA:F?Ze(rA):(pA=Ze(rA))=="Object"&&$e(rA.callee)?"Arguments":pA},RA=[],GA=bi("Reflect","construct"),WA=/^\s*(?:class|function)\b/,Ce=WA.exec,ge=!WA.exec(function(){}),we=function(b){if(!$e(b))return!1;try{return GA(Object,RA,b),!0}catch{return!1}},_e=!GA||QA(function(){var b;return we(we.call)||!we(Object)||!we(function(){b=!0})||b})?function(b){if(!$e(b))return!1;switch(EA(b)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return ge||!!Ce.call(WA,$t(b))}:we,Ke=ye("species"),Bt=function(b,rA){return new(function(gA){var pA;return Ba(gA)&&(pA=gA.constructor,(_e(pA)&&(pA===Array||Ba(pA.prototype))||Dt(pA)&&(pA=pA[Ke])===null)&&(pA=void 0)),pA===void 0?Array:pA}(b))(rA===0?0:rA)},Rt=ye("species"),Ye=function(b){return no>=51||!QA(function(){var rA=[];return(rA.constructor={})[Rt]=function(){return{foo:1}},rA[b](Boolean).foo!==1})},nt=ye("isConcatSpreadable"),ii=no>=51||!QA(function(){var b=[];return b[nt]=!1,b.concat()[0]!==b}),oi=Ye("concat"),Ko=function(b){if(!Dt(b))return!1;var rA=b[nt];return rA!==void 0?!!rA:Ba(b)};Po({target:"Array",proto:!0,forced:!ii||!oi},{concat:function(b){var rA,gA,pA,vA,Ae,UA=MA(this),re=Bt(UA,0),LA=0;for(rA=-1,pA=arguments.length;rA<pA;rA++)if(Ko(Ae=rA===-1?UA:arguments[rA])){if(LA+(vA=Ja(Ae))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(gA=0;gA<vA;gA++,LA++)gA in Ae&&Mr(re,LA,Ae[gA])}else{if(LA>=9007199254740991)throw TypeError("Maximum allowed index exceeded");Mr(re,LA++,Ae)}return re.length=LA,re}});var Kt,ro=Object.keys||function(b){return $s(b,Ha)},ks=wA?Object.defineProperties:function(b,rA){Lo(b);for(var gA,pA=ro(rA),vA=pA.length,Ae=0;vA>Ae;)Vo.f(b,gA=pA[Ae++],rA[gA]);return b},Zr=bi("document","documentElement"),In=Tr("IE_PROTO"),xr=function(){},sI=function(b){return"<script>"+b+"<\/script>"},jo=function(b){b.write(sI("")),b.close();var rA=b.parentWindow.Object;return b=null,rA},OI=function(){try{Kt=new ActiveXObject("htmlfile")}catch{}var b,rA;OI=typeof document<"u"?document.domain&&Kt?jo(Kt):((rA=Ei("iframe")).style.display="none",Zr.appendChild(rA),rA.src="javascript:",(b=rA.contentWindow.document).open(),b.write(sI("document.F=Object")),b.close(),b.F):jo(Kt);for(var gA=Ha.length;gA--;)delete OI.prototype[Ha[gA]];return OI()};ei[In]=!0;var _g=Object.create||function(b,rA){var gA;return b!==null?(xr.prototype=Lo(b),gA=new xr,xr.prototype=null,gA[In]=b):gA=OI(),rA===void 0?gA:ks(gA,rA)},gI=ye("unscopables"),ml=Array.prototype;ml[gI]==null&&Vo.f(ml,gI,{configurable:!0,value:_g(null)});var ua,II,ZA,Ag=function(b){ml[gI][b]=!0},cI={},Bs=!QA(function(){function b(){}return b.prototype.constructor=null,Object.getPrototypeOf(new b)!==b.prototype}),eg=Tr("IE_PROTO"),kr=Object.prototype,EI=Bs?Object.getPrototypeOf:function(b){var rA=MA(b);if(pe(rA,eg))return rA[eg];var gA=rA.constructor;return $e(gA)&&rA instanceof gA?gA.prototype:rA instanceof Object?kr:null},Gt=ye("iterator"),Dl=!1;[].keys&&("next"in(ZA=[].keys())?(II=EI(EI(ZA)))!==Object.prototype&&(ua=II):Dl=!0),(ua==null||QA(function(){var b={};return ua[Gt].call(b)!==b}))&&(ua={}),$e(ua[Gt])||gn(ua,Gt,function(){return this});var xI={IteratorPrototype:ua,BUGGY_SAFARI_ITERATORS:Dl},_s=Vo.f,tg=ye("toStringTag"),ka=function(b,rA,gA){b&&!pe(b=gA?b:b.prototype,tg)&&_s(b,tg,{configurable:!0,value:rA})},wc=xI.IteratorPrototype,lE=function(){return this},qa=Object.setPrototypeOf||("__proto__"in{}?function(){var b,rA=!1,gA={};try{(b=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(gA,[]),rA=gA instanceof Array}catch{}return function(pA,vA){return Lo(pA),function(Ae){if(typeof Ae=="object"||$e(Ae))return Ae;throw TypeError("Can't set "+String(Ae)+" as a prototype")}(vA),rA?b.call(pA,vA):pA.__proto__=vA,pA}}():void 0),CE=gr.PROPER,yC=gr.CONFIGURABLE,us=xI.IteratorPrototype,lI=xI.BUGGY_SAFARI_ITERATORS,ig=ye("iterator"),yl=function(){return this},_a=function(b,rA,gA,pA,vA,Ae,UA){(function(Vi,mt,Sn){var $i=mt+" Iterator";Vi.prototype=_g(wc,{next:jA(1,Sn)}),ka(Vi,$i,!1),cI[$i]=lE})(gA,rA,pA);var re,LA,se,He=function(Vi){if(Vi===vA&&gi)return gi;if(!lI&&Vi in Pe)return Pe[Vi];switch(Vi){case"keys":case"values":case"entries":return function(){return new gA(this,Vi)}}return function(){return new gA(this)}},It=rA+" Iterator",ft=!1,Pe=b.prototype,Ot=Pe[ig]||Pe["@@iterator"]||vA&&Pe[vA],gi=!lI&&Ot||He(vA),go=rA=="Array"&&Pe.entries||Ot;if(go&&(re=EI(go.call(new b)))!==Object.prototype&&re.next&&(EI(re)!==us&&(qa?qa(re,us):$e(re[ig])||gn(re,ig,yl)),ka(re,It,!0)),CE&&vA=="values"&&Ot&&Ot.name!=="values"&&(yC?et(Pe,"name","values"):(ft=!0,gi=function(){return Ot.call(this)})),vA)if(LA={values:He("values"),keys:Ae?gi:He("keys"),entries:He("entries")},UA)for(se in LA)(lI||ft||!(se in Pe))&&gn(Pe,se,LA[se]);else Po({target:rA,proto:!0,forced:lI||ft},LA);return Pe[ig]!==gi&&gn(Pe,ig,gi,{name:vA}),cI[rA]=gi,LA},Qs=hn.set,Rl=hn.getterFor("Array Iterator"),YI=_a(Array,"Array",function(b,rA){Qs(this,{type:"Array Iterator",target:Je(b),index:0,kind:rA})},function(){var b=Rl(this),rA=b.target,gA=b.kind,pA=b.index++;return!rA||pA>=rA.length?(b.target=void 0,{value:void 0,done:!0}):gA=="keys"?{value:pA,done:!1}:gA=="values"?{value:rA[pA],done:!1}:{value:[pA,rA[pA]],done:!1}},"values");cI.Arguments=cI.Array,Ag("keys"),Ag("values"),Ag("entries");var vo=Ga.f,Qa={}.toString,BE=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],cn={f:function(b){return BE&&Qa.call(b)=="[object Window]"?function(rA){try{return vo(rA)}catch{return BE.slice()}}(b):vo(Je(b))}},kt=!QA(function(){return Object.isExtensible(Object.preventExtensions({}))}),Gn=AA(function(b){var rA=Vo.f,gA=!1,pA=be("meta"),vA=0,Ae=Object.isExtensible||function(){return!0},UA=function(LA){rA(LA,pA,{value:{objectID:"O"+vA++,weakData:{}}})},re=b.exports={enable:function(){re.enable=function(){},gA=!0;var LA=Ga.f,se=[].splice,He={};He[pA]=1,LA(He).length&&(Ga.f=function(It){for(var ft=LA(It),Pe=0,Ot=ft.length;Pe<Ot;Pe++)if(ft[Pe]===pA){se.call(ft,Pe,1);break}return ft},Po({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:cn.f}))},fastKey:function(LA,se){if(!Dt(LA))return typeof LA=="symbol"?LA:(typeof LA=="string"?"S":"P")+LA;if(!pe(LA,pA)){if(!Ae(LA))return"F";if(!se)return"E";UA(LA)}return LA[pA].objectID},getWeakData:function(LA,se){if(!pe(LA,pA)){if(!Ae(LA))return!0;if(!se)return!1;UA(LA)}return LA[pA].weakData},onFreeze:function(LA){return kt&&gA&&Ae(LA)&&!pe(LA,pA)&&UA(LA),LA}};ei[pA]=!0}),PI=(Gn.enable,Gn.fastKey,Gn.getWeakData,Gn.onFreeze,ye("iterator")),Sc=Array.prototype,tn=function(b,rA,gA){if(Ni(b),rA===void 0)return b;switch(gA){case 0:return function(){return b.call(rA)};case 1:return function(pA){return b.call(rA,pA)};case 2:return function(pA,vA){return b.call(rA,pA,vA)};case 3:return function(pA,vA,Ae){return b.call(rA,pA,vA,Ae)}}return function(){return b.apply(rA,arguments)}},Ml=ye("iterator"),ba=function(b){if(b!=null)return wt(b,Ml)||wt(b,"@@iterator")||cI[EA(b)]},da=function(b,rA,gA){var pA,vA;Lo(b);try{if(!(pA=wt(b,"return"))){if(rA==="throw")throw gA;return gA}pA=pA.call(b)}catch(Ae){vA=!0,pA=Ae}if(rA==="throw")throw gA;if(vA)throw pA;return Lo(pA),gA},on=function(b,rA){this.stopped=b,this.result=rA},Xr=function(b,rA,gA){var pA,vA,Ae,UA,re,LA,se,He,It=gA&&gA.that,ft=!(!gA||!gA.AS_ENTRIES),Pe=!(!gA||!gA.IS_ITERATOR),Ot=!(!gA||!gA.INTERRUPTED),gi=tn(rA,It,1+ft+Ot),go=function(mt){return pA&&da(pA,"normal",mt),new on(!0,mt)},Vi=function(mt){return ft?(Lo(mt),Ot?gi(mt[0],mt[1],go):gi(mt[0],mt[1])):Ot?gi(mt,go):gi(mt)};if(Pe)pA=b;else{if(!(vA=ba(b)))throw TypeError(String(b)+" is not iterable");if((He=vA)!==void 0&&(cI.Array===He||Sc[PI]===He)){for(Ae=0,UA=Ja(b);UA>Ae;Ae++)if((re=Vi(b[Ae]))&&re instanceof on)return re;return new on(!1)}pA=function(mt,Sn){var $i=arguments.length<2?ba(mt):Sn;if(Ni($i))return Lo($i.call(mt));throw TypeError(String(mt)+" is not iterable")}(b,vA)}for(LA=pA.next;!(se=LA.call(pA)).done;){try{re=Vi(se.value)}catch(mt){da(pA,"throw",mt)}if(typeof re=="object"&&re&&re instanceof on)return re}return new on(!1)},wl=function(b,rA,gA){if(b instanceof rA)return b;throw TypeError("Incorrect "+(gA?gA+" ":"")+"invocation")},bs=ye("iterator"),vc=!1;try{var CI=0,uE={next:function(){return{done:!!CI++}},return:function(){vc=!0}};uE[bs]=function(){return this},Array.from(uE,function(){throw 2})}catch{}var RC=function(b,rA){if(!vc)return!1;var gA=!1;try{var pA={};pA[bs]=function(){return{next:function(){return{done:gA=!0}}}},b(pA)}catch{}return gA},Nc=function(b,rA,gA){for(var pA in rA)gn(b,pA,rA[pA],gA);return b},Sl=ye("species"),JI=function(b){var rA=bi(b),gA=Vo.f;wA&&rA&&!rA[Sl]&&gA(rA,Sl,{configurable:!0,get:function(){return this}})},bg=Vo.f,QE=Gn.fastKey,vl=hn.set,Tc=hn.getterFor,lo=(function(b,rA,gA){var pA=b.indexOf("Map")!==-1,vA=b.indexOf("Weak")!==-1,Ae=pA?"set":"add",UA=X[b],re=UA&&UA.prototype,LA=UA,se={},He=function(go){var Vi=re[go];gn(re,go,go=="add"?function(mt){return Vi.call(this,mt===0?0:mt),this}:go=="delete"?function(mt){return!(vA&&!Dt(mt))&&Vi.call(this,mt===0?0:mt)}:go=="get"?function(mt){return vA&&!Dt(mt)?void 0:Vi.call(this,mt===0?0:mt)}:go=="has"?function(mt){return!(vA&&!Dt(mt))&&Vi.call(this,mt===0?0:mt)}:function(mt,Sn){return Vi.call(this,mt===0?0:mt,Sn),this})};if(ls(b,!$e(UA)||!(vA||re.forEach&&!QA(function(){new UA().entries().next()}))))LA=gA.getConstructor(rA,b,pA,Ae),Gn.enable();else if(ls(b,!0)){var It=new LA,ft=It[Ae](vA?{}:-0,1)!=It,Pe=QA(function(){It.has(1)}),Ot=RC(function(go){new UA(go)}),gi=!vA&&QA(function(){for(var go=new UA,Vi=5;Vi--;)go[Ae](Vi,Vi);return!go.has(-0)});Ot||((LA=rA(function(go,Vi){wl(go,LA,b);var mt=function(Sn,$i,Jr){var $a,La;return qa&&$e($a=$i.constructor)&&$a!==Jr&&Dt(La=$a.prototype)&&La!==Jr.prototype&&qa(Sn,La),Sn}(new UA,go,LA);return Vi!=null&&Xr(Vi,mt[Ae],{that:mt,AS_ENTRIES:pA}),mt})).prototype=re,re.constructor=LA),(Pe||gi)&&(He("delete"),He("has"),pA&&He("get")),(gi||ft)&&He(Ae),vA&&re.clear&&delete re.clear}se[b]=LA,Po({global:!0,forced:LA!=UA},se),ka(LA,b),vA||gA.setStrong(LA,b,pA)}("Map",function(b){return function(){return b(this,arguments.length?arguments[0]:void 0)}},{getConstructor:function(b,rA,gA,pA){var vA=b(function(LA,se){wl(LA,vA,rA),vl(LA,{type:rA,index:_g(null),first:void 0,last:void 0,size:0}),wA||(LA.size=0),se!=null&&Xr(se,LA[pA],{that:LA,AS_ENTRIES:gA})}),Ae=Tc(rA),UA=function(LA,se,He){var It,ft,Pe=Ae(LA),Ot=re(LA,se);return Ot?Ot.value=He:(Pe.last=Ot={index:ft=QE(se,!0),key:se,value:He,previous:It=Pe.last,next:void 0,removed:!1},Pe.first||(Pe.first=Ot),It&&(It.next=Ot),wA?Pe.size++:LA.size++,ft!=="F"&&(Pe.index[ft]=Ot)),LA},re=function(LA,se){var He,It=Ae(LA),ft=QE(se);if(ft!=="F")return It.index[ft];for(He=It.first;He;He=He.next)if(He.key==se)return He};return Nc(vA.prototype,{clear:function(){for(var LA=Ae(this),se=LA.index,He=LA.first;He;)He.removed=!0,He.previous&&(He.previous=He.previous.next=void 0),delete se[He.index],He=He.next;LA.first=LA.last=void 0,wA?LA.size=0:this.size=0},delete:function(LA){var se=Ae(this),He=re(this,LA);if(He){var It=He.next,ft=He.previous;delete se.index[He.index],He.removed=!0,ft&&(ft.next=It),It&&(It.previous=ft),se.first==He&&(se.first=It),se.last==He&&(se.last=ft),wA?se.size--:this.size--}return!!He},forEach:function(LA){for(var se,He=Ae(this),It=tn(LA,arguments.length>1?arguments[1]:void 0,3);se=se?se.next:He.first;)for(It(se.value,se.key,this);se&&se.removed;)se=se.previous},has:function(LA){return!!re(this,LA)}}),Nc(vA.prototype,gA?{get:function(LA){var se=re(this,LA);return se&&se.value},set:function(LA,se){return UA(this,LA===0?0:LA,se)}}:{add:function(LA){return UA(this,LA=LA===0?0:LA,LA)}}),wA&&bg(vA.prototype,"size",{get:function(){return Ae(this).size}}),vA},setStrong:function(b,rA,gA){var pA=rA+" Iterator",vA=Tc(rA),Ae=Tc(pA);_a(b,rA,function(UA,re){vl(this,{type:pA,target:UA,state:vA(UA),kind:re,last:void 0})},function(){for(var UA=Ae(this),re=UA.kind,LA=UA.last;LA&&LA.removed;)LA=LA.previous;return UA.target&&(UA.last=LA=LA?LA.next:UA.state.first)?re=="keys"?{value:LA.key,done:!1}:re=="values"?{value:LA.value,done:!1}:{value:[LA.key,LA.value],done:!1}:(UA.target=void 0,{value:void 0,done:!0})},gA?"entries":"values",!gA,!0),JI(rA)}}),Va?{}.toString:function(){return"[object "+EA(this)+"]"});Va||gn(Object.prototype,"toString",lo,{unsafe:!0});var ds=function(b){if(EA(b)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return String(b)},QB=function(b){return function(rA,gA){var pA,vA,Ae=ds(Et(rA)),UA=So(gA),re=Ae.length;return UA<0||UA>=re?b?"":void 0:(pA=Ae.charCodeAt(UA))<55296||pA>56319||UA+1===re||(vA=Ae.charCodeAt(UA+1))<56320||vA>57343?b?Ae.charAt(UA):pA:b?Ae.slice(UA,UA+2):vA-56320+(pA-55296<<10)+65536}},Gc={charAt:QB(!0)},kc=Gc.charAt,MC=hn.set,dB=hn.getterFor("String Iterator");_a(String,"String",function(b){MC(this,{type:"String Iterator",string:ds(b),index:0})},function(){var b,rA=dB(this),gA=rA.string,pA=rA.index;return pA>=gA.length?{value:void 0,done:!0}:(b=kc(gA,pA),rA.index+=b.length,{value:b,done:!1})});var HI={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},mn=Ei("span").classList,Lg=mn&&mn.constructor&&mn.constructor.prototype,dE=Lg===Object.prototype?void 0:Lg,Ir=ye("iterator"),og=ye("toStringTag"),Ka=YI.values,ca=function(b,rA){if(b){if(b[Ir]!==Ka)try{et(b,Ir,Ka)}catch{b[Ir]=Ka}if(b[og]||et(b,og,rA),HI[rA]){for(var gA in YI)if(b[gA]!==YI[gA])try{et(b,gA,YI[gA])}catch{b[gA]=YI[gA]}}}};for(var hE in HI)ca(X[hE]&&X[hE].prototype,hE);ca(dE,"DOMTokenList");var wC,Ls,_c=function(){var b=Lo(this),rA="";return b.global&&(rA+="g"),b.ignoreCase&&(rA+="i"),b.multiline&&(rA+="m"),b.dotAll&&(rA+="s"),b.unicode&&(rA+="u"),b.sticky&&(rA+="y"),rA},SC=X.RegExp,rg={UNSUPPORTED_Y:QA(function(){var b=SC("a","y");return b.lastIndex=2,b.exec("abcd")!=null}),BROKEN_CARET:QA(function(){var b=SC("^r","gy");return b.lastIndex=2,b.exec("str")!=null})},Wr=X.RegExp,ng=QA(function(){var b=Wr(".","s");return!(b.dotAll&&b.exec(`
`)&&b.flags==="s")}),hs=X.RegExp,hB=QA(function(){var b=hs("(?<a>b)","g");return b.exec("b").groups.a!=="b"||"b".replace(b,"$<a>c")!=="bc"}),pB=hn.get,Nl=RegExp.prototype.exec,bc=ar("native-string-replace",String.prototype.replace),VI=Nl,BI=(wC=/a/,Ls=/b*/g,Nl.call(wC,"a"),Nl.call(Ls,"a"),wC.lastIndex!==0||Ls.lastIndex!==0),pE=rg.UNSUPPORTED_Y||rg.BROKEN_CARET,Lc=/()??/.exec("")[1]!==void 0;(BI||Lc||pE||ng||hB)&&(VI=function(b){var rA,gA,pA,vA,Ae,UA,re,LA=this,se=pB(LA),He=ds(b),It=se.raw;if(It)return It.lastIndex=LA.lastIndex,rA=VI.call(It,He),LA.lastIndex=It.lastIndex,rA;var ft=se.groups,Pe=pE&&LA.sticky,Ot=_c.call(LA),gi=LA.source,go=0,Vi=He;if(Pe&&((Ot=Ot.replace("y","")).indexOf("g")===-1&&(Ot+="g"),Vi=He.slice(LA.lastIndex),LA.lastIndex>0&&(!LA.multiline||LA.multiline&&He.charAt(LA.lastIndex-1)!==`
`)&&(gi="(?: "+gi+")",Vi=" "+Vi,go++),gA=new RegExp("^(?:"+gi+")",Ot)),Lc&&(gA=new RegExp("^"+gi+"$(?!\\s)",Ot)),BI&&(pA=LA.lastIndex),vA=Nl.call(Pe?gA:LA,Vi),Pe?vA?(vA.input=vA.input.slice(go),vA[0]=vA[0].slice(go),vA.index=LA.lastIndex,LA.lastIndex+=vA[0].length):LA.lastIndex=0:BI&&vA&&(LA.lastIndex=LA.global?vA.index+vA[0].length:pA),Lc&&vA&&vA.length>1&&bc.call(vA[0],gA,function(){for(Ae=1;Ae<arguments.length-2;Ae++)arguments[Ae]===void 0&&(vA[Ae]=void 0)}),vA&&ft)for(vA.groups=UA=_g(null),Ae=0;Ae<ft.length;Ae++)UA[(re=ft[Ae])[0]]=vA[re[1]];return vA});var uI=VI;Po({target:"RegExp",proto:!0,forced:/./.exec!==uI},{exec:uI});var Fg=`[
\v\f\r                 \u2028\u2029\uFEFF]`,ja=RegExp("^"+Fg+Fg+"*"),Fs=RegExp(Fg+Fg+"*$"),No=function(b){return function(rA){var gA=ds(Et(rA));return 1&b&&(gA=gA.replace(ja,"")),2&b&&(gA=gA.replace(Fs,"")),gA}},Fc={trim:No(3)}.trim,Ug=X.parseFloat,vC=X.Symbol,fE=vC&&vC.iterator,Tl=1/Ug(`
\v\f\r                 \u2028\u2029\uFEFF-0`)!=-1/0||fE&&!QA(function(){Ug(Object(fE))})?function(b){var rA=Fc(ds(b)),gA=Ug(rA);return gA===0&&rA.charAt(0)=="-"?-0:gA}:Ug;Po({global:!0,forced:parseFloat!=Tl},{parseFloat:Tl});var Ou=ye("species"),fB=RegExp.prototype,xu=Gc.charAt,Og=function(b,rA,gA){return rA+(gA?xu(b,rA).length:1)},QI=function(b,rA){var gA=b.exec;if($e(gA)){var pA=gA.call(b,rA);return pA!==null&&Lo(pA),pA}if(Ze(b)==="RegExp")return uI.call(b,rA);throw TypeError("RegExp#exec called on incompatible receiver")};(function(b,rA,gA,pA){var vA=ye(b),Ae=!QA(function(){var se={};return se[vA]=function(){return 7},""[b](se)!=7}),UA=Ae&&!QA(function(){var se=!1,He=/a/;return b==="split"&&((He={}).constructor={},He.constructor[Ou]=function(){return He},He.flags="",He[vA]=/./[vA]),He.exec=function(){return se=!0,null},He[vA](""),!se});if(!Ae||!UA||gA){var re=/./[vA],LA=rA(vA,""[b],function(se,He,It,ft,Pe){var Ot=He.exec;return Ot===uI||Ot===fB.exec?Ae&&!Pe?{done:!0,value:re.call(He,It,ft)}:{done:!0,value:se.call(It,He,ft)}:{done:!1}});gn(String.prototype,b,LA[0]),gn(fB,vA,LA[1])}})("match",function(b,rA,gA){return[function(pA){var vA=Et(this),Ae=pA==null?void 0:wt(pA,b);return Ae?Ae.call(pA,vA):new RegExp(pA)[b](ds(vA))},function(pA){var vA=Lo(this),Ae=ds(pA),UA=gA(rA,vA,Ae);if(UA.done)return UA.value;if(!vA.global)return QI(vA,Ae);var re=vA.unicode;vA.lastIndex=0;for(var LA,se=[],He=0;(LA=QI(vA,Ae))!==null;){var It=ds(LA[0]);se[He]=It,It===""&&(vA.lastIndex=Og(Ae,po(vA.lastIndex),re)),He++}return He===0?null:se}]});var pi=window.navigator&&window.navigator.userAgent||"",mB=/AppleWebKit\/([\d.]+)/i.exec(pi),Gl=(mB&&parseFloat(mB.pop()),/iPad/i.test(pi)),kl=/iPhone/i.test(pi)&&!Gl,NC=/iPod/i.test(pi),_l=kl||Gl||NC,xg=(_l&&function(){var b=pi.match(/OS (\d+)_/i);b&&b[1]&&b[1]}(),/Android/i.test(pi));xg&&function(){var b=pi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!b)return null;var rA=b[1]&&parseFloat(b[1]),gA=b[2]&&parseFloat(b[2]);return rA&&gA?parseFloat("".concat(b[1],".").concat(b[2])):rA||null}();var qI=/Firefox/i.test(pi),mE=qI&&function(){var b=pi.match(/Firefox\/(\d+)/);return b&&b[1]?parseFloat(b[1]):null}(),DE=/Edge\//i.test(pi),DB=DE&&function(){var b=pi.match(/Edge\/(\d+)/i);if(b&&b[1])return b[1]}(),Rn=/Edg\//i.test(pi),ps=Rn&&function(){var b=pi.match(/Edg\/(\d+)/);return b&&b[1]?parseFloat(b[1]):null}(),ag=/SogouMobileBrowser\//i.test(pi),yB=ag&&function(){var b=pi.match(/SogouMobileBrowser\/(\d+)/);return b&&b[1]?parseFloat(b[1]):null}(),KI=/MetaSr\s/i.test(pi),RB=KI&&function(){var b=pi.match(/MetaSr(\s\d+(\.\d+)+)/);return b&&b[1]?parseFloat(b[1]):null}(),Wn=/TBS\/\d+/i.test(pi),yE=Wn&&function(){var b=pi.match(/TBS\/(\d+)/i);if(b&&b[1])return b[1]}(),wr=/XWEB\/\d+/i.test(pi),MB=wr&&function(){var b=pi.match(/XWEB\/(\d+)/i);if(b&&b[1])return b[1]}(),Yg=(/MSIE\/\d+/i.test(pi)&&function(){var b=/MSIE\s(\d+)\.\d/.exec(pi);b&&parseFloat(b[1])}(),/(micromessenger|webbrowser)/i.test(pi)),TC=Yg&&function(){var b=pi.match(/MicroMessenger\/(\d+)/i);if(b&&b[1])return b[1]}(),jI=!Wn&&/MQQBrowser\/\d+/i.test(pi)&&/COVC\/\d+/i.test(pi),ha=!Wn&&/MQQBrowser\/\d+/i.test(pi)&&!/COVC\/\d+/i.test(pi),wB=(ha||jI)&&function(){var b=pi.match(/ MQQBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),pa=!Wn&&/ QQBrowser\/\d+/i.test(pi),sg=pa&&function(){var b=pi.match(/ QQBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),GC=!Wn&&/QQBrowserLite\/\d+/i.test(pi),bl=GC&&function(){var b=pi.match(/QQBrowserLite\/([\d.]+)/);return b&&b[1]?b[1]:null}(),Mn=!Wn&&/MQBHD\/\d+/i.test(pi),WI=Mn&&function(){var b=pi.match(/MQBHD\/([\d.]+)/);return b&&b[1]?b[1]:null}(),RE=/Windows/i.test(pi),dI=!_l&&/MAC OS X/i.test(pi),fs=!xg&&/Linux/i.test(pi),Uc=/UCBrowser/i.test(pi),ms=/MiuiBrowser/i.test(pi),zI=ms&&function(){var b=pi.match(/MiuiBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),xn=/HuaweiBrowser/i.test(pi),Yu=xn&&function(){var b=pi.match(/HuaweiBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),Wo=/SamsungBrowser/i.test(pi),Oc=Wo&&function(){var b=pi.match(/SamsungBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),ME=/HeyTapBrowser/i.test(pi),Pg=ME&&function(){var b=pi.match(/HeyTapBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),gg=/VivoBrowser/i.test(pi),En=gg&&function(){var b=pi.match(/VivoBrowser\/([\d.]+)/);return b&&b[1]?b[1]:null}(),Ds=/Chrome/i.test(pi),Wa=!DE&&!KI&&!ag&&!Wn&&!wr&&!Rn&&!pa&&!ms&&!xn&&!Wo&&!ME&&!gg&&/Chrome/i.test(pi),Ll=(Wa&&function(){var b=pi.match(/Chrome\/(\d+)/);b&&b[1]&&parseFloat(b[1])}(),Wa&&function(){var b=pi.match(/Chrome\/([\d.]+)/);return b&&b[1]?b[1]:null}()),SB=!Ds&&!ha&&!jI&&!GC&&!Mn&&/Safari/i.test(pi),Pu=SB&&function(){var b=pi.match(/Version\/([\d.]+)/);return b&&b[1]?b[1]:null}(),li=location.protocol==="file:"||location.hostname==="localhost"||/^\d+\.\d+\.\d+\.\d+$/.test(location.hostname),wE=new Map([[xg,"Android"],[_l,"iOS"],[RE,"Windows"],[dI,"MacOS"],[fs,"Linux"]]),hI=new Map([[qI,["Firefox",mE]],[Rn,["Edg",ps]],[Wa,["Chrome",Ll]],[SB,["Safari",Pu]],[Wn,["TBS",yE]],[wr,["XWEB",MB]],[Yg&&kl,["WeChat",TC]],[pa,["QQ(Win)",sg]],[ha,["QQ(Mobile)",wB]],[jI,["QQ(Mobile X5)",wB]],[GC,["QQ(Mac)",bl]],[Mn,["QQ(iPad)",WI]],[ms,["MI",zI]],[xn,["HW",Yu]],[Wo,["Samsung",Oc]],[ME,["OPPO",Pg]],[gg,["VIVO",En]],[DE,["EDGE",DB]],[ag,["SogouMobile",yB]],[KI,["Sogou",RB]]]),vB=function(){var b="unknown",rA="unknown";if(hI.get(!0)){var gA=M(hI.get(!0),2);b=gA[0],rA=gA[1]}return{name:b,version:rA}},NB=navigator.userAgent,pI=function(){var b=void 0;return screen.width&&(b={width:screen.width?screen.width*window.devicePixelRatio:"",height:screen.height?screen.height*window.devicePixelRatio:""}),b},SE=[].push,ZI=function(b){var rA=b==1,gA=b==2,pA=b==3,vA=b==4,Ae=b==6,UA=b==7,re=b==5||Ae;return function(LA,se,He,It){for(var ft,Pe,Ot=MA(LA),gi=qe(Ot),go=tn(se,He,3),Vi=Ja(gi),mt=0,Sn=It||Bt,$i=rA?Sn(LA,Vi):gA||UA?Sn(LA,0):void 0;Vi>mt;mt++)if((re||mt in gi)&&(Pe=go(ft=gi[mt],mt,Ot),b))if(rA)$i[mt]=Pe;else if(Pe)switch(b){case 3:return!0;case 5:return ft;case 6:return mt;case 2:SE.call($i,ft)}else switch(b){case 4:return!1;case 7:SE.call($i,ft)}return Ae?-1:pA||vA?vA:$i}},xc={forEach:ZI(0),map:ZI(1),filter:ZI(2),find:ZI(5),findIndex:ZI(6)},TB=xc.filter,Yc=Ye("filter");Po({target:"Array",proto:!0,forced:!Yc},{filter:function(b){return TB(this,b,arguments.length>1?arguments[1]:void 0)}});var XI=function(b,rA){var gA=[][b];return!!gA&&QA(function(){gA.call(null,rA||function(){throw 1},1)})},Us=xc.forEach,fI=XI("forEach")?[].forEach:function(b){return Us(this,b,arguments.length>1?arguments[1]:void 0)};Po({target:"Array",proto:!0,forced:[].forEach!=fI},{forEach:fI});var kC=function(){for(var b={isSupported:!1},rA=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"],gA=0;gA<rA.length;gA++)if(rA[gA]in window){b.isSupported=!0;break}return b.isSupported},Fl=function(){var b=!1;return qI&&window.mozRTCPeerConnection!==void 0?"getSenders"in window.mozRTCPeerConnection.prototype&&(b=!0):Wa&&window.webkitRTCPeerConnection!==void 0&&"getSenders"in window.webkitRTCPeerConnection.prototype&&(b=!0),b},Pc=function(b){if(b&&b.forEach!==fI)try{et(b,"forEach",fI)}catch{b.forEach=fI}};for(var vE in HI)HI[vE]&&Pc(X[vE]&&X[vE].prototype);Pc(dE);var di=Qr.indexOf,Ul=[].indexOf,za=!!Ul&&1/[1].indexOf(1,-0)<0,NE=XI("indexOf");Po({target:"Array",proto:!0,forced:za||!NE},{indexOf:function(b){return za?Ul.apply(this,arguments)||0:di(this,b,arguments.length>1?arguments[1]:void 0)}});var Ol=xc.map,Jg=Ye("map");Po({target:"Array",proto:!0,forced:!Jg},{map:function(b){return Ol(this,b,arguments.length>1?arguments[1]:void 0)}});var TE=QA(function(){EI(1)});Po({target:"Object",stat:!0,forced:TE,sham:!Bs},{getPrototypeOf:function(b){return EI(MA(b))}}),Po({target:"Array",stat:!0},{isArray:Ba});var Hg=Object.prototype.hasOwnProperty;function Vg(b){if(b==null)return!0;if(typeof b=="boolean")return!1;if(typeof b=="number")return b===0;if(typeof b=="string"||typeof b=="function"||Array.isArray(b))return b.length===0;if(b instanceof Error)return b.message==="";if(function(gA){if(!gA||g(gA)!=="object"||Object.prototype.toString.call(gA)!="[object Object]")return!1;var pA=Object.getPrototypeOf(gA);if(pA===null)return!0;var vA=Object.prototype.hasOwnProperty.call(pA,"constructor")&&pA.constructor;return typeof vA=="function"&&vA instanceof vA&&Function.prototype.toString.call(vA)===Function.prototype.toString.call(Object)}(b))switch(Object.prototype.toString.call(b)){case"[object File]":case"[object Map]":case"[object Set]":return b.size===0;case"[object Object]":for(var rA in b)if(Hg.call(b,rA))return!1;return!0}return!1}var fa=function(b){return b===void 0},xl=function(){var b=Q(regeneratorRuntime.mark(function rA(gA){var pA;return regeneratorRuntime.wrap(function(vA){for(;;)switch(vA.prev=vA.next){case 0:if(!Ig()){vA.next=2;break}return vA.abrupt("return");case 2:return vA.next=4,zn(gA);case 4:if(!(pA=vA.sent).audio){vA.next=11;break}return vA.next=8,bE();case 8:if(vA.sent.length!==0){vA.next=11;break}throw new Error({message:"no microphone detected, but you are trying to get audio stream, please check your microphone and the configuration on TRTC.createStream."});case 11:if(!pA.video){vA.next=17;break}return vA.next=14,Ju();case 14:if(vA.sent.length!==0){vA.next=17;break}throw new Error({message:"no camera detected, but you are trying to get video stream, please check your camera and the configuration on TRTC.createStream."});case 17:return vA.next=19,navigator.mediaDevices.getUserMedia(pA);case 19:return vA.abrupt("return",vA.sent);case 20:case"end":return vA.stop()}},rA)}));return function(rA){return b.apply(this,arguments)}}();function zn(b){return dr.apply(this,arguments)}function dr(){return(dr=Q(regeneratorRuntime.mark(function b(rA){var gA,pA,vA,Ae;return regeneratorRuntime.wrap(function(UA){for(;;)switch(UA.prev=UA.next){case 0:if(gA={echoCancellation:rA.echoCancellation,autoGainControl:rA.autoGainControl,noiseSuppression:rA.noiseSuppression},rA.audio){UA.next=5;break}gA=!1,UA.next=15;break;case 5:if(Vg(rA.microphoneId)){UA.next=9;break}gA=s({deviceId:{exact:rA.microphoneId},sampleRate:rA.sampleRate,channelCount:rA.channelCount},gA),UA.next=15;break;case 9:return gA=s({sampleRate:rA.sampleRate,channelCount:rA.channelCount},gA),UA.next=12,bE();case 12:pA=UA.sent,(vA=pA.filter(function(re){var LA=re.deviceId;return LA.length>0&&LA!=="default"})).length>0&&(gA.deviceId={exact:vA[0].deviceId});case 15:return Ae={},Ae=!fa(rA.facingMode)&&rA.video?{facingMode:rA.facingMode,width:rA.width,height:rA.height,frameRate:rA.frameRate}:!Vg(rA.cameraId)&&rA.video?{deviceId:{exact:rA.cameraId},width:rA.width,height:rA.height,frameRate:rA.frameRate}:!!rA.video&&(!!fa(rA.width)||{width:rA.width,height:rA.height,frameRate:rA.frameRate}),UA.abrupt("return",{audio:gA,video:Ae});case 18:case"end":return UA.stop()}},b)}))).apply(this,arguments)}var Yn,qg,GE,$I,GB=function(){var b=Q(regeneratorRuntime.mark(function rA(gA){var pA,vA,Ae,UA,re,LA,se,He,It,ft,Pe;return regeneratorRuntime.wrap(function(Ot){for(;;)switch(Ot.prev=Ot.next){case 0:return vA=[7680,4320],Ot.prev=1,Ot.next=4,xl({cameraId:gA,video:!0,audio:!1,width:vA[0],height:vA[1]});case 4:if(pA=Ot.sent,!(Ae=pA.getTracks()[0])||!Ae.getCapabilities){Ot.next=13;break}if(se=Ae.getCapabilities(),He=se==null||(UA=se.width)===null||UA===void 0?void 0:UA.max,It=se==null||(re=se.height)===null||re===void 0?void 0:re.max,ft=se==null||(LA=se.frameRate)===null||LA===void 0?void 0:LA.max,!(He&&It&&ft)){Ot.next=13;break}return Ot.abrupt("return",{maxWidth:He,maxHeight:It,maxFrameRate:ft});case 13:return Pe=Ae.getSettings(),Ae.stop(),Ot.abrupt("return",{maxWidth:Pe.width,maxHeight:Pe.height});case 18:Ot.prev=18,Ot.t0=Ot.catch(1),console.error(Ot.t0);case 21:case"end":return Ot.stop()}},rA,null,[[1,18]])}));return function(rA){return b.apply(this,arguments)}}(),Ig=function(){return!!fa(navigator.mediaDevices)&&(console.error("navigator.mediaDevices is not supported on your browser"),!0)},kE=function(){return location.protocol==="http:"&&!li&&(console.error("you should use https"),!0)},kB=function(){if(!navigator.mediaDevices)return!1;var b=["getUserMedia","enumerateDevices"];return b.filter(function(rA){return rA in navigator.mediaDevices}).length===b.length},_E=function(){var b=Q(regeneratorRuntime.mark(function rA(){var gA,pA,vA,Ae,UA,re,LA,se,He;return regeneratorRuntime.wrap(function(It){for(;;)switch(It.prev=It.next){case 0:if(!kE()&&!Ig()){It.next=2;break}return It.abrupt("return",[]);case 2:return gA=!1,pA=!1,vA=[],Ae=[],UA=[],re={},It.next=13,navigator.mediaDevices.enumerateDevices();case 13:if(It.sent.forEach(function(ft){var Pe={};for(var Ot in ft)try{typeof ft[Ot]!="function"&&(Pe[Ot]=ft[Ot])}catch{}re[Pe.deviceId+Pe.label+Pe.kind]||(Pe.kind==="audio"&&(Pe.kind="audioinput"),Pe.kind==="video"&&(Pe.kind="videoinput"),Pe.deviceId||(Pe.deviceId=Pe.id),Pe.label?(Pe.kind!=="videoinput"||gA||(gA=!0),Pe.kind!=="audioinput"||pA||(pA=!0)):Pe.kind==="videoinput"?Pe.label="Camera ".concat(UA.length+1):Pe.kind==="audioinput"?Pe.label="Microphone ".concat(vA.length+1):Pe.kind==="audiooutput"?Pe.label="Speaker ".concat(Ae.length+1):Pe.label="Please invoke getUserMedia once.",Pe.kind==="audioinput"&&vA.indexOf(Pe)===-1&&vA.push(Pe),Pe.kind==="audiooutput"&&Ae.indexOf(Pe)===-1&&Ae.push(Pe),Pe.kind==="videoinput"&&UA.indexOf(Pe)===-1&&UA.push(Pe),re[Pe.deviceId+Pe.label+Pe.kind]=Pe)}),!gA&&UA.length>1&&(gA=!0),!pA&&vA.length>1&&(pA=!0),!gA){It.next=28;break}LA=0;case 19:if(!(LA<UA.length)){It.next=28;break}return se=UA[LA],It.next=23,GB(se.deviceId);case 23:He=It.sent,se.resolution=He;case 25:LA++,It.next=19;break;case 28:return It.abrupt("return",{hasCameraPermission:gA,hasMicrophonePermission:pA,cameras:UA,speakers:Ae,microphones:vA});case 29:case"end":return It.stop()}},rA)}));return function(){return b.apply(this,arguments)}}(),Ju=function(){var b=Q(regeneratorRuntime.mark(function rA(){var gA;return regeneratorRuntime.wrap(function(pA){for(;;)switch(pA.prev=pA.next){case 0:if(!kE()&&!Ig()){pA.next=2;break}return pA.abrupt("return",[]);case 2:return pA.next=4,navigator.mediaDevices.enumerateDevices();case 4:return gA=pA.sent,pA.abrupt("return",gA.filter(function(vA){return vA.kind==="videoinput"}).map(function(vA,Ae){var UA=vA.label;vA.label||(UA="camera_".concat(Ae));var re={label:UA,deviceId:vA.deviceId,kind:vA.kind};return vA.groupId&&(re.groupId=vA.groupId),re}));case 6:case"end":return pA.stop()}},rA)}));return function(){return b.apply(this,arguments)}}(),bE=function(){var b=Q(regeneratorRuntime.mark(function rA(){var gA;return regeneratorRuntime.wrap(function(pA){for(;;)switch(pA.prev=pA.next){case 0:if(!kE()&&!Ig()){pA.next=2;break}return pA.abrupt("return",[]);case 2:return pA.next=4,navigator.mediaDevices.enumerateDevices();case 4:return gA=pA.sent,pA.abrupt("return",gA.filter(function(vA){return vA.kind==="audioinput"}).map(function(vA,Ae){var UA=vA.label;vA.label||(UA="microphone_".concat(Ae));var re={label:UA,deviceId:vA.deviceId,kind:vA.kind};return vA.groupId&&(re.groupId=vA.groupId),re}));case 6:case"end":return pA.stop()}},rA)}));return function(){return b.apply(this,arguments)}}(),Jc=X.Promise,LE=ye("species"),_B=function(b,rA){var gA,pA=Lo(b).constructor;return pA===void 0||(gA=Lo(pA)[LE])==null?rA:function(vA){if(_e(vA))return vA;throw TypeError(lr(vA)+" is not a constructor")}(gA)},Zn=/(?:ipad|iphone|ipod).*applewebkit/i.test(qt),Os=Ze(X.process)=="process",Za=X.setImmediate,FE=X.clearImmediate,Yl=X.process,UE=X.MessageChannel,OE=X.Dispatch,Ac=0,ec={};try{Yn=X.location}catch{}var Xn=function(b){if(ec.hasOwnProperty(b)){var rA=ec[b];delete ec[b],rA()}},kn=function(b){return function(){Xn(b)}},ys=function(b){Xn(b.data)},ln=function(b){X.postMessage(String(b),Yn.protocol+"//"+Yn.host)};Za&&FE||(Za=function(b){for(var rA=[],gA=arguments.length,pA=1;gA>pA;)rA.push(arguments[pA++]);return ec[++Ac]=function(){($e(b)?b:Function(b)).apply(void 0,rA)},qg(Ac),Ac},FE=function(b){delete ec[b]},Os?qg=function(b){Yl.nextTick(kn(b))}:OE&&OE.now?qg=function(b){OE.now(kn(b))}:UE&&!Zn?($I=(GE=new UE).port2,GE.port1.onmessage=ys,qg=tn($I.postMessage,$I,1)):X.addEventListener&&$e(X.postMessage)&&!X.importScripts&&Yn&&Yn.protocol!=="file:"&&!QA(ln)?(qg=ln,X.addEventListener("message",ys,!1)):qg="onreadystatechange"in Ei("script")?function(b){Zr.appendChild(Ei("script")).onreadystatechange=function(){Zr.removeChild(this),Xn(b)}}:function(b){setTimeout(kn(b),0)});var wn,Kg,cg,Rs,Hc,Ms,Vc,Pl,ma={set:Za},tc=/ipad|iphone|ipod/i.test(qt)&&X.Pebble!==void 0,bB=/web0s(?!.*chrome)/i.test(qt),Jl=sr.f,Hl=ma.set,qc=X.MutationObserver||X.WebKitMutationObserver,xE=X.document,Ci=X.process,Vl=X.Promise,YE=Jl(X,"queueMicrotask"),LB=YE&&YE.value;LB||(wn=function(){var b,rA;for(Os&&(b=Ci.domain)&&b.exit();Kg;){rA=Kg.fn,Kg=Kg.next;try{rA()}catch(gA){throw Kg?Rs():cg=void 0,gA}}cg=void 0,b&&b.enter()},Zn||Os||bB||!qc||!xE?!tc&&Vl&&Vl.resolve?((Vc=Vl.resolve(void 0)).constructor=Vl,Pl=Vc.then,Rs=function(){Pl.call(Vc,wn)}):Rs=Os?function(){Ci.nextTick(wn)}:function(){Hl.call(X,wn)}:(Hc=!0,Ms=xE.createTextNode(""),new qc(wn).observe(Ms,{characterData:!0}),Rs=function(){Ms.data=Hc=!Hc}));var L,w,q,y,T=LB||function(b){var rA={fn:b,next:void 0};cg&&(cg.next=rA),Kg||(Kg=rA,Rs()),cg=rA},V=function(b){var rA,gA;this.promise=new b(function(pA,vA){if(rA!==void 0||gA!==void 0)throw TypeError("Bad Promise constructor");rA=pA,gA=vA}),this.resolve=Ni(rA),this.reject=Ni(gA)},$={f:function(b){return new V(b)}},CA=function(b){try{return{error:!1,value:b()}}catch(rA){return{error:!0,value:rA}}},NA=typeof window=="object",KA=ma.set,C=ye("species"),E="Promise",h=hn.get,D=hn.set,N=hn.getterFor(E),O=Jc&&Jc.prototype,Y=Jc,j=O,IA=X.TypeError,BA=X.document,mA=X.process,_A=$.f,xA=_A,Qe=!!(BA&&BA.createEvent&&X.dispatchEvent),Re=$e(X.PromiseRejectionEvent),Se=!1,At=ls(E,function(){var b=$t(Y),rA=b!==String(Y);if(!rA&&no===66)return!0;if(no>=51&&/native code/.test(b))return!1;var gA=new Y(function(vA){vA(1)}),pA=function(vA){vA(function(){},function(){})};return(gA.constructor={})[C]=pA,!(Se=gA.then(function(){})instanceof pA)||!rA&&NA&&!Re}),at=At||!RC(function(b){Y.all(b).catch(function(){})}),jt=function(b){var rA;return!(!Dt(b)||!$e(rA=b.then))&&rA},Bi=function(b,rA){if(!b.notified){b.notified=!0;var gA=b.reactions;T(function(){for(var pA=b.value,vA=b.state==1,Ae=0;gA.length>Ae;){var UA,re,LA,se=gA[Ae++],He=vA?se.ok:se.fail,It=se.resolve,ft=se.reject,Pe=se.domain;try{He?(vA||(b.rejection===2&&to(b),b.rejection=1),He===!0?UA=pA:(Pe&&Pe.enter(),UA=He(pA),Pe&&(Pe.exit(),LA=!0)),UA===se.promise?ft(IA("Promise-chain cycle")):(re=jt(UA))?re.call(UA,It,ft):It(UA)):ft(pA)}catch(Ot){Pe&&!LA&&Pe.exit(),ft(Ot)}}b.reactions=[],b.notified=!1,rA&&!b.rejection&&St(b)})}},ri=function(b,rA,gA){var pA,vA;Qe?((pA=BA.createEvent("Event")).promise=rA,pA.reason=gA,pA.initEvent(b,!1,!0),X.dispatchEvent(pA)):pA={promise:rA,reason:gA},!Re&&(vA=X["on"+b])?vA(pA):b==="unhandledrejection"&&function(Ae,UA){var re=X.console;re&&re.error&&(arguments.length===1?re.error(Ae):re.error(Ae,UA))}("Unhandled promise rejection",gA)},St=function(b){KA.call(X,function(){var rA,gA=b.facade,pA=b.value;if(eo(b)&&(rA=CA(function(){Os?mA.emit("unhandledRejection",pA,gA):ri("unhandledrejection",gA,pA)}),b.rejection=Os||eo(b)?2:1,rA.error))throw rA.value})},eo=function(b){return b.rejection!==1&&!b.parent},to=function(b){KA.call(X,function(){var rA=b.facade;Os?mA.emit("rejectionHandled",rA):ri("rejectionhandled",rA,b.value)})},Yt=function(b,rA,gA){return function(pA){b(rA,pA,gA)}},si=function(b,rA,gA){b.done||(b.done=!0,gA&&(b=gA),b.value=rA,b.state=2,Bi(b,!0))},zo=function(b,rA,gA){if(!b.done){b.done=!0,gA&&(b=gA);try{if(b.facade===rA)throw IA("Promise can't be resolved itself");var pA=jt(rA);pA?T(function(){var vA={done:!1};try{pA.call(rA,Yt(zo,vA,b),Yt(si,vA,b))}catch(Ae){si(vA,Ae,b)}}):(b.value=rA,b.state=1,Bi(b,!1))}catch(vA){si({done:!1},vA,b)}}};if(At&&(j=(Y=function(b){wl(this,Y,E),Ni(b),L.call(this);var rA=h(this);try{b(Yt(zo,rA),Yt(si,rA))}catch(gA){si(rA,gA)}}).prototype,(L=function(b){D(this,{type:E,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Nc(j,{then:function(b,rA){var gA=N(this),pA=_A(_B(this,Y));return pA.ok=!$e(b)||b,pA.fail=$e(rA)&&rA,pA.domain=Os?mA.domain:void 0,gA.parent=!0,gA.reactions.push(pA),gA.state!=0&&Bi(gA,!1),pA.promise},catch:function(b){return this.then(void 0,b)}}),w=function(){var b=new L,rA=h(b);this.promise=b,this.resolve=Yt(zo,rA),this.reject=Yt(si,rA)},$.f=_A=function(b){return b===Y||b===q?new w(b):xA(b)},$e(Jc)&&O!==Object.prototype)){y=O.then,Se||(gn(O,"then",function(b,rA){var gA=this;return new Y(function(pA,vA){y.call(gA,pA,vA)}).then(b,rA)},{unsafe:!0}),gn(O,"catch",j.catch,{unsafe:!0}));try{delete O.constructor}catch{}qa&&qa(O,j)}Po({global:!0,wrap:!0,forced:At},{Promise:Y}),ka(Y,E,!1),JI(E),q=bi(E),Po({target:E,stat:!0,forced:At},{reject:function(b){var rA=_A(this);return rA.reject.call(void 0,b),rA.promise}}),Po({target:E,stat:!0,forced:At},{resolve:function(b){return function(rA,gA){if(Lo(rA),Dt(gA)&&gA.constructor===rA)return gA;var pA=$.f(rA);return(0,pA.resolve)(gA),pA.promise}(this,b)}}),Po({target:E,stat:!0,forced:at},{all:function(b){var rA=this,gA=_A(rA),pA=gA.resolve,vA=gA.reject,Ae=CA(function(){var UA=Ni(rA.resolve),re=[],LA=0,se=1;Xr(b,function(He){var It=LA++,ft=!1;re.push(void 0),se++,UA.call(rA,He).then(function(Pe){ft||(ft=!0,re[It]=Pe,--se||pA(re))},vA)}),--se||pA(re)});return Ae.error&&vA(Ae.value),gA.promise},race:function(b){var rA=this,gA=_A(rA),pA=gA.reject,vA=CA(function(){var Ae=Ni(rA.resolve);Xr(b,function(UA){Ae.call(rA,UA).then(gA.resolve,pA)})});return vA.error&&pA(vA.value),gA.promise}});var te=[].slice,je=/MSIE .\./.test(qt),dA=function(b){return function(rA,gA){var pA=arguments.length>2,vA=pA?te.call(arguments,2):void 0;return b(pA?function(){($e(rA)?rA:Function(rA)).apply(this,vA)}:rA,gA)}};Po({global:!0,bind:!0,forced:je},{setTimeout:dA(X.setTimeout),setInterval:dA(X.setInterval)});var ut=xc.findIndex,Cr=!0;"findIndex"in[]&&Array(1).findIndex(function(){Cr=!1}),Po({target:"Array",proto:!0,forced:Cr},{findIndex:function(b){return ut(this,b,arguments.length>1?arguments[1]:void 0)}}),Ag("findIndex");var lt=AA(function(b){var rA=b.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(gA){return gA.encoding?"rtpmap:%d %s/%s/%s":gA.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(gA){return gA.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(gA){return gA.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(gA){return"extmap:%d"+(gA.direction?"/%s":"%v")+(gA["encrypt-uri"]?" %s":"%v")+" %s"+(gA.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(gA){return gA.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(gA){var pA="candidate:%s %d %s %d %s %d typ %s";return pA+=gA.raddr!=null?" raddr %s rport %d":"%v%v",pA+=gA.tcptype!=null?" tcptype %s":"%v",gA.generation!=null&&(pA+=" generation %d"),pA+=gA["network-id"]!=null?" network-id %d":"%v",pA+=gA["network-cost"]!=null?" 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(gA){var pA="ssrc:%d";return gA.attribute!=null&&(pA+=" %s",gA.value!=null&&(pA+=":%s")),pA}},{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(gA){return gA.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(gA){return gA.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(gA){return"imageattr:%s %s %s"+(gA.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(gA){return"simulcast:%s %s"+(gA.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(gA){return"ts-refclk:%s"+(gA.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(gA){var pA="mediaclk:";return pA+=gA.id!=null?"id=%s %s":"%v%s",pA+=gA.mediaClockValue!=null?"=%s":"",pA+=gA.rateNumerator!=null?" rate=%s":"",pA+=gA.rateDenominator!=null?"/%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(rA).forEach(function(gA){rA[gA].forEach(function(pA){pA.reg||(pA.reg=/(.*)/),pA.format||(pA.format="%s")})})}),Co=(lt.v,lt.o,lt.s,lt.i,lt.u,lt.e,lt.p,lt.z,lt.r,lt.t,lt.c,lt.b,lt.m,lt.a,AA(function(b,rA){var gA=function(UA){return String(Number(UA))===UA?Number(UA):UA},pA=function(UA,re,LA){var se=UA.name&&UA.names;UA.push&&!re[UA.push]?re[UA.push]=[]:se&&!re[UA.name]&&(re[UA.name]={});var He=UA.push?{}:se?re[UA.name]:re;(function(It,ft,Pe,Ot){if(Ot&&!Pe)ft[Ot]=gA(It[1]);else for(var gi=0;gi<Pe.length;gi+=1)It[gi+1]!=null&&(ft[Pe[gi]]=gA(It[gi+1]))})(LA.match(UA.reg),He,UA.names,UA.name),UA.push&&re[UA.push].push(He)},vA=RegExp.prototype.test.bind(/^([a-z])=(.*)/);rA.parse=function(UA){var re={},LA=[],se=re;return UA.split(/(\r\n|\r|\n)/).filter(vA).forEach(function(He){var It=He[0],ft=He.slice(2);It==="m"&&(LA.push({rtp:[],fmtp:[]}),se=LA[LA.length-1]);for(var Pe=0;Pe<(lt[It]||[]).length;Pe+=1){var Ot=lt[It][Pe];if(Ot.reg.test(ft))return pA(Ot,se,ft)}}),re.media=LA,re};var Ae=function(UA,re){var LA=re.split(/=(.+)/,2);return LA.length===2?UA[LA[0]]=gA(LA[1]):LA.length===1&&re.length>1&&(UA[LA[0]]=void 0),UA};rA.parseParams=function(UA){return UA.split(/;\s?/).reduce(Ae,{})},rA.parseFmtpConfig=rA.parseParams,rA.parsePayloads=function(UA){return UA.toString().split(" ").map(Number)},rA.parseRemoteCandidates=function(UA){for(var re=[],LA=UA.split(" ").map(gA),se=0;se<LA.length;se+=3)re.push({component:LA[se],ip:LA[se+1],port:LA[se+2]});return re},rA.parseImageAttributes=function(UA){return UA.split(" ").map(function(re){return re.substring(1,re.length-1).split(",").reduce(Ae,{})})},rA.parseSimulcastStreamList=function(UA){return UA.split(";").map(function(re){return re.split(",").map(function(LA){var se,He=!1;return LA[0]!=="~"?se=gA(LA):(se=gA(LA.substring(1,LA.length)),He=!0),{scid:se,paused:He}})})}})),Jt=(Co.parse,Co.parseParams,Co.parseFmtpConfig,Co.parsePayloads,Co.parseRemoteCandidates,Co.parseImageAttributes,Co.parseSimulcastStreamList,/%[sdv%]/g),mo=function(b){var rA=1,gA=arguments,pA=gA.length;return b.replace(Jt,function(vA){if(rA>=pA)return vA;var Ae=gA[rA];switch(rA+=1,vA){case"%%":return"%";case"%s":return String(Ae);case"%d":return Number(Ae);case"%v":return""}})},Fe=function(b,rA,gA){var pA=[b+"="+(rA.format instanceof Function?rA.format(rA.push?gA:gA[rA.name]):rA.format)];if(rA.names)for(var vA=0;vA<rA.names.length;vA+=1){var Ae=rA.names[vA];rA.name?pA.push(gA[rA.name][Ae]):pA.push(gA[rA.names[vA]])}else pA.push(gA[rA.name]);return mo.apply(null,pA)},Oe=["v","o","s","i","u","e","p","c","b","t","r","z","a"],xs=["i","c","b","a"],Zo={write:function(b,rA){rA=rA||{},b.version==null&&(b.version=0),b.name==null&&(b.name=" "),b.media.forEach(function(Ae){Ae.payloads==null&&(Ae.payloads="")});var gA=rA.outerOrder||Oe,pA=rA.innerOrder||xs,vA=[];return gA.forEach(function(Ae){lt[Ae].forEach(function(UA){UA.name in b&&b[UA.name]!=null?vA.push(Fe(Ae,UA,b)):UA.push in b&&b[UA.push]!=null&&b[UA.push].forEach(function(re){vA.push(Fe(Ae,UA,re))})})}),b.media.forEach(function(Ae){vA.push(Fe("m",lt.m[0],Ae)),pA.forEach(function(UA){lt[UA].forEach(function(re){re.name in Ae&&Ae[re.name]!=null?vA.push(Fe(UA,re,Ae)):re.push in Ae&&Ae[re.push]!=null&&Ae[re.push].forEach(function(LA){vA.push(Fe(UA,re,LA))})})})}),vA.join(`\r
`)+`\r
`},parse:Co.parse,parseParams:Co.parseParams,parseFmtpConfig:Co.parseFmtpConfig,parsePayloads:Co.parsePayloads,parseRemoteCandidates:Co.parseRemoteCandidates,parseImageAttributes:Co.parseImageAttributes,parseSimulcastStreamList:Co.parseSimulcastStreamList},ti=function(){var b=Q(regeneratorRuntime.mark(function rA(){var gA,pA,vA,Ae,UA,re;return regeneratorRuntime.wrap(function(LA){for(;;)switch(LA.prev=LA.next){case 0:return gA="",pA=!1,vA=!1,LA.prev=3,Ae=new RTCPeerConnection,(UA=document.createElement("canvas")).getContext("2d"),re=UA.captureStream(0),Ae.addTrack(re.getVideoTracks()[0],re),LA.next=11,Ae.createOffer();case 11:return(gA=LA.sent).sdp.toLowerCase().indexOf("h264")!==-1&&(pA=!0),gA.sdp.toLowerCase().indexOf("vp8")!==-1&&(vA=!0),Ae.close(),LA.abrupt("return",{isH264EncodeSupported:pA,isVp8EncodeSupported:vA});case 18:return LA.prev=18,LA.t0=LA.catch(3),LA.abrupt("return",{isH264EncodeSupported:!1,isVp8EncodeSupported:!1});case 21:case"end":return LA.stop()}},rA,null,[[3,18]])}));return function(){return b.apply(this,arguments)}}(),_n=function(){var b=Q(regeneratorRuntime.mark(function rA(){var gA,pA,vA,Ae;return regeneratorRuntime.wrap(function(UA){for(;;)switch(UA.prev=UA.next){case 0:return gA="",pA=!1,vA=!1,UA.prev=3,Ae=new RTCPeerConnection,UA.next=7,Ae.createOffer({offerToReceiveAudio:1,offerToReceiveVideo:1});case 7:return(gA=UA.sent).sdp.toLowerCase().indexOf("h264")!==-1&&(pA=!0),gA.sdp.toLowerCase().indexOf("vp8")!==-1&&(vA=!0),Ae.close(),UA.abrupt("return",{isH264DecodeSupported:pA,isVp8DecodeSupported:vA});case 14:return UA.prev=14,UA.t0=UA.catch(3),UA.abrupt("return",{isH264DecodeSupported:!1,isVp8DecodeSupported:!1});case 17:case"end":return UA.stop()}},rA,null,[[3,14]])}));return function(){return b.apply(this,arguments)}}(),Eg=function(){var b=Q(regeneratorRuntime.mark(function rA(){return regeneratorRuntime.wrap(function(gA){for(;;)switch(gA.prev=gA.next){case 0:return gA.abrupt("return",new Promise(function(){var pA=Q(regeneratorRuntime.mark(function vA(Ae){var UA,re,LA,se,He,It,ft,Pe,Ot,gi,go,Vi,mt,Sn;return regeneratorRuntime.wrap(function($i){for(;;)switch($i.prev=$i.next){case 0:return UA={encode:!1,decode:!1},re=null,$i.prev=2,LA=document.createElement("canvas"),se=LA.getContext("2d"),LA.width=640,LA.height=480,He=setInterval(function(){se.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},33),It=-1,ft=-1,re=function(){clearInterval(It),clearInterval(He),clearTimeout(ft),Ot.close(),gi.close(),Pe.getTracks().forEach(function(Jr){return Jr.stop()})},ft=setTimeout(function(){re(),Ae(UA)},3e3),Pe=LA.captureStream(),Ot=new RTCPeerConnection({}),gi=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),Ot.addEventListener("icecandidate",function(Jr){return gi.addIceCandidate(Jr.candidate)}),gi.addEventListener("icecandidate",function(Jr){return Ot.addIceCandidate(Jr.candidate)}),Ot.addTrack(Pe.getVideoTracks()[0],Pe),$i.next=20,Ot.createOffer();case 20:return go=$i.sent,$i.next=23,Ot.setLocalDescription(go);case 23:return $i.next=25,gi.setRemoteDescription(go);case 25:return $i.next=27,gi.createAnswer();case 27:return Vi=$i.sent,mt=Zo.parse(Vi.sdp),Sn=mt.media[0].rtp.findIndex(function(Jr){return Jr.codec==="H264"}),mt.media[0].rtp=[mt.media[0].rtp[Sn]],mt.media[0].fmtp=mt.media[0].fmtp.filter(function(Jr){return Jr.payload===mt.media[0].rtp[0].payload}),mt.media[0].rtcpFb=mt.media[0].rtcpFb.filter(function(Jr){return Jr.payload===mt.media[0].rtp[0].payload}),Vi.sdp=Zo.write(mt),$i.next=36,gi.setLocalDescription(Vi);case 36:return $i.next=38,Ot.setRemoteDescription(Vi);case 38:It=setInterval(Q(regeneratorRuntime.mark(function Jr(){var $a,La;return regeneratorRuntime.wrap(function(bn){for(;;)switch(bn.prev=bn.next){case 0:return UA.encode&&UA.decode&&(re(),Ae(UA)),bn.next=3,Ot.getStats();case 3:return $a=bn.sent,bn.next=6,gi.getStats();case 6:La=bn.sent,UA.encode||$a.forEach(function(lg){lg.type==="outbound-rtp"&&lg.mediaType==="video"&&lg.framesEncoded>0&&(UA.encode=!0)}),UA.decode||La.forEach(function(lg){lg.type==="inbound-rtp"&&lg.mediaType==="video"&&lg.framesDecoded>0&&(UA.decode=!0)});case 9:case"end":return bn.stop()}},Jr)})),500),$i.next=45;break;case 41:$i.prev=41,$i.t0=$i.catch(2),re(),Ae(UA);case 45:case"end":return $i.stop()}},vA,null,[[2,41]])}));return function(vA){return pA.apply(this,arguments)}}()));case 1:case"end":return gA.stop()}},rA)}));return function(){return b.apply(this,arguments)}}(),Bo=xc.find,Da=!0;function Xa(){return ia.apply(this,arguments)}function ia(){return(ia=Q(regeneratorRuntime.mark(function b(){return regeneratorRuntime.wrap(function(rA){for(;;)switch(rA.prev=rA.next){case 0:return rA.abrupt("return",new Promise(function(){var gA=Q(regeneratorRuntime.mark(function pA(vA,Ae){var UA,re,LA,se,He,It,ft,Pe,Ot,gi,go,Vi,mt,Sn;return regeneratorRuntime.wrap(function($i){for(;;)switch($i.prev=$i.next){case 0:return $i.prev=0,UA=function(){clearInterval(mt),clearInterval(se),clearTimeout(Sn),It.close(),ft.close(),He.getTracks().forEach(function(Jr){return Jr.stop()})},re=document.createElement("canvas"),LA=re.getContext("2d"),re.width=640,re.height=480,se=setInterval(function(){LA.fillText("test",0,0)},33),He=re.captureStream(15),It=new RTCPeerConnection({}),ft=new RTCPeerConnection({}),It.addEventListener("icecandidate",function(Jr){ft.addIceCandidate(Jr.candidate)}),ft.addEventListener("icecandidate",function(Jr){It.addIceCandidate(Jr.candidate)}),Pe=RTCRtpSender.getCapabilities("video"),Ot=Pe.codecs,gi=Ot.find(function(Jr){return Jr.mimeType==="video/H264"}),It.addTransceiver(He.getVideoTracks()[0],{direction:"sendonly",streams:[He],sendEncodings:[{maxBitrate:5e5}]}),ft.addTransceiver("video",{direction:"recvonly"}),It.getTransceivers()[0].setCodecPreferences([gi]),$i.next=19,It.createOffer();case 19:return go=$i.sent,$i.next=22,It.setLocalDescription(go);case 22:return $i.next=24,ft.setRemoteDescription(go);case 24:return $i.next=26,ft.createAnswer();case 26:return Vi=$i.sent,$i.next=29,ft.setLocalDescription(Vi);case 29:return $i.next=31,It.setRemoteDescription(Vi);case 31:mt=-1,Sn=-1,Sn=setTimeout(function(){UA(),vA(!1)},3e4),mt=setInterval(Q(regeneratorRuntime.mark(function Jr(){return regeneratorRuntime.wrap(function($a){for(;;)switch($a.prev=$a.next){case 0:return $a.next=2,It.getStats();case 2:$a.sent.forEach(function(La){La.type==="outbound-rtp"&&La.mediaType==="video"&&(La.encoderImplementation===void 0&&(UA(),Ae(new Error("your browser does not support to detect HW acceleration enabled."))),La.encoderImplementation==="ExternalEncoder"&&(UA(),vA(!0)))});case 4:case"end":return $a.stop()}},Jr)})),500),$i.next=40;break;case 37:$i.prev=37,$i.t0=$i.catch(0),Ae($i.t0);case 40:case"end":return $i.stop()}},pA,null,[[0,37]])}));return function(pA,vA){return gA.apply(this,arguments)}}()));case 1:case"end":return rA.stop()}},b)}))).apply(this,arguments)}return"find"in[]&&Array(1).find(function(){Da=!1}),Po({target:"Array",proto:!0,forced:Da},{find:function(b){return Bo(this,b,arguments.length>1?arguments[1]:void 0)}}),Ag("find"),function(){function b(){(function(LA,se){if(!(LA instanceof se))throw new TypeError("Cannot call a class as a function")})(this,b),this.system=null,this.APISupported=null,this.devices=null,this.codecsSupported=null,this.report=null}var rA,gA,pA,vA,Ae,UA,re;return rA=b,(gA=[{key:"isTRTCSupported",value:(re=Q(regeneratorRuntime.mark(function LA(){var se,He,It,ft,Pe,Ot,gi,go,Vi;return regeneratorRuntime.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:return mt.next=2,this.getReportAsync();case 2:if(se=this.APISupported,He=se.isWebRTCSupported,It=se.isUserMediaSupported,ft=se.isWebSocketSupported,He){mt.next=5;break}return mt.abrupt("return",{result:!1,reason:"Your browser does not support WebRTC."});case 5:if(ft){mt.next=7;break}return mt.abrupt("return",{result:!1,reason:"Your browser does not support WebSocket."});case 7:if(It){mt.next=9;break}return mt.abrupt("return",{result:!1,reason:"Your browser does not support getUserMedia."});case 9:if(Pe=this.codecsSupported,Ot=Pe.isH264EncodeSupported,gi=Pe.isVp8EncodeSupported,go=Pe.isH264DecodeSupported,Vi=Pe.isVp8DecodeSupported,Ot||gi){mt.next=12;break}return mt.abrupt("return",{result:!1,reason:"isH264EncodeSupported: ".concat(Ot," isVp8EncodeSupported: ").concat(gi," ")});case 12:if(go||Vi){mt.next=14;break}return mt.abrupt("return",{result:!1,reason:"isH264DecodeSupported: ".concat(go," isVp8DecodeSupported: ").concat(Vi," ")});case 14:if(!(Uc||DE||Rn&&ps<80||qI&&mE<56)){mt.next=16;break}return mt.abrupt("return",{result:!1,reason:"your browser does not qualify, it is recommended to use Chrome and firefox."});case 16:return mt.abrupt("return",{result:!0});case 17:case"end":return mt.stop()}},LA,this)})),function(){return re.apply(this,arguments)})},{key:"getReportAsync",value:(UA=Q(regeneratorRuntime.mark(function LA(){return regeneratorRuntime.wrap(function(se){for(;;)switch(se.prev=se.next){case 0:return this.getSystem(),this.getAPISupported(),se.next=4,this.getCodecAsync();case 4:return se.next=6,this.getDevicesAsync();case 6:return this.report={system:this.system,APISupported:this.APISupported,codecsSupported:this.codecsSupported,devices:this.devices},se.abrupt("return",this.report);case 8:case"end":return se.stop()}},LA,this)})),function(){return UA.apply(this,arguments)})},{key:"getCodecAsync",value:(Ae=Q(regeneratorRuntime.mark(function LA(){var se,He,It,ft,Pe,Ot,gi,go,Vi;return regeneratorRuntime.wrap(function(mt){for(;;)switch(mt.prev=mt.next){case 0:return mt.next=2,ti();case 2:return se=mt.sent,He=se.isH264EncodeSupported,It=se.isVp8EncodeSupported,mt.next=7,_n();case 7:if(ft=mt.sent,Pe=ft.isH264DecodeSupported,Ot=ft.isVp8DecodeSupported,!He||!Pe||!ME&&!gg){mt.next=18;break}return mt.next=13,Eg();case 13:gi=mt.sent,go=gi.encode,Vi=gi.decode,He=go,Pe=Vi;case 18:return this.codecsSupported={isH264EncodeSupported:He,isVp8EncodeSupported:It,isH264DecodeSupported:Pe,isVp8DecodeSupported:Ot},mt.abrupt("return",this.codecsSupported);case 20:case"end":return mt.stop()}},LA,this)})),function(){return Ae.apply(this,arguments)})},{key:"getDevicesAsync",value:(vA=Q(regeneratorRuntime.mark(function LA(){var se,He,It,ft,Pe,Ot;return regeneratorRuntime.wrap(function(gi){for(;;)switch(gi.prev=gi.next){case 0:return gi.next=2,_E();case 2:return se=gi.sent,He=se.hasCameraPermission,It=se.hasMicrophonePermission,ft=se.cameras,Pe=se.microphones,Ot=se.speakers,this.devices={cameras:ft,microphones:Pe,speakers:Ot,hasCameraPermission:He,hasMicrophonePermission:It},gi.abrupt("return",this.devices);case 10:case"end":return gi.stop()}},LA,this)})),function(){return vA.apply(this,arguments)})},{key:"getSystem",value:function(){var LA,se;return this.system={UA:NB,OS:(se="unknown",wE.get(!0)&&(se=wE.get(!0)),se),browser:vB(),displayResolution:pI(),hardwareConcurrency:(LA=window.navigator)===null||LA===void 0?void 0:LA.hardwareConcurrency},this.system}},{key:"getAPISupported",value:function(){var LA,se,He;return this.APISupported={isUserMediaSupported:kB(),isWebRTCSupported:["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(function(It){return It in window}).length>0,isWebSocketSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebAudioSupported:kC(),isScreenCaptureAPISupported:!((He=navigator.mediaDevices)===null||He===void 0||!He.getDisplayMedia),isCanvasCapturingSupported:(se=!1,["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(It){typeof document<"u"&&typeof document.createElement=="function"&&!se&&It in document.createElement("canvas")&&(se=!0)}),se),isVideoCapturingSupported:(LA=!1,["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(It){typeof document<"u"&&typeof document.createElement=="function"&&!LA&&It in document.createElement("video")&&(LA=!0)}),LA),isRTPSenderReplaceTracksSupported:Fl(),isApplyConstraintsSupported:typeof MediaStreamTrack<"u"&&"applyConstraints"in MediaStreamTrack.prototype},this.APISupported}},{key:"isHardWareAccelerationEnabled",value:(pA=Q(regeneratorRuntime.mark(function LA(){return regeneratorRuntime.wrap(function(se){for(;;)switch(se.prev=se.next){case 0:return se.next=2,Xa();case 2:return se.abrupt("return",se.sent);case 3:case"end":return se.stop()}},LA)})),function(){return pA.apply(this,arguments)})}])&&f(rA.prototype,gA),b}()})}(R2)),R2.exports}var MEA=pG.exports,E8;function wEA(){return E8||(E8=1,function(t,i){(function(r,s){s(i,VZ(),DEA(),REA())})(MEA,function(r,s,g,B){function Q(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var f=Q(s),m=Q(g),M=Q(B);function v(l,p,S,H){var K,lA=arguments.length,SA=lA<3?p:H===null?H=Object.getOwnPropertyDescriptor(p,S):H;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")SA=Reflect.decorate(l,p,S,H);else for(var nA=l.length-1;nA>=0;nA--)(K=l[nA])&&(SA=(lA<3?K(SA):lA>3?K(p,S,SA):K(p,S))||SA);return lA>3&&SA&&Object.defineProperty(p,S,SA),SA}function U(l,p,S,H){return new(S||(S=Promise))(function(K,lA){function SA(yA){try{hA(H.next(yA))}catch(kA){lA(kA)}}function nA(yA){try{hA(H.throw(yA))}catch(kA){lA(kA)}}function hA(yA){var kA;yA.done?K(yA.value):(kA=yA.value,kA instanceof S?kA:new S(function(oe){oe(kA)})).then(SA,nA)}hA((H=H.apply(l,[])).next())})}typeof SuppressedError=="function"&&SuppressedError;var AA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof bI<"u"?bI:typeof self<"u"?self:{};function z(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var sA={};(function(l){var p=Object.prototype.hasOwnProperty,S="~";function H(){}function K(hA,yA,kA){this.fn=hA,this.context=yA,this.once=kA||!1}function lA(hA,yA,kA,oe,ee){if(typeof kA!="function")throw new TypeError("The listener must be a function");var PA=new K(kA,oe||hA,ee),ve=S?S+yA:yA;return hA._events[ve]?hA._events[ve].fn?hA._events[ve]=[hA._events[ve],PA]:hA._events[ve].push(PA):(hA._events[ve]=PA,hA._eventsCount++),hA}function SA(hA,yA){--hA._eventsCount===0?hA._events=new H:delete hA._events[yA]}function nA(){this._events=new H,this._eventsCount=0}Object.create&&(H.prototype=Object.create(null),new H().__proto__||(S=!1)),nA.prototype.eventNames=function(){var hA,yA,kA=[];if(this._eventsCount===0)return kA;for(yA in hA=this._events)p.call(hA,yA)&&kA.push(S?yA.slice(1):yA);return Object.getOwnPropertySymbols?kA.concat(Object.getOwnPropertySymbols(hA)):kA},nA.prototype.listeners=function(hA){var yA=S?S+hA:hA,kA=this._events[yA];if(!kA)return[];if(kA.fn)return[kA.fn];for(var oe=0,ee=kA.length,PA=new Array(ee);oe<ee;oe++)PA[oe]=kA[oe].fn;return PA},nA.prototype.listenerCount=function(hA){var yA=S?S+hA:hA,kA=this._events[yA];return kA?kA.fn?1:kA.length:0},nA.prototype.emit=function(hA,yA,kA,oe,ee,PA){var ve=S?S+hA:hA;if(!this._events[ve])return!1;var dt,fe,Be=this._events[ve],tA=arguments.length;if(Be.fn){switch(Be.once&&this.removeListener(hA,Be.fn,void 0,!0),tA){case 1:return Be.fn.call(Be.context),!0;case 2:return Be.fn.call(Be.context,yA),!0;case 3:return Be.fn.call(Be.context,yA,kA),!0;case 4:return Be.fn.call(Be.context,yA,kA,oe),!0;case 5:return Be.fn.call(Be.context,yA,kA,oe,ee),!0;case 6:return Be.fn.call(Be.context,yA,kA,oe,ee,PA),!0}for(fe=1,dt=new Array(tA-1);fe<tA;fe++)dt[fe-1]=arguments[fe];Be.fn.apply(Be.context,dt)}else{var Le,he=Be.length;for(fe=0;fe<he;fe++)switch(Be[fe].once&&this.removeListener(hA,Be[fe].fn,void 0,!0),tA){case 1:Be[fe].fn.call(Be[fe].context);break;case 2:Be[fe].fn.call(Be[fe].context,yA);break;case 3:Be[fe].fn.call(Be[fe].context,yA,kA);break;case 4:Be[fe].fn.call(Be[fe].context,yA,kA,oe);break;default:if(!dt)for(Le=1,dt=new Array(tA-1);Le<tA;Le++)dt[Le-1]=arguments[Le];Be[fe].fn.apply(Be[fe].context,dt)}}return!0},nA.prototype.on=function(hA,yA,kA){return lA(this,hA,yA,kA,!1)},nA.prototype.once=function(hA,yA,kA){return lA(this,hA,yA,kA,!0)},nA.prototype.removeListener=function(hA,yA,kA,oe){var ee=S?S+hA:hA;if(!this._events[ee])return this;if(!yA)return SA(this,ee),this;var PA=this._events[ee];if(PA.fn)PA.fn!==yA||oe&&!PA.once||kA&&PA.context!==kA||SA(this,ee);else{for(var ve=0,dt=[],fe=PA.length;ve<fe;ve++)(PA[ve].fn!==yA||oe&&!PA[ve].once||kA&&PA[ve].context!==kA)&&dt.push(PA[ve]);dt.length?this._events[ee]=dt.length===1?dt[0]:dt:SA(this,ee)}return this},nA.prototype.removeAllListeners=function(hA){var yA;return hA?(yA=S?S+hA:hA,this._events[yA]&&SA(this,yA)):(this._events=new H,this._eventsCount=0),this},nA.prototype.off=nA.prototype.removeListener,nA.prototype.addListener=nA.prototype.on,nA.prefixed=S,nA.EventEmitter=nA,l.exports=nA})({get exports(){return sA},set exports(l){sA=l}});var eA,X,QA,wA,HA,VA,ue,jA,Ve,Ze,Me,qe=sA;(function(l){l.CAMERA="camera",l.SPEAKER="speaker",l.MICROPHONES="microphones",l.MICROPHONE="microphone",l.AUDIO="audio",l.VIDEO="video"})(eA||(eA={})),r.TUIErrorCode=void 0,(X=r.TUIErrorCode||(r.TUIErrorCode={}))[X.ERR_SUCC=0]="ERR_SUCC",X[X.ERR_FAILED=-1]="ERR_FAILED",X[X.ERR_INVALID_PARAMETER=-1001]="ERR_INVALID_PARAMETER",X[X.ERR_SDK_NOT_INITIALIZED=-1002]="ERR_SDK_NOT_INITIALIZED",X[X.ERR_PERMISSION_DENIED=-1003]="ERR_PERMISSION_DENIED",X[X.ERR_REQUIRE_PAYMENT=-1004]="ERR_REQUIRE_PAYMENT",X[X.ERR_CAMERA_START_FAILED=-1100]="ERR_CAMERA_START_FAILED",X[X.ERR_CAMERA_NOT_AUTHORIZED=-1101]="ERR_CAMERA_NOT_AUTHORIZED",X[X.ERR_CAMERA_OCCUPIED=-1102]="ERR_CAMERA_OCCUPIED",X[X.ERR_CAMERA_DEVICE_EMPTY=-1103]="ERR_CAMERA_DEVICE_EMPTY",X[X.ERR_MICROPHONE_START_FAILED=-1104]="ERR_MICROPHONE_START_FAILED",X[X.ERR_MICROPHONE_NOT_AUTHORIZED=-1105]="ERR_MICROPHONE_NOT_AUTHORIZED",X[X.ERR_MICROPHONE_OCCUPIED=-1106]="ERR_MICROPHONE_OCCUPIED",X[X.ERR_MICROPHONE_DEVICE_EMPTY=-1107]="ERR_MICROPHONE_DEVICE_EMPTY",X[X.ERR_ROOM_NAME_INVALID=-2107]="ERR_ROOM_NAME_INVALID",X[X.ERR_USER_NOT_EXIST=-2200]="ERR_USER_NOT_EXIST",X[X.ERR_REQUEST_ID_INVALID=-2311]="ERR_REQUEST_ID_INVALID",r.TUIVideoQuality=void 0,(QA=r.TUIVideoQuality||(r.TUIVideoQuality={}))[QA.kVideoQuality_360p=1]="kVideoQuality_360p",QA[QA.kVideoQuality_540p=2]="kVideoQuality_540p",QA[QA.kVideoQuality_720p=3]="kVideoQuality_720p",QA[QA.kVideoQuality_1080p=4]="kVideoQuality_1080p",r.TUIAudioQuality=void 0,(wA=r.TUIAudioQuality||(r.TUIAudioQuality={}))[wA.kAudioProfileSpeech=0]="kAudioProfileSpeech",wA[wA.kAudioProfileDefault=1]="kAudioProfileDefault",wA[wA.kAudioProfileMusic=2]="kAudioProfileMusic",r.TUINetworkQuality=void 0,(HA=r.TUINetworkQuality||(r.TUINetworkQuality={}))[HA.kQualityUnknown=0]="kQualityUnknown",HA[HA.kQualityExcellent=1]="kQualityExcellent",HA[HA.kQualityGood=2]="kQualityGood",HA[HA.kQualityPoor=3]="kQualityPoor",HA[HA.kQualityBad=4]="kQualityBad",HA[HA.kQualityVeryBad=5]="kQualityVeryBad",HA[HA.kQualityDown=6]="kQualityDown",r.TUIKickedOutOfRoomReason=void 0,(VA=r.TUIKickedOutOfRoomReason||(r.TUIKickedOutOfRoomReason={}))[VA.kKickedByAdmin=0]="kKickedByAdmin",VA[VA.kKickedByLoggedOnOtherDevice=1]="kKickedByLoggedOnOtherDevice",VA[VA.kKickedByServer=2]="kKickedByServer",r.TUIResolutionMode=void 0,(ue=r.TUIResolutionMode||(r.TUIResolutionMode={}))[ue.kResolutionMode_Landscape=0]="kResolutionMode_Landscape",ue[ue.kResolutionMode_Portrait=1]="kResolutionMode_Portrait",r.TUICallEvent=void 0,(jA=r.TUICallEvent||(r.TUICallEvent={})).ERROR="onError",jA.SDK_READY="sdkReady",jA.KICKED_OUT="onKickedOffLine",jA.onUserSigExpired="onUserSigExpired",jA.ON_CALL_BEGIN="onCallBegin",jA.INVITED="onInvited",jA.ON_CALL_RECEIVED="onCallReceived",jA.USER_ACCEPT="onUserAccept",jA.USER_ENTER="onUserJoin",jA.USER_LEAVE="onUserLeave",jA.REJECT="onUserReject",jA.NO_RESP="onUserNoResponse",jA.LINE_BUSY="onUserLineBusy",jA.CALLING_CANCEL="onCallingCancel",jA.ON_CALL_CANCELED="onCallCancelled",jA.ON_CALL_END="onCallEnd",jA.CALL_END="onCallEnd",jA.CALLING_END="onCallEnd",jA.USER_VIDEO_AVAILABLE="onUserVideoAvailable",jA.USER_AUDIO_AVAILABLE="onUserAudioAvailable",jA.USER_VOICE_VOLUME="onUserVoiceVolumeChanged",jA.GROUP_CALL_INVITEE_LIST_UPDATE="onGroupCallInviteeListUpdate",jA.CALL_TYPE_CHANGED="onCallMediaTypeChanged",jA.DEVICED_UPDATED="onDeviceUpdated",jA.ON_USER_NETWORK_QUALITY_CHANGED="onUserNetworkQualityChanged",jA.MESSAGE_SENT_BY_ME="onMessageSentByMe",jA.onDeviceChange="onDeviceChange",jA.ON_CALL_NOT_CONNECTED="onCallNotConnected",jA.ON_USER_INVITING="onUserInviting",r.TUIRoomDeviceMangerEvents=void 0,(r.TUIRoomDeviceMangerEvents||(r.TUIRoomDeviceMangerEvents={})).onDeviceChanged="onDeviceChanged",r.TUICamera=void 0,(Ve=r.TUICamera||(r.TUICamera={}))[Ve.kFront=0]="kFront",Ve[Ve.kBack=1]="kBack",r.TUICallCameraPosition=void 0,(Ze=r.TUICallCameraPosition||(r.TUICallCameraPosition={}))[Ze.FRONT=0]="FRONT",Ze[Ze.BACK=1]="BACK",r.AUDIO_PLAYBACK_DEVICE=void 0,(Me=r.AUDIO_PLAYBACK_DEVICE||(r.AUDIO_PLAYBACK_DEVICE={}))[Me.SPEAKER=0]="SPEAKER",Me[Me.EAR=1]="EAR";var Et;r.CallEndReason=void 0,(Et=r.CallEndReason||(r.CallEndReason={}))[Et.UnKnown=0]="UnKnown",Et[Et.Hangup=1]="Hangup",Et[Et.Reject=2]="Reject",Et[Et.NoResponse=3]="NoResponse",Et[Et.Offline=4]="Offline",Et[Et.LineBusy=5]="LineBusy",Et[Et.Canceled=6]="Canceled",Et[Et.OtherDeviceAccepted=7]="OtherDeviceAccepted",Et[Et.OtherDeviceReject=8]="OtherDeviceReject",Et[Et.EndByServer=9]="EndByServer";var Je="3.5.9";const $e="boolean",Dt="string",Zi="object",bi="array",qt="function",ai="undefined",Ki="video",Ur="audio",Er="web",no="unknown",Kn="cover",Xi="enableVirtualBackground",yr="blur",lr="image",Ni={ELECTRON:"electron",WEB:"web",MINI_PROGRAM:"miniProgram"};function wt(l,p){(p==null||p>l.length)&&(p=l.length);for(var S=0,H=Array(p);S<p;S++)H[S]=l[S];return H}function Ji(l,p){if(!(l instanceof p))throw new TypeError("Cannot call a class as a function")}function Di(l,p){for(var S=0;S<p.length;S++){var H=p[S];H.enumerable=H.enumerable||!1,H.configurable=!0,"value"in H&&(H.writable=!0),Object.defineProperty(l,Te(H.key),H)}}function ar(l,p,S){return p&&Di(l.prototype,p),S&&Di(l,S),Object.defineProperty(l,"prototype",{writable:!1}),l}function MA(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var l,p,S=typeof Symbol=="function"?Symbol:{},H=S.iterator||"@@iterator",K=S.toStringTag||"@@toStringTag";function lA(PA,ve,dt,fe){var Be=ve&&ve.prototype instanceof nA?ve:nA,tA=Object.create(Be.prototype);return YA(tA,"_invoke",function(Le,he,Zt){var pt,ni,Li,it=0,de=Zt||[],xt=!1,Ri={p:0,n:0,v:l,a:ui,f:ui.bind(l,4),d:function(ci,Fi){return pt=ci,ni=0,Li=l,Ri.n=Fi,SA}};function ui(ci,Fi){for(ni=ci,Li=Fi,p=0;!xt&&it&&!tr&&p<de.length;p++){var tr,br=de[p],na=Ri.p,zi=br[2];ci>3?(tr=zi===Fi)&&(Li=br[(ni=br[4])?5:(ni=3,3)],br[4]=br[5]=l):br[0]<=na&&((tr=ci<2&&na<br[1])?(ni=0,Ri.v=Fi,Ri.n=br[1]):na<zi&&(tr=ci<3||br[0]>Fi||Fi>zi)&&(br[4]=ci,br[5]=Fi,Ri.n=zi,ni=0))}if(tr||ci>1)return SA;throw xt=!0,Fi}return function(ci,Fi,tr){if(it>1)throw TypeError("Generator is already running");for(xt&&Fi===1&&ui(Fi,tr),ni=Fi,Li=tr;(p=ni<2?l:Li)||!xt;){pt||(ni?ni<3?(ni>1&&(Ri.n=-1),ui(ni,Li)):Ri.n=Li:Ri.v=Li);try{if(it=2,pt){if(ni||(ci="next"),p=pt[ci]){if(!(p=p.call(pt,Li)))throw TypeError("iterator result is not an object");if(!p.done)return p;Li=p.value,ni<2&&(ni=0)}else ni===1&&(p=pt.return)&&p.call(pt),ni<2&&(Li=TypeError("The iterator does not provide a '"+ci+"' method"),ni=1);pt=l}else if((p=(xt=Ri.n<0)?Li:Le.call(he,Ri))!==SA)break}catch(br){pt=l,ni=1,Li=br}finally{it=1}}return{value:p,done:xt}}}(PA,dt,fe),!0),tA}var SA={};function nA(){}function hA(){}function yA(){}p=Object.getPrototypeOf;var kA=[][H]?p(p([][H]())):(YA(p={},H,function(){return this}),p),oe=yA.prototype=nA.prototype=Object.create(kA);function ee(PA){return Object.setPrototypeOf?Object.setPrototypeOf(PA,yA):(PA.__proto__=yA,YA(PA,K,"GeneratorFunction")),PA.prototype=Object.create(oe),PA}return hA.prototype=yA,YA(oe,"constructor",yA),YA(yA,"constructor",hA),hA.displayName="GeneratorFunction",YA(yA,K,"GeneratorFunction"),YA(oe),YA(oe,K,"Generator"),YA(oe,H,function(){return this}),YA(oe,"toString",function(){return"[object Generator]"}),(MA=function(){return{w:lA,m:ee}})()}function YA(l,p,S,H){var K=Object.defineProperty;try{K({},"",{})}catch{K=0}YA=function(lA,SA,nA,hA){function yA(kA,oe){YA(lA,kA,function(ee){return this._invoke(kA,oe,ee)})}SA?K?K(lA,SA,{value:nA,enumerable:!hA,configurable:!hA,writable:!hA}):lA[SA]=nA:(yA("next",0),yA("throw",1),yA("return",2))},YA(l,p,S,H)}function pe(l,p){return function(S){if(Array.isArray(S))return S}(l)||function(S,H){var K=S==null?null:typeof Symbol<"u"&&S[Symbol.iterator]||S["@@iterator"];if(K!=null){var lA,SA,nA,hA,yA=[],kA=!0,oe=!1;try{if(nA=(K=K.call(S)).next,H!==0)for(;!(kA=(lA=nA.call(K)).done)&&(yA.push(lA.value),yA.length!==H);kA=!0);}catch(ee){oe=!0,SA=ee}finally{try{if(!kA&&K.return!=null&&(hA=K.return(),Object(hA)!==hA))return}finally{if(oe)throw SA}}return yA}}(l,p)||yt(l,p)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function st(l){return function(p){if(Array.isArray(p))return wt(p)}(l)||function(p){if(typeof Symbol<"u"&&p[Symbol.iterator]!=null||p["@@iterator"]!=null)return Array.from(p)}(l)||yt(l)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Te(l){var p=function(S,H){if(typeof S!="object"||!S)return S;var K=S[Symbol.toPrimitive];if(K!==void 0){var lA=K.call(S,H);if(typeof lA!="object")return lA;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(S)}(l,"string");return typeof p=="symbol"?p:p+""}function be(l){return be=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},be(l)}function yt(l,p){if(l){if(typeof l=="string")return wt(l,p);var S={}.toString.call(l).slice(8,-1);return S==="Object"&&l.constructor&&(S=l.constructor.name),S==="Map"||S==="Set"?Array.from(l):S==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(S)?wt(l,p):void 0}}var ht=function(l){return l&&l.Math===Math&&l},ae=ht(typeof globalThis=="object"&&globalThis)||ht(typeof window=="object"&&window)||ht(typeof self=="object"&&self)||ht(typeof AA=="object"&&AA)||ht(typeof AA=="object"&&AA)||function(){return this}()||Function("return this")(),ye={},Xe=function(l){try{return!!l()}catch{return!0}},ot=!Xe(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),zt=!Xe(function(){var l=function(){}.bind();return typeof l!="function"||l.hasOwnProperty("prototype")}),yi=zt,Hi=Function.prototype.call,Ei=yi?Hi.bind(Hi):function(){return Hi.apply(Hi,arguments)},ji={},Xo={}.propertyIsEnumerable,sr=Object.getOwnPropertyDescriptor,Lo=sr&&!Xo.call({1:2},1);ji.f=Lo?function(l){var p=sr(this,l);return!!p&&p.enumerable}:Xo;var Nr,Vo,et=function(l,p){return{enumerable:!(1&l),configurable:!(2&l),writable:!(4&l),value:p}},Kr=zt,Qn=Function.prototype,ho=Qn.call,jn=Kr&&Qn.bind.bind(ho,ho),$t=Kr?jn:function(l){return function(){return ho.apply(l,arguments)}},$r=$t,On=$r({}.toString),An=$r("".slice),Tr=function(l){return An(On(l),8,-1)},ei=Xe,Es=Tr,jr=Object,Gr=$t("".split),$o=ei(function(){return!jr("z").propertyIsEnumerable(0)})?function(l){return Es(l)==="String"?Gr(l,""):jr(l)}:jr,sn=function(l){return l==null},dn=sn,hn=TypeError,Gi=function(l){if(dn(l))throw new hn("Can't call method on "+l);return l},pn=$o,nI=Gi,gr=function(l){return pn(nI(l))},gn=typeof document=="object"&&document.all,Yo=gn===void 0&&gn!==void 0?function(l){return typeof l=="function"||l===gn}:function(l){return typeof l=="function"},Tg=Yo,So=function(l){return typeof l=="object"?l!==null:Tg(l)},ao=ae,EE=Yo,Ta=function(l,p){return arguments.length<2?(S=ao[l],EE(S)?S:void 0):ao[l]&&ao[l][p];var S},po=$t({}.isPrototypeOf),Ja=ae.navigator,Mc=Ja&&Ja.userAgent,Qr=Mc?String(Mc):"",Fo=ae,$s=Qr,Ha=Fo.process,Gs=Fo.Deno,Ga=Ha&&Ha.versions||Gs&&Gs.version,Rr=Ga&&Ga.v8;Rr&&(Vo=(Nr=Rr.split("."))[0]>0&&Nr[0]<4?1:+(Nr[0]+Nr[1])),!Vo&&$s&&(!(Nr=$s.match(/Edge\/(\d+)/))||Nr[1]>=74)&&(Nr=$s.match(/Chrome\/(\d+)/))&&(Vo=+Nr[1]);var Ia=Vo,fo=Ia,aI=Xe,en=ae.String,qo=!!Object.getOwnPropertySymbols&&!aI(function(){var l=Symbol("symbol detection");return!en(l)||!(Object(l)instanceof Symbol)||!Symbol.sham&&fo&&fo<41}),Gg=qo&&!Symbol.sham&&typeof Symbol.iterator=="symbol",kg=Ta,fn=Yo,ls=po,Or=Object,Po=Gg?function(l){return typeof l=="symbol"}:function(l){var p=kg("Symbol");return fn(p)&&ls(p.prototype,Or(l))},Ba=String,Mr=function(l){try{return Ba(l)}catch{return"Object"}},Cs=Yo,Va=Mr,P=TypeError,F=function(l){if(Cs(l))return l;throw new P(Va(l)+" is not a function")},EA=F,RA=sn,GA=function(l,p){var S=l[p];return RA(S)?void 0:EA(S)},WA=Ei,Ce=Yo,ge=So,we=TypeError,_e={},Ke={get exports(){return _e},set exports(l){_e=l}},Bt=ae,Rt=Object.defineProperty,Ye=function(l,p){try{Rt(Bt,l,{value:p,configurable:!0,writable:!0})}catch{Bt[l]=p}return p},nt=ae,ii=Ye,oi="__core-js_shared__",Ko=Ke.exports=nt[oi]||ii(oi,{});(Ko.versions||(Ko.versions=[])).push({version:"3.48.0",mode:"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Kt=_e,ro=function(l,p){return Kt[l]||(Kt[l]=p||{})},ks=Gi,Zr=Object,In=function(l){return Zr(ks(l))},xr=In,sI=$t({}.hasOwnProperty),jo=Object.hasOwn||function(l,p){return sI(xr(l),p)},OI=$t,_g=0,gI=Math.random(),ml=OI(1.1.toString),ua=function(l){return"Symbol("+(l===void 0?"":l)+")_"+ml(++_g+gI,36)},II=ro,ZA=jo,Ag=ua,cI=qo,Bs=Gg,eg=ae.Symbol,kr=II("wks"),EI=Bs?eg.for||eg:eg&&eg.withoutSetter||Ag,Gt=function(l){return ZA(kr,l)||(kr[l]=cI&&ZA(eg,l)?eg[l]:EI("Symbol."+l)),kr[l]},Dl=Ei,xI=So,_s=Po,tg=GA,ka=function(l,p){var S,H;if(p==="string"&&Ce(S=l.toString)&&!ge(H=WA(S,l))||Ce(S=l.valueOf)&&!ge(H=WA(S,l))||p!=="string"&&Ce(S=l.toString)&&!ge(H=WA(S,l)))return H;throw new we("Can't convert object to primitive value")},wc=TypeError,lE=Gt("toPrimitive"),qa=function(l,p){if(!xI(l)||_s(l))return l;var S,H=tg(l,lE);if(H){if(p===void 0&&(p="default"),S=Dl(H,l,p),!xI(S)||_s(S))return S;throw new wc("Can't convert object to primitive value")}return p===void 0&&(p="number"),ka(l,p)},CE=qa,yC=Po,us=function(l){var p=CE(l,"string");return yC(p)?p:p+""},lI=So,ig=ae.document,yl=lI(ig)&&lI(ig.createElement),_a=function(l){return yl?ig.createElement(l):{}},Qs=_a,Rl=!ot&&!Xe(function(){return Object.defineProperty(Qs("div"),"a",{get:function(){return 7}}).a!==7}),YI=ot,vo=Ei,Qa=ji,BE=et,cn=gr,kt=us,Gn=jo,PI=Rl,Sc=Object.getOwnPropertyDescriptor;ye.f=YI?Sc:function(l,p){if(l=cn(l),p=kt(p),PI)try{return Sc(l,p)}catch{}if(Gn(l,p))return BE(!vo(Qa.f,l,p),l[p])};var tn={},Ml=ot&&Xe(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),ba=So,da=String,on=TypeError,Xr=function(l){if(ba(l))return l;throw new on(da(l)+" is not an object")},wl=ot,bs=Rl,vc=Ml,CI=Xr,uE=us,RC=TypeError,Nc=Object.defineProperty,Sl=Object.getOwnPropertyDescriptor,JI="enumerable",bg="configurable",QE="writable";tn.f=wl?vc?function(l,p,S){if(CI(l),p=uE(p),CI(S),typeof l=="function"&&p==="prototype"&&"value"in S&&QE in S&&!S[QE]){var H=Sl(l,p);H&&H[QE]&&(l[p]=S.value,S={configurable:bg in S?S[bg]:H[bg],enumerable:JI in S?S[JI]:H[JI],writable:!1})}return Nc(l,p,S)}:Nc:function(l,p,S){if(CI(l),p=uE(p),CI(S),bs)try{return Nc(l,p,S)}catch{}if("get"in S||"set"in S)throw new RC("Accessors not supported");return"value"in S&&(l[p]=S.value),l};var vl=tn,Tc=et,lo=ot?function(l,p,S){return vl.f(l,p,Tc(1,S))}:function(l,p,S){return l[p]=S,l},ds={},QB={get exports(){return ds},set exports(l){ds=l}},Gc=ot,kc=jo,MC=Function.prototype,dB=Gc&&Object.getOwnPropertyDescriptor,HI=kc(MC,"name"),mn={EXISTS:HI,PROPER:HI&&function(){}.name==="something",CONFIGURABLE:HI&&(!Gc||Gc&&dB(MC,"name").configurable)},Lg=Yo,dE=_e,Ir=$t(Function.toString);Lg(dE.inspectSource)||(dE.inspectSource=function(l){return Ir(l)});var og,Ka,ca,hE=dE.inspectSource,wC=Yo,Ls=ae.WeakMap,_c=wC(Ls)&&/native code/.test(String(Ls)),SC=ua,rg=ro("keys"),Wr=function(l){return rg[l]||(rg[l]=SC(l))},ng={},hs=_c,hB=ae,pB=So,Nl=lo,bc=jo,VI=_e,BI=Wr,pE=ng,Lc="Object already initialized",uI=hB.TypeError,Fg=hB.WeakMap;if(hs||VI.state){var ja=VI.state||(VI.state=new Fg);ja.get=ja.get,ja.has=ja.has,ja.set=ja.set,og=function(l,p){if(ja.has(l))throw new uI(Lc);return p.facade=l,ja.set(l,p),p},Ka=function(l){return ja.get(l)||{}},ca=function(l){return ja.has(l)}}else{var Fs=BI("state");pE[Fs]=!0,og=function(l,p){if(bc(l,Fs))throw new uI(Lc);return p.facade=l,Nl(l,Fs,p),p},Ka=function(l){return bc(l,Fs)?l[Fs]:{}},ca=function(l){return bc(l,Fs)}}var No={set:og,get:Ka,has:ca,enforce:function(l){return ca(l)?Ka(l):og(l,{})},getterFor:function(l){return function(p){var S;if(!pB(p)||(S=Ka(p)).type!==l)throw new uI("Incompatible receiver, "+l+" required");return S}}},Fc=$t,Ug=Xe,vC=Yo,fE=jo,Tl=ot,Ou=mn.CONFIGURABLE,fB=hE,xu=No.enforce,Og=No.get,QI=String,pi=Object.defineProperty,mB=Fc("".slice),Gl=Fc("".replace),kl=Fc([].join),NC=Tl&&!Ug(function(){return pi(function(){},"length",{value:8}).length!==8}),_l=String(String).split("String"),xg=QB.exports=function(l,p,S){mB(QI(p),0,7)==="Symbol("&&(p="["+Gl(QI(p),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),S&&S.getter&&(p="get "+p),S&&S.setter&&(p="set "+p),(!fE(l,"name")||Ou&&l.name!==p)&&(Tl?pi(l,"name",{value:p,configurable:!0}):l.name=p),NC&&S&&fE(S,"arity")&&l.length!==S.arity&&pi(l,"length",{value:S.arity});try{S&&fE(S,"constructor")&&S.constructor?Tl&&pi(l,"prototype",{writable:!1}):l.prototype&&(l.prototype=void 0)}catch{}var H=xu(l);return fE(H,"source")||(H.source=kl(_l,typeof p=="string"?p:"")),l};Function.prototype.toString=xg(function(){return vC(this)&&Og(this).source||fB(this)},"toString");var qI=Yo,mE=tn,DE=ds,DB=Ye,Rn=function(l,p,S,H){H||(H={});var K=H.enumerable,lA=H.name!==void 0?H.name:p;if(qI(S)&&DE(S,lA,H),H.global)K?l[p]=S:DB(p,S);else{try{H.unsafe?l[p]&&(K=!0):delete l[p]}catch{}K?l[p]=S:mE.f(l,p,{value:S,enumerable:!1,configurable:!H.nonConfigurable,writable:!H.nonWritable})}return l},ps={},ag=Math.ceil,yB=Math.floor,KI=Math.trunc||function(l){var p=+l;return(p>0?yB:ag)(p)},RB=KI,Wn=function(l){var p=+l;return p!=p||p===0?0:RB(p)},yE=Wn,wr=Math.max,MB=Math.min,Yg=function(l,p){var S=yE(l);return S<0?wr(S+p,0):MB(S,p)},TC=Wn,jI=Math.min,ha=function(l){var p=TC(l);return p>0?jI(p,9007199254740991):0},wB=ha,pa=function(l){return wB(l.length)},sg=gr,GC=Yg,bl=pa,Mn=function(l){return function(p,S,H){var K=sg(p),lA=bl(K);if(lA===0)return!l&&-1;var SA,nA=GC(H,lA);if(l&&S!=S){for(;lA>nA;)if((SA=K[nA++])!=SA)return!0}else for(;lA>nA;nA++)if((l||nA in K)&&K[nA]===S)return l||nA||0;return!l&&-1}},WI={includes:Mn(!0),indexOf:Mn(!1)},RE=jo,dI=gr,fs=WI.indexOf,Uc=ng,ms=$t([].push),zI=function(l,p){var S,H=dI(l),K=0,lA=[];for(S in H)!RE(Uc,S)&&RE(H,S)&&ms(lA,S);for(;p.length>K;)RE(H,S=p[K++])&&(~fs(lA,S)||ms(lA,S));return lA},xn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Yu=zI,Wo=xn.concat("length","prototype");ps.f=Object.getOwnPropertyNames||function(l){return Yu(l,Wo)};var Oc={};Oc.f=Object.getOwnPropertySymbols;var ME=Ta,Pg=ps,gg=Oc,En=Xr,Ds=$t([].concat),Wa=ME("Reflect","ownKeys")||function(l){var p=Pg.f(En(l)),S=gg.f;return S?Ds(p,S(l)):p},Ll=jo,SB=Wa,Pu=ye,li=tn,wE=function(l,p,S){for(var H=SB(p),K=li.f,lA=Pu.f,SA=0;SA<H.length;SA++){var nA=H[SA];Ll(l,nA)||S&&Ll(S,nA)||K(l,nA,lA(p,nA))}},hI=Xe,vB=Yo,NB=/#|\.prototype\./,pI=function(l,p){var S=ZI[SE(l)];return S===TB||S!==xc&&(vB(p)?hI(p):!!p)},SE=pI.normalize=function(l){return String(l).replace(NB,".").toLowerCase()},ZI=pI.data={},xc=pI.NATIVE="N",TB=pI.POLYFILL="P",Yc=pI,XI=ae,Us=ye.f,fI=lo,kC=Rn,Fl=Ye,Pc=wE,vE=Yc,di=function(l,p){var S,H,K,lA,SA,nA=l.target,hA=l.global,yA=l.stat;if(S=hA?XI:yA?XI[nA]||Fl(nA,{}):XI[nA]&&XI[nA].prototype)for(H in p){if(lA=p[H],K=l.dontCallGetSet?(SA=Us(S,H))&&SA.value:S[H],!vE(hA?H:nA+(yA?".":"#")+H,l.forced)&&K!==void 0){if(typeof lA==typeof K)continue;Pc(lA,K)}(l.sham||K&&K.sham)&&fI(lA,"sham",!0),kC(S,H,lA,l)}},Ul={};Ul[Gt("toStringTag")]="z";var za=String(Ul)==="[object z]",NE=za,Ol=Yo,Jg=Tr,TE=Gt("toStringTag"),Hg=Object,Vg=Jg(function(){return arguments}())==="Arguments",fa=NE?Jg:function(l){var p,S,H;return l===void 0?"Undefined":l===null?"Null":typeof(S=function(K,lA){try{return K[lA]}catch{}}(p=Hg(l),TE))=="string"?S:Vg?Jg(p):(H=Jg(p))==="Object"&&Ol(p.callee)?"Arguments":H},xl=fa,zn=String,dr=function(l){if(xl(l)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return zn(l)},Yn={},qg=zI,GE=xn,$I=Object.keys||function(l){return qg(l,GE)},GB=ot,Ig=Ml,kE=tn,kB=Xr,_E=gr,Ju=$I;Yn.f=GB&&!Ig?Object.defineProperties:function(l,p){kB(l);for(var S,H=_E(p),K=Ju(p),lA=K.length,SA=0;lA>SA;)kE.f(l,S=K[SA++],H[S]);return l};var bE,Jc=Ta("document","documentElement"),LE=Xr,_B=Yn,Zn=xn,Os=ng,Za=Jc,FE=_a,Yl="prototype",UE="script",OE=Wr("IE_PROTO"),Ac=function(){},ec=function(l){return"<"+UE+">"+l+"</"+UE+">"},Xn=function(l){l.write(ec("")),l.close();var p=l.parentWindow.Object;return l=null,p},kn=function(){try{bE=new ActiveXObject("htmlfile")}catch{}var l,p,S;kn=typeof document<"u"?document.domain&&bE?Xn(bE):(p=FE("iframe"),S="java"+UE+":",p.style.display="none",Za.appendChild(p),p.src=String(S),(l=p.contentWindow.document).open(),l.write(ec("document.F=Object")),l.close(),l.F):Xn(bE);for(var H=Zn.length;H--;)delete kn[Yl][Zn[H]];return kn()};Os[OE]=!0;var ys=Object.create||function(l,p){var S;return l!==null?(Ac[Yl]=LE(l),S=new Ac,Ac[Yl]=null,S[OE]=l):S=kn(),p===void 0?S:_B.f(S,p)},ln={},wn=$t([].slice),Kg=Tr,cg=gr,Rs=ps.f,Hc=wn,Ms=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];ln.f=function(l){return Ms&&Kg(l)==="Window"?function(p){try{return Rs(p)}catch{return Hc(Ms)}}(l):Rs(cg(l))};var Vc=ds,Pl=tn,ma=function(l,p,S){return S.get&&Vc(S.get,p,{getter:!0}),S.set&&Vc(S.set,p,{setter:!0}),Pl.f(l,p,S)},tc={},bB=Gt;tc.f=bB;var Jl=ae,Hl=Jl,qc=jo,xE=tc,Ci=tn.f,Vl=Ei,YE=Ta,LB=Gt,L=Rn,w=tn.f,q=jo,y=Gt("toStringTag"),T=function(l,p,S){l&&!S&&(l=l.prototype),l&&!q(l,y)&&w(l,y,{configurable:!0,value:p})},V=Tr,$=$t,CA=function(l){if(V(l)==="Function")return $(l)},NA=F,KA=zt,C=CA(CA.bind),E=function(l,p){return NA(l),p===void 0?l:KA?C(l,p):function(){return l.apply(p,arguments)}},h=Tr,D=Array.isArray||function(l){return h(l)==="Array"},N=$t,O=Xe,Y=Yo,j=fa,IA=hE,BA=function(){},mA=Ta("Reflect","construct"),_A=/^\s*(?:class|function)\b/,xA=N(_A.exec),Qe=!_A.test(BA),Re=function(l){if(!Y(l))return!1;try{return mA(BA,[],l),!0}catch{return!1}},Se=function(l){if(!Y(l))return!1;switch(j(l)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Qe||!!xA(_A,IA(l))}catch{return!0}};Se.sham=!0;var At=!mA||O(function(){var l;return Re(Re.call)||!Re(Object)||!Re(function(){l=!0})||l})?Se:Re,at=D,jt=At,Bi=So,ri=Gt("species"),St=Array,eo=function(l){var p;return at(l)&&(p=l.constructor,(jt(p)&&(p===St||at(p.prototype))||Bi(p)&&(p=p[ri])===null)&&(p=void 0)),p===void 0?St:p},to=function(l,p){return new(eo(l))(p===0?0:p)},Yt=ot,si=tn,zo=et,te=function(l,p,S){Yt?si.f(l,p,zo(0,S)):l[p]=S},je=E,dA=$o,ut=In,Cr=pa,lt=to,Co=te,Jt=function(l){var p=l===1,S=l===2,H=l===3,K=l===4,lA=l===6,SA=l===7,nA=l===5||lA;return function(hA,yA,kA){for(var oe,ee,PA=ut(hA),ve=dA(PA),dt=Cr(ve),fe=je(yA,kA),Be=0,tA=0,Le=p?lt(hA,dt):S||SA?lt(hA,0):void 0;dt>Be;Be++)if((nA||Be in ve)&&(ee=fe(oe=ve[Be],Be,PA),l))if(p)Co(Le,Be,ee);else if(ee)switch(l){case 3:return!0;case 5:return oe;case 6:return Be;case 2:Co(Le,tA++,oe)}else switch(l){case 4:return!1;case 7:Co(Le,tA++,oe)}return lA?-1:H||K?K:Le}},mo={forEach:Jt(0),map:Jt(1),filter:Jt(2),some:Jt(3),every:Jt(4),find:Jt(5),findIndex:Jt(6)},Fe=di,Oe=ae,xs=Ei,Zo=$t,ti=ot,_n=qo,Eg=Xe,Bo=jo,Da=po,Xa=Xr,ia=gr,b=us,rA=dr,gA=et,pA=ys,vA=$I,Ae=ps,UA=ln,re=Oc,LA=ye,se=tn,He=Yn,It=ji,ft=Rn,Pe=ma,Ot=ro,gi=ng,go=ua,Vi=Gt,mt=tc,Sn=function(l){var p=Hl.Symbol||(Hl.Symbol={});qc(p,l)||Ci(p,l,{value:xE.f(l)})},$i=function(){var l=YE("Symbol"),p=l&&l.prototype,S=p&&p.valueOf,H=LB("toPrimitive");p&&!p[H]&&L(p,H,function(K){return Vl(S,this)},{arity:1})},Jr=T,$a=No,La=mo.forEach,bn=Wr("hidden"),lg="Symbol",ql="prototype",fD=$a.set,Ht=$a.getterFor(lg),Qt=Object[ql],Ti=Oe.Symbol,Ar=Ti&&Ti[ql],so=Oe.RangeError,As=Oe.TypeError,ic=Oe.QObject,_C=LA.f,Cg=se.f,Cn=UA.f,PE=It.f,JE=Zo([].push),Ys=Ot("symbols"),Kc=Ot("op-symbols"),oc=Ot("wks"),jg=!ic||!ic[ql]||!ic[ql].findChild,Kl=function(l,p,S){var H=_C(Qt,p);H&&delete Qt[p],Cg(l,p,S),H&&l!==Qt&&Cg(Qt,p,H)},_w=ti&&Eg(function(){return pA(Cg({},"a",{get:function(){return Cg(this,"a",{value:7}).a}})).a!==7})?Kl:Cg,mD=function(l,p){var S=Ys[l]=pA(Ar);return fD(S,{type:lg,tag:l,description:p}),ti||(S.description=p),S},DD=function(l,p,S){l===Qt&&DD(Kc,p,S),Xa(l);var H=b(p);return Xa(S),Bo(Ys,H)?(S.enumerable?(Bo(l,bn)&&l[bn][H]&&(l[bn][H]=!1),S=pA(S,{enumerable:gA(0,!1)})):(Bo(l,bn)||Cg(l,bn,gA(1,pA(null))),l[bn][H]=!0),_w(l,H,S)):Cg(l,H,S)},yD=function(l,p){Xa(l);var S=ia(p),H=vA(S).concat(bk(S));return La(H,function(K){ti&&!xs(bw,S,K)||DD(l,K,S[K])}),l},bw=function(l){var p=b(l),S=xs(PE,this,p);return!(this===Qt&&Bo(Ys,p)&&!Bo(Kc,p))&&(!(S||!Bo(this,p)||!Bo(Ys,p)||Bo(this,bn)&&this[bn][p])||S)},kk=function(l,p){var S=ia(l),H=b(p);if(S!==Qt||!Bo(Ys,H)||Bo(Kc,H)){var K=_C(S,H);return!K||!Bo(Ys,H)||Bo(S,bn)&&S[bn][H]||(K.enumerable=!0),K}},_k=function(l){var p=Cn(ia(l)),S=[];return La(p,function(H){Bo(Ys,H)||Bo(gi,H)||JE(S,H)}),S},bk=function(l){var p=l===Qt,S=Cn(p?Kc:ia(l)),H=[];return La(S,function(K){!Bo(Ys,K)||p&&!Bo(Qt,K)||JE(H,Ys[K])}),H};_n||(Ti=function(){if(Da(Ar,this))throw new As("Symbol is not a constructor");var l=arguments.length&&arguments[0]!==void 0?rA(arguments[0]):void 0,p=go(l),S=function(H){var K=this===void 0?Oe:this;K===Qt&&xs(S,Kc,H),Bo(K,bn)&&Bo(K[bn],p)&&(K[bn][p]=!1);var lA=gA(1,H);try{_w(K,p,lA)}catch(SA){if(!(SA instanceof so))throw SA;Kl(K,p,lA)}};return ti&&jg&&_w(Qt,p,{configurable:!0,set:S}),mD(p,l)},ft(Ar=Ti[ql],"toString",function(){return Ht(this).tag}),ft(Ti,"withoutSetter",function(l){return mD(go(l),l)}),It.f=bw,se.f=DD,He.f=yD,LA.f=kk,Ae.f=UA.f=_k,re.f=bk,mt.f=function(l){return mD(Vi(l),l)},ti&&(Pe(Ar,"description",{configurable:!0,get:function(){return Ht(this).description}}),ft(Qt,"propertyIsEnumerable",bw,{unsafe:!0}))),Fe({global:!0,constructor:!0,wrap:!0,forced:!_n,sham:!_n},{Symbol:Ti}),La(vA(oc),function(l){Sn(l)}),Fe({target:lg,stat:!0,forced:!_n},{useSetter:function(){jg=!0},useSimple:function(){jg=!1}}),Fe({target:"Object",stat:!0,forced:!_n,sham:!ti},{create:function(l,p){return p===void 0?pA(l):yD(pA(l),p)},defineProperty:DD,defineProperties:yD,getOwnPropertyDescriptor:kk}),Fe({target:"Object",stat:!0,forced:!_n},{getOwnPropertyNames:_k}),$i(),Jr(Ti,lg),gi[bn]=!0;var Lk=qo&&!!Symbol.for&&!!Symbol.keyFor,LY=di,FY=Ta,bC=jo,UY=dr,Fk=ro,OY=Lk,Lw=Fk("string-to-symbol-registry"),xY=Fk("symbol-to-string-registry");LY({target:"Symbol",stat:!0,forced:!OY},{for:function(l){var p=UY(l);if(bC(Lw,p))return Lw[p];var S=FY("Symbol")(p);return Lw[p]=S,xY[S]=p,S}});var Uk=di,YY=jo,Ok=Po,PY=Mr,JY=Lk,Fw=ro("symbol-to-string-registry");Uk({target:"Symbol",stat:!0,forced:!JY},{keyFor:function(l){if(!Ok(l))throw new TypeError(PY(l)+" is not a symbol");if(YY(Fw,l))return Fw[l]}});var Uw=zt,Sp=Function.prototype,RD=Sp.apply,MD=Sp.call,FB=typeof Reflect=="object"&&Reflect.apply||(Uw?MD.bind(RD):function(){return MD.apply(RD,arguments)}),HY=So,VY=No.get,wD=$t,Ow=jo,Hu=SyntaxError,qY=parseInt,KY=String.fromCharCode,SD=wD("".charAt),xk=wD("".slice),xw=wD(/./.exec),Yk={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":`
`,"\\r":"\r","\\t":" "},Pk=/^[\da-f]{4}$/i,jY=/^[\u0000-\u001F]$/,WY=!Xe(function(){var l="9007199254740993",p=JSON.rawJSON(l);return!JSON.isRawJSON(p)||JSON.stringify(p)!==l}),zY=di,Jk=Ta,Hk=FB,vD=Ei,Vu=$t,Yw=Xe,qu=D,Ku=Yo,ld=function(l){if(!HY(l))return!1;var p=VY(l);return!!p&&p.type==="RawJSON"},Pw=Po,Jw=Tr,vp=dr,Vk=wn,HE=function(l,p){for(var S=!0,H="";p<l.length;){var K=SD(l,p);if(K==="\\"){var lA=xk(l,p,p+2);if(Ow(Yk,lA))H+=Yk[lA],p+=2;else{if(lA!=="\\u")throw new Hu('Unknown escape sequence: "'+lA+'"');var SA=xk(l,p+=2,p+4);if(!xw(Pk,SA))throw new Hu("Bad Unicode escape at: "+p);H+=KY(qY(SA,16)),p+=4}}else{if(K==='"'){S=!1,p++;break}if(xw(jY,K))throw new Hu("Bad control character in string literal at: "+p);H+=K,p++}}if(S)throw new Hu("Unterminated string at: "+p);return{value:H,end:p}},VE=ua,Cd=qo,qE=WY,UB=String,LC=Jk("JSON","stringify"),ND=Vu(/./.exec),Bd=Vu("".charAt),ZY=Vu("".charCodeAt),XY=Vu("".replace),TD=Vu("".slice),GD=Vu([].push),qk=Vu(1.1.toString),Kk=/[\uD800-\uDFFF]/g,Hw=/^[\uD800-\uDBFF]$/,Vw=/^[\uDC00-\uDFFF]$/,qw=VE(),jk=qw.length,Np=!Cd||Yw(function(){var l=Jk("Symbol")("stringify detection");return LC([l])!=="[null]"||LC({a:l})!=="{}"||LC(Object(l))!=="{}"}),FC=Yw(function(){return LC("\uDF06\uD834")!=='"\\udf06\\ud834"'||LC("\uDEAD")!=='"\\udead"'}),OB=Np?function(l,p){var S=Vk(arguments),H=Tp(p);if(Ku(H)||l!==void 0&&!Pw(l))return S[1]=function(K,lA){if(Ku(H)&&(lA=vD(H,this,UB(K),lA)),!Pw(lA))return lA},Hk(LC,null,S)}:LC,Wk=function(l,p,S){var H=Bd(S,p-1),K=Bd(S,p+1);return ND(Hw,l)&&!ND(Vw,K)||ND(Vw,l)&&!ND(Hw,H)?"\\u"+qk(ZY(l,0),16):l},Tp=function(l){if(Ku(l))return l;if(qu(l)){for(var p=l.length,S=[],H=0;H<p;H++){var K=l[H];typeof K=="string"?GD(S,K):typeof K!="number"&&Jw(K)!=="Number"&&Jw(K)!=="String"||GD(S,vp(K))}var lA=S.length,SA=!0;return function(nA,hA){if(SA)return SA=!1,hA;if(qu(this))return hA;for(var yA=0;yA<lA;yA++)if(S[yA]===nA)return hA}}};LC&&zY({target:"JSON",stat:!0,arity:3,forced:Np||FC||!qE},{stringify:function(l,p,S){var H=Tp(p),K=[],lA=OB(l,function(ee,PA){var ve=Ku(H)?vD(H,this,UB(ee),PA):PA;return!qE&&ld(ve)?qw+(GD(K,ve.rawJSON)-1):ve},S);if(typeof lA!="string"||(FC&&(lA=XY(lA,Kk,Wk)),qE))return lA;for(var SA="",nA=lA.length,hA=0;hA<nA;hA++){var yA=Bd(lA,hA);if(yA==='"'){var kA=HE(lA,++hA).end-1,oe=TD(lA,hA,kA);SA+=TD(oe,0,jk)===qw?K[TD(oe,jk)]:'"'+oe+'"',hA=kA}else SA+=yA}return SA}});var Kw=Oc,kD=In;di({target:"Object",stat:!0,forced:!qo||Xe(function(){Kw.f(1)})},{getOwnPropertySymbols:function(l){var p=Kw.f;return p?p(kD(l)):[]}});var $Y=di,AP=ot,_D=$t,zk=jo,bD=Yo,eP=po,jw=dr,Zk=ma,tP=wE,UC=ae.Symbol,jl=UC&&UC.prototype;if(AP&&bD(UC)&&(!("description"in jl)||UC().description!==void 0)){var Xk={},ud=function(){var l=arguments.length<1||arguments[0]===void 0?void 0:jw(arguments[0]),p=eP(jl,this)?new UC(l):l===void 0?UC():UC(l);return l===""&&(Xk[p]=!0),p};tP(ud,UC),ud.prototype=jl,jl.constructor=ud;var iP=String(UC("description detection"))==="Symbol(description detection)",$k=_D(jl.valueOf),A_=_D(jl.toString),oP=/^Symbol\((.*)\)[^)]+$/,Ww=_D("".replace),zw=_D("".slice);Zk(jl,"description",{configurable:!0,get:function(){var l=$k(this);if(zk(Xk,l))return"";var p=A_(l),S=iP?zw(p,7,-1):Ww(p,oP,"$1");return S===""?void 0:S}}),$Y({global:!0,constructor:!0,forced:!0},{Symbol:ud})}var e_=TypeError,Zw=function(l){if(l>9007199254740991)throw e_("Maximum allowed index exceeded");return l},rP=ot,nP=D,aP=TypeError,sP=Object.getOwnPropertyDescriptor,Xw=rP&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(l){return l instanceof TypeError}}()?function(l,p){if(nP(l)&&!sP(l,"length").writable)throw new aP("Cannot set read only .length");return l.length=p}:function(l,p){return l.length=p},t_=Xe,gP=Ia,IP=Gt("species"),Qd=function(l){return gP>=51||!t_(function(){var p=[];return(p.constructor={})[IP]=function(){return{foo:1}},p[l](Boolean).foo!==1})},i_=di,$w=Xe,cP=D,EP=So,Gp=In,o_=pa,dd=Zw,ju=te,r_=Xw,AS=to,eS=Qd,lP=Ia,n_=Gt("isConcatSpreadable"),CP=lP>=51||!$w(function(){var l=[];return l[n_]=!1,l.concat()[0]!==l}),a_=function(l){if(!EP(l))return!1;var p=l[n_];return p!==void 0?!!p:cP(l)};i_({target:"Array",proto:!0,arity:1,forced:!CP||!eS("concat")},{concat:function(l){var p,S,H,K,lA,SA=Gp(this),nA=AS(SA,0),hA=0;for(p=-1,H=arguments.length;p<H;p++)if(a_(lA=p===-1?SA:arguments[p]))for(K=o_(lA),dd(hA+K),S=0;S<K;S++,hA++)S in lA&&ju(nA,hA,lA[S]);else dd(hA+1),ju(nA,hA++,lA);return r_(nA,hA),nA}});var s_=Xe,LD=function(l,p){var S=[][l];return!!S&&s_(function(){S.call(null,p||function(){return 1},1)})},BP=mo.forEach,tS=LD("forEach")?[].forEach:function(l){return BP(this,l,arguments.length>1?arguments[1]:void 0)};di({target:"Array",proto:!0,forced:[].forEach!==tS},{forEach:tS}),di({target:"Array",stat:!0},{isArray:D});var g_=Gt,uP=ys,I_=tn.f,FD=g_("unscopables"),UD=Array.prototype;UD[FD]===void 0&&I_(UD,FD,{configurable:!0,value:uP(null)});var OC,c_,E_,OD=function(l){UD[FD][l]=!0},jc={},l_=!Xe(function(){function l(){}return l.prototype.constructor=null,Object.getPrototypeOf(new l)!==l.prototype}),xD=jo,C_=Yo,rc=In,QP=l_,B_=Wr("IE_PROTO"),YD=Object,dP=YD.prototype,hd=QP?YD.getPrototypeOf:function(l){var p=rc(l);if(xD(p,B_))return p[B_];var S=p.constructor;return C_(S)&&p instanceof S?S.prototype:p instanceof YD?dP:null},u_=Xe,hP=Yo,Q_=So,d_=hd,pP=Rn,iS=Gt("iterator"),PD=!1;[].keys&&("next"in(E_=[].keys())?(c_=d_(d_(E_)))!==Object.prototype&&(OC=c_):PD=!0);var oS=!Q_(OC)||u_(function(){var l={};return OC[iS].call(l)!==l});oS&&(OC={}),hP(OC[iS])||pP(OC,iS,function(){return this});var rS={IteratorPrototype:OC,BUGGY_SAFARI_ITERATORS:PD},nS=rS.IteratorPrototype,fP=ys,h_=et,mP=T,aS=jc,kp=function(){return this},p_=$t,sS=F,gS=So,f_=function(l){return gS(l)||l===null},m_=String,JD=TypeError,D_=function(l,p,S){try{return p_(sS(Object.getOwnPropertyDescriptor(l,p)[S]))}catch{}},DP=So,yP=Gi,y_=function(l){if(f_(l))return l;throw new JD("Can't set "+m_(l)+" as a prototype")},Wu=Object.setPrototypeOf||("__proto__"in{}?function(){var l,p=!1,S={};try{(l=D_(Object.prototype,"__proto__","set"))(S,[]),p=S instanceof Array}catch{}return function(H,K){return yP(H),y_(K),DP(H)&&(p?l(H,K):H.__proto__=K),H}}():void 0),pd=di,IS=Ei,cS=Yo,ES=function(l,p,S,H){var K=p+" Iterator";return l.prototype=fP(nS,{next:h_(1,S)}),mP(l,K,!1),aS[K]=kp,l},lS=hd,CS=Wu,RP=T,MP=lo,xB=Rn,wP=jc,R_=mn.PROPER,BS=mn.CONFIGURABLE,M_=rS.IteratorPrototype,HD=rS.BUGGY_SAFARI_ITERATORS,_p=Gt("iterator"),w_="keys",zu="values",uS="entries",S_=function(){return this},VD=function(l,p,S,H,K,lA,SA){ES(S,p,H);var nA,hA,yA,kA=function(Be){if(Be===K&&dt)return dt;if(!HD&&Be&&Be in PA)return PA[Be];switch(Be){case w_:case zu:case uS:return function(){return new S(this,Be)}}return function(){return new S(this)}},oe=p+" Iterator",ee=!1,PA=l.prototype,ve=PA[_p]||PA["@@iterator"]||K&&PA[K],dt=!HD&&ve||kA(K),fe=p==="Array"&&PA.entries||ve;if(fe&&(nA=lS(fe.call(new l)))!==Object.prototype&&nA.next&&(lS(nA)!==M_&&(CS?CS(nA,M_):cS(nA[_p])||xB(nA,_p,S_)),RP(nA,oe,!0)),R_&&K===zu&&ve&&ve.name!==zu&&(BS?MP(PA,"name",zu):(ee=!0,dt=function(){return IS(ve,this)})),K)if(hA={values:kA(zu),keys:lA?dt:kA(w_),entries:kA(uS)},SA)for(yA in hA)(HD||ee||!(yA in PA))&&xB(PA,yA,hA[yA]);else pd({target:p,proto:!0,forced:HD||ee},hA);return PA[_p]!==dt&&xB(PA,_p,dt,{name:K}),wP[p]=dt,hA},fd=function(l,p){return{value:l,done:p}},QS=gr,md=OD,bp=jc,v_=No,dS=tn.f,Lp=VD,qD=fd,Fp=ot,N_="Array Iterator",SP=v_.set,vP=v_.getterFor(N_),T_=Lp(Array,"Array",function(l,p){SP(this,{type:N_,target:QS(l),index:0,kind:p})},function(){var l=vP(this),p=l.target,S=l.index++;if(!p||S>=p.length)return l.target=null,qD(void 0,!0);switch(l.kind){case"keys":return qD(S,!1);case"values":return qD(p[S],!1)}return qD([S,p[S]],!1)},"values"),hS=bp.Arguments=bp.Array;if(md("keys"),md("values"),md("entries"),Fp&&hS.name!=="values")try{dS(hS,"name",{value:"values"})}catch{}var pS=di,G_=Date,k_=$t(G_.prototype.getTime);pS({target:"Date",stat:!0},{now:function(){return k_(new G_)}});var __=Wn,NP=dr,Zu=Gi,Dd=RangeError,fS=$t,TP=ha,b_=dr,mS=Gi,L_=fS(function(l){var p=NP(Zu(this)),S="",H=__(l);if(H<0||H===1/0)throw new Dd("Wrong number of repetitions");for(;H>0;(H>>>=1)&&(p+=p))1&H&&(S+=p);return S}),F_=fS("".slice),U_=Math.ceil,GP=function(l){return function(p,S,H){var K,lA,SA=b_(mS(p)),nA=TP(S),hA=SA.length,yA=H===void 0?" ":b_(H);return nA<=hA||yA===""?SA:((lA=L_(yA,U_((K=nA-hA)/yA.length))).length>K&&(lA=F_(lA,0,K)),l?SA+lA:lA+SA)}},KE=$t,xC=Xe,Xu={start:GP(!1)}.start,yd=RangeError,O_=isFinite,x_=Math.abs,YC=Date.prototype,DS=YC.toISOString,kP=KE(YC.getTime),KD=KE(YC.getUTCDate),_P=KE(YC.getUTCFullYear),bP=KE(YC.getUTCHours),LP=KE(YC.getUTCMilliseconds),Y_=KE(YC.getUTCMinutes),yS=KE(YC.getUTCMonth),FP=KE(YC.getUTCSeconds),UP=xC(function(){return DS.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!xC(function(){DS.call(new Date(NaN))})?function(){if(!O_(kP(this)))throw new yd("Invalid time value");var l=this,p=_P(l),S=LP(l),H=p<0?"-":p>9999?"+":"";return H+Xu(x_(p),H?6:4,0)+"-"+Xu(yS(l)+1,2,0)+"-"+Xu(KD(l),2,0)+"T"+Xu(bP(l),2,0)+":"+Xu(Y_(l),2,0)+":"+Xu(FP(l),2,0)+"."+Xu(S,3,0)+"Z"}:DS,P_=UP;di({target:"Date",proto:!0,forced:Date.prototype.toISOString!==P_},{toISOString:P_});var J_=In,jD=qa;di({target:"Date",proto:!0,arity:1,forced:Xe(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1})},{toJSON:function(l){var p=J_(this),S=jD(p,"number");return typeof S!="number"||isFinite(S)?p.toISOString():null}});var RS=$t,WD=Rn,zD=Date.prototype,H_="Invalid Date",V_="toString",MS=RS(zD[V_]),OP=RS(zD.getTime);String(new Date(NaN))!==H_&&WD(zD,V_,function(){var l=OP(this);return l==l?MS(this):H_});var Rd=Yo,Md=So,Up=Wu,wd=function(l,p,S){var H,K;return Up&&Rd(H=p.constructor)&&H!==S&&Md(K=H.prototype)&&K!==S.prototype&&Up(l,K),l},wS=$t(1.1.valueOf),Op=`
\v\f\r                 \u2028\u2029\uFEFF`,SS=Gi,xP=dr,vS=Op,NS=$t("".replace),q_=RegExp("^["+vS+"]+"),K_=RegExp("(^|[^"+vS+"])["+vS+"]+$"),j_=function(l){return function(p){var S=xP(SS(p));return 1&l&&(S=NS(S,q_,"")),2&l&&(S=NS(S,K_,"$1")),S}},ZD={trim:j_(3)},YP=di,W_=ot,z_=ae,$u=Jl,AQ=$t,TS=Yc,Z_=jo,PP=wd,JP=po,GS=Po,X_=qa,$_=Xe,HP=ps.f,VP=ye.f,qP=tn.f,xp=wS,KP=ZD.trim,XD="Number",Sd=z_[XD];$u[XD];var kS=Sd.prototype,jP=z_.TypeError,WP=AQ("".slice),eQ=AQ("".charCodeAt),zP=function(l){var p,S,H,K,lA,SA,nA,hA,yA=X_(l,"number");if(GS(yA))throw new jP("Cannot convert a Symbol value to a number");if(typeof yA=="string"&&yA.length>2){if(yA=KP(yA),(p=eQ(yA,0))===43||p===45){if((S=eQ(yA,2))===88||S===120)return NaN}else if(p===48){switch(eQ(yA,1)){case 66:case 98:H=2,K=49;break;case 79:case 111:H=8,K=55;break;default:return+yA}for(SA=(lA=WP(yA,2)).length,nA=0;nA<SA;nA++)if((hA=eQ(lA,nA))<48||hA>K)return NaN;return parseInt(lA,H)}}return+yA},$D=TS(XD,!Sd(" 0o1")||!Sd("0b1")||Sd("+0x1")),Ay=function(l){var p,S=arguments.length<1?0:Sd(function(H){var K=X_(H,"number");return typeof K=="bigint"?K:zP(K)}(l));return JP(kS,p=this)&&$_(function(){xp(p)})?PP(Object(S),this,Ay):S};Ay.prototype=kS,$D&&(kS.constructor=Ay),YP({global:!0,constructor:!0,wrap:!0,forced:$D},{Number:Ay}),$D&&function(l,p){for(var S,H=W_?HP(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),K=0;H.length>K;K++)Z_(p,S=H[K])&&!Z_(l,S)&&qP(l,S,VP(p,S))}($u[XD],Sd);var Ab=In,eb=hd,ZP=l_;di({target:"Object",stat:!0,forced:Xe(function(){eb(1)}),sham:!ZP},{getPrototypeOf:function(l){return eb(Ab(l))}});var XP=In,tb=$I;di({target:"Object",stat:!0,forced:Xe(function(){tb(1)})},{keys:function(l){return tb(XP(l))}});var $P=fa,A1=za?{}.toString:function(){return"[object "+$P(this)+"]"};za||Rn(Object.prototype,"toString",A1,{unsafe:!0});var _S=ae,e1=Xe,t1=$t,ib=dr,i1=ZD.trim,Yp=Op,vd=_S.parseInt,bS=_S.Symbol,LS=bS&&bS.iterator,FS=/^[+-]?0x/i,o1=t1(FS.exec),US=vd(Yp+"08")!==8||vd(Yp+"0x16")!==22||LS&&!e1(function(){vd(Object(LS))})?function(l,p){var S=i1(ib(l));return vd(S,p>>>0||(o1(FS,S)?16:10))}:vd;di({global:!0,forced:parseInt!==US},{parseInt:US});var Nd,Td,OS,xS,Pp=ae,r1=Qr,n1=Tr,ey=function(l){return r1.slice(0,l.length)===l},YS=ey("Bun/")?"BUN":ey("Cloudflare-Workers")?"CLOUDFLARE":ey("Deno/")?"DENO":ey("Node.js/")?"NODE":Pp.Bun&&typeof Bun.version=="string"?"BUN":Pp.Deno&&typeof Deno.version=="object"?"DENO":n1(Pp.process)==="process"?"NODE":Pp.window&&Pp.document?"BROWSER":"REST",PS=YS==="NODE",JS=Ta,a1=ma,s1=ot,ob=Gt("species"),Gd=function(l){var p=JS(l);s1&&p&&!p[ob]&&a1(p,ob,{configurable:!0,get:function(){return this}})},rb=po,g1=TypeError,Jp=function(l,p){if(rb(p,l))return l;throw new g1("Incorrect invocation")},I1=At,c1=Mr,E1=TypeError,nb=function(l){if(I1(l))return l;throw new E1(c1(l)+" is not a constructor")},ab=Xr,l1=nb,C1=sn,sb=Gt("species"),B1=TypeError,gb=function(l,p){if(l<p)throw new B1("Not enough arguments");return l},Ib=/(?:ipad|iphone|ipod).*applewebkit/i.test(Qr),nc=ae,ty=FB,u1=E,HS=Yo,cb=jo,Eb=Xe,VS=Jc,Q1=wn,iy=_a,lb=gb,d1=Ib,h1=PS,qS=nc.setImmediate,KS=nc.clearImmediate,p1=nc.process,oy=nc.Dispatch,f1=nc.Function,Cb=nc.MessageChannel,Bb=nc.String,jS=0,Hp={},ub="onreadystatechange";Eb(function(){Nd=nc.location});var ry=function(l){if(cb(Hp,l)){var p=Hp[l];delete Hp[l],p()}},WS=function(l){return function(){ry(l)}},Qb=function(l){ry(l.data)},ny=function(l){nc.postMessage(Bb(l),Nd.protocol+"//"+Nd.host)};qS&&KS||(qS=function(l){lb(arguments.length,1);var p=HS(l)?l:f1(l),S=Q1(arguments,1);return Hp[++jS]=function(){ty(p,void 0,S)},Td(jS),jS},KS=function(l){delete Hp[l]},h1?Td=function(l){p1.nextTick(WS(l))}:oy&&oy.now?Td=function(l){oy.now(WS(l))}:Cb&&!d1?(xS=(OS=new Cb).port2,OS.port1.onmessage=Qb,Td=u1(xS.postMessage,xS)):nc.addEventListener&&HS(nc.postMessage)&&!nc.importScripts&&Nd&&Nd.protocol!=="file:"&&!Eb(ny)?(Td=ny,nc.addEventListener("message",Qb,!1)):Td=ub in iy("script")?function(l){VS.appendChild(iy("script"))[ub]=function(){VS.removeChild(this),ry(l)}}:function(l){setTimeout(WS(l),0)});var ay={set:qS},sy=ae,zS=ot,m1=Object.getOwnPropertyDescriptor,db=function(){this.head=null,this.tail=null};db.prototype={add:function(l){var p={item:l,next:null},S=this.tail;S?S.next=p:this.head=p,this.tail=p},get:function(){var l=this.head;if(l)return(this.head=l.next)===null&&(this.tail=null),l.item}};var tQ,ZS,XS,$S,A0,hb=db,D1=/ipad|iphone|ipod/i.test(Qr)&&typeof Pebble<"u",pb=/web0s(?!.*chrome)/i.test(Qr),kd=ae,e0=function(l){if(!zS)return sy[l];var p=m1(sy,l);return p&&p.value},_d=E,t0=ay.set,y1=hb,R1=Ib,M1=D1,w1=pb,gy=PS,fb=kd.MutationObserver||kd.WebKitMutationObserver,i0=kd.document,mb=kd.process,Vp=kd.Promise,o0=e0("queueMicrotask");if(!o0){var Iy=new y1,cy=function(){var l,p;for(gy&&(l=mb.domain)&&l.exit();p=Iy.get();)try{p()}catch(S){throw Iy.head&&tQ(),S}l&&l.enter()};R1||gy||w1||!fb||!i0?!M1&&Vp&&Vp.resolve?(($S=Vp.resolve(void 0)).constructor=Vp,A0=_d($S.then,$S),tQ=function(){A0(cy)}):gy?tQ=function(){mb.nextTick(cy)}:(t0=_d(t0,kd),tQ=function(){t0(cy)}):(ZS=!0,XS=i0.createTextNode(""),new fb(cy).observe(XS,{characterData:!0}),tQ=function(){XS.data=ZS=!ZS}),o0=function(l){Iy.head||tQ(),Iy.add(l)}}var S1=o0,r0=function(l){try{return{error:!1,value:l()}}catch(p){return{error:!0,value:p}}},Ey=ae.Promise,Db=ae,bd=Ey,v1=Yo,YB=Yc,Ld=hE,N1=Gt,yb=YS,Fd=Ia;bd&&bd.prototype;var Rb=N1("species"),n0=!1,a0=v1(Db.PromiseRejectionEvent),T1=YB("Promise",function(){var l=Ld(bd),p=l!==String(bd);if(!p&&Fd===66)return!0;if(!Fd||Fd<51||!/native code/.test(l)){var S=new bd(function(K){K(1)}),H=function(K){K(function(){},function(){})};if((S.constructor={})[Rb]=H,!(n0=S.then(function(){})instanceof H))return!0}return!(p||yb!=="BROWSER"&&yb!=="DENO"||a0)}),ac={CONSTRUCTOR:T1,REJECTION_EVENT:a0,SUBCLASSING:n0},PB={},Mb=F,wb=TypeError,G1=function(l){var p,S;this.promise=new l(function(H,K){if(p!==void 0||S!==void 0)throw new wb("Bad Promise constructor");p=H,S=K}),this.resolve=Mb(p),this.reject=Mb(S)};PB.f=function(l){return new G1(l)};var s0,JB,g0,I0,Ud=di,iQ=PS,HB=ae,k1=Jl,Od=Ei,Sb=Rn,vb=Wu,_1=T,b1=Gd,L1=F,oQ=Yo,c0=So,F1=Jp,U1=function(l,p){var S,H=ab(l).constructor;return H===void 0||C1(S=ab(H)[sb])?p:l1(S)},Nb=ay.set,qp=S1,E0=function(l,p){try{arguments.length===1?console.error(l):console.error(l,p)}catch{}},Tb=r0,l0=hb,Kp=No,ly=Ey,Gb=PB,Cy="Promise",kb=ac.CONSTRUCTOR,_b=ac.REJECTION_EVENT,O1=ac.SUBCLASSING,By=Kp.getterFor(Cy),x1=Kp.set,xd=ly&&ly.prototype,Yd=ly,uy=xd,bb=HB.TypeError,C0=HB.document,B0=HB.process,u0=Gb.f,Y1=u0,Lb=!!(C0&&C0.createEvent&&HB.dispatchEvent),Q0="unhandledrejection",Fb=function(l){var p;return!(!c0(l)||!oQ(p=l.then))&&p},d0=function(l,p){var S,H,K,lA=p.value,SA=p.state===1,nA=SA?l.ok:l.fail,hA=l.resolve,yA=l.reject,kA=l.domain;try{nA?(SA||(p.rejection===2&&J1(p),p.rejection=1),nA===!0?S=lA:(kA&&kA.enter(),S=nA(lA),kA&&(kA.exit(),K=!0)),S===l.promise?yA(new bb("Promise-chain cycle")):(H=Fb(S))?Od(H,S,hA,yA):hA(S)):yA(lA)}catch(oe){kA&&!K&&kA.exit(),yA(oe)}},h0=function(l,p){l.notified||(l.notified=!0,qp(function(){for(var S,H=l.reactions;S=H.get();)d0(S,l);l.notified=!1,p&&!l.rejection&&Ub(l)}))},P1=function(l,p,S){var H,K;Lb?((H=C0.createEvent("Event")).promise=p,H.reason=S,H.initEvent(l,!1,!0),HB.dispatchEvent(H)):H={promise:p,reason:S},!_b&&(K=HB["on"+l])?K(H):l===Q0&&E0("Unhandled promise rejection",S)},Ub=function(l){Od(Nb,HB,function(){var p,S=l.facade,H=l.value;if(Qy(l)&&(p=Tb(function(){iQ?B0.emit("unhandledRejection",H,S):P1(Q0,S,H)}),l.rejection=iQ||Qy(l)?2:1,p.error))throw p.value})},Qy=function(l){return l.rejection!==1&&!l.parent},J1=function(l){Od(Nb,HB,function(){var p=l.facade;iQ?B0.emit("rejectionHandled",p):P1("rejectionhandled",p,l.value)})},Pd=function(l,p,S){return function(H){l(p,H,S)}},Jd=function(l,p,S){l.done||(l.done=!0,S&&(l=S),l.value=p,l.state=2,h0(l,!0))},p0=function(l,p,S){if(!l.done){l.done=!0,S&&(l=S);try{if(l.facade===p)throw new bb("Promise can't be resolved itself");var H=Fb(p);H?qp(function(){var K={done:!1};try{Od(H,p,Pd(p0,K,l),Pd(Jd,K,l))}catch(lA){Jd(K,lA,l)}}):(l.value=p,l.state=1,h0(l,!1))}catch(K){Jd({done:!1},K,l)}}};if(kb&&(uy=(Yd=function(l){F1(this,uy),L1(l),Od(s0,this);var p=By(this);try{l(Pd(p0,p),Pd(Jd,p))}catch(S){Jd(p,S)}}).prototype,(s0=function(l){x1(this,{type:Cy,done:!1,notified:!1,parent:!1,reactions:new l0,rejection:!1,state:0,value:null})}).prototype=Sb(uy,"then",function(l,p){var S=By(this),H=u0(U1(this,Yd));return S.parent=!0,H.ok=!oQ(l)||l,H.fail=oQ(p)&&p,H.domain=iQ?B0.domain:void 0,S.state===0?S.reactions.add(H):qp(function(){d0(H,S)}),H.promise}),JB=function(){var l=new s0,p=By(l);this.promise=l,this.resolve=Pd(p0,p),this.reject=Pd(Jd,p)},Gb.f=u0=function(l){return l===Yd||l===g0?new JB(l):Y1(l)},oQ(ly)&&xd!==Object.prototype)){I0=xd.then,O1||Sb(xd,"then",function(l,p){var S=this;return new Yd(function(H,K){Od(I0,S,H,K)}).then(l,p)},{unsafe:!0});try{delete xd.constructor}catch{}vb&&vb(xd,uy)}Ud({global:!0,constructor:!0,wrap:!0,forced:kb},{Promise:Yd}),g0=k1.Promise,_1(Yd,Cy,!1),b1(Cy);var Ob=jc,H1=Gt("iterator"),xb=Array.prototype,dy=function(l){return l!==void 0&&(Ob.Array===l||xb[H1]===l)},V1=fa,hy=GA,q1=sn,K1=jc,f0=Gt("iterator"),m0=function(l){if(!q1(l))return hy(l,f0)||hy(l,"@@iterator")||K1[V1(l)]},D0=Ei,j1=F,W1=Xr,Yb=Mr,Pb=m0,z1=TypeError,Jb=function(l,p){var S=arguments.length<2?Pb(l):p;if(j1(S))return W1(D0(S,l));throw new z1(Yb(l)+" is not iterable")},Z1=Ei,Hb=Xr,X1=GA,$1=E,Vb=Ei,py=Xr,AJ=Mr,eJ=dy,tJ=pa,qb=po,iJ=Jb,oJ=m0,Kb=function(l,p,S){var H,K;Hb(l);try{if(!(H=X1(l,"return"))){if(p==="throw")throw S;return S}H=Z1(H,l)}catch(lA){K=!0,H=lA}if(p==="throw")throw S;if(K)throw H;return Hb(H),S},rQ=TypeError,fy=function(l,p){this.stopped=l,this.result=p},jb=fy.prototype,Dy=function(l,p,S){var H,K,lA,SA,nA,hA,yA,kA=S&&S.that,oe=!(!S||!S.AS_ENTRIES),ee=!(!S||!S.IS_RECORD),PA=!(!S||!S.IS_ITERATOR),ve=!(!S||!S.INTERRUPTED),dt=$1(p,kA),fe=function(tA){return H&&Kb(H,"normal"),new fy(!0,tA)},Be=function(tA){return oe?(py(tA),ve?dt(tA[0],tA[1],fe):dt(tA[0],tA[1])):ve?dt(tA,fe):dt(tA)};if(ee)H=l.iterator;else if(PA)H=l;else{if(!(K=oJ(l)))throw new rQ(AJ(l)+" is not iterable");if(eJ(K)){for(lA=0,SA=tJ(l);SA>lA;lA++)if((nA=Be(l[lA]))&&qb(jb,nA))return nA;return new fy(!1)}H=iJ(l,K)}for(hA=ee?l.next:H.next;!(yA=Vb(hA,H)).done;){try{nA=Be(yA.value)}catch(tA){Kb(H,"throw",tA)}if(typeof nA=="object"&&nA&&qb(jb,nA))return nA}return new fy(!1)},Wb=Gt("iterator"),zb=!1;try{var rJ=0,yy={next:function(){return{done:!!rJ++}},return:function(){zb=!0}};yy[Wb]=function(){return this},Array.from(yy,function(){throw 2})}catch{}var y0=function(l,p){try{if(!p&&!zb)return!1}catch{return!1}var S=!1;try{var H={};H[Wb]=function(){return{next:function(){return{done:S=!0}}}},l(H)}catch{}return S},nJ=Ey,Zb=ac.CONSTRUCTOR||!y0(function(l){nJ.all(l).then(void 0,function(){})}),R0=Ei,Ry=F,Xb=PB,aJ=r0,sJ=Dy;di({target:"Promise",stat:!0,forced:Zb},{all:function(l){var p=this,S=Xb.f(p),H=S.resolve,K=S.reject,lA=aJ(function(){var SA=Ry(p.resolve),nA=[],hA=0,yA=1;sJ(l,function(kA){var oe=hA++,ee=!1;yA++,R0(SA,p,kA).then(function(PA){ee||(ee=!0,nA[oe]=PA,--yA||H(nA))},K)}),--yA||H(nA)});return lA.error&&K(lA.value),S.promise}});var $b=di,gJ=ac.CONSTRUCTOR,My=Ey,IJ=Ta,cJ=Yo,M0=Rn,w0=My&&My.prototype;if($b({target:"Promise",proto:!0,forced:gJ,real:!0},{catch:function(l){return this.then(void 0,l)}}),cJ(My)){var AL=IJ("Promise").prototype.catch;w0.catch!==AL&&M0(w0,"catch",AL,{unsafe:!0})}var EJ=Ei,lJ=F,CJ=PB,BJ=r0,uJ=Dy;di({target:"Promise",stat:!0,forced:Zb},{race:function(l){var p=this,S=CJ.f(p),H=S.reject,K=BJ(function(){var lA=lJ(p.resolve);uJ(l,function(SA){EJ(lA,p,SA).then(S.resolve,H)})});return K.error&&H(K.value),S.promise}});var eL=PB;di({target:"Promise",stat:!0,forced:ac.CONSTRUCTOR},{reject:function(l){var p=eL.f(this);return(0,p.reject)(l),p.promise}});var QJ=Xr,mI=So,Hd=PB,wy=di,S0=ac.CONSTRUCTOR,dJ=function(l,p){if(QJ(l),mI(p)&&p.constructor===l)return p;var S=Hd.f(l);return(0,S.resolve)(p),S.promise};Ta("Promise"),wy({target:"Promise",stat:!0,forced:S0},{resolve:function(l){return dJ(this,l)}});var v0=FB,Wg=F,tL=Xr;di({target:"Reflect",stat:!0,forced:!Xe(function(){Reflect.apply(function(){})})},{apply:function(l,p,S){return v0(Wg(l),p,tL(S))}});var iL=Xr,Vd=function(){var l=iL(this),p="";return l.hasIndices&&(p+="d"),l.global&&(p+="g"),l.ignoreCase&&(p+="i"),l.multiline&&(p+="m"),l.dotAll&&(p+="s"),l.unicode&&(p+="u"),l.unicodeSets&&(p+="v"),l.sticky&&(p+="y"),p},Sy=Xe,N0=ae.RegExp,T0=Sy(function(){var l=N0("a","y");return l.lastIndex=2,l.exec("abcd")!==null}),G0=T0||Sy(function(){return!N0("a","y").sticky}),oL={BROKEN_CARET:T0||Sy(function(){var l=N0("^r","gy");return l.lastIndex=2,l.exec("str")!==null}),MISSED_STICKY:G0,UNSUPPORTED_Y:T0},hJ=Xe,k0=ae.RegExp,nQ=hJ(function(){var l=k0(".","s");return!(l.dotAll&&l.test(`
`)&&l.flags==="s")}),pJ=Xe,fJ=ae.RegExp,_0=pJ(function(){var l=fJ("(?<a>b)","g");return l.exec("b").groups.a!=="b"||"b".replace(l,"$<a>c")!=="bc"}),PC=Ei,qd=$t,rL=dr,nL=Vd,Wl=oL,jE=ys,mJ=No.get,b0=nQ,aL=_0,L0=ro("native-string-replace",String.prototype.replace),jp=RegExp.prototype.exec,WE=jp,sL=qd("".charAt),VB=qd("".indexOf),gL=qd("".replace),vy=qd("".slice),zE=function(){var l=/a/,p=/b*/g;return PC(jp,l,"a"),PC(jp,p,"a"),l.lastIndex!==0||p.lastIndex!==0}(),F0=Wl.BROKEN_CARET,Wp=/()??/.exec("")[1]!==void 0;(zE||Wp||F0||b0||aL)&&(WE=function(l){var p,S,H,K,lA,SA,nA,hA=this,yA=mJ(hA),kA=rL(l),oe=yA.raw;if(oe)return oe.lastIndex=hA.lastIndex,p=PC(WE,oe,kA),hA.lastIndex=oe.lastIndex,p;var ee=yA.groups,PA=F0&&hA.sticky,ve=PC(nL,hA),dt=hA.source,fe=0,Be=kA;if(PA&&(ve=gL(ve,"y",""),VB(ve,"g")===-1&&(ve+="g"),Be=vy(kA,hA.lastIndex),hA.lastIndex>0&&(!hA.multiline||hA.multiline&&sL(kA,hA.lastIndex-1)!==`
`)&&(dt="(?: "+dt+")",Be=" "+Be,fe++),S=new RegExp("^(?:"+dt+")",ve)),Wp&&(S=new RegExp("^"+dt+"$(?!\\s)",ve)),zE&&(H=hA.lastIndex),K=PC(jp,PA?S:hA,Be),PA?K?(K.input=vy(K.input,fe),K[0]=vy(K[0],fe),K.index=hA.lastIndex,hA.lastIndex+=K[0].length):hA.lastIndex=0:zE&&K&&(hA.lastIndex=hA.global?K.index+K[0].length:H),Wp&&K&&K.length>1&&PC(L0,K[0],S,function(){for(lA=1;lA<arguments.length-2;lA++)arguments[lA]===void 0&&(K[lA]=void 0)}),K&&ee)for(K.groups=SA=jE(null),lA=0;lA<ee.length;lA++)SA[(nA=ee[lA])[0]]=K[nA[1]];return K});var Ny=WE;di({target:"RegExp",proto:!0,forced:/./.exec!==Ny},{exec:Ny});var DJ=Xe,IL=ae.RegExp,aQ=!DJ(function(){var l=!0;try{IL(".","d")}catch{l=!1}var p={},S="",H=l?"dgimsy":"gimsy",K=function(nA,hA){Object.defineProperty(p,nA,{get:function(){return S+=hA,!0}})},lA={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var SA in l&&(lA.hasIndices="d"),lA)K(SA,lA[SA]);return Object.getOwnPropertyDescriptor(IL.prototype,"flags").get.call(p)!==H||S!==H}),cL=Ei,yJ=jo,RJ=po,EL={correct:aQ},MJ=Vd,wJ=RegExp.prototype,Ty=EL.correct?function(l){return l.flags}:function(l){return EL.correct||!RJ(wJ,l)||yJ(l,"flags")?l.flags:cL(MJ,l)},SJ=mn.PROPER,lL=Rn,vJ=Xr,CL=dr,NJ=Xe,TJ=Ty,Gy="toString",BL=RegExp.prototype,uL=BL[Gy],GJ=NJ(function(){return uL.call({source:"a",flags:"b"})!=="/a/b"}),kJ=SJ&&uL.name!==Gy;(GJ||kJ)&&lL(BL,Gy,function(){var l=vJ(this);return"/"+CL(l.source)+"/"+CL(TJ(l))},{unsafe:!0});var QL=Ei,dL=Rn,_J=Ny,hL=Xe,pL=Gt,bJ=lo,LJ=pL("species"),ky=RegExp.prototype,U0=function(l,p,S,H){var K=pL(l),lA=!hL(function(){var yA={};return yA[K]=function(){return 7},""[l](yA)!==7}),SA=lA&&!hL(function(){var yA=!1,kA=/a/;if(l==="split"){var oe={};oe[LJ]=function(){return kA},(kA={constructor:oe,flags:""})[K]=/./[K]}return kA.exec=function(){return yA=!0,null},kA[K](""),!yA});if(!lA||!SA||S){var nA=/./[K],hA=p(K,""[l],function(yA,kA,oe,ee,PA){var ve=kA.exec;return ve===_J||ve===ky.exec?lA&&!PA?{done:!0,value:QL(nA,kA,oe,ee)}:{done:!0,value:QL(yA,oe,kA,ee)}:{done:!1}});dL(String.prototype,l,hA[0]),dL(ky,K,hA[1])}H&&bJ(ky[K],"sham",!0)},O0=$t,FJ=Wn,UJ=dr,fL=Gi,OJ=O0("".charAt),mL=O0("".charCodeAt),xJ=O0("".slice),YJ=function(l){return function(p,S){var H,K,lA=UJ(fL(p)),SA=FJ(S),nA=lA.length;return SA<0||SA>=nA?l?"":void 0:(H=mL(lA,SA))<55296||H>56319||SA+1===nA||(K=mL(lA,SA+1))<56320||K>57343?l?OJ(lA,SA):H:l?xJ(lA,SA,SA+2):K-56320+(H-55296<<10)+65536}},DL={charAt:YJ(!0)},PJ=DL.charAt,x0=function(l,p,S){return p+(S?PJ(l,p).length:1)},yL=Ei,RL=Xr,JJ=Yo,ML=Tr,wL=Ny,SL=TypeError,vL=function(l,p){var S=l.exec;if(JJ(S)){var H=yL(S,l,p);return H!==null&&RL(H),H}if(ML(l)==="RegExp")return yL(wL,l,p);throw new SL("RegExp#exec called on incompatible receiver")},HJ=Ei,zp=U0,NL=Xr,TL=So,VJ=ha,qB=dr,qJ=Gi,KJ=GA,GL=x0,Y0=Ty,kL=vL,P0=$t("".indexOf);zp("match",function(l,p,S){return[function(H){var K=qJ(this),lA=TL(H)?KJ(H,l):void 0;return lA?HJ(lA,H,K):new RegExp(H)[l](qB(K))},function(H){var K=NL(this),lA=qB(H),SA=S(p,K,lA);if(SA.done)return SA.value;var nA=qB(Y0(K));if(P0(nA,"g")===-1)return kL(K,lA);var hA=P0(nA,"u")!==-1;K.lastIndex=0;for(var yA,kA=[],oe=0;(yA=kL(K,lA))!==null;){var ee=qB(yA[0]);kA[oe]=ee,ee===""&&(K.lastIndex=GL(lA,VJ(K.lastIndex),hA)),oe++}return oe===0?null:kA}]});var sQ=$t,jJ=In,J0=Math.floor,H0=sQ("".charAt),WJ=sQ("".replace),V0=sQ("".slice),_y=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,zJ=/\$([$&'`]|\d{1,2})/g,_L=FB,bL=Ei,by=$t,ZJ=U0,LL=Xe,FL=Xr,UL=Yo,XJ=So,q0=Wn,$J=ha,gQ=dr,OL=Gi,AH=x0,K0=GA,xL=function(l,p,S,H,K,lA){var SA=S+l.length,nA=H.length,hA=zJ;return K!==void 0&&(K=jJ(K),hA=_y),WJ(lA,hA,function(yA,kA){var oe;switch(H0(kA,0)){case"$":return"$";case"&":return l;case"`":return V0(p,0,S);case"'":return V0(p,SA);case"<":oe=K[V0(kA,1,-1)];break;default:var ee=+kA;if(ee===0)return yA;if(ee>nA){var PA=J0(ee/10);return PA===0?yA:PA<=nA?H[PA-1]===void 0?H0(kA,1):H[PA-1]+H0(kA,1):yA}oe=H[ee-1]}return oe===void 0?"":oe})},eH=Ty,tH=vL,Kd=Gt("replace"),YL=Math.max,PL=Math.min,Zp=by([].concat),Xp=by([].push),IQ=by("".indexOf),Ly=by("".slice),Fy=function(l){return l===void 0?l:String(l)},JL="a".replace(/./,"$0")==="$0",j0=!!/./[Kd]&&/./[Kd]("a","$0")==="";ZJ("replace",function(l,p,S){var H=j0?"$":"$0";return[function(K,lA){var SA=OL(this),nA=XJ(K)?K0(K,Kd):void 0;return nA?bL(nA,K,SA,lA):bL(p,gQ(SA),K,lA)},function(K,lA){var SA=FL(this),nA=gQ(K);if(typeof lA=="string"&&IQ(lA,H)===-1&&IQ(lA,"$<")===-1){var hA=S(p,SA,nA,lA);if(hA.done)return hA.value}var yA=UL(lA);yA||(lA=gQ(lA));var kA,oe=gQ(eH(SA)),ee=IQ(oe,"g")!==-1;ee&&(kA=IQ(oe,"u")!==-1,SA.lastIndex=0);for(var PA,ve=[];(PA=tH(SA,nA))!==null&&(Xp(ve,PA),ee);)gQ(PA[0])===""&&(SA.lastIndex=AH(nA,$J(SA.lastIndex),kA));for(var dt="",fe=0,Be=0;Be<ve.length;Be++){for(var tA,Le=gQ((PA=ve[Be])[0]),he=YL(PL(q0(PA.index),nA.length),0),Zt=[],pt=1;pt<PA.length;pt++)Xp(Zt,Fy(PA[pt]));var ni=PA.groups;if(yA){var Li=Zp([Le],Zt,he,nA);ni!==void 0&&Xp(Li,ni),tA=gQ(_L(lA,void 0,Li))}else tA=xL(Le,nA,he,Zt,ni,lA);he>=fe&&(dt+=Ly(nA,fe,he)+tA,fe=he+Le.length)}return dt+Ly(nA,fe)}]},!!LL(function(){var l=/./;return l.exec=function(){var p=[];return p.groups={a:"7"},p},"".replace(l,"$<a>")!=="7"})||!JL||j0);var Uy,HL=So,VL=Tr,iH=Gt("match"),qL=function(l){var p;return HL(l)&&((p=l[iH])!==void 0?!!p:VL(l)==="RegExp")},oH=qL,rH=TypeError,W0=function(l){if(oH(l))throw new rH("The method doesn't accept regular expressions");return l},nH=Gt("match"),z0=function(l){var p=/./;try{"/./"[l](p)}catch{try{return p[nH]=!1,"/./"[l](p)}catch{}}return!1},aH=di,KL=CA,jL=ye.f,Z0=ha,WL=dr,sH=W0,gH=Gi,zL=z0,IH=KL("".slice),X0=Math.min,$0=zL("startsWith");aH({target:"String",proto:!0,forced:!!($0||(Uy=jL(String.prototype,"startsWith"),!Uy||Uy.writable))&&!$0},{startsWith:function(l){var p=WL(gH(this));sH(l);var S=Z0(X0(arguments.length>1?arguments[1]:void 0,p.length)),H=WL(l);return IH(p,S,S+H.length)===H}});var Av={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},ev=_a("span").classList,ZL=ev&&ev.constructor&&ev.constructor.prototype,Oy=ZL===Object.prototype?void 0:ZL,XL=ae,$L=Av,tv=Oy,iv=tS,cH=lo,ov=function(l){if(l&&l.forEach!==iv)try{cH(l,"forEach",iv)}catch{l.forEach=iv}};for(var rv in $L)$L[rv]&&ov(XL[rv]&&XL[rv].prototype);ov(tv);var nv=ae,av=Av,EH=Oy,$p=T_,Wd=lo,zd=T,sv=Gt("iterator"),xy=$p.values,AF=function(l,p){if(l){if(l[sv]!==xy)try{Wd(l,sv,xy)}catch{l[sv]=xy}if(zd(l,p,!0),av[p]){for(var S in $p)if(l[S]!==$p[S])try{Wd(l,S,$p[S])}catch{l[S]=$p[S]}}}};for(var gv in av)AF(nv[gv]&&nv[gv].prototype,gv);AF(EH,"DOMTokenList");var Af=function(l){return be(l)===Dt},Iv=function(l){return l!==null&&be(l)===Zi},cv=function(l){return be(Array.isArray)===qt?Array.isArray(l):CH(l)===bi},lH=function(l){return cv(l)||Iv(l)},eF=function(l){return be(l)===qt},ef=function(l){return l instanceof Error},CH=function(l){return Object.prototype.toString.call(l).match(/^\[object (.*)\]$/)[1].toLowerCase()},tf=0;Date.now||(Date.now=function(){return new Date().getTime()});var tF=function(){tf===0&&(tf=Date.now()-1);var l=Date.now()-tf;return l>4294967295?(tf+=4294967295,Date.now()-tf):l},BH=function(l){return JSON.stringify(l,["message","code"])};function iF(l){return Reflect.apply(Object.prototype.toString,l,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}function ZE(l){if(typeof l!="string")return l;var p;try{var S=JSON.parse(l);p=be(S)==="object"&&S?S:l}catch{p=l}return p}function of(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p={title:l.title,desc:l.description||"",extension:l.extension||"",is_disable_push:l.isDisablePush||!1,ios_push_type:l.iOSPushType||0,android_push_type:l.androidPushType||0,ignore_ios_badge:!!l.ignoreIOSBadge,android_vivo_classification:l.androidVIVOClassification};return l.iOSSound&&(p.ios_sound=l.iOSSound),l.androidSound&&(p.android_sound=l.androidSound),l.androidOPPOChannelID&&(p.android_oppo_channel_id=l.androidOPPOChannelID),l.androidFCMChannelID&&(p.android_fcm_channel_id=l.androidFCMChannelID),l.androidXiaoMiChannelID&&(p.android_xiaomi_channel_id=l.androidXiaoMiChannelID),l.androidHuaWeiCategory&&(p.android_huawei_category=l.androidHuaWeiCategory),p}const uH={[r.TUICallEvent.ERROR]:["code","message"],[r.TUICallEvent.KICKED_OUT]:["message"],[r.TUICallEvent.onUserSigExpired]:[],[r.TUICallEvent.ON_CALL_RECEIVED]:["callerId","calleeIdList","chatGroupID","callMediaType","userData","roomID","strRoomID","callId","callRole"],[r.TUICallEvent.ON_CALL_BEGIN]:["roomID","strRoomID","callMediaType","callRole","callId","chatGroupID"],[r.TUICallEvent.ON_CALL_END]:["roomID","strRoomID","callMediaType","callRole","callId","totalTime","reason","userID","chatGroupID"],[r.TUICallEvent.LINE_BUSY]:["userID"],[r.TUICallEvent.REJECT]:["userID"],[r.TUICallEvent.USER_ACCEPT]:["userID"],[r.TUICallEvent.ON_CALL_CANCELED]:["userID","callId","roomID","strRoomID","callMediaType","callRole"],[r.TUICallEvent.NO_RESP]:["userIDList"],[r.TUICallEvent.ON_USER_INVITING]:["userID"],[r.TUICallEvent.USER_ENTER]:["userID"],[r.TUICallEvent.USER_LEAVE]:["userID"],[r.TUICallEvent.USER_AUDIO_AVAILABLE]:["userID","isAudioAvailable"],[r.TUICallEvent.USER_VIDEO_AVAILABLE]:["userID","isVideoAvailable"],[r.TUICallEvent.USER_VOICE_VOLUME]:["userID","isVideoAvailable"],[r.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED]:["network"],[r.TUICallEvent.ON_CALL_NOT_CONNECTED]:["userID","callId","roomID","strRoomID","callMediaType","callRole","reason","chatGroupID"],[r.TUICallEvent.onDeviceChange]:["deviceId","type","state"]};function Ev(l,p){const S=ZE(p),H=uH[l],K={};return l===r.TUICallEvent.ON_CALL_RECEIVED?H.forEach((lA,SA)=>{K[lA]=lA==="userIDList"&&SA===1?Array.from(new Set(ZE(S[SA]))):S[SA]}):H.forEach((lA,SA)=>{K[lA]=S[SA]}),K}var Yy=Mr,oF=TypeError,lv=function(l,p){if(!delete l[p])throw new oF("Cannot delete property "+Yy(p)+" of "+Yy(l))},QH=di,dH=In,rF=Yg,nF=Wn,hH=pa,Py=Xw,pH=Zw,aF=to,Cv=te,Jy=lv,sF=Qd("splice"),fH=Math.max,rf=Math.min;QH({target:"Array",proto:!0,forced:!sF},{splice:function(l,p){var S,H,K,lA,SA,nA,hA=dH(this),yA=hH(hA),kA=rF(l,yA),oe=arguments.length;for(oe===0?S=H=0:oe===1?(S=0,H=yA-kA):(S=oe-2,H=rf(fH(nF(p),0),yA-kA)),pH(yA+S-H),K=aF(hA,H),lA=0;lA<H;lA++)(SA=kA+lA)in hA&&Cv(K,lA,hA[SA]);if(Py(K,H),S<H){for(lA=kA;lA<yA-H;lA++)nA=lA+S,(SA=lA+H)in hA?hA[nA]=hA[SA]:Jy(hA,nA);for(lA=yA;lA>yA-H+S;lA--)Jy(hA,lA-1)}else if(S>H)for(lA=yA-H;lA>kA;lA--)nA=lA+S-1,(SA=lA+H-1)in hA?hA[nA]=hA[SA]:Jy(hA,nA);for(lA=0;lA<S;lA++)hA[lA+kA]=arguments[lA+2];return Py(hA,yA-H+S),K}});var nf={},mH={get exports(){return nf},set exports(l){nf=l}},Bv=Xe(function(){if(typeof ArrayBuffer=="function"){var l=new ArrayBuffer(8);Object.isExtensible(l)&&Object.defineProperty(l,"a",{value:8})}}),uv=Xe,gF=So,Qv=Tr,dv=Bv,af=Object.isExtensible,DH=uv(function(){af(1)})||dv?function(l){return!!gF(l)&&(!dv||Qv(l)!=="ArrayBuffer")&&(!af||af(l))}:af,yH=!Xe(function(){return Object.isExtensible(Object.preventExtensions({}))}),RH=di,MH=$t,wH=ng,SH=So,hv=jo,vH=tn.f,IF=ps,cF=ln,Hy=DH,NH=yH,pv=!1,JC=ua("meta"),TH=0,Vy=function(l){vH(l,JC,{value:{objectID:"O"+TH++,weakData:{}}})},GH=mH.exports={enable:function(){GH.enable=function(){},pv=!0;var l=IF.f,p=MH([].splice),S={};S[JC]=1,l(S).length&&(IF.f=function(H){for(var K=l(H),lA=0,SA=K.length;lA<SA;lA++)if(K[lA]===JC){p(K,lA,1);break}return K},RH({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:cF.f}))},fastKey:function(l,p){if(!SH(l))return typeof l=="symbol"?l:(typeof l=="string"?"S":"P")+l;if(!hv(l,JC)){if(!Hy(l))return"F";if(!p)return"E";Vy(l)}return l[JC].objectID},getWeakData:function(l,p){if(!hv(l,JC)){if(!Hy(l))return!0;if(!p)return!1;Vy(l)}return l[JC].weakData},onFreeze:function(l){return NH&&pv&&Hy(l)&&!hv(l,JC)&&Vy(l),l}};wH[JC]=!0;var EF=di,lF=ae,kH=$t,CF=Yc,_H=Rn,bH=nf,LH=Dy,BF=Jp,uF=Yo,FH=sn,fv=So,mv=Xe,Dv=y0,UH=T,OH=wd,xH=Rn,QF=function(l,p,S){for(var H in p)xH(l,H,p[H],S);return l},cQ=ys,dF=ma,hF=QF,YH=E,PH=Jp,JH=sn,HH=Dy,VH=VD,pF=fd,qH=Gd,sf=ot,fF=nf.fastKey,mF=No.set,yv=No.getterFor,KH={getConstructor:function(l,p,S,H){var K=l(function(yA,kA){PH(yA,lA),mF(yA,{type:p,index:cQ(null),first:null,last:null,size:0}),sf||(yA.size=0),JH(kA)||HH(kA,yA[H],{that:yA,AS_ENTRIES:S})}),lA=K.prototype,SA=yv(p),nA=function(yA,kA,oe){var ee,PA,ve=SA(yA),dt=hA(yA,kA);return dt?dt.value=oe:(ve.last=dt={index:PA=fF(kA,!0),key:kA,value:oe,previous:ee=ve.last,next:null,removed:!1},ve.first||(ve.first=dt),ee&&(ee.next=dt),sf?ve.size++:yA.size++,PA!=="F"&&(ve.index[PA]=dt)),yA},hA=function(yA,kA){var oe,ee=SA(yA),PA=fF(kA);if(PA!=="F")return ee.index[PA];for(oe=ee.first;oe;oe=oe.next)if(oe.key===kA)return oe};return hF(lA,{clear:function(){for(var yA=SA(this),kA=yA.first;kA;)kA.removed=!0,kA.previous&&(kA.previous=kA.previous.next=null),kA=kA.next;yA.first=yA.last=null,yA.index=cQ(null),sf?yA.size=0:this.size=0},delete:function(yA){var kA=this,oe=SA(kA),ee=hA(kA,yA);if(ee){var PA=ee.next,ve=ee.previous;delete oe.index[ee.index],ee.removed=!0,ve&&(ve.next=PA),PA&&(PA.previous=ve),oe.first===ee&&(oe.first=PA),oe.last===ee&&(oe.last=ve),sf?oe.size--:kA.size--}return!!ee},forEach:function(yA){for(var kA,oe=SA(this),ee=YH(yA,arguments.length>1?arguments[1]:void 0);kA=kA?kA.next:oe.first;)for(ee(kA.value,kA.key,this);kA&&kA.removed;)kA=kA.previous},has:function(yA){return!!hA(this,yA)}}),hF(lA,S?{get:function(yA){var kA=hA(this,yA);return kA&&kA.value},set:function(yA,kA){return nA(this,yA===0?0:yA,kA)}}:{add:function(yA){return nA(this,yA=yA===0?0:yA,yA)}}),sf&&dF(lA,"size",{configurable:!0,get:function(){return SA(this).size}}),K},setStrong:function(l,p,S){var H=p+" Iterator",K=yv(p),lA=yv(H);VH(l,p,function(SA,nA){mF(this,{type:H,target:SA,state:K(SA),kind:nA,last:null})},function(){for(var SA=lA(this),nA=SA.kind,hA=SA.last;hA&&hA.removed;)hA=hA.previous;return SA.target&&(SA.last=hA=hA?hA.next:SA.state.first)?pF(nA==="keys"?hA.key:nA==="values"?hA.value:[hA.key,hA.value],!1):(SA.target=null,pF(void 0,!0))},S?"entries":"values",!S,!0),qH(p)}},jH=function(l,p,S){var H=l.indexOf("Map")!==-1,K=l.indexOf("Weak")!==-1,lA=H?"set":"add",SA=lF[l],nA=SA&&SA.prototype,hA=SA,yA={},kA=function(fe){var Be=kH(nA[fe]);_H(nA,fe,fe==="add"?function(tA){return Be(this,tA===0?0:tA),this}:fe==="delete"?function(tA){return!(K&&!fv(tA))&&Be(this,tA===0?0:tA)}:fe==="get"?function(tA){return K&&!fv(tA)?void 0:Be(this,tA===0?0:tA)}:fe==="has"?function(tA){return!(K&&!fv(tA))&&Be(this,tA===0?0:tA)}:function(tA,Le){return Be(this,tA===0?0:tA,Le),this})};if(CF(l,!uF(SA)||!(K||nA.forEach&&!mv(function(){new SA().entries().next()}))))hA=S.getConstructor(p,l,H,lA),bH.enable();else if(CF(l,!0)){var oe=new hA,ee=oe[lA](K?{}:-0,1)!==oe,PA=mv(function(){oe.has(1)}),ve=Dv(function(fe){new SA(fe)}),dt=!K&&mv(function(){for(var fe=new SA,Be=5;Be--;)fe[lA](Be,Be);return!fe.has(-0)});ve||((hA=p(function(fe,Be){BF(fe,nA);var tA=OH(new SA,fe,hA);return FH(Be)||LH(Be,tA[lA],{that:tA,AS_ENTRIES:H}),tA})).prototype=nA,nA.constructor=hA),(PA||dt)&&(kA("delete"),kA("has"),H&&kA("get")),(dt||ee)&&kA(lA),K&&nA.clear&&delete nA.clear}return yA[l]=hA,EF({global:!0,constructor:!0,forced:hA!==SA},yA),UH(hA,l),K||S.setStrong(hA,l,H),hA};jH("Map",function(l){return function(){return l(this,arguments.length?arguments[0]:void 0)}},KH);var gf,Rv,WH=DL.charAt,DF=dr,KB=No,Mv=VD,yF=fd,wv="String Iterator",RF=KB.set,MF=KB.getterFor(wv);Mv(String,"String",function(l){RF(this,{type:wv,string:DF(l),index:0})},function(){var l,p=MF(this),S=p.string,H=p.index;return H>=S.length?yF(void 0,!0):(l=WH(S,H),p.index+=l.length,yF(l,!1))}),gf=typeof console<"u"?console:typeof bI<"u"&&bI.console?bI.console:typeof window<"u"&&window.console?window.console:{};for(var zH=function(){},jB=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],qy=jB.length;qy--;)Rv=jB[qy],console[Rv]||(gf[Rv]=zH);gf.methods=jB;var Ky,sc=gf;const WB=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,Pn=window?.navigator&&((Ky=window?.navigator)===null||Ky===void 0?void 0:Ky.userAgent)||"",wF=/iPad/i.test(Pn),ZH=/iPhone/i.test(Pn)&&!wF,SF=/iPod/i.test(Pn),Sv=ZH||wF||SF;(function(){const l=Pn.match(/OS (\d+)_/i);l&&l[1]&&l[1]})();const XH=/Android/i.test(Pn);(function(){const l=Pn.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!l)return null;const p=l[1]&&parseFloat(l[1]),S=l[2]&&parseFloat(l[2]);p&&S&&parseFloat(`${l[1]}.${l[2]}`)})(),function(){const l=Pn.match(/Firefox\/(\d+)/);l&&l[1]&&parseFloat(l[1])}(),/Edge\//i.test(Pn)&&function(){const l=Pn.match(/Edge\/(\d+)/i);l&&l[1]&&l[1]}(),function(){const l=Pn.match(/Edg\/(\d+)/);l&&l[1]&&parseFloat(l[1])}(),function(){const l=Pn.match(/Chrome\/(\d+)/);l&&l[1]&&parseFloat(l[1])}(),function(){const l=Pn.match(/Chrome\/([\d.]+)/);l&&l[1]&&l[1]}(),function(){const l=/MSIE\s(\d+)\.\d/.exec(Pn);l&&parseFloat(l[1])}(),function(){const l=Pn.match(/Version\/([\d.]+)/);l&&l[1]&&l[1]}();const vF=/TBS\/\d+/i.test(Pn);(function(){const l=Pn.match(/TBS\/(\d+)/i);l&&l[1]&&l[1]})();const $H=!vF&&/MQQBrowser\/\d+/i.test(Pn)&&/COVC\/\d+/i.test(Pn);(!vF&&/MQQBrowser\/\d+/i.test(Pn)||$H)&&function(){const l=Pn.match(/ MQQBrowser\/([\d.]+)/);l&&l[1]&&l[1]}(),/(micromessenger|webbrowser)/i.test(Pn)&&function(){const l=Pn.match(/MicroMessenger\/(\d+)/i);l&&l[1]&&l[1]}(),/HuaweiBrowser/i.test(Pn)&&function(){const l=Pn.match(/HuaweiBrowser\/([\d.]+)/);l&&l[1]&&l[1]}();const AV=new RegExp("HeadlessChrome","i").test(Pn);var HC=0,If=new Map,cf="%cCallEngine%c%s",EQ="padding: 1px 4px;border-radius: 3px;color: #fff;background: #444;",Zd="display: inline",lQ=!(Sv||XH||AV);function vv(){var l=new Date;return"[".concat(l.toLocaleTimeString("en-US",{hour12:!1}),".").concat(function(p){var S;switch(p.toString().length){case 1:S="00".concat(p);break;case 2:S="0".concat(p);break;default:S=p}return S}(l.getMilliseconds()),"]")}var To={_data:[],_length:0,_visible:!1,arguments2String:function(l,p){var S;if(p.length===1)S="".concat(vv()," <").concat(l,"> ").concat(p[0]);else{S="".concat(vv()," <").concat(l,"> ");for(var H=0,K=p.length;H<K;H++)lH(p[H])?ef(p[H])?S+=BH(p[H]):S+=JSON.stringify(p[H]):S+=p[H],S+=" "}return S},debug:function(){if(HC<=-1){var l=this.arguments2String("DEBUG",arguments);To.record(l,"debug"),lQ?sc.debug(cf,EQ,Zd,l):sc.debug(l)}},log:function(){if(HC<=0){var l=this.arguments2String("LOG",arguments);To.record(l,"log"),lQ?sc.log(cf,EQ,Zd,l):sc.log(l)}},info:function(){if(HC<=1){var l=this.arguments2String("INFO",arguments);To.record(l,"info"),lQ?sc.info(cf,EQ,Zd,l):sc.info(l)}},warn:function(){if(HC<=2){var l=this.arguments2String("WARN",arguments);To.record(l,"warn"),lQ?sc.warn(cf,EQ,Zd,l):sc.warn(l)}},error:function(){if(HC<=3){var l=this.arguments2String("ERROR",arguments);To.record(l,"error"),lQ?sc.error(cf,EQ,Zd,l):sc.error(l)}},time:function(l){If.set(l,tF())},timeEnd:function(l){if(If.has(l)){var p=tF()-If.get(l);return If.delete(l),p}return sc.warn("未找到对应label: ".concat(l,", 请在调用 logger.timeEnd 前,调用 logger.time")),0},setLevel:function(l){l<4&&sc.log("".concat(vv(),"set level from ").concat(HC," to ").concat(l)),HC=l},getLevel:function(){return HC},record:function(l,p){To._length===1100&&(To._data.splice(0,100),To._length=1e3),To._length++,To._data.push("".concat(l," [").concat(p,`]
`))},getLog:function(){return To._data}},gc={};(function(l){var p;p=()=>(()=>{var S={902:function(SA,nA,hA){var yA=this&&this.__assign||function(){return yA=Object.assign||function(it){for(var de,xt=1,Ri=arguments.length;xt<Ri;xt++)for(var ui in de=arguments[xt])Object.prototype.hasOwnProperty.call(de,ui)&&(it[ui]=de[ui]);return it},yA.apply(this,arguments)},kA=this&&this.__awaiter||function(it,de,xt,Ri){return new(xt||(xt=Promise))(function(ui,ci){function Fi(na){try{br(Ri.next(na))}catch(zi){ci(zi)}}function tr(na){try{br(Ri.throw(na))}catch(zi){ci(zi)}}function br(na){var zi;na.done?ui(na.value):(zi=na.value,zi instanceof xt?zi:new xt(function(ws){ws(zi)})).then(Fi,tr)}br((Ri=Ri.apply(it,de||[])).next())})},oe=this&&this.__generator||function(it,de){var xt,Ri,ui,ci,Fi={label:0,sent:function(){if(1&ui[0])throw ui[1];return ui[1]},trys:[],ops:[]};return ci={next:tr(0),throw:tr(1),return:tr(2)},typeof Symbol=="function"&&(ci[Symbol.iterator]=function(){return this}),ci;function tr(br){return function(na){return function(zi){if(xt)throw new TypeError("Generator is already executing.");for(;ci&&(ci=0,zi[0]&&(Fi=0)),Fi;)try{if(xt=1,Ri&&(ui=2&zi[0]?Ri.return:zi[0]?Ri.throw||((ui=Ri.return)&&ui.call(Ri),0):Ri.next)&&!(ui=ui.call(Ri,zi[1])).done)return ui;switch(Ri=0,ui&&(zi=[2&zi[0],ui.value]),zi[0]){case 0:case 1:ui=zi;break;case 4:return Fi.label++,{value:zi[1],done:!1};case 5:Fi.label++,Ri=zi[1],zi=[0];continue;case 7:zi=Fi.ops.pop(),Fi.trys.pop();continue;default:if(!((ui=(ui=Fi.trys).length>0&&ui[ui.length-1])||zi[0]!==6&&zi[0]!==2)){Fi=0;continue}if(zi[0]===3&&(!ui||zi[1]>ui[0]&&zi[1]<ui[3])){Fi.label=zi[1];break}if(zi[0]===6&&Fi.label<ui[1]){Fi.label=ui[1],ui=zi;break}if(ui&&Fi.label<ui[2]){Fi.label=ui[2],Fi.ops.push(zi);break}ui[2]&&Fi.ops.pop(),Fi.trys.pop();continue}zi=de.call(it,Fi)}catch(ws){zi=[6,ws],Ri=0}finally{xt=ui=0}if(5&zi[0])throw zi[1];return{value:zi[0]?zi[1]:void 0,done:!0}}([br,na])}}};Object.defineProperty(nA,"__esModule",{value:!0});var ee,PA=hA(266),ve=hA(466),dt=hA(402),fe=hA(882),Be=hA(271),tA=hA(884),Le=hA(900),he=hA(172);(function(it){it[it.DEBUG=0]="DEBUG",it[it.INFO=1]="INFO",it[it.WARING=2]="WARING",it[it.ERROR=3]="ERROR"})(ee||(ee={}));var Zt={metric:!0,context:!0},pt=function(it,de,xt){return xt===void 0&&(xt=0),(0,PA.isPlainObject)(it)?((0,PA.isPlainObject)(de)&&Object.keys(de).forEach(function(Ri){var ui=it[Ri],ci=de[Ri];it[Ri]=Zt[Ri]&&xt===0?pt(ui,ci,1):ci}),it):(0,PA.isPlainObject)(de)?de:{}},ni={clsConfig:{endpoint:"",topicId:""}},Li=function(){function it(de){var xt=this;this.url="",this.uploadChannel="",this.sendClsPipe=null,this.sendEsPipe=null,this._logLevel=ee.INFO,this._getReportDataList=[],this._blacklist=[];var Ri=de||ni,ui=Ri.clsConfig,ci=Ri.esConfig,Fi=ui.endpoint,tr=ui.topicId;this.esConfig=ci,this.endpoint=Fi,this.topicId=tr;var br=this.buildUploadUrl();this.url=br,this.initPageUnloadMonitor(),br&&(this.sendClsPipe=(0,dt.createPipeline)([(0,Le.filterSdkappIdPipe)(this),(0,tA.createThrottlePipe)(this,5),(0,fe.formatClsLog)(),(0,Be.limitLengthPipe)(),function(na){return kA(xt,void 0,void 0,function(){var zi,ws,bh=this;return oe(this,function(sm){return zi=0,ws=function(){return kA(bh,void 0,void 0,function(){var Lh;return oe(this,function(du){switch(du.label){case 0:return du.trys.push([0,2,,3]),[4,this.send({url:br,data:na})];case 1:return du.sent(),[3,3];case 2:return Lh=du.sent(),zi<=2?(zi++,setTimeout(function(){ws()},1e3)):console.debug(Lh),[3,3];case 3:return[2]}})})},ws(),[2]})})}])),this.updateBlacklist()}return it.prototype.initPageUnloadMonitor=function(){var de=this,xt=this;!(0,PA.isMiniProgram)()&&document&&typeof document.addEventListener=="function"&&document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden"){var Ri=de.getCommonReportData(),ui=pt(Ri,{level:ee.WARING,method:"PAGE_UNLOAD",type:"event"});if(xt.esConfig)try{var ci=xt.esConfig,Fi=ci.url,tr=ci.table;(0,dt.createPipeline)([(0,Le.filterSdkappIdPipe)(xt),(0,tA.createThrottlePipe)(xt,1),(0,fe.formatESLog)({table:tr}),(0,Be.limitLengthPipe)(),function(br){return kA(de,void 0,void 0,function(){var na;return oe(this,function(zi){try{na=new Blob([JSON.stringify(br)],{type:"application/x-www-form-urlencoded"}),navigator?.sendBeacon(Fi,na)}catch(ws){console.debug(ws)}return[2]})})}])(ui)}catch(br){console.debug(br)}}})},it.prototype.updateEsConfig=function(de){var xt=this;try{if(de){this.esConfig=de;var Ri=de.url,ui=de.table;Ri&&ui&&(this.uploadChannel=Ri,this.sendEsPipe=(0,dt.createPipeline)([(0,Le.filterSdkappIdPipe)(this),(0,tA.createThrottlePipe)(this,5),(0,fe.formatESLog)({table:ui}),(0,Be.limitLengthPipe)(),function(ci){return kA(xt,void 0,void 0,function(){var Fi,tr,br=this;return oe(this,function(na){return Fi=0,tr=function(){return kA(br,void 0,void 0,function(){var zi;return oe(this,function(ws){switch(ws.label){case 0:return ws.trys.push([0,2,,3]),[4,this.send({url:Ri,data:ci})];case 1:return ws.sent(),[3,3];case 2:return zi=ws.sent(),Fi<=2?(Fi++,setTimeout(function(){tr()},1e3)):console.debug(zi),[3,3];case 3:return[2]}})})},tr(),[2]})})}]))}}catch(ci){console.debug(ci)}},it.prototype.updateGetReportData=function(de){typeof de=="function"&&this._getReportDataList.push(de)},it.prototype.updateBlacklist=function(){return kA(this,void 0,void 0,function(){var de,xt,Ri;return oe(this,function(ui){switch(ui.label){case 0:return ui.trys.push([0,2,,3]),[4,(0,ve.request)({url:he.RAINBOW_BLACK_LIST_API})];case 1:return de=ui.sent().data,typeof(xt=de?.blackList)=="string"&&(this._blacklist=xt.split(",")),[3,3];case 2:return Ri=ui.sent(),console.debug("update blacklist fail",Ri),[3,3];case 3:return[2]}})})},it.prototype.getBlackList=function(){return this._blacklist},it.prototype.setLogLevel=function(de){typeof de!="number"&&(de=ee.INFO),this._logLevel=de},it.prototype.createLogFunc=function(de){var xt=this;return function(Ri,ui){xt.log(Ri,ui,{level:de})}},it.prototype.buildUploadUrl=function(){return this.endpoint&&this.topicId?"".concat(this.endpoint,"/tracklog?topic_id=").concat(this.topicId):""},it.prototype.sendPipe=function(de){typeof this.sendClsPipe=="function"&&this.sendClsPipe(de),typeof this.sendEsPipe=="function"&&this.sendEsPipe(de)},it.prototype.info=function(de,xt){this.log(de,xt,{level:ee.INFO})},it.prototype.debug=function(de,xt){this.log(de,xt,{level:ee.DEBUG})},it.prototype.warn=function(de,xt){this.log(de,xt,{level:ee.WARING})},it.prototype.error=function(de,xt){this.log(de,xt,{level:ee.ERROR})},it.prototype.log=function(de,xt,Ri){try{var ui=Ri||{},ci=ui.level;if(ui.topicId,this._logLevel<=ci){var Fi=this.getCommonReportData(),tr=pt(Fi,yA({level:ci,method:de},xt));this.sendPipe(tr)}}catch(br){console.debug(br)}},it.prototype.getCommonReportData=function(){for(var de={},xt=0;xt<this._getReportDataList.length;xt++)de=pt(de,this._getReportDataList[xt]());return de},it.prototype.send=function(de){return kA(this,void 0,void 0,function(){var xt,Ri,ui,ci;return oe(this,function(Fi){switch(Fi.label){case 0:Ri=(xt=de||{}).url,ui=xt.data,Fi.label=1;case 1:return Fi.trys.push([1,4,,5]),Ri?[4,(0,ve.request)({url:Ri,data:ui,method:"post"})]:[3,3];case 2:Fi.sent(),Fi.label=3;case 3:return[3,5];case 4:throw ci=Fi.sent(),console.debug(ci),new Error(ci);case 5:return[2]}})})},it}();nA.default=Li},900:(SA,nA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.filterSdkappIdPipe=void 0,nA.filterSdkappIdPipe=function(hA){return function(yA,kA){try{var oe=yA.sdkappid,ee=hA.getBlackList();if(ee?.includes(String(oe)))throw new Error("this sdkappid in blacklist");kA(yA)}catch(PA){console.debug(PA)}}}},793:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.formatClsLog=void 0;var yA=hA(266);nA.formatClsLog=function(){return function(kA,oe){try{oe({logs:kA?.map(function(ee){var PA={};return Object.keys(ee).forEach(function(ve){if((0,yA.isPlainObject)(ee[ve]))try{PA[ve]=(0,yA.stringifyPlus)(ee[ve])}catch(dt){console.debug(dt)}else ve==="time"&&(PA[ve]=new Date(ee[ve]).toISOString()),PA[ve]=ee[ve]+""}),{contents:PA,time:ee.time}}),source:""})}catch(ee){console.debug(ee)}}}},713:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.formatESLog=void 0;var yA=hA(266);nA.formatESLog=function(kA){var oe=kA.table;return function(ee,PA){try{var ve=ee?.map(function(dt){var fe={};return Object.keys(dt).forEach(function(Be){if((0,yA.isPlainObject)(dt[Be]))try{fe[Be]=(0,yA.stringifyPlus)(dt[Be])}catch(tA){console.debug(tA)}else fe[Be]=Be==="level"?dt[Be]+"":Be==="time"?new Date(dt[Be]).toISOString():dt[Be]}),fe});PA({table:oe,report:ve})}catch(dt){console.debug(dt)}}}},882:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.formatClsLog=nA.formatESLog=void 0;var yA=hA(793);Object.defineProperty(nA,"formatClsLog",{enumerable:!0,get:function(){return yA.formatClsLog}});var kA=hA(713);Object.defineProperty(nA,"formatESLog",{enumerable:!0,get:function(){return kA.formatESLog}})},402:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.createPipeline=void 0;var yA=hA(266);nA.createPipeline=function(kA){if(!kA||!kA.reduce||!kA.length)throw new TypeError("createPipeline need at least one function param");return kA.length===1?function(oe,ee){kA[0](oe,ee||yA.noop)}:kA.reduce(function(oe,ee){return function(PA,ve){return ve===void 0&&(ve=yA.noop),oe(PA,function(dt){return ee?.(dt,ve)})}})}},271:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.limitLengthPipe=nA.MAX_LOG_LENGTH=void 0;var yA=hA(266);nA.MAX_LOG_LENGTH=102400,nA.limitLengthPipe=function(){return function(kA,oe){try{var ee=(kA=kA||{}).logs,PA=ee===void 0?[]:ee;kA.logs=PA?.map(function(ve){var dt=nA.MAX_LOG_LENGTH,fe=ve.contents;return Object.keys(fe).forEach(function(Be){var tA=fe[Be];try{tA&&tA.length>dt&&(fe[Be]=tA?.substring(0,dt))}catch{console.debug("size of content > limitSize"),fe[Be]=(0,yA.stringifyPlus)(tA).substring(0,dt)}}),ve}),oe(kA)}catch(ve){console.debug(ve)}}}},884:(SA,nA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.createThrottlePipe=void 0,nA.createThrottlePipe=function(hA,yA){var kA,oe=[];return function(ee,PA){if(Array.isArray(ee)?oe=oe.concat(ee):oe.push(ee),yA&&oe.length>=yA||hA.sendNow&&oe.length>0)return PA(oe.splice(0,oe.length)),void(kA&&clearTimeout(kA));kA&&clearTimeout(kA),kA=setTimeout(function(){kA=null,oe.length>0&&PA(oe.splice(0,oe.length))},hA.delay||1e3)}}},466:function(SA,nA,hA){var yA=this&&this.__assign||function(){return yA=Object.assign||function(fe){for(var Be,tA=1,Le=arguments.length;tA<Le;tA++)for(var he in Be=arguments[tA])Object.prototype.hasOwnProperty.call(Be,he)&&(fe[he]=Be[he]);return fe},yA.apply(this,arguments)},kA=this&&this.__awaiter||function(fe,Be,tA,Le){return new(tA||(tA=Promise))(function(he,Zt){function pt(it){try{Li(Le.next(it))}catch(de){Zt(de)}}function ni(it){try{Li(Le.throw(it))}catch(de){Zt(de)}}function Li(it){var de;it.done?he(it.value):(de=it.value,de instanceof tA?de:new tA(function(xt){xt(de)})).then(pt,ni)}Li((Le=Le.apply(fe,Be||[])).next())})},oe=this&&this.__generator||function(fe,Be){var tA,Le,he,Zt,pt={label:0,sent:function(){if(1&he[0])throw he[1];return he[1]},trys:[],ops:[]};return Zt={next:ni(0),throw:ni(1),return:ni(2)},typeof Symbol=="function"&&(Zt[Symbol.iterator]=function(){return this}),Zt;function ni(Li){return function(it){return function(de){if(tA)throw new TypeError("Generator is already executing.");for(;Zt&&(Zt=0,de[0]&&(pt=0)),pt;)try{if(tA=1,Le&&(he=2&de[0]?Le.return:de[0]?Le.throw||((he=Le.return)&&he.call(Le),0):Le.next)&&!(he=he.call(Le,de[1])).done)return he;switch(Le=0,he&&(de=[2&de[0],he.value]),de[0]){case 0:case 1:he=de;break;case 4:return pt.label++,{value:de[1],done:!1};case 5:pt.label++,Le=de[1],de=[0];continue;case 7:de=pt.ops.pop(),pt.trys.pop();continue;default:if(!((he=(he=pt.trys).length>0&&he[he.length-1])||de[0]!==6&&de[0]!==2)){pt=0;continue}if(de[0]===3&&(!he||de[1]>he[0]&&de[1]<he[3])){pt.label=de[1];break}if(de[0]===6&&pt.label<he[1]){pt.label=he[1],he=de;break}if(he&&pt.label<he[2]){pt.label=he[2],pt.ops.push(de);break}he[2]&&pt.ops.pop(),pt.trys.pop();continue}de=Be.call(fe,pt)}catch(xt){de=[6,xt],Le=0}finally{tA=he=0}if(5&de[0])throw de[1];return{value:de[0]?de[1]:void 0,done:!0}}([Li,it])}}},ee=this&&this.__rest||function(fe,Be){var tA={};for(var Le in fe)Object.prototype.hasOwnProperty.call(fe,Le)&&Be.indexOf(Le)<0&&(tA[Le]=fe[Le]);if(fe!=null&&typeof Object.getOwnPropertySymbols=="function"){var he=0;for(Le=Object.getOwnPropertySymbols(fe);he<Le.length;he++)Be.indexOf(Le[he])<0&&Object.prototype.propertyIsEnumerable.call(fe,Le[he])&&(tA[Le[he]]=fe[Le[he]])}return tA};Object.defineProperty(nA,"__esModule",{value:!0}),nA.request=void 0;var PA=hA(732),ve=hA(377),dt=hA(266);nA.request=function(fe){return kA(void 0,void 0,void 0,function(){var Be=fe.url,tA=fe.data,Le=fe.header,he=Le===void 0?{}:Le,Zt=fe.method,pt=Zt===void 0?"GET":Zt,ni=fe.dataType,Li=fe.responseType,it=ee(fe,["url","data","header","method","dataType","responseType"]);return oe(this,function(de){return(0,dt.isBrowser)()?[2,(0,ve.requestXHR)(Be,tA,{headers:he,method:pt,responseType:Li,dataType:ni})]:(0,dt.isMiniProgram)()?[2,(0,PA.requestWeapp)(yA({url:Be,data:tA,header:he,method:pt,dataType:ni,responseType:Li},it))]:(console.debug("unsupport env"),[2])})})}},732:function(SA,nA,hA){var yA=this&&this.__assign||function(){return yA=Object.assign||function(dt){for(var fe,Be=1,tA=arguments.length;Be<tA;Be++)for(var Le in fe=arguments[Be])Object.prototype.hasOwnProperty.call(fe,Le)&&(dt[Le]=fe[Le]);return dt},yA.apply(this,arguments)},kA=this&&this.__awaiter||function(dt,fe,Be,tA){return new(Be||(Be=Promise))(function(Le,he){function Zt(Li){try{ni(tA.next(Li))}catch(it){he(it)}}function pt(Li){try{ni(tA.throw(Li))}catch(it){he(it)}}function ni(Li){var it;Li.done?Le(Li.value):(it=Li.value,it instanceof Be?it:new Be(function(de){de(it)})).then(Zt,pt)}ni((tA=tA.apply(dt,fe||[])).next())})},oe=this&&this.__generator||function(dt,fe){var Be,tA,Le,he,Zt={label:0,sent:function(){if(1&Le[0])throw Le[1];return Le[1]},trys:[],ops:[]};return he={next:pt(0),throw:pt(1),return:pt(2)},typeof Symbol=="function"&&(he[Symbol.iterator]=function(){return this}),he;function pt(ni){return function(Li){return function(it){if(Be)throw new TypeError("Generator is already executing.");for(;he&&(he=0,it[0]&&(Zt=0)),Zt;)try{if(Be=1,tA&&(Le=2&it[0]?tA.return:it[0]?tA.throw||((Le=tA.return)&&Le.call(tA),0):tA.next)&&!(Le=Le.call(tA,it[1])).done)return Le;switch(tA=0,Le&&(it=[2&it[0],Le.value]),it[0]){case 0:case 1:Le=it;break;case 4:return Zt.label++,{value:it[1],done:!1};case 5:Zt.label++,tA=it[1],it=[0];continue;case 7:it=Zt.ops.pop(),Zt.trys.pop();continue;default:if(!((Le=(Le=Zt.trys).length>0&&Le[Le.length-1])||it[0]!==6&&it[0]!==2)){Zt=0;continue}if(it[0]===3&&(!Le||it[1]>Le[0]&&it[1]<Le[3])){Zt.label=it[1];break}if(it[0]===6&&Zt.label<Le[1]){Zt.label=Le[1],Le=it;break}if(Le&&Zt.label<Le[2]){Zt.label=Le[2],Zt.ops.push(it);break}Le[2]&&Zt.ops.pop(),Zt.trys.pop();continue}it=fe.call(dt,Zt)}catch(de){it=[6,de],tA=0}finally{Be=Le=0}if(5&it[0])throw it[1];return{value:it[0]?it[1]:void 0,done:!0}}([ni,Li])}}};Object.defineProperty(nA,"__esModule",{value:!0}),nA.requestWeapp=function(dt){return kA(this,void 0,void 0,function(){var fe;return oe(this,function(Be){switch(Be.label){case 0:Be.trys.push([0,5,6,7]),Be.label=1;case 1:return ve>=PA?[4,(0,ee.startBlocking)()]:[3,3];case 2:return Be.sent(),[3,1];case 3:return ve++,[4,new Promise(function(tA,Le){wx.request(yA(yA({},dt),{success:function(he){tA(he)},fail:function(he){Le(he)}}))})];case 4:return[2,Be.sent()];case 5:return fe=Be.sent(),[2,Promise.reject(fe)];case 6:return ve--,(0,ee.resolveFirstBlock)(),[7];case 7:return[2]}})})};var ee=hA(640),PA=2,ve=0},377:function(SA,nA,hA){var yA=this&&this.__awaiter||function(fe,Be,tA,Le){return new(tA||(tA=Promise))(function(he,Zt){function pt(it){try{Li(Le.next(it))}catch(de){Zt(de)}}function ni(it){try{Li(Le.throw(it))}catch(de){Zt(de)}}function Li(it){var de;it.done?he(it.value):(de=it.value,de instanceof tA?de:new tA(function(xt){xt(de)})).then(pt,ni)}Li((Le=Le.apply(fe,Be||[])).next())})},kA=this&&this.__generator||function(fe,Be){var tA,Le,he,Zt,pt={label:0,sent:function(){if(1&he[0])throw he[1];return he[1]},trys:[],ops:[]};return Zt={next:ni(0),throw:ni(1),return:ni(2)},typeof Symbol=="function"&&(Zt[Symbol.iterator]=function(){return this}),Zt;function ni(Li){return function(it){return function(de){if(tA)throw new TypeError("Generator is already executing.");for(;Zt&&(Zt=0,de[0]&&(pt=0)),pt;)try{if(tA=1,Le&&(he=2&de[0]?Le.return:de[0]?Le.throw||((he=Le.return)&&he.call(Le),0):Le.next)&&!(he=he.call(Le,de[1])).done)return he;switch(Le=0,he&&(de=[2&de[0],he.value]),de[0]){case 0:case 1:he=de;break;case 4:return pt.label++,{value:de[1],done:!1};case 5:pt.label++,Le=de[1],de=[0];continue;case 7:de=pt.ops.pop(),pt.trys.pop();continue;default:if(!((he=(he=pt.trys).length>0&&he[he.length-1])||de[0]!==6&&de[0]!==2)){pt=0;continue}if(de[0]===3&&(!he||de[1]>he[0]&&de[1]<he[3])){pt.label=de[1];break}if(de[0]===6&&pt.label<he[1]){pt.label=he[1],he=de;break}if(he&&pt.label<he[2]){pt.label=he[2],pt.ops.push(de);break}he[2]&&pt.ops.pop(),pt.trys.pop();continue}de=Be.call(fe,pt)}catch(xt){de=[6,xt],Le=0}finally{tA=he=0}if(5&de[0])throw de[1];return{value:de[0]?de[1]:void 0,done:!0}}([Li,it])}}};Object.defineProperty(nA,"__esModule",{value:!0}),nA.default=dt,nA.requestXHR=function(fe){return yA(this,arguments,void 0,function(Be,tA,Le){var he,Zt=this;return tA===void 0&&(tA={}),Le===void 0&&(Le={}),kA(this,function(pt){switch(pt.label){case 0:return pt.trys.push([0,2,3,4]),[4,new Promise(function(ni,Li){return yA(Zt,void 0,void 0,function(){var it,de,xt,Ri,ui,ci;return kA(this,function(Fi){switch(Fi.label){case 0:return ve>=PA?[4,(0,ee.startBlocking)()]:[3,2];case 1:return Fi.sent(),[3,0];case 2:return ve++,it=Le.method,de=Le.headers,xt=de===void 0?{}:de,Ri=Le.responseType,ui=Ri===void 0?"json":Ri,it=(it||"get").toUpperCase(),Object.assign(xt,{"Content-type":"application/json"}),(ci=new window.XMLHttpRequest).responseType=ui,ci.timeout=1e4,ci.onreadystatechange=function(){ci.readyState===4&&(ci.status===200?ni({data:ci.response}):Li({code:ci.status,msg:ci.statusText}))},ci.ontimeout=function(tr){Li({code:ci.status,msg:ci.statusText})},ci.onloadend=function(){ci&&(dt(function(tr){ni(tr)},function(tr){Li(tr)},{status:ci.status,statusText:ci.statusText}),ci=null)},ci.onabort=function(){ci&&(Li(new Error("Request aborted")),ci=null)},ci.onerror=function(){Li(new Error("Network Error")),ci=null},it==="GET"?Be="".concat(Be).concat(Be.indexOf("?")===-1?"?":"&").concat(oe.default.stringify(tA)):it==="POST"&&(tA=JSON.stringify(tA)),ci.open(it,Be,!0),Object.keys(xt).forEach(function(tr){ci.setRequestHeader(tr,xt[tr])}),ci.send(it==="POST"?tA:null),[2]}})})})];case 1:return[2,pt.sent()];case 2:throw he=pt.sent(),new Error(he);case 3:return ve--,(0,ee.resolveFirstBlock)(),[7];case 4:return[2]}})})};var oe=hA(383),ee=hA(640),PA=2,ve=0;function dt(fe,Be,tA){tA.status?Be(new Error("Request failed with status code "+tA.status)):fe(tA)}},172:(SA,nA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.RAINBOW_BLACK_LIST_API=void 0,nA.RAINBOW_BLACK_LIST_API="https://jsonschema.qpic.cn/87084b1b6d263426b92926cfa5fa23af/18f29786d25587b5eb162d5e9f724b1e/blackList"},266:(SA,nA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.date2ISOString=nA.stringifyPlus=nA.noop=nA.isBrowser=nA.isMiniProgram=nA.isPlainObject=nA.appendParams=void 0,nA.appendParams=function(yA,kA){kA===void 0&&(kA={});var oe=[];return Object.keys(kA).forEach(function(ee){var PA=kA[ee];if(PA!==void 0){if((0,nA.isPlainObject)(PA))try{PA=JSON.stringify(PA)}catch{}oe.push("".concat(ee,"=").concat(encodeURIComponent(PA)))}}),oe.length?(yA.indexOf("?")>-1?"".concat(yA,"&"):"".concat(yA,"?"))+oe.join("&"):yA},nA.isPlainObject=function(yA){if(typeof yA!="object"||yA===null)return!1;var kA=Object.getPrototypeOf(yA);if(kA===null)return!0;for(var oe=kA;Object.getPrototypeOf(oe)!==null;)oe=Object.getPrototypeOf(oe);return kA===oe},nA.isMiniProgram=function(){try{return!(!(wx!=null&&wx.request)||!(wx!=null&&wx.connectSocket))}catch{return!1}},nA.isBrowser=function(){try{return!(0,nA.isMiniProgram)()&&typeof window<"u"&&window.document!==void 0}catch{return!1}},nA.noop=function(){};var hA=function(){var yA=new WeakSet;return function(kA,oe){if(oe instanceof Error)return"Error.message: ".concat(oe.message,`
Error.stack: `).concat(oe.stack);if(typeof oe=="object"&&oe!==null){if(yA.has(oe))return"[Circular ".concat(kA||"root","]");yA.add(oe)}return oe}};nA.stringifyPlus=function(yA){if(typeof yA=="string")return yA;try{return yA instanceof Error?(JSON.stringify(yA,hA())||"undefined").replace(/"/gim,""):JSON.stringify(yA,hA())||"undefined"}catch(kA){return`error happen when aegis stringify:
`.concat(kA.message,`
`).concat(kA.stack)}},nA.date2ISOString=function(){var yA,kA=new Date,oe=kA.toISOString(),ee=kA.getTimezoneOffset()/60;return yA=ee<0?ee>-10?"+0".concat(Math.abs(100*ee)):"+".concat(Math.abs(100*ee)):ee>=10?"-".concat(100*ee):"-0".concat(100*ee),oe.replace("Z",yA)}},383:(SA,nA,hA)=>{Object.defineProperty(nA,"__esModule",{value:!0});var yA=hA(266);nA.default={stringify:function(kA){return kA?Object.keys(kA).map(function(oe){var ee=kA[oe];if((0,yA.isPlainObject)(ee))ee=JSON.stringify(ee);else{if(typeof ee!="string"&&typeof ee!="number")return"";ee=+ee}return encodeURIComponent(oe)+"="+encodeURIComponent(ee)}).filter(function(oe){return oe.length>0}).join("&"):""}}},640:(SA,nA)=>{Object.defineProperty(nA,"__esModule",{value:!0}),nA.startBlocking=nA.resolveFirstBlock=void 0;var hA=[];nA.startBlocking=function(){var yA,kA=new Promise(function(oe){yA=oe});return hA.push({promise:kA,resolve:yA}),kA},nA.resolveFirstBlock=function(){hA.length&&(hA[0].resolve(),hA.shift())}}},H={};function K(SA){var nA=H[SA];if(nA!==void 0)return nA.exports;var hA=H[SA]={exports:{}};return S[SA].call(hA.exports,hA,hA.exports,K),hA.exports}var lA={};return(()=>{var SA=lA;Object.defineProperty(SA,"__esModule",{value:!0});var nA=K(902),hA=null;SA.default=function(yA){return hA||(hA=new nA.default(yA)),hA}})(),lA})(),l.exports=p()})({get exports(){return gc},set exports(l){gc=l}});var Xd=z(gc);const Nv=65535,NF=60003,eV=60004,tV=-1101,iV=-1204,oV=3e4;var Ef;(function(l){l[l.UNKNOWN=65535]="UNKNOWN",l[l.NO_NETWORK=2805]="NO_NETWORK",l[l.FAILURE_SWITCH_TO_AUDIO=60001]="FAILURE_SWITCH_TO_AUDIO",l[l.FAILURE_SWITCH_TO_VIDEO=60002]="FAILURE_SWITCH_TO_VIDEO",l[l.NOT_MICROPHONE_LIST=60003]="NOT_MICROPHONE_LIST",l[l.NOT_CAMERA_LIST=60004]="NOT_CAMERA_LIST",l[l.NOT_SUPPORT=60006]="NOT_SUPPORT",l[l.ERROR_PACKAGE_NOT_PURCHASED=-1001]="ERROR_PACKAGE_NOT_PURCHASED",l[l.ERROR_PACKAGE_NOT_SUPPORTED=-1002]="ERROR_PACKAGE_NOT_SUPPORTED",l[l.ERROR_TIM_VERSION_OUTDATED=-1003]="ERROR_TIM_VERSION_OUTDATED",l[l.ERROR_PERMISSION_DENIED=-1101]="ERROR_PERMISSION_DENIED",l[l.ERROR_GET_DEVICE_LIST_FAIL=-1102]="ERROR_GET_DEVICE_LIST_FAIL",l[l.ERROR_INIT_FAIL=-1201]="ERROR_INIT_FAIL",l[l.ERROR_PARAM_INVALID=-1202]="ERROR_PARAM_INVALID",l[l.ERROR_REQUEST_REFUSED=-1203]="ERROR_REQUEST_REFUSED",l[l.ERROR_REQUEST_REPEATED=-1204]="ERROR_REQUEST_REPEATED",l[l.ERROR_SCENE_NOT_SUPPORTED=-1205]="ERROR_SCENE_NOT_SUPPORTED",l[l.INVALID_PARAMETER_REQUIRED=-120200]="INVALID_PARAMETER_REQUIRED",l[l.INVALID_PARAMETER_TYPE=-120201]="INVALID_PARAMETER_TYPE",l[l.INVALID_PARAMETER_EMPTY=-120202]="INVALID_PARAMETER_EMPTY",l[l.INVALID_PARAMETER_RANGE=-120203]="INVALID_PARAMETER_RANGE",l[l.ERROR_SIGNALING_SEND_FAIL=-1401]="ERROR_SIGNALING_SEND_FAIL",l[l.ERROR_INVALID_INVITE_ID=8010]="ERROR_INVALID_INVITE_ID",l[l.ERROR_INVALID_SEND_FAIL=8021]="ERROR_INVALID_SEND_FAIL",l[l.ERROR_HTTP=3e4]="ERROR_HTTP",l[l.ERROR_BLACKLIST=20007]="ERROR_BLACKLIST"})(Ef||(Ef={}));const TF="switch to audio call error",Tv="The package you purchased does not support this ability. You can refer to here to purchase: ${purchaseAddress}",rV="TIM SDK version is too old, Please upgrade version",nV="init or login is not complete, this API needs to be used after init. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887",aV="The API is not support in the current state. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/78769#5e65043d-e3dc-4bd3-8220-3ac7694dfa42",sV="In the current call scene, this function is not supported",GF="Failed to send message, common reasons: the called userID or groupID does not exist. To solve the problem, please go to: https://cloud.tencent.com/document/product/647/84363#661be1b0-f649-4199-a343-958c3f4f4bbb",Bg="The current page is detected to be using the http protocol(or localhost). To ensure smooth access and experience of all functions of TUICallEngine SDK for production environment users, please use the https protocol to access the audio and video application page. More Info: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/tutorial-05-info-browser.html#h2-3",gV="切换语音通话失败",kF="您暂不支持使用该能力,请前往如下购买页购买开通: ${purchaseAddress}",_F="TIM SDK 版本太旧,请升级版本",IV="TUICallEngine 初始化登录未完成,需要在 init 或 login 完成后使用此 API 。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887",jy="当前通话状态无法使用该 API。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#5e65043d-e3dc-4bd3-8220-3ac7694dfa42",$d="当前通话场景不支持该功能",cV="消息发送失败,常见原因:被叫用户 userID 或群 groupID 不存在。解决方案请前往: https://cloud.tencent.com/document/product/647/84363#661be1b0-f649-4199-a343-958c3f4f4bbb",EV="检测到当前页面正处于 http 协议下,为确保生产环境用户顺畅接入和体验 TUICallEngine SDK 的全部功能,请使用 https 协议(或 localhost)访问音视频应用页面。详情请前往:https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3";function CQ({code:l,params:p,enableDocLink:S=!1,languageList:H=["en","zh-CN"]}){let K,lA="";const SA=Ef[l];try{H.forEach(nA=>{switch(nA){case"en":K=Gv[SA];break;case"zh-CN":K=bF[SA]}eF(K)?(lA=lA&&`${lA} `,lA+=K(p)):Af(K)&&(lA=K)})}catch{K=Gv.UNKNOWN_ERROR}return S&&(lA+=" doc:"),lA}const Gv={ERROR_INIT_FAIL:({fnName:l})=>`${l}: ${nV}.`,ERROR_SCENE_NOT_SUPPORTED:({fnName:l})=>`${l}: ${sV}.`,ERROR_REQUEST_REFUSED:({value:l})=>`${aV}. customStatus: ${l}.`,ERROR_PARAM_INVALID:({fnName:l})=>`the parameters of the '${l}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:l,rule:p,fnName:S,value:H})=>`'${l||p.name}' is a required param when calling ${S}(), received: ${H}.`,INVALID_PARAMETER_TYPE({key:l,rule:p,fnName:S,value:H}){const K=`${l||p.name}`;let lA="";return lA=Array.isArray(p.type)?p.type.join("|"):p.type,`'${K}' must be type of ${lA} when calling ${S}(), received type: ${iF(H)}.`},INVALID_PARAMETER_EMPTY:({key:l,rule:p,fnName:S})=>`'${l||p.name}' cannot be empty when calling ${S}().`,INVALID_PARAMETER_RANGE:({key:l,rule:p,fnName:S,value:H})=>cv(p.values)?`'${l||p.name}' must be one of ${p.values.join("|")} when calling ${S}(), received: ${H}.`:Af(p.values)&&p.values.indexOf("~")!==-1?`'${l||p.name}' must be the range of ${p.values} when calling ${S}(), received: ${H}.`:void 0,ERROR_REQUEST_REPEATED:({fnName:l})=>`you are already ${l}(), cannot repeated call '${l}'.`,ERROR_HTTP:()=>`${Bg}.`,ERROR_TIM_VERSION_OUTDATED:()=>`${rV} >= 2.21.2.`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${Tv}.`,FAILURE_SWITCH_TO_AUDIO:()=>`${TF}.`,NOT_MICROPHONE_LIST:({fnName:l,error:p})=>`NotFoundError, no microphone detected, please check your device and the configuration on '${l}'${p?`, error: ${p.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:l,error:p})=>`NotFoundError, no camera detected, please check your device and the configuration on '${l}'${p?`, error: ${p.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:l,error:p})=>`NotAllowedError, you have disabled camera/microphone access, please allow the current application ${l} to use the camera/microphone. ${p?`, error: ${p.toString()}.`:"."}`,ERROR_INVALID_SEND_FAIL:()=>`${GF}.`,UNKNOWN_ERROR:({fnName:l,error:p})=>`'${l}' throw unknown exception${p?`, error: ${p.toString()}.`:"."}`},bF={ERROR_INIT_FAIL:({fnName:l})=>`${l}: ${IV}。`,ERROR_SCENE_NOT_SUPPORTED:({fnName:l})=>`${l}: ${$d}。`,ERROR_REQUEST_REFUSED:({value:l})=>`${jy}. customStatus: ${l}。`,ERROR_PARAM_INVALID:({fnName:l})=>`the parameters of the '${l}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:l,rule:p,fnName:S,value:H})=>`调用 ${S}() 方法的时候 '${l||p.name}' 是必须的参数, 收到的值为: ${H}。`,INVALID_PARAMETER_TYPE({key:l,rule:p,fnName:S,value:H}){const K=`${l||p.name}`;let lA="";return lA=Array.isArray(p.type)?p.type.join("|"):p.type,`调用 ${S}() 方法的时候 '${K}' 必须是 ${lA} 类型, 收到的类型是: ${iF(H)}。`},INVALID_PARAMETER_EMPTY:({key:l,rule:p,fnName:S,value:H})=>`调用 ${S}() 的时候 '${l||p.name}' 不能是空。`,INVALID_PARAMETER_RANGE:({key:l,rule:p,fnName:S,value:H})=>cv(p.values)?`调用 ${S}() 的时候 '${l||p.name}' 必须是 ${p.values.join("|")} 的其中一种, 收到的是: ${H}。`:Af(p.values)&&p.values.indexOf("~")!==-1?`调用 ${S}() 的时候 '${l||p.name}' 范围是 ${p.values}, 收到的是: ${H}。`:void 0,ERROR_REQUEST_REPEATED:({fnName:l})=>`你已经调用 ${l}(), 请勿重复调用 '${l}'。`,ERROR_HTTP:()=>`${EV}。`,ERROR_TIM_VERSION_OUTDATED:()=>`${_F} >= 2.21.2。`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${kF}。`,FAILURE_SWITCH_TO_AUDIO:()=>`${gV}。`,NOT_MICROPHONE_LIST:({fnName:l,error:p})=>`NotFoundError,未检测到麦克风设备,请检查您的设备和麦克风上的配置 '${l}'${p?`, error: ${p.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:l,error:p})=>`NotFoundError,未检测到摄像头设备,请检查您的设备和摄像头上的配置 '${l}'${p?`, error: ${p.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:l,error:p})=>"NotAllowedError, 您已禁用摄像头/麦克风访问权限,请允许当前应用程序使用摄像头/麦克风。"+(p?`, error: ${p.toString()}.`:"."),ERROR_INVALID_SEND_FAIL:()=>`${cV}.`};class Ps extends Error{constructor({name:p="",code:S=Nv,message:H="",messageParams:K={},extraCode:lA="",fnName:SA=""}){super(H||CQ({code:S,params:Object.assign({fnName:SA},K)})),this.name="TUICallEngineError",this.message="",this.functionName="",this.name=p||this.name,this.code=S,this.functionName=SA||this.functionName,this.message=H||this.message}getCode(){return this.code}}function VC(){const l=Xd();return function(p,S,H){const K=H.value,lA=new Set;return H.value=function(...SA){return U(this,void 0,void 0,function*(){if(lA.has(this))throw l.error("avoidRepeatedCall.fail",{text:{error:`previous ${S}() is ongoing, please avoid repeated calls`}}),new Ps({code:iV,fnName:S});try{lA.add(this);const nA=yield K.apply(this,SA);return lA.delete(this),nA}catch(nA){throw l.error("avoidRepeatedCall.fail",{text:{error:nA}}),lA.delete(this),nA}})},H.value.clearCallState=function(SA){lA.delete(SA)},H}}var LF=In,Ah=Yg,lf=pa,kv=lv,FF=Math.min,UF=[].copyWithin||function(l,p){var S=LF(this),H=lf(S),K=Ah(l,H),lA=Ah(p,H),SA=arguments.length>2?arguments[2]:void 0,nA=FF((SA===void 0?H:Ah(SA,H))-lA,H-K),hA=1;for(lA<K&&K<lA+nA&&(hA=-1,lA+=nA-1,K+=nA-1);nA-- >0;)lA in S?S[K]=S[lA]:kv(S,K),K+=hA,lA+=hA;return S},lV=OD;di({target:"Array",proto:!0},{copyWithin:UF}),lV("copyWithin");var CV=mo.filter;di({target:"Array",proto:!0,forced:!Qd("filter")},{filter:function(l){return CV(this,l,arguments.length>1?arguments[1]:void 0)}});var BV=di,uV=mo.findIndex,Wy=OD,zy="findIndex",qC=!0;zy in[]&&Array(1)[zy](function(){qC=!1}),BV({target:"Array",proto:!0,forced:qC},{findIndex:function(l){return uV(this,l,arguments.length>1?arguments[1]:void 0)}}),Wy(zy);var OF=WI.includes,QV=OD;di({target:"Array",proto:!0,forced:Xe(function(){return!Array(1).includes()})},{includes:function(l){return OF(this,l,arguments.length>1?arguments[1]:void 0)}}),QV("includes");var xF=di,YF=WI.indexOf,PF=LD,_v=CA([].indexOf),JF=!!_v&&1/_v([1],1,-0)<0;xF({target:"Array",proto:!0,forced:JF||!PF("indexOf")},{indexOf:function(l){var p=arguments.length>1?arguments[1]:void 0;return JF?_v(this,l,p)||0:YF(this,l,p)}});var dV=di,HF=$o,hV=gr,pV=LD,VF=$t([].join);dV({target:"Array",proto:!0,forced:HF!==Object||!pV("join",",")},{join:function(l){return VF(hV(this),l===void 0?",":l)}});var fV=FB,mV=gr,DV=Wn,qF=pa,bv=LD,KF=Math.min,eh=[].lastIndexOf,BQ=!!eh&&1/[1].lastIndexOf(1,-0)<0,yV=bv("lastIndexOf"),Lv=BQ||!yV?function(l){if(BQ)return fV(eh,this,arguments)||0;var p=mV(this),S=qF(p);if(S===0)return-1;var H=S-1;for(arguments.length>1&&(H=KF(H,DV(arguments[1]))),H<0&&(H=S+H);H>=0;H--)if(H in p&&p[H]===l)return H||0;return-1}:eh;di({target:"Array",proto:!0,forced:Lv!==[].lastIndexOf},{lastIndexOf:Lv});var jF=mo.map;di({target:"Array",proto:!0,forced:!Qd("map")},{map:function(l){return jF(this,l,arguments.length>1?arguments[1]:void 0)}});var Fv=di,Ic=D,RV=At,Uv=So,WF=Yg,Ov=pa,zF=gr,Wc=te,Zy=Xw,zc=Gt,MV=wn,xv=Qd("slice"),Yv=zc("species"),zB=Array,XE=Math.max;Fv({target:"Array",proto:!0,forced:!xv},{slice:function(l,p){var S,H,K,lA=zF(this),SA=Ov(lA),nA=WF(l,SA),hA=WF(p===void 0?SA:p,SA);if(Ic(lA)&&(S=lA.constructor,(RV(S)&&(S===zB||Ic(S.prototype))||Uv(S)&&(S=S[Yv])===null)&&(S=void 0),S===zB||S===void 0))return MV(lA,nA,hA);for(H=new(S===void 0?zB:S)(XE(hA-nA,0)),K=0;nA<hA;nA++,K++)nA in lA&&Wc(H,K,lA[nA]);return Zy(H,K),H}});var Pv=typeof ArrayBuffer<"u"&&typeof DataView<"u",wV=Wn,KC=ha,SV=RangeError,ZF=function(l){if(l===void 0)return 0;var p=wV(l),S=KC(p);if(p!==S)throw new SV("Wrong length or index");return S},XF=Math.sign||function(l){var p=+l;return p===0||p!=p?p:p<0?-1:1},Jv=4503599627370496,vV=XF,Xy=function(l){return l+Jv-Jv},NV=Math.abs,TV=function(l,p,S,H){var K=+l,lA=NV(K),SA=vV(K);if(lA<H)return SA*Xy(lA/H/p)*H*p;var nA=(1+p/2220446049250313e-31)*lA,hA=nA-(nA-lA);return hA>S||hA!=hA?1/0*SA:SA*hA},th=Math.fround||function(l){return TV(l,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},Hv=Array,$y=Math.abs,jC=Math.pow,$F=Math.floor,Zc=Math.log,$E=Math.LN2,Cf={pack:function(l,p,S){var H,K,lA,SA=Hv(S),nA=8*S-p-1,hA=(1<<nA)-1,yA=hA>>1,kA=p===23?jC(2,-24)-jC(2,-77):0,oe=l<0||l===0&&1/l<0?1:0,ee=0;for((l=$y(l))!=l||l===1/0?(K=l!=l?1:0,H=hA):(H=$F(Zc(l)/$E),l*(lA=jC(2,-H))<1&&(H--,lA*=2),(l+=H+yA>=1?kA/lA:kA*jC(2,1-yA))*lA>=2&&(H++,lA/=2),H+yA>=hA?(K=0,H=hA):H+yA>=1?(K=(l*lA-1)*jC(2,p),H+=yA):(K=l*jC(2,yA-1)*jC(2,p),H=0));p>=8;)SA[ee++]=255&K,K/=256,p-=8;for(H=H<<p|K,nA+=p;nA>0;)SA[ee++]=255&H,H/=256,nA-=8;return SA[ee-1]|=128*oe,SA},unpack:function(l,p){var S,H=l.length,K=8*H-p-1,lA=(1<<K)-1,SA=lA>>1,nA=K-7,hA=H-1,yA=l[hA--],kA=127&yA;for(yA>>=7;nA>0;)kA=256*kA+l[hA--],nA-=8;for(S=kA&(1<<-nA)-1,kA>>=-nA,nA+=p;nA>0;)S=256*S+l[hA--],nA-=8;if(kA===0)kA=1-SA;else{if(kA===lA)return S?NaN:yA?-1/0:1/0;S+=jC(2,p),kA-=SA}return(yA?-1:1)*S*jC(2,kA-p)}},GV=In,AU=Yg,ih=pa,AR=function(l){for(var p=GV(this),S=ih(p),H=arguments.length,K=AU(H>1?arguments[1]:void 0,S),lA=H>2?arguments[2]:void 0,SA=lA===void 0?S:AU(lA,S);SA>K;)p[K++]=l;return p},eR=ae,Vv=$t,uQ=ot,tR=Pv,kV=lo,qv=ma,ZB=QF,iR=Xe,Bf=Jp,_V=Wn,Kv=ha,oR=ZF,bV=th,eU=Cf,tU=hd,iU=Wu,LV=AR,FV=wn,UV=wd,OV=wE,oh=T,rh=No,oU=mn.PROPER,jv=mn.CONFIGURABLE,XB="ArrayBuffer",Al="DataView",WC="prototype",nh="Wrong index",Wv=rh.getterFor(XB),uf=rh.getterFor(Al),rU=rh.set,cc=eR[XB],DI=cc,$B=DI&&DI[WC],zl=eR[Al],Au=zl&&zl[WC],rR=Object.prototype,nU=eR.Array,Qf=eR.RangeError,nR=Vv(LV),aR=Vv([].reverse),sR=eU.pack,gR=eU.unpack,IR=function(l){return[255&l]},cR=function(l){return[255&l,l>>8&255]},zv=function(l){return[255&l,l>>8&255,l>>16&255,l>>24&255]},ER=function(l){return l[3]<<24|l[2]<<16|l[1]<<8|l[0]},ah=function(l){return sR(bV(l),23,4)},Zl=function(l){return sR(l,52,8)},df=function(l,p,S){qv(l[WC],p,{configurable:!0,get:function(){return S(this)[p]}})},yI=function(l,p,S,H){var K=uf(l),lA=oR(S),SA=!!H;if(lA+p>K.byteLength)throw new Qf(nh);var nA=K.bytes,hA=lA+K.byteOffset,yA=FV(nA,hA,hA+p);return SA?yA:aR(yA)},ug=function(l,p,S,H,K,lA){var SA=uf(l),nA=oR(S),hA=H(+K),yA=!!lA;if(nA+p>SA.byteLength)throw new Qf(nh);for(var kA=SA.bytes,oe=nA+SA.byteOffset,ee=0;ee<p;ee++)kA[oe+ee]=hA[yA?ee:p-ee-1]};if(tR){var lR=oU&&cc.name!==XB;iR(function(){cc(1)})&&iR(function(){new cc(-1)})&&!iR(function(){return new cc,new cc(1.5),new cc(NaN),cc.length!==1||lR&&!jv})?lR&&jv&&kV(cc,"name",XB):(DI=function(l){return Bf(this,$B),UV(new cc(oR(l)),this,DI)},DI[WC]=$B,$B.constructor=DI,OV(DI,cc)),iU&&tU(Au)!==rR&&iU(Au,rR);var zC=new zl(new DI(2)),Qg=Vv(Au.setInt8);zC.setInt8(0,2147483648),zC.setInt8(1,2147483649),!zC.getInt8(0)&&zC.getInt8(1)||ZB(Au,{setInt8:function(l,p){Qg(this,l,p<<24>>24)},setUint8:function(l,p){Qg(this,l,p<<24>>24)}},{unsafe:!0})}else DI=function(l){Bf(this,$B);var p=oR(l);rU(this,{type:XB,bytes:nR(nU(p),0),byteLength:p}),uQ||(this.byteLength=p,this.detached=!1)},$B=DI[WC],Au=(zl=function(l,p,S){Bf(this,Au),Bf(l,$B);var H=Wv(l),K=H.byteLength,lA=_V(p);if(lA<0||lA>K)throw new Qf("Wrong offset");if(lA+(S=S===void 0?K-lA:Kv(S))>K)throw new Qf("Wrong length");rU(this,{type:Al,buffer:l,byteLength:S,byteOffset:lA,bytes:H.bytes}),uQ||(this.buffer=l,this.byteLength=S,this.byteOffset=lA)})[WC],uQ&&(df(DI,"byteLength",Wv),df(zl,"buffer",uf),df(zl,"byteLength",uf),df(zl,"byteOffset",uf)),ZB(Au,{getInt8:function(l){return yI(this,1,l)[0]<<24>>24},getUint8:function(l){return yI(this,1,l)[0]},getInt16:function(l){var p=yI(this,2,l,arguments.length>1&&arguments[1]);return(p[1]<<8|p[0])<<16>>16},getUint16:function(l){var p=yI(this,2,l,arguments.length>1&&arguments[1]);return p[1]<<8|p[0]},getInt32:function(l){return ER(yI(this,4,l,arguments.length>1&&arguments[1]))},getUint32:function(l){return ER(yI(this,4,l,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(l){return gR(yI(this,4,l,arguments.length>1&&arguments[1]),23)},getFloat64:function(l){return gR(yI(this,8,l,arguments.length>1&&arguments[1]),52)},setInt8:function(l,p){ug(this,1,l,IR,p)},setUint8:function(l,p){ug(this,1,l,IR,p)},setInt16:function(l,p){ug(this,2,l,cR,p,arguments.length>2&&arguments[2])},setUint16:function(l,p){ug(this,2,l,cR,p,arguments.length>2&&arguments[2])},setInt32:function(l,p){ug(this,4,l,zv,p,arguments.length>2&&arguments[2])},setUint32:function(l,p){ug(this,4,l,zv,p,arguments.length>2&&arguments[2])},setFloat32:function(l,p){ug(this,4,l,ah,p,arguments.length>2&&arguments[2])},setFloat64:function(l,p){ug(this,8,l,Zl,p,arguments.length>2&&arguments[2])}});oh(DI,XB),oh(zl,Al);var dg={ArrayBuffer:DI,DataView:zl},aU=Gd,CR="ArrayBuffer",sU=dg[CR];di({global:!0,constructor:!0,forced:ae[CR]!==sU},{ArrayBuffer:sU}),aU(CR);var gU=di,BR=CA,hf=Xe,eu=Xr,IU=Yg,xV=ha,uR=dg.ArrayBuffer,pf=dg.DataView,Zv=pf.prototype,Xv=BR(uR.prototype.slice),$v=BR(Zv.getUint8),cU=BR(Zv.setUint8);gU({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:hf(function(){return!new uR(2).slice(1,void 0).byteLength})},{slice:function(l,p){if(Xv&&p===void 0)return Xv(eu(this),l);for(var S=eu(this).byteLength,H=IU(l,S),K=IU(p===void 0?S:p,S),lA=new uR(xV(K-H)),SA=new pf(this),nA=new pf(lA),hA=0;H<K;)cU(nA,hA++,$v(SA,H++));return lA}}),di({global:!0,constructor:!0,forced:!Pv},{DataView:dg.DataView});var AN=$t,EU=F,lU=So,CU=jo,eN=wn,BU=zt,tN=Function,uU=AN([].concat),QU=AN([].join),ff={},dU=BU?tN.bind:function(l){var p=EU(this),S=p.prototype,H=eN(arguments,1),K=function(){var lA=uU(H,eN(arguments));return this instanceof K?function(SA,nA,hA){if(!CU(ff,nA)){for(var yA=[],kA=0;kA<nA;kA++)yA[kA]="a["+kA+"]";ff[nA]=tN("C,a","return new C("+QU(yA,",")+")")}return ff[nA](SA,hA)}(p,lA.length,lA):p.apply(l,lA)};return lU(S)&&(K.prototype=S),K},iN=dU;di({target:"Function",proto:!0,forced:Function.bind!==iN},{bind:iN});var hU=ot,pU=mn.EXISTS,QR=$t,fU=ma,oN=Function.prototype,mU=QR(oN.toString),rN=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,DU=QR(rN.exec);hU&&!pU&&fU(oN,"name",{configurable:!0,get:function(){try{return DU(rN,mU(this))[1]}catch{return""}}});var yU=di,RU=Math.floor,MU=Math.log,wU=Math.LOG2E;yU({target:"Math",stat:!0},{clz32:function(l){var p=l>>>0;return p?31-RU(MU(p+.5)*wU):32}}),di({target:"Math",stat:!0},{fround:th});var SU=di,vU=Xe,nN=Math.imul;SU({target:"Math",stat:!0,forced:vU(function(){return nN(4294967295,5)!==-5||nN.length!==2})},{imul:function(l,p){var S=65535,H=+l,K=+p,lA=S&H,SA=S&K;return 0|lA*SA+((S&H>>>16)*SA+lA*(S&K>>>16)<<16>>>0)}}),di({target:"Math",stat:!0},{trunc:KI});var aN=ot,NU=$t,TU=Ei,GU=Xe,dR=$I,kU=Oc,_U=ji,bU=In,LU=$o,el=Object.assign,FU=Object.defineProperty,hR=NU([].concat),sN=!el||GU(function(){if(aN&&el({b:1},el(FU({},"a",{enumerable:!0,get:function(){FU(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var l={},p={},S=Symbol("assign detection"),H="abcdefghijklmnopqrst";return l[S]=7,H.split("").forEach(function(K){p[K]=K}),el({},l)[S]!==7||dR(el({},p)).join("")!==H})?function(l,p){for(var S=bU(l),H=arguments.length,K=1,lA=kU.f,SA=_U.f;H>K;)for(var nA,hA=LU(arguments[K++]),yA=lA?hR(dR(hA),lA(hA)):dR(hA),kA=yA.length,oe=0;kA>oe;)nA=yA[oe++],aN&&!TU(SA,hA,nA)||(S[nA]=hA[nA]);return S}:el,mf=sN;di({target:"Object",stat:!0,arity:2,forced:Object.assign!==mf},{assign:mf}),di({target:"Object",stat:!0,sham:!ot},{create:ys});var pR=di,gN=ot,fR=tn.f;pR({target:"Object",stat:!0,forced:Object.defineProperty!==fR,sham:!gN},{defineProperty:fR});var mR=di,DR=Xe,YV=gr,Ii=ye.f,UU=ot;mR({target:"Object",stat:!0,forced:!UU||DR(function(){Ii(1)}),sham:!UU},{getOwnPropertyDescriptor:function(l,p){return Ii(YV(l),p)}});var Df=tn.f,PV=ot,yR=ae,yf=$t,JV=Yc,RR=wd,OU=lo,IN=ys,xU=ps.f,YU=po,Rf=qL,MR=dr,bt=Ty,fi=oL,PU=function(l,p,S){S in l||Df(l,S,{configurable:!0,get:function(){return p[S]},set:function(H){p[S]=H}})},ZC=Rn,XC=Xe,es=jo,vt=No.enforce,G=Gd,zg=nQ,DA=_0,hg=Gt("match"),Xl=yR.RegExp,sh=Xl.prototype,HV=yR.SyntaxError,VV=yf(sh.exec),Mf=yf("".charAt),JU=yf("".replace),HU=yf("".indexOf),cN=yf("".slice),qV=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,tu=/a/g,Ge=/a/g,VU=new Xl(tu)!==tu,Ct=fi.MISSED_STICKY,EN=fi.UNSUPPORTED_Y,qU=PV&&(!VU||Ct||zg||DA||XC(function(){return Ge[hg]=!1,Xl(tu)!==tu||Xl(Ge)===Ge||String(Xl(tu,"i"))!=="/a/i"}));if(JV("RegExp",qU)){for(var iu=function(l,p){var S,H,K,lA,SA,nA,hA=YU(sh,this),yA=Rf(l),kA=p===void 0,oe=[],ee=l;if(!hA&&yA&&kA&&l.constructor===iu)return l;if((yA||YU(sh,l))&&(l=l.source,kA&&(p=bt(ee))),l=l===void 0?"":MR(l),p=p===void 0?"":MR(p),ee=l,zg&&"dotAll"in tu&&(H=!!p&&HU(p,"s")>-1)&&(p=JU(p,/s/g,"")),S=p,Ct&&"sticky"in tu&&(K=!!p&&HU(p,"y")>-1)&&EN&&(p=JU(p,/y/g,"")),DA&&(lA=function(PA){for(var ve,dt=PA.length,fe=0,Be="",tA=[],Le=IN(null),he=!1,Zt=!1,pt=0,ni="";fe<dt;fe++){if((ve=Mf(PA,fe))==="\\")ve+=Mf(PA,++fe);else if(ve==="]")he=!1;else if(!he)switch(!0){case ve==="[":he=!0;break;case ve==="(":if(Be+=ve,cN(PA,fe+1,fe+3)==="?:")continue;VV(qV,cN(PA,fe+1))&&(fe+=2,Zt=!0),pt++;continue;case(ve===">"&&Zt):if(ni===""||es(Le,ni))throw new HV("Invalid capture group name");Le[ni]=!0,tA[tA.length]=[ni,pt],Zt=!1,ni="";continue}Zt?ni+=ve:Be+=ve}return[Be,tA]}(l),l=lA[0],oe=lA[1]),SA=RR(Xl(l,p),hA?this:sh,iu),(H||K||oe.length)&&(nA=vt(SA),H&&(nA.dotAll=!0,nA.raw=iu(function(PA){for(var ve,dt=PA.length,fe=0,Be="",tA=!1;fe<dt;fe++)(ve=Mf(PA,fe))!=="\\"?tA||ve!=="."?(ve==="["?tA=!0:ve==="]"&&(tA=!1),Be+=ve):Be+="[\\s\\S]":Be+=ve+Mf(PA,++fe);return Be}(l),S)),K&&(nA.sticky=!0),oe.length&&(nA.groups=oe)),l!==ee)try{OU(SA,"source",ee===""?"(?:)":ee)}catch{}return SA},KU=xU(Xl),gh=0;KU.length>gh;)PU(iu,Xl,KU[gh++]);sh.constructor=iu,iu.prototype=sh,ZC(yR,"RegExp",iu,{constructor:!0})}G("RegExp");var jU=di,lN=CA,tl=ye.f,WU=ha,wR=dr,il=W0,zU=Gi,CN=z0,Ec=lN("".slice),SR=Math.min,vR=CN("endsWith"),KV=!vR&&!!function(){var l=tl(String.prototype,"endsWith");return l&&!l.writable}();jU({target:"String",proto:!0,forced:!KV&&!vR},{endsWith:function(l){var p=wR(zU(this));il(l);var S=arguments.length>1?arguments[1]:void 0,H=p.length,K=S===void 0?H:SR(WU(S),H),lA=wR(l);return Ec(p,K-lA.length,K)===lA}});var BN=di,wf=W0,ZU=Gi,XU=dr,jV=z0,WV=$t("".indexOf);BN({target:"String",proto:!0,forced:!jV("includes")},{includes:function(l){return!!~WV(XU(ZU(this)),XU(wf(l)),arguments.length>1?arguments[1]:void 0)}});var $C=mn.PROPER,zV=Xe,NR=Op,uN=ZD.trim;di({target:"String",proto:!0,forced:function(l){return zV(function(){return!!NR[l]()||"​…᠎"[l]()!=="​…᠎"||$C&&NR[l].name!==l})}("trim")},{trim:function(){return uN(this)}});var Zg,QQ,Sf,Xg={},ou={get exports(){return Xg},set exports(l){Xg=l}},ru=Pv,$U=ot,lc=ae,TR=Yo,GR=So,dQ=jo,$l=fa,vf=Mr,AO=lo,QN=Rn,fA=ma,_r=po,Ih=hd,ch=Wu,Nf=Gt,dN=ua,Tf=No.enforce,Gf=No.get,Eh=lc.Int8Array,kf=Eh&&Eh.prototype,eO=lc.Uint8ClampedArray,hN=eO&&eO.prototype,nu=Eh&&Ih(Eh),RI=kf&&Ih(kf),tO=Object.prototype,kR=lc.TypeError,pN=Nf("toStringTag"),fN=dN("TYPED_ARRAY_TAG"),_R="TypedArrayConstructor",au=ru&&!!ch&&$l(lc.opera)!=="Opera",iO=!1,lh={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},oO={BigInt64Array:8,BigUint64Array:8},rO=function(l){var p=Ih(l);if(GR(p)){var S=Gf(p);return S&&dQ(S,_R)?S[_R]:rO(p)}},AB=function(l){if(!GR(l))return!1;var p=$l(l);return dQ(lh,p)||dQ(oO,p)};for(Zg in lh)(Sf=(QQ=lc[Zg])&&QQ.prototype)?Tf(Sf)[_R]=QQ:au=!1;for(Zg in oO)(Sf=(QQ=lc[Zg])&&QQ.prototype)&&(Tf(Sf)[_R]=QQ);if((!au||!TR(nu)||nu===Function.prototype)&&(nu=function(){throw new kR("Incorrect invocation")},au))for(Zg in lh)lc[Zg]&&ch(lc[Zg],nu);if((!au||!RI||RI===tO)&&(RI=nu.prototype,au))for(Zg in lh)lc[Zg]&&ch(lc[Zg].prototype,RI);if(au&&Ih(hN)!==RI&&ch(hN,RI),$U&&!dQ(RI,pN))for(Zg in iO=!0,fA(RI,pN,{configurable:!0,get:function(){return GR(this)?this[fN]:void 0}}),lh)lc[Zg]&&AO(lc[Zg],fN,Zg);var hi={NATIVE_ARRAY_BUFFER_VIEWS:au,TYPED_ARRAY_TAG:iO&&fN,aTypedArray:function(l){if(AB(l))return l;throw new kR("Target is not a typed array")},aTypedArrayConstructor:function(l){if(TR(l)&&(!ch||_r(nu,l)))return l;throw new kR(vf(l)+" is not a typed array constructor")},exportTypedArrayMethod:function(l,p,S,H){if($U){if(S)for(var K in lh){var lA=lc[K];if(lA&&dQ(lA.prototype,l))try{delete lA.prototype[l]}catch{try{lA.prototype[l]=p}catch{}}}RI[l]&&!S||QN(RI,l,S?p:au&&kf[l]||p,H)}},getTypedArrayConstructor:rO,isTypedArray:AB,TypedArray:nu,TypedArrayPrototype:RI},mN=ae,bR=Xe,Ch=y0,hQ=hi.NATIVE_ARRAY_BUFFER_VIEWS,ZV=mN.ArrayBuffer,oa=mN.Int8Array,XV=!hQ||!bR(function(){oa(1)})||!bR(function(){new oa(-1)})||!Ch(function(l){new oa,new oa(null),new oa(1.5),new oa(l)},!0)||bR(function(){return new oa(new ZV(2),1,void 0).length!==1}),nO=So,aO=Math.floor,_f=Number.isInteger||function(l){return!nO(l)&&isFinite(l)&&aO(l)===l},LR=Wn,FR=RangeError,sO=function(l){var p=LR(l);if(p<0)throw new FR("The argument can't be less than 0");return p},DN=RangeError,gO=function(l,p){var S=sO(l);if(S%p)throw new DN("Wrong offset");return S},$V=Math.round,Aq=fa,yN=qa,su=TypeError,IO=function(l){var p=yN(l,"number");if(typeof p=="number")throw new su("Can't convert number to bigint");return BigInt(p)},eq=E,pQ=Ei,bf=nb,UR=In,tq=pa,iq=Jb,cO=m0,Lf=dy,Ff=function(l){var p=Aq(l);return p==="BigInt64Array"||p==="BigUint64Array"},RN=hi.aTypedArrayConstructor,OR=IO,xR=pa,MN=function(l,p,S){for(var H=0,K=arguments.length>2?S:xR(p),lA=new l(K);K>H;)lA[H]=p[H++];return lA},EO=di,YR=ae,PR=Ei,wN=ot,Bh=XV,Uf=hi,JR=dg,HR=Jp,lO=et,uh=lo,MI=_f,CO=ha,Qh=ZF,Of=gO,SN=function(l){var p=$V(l);return p<0?0:p>255?255:255&p},VR=us,eB=jo,xf=fa,vN=So,NN=Po,BO=ys,uO=po,ol=Wu,dh=ps.f,TN=function(l){var p,S,H,K,lA,SA,nA,hA,yA=bf(this),kA=UR(l),oe=arguments.length,ee=oe>1?arguments[1]:void 0,PA=ee!==void 0,ve=cO(kA);if(ve&&!Lf(ve))for(hA=(nA=iq(kA,ve)).next,kA=[];!(SA=pQ(hA,nA)).done;)kA.push(SA.value);for(PA&&oe>2&&(ee=eq(ee,arguments[2])),S=tq(kA),H=new(RN(yA))(S),K=Ff(H),p=0;S>p;p++)lA=PA?ee(kA[p],p):kA[p],H[p]=K?OR(lA):+lA;return H},qR=mo.forEach,oq=Gd,QO=ma,GN=tn,KR=ye,hh=MN,dO=wd,jR=No.get,kN=No.set,hO=No.enforce,WR=GN.f,pO=KR.f,rl=YR.RangeError,Cc=JR.ArrayBuffer,ph=Cc.prototype,fQ=JR.DataView,ya=Uf.NATIVE_ARRAY_BUFFER_VIEWS,$n=Uf.TYPED_ARRAY_TAG,Ee=Uf.TypedArray,Sr=Uf.TypedArrayPrototype,hr=Uf.isTypedArray,rn="BYTES_PER_ELEMENT",Xc="Wrong length",Aa=function(l,p){QO(l,p,{configurable:!0,get:function(){return jR(this)[p]}})},_N=function(l){var p;return uO(ph,l)||(p=xf(l))==="ArrayBuffer"||p==="SharedArrayBuffer"},bN=function(l,p){return hr(l)&&!NN(p)&&p in l&&MI(+p)&&p>=0},fh=function(l,p){return p=VR(p),bN(l,p)?lO(2,l[p]):pO(l,p)},mh=function(l,p,S){return p=VR(p),!(bN(l,p)&&vN(S)&&eB(S,"value"))||eB(S,"get")||eB(S,"set")||S.configurable||eB(S,"writable")&&!S.writable||eB(S,"enumerable")&&!S.enumerable?WR(l,p,S):(l[p]=S.value,l)};wN?(ya||(KR.f=fh,GN.f=mh,Aa(Sr,"buffer"),Aa(Sr,"byteOffset"),Aa(Sr,"byteLength"),Aa(Sr,"length")),EO({target:"Object",stat:!0,forced:!ya},{getOwnPropertyDescriptor:fh,defineProperty:mh}),ou.exports=function(l,p,S){var H=l.match(/\d+/)[0]/8,K=l+(S?"Clamped":"")+"Array",lA="get"+l,SA="set"+l,nA=YR[K],hA=nA,yA=hA&&hA.prototype,kA={},oe=function(PA,ve){WR(PA,ve,{get:function(){return function(dt,fe){var Be=jR(dt);return Be.view[lA](fe*H+Be.byteOffset,!0)}(this,ve)},set:function(dt){return function(fe,Be,tA){var Le=jR(fe);Le.view[SA](Be*H+Le.byteOffset,S?SN(tA):tA,!0)}(this,ve,dt)},enumerable:!0})};ya?Bh&&(hA=p(function(PA,ve,dt,fe){return HR(PA,yA),dO(vN(ve)?_N(ve)?fe!==void 0?new nA(ve,Of(dt,H),fe):dt!==void 0?new nA(ve,Of(dt,H)):new nA(ve):hr(ve)?hh(hA,ve):PR(TN,hA,ve):new nA(Qh(ve)),PA,hA)}),ol&&ol(hA,Ee),qR(dh(nA),function(PA){PA in hA||uh(hA,PA,nA[PA])}),hA.prototype=yA):(hA=p(function(PA,ve,dt,fe){HR(PA,yA);var Be,tA,Le,he=0,Zt=0;if(vN(ve)){if(!_N(ve))return hr(ve)?hh(hA,ve):PR(TN,hA,ve);Be=ve,Zt=Of(dt,H);var pt=ve.byteLength;if(fe===void 0){if(pt%H)throw new rl(Xc);if((tA=pt-Zt)<0)throw new rl(Xc)}else if((tA=CO(fe)*H)+Zt>pt)throw new rl(Xc);Le=tA/H}else Le=Qh(ve),Be=new Cc(tA=Le*H);for(kN(PA,{buffer:Be,byteOffset:Zt,byteLength:tA,length:Le,view:new fQ(Be)});he<Le;)oe(PA,he++)}),ol&&ol(hA,Ee),yA=hA.prototype=BO(Sr)),yA.constructor!==hA&&uh(yA,"constructor",hA),hO(yA).TypedArrayConstructor=hA,$n&&uh(yA,$n,K);var ee=hA!==nA;kA[K]=hA,EO({global:!0,constructor:!0,forced:ee,sham:!ya},kA),rn in hA||uh(hA,rn,H),rn in yA||uh(yA,rn,H),oq(K)}):ou.exports=function(){},Xg("Float32",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Float64",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Int8",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Int16",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Int32",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Uint8",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Uint8",function(l){return function(p,S,H){return l(this,p,S,H)}},!0),Xg("Uint16",function(l){return function(p,S,H){return l(this,p,S,H)}}),Xg("Uint32",function(l){return function(p,S,H){return l(this,p,S,H)}});var Yf=hi,fO=$t(UF),mO=Yf.aTypedArray;(0,Yf.exportTypedArrayMethod)("copyWithin",function(l,p){return fO(mO(this),l,p,arguments.length>2?arguments[2]:void 0)});var Pf=mo.every,ki=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("every",function(l){return Pf(ki(this),l,arguments.length>1?arguments[1]:void 0)});var DO=AR,yO=IO,rq=fa,zR=Ei,mQ=Xe,RO=hi.aTypedArray,Jf=hi.exportTypedArrayMethod,tB=$t("".slice);Jf("fill",function(l){var p=arguments.length;RO(this);var S=tB(rq(this),0,3)==="Big"?yO(l):+l;return zR(DO,this,S,p>1?arguments[1]:void 0,p>2?arguments[2]:void 0)},mQ(function(){var l=0;return new Int8Array(2).fill({valueOf:function(){return l++}}),l!==1}));var Dh=MN,Hf=hi.getTypedArrayConstructor,LN=function(l,p){return Dh(Hf(l),p)},MO=mo.filter,nl=LN,ZR=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("filter",function(l){var p=MO(ZR(this),l,arguments.length>1?arguments[1]:void 0);return nl(this,p)});var XR=mo.find,FN=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("find",function(l){return XR(FN(this),l,arguments.length>1?arguments[1]:void 0)});var Vf=mo.findIndex,UN=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("findIndex",function(l){return Vf(UN(this),l,arguments.length>1?arguments[1]:void 0)});var $R=mo.forEach,AC=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("forEach",function(l){$R(AC(this),l,arguments.length>1?arguments[1]:void 0)});var ON=WI.includes,xN=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("includes",function(l){return ON(xN(this),l,arguments.length>1?arguments[1]:void 0)});var YN=WI.indexOf,AM=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("indexOf",function(l){return YN(AM(this),l,arguments.length>1?arguments[1]:void 0)});var gu=ae,wO=Xe,yh=$t,eM=hi,Iu=T_,qf=Gt("iterator"),tM=gu.Uint8Array,SO=yh(Iu.values),DQ=yh(Iu.keys),nq=yh(Iu.entries),iM=eM.aTypedArray,Rh=eM.exportTypedArrayMethod,yQ=tM&&tM.prototype,cu=!wO(function(){yQ[qf].call([1])}),PN=!!yQ&&yQ.values&&yQ[qf]===yQ.values&&yQ.values.name==="values",vO=function(){return SO(iM(this))};Rh("entries",function(){return nq(iM(this))},cu),Rh("keys",function(){return DQ(iM(this))},cu),Rh("values",vO,cu||!PN,{name:"values"}),Rh(qf,vO,cu||!PN,{name:"values"});var RQ=hi.aTypedArray,$c=hi.exportTypedArrayMethod,JN=$t([].join);$c("join",function(l){return JN(RQ(this),l)});var NO=FB,HN=Lv,TO=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("lastIndexOf",function(l){var p=arguments.length;return NO(HN,TO(this),p>1?[l,arguments[1]]:[l])});var Kf=mo.map,VN=LN,GO=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("map",function(l){var p=Kf(GO(this),l,arguments.length>1?arguments[1]:void 0);return VN(this,p)});var AE=F,Do=In,Ra=$o,oM=pa,qN=TypeError,kO="Reduce of empty array with no initial value",MQ=function(l){return function(p,S,H,K){var lA=Do(p),SA=Ra(lA),nA=oM(lA);if(AE(S),nA===0&&H<2)throw new qN(kO);var hA=l?nA-1:0,yA=l?-1:1;if(H<2)for(;;){if(hA in SA){K=SA[hA],hA+=yA;break}if(hA+=yA,l?hA<0:nA<=hA)throw new qN(kO)}for(;l?hA>=0:nA>hA;hA+=yA)hA in SA&&(K=S(K,SA[hA],hA,lA));return K}},rM={left:MQ(!1),right:MQ(!0)},wQ=rM.left,_O=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("reduce",function(l){var p=arguments.length;return wQ(_O(this),l,p,p>1?arguments[1]:void 0)});var Ea=rM.right,jf=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("reduceRight",function(l){var p=arguments.length;return Ea(jf(this),l,p,p>1?arguments[1]:void 0)});var ra=hi.aTypedArray,nM=hi.exportTypedArrayMethod,aq=Math.floor;nM("reverse",function(){for(var l,p=this,S=ra(p).length,H=aq(S/2),K=0;K<H;)l=p[K],p[K++]=p[--S],p[S]=l;return p});var bO=ae,Yr=Ei,Wf=hi,aM=pa,Mh=gO,KN=In,wh=Xe,jN=bO.RangeError,sM=bO.Int8Array,zf=sM&&sM.prototype,gM=zf&&zf.set,IM=Wf.aTypedArray,WN=Wf.exportTypedArrayMethod,eE=!wh(function(){var l=new Uint8ClampedArray(2);return Yr(gM,l,{length:1,0:3},1),l[1]!==3}),zN=eE&&Wf.NATIVE_ARRAY_BUFFER_VIEWS&&wh(function(){var l=new sM(2);return l.set(1),l.set("2",1),l[0]!==0||l[1]!==2});WN("set",function(l){IM(this);var p=Mh(arguments.length>1?arguments[1]:void 0,1),S=KN(l);if(eE)return Yr(gM,this,S,p);var H=this.length,K=aM(S),lA=0;if(K+p>H)throw new jN("Wrong length");for(;lA<K;)this[p+lA]=S[lA++]},!eE||zN);var SQ=wn,ZN=hi.aTypedArray,sq=hi.getTypedArrayConstructor;(0,hi.exportTypedArrayMethod)("slice",function(l,p){for(var S=SQ(ZN(this),l,p),H=sq(this),K=0,lA=S.length,SA=new H(lA);lA>K;)SA[K]=S[K++];return SA},Xe(function(){new Int8Array(1).slice()}));var LO=mo.some,gq=hi.aTypedArray;(0,hi.exportTypedArrayMethod)("some",function(l){return LO(gq(this),l,arguments.length>1?arguments[1]:void 0)});var Eu=wn,XN=Math.floor,vQ=function(l,p){var S=l.length;if(S<8)for(var H,K,lA=1;lA<S;){for(K=lA,H=l[lA];K&&p(l[K-1],H)>0;)l[K]=l[--K];K!==lA++&&(l[K]=H)}else for(var SA=XN(S/2),nA=vQ(Eu(l,0,SA),p),hA=vQ(Eu(l,SA),p),yA=nA.length,kA=hA.length,oe=0,ee=0;oe<yA||ee<kA;)l[oe+ee]=oe<yA&&ee<kA?p(nA[oe],hA[ee])<=0?nA[oe++]:hA[ee++]:oe<yA?nA[oe++]:hA[ee++];return l},Zf=vQ,Sh=Qr.match(/firefox\/(\d+)/i),cM=!!Sh&&+Sh[1],$N=/MSIE|Trident/.test(Qr),Xf=Qr.match(/AppleWebKit\/(\d+)\./),AT=!!Xf&&+Xf[1],EM=CA,$f=Xe,vh=F,lu=Zf,Nh=cM,eT=$N,FO=Ia,tT=AT,Iq=hi.aTypedArray,lM=hi.exportTypedArrayMethod,NQ=ae.Uint16Array,iB=NQ&&EM(NQ.prototype.sort),iT=!(!iB||$f(function(){iB(new NQ(2),null)})&&$f(function(){iB(new NQ(2),{})})),oT=!!iB&&!$f(function(){if(FO)return FO<74;if(Nh)return Nh<67;if(eT)return!0;if(tT)return tT<602;var l,p,S=new NQ(516),H=Array(516);for(l=0;l<516;l++)p=l%4,S[l]=515-l,H[l]=l-2*p+3;for(iB(S,function(K,lA){return(K/4|0)-(lA/4|0)}),l=0;l<516;l++)if(S[l]!==H[l])return!0});lM("sort",function(l){return l!==void 0&&vh(l),oT?iB(this,l):lu(Iq(this),function(p){return function(S,H){return p!==void 0?+p(S,H)||0:H!=H?-1:S!=S?1:S===0&&H===0?1/S>0&&1/H<0?1:-1:S>H}}(l))},!oT||iT);var rT=ha,Am=Yg,nT=hi.aTypedArray,em=hi.getTypedArrayConstructor;(0,hi.exportTypedArrayMethod)("subarray",function(l,p){var S=nT(this),H=S.length,K=Am(l,H);return new(em(S))(S.buffer,S.byteOffset+K*S.BYTES_PER_ELEMENT,rT((p===void 0?H:Am(p,H))-K))});var aT=FB,tm=hi,im=Xe,Th=wn,CM=ae.Int8Array,om=tm.aTypedArray,rm=tm.exportTypedArrayMethod,Bc=[].toLocaleString,BM=!!CM&&im(function(){Bc.call(new CM(1))});rm("toLocaleString",function(){return aT(Bc,BM?Th(om(this)):om(this),Th(arguments))},im(function(){return[1,2].toLocaleString()!==new CM([1,2]).toLocaleString()})||!im(function(){CM.prototype.toLocaleString.call([1,2])}));var UO=hi.exportTypedArrayMethod,tE=Xe,Gh=$t,uM=ae.Uint8Array,OO=uM&&uM.prototype||{},Ma=[].toString,TQ=Gh([].join);tE(function(){Ma.call({})})&&(Ma=function(){return TQ(this)});var Cu=OO.toString!==Ma;UO("toString",Ma,Cu);var sT=ae;di({global:!0,forced:sT.globalThis!==sT},{globalThis:sT});var $g=ae,gT=FB,kh=Yo,al=YS,cq=Qr,xO=wn,YO=gb,PO=$g.Function,GQ=/MSIE .\./.test(cq)||al==="BUN"&&function(){var l=$g.Bun.version.split(".");return l.length<3||l[0]==="0"&&(l[1]<3||l[1]==="3"&&l[2]==="0")}(),Bu=function(l,p){var S=2;return GQ?function(H,K){var lA=YO(arguments.length,1)>S,SA=kh(H)?H:PO(H),nA=lA?xO(arguments,S):[],hA=lA?function(){gT(SA,this,nA)}:SA;return l(hA,K)}:l},uu=di,IT=ae,Bn=Bu(IT.setInterval);uu({global:!0,bind:!0,forced:IT.setInterval!==Bn},{setInterval:Bn});var QM=di,eC=ae,nm=Bu(eC.setTimeout);QM({global:!0,bind:!0,forced:eC.setTimeout!==nm},{setTimeout:nm});var am,kQ,_h,JO,Eq=(am=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0,function(l){var p,S;(l=(l=l||{})!==void 0?l:{}).ready=new Promise(function(J,x){p=J,S=x}),["_main","___getTypeName","___embind_register_native_and_builtin_types","_fflush","onRuntimeInitialized"].forEach(function(J){Object.getOwnPropertyDescriptor(l.ready,J)||Object.defineProperty(l.ready,J,{get:function(){return Hs("You are getting "+J+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")},set:function(){return Hs("You are setting "+J+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})});var H=Object.assign({},l),K="./this.program",lA=(typeof window>"u"?"undefined":be(window))=="object",SA=typeof importScripts=="function",nA=(typeof process>"u"?"undefined":be(process))=="object"&&be(process.versions)=="object"&&typeof process.versions.node=="string",hA=!lA&&!nA&&!SA;if(l.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var yA,kA,oe="";if(hA){if((typeof process>"u"?"undefined":be(process))=="object"&&typeof MrA=="function"||(typeof window>"u"?"undefined":be(window))=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");kA=function(J){var x;return(x=pm(J))?x:typeof readbuffer=="function"?new Uint8Array(readbuffer(J)):(he(be(x=read(J,"binary"))=="object"),x)},yA=function(J,x,oA){setTimeout(function(){return x(kA(J))},0)},typeof scriptArgs<"u"&&scriptArgs,typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)}else{if(!lA&&!SA)throw new Error("environment detection error");if(SA?oe=self.location.href:typeof document<"u"&&document.currentScript&&(oe=document.currentScript.src),am&&(oe=am),oe=oe.indexOf("blob:")!==0?oe.substr(0,oe.replace(/[?#].*/,"").lastIndexOf("/")+1):"",(typeof window>"u"?"undefined":be(window))!="object"&&typeof importScripts!="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");SA&&(kA=function(J){try{var x=new XMLHttpRequest;return x.open("GET",J,!1),x.responseType="arraybuffer",x.send(null),new Uint8Array(x.response)}catch(uA){var oA=pm(J);if(oA)return oA;throw uA}}),yA=function(J,x,oA){var uA=new XMLHttpRequest;uA.open("GET",J,!0),uA.responseType="arraybuffer",uA.onload=function(){if(uA.status==200||uA.status==0&&uA.response)x(uA.response);else{var FA=pm(J);FA?x(FA.buffer):oA()}},uA.onerror=oA,uA.send(null)}}var ee,PA,ve,dt=l.print||console.log.bind(console),fe=l.printErr||console.warn.bind(console);function Be(J,x){Object.getOwnPropertyDescriptor(l,J)||Object.defineProperty(l,J,{configurable:!0,get:function(){Hs("Module."+J+" has been replaced with plain "+x+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}function tA(J,x){Object.getOwnPropertyDescriptor(l,J)||Object.defineProperty(l,J,{configurable:!0,get:function(){Hs(function(oA,uA){var FA="'"+oA+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";return uA&&(FA+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),FA}(J,x))}})}Object.assign(l,H),H=null,ee="fetchSettings",Object.getOwnPropertyDescriptor(l,ee)&&Hs("`Module."+ee+"` was supplied but `"+ee+"` not included in INCOMING_MODULE_JS_API"),l.arguments&&l.arguments,Be("arguments","arguments_"),l.thisProgram&&(K=l.thisProgram),Be("thisProgram","thisProgram"),l.quit&&l.quit,Be("quit","quit_"),he(l.memoryInitializerPrefixURL===void 0,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),he(l.pthreadMainPrefixURL===void 0,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),he(l.cdInitializerPrefixURL===void 0,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),he(l.filePackagePrefixURL===void 0,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),he(l.read===void 0,"Module.read option was removed (modify read_ in JS)"),he(l.readAsync===void 0,"Module.readAsync option was removed (modify readAsync in JS)"),he(l.readBinary===void 0,"Module.readBinary option was removed (modify readBinary in JS)"),he(l.setWindowTitle===void 0,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),he(l.TOTAL_MEMORY===void 0,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Be("read","read_"),Be("readAsync","readAsync"),Be("readBinary","readBinary"),Be("setWindowTitle","setWindowTitle"),he(!SA,"worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."),he(!nA,"node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."),he(!hA,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),l.wasmBinary&&(PA=l.wasmBinary),Be("wasmBinary","wasmBinary"),l.noExitRuntime,Be("noExitRuntime","noExitRuntime"),(typeof WebAssembly>"u"?"undefined":be(WebAssembly))!="object"&&Hs("no native wasm support detected");var Le=!1;function he(J,x){J||Hs("Assertion failed"+(x?": "+x:""))}var Zt,pt,ni,Li,it,de,xt,Ri,ui,ci=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Fi(J,x,oA){for(var uA=x+oA,FA=x;J[FA]&&!(FA>=uA);)++FA;if(FA-x>16&&J.buffer&&ci)return ci.decode(J.subarray(x,FA));for(var zA="";x<FA;){var $A=J[x++];if(128&$A){var ne=63&J[x++];if((224&$A)!=192){var De=63&J[x++];if((240&$A)==224?$A=(15&$A)<<12|ne<<6|De:((248&$A)!=240&&LQ("Invalid UTF-8 leading byte 0x"+$A.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),$A=(7&$A)<<18|ne<<12|De<<6|63&J[x++]),$A<65536)zA+=String.fromCharCode($A);else{var le=$A-65536;zA+=String.fromCharCode(55296|le>>10,56320|1023&le)}}else zA+=String.fromCharCode((31&$A)<<6|ne)}else zA+=String.fromCharCode($A)}return zA}function tr(J,x){return J?Fi(ni,J,x):""}function br(J,x,oA,uA){if(!(uA>0))return 0;for(var FA=oA,zA=oA+uA-1,$A=0;$A<J.length;++$A){var ne=J.charCodeAt($A);if(ne>=55296&&ne<=57343&&(ne=65536+((1023&ne)<<10)|1023&J.charCodeAt(++$A)),ne<=127){if(oA>=zA)break;x[oA++]=ne}else if(ne<=2047){if(oA+1>=zA)break;x[oA++]=192|ne>>6,x[oA++]=128|63&ne}else if(ne<=65535){if(oA+2>=zA)break;x[oA++]=224|ne>>12,x[oA++]=128|ne>>6&63,x[oA++]=128|63&ne}else{if(oA+3>=zA)break;ne>1114111&&LQ("Invalid Unicode code point 0x"+ne.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),x[oA++]=240|ne>>18,x[oA++]=128|ne>>12&63,x[oA++]=128|ne>>6&63,x[oA++]=128|63&ne}}return x[oA]=0,oA-FA}function na(J){for(var x=0,oA=0;oA<J.length;++oA){var uA=J.charCodeAt(oA);uA>=55296&&uA<=57343&&(uA=65536+((1023&uA)<<10)|1023&J.charCodeAt(++oA)),uA<=127?++x:x+=uA<=2047?2:uA<=65535?3:4}return x}var zi=5242880;l.TOTAL_STACK&&he(zi===l.TOTAL_STACK,"the stack size can no longer be determined at runtime");var ws,bh=l.INITIAL_MEMORY||16777216;function sm(){if(!Le){var J=PQ(),x=xt[J>>2],oA=xt[J+4>>2];x==34821223&&oA==2310721022||Hs("Stack overflow! Stack cookie has been overwritten at 0x"+J.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+oA.toString(16)+" 0x"+x.toString(16)),xt[0]!==1668509029&&Hs("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Be("INITIAL_MEMORY","INITIAL_MEMORY"),he(bh>=zi,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+bh+"! (TOTAL_STACK="+zi+")"),he(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),he(!l.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),he(bh==16777216,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),function(){var J=new Int16Array(1),x=new Int8Array(J.buffer);if(J[0]=25459,x[0]!==115||x[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var Lh=[],du=[],ET=[],dM=!1;function lq(J){Lh.unshift(J)}function VO(J){ET.unshift(J)}he(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),he(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),he(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),he(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var hu=0,pu=null,Fh=null,Uh={};function Hs(J){l.onAbort&&l.onAbort(J),fe(J="Aborted("+J+")"),Le=!0;var x=new WebAssembly.RuntimeError(J);throw S(x),x}var uc={error:function(){Hs("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){uc.error()},createDataFile:function(){uc.error()},createPreloadedFile:function(){uc.error()},createLazyFile:function(){uc.error()},open:function(){uc.error()},mkdev:function(){uc.error()},registerDevice:function(){uc.error()},analyzePath:function(){uc.error()},loadFilesFromDB:function(){uc.error()},ErrnoError:function(){uc.error()}};l.FS_createDataFile=uc.createDataFile,l.FS_createPreloadedFile=uc.createPreloadedFile;var fg,lT="data:application/octet-stream;base64,";function hM(J){return J.startsWith(lT)}function pM(J){return J.startsWith("file://")}function wa(J,x){return function(){var oA=J,uA=x;return uA=l.asm,he(dM,"native function `"+oA+"` called before runtime initialization"),uA[J]||he(uA[J],"exported native function `"+oA+"` not found"),uA[J].apply(null,arguments)}}function CT(J){try{if(J==fg&&PA)return new Uint8Array(PA);var x=pm(J);if(x)return x;if(kA)return kA(J);throw"both async and sync fetching of the wasm failed"}catch(oA){Hs(oA)}}function iE(J){for(;J.length>0;)J.shift()(l)}function LQ(J){LQ.shown||(LQ.shown={}),LQ.shown[J]||(LQ.shown[J]=1,fe(J))}function BT(J){switch(J){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+J)}}hM(fg="data:application/octet-stream;base64,AGFzbQEAAAABgAQ/YAJ/fwBgAX8AYAF/AX9gA39/fwBgAn9/AX9gBH9/f38AYAV/f39/fwBgA39/fwF/YAZ/f39/f38AYAZ/f39/f38Bf2AEf39/fwF/YAV/f39/fwF/YAd/f39/f39/AGAAAX9gCH9/f39/f39/AGAAAGAIf39/f39/f38Bf2AHf39/f39/fwF/YAJ/fgBgBX9+fn5+AGAFf39/f34Bf2ABfAF/YAJ/fABgA39/fgF+YAN/fn8AYAN/f34AYAV/f35/fwBgAX8BfmAEf35/fwBgBn9+f39/fwBgA39+fwF+YAR/fn5/AGADf39/AX5gCn9/f39/f39/f38Bf2AGf39/f35+AX9gB39/f39/fn4Bf2ADf39/AXxgAAF8YAJ/fgF/YAF/AXxgBn98f39/fwF/YAR/f39/AX5gDH9/f39/f39/f39/fwF/YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAp/f39/f39/f39/AGAPf39/f39/f39/f39/f39/AGAFf39/f38BfGANf39/f39/f39/f39/fwBgDH9/f39/f39/f39/fwBgAn5/AGAAAX5gAnx/AXxgAn5/AX9gAn9/AX5gBH5+fn4Bf2ADfn5+AX9gAn5+AXxgAn5+AX1gBH9/f34BfmADf39/AX1gCX9/f39/f39/fwF/YAR/f35+AAKJCi4DZW52DV9fYXNzZXJ0X2ZhaWwABQNlbnYFYWJvcnQADwNlbnYaX2VtdmFsX2dldF9tb2R1bGVfcHJvcGVydHkAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUABANlbnYNX2VtdmFsX2RlY3JlZgABA2VudhdfZW12YWxfY2FsbF92b2lkX21ldGhvZAAFA2VudhhfZW12YWxfZ2V0X21ldGhvZF9jYWxsZXIABANlbnYNX2VtdmFsX2luY3JlZgABA2VudhNfZW12YWxfZ2V0X3Byb3BlcnR5AAQDZW52EF9lbXZhbF9pc19zdHJpbmcAAgNlbnYJX2VtdmFsX2FzACQDZW52EV9lbXZhbF9nZXRfZ2xvYmFsAAIDZW52El9lbXZhbF9uZXdfY3N0cmluZwACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALwNlbnYWX2VtdmFsX3J1bl9kZXN0cnVjdG9ycwABA2Vudg1fZW12YWxfdHlwZW9mAAIDZW52Cl9lbXZhbF9uZXcACgNlbnYRX2VtdmFsX2luc3RhbmNlb2YABANlbnYQX2VtdmFsX2lzX251bWJlcgACA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzADADZW52C19lbXZhbF9jYWxsAAoDZW52Gl9lbWJpbmRfcmVnaXN0ZXJfc21hcnRfcHRyADEDZW52JV9lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY2xhc3NfZnVuY3Rpb24ADANlbnYiX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jb25zdHJ1Y3RvcgAIA2Vudh9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uAA4DZW52FV9lbWJpbmRfcmVnaXN0ZXJfdm9pZAAAA2VudhVfZW1iaW5kX3JlZ2lzdGVyX2Jvb2wABgNlbnYYX2VtYmluZF9yZWdpc3Rlcl9pbnRlZ2VyAAYDZW52Fl9lbWJpbmRfcmVnaXN0ZXJfZmxvYXQAAwNlbnYbX2VtYmluZF9yZWdpc3Rlcl9zdGRfc3RyaW5nAAADZW52HF9lbWJpbmRfcmVnaXN0ZXJfc3RkX3dzdHJpbmcAAwNlbnYWX2VtYmluZF9yZWdpc3Rlcl9lbXZhbAAAA2VudhxfZW1iaW5kX3JlZ2lzdGVyX21lbW9yeV92aWV3AAMDZW52FWVtc2NyaXB0ZW5fbWVtY3B5X2JpZwADA2VudhRfZW1zY3JpcHRlbl9kYXRlX25vdwAlA2VudiBfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYwANA2VudhJlbXNjcmlwdGVuX2dldF9ub3cAJRZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAKA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MRFlbnZpcm9uX3NpemVzX2dldAAEFndhc2lfc25hcHNob3RfcHJldmlldzELZW52aXJvbl9nZXQABANlbnYKc3RyZnRpbWVfbAALA2VudgtzZXRUZW1wUmV0MAABA2VudhdfZW1iaW5kX3JlZ2lzdGVyX2JpZ2ludAAMFndhc2lfc25hcHNob3RfcHJldmlldzEHZmRfc2VlawALA9oW2BYPAQICAQEEBwIHAgICAgMCAQEAAgACAwICBAUCBAIAAAAAAQICAAAAAAIAAQIHAAcABQQBBAIHBAAABAAFAgQABwQDAwIAAgcECwAEAgIAAAMEBAQABAcSEhYHBAQCAgcPAhUCAAIEAgQEAgEBBAMCAgACBAQAAAQEAgIBAQICAgABAgICAQQEAAEEAQMEBwAFAAEABAQEAwQEJiYEBAQEBAQEAQQEBzIVAgIVGxsnBAICAgIEBAcBBAQABAECCgABDwIAAgIEAwADAgAAAAAAAAQAAgIEAg0EAgQAAQICAwADAgICAQICBAEAAgABAQAHAAAEBAACAQECAQIBAAIBAgICBwAAAAIAAgAHBQIDBwIHBwMBBAQHBAIPBAIBAQACAgAABgAABAQCAQIBAgMAAgQECgAAAQAHAwcABwQHAQEEAAcEBwIEAgkCAgcCBAcCBAAKBAACBwEEAwICAgIBAQEBAgEBAQECAAIBBAQDAQQAAAQBAAICAQAAAwQAAgQXBAQBBQEBBAEBAwgFAgUAAQQABwQEAAIBAQQAAgAAAQICAgcAAgEBAQcEBwIEBwEACgoEBwcFAwAABAABAAMBAAMDAAEBAQoACwUBAQIHAgAHBAQHBwcCBAcBAwEHBAEHBwAEAQIACQACBQcBAAcGBgwCBAACAAQCAQAHBwIBAAIGAgkAAwICAAECAwAEAQEAAQQDAAEAAwABAQIAAQECAwIEAQECAAABBwQABwIEBQABBAAABQAFBQoEAAAAAAQEAgEAAgEAAAIBAAIBAAAEAAAEAgEBAAcFAgUCBAQFBAIBAgECAQIAAAMKCwoDCgAFAwADAAMHBAMEBAMAAAcBAgAEAAMAAAMEAQQABwQHAgQCAgIBAgsCBAAACQQAAgECAAEAAQIEBwAHAQACAg0DAwIBAAEAMwQDBAICAgIAAgIAAQEYAAEEAQIDAgEBAQACAgQCAwQDAgAABBYBAgEPAQINAQ0BDQENARUCFgICFQAAAAEBBAEAAgEEBxcFAxkDAgECAQEBBAIHBwIEAQIEAQIAAQsDAQQBAQEBAAACAAMCAQEBAQAcAAEAAAAFAgAGBwUEAwQABgUGAwUIAgAAAAECAgMDAQEBAQIFBgcABgcDCAYDCAMGDAYADgUGBQYFBgUGDgMGAxgGBQEBAwIBAAUCAQEFAgEAAQADAgEBBAABAgABAAMEBwQACgACAQADBAQAAAcAAAAEBAAAAQAEAQEAAAcBBQUDAwMDBQgDBgUGBQUGAwUFBQYFAwYDBQIBAQECAQICAgIBAAEDAgcDAQMEAAMBAQECAQAAAwEFBgYDAwQBCAQBAgADAAEEAgMEAQMCAgAEAwICAQECAgEEAQIDAgECAwABAQEEAwACAgECAwADBQUCAwIBAgMAAQEAAwABAgMCAQIDAAEBAwQDAgECAwAAAQIBAgMAAwEAAQICAQECAQEBAAAAAAAACAgCAwAFCAAABQYAAwUIAgUABQIGAAYFBggDAwQFAgMFBgoDBQAIBgMBBQMCAAMAAwMGAwgDAwMBBA4GBwQNBgAFCAUFBQYIAAAAAwICAgMEDQMDAAAAAAMDAAADAwMDAwMDAwYEBgAAAQEFBQAAAAABAQEBAgUCAAAAAAEDAQABAwMDAwQAAgMAAAEBAQEDAwAAAAAAAAUFBgYGBgMFAgMBAgICAQEBAwIBBgMFAQECAQMCAQMCAQAAAQACAQEHBwAEAwEHAgADAAcCAQIDAAEBBAECAgECAwADBAcCAAIEAAIBAAMBAgACAQIDAAUKAQMBAQEEBQAFAgIAAQAABAEFAQEBAQEDDQcHAgEBAQIFAQACAgEBAQEDBQgBAQAFAgECAwIBAQEABAAAAQENAgIAAgIAAgICBAYDBAADBQQAAQUDAgIBAQMBAgICAgEBAAQBBQUAAAAAAwMCAQECAgEAAgEFDAIBAAQDAAMDAQMCBAEFDwIDAQABAAcHAQABDwMHAwcCBQoGBwYCAgIBAAMAAQYBBAMAAQAFBQMCAQUBBQUAAAAFAwMBBAIDAgECAwABAQMDAgECAgECAwAAAgECAQIDAAEDAgMCAQIDAAEAAwEABAEAAAAAAAMCAQICBAIAAA0BAQ8CAQADAwMDAAAABAMCAQIDAAEBAQMAAgECAwABAgECAwADAgECAwADAgIBAgMAAAIBAgMAAAIBAgMAAgcAAwEBAQIBBgwEAQYEDAkMEh0bAwYIBAQEBwgCAQEAAAUDAgEDAgEFAgECAwABAQEABwICDQEFBwAAAAcKAAkJBwUDAgQCBAABAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwAFBAUFBAEAAwEIAgEBAwMEAwYABwYBAAABAAIBAQIBAgEC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8ATxBPIE8wT0BJIE9QT2BPcE+AT5BPoE+wSSBPwEgQWDBYQFkgSqBZIEqwWuBa0FrwWyBa0FuQGzBa0FtAW1BbkBlASSBLkF+QX6BfsF/AWOBpEGkwaVBpcGiwaMBqgDqAM5uQGiBqcGObkBowapBqoGqwasBq0GrgY5igKxBrIGswa0BscGyQYQ3gblBucG6gb6Bv0GgAfnBucGhQeHB4cHiweNB48HkQfnBpQHlAeXB5gHnweYB5gHnweYB88G0gbKBssG1QbXBtkG2gbbBuQG5gboBtwG3Qb5BvwG/waBB4IHkweVB5YHgweEB4YHiQeKB4wHjgeQB5IHOYoCnAedB6AHoQecB50HnAedB6QHpQecB50HuQGnB9UDqgerB6wHtAY5uQHUB9UH1gfXB9gH1wfZB+MH2QfZB9oH3AfdB94H3wffB+AH4QfiB+QH5QfbB+YH5wfoB9kH2QfqB+kH6wfsB+sH6wfsBzmKAu0H7gezBrQGhQiGCIcIiAiMCI0IpAi4A7gDkwiWCJcImAiZCJoImwicCJ0IpQibCDmKArgDpAinCKgIqQi0BqsIrAizBrQGsQiyCLMItQi2CLcIuAg5igK9CL4IvwjBCLYItwjCCDmKAscIyAjJCMsIzAjNCM4IOYoC1AjVCNYI2AjZCNoI2wg5igLeCN8I4AjiCNkI2gjjCOUI5gjnCOkI2QjaCOoI/QiACYIJlQmWCZ0JnwmjCaQJpwm2CbcJgAmcCqIKnAqcCqgKqgquCqIK7wjzCPYI9wj4CPkI/Aj/CIEJhgmJCYoJjAmOCZAJkgmTCb0Jvgm/CcAJwQmUCZkJmgmNCZwJoAmPCZsJoQmiCaYJqAmqCasJrAmtCa4JrwmwCbsJwgnDCcQJxQmaCpsKxgmZCvEJ8gnzCfQJ9Qn2CfcJ+An5CfoJ+wn8Cf0J/gn/CccJzgnQCdIJ1AnWCdgJ2gncCd4J4AnjCeUJgAqFCocKiQqLCo0KjwqRCpMK5wnpCesJ7QnvCZUKlwryCPQIywnPCdEJ0wnVCdcJ2QnbCd0J3wniCeQJ5gmECoYKiAqKCowKjgqQCpIKlAroCeoJ7AnuCfAJlgqYCjmKAjmKAroDsgKyAjIyoAqhCqUKpgqgCqEKoAqhCqAKoQqsCq0KrwqwCqUKpgqyCrMKswa0BrgKuQq6CrQGuQHCCsMKMtUDxArH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DAELEI4BIANBOGogA0EoahDjASEBIAMgACgCACADIAMoAggQoQEoAgAgARDkATYCCCADQQhqELIBIQAgARDlAQsgA0EoahDAASADQcABaiQAIABBCGoLgwIBAn8jAEHAAWsiAiQAAkAgAC0ACCIDBEAgA0EGRg0BIAJBOGoQayIAQdrsABBsGiACQShqIAAQbQALIAJBEGoiA0EGEMQBGiAAIAMQaSADENEBCyACQShqIgMgARC9ASACIAAoAgAgAxDiATYCCCACIAAoAgAQlQE2AjgCQAJAIAJBCGogAkE4ahCiAUUNACACQQhqELIBIAJBKGoQwwFFDQAgAkEIahCyASEADAELEI4BIAJBOGogAkEoahDjASEBIAIgACgCACACIAIoAggQoQEoAgAgARDkATYCCCACQQhqELIBIQAgARDlAQsgAkEoahDAASACQcABaiQAIABBCGoLvwEBA38gAAJ/IAEQihMhACMAQRBrIgUkACACED0iBEEATwRAAkAgACACEDYiAyAEa00EQCAARQ0BIAIQOCIDIAQEfyAAIANqIAMgBBDJFiABIABBACADIARqIAFLG0EAIAEgA08bagUgAQsgABDJFiACIAAgBGoiABCyFSAFQQA6AA8gACADaiAFQQ9qEE0MAQsgAiADIAAgBGogA2sgBEEAQQAgACABEMoWCyAFQRBqJAAgAgwBCxDvAQALEHYaCw4AIAAgASACENYWEHYaCzsBAX8gAEG81QIoAgAiATYCACAAIAFBDGsoAgBqQcjVAigCADYCACAAQQhqEKcCGiAAQTxqEJgUGiAACy8AIAAgARBUIABBDGogAUEMahDBASAAQRBqIAFBEGoQwQEgAEEUaiABQRRqEMEBCxYAIABB0NYCNgIAIABBoM0CNgIAIAALPwEBfyAAIAEoAgAiAzYCACAAIANBDGsoAgBqIAEoAgQ2AgAgAEEANgIEIAAgACgCAEEMaygCAGogAhDwAiAACxwAIAAgASkCADcCACAAIAEoAgg2AgggARAzIAAL8QEBBn8jAEEQayIGJAACfyADIAIoAgAiCWtBA0oEQEEAIQNBASEKAkADQCACIAkiBUEBaiIJNgIAQVAhCAJAIAUsAAAiBUEwa0H/AXFBCkkNAEGpfyEIIAVB4QBrQf8BcUEGSQ0AQUkhCCAFQcEAa0H/AXFBBkkN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GGoQayIAQeiBARBsGgwICyAAKwMAIgMQkAFFDQQgA5lEAAAAAAAA4EFjRQ0CIAOqIQIMBgsgAC0AACECDAULIAFBGGoQayIAQczNARBsGgwFC0GAgICAeCECDAMLIAFBGGoQayIAQcyBARBsGgwDCyABQRhqEGsiAEGFggEQbBoMAgsgACgCACECCyABQaABaiQAIAIPCyABQQhqIAAQbQALlAEBA38jAEGgAWsiAyQAAkAgAC0ACCIEBEAgBEEHRw0BIANBGGoiBCABIAIgAWtBABC+ASADQQhqIAAoAgAgBBDnARChASIBIAMgACgCABCVARChARC1AUUEQCABELIBQQhqIQULIANBGGoQwAELIANBoAFqJAAgBQ8LIANBGGoQayIAQb7uABBsGiADQQhqIAAQbQALIABB6LYDLQAARQRAQdC2A0EAEMQBGkHotgNBAToAAAsLbAIBfwF8AkACQAJAAkAgAC0ACEEBaw4DAAECAwsgACkDAEKAgICACHxCgICAgBBUDwsgACkDAEKAgICACFQPCyAAKwMAIgJEAAAAAAAA4MFmRSACRAAAwP///99BZUVyDQAgAhDWASEBCyABCxsAIABEAADA////30FlIABEAAAAAAAA4MFmcQsiAQF/IwBBEGsiASQAIAAgAUEIahCbASEAIAFBEGokACAAC9MBAQR/IwBBsAFrIgIkAAJAAkAgAS0ACCIDBEAgA0EHRg0BIAJBKGoQayIAQYLuABBsGiACQRhqIAAQbQALIAAQnQEaDAELIAJBKGoQnQEiBCABKAIAEJ4BEJ8BIAJBEGogASgCABCgARChASIDIAJBCGogASgCABCVARChASIBEKIBBEADQCAEIAJBGGogAxCyASgCACADELIBKAIEQQJ2EIQBIgUQowEgBRDMFhogAxCzASADIAEQogENAAsLIAAgBBCkASAEEJkBCyACQbABaiQACxAAIAAoAgQgACgCAGtBDG0LDQAgACgCACABQQxsagsoAQF/IwBBEGsiASQAIAFBCGogABCnARCmASgCACEAIAFBEGokACAACw0AIAAoAgAgASgCAEYLIwAgACABEDggARA4IAEQPWoQjQEiAAR/IAAFEI4BQdC2AwsLgwEBA38jAEEQayIBJAACQCAALQAIIgNBBkkNAAJAAkACQCADQQZrDgIAAgELIAAo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C08BAX8jAEGgAWsiAiQAIABBBEEBEMUBIAFFBEAgAkEYahBrIgBBxS0QbBogAkEIaiAAEG0ACyAAIAEgARCKExDLATYCACACQaABaiQAIAALeQECfyMAQaABayICJAACQCABQfv///8HSQRAIAFBBWoQqRMiA0UNASADIAE2AgAgA0EEaiAAIAEQ+hIaIAEgA2pBADoABCACQaABaiQAIAMPCyACQRhqEGsiAEHu4wAQbBogAkEIaiAAEG0ACyACQRhqQfszEEcaAAsdACAAQQRBARDFASAAIAEQOCABED0QywE2AgAgAAsUACAAQQVBABDFASAAIAE6AAAgAAv1AwEHfyMAQRBrIgUkACABLQAIIQIgAEEANgIMIAAgAiAALwEIQYB8cXIiAzsBCCAAIAEoAhA2AhAgACABKAIUNgIUAkACQCACQQdNBEBBASACdCICQS9xDQEgAkHAAXFFBEACQCABKAIAIgJFDQAgAS0ACUEBcUUNAEEBIAIgBUEMaiAFQQhqEGogACAFKAIIIAUoAgwQywE2AgAgACAALwEIQYACcjsBCAwECyAAIAM7AQggACACNgIADAMLQQwQwBYgASgCACICEM8BIQMgAhCgASEEIAIQlQEhBiMAQSBrIgIkACACIAY2AhAgAiAENgIYIAMQlQEhBiACQRhqIAJBEGoQogEEQANAIAJBCGogBhCmASEHIAJBGGoiBBCyASEIIAMgBygCACAIEOQBGiAEELMBIAQgAkEQahCiAQ0ACwsgAkEgaiQAIAAgAzYCAAwCC0GX9QBB1ZwBQfgVQevvABAAAAsgACABKQMANwMACyABKAIMBEBBEBDAFiICQQM2AgAgAkEQaiEDIAJBBGoiBCECA0AgAhCwARogAkEEaiICIANHDQALIAAgBDYCDEEAIQIDQCACQQJ0IgQgASgCDGooAgAiAwRAIAAoAgwgBGogAyADEIoTELoBCyACQQFqIgJBA0cNAAsLIAVBEGokACAAC1ABAX8jAEEgayICJAAgAEEANgIAIAEQtwIaIABBBGoQsAEaIAJBADYCDCAAQQhqIAJBDGogARCrARDzAhogACAAELcCNgIAIAJBIGokACAACxMAIABBAEEAEMUBIAAgARBzIAALvAEBBH8gAC8BCCIBQf8BcSICQQdNBEACQEEBIAJ0IgJBL3ENACACQcABcUUEQCABQYACcUUNASAAKAIAEKoTDAELIAAoAgAiAUUNACABIAEQtQIQgAMgARCqEwsgACgCDCIBBEAgAUEEayIDKAIAIgIEQCABIAJBAnRqIQIDQCACQQRrIgIoAgAiBARAIAQQqhMLIAEgAkcNAAsLIAMQqhMLIABCADcDAA8LQZf1AEHVnAFBnRZBkuwAEAAAC5IEAQN/IwBBIGsiAyQAAkACQCAALwEIIgQgAS8BCHNB/wFxDQBBASECAkACQAJAAkACQAJAAkAgBEH/AXEOCAcGAAEDAgQEBQsgACkDACABKQMAUSECDAYLIAArAwAgASsDAGEhAgwFCyAALQAAIAEtAABGIQIMBAsgACgCACIAQQAgASgCACICG0UEQCAAIAJGIQIMBAsgBEGAAnFBCHYgACADQRxqIANBFGoQaiABLwEIQYACcUEIdiABKAIAIANBGGogA0EQahBqQQAhAiADKAIcIgAgAygCGEcNAyADKAIUIgFFDQQgAygCECICRQ0EIAEgAiAAEIITRSECDAMLQQAhAiAAKAIAEJ4BIAEoAgAQngFHDQIgASgCACEBIAAoAgAiABCeASABEJ4BRgR/IAAQoAEhAiAAEJUBIQQgARCgASEBIwBBIGsiACQAIAAgBDYCECAAIAI2AhggACABNgIIQQEhAQJAIABBGGogAEEQahCiAUUNAANAIABBGGoQsgEiASAAQQhqELIBIgIQwwEEfyABQQhqIAJBCGoQ0gEFQQALIgFFDQEgAEEYaiICELMBIABBCGoQswEgAiAAQRBqEKIBDQALCyAAQSBqJAAgAQVBAAshAgwCC0GX9QBB1ZwBQa0XQeixARAAAAsgACkDACABKQMAUSECCyADQSBqJAAgAg8LIANB0pQBEEcaAAsMACAAIAEQ0gFBAXMLWAEDfyMAQRBrIgMkACAAKAIAIgRFIAAvAQgiAEH/AXFBBEdyIgVFBEAgAEGAAnFBCHYgBCADQQxqIAEQaiACIAEoAgAgAygCDGo2AgALIANBEGokACAFRQtTAgF/AX4gASABKAIAQQFrIgI2AgAgAkEAOgAAA0AgASABKAIAQQFrIgI2AgAgAiAAIABCCoAiA0IKfn2nQTByOgAAIABCCVYhAiADIQAgAg0ACwvlAQICfgN/IwBBEGsiAyQAAnwgAL0iAUI0iKdB/w9xIgRB/wdrIQUCQCAEQbMITwRAIAMgADkDCCABQv////////8Hg1BFIAVBgAhGcQ0BIAFCgICAgICAgICAf4O/DAILIARB/gdNBEAgAyABQoCAgICAgICAgH+DNwMIIAAMAgsgASAFrSIChkL/////////B4NQBEAgAyAAOQMIIAFCgICAgICAgICAf4O/DAILIANCgICAgICAgHggAocgAYMiATcDCCAAIAG/oSEACyAACyEAIANBEGokACAARAAAAAAAAAAAYQv1AQICfwF8IwBBoAFrIgEkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0ACCICDgYJAAECBAMECyAAENgBRQ0FDAcLIAAQ2AENBiABQRhqEGsiAEGVgQEQbBoMCAsgACsDACIDENkBRQ0EIANEAAAAAAAA8EFjIANEAAAAAAAAAABmcUUNAiADqyECDAYLIAAtAAAhAgwFCyABQRhqEGsiAEGqzQEQbBoMBQtBACECDAMLIAFBGGoQayIAQfiAARBsGgwDCyABQRhqEGsiAEGzgQEQbBoMAgsgACgCACECCyABQaABaiQAIAIPCyABQQhqIAAQbQALZQIBfwF8AkACQAJAAkAgAC0ACEEBaw4DAAECAwsgACkDAEKAgICAEFQPCyAAKQMAQoCAgIAQVA8LIAArAwAiAkQAAAAAAAAAAGZFIAJEAADg////70FlRXINACACENYBIQELIAELGwAgAEQAAOD////vQWUgAEQAAAAAAAAAAGZxC78CAwF8An8BfiMAQaABayICJAACQAJAAkACQAJAAkACQAJAAkACQCAALQAIDgYGAQACBAMECwJ/QQEhAwJAAkACQAJAIAAtAAhBAWsOAwMAAQILIAApAwBCAFkMAwtBACEDIAArAwAiAUQAAAAAAADgw2ZFIAFEAAAAAAAA4ENjRXINASABENYBDAILQQAhAwsgAwtFDQYLIAApAwAhBAwECyAAKwMAIgFEAAAAAAAA4ENlIAFEAAAAAAAA4MNmcUUNBSABmUQAAAAAAADgQ2NFDQIgAbAhBAwDCyAAMQAAIQQMAgsgAkEYahBrIgBBldcBEGwaDAQLQoCAgICAgICAgH8hBAsgAkGgAWokACAEDwsgAkEYahBrIgBB5oIBEGwaDAELIAJBGGoQayIAQYWDARBsGgsgAkEIaiAAEG0AC7kCAwF8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IAdJBEAgACAKayEEIAAhAkEBDAELIAIhCiACQQFqIQJBASEEQQELIgEgAmoiACAGSQ0AC0EBIQJBfyEHIAZBAU0EQCAEIQAMAQtBACEAQQEhBUEBIQEDQAJ/IAggASAHamotAAAiDCACIAhqLQAAIg1GBEAgASAFRgRAIAAgBWohAEEBDAILIAFBAWoMAQsgDCANSQRAIAIgB2shBSACIQBBAQwBCyAAIQcgAEEBaiEAQQEhBUEBCyIBIABqIgIgBkkNAAsgBCEAIAUhAgsCfyAIIAggAiAAIAdBAWogCkEBaksiABsiBGogByAKIAAbIgtBAWoiBRCCEwRAIAsgBiALQX9zaiIAIAAgC0kbQQFqIQRBAAwBCyAGIARrCyEMIAZBAWshDSAGQT9yIQ5BACEHIAMhAANAAkAgAyAAayAGTw0AIANBACAOEIETIgEEQCABIgMgAGsgBkkNAwwBCyADIA5qIQMLAn8CfyAGIAlBgAhqIAAgDWotAAAiAUEDdkEccWooAgAgAXZBAXFFDQAaIAkgAUECdGooAgAiASAGRwRAIAYgAWsiASAHIAEgB0sbDAELAkAgCCAFIgEgByABIAdLGyICai0AACIKBEADQCAAIAJqLQAAIApB/wFxRw0CIAggAkEBaiICai0AACIKDQALCwNAIAEgB00NBiAIIAFBAWsiAWotAAAgACABai0AAEYNAAsgBCEBIAwMAgsgAiALawshAUEACyEHIAAgAWohAAwACwALQQAhAAsgCUGgCGokACAAIQMLIAMLCxIAIABB+OsAQZf1ACABGxBHGgsOACAAQQFrQf8BcUEfSQslACAAKAIEGiAAIAAoAgRBtX9xNgIEIAAgACgCBEEIcjYCBCAACxgAIAAgACgCAEEMaygCAGogARECABogAAsTACAAIAAoAgRBgIABcjYCBCAACykBAn8jAEEQayIBJAAgAUEIaiIAQTA6AAAgAC0AACEAIAFBEGokACAACyQBAX8gACAAKAIAQQxrKAIAaiICLABMGiACIAEsAAA2AkwgAAslAQF/IwBBEGsiASQAIAFBCGogABCmASgCACEAIAFBEGokACAACxoAIAAgACgCAEEMaygCAGogASgCABCJAiAACw8AIAAoAgwaIAAgATYCDAsDAAALKAAgABCMAiIAQcDmATYCACAAQQRqEDAaIABB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7gEgA0EgaiQAC4sBAQR/IwBBEGsiBSQAIwBBEGsiAyQAAkAgAUFvTQRAAkAgARDOAgRAIAAgARBPIAAhBAwBCyAAIAEQzwJBAWoiBhDAFiIEENACIAAgBhDRAiAAIAEQTgsgBCABIAIQzhYgA0EAOgAPIAEgBGogA0EPahBNIANBEGokAAwBCxDvAQALIAVBEGokACAACywAIAAoAgAaIAAoAgAgABCsAUEMbGoaIAAoAgAaIAAoAgAgABCTAUEMbGoaCw8AIAAgACgCACABajYCAAsPACAAIAEQOCABED0QvAELIAEBfyABEIoTIgIgABA9RgR/IAAgASACENUWBUEBC0ULTAECfwJAIAEQihMhAiACIAAQNiIDTQRAIAAQOCIDIAEgAhDJFiAAIAMgAhC7FgwBCyAAIAMgAiADayAAED0iAEEAIAAgAiABEMoWCwsWACAAQcDmATYCACAAQQRqEMwWGiAACwoAIAAQpAIQqhMLCgAgABD4ARCqEwsZACAAQeDMAjYCACAAQSBqEMwWGiAAEMUTC8ECAQN/IwBBEGsiAiQAIAAQehogAkEIaiIBIAAoAgQgACgCEEEIdkH8//8HcWoiAyAAELACBH9BAAUgAygCACAAKAIQQf8HcUECdGoLELECGiACIAAQqwIgASACEIABBEADQCACQQhqIgEoAgQaIAEgASgCBEEEaiIDNgIEIAMgASgCACIDKAIAa0GAIEYEQCABIANBBGo2AgAgASADKAIENgIECyABIAIQgAENAAsLIAAQekEANgIAIAAQrAJBAksEQANAIAAoAgQoAgAQqhMgABCtAiAAEKwCQQJLDQALC0GABCEBAkACQAJAIAAQrAJBAWsOAgEAAgtBgAghAQsgACABNgIQCyACQRBqJAAgACgCBCICIAAoAggiAUcEQANAIAAQehogAigCABCqEyACQQRqIgIgAUcNAAsLIAAQqgILBwAgACgCCAsuAQF/IAAgACgCBBCzAiAAKAIABEAgABCuAhogACgCACEBIAAQrwIaIAEQqhMLC0gBAX8gARB6KAIAIQIgACABKAIEIAEoAhAgAmoiAEEIdkH8//8HcWoiAiABELACBH9BAAUgAigCACAAQf8HcUECdGoLELECGgsQACAAKAIIIAAoAgRrQQJ1Cw8AIAAgACgCBEEEajYCBAsHACAAQQxqCxMAIAAQrgIoAgAgACgCAGtBAnULDQAgACgCCCAAKAIERgsSACAAIAI2AgQgACABNgIAIAALAwABCy0AIAEgACgCCEcEQANAIAAQrgIaIAAgACgCCEEEazYCCCAAKAIIIAFHDQALCwsUACAAIAEoAgAQpgEgAS0ABDoABAsKACAAELcCKAIACy0AIAEEQCAAIAEoAgAQtgIgACABKAIEELYCIAAQtwIgAUEQahC4AiABEKoTCwsHACAAQQRqCwgAIAEQzBYaC3YBA38gABC1AiEDIAAQtwIhBQJAIAMEQANAIAAQqwEgAiADIgRBEGoiAxC9AgRAIAQhBSAEKAIAIgMNAQwDCyAAEKsBIAMgAhC9AkUNAiAEQQRqIQUgBCgCBCIDDQAMAgsACyAAELcCIgQhBQsgASAENgIAIAULyQIBAX8gAyABNgIIIANCADcCACACIAM2AgAgACgCACgCAARAIAAgACgCACgCADYCAAsgABC3AigCACEDIAIoAgAiASABIANGIgI6AAwCQCACDQADQCABKAIILQAMDQEgASgCCBDKAiEEIAEoAgghAgJAIAQEQAJAIAIoAggoAgQiAkUNACACLQAMDQAMAgsgARDKAkUEQCABKAIIIgEQywILIAEoAggiAUEBOgAMIAEoAggiAUEAOgAMIAEQzAIMAwsCQCACKAIIKAIAIgJFDQAgAi0ADA0ADAELIAEQygIEQCABKAIIIgEQzAILIAEoAggiAUEBOgAMIAEoAggiAUEAOgAMIAEQywIMAgsgASgCCCIBQQE6AAwgASgCCCIBIAEgA0Y6AAwgAkEBOgAMIAEgA0cNAAsLIAAQqwEiACAAKAIAQQFqNgIACxQBAX8gACgCACEBIABBADYCACABCxYAIAAgASgCADYCACAAIAItAAA6AAQLCQAgASACEMMCCwcAIAAQxwILEgAgACACOgAEIAAgATYCACAACzEBAX8jAEEQayIDJAAgAyABNgIMIAAgA0EMahDJAiIAIAIpAgA3AgQgA0EQaiQAIAALCQAgASACEHYaC0EBAX8gACgCACEBIABBADYCACABBEAgABC3AiIALQAEBEAgACgCACABQRBqELgCCyABBEAgACgCABogARC5AQsLCwwAIAAgARDEAkEfdguVAQEDfyMAQRBrIgIkACACQQhqIAEQOCABED0QsQIa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aiQAIABBEGoLjQEBAX8jAEEgayICJAAgAiAAQTxqIgAQpAM2AhggAiAAEIcCNgIQIAJBGGogAkEQahC0AQRAA0AgAkEIaiIAIAJBGGoQpQMQowMgABCWAwRAIAIoAggiACABIAAoAgAoAggRAAALIAJBCGoQmAMaIAJBGGoiABCmAyAAIAJBEGoQtAENAAsLIAJBIGokAAslAQF/IwBBEGsiASQAIAFBCGogABDYAygCACEAIAFBEGokACAAC8QCAQh/IwBBIGsiBCQAIAQgARCsAzYCECMAQSBrIgIkACAAIAJBHGogARDXAyIGKAIAIQEgAkEAOgAbIAFFBEAjAEEQayIFJAAgABC3AiEBIAJBCGoiA0EoEMAWIAVBCGogAUEAEL8CEMACIgcoAgBBEGohCCAEKAIQIQkjAEEQayIBJAAgASAJNgIIIAggASgCCBC4AUEMahAwGiABQRBqJAAgBxC3AkEBOgAEIAVBEGokACAAIAIoAhwgBiADKAIAELoCIAMQuwIhASACQQE6ABsgAygCACEAIANBADYCACAABEAgAxC3AiIDLQAEBEAgAygCABogAEEQahDNAwsgAARAIAMoAgAaIAAQqhMLCwsgBEEYaiIAIAJBCGogARCmASACQRtqELwCIAJBIGokACAAELIBIQAgBEEgaiQAIABBDGoLfQECfyMAQSBrIgMkACADIABBDGoiBCABEK8DNgIYIAMgBBCVATYCEAJAIANBGGogA0EQahCiAUUEQCADIABBGGoiACABEK8DNgIYIAMgABCVATYCCCADQRhqIANBCGoQogFFDQELIANBGGoQsgEpAxAhAgsgA0EgaiQAIAILKgEBfyMAQRBrIgIkACACQQhqIAAgARCwAxCmASgCACEAIAJBEGokACAAC7oBAQV/IwBBEGsiAyQAIAAQtQIhAiAAELcCIQQjAEEQayIFJAAgAgRAA0AgBCACIAAQqwEgAkEQaiABENkDIgYbIQQgAkEEaiACIAYbKAIAIgINAAsLIAVBCGogBBCmASgCACECIAVBEGokACADIAI2AgggAyAAEKcBNgIAAn8CQCADQQhqIAMQtAFFDQAgABCrASABIANBCGoQsgEQ2QMNACADKAIIDAELIAAQpwELIQAgA0EQaiQAIAALhgMBCn8jAEHAAWsiAiQAIAJBGGoiBUH+mQFBggFBACACQQhqIgpBteYBEEciAxD3AyIEQYnoABBsGiAEEPkDIAMQzBYaIABBDGoQswMgAEEkahC0AyAFEMgGIAUoAgAhBiACQQA2AgwgAkEONgIIIAIgAEEEahCgAyMAQRBrIgMkACADIANBCGogAhCeAykCADcDACMAQRBrIgckACAHQQhqIAMQoQMhCCMAQSBrIgAkACAAQQA2AhAgAEEQahC7AyEEIABBDzYCBCMAQRBrIgkkAEEYEMAWIAAoAgQQwwMiAUGE6AE2AgAgASAKKQIANwIIIAFBEGogCBDEAyAJQQhqIAEQmwMoAgAhASAJQRBqJAAgACABNgIIIAQgAEEIaiIBEL0DIAEQvgMgAEEYaiAEEL8DIQEgBBCdAyABKAIAIQQgAEEgaiQAIAgQkQMaIAMQmAMaIAdBEGokACADQRBqJAAgBiAEIAYoAgAoAjwRAAAgAhCYAxogBRCYAxogAkHAAWokAAvsAgEEfyMAQeABayIEJAAgBEE4akH+mQFBjQFBACAEQShqQbXmARBHIgUQ9wMiBkGDCBBsQePoABBsQYMIEGxByrwBEGwgARDoE0H3ugEQbCACEKECQbO2ARBsIQcgBEEYaiICIAMQ9gEgByACEKECGiACEMwWGiAGEPkDIAUQzBYaAkAgAQ0AIAMQRkUNACAEQShqIgEgAxCSASAEIAEQkAI2AhAgBCABEJECNgIIIARBEGogBEEIahC0AQRAIABBDGohBiAAQSRqIQcDQEGHESAEKAIQIgEQtQNFBEACQAJAIARBOGogAyABEJcBEM4BIgIQ3gEEQCACENcBIQUgBiABEKoDIAWtNwMADAELIAIQ8wFFDQEgBEEYaiIFIAIQggEgByABEK0DIAUQXiAFEMwWGgsgACABEKsDCyACENEBCyAEQRBqIgEQkgIaIAEgBEEIahC0AQ0ACwsgBEEoahCZAQsgBEHgAWokAAsqACAAIAAQtQIQywMgABCrAUEANgIAIAAgABC3AjYCACAAELcCQQA2AgALKgAgACAAELUCEMwDIAAQqwFBADYCACAAIAAQtwI2AgAgABC3AkEANgIACyABAX8gABCKEyICIAEQPUYEfyABIAAgAhDVFgVBAQtFC3gBA38jAEHAAWsiASQAIAFBGGpB/pkBQaQBQQAgAUEIakG15gEQRyICEPcDIgNBgwgQbEHH6AAQbEGDCBBsQfznABBsGiADEPkDIAIQzBYaIABBDGoQswMgAEEYahCzAyAAQSRqELQDIABBMGoQtAMgAUHAAWokAAsHACAAELEDCwMAAQsDAAELAwABCx0BAX8jAEEQayIBJAAgABCwASEAIAFBEGokACAAC58BAgN/AX4jAEEQayIFJAAgBSABNgIMIwBBIGsiASQAIAFBGGoiBCAAQRBqEKMDIAQQlgMEQCABKAIYIQQgASAAKQIIIgc3AwggASAHNwMQIAEoAgghACAEIAEoAgwiBkEBdWoiBCAFKAIMIAIgAyAGQQFxBH8gBCgCACAAaigCAAUgAAsRBQALIAFBGGoQmAMaIAFBIGokACAFQRBqJAALHgEBfyMAQRBrIgIkACAAIAEQuwIQwAMgAkEQaiQACx8BAX8gACgCACEBIABBADYCACABBEAgARDFAxCqEwsLCQAgACABEMIDCx4BAX8gACgCACECIAAgATYCACACBEAgACACEMkDCwsEACAACy4BAX8jAEEQayICJAAgAiABELsCNgIMIAAgAkEMaiABEPMCIQAgAkEQaiQAIAALFAAgACABNgIEIABBlOgBNgIAIAALCgAgACABEMgDGgsMACAAQRBqEMYDIAALCAAgABCRAxoLCgAgABDFAxCqEwsJACAAIAEQngMLFAAgAQRAIAEgASgCACgCBBEBAAsLEgAgACAANgIAIAAgADYCBCAACy0AIAEEQCAAIAEoAgAQywMgACABKAIEEMsDIAAQtwIgAUEQahC4AiABEKoTCwsuACABBEAgACABKAIAEMwDIAAgASgCBBDMAyAAELcCGiABQRBqEM0DIAEQqhMLCxEAIABBDGoQzBYaIAAQzBYaCyYBAX8gAEEEahDPAyIBQX9GBEAgACAAKAIAKAIIEQEACyABQX9GCxMAIAAgACgCAEEBayIANgIAIAALGQAgABDTAyIAQQA2AgggAEHwpgM2AgAgAAshACAAIAI2AgAgACABKAIEIgE2AgQgAQRAIAEQ1gMLIAALKwEBfyMAQRBrIgIkACACQQhqIAEQoQMiASAAEJ8DIAEQkQMaIAJBEGokAAsUACAAQQA2AgQgAEG4pgM2AgAgAAsRACAAQQxqIgAgACgCABDJAwsZAQF/IwBBEGsiASQAIAAQqhMgAUEQaiQACwoAIABBBGoQ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BEEQaiQACxkBAX8gABCTASECIAAgARDGBCAAIAIQnwILOgEBfyAAKAIABEAgABDHBCAAEKsBGiAAKAIAIQEgABCsARogARCqEyAAEKsBQQA2AgAgAEIANwIACwtCAQF/IAAQ6wEgAUkEQBDvAQALIAAgABCrASABEIIDIgI2AgAgACACNgIEIAAQqwEgAiABQQxsajYCACAAQQAQgwMLFgAgASACKQIANwIAIAEgAigCCDYCCAstAQF/IAEgACgCBCICRwRAA0AgABCrARogAkEMayICIAFHDQALCyAAIAE2AgQLFwEBfyAAEJMBIQEgABDIBCAAIAEQnwILDAAgACAAKAIAEMYECxAAIAAoAgQgACgCAGtBA3ULGQEBfyAAEMkEIQIgACABENQEIAAgAhDZBAs1ACAAKAIAGiAAKAIAIAAQzQRBNGxqGiAAKAIAIAAQzwRBNGxqGiAAKAIAIAAQzQRBNGxqGgsMACAAIAAoAgAQ4QQLEwAgABCrASgCACAAKAIAa0E0bQtEACABIAIpAgA3AgAgASACKQIINwIIIAFBEGogAkEQahCkASABQRxqIAJBHGoQpAEgASACLQAwOgAwIAEgAikCKDcCKAsQACAAKAIEIAAoAgBrQTRtCxkAIAFBxJ2xJ0sEQBDIAgALIAFBNGwQwBYLNQAgACgCABogACgCACAAENMEQQN0ahogACgCACAAEMkEQQN0ahogACgCACAAENMEQQN0ahoLDAAgACAAKAIAENQECxMAIAAQqwEoAgAgACgCAGtBA3ULLQEBfyABIAAoAgQiAkcEQANAIAAQqwEaIAJBCGsiAiABRw0ACwsgACABNgIEC38BBH8gABCpASAAEKsBGiABQQRqIgMiAiACKAIAIAAoAgQgACgCACIEayICQXRtQQxsaiIFNgIAIAJBAEoEQCAFIAQgAhD6EhoLIAAgAxDBASAAQQRqIAFBCGoQwQEgABCrASABEK4CEMEBIAEgASgCBDYCACAAIAAQkwEQgwMLVAEBfyAAKAIEIgEgACgCCEcEQANAIAAoAhAaIAAgACgCCEEMazYCCCAAKAIIIAFHDQALCyAAKAIABEAgACgCEBogACgCACEBIAAQhAMaIAEQqhMLCysBAX8gACABKAIANgIAIAEoAgAhAyAAIAE2AgggACADIAJBDGxqNgIEIAALWwECfyMAQRBrIgIkACACIAE2AgwgASAAENsEIgNNBEAgABDTBCIAIANBAXZJBEAgAiAAQQF0NgIIIAJBCGogAkEMahDgAigCACEDCyACQRBqJAAgAw8LEO8BAAssACAAKAIAGiAAKAIAIAAQ0wRBA3RqGiAAKAIAGiAAKAIAIAAQyQRBA3RqGgskACAAIAE2AgAgACABKAIEIgE2AgQgACABIAJBA3RqNgIIIAALRAEBfyMAQRBrIgEkACAAEKsBGiABQf////8BNgIMIAFB/////wc2AgggAUEMaiABQQhqEMIBKAIAIQAgAUEQaiQAIAALCQAgACABEOAECygAIAMgAygCACACIAFrIgBrIgI2AgAgAEEASgRAIAIgASAAEPoSGgsLLAAgACgCABogACgCACAAENMEQQN0ahogACgCACAAENMEQQN0ahogACgCABoLCAAgABCKAxoLGgAgAUH/////AUsEQBDIAgALIAFBA3QQwBYLMgEBfyABIAAoAgQiAkcEQANAIAAQqwEaIAJBNGsiAhC3BCABIAJHDQALCyAAIAE2AgQLLAAgACgCABogACgCACAAEM0EQTRsahogACgCABogACgCACAAEM8EQTRsahoLVwEBfyMAQRBrIgQkACAEIAAgAxCFAyEDIAAQqwEaIAIgAWsiAEEASgRAIAMoAgQgASAAEPoSGiADIAMoAgQgAEEMbkEMbGo2AgQLIAMQhgMgBEEQaiQAC0IBAX8gABDbBCABSQRAEO8BAAsgACAAEKsBIAEQ3AQiAjYCACAAIAI2AgQgABCrASACIAFBA3RqNgIAIABBABDeBAs1AQF/IwBBEGsiBCQAIAQgACADENoEIQMgABCrASABIAIgA0EEahDmBCADEIYDIARBEGokAAspACACIAFrIgBBAEoEQCADKAIAIAEgABD6EhogAyADKAIAIABqNgIACwu4BAEBfwJAAkACQCABIAJHBH8CQAJAAkACQAJAAkACQAJAAkACQCABLAAAIgRB7gBrDgsBCQkJAgkDBgQJBwALAkAgBEHjAGsOBAUJCQAICwJAIAMEQCADQQwQzxYMAQsgAEEMEOoECwwMCwJAIAMEQCADQQoQzxYMAQsgAEEKEOoECwwLCwJAIAMEQCADQQ0QzxYMAQsgAEENEOoECwwKCwJAIAMEQCADQQkQzxYMAQsgAEEJ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AQ0ACwsgABB6QQA2AgAgABCsAkECSwRAA0AgACgCBCgCABCqEyAAEK0CIAAQrAJBAksNAAsLQSchAQJAAkACQCAAEKwCQQFrDgIBAAILQc4AIQELIAAgATYCEAsgAkEQaiQACzkAIAAgASgCBCABKAIQQc4AbkECdGoiACABELACBH9BAAUgACgCACABKAIQQc4AcEE0bGoLELECGgstAQF/IAAoAgAhASAAQQA2AgAgAQRAIAAQtwIiACgCABogACgCBBogARCqEwsLEAAgACgCBCAAKAIAa0ECdQsKACABIABrQQxtCzMBAX8gASEDIAIhASAAIANHBEADQCABIAAQsgQgAUEMaiEBIABBDGoiACADRw0ACwsgAQsSACAAIAAoAgAgAUEDdGo2AgALMwEBfyABIQMgAiEBIAAgA0cEQANAIAEgABC+BCABQQhqIQEgAEEIaiIAIANHDQALCyABCwgAIAAQvQUaCyAAIAEtAAgEQCAAIAEoAgAgASgCBBCkBRoPCyAAEDAaC0IBAn8jAEEQayIBJAAgASAANgIIIAEoAgghAiMAQRBrIgAkACAAIAI2AgggACgCCCECIABBEGokACABQRBqJAAgAguIAQEEfyMAQRBrIgEkACMAQRBrIgMkACAAELABIgBBBGohBCMAQRBrIgIkACACQQA2AgwgBCACQQxqENQCIAJBEGokACADQRBqJAAgAEEIahDqASABQQA2AgwgAEEMaiABQQxqEMkCGiABQYCAgPwDNgIEIABBEGogASoCBDgCACABQRBqJAAgAAs1AQF/QYS3Ay0AAARAQYC3AygCAA8LQRQQwBYiABDbBRpBhLcDQQE6AABBgLcDIAA2AgAgAAtCAQF/IwBBIGsiAyQAIAMgASgCABDbFiADQRBqIgEgA0GSpwEQcSAAIAEgAhDeBSABEMwWGiADEMwWGiADQSBqJAALDQAgACABIAIQaBB2GgsoACAAEIoDIgBBCGoQlAMgAEF/NgIYIABB+T42AhQgAEH5PjYCECAACxEAIABBCGoQmAMaIAAQkQMaCxAAIAFBDGoQ4gUgARDMFhoLVgECfyAAEKgBRQRAIAAQqwEaIAAoAgQiASAAKAIAEKcDIAAQqwFBADYCACAAIAFHBEADQCABIQIgASgCBCEBIAJBCGoQ4AUgAhCqEyAAIAFHDQALCwsL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KAIAELoCIAcQuwIhCyACQQE6ABsgBygCACEJIAdBADYCACAJBEAgBxC3AiIHLQAEBEAgBygCABogCUEQahDLBwsgCQRAIAcoAgAaIAkQuQELCwsgCEEYaiIHIAJBCGogCxCmASACQRtqELwCIAJBIGokACAHELIBIQIgCEEgaiQAIAJBEGogARDCByACIAEpAzg3A0ggARC7BiAGELsGIA8QswEgDyABQZgBahDoAw0ACwsgDhDdAyAFENEBIAFBsAJqJAAgA0EIaiIBIABBCGoQowMgARCWAwRAIAMoAggiACAEIAAoAgAoAgARAAALIANBCGoQmAMaIAQQzBYaCyAKEMwWGgsgA0HQAWokAAwBCyABQYMoEKICBEAjAEEgayIBJAAgASABQRBqIABBEGoQvwciABCkAzYCCCABIAAQhwI2AgAgAUEIaiABELQBBEADQCABIAFBCGoQpQMQowMgARCWAwRAIAEoAgAiAiACKAIAKAIIEQEACyABEJgDGiABQQhqIgIQpgMgASAAEIcCNgIAIAIgARC0AQ0ACwsgABCNAyABQSBqJAAMAQsgAUHMlQEQogIEQCMAQTBrIgEkACABIAFBIGogAEEQahC/ByIAEKQDNgIYIAEgABCHAjYCACABQRhqIAEQtAEEQANAIAFBEGoiAiABQRhqEKUDEKMDIAIQlgMEQCABKAIQIgJBpMoAIAFBi+AAEEciAyACKAIAKAIMEQMAIAMQzBYaCyABQRBqEJgDGiABQRhqIgIQpgMgASAAEIcCNgIAIAIgARC0AQ0ACwsgABCNAyABQTBqJAAMAQsgAUGz+gAQogIEQCMAQcABayIBJAAgAUEYaiICQa+eAUHBAUEAIAFBCGoiA0G15gEQRyIFEPcDIgRBs/oAEGwaIAQQ+QMgBRDMFhogASACIABBEGoQvwciABCkAzYCACABIAAQhwI2AgggASADELQBBEADQCABQQhqIgIgARClAxCjAyACEJYDBEAgASgCCCICIAIoAgAoAhARAQALIAFBCGoiAhCYAxogARCmAyABIAAQhwI2AgggASACELQBDQALCyAAEI0DIAFBwAFqJAAMAQsgAUHxkgEQogIEQCMAQcABayIBJAAgAUEYaiICQa+eAUHGAUEAIAFBCGoiA0G15gEQRyIFEPcDIgRB8ZIBEGwaIAQQ+QMgBRDMFhogASACIABBEGoQvwciABCkAzYCACABIAAQhwI2AgggASADELQBBEADQCABQQhqIgIgARClAxCjAyACEJYDBEAgASgCCCICIAIoAgAoAhQRAQALIAFBCGoiAhCYAxogARCmAyABIAAQhwI2AgggASACELQBDQALCyAAEI0DIAFBwAFqJAAMAQsgAUG5kgEQogIEQCMAQcABayIBJAAgAUEYaiICQa+eAUHLAUEAIAFBCGoiA0G15gEQRyIFEPcDIgRBuZIBEGwaIAQQ+QMgBRDMFhogASACIABBEGoQvwciABCkAzYCACABIAAQhwI2AgggASADELQBBEADQCABQQhqIgIgARClAxCjAyACEJYDBEAgASgCCCICIAIoAgAoAiARAQALIAFBCGoiAhCYAxogARCmAyABIAAQhwI2AgggASACELQBDQALCyAAEI0DIAFBwAFqJAAMAQsgAUGAjwEQogIEQCMAQYACayIDJAACQAJAAkAgAhDwBg0AIAIQ8QYNACACEIUGDQELIANB2ABqQa+eAUHRAUECIANBMGpBteYBEEciABD3AyIBQcjUARBsGiABEPkDIAAQzBYaDAELIANByABqIgEgAhCGBiADQTBqQQAQxAEhBSADQSBqIgIQLyADQdgAaiACEDQiAiABIAUQNRogAhDdAyAFEEUEQCADQSBqEIsDIQIgA0EYaiIBIAUQ/QEgA0EQaiIEIAUQ/gEgASAEEOgDBEADQCADIANBGGoiBBCxARD2ASADQdgAaiIGIAMQugcgAxDMFhojAEEQayIBJAAgAhCrASEIIwBBEGsiByQAQSAQwBYiCUEANgIAIAEgCSAHQQhqIAhBARCxAhDAAhogB0EQaiQAIAEoAgBBCGogBhDOARogAiABKAIAIgcgBxDsAyACEKsBIgcgBygCAEEBajYCACABELsCGiABKAIAIQcgAUEANgIAIAcEQCABELcCIggoAgAaIAgoAgQaIAcQqhMLIAFBEGokACAGENEBIAQQswEgBCADQRBqEOgDDQALCyADIANB2ABqIABBEGoQvwciABCkAzYCGCADIAAQhwI2AgAgA0EYaiADELQBBEADQCADIANBGGoQpQMQowMgAxCWAwRAIAMoAgAiASACIAEoAgAoAiQRAAALIAMQmAMaIANBGGoiARCmAyADIAAQhwI2AgAgASAD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IgMkACADIAE2AhAgAyAANgIYIAMgAjYCCAJAIANBGGogA0EQahC0AUUNAANAIANBGGoQpQMhAiMAQRBrIgAkACAAQQhqIgEgAhCjAyABKAIAIQIgAygCCCgCACEEIAEQmAMaIABBEGokACACIARGDQEgA0EYaiIAEKYDIAAgA0EQahC0AQ0ACwsgAygCGCEAIANBIGokACAAC1YBAX8jAEEQayICJAAgAiAAEKsBEMUHIAIoAgBBCGogARDGByAAIAIoAgAiASABEOwDIAAQqwEiACAAKAIAQQFqNgIAIAIQuwIaIAIQ0wcgAkEQaiQACzQBAn8jAEEQayICJABBEBDAFiIDQQA2AgAgACADIAJBCGogAUEBELECEMACGiACQRBqJAALCgAgACABEKEDGgtbAQN/IwBBEGsiAiQAIAAQqwEhAyABKAIEIQQgASABEKcDIAAQqwEiACAAKAIAQQFrNgIAIAMgAUEIahCoAyABEKoTIAJBCGogBBCmASgCACEAIAJBEGokACAACzQBAX8jAEEQayICJAAgABDKAyEAIAJBADYCDCAAQQhqIAJBDGogARDzAhogAkEQaiQAIAALVwEBfyMAQRBrIgIkACACIAAQqwEQxQcgAigCAEEIaiABEMYHIAAgAigCACACKAIAEOwDIAAQqwEiACAAKAIAQQFqNgIAIAIQuwIaIAIQ0wcgAkEQaiQACy4AIAEEQCAAIAEoAgAQygcgACABKAIEEMoHIAAQtwIaIAFBEGoQywcgARCqEwsLEAAgAEEQahC7BiAAEMwWGguUAwEGfyAAIAFHBEAgARCrARogABCrARogARDwASEDIAEQpwEhAiMAQSBrIgEkACABIAI2AhAgASADNgIYIAAQqwEoAgAEQAJAIAEgABDNByIDKAIIRQ0AA0AgAUEYaiABQRBqELQBRQ0BIAFBGGoiBRCyASEEIAMoAghBEGohBiMAQRBrIgIkACACQQhqIgcgBhDQByAHIAQQ0QcgAkEQaiQAIAMoAgghBCMAQRBrIgIkACAAIAJBBGogBEEQahDSByEGIAAgAigCBCAGIAQQugIgAkEIaiAEEKYBKAIAGiACQRBqJAAgAxDOByAFELMBIAMoAggNAAsLIAMQzwcLIAFBGGogAUEQahC0AQRAA0AgAUEYaiIEELIBIQUjAEEgayIDJAAgA0EIaiICIAAgBRDDBiAAIANBBGogAigCAEEQahDSByEFIAAgAygCBCAFIAIoAgAQugIgA0EYaiACELsCEKYBIQUgAhDEBiAFKAIAGiADQSBqJAAgBBCzASAEIAFBEGoQtAENAAsLIAFBIGokAAsLVQEBfyAAIAE2AgAgASgCACECIAEgARC3AjYCACABELcCKAIAQQA2AgggARC3AkEANgIAIAEQqwFBADYCACAAIAIoAgQiASACIAEbNgIEIAAQzgcgAAt8AQF/IAAgACgCBCIBNgIIIAEEQCAAIAEoAggEfwJAAkAgARDKAgRAIAEoAggiAUEANgIAIAEoAgQiAA0BDAILIAEoAghBADYCBCABKAIIIgEoAgAiAEUNAQsDQCAAIgEoAgAiAA0AIAEoAgQiAA0ACwsgAQVBAAs2AgQLC0QBAn8gACgCACAAKAIIEMAGIAAoAgQiAQRAIAEoAggiAgRAA0AgAiIBKAIIIgINAAsgACABNgIECyAAKAIAIAEQwAYLCw8AIAAgASABQQxqELECGgtTAQF/IAAoAgAgARBYIAEQrgIiASAAKAIEIgBHBEAgACgCACICBEAgAhCqEwsgACABKAIEIgI2AgQgACACEK0TIgA2AgAgACABKAIAIAIQ+hIaCwtbAQN/AkAgABC1AiIEBEADQCAAEKsBIAIgBCIDQRBqENkDBEAgAyEFIAMoAgAiBA0BDAMLIAMoAgQiBA0ACyADQQRqIQUMAQsgABC3AiIDIQULIAEgAzYCACAFCysBAX8gACgCACEBIABBADYCACABBEAgABC3AiIAKAIAIAEgACgCBBCpAwsL0QIBA38jAEHwAWsiASQAIAFB2AFqQQYQxAEhBiABQcABakEAEMQBIQUgAUGoAWogAigCOBDGASEEIAVBrPUBEIkBIAQQaSAEENEBIAFBkAFqIAIoAgAQxwEhBCAFQbH1ARCJASAEEGkgBBDRASABQfgAaiACQQRqEMwBIQQgBUG69QEQiQEgBBBpIAQQ0QEgAUHgAGogAkEQahDMASEEIAVBwfUBEIkBIAQQaSAEENEBIAFByABqIAIoAhwQxwEhBCAFQcn1ARCJASAEEGkgBBDRASABQTBqIAJBIGoQzAEhBCAFQdD1ARCJASAEEGkgBBDRASACQSxqIgIQQ0UEQCABQRhqIAIQzAEhAiAFQdr1ARCJASACEGkgAhDRAQsgBiAFEOgBIAYgASADEMYBIgIQ6AEgAhDRASAAIAYQ3gMgBRDRASAGENEBIAFB8AFqJAALagEBfyMAQdAAayIBJAAgAUE4akEAEMQBIQQgAUEgaiACEMYBIQIgBEHo9QEQiQEgAhBpIAIQ0QEgAUEIaiADEMwBIQIgBEHx9QEQiQEgAhBpIAIQ0QEgACAEEN4DIAQQ0QEgAUHQAGokAAtHAQF/IwBBMGsiASQAIAFBGGpBABDEASEDIAEgAhDMASECIANB8fUBEIkBIAIQaSACENEBIAAgAxDeAyADENEBIAFBMGokAAs9AQF/IwBBMGsiASQAIAFBGGpBBhDEASIDIAEgAhDGASICEOgBIAIQ0QEgACADEN4DIAMQ0QEgAUEwaiQAC+8BAQN/IwBBsAFrIgEkACABQZgBakEGEMQBIQUgAUGAAWpBABDEASEEIAFB6ABqIAIoAgAQxgEhAyAEQYD2ARCJASADEGkgAxDRASABQdAAaiACKAIIEMcBIQMgBEGQ9gEQiQEgAxBpIAMQ0QEgAUE4aiACKAIMEMcBIQMgBEGZ9gEQiQEgAxBpIAMQ0QEgAUEgaiACKAIQEMcBIQMgBEGw9gEQiQEgAxBpIAMQ0QEgAUEIaiACKAIEEMYBIQIgBEHA9gEQiQEgAhBpIAIQ0QEgBSAEEOgBIAAgBRDeAyAEENEBIAUQ0QEgAUGwAWokAAs9AQF/IwBBMGsiASQAIAFBGGpBBhDEASIDIAEgAhDNASICEOgBIAIQ0QEgACADEN4DIAMQ0QEgAUEwaiQAC1ABAX8jAEEwayIBJAAgAUEYakEGEMQBIgQgASADEM0BIgMQ6AEgAxDRASAEIAEgAhDGASICEOgBIAIQ0QEgACAEEN4DIAQQ0QEgAUEwaiQAC4MDAQF/IwBBoAJrIgEkACABQYgCakEAEMQBIQYgAUHwAWogAhDMASECIAZB8fUBEIkBIAIQaSACENEBIAFB2AFqIAMQxgEhAiAGQcj2ARCJASACEGkgAhDRASABQcABaiAEEMwBIQIgBkHT9gEQiQEgAhBpIAIQ0QEgAUGoAWpBABDEASECIAFBkAFqIAUoAgAQxgEhAyACQYD2ARCJASADEGkgAxDRASABQfgAaiAFKAIEEMYBIQMgAkHA9gEQiQEgAxBpIAMQ0QEgAUHgAGogBSgCCBDHASEDIAJBkPYBEIkBIAMQaSADENEBIAFByABqIAUoAgwQxwEhAyACQZn2ARCJASADEGkgAxDRASABQTBqIAUoAhAQxwEhAyACQbD2ARCJASADEGkgAxDRASABQRhqIAUtABQQzQEhAyACQeD2ARCJASADEGkgAxDRASABIAIQzgEhAyAGQfD2ARCJASADEGkgAxDRASAAIAYQ3gMgAhDRASAGENEBIAFBoAJqJAALjwEBAn8jAEHgAGsiASQAIAFByABqQQAQxAEhAyABQTBqIAIoAgAQxgEhBCADQYLCABCJASAEEGkgBBDRASABQRhqIAIoAgQQxgEhBCADQd+GARCJASAEEGkgBBDRASABIAIoAggQxgEhAiADQaD4ABCJASACEGkgAhDRASAAIAMQ3gMgAxDRASABQeAAaiQAC9EBAQJ/IwBBgAFrIgEkACABQegAakEGEMQBIgUgAUHQAGoiBiACEMwBIgIQ6AEgAhDRASAFIAYgAxDGASICEOgBIAIQ0QEgBkEAEMQBIQIgAUE4aiAEKAIAEMYBIQMgAkGCwgAQiQEgAxBpIAMQ0QEgAUEgaiAEKAIEEMYBIQMgAkHfhgEQiQEgAxBpIAMQ0QEgAUEIaiAEKAIIEMYBIQMgAkGg+AAQiQEgAxBpIAMQ0QEgBSACEOgBIAAgBRDeAyACENEBIAUQ0QEgAUGAAWokAAtQAQF/IwBBMGsiASQAIAFBGGpBBhDEASIEIAEgAhDNASICEOgBIAIQ0QEgBCABIAMQzQEiAhDoASACENEBIAAgBBDeAyAEENEBIAFBMGokAAuGAQEBfyMAQeAAayIBJAAgAUHIAGpBABDEASEFIAFBMGogAhDMASECIAVBuvUBEIkBIAIQaSACENEBIAFBGGogAxDGASECIAVByPYBEIkBIAIQaSACENEBIAEgBBDMASECIAVB8fUBEIkBIAIQaSACENEBIAAgBRDeAyAFENEBIAFB4ABqJAALUAEBfyMAQTBrIgEkACABQRhqQQYQxAEiBCABIAIQzAEiAhDoASACENEBIAQgASADEMYBIgIQ6AEgAhDRASAAIAQQ3gMgBBDRASABQTBqJAALUAEBfyMAQTBrIgEkACABQRhqQQYQxAEiBCABIAIQzAEiAhDoASACENEBIAQgASADEM0BIgIQ6AEgAhDRASAAIAQQ3gMgBBDRASABQTBqJAALYwEBfyMAQTBrIgEkACABQRhqQQYQxAEiBSABIAIQzAEiAhDoASACENEBIAUgASADEMYBIgIQ6AEgAhDRASAFIAEgBBDNASICEOgBIAIQ0QEgACAFEN4DIAUQ0QEgAUEwaiQACz0BAX8jAEEwayIBJAAgAUEYakEGEMQBIgMgASACEMcBIgIQ6AEgAhDRASAAIAMQ3gMgAxDRASABQTBqJAALQgEBfyMAQTBrIgEkACABQRhqQQYQxAEiBCABIAJBACADGxDHASICEOgBIAIQ0QEgACAEEN4DIAQQ0QEgAUEwaiQAC74BAQJ/IwBBgAFrIgEkACABQegAakEGEMQBIgUgAUHQAGoiBCACEM0BIgIQ6AEgAhDRASAEQQAQxAEhAiABQThqIAMoAgAQxgEhBCACQYD2ARCJASAEEGkgBBDRASABQSBqIAMoAggQxwEhBCACQZD2ARCJASAEEGkgBBDRASABQQhqIAMoAgwQxwEhAyACQZn2ARCJASADEGkgAxDRASAFIAIQ6AEgACAFEN4DIAIQ0QEgBRDRASABQYABaiQAC4IBAQJ/IwBBMGsiASQAIAFBGGpBBhDEASIEIAEgAigCABDHASIFEOgBIAUQ0QEgBCABIAIoAgQQxwEiAhDoASACENEBIAQgASADKAIAEMcBIgIQ6AEgAhDRASAEIAEgAygCBBDHASICEOgBIAIQ0QEgACAEEN4DIAQQ0QEgAUEwaiQAC4IEAQF/IwBBoANrIgEkACABQYgDakEAEMQBIQUgAUHwAmogAhDMASECIAVB/ZgBEIkBIAIQaSACENEBIAFB2AJqIAQQzAEhAiAFQaT9ABCJASACEGkgAhDRASABQcACaiADEMYBIQIgBUGb+AAQiQEgAhBpIAIQ0QEgAUGoAmpBABDEASEDIAFBkAJqQQAQxgEhAiADQbMhEIkBIAIQaSACENEBIAFB+AFqQQAQxgEhAiADQcc4EIkBIAIQaSACENEBIAFB4AFqQQAQxgEhAiADQfwgEIkBIAIQaSACENEBIAFByAFqQQAQxgEhAiADQanNABCJASACEGkgAhDRASABQbABakEAEMQBIQIgAUGYAWpBARDNASEEIAJBxfEAEIkBIAQQaSAEENEBIAFBgAFqQQEQzQEhBCACQYkhEIkBIAQQaSAEENEBIAFB6ABqQQEQzQEhBCACQZ6IARCJASAEEGkgBBDRASABQdAAakEAEMYBIQQgAkHxLxCJASAEEGkgBBDRASABQThqQQAQxgEhBCACQfjhABCJASAEEGkgBBDRASABQSBqQQAQzQEhBCACQZYTEIkBIAQQaSAEENEBIAFBCGpBBhDEASIEIAUQ6AEgBCADEOgBIAQgAhDoASAAIAQQ3gMgBBDRASACENEBIAMQ0QEgBRDRASABQaADaiQAC6YBAQJ/IwBBkAFrIgEkACABQfgAakEGEMQBIQUgAUHgAGpBABDEASEEIAFByABqIAIQzAEhAiAEQfn2ARCJASACEGkgAhDRASABQTBqIAMQzgEhAiAEQf32ARCJASACEGkgAhDRASABQQhqIgMgBBDeAyAFIAFBGGogAxDMASICEOgBIAIQ0QEgAxDMFhogACAFEN4DIAQQ0QEgBRDRASABQZABaiQAC0cBAX8jAEEwayIBJAAgAUEYakEAEMQBIQMgASACEM0BIQIgA0GE9wEQiQEgAhBpIAIQ0QEgACADEN4DIAMQ0QEgAUEwaiQACwsAIABBteYBEEcaCwsAIABBteYBEEcaCwsAIABBteYBEEcaCw0AIABBsPgBNgIAIAALCgAgABDtBxCqEwsQACAAQRRqEPAHIAAQzBYaC1cBAn8gABD2BiAAKAIABEAgACgCBCIBIAAoAgAiAkcEQANAIAAQqwEaIAIgAUEEayIBRw0ACwsgACACNgIEIAAQqwEaIAAoAgAhASAAEPgGGiABEKoTCwsUACAAEKsBKAIAIAAoAgBrQdQAbQs1ACAAKAIAGiAAKAIAIAAQ8wdBBXRqGiAAKAIAIAAQ9AdBBXRqGiAAKAIAIAAQ8wdBBXRqGgsTACAAEKsBKAIAIAAoAgBrQQV1CxAAIAAoAgQgACgCAGtBBXULJwAgAEEAOgAUIABBADYCECAAQo+AgIDgxAA3AgggAELsADcCACAACxIAIABBADYCCCAAQgA3AgAgAAsUACAAEDAiAEEANgIUIABCADcCDAsdACAAIAEQuAEiACABKAIUNgIUIAAgASkCDDcCDAsjACAAQTRqEMwWGiAAQRxqEMwWGiAAQRBqEMwWGiAAEMwWGgu5JQEKfwJAAkACQCABQd0vEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCACIAFBGGoiAEGdhwEQRyIDIAFBJGoQ6QwgAxDMFhogABAwIQAgAiABQQhqQbDjABBHIgIgABDnDCACEMwWGiABKAIoIgIgASgCJCAAIAIoAgAoAggRAwAgABDMFhoLDAELIAFB/eYAEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCACIAFBGGoiAEG5hwEQRyIDIAFBJGoQ6QwgAxDMFhogABAwIQAgAiABQQhqQbfjABBHIgIgABDnDCACEMwWGiABKAIoIgIgASgCJCAAIAIoAgAoAgwRAwAgABDMFhoLDAELIAFB688AEKICBEAjAEEgayIBJAAgAUEYaiIDIAAQowMgAxD7B0UEQCABQX82AhQgAiABQQhqQfoeEEciACABQRRqEOkMIAAQzBYaIAEoAhgiACABKAIUIAAoAgAoAhARAAALDAILIAFBwM8AEKICBEAjAEEgayIBJAAgAUEYaiIDIAAQowMgAxD7B0UEQCABQQA2AhQgAiABQQhqQZk/EEciACABQRRqEOkMIAAQzBYaIAEoAhgiACABKAIUIAAoAgAoAhQRAAALDAILIAFB//4AEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCABQQA2AiQgAiABQRhqIgBBpYcBEEciAyABQSRqEOkMIAMQzBYaIAAQMCEAIAIgAUEIakG7hAEQRyICIAAQ5wwgAhDMFhogASgCKCICIAEoAiQgACACKAIAKAIYEQMAIAAQzBYaCwwBCyABQb+AARCiAgRAIwBBMGsiASQAIAFBKGoiAyAAEKMDIAMQ+wdFBEAgAUEYahAwIQAgAiABQQhqIgNBp5gBEEciBCAAEOcMIAQQzBYaIAFBADoAByACIANBj4ABEEciAiABQQdqEOoMIAIQzBYaIAEoAigiAiAAIAEtAAcgAigCACgCJBEDACAAEMwWGgsMAQsgAUHUgAEQogIEQCMAQTBrIgEkACABQShqIgMgABCjAyADEPsHRQRAIAFBGGoQMCEAIAIgAUEIaiIDQaeYARBHIgQgABDnDCAEEMwWGiABQQA6AAcgAiADQY+AARBHIgIgAUEHahDqDCACEMwWGiABKAIoIgIgACABLQAHIAIoAgAoAigRAwAgABDMFhoLDAELIAFBqoABEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCABQRhqEDAhACACIAFBCGoiA0GnmAEQRyIEIAAQ5wwgBBDMFhogAUEAOgAHIAIgA0GPgAEQRyICIAFBB2oQ6gwgAhDMFhogASgCKCICIAAgAS0AByACKAIAKAIsEQMAIAAQzBYaCwwBCyABQc+SARCiAgRAIwBBIGsiASQAIAFBGGoiAyAAEKMDIAMQ+wdFBEAgAUEANgIUIAIgAUEIakGZPxBHIgAgAUEUahDpDCAAEMwWGiABKAIYIgAgASgCFCAAKAIAKAJQEQAACwwCCyABQb+TARCiAgRAIwBBIGsiASQAIAFBGGoiAyAAEKMDIAMQ+wdFBEAgAUEANgIUIAIgAUEIakGZPxBHIgAgAUEUahDpDCAAEMwWGiABKAIYIgAgASgCFCAAKAIAKAJUEQAACwwCCyABQYKTARCiAgRAIwBBIGsiASQAIAFBGGoiAyAAEKMDIAMQ+wdFBEAgAUEANgIUIAIgAUEIakGZPxBHIgAgAUEUahDpDCAAEMwWGiABKAIYIgAgASgCFCAAKAIAKAJYEQAACwwCCyABQdf7ABCiAgRAIwBB4AFrIgEkACABQdgBaiIDIAAQowMgAxD7B0UEQCABQcgBahAwIQAgAiABQRBqIgNBp5gBEEciBCAAEOcMIAQQzBYaIAFBADYCxAEgAiADQdv4ABBHIgQgAUHEAWoQ6QwgBBDMFhogAUEANgLAASACIANB8uEAEEciBCABQcABahDpDCAEEMwWGiABQQA2ArwBIAIgA0GCIRBHIgIgAUG8AWoQ6QwgAhDMFhogA0HnngFBvAFBACABQbXmARBHIgIQ9wMiA0Gj4gEQbCAAEKECQaneARBsIAEoAsQBEOgTQdPdARBsIAEoAsABEOgTQeTIARBsIAEoArwBEOgTQemoARBsGiADEPkDIAIQzBYaIAEoAtgBIgIgACABKALEASABKALAASABKAK8ASACKAIAKAIwEQYAIAAQzBYaCyABQdgBahCYAxogAUHgAWokAA8LIAFB1c8AEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCABQRhqEDAhACACIAFBCGpBp5gBEEciAiAAEOcMIAIQzBYaIAEoAigiAiAAIAIoAgAoAhwRAAAgABDMFhoLDAELIAFBpdAAEKICBEAjAEEwayIBJAAgAUEoaiIDIAAQowMgAxD7B0UEQCABQRhqEDAhACACIAFBCGpBp5gBEEciAiAAEOcMIAIQzBYaIAEoAigiAiAAQQAgAigCACgCIBEDACAAEMwWGgsMAQsgAUGT+wAQogIEQCMAQfAAayIDJAAgA0HoAGoiASAAEKMDAkAgARD7Bw0AIAJBhCsQgwZFDQAgAyACQYQrEIQGIANB2ABqIgEgAxDtBiADEPQFIANByABqEJ0BIQAgAyABEJACNgJAIAMgARCRAjYCOEEAIQIgA0FAayADQThqELQBBEADQCADQUBrIgsoAgAhASADQShqEDAhCSABIANBp5gBEEciBCAJEOcMIAQQzBYaIAEgA0H2+gAQRyIBIANBJGoQ6QwgARDMFhogAxAwIgZBFGoQnQEaIAZCADcCDCAGIAkQWCADIAMoAiQ2AgwCQCAAKAIEIAAQqwEoAgBHBEAjAEEQayIBJAAgASAANgIAIAEgACgCBCIENgIEIAEgBEEgajYCCCAAEKsBIAEoAgQgBhD/ByABIAEoAgRBIGo2AgQgARCGAyABQRBqJAAMAQsjAEEgayIMJAAgABCrASIKAn8gDEEIaiEBAn8gABD0B0EBaiEIIwBBEGsiBSQAIAUgCDYCDCMAQRBrIgckACAAEKsBGiAHQf///z82AgwgB0H/////BzYCCCAHQQxqIAdBCGoQwgEoAgAhBCAHQRBqJAAgBCAITwRAIAAQ8wciByAEQQF2SQRAIAUgB0EBdDYCCCAFQQhqIAVBDGoQ4AIoAgAhBAsgBUEQaiQAIAQMAQsQ7wEACyEFIAAQ9AchCEEAIQQjAEEQayIHJAAgB0EANgIMIAFBDGogChDpAiAFBEAgASgCECAFEIAIIQQLIAEgBDYCACABIAQgCEEFdGoiCDYCCCABIAg2AgQgARCuAiAEIAVBBXRqNgIAIAdBEGokACABKAIICyAGEP8HIAEgASgCCEEgajYCCCAAEPIHIAAQqwEhCCABQQRqIQUgACgCACIKIAAoAgQiB0cEQCAFKAIAIQQDQCAIIARBIGsgB0EgayIHEP8HIAUgBSgCAEEgayIENgIAIAcgCkcNAAsLIAAgBRDBASAAQQRqIAFBCGoQwQEgABCrASABEK4CEMEBIAEgASgCBDYCACAAEPQHGiAAKAIAGiAAKAIAIAAQ8wdBBXRqGiAAKAIAIAAQ8wdBBXRqGiAAKAIAGiABKAIEIgQgASgCCEcEQANAIAEoAhAaIAEgASgCCEEgayIFNgIIIAUQ7wcgASgCCCAERw0ACwsgASgCAARAIAEoAhAaIAEoAgAhBCABEK4CKAIAIAEoAgBrGiAEEKoTCyAMQSBqJAALIAMoAiQhASAGEO8HIAkQzBYaIAEgAmohAiALEO0CIAsgA0E4ahC0AQ0ACwsgAygCaCIBIAAgAiABKAIAKAJMEQMAIAAQ8gcgACgCAARAIAAoAgQiASAAKAIAIgJHBEADQCAAEKsBGiABQSBrIgEQ7wcgASACRw0ACwsgACACNgIEIAAQqwEaIAAoAgAhASAAEPMHGiABEKoTCyADQdgAahDvBgsgA0HoAGoQmAMaIANB8ABqJAAPCyABQc4LEKICBEAjAEHwAGsiASQAIAFB6ABqIgMgABCjAyADEPsHRQRAIAFBADYCZCABQdgAahCRASEAIAJBwQsQgwYEQCABQSBqIgMgAkHBCxCEBiABQQhqEDAhBCADIAFByABqIgZBp5gBEEciBSAEEOcMIAUQzBYaIAMgBkG5CxBHIgYgAUHkAGoQ6QwgBhDMFhogBBDMFhogAxD0BQsgAkGMDBCDBgRAIAFBQGsiAyACQYwMEIQGIAFByABqIgIgAxDtBiABIAIQkAI2AjggASACEJECNgIwIAFBOGogAUEwahC0AQRAA0AgAUE4aiIDKAIAIQQgAUEgahAwIQIgBCABQQhqIgZBp5gBEEciBSACEOcMIAUQzBYaIAFBADYCHCAEIAZBuQsQRyIEIAFBHGoiBRDpDCAEEMwWGiABIAAgBiACIAUQ/AciBBD9ByAEEMwWGiACEMwWGiADEO0CIAMgAUEwahC0AQ0ACwsgAUHIAGoQ7wYgAUFAaxD0BQsgASgCaCICIAEoAmQgACACKAIAKAI8EQMAIAAQ/gcLIAFB6ABqEJgDGiABQfAAaiQADwsgAUG3LBCiAgRAIwBB4ABrIgMkACADQdgAaiIBIAAQowMgARD7B0UEQCADQRhqIgBBKGoQnQEaIABBNGoQnQEaIABBAEEoEPwSIQAgAkGsLBCDBgRAIANBEGoiASACQawsEIQGIAEgA0HdJxBHIgIgAEEMahDpDCACEMwWGiABIANB1icQRyICIABBCGoQ6QwgAhDMFhogASADQdIVEEciAiAAQRBqEOkMIAIQzBYaIAEQ9AULIAMoAlgiASAAIAEoAgAoAkARAAAgAEE0aiIBKAIAGiABKAIAIAEQ8QdB1ABsahogASgCACABKAIEIAEoAgBrQdQAbUHUAGxqGiABKAIAIAEQ8QdB1ABsahogASgCAARAIAEoAgQiAiABKAIAIgRHBEADQCABEKsBIAJB1ABrIgIQuAIgAiAERw0ACwsgASAENgIEIAEQqwEaIAEoAgAhAiABEPEHGiACEKoTCyAAQShqIgAQ8gcgACgCAARAIAAoAgQiASAAKAIAIgJHBEADQCAAEKsBGiACIAFBIGsiAUcNAAsLIAAgAjYCBCAAEKsBGiAAKAIAIQEgABDzBxogARCqEwsLIANB2ABqEJgDGiADQeAAaiQADwsgAUH2EBCiAgRAIwBBEGsiASQAIAFBCGoiAiAAEKMDIAIQ+wdFBEAgASgCCCIAIAAoAgAoAkQRAQALDAMLIAFB6BAQogIEQCMAQRBrIgEkACABQQhqIgIgABCjAyACEPsHRQRAIAEoAggiACAAKAIAKAJIEQEACwwDCyABQen7ABCiAgRAIwBBIGsiASQAIAFBGGoiAyAAEKMDIAMQ+wdFBEAgAUEANgIUIAIgAUEIakHb+AAQRyIAIAFBFGoQ6QwgABDMFhogASgCGCIAIAEoAhQgACgCACgCNBEAAAsMAgsgAUG8+wAQogIEQCMAQRBrIgEkACABQQhqIgIgABCjAyACEPsHRQRAIAEoAggiACAAKAIAKAI4EQEACwwDCyABQfaEARCiAgRAIwBBgAFrIgEkACABQfgAaiIDIAAQowMgAxD7B0UEQCABQegAahAwIQMgAkHdgwEQgwYEQCACIAFB0ABqQd2DARBHIgAgAxDnDCAAEMwWGgsgAUHIAGogAyABQdAAakEAEMQBIgAQ3AMEQCABQThqEDAhBCABQShqEDAhBiAAIAFBGGpBp5gBEEciAkEEIAQQ3wMhBSACEMwWGiAFBEAgAUEYaiICIABBp5gBEIkBEIIBIAYgAhBeIAIQzBYaCyABQRhqEDAhAiAAIAFBCGpB8KQBEEciBUEEIAQQ3wMhByAFEMwWGiAHBEAgAUEIaiIFIABB8KQBEIkBEIIBIAIgBRBeIAUQzBYaCyACEENFBEAgASgCeCIFIAYgAhA4IAIQPSAFKAIAKAJcEQUACyACEMwWGiAGEMwWGiAEEMwWGgsgABDRASADEMwWGgsgAUH4AGoQmAMaIAFBgAFqJAAPCyABQd0VEKICBEAjAEEQayIBJAAgAUEIaiICIAAQowMgAhD7B0UEQCABKAIIIgAgACgCACgCbBEBAAsMAwsgAUGjDRCiAgRAIwBBEGsiASQAIAFBCGoiAiAAEKMDIAIQ+wdFBEAgASgCCCIAIAAoAgAoAnARAQALIAFBCGoQmAMaIAFBEGokAAsPCyABQShqEJgDGiABQTBqJAAPCyABQRhqEJgDGiABQSBqJAAPCyABQQhqEJgDGiABQRBqJAALCgAgABCWA0EBcwsVACAAIAEQuAEiACACKAIANgIMIAAL0wEBBn8jAEEQayIHJAAjAEEgayIDJAAgASADQRxqIAIQ1wMiCCgCACEEIANBADoAGyAERQRAIwBBEGsiBCQAIAEQtwIiBSADQQhqIgYgBUEBEIAIIARBCGogBUEAEL8CEMACIgUoAgBBEGogAhCCCCAFELcCQQE6AAQgBEEQaiQAIAEgAygCHCAIIAYoAgAQugIgBhC7AiEEIANBAToAGyAGEIMICyAHQQhqIgEgA0EIaiAEEKYBIANBG2oQvAIgA0EgaiQAIAAgARC0AiAHQRBqJAALDAAgACAAELUCEIEIC9cBAQN/IAEgAhC4ASIAIAIpAgw3AgwjAEEQayIEJAAgAEEUaiIAQgA3AgAgBEEANgIMIAJBFGoiAhCrARogAEEIaiAEQQhqEPEBIAIQ0wUiAQRAIAAQsAcgAUkEQBDvAQALIAAgABCrASABEN8CIgM2AgAgACADNgIEIAAQqwEgAyABQQJ0ajYCACAAQQAQswcgAigCACEDIAIoAgQhBSMAQRBrIgIkACACIAAgARC2ByEBIAAQqwEgAyAFIAFBBGoQ5gQgARCGAyACQRBqJAALIARBEGokAAsZACABQf///z9LBEAQyAIACyABQQV0EMAWCy0AIAEEQCAAIAEoAgAQgQggACABKAIEEIEIIAAQtwIgAUEQahC4AiABEKoTCwsRACABIAIQuAEgAigCDDYCDAtBAQF/IAAoAgAhASAAQQA2AgAgAQRAIAAQtwIiAC0ABARAIAAoAgAgAUEQahC4AgsgAQRAIAAoAgAaIAEQqhMLCwsrAEG4uQMtAABFBEBBtLkDQeisARDzBUG4uQNBAToAAAsgAEG0uQMQqAYaCwkAQbS5AxD0BQt5AQN/IwBBEGsiAyQAIABBzPgBNgIAIABBBGoiAhDwBkUEQCACQfkxENgGIAJB0awBENgGCyADQQhqIgEQ0QYgAiABEM0GIAEQ9AUgAEEUaiIBEJYDBEAgARDQBgsgARCYAxogAEEIahCPAyACEPQFIANBEGokACAACw0AIAAQhggaIAAQqhMLEAAgACABQQRqQZKJARCCBgviBAINfwF8IwBBEGsiBSQAIAUgAToADyMAQRBrIgwkACMAQRBrIggkACAIEKoIIgkoAgghASMAQRBrIg0kACABENADIgFBzPsBNgIAIAEQrgIhASAFLQAPIQIjAEEgayIGJAAgBiACOgAfIAFB1PoBNgIAIAFBzPgBNgIAIAFBBGoQzAYhCiABQQhqEJEBGiABQRRqEIoDIQsgAUF/NgIcIwBBEGsiByQAIwBBEGsiAiQAIAIQpggiAygCCCEBIwBBEGsiBCQAIAEQ0AMiAUGo+wE2AgAgARCuAhCKAxogBEEQaiQAIAZBEGoiASADEPcFIgQQrgIgBBD4BSADELAGIAJBEGokACAHQRBqJAAgCyABEJcDIAEQmAMaIAZBCGoiBxCECCAHKAIAIQQjAEEQayICJAAjAEEQayIOJAACQEHAuQMtAABBAXEEQEG8uQMoAgAhAwwBC0ECQbz7ARAGIQNBwLkDQQE6AABBvLkDIAM2AgALIA5BEGokACADIARB3awBIAJBBGoCfyMAQRBrIgMkACADIAJBCGoiBDYCDCADQQxqIAYtAB8Q/QUgA0EQaiQAIAQLEA0hDyACIAIoAgQQpgEhAyABIA8QmgYgAxCKBiACQRBqJAAgCiABEM0GIAEQ9AUgBxD0BSMAQRBrIgIkACABQcS5AyACQQhqIAsQ9QUQAzYCACACQRBqJAAgCiABENYGIAEQ9AUgBkEgaiQAIA1BEGokACAFIAkQ9wUiARCuAiABEPgFIAkQsAYgCEEQaiQAIAxBEGokACAAIAUQngMaIAUQmAMaIAVBEGokAAt0AQN/IAAoAgAhBCMAQRBrIgMkACMAQRBrIgUkAAJAQcy5Ay0AAEEBcQRAQci5AygCACEADAELQQJB4PsBEAYhAEHMuQNBAToAAEHIuQMgADYCAAsgBUEQaiQAIAAgBCABIANBCGogAhC1BhAFIANBEGokAAuiAQEEfyMAQYABayIBJAAgAUHoAGpBABDEASEDIAFB0ABqQaD5ARDKASECIANB5+EAEIkBIAIQaSACENEBIAFBOGogABDOASEAIANB3ygQiQEgABBpIAAQ0QEgAUEQaiICIAFBIGoQiwIiACADEI0CIAFBCGoiBBCECCAEQb6rASACEIoIIAQQ9AUgAhDMFhogABCkAhogAxDRASABQYABaiQAC1cBAX8jAEFAaiIEJAAgACABIARBMGpBteYBEEciASAEQRhqIAIQ5wUiAiAEIAMQ5wUiAyAAKAIAKAIQEQYAIAMQ6wUaIAIQ6wUaIAEQzBYaIARBQGskAAv/FQEPfyMAQdACayILJAACQAJAAkACQAJAAkACQCABQf4ATARAAkAgAUHmAGsOAgIEAAsgAUHyAGsOAgQFBgsgAUH/AEYNASABQckBRw0FIAtByABqIAMQ5wUhAyALQTBqIAQQ5wUhBCMAQfABayIBJAAgAUHYAWpBABDEASEFIAFB2ABqIgYQLyABQfAAaiAGEDQiCSACIAUQNRogACAFQcD6ARCJARCLASIINgIcIAZBBhDEASICIAFBQGsiCiAIEM0BIgYQ6AEgBhDRASABQTBqIgYgChCLAiIIIAIQjQIgAEHJASAGIAFBGGogAxDnBSIAIAEgBBDnBSIKEI4IIAoQ6gUaIAAQ6gUaIAYQzBYaIAgQpAIaIAIQ0QEgCRDdAyAFENEBIAFB8AFqJAAMBgsgC0G4AmogAxDnBSEDIAtBoAJqIAQQ5wUhBCMAQZACayIBJAAgAUH4AWpBABDEASEGIAFB6ABqIgUQLyABQZABaiAFEDQiCSACIAYQNRogAUGAAWoiAiAGQcL5ARCJARCCASAFQQYQxAEhBSABQdgAaiIIIAAgAhCPCAJAIAgQQwRAIAUgAUFAa0EAEMQBIgIQ6AEMAQsgBSABQUBrIAFB2ABqEMwBIgIQ6AELIAIQ0QEgAUEwaiICIAFBQGsQiwIiCCAFEI0CIABB5gAgAiABQRhqIAMQ5wUiACABIAQQ5wUiChCOCCAKEOoFGiAAEOoFGiACEMwWGiAIEKQCGiABQdgAahDMFhogBRDRASABQYABahDMFhogCRDdAyAGENEBIAFBkAJqJAAMBQsgC0GIAmogAxDnBSEDIAtB8AFqIAQQ5wUhBCMAQZACayIBJAAgAUH4AWpBABDEASEGIAFB6ABqIgUQLyABQZABaiAFEDQiCSACIAYQNRogBkHJ+QEQiQEQjAEhAiABQYABaiAGQcL5ARCJARCCASAFQQYQxAEhBSACQX9HBEAgACACNgIcIAUgAUHQAGogAkEBRhDNASICEOgBIAIQ0QELIAFBQGsiAiAAIAFBgAFqEI8IAkAgAhBDBEAgBSABQdAAakEAEMQBIgIQ6AEMAQsgBSABQdAAaiABQUBrEMwBIgIQ6AELIAIQ0QEgAUEwaiICIAFB0ABqEIsCIgggBRCNAiAAQf8AIAIgAUEYaiADEOcFIgAgASAEEOcFIgoQjgggChDqBRogABDqBRogAhDMFhogCBCkAhogAUFAaxDMFhogBRDRASABQYABahDMFhogCRDdAyAGENEBIAFBkAJqJAAMBAsgC0HYAWogAxDnBSEDIAtBwAFqIAQQ5wUhBCMAQaACayIBJAAgAUGIAmpBABDEASEGIAFBiAFqIgUQLyABQaABaiAFEDQiCSACIAYQNRogBUEGEMQBIQUgAUH4AGoiAiAGQbD5ARCJARCCASAGQbf5ARCJARCMASEIIAFB6ABqIgogBkHC+QEQiQEQggEgAUHYAGoiDSAAIAoQjwggBSABQUBrIAIQzAEiAhDoASACENEBAkAgDRBDBEAgBSABQUBrQQAQxAEiAhDoAQwBCyAFIAFBQGsgAUHYAGoQzAEiAhDoAQsgAhDRASAFIAFBQGsiCiAIEMYBIgIQ6AEgAhDRASABQTBqIgIgChCLAiIIIAUQjQIgAEHnACACIAFBGGogAxDnBSIAIAEgBBDnBSIKEI4IIAoQ6gUaIAAQ6gUaIAIQzBYaIAgQpAIaIAFB2ABqEMwWGiABQegAahDMFhogAUH4AGoQzBYaIAUQ0QEgCRDdAyAGENEBIAFBoAJqJAAMAwsgC0GoAWogAxDnBSEDIAtBkAFqIAQQ5wUhBCMAQeAAayIKJAACQAJAEJYGQac/EKICBEAgACEBIAIhBSAKQcgAaiADEOcFIQAgCkEwaiAEEOcFIQIjAEHQA2siBiQAIAZBuANqQQAQxAEhDSAGQZgCaiIJEC8gBkHQAmogCRA0Ig8gBSANEDUaIAZBwAJqIgUgDUHC+QEQiQEQggEgBkGwAmoiDCABIAUQjwggDUG3+QEQiQEQjAEhDiAJIA1B2vkBEIkBEM4BIQkgBkGAAmpBBhDEASEIIAZB6AFqQQAQxAEhBSAGQdABaiAJQfD5ARCJARCMARDGASEHIAVB8PkBEIkBIAcQaSAHENEBIAZBuAFqIAlBgPoBEIkBEIwBEMYBIQcgBUGA+gEQiQEgBxBpIAcQ0QEgBkGgAWogCUGI+gEQiQEQjAEQxgEhByAFQYj6ARCJASAHEGkgBxDRASAGQYgBaiAJQZH6ARCJARCMARDGASEHIAVBkfoBEIkBIAcQaSAHENEBIAZB8ABqIAlBoPoBEIkBEIwBEMYBIQcgBUGg+gEQiQEgBxBpIAcQ0QEgBkHYAGogCUGw+gEQiQEQiwEQzQEhByAFQbD6ARCJASAHEGkgBxDRAQJAIAwQQwRAIAggBkFAa0EAEMQBIgcQ6AEMAQsgCCAGQUBrIAZBsAJqEMwBIgcQ6AELIAcQ0QEgCCAGQUBrIgwgDhDGASIHEOgBIAcQ0QEgCCAFEOgBIAZBMGoiByAMEIsCIgwgCBCNAiABQfAAIAcgBkEYaiAAEOcFIgEgBiACEOcFIg4QjgggDhDrBRogARDrBRogBxDMFhogDBCkAhogBRDRASAIENEBIAkQ0QEgBkGwAmoQzBYaIAZBwAJqEMwWGiAPEN0DIA0Q0QEgBkHQA2okAAwBCxCWBkHDoQEQogJFDQEgACEBIAIhBSAKQRhqIAMQ5wUhACAKIAQQ5wUhAiMAQfABayIGJAAgBkHYAWpBABDEASEIIAZB4ABqIg0QLyAGQfAAaiANEDQiEiAFIAgQNRogDSAIQcL5ARCJARCCASAGQdAAaiIOIAEgDRCPCCAIQbf5ARCJARCMASETIAZBQGsiESAIQdL5ARCJARCCASAGQTBqIQcjAEGAAWsiBSQAAkAgBUHgAGogESAFQegAakEAEMQBIg8Q3ANFBEAgB0G15gEQRxoMAQsCQCAPQe04EOkBRQ0AIA9B7TgQiQEQ8gFFDQAgD0HtOBCJARCLASEMCyAFQcgAakEGEMQBIQkgBUEwakEAEMQBIRAgBUEYaiAMEM0BIQwgEEHtOBCJASAMEGkgDBDRAQJAIA4QQwRAIAkgBUEAEMQBIgwQ6AEMAQsgCSAFIA4QzAEiDBDoAQsgDBDRASAJIAUgExDGASIMEOgBIAwQ0QEgCSAQEOgBIAcgCRDeAyAQENEBIAkQ0QELIA8Q0QEgBUGAAWokACABQfIAIAcgBkEYaiAAEOcFIgEgBiACEOcFIgUQjgggBRDrBRogARDrBRogBxDMFhogERDMFhogDhDMFhogDRDMFhogEhDdAyAIENEBIAZB8AFqJAALIAIQ6gUaIAAQ6gUaCyAKQeAAaiQADAILIAtB+ABqIAMQ5wUiAyECIAtB4ABqIAQQ5wUhBCMAQfAAayIBJAACQBCWBkGnPxCiAgRAIABB8QAgAUHgAGpBteYBEEciACABQcgAaiACEOcFIgIgAUEwaiAEEOcFIgUQjgggBRDqBRogAhDqBRogABDMFhoMAQsQlgZBw6EBEKICRQ0AIABB8wAgAUHgAGpBteYBEEciACABQRhqIAIQ5wUiAiABIAQQ5wUiBRCOCCAFEOoFGiACEOoFGiAAEMwWGgsgAUHwAGokAAwBCyAAIAEgAiALQRhqIAMQ5wUiAyALIAQQ5wUiBBCOCAsgBBDrBRogAxDrBRogC0HQAmokAAvWBwEIfyMAQbABayIGJAAgBkGgAWoQMCEKQcvPACEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQeQAaw4xJAADEwQFBgcICyUZFxgPEAwNJQ4WJQkaESUlAQIeJSUSFCUlJSUlJRscHR8gISMiChULQbfPACEFDCMLQbMTIQUMIgtBxRMhBQwhC0H6EyEFDCALQfT+ACEFDB8LQfk4IQUMHgtBiTkhBQwdC0HBPiEFDBwLQZg5IQUMGwtByTkhBQwaC0HQPiEFDBkLQdDRACEFDBgLQYoUIQUMFwtBqhQhBQwWC0HmwQAhBQwVC0HU9QAhBQwUC0Hl9QAhBQwTC0HO0gAhBQwSC0Hl0QAhBQwRC0HIFCEFDBALQfMtIQUMDwsgAUHJAUcND0GSpgEhBQwOC0H6KyEFDA0LQZ31ACEFDAwLQbD1ACEFDAsLQZMiIQUMCgtBvqsBIQUMCQtB7OAAIQUMCAtBheEAIQUMBwtBvCkhBQwGC0HRKSEFDAULQcaGASEFDAQLQYcuIQUMAwtB/foAIQUMAgtBtjkhBQwBC0HnKSEFCyAKIAUQowJBASEHCwJAIAdFBEAgBBDuBUUNASAEQX8gBkGIAWpBnS4QRyIAEJAIIAAQzBYaDAELIAZBiAFqIAMQ5wUhBSAGQfAAaiAEEOcFIQdBOBDAFgJ/IAZBOGogBRCRCCEIIwBBIGsiASQAIAZB0ABqIgNBADYCECABQQhqQSAQwBYgASABQRhqEK0IEMACIgQoAgAQxQgiCUGo/gE2AgAgCUEIaiAIIAEQ0wggAyAEELsCNgIQIAQQrgggAUEgaiQAIAMLAn8gBkEIaiAHEJEIIQkjAEEgayIBJAAgBkEgaiIEQQA2AhAgAUEIakEgEMAWIAEgAUEYahCtCBDAAiILKAIAENIIIgxBzP4BNgIAIAxBCGogCSABENMIIAQgCxC7AjYCECALEK4IIAFBIGokACAECxCfDSEBIAQQ6wUaIAkQkgggAxDrBRogCBCSCCAGIAE2AmwgBiAGQewAahDjBiEBIAAoAgQhBCMAQSBrIgMkACMAQRBrIggkAAJAQdy5Ay0AAEEBcQRAQdi5AygCACEADAELQQRB8P4BEAYhAEHcuQNBAToAAEHYuQMgADYCAAsgCEEQaiQAIAAgBEHlqQEgA0EIaiAKIAIgARC5BxAFIANBIGokACABEPQFIAcQkgggBRCSCAsgChDMFhogBkGwAWokAAtXAQF/IwBBEGsiAyQAIAMgAUEIaiIBIAIQrwM2AgggAyABEJUBNgIAAkAgA0EIaiADEKIBBEAgACADQQhqELIBQQxqELgBGgwBCyAAEDAaCyADQRBqJAALJwEBfyMAQRBrIgMkACADIAE2AgwgACADQQxqIAIQoAggA0EQaiQACwkAIAAgARDnBQsIACAAEOsFGgu6BAELfyMAQbADayIBJAAgAUGYA2pBABDEASEEIAFB0AFqIgYQLyABQbACaiAGEDQiDiACIAQQNRogAUGgAmoiAiAEQbD5ARCJARCCASAEQbf5ARCJARCMASEIIAFBkAJqIgwgBEHC+QEQiQEQggEgAUH4AWpBBhDEASIJIAYgAhDMASIHEOgBIAcQ0QEgAUGoAWoiByAAIAwQjwggCSAGIAcQzAEiChDoASAKENEBIAcQzBYaIAkgBiAIEMYBIggQ6AEgCBDRASAGIAMQ5wUiBkEYaiACELgBGiAHIAUQ5wUiB0EYaiACELgBGiABQYABaiIIIAFBkAFqEIsCIg8gCRCNAiAAQfQAIAgCfyABQUBrIAYQlAghCiMAQSBrIgAkACABQegAaiIDQQA2AhAgAEEIakEwEMAWIAAgAEEYahCtCBDAAiIFKAIAEK8IIgtB8PsBNgIAIAtBCGogCiAAELAIIAMgBRC7AjYCECAFEK4IIABBIGokACADCwJ/IAEgBxCUCCELIwBBIGsiACQAIAFBKGoiBUEANgIQIABBCGpBMBDAFiAAIABBGGoQrQgQwAIiDSgCABC8CCIQQbj8ATYCACAQQQhqIAsgABCwCCAFIA0QuwI2AhAgDRCuCCAAQSBqJAAgBQsQjgggBRDrBRogCxCVCCADEOsFGiAKEJUIIAgQzBYaIA8QpAIaIAcQlQggBhCVCCAJENEBIAwQzBYaIAIQzBYaIA4Q3QMgBBDRASABQbADaiQACxkAIAAgARDnBSIAQRhqIAFBGGoQuAEaIAALEQAgAEEYahDMFhogABDrBRoLBwAgACgCHAtAAQF/IwBBEGsiAiQAIAAoAhQhACACIAJBCGogARChAykCADcDACAAIAIQ0gMgAhCRAxogARCRAxogAkEQaiQACxAAIABBCGogARCtAyACEFgLqgEBBX8jAEEQayICJAAgAiAAQQhqIgAgARCvAzYCCCACIAAQlQE2AgAgAkEIaiACEKIBBEAgAigCCCEDIwBBEGsiASQAIAEgAxCmASgCACEEIwBBEGsiAyQAIAMgBDYCCCAAIANBCGoiBCgCACIFENsDIQYgABC3AhogBBCyARDNAyAFEKoTIANBEGokACABQQhqIAYQpgEoAgAaIAFBEGokAAsgAkEQaiQACwoAIABBCGoQtAMLCQAgARBDQQFzCy8BAn8jAEEQayIAJAAgABCWBhC4ASIBQYbRABCiAiECIAEQzBYaIABBEGokACACC+sDAQl/IwBBwAFrIgMkACADIAA2AqABIANBqAFqIAIQ5wUaIANBiAFqIAIQ5wUhCEE4EMAWAn8gA0HIAGogA0GgAWoiChCeCCEHIwBBIGsiAiQAIANB6ABqIgVBADYCECACQQhqQSgQwBYgAiACQRhqEK0IEMACIgQoAgAQxQgiBkGA/QE2AgAgBkEIaiAHIAIQxgggBSAEELsCNgIQIAQQrgggAkEgaiQAIAULAn8gA0EYaiAIEJEIIQYjAEEgayICJAAgA0EwaiIEQQA2AhAgAkEIakEgEMAWIAIgAkEYahCtCBDAAiIJKAIAENIIIgtByP0BNgIAIAtBCGogBiACENMIIAQgCRC7AjYCECAJEK4IIAJBIGokACAECxCfDSECIAQQ6wUaIAYQkgggBRDrBRogBxCfCCADIAI2AoQBIANBCGpB+isQRyECIAMgA0GEAWoQ4wYhBSAAKAIEIQcjAEEgayIEJAAjAEEQayIGJAACQEHUuQMtAABBAXEEQEHQuQMoAgAhAAwBC0EEQZD+ARAGIQBB1LkDQQE6AABB0LkDIAA2AgALIAZBEGokACAAIAdB5akBIARBCGogAiABIAUQuQcQBSAEQSBqJAAgBRD0BSACEMwWGiAIEJIIIAoQnwggA0HAAWokAAscACAAIAEoAgA2AgAgAEEIaiABQQhqEOcFGiAACwsAIABBCGoQ6wUaCyIAIAAoAhAiAEUEQBDIAgALIAAgASACIAAoAgAoAhgRAwALCQAgACgCABASC14CAn8BfCMAQRBrIgEkACAAKAIAQYD/ASgCACABQQRqEAohAyABIAEoAgQQpgEhAAJ/IAOZRAAAAAAAAOBBYwRAIAOqDAELQYCAgIB4CyECIAAQigYgAUEQaiQAIAILdwECfyMAQRBrIgIkACAAIAJBrTUQRyIDIAEQ5wwgAxDMFhogACACQevhABBHIgMgAUEMahDpDCADEMwWGiAAIAJB8uEAEEciAyABQRBqEOkMIAMQzBYaIAAgAkGCIRBHIgAgAUEUahDpDCAAEMwWGiACQRBqJAALBABBAAsIACAAEIsDGgsnAQF/IwBBEGsiASQAIABBATYCBCAAQRQQwBY2AgggAUEQaiQAIAALDQAgAEGo+wE2AgAgAAsKACAAEKcIEKoTCwsAIAAQrgIQkQMaCycBAX8jAEEQayIBJAAgAEEBNgIEIABBLBDAFjYCCCABQRBqJAAgAAsNACAAQcz7ATYCACAACwoAIAAQqwgQqhMLEgAgAEEBNgIEIAAgATYCACAACyUBAX8gACgCACEBIABBADYCACABBEAgABC3AigCBBogARCqEwsLDQAgAEGU/AE2AgAgAAs9ACABEKwDIQEgAhCsAxojAEEQayICJAAgAiABNgIIIAAgAigCCCIAELkIQRhqIABBGGoQdhogAkEQaiQACxUAIABB8PsBNgIAIABBCGoQlQggAAsKACAAELEIEKoTC0gBAn8jAEEgayIBJAAgAUEIakEwEMAWIAEgAUEYahCtCBDAAiICKAIAIABBCGogARC0CCACELsCIQAgAhCuCCABQSBqJAAgAAscACAAEK8IIgBB8PsBNgIAIABBCGogASACELoICxAAIAEgAEEIaiIAIAAQtAgLCgAgAEEIahCVCAsPACAAQQhqEJUIIAAQqhMLGQAgAEEIaiIAEO4FBEAgACAAQRhqELsICwtUAQF/An8gASgCECICRQRAIABBADYCECAADAELIAEgAkYEQCAAIAA2AhAgASgCECIBIAAgASgCACgCDBEAACAADAELIAAgAjYCECABQQA2AhAgAAsLMQAgARCsAyEBIAIQrAMaIwBBEGsiAiQAIAIgATYCCCAAIAIoAggQlAgaIAJBEGokAAsJACAAIAEQ7wULDQAgAEHc/AE2AgAgAAsVACAAQbj8ATYCACAAQQhqEJUIIAALCgAgABC9CBCqEwtIAQJ/IwBBIGsiASQAIAFBCGpBMBDAFiABIAFBGGoQrQgQwAIiAigCACAAQQhqIAEQwAggAhC7AiEAIAIQrgggAUEgaiQAIAALHAAgABC8CCIAQbj8ATYCACAAQQhqIAEgAhC6CAsQACABIABBCGoiACAAEMAICyQAIAEoAgAhASAAQQhqIgAQ7gUEQCAAIABBGGogASACEMMICwspAQF/IwBBEGsiBCQAIAQgAjYCDCAAIAEgBEEMaiADEMQIIARBEGokAAskACAAKAIQIgBFBEAQyAIACyAAIAEgAiADIAAoAgAoAhgRBQALDQAgAEGk/QE2AgAgAAtDACABEKwDIQEgAhCsAxojAEEQayICJAAgAiABNgIIIAAgAigCCCIBKAIANgIAIABBCGogAUEIahC5CBogAkEQaiQACxUAIABBgP0BNgIAIABBCGoQnwggAAsKACAAEMcIEKoTC0gBAn8jAEEgayIBJAAgAUEIakEoEMAWIAEgAUEYahCtCBDAAiICKAIAIABBCGogARDKCCACELsCIQAgAhCuCCABQSBqJAAgAAscACAAEMUIIgBBgP0BNgIAIABBCGogASACEM8ICxAAIAEgAEEIaiIAIAAQyggLCgAgAEEIahCfCAsPACAAQQhqEJ8IIAAQqhMLvQMBBn8jAEGQAWsiAiQAIABBCGoiBygCABogAkGAAWoiACABEO0GIAJB8ABqEIsDIQUgAiAAEJACNgJoIAIgABCRAjYC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EyAAIgENAAsLCyEBAX8gACgCACEBIABBADYCACABBEAgABC3AiABEOMFCwsmACABBEAgACABKAIAELcKIAAgASgCBBC3CiAAELcCGiABEKoTCwsNACAAQeCHAjYCACAACwoAIAAQuAoQqhMLjgEBBH8gABCuAiICQTBqIgEQqAFFBEAgARCrASEEIAEoAgQiACABKAIAEKcDIAEQqwFBADYCACAAIAFHBEADQCAAIQMgACgCBCEAIANBCGoQ8AoCQCAEIANBARCpAwsgACABRw0ACwsLIAJBLGoQnQMgAkEgahDuCiACQRRqEO4KIAJBEGoQnQMgAhCRAxoLdgEDfyAAELUCIQMgABC3AiEFAkAgAwRAA0AgABCrASACIAMiBEEQaiIDELwKBEAgBCEFIAQoAgAiAw0BDAMLIAAQqwEgAyACELwKRQ0CIARBBGohBSAEKAIEIgMNAAwCCwALIAAQtwIiBCEFCyABIAQ2AgAgBQsJACABIAIQvgoLDwAgACABIAFBBGoQsQIaCw0AIAAoAgAgASgCAEgLDAAgASACKQIANwIACzoBAX8gACgCACEBIABBADYCACABBEAgABC3AiIALQAEBEAgACgCABoLIAEEQCAAKAIAGiABEKoTCwsLXgECfyAAELwIIgNB/IcCNgIAIAEQrAMhASACEKwDIQIjAEEQayIAJAAgACABNgIIIANBBGoiASAAKAIIIgQpAgA3AgAgASAEKAIINgIIIABBEGokACABIAIQxQogAwtPAQJ/IwBBIGsiASQAIABBBGohAiABQQhqQRAQwBYgASABQRhqQQEQsQIQwAIiACgCACACIAEQwQoaIAAQuwIhAiAAENMHIAFBIGokACACCxEAIAEgAEEEaiIAIAAQwQoaC2QBAn8jAEEQayIDJAAgA0EIaiABIAIQxgohASAAKAIEIQIgAEEMaigCACAAKAIIIgBBAXVqIgQgASgCACgCACABKAIEIABBAXEEfyAEKAIAIAJqKAIABSACCxEDACADQRBqJAALHwAjAEEQayIAJAAgACABNgIIIAAoAggaIABBEGokAAsWACAAIAEQpgEiAEEEaiACEKYBGiAACxUAIABBpIgCNgIAIABBBGoQpQkgAAsKACAAEMcKEKoTC04BAn8jAEEgayIBJAAgAEEEaiECIAFBCGpBFBDAFiABIAFB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9BNqIABB8BNqEIULEIYLGiAAQeATakGgFxBHITIgAEEFNgLMEyAAQQo2AsgTIAFBoApqIDIgAEHQE2ogAEHME2ogAEHIE2oQhQsQhgsaIABBuBNqQf45EEchMyAAQQU2AqQTIABBCjYCoBMgAUHACmogMyAAQagTaiAAQaQTaiAAQaATahCFCxCGCxogAEGQE2pBqzYQRyE0IABBBTYC/BIgAEEKNgL4EiABQeAKaiA0IABBgBNqIABB/BJqIABB+BJqEIULEIYLGiAAQegSakGLNhBHITUgAEEFNgLUEiAAQRQ2AtASIAFBgAtqIDUgAEHYEmogAEHUEmogAEHQEmoQhQsQhgsaIABBwBJqQZI3EEchNiAAQQU2AqwSIABBFDYCqBIgAUGgC2ogNiAAQbASaiAAQawSaiAAQagSahCFCxCGCxogAEGYEmpBqDMQRyE3IABBBTYChBIgAEEFNgKAEiABQcALaiA3IABBiBJqIABBhBJqIABBgBJqEIULEIYLGiAAQfARakHIFxBHITggAEEFNgLcESAAQRQ2AtgRIAFB4AtqIDggAEHgEWogAEHcEWogAEHYEWoQhQsQhgsaIABByBFqQaY6EEchOSAAQQU2ArQRIABBFDYCsBEgAUGADGogOSAAQbgRaiAAQbQRaiAAQbARahCFCxCGCxogAEGgEWpBm+kAEEchOiAAQQU2AowRIABBFDYCiBEgAUGgDGogOiAAQZARaiAAQYwRaiAAQYgRahCFCxCGCxogAEH4EGpBzDYQRyE7IABBBTYC5BAgAEEKNgLgECABQcAMaiA7IABB6BBqIABB5BBqIABB4BBqEIULEIYLGiAAQdAQakGbzwAQRyE8IABBBTYCvBAgAEEUNgK4ECABQeAMaiA8IABBwBBqIABBvBBqIABBuBBqEIULEIYLGiAAQagQakHSzQAQRyE9IABBBTYClBAgAEEUNgKQECABQYANaiA9IABBmBBqIABBlBBqIABBkBBqEIULEIYLGiAAQYAQakGKzgAQRyE+IABBBTYC7A8gAEEUNgLoDyABQaANaiA+IABB8A9qIABB7A9qIABB6A9qEIULEIYLGiAAQdgPakHkzgAQRyE/IABBBTYCxA8gAEEUNgLADyABQcANaiA/IABByA9qIABBxA9qIABBwA9qEIULEIYLGiAAQbAPakGxOxBH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FhogYxDMFhogYhDMFhogYRDMFhogYBDMFhogXxDMFhogXhDMFhogXRDMFhogXBDMFhogWxDMFhogWhDMFhogWRDMFhogWBDMFhogVxDMFhogVhDMFhogVRDMFhogVBDMFhogUxDMFhogUhDMFhogURDMFhogUBDMFhogTxDMFhogThDMFhogTRDMFhogTBDMFhogSxDMFhogShDMFhogSRDMFhogSBDMFhogRxDMFhogRhDMFhogRRDMFhogRBDMFhogQxDMFhogQhDMFhogQRDMFhogQBDMFhogPxDMFhogPhDMFhogPRDMFhogPBDMFhogOxDMFhogOhDMFhogORDMFhogOBDMFhogNxDMFhogNhDMFhogNRDMFhogNBDMFhogMxDMFhogMhDMFhogMRDMFhogMBDMFhogLxDMFhogLhDMFhogLRDMFhogLBDMFhogKxDMFhogKhDMFhogKRDMFhogKBDMFhogJxDMFhogJhDMFhogJRDMFhogJBDMFhogIxDMFhogIhDMFhogIRDMFhogIBDMFhogHxDMFhogHhDMFhogHRDMFhogHBDMFhogGxDMFhogGhDMFhogGRDMFhogGBDMFhogFxDMFhogFhDMFhogFRDMFhogFBDMFhogExDMFhogEhDMFhogERDMFhogEBDMFhogDxDMFhogDhDMFhogDRDMFhogDBDMFhogCxDMFhogChDMFhogCRDMFhpB4LkDIAQ2AgBB5LkDQQE6AAALIABB4DpqJAAgBAsYACAAIAE0AgA3AwAgACACKAIANgIIIAALHwAgACABELgBIgAgAikDCDcDGCAAIAIpAwA3AxAgAAseAQF/IABBDGoiASABELUCEI4LIABBBGoQkQMaIAALDQAgABCHCxogABCqEwuyBgEKfyMAQeABayIBJAAgAUE4akGvmgFBJkEAIAFBEGpBteYBEEciBBD3AyICQYMIEGxBoOgAEGxBgwgQbEHZHxBsGiACEPkDIAQQzBYaIABBDGoiBRCKCyABEIQLIgQQoAE2AgAgASAEEJUBNgIwIAEgAUEwahCiAQRAA0AgARCyASEDIAFBEGoQiwsiAiADKQMQNwMAIAEgAygCGDYCGCABQThqIgQgAxC4ASIDIAIpAxg3AyggAyACKQMQNwMgIAMgAikDCDcDGCADIAIpAwA3AxAjAEEQayIH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AWsiAyQAAkAgARBDBEAgA0HIAGpB6qABQfsBQQIgA0EwakG15gEQRyIAEPcDIgFBgwgQbEGHpQEQbEGDCBBsQbQJEGwaIAEQ+QMgABDMFhoMAQsCQCADQcgAaiABIANBMGpBABDEASIEENwDRQRAIANByABqQeqgAUGBAkECIANBIGpBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEGU5gEQbCABEKECGiACEPkDIAAQzBYaDAELIANBGGoiAiAAQRxqEKMDIAIQlgMEQCADKAIYIgIgBCACKAIAKAIIEQAACyADEKoLNgIQAkAgAygCECAEELQLRQRAIANByABqQeqgAUGRAkECIANBIGpBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEH45QEQbCABEKECGiACEPkDIAAQzBYaDAELAkAgA0EgaiADKAIQEK4LELgBIgYQQwRAIANByABqQeqgAUGYAkECIANBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEHm5QEQbCABEKECGiACEPkDIAAQzBYaDAELENwFIQIgA0EQaiEHIwBBQGoiASQAIAFBMGoiBUHcigIgBhDdBSABIAIgBRC5CTYCKCABELoJNgIYIAFBKGogAUEYahC1AUUEQCABIAFBGGogAUEoahClA0EMahClCyIFEKQDNgIQIAEgBRCHAjYCCCABQRBqIAFBCGoQtAEEQANAIAEgAUEQahClAyICEKMDAkAgARCWA0UNACACQQhqEJYDRQ0AIAIoAggiAkUNACACEJYDBEAgAigCACAHIAIoAgAoAgQRAAALCyABEJgDGiABQRBqIgIQpgMgAiABQQhqELQBDQALCyAFEOIFCyABQTBqEMwWGiABQUBrJAAjAEHAAWsiASQAIAFBGGoQqwsiAiAEELQLGiABIABBEGoiABCkAzYCECABIAAQhwI2AgggAUEQaiABQQhqELQBBEADQCABIAFBEGoQpQMQowMgARCWAwRAIAEoAgAiACACEK4LIAIgACgCACgCABEDAAsgARCYAxogAUEQaiIAEKYDIAAgAUEIahC0AQ0ACwsgAhCsCxogAUHAAWokAAsgBhDMFhoLIANBEGoQmQsgA0EYahCYAxoLIAQQ0QELIANB8AFqJAAL5QECBn8BfiMAQRBrIgYkACAGIAE2AgwgAEEQaiIBIQQgARCrASEHIAEQrgIhCCMAQSBrIgEkACABQRhqIgUgBBCjAyAFEJYDBEAgASgCGCEEIAEgACkCCCIKNwMIIAEgCjcDECMAQRBrIgAkACAEIAEoAgwiCUEBdWohBSABKAIIIQQgCUEBcQRAIAUoAgAgBGooAgAhBAsgAEEIaiAHEMIDIQcgACAIEL8DIQggBSAHKAIAIAgoAgAgBigCDCACIAMgBBEIACAAQRBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALIQEBfyAAQRBqIgFBDGoQnQMgAUEIahCYCyABEJEDGiAACwoAIAAQnAsQqhMLJwEBfyMAQRBrIgEkACAAQQE2AgQgAEEkEMAWNgIIIAFBEGokACAACyYAIAAQigMiACACNgIEIAAgATYCACAAIAFBBGpBACABGyABEJwDCw0AIABBjIsCNgIAIAALCgAgABCgCxCqEwsLACAAEK4CEIcLGgsRACAAQQxqIgAgACgCABCkCwsSACABBEAgARCQCxogARCqEwsLvwEBA38jAEEgayICJAAgARCrARogACACQRhqEMgHIQMgAiABEKQDNgIQIAIgARCHAjYCCCACQRBqIAJBCGoQtAEEQANAIAJBEGoiARClAyEEIwBBEGsiACQAIAAgAxCrARCmCyAAKAIAQQhqIAQQpwsgAyAAKAIAIAAoAgAQ7AMgAxCrASIEIAQoAgBBAWo2AgAgABC7AhogABDSBSAAQRBqJAAgARCmAyABIAJBCGoQtAENAAsLIAJBIGokACADCzQBAn8jAEEQayICJABBJBDAFiIDQQA2AgAgACADIAJBCGogAUEBELECEMACGiACQRBqJAALJAAgACABEKEDIgBBCGogAUEIahCaAxogAEEQaiABQRBqEPYDCxkAIABBADYCACAAQQRqEDAaIABBEGoQMBoLFAAgAEEQahDMFhogAEEEahDMFhoLMQECfyMAQRBrIgEkAEGoARDAFiIAEKsLGiABQQhqIAAQmwMoAgAhACABQRBqJAAgAAtiACAAQQA2AgAgAEEEahAwGiAAQRBqEDAaIABBHGoQMBogAEEoahAwGiAAQTRqEDAaIABBQGsQMBogAEHMAGoQMBogAEHYAGoQqAsgAEH0AGoQqAsgAEGQAWpBABDEARogAAtfACAAQZABahDRASAAQfQAahCpCyAAQdgAahCpCyAAQcwAahDMFhogAEFAaxDMFhogAEE0ahDMFhogAEEoahDMFhogAEEcahDMFhogAEEQahDMFhogAEEEahDMFhogAAsLACAAQTRqIAEQXgsWAQF/IABBNGoiASAAQfgAaiABED0bCxYBAX8gAEFAayIBIABBhAFqIAEQPRsLLQEBfyMAQSBrIgIkACAAQZABaiACQQhqIAEQ0AEiABBpIAAQ0QEgAkEgaiQACwgAIABBkAFqCwgAIABB3ABqCwgAIABB6ABqC7wGAQR/IwBB4AFrIgIkAAJ/AkAgARDgAUUEQCABEEYNAQsgAkE4akGcmQFByAFBAiACQShqQbXmARBHIgQQ9wMiA0HXwgEQbCEFIAJBGGoiACABEPYBIAUgABChAhogABDMFhogAxD5AyAEEMwWGkEADAELAkAgAUGQmAEQ6QEEQCABQZCYARCKARBGDQELIAJBOGpBnJkBQc8BQQIgAkEoakG15gEQRyIEEPcDIgNB4MQBEGwhBSACQRhqIgAgARD2ASAFIAAQoQIaIAAQzBYaIAMQ+QMgBBDMFhpBAAwBCwJAIAFBzaUBEOkBBEAgAUHNpQEQigEQ4QFFDQELIAJBOGpBnJkBQdYBQQIgAkEoakG15gEQRyIEEPcDIgNBscUBEGwhBSACQRhqIgAgARD2ASAFIAAQoQIaIAAQzBYaIAMQ+QMgBBDMFhpBAAwBCwJAIAFBkJgBEIoBQdLJABDpAQRAIAFBkJgBEIoBQdLJABCKARDeAQ0BCyACQThqQZyZAUHdAUECIAJBKGpBteYBEEciBBD3AyIDQajDARBsIQUgAkEYaiIAIAEQ9gEgBSAAEKECGiAAEMwWGiADEPkDIAQQzBYaQQAMAQsCQCABQZCYARCKAUH8igEQ6QEEQCABQZCYARCKAUH8igEQigEQ8wENAQsgAkE4akGcmQFB5AFBAiACQShqQbXmARBHIgQQ9wMiA0GExAEQbCEFIAJBGGoiACABEPYBIAUgABChAhogABDMFhogAxD5AyAEEMwWGkEADAELIAJBKGogAUGQmAEQigFB/IoBEIoBEIIBIAJBGGpBteYBEEchBAJAIAFBkJgBEIoBQcaYARDpAUUNACABQZCYARCKAUHGmAEQigEQ8wFFDQAgAkE4aiIDIAFBkJgBEIoBQcaYARCKARCCASAEIAMQXiADEMwWGgsgAUGQmAEQigFB0skAEIoBEIwBIQMgAkE4aiABQc2lARCKARDOASEBIAAgAzYCdCAAQfgAaiACQShqIgMQWCAAQYQBaiAEEFggAEGQAWogAiABEM4BIgAQaSAAENEBIAEQ0QEgBBDMFhogAxDMFhpBAQshACACQeABaiQAIAAL+QIBBn8jAEEQayIGJAAgBiAGQQhqIAMQngMpAgA3AwAjAEFAaiIFJAAgBUEwaiIHQQEgARC2CyAFIAAgBxC3CyIAEKQDNgIoIAUgABCHAjYCAAJAIAVBKGogBRC0AQRAA0AgBSAGEKMDIAVBIGoiASAFQShqEKUDEKMDIAUgARCWASEHIAEQmAMaIAUQmAMaIAcNAiAFQShqIgEQpgMgBSAAEIcCNgIAIAEgBRC0AQ0ACwsgBRDfBRojAEEQayIJJAAjAEEQayIBJAAgARDACyIHKAIIIQgjAEEQayIKJAAgCBDQAyIIQciLAjYCACAIEL8FIAQQuQgaIApBEGokACAFQSBqIgQgBxD3BSIIEL8FIAgQ+AUgBxCwBiABQRBqJAAgCUEQaiQAIAVBCGogBBCXAyAEEJgDGiAFIAYQ0gMgBUEQaiACEPYDIAAgBRC4CyAFEOAFCyAFQTBqEMwWGiAGEJEDGiAFQUBrJAAgAxCRAxogBkEQaiQACz8BAX8jAEEgayIDJAAgAyABENsWIANBEGoiASADQZKnARBxIAAgASACEN4FIAEQzBYaIAMQzBYaIANBIGokAAs9AQJ/IwBBIGsiAiQAIAIgARCsAzYCECACQRhqIgMgACABIAJBEGoQvgsgAxClAyEAIAJBIGokACAAQQxqC1YBAX8jAEEQayICJAAgAiAAEKsBEKYLIAIoAgBBCGogARCnCyAAIAIoAgAiASABEOwDIAAQqwEiACAAKAIAQQFqNgIAIAIQuwIaIAIQ0gUgAkEQaiQACzcBAX8jAEEQayIDJAAgAyADQQhqIAIQngMpAgA3AwAgAEEBIAEgAxC6CyACEJEDGiADQRBqJAALwgIBAn8jAEFAaiIEJAAgBEE4aiIFIAMQowMgBRCWAwRAIARBKGoiBSABIAIQtgsgBCAAIAUQuQk2AiAgBBC6CTYCEAJAIARBIGogBEEQahC1AQ0AIAQgBEEgahClA0EMaiIBEKQDNgIYIAQgARCHAjYCECAEQRhqIARBEGoQtAEEQANAIARBEGoiAiAEQRhqEKUDEKMDAkAgAhCWA0UEQCAEIAEgBEEIaiAEQRhqEMkCKAIAELsLNgIYDAELIAQoAhAgBCgCOEcEQCAEQRhqEKYDDAELIAQgASAEIARBGGoQyQIoAgAQuws2AhgLIARBEGoiAhCYAxogBCABEIcCNgIQIARBGGogAhC0AQ0ACwsgARCoAUUNACAAIAQoAiAQvAsLIARBKGoQzBYaCyAEQThqEJgDGiADEJEDGiAEQUBrJAALWAECfyMAQRBrIgIkACAAEKsBGiABKAIEIQMgASABEKcDIAAQqwEiACAAKAIAQQFrNgIAIAFBCGoQ4AUgARCqEyACQQhqIAMQpgEoAgAhACACQRBqJAAgAAt0AQR/IwBBIGsiAiQAIAIgATYCECACQQhqIAJBEGoQyQIoAgAhAyMAQSBrIgEkACABQRhqIAMQpgEiBBDsCiABQQhqIgUgACADEO0KIAUQvQsgBCgCACEAIAFBIGokACACQRhqIAAQpgEoAgAaIAJBIGokAAtBAQF/IAAoAgAhASAAQQA2AgAgAQRAIAAQtwIiAC0ABARAIAAoAgAgAUEIahDhBQsgAQRAIAAoAgAaIAEQqhMLCwvDBAIFfwF9IwBBIGsiBCQAIAEQrgIaIAIQ2wohByABELUCIQYgBEEAOgAfAkACQCAGRQ0AIAEgByAGENcKIggQwAcoAgAiBUUNAANAIAUoAgAiBUUNASAHIAUoAgRHBEAgBSgCBCAGENcKIAhHDQILIAEQvwUgBUEIaiACENgKRQ0ACwwBCyMAQRBrIgUkACABEKsBIgIgBEEQaiACQQEQgAggBUEIaiACQQAQvwIQwAIiAigCAEEIaiADEL8LIAIQtwJBAToABCACKAIAIAc2AgQgAigCAEEANgIAIAVBEGokACABEK4CKAIAIQIgARC/BSEDAkAgBgRAIAJBAWqzIAMqAgAgBrOUXkUNAQsgBCAGENkKQQFzIAZBAXRyNgIMIAQCfyABEK4CKAIAQQFqsyABEL8FKgIAlY0iCUMAAIBPXSAJQwAAAABgcQRAIAmpDAELQQALNgIIIAEgBEEMaiAEQQhqEOACKAIAENoKIAcgARC1AiIGENcKIQgLAkAgASAIEMAHKAIAIgJFBEAgBCgCECABQQhqIgIoAgA2AgAgASAEKAIQNgIIIAEgCBDAByACNgIAIAQoAhAoAgBFDQEgBCgCECECIAEgBCgCECgCACgCBCAGENcKEMAHIAI2AgAMAQsgBCgCECACKAIANgIAIAIgBCgCEDYCAAsgBEEQaiICELsCIQUgARCuAiIBIAEoAgBBAWo2AgAgBEEBOgAfIAIQvQsLIAAgBEEQaiAFEKYBIARBH2oQvAIgBEEgaiQACzEAIAIoAgAhAiMAQRBrIgAkACAAIAI2AgggASAAKAIIELgBQQxqEIsDGiAAQRBqJAALJwEBfyMAQRBrIgEkACAAQQE2AgQgAEEoEMAWNgIIIAFBEGokACAACw0AIABByIsCNgIAIAALCgAgABDBCxCqEwsLACAAEL8FEOsFGgsLACAAIAEgAhCgCAvyAQEGfyMAQRBrIgQkACMAQRBrIgUkACMAQRBrIgIkACMAQRBrIgEkACACQQE2AgQgAkEoEMAWNgIIIAFBEGokACACKAIIIQEjAEEQayIDJAAgARDQAyIBQfyMAjYCACABEK4CIgFBBGoQigMaIAEQxgsiAUEMahDHCyEGIAFB5IsCNgIAIAZBjIwCNgIAIAFBEGoQigMaIAFBADYCGCADQRBqJAAgBEEIaiIBIAIQ9wUiAxCuAiADEJ8LIAIoAggiAwRAIAIoAgQaIAMQqhMLIAJBEGokACAFQRBqJAAgACABEJ4DGiABEJgDGiAEQRBqJAALDQAgAEGYjQI2AgAgAAsNACAAQbCNAjYCACAACygAIABBjIwCNgIMIABB5IsCNgIAIABBEGoQkQMaIABBBGoQkQMaIAALCgAgAEEMaxDICwsNACAAEMgLGiAAEKoTCwoAIABBDGsQygsLfwEEfyAAIAE2AhgjAEEgayIBJAAgAUEYaiIDIAAoAhgiAiACKAIAKAIQEQAAIAMoAgAhAiABQQhqIgQgAEEEahCgAyABQRBqIAQQzQshACACKAIAKAIQIQUgASAAKQIANwMAIAIgASAFEQAAIAQQmAMaIAMQmAMaIAFBIGokAAswAQF/IAAgASgCACICQQxqQQAgAhs2AgAgACABKAIEIgE2AgQgAQRAIAEQogMLIAALoAEBBX8jAEEQayIBJAAgAUEIahCKAyICIABBEGoQnwMgAhCRAxogAUEQaiQAIwBBIGsiASQAIAFBGGoiAiAAKAIYIgMgAygCACgCEBEAACACKAIAIQMgAUEIaiIEIABBBGoQoAMgAUEQaiAEEM0LIQAgAygCACgCFCEFIAEgACkCADcDACADIAEgBREAACAEEJgDGiACEJgDGiABQSBqJAALTAECfyMAQRBrIgQkACAEQQhqIgUgAEEQahCjAyAFEJYDBEAgBCgCCCIAIAEgAiADIAAoAgAoAgARBQALIARBCGoQmAMaIARBEGokAAsQACAAQQxrIAEgAiADEM8LC0gBAn8jAEEQayICJAAgAkEIaiIDIABBEGoQowMgAxCWAwRAIAIoAggiACABIAAoAgAoAgQRAAALIAJBCGoQmAMaIAJBEGokAAsMACAAQQxrIAEQ0QsLSAECfyMAQRBrIgIkACACQQhqIgMgAEEQahCjAyADEJYDBEAgAigCCCIAIAEgACgCACgCCBEAAAsgAkEIahCYAxogAkEQaiQACwwAIABBDGsgARDTCwtKAQJ/IwBBEGsiAyQAIANBCGoiBCAAQRBqEKMDIAQQlgMEQCADKAIIIgAgASACIAAoAgAoAgwRAwALIANBCGoQmAMaIANBEGokAAsOACAAQQxrIAEgAhDVCwsNACAAQfyMAjYCACAACwoAIAAQ1wsQqhMLFQAgABCuAiIAIAAoAgAoAggRAgAaC+sCAQt/IwBBEGsiAyQAIwBBIGsiAiQAQQwQwBYhBiACIAJBEGogABCaAykCADcDCCMAQSBrIgEkACAGQbCPAjYCACAGQaCOAjYCACAGQQRqEIoDIQogAUEYaiEIIAJBCGoiCygCACEEIAFBCGoiCUHkyQAQRyEHIwBBEGsiBSQAIAQgBxDkCyAFIARBFGoiBCAHEK8DNgIIIAUgBBCVATYCAAJAIAVBCGogBRC1AQRAIAgQlAMMAQsgCCAEIAcQ5QsQmgMaCyAFQRBqJAAgBxDMFhogCSAIEN0LIAkQlgMEQCAKIAFBCGoQ0gMLIAFBCGoQmAMaIAFBGGoQmAMaIAsQmAMaIAFBIGokACACQRhqIAYQmwMoAgAhASACQSBqJAAgAyABNgIAIwBBEGsiASQAIAEgAxC7AjYCDCADQQhqIAFBDGoQyQIhAiABQRBqJAAgAxCdAyAAEJgDGiACKAIAIQAgA0EQaiQAIAALBgBB8rkDCxQAIAAEQCAAIAAoAgAoAgQRAQALCw8AIAAgASABKAIAENEDGgsWACAAQaCOAjYCACAAQQRqEJEDGiAACw0AIAAQ3gsaIAAQqhMLrAIBB38jAEHwAGsiBCQAIARB6ABqIgUgAEEEahCjAyAFEJYDBEAgBEHQAGoiBSACEOwMIARBOGoiByADEO0MIAQoAmghAyAEQSBqIAUQ5wUhCCAEQQhqIAcQ5wUhCSMAQfABayIAJAAgAEHIAGoiAkH8nAFBJ0EAIABBOGpBteYBEEciBhD3AyIKQcfIARBsIAEQ5hNB6agBEGwaIAoQ+QMgBhDMFhogAiADKAIYIgMgAygCACgCEBEAACACKAIAIgMgASAAQSBqIAgQ5wUiASAAQQhqIAkQ5wUiBiADKAIAKALMAREFACAGEOsFGiABEOsFGiACEJgDGiAAQfABaiQAIAkQ6wUaIAgQ6wUaIAcQ6wUaIAUQ6wUaCyAEQegAahCYAxogBEHwAGokAAsDAAELTwEBfyAAQciQAjYCACAAQRRqIgEgARC1AhDnCyABEKsBQQA2AgAgASABELcCNgIAIAEQtwJBADYCACABIAEQtQIQ5wsgAEEEahCRAxogAAsNACAAEOILGiAAEKoTC8oCAQV/IwBBwAFrIgIkACACIABBFGoiBiABEK8DNgIQIAIgBhCVATYCACACQRBqIAIQogFFBEAgAkG4AWohBSAAKAIMIQQjAEEQayIDJAAgAyAEEOwLIAEQrwM2AgggAyAEEOwLEJUBNgIAAkAgA0EIaiADELUBBEAgBRCUAwwBCyAFIAQQ7AsgARDtCygCABEBAAsgA0EQaiQAAkAgBRCWA0UEQCACQRBqQcKZAUE6QQEgAkG15gEQRyIAEPcDIgNBvuMBEGwgARChAhogAxD5AyAAEMwWGgwBCyACQRBqQcKZAUE9QQAgAkG15gEQRyIDEPcDIgRBr9wBEGwgARChAhogBBD5AyADEMwWGiAGIAEQ5QsgAkG4AWoiARDsCCABKAIAIgEgACgCECABKAIAKAIAEQAACyACQbgBahCYAxoLIAJBwAFqJAALoAIBBn8jAEEgayIEJAAgBCABEKwDNgIQIARBEGohBiMAQSBrIgIkACAAIAJBHGogARDXAyIHKAIAIQEgAkEAOgAbIAFFBEAjAEEQayIBJAAgABC3AiIFIAJBCGoiA0EkEMAWIAFBCGogBUEAEL8CEMACIgUoAgBBEGogBhDhCiAFELcCQQE6AAQgAUEQaiQAIAAgAigCHCAHIAMoAgAQugIgAxC7AiEBIAJBAToAGyADKAIAIQAgA0EANgIAIAAEQCADELcCIgMtAAQEQCADKAIAGiAAQRBqELQJCyAABEAgAygCABogABCqEwsLCyAEQRhqIgAgAkEIaiABEKYBIAJBG2oQvAIgAkEgaiQAIAAQsgEhACAEQSBqJAAgAEEMagu8AgEDfyMAQTBrIgQkACMAQSBrIgMkACADQRBqIgUgASACELYLEPALIANBlLoDIAUQrwM2AggQ8AsgA0GUugMQlQE2AgAgA0EIaiADEKIBIQEQ8AsgBUH4uQMgARsQ8QshASAFEMwWGiADQSBqJAAgBEEgaiABEM8BIQIgARDwASEDIAEQpwEhBSMAQRBrIgEkACABIAU2AgAgASADNgIIIAIQpwEhBSABQQhqIAEQtAEEQANAIAIgBSABQQhqIgMQsgEQ6AsgAxCzASADIAEQtAENAAsLIAFBEGokACAEIAIQoAE2AhggBCACEJUBNgIQIARBGGogBEEQahC0AQRAA0AgACAEIARBGGoiARCyARC4ASIDEOQLIAMQzBYaIAEQswEgASAEQRBqELQBDQALCyACEJoBIARBMGokAAsuACABBEAgACABKAIAEOcLIAAgASgCBBDnCyAAELcCGiABQRBqELQJIAEQqhMLC+kDAQV/IwBBEGsiByQAIwBBIGsiBCQAIARBHGohBiAEQRhqIQUjAEEgayIDJAAgAyABNgIYAkACQAJAAkACQCADQRhqIANBEGogABCnARCmARCWAUUEQCAAEKsBIAIgA0EYahCyARC9AkUNAQsgAyADKAIYNgIQIANBEGogA0EIaiAAEPABEKYBEJYBRQRAIAAQqwEgA0EQahDfARCyASACEL0CRQ0CCyADKAIYIgUoAgBFDQMgBiADKAIQIgE2AgAgAUEEaiEFDAQLIAAQqwEgA0EYahCyASACEL0CRQ0BIAMgAygCGBD+AjYCECADQRBqIANBCGogABCnARCmARCWAUUEQCAAEKsBIAIgA0EQahCyARC9AkUNAQsgAygCGCgCBEUEQCAGIAMoAhgiATYCACABQQRqIQUMBAsgAygCECEFDAILIAAgBiACELkCIQUMAgsgBiADKAIYIgE2AgAgBSABNgIADAELIAYgBTYCAAsgA0EgaiQAIAUoAgAhASAEQQA6ABcgAUUEQCAEQQhqIgMgACACEOkLIAAgBCgCHCAFIAMoAgAQugIgAxC7AiEBIARBAToAFyADEMICCyAHQQhqIARBCGogARCmASAEQRdqELwCIARBIGokACAHKAIIGiAHQRBqJAALSAEBfyMAQRBrIgMkACABELcCIgEgAEEBEMcCIANBCGogAUEAEL8CEMACIgAoAgBBEGogAhCIAyAAELcCQQE6AAQgA0EQaiQACwoAQfi5AxDMFhoLEQAgABDsCyABEO0LIAI2AgALiAMBCX8jAEEQayIFJAAgBSAANgIMQZC6Ay0AAEUEQEGEugMQkQEaQZC6A0EBOgAACyMAQSBrIgQkACAEIAVBDGoiARCsAzYCECMAQSBrIgAkAEGEugMgAEEcaiABEPcLIgcoAgAhAyAAQQA6ABsgA0UEQCMAQRBrIgMkACAAQQhqIgFBhLoDELcCIgJBARCACCADQQhqIAJBABC/AhDAAiIIKAIAQRBqIQYgBCgCECEJIwBBEGsiAiQAIAIgCTYCCCAGIAIoAggoAgA2AgAgBkEEahCRARogAkEQaiQAIAgQtwJBAToABCADQRBqJABBhLoDIAAoAhwgByABKAIAELoCIAEQuwIhAyAAQQE6ABsgASgCACECIAFBADYCACACBEAgARC3AiIBLQAEBEAgASgCABogAkEQahD1CwsgAgRAIAEoAgAaIAIQqhMLCwsgBEEYaiIBIABBCGogAxCmASAAQRtqELwCIABBIGokACABELIBIQAgBEEgaiQAIAVBEGokACAAQQRqCz0BAn8jAEEgayICJAAgAiABEKwDNgIQIAJBGGoiAyAAIAEgAkEQahDvCyADELIBIQAgAkEgaiQAIABBDGoLEABBhLoDQYS6AxC1AhD0CwvfAQEGfyMAQSBrIgQkACABIARBHGogAhDXAyIHKAIAIQIgBEEAOgAbIAJFBEAjAEEQayIGJAAgBEEIaiIFIAEQtwIiAkEBEIAIIAZBCGogAkEAEL8CEMACIggoAgBBEGohCSADKAIAIQMjAEEQayICJAAgAiADNgIIIAkgAigCCBC4AUEANgIMIAJBEGokACAIELcCQQE6AAQgBkEQaiQAIAEgBCgCHCAHIAUoAgAQugIgBRC7AiECIARBAToAGyAFEIMICyAAIARBCGogAhCmASAEQRtqELwCIARBIGokAAseAEGgugMtAABFBEBBlLoDEJEBGkGgugNBAToAAAsLywIBCH8jAEEgayIEJAAgBCAAEKwDNgIQIwBBIGsiAiQAQZS6AyACQRxqIAAQ1wMiBSgCACEAIAJBADoAGyAARQRAIwBBEGsiAyQAQZS6AxC3AiEAIAJBCGoiAUEoEMAWIANBCGogAEEAEL8CEMACIgYoAgBBEGohByAEKAIQIQgjAEEQayIAJAAgACAINgIIIAcgACgCCBC4AUEMahCRARogAEEQaiQAIAYQtwJBAToABCADQRBqJABBlLoDIAIoAhwgBSABKAIAELoCIAEQuwIhACACQQE6ABsgASgCACEDIAFBADYCACADBEAgARC3AiIBLQAEBEAgASgCABogA0EQahD5CwsgAwRAIAEoAgAaIAMQqhMLCwsgBEEYaiIBIAJBCGogABCmASACQRtqELwCIAJBIGokACABELIBIQAgBEEgaiQAIABBDGoLlgEBBX8jAEEQayIGJAAjAEEgayIDJAAgASADQRxqIAIQuQIiBygCACEEIANBADoAGyAERQRAIANBCGoiBSABIAIQ6QsgASADKAIcIAcgBSgCABC6AiAFELsCIQQgA0EBOgAbIAUQwgILIAZBCGoiASADQQhqIAQQpgEgA0EbahC8AiADQSBqJAAgACABELQCIAZBEGokAAsQAEGUugNBlLoDELUCEPoLCy4AIAEEQCAAIAEoAgAQ9AsgACABKAIEEPQLIAAQtwIaIAFBEGoQ9QsgARCqEwsLEQAgAEEEaiIAIAAQtQIQ9gsLLQAgAQRAIAAgASgCABD2CyAAIAEoAgQQ9gsgABC3AiABQRBqELgCIAEQqhMLC3YBA38gABC1AiEDIAAQtwIhBQJAIAMEQANAIAAQqwEgAiADIgRBEGoiAxD4CwRAIAQhBSAEKAIAIgMNAQwDCyAAEKsBIAMgAhD4C0UNAiAEQQRqIQUgBCgCBCIDDQAMAgsACyAAELcCIgQhBQsgASAENgIAIAULCQAgASACEMYCCxMAAkAgAEEMahCaAQsgABDMFhoLLgAgAQRAIAAgASgCABD6CyAAIAEoAgQQ+gsgABC3AhogAUEQahD5CyABEKoTCwu1DAEQfyMAQRBrIgwkACMAQRBrIg0kACMAQRBrIgokACMAQRBrIgIkACAKQQE2AgQgCkHAABDAFjYCCCACQRBqJAAgCigCCCECIwBBEGsiDiQAIAIQ0AMiAkHclgI2AgAgAhCuAiECIwBBgANrIgEkACACQQRqEIoDGiACEMYLIgJB/JACNgIAIAJBDGoQigMaIAJBADYCFCACQRhqEJEBIQcgAkEkahCRASELIAJBADYCMCABQQA2AvQCIAFBqQU2AvACIAFB0ABqQYcqIAFB8AJqEP4LIQkgAUEANgLsAiABQaoFNgLoAiAJQRRqQasqIAFB6AJqEP4LGiABQQI2AvwCIAEgCTYC+AIgASABKQP4AjcDCCABQQhqIgIoAgAhBSACEIcMIQgjAEEgayIGJAAgBxCrASgCAARAAkAgBkEQaiAHEM0HIgMoAghFIAUgCEZyDQADQCAGQQhqIAcgBSADKAIIEKIMIAYtAAwEQCADEM4HCyAFQRRqIQUgAygCCEUNASAFIAhHDQALCyADKAIAIAMoAggQnwwgAygCBCIEBEAgBCgCCCICBEADQCACIgQoAggiAg0ACyADIAQ2AgQLIAMoAgAgBBCfDAsLIAUgCEcEQANAIAZBEGogByAFEKMMIAVBFGoiBSAIRw0ACwsgBkEgaiQAIAlBKGohBANAIARBFGsQzBYiBCAJRw0ACyABQQE2AvACIAFB0ABqIAFB8AJqQZLaABCADCEDIAFBAjYC6AIgA0EQaiABQegCakG/jwEQgAwaIAFBAzYCTCADQSBqIAFBzABqQeWSARCADBogAUEENgJIIANBMGogAUHIAGpBlpEBEIAMGiABQQU2AkQgA0FAayABQcQAakGaDBCADBogAUENNgJAIANB0ABqIAFBQGtB8pUBEIAMGiABQQc2AjwgA0HgAGogAUE8akGClAEQgAwaIAFBCDYCOCADQfAAaiABQThqQZPbABCADBogAUEJNgI0IANBgAFqIAFBNGpBndoAEIAMGiABQQo2AjAgA0GQAWogAUEwakG12gAQgAwaIAFBCzYCLCADQaABaiABQSxqQanaABCADBogAUEMNgIoIANBsAFqIAFBKGpBoNsAEIAMGiABQQY2AiQgA0HAAWogAUEkakH12gAQgAwaIAFBEDYCICADQdABaiABQSBqQeEyEIAMGiABQRE2AhwgA0HgAWogAUEcakHF2gAQgAwaIAFBDjYCGCADQfABaiABQRhq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DkEQaiQAA0AgAkEQaxCBDCICIApHDQALIANBATYCoAQgA0HIBGogA0GgBGpBjzgQgAwhBCADQQM2AoAEIARBEGogA0GABGpBq/8AEIAMGiADQQI2ArQEIAMgBDYCsAQgAyADKQOwBDcDECAEQSBqIQIgA0G4BGogA0EQahDQDCELA0AgAkEQaxCBDCICIARHDQALIANBATYCgAQgA0HIBGogA0GABGpB5zgQgAwhBCADQQI2ApAEIARBEGogA0GQBGpBuz4QgAwaIANBAjYCnAQgAyAENgKYBCADIAMpA5gENwMIIARBIGohAiADQaAEaiADQQhqENAMIQcDQCACQRBrEIEMIgIgBEcNAAsgA0ECNgKQBCADQcgEaiADQZAEakG1hgEQgAwhBCADQQE2AvADIARBEGogA0HwA2pB9DMQgAwaIANBAjYC/AMgAyAENgL4AyADIAMpA/gDNwMAIARBIGohAiADQYAEaiADENAMIQkDQCACQRBrEIEMIgIgBEcNAAsgA0HIBGpBABDEASEEIANB0ANqIAUoAgAQxwEhAiAEQaXJABCJASACEGkgAhDRASADQbgDaiAFQQRqEMwBIQIgBEGVyQAQiQEgAhBpIAIQ0QEgA0GgA2ogBUEQahDMASECIARBlPwAEIkBIAIQaSACENEBIANBiANqIAVBHGoQzAEhAiAEQYrJABCJASACEGkgAhDRASADQfACaiAFQShqEMwBIQIgBEHB/AAQiQEgAhBpIAIQ0QEgA0HYAmogBUE0ahDMASECIARBluAAEIkBIAIQaSACENEBIwBBIGsiBiQAIAYgBUFAayIKEKwDNgIQIAZBEGohDiMAQSBrIgIkACAIIAJBHGogChC7CiIPKAIAIQogAkEAOgAbIApFBEAgAkEIaiIMIAggDhDDDCAIIAIoAhwgDyAMKAIAELoCIAwQuwIhCiACQQE6ABsgDBClDAsgBkEYaiIMIAJBCGogChCmASACQRtqELwCIAJBIGokACAMELIBIQIgBkEgaiQAIANBwAJqIAJBBGoQzAEhAiAEQe2KARCJASACEGkgAhDRASADQagCaiAFKAJEEMcBIQIgBEGLOBCJASACEGkgAhDRASADQZACaiALIAVByABqEJEMEMwBIQIgBEGP9wAQiQEgAhBpIAIQ0QEgA0H4AWogByAFQcwAahCRDBDM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EHYhAyMAQcABayIBJAAgAUEYakG+nQFB0gBBACABQQhqQbXmARBHIgYQ9wMiB0GDCBBsQZnYARBsQYMIEGxBi+EBEGwgBRDoE0Ho3gEQbCACEKECQe7ZARBsIAMQoQIaIAcQ+QMgBhDMFhogAUHAAWokACADEMwWGiAEQRBqJAAgAEEQaiQACxwBAX8gACgCACEBIABBADYCACABBEAgARCqEwsL4AECBX8BfiMAQRBrIgYkACAGIAE2AgwgAEEQaiIBIQQgARCrASEHIwBBIGsiASQAIAFBGGoiBSAEEKMDIAUQlgMEQCABKAIYIQQgASAAKQIIIgk3AwggASAJNwMQIwBBMGsiACQAIAQgASgCDCIIQQF1aiEFIAEoAgghBCAIQQFxBEAgBSgCACAEaigCACEECyAFIABBGGogBxC5CCIFIAYoAgwgAiAAQQhqIAMQdiICIAQRBgAgAhDMFhogBRDqBRogAEEwaiQACyABQRhqEJgDGiABQSBqJAAgBkEQaiQAC68BAQR/IwBBEGsiACQAIAAgATYCDCMAQRBrIgQkACAAKAIMIQUgBCADEHYhAyMAQcABayIBJAAgAUEYakG+nQFB1QFBACABQQhqQbXmARBHIgYQ9wMiB0GDCBBsQZnYARBsQYMIEGxB5OABEGwgBRDoE0Ho3gEQbCACEKECQe7ZARBsIAMQoQIaIAcQ+QMgBhDMFhogAUHAAWokACADEMwWGiAEQRBqJAAgAEEQaiQACy0AIAEEQCAAIAEoAgAQnwwgACABKAIEEJ8MIAAQtwIgAUEQahC4AiABEKoTCwstACABBEAgACABKAIAEKAMIAAgASgCBBCgDCAAELcCIAFBEGoQoQwgARCqEwsLCAAgARCBDBoLlgEBA38jAEEQayIEJAAgASAEQQxqIAIQ1wMiBigCACEFIARBADoACyAAIAQgBQR/IAUFIwBBEGsiACQAIABBCGogA0EQahDQByAAKAIIIAIQWCACEK4CIQIgACgCDCACKQIANwIAIABBEGokACABIAQoAgwgBiADELoCIARBAToACyADCxCmASAEQQtqELwCIARBEGokAAv1AQEFfyMAQSBrIgMkACABIANBHGogAhDXAyIHKAIAIQQgA0EAOgAbIARFBEAjAEEQayIEJAAgARC3AiEGIANBCGoiBUEkEMAWIARBCGog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CiQAIwBBEGsiBiQAIwBBIGsiBSQAIAVBHGohBCAFQRhqIQIjAEEgayIBJAAgASAMNgIYAkACQAJAAkACQCABQRhqIAFBEGogAxCnARCmARCWAUUEQCADEKsBIAAgAUEYahCyARD4C0UNAQsgASABKAIYNgIQIAFBEGogAUEIaiADEPABEKYBEJYBRQRAIAMQqwEgAUEQahDfARCyASAAEPgLRQ0CCyABKAIYIgIoAgBFDQMgBCABKAIQIgI2AgAgAkEEaiECDAQLIAMQqwEgAUEYahCyASAAEPgLRQ0BIAEgASgCGBD+AjYCECABQRBqIAFBCGogAxCnARCmARCWAUUEQCADEKsBIAAgAUEQahCyARD4C0UNAQsgASgCGCgCBEUEQCAEIAEoAhgiAjYCACACQQRqIQIMBAsgASgCECECDAILIAMgBCAAEPcLIQIMAgsgBCABKAIYIgQ2AgAgAiAENgIADAELIAQgAjYCAAsgAUEgaiQAIAIoAgAhASAFQQA6ABcgAUUEQCAFQQhqIgQgAyAAEKQMIAMgBSgCHCACIAQoAgAQugIgBBC7AiEBIAVBAToAFyAEEKUMCyAGQQhqIAVBCGogARCmASAFQRdqELwCIAVBIGokACAGKAIIIQEgBkEQaiQAIApBCGogARCmASgCABogCkEQaiQAIABBEGoiACAIRw0ACwsgCUEQaiQAIAdBEGokACADCxEAIABBDGoiACAAKAIAENIMC2oAIAEEQCABQZABahDRASABQYABahDMFhogAUH0AGoQzBYaIAFB5ABqEMwWGiABQdgAahDMFhogAUE0ahDMFhogAUEoahDMFhogAUEcahDMFhogAUEQahDMFhogAUEEahDMFhogARCqEwsLLQAgAQRAIAAgASgCABDTDCAAIAEoAgQQ0wwgABC3AiABQRBqEKEMIAEQqhMLCy0AIAEEQCAAIAEoAgAQ1AwgACABKAIEENQMIAAQtwIgAUEQahChDCABEKoTCwstACABBEAgACABKAIAENUMIAAgASgCBBDVDCAAELcCIAFBEGoQoQwgARCqEwsLLQAgAQRAIAAgASgCABDWDCAAIAEoAgQQ1gwgABC3AiABQRBqEKEMIAEQqhMLCyEAIwBBEGsiACQAIAAgAjYCCCAAQQhqEJ0DIABBEGokAAsNACAAQcCaAjYCACAACwoA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A0GQAWpBteYBEEciABD3AyIBQYMIEGxB0IkBEGxBgwgQbEHBChBsGiABEPkDIAAQzBYaQcewChDyAyACEO4FRQ0BIAJBlnggA0GoAWpBzwoQRyIAIANBkAFqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsCQCADQYgBaiABIANBkAFqQQAQxAEiBRDcA0UEQCACEO4FRQ0BIAJBfyADQagBakHXLxBHIgAgA0HwAGpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCyADQfAAaiIBIAVBAEEBENYNIAEgA0GoAWpBABDEASIBENIBIQQgARDRAQJAIAQEQCADQagBakGRoQFB+QNBAiADQeAAakG15gEQRyIAEPcDIgFBgwgQbEHQiQEQbEGDCBBsQfjTABBsGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiADQagBakGG1AAQRyIAIANB4ABqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsCQCADQfAAahCMAUEATgRAIANB8ABqEIwBQQRIDQELIANBqAFqQZGhAUGABEECIANB4ABqQbXmARBHIgAQ9wMiAUGDCBBsQdCJARBsQYMIEGxBicoBEGwaIAEQ+QMgABDMFhogAhDuBUUNASACQc52IANBqAFqQZfKARBHIgAgA0HgAGpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCyADQagBakEAEMQBIQECfyADQfAAahCMAQRAIANByABqQQEQzQEhAiABQYiAARCJASACEGkgAhDRASADQTBqQQMQxwEhAiABQfr4ABCJASACEGkgAhDRAUGm3QAhAiADQRhqIANB8ABqEIwBEMYBDAELQYiAASECIANBABDNAQshBCABIAIQiQEgBBBpIAQQ0QEgACgCHCIAIANB4ABqQYyKARBHIgIgASAAKAIAKALEAREDACACEMwWGiABENEBCyADQfAAahDRAQsgBRDRAQsgA0HQAmoQzBYaIANB4AJqJAAL9wUBBH8jAEGAA2siAyQAQYS0ChDyAyADQcgBaiIFEMgGIANB8AJqIgQgBSgCACIGIAYoAgAoAjQRAAAgBRCYAxoCQCAEEEMEQCADQcgBakGRoQFBlQRBACADQagBakG15gEQRyIAEPcDIgFBgwgQbEH3iQEQbEGDCBBsQfbLABBsGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkF/IANByAFqQYTMABBHIgAgA0GoAWpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCxDgDBCyDUKAgBCDUARAIANByAFqQZGhAUGYBEECIANBqAFqQbXmARBHIgAQ9wMiAUGDCBBsQfeJARBsQYMIEGxBwQoQbBogARD5AyAAEMwWGkHHsAoQ8gMgAhDuBUUNASACQZZ4IANByAFqQc8KEEciACADQagBakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELAkAgA0HAAWogASADQcgBakEAEMQBIgUQ3ANFBEAgAhDuBUUNASACQX8gA0GoAWpB1y8QRyIAIANBkAFqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsgA0GoAWoiAiAFQQBBBBDWDSADQZABakEAEMQBIQECQAJAIAIgA0H4AGpBABDEASICENMBRQRAIAIQ0QEMAQsgA0HoAGoiBCADQagBahCCASAEEEMhBiAEEMwWGiACENEBIAYNACADQdAAakEBEM0BIQIgAUGIgAEQiQEgAhBpIAIQ0QEgA0E4akECEMcBIQIgAUH6+AAQiQEgAhBpIAIQ0QEgA0H4AGoiAiADQagBahCCASADQSBqIAIQzAEhBCABQYfiABCJASAEEGkgBBDRASACEMwWGgwBCyADQQhqQQAQzQEhAiABQYiAARCJASACEGkgAhDRAQsgACgCHCIAIANB+ABqQYyKARBHIgIgASAAKAIAKALEAREDACACEMwWGiABENEBIANBqAFqENEBCyAFENEBCyADQfACahDMFhogA0GAA2okAAuFBwEHfyMAQcACayIDJAACQCADQaACaiIFIAEgA0GoAmpBABDEASIHENwDRQRAIAIQ7gVFDQEgAkF/IANB6ABqQdcvEEciACADQdAAakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELIANBkAJqEDAhASAHQQQgA0HoAGpBxdEAEEciBiABEOADIQQgBhDMFhoCQCAERQRAIANB6ABqQZGhAUG3BEECIANB0ABqQbXmARBHIgAQ9wMiBkGDCBBsQdKrARBsQYMIEGxB1+UBEGwgARChAhogBhD5AyAAEMwWGiACEO4FRQ0BIAJBznYgASADQegAakG15gEQRyIAEIIMIAAQzBYaDAELIANB0ABqQQAQxAEhBiADQegAaiIEIAdBABBiEIIBIAUgBCAGENwDIQUgBBDMFhoCQCAFRQRAIANB6ABqQZGhAUG+BEECIANBQGtBteYBEEciABD3AyIEQYMIEGxB0qsBEGxBgwgQbEG+LxBsGiAEEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiADQegAakHMLxBHIgAgA0FAa0G15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIAYgA0HoAGpB5+EAEEciBEEEIAEQ3wMhBSAEEMwWGiAFRQRAIANB6ABqQZGhAUHEBEECIANBQGtBteYBEEciABD3AyIEQYMIEGxB0qsBEGxBgwgQbEHX5QEQbCABEKECGiAEEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiABIANB6ABqQbXmARBHIgAQggwgABDMFhoMAQsgA0FAayIFIAZB5+EAEIkBEIIBIANB6ABqIAZB3ygQiQEQzgEhBCADIABBMGoiCCAFEK8DNgI4IAMgCBCVATYCEAJAIANBOGogA0EQahCiAQRAIAAgA0E4ahCyASIIKAIQIglBAXVqIQUgCCgCDCEAIAlBAXEEQCAFKAIAIABqKAIAIQALIAUgBCADQSBqIAIQ5wUiAiAAEQMAIAIQ6wUaDAELIANBEGoiBSAAKAJcIgAgACgCACgCEBEAACAFKAIAIgAgA0FAayAEIAAoAgAoAsQBEQMAIAUQmAMaIAIQ7gVFDQAgAkEAIANBEGpB7ScQRyIAIANBteYBEEciAhCCDCACEMwWGiAAEMwWGgsgBBDRASADQUBrEMwWGgsgBhDRAQsgARDMFhoLIAcQ0QEgA0HAAmokAAthAQF/IwBBQGoiAyQAIABB4ABqIANBKGogARDOASIAEGkgABDRASACEO4FBEAgAkEAIANBGGpB7ScQRyIAIANBCGpBteYBEEciARCCDCABEMwWGiAAEMwWGgsgA0FAayQAC5wEAQZ/IwBB8AJrIgMkACADQeACahAwIQUgASADQbgBakHWExBHIgRBBCAFEN8DIQYgBBDMFhoCQCAGRQRAIANBuAFqQZGhAUHhBEECIANBqAFqQbXmARBHIgAQ9wMiAUGDCBBsQe0TEGxBgwgQbEHX5QEQbCAFEKECGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiAFIANBuAFqQbXmARBHIgAQggwgABDMFhoMAQsgA0GoAWoiBCABQdYTEIoBEIIBAkAgBBBDBEAgA0G4AWpBkaEBQegEQQIgA0GYAWpBteYBEEciABD3AyIBQYMIEGxB7RMQbEGDCBBsQZgIEGwaIAEQ+QMgABDMFhogAhDuBUUNASACQc52IANBuAFqQaYIEEciACADQZgBakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELIAAoAhwhASADQQA2ArwBIANB8QY2ArgBIANBmAFqIgQgAEEEaiIHEKADIANB2ABqIgAgA0G4AWogBCACEIAOIANBgAFqIAAQgQ4hBiADQQA2AhQgA0HwBjYCECADQQhqIgggBxCgAyADQRhqIgcgA0EQaiAIIAIQgw4gASADQagBaiAGIANBQGsgBxCEDiICIAEoAgAoAigRBQAgAhDrBRogBxCFDiAIEJgDGiAGEOsFGiAAEIUOIAQQmAMaCyADQagBahDMFhoLIAUQzBYaIANB8AJqJAALoAMBCH8jAEHgAmsiAyQAIANB0AJqEDAhBCABIANBqAFqQesdEEciBUEFIAQQ3wMhBiAFEMwWGgJAIAZFBEAgA0GoAWpBkaEBQYMFQQIgA0GYAWpBteYBEEciABD3AyIBQYMIEGxB8aUBEGxBgwgQbEHX5QEQbCAEEKECGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiAEIANBqAFqQbXmARBHIgAQggwgABDMFhoMAQsgAEEcaiIJKAIAIQUgAUHrHRCKARCMASEKIANBADYCrAEgA0HxBjYCqAEgA0GYAWoiASAAQQRqIgcQoAMgA0HYAGoiACADQagBaiABIAIQgA4gA0GAAWogABCBDiEGIANBADYCFCADQfAGNgIQIANBCGoiCCAHEKADIANBGGoiByADQRBqIAggAhCDDiAFIApBACAGIANBQGsgBxCEDiICIAUoAgAoAlgRBgAgAhDrBRogBxCFDiAIEJgDGiAGEOsFGiAAEIUOIAEQmAMaIAkoAgAiAEEAIAAoAgAoAsABEQAACyAEEMwWGiADQeACaiQAC54DAQN/IwBB0AFrIgAkACAAQcABahAwIQQgASAAQRhqQbkQEEciA0ECIAQQ3wMhBSADEMwWGgJAIAVFBEAgAEEYakGRoQFBlAVBAiAAQQhqQbXmARBHIgEQ9wMiA0GDCBBsQbwnEGxBgwgQbEHX5QEQbCAEEKECGiADEPkDIAEQzBYaIAIQ7gVFDQEgAkHOdiAEIABBGGpBteYBEEciARCCDCABEMwWGgwBCyABQbkQEIoBENcBIgNBkLwGa0H4zwJJIANBsMwLa0HQD0lyIANBkLAKa0GQzgBJckUEQCACEO4FRQ0BIAJBznYgAEEYakGtEBBHIgEgAEEIakG15gEQRyICEIIMIAIQzBYaIAEQzBYaDAELAkACQCABQZv4ABDpAUUNACAAQRhqIgUgAUGb+AAQigEQggEgBUHZFBCiAiEBIAUQzBYaIAFFDQAgAxDyAwwBCyADEPMDCyACEO4FRQ0AIAJBACAAQRhqQe0nEEciASAAQQhqQbXmARBHIgIQggwgAhDMFhogARDMFhoLIAQQzBYaIABB0AFqJAALfgECfyMAQSBrIgIkACABEO4FBEAgAUEAIAJBEGpB7ScQRyIBIAJBteYBEEciAxCCDCADEMwWGiABEMwWGgsgAiAAKAJcIgAgACgCACgCCBEAACACKAIAQaKcASACQRBqQbXmARBHIgAQjQ4gABDMFhogAhCYAxogAkEgaiQACxgAIAAgASkCADcDACAAQQhqIAIgAxCkCgtyAQR/IwBBEGsiBCQAIwBBIGsiAiQAIABBADYCECACQQhqQTAQwBYgAiACQRhqQQEQsQIQwAIiAygCABCvCCIFQfSgAjYCACAFQQhqIAEgAhCmDiAAIAMQuwI2AhAgAxDSBSACQSBqJAAgBEEQaiQAIAALMwAjAEEQayIAJAAgAxDuBQRAIAMgASACIABBteYBEEciARCCDCABEMwWGgsgAEEQaiQACx8AIAAgASkCADcDACAAQQhqIAIQyANBCGogAxCRCBoLcgEEfyMAQRBrIgQkACMAQSBrIgIkACAAQQA2AhAgAkEIakEwEMAWIAIgAkEYakEBELECEMACIgMoAgAQvAgiBUGYoQI2AgAgBUEIaiABIAIQpg4gACADELsCNgIQIAMQ0gUgAkEgaiQAIARBEGokACAACxQAIABBCGoiAEEIahCSCCAAEM8KC0UBAX8jAEEgayIAJAAgARDuBQRAIAFBACAAQRBqQe0nEEciASAAQbXmARBHIgIQggwgAhDMFhogARDMFhoLIABBIGokAAuXAwELfyMAQfABayIDJAAgACgCHCEFIANBADYCrAEgA0H0BjYCqAEgA0GgAWoiBiAAQQRqIgAQoAMgA0GwAWoiByADQagBaiAGIAEQgw4gA0HYAWogBxCPDiEIIANBADYCXCADQfUGNgJYIANB0ABqIgkgABCgAyADQeAAaiIKIANB2ABqIAkgARCDDiADQYgBaiAKEI8OIQsgA0EANgIMIANB9gY2AgggAyAAEKADIANBEGoiBCADKQIINwMAIARBCGogAxDIA0EIaiABEJEIGiAFIAJBACAIIAsCfyMAQRBrIgwkACMAQSBrIgAkACADQThqIgFBADYCECAAQQhqQTAQwBYgACAAQRhqQQEQsQIQwAIiAigCABDjCiINQYSiAjYCACANQQhqIAQgABCmDiABIAIQuwI2AhAgAhClDiAAQSBqJAAgDEEQaiQAIAELIAUoAgAoAqABEQgAIAEQ6wUaIAQQhQ4gAxCYAxogCxDrBRogChCFDiAJEJgDGiAIEOsFGiAHEIUOIAYQmAMaIANB8AFqJAALHQAgAEEIaiIAQSBqEMwWGiAAQQhqEJIIIAAQzwoL8wIBBH8jAEHQAmsiAyQAAkAgAQRAIANBqAFqQZGhAUHdAkECIANBmAFqQbXmARBHIgAQ9wMiBUGDCBBsQaUoEGxBgwgQbEGUvAEQbCABEOgTQfe6ARBsIAIQoQJB6agBEGwaIAUQ+QMgABDMFhogBBDuBUUNASAEIAEgAiADQagBakG15gEQRyIAEIIMIAAQzBYaDAELIABBHGoiCSgCACEBIANBADYCrAEgA0HxBjYCqAEgA0GYAWoiAiAAQQRqIgYQoAMgA0HYAGoiACADQagBaiACIAQQgA4gA0GAAWogABCBDiEHIANBADYCFCADQfAGNgIQIANBCGoiCCAGEKADIANBGGoiBiADQRBqIAggBBCDDiABIAVBACAHIANBQGsgBhCEDiIEIAEoAgAoAlgRBgAgBBDrBRogBhCFDiAIEJgDGiAHEOsFGiAAEIUOIAIQmAMaIAkoAgAiAEEAIAAoAgAoAsABEQAACyADQdACaiQAC9QMAQl/IABBFGoQlgMEQCAAKAIUIQIjAEEgayIBJAAgASACQRRqIgUQoAE2AhggASAFEJUBNgIIIAFBGGogAUEIahCiAQRAA0AgAUEYaiIFELIBKAIMIgMgAygCACgCBBEBACAFELMBIAUgAUEIahCiAQ0ACwsgAUEYaiIEIAIoAhAiBSAFKAIAKAIIEQAAIAQoAgAhAyABQQhqIgggAkEEahCgAyABIAFBEGogCBChAykCADcDACMAQSBrIgUkACAFQRhqIgIgARCjAwJAIAIQlgNFDQAgA0EUaiIGEKQDIQMgBhCHAiEHIwBBIGsiAiQAIAIgBzYCECACIAM2AhggAiABNgIIAkAgAkEYaiACQRBqELQBRQ0AA0AgAkEYahClAyEHIwBBEGsiAyQAIANBCGoiCSAHEKMDIAMgAigCCBCjA0EAIQcCQCAJEJYDRQ0AIAMQlgNFDQAgAygCCCADKAIARiEHCyADEJgDGiADQQhqEJgDGiADQRBqJAAgBw0BIAJBGGoiAxCmAyADIAJBEGoQtAENAAsLIAIoAhghAyACQSBqJAAgBSADNgIQIAUgBhCHAjYCCCAFQRBqIAVBCGoQtAFFDQAgBiAFIAVBEGoQyQIoAgAQxwcaCyAFQRhqEJgDGiABEJEDGiAFQSBqJAAgCBCYAxogBBCYAxogAUEgaiQACyAAQTxqEJYDBEAgACgCPBCiDwsgAEHEAGoQlgMEQCAAKAJEEKIPCyAAQcwAahCWAwRAIAAoAkwiBSgCSCEDIwBB8ABrIgEkACABQeAAaiIGQZCyAhBHIQQgAUHQAGoiAiADEKADIAEgAUHYAGogAhChAykCADcDKCAEIAFBKGoQ7REgAhCYAxogBBDMFhogBkHAsgIQRyEEIAIgAxCgAyABIAFByABqIAIQoQMpAgA3AyAgBCABQSBqEO0RIAIQmAMaIAQQzBYaIAZB8LICEEchBCACIAMQoAMgASABQUBrIAIQoQMpAgA3AxggBCABQRhqEO0RIAIQmAMaIAQQzBYaIAZBoLMCEEchBCACIAMQoAMgASABQThqIAIQoQMpAgA3AxAgBCABQRBqEO0RIAIQmAMaIAQQzBYaIAZB0LMCEEchBiACIAMQoAMgASABQTBqIAIQoQMpAgA3AwggBiABQQhqEO0RIAIQmAMaIAYQzBYaIAFB8ABqJAAjAEHwAGsiASQAIAFBOGoiAyAFKAIUIgIgAigCACgCEBEAACADKAIAIQQgAUHgAGoiAiAFQQRqIgYQoAMgAUHoAGogAhChAyEIIAQoAgAoAhQhByABIAgpAgA3AyAgBCABQSBqIAcRAAAgAhCYAxogAxCYAxogBSgCFBogAxDIBiABKAI4IQMgAiAGEKADIAFB2ABqIAIQzQshAiADKAIAKAIMIQQgASACKQIANwMYIAMgAUEYaiAEEQAAIAFB4ABqEJgDGiABQThqEJgDGiABIAVBGGoiAhCgATYCKCABIAIQlQE2AlAgAUEoaiABQdAAahCiAQRAA0AgAUEoaiICELIBIQggAUE4aiIDIAUoAhQiBCAEKAIAKAIIEQAAIAMoAgAhByABQeAAaiIEIAYQoAMgASABQcgAaiAEEKEDKQIANwMQIAcgCCABQRBqELkLIAQQmAMaIAMQmAMaIAIQswEgAiABQdAAahCiAQ0ACwsgAUHgAGoiAiAFKAIUIgMgAygCACgCCBEAACACKAIAIQggAUE4akG15gEQRyEDIAFBKGoiBCAGEKADIAEgAUEwaiAEEKEDKQIANwMIIAhBopwBIAMgAUEIahC6CyAEEJgDGiADEMwWGiACEJgDGiABQfAAaiQAIAVBADYCFAsgACgCXCIBBEAgASABKAIAKAIEEQEACyAAQSRqIgIiASABELUCEJYOIAEQqwFBADYCACABIAEQtwI2AgAgARC3AkEANgIAIABBMGoiASABELUCEJcOIAEQqwFBADYCACABIAEQtwI2AgAgARC3AkEANgIAIABBADYCXCAAQeAAahDRASAAQdQAahCYAxogAEHMAGoQmAMaIABBxABqEJgDGiAAQTxqEJgDGiABIAEQtQIQlw4gAiACELUCEJYOIABBHGoQmAMaIABBFGoQmAMaIABBDGoQmAMaIABBBGoQkQMaIAALDQAgABCKDhogABCqEwsKAEGIvAMQkQMaC/EEAQV/IwBB0ABrIgMkACADIABBFGoiBBCkAzYCICADIAQQhwI2AhAgA0EgaiADQRBqELQBBEADQCADQUBrIgUgA0EgahClAxCjAyAFEJYDBEAgA0FAaygCACIFIAEgAiAFKAIAKAIAEQMACyADQUBrEJgDGiADQSBqIgUQpgMgBSADQRBqELQBDQALCyADQUBrIgUgASACELYLIAMgACAFELkJNgI4IAMQugk2AiACQCADQThqIANBIGoQtQEEQCADIAQQpAM2AhAgAyAEEIcCNgIwIANBEGogA0EwahC0AUUNAQNAIANBIGoiACADQRBqEKUDEKMDIAAQlgMEQCADKAIgIgAgASACIAAoAgAoAgQRAwALIANBIGoQ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C4MCAQN/IAAgAUcEQCABEKQDIQIgARCHAiEDIwBBQGoiASQAIAEgAzYCMCABIAI2AjggASAAEKQDNgIoIAEgABCHAjYCIAJAIAFBOGogAUEwahC0AUUNAANAIAFBKGogAUEgahC0AUUNASABQThqIgIQpQMhAyABQShqIgQQpQMgAxBYIAIQpgMgBBCmAyACIAFBMGoQtAENAAsLAkAgAUEoaiABQSBqEJYBBEAgACABQRhqIAFBIGoQyQIoAgAgASgCOCABKAIwEPwODAELIAFBEGogAUEoahDJAiECIAFBCGogAUEgahDJAiEDIAAgAigCACADKAIAEOINCyABQUBrJAALCyoBAX8jAEGAAWsiASQAIABBKGogARDlDSIAEPMOIAAQ6A0gAUGAAWokAAsMACAAIAFBBGoQowMLDAAgACABQQxqEKMDCwwAIAAgAUEUahCjAwsMACAAIAFBHGoQowMLMgEBfyMAQRBrIgEkACABQQhqIgIQow0gACACKAIAEI8GELgBGiACEJgDGiABQRBqJAALCgAgACABOgCoAQu4AgEFfyMAQTBrIgQkACAEIAM2AhggBCACNgIgIARBKGogARCmASEDIARBIGogBEEYahC0AQRAIARBCGoiAiAAEKsBIgcQ6wMgByACKAIAQQhqIARBIGoiBRClAxCIAyADIAQgAigCABCmASgCADYCACACELsCGiAEIAMoAgAiBjYCACAFEKYDQQEhAiAFIARBGGoQtAEEQANAIARBCGoiBUEUEMAWEPEDIAcgBSgCAEEIaiAEQSBqIgYQpQMQiAMgBCgCACIIIAUoAgA2AgQgBSgCACAINgIAIAJBAWohAiAFELsCGiAGEKYDIAQQpgMgBiAEQRhqELQBDQALIAQoAgAhBgsgASADKAIAIAYQ8AMgABCrASIAIAAoAgAgAmo2AgAgBEEIahDtAwsgAygCABogBEEwaiQAC7oBAQJ/IwBB8ABrIgUkACAFQRBqEOIOIQQgBSABKAJAEP4OIARBKGogBRBeIAUQzBYaIAQgASgCGDYCGCAEQRxqIAFBHGoQWCAEIAFBKGoQWCAEIAM6AEQCfyABQTRqIgMQpAMLAn8gAxCHAgsgBEEMahCHAhD/DiAAEOUOIgBBBGoQlAYQWCAAIAEoAhg2AhwgACABKAJANgIgIABBKGogAhBYIABB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KAIABSAACxEDAAsgAUEYahCYAxogAUEgaiQAIARBEGokAAuuAQIEfwF+IwBBEGsiBSQAIAUgATYCDCAAQRBqIgEhBCABEKsBIQcjAEEgayIBJAAgAUEYaiIGIAQQowMgBhCWAwRAIAEoAhghBCABIAApAggiCDcDCCABIAg3AxAgASgCCCEAIAQgASgCDCIGQQF1aiIEIAcgBSgCDCACIAMgBkEBcQR/IAQoAgAgAGooAgAFIAALEQYACyABQRhqEJgDGiABQSBqJAAgBUEQaiQACx8BAX8gACgCACEBIABBADYCACABBEAgARDAERCqEwsLEQAgACABEMgDQQhqIAIQpgcLGgEBfyAAQRBqIgFBCGoQzBYaIAEQkQMaIAALCgAgABDAERCqEwvhAQIEfwF+IwBBEGsiCCQAIAggBjoACyAIIAE2AgwgAEEQaiIBIQYgARCrASEJIwBBIGsiASQAIAFBGGoiByAGEKMDIAcQlgMEQCABKAIYIQcgASAAKQIIIgs3AwggASALNwMQIwBBIGsiBiQAIAcgASgCDCIKQQF1aiEHIAEoAgghACAKQQFxBEAgBygCACAAaigCACEACyAHIAZBCGogCRC5CCIHIAgoAgwgAiADIAQgBSAILQALIAARDgAgBxDqBRogBkEgaiQACyABQRhqEJgDGiABQSBqJAAgCEEQaiQAC6UBAgN/AX4jAEEQayIIJAAgCCABNgIMIwBBIGsiASQAIAFBGGoiByAAQRBqEKMDIAcQlgMEQCABKAIYIQcgASAAKQIIIgo3AwggASAKNwMQIAEoAgghACAHIAEoAgwiCUEBdWoiByAIKAIMIAIgAyAEIAUgBiAJQQFxBH8gBygCACAAaigCAAUgAAsRDAALIAFBGGoQmAMaIAFBIGokACAIQRBqJAALDQAgAEGksAI2AgAgAAsKACAAEMQREKoTCx8AIAAQrgIiAEEQahDMFhogAEEIahCRAxogABCRAxoLLQAgAQRAIAAgASgCABDHESAAIAEoAgQQxxEgABC3AiABQRBqELgCIAEQqhMLCxUAIABBwLACNgIAIABBBGoQxgMgAAsKACAAEMgREKoTC04BAn8jAEEgayIBJAAgAEEEaiECIAFBCGpBFBDAFiABIAFBGGpBARCxAhDAAiIAKAIAIAIgARDLESAAELsCIQIgABDtAyABQSBqJAAgAgscACAAEKcMIgBBwLACNgIAIABBBGogASACELEMCxAAIAEgAEEEaiIAIAAQyxELFQAgAEHksAI2AgAgAEEEahDGAyAACwoAIAAQzREQqhMLTgECfyMAQSBrIgEkACAAQQRqIQIgAUEIakEUEMAWIAEgAUEYakEBELECEMACIgAoAgAgAiABENARIAAQuwIhAiAAEO0DIAFBIGokACACCxwAIAAQrwgiAEHksAI2AgAgAEEEaiABIAIQsQwLEAAgASAAQQRqIgAgABDQEQsVACAAQYixAjYCACAAQQhqEJYPIAALCgAgABDSERCqEwtPAQJ/IwBBIGsiASQAIABBCGohAiABQQhqQbgCEMAWIAEgAUEYakEBELECEMACIgAoAgAgAiABENURIAAQuwIhAiAAENIFIAFBIGokACACCxwAIAAQrwgiAEGIsQI2AgAgAEEIaiABIAIQ7A8LEAAgASAAQQhqIgAgABDVEQsVACAAQayxAjYCACAAQQhqEIUOIAALCgAgABDXERCqEwtOAQJ/IwBBIGsiASQAIABBCGohAiABQQhqQTAQwBYgASABQRhqQQEQsQIQwAIiACgCACACIAEQ2hEgABC7AiECIAAQ0gUgAUEgaiQAIAILHAAgABC8CCIAQayxAjYCACAAQQhqIAEgAhCvDgsQACABIABBCGoiACAAENoRCxUAIABB0LECNgIAIABBCGoQhQ4gAAsKACAAENwREKoTC04BAn8jAEEgayIBJAAgAEEIaiECIAFBCGpBMBDAFiABIAFBGGpBARCxAhDAAiIAKAIAIAIgARDfESAAELsCIQIgABDSBSABQSBqJAAgAgscACAAEK8IIgBB0LECNgIAIABBCGogASACEK8OCxAAIAEgAEEIaiIAIAAQ3xELGwAgASgCACEBIwBBEGsiACQAIABBEGokACABCwkAIAEgAhCWAQvGAgEIfyAAELcCIQICQCABBEAgACACIAEQ3wIQ4AogABC3AiABNgIAA0AgACADEMAHQQA2AgAgA0EBaiIDIAFHDQALIABBCGoiAigCACIERQ0BIAAgBCgCBCABENcKIgYQwAcgAjYCACAEKAIAIgJFDQEDQAJAIAYgAigCBCABENcKIgVGBEAgAiEEDAELAkACQCAAIAUQwAcoAgAEQEEAIQcgAiEDIAIoAgANAQwCCyAAIAUQwAcgBDYCACACIQQgBSEGDAILA0AgABC/BRogAkEIaiADKAIAQQhqEJYBIQkgAygCACEIIAlFBEAgCCEHDAILIAgiAygCAA0ACwsgBCAHNgIAIAMgACAFEMAHKAIAKAIANgIAIAAgBRDABygCACACNgIACyAEKAIAIgINAAsMAQsgAEEAEOAKIAAQtwJBADYCAAsLjQQBBX8jAEHAAmsiAiQAIAEQlgMEQCACQbgCaiIDIABBCGoQowMCQCADEJYDRQRAIAJBkAFqQaqgAUG+BUEBIAJBGGpBteYBEEciABD3AyIBQYMIEGxBog8QbEGDCBBsQcExEGwaIAEQ+QMgABDMFhoMAQsgAkGQAWpBqqABQcIFQQAgAkEYaiIEQbXmARBHIgMQ9wMiBUGDCBBsQaIPEGxBgwgQbEG6sgEQbCEGIAJBgAFqIgAgASgCABCxCxD2ASAGIAAQoQIaIAAQzBYaIAUQ+QMgAxDMFhogAkEANgJ8IABBteYBEEchAyAEEO0OIQAgASgCABCxCyACQfwAaiADIAAQ6RACQCACKAJ8BEAgAkGQAWpBqqABQcsFQQIgAkG15gEQRyIBEPcDIgRBgwgQbEGiDxBsQYMIEGxBvLwBEGwgAigCfBDoE0HnugEQbCADEKECGiAEEPkDIAEQzBYaDAELIAJBkAFqQaqgAUHPBUEAIAJBteYBEEciARD3AyIEQYMIEGxBog8QbEGDCBBsQdHAARBsIAAQoQJB7rkBEGwgACgCMBDoE0G3vgEQbCAAQQxqEKECQdGzARBsIABBJGoQoQJB6agBEGwaIAQQ+QMgARDMFhogAigCuAIiASAAIAEoAgAoAgARAAALIAAQ7g4gAxDMFhoLIAJBuAJqEJgDGgsgAkHAAmokAAugAgEJfyMAQRBrIgQkACAEIARBCGogAhCeAykCADcDACMAQRBrIgYkACAGQQhqIAQQoQMhByMAQSBrIgIkACACQgA3AxggAkEYahCKAyEFIAJBngo2AgwjAEEQayIKJAAjAEEQayIIJAAgCBCeCyIJKAIIIQMjAEEQayILJAAgAxDQAyIDQZS3AjYCACADEK4CIAIoAgwQwwMiA0GwtwI2AgAgAyABKQIANwIIIANBEGogBxDEAyALQRBqJAAgAkEQaiIBIAkQ9wUiAxCuAiADEPgFIAkQsAYgCEEQaiQAIApBEGokACAFIAEQlwMgARCYAxogACAFEMgDGiAFEM8KIAJBIGokACAHEJEDGiAEEJgDGiAGQRBqJAAgBEEQaiQAC7MDAQh/IwBBEGsiBiQAENwFIQcgBiAGQQhqIAIQoQMpAgA3AwAjAEFAaiIEJAAgBEEwaiIFQYCyAiAAEN0FIwBBIGsiACQAIAAgBRCsAzYCECAAQRhqIgkgByAFIABBEGoQvgsgCRClAyEFIABBIGokACAEIAVBDGoiBRCkAzYCKCAEIAUQhwI2AgACQCAEQShqIAQQtAEEQANAIAQgBhCjAyAEQSBqIgAgBEEoahClAxCjAyAEIAAQlgEhByAAEJgDGiAEEJgDGiAHDQIgBEEoaiIAEKYDIAQgBRCHAjYCACAAIAQQtAENAAsLIAQQ3wUhACMAQRBrIgokACMAQRBrIgckACAHEKYIIgkoAgghCCMAQRBrIgskACAIENADIghB5LgCNgIAIAgQrgIgAxDIAxogC0EQaiQAIARBIGoiAyAJEPcFIggQrgIgCBD4BSAJELAGIAdBEGokACAKQRBqJAAgAEEIaiADEJcDIAMQmAMaIAAgBhDSAyAAQRBqIAEQ9gMgBSAAELgLIAAQ4AULIARBMGoQzBYaIAYQkQMaIARBQGskACACEJEDGiAGQRBqJAALzQUBCH8jAEGQAmsiAiQAIAEQlgMEQCACQYgCaiIEIABBCGoQowMCQCAEEJYDRQRAIAJB4ABqQaqgAUHZBUEBIAJB0ABqQbXmARBHIgAQ9wMiAUGDCBBsQcIPEGxBgwgQbEHBMRBsGiABEPkDDAELIAJBADYCTCACQdAAakG15gEQRyEAIAJBQGsQMCEHIAJBMGoQMCEIIAJBIGoQMCEJIAJBADYCHCABKAIAELELIQQgAkHMAGohASMAQSBrIgUkAAJAIAQQRkUEQCABQaWNBjYCACAAQbijARCjAgwBCyAEIAVBEGpB1JgBEEciAyAFQbTmABBHIgYgASAAEOoQIAYQzBYaIAMQzBYaIAEoAgANACAFQRBqIgMgBEHUmAEQigEQggEgByADEF4gAxDMFhogBCADQcscEEciAyAFQbTmABBHIgYgASAAEOoQIAYQzBYaIAMQzBYaIAEoAgANACAFQRBqIgMgBEHLHBCKARCCASAIIAMQXiADEMwWGiAEIANB6RwQRyIDIAVBtOYAEEciBiABIAAQ6hAgBhDMFhogAxDMFhogASgCAA0AIAVBEGoiAyAEQekcEIoBEIIBIAkgAxBeIAMQzBYaIAQgA0GgPxBHIgMgBUGQmQEQRyIGIAEgABDqECAGEMwWGiADEMwWGiABKAIADQAgAiAEQaA/EIoBENcBNgIcIAFBADYCACAAQbXmARCjAgsgBUEgaiQAAkAgAigCTARAIAJB4ABqQaqgAUHpBUECIAJBCGpBteYBEEciARD3AyIEQYMIEGxBwg8QbEGDCBBsQby8ARBsIAIoAkwQ6BNB57oBEGwgABChAhogBBD5AyABEMwWGgwBCyACKAKIAiIBIAcgCCAJIAJBHGogASgCACgCBBEGAAsgCRDMFhogCBDMFhogBxDMFhoLIAAQzBYaIAJBiAJqEJgDGgsgAkGQAmokAAuIBgEHfyMAQYACayICJAAgARCWAwRAIAJB+AFqIgMgAEEIahCjAwJAIAMQlgNFBEAgAkHQAGpBqqABQfUFQQEgAkFAa0G15gEQRyIAEPcDIgFBgwgQbEGCEBBsQYMIEGxBwTEQbBogARD5AwwBCyACQdAAakGqoAFB+QVBACACQUBrQbXmARBHIgAQ9wMiBEGDCBBsQYIQEGxBgwgQbEG6sgEQbCEFIAJBMGoiAyABKAIAELELEPYBIAUgAxChAhogAxDMFhogBBD5AyAAEMwWGiACQQA2AiwgAkFAa0G15gEQRyEAIAMQMCEDIAJBIGoQMCEHIAJBADYCHCABKAIAELELIQQgAkEsaiEBIwBBIGsiBSQAAkAgBBBGRQRAIAFBpY0GNgIAIABBuKMBEKMCDAELIAQgBUEQakHUmAEQRyIGIAVBtOYAEEciCCABIAAQ6hAgCBDMFhogBhDMFhogASgCAA0AIAVBEGoiBiAEQdSYARCKARCCASADIAYQXiAGEMwWGiAEIAZBq/gAEEciBiAFQZCZARBHIgggASAAEOoQIAgQzBYaIAYQzBYaIAEoAgANACACIARBq/gAEIoBENcBNgIcIAFBADYCACAAQbXmARCjAgsgBUEgaiQAAkAgAigCLARAIAJB0ABqQaqgAUGFBkECIAJBCGpBteYBEEciARD3AyIEQYMIEGxBghAQbEGDCBBsQby8ARBsIAIoAiwQ6BNB57oBEGwgABChAhogBBD5AyABEMwWGgwBCyACQdAAakGqoAFBiQZBACACQQhqQbXmARBHIgEQ9wMiBEGDCBBsQYIQEGxBgwgQbEHzwAEQbCADEKECQbS4ARBsIAIoAhwQ6RNB6agBEGwaIAQQ+QMgARDMFhogAigCHCIBQQFGBH8gAigC+AEiASADIAcgASgCACgCCBEDACACKAIcBSABC0ECRw0AIAIoAvgBIgEgAyAHIAEoAgAoAgwRAwALIAcQzBYaIAMQzBYaCyAAEMwWGiACQfgBahCYAxoLIAJBgAJqJAALuQUBB38jAEGAAmsiAiQAIAEQlgMEQCACQfgBaiIDIABBCGoQowMCQCADEJYDRQRAIAJB0ABqQaqgAUGXBkEBIAJBQGtBteYBEEciABD3AyIBQYMIEGxB9A4QbEGDCBBsQcExEGwaIAEQ+QMMAQsgAkEANgI8IAJBQGtBteYBEEchACACQTBqEDAhBiACQSBqEDAhByACQQA2AhwgASgCABCxCyEBIAJBPGohAyMAQSBrIgUkAAJAIAEQRkUEQCADQaWNBjYCACAAQbijARCjAgwBCyABIAVBEGpB1JgBEEciBCAFQbTmABBHIgggAyAAEOoQIAgQzBYaIAQQzBYaIAMoAgANACAFQRBqIgQgAUHUmAEQigEQggEgBiAEEF4gBBDMFhogASAEQav4ABBHIgQgBUGQmQEQRyIIIAMgABDqECAIEMwWGiAEEMwWGiADKAIADQAgAiABQav4ABCKARDXATYCHAJAIAFB25gBEOkBRQ0AIAFB25gBEIoBEPMBRQ0AIAVBEGoiBCABQduYARCKARCCASAHIAQQXiAEEMwWGgsgA0EANgIAIABBteYBEKMCCyAFQSBqJAACQCACKAI8BEAgAkHQAGpBqqABQaYGQQIgAkEIakG15gEQRyIBEPcDIgNBgwgQbEH0DhBsQYMIEGxBvLwBEGwgAigCPBDoE0HnugEQbCAAEKECGiADEPkDIAEQzBYaDAELIAJB0ABqQaqgAUGqBkEAIAJBCGpBteYBEEciARD3AyIDQYMIEGxB9A4QbEGDCBBsQfPAARBsIAYQoQJBtLgBEGwgAigCHBDpE0HpqAEQbBogAxD5AyABEMwWGiACKAL4ASIBIAYgAkEcaiAHIAEoAgAoAhQRBQALIAcQzBYaIAYQzBYaCyAAEMwWGiACQfgBahCYAxoLIAJBgAJqJAALowkBC38jAEGQAmsiAyQAIAEQlgMEQCADQYgCaiICIABBCGoQowMCQCACEJYDRQRAIANB4ABqQaqgAUGzBkEBIANB0ABqQbXmARBHIgAQ9wMiAUGDCBBsQeMPEGxBgwgQbEHBMRBsGiABEPkDDAELIANB4ABqQaqgAUG3BkEAIANB0ABqQbXmARBHIgAQ9wMiBEGDCBBsQeMPEGxBgwgQbEG6sgEQbCEFIANBQGsiAiABKAIAELELEPYBIAUgAhChAhogAhDMFhogBBD5AyAAEMwWGiADQQA2AjwgA0HQAGpBteYBEEchACACEDAhCiADQTBqEIsDIQsgA0EgahCLAyEMIAEoAgAQsQshAiADQTxqIQUjAEHwAGsiASQAAkAgAhBGRQRAIAVBpY0GNgIAIABBuKMBEKMCDAELIAIgAUHYAGpB1JgBEEciBCABQUBrQbTmABBHIgggBSAAEOoQIAgQzBYaIAQQzBYaIAUoAgANACABQdgAaiIEIAJB1JgBEIoBEIIBIAogBBBeIAQQzBYaAkAgAkGWGhDpAQRAIAJBlhoQigEQRQ0BCyAFQaWNBjYCACAAQeOnARCjAgwBCyABQdgAaiACQZYaEIoBEM4BIggQmAEEQANAAkAgAUFAayAIIAcQbxDOASIEEEZFDQAgBEHcHBDpAUUNACAEQdwcEIkBEPMBRQ0AIARB8SYQ6QFFDQAgBEHxJhCJARDeAUUNACABQShqEDAhBiABQRhqIgkgBEHcHBCJARCCASAGIAkQXiAJEMwWGiABIARB8SYQiQEQ1wE2AjQgCyAGEOUQIAYQzBYaCyAEENEBIAgQmAEgB0EBaiIHSw0ACwsCQAJAIAJBhBoQ6QEEQCACQYQaEIoBEEUNAQsgBUGljQY2AgAgAEGUpwEQowIMAQsgAUFAayACQYQaEIoBEM4BIgQQmAEEQEEAIQcDQAJAIAFBKGogBCAHEG8QzgEiAhBGRQ0AIAJB3BwQ6QFFDQAgAkHcHBCJARDzAUUNACACQav4ABDpAUUNACACQav4ABCJARDeAUUNACABQRhqEDAhBiABQQhqIgkgAkHcHBCJARCCASAGIAkQXiAJEMwWGiABIAJBq/gAEIkBENcBNgIkIAwgBhDlECAGEMwWGgsgAhDRASAEEJgBIAdBAWoiB0sNAAsLIAVBADYCACAAQbXmARCjAiAEENEBCyAIENEBCyABQfAAaiQAAkAgAygCPARAIANB4ABqQaqgAUHEBkECIANBCGpBteYBEEciARD3AyICQYMIEGxB4w8QbEGDCBBsQby8ARBsIAMoAjwQ6BNB57oBEGwgABChAhogAhD5AyABEMwWGgwBCyADQeAAakGqoAFByAZBACADQQhqQbXmARBHIgEQ9wMiAkGDCBBsQeMPEGxBgwgQbEHzwAEQbCAKEKECQYa3ARBsIAsQngEQ6RNB3d0BEGwgDBCeARDpE0HpqAEQbBogAhD5AyABEMwWGiADKAKIAiIBIAogCyAMIAEoAgAoAhgRBQALIAwQ6gMgCxDqAyAKEMwWGgsgABDMFhogA0GIAmoQmAMaCyADQZACaiQAC8sFAQd/IwBBgAJrIgIkACABEJYDBEAgAkH4AWoiAyAAQQhqEKMDAkAgAxCWA0UEQCACQdAAakGqoAFB0gZBASACQUBrQbXmARBHIgAQ9wMiAUGDCBBsQd0OEGxBgwgQbEHBMRBsGiABEPkDDAELIAJBADYCPCACQUBrQbXmARBHIQAgAkEwahAwIQcgAkEgahAwIQggASgCABCxCyEDIAJBPGohASMAQSBrIgUkAAJAIAMQRkUEQCABQaWNBjYCACAAQbijARCjAgwBCyADIAVBEGpB1JgBEEciBCAFQbTmABBHIgYgASAAEOoQIAYQzBYaIAQQzBYaIAEoAgANACAFQRBqIgQgA0HUmAEQigEQggEgByAEEF4gBBDMFhogAyAEQdwcEEciBCAFQbTmABBHIgYgASAAEOoQIAYQzBYaIAQQzBYaIAEoAgANACAFQRBqIgQgA0HcHBCKARCCASAIIAQQXiAEEMwWGiADIARBoD8QRyIEIAVBkJkBEEciBiABIAAQ6hAgBhDMFhogBBDMFhogASgCAA0AIAIgA0GgPxCKARDXATYCHCABQQA2AgAgAEG15gEQowILIAVBIGokAAJAIAIoAjwEQCACQdAAakGqoAFB4AZBAiACQQhqQbXmARBHIgEQ9wMiA0GDCBBsQd0OEGxBgwgQbEG8vAEQbCACKAI8EOgTQee6ARBsIAAQoQIaIAMQ+QMgARDMFhoMAQsgAkHQAGpBqqABQeQGQQAgAkEIakG15gEQRyIBEPcDIgNBgwgQbEHdDhBsQYMIEGxB88ABEGwgBxChAkHsvgEQbCAIEKECQbG0ARBsIAIoAhwQ6BNB6agBEGwaIAMQ+QMgARDMFhogAigC+AEiASAHIAggAkEcaiABKAIAKAIcEQUACyAIEMwWGiAHEMwWGgsgABDMFhogAkH4AWoQmAMaCyACQYACaiQAC+wEAQZ/IwBB8AFrIgIkACABEJYDBEAgAkHoAWoiAyAAQQhqEKMDAkAgAxCWA0UEQCACQUBrQaqgAUHtBkEBIAJBMGpBteYBEEciABD3AyIBQYMIEGxBuA4QbEGDCBBsQcExEGwaIAEQ+QMMAQsgAkFAa0GqoAFB8AZBACACQTBqQbXmARBHIgAQ9wMiBEGDCBBsQbgOEGxBgwgQbEG6sgEQbCEFIAJBIGoiAyABKAIAELELEPYBIAUgAxChAhogAxDMFhogBBD5AyAAEMwWGiACQQA2AhwgAkEwakG15gEQRyEAIAMQMCEDIAEoAgAQsQshBSACQRxqIQEjAEEgayIEJAACQCAFEEZFBEAgAUGljQY2AgAgAEG4owEQowIMAQsgBSAEQRBqQdSYARBHIgYgBEG05gAQRyIHIAEgABDqECAHEMwWGiAGEMwWGiABKAIADQAgBEEQaiIGIAVB1JgBEIoBEIIBIAMgBhBeIAYQzBYaIAFBADYCACAAQbXmARCjAgsgBEEgaiQAAkAgAigCHARAIAJBQGtBqqABQfkGQQIgAkEIakG15gEQRyIBEPcDIgRBgwgQbEG4DhBsQYMIEGxBvLwBEGwgAigCHBDoE0HnugEQbCAAEKECGiAEEPkDIAEQzBYaDAELIAJBQGtBqqABQf0GQQAgAkEIakG15gEQRyIBEPcDIgRBgwgQbEG4DhBsQYMIEGxB88ABEGwgAxChAkHpqAEQbBogBBD5AyABEMwWGiACKALoASIBIAMgASgCACgCIBEAAAsgAxDMFhoLIAAQzBYaIAJB6AFqEJgDGgsgAkHwAWokAAvxAgEEfyMAQRBrIgQkABDcBSEFIAQgBEEIaiABEKEDKQIANwMAIwBBQGoiAiQAIAJBOGoiAyAEEKMDIAMQlgMEQCACQShqIgNBgLICIAAQ3QUgAiAFIAMQuQk2AiAgAhC6CTYCEAJAIAJBIGogAkEQahC1AQ0AIAIgAkEgahClA0EMaiIAEKQDNgIYIAIgABCHAjYCECACQRhqIAJBEGoQtAEEQANAIAJBEGoiAyACQRhqEKUDEKMDAkAgAxCWA0UEQCACIAAgAkEIaiACQRhqEMkCKAIAELsLNgIYDAELIAIoAhAgAigCOEcEQCACQRhqEKYDDAELIAIgACACIAJBGGoQyQIoAgAQuws2AhgLIAJBEGoiAxCYAxogAiAAEIcCNgIQIAJBGGogAxC0AQ0ACwsgABCoAUUNACAFIAIoAiAQvAsLIAJBKGoQzBYaCyACQThqEJgDGiAEEJEDGiACQUBrJAAgARCRAxogBEEQaiQACz8BAn8jAEEQayIFJAAgBUEIaiAAEMIDIgAoAgAoAgQhBiAAKAIAIAEgAiADIAQgBhEGACAAEJ0DIAVBEGokAAu0BwEEfyMAQYACayIAJAAgACAENgLwASAAIAE2AvgBAkAgAgRAIABByABqIgFBqqABQYsBQQIgAEE4aiIEQbXmARBHIgYQ9wMiBUGDCBBsQZz0ABBsQYMIEGxBvLwBEGwgAhDoE0HnugEQbCADEKECQenAARBsQbXmARBsGiAFEPkDIAYQzBYaIABB+AFqIAIgAyABQbXmARBHIgEgBBCLAyICEO4RIAIQ6gMgARDMFhoMAQsgACgC8AEoAlghASAAKALwARCyCyECIAEEQCAAQcgAaiIDQaqgAUGLAUECIABBOGoiBEG15gEQRyIGEPcDIgVBgwgQbEGc9AAQbEGDCBBsQby8ARBsIAEQ6BNB57oBEGwgAhChAkHpvQEQbCAAKALwARCzCxChAkHpwAEQbEG15gEQbBogBRD5AyAGEMwWGiAAQfgBaiABIAIgA0G15gEQRyIBIAQQiwMiAhDuESACEOoDIAEQzBYaDAELIABBADYCNCAAQThqQbXmARBHIQYgAEEoahAwIQMgAEEYahCLAyEEIAAoAvABELELIQIjAEHQAGsiASQAAkAgAhBGRQRAIABBpY0GNgI0IAZBu6QBEKMCDAELAkAgAkHUmAEQ6QFFDQAgAkHUmAEQigEQ8wFFDQAgAUE4aiIFIAJB1JgBEIoBEIIBIAMgBRBeIAUQzBYaCwJAIAJBjR8Q6QFFDQAgAkGNHxCKARBFRQ0AIAFBOGogAkGNHxCKARDOASIFEJgBBEADQCABQShqEDAhBwJAIAFBEGogBSAIEG8QzgEiAhBGRQ0AIAJBgx0Q6QFFDQAgAkGDHRCJARDzAUUNACABIAJBgx0QiQEQggEgByABEF4gARDMFhogAkGShwEQ6QFFDQAgAkGShwEQiQEQ3gFFDQAgASACQZKHARCJARDXATYCNCAEIAcQ5RALIAIQ0QEgBxDMFhogBRCYASAIQQFqIghLDQALCyAFENEBCyAAQQA2AjQgBkG15gEQowILIAFB0ABqJAAgAEHIAGoiAUGqoAFBlQFBACAAQbXmARBHIgIQ9wMiBUGDCBBsQZz0ABBsQYMIEGxBzr0BEGwgACgC8AEQswsQoQJBpsEBEGwgAxChAkHDtgEQbCAEEJ4BEOkTQemoARBsGiAFEPkDIAIQzBYaIABB+AFqIAAoAjQgAUG15gEQRyIBIAMgBBDuESABEMwWGiAEEOoDIAMQzBYaIAYQzBYaCyAAQfABahCZCyAAQfgBahCdAyAAQYACaiQAC7MEAQF/IwBB8AFrIgAkACAAIAY2AuABIAAgAzYC6AECQCAEBEAgAEE4aiICQaqgAUHNAUECIABBKGpBteYBEEciAxD3AyIGQYMIEGxB3fMAEGxBgwgQbEG8vAEQbCAEEOgTQee6ARBsIAUQoQJB6cABEGwgARChAhogBhD5AyADEMwWGiAAQegBaiAEIAUgAhCLAyIBEOkGIAEQ6gMMAQsgACgC4AEoAlghAyAAKALgARCyCyEEIAMEQCAAQThqIgJBqqABQc0BQQIgAEEoakG15gEQRyIFEPcDIgZBgwgQbEHd8wAQbEGDCBBsQby8ARBsIAMQ6BNB57oBEGwgBBChAkHpvQEQbCAAKALgARCzCxChAkHpwAEQbCABEKECGiAGEPkDIAUQzBYaIABB6AFqIAMgBCACEIsDIgEQ6QYgARDqAwwBCyAAQQA2AiQgAEEoakG15gEQRyEEIABBGGoQiwMhAyAAKALgARCxCyAAQSRqIAQgAxDnECAAQThqIgVBqqABQdUBQQAgAEG15gEQRyIGEPcDIgdBgwgQbEHd8wAQbEGDCBBsQfa9ARBsIAAoAuABELMLEKECQenAARBsIAEQoQJBr7cBEGwgAhCeARDpE0HbtgEQbCADEJ4BEOkTGiAHEPkDIAYQzBYaIABB6AFqIAAoAiQgBUG15gEQRyIBIAMQ6QYgARDMFhogAxDqAyAEEMwWGgsgAEHgAWoQmQsgAEHoAWoQnQMgAEHwAWokAAvTBAEMfyMAQcABayIFJAAgBSAENgK4ASAFQaABakEAEMQBIQQgBUGIAWogARDMASEGIARB1JgBEIkBIAYQaSAGENEBIAVB8ABqIAIQzAEhAiAEQduYARCJASACEGkgAhDRASAFQdgAaiADKAIAEMYBIQIgBEGr+AAQiQEgAhBpIAIQ0QEgBRCqCzYCUCAFQdAAaiIGKAIAIAVBQGtBgLUCEEciAhCtCyACEMwWGiAGKAIAIAVBKGogBBDOASICELALIAIQ0QEgBUEgaiIKEJILIAooAgAhDyAFQRhqIAYQwgMhECAFQQA2AhQgBUGWCjYCECAFQQhqIgsgABCgAyMAQRBrIgIkACACIAJBCGogCxCeAykCADcDACMAQRBrIgwkACAMQQhqIAIQoQMhDSMAQSBrIgAkACAAQQA2AhAgAEEQahC7AyEIIABBoQo2AgQjAEEQayIOJABBLBDAFiAAKAIEEMMDIglB4LcCNgIAIAkgBSkCEDcCCCAJQRBqIA0QyAMiB0EIaiABEKYHIAdBFGogAxDJAhogB0EYaiAFQbgBaiIHEJ4HIA5BCGogCRCbAygCACEBIA5BEGokACAAIAE2AgggCCAAQQhqIgMQvQMgAygCACEBIANBADYCACABBEAgARCHEhCqEwsgAEEYaiAIEL8DIQEgCBCdAyABKAIAIQEgAEEgaiQAIA0QkQMaIAIQmAMaIAxBEGokACACQRBqJAAgDyAQKAIAIAEQlQsgCxCYAxogChCYAxogBhCZCyAEENEBIAcQnQMgBUHAAWokAAvNAwAjAEHQAWsiACQAIAAgBjYCwAEgACADNgLIAQJAIAQEQCAAQRhqQaqgAUGeAkECIABBCGpBteYBEEciAhD3AyIDQYMIEGxB/PMAEGxBgwgQbEG8vAEQbCAEEOgTQee6ARBsIAUQoQJB6cABEGwgARChAhogAxD5AyACEMwWGiAAQcgBaiAEIAUQ4gYMAQsgACgCwAEoAlghAyAAKALAARCyCyEEIAMEQCAAQRhqQaqgAUGeAkECIABBCGpBteYBEEciAhD3AyIFQYMIEGxB/PMAEGxBgwgQbEG8vAEQbCADEOgTQee6ARBsIAQQoQJB6b0BEGwgACgCwAEQswsQoQJB6cABEGwgARChAhogBRD5AyACEMwWGiAAQcgBaiADIAQQ4gYMAQsgAEEYaiIDQaqgAUGgAkEAIABBCGpBteYBEEciBBD3AyIFQYMIEGxB/PMAEGxBgwgQbEHOvQEQbCAAKALAARCzCxChAkHpwAEQbCABEKECQbS4ARBsIAIoAgAQ6BNB6agBEGwaIAUQ+QMgBBDMFhogAEHIAWpBACADQbXmARBHIgEQ4gYgARDMFhoLIABBwAFqEJkLIABByAFqEJ0DIABB0AFqJAALuwMBAn8jAEHQAWsiBCQAIAQgAzYCyAEgBEEgakGqoAFB8wFBACAEQRBqQbXmARBHIgMQ9wMiBUGDCBBsQcAiEGxBgwgQbEHRwAEQbCABEKECQemoARBsGiAFEPkDIAMQzBYaAkAgBEHIAWoQlgNFBEAgBEEgakGqoAFB9QFBASAEQRBqQbXmARBHIgAQ9wMiAUGDCBBsQcAiEGxBgwgQbEG0CBBsGiABEPkDIAAQzBYaDAELIAEQQwRAIARBIGoiAEGqoAFB+QFBAiAEQRBqQbXmARBHIgEQ9wMiAkGDCBBsQcAiEGxBgwgQbEHI1wAQbBogAhD5AyABEMwWGiAEQcgBakHOdiAAQerXABBHIgAQ4gYgABDMFhoMAQsgAhBDBEAgBEEgaiIAQaqgAUH+AUECIARBEGpBteYBEEciARD3AyICQYMIEGxBwCIQbEGDCBBsQYHYABBsGiACEPkDIAEQzBYaIARByAFqQc52IABBo9gAEEciABDiBiAAEMwWGgwBCyAEQQI2AiAgACABIAIgBEEgaiAEQQhqIARByAFqEL8DKAIAEPERCyAEQcgBahCdAyAEQdABaiQAC6EGAQ1/IwBB0AFrIgQkACAEIAI2AsgBIARBIGpBqqABQaYCQQAgBEEQakG15gEQRyICEPcDIgNBgwgQbEG6OBBsQYMIEGxB0cABEGwgARChAkHpqAEQbBogAxD5AyACEMwWGgJAIARByAFqEJYDRQRAIARBIGpBqqABQagCQQEgBEEQakG15gEQRyIAEPcDIgFBgwgQbEG6OBBsQYMIEGxBtAgQbBogARD5AyAAEMwWGgwBCyABEEMEQCAEQSBqIgBBqqABQawCQQIgBEEQakG15gEQRyIBEPcDIgJBgwgQbEG6OBBsQYMIEGxByNcAEGwaIAIQ+QMgARDMFhogBEHIAWpBznYgAEHq1wAQRyIAEOIGIAAQzBYaDAELIARBCGogBEHIAWoQvwMoAgAhAyMAQZABayICJAAgAiADNgKIASACQfAAakEAEMQBIQcgAkHYAGogARDMASEDIAdB1JgBEIkBIAMQaSADENEBIAIQqgs2AlAgAkHQAGoiCCgCACACQUBrQaC1AhBHIgMQrQsgAxDMFhogCCgCACACQShqIAcQzgEiAxCwCyADENEBIAJBIGoiCRCSCyAJKAIAIQ4gAkEYaiAIEMIDIQ8gAkEANgIUIAJBlwo2AhAgAkEIaiIKIAAQoAMjAEEQayIDJAAgAyADQQhqIAoQngMpAgA3AwAjAEEQayILJAAgC0EIaiADEKEDIQwjAEEgayIAJAAgAEEANgIQIABBEGoQuwMhBiAAQaIKNgIEIwBBEGsiDSQAQSgQwBYgACgCBBDDAyIFQfC3AjYCACAFIAIpAhA3AgggBUEQaiAMIAEgAkGIAWoiARCjByANQQhqIAUQmwMoAgAhBSANQRBqJAAgACAFNgIIIAYgAEEIaiIFEL0DIAUQogcgAEEYaiAGEL8DIQUgBhCdAyAFKAIAIQYgAEEgaiQAIAYhACAMEJEDGiADEJgDGiALQRBqJAAgA0EQaiQAIA4gDygCACAAEJULIAoQmAMaIAkQmAMaIAgQmAsgBxDRASABEJ0DIAJBkAFqJAALIARByAFqEJ0DIARB0AFqJAALuQMAIwBB0AFrIgAkACAAIAU2AsABIAAgAjYCyAECQCADBEAgAEEYakGqoAFBxgJBAiAAQQhqQbXmARBHIgIQ9wMiBUGDCBBsQf3yABBsQYMIEGxBvLwBEGwgAxDoE0HnugEQbCAEEKECQenAARBsIAEQoQIaIAUQ+QMgAhDMFhogAEHIAWogAyAEEOIGDAELIAAoAsABKAJYIQIgACgCwAEQsgshAyACBEAgAEEYakGqoAFBxgJBAiAAQQhqQbXmARBHIgQQ9wMiBUGDCBBsQf3yABBsQYMIEGxBvLwBEGwgAhDoE0HnugEQbCADEKECQem9ARBsIAAoAsABELMLEKECQenAARBsIAEQoQIaIAUQ+QMgBBDMFhogAEHIAWogAiADEOIGDAELIABBGGoiAkGqoAFByAJBACAAQQhqQbXmARBHIgMQ9wMiBEGDCBBsQf3yABBsQYMIEGxBzr0BEGwgACgCwAEQswsQoQJB6cABEGwgARChAhogBBD5AyADEMwWGiAAQcgBakEAIAJBteYBEEciARDiBiABEMwWGgsgAEHAAWoQmQsgAEHIAWoQnQMgAEHQAWokAAudBAAjAEHwAWsiACQAIAAgBTYC4AEgACACNgLoAQJAIAMEQCAAQThqIgFBqqABQfQCQQIgAEEoakG15gEQRyICEPcDIgVBgwgQbEHk8gAQbEGDCBBsQby8ARBsIAMQ6BNB57oBEGwgBBChAkHpwAEQbEG15gEQbBogBRD5AyACEMwWGiAAQegBaiADIAQgARCLAyIBEOkGIAEQ6gMMAQsgACgC4AEoAlghASAAKALgARCyCyECIAEEQCAAQThqIgNBqqABQfQCQQIgAEEoakG15gEQRyIEEPcDIgVBgwgQbEHk8gAQbEGDCBBsQby8ARBsIAEQ6BNB57oBEGwgAhChAkHpvQEQbCAAKALgARCzCxChAkHpwAEQbEG15gEQbBogBRD5AyAEEMwWGiAAQegBaiABIAIgAxCLAyIBEOkGIAEQ6gMMAQsgAEEANgIkIABBKGpBteYBEEchAiAAQRhqEIsDIQEgACgC4AEQsQsgAEEkaiACIAEQ5xAgAEE4aiIDQaqgAUH8AkEAIABBteYBEEciBBD3AyIFQYMIEGxB5PIAEGxBgwgQbEHOvQEQbCAAKALgARCzCxChAkHDtgEQbCABEJ4BEOkTQemoARBsGiAFEPkDIAQQzBYaIABB6AFqQQAgA0G15gEQRyIDIAEQ6QYgAxDMFhogARDqAyACEMwWGgsgAEHgAWoQmQsgAEHoAWoQnQMgAEHwAWokAAtDAQJ/IwBBEGsiByQAIAdBCGogABDCAyIAKAIAKAIEIQggACgCACABIAIgAyAEIAUgBiAIEQwAIAAQnQMgB0EQaiQAC8kJAQN/IwBBkAJrIgAkACAAIAY2AoACIAAgAzYCiAICQCAEBEAgAEHYAGoiAUGqoAFBrQNBAiAAQTBqQbXmARBHIgMQ9wMiBkGDCBBsQbT0ABBsQYMIEGxBvLwBEGwgBBDoE0HnugEQbCAFEKECQenAARBsIAIQoQIaIAYQ+QMgAxDMFhogAEEANgJIIABBiAJqIAQgBSAAQcgAaiABEOMNIgEgAEEwakG15gEQRyICQQAQ9xEgAhDMFhogARCBDBoMAQsgACgCgAIoAlghASAAKAKAAhCyCyEDIAEEQCAAQdgAaiIEQaqgAUGtA0ECIABBMGpBteYBEEciBRD3AyIGQYMIEGxBtPQAEGxBgwgQbEG8vAEQbCABEOgTQee6ARBsIAMQoQJB6b0BEGwgACgCgAIQswsQoQJB6cABEGwgAhChAhogBhD5AyAFEMwWGiAAQQA2AkggAEGIAmogASADIABByABqIAQQ4w0iASAAQTBqQbXmARBHIgJBABD3ESACEMwWGiABEIEMGgwBCyAAQQA2AlQgAEHIAGpBteYBEEchAiAAQQA2AkQgAEEwahDjDSEEIABBIGoQMCEFIABBADoAHyAAKAKAAhCxCyEGIABB1ABqIQcjAEFAaiIDJAACQCAGEEZFBEAgB0GljQY2AgAgAkG7pAEQowIMAQtBjqQBIQhBpY0GIQkgA0EoakEAEMQBIQECQCAGQeA9EOkBRQ0AIAZB4D0QigEQRkUNACABIANBEGogBkHgPRCKARDOASIGEGkgBhDRASABQa75ABCJARDeAQRAIAAgAUGu+QAQiQEQ1wE2AkQLIAEgByACIAQQ6BACQCABQbWYARDpAUUNACABQbWYARCJARDzAUUNACADIAFBtZgBEIkBEIIBIAUgAxBeIAMQzBYaC0G15gEhCEEAIQkgAUHF3AAQ6QFFDQAgAUHF3AAQiQEQ8gFFDQAgACABQcXcABCJARCLAToAHwsgByAJNgIAIAIgCBCjAiABENEBCyADQUBrJAACQCAAKAJUBEAgAEHYAGoiAUGqoAFBugNBAiAAQQhqQbXmARBHIgMQ9wMiBkGDCBBsQbT0ABBsQYMIEGxB2LsBEGwgACgCVBDoE0HnugEQbCACEKECQem9ARBsIAAoAoACELMLEKECQemoARBsGiAGEPkDIAMQzBYaIAAoAlQhAyAAQQA2AgQgAEGIAmogAyACIABBBGogARDjDSIBIABBCGpBteYBEEciA0EAEPcRIAMQzBYaIAEQgQwaDAELIABB2ABqIgFBqqABQcADQQAgAEEIakG15gEQRyIDEPcDIgZBgwgQbEG09AAQbEGDCBBsQZS8ARBsIAAoAlQQ6BNB57oBEGwgAhChAkHuuQEQbCAAKAJEEOkTQdi/ARBsIAQoAgAQ6RNB5r8BEGwgBEEEahChAkGBvwEQbCAFEKECQYe2ARBsIAAtAB8Q5hNB6b0BEGwgACgCgAIQswsQoQJB6agBEGwaIAYQ+QMgAxDMFhogAEGIAmpBACABQbXmARBHIgEgAEHEAGogBCAFIAAtAB8Q9xEgARDMFhoLIAUQzBYaIAQQgQwaIAIQzBYaCyAAQYACahCZCyAAQYgCahCdAyAAQZACaiQAC9AKAQd/IwBBsAJrIgAkACAAIAU2AqACIAAgAjYCqAICQCADBEAgAEH4AGoiAkGqoAFB8wNBAiAAQUBrQbXmARBHIgUQ9wMiBkGDCBBsQZLzABBsQYMIEGxBvLwBEGwgAxDoE0HnugEQbCAEEKECQenAARBsIAEQoQIaIAYQ+QMgBRDMFhogAEFAa0G15gEQRyEBIABBADYCWCAAQagCaiADIAQgASAAQdgAaiACEOMNIgIgAEHoAGoQiwMiAxD3ESADEOoDIAIQgQwaDAELIAAoAqACKAJYIQIgACgCoAIQsgshAyACBEAgAEH4AGoiBEGqoAFB8wNBAiAAQUBrQbXmARBHIgUQ9wMiBkGDCBBsQZLzABBsQYMIEGxBvLwBEGwgAhDoE0HnugEQbCADEKECQem9ARBsIAAoAqACELMLEKECQenAARBsIAEQoQIaIAYQ+QMgBRDMFhogAEFAa0G15gEQRyEBIABBADYCWCAAQagCaiACIAMgASAAQdgAaiAEEOMNIgIgAEHoAGoQiwMiAxD3ESADEOoDIAIQgQwaDAELIABBADYCZCAAQegAakG15gEQRyEBIABB2ABqEDAhBiAAQQA2AlQgAEFAaxDjDSEJIABBMGoQiwMhCCAAKAKgAhCxCyEDIABB5ABqIQUjAEHwAGsiAiQAAkACQAJAIAMQRkUNACADQeA9EOkBRQ0AIANB4D0QigEQRg0BCyAFQaWNBjYCACABQbukARCjAgwBCyACQdgAaiADQeA9EIoBEM4BIgRB1JgBEIkBEPMBBEAgAkFAayIHIARB1JgBEIkBEIIBIAYgBxBeIAcQzBYaCyAEQa75ABCJARDeAQRAIAAgBEGu+QAQiQEQ1wE2AlQLIAQgBSABIAkQ6BACQCADQZkaEOkBRQ0AIANBmRoQigEQRUUNACACQUBrIANBmRoQigEQzgEiBxCYAQRAA0AgAkEwahAwIQoCQCACQRhqIAcgCxBvEM4BIgMQRkUNACADQdwcEOkBRQ0AIANB3BwQiQEQ8wFFDQAgA0HxJhDpAUUNACADQfEmEIkBEN4BRQ0AIAJBCGoiDCADQdwcEIkBEIIBIAogDBBeIAwQzBYaIAIgA0HxJhCJARDXATYCPCAIIAoQ5RALIAMQ0QEgChDMFhogBxCYASALQQFqIgtLDQALCyAHENEBCyAFQQA2AgAgAUG15gEQowIgBBDRAQsgAkHwAGokAAJAIAAoAmQEQCAAQfgAaiICQaqgAUGABEECIABBGGpBteYBEEciAxD3AyIEQYMIEGxBkvMAEGxBgwgQbEHYuwEQbCAAKAJkEOgTQee6ARBsIAEQoQJB6b0BEGwgACgCoAIQswsQoQJB6agBEGwaIAQQ+QMgAxDMFhogACgCZCEDIABBGGpBteYBEEchBSAAQQA2AhQgAEGoAmogAyABIAUgAEEUaiACEOMNIgIgAEEIahCLAyIDEPcRIAMQ6gMgAhCBDBoMAQsgAEH4AGoiAkGqoAFBhgRBACAAQRhqQbXmARBHIgMQ9wMiBEGDCBBsQZLzABBsQYMIEGxBlLwBEGwgACgCZBDoE0HnugEQbCABEKECQabBARBsIAYQoQJB7rkBEGwgACgCVBDpE0HutgEQbCAIEJ4BEOkTQem9ARBsIAAoAqACELMLEKECQemoARBsGiAEEPkDIAMQzBYaIABBqAJqQQAgAkG15gEQRyIFIAYgAEHUAGogCSAIEPcRCyAFEMwWGiAIEOoDIAkQgQwaIAYQzBYaCyABEMwWGiAAQaACahCZCyAAQagCahCdAyAAQbACaiQAC9cGAQF/IwBB0AJrIgAkACAAIAQ2AsACIAAgATYCyAICQCACBEAgAEGYAWoiAUGqoAFBrQRBAiAAQSBqQbXmARBHIgQQ9wMiBUGDCBBsQb3zABBsQYMIEGxBvLwBEGwgAhDoE0HnugEQbCADEKECQenAARBsQbXmARBsGiAFEPkDIAQQzBYaIABByAJqIAIgAyABEO0OIgEQ6QYgARDuDgwBCyAAKALAAigCWCEBIAAoAsACELILIQIgAQRAIABBmAFqIgNBqqABQa0EQQIgAEEgakG15gEQRyIEEPcDIgVBgwgQbEG98wAQbEGDCBBsQby8ARBsIAEQ6BNB57oBEGwgAhChAkHpvQEQbCAAKALAAhCzCxChAkHpwAEQbEG15gEQbBogBRD5AyAEEMwWGiAAQcgCaiABIAIgAxDtDiIBEOkGIAEQ7g4MAQsgACgCwAIQsQsQ4AEEQCAAQcgCakGNlQYgAEEgakG15gEQRyIBIABBmAFqEO0OIgIQ6QYgAhDuDiABEMwWGgwBCyAAQQA2ApQBIABBiAFqQbXmARBHIQIgAEEgahDtDiEBIAAoAsACELELIABBlAFqIAIgARDpEAJAIAAoApQBBEAgAEGYAWoiA0GqoAFBuwRBAiAAQQhqQbXmARBHIgQQ9wMiBUGDCBBsQb3zABBsQYMIEGxB2LsBEGwgACgClAEQ6BNB57oBEGwgAhChAkHpvQEQbCAAKALAAhCzCxChAkHpqAEQbBogBRD5AyAEEMwWGiAAQcgCaiAAKAKUASACIAMQ7Q4iAxDpBiADEO4ODAELIABBmAFqIgNBqqABQcEEQQAgAEEIakG15gEQRyIEEPcDIgVBgwgQbEG98wAQbEGDCBBsQZS8ARBsIAAoApQBEOgTQee6ARBsIAIQoQJB0bMBEGwgAUEkahChAkHGswEQbCABQQxqEKECQabBARBsIAEQoQJB6b0BEGwgACgCwAIQswsQoQJB7rkBEGwgASgCMBDpE0GbtwEQbCABQRhqEJ4BEOkTQemoARBsGiAFEPkDIAQQzBYaIABByAJqQQAgA0G15gEQRyIDIAEQ6QYgAxDMFhoLIAEQ7g4gAhDMFhoLIABBwAJqEJkLIABByAJqEJ0DIABB0AJqJAALtgMAIwBB0AFrIgAkACAAIAQ2AsABIAAgATYCyAECQCACBEAgAEEYakGqoAFB4QRBAiAAQQhqQbXmARBHIgEQ9wMiBEGDCBBsQc7LABBsQYMIEGxBvLwBEGwgAhDoE0HnugEQbCADEKECQenAARBsQbXmARBsGiAEEPkDIAEQzBYaIABByAFqIAIgAxDiBgwBCyAAKALAASgCWCEBIAAoAsABELILIQIgAQRAIABBGGpBqqABQeEEQQIgAEEIakG15gEQRyIDEPcDIgRBgwgQbEHOywAQbEGDCBBsQby8ARBsIAEQ6BNB57oBEGwgAhChAkHpvQEQbCAAKALAARCzCxChAkHpwAEQbEG15gEQbBogBBD5AyADEMwWGiAAQcgBaiABIAIQ4gYMAQsgAEEYaiIBQaqgAUHiBEEAIABBCGpBteYBEEciAhD3AyIDQYMIEGxBzssAEGxBgwgQbEHOvQEQbCAAKALAARCzCxChAkHpqAEQbBogAxD5AyACEMwWGiAAQcgBakEAIAFBteYBEEciARDiBiABEMwWGgsgAEHAAWoQmQsgAEHIAWoQnQMgAEHQAWokAAv3BAIDfwF+IwBBwAFrIgUkACAFIAQ2ArgBAkAgAkUEQCAAQQA2AhxB4AgQ9gUMAQsgBUEQakGqoAFBlAVBACAFQbXmARBHIgQQ9wMiBkGDCBBsQcPyABBsQYMIEGxB9r0BEGwgBSgCuAEQswsQoQJB6cABEGwgARChAkGvvAEQbCACEOgTQee6ARBsIAMQoQIaIAYQ+QMgBBDMFhojAEHQAGsiASQAENQNIQQjAEEQayICJAAgAkEIaiIDEJMDIAMoAgAgBELQDxCuAyEIIAMQmAMaIAJBEGokACAIpyECENQNIQYjAEEQayIDJAAgA0EIaiIEEJMDIAQoAgAgBkEMakItEK4DIQggBBCYAxogA0EQaiQAIAinIQMCQCAAKAIcIgRFBEAgAUFAayIDIAAQoAMgAUHIAGogAxChAyEEIAMQmAMaIABBEGoQQ0UEQCAAIAAoAhwgAmo2AhwgAUEYaiAEEKEDIgAgAjYCCCABIAI2AhAgASAAKQIANwMIQeAIIAKtAn8jAEEQayIDJAAgAUEoaiIAQQA2AhAgAAJ/IAAQxAwiAEGkuQI2AgAgAUEIaiIGEKwDIQcgA0EIahCsAxojAEEQayICJAAgAiAHNgIIIABBBGogAigCCCIHEJ4DIAcoAgg2AgggAkEQaiQAIAALNgIQIANBEGokACAGEJEDGiAACxDyBSAAEOoFGgsgBBCRAxoMAQsgBCACIANsSQ0AIAFByABqIgIgAEEIahCjAyACKAIAIgMgAEEQaiADKAIAKAIgEQAAIABBADYCHEHgCBD2BSACEJgDGgsgAUHQAGokAAsgBUG4AWoQmQsgBUHAAWokAAuBAQIDfwF+IwBBIGsiAiQAIAJBGGoiAyAAQRBqEKMDIAMQlgMEQCACKAIYIQMgAiAAKQIIIgU3AwggAiAFNwMQIAIoAgghACADIAIoAgwiBEEBdWoiAyABIARBAXEEfyADKAIAIABqKAIABSAACxEAAAsgAkEYahCYAxogAkEgaiQACw0AIABBlLcCNgIAIAALCgAgABD+ERCqEwsLACAAEK4CEMUDGgvgAQIFfwF+IwBBEGsiBiQAIAYgATYCDCAAQRBqIgEhBCABEKsBIQcjAEEgayIBJAAgAUEYaiIFIAQQowMgBRCWAwRAIAEoAhghBCABIAApAggiCTcDCCABIAk3AxAjAEEQayIAJAAgBCABKAIMIghBAXVqIQUgASgCCCEEIAhBAXEEQCAFKAIAIARqKAIAIQQLIABBCGogBxC/AyEHIAYoAgwhCCAAIAMQwgMhAyAFIAcoAgAgCCACIAMoAgAgBBEGACAAQRBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALQQEBfyMAQRBrIgQkACAEIAE2AgwgAEEIaiAAQRBqIgAgABCrASAAEHogABCeCiAEQQxqIAIgAxCDEiAEQRBqJAALvQECA38BfiMAQSBrIggkACAIQRhqIgkgARCjAyAJEJYDBEAgCCgCGCEBIAggACkCACILNwMIIAggCzcDECMAQRBrIgAkACABIAgoAgwiCkEBdWohCSAIKAIIIQEgCkEBcQRAIAkoAgAgAWooAgAhAQsgAEEIaiAEEL8DIQQgBSgCACEFIAAgBxDCAyEHIAkgAiADIAQoAgAgBSAGIAcoAgAgAREMACAAQRBqJAALIAhBGGoQmAMaIAhBIGokAAsqAQF/IABBEGoiAUEgahCdAyABQRRqEOoDIAFBCGoQzBYaIAEQkQMaIAALCgAgABCEEhCqEwtBAQF/IwBBEGsiBCQAIAQgATYCDCAAQQhqIABBEGoiACAAEKsBIAAQeiAAEMAFIARBDGogAiADEIMSIARBEGokAAsiAQF/IABBEGoiAUEYahCdAyABQQhqEMwWGiABEJEDGiAACwoAIAAQhxIQqhML6AECBn8BfiMAQRBrIgYkACAGIAE2AgwgAEEQaiIBIQQgARCrASEJIAEQeiEHIwBBIGsiASQAIAFBGGoiBSAEEKMDIAUQlgMEQCABKAIYIQQgASAAKQIIIgo3AwggASAKNwMQIwBBEGsiACQAIAQgASgCDCIIQQF1aiEFIAEoAgghBCAIQQFxBEAgBSgCACAEaigCACEECyAAQQhqIAcQvwMhByAGKAIMIQggACADEMIDIQMgBSAJIAcoAgAgCCACIAMoAgAgBBEIACAAQRBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALIQEBfyAAQRBqIgFBFGoQnQMgAUEIahDqAyABEJEDGiAACwoAIAAQihIQqhMLKwEBfyAAQRBqIgFBIGoQnQMgAUEUahDMFhogAUEIahDMFhogARCRAxogAAsKACAAEIwSEKoTC8wBAgV/AX4jAEEQayIGJAAgBiABNgIMIABBEGoiASEFIAEQqwEhByMAQSBrIgEkACABQRhqIgQgBRCjAyAEEJYDBEAgASgCGCEEIAEgACkCCCIJNwMIIAEgCTcDECMAQRBrIgUkACAEIAEoAgwiCEEBdWohBCABKAIIIQAgCEEBcQRAIAQoAgAgAGooAgAhAAsgBCAHIAYoAgwgAiAFQQhqIAMQwgMoAgAgABEGACAFQRBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALDQAgAEHkuAI2AgAgAAsKACAAEI8SEKoTCwoAIAAQrgIQzwoLFQAgAEGAuQI2AgAgAEEEahDGAyAACwoAIAAQkhIQqhMLSAECfyMAQSBrIgEkACABQQhqQQwQwBYgASABQRhqEK0IEMACIgIoAgAgAEEEaiABEJUSIAIQuwIhACACEK4IIAFBIGokACAACxwAIAAQxAwiAEGAuQI2AgAgAEEEaiABIAIQzQwLEAAgASAAQQRqIgAgABCVEgvnBAEPfyMAQRBrIgEkACABQQhqIgIgAEEEahCjAwJAIAIQlgNFDQAgASgCCEEQahBDDQAgASgCCCEEIAEoAghBEGohCCMAQbABayIAJAAgAEGIAWoiAhDIBiAAQaABaiIJIAIoAgAiBSAFKAIAKAI0EQAAIAIQmAMaIAJBABDEASEFIABB8ABqIAkQzAEhAiAFQdwcEIkBIAIQaSACENEBIABB2ABqIAgQzAEhAiAFQdSYARCJASACEGkgAhDRASAAEKoLNgJQIABB0ABqIgcoAgAgAEFAa0HwtgIQRyICEK0LIAIQzBYaIAcoAgAgAEEoaiAFEM4BIgIQsAsgAhDRASAAQSBqIgoQkgsgCigCACEPIABBGGogBxDCAyEQIABBADYCFCAAQZ0KNgIQIABBCGoiCyAEEKADIwBBEGsiBCQAIAQgBEEIaiALEJ4DKQIANwMAIwBBEGsiDCQAIAxBCGogBBChAyENIwBBIGsiAiQAIAJBADYCECACQRBqELsDIQYgAkGoCjYCBCMAQRBrIg4kAEEkEMAWIAIoAgQQwwMiA0HQuAI2AgAgAyAAKQIQNwIIIANBEGogDSAIEL8RIA5BCGogAxCbAygCACEDIA5BEGokACACIAM2AgggBiACQQhqIgMQvQMgAxC+ESACQRhqIAYQvwMhAyAGEJ0DIAMoAgAhBiACQSBqJAAgDRCRAxogBBCYAxogDEEQaiQAIARBEGokACAPIBAoAgAgBhCVCyALEJgDGiAKEJgDGiAHEJkLIAUQ0QEgCRDMFhogAEGwAWokAAsgAUEIahCYAxogAUEQaiQACxUAIABBpLkCNgIAIABBBGoQxgMgAAsKACAAEJgSEKoTC2QBA38jAEEgayIBJAAgAUEIakEQEMAWIAEgAUEYahCtCBDAAiICKAIAIABBBGogARCbEiACELsCIQMgAigCACEAIAJBADYCACAABEAgAhC3AigCBBogABCqEwsgAUEgaiQAIAMLTQEBfyAAEMQMIgNBpLkCNgIAIAEQrAMhASACEKwDGiMAQRBrIgAkACAAIAE2AgggA0EEaiAAKAIIIgEQoQMgASgCCDYCCCAAQRBqJAALEAAgASAAQQRqIgAgABCbEgtLAQF/IwBBEGsiASQAIAFBCGoiAiAAQQRqIgAQowMgAhCWAwRAIAEoAggiAiACKAIcIAAoAghqNgIcCyABQQhqEJgDGiABQRBqJAALBgBBrbwDCxEAIAAEQCAAELgSIAAQqhMLCxUBAX9BEBDAFiIBIAAtAAAQtxIgAQsKAEEIEMAWEIoDC8EBAQd/IwBBEGsiAiQAQQgQwBYhBSACIAEQnwYgAkEIaiACELsSIQYjAEEgayIBJAAgBSAANgIAQRQQwBYhAyABQRhqIAYQvBIhByMAQSBrIgQkACAEIAA2AhQgAxDQAyIDQdi5AjYCACADQQxqIARBCGogBEEUaiAHEL0SIggQvhIgCBD1DCAEQSBqJAAgBSADNgIEIAcQ9AUgASAANgIEIAEgADYCACABQSBqJAAgBhD0BSACEPQFIAJBEGokACAFCw8AIAAEQCAAEJgDEKoTCws0AQJ/IwBBEGsiASQAIAFBCGoiAiAAEQEAQQgQwBYgAhCeAyEAIAIQmAMaIAFBEGokACAAC/UBAQV/IwBBEGsiBCQAQay8Ay0AAEUEQEGsvANBAToAAAsgAEGkvAMQowMgABCWA0UEQCAEQQE6AAcjAEEQayIFJAAjAEEQayICJAAjAEEQayIBJAAgAkEBNgIEIAJBARC+AjYCCCABQRBqJAAgAigCCCEBIwBBEGsiAyQAIAEQ0AMiAUHYvAI2AgAgARCuAiAELQAHELcSIANBEGokACAEQQhqIgEgAhD3BSIDEK4CIAMQ+AUgAigCCCIDBEAgAigCBBogAxC5AQsgAkEQaiQAIAVBEGokACAAIAEQlwMgARCYAxpBpLwDIAAQ0gMLIARBEGokAAu/AgEGfyAAQQhqEJYDBEAgACgCCCEDIwBBIGsiBCQAIAQgARCoBiEFIwBBEGsiBiQAIwBBIGsiACQAIARBCGoiAkEANgIQIABBCGogAEEYaiIBQQEQ4AQgACABQQEQsQIQwAIiASgCABDuEiIHQeS9AjYCACAHQQRqIAUgABDvDCACIAEQuwI2AhAgARDSBSAAQSBqJAAgBkEQaiQAIANBCGoiACgCECEBIABBADYCEAJAAn8gACABRgRAIAAiASgCAEEQagwBCyABRQ0BIAEoAgBBFGoLIQMgASADKAIAEQEACwJAIAIoAhAiAUUEQCAAQQA2AhAMAQsgASACRgRAIAAgADYCECACKAIQIgEgACABKAIAKAIMEQAADAELIAAgATYCECACQQA2AhALIAIQ6gUaIAUQ9AUgBEEgaiQACwujCAEIfyMAQaADayIFJAAgBUH4AWpBuJ8BQcwAQQAgBUHgAWoiCUG15gEQRyIGEPcDIgdBgwgQbEGaFBBsQYMIEGxBp7UBEGwgARChAkHpqAEQbBogBxD5AyAGEMwWGiMAQdAAayIGJAAgBkE4aiAGQTBqIAIQqAYiAhDuDCEHIAIQ9AUgBiAGQRhqIAcQ5wUiCxDcCCEIIwBBIGsiAiQAIAlBADYCECACQQhqQSAQwBYgAiACQRhqEK0IEMACIgooAgAQjA0iDEHQnAI2AgAgDEEIaiAIIAIQ0wggCSAKELsCNgIQIAoQrgggAkEgaiQAIAgQkgggCxCSCCAHEOsFGiAGQdAAaiQAIwBB0ABrIgIkACACQThqIAJBMGogAxCoBiIDEO4MIQYgAxD0BSACIAJBGGogBhDnBSIIENwIIQkjAEEgayIDJAAgBUEANgLYASADQQhqQSAQwBYgAyADQRhqEK0IEMACIgcoAgAQjA0iCkH0nAI2AgAgCkEIaiAJIAMQ0wggBSAHELsCNgLYASAHEK4IIANBIGokACAJEJIIIAgQkgggBhDrBRogAkHQAGokACAFQbABaiAEEO0MAkAgBUGoAWogASAFQZABakEAEMQBIgIQ3ANFBEAgBUH4AWpBuJ8BQdQAQQIgBUGAAWpBteYBEEciABD3AyIBQYMIEGxBmhQQbEGDCBBsQZTRABBsGiABEPkDIAAQzBYaDAELAkAgAhBFBEAgAhDgAUUNAQsgBUH4AWpBuJ8BQdkAQQIgBUGAAWpBteYBEEciABD3AyIBQYMIEGxBmhQQbEGDCBBsQZkREGwaIAEQ+QMgABDMFhoMAQsgBUGAAWoiAyACQQAQYhCCAQJAIAMQQwRAIAVB+AFqQbifAUHfAEECIAVB8ABqQbXmARBHIgAQ9wMiAUGDCBBsQZoUEGxBgwgQbEHUCBBsGiABEPkDIAAQzBYaDAELIAAoAgAhBiAFQfgBakGKFBBHIQkgBSAFQeABahDnBSIDQRhqIAVByAFqEOcFGiADQTBqIAVBsAFqEOcFGiAFQeAAaiIKIAYgCSABAn8jAEEgayIAJAAgBUHIAGoiAUEANgIQIABBCGpB0AAQwBYgACAAQRhqEK0IEMACIgcoAgAQng0iCEGYvQI2AgAgAxCsAyELIAAQrAMaIwBBEGsiBCQAIAQgCzYCCCAIQQhqIAQoAggiCBC5CCILQRhqIAhBGGoQuQgaIAtBMGogCEEwahC5CBogBEEQaiQAIAEgBxC7AjYCECAHEK4IIABBIGokACABCyAGKAIAKAIQEQYAIAoQzBYaIAEQ6wUaIAMQthIgCRDMFhoLIAVBgAFqEMwWGgsgAhDRASAFQbABahDrBRogBUHIAWoQ6wUaIAVB4AFqEOsFGiAFQaADaiQAC+sCAQd/IwBBoAJrIgUkACAFQfgAaiIHQbifAUEzQQAgBUHgAGoiCEG15gEQRyIGEPcDIglBgwgQbEG2qwEQbEGDCBBsQfu5ARBsIAEQoQJB3rUBEGwgAhChAkHpqAEQbBogCRD5AyAGEMwWGiAHIAMQ7AwgCCAEEO0MIAAoAgAhAyAFQQhqIAcQ5wUiBEEYaiAIEOcFGiAFQdAAaiIJIAMgASACAn8jAEEgayIAJAAgBUE4aiIBQQA2AhAgAEEIakE4EMAWIAAgAEEYahCtCBDAAiIGKAIAEJ4NIgpB9LwCNgIAIAQQrAMhCyAAEKwDGiMAQRBrIgIkACACIAs2AgggCkEIaiACKAIIIgoQuQhBGGogCkEYahC5CBogAkEQaiQAIAEgBhC7AjYCECAGEK4IIABBIGokACABCyADKAIAKAIQEQYAIAkQzBYaIAEQ6wUaIAQQ6QUaIAgQ6wUaIAcQ6wUaIAVBoAJqJAALcAEEfyMAQRBrIgMkACADQQhqIgQgARDdCyAEKAIAIQIjAEEQayIBJAAgAUEIaiIFIAIoAlwiAiACKAIAKAIQEQAAIAAgBSgCACIAIAAoAgAoAggRAAAgBRCYAxogAUEQaiQAIAQQmAMaIANBEGokAAsGAEGxvAMLDwAgAARAIAAQkQMQqhMLC8EBAQd/IwBBEGsiAiQAQQgQwBYhBSACIAEQnwYgAkEIaiACELsSIQYjAEEgayIBJAAgBSAANgIAQRQQwBYhAyABQRhqIAYQvBIhByMAQSBrIgQkACAEIAA2AhQgAxDQAyIDQdi6AjYCACADQQxqIARBCGogBEEUaiAHEL0SIggQvhIgCBD1DCAEQSBqJAAgBSADNgIEIAcQ9AUgASAANgIEIAEgADYCACABQSBqJAAgBhD0BSACEPQFIAJBEGokACAFCwYAQbS8AwsPACAABEAgABC7BxCqEwsLvAEBB38jAEEQayICJABBCBDAFiEDIAIgARCfBiACQQhqIAIQuxIhBSMAQRBrIgYkACADIAA2AgBBFBDAFiEEIAZBCGogBRC8EiEHIwBBIGsiASQAIAEgADYCFCAEENADIgRBkLsCNgIAIARBDGogAUEIaiABQRRqIAcQvRIiCBC+EiAIEPUMIAFBIGokACADIAQ2AgQgBxD0BSADIAAgABCcAyAGQRBqJAAgBRD0BSACEPQFIAJBEGokACADCwYAQbe8AwsgACAABEAgAEEwahCdAyAAQRhqEOsFGiAAEOsFEKoTCwvBAQEHfyMAQRBrIgIkAEEIEMAWIQUgAiABEJ8GIAJBCGogAhC7EiEGIwBBIGsiASQAIAUgADYCAEEUEMAWIQMgAUEYaiAGELwSIQcjAEEgayIEJAAgBCAANgIUIAMQ0AMiA0HIuwI2AgAgA0EMaiAEQQhqIARBFGogBxC9EiIIEL4SIAgQ9QwgBEEgaiQAIAUgAzYCBCAHEPQFIAEgADYCBCABIAA2AgAgAUEgaiQAIAYQ9AUgAhD0BSACQRBqJAAgBQsGAEG6vAMLDwAgAARAIAAQ6QUQqhMLC8EBAQd/IwBBEGsiAiQAQQgQwBYhBSACIAEQnwYgAkEIaiACELsSIQYjAEEgayIBJAAgBSAANgIAQRQQwBYhAyABQRhqIAYQvBIhByMAQSBrIgQkACAEIAA2AhQgAxDQAyIDQYi8AjYCACADQQxqIARBCGogBEEUaiAHEL0SIggQvhIgCBD1DCAEQSBqJAAgBSADNgIEIAcQ9AUgASAANgIEIAEgADYCACABQSBqJAAgBhD0BSACEPQFIAJBEGokACAFCxoAIABBMGoQ6wUaIABBGGoQ6wUaIAAQ6wUaC+MEAQt/IwBBIGsiBSQAIAAQigMiB0EIahCKAyEIIwBBEGsiAyQAIwBBEGsiACQAIwBBEGsiAiQAIABBATYCBCAAQTAQwBY2AgggAkEQaiQAIAAoAgghAiMAQRBrIgQkACACENADIgJBvLwCNgIAIAIQvwUiAkHQvQI2AgAgAkG8vQI2AgAgAkEIahDoBRogBEEQaiQAIAVBGGoiBCAAEPcFIgIQvwUgAhD4BSAAKAIIIgIEQCAAKAIEGiACEKoTCyAAQRBqJAAgA0EQaiQAIAggBBCXAyAEEJgDGiMAQRBrIgAkACAAQQE2AgwQ4wwjAEEQayIJJAAgAEEMaiEKIwBBEGsiAiQAQcS7AxC1AiEDQcS7AxC3AiEGIwBBEGsiCyQAIAMEQANAIAYgA0HEuwMQqwEgA0EQaiAKEPgLIgwbIQYgA0EEaiADIAwbKAIAIgMNAAsLIAtBCGogBhCmASgCACEDIAtBEGokACACIAM2AgggAkHEuwMQpwE2AgACfwJAIAJBCGogAhC0AUUNAEHEuwMQqwEgCiACQQhqELIBEPgLDQAgAigCCAwBC0HEuwMQpwELIQMgAkEQaiQAIAlBCGogAxCmASgCACECIAlBEGokACAAIAI2AggQ4wwgAEHEuwMQlQE2AgACQCAAQQhqIAAQtQEEQCAEEJQDDAELEOMMIAQgASAAQQxqEOQMKAIAEQAACyAAQRBqJAAgByAEEJcDIAQQmAMaIAcoAgAhACAFQRBqIAgQoQMhASAAKAIAKAIIIQIgBSABKQIANwMIIAAgBUEIaiACEQAAIAVBIGokAAsaAQF/IABBCGoiARDQBiABEJgDGiAAEJgDGgsKAEGkvAMQkQMaCykBAX8jAEEQayICJAAgAiABOgAPIAJBD2ogABECACEAIAJBEGokACAACysBAX8jAEEQayICJAAgAEGStwMgAkEIaiABEK0HEAM2AgAgAkEQaiQAIAALCQAgACABELUHCxUAIAAgARDJAiIAQQRqIAIQvxIgAAsZACAAIAEoAgA2AgAgAEEEaiABQQRqEL8SCwoAIAAgARC8EhoLFQAgAEHYuQI2AgAgAEEMahD1DCAACwoAIAAQwBIQqhMLUAEDfyAAQQxqIgEQtwIhAiABKAIAGiMAQRBrIgAkACAAQQhqIgMgAhD5DCADEPQFIAAQ0QYgAiAAEM0GIAAQ9AUgAEEQaiQAIAEQtwIQ9AULWQECfyMAQRBrIgQkACAAKAIEIgNBAXUgAWohASAAKAIAIQAgA0EBcQRAIAEoAgAgAGooAgAhAAsgBEEIaiIDIAIQngYgASADIAARAAAgAxD0BSAEQRBqJAALFQEBf0EIEMAWIgEgACkCADcDACABC5MBAQJ/IwBBMGsiBiQAIAAoAgQiB0EBdSABaiEBIAAoAgAhACAHQQFxBEAgASgCACAAaigCACEACyAGQSBqIgcgAhCgBiAGQRhqIgIgAxCeBiAGQRBqIgMgBBCeBiAGQQhqIgQgBRCeBiABIAcgAiADIAQgABEGACAEEPQFIAMQ9AUgAhD0BSAHEMwWGiAGQTBqJAALjwEBAn8jAEEwayIGJAAgACgCBCIHQQF1IAFqIQEgACgCACEAIAdBAXEEQCABKAIAIABqKAIAIQALIAZBIGoiByACEKAGIAZBEGoiAiADEKAGIAZBCGoiAyAEEJ4GIAYgBRCeBiABIAcgAiADIAYgABEGACAGEPQFIAMQ9AUgAhDMFhogBxDMFhogBkEwaiQAC1gBA38jAEEQayICJAAgACgCACEDIAJBCGoiBCAAKAIEIgBBAXUgAWoiASAAQQFxBH8gASgCACADaigCAAUgAwsRAAAgBBD/BSEAIAQQ9AUgAkEQaiQAIAALFQAgAEHYugI2AgAgAEEMahD1DCAACwoAIAAQyBIQqhMLbQECfyMAQSBrIgUkACAAKAIEIgRBAXUgAWohASAAKAIAIQAgBEEBcQRAIAEoAgAgAGooAgAhAAsgBUEQaiIEIAIQoAYgBUEIaiICIAMQngYgASAEIAIgABEDACACEPQFIAQQzBYaIAVBIGokAAsVACAAQZC7AjYCACAAQQxqEPUMIAALCgAgABDLEhCqEwsVACAAQci7AjYCACAAQQxqEPUMIAALCgAgABDNEhCqEwtXAQJ/IwBBEGsiBCQAIAAoAgQiBUEBdSABaiEBIAAoAgAhACAFQQFxBEAgASgCACAAaigCACEACyAEIAMQoAYgASACIAQgABEDACAEEMwWGiAEQRBqJAALFQAgAEGIvAI2AgAgAEEMahD1DCAACwoAIAAQ0BIQqhMLNwEBfyAAKAIEIgNBAXUgAWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEAAAszAQF/IAAoAgAhAiAAKAIEIgBBAXUgAWoiASAAQQFxBH8gASgCACACaigCAAUgAgsRAQALDQAgAEG8vAI2AgAgAAsKACAAENQSEKoTCxUAIAAQvwUiACAAKAIAKAIAEQIAGgsNACAAQdi8AjYCACAACwoAIAAQ1xIQqhMLCgAgABCuAhC4EgsVACAAQfS8AjYCACAAQQhqEOISIAALCgAgABDaEhCqEwtIAQJ/IwBBIGsiASQAIAFBCGpBOBDAFiABIAFBGGoQrQgQwAIiAigCACAAQQhqIAEQ3RIgAhC7AiEAIAIQrgggAUEgaiQAIAALUQEBfyAAEJ4NIgNB9LwCNgIAIAEQrAMhASACEKwDGiMAQRBrIgAkACAAIAE2AgggA0EIaiAAKAIIIgEQ5wVBGGogAUEYahDnBRogAEEQaiQACxAAIAEgAEEIaiIAIAAQ3RILCgAgAEEIahDiEgsPACAAQQhqEOISIAAQqhMLKQACQCAAQQhqIQAgASgCACIBBEAgAEEYaiABIAIQkAgMAQsgABDxBQsLCAAgABDpBRoLFQAgAEGYvQI2AgAgAEEIahC2EiAACwoAIAAQ4xIQqhMLSQECfyMAQSBrIgEkACABQQhqQdAAEMAWIAEgAUEYahCtCBDAAiICKAIAIABBCGogARDmEiACELsCIQAgAhCuCCABQSBqJAAgAAthAQF/IAAQng0iA0GYvQI2AgAgARCsAyEBIAIQrAMaIwBBEGsiACQAIAAgATYCCCADQQhqIAAoAggiARDnBSICQRhqIAFBGGoQ5wUaIAJBMGogAUEwahDnBRogAEEQaiQACxAAIAEgAEEIaiIAIAAQ5hILCgAgAEEIahC2EgsPACAAQQhqELYSIAAQqhMLdgEBfwJAIABBCGohAAJAIAEoAgAiAUUNACAAQTBqIgQQ7gVFDQAgBCABIAIQkAgMAQsCQCACQeTjABCiAkUNACAAEO4FRQ0AIAAgAxC7CAwBCwJAIAJB3+cAEKICRQ0AIABBGGoiABDuBUUNACAAIAMQuwgLCwsWACAAQby9AjYCACAAQQhqEOsFGiAACw0AIAAQ6xIaIAAQqhMLGAAgAEEIaiIAEO4FBEAgACABIAIQxAsLCw0AIABBiL4CNgIAIAALFQAgAEHkvQI2AgAgAEEEahD0BSAACwoAIAAQ7xIQqhMLUgECfyMAQSBrIgEkACAAQQRqIQIgAUEIaiABQRhqIgBBARDgBCABIABBARCxAhDAAiIAKAIAIAIgARDyEiAAELsCIQIgABDSBSABQSBqJAAgAgscACAAEO4SIgBB5L0CNgIAIABBBGogASACEPgMCxAAIAEgAEEEaiIAIAAQ8hILVQECfyMAQRBrIgMkACMAQSBrIgQkACAEQQhqIAEgAhC4BiEBIANBCGoiAiAAKAIEQQJBpL4CIAFB+wURCgAQpgEaIARBIGokACACEPQFIANBEGokAAsQAEHAvANBwLwDELUCEPYSCy0AIAEEQCAAIAEoAgAQ9hIgACABKAIEEPYSIAAQtwIgAUEQahC4AiABEKoTCwtOAQN/IwBB4ABrIgEkACABIAA2AgAgAUEQaiIAQdg4IAEQhBMgABCKE0EBaiICEKkTIgMEfyADIAAgAhD6EgVBAAshACABQeAAaiQAIAALkwQAQZC3A0HmiwEQGUGcuANBu9MAQQFBAUEAEBpB0bwDQe83QQFBgH9B/wAQG0HSvANB6DdBAUGAf0H/ABAbQdO8A0HmN0EBQQBB/wEQG0HUvANBmBxBAkGAgH5B//8BEBtB1bwDQY8cQQJBAEH//wMQG0GRtwNBgh5BBEGAgICAeEH/////BxAbQdG7A0H5HUEEQQBBfxAbQda8A0Hf4wBBBEGAgICAeEH/////BxAbQai5A0HW4wBBBEEAQX8QG0HXvANB+yVCgICAgICAgICAf0L///////////8AEIUXQdi8A0H6JUIAQn8QhRdB2bwDQdIiQQQQHEHavANB4f8AQQgQHEGouANB7eQAEB1BzbwDQb2wARAdQc68A0EEQdPkABAeQc+8A0ECQfnkABAeQdC8A0EEQYjlABAeQZK3A0Gn3gAQH0HbvANBAEH4rwEQIEHcvANBAEHesAEQIEHdvANBAUGWsAEQIEHevANBAkGIrQEQIEHfvANBA0GnrQEQIEHgvANBBEHPrQEQIEHhvANBBUHsrQEQIEHivANBBEGDsQEQIEHjvANBBUGhsQEQIEHcvANBAEHSrgEQIEHdvANBAUGxrgEQIEHevANBAkGUrwEQIEHfvANBA0HyrgEQIEHgvANBBEHXrwEQIEHhvANBBUG1rwEQIEHkvANBBkGSrgEQIEHlvANBB0HIsQEQIAt8AQR/A0AgACIBQQFqIQAgASwAABCAEw0ACwJAAkACQCABLAAAIgRBK2sOAwECAAILQQEhAwsgACwAACEEIAAhAQsgBBD/EgRAA0AgAkEKbCABLAAAa0EwaiECIAEsAAEhACABQQFqIQEgABD/Eg0ACwsgAkEAIAJrIAMbC4AEAQN/IAJBgARPBEAgACABIAIQISAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvWAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhD6EhoPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADDQIgAEEDcUUNAQNAIAJFDQQgACABLQAAOgAAIAFBAWohASACQQFrIQIgAEEBaiIAQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCAAIAEoAgA2AgAgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQADQCAAIAEtAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIgINAAsLC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwYAQei8AwvUAQMCfAF/AX5B7LwDLQAARQRAECMhBEHsvANBAToAAEHtvAMgBDoAAAsgAQJ+AnwCQAJAAkAgAA4FAgABAQABC0HtvAMtAABFDQAQJAwCC0HovANBHDYCAEF/DwsQIgsiAkQAAAAAAECPQKMiA5lEAAAAAAAA4ENjBEAgA7AMAQtCgICAgICAgICAfwsiBTcDACABAn8gAiAFQugHfrmhRAAAAAAAQI9AokQAAAAAAECPQKIiAplEAAAAAAAA4EFjBEAgAqoMAQtBgICAgHgLNgIIQQALCgAgAEEwa0EKSQsQACAAQSBGIABBCWtBBUlyC+MBAQJ/IAJBAEchAwJAAkACQCAAQQNxRSACRXINACABQf8BcSEEA0AgAC0AACAERg0CIAJBAWsiAkEARyEDIABBAWoiAEEDcUUNASACDQALCyADRQ0BCwJAIAAtAAAgAUH/AXFGIAJBBElyRQRAIAFB/wFxQYGChAhsIQMDQCAAKAIAIANzIgRBf3MgBEGBgoQIa3FBgIGChHhxDQIgAEEEaiEAIAJBBGsiAkEDSw0ACwsgAkUNAQsgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBAWsiAg0ACwtBAAuBAQECfwJAAkAgAkEETwRAIAAgAXJBA3ENAQNAIAAoAgAgASgCAEcNAiABQQRqIQEgAEEEaiEAIAJBBGsiAkEDSw0ACwsgAkUNAQsDQCAALQAAIgMgAS0AACIERgRAIAFBAWohASAAQQFqIQAgAkEBayICDQEMAgsLIAMgBGsPC0EACyoBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQlxMhACAEQRBqJAAgAAuhAQEEfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIANBCGoiBkGgwgJBkAEQ+hIaIAMgADYCNCADIAA2AhwgA0H/////B0F+IABrIgQgBEH/////B0sbIgQ2AjggAyAAIARqIgA2AiQgAyAANgIYIAYgASACEJYTIAQEQCADKAIcIgAgACADKAIYRmtBADoAAAsgA0GgAWokACAFQRBqJAALKgEBfyMAQRBrIgIkACACIAE2AgwgAEHs6gAgARCkEyEAIAJBEGokACAACwkAIAAoAjwQJQvYAgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQUgA0EQaiEBQQIhBwJ/AkACQAJAIAAoAjwgAUECIANBDGoQJhCmEwRAIAEhBAwBCwNAIAUgAygCDCIGRg0CIAZBAEgEQCABIQQMBAsgASAGIAEoAgQiCEsiCUEDdGoiBCAGIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgBmshBSAAKAI8IAQiASAHIAlrIgcgA0EMahAmEKYTRQ0ACwsgBUF/Rw0BCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAQsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAHQQJGDQAaIAIgBCgCBGsLIQEgA0EgaiQAIAELRgEBfyAAKAI8IQMjAEEQayIAJAAgAyABpyABQiCIpyACQf8BcSAAQQhqEC0QphMhAiAAKQMIIQEgAEEQaiQAQn8gASACGwvaAQECfwJAIAFB/wFxIgMEQCAAQQNxBEADQCAALQAAIgJFIAIgAUH/AXFGcg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgJBf3MgAkGBgoQIa3FBgIGChHhxDQAgA0GBgoQIbCEDA0AgAiADcyICQX9zIAJBgYKECGtxQYCBgoR4cQ0BIAAoAgQhAiAAQQRqIQAgAkGBgoQIayACQX9zcUGAgYKEeHFFDQALCwNAIAAiAi0AACIDBEAgAkEBaiEAIAMgAUH/AXFHDQELCyACDwsgABCKEyAAag8LIAALaQEDfwJAIAAiAUEDcQRAA0AgAS0AAEUNAiABQQFqIgFBA3ENAAsLA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEAC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEIwTIQAgASgCAEFAags2AgAgAA8LIAEgAkH+B2s2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsL2gIBBH8jAEHQAWsiBSQAIAUgAjYCzAEgBUGgAWoiAkEAQSgQ/BIaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEI4TQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEIsTDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEI4TCyECIAgEQCAAQQBBACAAKAIkEQcAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQL+BICEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRICQAJAAkACQANAIAEhDCAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCAMIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByAMayIHIA5B/////wdzIhhKDQcgAARAIAAgDCAHEI8TCyAHDQYgCCABNgJMIAFBAWohB0F/IQ8CQCABLAABEP8SRQ0AIAEtAAJBJEcNACABQQNqIQcgASwAAUEwayEPQQEhEwsgCCAHNgJMQQAhDQJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDXIhDSAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEQ/xJFDQAgCi0AAkEkRw0AIAosAAFBAnQgBGpBwAFrQQo2AgAgCkEDaiEJQQEhEyAKLAABQQN0IANqQYADaygCAAwBCyATDQYgCkEBaiEJIABFBEAgCCAJNgJMQQAhE0EAIRAMAwsgAiACKAIAIgFBBGo2AgBBACETIAEoAgALIRAgCCAJNgJMIBBBAE4NAUEAIBBrIRAgDUGAwAByIQ0MAQsgCEHMAGoQkBMiEEEASA0IIAgoAkwhCQtBACEHQX8hCwJ/IAktAABBLkcEQCAJIQFBAAwBCyAJLQABQSpGBEACfwJAIAksAAIQ/xJFDQAgCS0AA0EkRw0AIAksAAJBAnQgBGpBwAFrQQo2AgAgCUEEaiEBIAksAAJBA3QgA2pBgANrKAIADAELIBMNBiAJQQJqIQFBACAARQ0AGiACIAIoAgAiCkEEajYCACAKKAIACyELIAggATYCTCALQX9zQR92DAELIAggCUEBajYCTCAIQcwAahCQEyELIAgoAkwhAUEBCyEUAkADQCAHIRUgASIRLAAAIgdB+wBrQUZJDQEgEUEBaiEBIAcgFUE6bGpB/70Cai0AACIHQQFrQQhJDQALIAggATYCTEEcIQoCQAJAIAdBG0cEQCAHRQ0MIA9BAE4EQCAEIA9BAnRqIAc2AgAgCCADIA9BA3RqKQMANwNADAILIABFDQkgCEFAayAHIAIgBhCREwwCCyAPQQBODQsLQQAhByAARQ0ICyANQf//e3EiCSANIA1BgMAAcRshDUEAIQ9BxxIhFiASIQoCQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCARLAAAIgdBX3EgByAHQQ9xQQNGGyAHIBUbIgdB2ABrDiEEFRUVFRUVFRUOFQ8GDg4OFQYVFRUVAgUDFRUJFQEVFQQACwJAIAdBwQBrDgcOFQsVDg4OAAsgB0HTAEYNCQwUCyAIKQNAIRlBxxIMBQtBACEHAkACQAJAAkACQAJAAkAgFUH/AXEOCAABAgMEGwUGGwsgCCgCQCAONgIADBoLIAgoAkAgDjYCAAwZCyAIKAJAIA6sNwMADBgLIAgoAkAgDjsBAAwXCyAIKAJAIA46AAAMFgsgCCgCQCAONgIADBULIAgoAkAgDqw3AwAMFAsgC0EIIAtBCEsbIQsgDUEIciENQfgAIQcLIBIhDCAHQSBxIREgCCkDQCIZUEUEQANAIAxBAWsiDCAZp0EPcUGQwgJqLQAAIBFyOgAAIBlCD1YhCSAZQgSIIRkgCQ0ACwsgDUEIcUUgCCkDQFByDQMgB0EEdkHHEmohFkECIQ8MAwsgEiEHIAgpA0AiGVBFBEADQCAHQQFrIgcgGadBB3FBMHI6AAAgGUIHViEMIBlCA4ghGSAMDQALCyAHIQwgDUEIcUUNAiALIBIgDGsiB0EBaiAHIAtIGyELDAILIAgpA0AiGUIAUwRAIAhCACAZfSIZNwNAQQEhD0HHEgwBCyANQYAQcQRAQQEhD0HIEgwBC0HJEkHHEiANQQFxIg8bCyEWIBkgEhCSEyEMCyAUQQAgC0EASBsNDyANQf//e3EgDSAUGyENIAgpA0AiGUIAUiALckUEQCASIgwhCkEAIQsMDQsgCyAZUCASIAxraiIHIAcgC0gbIQsMDAsgCCgCQCIHQZLYASAHGyIMQQAgC0H/////ByALQf////8HSRsiChCBEyIHIAxrIAogBxsiByAMaiEKIAtBAE4EQCAJIQ0gByELDAwLIAkhDSAHIQsgCi0AAA0ODAsLIAsEQCAIKAJADAILQQAhByAAQSAgEEEAIA0QkxMMAgsgCEEANgIMIAggCCkDQD4CCCAIIAhBCGoiBzYCQEF/IQsgBwshCUEAIQcCQANAIAkoAgAiDEUNASAIQQRqIAwQqBMiCkEASCIMIAogCyAHa0tyRQRAIAlBBGohCSALIAcgCmoiB0sNAQwCCwsgDA0OC0E9IQogB0EASA0MIABBICAQIAcgDRCTEyAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACIMRQ0BIAhBBGogDBCoEyIMIApqIgogB0sNASAAIAhBBGogDBCPEyAJQQRqIQkgByAKSw0ACwsgAEEgIBAgByANQYDAAHMQkxMgECAHIAcgEEgbIQcMCQsgFEEAIAtBAEgbDQlBPSEKIAAgCCsDQCAQIAsgDSAHIAURKAAiB0EATg0IDAoLIAggCCkDQDwAN0EBIQsgFyEMIAkhDQwFCyAIIBE2AkwMAwsgBy0AASEJIAdBAWohBwwACwALIAANByATRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQkRNBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIAxrIhEgCyARShsiCSAPQf////8Hc0oNAkE9IQogECAJIA9qIgsgCyAQSBsiByAYSg0DIABBICAHIAsgDRCTEyAAIBYgDxCPEyAAQTAgByALIA1BgIAEcxCTEyAAQTAgCSARQQAQkxMgACAMIBEQjxMgAEEgIAcgCyANQYDAAHMQkxMMAQsLQQAhDgwDC0E9IQoLQei8AyAKNgIAC0F/IQ4LIAhB0ABqJAAgDgvAAQEDfyAALQAAQSBxRQRAAkAgASEDAkAgAiAAIgEoAhAiAAR/IAAFIAEQixMNASABKAIQCyABKAIUIgVrSwRAIAEgAyACIAEoAiQRBwAaDAILAkAgASgCUEEASA0AIAIhAANAIAAiBEUNASADIARBAWsiAGotAABBCkcNAAsgASADIAQgASgCJBEHACAESQ0BIAMgBGohAyACIARrIQIgASgCFCEFCyAFIAMgAhD6EhogASABKAIUIAJqNgIUCwsLC20BBH8gACgCACwAABD/EkUEQEEADwsDQCAAKAIAIQNBfyEBIAJBzJmz5gBNBEBBfyADLAAAQTBrIgQgAkEKbCIBaiAEIAFB/////wdzShshAQsgACADQQFqNgIAIAEhAiADLAABEP8SDQALIAELxAIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAoLDAoLAgMEBQwLDAwKCwcICQsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsACyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAPCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAPCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAPCwALIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQAACw8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcAEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgAUH/AXEgAiADayIDQYACIANBgAJJIgEbEPwSGiABRQRAA0AgACAFQYACEI8TIANBgAJrIgNB/wFLDQALCyAAIAUgAxCPEwsgBUGAAmokAAvJGAMSfwF8An4jAEGwBGsiCyQAIAtBADYCLAJAIAG9IhlCAFMEQEEBIRBB0RIhEyABmiIBvSEZDAELIARBgBBxBEBBASEQQdQSIRMMAQtB1xJB0hIgBEEBcSIQGyETIBBFIRULAkAgGUKAgICAgICA+P8Ag0KAgICAgICA+P8AUQRAIABBICACIBBBA2oiAyAEQf//e3EQkxMgACATIBAQjxMgAEGHzQBBuKoBIAVBIHEiBRtB/ukAQe2rASAFGyABIAFiG0EDEI8TIABBICACIAMgBEGAwABzEJMTIAMgAiACIANIGyEJDAELIAtBEGohEQJAAn8CQCABIAtBLGoQjBMiASABoCIBRAAAAAAAAAAAYgRAIAsgCygCLCIGQQFrNgIsIAVBIHIiDkHhAEcNAQwDCyAFQSByIg5B4QBGDQIgCygCLCEKQQYgAyADQQBIGwwBCyALIAZBHWsiCjYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshDCALQTBqQQBBoAIgCkEASBtqIg0hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQAAAAAZc3NQaIiAUQAAAAAAAAAAGINAAsCQCAKQQBMBEAgCiEDIAchBiANIQgMAQsgDSEIIAohAwNAIANBHSADQR1IGyEDAkAgB0EEayIGIAhJDQAgA60hGkIAIRkDQCAGIBlC/////w+DIAY1AgAgGoZ8IhkgGUKAlOvcA4AiGUKAlOvcA359PgIAIAZBBGsiBiAITw0ACyAZpyIGRQ0AIAhBBGsiCCAGNgIACwNAIAggByIGSQRAIAZBBGsiBygCAEUNAQsLIAsgCygCLCADayIDNgIsIAYhByADQQBKDQALCyADQQBIBEAgDEEZakEJbkEBaiEPIA5B5gBGIRIDQEEAIANrIgNBCSADQQlIGyEJAkAgBiAITQRAIAgoAgAhBwwBC0GAlOvcAyAJdiEUQX8gCXRBf3MhFkEAIQMgCCEHA0AgByADIAcoAgAiFyAJdmo2AgAgFiAXcSAUbCEDIAdBBGoiByAGSQ0ACyAIKAIAIQcgA0UNACAGIAM2AgAgBkEEaiEGCyALIAsoAiwgCWoiAzYCLCANIAggB0VBAnRqIgggEhsiByAPQQJ0aiAGIAYgB2tBAnUgD0obIQYgA0EASA0ACwtBACEDAkAgBiAITQ0AIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIJQQpJDQADQCADQQFqIQMgCSAHQQpsIgdPDQALCyAMQQAgAyAOQeYARhtrIA5B5wBGIAxBAEdxayIHIAYgDWtBAnVBCWxBCWtIBEBBBEGkAiAKQQBIGyALaiAHQYDIAGoiCUEJbSIPQQJ0akHQH2shCkEKIQcgCSAPQQlsayIJQQdMBEADQCAHQQpsIQcgCUEBaiIJQQhHDQALCwJAIAooAgAiEiASIAduIg8gB2xrIglFIApBBGoiFCAGRnENAAJAIA9BAXFFBEBEAAAAAAAAQEMhASAHQYCU69wDRyAIIApPcg0BIApBBGstAABBAXFFDQELRAEAAAAAAEBDIQELRAAAAAAAAOA/RAAAAAAAAPA/RAAAAAAAAPg/IAYgFEYbRAAAAAAAAPg/IAkgB0EBdiIURhsgCSAUSRshGAJAIBUNACATLQAAQS1HDQAgGJohGCABmiEBCyAKIBIgCWsiCTYCACABIBigIAFhDQAgCiAHIAlqIgM2AgAgA0GAlOvcA08EQANAIApBADYCACAIIApBBGsiCksEQCAIQQRrIghBADYCAAsgCiAKKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIJQQpJDQADQCADQQFqIQMgCSAHQQpsIgdPDQALCyAKQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIJRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQoMAQsgA0F/c0F/IAxBASAMGyIGIANKIANBe0pxIgobIAZqIQxBf0F+IAobIAVqIQUgBEEIcSIKDQBBdyEGAkAgCQ0AIAdBBGsoAgAiDkUNAEEKIQlBACEGIA5BCnANAANAIAYiCkEBaiEGIA4gCUEKbCIJcEUNAAsgCkF/cyEGCyAHIA1rQQJ1QQlsIQkgBUFfcUHGAEYEQEEAIQogDCAGIAlqQQlrIgZBACAGQQBKGyIGIAYgDEobIQwMAQtBACEKIAwgAyAJaiAGakEJayIGQQAgBkEAShsiBiAGIAxKGyEMC0F/IQkgDEH9////B0H+////ByAKIAxyIhIbSg0BIAwgEkEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBEgAyADQR91IgZzIAZrrSAREJITIgZrQQFMBEADQCAGQQFrIgZBMDoAACARIAZrQQJIDQALCyAGQQJrIg8gBToAACAGQQFrQS1BKyADQQBIGzoAACARIA9rIgYgDkH/////B3NKDQILIAYgDmoiAyAQQf////8Hc0oNASAAQSAgAiADIBBqIgUgBBCTEyAAIBMgEBCPEyAAQTAgAiAFIARBgIAEcxCTEwJAAkACQCAVQcYARgRAIAtBEGoiBkEIciEDIAZBCXIhCiANIAggCCANSxsiCSEIA0AgCDUCACAKEJITIQYCQCAIIAlHBEAgBiALQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiALQRBqSw0ACwwBCyAGIApHDQAgC0EwOgAYIAMhBgsgACAGIAogBmsQjxMgCEEEaiIIIA1NDQALIBIEQCAAQdrXAUEBEI8TCyAMQQBMIAcgCE1yDQEDQCAINQIAIAoQkhMiBiALQRBqSwRAA0AgBkEBayIGQTA6AAAgBiALQRBqSw0ACwsgACAGIAxBCSAMQQlIGxCPEyAMQQlrIQYgCEEEaiIIIAdPDQMgDEEJSiEDIAYhDCADDQALDAILAkAgDEEASA0AIAcgCEEEaiAHIAhLGyEJIAtBEGoiBkEIciEDIAZBCXIhDSAIIQcDQCANIAc1AgAgDRCSEyIGRgRAIAtBMDoAGCADIQYLAkAgByAIRwRAIAYgC0EQak0NAQNAIAZBAWsiBkEwOgAAIAYgC0EQaksNAAsMAQsgACAGQQEQjxMgBkEBaiEGIAogDHJFDQAgAEHa1wFBARCPEwsgACAGIAwgDSAGayIGIAYgDEobEI8TIAwgBmshDCAHQQRqIgcgCU8NASAMQQBODQALCyAAQTAgDEESakESQQAQkxMgACAPIBEgD2sQjxMMAgsgDCEGCyAAQTAgBkEJakEJQQAQkxMLIABBICACIAUgBEGAwABzEJMTIAUgAiACIAVIGyEJDAELIBMgBUEadEEfdUEJcWohCAJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIAgtAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBEgCygCLCIGIAZBH3UiBnMgBmutIBEQkhMiBkYEQCALQTA6AA8gC0EPaiEGCyAQQQJyIQwgBUEgcSENIAsoAiwhByAGQQJrIgogBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgC0EQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBkMICai0AACANcjoAACAGIANBAEpyRSABIAe3oUQAAAAAAAAwQKIiAUQAAAAAAAAAAGFxIAVBAWoiByALQRBqa0EBR3JFBEAgBUEuOgABIAVBAmohBwsgAUQAAAAAAAAAAGINAAtBfyEJQf3///8HIAwgESAKayIFaiIGayADSA0AIABBICACIAYCfyADRSALQRBqQX5zIAdqIANOckUEQCAHIAtBEGprIQcgA0ECagwBCyAHIAtBEGprIgcLIg1qIgMgBBCTEyAAIAggDBCPEyAAQTAgAiADIARBgIAEcxCTEyAAIAtBEGogBxCPEyAAQTAgDSAHa0EAQQAQkxMgACAKIAUQjxMgAEEgIAIgAyAEQYDAAHMQkxMgAyACIAIgA0gbIQkLIAtBsARqJAAgCQspACABIAEoAgBBB2pBeHEiAUEQajYCACAAIAEpAwAgASkDCBC7EzkDAAsQACAAIAEgAkEAQQAQjRMaC6MBAQJ/IwBBoAFrIgQkAEF/IQUgBCABQQFrQQAgARs2ApQBIAQgACAEQZ4BaiABGyIANgKQASAEQQBBkAEQ/BIiBEF/NgJMIARBzAs2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHovANBPTYCAAwBCyAAQQA6AAAgBCACIANBygtBywsQjRMhBQsgBEGgAWokACAFC6sBAQR/IAAoAlQiAygCBCIFIAAoAhQgACgCHCIGayIEIAQgBUsbIgQEQCADKAIAIAYgBBD6EhogAyADKAIAIARqNgIAIAMgAygCBCAEayIFNgIECyADKAIAIQQgBSACIAIgBUsbIgUEQCAEIAEgBRD6EhogAyADKAIAIAVqIgQ2AgAgAyADKAIEIAVrNgIECyAEQQA6AAAgACAAKAIsIgE2AhwgACABNgIUIAILfAECfyAAIAAoAkgiAUEBayABcjYCSCAAKAIUIAAoAhxHBEAgAEEAQQAgACgCJBEHABoLIABBADYCHCAAQgA3AxAgACgCACIBQQRxBEAgACABQSByNgIAQX8PCyAAIAAoAiwgACgCMGoiAjYCCCAAIAI2AgQgAUEbdEEfdQtBAQF/IAAgATcDcCAAIAAoAiwgACgCBCICa6w3A3ggACABUCAAKAIIIgAgAmusIAFXcgR/IAAFIAIgAadqCzYCaAuLAgIDfwJ+AkAgACkDcCIEUEUgBCAAKQN4IAAoAgQiASAAKAIsIgJrrHwiBVdxRQRAIwBBEGsiAiQAQX8hAQJAIAAQmRMNACAAIAJBD2pBASAAKAIgEQcAQQFHDQAgAi0ADyEBCyACQRBqJAAgASIDQQBODQEgACgCBCEBIAAoAiwhAgsgAEJ/NwNwIAAgATYCaCAAIAUgAiABa6x8NwN4QX8PCyAFQgF8IQUgACgCBCEBIAAoAgghAgJAIAApA3AiBFANACAEIAV9IgQgAiABa6xZDQAgASAEp2ohAgsgACACNgJoIAAgBSAAKAIsIgAgAWusfDcDeCAAIAFPBEAgAUEBayADOgAACyADC6kBAQF8RAAAAAAAAPA/IQECQCAAQYAITgRARAAAAAAAAOB/IQEgAEH/D0kEQCAAQf8HayEADAILRAAAAAAAAPB/IQEgAEH9FyAAQf0XSBtB/g9rIQAMAQsgAEGBeEoNAEQAAAAAAABgAyEBIABBuHBLBEAgAEHJB2ohAAwBC0QAAAAAAAAAACEBIABB8GggAEHwaEobQZIPaiEACyABIABB/wdqrUI0hr+iCzUAIAAgATcDACAAIAJC////////P4MgBEIwiKdBgIACcSACQjCIp0H//wFxcq1CMIaENwMIC8QCAQF/IwBB0ABrIgQkAAJAIANBgIABTgRAIARBIGogASACQgBCgICAgICAgP//ABC4EyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABC4EyADQf3/AiADQf3/AkgbQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQuBMgBCkDSCECIAQpA0AhASADQfSAfksEQCADQY3/AGohAwwBCyAEQTBqIAEgAkIAQoCAgICAgIA5ELgTIANB6IF9IANB6IF9ShtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhC4EyAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAAL1wYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABCxE0UNAAJ/IARC////////P4MhCQJ/IARCMIinQf//AXEiBkH//wFHBEBBBCAGDQEaQQJBAyADIAmEUBsMAgsgAyAJhFALCyEHIAJCMIinIghB//8BcSIGQf//AUYNACAHDQELIAVBEGogASACIAMgBBC4EyAFIAUpAxAiASAFKQMYIgIgASACELMTIAUpAwghAiAFKQMAIQQMAQsgASACQv///////z+DIAatQjCGhCIKIAMgBEL///////8/gyAEQjCIp0H//wFxIgetQjCGhCIJELETQQBMBEAgASAKIAMgCRCxEwRAIAEhBAwCCyAFQfAAaiABIAJCAEIAELgTIAUpA3ghAiAFKQNwIQQMAQsgBgR+IAEFIAVB4ABqIAEgCkIAQoCAgICAgMC7wAAQuBMgBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABC4EyAFKQNYIglCMIinQfgAayEHIAUpA1AhAwsgCUL///////8/g0KAgICAgIDAAIQhCSAKQv///////z+DQoCAgICAgMAAhCEKIAYgB0oEQANAAn4gCiAJfSADIARWrX0iC0IAWQRAIAsgBCADfSIEhFAEQCAFQSBqIAEgAkIAQgAQuBMgBSkDKCECIAUpAyAhBAwFCyALQgGGIARCP4iEDAELIApCAYYgBEI/iIQLIQogBEIBhiEEIAZBAWsiBiAHSg0ACyAHIQYLAkAgCiAJfSADIARWrX0iCUIAUwRAIAohCQwBCyAJIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQuBMgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIQEgBkEBayEGIARCAYYhBCABIAlCAYaEIglCgICAgICAwABUDQALCyAIQYCAAnEhByAGQQBMBEAgBUFAayAEIAlC////////P4MgBkH4AGogB3KtQjCGhEIAQoCAgICAgMDDPxC4EyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAvaMgMQfwd+AXwjAEEwayIMJAACQCACQQJNBEAgAkECdCICQezDAmooAgAhDyACQeDDAmooAgAhDgNAAn8gASgCBCICIAEoAmhHBEAgASACQQFqNgIEIAItAAAMAQsgARCbEwsiAhCAEw0AC0EBIQYCQAJAIAJBK2sOAwABAAELQX9BASACQS1GGyEGIAEoAgQiAiABKAJoRwRAIAEgAkEBajYCBCACLQAAIQIMAQsgARCbEyECCwJAAkADQCAFQa4KaiwAACAC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AUYNAiAEQR12IQIgBEEBdCEEIAMgAkEEcWoiB0EQaigCACICDQALIAcgADYCECAAIAM2AhgLIAAgADYCDCAAIAA2AggPCyADKAIIIgEgADYCDCADIAA2AgggAEEANgIYIAAgAzYCDCAAIAE2AggLC1gCAX8BfgJAAn9BACAARQ0AGiAArSICpyIBIABBAXJBgIAESQ0AGkF/IAEgAkIgiKcbCyIBEKkTIgBFDQAgAEEEay0AAEEDcUUNACAAQQAgARD8EhoLIAALUgECf0HMtgMoAgAiASAAQQNqQXxxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABAnRQ0BC0HMtgMgADYCACABDwtB6LwDQTA2AgBBfwvMCQIEfgR/IwBB8ABrIgokACAEQv///////////wCDIQUCQAJAIAFQIgkgAkL///////////8AgyIGQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIAZQG0UEQCADQgBSIAVCgICAgICAwP//AH0iCEKAgICAgIDAgIB/ViAIQoCAgICAgMCAgH9RGw0BCyAJIAZCgICAgICAwP//AFQgBkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIAZCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIJGyEEQgAgASAJGyEDDAILIAMgBUKAgICAgIDA//8AhYRQDQEgASAGhFAEQCADIAWEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAWEUEUNACABIQMgAiEEDAELIAMgASABIANUIAUgBlYgBSAGURsiDBshBSAEIAIgDBsiCEL///////8/gyEGIAIgBCAMGyIHQjCIp0H//wFxIQsgCEIwiKdB//8BcSIJRQRAIApB4ABqIAUgBiAFIAYgBlAiCRt5IAlBBnStfKciCUEPaxCwEyAKKQNoIQYgCikDYCEFQRAgCWshCQsgASADIAwbIQMgB0L///////8/gyEEIAtFBEAgCkHQAGogAyAEIAMgBCAEUCILG3kgC0EGdK18pyILQQ9rELATQRAgC2shCyAKKQNYIQQgCikDUCEDCyAEQgOGIANCPYiEQoCAgICAgIAEhCECIAZCA4YgBUI9iIQhBCADQgOGIQEgByAIhSEDAkAgCSALRg0AIAkgC2siC0H/AEsEQEIAIQJCASEBDAELIApBQGsgASACQYABIAtrELATIApBMGogASACIAsQtxMgCikDMCAKKQNAIAopA0iEQgBSrYQhASAKKQM4IQILIARCgICAgICAgASEIQcgBUIDhiEGAkAgA0IAUwRAQgAhA0IAIQQgASAGhSACIAeFhFANAiAGIAF9IQUgByACfSABIAZWrX0iBEL/////////A1YNASAKQSBqIAUgBCAFIAQgBFAiCxt5IAtBBnStfKdBDGsiCxCwEyAJIAtrIQkgCikDKCEEIAopAyAhBQwBCyABIAZ8IgUgAVStIAIgB3x8IgRCgICAgICAgAiDUA0AIAVCAYMgBEI/hiAFQgGIhIQhBSAJQQFqIQkgBEIBiCEECyAIQoCAgICAgICAgH+DIQEgCUH//wFOBEAgAUKAgICAgIDA//8AhCEEQgAhAwwBC0EAIQsCQCAJQQBKBEAgCSELDAELIApBEGogBSAEIAlB/wBqELATIAogBSAEQQEgCWsQtxMgCikDACAKKQMQIAopAxiEQgBSrYQhBSAKKQMIIQQLIARCPYYgBUIDiIQiAiAFp0EHcSIJQQRLrXwiAyACVK0gBEIDiEL///////8/gyALrUIwhoQgAYR8IQQCQCAJQQRGBEAgBCADQgGDIgEgA3wiAyABVK18IQQMAQsgCUUNAQsLIAAgAzcDACAAIAQ3AwggCkHwAGokAAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEBBfyEEIAAgAlQgASADUyABIANRGw0BIAAgAoUgASADhYRCAFIPC0F/IQQgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAEC8QBAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNAEEAIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBRGw0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQEEAIAEgAlMgASACURsNASAAIAEgAoWEQgBSDwsgAEIAUiABIAJVIAEgAlEbDQAgACABIAKFhEIAUiEDCyADC7YPAgV/Dn4jAEHQAmsiBSQAIARC////////P4MhCiACQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyENIARCMIinQf//AXEhCAJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAhB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiD0KAgICAgIDA//8AVCAPQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQ0MAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhDSADIQEMAgsgASAPQoCAgICAgMD//wCFhFAEQCADIAJCgICAgICAwP//AIWEUARAQgAhAUKAgICAgIDg//8AIQ0MAwsgDUKAgICAgIDA//8AhCENQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAQgAhAQwCCyABIA+EUARAQoCAgICAgOD//wAgDSACIAOEUBshDUIAIQEMAgsgAiADhFAEQCANQoCAgICAgMD//wCEIQ1CACEBDAILIA9C////////P1gEQCAFQcACaiABIAwgASAMIAxQIgYbeSAGQQZ0rXynIgZBD2sQsBNBECAGayEGIAUpA8gCIQwgBSkDwAIhAQsgAkL///////8/Vg0AIAVBsAJqIAMgCiADIAogClAiBxt5IAdBBnStfKciB0EPaxCwEyAGIAdqQRBrIQYgBSkDuAIhCiAFKQOwAiEDCyAFQaACaiAKQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABC5EyAFQZACakIAIAUpA6gCfUIAIARCABC5EyAFQYACaiAFKQOYAkIBhiAFKQOQAkI/iIQiBEIAIAJCABC5EyAFQfABaiAEQgBCACAFKQOIAn1CABC5EyAFQeABaiAFKQP4AUIBhiAFKQPwAUI/iIQiBEIAIAJCABC5EyAFQdABaiAEQgBCACAFKQPoAX1CABC5EyAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABC5EyAFQbABaiAEQgBCACAFKQPIAX1CABC5EyAFQaABaiACQgAgBSkDuAFCAYYgBSkDsAFCP4iEQgF9IgJCABC5EyAFQZABaiADQg+GQgAgAkIAELkTIAVB8ABqIAJCAEIAIAUpA6gBIAUpA6ABIg8gBSkDmAF8IgQgD1StfCAEQgFWrXx9QgAQuRMgBUGAAWpCASAEfUIAIAJCABC5EyAGIAkgCGtqIQYCfyAFKQNwIhBCAYYiFCAFKQOIASIOQgGGIAUpA4ABQj+IhHwiC0Ln7AB9IhVCIIgiAiAMQoCAgICAgMAAhCIWQgGGIAFCP4iEIgxCIIgiBH4iESABQgGGIg9CIIgiCiALIBVWrSALIBRUrSAFKQN4QgGGIBBCP4iEIA5CP4h8fHxCAX0iEEIgiCILfnwiDiARVK0gDiAOIBBC/////w+DIhAgDEL/////D4MiFH58Ig5WrXwgBCALfnwgBCAQfiITIAsgFH58IhEgE1StQiCGIBFCIIiEfCAOIA4gEUIghnwiDlatfCAOIA4gFUL/////D4MiFSAUfiITIAIgCn58IhEgE1StIBEgESAQIA9C/v///w+DIhN+fCIRVq18fCIOVq18IA4gBCAVfiIXIAsgE358IgQgAiAUfnwiCyAKIBB+fCIQQiCIIAsgEFatIAQgF1StIAQgC1atfHxCIIaEfCIEIA5UrXwgBCARIAIgE34iAiAKIBV+fCIKQiCIIAIgClatQiCGhHwiAiARVK0gAiAQQiCGfCACVK18fCICIARUrXwiBEL/////////AFgEQCAFQdAAaiACIAQgAyASELkTIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9IQogBkH+/wBqDAELIAVB4ABqIARCP4YgAkIBiIQiAiAEQgGIIgQgAyASELkTIAFCMIYgBSkDaH0gBSkDYCIMQgBSrX0hC0IAIAx9IQogASEPIBYhDCAGQf//AGoLIgZB//8BTgRAIA1CgICAgICAwP//AIQhDUIAIQEMAQsCfiAGQQBKBEAgC0IBhiAKQj+IhCELIARC////////P4MgBq1CMIaEIQwgCkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAIgBEEBIAZrELcTIAVBMGogDyAMIAZB8ABqELATIAVBIGogAyASIAUpA0AiAiAFKQNIIgwQuRMgBSkDOCAFKQMoQgGGIAUpAyAiAUI/iIR9IAUpAzAiBCABQgGGIgFUrX0hCyAEIAF9CyEEIAVBEGogAyASQgNCABC5EyAFIAMgEkIFQgAQuRMgDCACIAIgAyACQgGDIgEgBHwiA1QgCyABIANWrXwiASASViABIBJRG618IgJWrXwiBCACIAIgBEKAgICAgIDA//8AVCADIAUpAxBWIAEgBSkDGCIEViABIARRG3GtfCICVq18IgQgAiAEQoCAgICAgMD//wBUIAMgBSkDAFYgASAFKQMIIgNWIAEgA1Ebca18IgEgAlStfCANhCENCyAAIAE3AwAgACANNwMIIAVB0AJqJAAL+gECA34CfyMAQRBrIgUkAAJ+IAG9IgNC////////////AIMiAkKAgICAgICACH1C/////////+//AFgEQCACQjyGIQQgAkIEiEKAgICAgICAgDx8DAELIAJCgICAgICAgPj/AFoEQCADQjyGIQQgA0IEiEKAgICAgIDA//8AhAwBCyACUARAQgAMAQsgBSACQgAgA6dnQSBqIAJCIIinZyACQoCAgIAQVBsiBkExahCwEyAFKQMAIQQgBSkDCEKAgICAgIDAAIVBjPgAIAZrrUIwhoQLIQIgACAENwMAIAAgAiADQoCAgICAgICAgH+DhDcDCCAFQRBqJAALfwICfwF+IwBBEGsiAyQAIAACfiABRQRAQgAMAQsgAyABIAFBH3UiAnMgAmsiAq1CACACZyICQdEAahCwEyADKQMIQoCAgICAgMAAhUGegAEgAmutQjCGfCABQYCAgIB4ca1CIIaEIQQgAykDAAs3AwAgACAENwMIIANBEGokAAtkAgF/AX4jAEEQayICJAAgAAJ+IAFFBEBCAAwBCyACIAGtQgAgAWciAUHRAGoQsBMgAikDCEKAgICAgIDAAIVBnoABIAFrrUIwhnwhAyACKQMACzcDACAAIAM3AwggAkEQaiQAC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC8kKAgV/D34jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyILQoCAgICAgMD//wBUIAtCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCgwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEKIAMhAQwCCyABIAtCgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACEKQgAhAQwDCyAKQoCAgICAgMD//wCEIQpCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASALhCECQgAhASACUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxCwE0EQIAZrIQYgBSkDWCINQiCIIQ4gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAwgAyAMIAxQIggbeSAIQQZ0rXynIghBD2sQsBMgBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiADQjGIhCISQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINQRQRAIAZBAWohBgwBCyALQj+IIQMgBEIBhiACQj+IhCEEIAJCAYYgAUI/iIQhAiALQgGGIQsgAyABQgGGhCEBCyAGQf//AU4EQCAKQoCAgICAgMD//wCEIQpCACEBDAELAn4gBkEATARAQQEgBmsiB0GAAU8EQEIAIQEMAwsgBUEwaiALIAEgBkH/AGoiBhCwEyAFQSBqIAIgBCAGELATIAVBEGogCyABIAcQtxMgBSACIAQgBxC3EyAFKQMwIAUpAziEQgBSrSAFKQMgIAUpAxCEhCELIAUpAyggBSkDGIQhASAFKQMAIQIgBSkDCAwBCyAEQv///////z+DIAatQjCGhAsgCoQhCiALUCABQgBZIAFCgICAgICAgICAf1EbRQRAIAogAkIBfCIBIAJUrXwhCgwBCyALIAFCgICAgICAgICAf4WEUEUEQCACIQEMAQsgCiACIAJCAYN8IgEgAlStfCEKCyAAIAE3AwAgACAKNwMIIAVB4ABqJAALdQEBfiAAIAEgBH4gAiADfnwgA0IgiCICIAFCIIgiBH58IANC/////w+DIgMgAUL/////D4MiAX4iBUIgiCADIAR+fCIDQiCIfCABIAJ+IANC/////w+DfCIBQiCIfDcDCCAAIAVC/////w+DIAFCIIaENwMAC0UBAX8jAEEQayIFJAAgBSABIAIgAyAEQoCAgICAgICAgH+FEK8TIAUpAwAhASAAIAUpAwg3AwggACABNwMAIAVBEGokAAvTAwICfgJ/IwBBIGsiBCQAAkAgAUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCABQgSGIABCPIiEIQMgAEL//////////w+DIgBCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAAQoCAgICAgICACFINASACIANCAYN8IQIMAQsgAFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCABQgSGIABCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgVBkfcASQ0AIARBEGogACABQv///////z+DQoCAgICAgMAAhCICIAVBgfcAaxCwEyAEIAAgAkGB+AAgBWsQtxMgBCkDCEIEhiAEKQMAIgBCPIiEIQIgBCkDECAEKQMYhEIAUq0gAEL//////////w+DhCIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECCyAEQSBqJAAgAiABQoCAgICAgICAgH+DhL8LtgMCA38BfiMAQSBrIgMkAAJAIAFC////////////AIMiBUKAgICAgIDAwD99IAVCgICAgICAwL/AAH1UBEAgAUIZiKchBCAAUCABQv///w+DIgVCgICACFQgBUKAgIAIURtFBEAgBEGBgICABGohAgwCCyAEQYCAgIAEaiECIAAgBUKAgIAIhYRCAFINASACIARBAXFqIQIMAQsgAFAgBUKAgICAgIDA//8AVCAFQoCAgICAgMD//wBRG0UEQCABQhmIp0H///8BcUGAgID+B3IhAgwBC0GAgID8ByECIAVC////////v7/AAFYNAEEAIQIgBUIwiKciBEGR/gBJDQAgA0EQaiAAIAFC////////P4NCgICAgICAwACEIgUgBEGB/gBrELATIAMgACAFQYH/ACAEaxC3EyADKQMIIgBCGYinIQIgAykDACADKQMQIAMpAxiEQgBSrYQiBVAgAEL///8PgyIAQoCAgAhUIABCgICACFEbRQRAIAJBAWohAgwBCyAFIABCgICACIWEQgBSDQAgAkEBcSACaiECCyADQSBqJAAgAiABQiCIp0GAgICAeHFyvgsOACAAIAE0AgA3AwAgAAu3DAEGfyMAQRBrIgQkACAEIAA2AgwCQCAAQdMBTQRAQeDHAkGgyQIgBEEMahC/EygCACECDAELIABBfE8EQBDIAgALIAQgACAAQdIBbiIGQdIBbCICazYCCEGgyQJB4MoCIARBCGoQvxNBoMkCa0ECdSEFA0AgBUECdEGgyQJqKAIAIAJqIQJBBSEAAkADQAJAIABBL0YEQEHTASEAA0AgAiAAbiIBIABJDQQgAiAAIAFsRg0C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AAsJACAAQQAQsxQLmgMBAX8jAEGQAmsiACQAIAAgAjYCgAIgACABNgKIAiADELcUIQYgAEHQAWogAyAAQf8BahC4FCAAQcABahAwIgEgARA2EHggACABQQAQeSICNgK8ASAAIABBEGo2AgwgAEEANgIIA0ACQCAAQYgCaiAAQYACahDXE0UNACAAKAK8ASABED0gAmpGBEAgARA9IQMgASABED1BAXQQeCABIAEQNhB4IAAgAyABQQAQeSICajYCvAELIABBiAJqENgTIAYgAiAAQbwBaiAAQQhqIAAsAP8BIABB0AFqIABBEGogAEEMakHQ8AIQuRQNACAAQYgCahDZExoMAQsLAkAgAEHQAWoQPUUNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArwBIAQgBhC6FDYCACAAQdABaiAAQRBqIAAoAgwgBBC7FCAAQYgCaiAAQYACahDaEwRAIAQgBCgCAEECcjYCAAsgACgCiAIhAiABEMwWGiAAQdABahDMFhogAEGQAmokACACCy4AAkAgACgCBEHKAHEiAARAIABBwABGBEBBCA8LIABBCEcNAUEQDwtBAA8LQQoLOwECfyMAQRBrIgMkACADQQhqIgQgARCXFCACIAQQrRQiARDnFDoAACAAIAEQ6BQgBBDcFSADQRBqJAAL7gIBA38jAEEQayIKJAAgCiAAOgAPAkACQAJAIAMoAgAgAkcNAEErIQsgAEH/AXEiDCAJLQAYRwRAQS0hCyAJLQAZIAxHDQELIAMgAkEBajYCACACIAs6AAAMAQsgBhA9RSAAIAVHckUEQEEAIQAgCCgCACIBIAdrQZ8BSg0CIAQoAgAhACAIIAFBBGo2AgAgASAANgIADAELQX8hACAJIAlBGmogCkEPahCPBCAJayIFQRdKDQECQAJAAkAgAUEIaw4DAAIAAQsgASAFSg0BDAMLIAFBEEcgBUEWSHINACADKAIAIgEgAkYgASACa0ECSnINAiABQQFrLQAAQTBHDQJBACEAIARBADYCACADIAFBAWo2AgAgASAFQdDwAmotAAA6AAAMAgsgAyADKAIAIgBBAWo2AgAgACAFQdDwAmotAAA6AAAgBCAEKAIAQQFqNgIAQQAhAAwBC0EAIQAgBEEANgIACyAKQRBqJAAgAAvFAQICfwF+IwBBEGsiBCQAAn8CQAJAIAAgAUcEQEHovAMoAgAhBUHovANBADYCABDOFBogACAEQQxqIAMQvBYhBgJAQei8AygCACIABEAgBCgCDCABRw0BIABBxABGDQQMAwtB6LwDIAU2AgAgBCgCDCABRg0CCwsgAkEENgIAQQAMAgsgBkKAgICAeFMgBkL/////B1VyDQAgBqcMAQsgAkEENgIAQf////8HIAZCAFUNABpBgICAgHgLIQAgBEEQaiQAIAALoQEBAn8CQCAAED1FIAIgAWtBBUhyDQAgASACEIcVIAJBBGshBCAAEDgiAiAAED1qIQUCQANAAkAgAiwAACEAIAEgBE8NACAAQQBMIABB/wBOckUEQCABKAIAIAIsAABHDQMLIAFBBGohASACIAUgAmtBAUpqIQIMAQsLIABBAEwgAEH/AE5yDQEgAiwAACAEKAIAQQFrSw0BCyADQQQ2AgALC5oDAQF/IwBBkAJrIgAkACAAIAI2AoACIAAgATYCiAIgAxC3FCEGIABB0AFqIAMgAEH/AWoQuBQgAEHAAWoQMCIBIAEQNhB4IAAgAUEAEHkiAjYCvAEgACAAQRBqNgIMIABBADYCCANAAkAgAEGIAmogAEGAAmoQ1xNFDQAgACgCvAEgARA9IAJqRgRAIAEQPSEDIAEgARA9QQF0EHggASABEDYQeCAAIAMgAUEAEHkiAmo2ArwBCyAAQYgCahDYEyAGIAIgAEG8AWogAEEIaiAALAD/ASAAQdABaiAAQRBqIABBDGpB0PACELkUDQAgAEGIAmoQ2RMaDAELCwJAIABB0AFqED1FDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEIAYQvRQ3AwAgAEHQAWogAEEQaiAAKAIMIAQQuxQgAEGIAmogAEGAAmoQ2hMEQCAEIAQoAgBBAnI2AgALIAAoAogCIQIgARDMFhogAEHQAWoQzBYaIABBkAJqJAAgAgu4AQIBfgJ/IwBBEGsiBSQAAkACQCAAIAFHBEBB6LwDKAIAIQZB6LwDQQA2AgAQzhQaIAAgBUEMaiADELwWIQQCQEHovAMoAgAiAARAIAUoAgwgAUcNASAAQcQARg0DDAQLQei8AyAGNgIAIAUoAgwgAUYNAwsLIAJBBDYCAEIAIQQMAQsgAkEENgIAIARCAFUEQEL///////////8AIQQMAQtCgICAgICAgICAfyEECyAFQRBqJAAgBAuaAwEBfyMAQZACayIAJAAgACACNgKAAiAAIAE2AogCIAMQtxQhBiAAQdABaiADIABB/wFqELgUIABBwAFqEDAiASABEDYQeCAAIAFBABB5IgI2ArwBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBiAJqIABBgAJqENcTRQ0AIAAoArwBIAEQPSACakYEQCABED0hAyABIAEQPUEBdBB4IAEgARA2EHggACADIAFBABB5IgJqNgK8AQsgAEGIAmoQ2BMgBiACIABBvAFqIABBCGogACwA/wEgAEHQAWogAEEQaiAAQQxqQdDwAhC5FA0AIABBiAJqENkTGgwBCwsCQCAAQdABahA9RQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCvAEgBCAGEL8UOwEAIABB0AFqIABBEGogACgCDCAEELsUIABBiAJqIABBgAJqENoTBEAgBCAEKAIAQQJyNgIACyAAKAKIAiECIAEQzBYaIABB0AFqEMwWGiAAQZACaiQAIAIL3gECA38BfiMAQRBrIgQkAAJ/AkACQAJAIAAgAUcEQAJAAkAgAC0AACIFQS1HDQAgAEEBaiIAIAFHDQAMAQtB6LwDKAIAIQZB6LwDQQA2AgAQzhQaIAAgBEEMaiADEL0WIQcCQEHovAMoAgAiAARAIAQoAgwgAUcNASAAQcQARg0FDAQLQei8AyAGNgIAIAQoAgwgAUYNAwsLCyACQQQ2AgBBAAwDCyAHQv//A1gNAQsgAkEENgIAQf//AwwBC0EAIAenIgBrIAAgBUEtRhsLIQAgBEEQaiQAIABB//8DcQuaAwEBfyMAQZACayIAJAAgACACNgKAAiAAIAE2AogCIAMQtxQhBiAAQdABaiADIABB/wFqELgUIABBwAFqEDAiASABEDYQeCAAIAFBABB5IgI2ArwBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBiAJqIABBgAJqENcTRQ0AIAAoArwBIAEQPSACakYEQCABED0hAyABIAEQPUEBdBB4IAEgARA2EHggACADIAFBABB5IgJqNgK8AQsgAEGIAmoQ2BMgBiACIABBvAFqIABB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QagEahDaEwRAIAUgBSgCAEEEcjYCAEEAIQAMAQsgC0GEDDYCaCALIAtBiAFqIAtBkAFqIAtB6ABqIgEQshQiDygCACIKNgKEASALIApBkANqNgKAASABEDAhESALQdgAahAwIQwgC0HIAGoQMCEOIAtBOGoQMCENIAtBKGoQMCEQIwBBEGsiASQAIAsCfyACBEAgASADELMVIgIQtBUgCyABKAIANgB4IAEgAhC1FSANIAEQXiABEMwWGiABIAIQrxQgDiABEF4gARDMFhogCyACEOYUOgB3IAsgAhDnFDoAdiABIAIQ6BQgESABEF4gARDMFhogASACEK4UIAwgARBeIAEQzBYaIAIQthUMAQsgASADELcVIgIQtBUgCyABKAIANgB4IAEgAhC1FSANIAEQXiABEMwWGiABIAIQrxQgDiABEF4gARDMFhogCyACEOYUOgB3IAsgAhDnFDoAdiABIAIQ6BQgESABEF4gARDMFhogASACEK4UIAwgARBeIAEQzBYaIAIQthULNgIkIAFBEGokACAJIAgoAgA2AgAgBEGABHEiEkEJdiETQQAhA0EAIQEDQCABIQICQAJAAkACQCADQQRGDQAgACALQagEahDXE0UNAEEAIQoCQAJAAkACQAJAAkAgC0H4AGogA2osAAAOBQEABAMFCQsgA0EDRg0HIAdBASAAENgTEKoEBEAgC0EYaiAAEK4VIBAgCywAGBDUFgwCCyAFIAUoAgBBBHI2AgBBACEADAYLIANBA0YNBgsDQCAAIAtBqARqENcTRQ0GIAdBASAAENgTEKoERQ0GIAtBGGogABCuFSAQIAssABgQ1BYMAAsACwJAIA4QPUUNACAAENgTQf8BcSAOQQAQeS0AAEcNACAAENkTGiAGQQA6AAAgDiACIA4QPUEBSxshAQwGCwJAIA0QPUUNACAAENgTQf8BcSANQQAQeS0AAEcNACAAENkTGiAGQQE6AAAgDSACIA0QPUEBSxshAQwGCwJAIA4QPUUNACANED1FDQAgBSAFKAIAQQRyNgIAQQAhAAwECyAOED1FBEAgDRA9RQ0FCyAGIA0QPUU6AAAMBAsgAiADQQJJckUEQEEAIQEgEyADQQJGIAstAHtBAEdxckUNBQsgCyAMEJQCNgIQIAtBGGogC0EQahDJAiEEAkAgA0UNACADIAtqLQB3QQFLDQADQAJAIAsgDBCVAjYCECAEIAtBEGoQtAFFDQAgB0EBIAQoAgAsAAAQqgRFDQAgBBCXAgwBCwsgCyAMEJQCNgIQIAQgC0EQahClBSIBIBAQPU0EQCALIBAQlQI2AhAgC0EQakEAIAFrEJYCIQogEBCVAiEUIAwQlAIhFSMAQSBrIgEkACABIBQ2AhAgASAKNgIYIAEgFTYCCANAAkAgAUEYaiABQRBqELQBIgpFDQAgASgCGCABKAIIEP0ERQ0AIAFBGGoQlwIgAUEIahCXAgwBCwsgAUEgaiQAIApBAXMNAQsgCyAMEJQCNgIIIAQgC0EQaiALQQhqEMkCKAIANgIACyALIAQoAgA2AhADQAJAIAsgDBCVAjYCCCALQRBqIAtBCGoQtAFFDQAgACALQagEahDXE0UNACAAENgTQf8BcSALKAIQLQAARw0AIAAQ2RMaIAtBEGoQlwIMAQsLIBJFDQMgCyAMEJUCNgIIIAtBEGogC0EIahC0AUUNAyAFIAUoAgBBBHI2AgBBACEADAILA0ACQCAAIAtBqARqENcTRQ0AAn8gB0HAACAAENgTIgEQqgQEQCAJKAIAIgQgCygCpARGBEAgCCAJIAtBpARqEK8VIAkoAgAhBAsgCSAEQQFqNgIAIAQgAToAACAKQQFqDAELIBEQPUUgCkVyDQEgCy0AdiABQf8BcUcNASALKAKEASIBIAsoAoABRgRAIA8gC0GEAWogC0GAAWoQsBUgCygChAEhAQsgCyABQQRqNgKEASABIAo2AgBBAAshCiAAENkTGgwBCwsgCkUgCygChAEiASAPKAIARnJFBEAgCygCgAEgAUYEQCAPIAtBhAFqIAtBgAFqELAVIAsoAoQBIQELIAsgAUEEajYChAEgASAKNgIACwJAIAsoAiRBAEwNAAJAIAAgC0GoBGoQ2hNFBEAgABDYE0H/AXEgCy0Ad0YNAQsgBSAFKAIAQQRyNgIAQQAhAAwDCwNAIAAQ2RMaIAsoAiRBAEwNAQJAIAAgC0GoBGoQ2hNFBEAgB0HAACAAENgTEKoEDQELIAUgBSgCAEEEcjYCAEEAIQAMBAsgCSgCACALKAKkBEYEQCAIIAkgC0GkBGoQrxULIAAQ2BMhASAJIAkoAgAiBEEBajYCACAEIAE6AAAgCyALKAIkQQFrNgIkDAALAAsgAiEBIAgoAgAgCSgCAEcNAyAFIAUoAgBBBHI2AgBBACEADAELAkAgAkUNAEEBIQoDQCACED0gCk0NAQJAIAAgC0GoBGoQ2hNFBEAgABDYE0H/AXEgAiAKEHktAABGDQELIAUgBSgCAEEEcjYCAEEAIQAMAwsgABDZExogCkEBaiEKDAALAAtBASEAIA8oAgAgCygChAFGDQBBACEAIAtBADYCGCARIA8oAgAgCygChAEgC0EYahC7FCALKAIYBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBDMFhogDRDMFhogDhDMFhogDBDMFhogERDMFhogDxC1FAwDCyACIQELIANBAWohAwwACwALIAtBsARqJAAgAAskAQF/IAEoAgAQSUEYdEEYdSECIAAgASgCADYCBCAAIAI6AAALxwEBBn8jAEEQayIEJAAgABC3AigCACEFAn8gAigCACAAKAIAayIDQf////8HSQRAIANBAXQMAQtBfwsiA0EBIAMbIQMgASgCACEGIAAoAgAhByAFQYQMRgR/QQAFIAAoAgALIAMQqxMiCARAIAVBhAxHBEAgABC7AhoLIARBgww2AgQgACAEQQhqIAggBEEEahCyFCIFELgVIAUQtRQgASAAKAIAIAYgB2tqNgIAIAIgAyAAKAIAajYCACAEQRBqJAAPCxDIAgALygEBBn8jAEEQayIEJAAgABC3AigCACEFAn8gAigCACAAKAIAayIDQf////8HSQRAIANBAXQMAQtBfwsiA0EEIAMbIQMgASgCACEGIAAoAgAhByAFQYQMRgR/QQAFIAAoAgALIAMQqxMiCARAIAVBhAxHBEAgABC7AhoLIARBgww2AgQgACAEQQhqIAggBEEEahCyFCIFELgVIAUQtRQgASAAKAIAIAYgB2tqNgIAIAIgACgCACADQXxxajYCACAEQRBqJAAPCxDIAgAL5QMBA38jAEGgAWsiACQAIAAgAjYCkAEgACABNgKYASAAQYQMNgIUIABBGGogAEEgaiAAQRRqIggQshQhCSAAQRBqIgcgBBCXFCAHEPsCIQEgAEEAOgAPIABBmAFqIAIgAyAHIAQoAgQgBSAAQQ9qIAEgCSAIIABBhAFqEK0VBEAgBhA+IAAtAA8EQCAGIAFBLRD8AhDUFgsgAUEwEPwCIQEgCSgCACECIAAoAhQiB0EBayEDIAFB/wFxIQED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IAIgA60gBK1CIIaEIAUgBiAAERoACxkAIAEgAiADIAQgBa0gBq1CIIaEIAARFAALIwAgASACIAMgBCAFrSAGrUIghoQgB60gCK1CIIaEIAARIgALJQAgASACIAMgBCAFIAatIAetQiCGhCAIrSAJrUIghoQgABEjAAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAsCwudkAOjAgBBgAgLtd4Be30AfAB7AHoAaGFzT3duUHJvcGVydHkAY2FsbF9lbmdpbmUgLSB2aWV3IGlzIGVtcHR5AGNhbGxfZW5naW5lIC0gY2FsbGJhY2sgaXMgZW1wdHkAY2FsbF9lbmdpbmUgLSB1c2VyX2lkIGlzIGVtcHR5AGludmFsaWQgdXNlcl9pZCwgdXNlcl9pZCBpcyBlbXB0eQBjYWxsX2VuZ2luZSAtIGNhbGxfaWQgaXMgZW1wdHkAbm90aWZ5X2RhdGEgaXMgZW1wdHkAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIGNhbGxfaWQgY2Fubm90IGJlIGVtcHR5AGVudGl0eQBpbnZhbGlkIGNvbmZpZyBwcmlvcml0eQBNc2dQcmlvcml0eQBpbmZpbml0eQAtSW5maW5pdHkAY2FsbF9lbmdpbmUgLSB0aGUgcGFja2FnZSB5b3UgcHVyY2hhc2VkIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBhYmlsaXR5AGVuYWJsZU11bHRpRGV2aWNlQWJpbGl0eQBFbmFibGVNdWx0aURldmljZUFiaWxpdHkAcXVhbGl0eQBsb2NhbFF1YWxpdHkAb25OZXR3b3JrUXVhbGl0eQBMaXZlLk11bHRpUXVhbGl0eS5FbmFibGVNdWx0aVBsYXliYWNrUXVhbGl0eQByZW1vdGVRdWFsaXR5AGNhbGxfYnVzeQBsaW5lX2J1c3kAbGluZUJ1c3kAb25Vc2VyTGluZUJ1c3kAdml2b19jYXRlZ29yeQBvcHBvX2NhdGVnb3J5AGFuZHJvaWRfaHVhd2VpX2NhdGVnb3J5AEh1YVdlaUNhdGVnb3J5AFZJVk9DYXRlZ29yeQBPUFBPQ2F0ZWdvcnkAb25Db25uZWN0aW9uUmVjb3ZlcnkARmVicnVhcnkASmFudWFyeQBKdWx5AG9ubGluZVVzZXJPbmx5AGNhbGxfZW5naW5lIC0gU3RhdHVzOiBXYWl0aW5nL0FjY2VwdC4gRG8gbm90IGNhbGwgcmVwZWF0ZWRseQBQcm9jZXNzQ2FsbFJlY29yZFJlcG9ydE5vdGlmeQBQcm9jZXNzRW5kQ2FsbE5vdGlmeQBPbkVuZENhbGxOb3RpZnkAUHJvY2Vzc0tpY2tlZE9mZk5vdGlmeQBQcm9jZXNzSW52aXRhdGlvblByb2Nlc3NlZEJ5T3RoZXJEZXZpY2VOb3RpZnkAUHJvY2Vzc0ludml0YXRpb25SZWNlaXZlZE5vdGlmeQBQcm9jZXNzSW52aXRhdGlvbkNhbmNlbGxlZE5vdGlmeQBQcm9jZXNzQ2FsbE1lbWJlckNoYW5nZWROb3RpZnkAUHJvY2Vzc0ludml0YXRpb25SZXNwb25kZWROb3RpZnkAdHJhY2Vfa2V5AHVuc3VwcG9ydGVkIGtleQBsb25nUG9sbGluZ0tleQBMb25nUG9sbGluZ0tleQBib2R5AE1zZ0JvZHkAb25NaWNEaWRSZWFkeQBvbkNhbWVyYURpZFJlYWR5AGNvbW1hbmRfZnJlcXVlbmN5AGNhbGxfZW5naW5lIC0gaW52YWxpZCBqc29uIGZvcm1hdDogZXhwZWN0ZWQgYSBub24tZW1wdHkgYXJyYXkAQXJyYXkAVGh1cnNkYXkAVHVlc2RheQBXZWRuZXNkYXkAU2F0dXJkYXkAU3VuZGF5AE1vbmRheQBGcmlkYXkATWF5ACVtLyVkLyV5AHNpeABjaXJjdW1mbGV4AFVwZGF0ZVZpZGVvUXVhbGl0eUV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAX19uZXh0X3ByaW1lIG92ZXJmbG93AGNhbWVyYV9sb3cAaXNNaW5pbWl6ZVdpbmRvdwBlbmFibGVDYXB0dXJlQ2hpbGRXaW5kb3cATG93AHN0YXJ0TG9jYWxQcmV2aWV3AHN0b3BMb2NhbFByZXZpZXcAdmlkZW9WaWV3AHNldExvY2FsVmlldwBTZXRMb2NhbFZpZXcAdXBkYXRlTG9jYWxWaWV3AHN0YXJ0UmVtb3RlVmlldwBTdGFydFJlbW90ZVZpZXcAc3RvcFJlbW90ZVZpZXcAU3RvcFJlbW90ZVZpZXcAdXBkYXRlUmVtb3RlVmlldwB1dgBOb3YAdGVzdEVudgBUaHUAXHUAdGV4dAB2b2lwX2V4dABUZXh0AEV4dABsb2dvdXQAdGltZW91dABvbkludml0YXRpb25UaW1lb3V0AE9uSW52aXRhdGlvblRpbWVvdXQAT25JbnZpdGF0aW9uVGltZWRPdXQAcnR0AEF1Z3VzdABvbkNvbm5lY3Rpb25Mb3N0AGlzS2V5RXhpc3QAbGl2ZV9lbmdpbmVfc3J2LmdldF9naWZ0X2xpc3QAcm9vbV9lbmdpbmVfbWljLmdldF9zZWF0X2xpc3QAcm9vbV9lbmdpbmVfbWljLmdldF93YWl0aW5nX3NlYXRfbGlzdABsaXZlX2VuZ2luZV9zcnYuZ2V0X21lbWJlcl9saXN0AHJvb21fZW5naW5lX3Nydi5nZXRfcm9vbV9tZW1iZXJfbGlzdAByb29tX2VuZ2luZV9zcnYuZ2V0X3BlbmRpbmdfbWVtYmVyX2xpc3QAcm9vbV9lbmdpbmVfc3J2LmdldF9tdXRlZF9tZW1iZXJfbGlzdABsaXZlX2VuZ2luZV9zcnYuZ2V0X211dGVkX21lbWJlcl9saXN0AHJvb21fZW5naW5lX3Nydi5nZXRfam9pbl9yb29tX2ludml0YXRpb25fbGlzdABsaXZlX2VuZ2luZV9zcnYuZ2V0X2FkbWluX2xpc3QAcm9vbV9lbmdpbmVfc3J2LmdldF9oaXN0b3J5X3Jvb21fbGlzdABsaXZlX2VuZ2luZV9zcnYuZ2V0X3Jvb21fbGlzdAByb29tX2VuZ2luZV9zcnYuZ2V0X2pvaW5lZF9yb29tX2xpc3QAcm9vbV9lbmdpbmVfc3J2LmdldF9zY2hlZHVsZV9pbnZpdGVlX2xpc3QAc3VjY2Vzc1VzZXJMaXN0AE9wZXJhdGlvblVzZXJMaXN0AEFsbFVzZXJMaXN0AEdldFVzZXJJbmZvTGlzdABQcm9maWxlTGlzdABpbnZpdGVlTGlzdAB1c2VySURMaXN0AFNlbmRBY2NlcHRSZXF1ZXN0AFNlbmRHZXRDYWxsSW52aXRhdGlvblJlcXVlc3QAZXZlbnRfcmVwb3J0AGNhbGxfZW5naW5lIC0gc3RhcnRIZWFydEJlYXREYXRhUmVwb3J0AFN0YXJ0SGVhcnRCZWF0RGF0YVJlcG9ydABjYWxsX2VuZ2luZSAtIHN0b3BIZWFydEJlYXREYXRhUmVwb3J0AFN0b3BIZWFydEJlYXREYXRhUmVwb3J0AHVuc2lnbmVkIHNob3J0AGFsZXJ0AGFjY2VwdABvblVzZXJBY2NlcHQAQ2FsbGVlTGlzdF9BY2NvdW50AE9wZXJhdG9yX0FjY291bnQAVXNlcl9BY2NvdW50AENhbGxlcl9BY2NvdW50AFRvX0FjY291bnQAQ2FsbGVlX0FjY291bnQAbGl2ZV9lbmdpbmVfc3J2LmdldF9naWZ0X2NvdW50AGxpdmVfZW5naW5lX3Nydi5nZXRfbGlrZXNfY291bnQASGVhcnRCZWF0LkNhbGwuUmV0cnlDb3VudABpc0Zyb250AHByaW50AHVuc2lnbmVkIGludABvbkpTRXZlbnQAbWVzc2FnZV9jb250ZW50AE1zZ0NvbnRlbnQAY29tcG9uZW50AGFkZENvbW1lbnQAU2V0UGlwZWxpbmVDbGllbnQAdW5pbmRlbnQAY2lyY3VtZmxleC1hY2NlbnQAZ3JhdmUtYWNjZW50AHJlc3VsdABldmVudFJlc3VsdABDYWxsUmVzdWx0AE9uU3dpdGNoUm9sZVJlc3VsdABVbkluaXQAY2FsbF9lbmdpbmUgLSBjYWxsUmVjb3JkRXh0ZW5zaW9uIEluaXQAc3luY2hyb25pemUgY29tbWFuZCBmcmVxdWVuY3kgbGltaXQAZXhjZWVkIGZyZXF1ZW5jeSBsaW1pdABUdWlraXQAeGRpZ2l0AGFscmVhZHkgaW4gc2NyZWVuLXNoYXJpbmcgc3RhdHVzLCBpZ25vcmUgaXQAcGVuZGluZyB0byBzdGFydCwgcmVwZWF0IG9wZXJhdGlvbiwgaWdub3JlIGl0AHJpZ2h0AGhlaWdodABlbmFibGVIaWdoTGlnaHQAbGl2ZV9lbmdpbmVfc3J2LnNlbmRfZ2lmdABsZWZ0AHJpZ2h0LWN1cmx5LWJyYWNrZXQAbGVmdC1jdXJseS1icmFja2V0AHJpZ2h0LXNxdWFyZS1icmFja2V0AGxlZnQtc3F1YXJlLWJyYWNrZXQAU2VuZFBhY2tldABzZWxlY3RTY3JlZW5DYXB0dXJlVGFyZ2V0AHB1bmN0AHJlamVjdABvblVzZXJSZWplY3QAT2JqZWN0AE9jdABmbG9hdAByb29tX2VuZ2luZV9taWMubW92ZV91c2VyX3RvX3NlYXQAcm9vbV9lbmdpbmVfbWljLmxvY2tfc2VhdAByb29tX2VuZ2luZV9taWMua2lja191c2VyX29mZl9zZWF0AHJvb21fZW5naW5lX21pYy5tb3ZlX3NlYXQAcm9vbV9lbmdpbmVfbWljLmxlYXZlX3NlYXQAcm9vbV9lbmdpbmVfbWljLmFwcGx5X3RvX3Rha2Vfc2VhdAByb29tX2VuZ2luZV9taWMuaW52aXRlX3VzZXJfdG9fdGFrZV9zZWF0AHJvb21fZW5naW5lX21pYy50YWtlX3NlYXQAaGVhcnRiZWF0AHJvb21fZW5naW5lX3Nydi5oZWFydF9iZWF0AGNhbGxfZW5naW5lX3Nydi5oZWFydF9iZWF0AGxpdmVfZW5naW5lX3Nydi5oZWFydF9iZWF0AGNhbGxfZW5naW5lIC0gc3RvcCBoZWFydCBiZWF0AFN0YXJ0SGVhcnRCZWF0AFN0b3BIZWFydEJlYXQAU2F0AGNvbW1lcmNpYWwtYXQAdWludDY0X3QAXHQAc3RhdHVzAGdldFVzZXJTdGF0dXMAY3VzdG9tU3RhdHVzAFVwZGF0ZUxvY2FsVXNlckF1ZGlvU3RyZWFtU3RhdHVzAFVwZGF0ZUxvY2FsVXNlclZpZGVvU3RyZWFtU3RhdHVzAHNldFNlbGZTdGF0dXMAaHlwaGVuLW1pbnVzAHJldmVyc2Utc29saWR1cwBTdWJzY3JpYmVBUElDYWxsRXZlbnRzAFN1YnNjcmliZUV2ZW50cwBLZXlNZXRyaWNzU3RhdHMAY2xpZW50X3RzAHVwTG9zcwBkb3duTG9zcwB1bmluaXQgc3VjY2VzcwBjYWxsX2VuZ2luZSAtIG9uQ29ubmVjdFN1Y2Nlc3MAT25Db25uZWN0U3VjY2VzcwBPblNldExvY2FsVmlkZW9TdWNjZXNzAG9uU3VjY2VzcwBSb29tRW5naW5lLkVuYWJsZUxpdmVRb3MAcGFyYW1zAHNldFZpZGVvRW5jb2RlclBhcmFtcwBTZXRWaWRlb0VuY29kZXJQYXJhbXMAc2V0VmlkZW9SZW5kZXJQYXJhbXMAU2V0VmlkZW9SZW5kZXJQYXJhbXMAc2V0TG9jYWxSZW5kZXJQYXJhbXMAc2V0UmVtb3RlUmVuZGVyUGFyYW1zAG11dGVBbGxSZW1vdGVWaWRlb1N0cmVhbXMAY2FsbHMAcXVlcnlSZWNlbnRDYWxscwBPblF1ZXJ5UmVjZW50Q2FsbHMAZGVsZXRlUmVjb3JkQ2FsbHMAT25EZWxldGVSZWNvcmRDYWxscwByaWdodC1wYXJlbnRoZXNpcwBsZWZ0LXBhcmVudGhlc2lzAHRpbVB1c2hGZWF0dXJlcwB1c2VyVm9sdW1lcwBsaXZlX2VuZ2luZV9zcnYuc2VuZF9saWtlcwByb29tX2VuZ2luZV9zcnYucmVtb3ZlX3NjaGVkdWxlX2ludml0ZWVzAHJvb21fZW5naW5lX3Nydi5hZGRfc2NoZWR1bGVfaW52aXRlZXMAZ2V0U2NyZWVuQ2FwdHVyZVNvdXJjZXMAYXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kcwBzdGF0aXN0aWNzAG9uU3RhdGlzdGljcwBWaWRlb0NvbmZpZy5WaWRlb1BsYXkuTWF4Q2FjaGVJbk1zAFZpZGVvQ29uZmlnLlZpZGVvUGxheS5NaW5DYWNoZUluTXMAdXNlcklEcwBpbkNhbGxVc2VySURzAGZvdXIAc3VjY2Vzc19jYWxsYmFjayAhPSBudWxscHRyAEFwcgBOdWxsIFZhbHVlIFBhc3NlZCB0byBWYWx1ZSBDb25zdHJ1Y3RvcgB2ZWN0b3IAZW5hYmxlR3Jhdml0eVNlbnNvcgBzZXRWaWRlb0VuY29kZXJNaXJyb3IAc3lzdGVtIGVycm9yAGNhbGxzIGpzb24gcGFyc2UgZXJyb3IAaW52aXRlVXNlciBqc29uIHBhcnNlIGVycm9yAGpvaW5faW5fZ3JvdXAgY2FsbCBqc29uIHBhcnNlIGVycm9yAGdyb3VwQ2FsbCBqc29uIHBhcnNlIGVycm9yAGdyb3VwSW5Hcm91cENhbGwganNvbiBwYXJzZSBlcnJvcgBjYWxsX2VuZ2luZSAtIGpzb24gcGFyc2UgZXJyb3IAb25FcnJvcgBPblRSVENFcnJvcgBoaWdoTGlnaHRDb2xvcgBiYWNrZ3JvdW5kQ29sb3IAc2V0Vmlld0JhY2tncm91bmRDb2xvcgBSb29tRW5naW5lLkVuYWJsZVYzZG90MUNhbGxiYWNrQmVoYXZpb3IAYW5jaG9yAGVuYWJsZUluZmluaXRlQW5jaG9yAGV4cGVjdGluZyBhbm90aGVyIFx1IHRva2VuIHRvIGJlZ2luIHRoZSBzZWNvbmQgaGFsZiBvZiBhIHVuaWNvZGUgc3Vycm9nYXRlIHBhaXIAbG93ZXIAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIG9ic2VydmVyAHNldE9ic2VydmVyAGJpbmRPYnNlcnZlcgB1bkJpbmRPYnNlcnZlcgBPblNldENhbGxTdGF0dXNPbklNU2VydmVyAE9uR2V0Q2FsbFN0YXR1c0Zyb21JTVNlcnZlcgBpbnZpdGVyAGxvY2FsX3VzZXIAY2FsbF9lbmdpbmVfc3J2Lmludml0ZV91c2VyAGdldExvZ2luVXNlcgBPblN3aXRjaExvZ2luVXNlcgBpbnZpdGVVc2VyAEludml0ZVVzZXIAdXBwZXIAcm9vbV9lbmdpbmVfc3J2LmNoYW5nZV9yb29tX293bmVyAGxpdmVfZW5naW5lX3Nydi5jaGFuZ2Vfcm9vbV9vd25lcgBKU1RpbWVyAGNhbGxlcgBpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlQW5kUHJlZml4U3RyaW5nVmFsdWUoKTogRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIAaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZVN0cmluZ1ZhbHVlKCk6IEZhaWxlZCB0byBhbGxvY2F0ZSBzdHJpbmcgdmFsdWUgYnVmZmVyAGN1cnJlbnQgPj0gYnVmZmVyAGVuYWJsZVByZWxvYWRWaWRlb0RlY29kZXIAc2VuZGVyAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAGxpdmVfZW5naW5lX3Nydi5iYW5fbWVtYmVyAHJvb21fZW5naW5lX3Nydi5iYW5fcm9vbV9tZW1iZXIAcm9vbV9lbmdpbmVfc3J2Lm1hcmtfcm9vbV9tZW1iZXIAcm9vbV9lbmdpbmVfc3J2LnNlYXJjaF9yb29tX21lbWJlcgBsaXZlX2VuZ2luZV9zcnYuc2VhcmNoX3Jvb21fbWVtYmVyAHJvb21fZW5naW5lX3Nydi5tdXRlX3Jvb21fbWVtYmVyAGxpdmVfZW5naW5lX3Nydi5tdXRlX21lbWJlcgBEZWNlbWJlcgBzZW5kZXJfYXZhdGFyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgBccgBzZXEAZ3JvdXAAaW52aXRlSW5Hcm91cABjYWxsX2VuZ2luZV9zcnYuaGFuZ3VwAEhhbmd1cABmdWxsLXN0b3AAU2VwACVJOiVNOiVTICVwAHR3bwB0bwB6ZXJvAGF1ZGlvAHNjcmVlbkF1ZGlvAHN0YXJ0TG9jYWxBdWRpbwBzdG9wTG9jYWxBdWRpbwBtdXRlTG9jYWxBdWRpbwBNdXRlTG9jYWxBdWRpbwBtdXRlQWxsUmVtb3RlQXVkaW8AbXV0ZVJlbW90ZUF1ZGlvAHJvb21fZW5naW5lX3Nydi5nZXRfcm9vbV9tZW1iZXJfaW5mbwByb29tX2VuZ2luZV9zcnYudXBkYXRlX3Jvb21fbWVtYmVyX2luZm8Acm9vbV9lbmdpbmVfc3J2LmdldF9zZWxmX21lbWJlcl9pbmZvAGxpdmVfZW5naW5lX3Nydi5nZXRfc2VsZl9tZW1iZXJfaW5mbwBsaXZlX2VuZ2luZV9way5nZXRfY29ubmVjdGlvbl9pbmZvAHJvb21fZW5naW5lX3Nydi5nZXRfcm9vbV9pbmZvAGxpdmVfZW5naW5lX3Nydi5nZXRfcm9vbV9pbmZvAGxpdmVfZW5naW5lX3Nydi5nZXRfbXVsdGlfcm9vbV9pbmZvAHJvb21fZW5naW5lX3Nydi51cGRhdGVfcm9vbV9pbmZvAGxpdmVfZW5naW5lX3Nydi51cGRhdGVfcm9vbV9pbmZvAGNhbGxfZW5naW5lX3Nydi5nZXRfY2FsbF9pbmZvAG9mZmxpbmVfcHVzaF9pbmZvAHJvb21fZW5naW5lX3Nydi51cGRhdGVfc2NoZWR1bGVfaW5mbwBsaXZlX2VuZ2luZV9way5nZXRfYmF0dGxlX2luZm8AZXh0cmFfaW5mbwBhcG5zSW5mbwBBcG5zSW5mbwBFcnJvckluZm8ASlNTeXN0ZW1JbmZvAEdldENhbGxJbmZvAG9mZmxpbmVQdXNoSW5mbwBPZmZsaW5lUHVzaEluZm8Ac2V0U2VsZkluZm8AZ2V0RGV2aWNlSW5mbwBhbmRyb2lkSW5mbwBBbmRyb2lkSW5mbwB2aWRlbwBtdXRlTG9jYWxWaWRlbwBtdXRlUmVtb3RlVmlkZW8AaXNDb252ZXJ0aWJsZVRvAHVua25vd24Aa1Vua25vd24AU3VuAEp1bgBjYXJyaWFnZS1yZXR1cm4AcmVhc29uAFJlYXNvbgBlbGVjdHJvbgBzZW1pY29sb24AZGVzY3JpcHRpb24AY2FsbF9lbmdpbmUgLSBjYWxsIGVuZCB3aGVuIHBhcnRpY2lwYW50IGNvdW50IOKJpDEgYWZ0ZXIgbmV0d29yayByZWNvbm5lY3Rpb24ATGl2ZVBsYXllci5TZWNvbmRzQmV0d2VlblJlY29ubmVjdGlvbgBMaXZlUGxheWVyLk1heE51bWJlck9mUmVjb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLnN0YXJ0X2Nvbm5lY3Rpb24AbGl2ZV9lbmdpbmVfcGsuZXhpdF9jb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLmNhbmNlbF9jb25uZWN0aW9uAGxpdmVfZW5naW5lX3BrLnJlc3BvbmRfY29ubmVjdGlvbgBhY3Rpb24AZW5hYmxlQXVkaW9Wb2x1bWVFdmFsdWF0aW9uAHJvdGF0aW9uAGNhbGxfZW5naW5lX3Nydi5nZXRfaW52aXRhdGlvbgByb29tX2VuZ2luZV9taWMuY2FuY2VsX3Rha2Vfc2VhdF9pbnZpdGF0aW9uAHJvb21fZW5naW5lX21pYy5yZXNwb25kX3Rha2Vfc2VhdF9pbnZpdGF0aW9uAHJvb21fZW5naW5lX3Nydi5jYW5jZWxfam9pbl9yb29tX2ludml0YXRpb24Acm9vbV9lbmdpbmVfc3J2LmhhbmRsZV9qb2luX3Jvb21faW52aXRhdGlvbgBtb2RpZnlJbnZpdGF0aW9uAEdldENhbGxJbnZpdGF0aW9uAEhhbmRsZVJlY2VpdmVJbnZpdGF0aW9uAGNhbGxfZW5naW5lIC0gaWdub3Jpbmcgbm90aWZpY2F0aW9uIGZvciBvd24gb3BlcmF0aW9uAE1pc3NpbmcgJywnIG9yICddJyBpbiBhcnJheSBkZWNsYXJhdGlvbgBNaXNzaW5nICcsJyBvciAnfScgaW4gb2JqZWN0IGRlY2xhcmF0aW9uAHJvb21fZW5naW5lX21pYy5jYW5jZWxfdGFrZV9zZWF0X2FwcGxpY2F0aW9uAHJvb21fZW5naW5lX21pYy5yZXNwb25kX3Rha2Vfc2VhdF9hcHBsaWNhdGlvbgBlbmFibGVfaW9zX2JhY2tncm91bmRfbm90aWZpY2F0aW9uAGFuZHJvaWRfdml2b19jbGFzc2lmaWNhdGlvbgBWSVZPQ2xhc3NpZmljYXRpb24Acm9vbV9lbmdpbmVfc3J2LmFwcGx5X2RldmljZV9wZXJtaXNzaW9uAHJvb21fZW5naW5lX3Nydi5nZXRfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LnByb2Nlc3NfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LmNhbmNlbF9kZXZpY2VfcGVybWlzc2lvbgByb29tX2VuZ2luZV9zcnYucHJvY2Vzc19yZW1vdGVfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LmNhbmNlbF9yZW1vdGVfZGV2aWNlX3Blcm1pc3Npb24Acm9vbV9lbmdpbmVfc3J2LnNlbmRfcmVtb3RlX2RldmljZV9wZXJtaXNzaW9uADogbm8gY29udmVyc2lvbgBvc192ZXJzaW9uAHNka192ZXJzaW9uAGFwaV92ZXJzaW9uAG9zVmVyc2lvbgBTZGtWZXJzaW9uAE9TVmVyc2lvbgBnZXRTREtWZXJzaW9uAGV4dGVuc2lvbgBEZXZpY2VNYW5hZ2VyRXh0ZW5zaW9uAENhbGxSZWNvcmRFeHRlbnNpb24ATW9uAGpvaW4Ab25Vc2VySm9pbgBsaXZlX2VuZ2luZV9zcnYubW9kaWZ5X2FkbWluAGJ5IGFkbWluAGNhbGxfZW5naW5lX3Nydi5ub3RpZnlfZGV2aWNlX2xvZ2luAGdldExvZ2luVXNlcklkOiBub3QgbG9naW4AaGFzIGxvZ2luAGNhbGxfZW5naW5lIC0gbm90aWZ5aW5nIGRldmljZSBsb2dpbgBIYW5kbGVOb3RpZnlEZXZpY2VMb2dpbgBIYW5kbGVTZW5kTm90aWZ5RGV2aWNlTG9naW4Ab25DYWxsQmVnaW4AY2FsbF9lbmdpbmUgLSBVc2VyIG5vdCBsb2dnZWQgaW4AcGVyY2VudC1zaWduAHBsdXMtc2lnbgBlcXVhbHMtc2lnbgBudW1iZXItc2lnbgBkb2xsYXItc2lnbgBsZXNzLXRoYW4tc2lnbgBncmVhdGVyLXRoYW4tc2lnbgBzZXZlbgBoeXBoZW4Ac2NyZWVuAG5hbgBib29sZWFuAEphbgBcbgBhbG51bQBwbGF0Zm9ybQBib3R0b20AZnJvbQByb29tX2VuZ2luZV9zcnYuZGVzdHJveV9yb29tAGxpdmVfZW5naW5lX3Nydi5kZXN0cm95X3Jvb20Acm9vbV9lbmdpbmVfc3J2LmVudGVyX3Jvb20AbGl2ZV9lbmdpbmVfc3J2LmVudGVyX3Jvb20Acm9vbV9lbmdpbmVfc3J2Lmludml0ZV90b19qb2luX3Jvb20Acm9vbV9lbmdpbmVfc3J2LmxlYXZlX3Jvb20AbGl2ZV9lbmdpbmVfc3J2LmxlYXZlX3Jvb20Acm9vbV9lbmdpbmVfc3J2LmNyZWF0ZV9yb29tAGxpdmVfZW5naW5lX3Nydi5jcmVhdGVfcm9vbQBleGl0Um9vbQBvbkV4aXRSb29tAGVudGVyUm9vbQBvblJlbW90ZVVzZXJFbnRlclJvb20Ab25FbnRlclJvb20AT25UUlRDUmVtb3RlRW50ZXJSb29tAGNoZWNrRHVwbGljYXRlRW50ZXJSb29tAG9uUmVtb3RlVXNlckxlYXZlUm9vbQBPblRSVENSZW1vdGVMZWF2ZVJvb20ATGVhdmVUUlRDUm9vbQBSYW5kb20ASlNUaW0AVElNVGV4dEVsZW0AVElNQ3VzdG9tRWxlbQB3eE1pbmlQcm9ncmFtAGNhbGxfZW5naW5lIC0gZmFpbGVkIHRvIHBhcnNlIGpzb25fcGFyYW0AaW52YWxpZCBqc29uX3BhcmFtAHNldFZpZGVvRW5jb2RlclBhcmFtAHNldFN1YlN0cmVhbUVuY29kZXJQYXJhbQBsaXZlX2VuZ2luZV9zcnYuc2V0X21peF9zdHJlYW0AdXBkYXRlIHZpZGVvIHZpZXcgZG9lcyBub3Qgc3VwcG9ydCBzY3JlZW4gc3RyZWFtAGVuYWJsZVNtYWxsVmlkZW9TdHJlYW0AU3RhcnRQdXNoTG9jYWxWaWRlb1N0cmVhbQBTdG9wUHVzaExvY2FsVmlkZW9TdHJlYW0ASnVsAGNudHJsAEF2YXRhclVybABTZW5kTXNnQ29udHJvbABib29sAHN0b3VsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgdmlldywgaW52YWxpZCB0eXBlIG9yIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIGxldmVsLCBpbnZhbGlkIHR5cGUgb3IgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgdXNlcl9zaWcsIGludmFsaWQgdHlwZSBvciBudWxsAGNhbGxfZW5naW5lIC0gaW52YWxpZCB1c2VyX2lkLCBpbnZhbGlkIHR5cGUgb3IgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgc2RrX2FwcF9pZCwgaW52YWxpZCB0eXBlIG9yIG51bGwAaW52aXRlZV9saXN0IGNhbm5vdCBiZSBudWxsAGNhbGxfZW5naW5lIC0gaW52YWxpZCBwYXJhbWV0ZXJzLCB1c2VyX2lkX2xpc3QgY2Fubm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIGludml0ZXIgY2Fubm90IGJlIG51bGwAanNvbl9wYXJhbSBjYW5ub3QgYmUgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgcGFyYW1ldGVycywgdXNlcl9pZCBjYW5ub3QgYmUgbnVsbABncm91cF9pZCBjYW5ub3QgYmUgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgcGFyYW1ldGVycywgY2FsbF9pZCBjYW5ub3QgYmUgbnVsbABjYWxsX2VuZ2luZSAtIGludmFsaWQgcGFyYW1ldGVycywgdGVybWluYWxfaWQgY2Fubm90IGJlIG51bGwAaW52aXRlZV9pZCBjYW5ub3QgYmUgbnVsbABjYWxsX2lkfGludml0ZXJ8aW52aXRlZV9saXN0fGRhdGEgY2Fubm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIHVzZXJfaWRfbGlzdCBjYW4gbm90IGJlIG51bGwAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHBhcmFtZXRlcnMsIGNhbGxfaWQgY2FuIG5vdCBiZSBudWxsAGNhbGxfZW5naW5lX3Nydi5zdGFydF9jYWxsAGFjY2VwdF9jYWxsAHJlamVjdF9jYWxsAG5vdF9hbnN3ZXJfY2FsbABqb2luX2luX2dyb3VwX2NhbGwAY2FsbF9lbmdpbmVfc3J2LmpvaW5faW5fY2FsbABjYW5jZWxfY2FsbABpc19lcGhlbWVyYWxfY2FsbAByZWNlaXZlX2NhbGwAaWdub3JlX2NhbGwAY2FsbF9lbmdpbmVfc3J2LmhhbmRsZV9jYWxsAHJlamVjdCwgcmVtb3RlIHVzZXIgY2FsbCB0eXBlIGlzIG5vdCB2aWRlbyBjYWxsAGNhbGxfZW5naW5lLCBlbmQgb2YgY2FsbABTdGFydENhbGwAZ3JvdXBDYWxsAGpvaW5Jbkdyb3VwQ2FsbABKb2luSW5Hcm91cENhbGwASXNFcGhlbWVyYWxDYWxsAENoZWNrQ2FsbEFiaWxpdHlCZWZvcmVDYWxsAEFwcmlsAG9wcG9fbm90aWZ5X2xldmVsAHNlbmRlcl9sZXZlbABpb3NfaW50ZXJydXB0aW9uX2xldmVsAE9QUE9Ob3RpZnlMZXZlbABJbnRlcnJ1cHRpb25MZXZlbABjYW5jZWwAQ2FuY2VsAGludGVydmFsAHN0YXJ0SW50ZXJ2YWwAc3RvcEludGVydmFsAG9uSW50ZXJ2YWwASGVhcnRCZWF0LkNhbGwuVGltZUludGVydmFsAGVtc2NyaXB0ZW46OnZhbABPblNlbmRBY2NlcHRTaWduYWwAT25TZW5kUmVqZWN0U2lnbmFsAE9uU2VuZEludml0ZVVzZXJTaWduYWwAT25TZW5kSGFuZ3VwU2lnbmFsAE9uU2VuZEdyb3VwQ2FsbFNpZ25hbABPblNlbmRDYWxsU2lnbmFsAE9uU2VuZENhbmNlbFNpZ25hbABOb3JtYWwAZ2V0IHVzZXJzIGluZm8gZnJvbSBsb2NhbABhc3RlcmlzawBsaXZlX2VuZ2luZV9zcnYucmVzdW1lX21jdV90YXNrAG5vIG5ldHdvcmsAZnJhbWV3b3JrAHNldEZyYW1ld29yawBxdWVzdGlvbi1tYXJrAHF1b3RhdGlvbi1tYXJrAGV4Y2xhbWF0aW9uLW1hcmsAYmxhbmsAbmljawBjaGVjawBzdGFydFN5c3RlbUF1ZGlvTG9vcGJhY2sAc3RvcFN5c3RlbUF1ZGlvTG9vcGJhY2sATGl2ZS5BdXRvRmFsbGJhY2suRW5hYmxlUGxheUF1dG9GYWxsYmFjawBKU1RpbWVyQ2FsbGJhY2sASlNDYWxsYmFjawBqAEZyaQBhcGkAbGVuZ3RoAHdpZHRoAGhpZ2hMaWdodFdpZHRoAGltYWdlUGF0aABpc19kaXNhYmxlX3B1c2gASXNWb2lwUHVzaABkaXNhYmxlVm9pcFB1c2gAZGlzYWJsZVB1c2gAYmFja3NsYXNoAGdyYXBoAEhpZ2gAY2FsbF9lbmdpbmUgLSBjYWxsX2lkIG1pc21hdGNoAGNhbGxfZW5naW5lIC0gaW52aXRlX2lkIG1pc21hdGNoAE1hcmNoAEF1ZwBtb3JlX21zZwBlcnJNc2cAd2FybmluZ01zZwBsb2cAcmVwb3J0T25saW5lTG9nAHVuc2lnbmVkIGxvbmcAb25QbGF5aW5nAGluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiBsZW5ndGggdG9vIGJpZyBmb3IgcHJlZml4aW5nAG9uVXNlckludml0aW5nAHdhaXRpbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBwYXJzZSByb29tIGlkIGZhaWxlZCwgcm9vbUlkIGlzIG5vdCBhIHZhbGlkIHVuc2lnbmVkIGludGVnZXIgc3RyaW5nAFR5cGUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHN0cmluZwBFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAEJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAHZhbHVlVG9TdHJpbmcAcmVqZWN0ZWQgdG8gc3RhcnQgc2NyZWVuLXNoYXJpbmcAU3RhcnRTY3JlZW5TaGFyaW5nAG9uV2FybmluZwBzdGFydE1lc3NhZ2VMb25nUG9sbGluZwBzdG9wTWVzc2FnZUxvbmdQb2xsaW5nAHRoZSBjdXJyZW50IHN0YXR1cyBpcyB3YWl0aW5nIG9yIGNhbGxpbmcAb25Mb2FkaW5nAHJvb21fc2VydmVyX2NvbmZpZwByZXNldCBjb25maWcAcmVxdWVzdCBjbG91ZCBjb25maWcAT25TeW5jaHJvbml6ZUNvbW1hbmRGcmVxdWVuY3lMaW1pdENvbmZpZwBSZXNldENvbmZpZwBnZXRTZXJ2ZXJDb25maWcAT25SZXF1ZXN0Q2xvdWRDb25maWcAdXNlclNpZwAlJS4lZGcAaW52YWxpZCBtb2RpZnlfZmxhZwByb29tX2VuZ2luZV9zcnYucmVwb3J0X2F2X2ZsYWcAbGl2ZV9lbmdpbmVfc3J2LnJlcG9ydF9hdl9mbGFnAGxpdmVfZW5naW5lX3Nydi5nZXRfYXZfZmxhZwBQdXNoRmxhZwBpbmYAdGhlIGludml0ZXIgaXMgeW91cnNlbGYAY2FsbF9lbmdpbmUgLSBjYWxsX2lkIG1pc21hdGNoIG9yIGludml0ZXIgaXMgb25lc2VsZgBieSBzZWxmAE9uS2lja2VkT2ZmAFxmACUuMExmACVMZgBjaGlsZFZhbHVlc18uc2l6ZSgpID09IHNpemUAaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oaW50IGluZGV4KTogaW5kZXggY2Fubm90IGJlIG5lZ2F0aXZlAGZpdmUAVFJUQy5FbmFibGVDYWxsc0R1cmluZ0xpdmUAb25Vc2VyTGVhdmUAdHJ1ZQB0dWlraXRfc3RvcmFnZV92YWx1ZQB+VmFsdWUAaW4gSnNvbjo6VmFsdWU6Om9wZXJhdG9yW10oQXJyYXlJbmRleCljb25zdDogcmVxdWlyZXMgYXJyYXlWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6b3BlcmF0b3JbXShBcnJheUluZGV4KTogcmVxdWlyZXMgYXJyYXlWYWx1ZQB3cml0ZUFycmF5VmFsdWUAc2V0VmFsdWUAZ2V0VmFsdWUAU2V0VmFsdWUAaW4gSnNvbjo6VmFsdWU6OnJlc29sdmVSZWZlcmVuY2Uoa2V5LCBlbmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6Z2V0TWVtYmVyTmFtZXMoKSwgdmFsdWUgbXVzdCBiZSBvYmplY3RWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6ZmluZChrZXksIGVuZCwgZm91bmQpOiByZXF1aXJlcyBvYmplY3RWYWx1ZSBvciBudWxsVmFsdWUAT25TeW5jaHJvbml6ZUNvbW1lcmNpYWxWYWx1ZQBSb29tRW5naW5lLkNvbW1lcmNpYWxWYWx1ZQBpbiBKc29uOjpWYWx1ZTo6YXNDU3RyaW5nKCk6IHJlcXVpcmVzIHN0cmluZ1ZhbHVlAFR1ZQBpZ25vcmVfbXV0ZQBJZ25vcmVNdXRlAHRoZSB1c2VyIGlzIG5vdCByZW1vdGUAY2FsbF9lbmdpbmVfc3J2LmNhbmNlbF9pbnZpdGUAY2FsbF9lbmdpbmUgLSBpZ25vcmVkIG9uIHRoaXMgZGV2aWNlOiBjYWxsX2lkIG1pc21hdGNoIG9yIG5vdCBpbiB3YWl0aW5nIHN0YXRlAEFkanVzdEVuY29kZUJpdHJhdGUAbGl2ZV9lbmdpbmVfc3J2LmdldF9taXhfdGVtcGxhdGUAZW5hYmxlQ2FwdHVyZU1vdXNlAGRhdGEgbm90IGhhdmUgcmVzcG9uc2UAaW52YWxpZCByZXNwb25zZQBIYW5kbGVBY2NlcHRSZXNwb25zZQBIYW5kbGVTZW5kUGFja2V0UmVzcG9uc2UASGFuZGxlUmVqZWN0UmVzcG9uc2UASGFuZGxlU2VuZFN0YXJ0SGVhcnRCZWF0UmVzcG9uc2UASGFuZGxlSW52aXRlVXNlclJlc3BvbnNlAEhhbmRsZUhhbmd1cFJlc3BvbnNlAEhhbmRsZUdldENhbGxJbmZvUmVzcG9uc2UAb25Vc2VyTm9SZXNwb25zZQBIYW5kbGVHZXRDYWxsSW52aXRhdGlvblJlc3BvbnNlAEhhbmRsZUNhbmNlbEludml0YXRpb25SZXNwb25zZQBIYW5kbGVSZXNwb25kSW52aXRhdGlvblJlc3BvbnNlAEhhbmRsZVN0YXJ0Q2FsbFJlc3BvbnNlAEhhbmRsZUpvaW5Jbkdyb3VwQ2FsbFJlc3BvbnNlAEhhbmRsZUNhbGxSZXNwb25zZQBIYW5kbGVDYW5jZWxSZXNwb25zZQBIYW5kbGVTZW5kQ2FsbFJlY29yZFJlc3BvbnNlAGZhbHNlAHN0YXJ0U2NyZWVuQ2FwdHVyZQBzdG9wU2NyZWVuQ2FwdHVyZQBpZ25vcmUAdW5kZXJzY29yZQBzdGFydFNjcmVlblNoYXJlAHN0b3BTY3JlZW5TaGFyZQBwcm90b3R5cGUAZXZlbnRfdHlwZQB2b2lwX3R5cGUAY29udmVyc2F0aW9uX3R5cGUAbGl2ZV9lbmdpbmVfc3J2LmdldF9yb29tX3R5cGUAdGhlIGN1cnJlbnQgcm9vbSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZSwgcGxlYXNlIGNoZWNrIHRoZSByb29tX3R5cGUAY2FsbF90eXBlAGlvc19wdXNoX3R5cGUAYW5kcm9pZF9wdXNoX3R5cGUAbWVzc2FnZV90eXBlAHJvb21faWRfdHlwZQB2b2lwX21lZGlhX3R5cGUAaW52YWxpZCBtZWRpYV90eXBlAHBhcnNlIHJvb20gaWQgZmFpbGVkLCB1bmtub3duIHJvb21JZCB0eXBlAG1pcnJvclR5cGUAQWN0aW9uVHlwZQBjb252ZXJzYXRpb25UeXBlAGZjbU5vdGlmaWNhdGlvblR5cGUAc3RyZWFtVHlwZQBmY21QdXNoVHlwZQBNc2dUeXBlAGJhY2tncm91bmRUeXBlAFJvb21JZFR5cGUAc3dpdGNoQ2FsbE1lZGlhVHlwZQBTd2l0Y2hDYWxsTWVkaWFUeXBlAFZpZGVvQ29uZmlnLlZpZGVvUGxheS5UeXBlAEp1bmUAb3Blbk1pY3JvcGhvbmUAT25PcGVuTG9jYWxNaWNyb3Bob25lAENsb3NlTG9jYWxNaWNyb3Bob25lAGNsb3NlTWljcm9waG9uZQBuaW5lAG5ld2xpbmUAb25LaWNrZWRPZmZsaW5lAGxvdy1saW5lAHZlcnRpY2FsLWxpbmUAY2FsbF9lbmdpbmUAb25LaWNrZWRPZmZMaW5lAHZvbHVtZQBzZXRBdWRpb1BsYXlvdXRWb2x1bWUAb25Vc2VyVm9pY2VWb2x1bWUAc2VydmVyX3RpbWUAaW52aXRlVGltZQBvblNlbmRGaXJzdExvY2FsQXVkaW9GcmFtZQBvbkZpcnN0VmlkZW9GcmFtZQBvblNlbmRGaXJzdExvY2FsVmlkZW9GcmFtZQBzZW5kZXJfbmlja25hbWUAb3NfbmFtZQBjYWxsX2VuZ2luZSAtIGNhbGxfcmVjb3JkX3RhYmxlX25hbWUAZGV2aWNlX25hbWUATWlzc2luZyAnfScgb3Igb2JqZWN0IG1lbWJlciBuYW1lAE1pc3NpbmcgJzonIGFmdGVyIG9iamVjdCBtZW1iZXIgbmFtZQBvc05hbWUAVXNlck5hbWUAc291cmNlTmFtZQBkZXZpY2VOYW1lAERldmljZU5hbWUAT1NOYW1lAHRoaXMgaW52aXRhdGlvbiBpcyBub3QgZm9yIG1lAG1vZHVsZQBsaXZlX2VuZ2luZV9way5leGl0X2JhdHRsZQBsaXZlX2VuZ2luZV9way5jYW5jZWxfYmF0dGxlAGxpdmVfZW5naW5lX3BrLmNyZWF0ZV9iYXR0bGUAbGl2ZV9lbmdpbmVfcGsuaGFuZGxlX2JhdHRsZQB0aXRsZQBUaXRsZQByb2xlAHN3aXRjaFJvbGUAb25Td2l0Y2hSb2xlAHVwZGF0ZU15UHJvZmlsZQBnZXRVc2VyUHJvZmlsZQBzaW5nbGUAdGhlIGNhbGwgc3RhdHVzIGZyb20gdGhlIElNIHNlcnZlciBpcyBub3QgaWRsZQBkb3VibGUAU0VMRUNUICogRlJPTSBjYWxsX3JlY29yZF90YWJsZQBlbmFibGUAYXZhaWxhYmxlAENvbnRlbnRBdmFpbGFibGUAb25Vc2VyQXVkaW9BdmFpbGFibGUAb25Vc2VyVmlkZW9BdmFpbGFibGUAb25Vc2VyU3ViU3RyZWFtQXZhaWxhYmxlAGFwb3N0cm9waGUATGFyZ2VzdEludCBvdXQgb2YgVUludCByYW5nZQBMYXJnZXN0VUludCBvdXQgb2YgVUludCByYW5nZQBkb3VibGUgb3V0IG9mIFVJbnQgcmFuZ2UATGFyZ2VzdEludCBvdXQgb2YgSW50IHJhbmdlAExhcmdlc3RVSW50IG91dCBvZiBJbnQgcmFuZ2UAZG91YmxlIG91dCBvZiBJbnQgcmFuZ2UAOiBvdXQgb2YgcmFuZ2UATGFyZ2VzdEludCBvdXQgb2YgVUludDY0IHJhbmdlAGRvdWJsZSBvdXQgb2YgVUludDY0IHJhbmdlAExhcmdlc3RVSW50IG91dCBvZiBJbnQ2NCByYW5nZQBkb3VibGUgb3V0IG9mIEludDY0IHJhbmdlAGlnbm9yZV9pb3NfYmFkZ2UAaWdub3JlSU9TQmFkZ2UAbGFuZ3VhZ2UASTE4bi5DdXJyZW50TGFuZ3VhZ2UAbWVzc2FnZQBleGNsdWRlRnJvbUhpc3RvcnlNZXNzYWdlAEV4Y2x1ZGVGcm9tSGlzdG9yeU1lc3NhZ2UAT25TZW5kQzJDVGV4dE1lc3NhZ2UAZXZlbnRNZXNzYWdlAGVycm9yTWVzc2FnZQBzZW5kQ29tYm9NZXNzYWdlAGV4dGVuc2lvbk1lc3NhZ2UAbW9yZU1lc3NhZ2UAb25SZWNlaXZlU0VJTWVzc2FnZQBKU0xvY2FsU3RvcmFnZQBpb3NfaW1hZ2UAaG9ub3JfaW1hZ2UAZmNtX2ltYWdlAGh1YXdlaV9pbWFnZQBIb25vckltYWdlAEh1YVdlaUltYWdlAEdvb2dsZUltYWdlAG5vdCBidXkgdGhlIGdyb3VwIGNhbGwgcGFja2FnZQBub3QgYnV5IHRoZSBiYXNpYyBjYWxsIHBhY2thZ2UAaW52aXRlZQB0aHJlZQBjYWxsZWUAbW9kZQBjb2RlAHNldERlZmF1bHRTdHJlYW1SZWN2TW9kZQBmaWxsTW9kZQBzZXRMb2NhbEF1ZGlvTXV0ZU1vZGUAQmFkZ2VNb2RlAGV2ZW50Q29kZQBSZXN1bHRDb2RlAGVyckNvZGUAZXJyb3JDb2RlAEVycm9yQ29kZQB3YXJuaW5nQ29kZQB0aWxkZQBzZXF1ZW5jZQBsb25nUG9sbGluZ1NlcXVlbmNlAGF1ZGllbmNlAGdldEluc3RhbmNlAGhvbm9yX2ltcG9ydGFuY2UASG9ub3JJbXBvcnRhbmNlAGVuYWJsZUhpZ2hQZXJmb3JtYW5jZQBPbkludml0YXRpb25Qcm9jZXNzZWRCeU90aGVyRGV2aWNlAHNlbGVjdEF1ZGlvUGxheWJhY2tEZXZpY2UAcmlnaHQtYnJhY2UAbGVmdC1icmFjZQBiYWNrc3BhY2UAZ2V0VFJUQ0Nsb3VkAHBlcmlvZABpb3Nfc291bmQAYW5kcm9pZF9zb3VuZABzZXRCbHVyQmFja2dyb3VuZABTZXRCbHVyQmFja2dyb3VuZABzZXRWaXJ0dWFsQmFja2dyb3VuZABTZXRWaXJ0dWFsQmFja2dyb3VuZABlbmFibGVWaXJ0dWFsQmFja2dyb3VuZABjb21tYW5kIGZyZXF1ZW5jeSBsaW1pdCBub3QgZm91bmQAU291bmQAdXNlciBub3QgZmluZABjYWxsX2VuZABhbXBlcnNhbmQAY29tbWFuZABzZXJ2aWNlQ29tbWFuZABvbkNhbGxFbmQAY21kAHBhcnNlIHJvb20gaWQgZmFpbGVkLCBtaXNzaW5nIG9yIGludmFsaWQgUm9vbUlkVHlwZS9Sb29tSWQgZmllbGQAcHJvZmlsZUN1c3RvbUZpZWxkAHZvaWQAaW52aXRlZV9saXN0IGlzIGludmFsaWQAY2FsbF9tZWRpYV90eXBlIGlzIGludmFsaWQAZ3JvdXBfaWQgaXMgaW52YWxpZABjYWxsX2lkIGlzIGludmFsaWQAaW52aXRlZV9pZCBpcyBpbnZhbGlkAHVzZXJfaWQAZ3JvdXBfaWQAY29udmVyc2F0aW9uX2lkAGludF9yb29tX2lkAHN0cl9yb29tX2lkAGNhbGxfZW5naW5lIC0gZHVwbGljYXRlIGNhbGwgd2l0aCBzYW1lIGNhbGxfaWQAYW5kcm9pZF9vcHBvX2NoYW5uZWxfaWQAYW5kcm9pZF9mY21fY2hhbm5lbF9pZABhbmRyb2lkX3hpYW9taV9jaGFubmVsX2lkAGxpdmVfZW5naW5lX3Nydi5zd2l0Y2hfbGF5b3V0X3RlbXBsYXRlX2lkAG1lc3NhZ2VfaWQAb25OZXdJbnZpdGF0aW9uUmVjZWl2ZWQAT25OZXdJbnZpdGF0aW9uUmVjZWl2ZWQAb25DYWxsUmVjZWl2ZWQAb25OZXdNZXNzYWdlUmVjZWl2ZWQAb25Sb29tQ3VzdG9tRGF0YVJlY2VpdmVkAGNhbGxfaW50ZXJydXB0ZWQAY2FsbF9hY2NlcHRlZABPbkludml0YXRpb25BY2NlcHRlZABvbkludml0ZWVBY2NlcHRlZABPbkludml0ZWVBY2NlcHRlZABub3QgaW5pdGVkAGhhcyBpbml0ZWQAY2FsbF9lbmdpbmUgLSB0aGlzIGNhbGwgaGFzIGJlZW4gYWNjZXB0ZWQgb24gYW5vdGhlciBkZXZpY2UsIHJlcGVhdGVkIG9yIGludmFsaWQgYWNjZXB0IHN0YXRlIGRldGVjdGVkAG9uQ2FsbE5vdENvbm5lY3RlZABjYWxsX3JlamVjdGVkAGVudGVyIHRydGMgcm9vbSByZWplY3RlZABzdGFydCBwbGF5IHJlbW90ZSB2aWRlbyBzdHJlYW0gcmVqZWN0ZWQAT25JbnZpdGF0aW9uUmVqZWN0ZWQAb25JbnZpdGVlUmVqZWN0ZWQAT25JbnZpdGVlUmVqZWN0ZWQAT25SZW1vdGVWaWRlb1N0YXR1c1VwZGF0ZWQAb25TZXJ2ZXJDb25maWdVcGRhdGVkAG9uU2NyZWVuQ2FwdHVyZVBhdXNlZABjYWxsX21pc3NlZABvblVzZXJTaWdFeHBpcmVkAG9uU2NyZWVuQ2FwdHVyZVN0b3BwZWQAdGhlIHJlY2VpdmVkIHNpZ25hbCBoYXMgYmVlbiBjb25zdW1lZABvblNjcmVlbkNhcHR1cmVSZXN1bWVkAG9uSW52aXRhdGlvbkNhbmNlbGxlZABPbkludml0YXRpb25DYW5jZWxsZWQAY2FsbF9mYWlsZWQAc2VuZCBhY2NlcHQgcmVxdWVzdCBmYWlsZWQAY2FsbF9lbmdpbmUgLSBzZXQgcGlwZWxpbmVfY2xpZW50IGZhaWxlZABhc3NlcnQganNvbiBmYWlsZWQAZGVjb2RlIHJlc3BvbnNlX2RhdGEgZmFpbGVkAGNsb2NrX2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUpIGZhaWxlZABjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQykgZmFpbGVkAG9uQ29ubmVjdEZhaWxlZABPbkVudGVyVFJUQ1Jvb21GYWlsZWQAY2FsbF9jYW5jZWxlZABPbkludml0YXRpb25DYW5jZWxlZABjYWxsX2VuZ2luZSAtIGludmFsaWQgZW5hYmxlZABpc0NvbW1lcmNpYWxBYmlsaXR5RW5hYmxlZABvblVzZXJOZXR3b3JrUXVhbGl0eUNoYW5nZWQAT25DYWxsTWVtYmVyQ2hhbmdlZABPblVzZXJWaWRlb1NpemVDaGFuZ2VkAE9uVXNlckF1ZGlvU3RhdGVDaGFuZ2VkAE9uVXNlclZpZGVvU3RhdGVDaGFuZ2VkAG9uQ2FsbE1lZGlhVHlwZUNoYW5nZWQAb25Vc2VyVm9pY2VWb2x1bWVDaGFuZ2VkAGZvcm0tZmVlZABXZWQAcGF5bG9hZABoZWFkAEhlYWQAUmVxdWVzdElkAGV2ZW50SWQAdXNlcklkAFVzZXJJZABHcm91cElkAHNka0FwcElkAFJvb21JZABpbml0aWFsQ2FsbElkAFRlcm1pbmFsSWQAZGF0YSBub3QgaGF2ZSBpbml2dGVJZABzb3VyY2VJZABkZXNjAERlc2MAbnVtZXJpYwBEZWMALi8uLi8uLi9zcmMvc3NvX2NoYW5uZWwvc3NvX3BhY2tldC5jYwAuLy4uLy4uL3NyYy9leHRlbnNpb25zL2V4dGVuc2lvbl9jZW50ZXIvZXh0ZW5zaW9uX2NlbnRlci5jYwAuLy4uLy4uL3NyYy9iYXNpYy9jb25maWdfY2VudGVyL2NvbmZpZ19jZW50ZXIuY2MALi8uLi8uLi9zcmMvc3NvX2NoYW5uZWwvY29tbWFuZF9mcmVxdWVuY3lfY2hlY2tlci5jYwAuLy4uLy4uL3NyYy9waXBlbGluZS9hY2NvdW50L2FjY291bnRfbWFuYWdlci5jYwAuLy4uLy4uL3NyYy9waXBlbGluZS9jYWxsL21vZHVsZS92Ml9jYWxsL3YyX2dyb3VwX2NhbGxfbWFuYWdlci5jYwAuLy4uLy4uL3NyYy9waXBlbGluZS9jYWxsL21vZHVsZS92Ml9jYWxsL3YyX3NpbmdsZV9jYWxsX21hbmFnZXIuY2MALi8uLi8uLi9zcmMvcGlwZWxpbmUvY2FsbC9tb2R1bGUvdjNfY2FsbC92M19jYWxsX21hbmFnZXIuY2MALi8uLi8uLi90aGlyZF9wYXJ0eS9qc29uY3BwL2pzb25jcHAuY2MALi8uLi8uLi9zcmMvZXh0ZW5zaW9ucy9kZXZpY2VfbWFuYWdlci9kZXZpY2VfbWFuYWdlcl9leHRlbnNpb24uY2MALi8uLi8uLi9zcmMvZXh0ZW5zaW9ucy9jYWxsX3JlY29yZC9jYWxsX3JlY29yZF9leHRlbnNpb24uY2MALi8uLi8uLi9zcmMvaW1fY29udHJvbGxlci93YXNtL2ltX2NvbnRyb2xsZXJfd2FzbS5jYwAuLy4uLy4uL3NyYy9pbV9jb250cm9sbGVyL3dhc20vaW1fZXZlbnRfY2hhbm5lbF93YXNtLmNjAC4vLi4vLi4vc3JjL3RydGNfY29udHJvbGxlci9tb2R1bGVzL3RydGNfYWRhcHRlci93YXNtL3RydGNfZXZlbnRfY2hhbm5lbF93YXNtLmNjAC4vLi4vLi4vc3JjL3BsYXRmb3JtX2FkYXB0ZXIvd2FzbS9jYWxsX2VuZ2luZV93YXNtLmNjAC4vLi4vLi4vc3JjL3RydGNfY29udHJvbGxlci9tb2R1bGVzL3RydGNfY29udHJvbGxlcl9pbXBsLmNjAC4vLi4vLi4vc3JjL3BpcGVsaW5lL2NhbGwvbW9kdWxlL3YzX2NhbGwvdjNfY2FsbF9zc29fY2hhbm5lbC5jYwAuLy4uLy4uL3NyYy9zc29fY2hhbm5lbC9zc29fY2hhbm5lbC5jYwAuLy4uLy4uL3NyYy9waXBlbGluZS9jYWxsL21vZHVsZS9jYWxsX3BpcGVsaW5lLmNjAHdlYgBGZWIAQ2FsbFJlY29yZC5kYgB2ZXJ0aWNhbC10YWIAXGIAcm9vbV9lbmdpbmVfc3J2LnNldF9yb29tX21ldGFkYXRhAGxpdmVfZW5naW5lX3Nydi5zZXRfcm9vbV9tZXRhZGF0YQByb29tX2VuZ2luZV9zcnYuZ2V0X3Jvb21fbWV0YWRhdGEAbGl2ZV9lbmdpbmVfc3J2LmdldF9yb29tX21ldGFkYXRhAHVzZXJfZGF0YQBjbG91ZF9jdXN0b21fZGF0YQBpbnZhbGlkIHJlc3BvbnNlX2RhdGEAaW52YWxpZCByZXNwb25kX2RhdGEAcGFyc2Ugbm90aWZ5IGZhaWxlZCwgaW52YWxpZCBub3RpZnkgZGF0YQBvbkdldFVzZXJJbmZvTGlzdDogbm8gZGF0YQBpbnZhbGlkIGpzb24gZGF0YQBwYXJzZSBjYWxsSW5mbyBmYWlsZWQsIGludmFsaWQgcmVzcG9uc2UgZGF0YQBwYXJzZSByZXNwb25zZSBmYWlsZWQsIGludmFsaWQgcmVzcG9uc2UgZGF0YQBpbnZhbGlkIGRhdGEAdXNlckRhdGEAVXNlckRhdGEAT25SZWNlaXZlUm9vbUN1c3RvbURhdGEAc2VuZFJvb21DdXN0b21EYXRhAGNsb3VkQ3VzdG9tRGF0YQBDbG91ZEN1c3RvbURhdGEAY2FtZXJhAG9wZW5DYW1lcmEAT3BlbkNhbWVyYQBPbk9wZW5Mb2NhbENhbWVyYQBDbG9zZUxvY2FsQ2FtZXJhAHN3aXRjaENhbWVyYQBjbG9zZUNhbWVyYQBSZXBvcnRFdmVudFRvS2liYW5hAGNvbW1hAGFscGhhAGNvbGxlY3RDb21tZW50c18AVGFnX1Byb2ZpbGVfQ3VzdG9tXwBpbmRlbnRTdHJpbmdfLnNpemUoKSA+PSBpbmRlbnRTaXplXwBwYXJzZSBub3RpZnkgZmFpbGVkLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlIFtPcGVyYXRpb25Vc2VyTGlzdF0AcGFyc2Ugbm90aWZ5IGZhaWxlZCwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSBbQWxsVXNlckxpc3RdAG11dGVMb2NhbFZpZGVvIFttdXRlOiB0cnVlXQBtdXRlTG9jYWxWaWRlbyBbbXV0ZTogZmFsc2VdAFtdACBdAFxcAFxdIFxbAHBhcnNlIG5vdGlmeSBmYWlsZWQsIG1pc3NpbmcgZmllbGQgb3IgaW5jb3JyZWN0IGZpZWxkIHR5cGUgWwBpbnZhbGlkIFsAWgAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWAAlMDJYAFcAVgBVAFQAY2FsbEpTACVIOiVNOiVTAExpdmUuTXVsdGlRdWFsaXR5LkVuYWJsZVN3aXRjaFBsYXliYWNrUXVhbGl0eVdpdGhBQlIAUQBHUk9VUABPAE5hTgBOQU4AVFVJUm9vbURldmljZU1hbmFnZXJXQVNNAElNRXZlbnRDaGFubmVsV0FTTQBUUlRDRXZlbnRDaGFubmVsV0FTTQBUVUlDYWxsRW5naW5lV0FTTQBQTQBsb2dvdXRJTQBBTQBOVUwATENfQUxMAE9LAEoAY2FsbEFQSQBDYWxsQVBJAGNhbGxFeHBlcmltZW50YWxBUEkAQ2FsbEV4cGVyaW1lbnRhbEFQSQBIAExBTkcASU5GAEUAYnVzaW5lc3NJRAB1c2VySUQAZ3JvdXBJRABYaWFvTWlDaGFubmVsSUQAR29vZ2xlQ2hhbm5lbElEAE9QUE9DaGFubmVsSUQARkNNQ2hhbm5lbElEAGludml0ZUlEAGRlc3Ryb3lUUlRDAGNyZWF0ZVRSVEMASlNUUlRDAEMyQwBCAGljb25CR1JBAHRodW1iQkdSQQBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AG9wZXJhdG9yPT0AREVMRVRFIEZST00gY2FsbF9yZWNvcmRfdGFibGU7ACBPUkRFUiBCWSBpZCBERVNDOwApOwAsIGNvbW1lcmNpYWxfa2V5OgBjYWxsX2VuZ2luZSAtIGJvZHk6ACwgbmV3OgBzdG9wX3Jlc3VsdDoAW3Jlc3VsdDoALCByZXN1bHQ6ACwgbGltaXQ6AGNhbGxfZW5naW5lIC0gW2N1c3RvbV9zdGF0dXM6AHJlamVjdCB0byBzdGFydCwgc3RhdHVzOgAgW2ZwczoALCBwYXJhbXM6ACxvcGVyYXRvcjoALGludml0ZXI6ACwgaW52aXRlcjoALGhhc19hdWRpbzoALCBoYXNfYXVkaW86ACxoYXNfdmlkZW86ACwgaGFzX3ZpZGVvOgAsY2hhbmdlX3JlYXNvbjoAW3JlYXNvbjoALHJlYXNvbjoALCByZWFzb246ACBbdmlkZW9fcmVzb2x1dGlvbjoAY2FsbF9lbmdpbmUgLSBbaW0gdmVyc2lvbjoALCB0dWlraXQgZW5naW5lIHZlcnNpb246ACwgdHJ0YyB2ZXJzaW9uOgAsIG1heGltdW06AGNhbGxfZW5naW5lIC0gW2pzb25fcGFyYW06AGNhbGxfZW5naW5lIC0gIFtqc29uX3BhcmFtOgAsanNvbl9wYXJhbToALCBvbGRfaGFzX2JpZ192aWRlb19zdHJlYW06ACxpc19lcGhlbWVyYWxfY2FsbDoAY2FsbF9lbmdpbmUgLSBjYWxsIGFwaToALCBjbG91ZCBjb25maWc6ACxjYWxsX3Jlc3VsdF9saXN0IHNpemU6ACxyZXN1bHRfbGlzdCBzaXplOgAsdXNlcl9zdGF0dXNfbGlzdCBzaXplOgAsYWxsX3VzZXJfbGlzdCBzaXplOgAsaW52aXRlZV9saXN0IHNpemU6ACx1c2VyX2lkX2xpc3Qgc2l6ZToAYXN5bmMgc3luY2hyb25pemUsIHZhbHVlOgAgZGV2aWNlX3N0YXRlOgB0aGUgYml0cmF0ZSBoYXMgYmVlbiBtYXhpbXVtIGxpbWl0IFtiaXRyYXRlOgBjYWxsX2VuZ2luZSAtIFtldmVudF90eXBlOgAsYWN0aW9uX3R5cGU6AG9uU2VuZEZpcnN0TG9jYWxWaWRlb0ZyYW1lLCBbc3RyZWFtX3R5cGU6ACxzdHJlYW1fdHlwZToAIGRldmljZV90eXBlOgBjYWxsX2VuZ2luZSAtIGludmFsaWQgW21lZGlhX3R5cGU6AGNhbGxfZW5naW5lIC0gW21lZGlhX3R5cGU6AFtvbmx5IHN1cHBvcnQgc3dpdGNoIGZyb20gdmlkZW8gdG8gYXVkaW8sbWVkaWFfdHlwZToAY2FsbF9lbmdpbmUgLSBbZnVuY05hbWU6AGNhbGxfZW5naW5lIC0gW3JvbGU6AGVuYWJsZVNtYWxsVmlkZW9TdHJlYW0sIFtlbmFibGU6ACwgYXZhaWxhYmxlOgB8ZXJyb3JfbWVzc2FnZToALGVycm9yX21lc3NhZ2U6ACwgZXJyb3JfbWVzc2FnZToALCB3YXJuaW5nX21lc3NhZ2U6ACxtZXNzYWdlOgAsIG1lc3NhZ2U6ACxpbnZpdGVlOgAsIGludml0ZWU6ACBbcmVzb2x1dGlvbl9tb2RlOgBjYWxsX2VuZ2luZSAtIGRlY29kZSxbZXJyb3JfY29kZToAb25Td2l0Y2hSb2xlIFtlcnJvcl9jb2RlOgBjYWxsX2VuZ2luZSAtIFtlcnJvcl9jb2RlOgAsZXJyb3JfY29kZToAY2FsbF9lbmdpbmUgLSBlcnJvcl9jb2RlOgBjYWxsX2VuZ2luZSAtIFtjb2RlOgBleGNlZWQgZnJlcXVlbmN5IGxpbWl0fGNvbW1hbmQ6AGNvbW1hbmQgZnJlcXVlbmN5IGxpbWl0IG5vdCBmb3VuZHxjb21tYW5kOgBzd2l0Y2ggbG9naW4gdXNlciwgb2xkOgBjYWxsX2VuZ2luZSAtIFtyZXF1ZXN0X2lkOgAscmVxdWVzdF9pZDoAY2FsbF9lbmdpbmUgLSByZXF1ZXN0X2lkOgBKcyBub3RpZnkgTmF0aXZlIE9uSlNFdmVudCwgW2V2ZW50X2lkOgAsb3BlcmF0b3JfaWQ6ACwgb3BlcmF0b3JfaWQ6AGNhbGxfZW5naW5lIC0gW3VzZXJfaWQ6ACx1c2VyX2lkOgAsIHVzZXJfaWQ6ACxncm91cF9pZDoAY2FsbF9lbmdpbmUgLSBbc2RrX2FwcF9pZDoAfHJvb21faWQ6AHNldExvY2FsVmlkZW9WaWV3IGZhaWxlZCBbaW50X3Jvb21faWQ6ACxpbnRfcm9vbV9pZDoALHN0cl9yb29tX2lkOgAgc3RyX3Jvb21faWQ6AGNhbGxfZW5naW5lIC0gZ2V0IGNhbGwgaW5mbyBmcm9tIHNlcnZlcu+8jHRoaXMgY2FsbCBpbmZvIG5vdCBleGlzdO+8jFtjYWxsX2lkOgBjYWxsX2VuZ2luZSAtIFtjYWxsX2lkOgAsY2FsbF9pZDoAY2FsbF9lbmdpbmUgLSBbaW52aXRlX2lkOgBjYWxsX2VuZ2luZSwgW2ludml0ZV9pZDoALGludml0ZV9pZDoAb25EZXZpY2VDaGFuZ2UsIFtkZXZpY2VfaWQ6ACwgaXNfbG9jYWxfYXVkaW9fbXV0ZWQ6ACwgaXNfbG9jYWxfdmlkZW9fbXV0ZWQ6ACwgaXNfbG9jYWxfbWljcm9waG9uZV9vcGVuZWQ6ACwgaXNfbG9jYWxfY2FtZXJhX29wZW5lZDoALCBpc19zbWFsbF92aWRlb19zdHJlYW1fZW5hYmxlZDoAaW52YWxpZCBub3RpZnkgZGF0YSwgaW52YWxpZCByb290IG5vZGUgb3IgaW5jb3JyZWN0IHJvb3Qgbm9kZSB0eXBlLCBub3RpZnlfZGF0YToAaW52YWxpZCBub3RpZnkgZGF0YSwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSBpbiBoZWFkLCBbVmVyc2lvbl0sIG5vdGlmeV9kYXRhOgBpbnZhbGlkIG5vdGlmeSBkYXRhLCBtaXNzaW5nIGZpZWxkIG9yIGluY29ycmVjdCBmaWVsZCB0eXBlIGluIGhlYWQsIFtDb21tYW5kXSwgbm90aWZ5X2RhdGE6AGludmFsaWQgbm90aWZ5IGRhdGEsIG1pc3NpbmcgZmllbGQgb3IgaW5jb3JyZWN0IGZpZWxkIHR5cGUsIFtIZWFkXSwgbm90aWZ5X2RhdGE6AGludmFsaWQgbm90aWZ5IGRhdGEsIG1pc3NpbmcgZmllbGQgb3IgaW5jb3JyZWN0IGZpZWxkIHR5cGUsIFtEYXRhXSwgbm90aWZ5X2RhdGE6ACxyZXNwb25zZV9kYXRhOgBjYWxsX2VuZ2luZSAtIGludmFsaWQgcmVzcG9uc2VfZGF0YToAaW52YWxpZCByZXNwb25zZSBkYXRhLCBpbnZhbGlkIHJvb3Qgbm9kZSBvciBpbmNvcnJlY3Qgcm9vdCBub2RlIHR5cGUsIHJlc3BvbnNlX2RhdGE6AGludmFsaWQgcmVzcG9uc2UgZGF0YSwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSwgW0Vycm9ySW5mb10sIHJlc3BvbnNlX2RhdGE6AGludmFsaWQgcmVzcG9uc2UgZGF0YSwgbWlzc2luZyBmaWVsZCBvciBpbmNvcnJlY3QgZmllbGQgdHlwZSwgW0Vycm9yQ29kZV0sIHJlc3BvbnNlX2RhdGE6ACxkYXRhOgBzd2l0Y2hDYW1lcmEsW2lzRnJvbnRDYW1lcmE6ACwgaGlnaHQgOgAtMWUrOTk5OQAwMTIzNDU2Nzg5ADEuMC45AEMuVVRGLTgAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIHJlc29sdXRpb24gdmFsdWUsIHZhbGlkIHJhbmdlIGlzIDEtNAB2MwBjYWxsX2VuZ2luZSAtIGludmFsaWQgcmVzb2x1dGlvbiB2YWx1ZSwgdmFsaWQgcmFuZ2UgaXMgMC0zAGNhbGxfZW5naW5lIC0gaW52YWxpZCBsZXZlbCwgdmFsaWQgcmFuZ2U6IDAtMwB2MgBjYWxsX2VuZ2luZSAtIGludmFsaWQgcmVzb2x1dGlvbiBtb2RlIHZhbHVlLCB2YWxpZCByYW5nZSBpcyAwLTEAY2FsbF9lbmdpbmUgLSBpbnZhbGlkIGZpbGwgbW9kZSB2YWx1ZSwgdmFsaWQgcmFuZ2UgaXMgMC0xADIuMjcuMAAxLjAuMC4wAGxlbiA+PSAwAGxhc3RWYWx1ZV8gIT0gMABcLwBpbiBKc29uOjpWYWx1ZTo6c2V0Q29tbWVudCgpOiBDb21tZW50cyBtdXN0IHN0YXJ0IHdpdGggLwBjYWxsX2VuZ2luZSAtIHVzZXJfaWQgaXMgZW1wdHkuAHRoZSBwYWNrYWdlIHlvdSBwdXJjaGFzZWQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFiaWxpdHkuAFRoZSBwYWNrYWdlIHlvdSBwdXJjaGFzZWQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFiaWxpdHkuAFZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50LgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50LgBsb2dpbiBzdWNjZXNzLgBtdXN0IGFjY2VwdCB0aGUgY2FsbCBmaXJzdCBiZWZvcmUgaW52aXRlIG90aGVycy4AcGxlYXNlIGNoZWNrIGxvZ2luIHBhcmFtcy4AYWRkaXRpb25hbCBzaXggY2hhcmFjdGVycyBleHBlY3RlZCB0byBwYXJzZSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyLgB5b3UgaGF2ZSBiZWVuIGtpY2tlZCBieSB0cnRjIHNlcnZlci4AJyBpcyBub3QgYSBudW1iZXIuAGNhbGxfZW5naW5lIC0gbm8gY2FsbCBpbnZpdGF0aW9uIHJldHJpZXZlZCBmcm9tIHNlcnZlciBhZnRlciBsb2dpbiBvciBuZXR3b3JrIHJlY29ubmVjdGlvbi4AVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGJvb2wuAG9uRXhpdFJvb20gYnkgc2VsZi4AQSB2YWxpZCBKU09OIGRvY3VtZW50IG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGFuIG9iamVjdCB2YWx1ZS4AVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGRvdWJsZS4Ab25FeGl0Um9vbSBieSB0cnRjIHNlcnZlciBkZXN0cm95ZWQuAFN5bnRheCBlcnJvcjogdmFsdWUsIG9iamVjdCBvciBhcnJheSBleHBlY3RlZC4AQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogaGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuAEJhZCB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmc6IGZvdXIgZGlnaXRzIGV4cGVjdGVkLgB0aGUgcmVzcG9uc2VfZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AdGhlIHVzZXIgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AT25JbnZpdGF0aW9uVGltZW91dDogdGhlIGRhdGEgaXMgbnVsbCBvciB1bmRlZmluZWQuAE9uTmV3SW52aXRhdGlvblJlY2VpdmVkOiB0aGUgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AT25OZXdNZXNzYWdlUmVjZWl2ZWQ6IHRoZSBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBPbkludml0ZWVBY2NlcHRlZDogdGhlIGRhdGEgaXMgbnVsbCBvciB1bmRlZmluZWQuAE9uSW52aXRlZVJlamVjdGVkOiB0aGUgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4AT25JbnZpdGF0aW9uQ2FuY2VsbGVkOiB0aGUgZGF0YSBpcyBudWxsIG9yIHVuZGVmaW5lZC4Ab25SZWNlaXZlUm9vbUN1c3RvbURhdGE6IHRoZSBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLgBvbkV4aXRSb29tIGJ5IHRydGMgc2VydmVyIGtpY2tlZC4AVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIFVJbnQ2NC4AVmFsdWUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIEludDY0LgBFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLgAtAGRlY29kZSByZXNwb25zZV9kYXRhIGZhaWxlZCwAaW52YWxpZCByZXNwb25zZV9kYXRhLAAobnVsbCkAb3BlcmF0b3IoKQBERUxFVEUgRlJPTSBjYWxsX3JlY29yZF90YWJsZSBXSEVSRSBjYWxsX2lkIElOICgAY2FsbF9lbmdpbmUgLSBub3Qgd2FpdGluZywgY2FsbF9pZCBtaXNtYXRjaCwgb3Igcm9sZSBpcyBub3QgJ2NhbGxlcicAJycAXCIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAWyAAIFdIRVJFIGNhbGxfcmVzdWx0ID0gAG9uRW50ZXJSb29tLCBbcmVzdWx0OiAALCByZXN1bHQ6IAAsIGhlaWdodDogACwgc3RhdHVzOiAAbG9naW4gZXJyb3I6IABvblNjcmVlbkNhcHR1cmVQYXVzZWQgW3JlYXNvbjogAG9uU2NyZWVuQ2FwdHVyZVN0b3BlZCBbcmVhc29uOiAAb25TY3JlZW5DYXB0dXJlUmVzdW1lZCBbcmVhc29uOiAAb25FeGl0Um9vbSwgW3JlYXNvbjogAG9uTG9jYWxVc2VyQXVkaW9DaGFuZ2VkLCBbcmVhc29uOiAALCByZWFzb246IABpbSBhY3R1YWxfdmVyc2lvbjogAHRydGMgYWN0dWFsX3ZlcnNpb246IABpbSBleHBlY3RlZF92ZXJzaW9uOiAAdHJ0YyBleHBlY3RlZF92ZXJzaW9uOiAALCBleHBlY3RlZF92ZXJzaW9uOiAATWFrZSBleHRlbnNpb246IAAsIGpzb25fcGFyYW06IAAsIG5ld19oYXNfYXVkaW9fc3RyZWFtOiAALCBvbGRfaGFzX2F1ZGlvX3N0cmVhbTogACwgbmV3X2hhc192aWRlb19zdHJlYW06IAAsIG9sZF9oYXNfc21hbGxfdmlkZW9fc3RyZWFtOiAALCBvbGRfaGFzX3NjcmVlbl9zdHJlYW06IAAsIHdpZHRoOiAALG9wZXJhdGlvbl91c2VyX2xpc3Qgc2l6ZTogAFttdXRlOiAAb25Mb2NhbFVzZXJWaWRlb0NoYW5nZWQsIFtzdHJlYW1fdHlwZTogACwgc3RyZWFtX3R5cGU6IAAsIHN0cmVhbVR5cGU6IAAsIHVzZXJfbmFtZTogACwgZXJyb3JfbWVzc2FnZTogACwgbWVzc2FnZTogAG9uRXJyb3IsIFtlcnJvcl9jb2RlOiAAb25TZXRTZWxmSW5mbywgW2Vycm9yX2NvZGU6IABvbkxvZ291dElNLCBbZXJyb3JfY29kZTogAG9uTG9naW5JTSwgW2Vycm9yX2NvZGU6IABvblVwZGF0ZUxvZ2luVXNlckZyb21JTSwgW2Vycm9yX2NvZGU6IABvbldhcm5pbmcsIFt3YXJuaW5nX2NvZGU6IABjYWxsX2VuZ2luZSAtIHF1ZXJ5IHJlY2VudCBjYWxscyBjb2RlOiAAY2FsbF9lbmdpbmUgLSBkZWxldGUgZGIgY29kZTogAGNhbGxfZW5naW5lIC0gdXBzZXJ0IGRiIHJlc3VsdCEgY29kZTogAGNhbGxfZW5naW5lIC0gY3JlYXRlIGRiIHJlc3VsdCEgY29kZTogAG9uVXBkYXRlTG9naW5Vc2VyRnJvbUlNIHN1Y2Nlc3MsIFt1c2VyX2lkOiAAb25Mb2dpblN1Y2Nlc3MsIFt1c2VyX2lkOiAAc2V0U2VsZkluZm8sIFt1c2VyX2lkOiAAbG9naW4sIFt1c2VyX2lkOiAAb25GaXJzdFZpZGVvRnJhbWUsIFt1c2VyX2lkOiAAbG9naW5JTSwgW3VzZXJfaWQ6IAB1cGRhdGVMb2dpblVzZXJGcm9tSU0sIFt1c2VyX2lkOiAALCB1c2VyX2lkOiAALCBpbnRfcm9vbV9pZDogACwgc3RyX3Jvb21faWQ6IABjYWxsX2VuZ2luZSAtIFtpbnZpdGVfaWQ6IABNYWtlIGV4dGVuc2lvbiBmYWlsZWQ6IABnZXRMb2dpblVzZXJJZDogACxyZXNwb25zZV9kYXRhOiAALCBkYXRhOiAAZW50ZXIgdHJ0YyByb29tIGZhaWxlZCAsIGVycm9yIGNvZGUgOiAAb25Vc2VyVmlkZW9BdmFpbGFibGUsW3VzZXJfaWQgOiAAb25SZW1vdGVVc2VyRW50ZXJSb29tLCBbdXNlcl9pZCA6IABvblJlbW90ZVVzZXJMZWF2ZVJvb20sIFt1c2VyX2lkIDogAG9uVXNlckF1ZGlvQXZhaWxhYmxlLCBbdXNlcl9pZCA6IABvblVzZXJTdWJTdHJlYW1BdmFpbGFibGUsIFt1c2VyX2lkIDogAGNhbGxfZW5naW5lIC0gAGludmFsaWQgY29tbWFuZCwgAGRlY29kZSBub3RpZnlfZGF0YSBmYWlsZWQsIABpbnZhbGlkIG5vdGlmeV9kYXRhLCAAJXMKACJcCAwKDQkAQcDmAQsJBAAAAAUAAAAGAEHU5gELCQcAAAAIAAAACQBB6OYBCwkKAAAACwAAAAwAQfzmAQs5EAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAEHA5wELOR8AAAAgAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAIQAAABkAAAAaAAAAGwAA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Cx6aBQAAmwUAAJwFAAApAAAAnQUAAJDbAACp3AAAktsAQfC7AgsOkNsAAKncAACR2wAAKNwAQYi8AgsrngUAAJ8FAACgBQAAKQAAAKEFAACQ2wAAO94AAJHbAACQ2wAAO94AAHZpaQBBvLwCCxKiBQAAowUAAKQFAAApAAAApQUAQdi8AgsSpgUAAKcFAACoBQAAKQAAAKkFAEH0vAILGqoFAACrBQAArAUAAK0FAACuBQAArwUAALAFAEGYvQILGrEFAACyBQAAswUAALQFAAC1BQAAtgUAALcFAEG8vQILCrgFAAC5BQAAugUAQdC9AgsJuwUAALwFAAAMAEHkvQILGr0FAAC+BQAAvwUAAMAFAADBBQAAwgUAAMMFAEGIvgILKsQFAADFBQAADAAAAAwAAAAMAAAADAAAAAwAAAAo3AAAKNwAAAAAAAC42gBBwL4CC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBkb8CCyEOAAAAAAAAAAAZAAoNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQcu/AgsBDABB178CCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQYXAAgsBEABBkcACCxUPAAAABA8AAAAACRAAAAAAABAAABAAQb/AAgsBEgBBy8ACCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQYLBAgsOGgAAABoaGgAAAAAAAAkAQbPBAgsBFABBv8ECCxUXAAAAABcAAAAACRQAAAAAABQAABQAQe3BAgsBFgBB+cECCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQcTCAgsCzAUAQezCAgsI//////////8AQbDDAgvCE9F0ngBXnb0qgHBSD///PicKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BRgAAAA1AAAAcQAAAGv////O+///kr///wAAAAAAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADRAAAAAAAAABSnAADOBQAAzwUAANAFAADRBQAA0gUAANMFAADUBQAA1QUAANYFAADXBQAA2AUAANkFAADaBQAA2wUAAAgAAAAAAAAATKcAANwFAADdBQAA+P////j///9MpwAA3gUAAN8FAACspQAAwKUAAAQAAAAAAAAAlKcAAOAFAADhBQAA/P////z///+UpwAA4gUAAOMFAADcpQAA8KUAAAwAAAAAAAAALKgAAOQFAADlBQAABAAAAPj///8sqAAA5gUAAOcFAAD0////9P///yyoAADoBQAA6QUAAAymAAC4pwAAzKcAAOCnAAD0pwAANKYAACCmAAAAAAAAkKgAAOoFAADrBQAA0AUAANEFAADsBQAA7QUAANQFAADVBQAA1gUAAO4FAADYBQAA7wUAANoFAADwBQAAAAAAANSmAADxBQAA8gUAAE5TdDNfXzI5YmFzaWNfaW9zSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAA8NkAAKimAABsqwAATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAAAMjZAADgpgAATlN0M19fMjEzYmFzaWNfaXN0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAATNoAABynAAAAAAAAAQAAANSmAAAD9P//TlN0M19fMjEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAATNoAAGSnAAAAAAAAAQAAANSmAAAD9P//DAAAAAAAAABMpwAA3AUAAN0FAAD0////9P///0ynAADeBQAA3wUAAAQAAAAAAAAAlKcAAOAFAADhBQAA/P////z///+UpwAA4gUAAOMFAABOU3QzX18yMTRiYXNpY19pb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBM2gAA/KcAAAMAAAACAAAATKcAAAIAAACUpwAAAggAAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAA8NkAAEyoAAAUpwAAQAAAAAAAAADUqQAA8wUAAPQFAAA4AAAA+P///9SpAAD1BQAA9gUAAMD////A////1KkAAPcFAAD4BQAAqKgAAAypAABIqQAAXKkAAHCpAACEqQAANKkAACCpAADQqAAAvKgAAEAAAAAAAAAALKgAAOQFAADlBQAAOAAAAPj///8sqAAA5gUAAOcFAADA////wP///yyoAADoBQAA6QUAAEAAAAAAAAAATKcAANwFAADdBQAAwP///8D///9MpwAA3gUAAN8FAAA4AAAAAAAAAJSnAADgBQAA4QUAAMj////I////lKcAAOIFAADjBQAATlN0M19fMjE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAAAA8NkAAIypAAAsqAAAOAAAAAAAAACIqgAA+QUAAPoFAADI////yP///4iqAAD7BQAA/AUAAOypAAAkqgAAOKoAAACqAAA4AAAAAAAAAJSnAADgBQAA4QUAAMj////I////lKcAAOIFAADjBQAATlN0M19fMjE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAA8NkAAECqAACUpwAAPAAAAAAAAAA8qwAA/QUAAP4FAADE////xP///zyrAAD/BQAAAAYAAKCqAADYqgAA7KoAALSqAAA8AAAAAAAAAEynAADcBQAA3QUAAMT////E////TKcAAN4FAADfBQAATlN0M19fMjE5YmFzaWNfaXN0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAA8NkAAPSqAABMpwAAAAAAAGyrAAABBgAAAgYAAE5TdDNfXzI4aW9zX2Jhc2VFAAAAyNkAAFirAEGA1wILI94SBJUAAAAA////////////////gKsAABQAAABDLlVURi04AEHQ1wILApSrAEHw1wILSkxDX0NUWVBFAAAAAExDX05VTUVSSUMAAExDX1RJTUUAAAAAAExDX0NPTExBVEUAAExDX01PTkVUQVJZAExDX01FU1NBR0VTAECuAEHE3AIL+QMBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAA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")||(fg=function(J){return l.locateFile?l.locateFile(J,oe):oe+J}(fg));var uT=void 0;function Vs(J){for(var x="",oA=J;ni[oA];)x+=uT[ni[oA++]];return x}var FQ={},fu={},gm={};function Im(J){if(J===void 0)return"_unknown";var x=(J=J.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return x>=48&&x<=57?"_"+J:J}function fM(J,x){return J=Im(J),new Function("body","return function "+J+`() {
"use strict"; return body.apply(this, arguments);
};
`)(x)}function mM(J,x){var oA=fM(x,function(uA){this.name=x,this.message=uA;var FA=new Error(uA).stack;FA!==void 0&&(this.stack=this.toString()+`
`+FA.replace(/^Error(:[^\n]*)?\n/,""))});return oA.prototype=Object.create(J.prototype),oA.prototype.constructor=oA,oA.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},oA}var UQ=void 0;function Hr(J){throw new UQ(J)}var QT=void 0;function Oh(J){throw new QT(J)}function Mi(J,x,oA){function uA(ne){var De=oA(ne);De.length!==J.length&&Oh("Mismatched type converter count");for(var le=0;le<J.length;++le)ts(J[le],De[le])}J.forEach(function(ne){gm[ne]=x});var FA=new Array(x.length),zA=[],$A=0;x.forEach(function(ne,De){fu.hasOwnProperty(ne)?FA[De]=fu[ne]:(zA.push(ne),FQ.hasOwnProperty(ne)||(FQ[ne]=[]),FQ[ne].push(function(){FA[De]=fu[ne],++$A===zA.length&&uA(FA)}))}),zA.length===0&&uA(FA)}function ts(J,x){var oA=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!("argPackAdvance"in x))throw new TypeError("registerType registeredInstance requires argPackAdvance");var uA=x.name;if(J||Hr('type "'+uA+'" must have a positive integer typeid pointer'),fu.hasOwnProperty(J)){if(oA.ignoreDuplicateRegistrations)return;Hr("Cannot register type '"+uA+"' twice")}if(fu[J]=x,delete gm[J],FQ.hasOwnProperty(J)){var FA=FQ[J];delete FQ[J],FA.forEach(function(zA){return zA()})}}function qO(J){if(!(this instanceof wI)||!(J instanceof wI))return!1;for(var x=this.$$.ptrType.registeredClass,oA=this.$$.ptr,uA=J.$$.ptrType.registeredClass,FA=J.$$.ptr;x.baseClass;)oA=x.upcast(oA),x=x.baseClass;for(;uA.baseClass;)FA=uA.upcast(FA),uA=uA.baseClass;return x===uA&&oA===FA}function dT(J){Hr(J.$$.ptrType.registeredClass.name+" instance already deleted")}var Wi=!1;function Io(J){}function ir(J){J.count.value-=1,J.count.value===0&&function(x){x.smartPtr?x.smartPtrType.rawDestructor(x.smartPtr):x.ptrType.registeredClass.rawDestructor(x.ptr)}(J)}function hT(J,x,oA){if(x===oA)return J;if(oA.baseClass===void 0)return null;var uA=hT(J,x,oA.baseClass);return uA===null?null:oA.downcast(uA)}var pT={};function KO(){return Object.keys(oB).length}function jO(){var J=[];for(var x in oB)oB.hasOwnProperty(x)&&J.push(oB[x]);return J}var xh=[];function DM(){for(;xh.length;){var J=xh.pop();J.$$.deleteScheduled=!1,J.delete()}}var Yh=void 0;function Cq(J){Yh=J,xh.length&&Yh&&Yh(DM)}var oB={};function ct(J,x){return x=function(oA,uA){for(uA===void 0&&Hr("ptr should not be undefined");oA.baseClass;)uA=oA.upcast(uA),oA=oA.baseClass;return uA}(J,x),oB[x]}function co(J,x){return x.ptrType&&x.ptr||Oh("makeClassHandle requires ptr and ptrType"),!!x.smartPtrType!=!!x.smartPtr&&Oh("Both smartPtrType and smartPtr must be specified"),x.count={value:1},cm(Object.create(J,{$$:{value:x}}))}function WO(J){var x=this.getPointee(J);if(!x)return this.destructor(J),null;var oA=ct(this.registeredClass,x);if(oA!==void 0){if(oA.$$.count.value===0)return oA.$$.ptr=x,oA.$$.smartPtr=J,oA.clone();var uA=oA.clone();return this.destructor(J),uA}function FA(){return this.isSmartPointer?co(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:x,smartPtrType:this,smartPtr:J}):co(this.registeredClass.instancePrototype,{ptrType:this,ptr:J})}var zA,$A=this.registeredClass.getActualType(x),ne=pT[$A];if(!ne)return FA.call(this);zA=this.isConst?ne.constPointerType:ne.pointerType;var De=hT(x,this.registeredClass,zA.registeredClass);return De===null?FA.call(this):this.isSmartPointer?co(zA.registeredClass.instancePrototype,{ptrType:zA,ptr:De,smartPtrType:this,smartPtr:J}):co(zA.registeredClass.instancePrototype,{ptrType:zA,ptr:De})}function cm(J){return typeof FinalizationRegistry>"u"?(cm=function(x){return x},J):(Wi=new FinalizationRegistry(function(x){console.warn(x.leakWarning.stack.replace(/^Error: /,"")),ir(x.$$)}),cm=function(x){var oA=x.$$;if(oA.smartPtr){var uA={$$:oA},FA=oA.ptrType.registeredClass;uA.leakWarning=new Error("Embind found a leaked C++ instance "+FA.name+" <0x"+oA.ptr.toString(16)+`>.
We'll free it automatically in this case, but this functionality is not reliable across various environments.
Make sure to invoke .delete() manually once you're done with the instance instead.
Originally allocated`),"captureStackTrace"in Error&&Error.captureStackTrace(uA.leakWarning,WO),Wi.register(x,uA,x)}return x},Io=function(x){return Wi.unregister(x)},cm(J))}function fT(){if(this.$$.ptr||dT(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var J,x=cm(Object.create(Object.getPrototypeOf(this),{$$:{value:(J=this.$$,{count:J.count,deleteScheduled:J.deleteScheduled,preservePointerOnDelete:J.preservePointerOnDelete,ptr:J.ptr,ptrType:J.ptrType,smartPtr:J.smartPtr,smartPtrType:J.smartPtrType})}}));return x.$$.count.value+=1,x.$$.deleteScheduled=!1,x}function yM(){this.$$.ptr||dT(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Hr("Object already scheduled for deletion"),Io(this),ir(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function mT(){return!this.$$.ptr}function zO(){return this.$$.ptr||dT(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Hr("Object already scheduled for deletion"),xh.push(this),xh.length===1&&Yh&&Yh(DM),this.$$.deleteScheduled=!0,this}function wI(){}function Em(J,x,oA){if(J[x].overloadTable===void 0){var uA=J[x];J[x]=function(){return J[x].overloadTable.hasOwnProperty(arguments.length)||Hr("Function '"+oA+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+J[x].overloadTable+")!"),J[x].overloadTable[arguments.length].apply(this,arguments)},J[x].overloadTable=[],J[x].overloadTable[uA.argCount]=uA}}function Bq(J,x,oA,uA,FA,zA,$A,ne){this.name=J,this.constructor=x,this.instancePrototype=oA,this.rawDestructor=uA,this.baseClass=FA,this.getActualType=zA,this.upcast=$A,this.downcast=ne,this.pureVirtualFunctions=[]}function lm(J,x,oA){for(;x!==oA;)x.upcast||Hr("Expected null or instance of "+oA.name+", got an instance of "+x.name),J=x.upcast(J),x=x.baseClass;return J}function DT(J,x){if(x===null)return this.isReference&&Hr("null is not a valid "+this.name),0;x.$$||Hr('Cannot pass "'+tC(x)+'" as a '+this.name),x.$$.ptr||Hr("Cannot pass deleted object as a pointer of type "+this.name);var oA=x.$$.ptrType.registeredClass;return lm(x.$$.ptr,oA,this.registeredClass)}function yT(J,x){var oA;if(x===null)return this.isReference&&Hr("null is not a valid "+this.name),this.isSmartPointer?(oA=this.rawConstructor(),J!==null&&J.push(this.rawDestructor,oA),oA):0;x.$$||Hr('Cannot pass "'+tC(x)+'" as a '+this.name),x.$$.ptr||Hr("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&x.$$.ptrType.isConst&&Hr("Cannot convert argument of type "+(x.$$.smartPtrType?x.$$.smartPtrType.name:x.$$.ptrType.name)+" to parameter type "+this.name);var uA=x.$$.ptrType.registeredClass;if(oA=lm(x.$$.ptr,uA,this.registeredClass),this.isSmartPointer)switch(x.$$.smartPtr===void 0&&Hr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:x.$$.smartPtrType===this?oA=x.$$.smartPtr:Hr("Cannot convert argument of type "+(x.$$.smartPtrType?x.$$.smartPtrType.name:x.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:oA=x.$$.smartPtr;break;case 2:if(x.$$.smartPtrType===this)oA=x.$$.smartPtr;else{var FA=x.clone();oA=this.rawShare(oA,vn.toHandle(function(){FA.delete()})),J!==null&&J.push(this.rawDestructor,oA)}break;default:Hr("Unsupporting sharing policy")}return oA}function uq(J,x){if(x===null)return this.isReference&&Hr("null is not a valid "+this.name),0;x.$$||Hr('Cannot pass "'+tC(x)+'" as a '+this.name),x.$$.ptr||Hr("Cannot pass deleted object as a pointer of type "+this.name),x.$$.ptrType.isConst&&Hr("Cannot convert argument of type "+x.$$.ptrType.name+" to parameter type "+this.name);var oA=x.$$.ptrType.registeredClass;return lm(x.$$.ptr,oA,this.registeredClass)}function OQ(J){return this.fromWireType(de[J>>2])}function Qq(J){return this.rawGetPointee&&(J=this.rawGetPointee(J)),J}function RT(J){this.rawDestructor&&this.rawDestructor(J)}function ZO(J){J!==null&&J.delete()}function oE(J,x,oA,uA,FA,zA,$A,ne,De,le,We){this.name=J,this.registeredClass=x,this.isReference=oA,this.isConst=uA,this.isSmartPointer=FA,this.pointeeType=zA,this.sharingPolicy=$A,this.rawGetPointee=ne,this.rawConstructor=De,this.rawShare=le,this.rawDestructor=We,FA||x.baseClass!==void 0?this.toWireType=yT:uA?(this.toWireType=DT,this.destructorFunction=null):(this.toWireType=uq,this.destructorFunction=null)}function MT(J){return ws.get(J)}function Cm(J,x,oA){return J.includes("j")?function(uA,FA,zA){he("dynCall_"+uA in l,"bad function pointer type - no table for sig '"+uA+"'"),zA&&zA.length?he(zA.length===uA.substring(1).replace(/j/g,"--").length):he(uA.length==1);var $A=l["dynCall_"+uA];return zA&&zA.length?$A.apply(null,[FA].concat(zA)):$A.call(null,FA)}(J,x,oA):(he(MT(x),"missing table entry in dynCall: "+x),MT(x).apply(null,oA))}function rE(J,x){var oA=(J=Vs(J)).includes("j")?function(uA,FA){he(uA.includes("j")||uA.includes("p"),"getDynCaller should only be called with i64 sigs");var zA=[];return function(){return zA.length=0,Object.assign(zA,arguments),Cm(uA,FA,zA)}}(J,x):MT(x);return typeof oA!="function"&&Hr("unknown function pointer with signature "+J+": "+x),oA}var wT=void 0;function ST(J){var x=mm(J),oA=Vs(x);return iC(x),oA}function Bm(J,x){var oA=[],uA={};throw x.forEach(function FA(zA){uA[zA]||fu[zA]||(gm[zA]?gm[zA].forEach(FA):(oA.push(zA),uA[zA]=!0))}),new wT(J+": "+oA.map(ST).join([", "]))}function RM(J,x){if(!(J instanceof Function))throw new TypeError("new_ called with constructor type "+be(J)+" which is not a function");var oA=fM(J.name||"unknownFunctionName",function(){});oA.prototype=J.prototype;var uA=new oA,FA=J.apply(uA,x);return FA instanceof Object?FA:uA}function vT(J){for(;J.length;){var x=J.pop();J.pop()(x)}}function um(J,x,oA,uA,FA){var zA=x.length;zA<2&&Hr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var $A=x[1]!==null&&oA!==null,ne=!1,De=1;De<x.length;++De)if(x[De]!==null&&x[De].destructorFunction===void 0){ne=!0;break}var le=x[0].name!=="void",We="",Lt="";for(De=0;De<zA-2;++De)We+=(De!==0?", ":"")+"arg"+De,Lt+=(De!==0?", ":"")+"arg"+De+"Wired";var Pt="return function "+Im(J)+"("+We+`) {
if (arguments.length !== `+(zA-2)+`) {
throwBindingError('function `+J+" called with ' + arguments.length + ' arguments, expected "+(zA-2)+` args!');
}
`;ne&&(Pt+=`var destructors = [];
`);var uo=ne?"destructors":"null",Br=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Nn=[Hr,uA,FA,vT,x[0],x[1]];for($A&&(Pt+="var thisWired = classParam.toWireType("+uo+`, this);
`),De=0;De<zA-2;++De)Pt+="var arg"+De+"Wired = argType"+De+".toWireType("+uo+", arg"+De+"); // "+x[De+2].name+`
`,Br.push("argType"+De),Nn.push(x[De+2]);if($A&&(Lt="thisWired"+(Lt.length>0?", ":"")+Lt),Pt+=(le?"var rv = ":"")+"invoker(fn"+(Lt.length>0?", ":"")+Lt+`);
`,ne)Pt+=`runDestructors(destructors);
`;else for(De=$A?1:2;De<x.length;++De){var Ss=De===1?"thisWired":"arg"+(De-2)+"Wired";x[De].destructorFunction!==null&&(Pt+=Ss+"_dtor("+Ss+"); // "+x[De].name+`
`,Br.push(Ss+"_dtor"),Nn.push(x[De].destructorFunction))}return le&&(Pt+=`var ret = retType.fromWireType(rv);
return ret;
`),Pt+=`}
`,Br.push(Pt),RM(Function,Br).apply(null,Nn)}function NT(J,x){for(var oA=[],uA=0;uA<J;uA++)oA.push(xt[x+4*uA>>2]);return oA}var Ph=[],AI=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function mu(J){J>4&&--AI[J].refcount===0&&(AI[J]=void 0,Ph.push(J))}function sl(){for(var J=0,x=5;x<AI.length;++x)AI[x]!==void 0&&++J;return J}function Qm(){for(var J=5;J<AI.length;++J)if(AI[J]!==void 0)return AI[J];return null}var vn={toValue:function(J){return J||Hr("Cannot use deleted val. handle = "+J),AI[J].value},toHandle:function(J){switch(J){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var x=Ph.length?Ph.pop():AI.length;return AI[x]={refcount:1,value:J},x}}};function tC(J){if(J===null)return"null";var x=be(J);return x==="object"||x==="array"||x==="function"?J.toString():""+J}function XO(J,x){switch(x){case 2:return function(oA){return this.fromWireType(Ri[oA>>2])};case 3:return function(oA){return this.fromWireType(ui[oA>>3])};default:throw new TypeError("Unknown float type: "+J)}}function TT(J,x,oA){switch(x){case 0:return oA?function(uA){return pt[uA]}:function(uA){return ni[uA]};case 1:return oA?function(uA){return Li[uA>>1]}:function(uA){return it[uA>>1]};case 2:return oA?function(uA){return de[uA>>2]}:function(uA){return xt[uA>>2]};default:throw new TypeError("Unknown integer type: "+J)}}var GT=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Jh(J,x){he(J%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var oA=J,uA=oA>>1,FA=uA+x/2;!(uA>=FA)&&it[uA];)++uA;if((oA=uA<<1)-J>32&&GT)return GT.decode(ni.subarray(J,oA));for(var zA="",$A=0;!($A>=x/2);++$A){var ne=Li[J+2*$A>>1];if(ne==0)break;zA+=String.fromCharCode(ne)}return zA}function $O(J,x,oA){if(he(x%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),he(typeof oA=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),oA===void 0&&(oA=2147483647),oA<2)return 0;for(var uA=x,FA=(oA-=2)<2*J.length?oA/2:J.length,zA=0;zA<FA;++zA){var $A=J.charCodeAt(zA);Li[x>>1]=$A,x+=2}return Li[x>>1]=0,x-uA}function Ax(J){return 2*J.length}function xQ(J,x){he(J%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var oA=0,uA="";!(oA>=x/4);){var FA=de[J+4*oA>>2];if(FA==0)break;if(++oA,FA>=65536){var zA=FA-65536;uA+=String.fromCharCode(55296|zA>>10,56320|1023&zA)}else uA+=String.fromCharCode(FA)}return uA}function MM(J,x,oA){if(he(x%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),he(typeof oA=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),oA===void 0&&(oA=2147483647),oA<4)return 0;for(var uA=x,FA=uA+oA-4,zA=0;zA<J.length;++zA){var $A=J.charCodeAt(zA);if($A>=55296&&$A<=57343&&($A=65536+((1023&$A)<<10)|1023&J.charCodeAt(++zA)),de[x>>2]=$A,(x+=4)+4>FA)break}return de[x>>2]=0,x-uA}function kT(J){for(var x=0,oA=0;oA<J.length;++oA){var uA=J.charCodeAt(oA);uA>=55296&&uA<=57343&&++oA,x+=4}return x}function Hh(J,x){var oA=fu[J];return oA===void 0&&Hr(x+" has unknown type "+ST(J)),oA}function wM(J,x){for(var oA=new Array(J),uA=0;uA<J;++uA)oA[uA]=Hh(xt[x+4*uA>>2],"parameter "+uA);return oA}var ex={};function Vh(J){var x=ex[J];return x===void 0?Vs(J):x}var dm=[];function tx(){return(typeof globalThis>"u"?"undefined":be(globalThis))=="object"?globalThis:Function("return this")()}var _T,bT=[],LT={};_T=function(){return performance.now()};var YQ={};function Du(){if(!Du.strings){var J={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:((typeof navigator>"u"?"undefined":be(navigator))=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:K||"./this.program"};for(var x in YQ)YQ[x]===void 0?delete J[x]:J[x]=YQ[x];var oA=[];for(var x in J)oA.push(x+"="+J[x]);Du.strings=oA}return Du.strings}var ix=[null,[],[]];function ox(J,x){var oA=ix[J];he(oA),x===0||x===10?((J===1?dt:fe)(Fi(oA,0)),oA.length=0):oA.push(x)}function hm(J){return J%4==0&&(J%100!=0||J%400==0)}var FT=[31,29,31,30,31,30,31,31,30,31,30,31],UT=[31,28,31,30,31,30,31,31,30,31,30,31];function rx(J,x,oA,uA){var FA=de[uA+40>>2],zA={tm_sec:de[uA>>2],tm_min:de[uA+4>>2],tm_hour:de[uA+8>>2],tm_mday:de[uA+12>>2],tm_mon:de[uA+16>>2],tm_year:de[uA+20>>2],tm_wday:de[uA+24>>2],tm_yday:de[uA+28>>2],tm_isdst:de[uA+32>>2],tm_gmtoff:de[uA+36>>2],tm_zone:FA?tr(FA):""},$A=tr(oA),ne={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var De in ne)$A=$A.replace(new RegExp(De,"g"),ne[De]);var le=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],We=["January","February","March","April","May","June","July","August","September","October","November","December"];function Lt(Mt,wi,Fa){for(var fr=typeof Mt=="number"?Mt.toString():Mt||"";fr.length<wi;)fr=Fa[0]+fr;return fr}function Pt(Mt,wi){return Lt(Mt,wi,"0")}function uo(Mt,wi){function Fa(SI){return SI<0?-1:SI>0?1:0}var fr;return(fr=Fa(Mt.getFullYear()-wi.getFullYear()))===0&&(fr=Fa(Mt.getMonth()-wi.getMonth()))===0&&(fr=Fa(Mt.getDate()-wi.getDate())),fr}function Br(Mt){switch(Mt.getDay()){case 0:return new Date(Mt.getFullYear()-1,11,29);case 1:return Mt;case 2:return new Date(Mt.getFullYear(),0,3);case 3:return new Date(Mt.getFullYear(),0,2);case 4:return new Date(Mt.getFullYear(),0,1);case 5:return new Date(Mt.getFullYear()-1,11,31);case 6:return new Date(Mt.getFullYear()-1,11,30)}}function Nn(Mt){var wi=function(HQ,aE){for(var eI=new Date(HQ.getTime());aE>0;){var nx=hm(eI.getFullYear()),kM=eI.getMonth(),PT=(nx?FT:UT)[kM];if(!(aE>PT-eI.getDate()))return eI.setDate(eI.getDate()+aE),eI;aE-=PT-eI.getDate()+1,eI.setDate(1),kM<11?eI.setMonth(kM+1):(eI.setMonth(0),eI.setFullYear(eI.getFullYear()+1))}return eI}(new Date(Mt.tm_year+1900,0,1),Mt.tm_yday),Fa=new Date(wi.getFullYear(),0,4),fr=new Date(wi.getFullYear()+1,0,4),SI=Br(Fa),gl=Br(fr);return uo(SI,wi)<=0?uo(gl,wi)<=0?wi.getFullYear()+1:wi.getFullYear():wi.getFullYear()-1}var Ss={"%a":function(Mt){return le[Mt.tm_wday].substring(0,3)},"%A":function(Mt){return le[Mt.tm_wday]},"%b":function(Mt){return We[Mt.tm_mon].substring(0,3)},"%B":function(Mt){return We[Mt.tm_mon]},"%C":function(Mt){return Pt((Mt.tm_year+1900)/100|0,2)},"%d":function(Mt){return Pt(Mt.tm_mday,2)},"%e":function(Mt){return Lt(Mt.tm_mday,2," ")},"%g":function(Mt){return Nn(Mt).toString().substring(2)},"%G":function(Mt){return Nn(Mt)},"%H":function(Mt){return Pt(Mt.tm_hour,2)},"%I":function(Mt){var wi=Mt.tm_hour;return wi==0?wi=12:wi>12&&(wi-=12),Pt(wi,2)},"%j":function(Mt){return Pt(Mt.tm_mday+function(wi,Fa){for(var fr=0,SI=0;SI<=Fa;fr+=wi[SI++]);return fr}(hm(Mt.tm_year+1900)?FT:UT,Mt.tm_mon-1),3)},"%m":function(Mt){return Pt(Mt.tm_mon+1,2)},"%M":function(Mt){return Pt(Mt.tm_min,2)},"%n":function(){return`
`},"%p":function(Mt){return Mt.tm_hour>=0&&Mt.tm_hour<12?"AM":"PM"},"%S":function(Mt){return Pt(Mt.tm_sec,2)},"%t":function(){return" "},"%u":function(Mt){return Mt.tm_wday||7},"%U":function(Mt){var wi=Mt.tm_yday+7-Mt.tm_wday;return Pt(Math.floor(wi/7),2)},"%V":function(Mt){var wi=Math.floor((Mt.tm_yday+7-(Mt.tm_wday+6)%7)/7);if((Mt.tm_wday+371-Mt.tm_yday-2)%7<=2&&wi++,wi){if(wi==53){var Fa=(Mt.tm_wday+371-Mt.tm_yday)%7;Fa==4||Fa==3&&hm(Mt.tm_year)||(wi=1)}}else{wi=52;var fr=(Mt.tm_wday+7-Mt.tm_yday-1)%7;(fr==4||fr==5&&hm(Mt.tm_year%400-1))&&wi++}return Pt(wi,2)},"%w":function(Mt){return Mt.tm_wday},"%W":function(Mt){var wi=Mt.tm_yday+7-(Mt.tm_wday+6)%7;return Pt(Math.floor(wi/7),2)},"%y":function(Mt){return(Mt.tm_year+1900).toString().substring(2)},"%Y":function(Mt){return Mt.tm_year+1900},"%z":function(Mt){var wi=Mt.tm_gmtoff,Fa=wi>=0;return wi=(wi=Math.abs(wi)/60)/60*100+wi%60,(Fa?"+":"-")+("0000"+wi).slice(-4)},"%Z":function(Mt){return Mt.tm_zone},"%%":function(){return"%"}};for(var De in $A=$A.replace(/%%/g,"\0\0"),Ss)$A.includes(De)&&($A=$A.replace(new RegExp(De,"g"),Ss[De](zA)));var nC=function(Mt,wi,Fa){var fr=na(Mt)+1,SI=new Array(fr);return br(Mt,SI,0,SI.length),SI}($A=$A.replace(/\0\0/g,"%"));return nC.length>x?0:(function(Mt,wi){he(Mt.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),pt.set(Mt,wi)}(nC,J),nC.length-1)}(function(){for(var J=new Array(256),x=0;x<256;++x)J[x]=String.fromCharCode(x);uT=J})(),UQ=l.BindingError=mM(Error,"BindingError"),QT=l.InternalError=mM(Error,"InternalError"),wI.prototype.isAliasOf=qO,wI.prototype.clone=fT,wI.prototype.delete=yM,wI.prototype.isDeleted=mT,wI.prototype.deleteLater=zO,l.getInheritedInstanceCount=KO,l.getLiveInheritedInstances=jO,l.flushPendingDeletes=DM,l.setDelayFunction=Cq,oE.prototype.getPointee=Qq,oE.prototype.destructor=RT,oE.prototype.argPackAdvance=8,oE.prototype.readValueFromPointer=OQ,oE.prototype.deleteObject=ZO,oE.prototype.fromWireType=WO,wT=l.UnboundTypeError=mM(Error,"UnboundTypeError"),l.count_emval_handles=sl,l.get_first_emval=Qm;var dq=typeof atob=="function"?atob:function(J){var x,oA,uA,FA,zA,$A,ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",De="",le=0;J=J.replace(/[^A-Za-z0-9\+\/\=]/g,"");do x=ne.indexOf(J.charAt(le++))<<2|(FA=ne.indexOf(J.charAt(le++)))>>4,oA=(15&FA)<<4|(zA=ne.indexOf(J.charAt(le++)))>>2,uA=(3&zA)<<6|($A=ne.indexOf(J.charAt(le++))),De+=String.fromCharCode(x),zA!==64&&(De+=String.fromCharCode(oA)),$A!==64&&(De+=String.fromCharCode(uA));while(le<J.length);return De};function pm(J){if(hM(J))return function(x){try{for(var oA=dq(x),uA=new Uint8Array(oA.length),FA=0;FA<oA.length;++FA)uA[FA]=oA.charCodeAt(FA);return uA}catch{throw new Error("Converting base64 string to bytes failed.")}}(J.slice(lT.length))}var fm={__assert_fail:function(J,x,oA,uA){Hs("Assertion failed: "+tr(J)+", at: "+[x?tr(x):"unknown filename",oA,uA?tr(uA):"unknown function"])},_embind_register_bigint:function(J,x,oA,uA,FA){},_embind_register_bool:function(J,x,oA,uA,FA){var zA=BT(oA);ts(J,{name:x=Vs(x),fromWireType:function($A){return!!$A},toWireType:function($A,ne){return ne?uA:FA},argPackAdvance:8,readValueFromPointer:function($A){var ne;if(oA===1)ne=pt;else if(oA===2)ne=Li;else{if(oA!==4)throw new TypeError("Unknown boolean type size: "+x);ne=de}return this.fromWireType(ne[$A>>zA])},destructorFunction:null})},_embind_register_class:function(J,x,oA,uA,FA,zA,$A,ne,De,le,We,Lt,Pt){We=Vs(We),zA=rE(FA,zA),ne&&(ne=rE($A,ne)),le&&(le=rE(De,le)),Pt=rE(Lt,Pt);var uo=Im(We);(function(Br,Nn,Ss){l.hasOwnProperty(Br)?(Hr("Cannot register public name '"+Br+"' twice"),Em(l,Br,Br),l.hasOwnProperty(Ss)&&Hr("Cannot register multiple overloads of a function with the same number of arguments ("+Ss+")!"),l[Br].overloadTable[Ss]=Nn):l[Br]=Nn})(uo,function(){Bm("Cannot construct "+We+" due to unbound types",[uA])}),Mi([J,x,oA],uA?[uA]:[],function(Br){var Nn,Ss;Br=Br[0],Ss=uA?(Nn=Br.registeredClass).instancePrototype:wI.prototype;var nC=fM(uo,function(){if(Object.getPrototypeOf(this)!==Mt)throw new UQ("Use 'new' to construct "+We);if(wi.constructor_body===void 0)throw new UQ(We+" has no accessible constructor");var gl=wi.constructor_body[arguments.length];if(gl===void 0)throw new UQ("Tried to invoke ctor of "+We+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(wi.constructor_body).toString()+") parameters instead!");return gl.apply(this,arguments)}),Mt=Object.create(Ss,{constructor:{value:nC}});nC.prototype=Mt;var wi=new Bq(We,nC,Mt,Pt,Nn,zA,ne,le),Fa=new oE(We,wi,!0,!1,!1),fr=new oE(We+"*",wi,!1,!1,!1),SI=new oE(We+" const*",wi,!1,!0,!1);return pT[J]={pointerType:fr,constPointerType:SI},function(gl,HQ,aE){l.hasOwnProperty(gl)||Oh("Replacing nonexistant public symbol"),l[gl].overloadTable!==void 0&&aE!==void 0?l[gl].overloadTable[aE]=HQ:(l[gl]=HQ,l[gl].argCount=aE)}(uo,nC),[Fa,fr,SI]})},_embind_register_class_class_function:function(J,x,oA,uA,FA,zA,$A){var ne=NT(oA,uA);x=Vs(x),zA=rE(FA,zA),Mi([],[J],function(De){var le=(De=De[0]).name+"."+x;function We(){Bm("Cannot call "+le+" due to unbound types",ne)}x.startsWith("@@")&&(x=Symbol[x.substring(2)]);var Lt=De.registeredClass.constructor;return Lt[x]===void 0?(We.argCount=oA-1,Lt[x]=We):(Em(Lt,x,le),Lt[x].overloadTable[oA-1]=We),Mi([],ne,function(Pt){var uo=[Pt[0],null].concat(Pt.slice(1)),Br=um(le,uo,null,zA,$A);return Lt[x].overloadTable===void 0?(Br.argCount=oA-1,Lt[x]=Br):Lt[x].overloadTable[oA-1]=Br,[]}),[]})},_embind_register_class_constructor:function(J,x,oA,uA,FA,zA){he(x>0);var $A=NT(x,oA);FA=rE(uA,FA),Mi([],[J],function(ne){var De="constructor "+(ne=ne[0]).name;if(ne.registeredClass.constructor_body===void 0&&(ne.registeredClass.constructor_body=[]),ne.registeredClass.constructor_body[x-1]!==void 0)throw new UQ("Cannot register multiple constructors with identical number of parameters ("+(x-1)+") for class '"+ne.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return ne.registeredClass.constructor_body[x-1]=function(){Bm("Cannot construct "+ne.name+" due to unbound types",$A)},Mi([],$A,function(le){return le.splice(1,0,null),ne.registeredClass.constructor_body[x-1]=um(De,le,null,FA,zA),[]}),[]})},_embind_register_class_function:function(J,x,oA,uA,FA,zA,$A,ne){var De=NT(oA,uA);x=Vs(x),zA=rE(FA,zA),Mi([],[J],function(le){var We=(le=le[0]).name+"."+x;function Lt(){Bm("Cannot call "+We+" due to unbound types",De)}x.startsWith("@@")&&(x=Symbol[x.substring(2)]),ne&&le.registeredClass.pureVirtualFunctions.push(x);var Pt=le.registeredClass.instancePrototype,uo=Pt[x];return uo===void 0||uo.overloadTable===void 0&&uo.className!==le.name&&uo.argCount===oA-2?(Lt.argCount=oA-2,Lt.className=le.name,Pt[x]=Lt):(Em(Pt,x,We),Pt[x].overloadTable[oA-2]=Lt),Mi([],De,function(Br){var Nn=um(We,Br,le,zA,$A);return Pt[x].overloadTable===void 0?(Nn.argCount=oA-2,Pt[x]=Nn):Pt[x].overloadTable[oA-2]=Nn,[]}),[]})},_embind_register_emval:function(J,x){ts(J,{name:x=Vs(x),fromWireType:function(oA){var uA=vn.toValue(oA);return mu(oA),uA},toWireType:function(oA,uA){return vn.toHandle(uA)},argPackAdvance:8,readValueFromPointer:OQ,destructorFunction:null})},_embind_register_float:function(J,x,oA){var uA=BT(oA);ts(J,{name:x=Vs(x),fromWireType:function(FA){return FA},toWireType:function(FA,zA){if(typeof zA!="number"&&typeof zA!="boolean")throw new TypeError('Cannot convert "'+tC(zA)+'" to '+this.name);return zA},argPackAdvance:8,readValueFromPointer:XO(x,uA),destructorFunction:null})},_embind_register_integer:function(J,x,oA,uA,FA){x=Vs(x),FA===-1&&(FA=4294967295);var zA=BT(oA),$A=function(We){return We};if(uA===0){var ne=32-8*oA;$A=function(We){return We<<ne>>>ne}}var De=x.includes("unsigned"),le=function(We,Lt){if(typeof We!="number"&&typeof We!="boolean")throw new TypeError('Cannot convert "'+tC(We)+'" to '+Lt);if(We<uA||We>FA)throw new TypeError('Passing a number "'+tC(We)+'" from JS side to C/C++ side to an argument of type "'+x+'", which is outside the valid range ['+uA+", "+FA+"]!")};ts(J,{name:x,fromWireType:$A,toWireType:De?function(We,Lt){return le(Lt,this.name),Lt>>>0}:function(We,Lt){return le(Lt,this.name),Lt},argPackAdvance:8,readValueFromPointer:TT(x,zA,uA!==0),destructorFunction:null})},_embind_register_memory_view:function(J,x,oA){var uA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][x];function FA(zA){var $A=xt,ne=$A[zA>>=2],De=$A[zA+1];return new uA(Zt,De,ne)}ts(J,{name:oA=Vs(oA),fromWireType:FA,argPackAdvance:8,readValueFromPointer:FA},{ignoreDuplicateRegistrations:!0})},_embind_register_smart_ptr:function(J,x,oA,uA,FA,zA,$A,ne,De,le,We,Lt){oA=Vs(oA),zA=rE(FA,zA),ne=rE($A,ne),le=rE(De,le),Lt=rE(We,Lt),Mi([J],[x],function(Pt){return Pt=Pt[0],[new oE(oA,Pt.registeredClass,!1,!1,!0,Pt,uA,zA,ne,le,Lt)]})},_embind_register_std_string:function(J,x){var oA=(x=Vs(x))==="std::string";ts(J,{name:x,fromWireType:function(uA){var FA,zA=xt[uA>>2],$A=uA+4;if(oA)for(var ne=$A,De=0;De<=zA;++De){var le=$A+De;if(De==zA||ni[le]==0){var We=tr(ne,le-ne);FA===void 0?FA=We:(FA+="\0",FA+=We),ne=le+1}}else{var Lt=new Array(zA);for(De=0;De<zA;++De)Lt[De]=String.fromCharCode(ni[$A+De]);FA=Lt.join("")}return iC(uA),FA},toWireType:function(uA,FA){var zA;FA instanceof ArrayBuffer&&(FA=new Uint8Array(FA));var $A=typeof FA=="string";$A||FA instanceof Uint8Array||FA instanceof Uint8ClampedArray||FA instanceof Int8Array||Hr("Cannot pass non-string to std::string"),zA=oA&&$A?na(FA):FA.length;var ne,De,le,We=SM(4+zA+1),Lt=We+4;if(xt[We>>2]=zA,oA&&$A)ne=FA,De=Lt,he(typeof(le=zA+1)=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),br(ne,ni,De,le);else if($A)for(var Pt=0;Pt<zA;++Pt){var uo=FA.charCodeAt(Pt);uo>255&&(iC(Lt),Hr("String has UTF-16 code units that do not fit in 8 bits")),ni[Lt+Pt]=uo}else for(Pt=0;Pt<zA;++Pt)ni[Lt+Pt]=FA[Pt];return uA!==null&&uA.push(iC,We),We},argPackAdvance:8,readValueFromPointer:OQ,destructorFunction:function(uA){iC(uA)}})},_embind_register_std_wstring:function(J,x,oA){var uA,FA,zA,$A,ne;oA=Vs(oA),x===2?(uA=Jh,FA=$O,$A=Ax,zA=function(){return it},ne=1):x===4&&(uA=xQ,FA=MM,$A=kT,zA=function(){return xt},ne=2),ts(J,{name:oA,fromWireType:function(De){for(var le,We=xt[De>>2],Lt=zA(),Pt=De+4,uo=0;uo<=We;++uo){var Br=De+4+uo*x;if(uo==We||Lt[Br>>ne]==0){var Nn=uA(Pt,Br-Pt);le===void 0?le=Nn:(le+="\0",le+=Nn),Pt=Br+x}}return iC(De),le},toWireType:function(De,le){typeof le!="string"&&Hr("Cannot pass non-string to C++ string type "+oA);var We=$A(le),Lt=SM(4+We+x);return xt[Lt>>2]=We>>ne,FA(le,Lt+4,We+x),De!==null&&De.push(iC,Lt),Lt},argPackAdvance:8,readValueFromPointer:OQ,destructorFunction:function(De){iC(De)}})},_embind_register_void:function(J,x){ts(J,{isVoid:!0,name:x=Vs(x),argPackAdvance:0,fromWireType:function(){},toWireType:function(oA,uA){}})},_emscripten_date_now:function(){return Date.now()},_emscripten_get_now_is_monotonic:function(){return!0},_emval_as:function(J,x,oA){J=vn.toValue(J),x=Hh(x,"emval::as");var uA=[],FA=vn.toHandle(uA);return xt[oA>>2]=FA,x.toWireType(uA,J)},_emval_call:function(J,x,oA,uA){J=vn.toValue(J);for(var FA=wM(x,oA),zA=new Array(x),$A=0;$A<x;++$A){var ne=FA[$A];zA[$A]=ne.readValueFromPointer(uA),uA+=ne.argPackAdvance}var De=J.apply(void 0,zA);return vn.toHandle(De)},_emval_call_method:function(J,x,oA,uA,FA){return(J=dm[J])(x=vn.toValue(x),oA=Vh(oA),function(zA){var $A=[];return xt[zA>>2]=vn.toHandle($A),$A}(uA),FA)},_emval_call_void_method:function(J,x,oA,uA){(J=dm[J])(x=vn.toValue(x),oA=Vh(oA),null,uA)},_emval_decref:mu,_emval_get_global:function(J){return J===0?vn.toHandle(tx()):(J=Vh(J),vn.toHandle(tx()[J]))},_emval_get_method_caller:function(J,x){var oA=wM(J,x),uA=oA[0],FA=uA.name+"_$"+oA.slice(1).map(function(Pt){return Pt.name}).join("_")+"$",zA=bT[FA];if(zA!==void 0)return zA;for(var $A=["retType"],ne=[uA],De="",le=0;le<J-1;++le)De+=(le!==0?", ":"")+"arg"+le,$A.push("argType"+le),ne.push(oA[1+le]);var We="return function "+Im("methodCaller_"+FA)+`(handle, name, destructors, args) {
`,Lt=0;for(le=0;le<J-1;++le)We+=" var arg"+le+" = argType"+le+".readValueFromPointer(args"+(Lt?"+"+Lt:"")+`);
`,Lt+=oA[le+1].argPackAdvance;for(We+=" var rv = handle[name]("+De+`);
`,le=0;le<J-1;++le)oA[le+1].deleteObject&&(We+=" argType"+le+".deleteObject(arg"+le+`);
`);return uA.isVoid||(We+=` return retType.toWireType(destructors, rv);
`),We+=`};
`,$A.push(We),zA=function(Pt){var uo=dm.length;return dm.push(Pt),uo}(RM(Function,$A).apply(null,ne)),bT[FA]=zA,zA},_emval_get_module_property:function(J){return J=Vh(J),vn.toHandle(l[J])},_emval_get_property:function(J,x){return J=vn.toValue(J),x=vn.toValue(x),vn.toHandle(J[x])},_emval_incref:function(J){J>4&&(AI[J].refcount+=1)},_emval_instanceof:function(J,x){return(J=vn.toValue(J))instanceof(x=vn.toValue(x))},_emval_is_number:function(J){return typeof(J=vn.toValue(J))=="number"},_emval_is_string:function(J){return typeof(J=vn.toValue(J))=="string"},_emval_new:function(J,x,oA,uA){J=vn.toValue(J);var FA=LT[x];return FA||(FA=function(zA){for(var $A="",ne=0;ne<zA;++ne)$A+=(ne!==0?", ":"")+"arg"+ne;var De="return function emval_allocator_"+zA+`(constructor, argTypes, args) {
`;for(ne=0;ne<zA;++ne)De+="var argType"+ne+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+ne+`');
var arg`+ne+" = argType"+ne+`.readValueFromPointer(args);
args += argType`+ne+`['argPackAdvance'];
argTypes += 4;
`;return De+="var obj = new constructor("+$A+`);
return valueToHandle(obj);
}
`,new Function("requireRegisteredType","Module","valueToHandle","HEAPU32",De)(Hh,l,vn.toHandle,xt)}(x),LT[x]=FA),FA(J,oA,uA)},_emval_new_cstring:function(J){return vn.toHandle(Vh(J))},_emval_run_destructors:function(J){vT(vn.toValue(J)),mu(J)},_emval_take_value:function(J,x){var oA=(J=Hh(J,"_emval_take_value")).readValueFromPointer(x);return vn.toHandle(oA)},_emval_typeof:function(J){return J=vn.toValue(J),vn.toHandle(be(J))},abort:function(){Hs("native code called abort()")},emscripten_get_now:_T,emscripten_memcpy_big:function(J,x,oA){ni.copyWithin(J,x,x+oA)},emscripten_resize_heap:function(J){ni.length,function(x){Hs("Cannot enlarge memory arrays to size "+x+" bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value "+pt.length+", (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0")}(J>>>=0)},environ_get:function(J,x){var oA=0;return Du().forEach(function(uA,FA){var zA=x+oA;xt[J+4*FA>>2]=zA,function($A,ne,De){for(var le=0;le<$A.length;++le)he($A.charCodeAt(le)===(255&$A.charCodeAt(le))),pt[0|ne++]=$A.charCodeAt(le);pt[0|ne]=0}(uA,zA),oA+=uA.length+1}),0},environ_sizes_get:function(J,x){var oA=Du();xt[J>>2]=oA.length;var uA=0;return oA.forEach(function(FA){uA+=FA.length+1}),xt[x>>2]=uA,0},fd_close:function(J){Hs("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(J,x,oA,uA,FA){return 70},fd_write:function(J,x,oA,uA){for(var FA=0,zA=0;zA<oA;zA++){var $A=xt[x>>2],ne=xt[x+4>>2];x+=8;for(var De=0;De<ne;De++)ox(J,ni[$A+De]);FA+=ne}return xt[uA>>2]=FA,0},setTempRet0:function(J){},strftime_l:function(J,x,oA,uA){return rx(J,x,oA,uA)}};(function(){var J={env:fm,wasi_snapshot_preview1:fm};function x(zA,$A){var ne,De,le=zA.exports;l.asm=le,he(ve=l.asm.memory,"memory not found in wasm exports"),ne=ve.buffer,Zt=ne,l.HEAP8=pt=new Int8Array(ne),l.HEAP16=Li=new Int16Array(ne),l.HEAP32=de=new Int32Array(ne),l.HEAPU8=ni=new Uint8Array(ne),l.HEAPU16=it=new Uint16Array(ne),l.HEAPU32=xt=new Uint32Array(ne),l.HEAPF32=Ri=new Float32Array(ne),l.HEAPF64=ui=new Float64Array(ne),he(ws=l.asm.__indirect_function_table,"table not found in wasm exports"),De=l.asm.__wasm_call_ctors,du.unshift(De),function(We){if(hu--,l.monitorRunDependencies&&l.monitorRunDependencies(hu),he(Uh[We]),delete Uh[We],hu==0&&(pu!==null&&(clearInterval(pu),pu=null),Fh)){var Lt=Fh;Fh=null,Lt()}}("wasm-instantiate")}(function(zA){hu++,l.monitorRunDependencies&&l.monitorRunDependencies(hu),he(!Uh[zA]),Uh[zA]=1,pu===null&&typeof setInterval<"u"&&(pu=setInterval(function(){if(Le)return clearInterval(pu),void(pu=null);var $A=!1;for(var ne in Uh)$A||($A=!0,fe("still waiting on run dependencies:")),fe("dependency: "+ne);$A&&fe("(end of list)")},1e4))})("wasm-instantiate");var oA=l;function uA(zA){he(l===oA,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),oA=null,x(zA.instance)}function FA(zA){return function(){if(!PA&&(lA||SA)){if(typeof fetch=="function"&&!pM(fg))return fetch(fg,{credentials:"same-origin"}).then(function($A){if(!$A.ok)throw"failed to load wasm binary file at '"+fg+"'";return $A.arrayBuffer()}).catch(function(){return CT(fg)});if(yA)return new Promise(function($A,ne){yA(fg,function(De){$A(new Uint8Array(De))},ne)})}return Promise.resolve().then(function(){return CT(fg)})}().then(function($A){return WebAssembly.instantiate($A,J)}).then(function($A){return $A}).then(zA,function($A){fe("failed to asynchronously prepare wasm: "+$A),pM(fg)&&fe("warning: Loading from a file URI ("+fg+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),Hs($A)})}if(l.instantiateWasm)try{return l.instantiateWasm(J,x)}catch(zA){return fe("Module.instantiateWasm callback failed with error: "+zA),!1}(PA||typeof WebAssembly.instantiateStreaming!="function"||hM(fg)||pM(fg)||typeof fetch!="function"?FA(uA):fetch(fg,{credentials:"same-origin"}).then(function(zA){return WebAssembly.instantiateStreaming(zA,J).then(uA,function($A){return fe("wasm streaming compile failed: "+$A),fe("falling back to ArrayBuffer instantiation"),FA(uA)})})).catch(S)})(),l.___wasm_call_ctors=wa("__wasm_call_ctors");var iC=l._free=wa("free"),SM=l._malloc=wa("malloc"),mm=l.___getTypeName=wa("__getTypeName");l.___embind_register_native_and_builtin_types=wa("__embind_register_native_and_builtin_types"),l.___errno_location=wa("__errno_location"),l._fflush=wa("fflush");var is=l._emscripten_stack_init=function(){return(is=l._emscripten_stack_init=l.asm.emscripten_stack_init).apply(null,arguments)};l._emscripten_stack_get_free=function(){return(l._emscripten_stack_get_free=l.asm.emscripten_stack_get_free).apply(null,arguments)},l._emscripten_stack_get_base=function(){return(l._emscripten_stack_get_base=l.asm.emscripten_stack_get_base).apply(null,arguments)};var vM,PQ=l._emscripten_stack_get_end=function(){return(PQ=l._emscripten_stack_get_end=l.asm.emscripten_stack_get_end).apply(null,arguments)};function Uo(){is(),function(){var J=PQ();he(!(3&J)),de[J>>2]=34821223,de[J+4>>2]=2310721022,xt[0]=1668509029}()}function NM(J){function x(){vM||(vM=!0,l.calledRun=!0,Le||(he(!dM),dM=!0,sm(),iE(du),p(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),he(!l._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(sm(),l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)VO(l.postRun.shift());iE(ET)}()))}hu>0||(Uo(),function(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)lq(l.preRun.shift());iE(Lh)}(),hu>0||(l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),x()},1)):x(),sm()))}if(l.stackSave=wa("stackSave"),l.stackRestore=wa("stackRestore"),l.stackAlloc=wa("stackAlloc"),l.dynCall_jiij=wa("dynCall_jiij"),l.dynCall_viij=wa("dynCall_viij"),l.dynCall_vijii=wa("dynCall_vijii"),l.dynCall_viji=wa("dynCall_viji"),l.dynCall_vijiiii=wa("dynCall_vijiiii"),l.dynCall_jiji=wa("dynCall_jiji"),l.dynCall_viijii=wa("dynCall_viijii"),l.dynCall_iiiiij=wa("dynCall_iiiiij"),l.dynCall_iiiiijj=wa("dynCall_iiiiijj"),l.dynCall_iiiiiijj=wa("dynCall_iiiiiijj"),tA("run",!1),tA("UTF8ArrayToString",!1),tA("UTF8ToString",!1),tA("stringToUTF8Array",!1),tA("stringToUTF8",!1),tA("lengthBytesUTF8",!1),tA("addOnPreRun",!1),tA("addOnInit",!1),tA("addOnPreMain",!1),tA("addOnExit",!1),tA("addOnPostRun",!1),tA("addRunDependency",!0),tA("removeRunDependency",!0),tA("FS_createFolder",!1),tA("FS_createPath",!0),tA("FS_createDataFile",!0),tA("FS_createPreloadedFile",!0),tA("FS_createLazyFile",!0),tA("FS_createLink",!1),tA("FS_createDevice",!0),tA("FS_unlink",!0),tA("getLEB",!1),tA("getFunctionTables",!1),tA("alignFunctionTables",!1),tA("registerFunctions",!1),tA("prettyPrint",!1),tA("getCompilerSetting",!1),tA("print",!1),tA("printErr",!1),tA("getTempRet0",!1),tA("setTempRet0",!1),tA("callMain",!1),tA("abort",!1),tA("keepRuntimeAlive",!1),tA("wasmMemory",!1),tA("stackSave",!1),tA("stackRestore",!1),tA("stackAlloc",!1),tA("writeStackCookie",!1),tA("checkStackCookie",!1),tA("intArrayFromBase64",!1),tA("tryParseAsDataURI",!1),tA("ptrToString",!1),tA("zeroMemory",!1),tA("stringToNewUTF8",!1),tA("exitJS",!1),tA("getHeapMax",!1),tA("abortOnCannotGrowMemory",!1),tA("emscripten_realloc_buffer",!1),tA("ENV",!1),tA("ERRNO_CODES",!1),tA("ERRNO_MESSAGES",!1),tA("setErrNo",!1),tA("inetPton4",!1),tA("inetNtop4",!1),tA("inetPton6",!1),tA("inetNtop6",!1),tA("readSockaddr",!1),tA("writeSockaddr",!1),tA("DNS",!1),tA("getHostByName",!1),tA("Protocols",!1),tA("Sockets",!1),tA("getRandomDevice",!1),tA("warnOnce",!1),tA("traverseStack",!1),tA("UNWIND_CACHE",!1),tA("convertPCtoSourceLocation",!1),tA("readAsmConstArgsArray",!1),tA("readAsmConstArgs",!1),tA("mainThreadEM_ASM",!1),tA("jstoi_q",!1),tA("jstoi_s",!1),tA("getExecutableName",!1),tA("listenOnce",!1),tA("autoResumeAudioContext",!1),tA("dynCallLegacy",!1),tA("getDynCaller",!1),tA("dynCall",!1),tA("setWasmTableEntry",!1),tA("getWasmTableEntry",!1),tA("handleException",!1),tA("runtimeKeepalivePush",!1),tA("runtimeKeepalivePop",!1),tA("callUserCallback",!1),tA("maybeExit",!1),tA("safeSetTimeout",!1),tA("asmjsMangle",!1),tA("asyncLoad",!1),tA("alignMemory",!1),tA("mmapAlloc",!1),tA("writeI53ToI64",!1),tA("writeI53ToI64Clamped",!1),tA("writeI53ToI64Signaling",!1),tA("writeI53ToU64Clamped",!1),tA("writeI53ToU64Signaling",!1),tA("readI53FromI64",!1),tA("readI53FromU64",!1),tA("convertI32PairToI53",!1),tA("convertI32PairToI53Checked",!1),tA("convertU32PairToI53",!1),tA("getCFunc",!1),tA("ccall",!1),tA("cwrap",!1),tA("uleb128Encode",!1),tA("sigToWasmTypes",!1),tA("convertJsFunctionToWasm",!1),tA("freeTableIndexes",!1),tA("functionsInTableMap",!1),tA("getEmptyTableSlot",!1),tA("updateTableMap",!1),tA("addFunction",!1),tA("removeFunction",!1),tA("reallyNegative",!1),tA("unSign",!1),tA("strLen",!1),tA("reSign",!1),tA("formatString",!1),tA("setValue",!1),tA("getValue",!1),tA("PATH",!1),tA("PATH_FS",!1),tA("intArrayFromString",!1),tA("intArrayToString",!1),tA("AsciiToString",!1),tA("stringToAscii",!1),tA("UTF16Decoder",!1),tA("UTF16ToString",!1),tA("stringToUTF16",!1),tA("lengthBytesUTF16",!1),tA("UTF32ToString",!1),tA("stringToUTF32",!1),tA("lengthBytesUTF32",!1),tA("allocateUTF8",!1),tA("allocateUTF8OnStack",!1),tA("writeStringToMemory",!1),tA("writeArrayToMemory",!1),tA("writeAsciiToMemory",!1),tA("SYSCALLS",!1),tA("getSocketFromFD",!1),tA("getSocketAddress",!1),tA("JSEvents",!1),tA("registerKeyEventCallback",!1),tA("specialHTMLTargets",!1),tA("maybeCStringToJsString",!1),tA("findEventTarget",!1),tA("findCanvasEventTarget",!1),tA("getBoundingClientRect",!1),tA("fillMouseEventData",!1),tA("registerMouseEventCallback",!1),tA("registerWheelEventCallback",!1),tA("registerUiEventCallback",!1),tA("registerFocusEventCallback",!1),tA("fillDeviceOrientationEventData",!1),tA("registerDeviceOrientationEventCallback",!1),tA("fillDeviceMotionEventData",!1),tA("registerDeviceMotionEventCallback",!1),tA("screenOrientation",!1),tA("fillOrientationChangeEventData",!1),tA("registerOrientationChangeEventCallback",!1),tA("fillFullscreenChangeEventData",!1),tA("registerFullscreenChangeEventCallback",!1),tA("JSEvents_requestFullscreen",!1),tA("JSEvents_resizeCanvasForFullscreen",!1),tA("registerRestoreOldStyle",!1),tA("hideEverythingExceptGivenElement",!1),tA("restoreHiddenElements",!1),tA("setLetterbox",!1),tA("currentFullscreenStrategy",!1),tA("restoreOldWindowedStyle",!1),tA("softFullscreenResizeWebGLRenderTarget",!1),tA("doRequestFullscreen",!1),tA("fillPointerlockChangeEventData",!1),tA("registerPointerlockChangeEventCallback",!1),tA("registerPointerlockErrorEventCallback",!1),tA("requestPointerLock",!1),tA("fillVisibilityChangeEventData",!1),tA("registerVisibilityChangeEventCallback",!1),tA("registerTouchEventCallback",!1),tA("fillGamepadEventData",!1),tA("registerGamepadEventCallback",!1),tA("registerBeforeUnloadEventCallback",!1),tA("fillBatteryEventData",!1),tA("battery",!1),tA("registerBatteryEventCallback",!1),tA("setCanvasElementSize",!1),tA("getCanvasElementSize",!1),tA("demangle",!1),tA("demangleAll",!1),tA("jsStackTrace",!1),tA("stackTrace",!1),tA("ExitStatus",!1),tA("getEnvStrings",!1),tA("checkWasiClock",!1),tA("flush_NO_FILESYSTEM",!1),tA("dlopenMissingError",!1),tA("setImmediateWrapped",!1),tA("clearImmediateWrapped",!1),tA("polyfillSetImmediate",!1),tA("Browser",!1),tA("setMainLoop",!1),tA("wget",!1),tA("FS",!1),tA("MEMFS",!1),tA("TTY",!1),tA("PIPEFS",!1),tA("SOCKFS",!1),tA("_setNetworkCallback",!1),tA("tempFixedLengthArray",!1),tA("miniTempWebGLFloatBuffers",!1),tA("heapObjectForWebGLType",!1),tA("heapAccessShiftForWebGLHeap",!1),tA("GL",!1),tA("emscriptenWebGLGet",!1),tA("computeUnpackAlignedImageSize",!1),tA("emscriptenWebGLGetTexPixelData",!1),tA("emscriptenWebGLGetUniform",!1),tA("webglGetUniformLocation",!1),tA("webglPrepareUniformLocationsBeforeFirstUse",!1),tA("webglGetLeftBracePos",!1),tA("emscriptenWebGLGetVertexAttrib",!1),tA("writeGLArray",!1),tA("AL",!1),tA("SDL_unicode",!1),tA("SDL_ttfContext",!1),tA("SDL_audio",!1),tA("SDL",!1),tA("SDL_gfx",!1),tA("GLUT",!1),tA("EGL",!1),tA("GLFW_Window",!1),tA("GLFW",!1),tA("GLEW",!1),tA("IDBStore",!1),tA("runAndAbortIfError",!1),tA("ALLOC_NORMAL",!1),tA("ALLOC_STACK",!1),tA("allocate",!1),tA("InternalError",!1),tA("BindingError",!1),tA("UnboundTypeError",!1),tA("PureVirtualError",!1),tA("init_embind",!1),tA("throwInternalError",!1),tA("throwBindingError",!1),tA("throwUnboundTypeError",!1),tA("ensureOverloadTable",!1),tA("exposePublicSymbol",!1),tA("replacePublicSymbol",!1),tA("extendError",!1),tA("createNamedFunction",!1),tA("embindRepr",!1),tA("registeredInstances",!1),tA("getBasestPointer",!1),tA("registerInheritedInstance",!1),tA("unregisterInheritedInstance",!1),tA("getInheritedInstance",!1),tA("getInheritedInstanceCount",!1),tA("getLiveInheritedInstances",!1),tA("registeredTypes",!1),tA("awaitingDependencies",!1),tA("typeDependencies",!1),tA("registeredPointers",!1),tA("registerType",!1),tA("whenDependentTypesAreResolved",!1),tA("embind_charCodes",!1),tA("embind_init_charCodes",!1),tA("readLatin1String",!1),tA("getTypeName",!1),tA("heap32VectorToArray",!1),tA("requireRegisteredType",!1),tA("getShiftFromSize",!1),tA("integerReadValueFromPointer",!1),tA("enumReadValueFromPointer",!1),tA("floatReadValueFromPointer",!1),tA("simpleReadValueFromPointer",!1),tA("runDestructors",!1),tA("new_",!1),tA("craftInvokerFunction",!1),tA("embind__requireFunction",!1),tA("tupleRegistrations",!1),tA("structRegistrations",!1),tA("genericPointerToWireType",!1),tA("constNoSmartPtrRawPointerToWireType",!1),tA("nonConstNoSmartPtrRawPointerToWireType",!1),tA("init_RegisteredPointer",!1),tA("RegisteredPointer",!1),tA("RegisteredPointer_getPointee",!1),tA("RegisteredPointer_destructor",!1),tA("RegisteredPointer_deleteObject",!1),tA("RegisteredPointer_fromWireType",!1),tA("runDestructor",!1),tA("releaseClassHandle",!1),tA("finalizationRegistry",!1),tA("detachFinalizer_deps",!1),tA("detachFinalizer",!1),tA("attachFinalizer",!1),tA("makeClassHandle",!1),tA("init_ClassHandle",!1),tA("ClassHandle",!1),tA("ClassHandle_isAliasOf",!1),tA("throwInstanceAlreadyDeleted",!1),tA("ClassHandle_clone",!1),tA("ClassHandle_delete",!1),tA("deletionQueue",!1),tA("ClassHandle_isDeleted",!1),tA("ClassHandle_deleteLater",!1),tA("flushPendingDeletes",!1),tA("delayFunction",!1),tA("setDelayFunction",!1),tA("RegisteredClass",!1),tA("shallowCopyInternalPointer",!1),tA("downcastPointer",!1),tA("upcastPointer",!1),tA("validateThis",!1),tA("char_0",!1),tA("char_9",!1),tA("makeLegalFunctionName",!1),tA("emval_handle_array",!1),tA("emval_free_list",!1),tA("emval_symbols",!1),tA("init_emval",!1),tA("count_emval_handles",!1),tA("get_first_emval",!1),tA("getStringOrSymbol",!1),tA("Emval",!1),tA("emval_newers",!1),tA("craftEmvalAllocator",!1),tA("emval_get_global",!1),tA("emval_lookupTypes",!1),tA("emval_allocateDestructors",!1),tA("emval_methodCallers",!1),tA("emval_addMethodCaller",!1),tA("emval_registeredMethods",!1),Fh=function J(){vM||NM(),vM||(Fh=J)},l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();NM();var OT,qs=this&&this.__awaiter||function(J,x,oA,uA){return new(oA||(oA=Promise))(function(FA,zA){function $A(le){try{De(uA.next(le))}catch(We){zA(We)}}function ne(le){try{De(uA.throw(le))}catch(We){zA(We)}}function De(le){var We;le.done?FA(le.value):(We=le.value,We instanceof oA?We:new oA(function(Lt){Lt(We)})).then($A,ne)}De((uA=uA.apply(J,x||[])).next())})};function JQ(J){if(typeof J!="string")return J;var x;try{var oA=JSON.parse(J);x=be(oA)==="object"&&oA?oA:J}catch{x=J}return x}function qh(J){return typeof J?.use=="function"||typeof J?.addSignalingListener=="function"}(function(J){J[J.APNs=0]="APNs",J[J.VoIP=1]="VoIP"})(OT||(OT={}));var nn=function(){return ar(function J(){Ji(this,J)},null,[{key:"getDeviceInfo",value:function(){var J={osName:"",osVersion:"",deviceName:"",framework:""};if(l.isWXMiniProgram){var x=wx.getSystemInfoSync(),oA=pe(x.system.split(" "),2),uA=oA[0],FA=oA[1];return J.osName=uA,J.osVersion=FA,J.deviceName=x.model,J.framework="wxMiniProgram",J}var zA=l.rtcDetect.getSystem().browser,$A=l.rtcDetect.getSystem().OS,ne=l.isElectron?"electron":"web";return J.osName=zA.name,J.osVersion=zA.version,J.deviceName=$A,J.framework=ne,J}}])}(),mi=function(){function J(){Ji(this,J)}return ar(J,null,[{key:"startInterval",value:function(x,oA,uA){var FA=setInterval(function(){var zA;!((zA=J?.timerMap)===null||zA===void 0)&&zA.has(x)&&J.timerMap.get(x).callback.onInterval(x)},oA);J.timerMap.set(x,{timer:FA,callback:uA})}},{key:"stopInterval",value:function(x){var oA;if(!((oA=J?.timerMap)===null||oA===void 0)&&oA.has(x)){var uA=J.timerMap.get(x);uA&&uA.timer&&(clearInterval(uA.timer),uA.callback.delete(),J.timerMap.delete(x))}}},{key:"startTimeout",value:function(x,oA){return qs(this,void 0,void 0,MA().m(function uA(){return MA().w(function(FA){for(;;)switch(FA.n){case 0:setTimeout(function(){oA.onTimeout(),oA.delete()},x);case 1:return FA.a(2)}},uA)}))}}])}();mi.timerMap=new Map;var xT=function(){return ar(function J(){Ji(this,J)},null,[{key:"getValue",value:function(J,x){try{if(!this.isValidKey(J))return l.logger.debug("[localstorage] getValue failed, invalid key:",J),x;J="__tuikit_room_engine__"+J;var oA=localStorage.getItem(J);return oA===null?x:JSON.parse(oA)}catch{return l.logger.debug("[localstorage] getValue failed, key:",J),x}}},{key:"setValue",value:function(J,x){try{if(!this.isValidKey(J))return l.logger.debug("[localstorage] setValue failed, invalid key:",J),!1;J="__tuikit_room_engine__"+J;var oA=JSON.stringify(x);return localStorage.setItem(J,oA),!0}catch{return l.logger.debug("[localstorage] setValue failed, key:",J),!1}}},{key:"isKeyExist",value:function(J){try{if(!this.isValidKey(J))return!1;J="__tuikit_room_engine__"+J;var x=localStorage.getItem(J);if(x===null)return!1;try{return JSON.parse(x)!==null}catch{return!1}}catch{return l.logger.debug("[localstorage] isKeyExist failed, key:",J),!1}}},{key:"isValidKey",value:function(J){return typeof J=="string"&&J.trim().length>0}}])}();l.JSTimer=mi,l.JSSystemInfo=nn,l.JSLocalStorage=xT,qs=this&&this.__awaiter||function(J,x,oA,uA){return new(oA||(oA=Promise))(function(FA,zA){function $A(le){try{De(uA.next(le))}catch(We){zA(We)}}function ne(le){try{De(uA.throw(le))}catch(We){zA(We)}}function De(le){var We;le.done?FA(le.value):(We=le.value,We instanceof oA?We:new oA(function(Lt){Lt(We)})).then($A,ne)}De((uA=uA.apply(J,x||[])).next())})};var rB=l.TIM,nE=function(){function J(x){return Ji(this,J),this.waitingReadyQueue=[],this.logger=x&&x.logger||console,this.onTIMReadyStateUpdate=this.onTIMReadyStateUpdate.bind(this),J.chatLoginManager||(J.chatLoginManager=this),J.chatLoginManager}return ar(J,[{key:"login",value:function(x){return qs(this,void 0,void 0,MA().m(function oA(){var uA,FA,zA,$A,ne,De=this;return MA().w(function(le){for(;;)switch(le.n){case 0:if(uA=Object.assign({},x),FA=uA.userId,zA=uA.userSig,qh($A=uA.chat)){le.n=1;break}throw new Error("Current chat version is not supported, please use v3.");case 1:if(J.chat=$A,this.bindTIMEvent(),!(ne=J.chat.getLoginUser())){le.n=7;break}if(ne!==FA){le.n=4;break}if(!J.chat.isReady()){le.n=2;break}return le.a(2);case 2:return le.a(2,new Promise(function(We,Lt){De.addLoginHandler({userId:FA,resolve:We,reject:Lt})}));case 3:le.n=6;break;case 4:return le.n=5,this.doLogout();case 5:return le.n=6,this.doLogin({userId:FA,userSig:zA});case 6:le.n=8;break;case 7:return le.n=8,this.doLogin({userId:FA,userSig:zA});case 8:return le.a(2)}},oA,this)}))}},{key:"doLogin",value:function(x){return qs(this,void 0,void 0,MA().m(function oA(){var uA,FA,zA,$A=this;return MA().w(function(ne){for(;;)if(ne.n===0)return uA=Object.assign({},x),FA=uA.userId,zA=uA.userSig,ne.a(2,new Promise(function(De,le){return qs($A,void 0,void 0,MA().m(function We(){var Lt,Pt;return MA().w(function(uo){for(;;)switch(uo.p=uo.n){case 0:return uo.p=0,this.logger.debug("[tim] chat.login with userId: ",FA),uo.n=1,J.chat.login({userID:FA,userSig:zA});case 1:if(Lt=uo.v,this.logger.info("[tim] chat.login success:",Lt),!Lt.data.repeatLogin||!J.chat.isReady()){uo.n=2;break}return De(!0),uo.a(2);case 2:this.addLoginHandler({userId:FA,resolve:De,reject:le}),uo.n=4;break;case 3:uo.p=3,Pt=uo.v,this.logger.debug("[tim] chat.login error: ",Pt,Pt.code),Pt.code===2025?this.addLoginHandler({userId:FA,resolve:De,reject:le}):le(Pt);case 4:return uo.a(2)}},We,this,[[0,3]])}))}))},oA)}))}},{key:"logout",value:function(){return qs(this,void 0,void 0,MA().m(function x(){return MA().w(function(oA){for(;;)switch(oA.n){case 0:return oA.n=1,this.doLogout();case 1:J.chat=null;case 2:return oA.a(2)}},x,this)}))}},{key:"doLogout",value:function(){return qs(this,void 0,void 0,MA().m(function x(){return MA().w(function(oA){for(;;)switch(oA.n){case 0:if(J.chat){oA.n=1;break}return oA.a(2);case 1:return this.logger.debug("[tim] chat.logout."),oA.n=2,J.chat.logout();case 2:this.logger.info("[tim] chat.logout success.");case 3:return oA.a(2)}},x,this)}))}},{key:"addLoginHandler",value:function(x){var oA=this;this.waitingReadyQueue.push(x),setTimeout(function(){var uA=oA.waitingReadyQueue.findIndex(function(FA){return FA===x});uA<0||(oA.waitingReadyQueue.splice(uA,1),x.reject(new Error("login timeout")))},2e3)}},{key:"onTIMReadyStateUpdate",value:function(x){if(this.logger.debug("onTIMReadyStateUpdate event:",x.name),x.name===rB.EVENT.SDK_READY){var oA=J.chat.getLoginUser();this.waitingReadyQueue.forEach(function(uA){uA.userId===oA?uA.resolve():uA.reject(new Error("user ".concat(oA," has Logged")))})}else this.waitingReadyQueue.forEach(function(uA){return uA.reject(new Error("sdk not ready"))});this.waitingReadyQueue=[]}},{key:"bindTIMEvent",value:function(){var x,oA,uA,FA;(x=J.chat)===null||x===void 0||x.off(rB.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(oA=J.chat)===null||oA===void 0||oA.off(rB.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate),(uA=J.chat)===null||uA===void 0||uA.on(rB.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(FA=J.chat)===null||FA===void 0||FA.on(rB.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate)}}])}(),pr=(qs=this&&this.__awaiter||function(J,x,oA,uA){return new(oA||(oA=Promise))(function(FA,zA){function $A(le){try{De(uA.next(le))}catch(We){zA(We)}}function ne(le){try{De(uA.throw(le))}catch(We){zA(We)}}function De(le){var We;le.done?FA(le.value):(We=le.value,We instanceof oA?We:new oA(function(Lt){Lt(We)})).then($A,ne)}De((uA=uA.apply(J,x||[])).next())})},l.TIM),Jo=pr.TSignaling,oC=["callExperimentalAPI","invite","inviteInGroup","accept","reject","cancel","modifyInvitation","getUserStatus"],nB=function(){return ar(function J(){Ji(this,J),this.chatLoginManager=new nE({logger:l.logger}),this.isExternalIncomingTim=!1,this.onError=this.onError.bind(this),this.onRoomCustomDataReceived=this.onRoomCustomDataReceived.bind(this),this.onKickedOut=this.onKickedOut.bind(this),this.onNetStateChange=this.onNetStateChange.bind(this),this.onServerConfigUpdated=this.onServerConfigUpdated.bind(this),this.onNewMessageReceived=this.onNewMessageReceived.bind(this),this.onNewInvitationReceived=this.onNewInvitationReceived.bind(this),this.onInviteeAccepted=this.onInviteeAccepted.bind(this),this.onInviteeRejected=this.onInviteeRejected.bind(this),this.onInvitationCancelled=this.onInvitationCancelled.bind(this),this.onInvitationTimeout=this.onInvitationTimeout.bind(this)},[{key:"bindObserver",value:function(J){this.nativeObserver=J}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"getLoginUser",value:function(){var J,x=(J=this.tim)===null||J===void 0?void 0:J.getLoginUser();return x??""}},{key:"callJS",value:function(J,x,oA){return qs(this,void 0,void 0,MA().m(function uA(){var FA,zA;return MA().w(function($A){for(;;)switch($A.p=$A.n){case 0:if($A.p=0,!l.tim||qh(l.tim)){$A.n=1;break}return oA.onError(-1,"The current npm package you are using, tim-js-sdk, does not match the current dependency version of TUIRoom. We recommend upgrading to the new npm package @tencentCloud/chat for continued support and updates."),$A.a(2);case 1:if(l.tim||J==="login"){$A.n=2;break}return oA.onError(2024,"please login firstly"),$A.a(2);case 2:FA=JQ(x),J!=="invite"&&J!=="inviteInGroup"||(FA.offlinePushInfo=JQ(FA.offlinePushInfo)||{}),J!=="callExperimentalAPI"&&l.logger.debug("[tim] ".concat(J," with params"),FA),J=="getUserStatus"&&(FA.userIDList=JQ(FA.userIDList)),zA=J,$A.n=zA==="logout"?3:zA==="login"||zA==="updateMyProfile"?5:7;break;case 3:return $A.n=4,this.logout(oA);case 4:case 6:return $A.a(3,8);case 5:return $A.n=6,this[J](FA,oA);case 7:return $A.n=8,this.timFunction(J,FA,oA);case 8:return $A.p=8,oA.delete(),$A.f(8);case 9:return $A.a(2)}},uA,this,[[0,,8,9]])}))}},{key:"syncCallJS",value:function(J,x){var oA=JQ(x);J!=="callExperimentalAPI"&&l.logger.debug("[tim] syncCallJs ".concat(J," with params"),oA);try{var uA,FA=null;if(FA=oA instanceof Array?(uA=this.tim)[J].apply(uA,st(oA)):this.tim[J](oA))return FA}catch(zA){throw l.logger.warn("[tim] ".concat(J," error:"),zA),zA}}},{key:"login",value:function(J,x){return qs(this,void 0,void 0,MA().m(function oA(){var uA,FA,zA,$A,ne,De;return MA().w(function(le){for(;;)switch(le.p=le.n){case 0:return uA=Object.assign({},J),FA=uA.sdkAppId,zA=uA.userId,$A=uA.userSig,ne=uA.testEnv,l.logger.debug("[tim] login with params",FA,zA),this.tim||(l.tim?(this.tim=l.tim,this.isExternalIncomingTim=!0):(this.tim=pr.create({SDKAppID:FA,testEnv:ne}),l.tim=this.tim,this.isExternalIncomingTim=!1),this.bindTIMEvent()),le.p=1,le.n=2,this.chatLoginManager.login({sdkAppId:FA,userId:zA,userSig:$A,testEnv:ne,chat:this.tim});case 2:x.onSuccess(null),le.n=4;break;case 3:le.p=3,De=le.v,x.onError(De.code||-1,De.message);case 4:return le.a(2)}},oA,this,[[1,3]])}))}},{key:"logout",value:function(J){return qs(this,void 0,void 0,MA().m(function x(){var oA;return MA().w(function(uA){for(;;)switch(uA.p=uA.n){case 0:if(l.logger.debug("[tim] logout. isExternalIncomingTim: ",this.isExternalIncomingTim),this.unbindTIMEvent(),!this.isExternalIncomingTim){uA.n=1;break}l.tim=this.tim=null,J.onSuccess(null),uA.n=4;break;case 1:return uA.p=1,uA.n=2,this.chatLoginManager.logout();case 2:l.tim=this.tim=null,J.onSuccess(null),uA.n=4;break;case 3:uA.p=3,oA=uA.v,J.onError(oA.code||-1,oA.message);case 4:return uA.a(2)}},x,this,[[1,3]])}))}},{key:"updateMyProfile",value:function(J,x){return qs(this,void 0,void 0,MA().m(function oA(){var uA,FA,zA,$A;return MA().w(function(ne){for(;;)switch(ne.p=ne.n){case 0:return uA=Object.assign({},J),FA=uA.nick,zA=uA.avatar,ne.p=1,ne.n=2,this.tim.updateMyProfile({nick:FA,avatar:zA,gender:pr.TYPES.GENDER_UNKNOWN,allowType:pr.TYPES.ALLOW_TYPE_ALLOW_ANY});case 2:x.onSuccess(null),ne.n=4;break;case 3:ne.p=3,$A=ne.v,x.onError($A.code||-1,$A.message);case 4:return ne.a(2)}},oA,this,[[1,3]])}))}},{key:"timFunction",value:function(J,x,oA){return qs(this,void 0,void 0,MA().m(function uA(){var FA,zA,$A,ne,De;return MA().w(function(le){for(;;)switch(le.p=le.n){case 0:if(le.p=0,$A=null,!(x instanceof Array)){le.n=2;break}return le.n=1,(ne=this.tim)[J].apply(ne,st(x));case 1:$A=le.v,le.n=4;break;case 2:return le.n=3,this.tim[J](x);case 3:$A=le.v;case 4:J!=="callExperimentalAPI"&&l.logger.info("[tim] call ".concat(J," success")),J!=="invite"&&J!=="inviteInGroup"&&J!=="modifyInvitation"||($A=((zA=(FA=$A?.data)===null||FA===void 0?void 0:FA.message)===null||zA===void 0?void 0:zA.payload)||{data:""}),this.handleTimFunctionResponse(J,$A.data,oA),le.n=6;break;case 5:le.p=5,De=le.v,l.logger.warn("[tim] ".concat(J," error:"),De),oA.onError(De.code||-1,De.message);case 6:return le.a(2)}},uA,this,[[0,5]])}))}},{key:"handleTimFunctionResponse",value:function(J,x,oA){oC.includes(J)&&x?typeof x=="string"?oA.onSuccess({response:x}):oA.onSuccess({response:JSON.stringify(x)}):oA.onSuccess(x)}},{key:"onKickedOut",value:function(J){var x,oA;switch(J.data.type){case pr.TYPES.KICKED_OUT_MULT_ACCOUNT:case pr.TYPES.KICKED_OUT_MULT_DEVICE:case pr.TYPES.KICKED_OUT_REST_API:(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onKickedOffline",{});break;case pr.TYPES.KICKED_OUT_USERSIG_EXPIRED:(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onUserSigExpired",{})}}},{key:"onNetStateChange",value:function(J){var x,oA;switch(J.data.state){case pr.TYPES.NET_STATE_CONNECTED:(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onConnectSuccess",{});break;case pr.TYPES.NET_STATE_DISCONNECTED:(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onConnectFailed",{})}}},{key:"onRoomCustomDataReceived",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onRoomCustomDataReceived",J)}},{key:"onError",value:function(J){console.error("".concat(TIMService.logPrefix," onError error:"),J)}},{key:"onServerConfigUpdated",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onServerConfigUpdated",JSON.stringify(J?.data)||"")}},{key:"onNewMessageReceived",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onNewMessageReceived",JSON.stringify(J?.data)||"")}},{key:"onNewInvitationReceived",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onNewInvitationReceived",J?.data||{})}},{key:"onInviteeAccepted",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onInviteeAccepted",J?.data||{})}},{key:"onInviteeRejected",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onInviteeRejected",J?.data||{})}},{key:"onInvitationCancelled",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onInvitationCancelled",J?.data||{})}},{key:"onInvitationTimeout",value:function(J){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onInvitationTimeout",J?.data||{})}},{key:"bindTIMEvent",value:function(){var J,x,oA,uA,FA,zA,$A,ne,De,le,We,Lt,Pt,uo,Br,Nn;(J=this.tim)===null||J===void 0||J.on(pr.EVENT.ERROR,this.onError),(x=this.tim)===null||x===void 0||x.on(pr.EVENT.KICKED_OUT,this.onKickedOut),(oA=this.tim)===null||oA===void 0||oA.on(pr.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(uA=this.tim)===null||uA===void 0||uA.on(pr.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(FA=this.tim)===null||FA===void 0||FA.on(pr.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(zA=this.tim)===null||zA===void 0||zA.on(pr.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(ne=($A=this.tim)===null||$A===void 0?void 0:$A.addSignalingListener)===null||ne===void 0||ne.call($A,Jo.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(le=(De=this.tim)===null||De===void 0?void 0:De.addSignalingListener)===null||le===void 0||le.call(De,Jo.INVITEE_ACCEPTED,this.onInviteeAccepted),(Lt=(We=this.tim)===null||We===void 0?void 0:We.addSignalingListener)===null||Lt===void 0||Lt.call(We,Jo.INVITEE_REJECTED,this.onInviteeRejected),(uo=(Pt=this.tim)===null||Pt===void 0?void 0:Pt.addSignalingListener)===null||uo===void 0||uo.call(Pt,Jo.INVITATION_CANCELLED,this.onInvitationCancelled),(Nn=(Br=this.tim)===null||Br===void 0?void 0:Br.addSignalingListener)===null||Nn===void 0||Nn.call(Br,Jo.INVITATION_TIMEOUT,this.onInvitationTimeout)}},{key:"unbindTIMEvent",value:function(){var J,x,oA,uA,FA,zA,$A,ne,De,le,We,Lt,Pt,uo,Br,Nn;(J=this.tim)===null||J===void 0||J.off(pr.EVENT.ERROR,this.onError),(x=this.tim)===null||x===void 0||x.off(pr.EVENT.KICKED_OUT,this.onKickedOut),(oA=this.tim)===null||oA===void 0||oA.off(pr.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(uA=this.tim)===null||uA===void 0||uA.off(pr.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(FA=this.tim)===null||FA===void 0||FA.off(pr.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(zA=this.tim)===null||zA===void 0||zA.off(pr.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(ne=($A=this.tim)===null||$A===void 0?void 0:$A.removeSignalingListener)===null||ne===void 0||ne.call($A,Jo.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(le=(De=this.tim)===null||De===void 0?void 0:De.removeSignalingListener)===null||le===void 0||le.call(De,Jo.INVITEE_ACCEPTED,this.onInviteeAccepted),(Lt=(We=this.tim)===null||We===void 0?void 0:We.removeSignalingListener)===null||Lt===void 0||Lt.call(We,Jo.INVITEE_REJECTED,this.onInviteeRejected),(uo=(Pt=this.tim)===null||Pt===void 0?void 0:Pt.removeSignalingListener)===null||uo===void 0||uo.call(Pt,Jo.INVITATION_CANCELLED,this.onInvitationCancelled),(Nn=(Br=this.tim)===null||Br===void 0?void 0:Br.removeSignalingListener)===null||Nn===void 0||Nn.call(Br,Jo.INVITATION_TIMEOUT,this.onInvitationTimeout)}}],[{key:"getSDKVersion",value:function(){return pr.VERSION}}])}();nB.logPrefix="[JSTim]",l.JSTim=nB;var TM=l.TRTCDefine.TRTCVideoResolutionMode;function rC(J){return typeof J=="string"?J.split(",").length>1?J.split(",").map(function(x){return document.getElementById(x)}).filter(function(x){return!!x}):Rm?document.getElementById(J):J:J}function aB(J,x){var oA=x;return J==="startLocalPreview"&&(oA.length===1&&(oA[0]=rC(oA[0])),oA.length===2&&(oA[1]=rC(oA[1]))),J!=="updateLocalView"&&J!=="startScreenCapture"||(oA[0]=rC(oA[0])),J!=="startRemoteView"&&J!=="updateRemoteView"||(oA[1]=rC(oA[1])),oA}function YT(J,x){var oA=x;if(J==="enterRoom"&&l.TRTCDefine.TRTCParams&&x instanceof Array&&x.length>0&&(oA[0]=new l.TRTCDefine.TRTCParams(x[0].sdkAppId,x[0].userId,x[0].userSig,x[0].roomId,x[0].strRoomId,x[0].role)),J==="setVideoEncoderParam"&&l.TRTCDefine.TRTCVideoEncParam&&x instanceof Array&&x.length>0&&(oA[0]=new l.TRTCDefine.TRTCVideoEncParam(x[0].videoResolution,TM.TRTCVideoResolutionModeLandscape,x[0].videoFps,x[0].videoBitrate,x[0].minVideoBitrate)),J==="selectScreenCaptureTarget"&&l.TRTCDefine.TRTCScreenCaptureSourceInfo&&l.TRTCDefine.TRTCScreenCaptureProperty&&x instanceof Array&&x.length===3&&l.tempResult.screenSharingTargetList&&l.tempResult.screenSharingTargetList.length>0){var uA=l.tempResult.screenSharingTargetList.filter(function(FA){return FA.sourceId===x[0].sourceId});uA.length>0&&(oA[0]=uA[0],oA[1]=new l.TRTCDefine.Rect(x[1].left,x[1].top,x[1].right,x[1].bottom),oA[2]=new l.TRTCDefine.TRTCScreenCaptureProperty(x[2].enableCaptureMouse,x[2].enableHighLight,x[2].enableHighPerformance,x[2].highLightColor,x[2].highLightWidth,x[2].enableCaptureChildWindow))}return J==="startScreenCapture"&&l.TRTCDefine.TRTCVideoEncParam&&x instanceof Array&&x.length===3&&(oA[2]=new l.TRTCDefine.TRTCVideoEncParam(x[2].videoResolution,x[2].resMode,x[2].videoFps,x[2].videoBitrate,x[2].minVideoBitrate,x[2].enableAdjustRes)),J==="enableSmallVideoStream"&&l.TRTCDefine.TRTCVideoEncParam&&x instanceof Array&&x.length===2&&(oA[1]=new l.TRTCDefine.TRTCVideoEncParam(x[1].videoResolution,x[1].resMode,x[1].videoFps,x[1].videoBitrate,x[1].minVideoBitrate,!1)),oA}function Dm(J,x){J==="getScreenCaptureSources"&&(l.tempResult.screenSharingTargetList=x)}qs=this&&this.__awaiter||function(J,x,oA,uA){return new(oA||(oA=Promise))(function(FA,zA){function $A(le){try{De(uA.next(le))}catch(We){zA(We)}}function ne(le){try{De(uA.throw(le))}catch(We){zA(We)}}function De(le){var We;le.done?FA(le.value):(We=le.value,We instanceof oA?We:new oA(function(Lt){Lt(We)})).then($A,ne)}De((uA=uA.apply(J,x||[])).next())})};var ym=l.TRTCCloud,Rm=l.currentFrameWork===l.FRAMEWORK.ELECTRON,GM=function(){function J(x){Ji(this,J),this.trtcCloud=x?ym.getTRTCShareInstance():ym.getTRTCShareInstance().createSubCloud(),this.isMainTRTCCloud=x,this.nativeObserver=null,this.onError=this.onError.bind(this),this.onWarning=this.onWarning.bind(this),this.onEnterRoom=this.onEnterRoom.bind(this),this.onExitRoom=this.onExitRoom.bind(this),this.onSwitchRole=this.onSwitchRole.bind(this),this.onUserVideoAvailable=this.onUserVideoAvailable.bind(this),this.onUserSubStreamAvailable=this.onUserSubStreamAvailable.bind(this),this.onUserAudioAvailable=this.onUserAudioAvailable.bind(this),this.onScreenCapturePaused=this.onScreenCapturePaused.bind(this),this.onScreenCaptureResumed=this.onScreenCaptureResumed.bind(this),this.onScreenCaptureStopped=this.onScreenCaptureStopped.bind(this),this.onFirstVideoFrame=this.onFirstVideoFrame.bind(this),this.onRemoteUserEnterRoom=this.onRemoteUserEnterRoom.bind(this),this.onRemoteUserLeaveRoom=this.onRemoteUserLeaveRoom.bind(this),this.onUserVoiceVolume=this.onUserVoiceVolume.bind(this),this.onNetworkQuality=this.onNetworkQuality.bind(this),this.onStatistics=this.onStatistics.bind(this),this.onMicDidReady=this.onMicDidReady.bind(this),this.onCameraDidReady=this.onCameraDidReady.bind(this),this.onSendFirstLocalAudioFrame=this.onSendFirstLocalAudioFrame.bind(this),this.onSendFirstLocalVideoFrame=this.onSendFirstLocalVideoFrame.bind(this),this.onReceiveSEIMessage=this.onReceiveSEIMessage.bind(this),this.onConnectionLost=this.onConnectionLost.bind(this),this.onConnectionRecovery=this.onConnectionRecovery.bind(this),this.bindTRTCEvent()}return ar(J,[{key:"destroyTRTC",value:function(){this.unbindTRTCEvent(),this.isMainTRTCCloud||this.trtcCloud.destroy()}},{key:"getTRTCCloud",value:function(){return this.trtcCloud}},{key:"bindObserver",value:function(x){this.nativeObserver=x}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"callJS",value:function(x,oA,uA){return qs(this,void 0,void 0,MA().m(function FA(){var zA,$A,ne,De,le,We,Lt;return MA().w(function(Pt){for(;;)switch(Pt.p=Pt.n){case 0:if(Pt.p=0,zA=JQ(oA),$A=aB(x,zA),$A=Rm?YT(x,$A):$A,l.logger.debug("[trtcCloud] ".concat(x," params"),$A,be($A)),ne=null,!($A instanceof Array)){Pt.n=2;break}return Pt.n=1,(De=this.trtcCloud)[x].apply(De,st($A));case 1:ne=Pt.v,Pt.n=4;break;case 2:return Pt.n=3,this.trtcCloud[x]($A);case 3:ne=Pt.v;case 4:l.logger.info("[trtcCloud] ".concat(x," success")),Rm&&Dm(x,ne),uA&&uA.onSuccess(ne),Pt.n=6;break;case 5:Pt.p=5,Lt=Pt.v,l.logger&&l.logger.warn("[trtcCloud] ".concat(x," error"),Lt),le=Lt&&Lt.code,We=Lt&&Lt.message,x==="startScreenShare"&&(le=Lt&&Lt.extraCode,We=JSON.stringify({name:Lt.originError.name,message:We})),uA&&uA.onError(le,We);case 6:uA.delete();case 7:return Pt.a(2)}},FA,this,[[0,5]])}))}},{key:"onError",value:function(x,oA){var uA;l.logger.warn("[trtcCloud] onError",x,oA),(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onError",{errCode:x,errMsg:oA})}},{key:"onWarning",value:function(x,oA,uA){var FA;(FA=this.nativeObserver)===null||FA===void 0||FA.onJSEvent("onWarning",{warningCode:x,warningMsg:oA,extraInfo:JSON.stringify({extraInfo:uA})})}},{key:"onEnterRoom",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onEnterRoom",{result:x})}},{key:"onExitRoom",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onExitRoom",{reason:x})}},{key:"onSwitchRole",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onSwitchRole",{errorCode:x,errorMessage:oA})}},{key:"onUserVideoAvailable",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onUserVideoAvailable",{userId:x,available:!!oA})}},{key:"onUserSubStreamAvailable",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onUserSubStreamAvailable",{userId:x,available:!!oA})}},{key:"onUserAudioAvailable",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onUserAudioAvailable",{userId:x,available:!!oA})}},{key:"onFirstVideoFrame",value:function(x,oA,uA,FA){var zA;(zA=this.nativeObserver)===null||zA===void 0||zA.onJSEvent("onFirstVideoFrame",{userId:x,streamType:oA,width:uA,height:FA})}},{key:"onRemoteUserEnterRoom",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onRemoteUserEnterRoom",{userId:x})}},{key:"onRemoteUserLeaveRoom",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onRemoteUserLeaveRoom",{userId:x,reason:oA})}},{key:"onUserVoiceVolume",value:function(x,oA,uA){var FA;(FA=this.nativeObserver)===null||FA===void 0||FA.onJSEvent("onUserVoiceVolume",{userVolumes:x,userVolumesCount:oA,totalVolume:uA})}},{key:"onNetworkQuality",value:function(x,oA){var uA;(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onNetworkQuality",{localQuality:x,remoteQuality:oA,remoteQualityCount:oA.length})}},{key:"onStatistics",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onStatistics",{statistics:x})}},{key:"onMicDidReady",value:function(){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onMicDidReady",{})}},{key:"onCameraDidReady",value:function(){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onCameraDidReady",{})}},{key:"onScreenCapturePaused",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onScreenCapturePaused",{reason:x})}},{key:"onScreenCaptureResumed",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onScreenCaptureResumed",{reason:x})}},{key:"onScreenCaptureStopped",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onScreenCaptureStopped",{reason:x})}},{key:"onSendFirstLocalAudioFrame",value:function(){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onSendFirstLocalAudioFrame",{})}},{key:"onSendFirstLocalVideoFrame",value:function(x){var oA;(oA=this.nativeObserver)===null||oA===void 0||oA.onJSEvent("onSendFirstLocalVideoFrame",{streamType:x})}},{key:"onReceiveSEIMessage",value:function(x,oA){var uA;try{var FA=JSON.parse(oA);(uA=this.nativeObserver)===null||uA===void 0||uA.onJSEvent("onReceiveSEIMessage",{message:JSON.stringify(Object.assign(Object.assign({},FA),{userId:x,data:FA.stringData}))})}catch(zA){l.logger&&l.logger.warn("[trtcCloud] onReceiveSEIMessage error",zA)}}},{key:"onConnectionLost",value:function(){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onConnectionLost",{})}},{key:"onConnectionRecovery",value:function(){var x;(x=this.nativeObserver)===null||x===void 0||x.onJSEvent("onConnectionRecovery",{})}},{key:"bindTRTCEvent",value:function(){this.trtcCloud.on("onError",this.onError),this.trtcCloud.on("onWarning",this.onWarning),this.trtcCloud.on("onEnterRoom",this.onEnterRoom),this.trtcCloud.on("onExitRoom",this.onExitRoom),this.trtcCloud.on("onSwitchRole",this.onSwitchRole),this.trtcCloud.on("onUserVideoAvailable",this.onUserVideoAvailable),this.trtcCloud.on("onUserSubStreamAvailable",this.onUserSubStreamAvailable),this.trtcCloud.on("onUserAudioAvailable",this.onUserAudioAvailable),this.trtcCloud.on("onScreenCapturePaused",this.onScreenCapturePaused),this.trtcCloud.on("onScreenCaptureResumed",this.onScreenCaptureResumed),this.trtcCloud.on("onScreenCaptureStopped",this.onScreenCaptureStopped),this.trtcCloud.on("onFirstVideoFrame",this.onFirstVideoFrame),this.trtcCloud.on("onRemoteUserEnterRoom",this.onRemoteUserEnterRoom),this.trtcCloud.on("onRemoteUserLeaveRoom",this.onRemoteUserLeaveRoom),this.trtcCloud.on("onUserVoiceVolume",this.onUserVoiceVolume),this.trtcCloud.on("onNetworkQuality",this.onNetworkQuality),this.trtcCloud.on("onStatistics",this.onStatistics),this.trtcCloud.on("onMicDidReady",this.onMicDidReady),this.trtcCloud.on("onCameraDidReady",this.onCameraDidReady),this.trtcCloud.on("onSendFirstLocalAudioFrame",this.onSendFirstLocalAudioFrame),this.trtcCloud.on("onSendFirstLocalVideoFrame",this.onSendFirstLocalVideoFrame),this.trtcCloud.on("onRecvSEIMsg",this.onReceiveSEIMessage),this.trtcCloud.on("onConnectionLost",this.onConnectionLost),this.trtcCloud.on("onConnectionRecovery",this.onConnectionRecovery)}},{key:"unbindTRTCEvent",value:function(){this.trtcCloud.off("onError",this.onError),this.trtcCloud.off("onWarning",this.onWarning),this.trtcCloud.off("onEnterRoom",this.onEnterRoom),this.trtcCloud.off("onExitRoom",this.onExitRoom),this.trtcCloud.off("onSwitchRole",this.onSwitchRole),this.trtcCloud.off("onUserVideoAvailable",this.onUserVideoAvailable),this.trtcCloud.off("onUserSubStreamAvailable",this.onUserSubStreamAvailable),this.trtcCloud.off("onUserAudioAvailable",this.onUserAudioAvailable),this.trtcCloud.off("onScreenCapturePaused",this.onScreenCapturePaused),this.trtcCloud.off("onScreenCaptureResumed",this.onScreenCaptureResumed),this.trtcCloud.off("onScreenCaptureStopped",this.onScreenCaptureStopped),this.trtcCloud.off("onFirstVideoFrame",this.onFirstVideoFrame),this.trtcCloud.off("onRemoteUserEnterRoom",this.onRemoteUserEnterRoom),this.trtcCloud.off("onRemoteUserLeaveRoom",this.onRemoteUserLeaveRoom),this.trtcCloud.off("onUserVoiceVolume",this.onUserVoiceVolume),this.trtcCloud.off("onNetworkQuality",this.onNetworkQuality),this.trtcCloud.off("onStatistics",this.onStatistics),this.trtcCloud.off("onMicDidReady",this.onMicDidReady),this.trtcCloud.off("onCameraDidReady",this.onCameraDidReady),this.trtcCloud.off("onSendFirstLocalAudioFrame",this.onSendFirstLocalAudioFrame),this.trtcCloud.off("onSendFirstLocalVideoFrame",this.onSendFirstLocalVideoFrame),this.trtcCloud.off("onRecvSEIMsg",this.onReceiveSEIMessage),this.trtcCloud.off("onConnectionLost",this.onConnectionLost),this.trtcCloud.off("onConnectionRecovery",this.onConnectionRecovery)}}],[{key:"createTRTC",value:function(x){return new J(x)}},{key:"getSDKVersion",value:function(){return ym.getTRTCShareInstance().getSDKVersion()}},{key:"log",value:function(x){return qs(this,void 0,void 0,MA().m(function oA(){var uA,FA,zA;return MA().w(function($A){for(;;)switch($A.n){case 0:if(be(uA=JQ(x))==="object"){$A.n=1;break}return $A.a(2);case 1:if(FA="[".concat(uA.file,": ").concat(uA.line,"] ").concat(uA.message),!l.isElectron){$A.n=3;break}return zA={api:"TuikitLog",params:uA},l.logger.info(FA),$A.n=2,J.callExperimentalAPI(JSON.stringify(zA));case 2:$A.n=4;break;case 3:uA.level===2?l.logger.error(FA):console.log("[tuikit engine wasm] ["+uA.file+":"+uA.line+"] "+uA.message);case 4:return $A.a(2)}},oA)}))}},{key:"callExperimentalAPI",value:function(x){return qs(this,void 0,void 0,MA().m(function oA(){var uA;return MA().w(function(FA){for(;;)switch(FA.n){case 0:return uA=ym.getTRTCShareInstance(),FA.n=1,uA.callExperimentalAPI(x);case 1:return FA.a(2)}},oA)}))}}])}();return l.JSTRTC=GM,l.ready});(function(l){l[l.APNs=0]="APNs",l[l.VoIP=1]="VoIP"})(kQ||(kQ={})),function(l){l[l.UNKNOWN=0]="UNKNOWN",l[l.AUDIO_CALL=1]="AUDIO_CALL",l[l.VIDEO_CALL=2]="VIDEO_CALL"}(_h||(_h={})),function(l){l[l.NORMAL=0]="NORMAL",l[l.RELEASE=1]="RELEASE",l[l.WARNING=2]="WARNING",l[l.ERROR=3]="ERROR",l[l.NONE=4]="NONE"}(JO||(JO={}));const Qu={"480p":r.TUIVideoQuality.kVideoQuality_540p,"720p":r.TUIVideoQuality.kVideoQuality_720p,"1080p":r.TUIVideoQuality.kVideoQuality_1080p},cT={TRTCDeviceInfo:g.TRTCDeviceInfo,TRTCAudioQuality:g.TRTCAudioQuality,TRTCScreenCaptureSourceInfo:g.TRTCScreenCaptureSourceInfo,Rect:g.Rect,TRTCScreenCaptureSourceType:g.TRTCScreenCaptureSourceType,TRTCVideoEncParam:g.TRTCVideoEncParam,TRTCVideoResolution:g.TRTCVideoResolution,TRTCVideoResolutionMode:g.TRTCVideoResolutionMode,TRTCVideoQosPreference:g.TRTCVideoQosPreference,TRTCBeautyStyle:g.TRTCBeautyStyle,TRTCVideoStreamType:g.TRTCVideoStreamType,TRTCVolumeInfo:g.TRTCVolumeInfo,TRTCDeviceType:g.TRTCDeviceType,TRTCDeviceState:g.TRTCDeviceState,TRTCQualityInfo:g.TRTCQualityInfo,TRTCStatistics:g.TRTCStatistics,TRTCVideoFillMode:g.TRTCVideoFillMode,TRTCAppScene:g.TRTCAppScene,TRTCRoleType:g.TRTCRoleType,TRTCParams:g.TRTCParams,TRTCQuality:g.TRTCQuality},HO=WB?Ni.MINI_PROGRAM:Ni.WEB,Js={};Js.TIM=f.default,Js.TRTCCloud=m.default,Js.currentFrameWork=HO,Js.TRTCDefine=cT,Js.TIMDefine=f.default.TYPES,Js.FRAMEWORK=Ni;const _Q=Xd();Js.loggerManager=_Q,Js.logger=_Q,Js.rtcDetect=new M.default,To.info(`SDK Version:${Je}.`),function(){U(this,void 0,void 0,function*(){yield Eq(Js),er.setModule(Js)})}();const pg=new qe,bQ={cover:g.TRTCVideoFillMode.TRTCVideoFillMode_Fill,fill:g.TRTCVideoFillMode.TRTCVideoFillMode_Fill,contain:g.TRTCVideoFillMode.TRTCVideoFillMode_Fit};class er{constructor(p){var S,H;if(this._logger=_Q,this._logLevel=1,this._uniqueLoginId="",this._isExternalTim=!1,this._excludeFromHistoryMessage=!1,this._localRenderFillMode=g.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._remoteRenderFillMode=g.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._callMediaType=_h.UNKNOWN,this.tim=null,this.trtcCloud=null,this._permission={audio:!1,video:!1},this._devices={microphone:[],camera:[],speaker:[]},this._currentDevices={microphone:void 0,camera:void 0,speaker:void 0},this._isRegisterVirtualBackgroundModelFile=!1,this._isUseBasicBeautyPlugin=!1,!er.isWasmReady)throw new Ps({code:r.TUIErrorCode.ERR_FAILED,message:"Please listen to the ready event and then execute the constructor method."});const{isSharedInstance:K=!0,framework:lA=30,component:SA=17,language:nA=0}=p;this._callEngineWASM=new er.Module.TUICallEngineWASM(K),er.sdkAppId=p.SDKAppID||p.sdkAppID||0,this.trtcCloud=this._callEngineWASM.getTRTCCloud();const hA={api:"setFramework",params:{framework:lA,component:SA,language:nA}};(S=this==null?void 0:this.callExperimentalAPI)===null||S===void 0||S.call(this,JSON.stringify(hA)),p.tim&&(this._isExternalTim=!0,Js.tim=p.tim,this.tim=p.tim,eF((H=p.tim)===null||H===void 0?void 0:H.addSignalingListener)||(Js.tim.addSignalingListener=()=>{},this.tim.addSignalingListener=()=>{})),this._initLogger(p),this._logger.info("constructor.start",{text:{data:p},type:"api"}),this._observerFunction=this._observerFunction.bind(this),this._callEngineWASM.setObserver(this._observerFunction)}static setModule(p){To.info("TUICallEngineWASM ready!"),this.Module=p,this.isWasmReady=!0,pg.emit("ready")}JSCallNativeFunctionPromise(p,...S){return new Promise((H,K)=>{const lA=nA=>{H({code:0,message:"success",data:ZE(nA)})},SA=(nA,hA)=>{this._logger.info(`callEngine.${p} fail.`,{text:{data:{code:nA,message:hA}},type:"api"}),K(new Ps({code:nA,message:hA}))};try{if(S.length>0)if(p==="startRemoteView"){const nA=yA=>{To.info("callEngine startRemoteView playingCallback ",ZE(yA)),H(ZE(yA))},hA=yA=>{To.info("callEngine startRemoteView loadingCallback ",ZE(yA)),H(ZE(yA))};this._callEngineWASM[p](...S,nA,hA,SA)}else this._callEngineWASM.callAPI(p,...S,lA,SA);else this._callEngineWASM.callAPI(p,"{}",lA,SA)}catch(nA){this._logger.info(`callEngine.${p} fail.`,{text:{error:nA},type:"api"}),To.error(`callEngine.${p} fail.`,nA.code,nA.message),K(new Ps({code:nA.code||r.TUIErrorCode.ERR_FAILED,message:nA.message}))}})}static createInstance(p){return er.sdkAppId=p.SDKAppID||p.sdkAppID||0,_Q.updateEsConfig({url:`https://webim.tim.qq.com/v4/imopenstat/tweb_trtccalling_report?sdkappid=${er.sdkAppId}`,table:"timweb-trtccalling"}),er.instance||(er.instance=new er(p)),er.instance}static once(p,S){pg.once(p,S),p==="ready"&&er.isWasmReady&&pg.emit("ready")}destroyInstance(){return U(this,void 0,void 0,function*(){er.instance=null,yield this.logout(),this._callEngineWASM.delete()})}login(p){return U(this,void 0,void 0,function*(){this._uniqueLoginId=function(SA){SA=SA||32;for(var nA="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",hA="",yA=0;yA<SA;yA++)hA+=nA.charAt(Math.floor(48*Math.random()));return hA}(6),this._logger.updateGetReportData(()=>({userid:p.userID,uniqueloginid:this._uniqueLoginId})),this._logger.info("login.start",{text:{data:Object.assign(Object.assign({},p),{userSig:""})},type:"api"}),er.isWasmReady||(yield Js.ready);const{userID:S,userSig:H,assetsPath:K}=p;er.userId=S,er.userSig=H;const lA=[er.sdkAppId,S,H];yield this.JSCallNativeFunctionPromise("login",JSON.stringify(lA)),pg.emit(r.TUICallEvent.SDK_READY,{name:"ts_im_ready"})})}logout(){return U(this,void 0,void 0,function*(){const p={userID:er.userId,timExternal:this._isExternalTim};this._logger.info("logout.start",{text:{data:p},type:"api"}),yield this.JSCallNativeFunctionPromise("logout")})}call(p){return U(this,void 0,void 0,function*(){this._logger.info("call.start",{text:{data:p},type:"api"}),To.info("call - params:",p),this._callMediaType=p.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:p.type});const S={room_id:{int_room_id:p?.roomID||0,str_room_id:p?.strRoomID||""},timeout:p?.timeout||30,offline_push_info:of(p?.offlinePushInfo),user_data:p?.userData||""},H=[p.userID,p.type,S];return yield this.JSCallNativeFunctionPromise("call",JSON.stringify(H))})}groupCall(p){return U(this,void 0,void 0,function*(){this._logger.info("groupCall.start",{text:{data:p},type:"api"}),To.info("groupCall - params:",p),this._callMediaType=p.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:p.type});const S={room_id:{int_room_id:p?.roomID||0,str_room_id:p?.strRoomID||""},timeout:p?.timeout||30,offline_push_info:of(p?.offlinePushInfo),user_data:p?.userData||""},H=[p.groupID,p.userIDList,p.type,S];return yield this.JSCallNativeFunctionPromise("groupCall",JSON.stringify(H))})}calls(p){return U(this,void 0,void 0,function*(){this._logger.info("calls.start",{text:{data:p},type:"api"}),To.info("calls - params:",p),this._callMediaType=p.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:p.type});const S={room_id:{int_room_id:p?.roomID||0,str_room_id:p?.strRoomID||""},timeout:p?.timeout||30,offline_push_info:of(p?.offlinePushInfo),user_data:p?.userData||""},H=[p.chatGroupID||"",p.userIDList,p.type,S];return yield this.JSCallNativeFunctionPromise("calls",JSON.stringify(H))})}accept(){return U(this,void 0,void 0,function*(){return this._logger.info("accept.start",{text:{data:{callMediaType:this._callMediaType}},type:"api"}),To.info("accept.start"),yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:this._callMediaType}),yield this.JSCallNativeFunctionPromise("accept")})}reject(){return U(this,void 0,void 0,function*(){return this._logger.info("reject.start",{text:{},type:"api"}),To.info("reject.start"),yield this.JSCallNativeFunctionPromise("reject")})}hangup(){return U(this,void 0,void 0,function*(){return this._logger.info("hangup.start",{text:{},type:"api"}),To.info("hangup.start"),yield this.closeCamera(),yield this.closeMicrophone(),yield this.JSCallNativeFunctionPromise("hangup")})}inviteUser(p){return U(this,void 0,void 0,function*(){this._logger.info("inviteUser.start",{text:{data:p},type:"api"}),To.info(`inviteUser, params:${JSON.stringify(p)}`);const{userIDList:S,offlinePushInfo:H={}}=p,K=[S,{timeout:p?.timeout||30,offline_push_info:of(p?.offlinePushInfo),user_data:p?.userData||""}];yield this.JSCallNativeFunctionPromise("inviteUser",JSON.stringify(K))})}joinInGroupCall(p){return U(this,void 0,void 0,function*(){this._logger.info("joinInGroupCall.start",{text:{data:p},type:"api"}),To.info(`joinInGroupCall, params:${p}`),this._callMediaType=p.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:p.type});const S=[{int_room_id:p?.roomID||0,str_room_id:p?.strRoomID||""},p.groupID,p.type];yield this.JSCallNativeFunctionPromise("joinInGroupCall",JSON.stringify(S))})}join(p){return U(this,void 0,void 0,function*(){this._logger.info("join.start",{text:{data:p},type:"api"}),To.info(`join, params:${p}`),yield this==null?void 0:this._checkDevicePermission({audio:!0});const S=[p.callId];yield this.JSCallNativeFunctionPromise("join",JSON.stringify(S))})}openCamera(p,S){return U(this,void 0,void 0,function*(){let H;this._logger.info("openCamera.start",{type:"api",text:{data:p,isFrontCamera:S}}),To.info(`openCamera.start, videoViewDomID:${p}, isFrontCamera:${S}}`),yield this==null?void 0:this._checkDevicePermission({video:!0}),H=be(S)===ai?-1:S?1:0;const K=[H,p];yield this.JSCallNativeFunctionPromise("openCamera",JSON.stringify(K))})}closeCamera(){return U(this,void 0,void 0,function*(){this._logger.info("closeCamera.start",{type:"api"}),To.info("closeCamera.start"),yield this.JSCallNativeFunctionPromise("closeCamera")})}switchCamera(p){return U(this,void 0,void 0,function*(){this._logger.info("switchCamera.start",{type:"api",text:{data:p}}),To.info(`switchCamera.start, cameraPosition: ${p}`);const S=[p===r.TUICallCameraPosition.FRONT?1:0];yield this.JSCallNativeFunctionPromise("switchCamera",JSON.stringify(S))})}setVideoQuality(p){return U(this,void 0,void 0,function*(){this._logger.info("setVideoQuality.start",{type:"api",text:{data:p}}),To.info(`setVideoQuality.start, profile:${p}`);const S=[Qu[p],this._localRenderFillMode];To.info(`setVideoQuality.start, jsonParams:${S}`),yield this.JSCallNativeFunctionPromise("setVideoEncoderParams",JSON.stringify(S))})}setVideoRenderParams(p){return U(this,void 0,void 0,function*(){this._logger.info("setVideoRenderParams.start",{type:"api",text:{data:p}}),To.info("setVideoRenderParams.start",p);const S=this._analyzeVideoRenderParams(p);p.userID===er.userId?this._localRenderFillMode=S.fillMode:this._remoteRenderFillMode=S.fillMode;const H=[p.userID,S.fillMode,S.rotation];yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(H))})}openMicrophone(){return U(this,void 0,void 0,function*(){this._logger.info("openMicrophone.start",{type:"api"}),To.info("openMicrophone.start"),yield this.JSCallNativeFunctionPromise("openMicrophone")})}closeMicrophone(){return U(this,void 0,void 0,function*(){this._logger.info("closeMicrophone.start",{type:"api"}),To.info("closeMicrophone.start"),yield this.JSCallNativeFunctionPromise("closeMicrophone")})}startRemoteView(p){var S,H;return U(this,void 0,void 0,function*(){this._logger.info("startRemoteView.start",{type:"api",text:{data:p}}),To.info(`startRemoteView.start params: ${JSON.stringify(p)}`);let K=[p.userID,p.videoViewDomID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(K)),this._remoteRenderFillMode=((S=p?.options)===null||S===void 0?void 0:S.fillMode)&&bQ[(H=p.options)===null||H===void 0?void 0:H.fillMode]||this._remoteRenderFillMode,K=[p.userID,this._remoteRenderFillMode,0],yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(K))})}stopRemoteView(p){return U(this,void 0,void 0,function*(){this._logger.info("stopRemoteView.start",{text:{data:p},type:"api"});const S=[p.userID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(S))})}setBlurBackground(p){return U(this,void 0,void 0,function*(){this._logger.info("setBlurBackground.start",{type:"api",text:{data:p}}),yield this._setVirtualBackground({enable:p!==0,type:yr,blurLevel:p})})}setVirtualBackground(p){return U(this,void 0,void 0,function*(){this._logger.info("setVirtualBackground.start",{type:"api",text:{data:p}}),yield this._setVirtualBackground({enable:!!p,type:lr,imagePath:p})})}_setVirtualBackground(p){var S,H;return U(this,void 0,void 0,function*(){try{const{enable:K}=p;!this._isRegisterVirtualBackgroundModelFile&&K&&(yield(S=this.trtcCloud)===null||S===void 0?void 0:S.useVirtualBackground(er._assetsPath),this._isRegisterVirtualBackgroundModelFile=!0);const lA={api:Xi,params:Object.assign({sdkAppId:er.sdkAppId,userId:er.userId,userSig:er.userSig},p)};yield(H=this.trtcCloud)===null||H===void 0?void 0:H.callExperimentalAPI(JSON.stringify(lA))}catch(K){throw To.error(`setVirtualBackground.fail, ${K}`),this._logger.error("setVirtualBackground.fail",{text:{error:K},type:"api"}),K}})}enableMultiDeviceAbility(p){this._logger.info("enableMultiDeviceAbility.start",{text:{data:{enable:p}},type:"api"});const S=[p];this.JSCallNativeFunctionPromise("enableMultiDeviceAbility",JSON.stringify(S))}setSelfInfo(p){return U(this,void 0,void 0,function*(){this._logger.info("setSelfInfo.start",{type:"api",text:{data:p}});const S=[p.nickName,p.avatar];yield this.JSCallNativeFunctionPromise("setSelfInfo",JSON.stringify(S))})}setBeautyLevel(p){var S,H;return U(this,void 0,void 0,function*(){try{this._logger.info("setBeautyLevel.start",{type:"api",text:{data:p}});const{style:K,beautyLevel:lA,whitenessLevel:SA,ruddinessLevel:nA}=p||{};if(!p||K!==g.TRTCBeautyStyle.TRTCBeautyStyleSmooth&&K!==g.TRTCBeautyStyle.TRTCBeautyStyleNature)return void To.error("setBeautyLevel.fail style valid, ",K);this._isUseBasicBeautyPlugin||(yield(S=this.trtcCloud)===null||S===void 0?void 0:S.useBeautyStyle(),this._isUseBasicBeautyPlugin=!0),yield(H=this.trtcCloud)===null||H===void 0?void 0:H.setBeautyStyle(K,lA,SA,nA)}catch(K){this._logger.info("setBeautyLevel.fail",{type:"api",text:{data:K}}),To.error("setBeautyLevel.fail",K)}})}setLogLevel(p){var S,H,K;To.info(`setLogLevel level: ${p}`),this._logLevel=p,To.setLevel(p),(H=(S=this==null?void 0:this.tim)===null||S===void 0?void 0:S.setLogLevel)===null||H===void 0||H.call(S,p),(K=m.default===null||m.default===void 0?void 0:m.default.setLogLevel)===null||K===void 0||K.call(m.default,p)}init(p){return U(this,void 0,void 0,function*(){return this.login(p)})}on(p,S,H){if(pg.on(p,S,H||this),p===r.TUICallEvent.onDeviceChange||p===r.TUICallEvent.DEVICED_UPDATED){const K=r.TUICallEvent.onDeviceChange;return void this._handleTrtcCloudBindEvent(K)}}off(p,S,H){pg.off(p,S)}getTRTCCloudInstance(){return this.trtcCloud}getTim(){return Js.tim}static callExperimentalAPI(p){return U(this,void 0,void 0,function*(){const S=ZE(p);if(S===p)return;const{api:H,params:K}=S;if(H&&K){K?.assetsPath&&H==="setAssetsPath"&&(this._assetsPath=K.assetsPath);try{yield m.default.callExperimentalAPI(p)}catch(lA){console.warn("static callExperimentalAPI error: ",lA)}}})}callExperimentalAPI(p){return U(this,void 0,void 0,function*(){this._logger.info("callExperimentalAPI",{text:{data:p},type:"api"});const S=ZE(p);if(S===p)return;const{api:H,params:K={}}=S;if(H&&K)try{const lA=[p];return yield this.JSCallNativeFunctionPromise("callExperimentalAPI",JSON.stringify(lA))}catch(lA){throw lA}})}reportLog(p){var S,H;try{if(Iv(p)){const{name:K="",data:lA,error:SA,type:nA="api",level:hA="info"}=p||{},yA=hA==="error"?{error:SA,data:lA}:{data:lA};(H=(S=this._logger)===null||S===void 0?void 0:S[hA])===null||H===void 0||H.call(S,K,{text:yA,type:nA})}}catch(K){console.debug("reportLog fail: ",K)}}_cleanupAvoidRepeatCallState(p){var S,H;(H=(S=this._logger)===null||S===void 0?void 0:S.log)===null||H===void 0||H.call(S,{name:"TUICallEngine._cleanupAvoidRepeatCallState",data:{methodName:p}});let K=[];K=p?[this[p]]:[this.calls,this.accept,this.hangup,this.reject,this.join,this.inviteUser],K?.forEach(lA=>{var SA;(SA=lA?.clearCallState)===null||SA===void 0||SA.call(lA,this)})}getDeviceList(p){var S,H,K;return U(this,void 0,void 0,function*(){this._logger.info("getDeviceList.start",{text:{data:{deviceType:p}},type:"api"}),(p=p===eA.MICROPHONES?eA.MICROPHONE:p)!==eA.MICROPHONE&&p!==eA.SPEAKER||(yield this._checkDevicePermission({audio:!0})),p===eA.CAMERA&&(yield this._checkDevicePermission({video:!0,isThrowVideoError:!0}));let lA=[];switch(p){case eA.CAMERA:this.getDevicePermission().video&&(lA=yield(S=this.trtcCloud)===null||S===void 0?void 0:S.getCameraDevicesList());break;case eA.MICROPHONE:this.getDevicePermission().audio&&(lA=yield(H=this.trtcCloud)===null||H===void 0?void 0:H.getMicDevicesList());break;case eA.SPEAKER:this.getDevicePermission().audio&&(lA=yield(K=this.trtcCloud)===null||K===void 0?void 0:K.getSpeakerDevicesList())}return this._devices[p]=lA,lA})}switchDevice(p){var S,H,K;return U(this,void 0,void 0,function*(){this._logger.info("switchDevice.start",{text:{data:{params:p}},type:"api"}),To.info("switchDevice.start",p);let lA=!1,{deviceType:SA,deviceId:nA}=p;return SA!==eA.VIDEO&&SA!==eA.CAMERA||(SA=eA.CAMERA,lA=yield(S=this.trtcCloud)===null||S===void 0?void 0:S.setCurrentCameraDevice(nA)),SA!==eA.AUDIO&&SA!==eA.MICROPHONES&&SA!==eA.MICROPHONE||(lA=yield(H=this.trtcCloud)===null||H===void 0?void 0:H.setCurrentMicDevice(nA)),SA===eA.SPEAKER&&(lA=yield(K=this.trtcCloud)===null||K===void 0?void 0:K.setCurrentSpeakerDevice(nA)),this._updateCurrentDevice(),this._onDeviceUpdated(this._devices,this._currentDevices),lA})}_updateCurrentDevice(){var p,S,H;this._logger.info("_updateCurrentDevice.start",{text:{data:Object.assign({},this._currentDevices)},type:"api"}),this._currentDevices.camera=(p=this.trtcCloud)===null||p===void 0?void 0:p.getCurrentCameraDevice(),this._currentDevices.microphone=(S=this.trtcCloud)===null||S===void 0?void 0:S.getCurrentMicDevice(),this._currentDevices.speaker=(H=this.trtcCloud)===null||H===void 0?void 0:H.getCurrentSpeakerDevice()}switchCallMediaType(p){return U(this,void 0,void 0,function*(){this._logger.info("switchCallMediaType.start",{text:{data:{newMediaType:p}},type:"api"});const S=[p];yield this.JSCallNativeFunctionPromise("switchCallMediaType",JSON.stringify(S))})}_checkDevicePermission(p={}){return U(this,void 0,void 0,function*(){return yield this._getMediaDevicesAuth(p)})}_getMediaDevicesAuth(p={}){return U(this,void 0,void 0,function*(){if(this._logger.info("_getMediaDevicesAuth.start",{text:{data:{params:p}},type:"api"}),function(){if(!window||!window.location)return!1;const{protocol:H,hostname:K}=window.location;return H==="http:"&&K!=="localhost"&&K!=="127.0.0.1"}())throw this._logger.error("_getMediaDevicesAuth.fail",{text:{error:Bg},type:"api"}),new Ps({code:oV});const S=this.getDevicePermission();if(p.audio){if(Sv&&S.audio)return S;try{const H=yield navigator.mediaDevices.getUserMedia({audio:!0});this._releaseStream(H),this._setDevicePermission(Ur,!0)}catch(H){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:H},type:"api"}),this._setDevicePermission(Ur,!1),this._handleMediaError(H,"_getMediaDevicesAuth",Ur)}}if(p.video){if(Sv&&S.video)return S;try{const H=yield navigator.mediaDevices.getUserMedia({video:!0});this._releaseStream(H),this._setDevicePermission(Ki,!0)}catch(H){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:H},type:"api"}),this._setDevicePermission(Ki,!1),p.isThrowVideoError&&this._handleMediaError(H,"_getMediaDevicesAuth",Ki)}}return this.getDevicePermission()})}_releaseStream(p){const S=p.getTracks();for(let H=0;H<S.length;H++)S[H].stop()}_handleMediaError(p,S,H){let K=Nv,lA=no;switch(p?.name){case"NotFoundError":H===eA.AUDIO&&(K=NF),H===eA.VIDEO&&(K=eV);break;case"NotAllowedError":K=tV}throw lA=CQ({code:K,params:{error:p,fnName:S}}),new Ps({code:K,message:lA})}_analyzeVideoRenderParams(p){const S={};return S.rotation=p.rotation,p.objectFit&&(p.objectFit===Kn?S.fillMode=g.TRTCVideoFillMode.TRTCVideoFillMode_Fill:S.fillMode=g.TRTCVideoFillMode.TRTCVideoFillMode_Fit),be(p.mirror)===$e&&(S.mirrorType=p.mirror?g.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:g.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),S}_handleTrtcCloudBindEvent(p){var S,H;return U(this,void 0,void 0,function*(){(S=this.trtcCloud)===null||S===void 0||S.removeAllListeners(p),(H=this.trtcCloud)===null||H===void 0||H.on(p,(...K)=>U(this,void 0,void 0,function*(){let lA=Ev(p,K);if(p===r.TUICallEvent.onDeviceChange){const{type:SA}=lA||{},nA={[g.TRTCDeviceType.TRTCDeviceTypeMi]:eA.MICROPHONE,[g.TRTCDeviceType.TRTCDeviceTypeSpeaker]:eA.SPEAKER,[g.TRTCDeviceType.TRTCDeviceTypeCamera]:eA.CAMERA};if(this._callMediaType!==_h.VIDEO_CALL&&nA[SA]===eA.CAMERA)return;yield this.getDeviceList(nA[SA]),this._updateCurrentDevice();const{microphone:hA,speaker:yA,camera:kA}=this._devices,{microphone:oe,speaker:ee,camera:PA}=this._currentDevices;lA={microphoneList:hA,cameraList:kA,speakerList:yA,currentMicrophone:oe,currentCamera:PA,currentSpeaker:ee}}JSON.stringify(lA)==="{}"?pg.emit(p):p===r.TUICallEvent.onDeviceChange?pg.emit(r.TUICallEvent.DEVICED_UPDATED,lA):pg.emit(p,lA)}))})}_observerFunction(p,S){const H=Ev(p,S);if(JSON.stringify(H)==="{}")pg.emit(p);else switch(pg.emit(p,H),p!==r.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&p!==r.TUICallEvent.USER_VOICE_VOLUME&&this._logger.info(`${p}`,{text:{data:{emitterData:H}},type:"api"}),p){case r.TUICallEvent.ON_CALL_RECEIVED:pg.emit(r.TUICallEvent.INVITED,H),this._callMediaType=H.callMediaType;break;case r.TUICallEvent.ON_CALL_NOT_CONNECTED:pg.emit(r.TUICallEvent.ON_CALL_CANCELED,H),pg.emit(r.TUICallEvent.CALLING_CANCEL,H),this._reset();break;case r.TUICallEvent.ON_CALL_END:this._reset()}[r.TUICallEvent.USER_VOICE_VOLUME,r.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED].includes(p)||To.info(`callEngine received event: [${p}] ${JSON.stringify(H)}`)}_reset(){this==null||this._cleanupAvoidRepeatCallState(),this._callMediaType=_h.UNKNOWN}_onDeviceUpdated(p,S){const{microphone:H,speaker:K,camera:lA}=p,{microphone:SA,speaker:nA,camera:hA}=S;this._logger.info("TUICallEvent.DEVICED_UPDATED",{type:"event",text:{data:Object.assign(Object.assign({},p),S)}}),pg.emit(r.TUICallEvent.DEVICED_UPDATED,{microphoneList:H,cameraList:lA,speakerList:K,currentMicrophone:SA,currentCamera:hA,currentSpeaker:nA})}_initLogger(p){this._logger.updateGetReportData(()=>({app:"TUICallEngine-web",version:Je,useragent:{userAgent:window.navigator.userAgent,language:window.navigator.language,platform:window.navigator.platform},platform:p.scene||Er,sdkappid:p.SDKAppID,time:+new Date,userid:er.userId,uniqueloginid:this._uniqueLoginId,roomid:"",callinfo:{inviteid:"",callrole:"",groupid:"",calltype:"",handledInviteeList:[],unHandledInviteeList:[]},callkitversion:p.callkitVersion||no,framework:p.frameWork||no,isfromchat:p.tim?"true":"false"}))}getDevicePermission(){return this._permission}_setDevicePermission(p,S){this._permission[p]=S}}er.className="TUICallEngine",er.isWasmReady=!1,er._assetsPath="",v([VC()],er.prototype,"call",null),v([VC()],er.prototype,"groupCall",null),v([VC()],er.prototype,"calls",null),v([VC()],er.prototype,"accept",null),v([VC()],er.prototype,"reject",null),v([VC()],er.prototype,"hangup",null),v([VC()],er.prototype,"inviteUser",null),v([VC()],er.prototype,"joinInGroupCall",null),v([VC()],er.prototype,"join",null),er.once("ready",()=>U(void 0,void 0,void 0,function*(){})),Object.defineProperty(r,"TIM",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(r,"TencentCloudChat",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(r,"Rect",{enumerable:!0,get:function(){return g.Rect}}),Object.defineProperty(r,"TRTCBeautyStyle",{enumerable:!0,get:function(){return g.TRTCBeautyStyle}}),Object.defineProperty(r,"TRTCCloud",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(r,"TRTCDeviceInfo",{enumerable:!0,get:function(){return g.TRTCDeviceInfo}}),Object.defineProperty(r,"TRTCDeviceState",{enumerable:!0,get:function(){return g.TRTCDeviceState}}),Object.defineProperty(r,"TRTCDeviceType",{enumerable:!0,get:function(){return g.TRTCDeviceType}}),Object.defineProperty(r,"TRTCLogLevel",{enumerable:!0,get:function(){return g.TRTCLogLevel}}),Object.defineProperty(r,"TRTCScreenCaptureSourceInfo",{enumerable:!0,get:function(){return g.TRTCScreenCaptureSourceInfo}}),Object.defineProperty(r,"TRTCScreenCaptureSourceType",{enumerable:!0,get:function(){return g.TRTCScreenCaptureSourceType}}),Object.defineProperty(r,"TRTCVideoEncParam",{enumerable:!0,get:function(){return g.TRTCVideoEncParam}}),Object.defineProperty(r,"TRTCVideoFillMode",{enumerable:!0,get:function(){return g.TRTCVideoFillMode}}),Object.defineProperty(r,"TRTCVideoMirrorType",{enumerable:!0,get:function(){return g.TRTCVideoMirrorType}}),Object.defineProperty(r,"TRTCVideoResolution",{enumerable:!0,get:function(){return g.TRTCVideoResolution}}),Object.defineProperty(r,"TRTCVideoResolutionMode",{enumerable:!0,get:function(){return g.TRTCVideoResolutionMode}}),Object.defineProperty(r,"TRTCVideoRotation",{enumerable:!0,get:function(){return g.TRTCVideoRotation}}),Object.defineProperty(r,"TRTCVideoStreamType",{enumerable:!0,get:function(){return g.TRTCVideoStreamType}}),Object.defineProperty(r,"TRTCVolumeInfo",{enumerable:!0,get:function(){return g.TRTCVolumeInfo}}),r.TUICallEngine=er,r.TUICallType={AUDIO_CALL:1,VIDEO_CALL:2,DEVCIED_CAMERA:"camera",DEVCIED_MICROPHONES:"microphones"},r.VIDEO_ENCODER_MAP=Qu,r.default=er,Object.defineProperty(r,"__esModule",{value:!0})})}(pG,pG.exports)),pG.exports}var Yi=wEA(),SEA=VZ();const $G=RrA(SEA),vEA=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows"),ZX=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||vEA,XX=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,$X=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,A7=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,e7=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,t7=typeof jd<"u"&&typeof jd.getSystemInfoSync=="function",i7=typeof uni<"u"&&typeof window>"u",NEA=ZX||XX||$X||A7||e7||t7||i7,TEA=typeof uni<"u",GEA=(typeof uni<"u"||typeof window<"u")&&!NEA,cB=XX?qq:$X?tt:A7?swan:e7?my:ZX?wx:i7?uni:t7?jd:GEA?window:{};class kEA{constructor(){this.serviceMap=new Map}registerService(i,r){this.serviceMap.has(i)||(console.log(`TUIServiceManager.registerService serviceName:${i}`),this.serviceMap.set(i,r))}unregisterService(i){this.serviceMap.has(i)&&(console.log(`TUIServiceManager.unregisterService serviceName:${i}`),this.serviceMap.delete(i))}getService(i){return this.serviceMap.get(i)}callService(i){const{serviceName:r,method:s,params:g,callback:B}=i,Q=this.getService(r);if(console.log(`TUIServiceManager.callService serviceName:${r}, service:`,Q),Q)return Q.onCall(s,g,B)}}class _EA{constructor(){this.extensionMap=new Map}registerExtension(i,r){if(console.log(`TUIExtensionManager.registerExtension extensionID:${i}`),!this.extensionMap.has(i)){const g=[];this.extensionMap.set(i,g)}const s=this.extensionMap.get(i);s.indexOf(r)===-1&&s.push(r)}unregisterExtension(i,r){if(console.log(`TUIExtensionManager.unregisterExtension extensionID:${i}`),this.extensionMap.has(i)){const s=this.extensionMap.get(i),g=s.indexOf(r);g>-1&&s.splice(g,1)}}getExtensionList(i,r){const s=r?`params:${JSON.stringify(r)}`:"";console.log(`TUIExtensionManager.getExtensionList extensionID:${i} ${s}`);let g=[],B=[];if(this.extensionMap.has(i)){g=this.extensionMap.get(i);for(let Q=0;Q<g.length;Q++){const f=g[Q].onGetExtension(i,r);B=B.concat(f)}}return B}}const bEA=["vue2","vue3","rn"],mr={TUILogin:{EVENT:{LOGIN_STATE_CHANGED:"loginStateChanged"},EVENT_SUB_KEY:{USER_LOGIN_SUCCESS:"userLoginSuccess",USER_LOGOUT_SUCCESS:"userLogoutSuccess",USER_KICKED_OFFLINE:"userKickedOffline",USER_SIG_EXPIRED:"userSigExpired"}},TUIConversation:{SERVICE:{NAME:"TUIConversationService",METHOD:{CREATE_CONVERSATION:"createConversation",HIDE_CONVERSATION_HEADER:"hideConversationHeader"}},EXTENSION:{CONV_POP_MENU:{EXT_ID:"conversationPopMenu"},CONV_GROUP:{EXT_ID:"conversationGroup"}}},TUIChat:{SERVICE:{NAME:"TUIChatService",METHOD:{UPDATE_MESSAGE_LIST:"updateMessageList",CLOSE_MESSAGE_POP_MENU:"closeMessagePopMenu",SEND_CUSTOM_MESSAGE:"sendCustomMessage",SEND_TEXT_MESSAGE:"sendTextMessage",SET_CHAT_TYPE:"setChatType",UPDATE_MESSAGE_INFO:"updateMessageInfo"}},EXTENSION:{INPUT_MORE:{EXT_ID:"inputToolBarMore"},MSG_POP_MENU:{EXT_ID:"messagePopMenu"},CHAT_HEADER:{EXT_ID:"chatHeader"}},TYPE:{C2C:"C2C",GROUP:"GROUP",CUSTOMER_SERVICE:"customerService",ROOM:"room"},EVENT:{CHAT_STATE_CHANGED:"chatStateChanged",CHAT_TYPE_CHANGED:"chatTypeChanged"},EVENT_SUB_KEY:{CHAT_OPENED:"chatOpened",CHANGE_SUCCESS:"changeSuccess"},FEATURE:{DownloadFile:"DownloadFile",CopyMessage:"CopyMessage",DeleteMessage:"DeleteMessage",RevokeMessage:"RevokeMessage",QuoteMessage:"QuoteMessage",ForwardMessage:"ForwardMessage",TranslateMessage:"TranslateMessage",VoiceToText:"VoiceToText",MultiSelection:"MultiSelection",EmojiReaction:"EmojiReaction",InputEmoji:"InputEmoji",InputStickers:"InputStickers",InputImage:"InputImage",InputVoice:"InputVoice",InputVideo:"InputVideo",InputFile:"InputFile",InputEvaluation:"InputEvaluation",InputQuickReplies:"InputQuickReplies",InputMention:"InputMention",MessageSearch:"MessageSearch",ReadStatus:"ReadStatus"}},TUIGroup:{SERVICE:{NAME:"TUIGroupService",METHOD:{CREATE_GROUP:"createGroup",OPEN_GROUP_MANAGEMENT:"openGroupManagement",SELECT_GROUP_MEMBER:"selectGroupMember"}}},TUIContact:{SERVICE:{NAME:"TUIContactService",METHOD:{SELECT_FRIEND:"selectFriend"}},EXTENSION:{CONTACT_LIST:{EXT_ID:"contactList"}}},TUISearch:{SERVICE:{NAME:"TUISearchService",METHOD:{SEARCH_GROUP:"searchGroup",SEARCH_USER:"searchUser",SEARCH_FRIEND:"searchFriend",SEARCH_GROUP_MEMBER:"searchGroupMember"}},EXTENSION:{SEARCH_MORE:{EXT_ID:"searchMore"}}},TUICalling:{SERVICE:{NAME:"TUICallingService",METHOD:{START_CALL:"startCall"}}},TUIRoom:{SERVICE:{NAME:"TUIRoomService"}},TUIEmojiPlugin:{SERVICE:{NAME:"TUIEmojiPluginService",METHOD:{CLOSE_EMOJI_DETAIL:"closeEmojiDetail"}}},TUITranslate:{EVENT:{LANGUAGE_CHANGED:"languageChanged"},EVENT_SUB_KEY:{CHANGE_SUCCESS:"changeSuccess"}},TUITranslatePlugin:{SERVICE:{NAME:"TUITranslatePluginService"}},TUIVoiceToTextPlugin:{SERVICE:{NAME:"TUIVoiceToTextPluginService"}},TUICustomerServicePlugin:{SERVICE:{NAME:"TUICustomerServicePlugin",METHOD:{ACTIVE_CONVERSATION:"activeConversation",FILTER_MESSAGE:"filterMessage"}},EXTENSION:{}},TUIPushPlugin:{SERVICE:{NAME:"TUIPushPluginService"}},TUIChatbotPlugin:{SERVICE:{NAME:"TUIChatbotPluginService"}},TUITheme:{EVENT:{THEME_CHANGED:"themeChanged"},EVENT_SUB_KEY:{CHANGE_SUCCESS:"changeSuccess"}}},l8={[mr.TUITranslatePlugin.SERVICE.NAME]:Math.pow(2,38),[mr.TUIVoiceToTextPlugin.SERVICE.NAME]:Math.pow(2,39),[mr.TUICustomerServicePlugin.SERVICE.NAME]:Math.pow(2,40),[mr.TUIPushPlugin.SERVICE.NAME]:Math.pow(2,41),[mr.TUIChatbotPlugin.SERVICE.NAME]:Math.pow(2,42),[mr.TUIEmojiPlugin.SERVICE.NAME]:Math.pow(2,48)};class Ep{constructor(i){this.loginStatusPromise=new Map,this.SDKAppID=0,this.userID="",this.userSig="",this.TUICore=i,this.isOnChatEvent=!1}static getInstance(i){return cB.__$RTC_TUICore__&&cB.__$RTC_TUILogin__?cB.__$RTC_TUILogin__:(!Ep.instance&&i&&(Ep.instance=new Ep(i)),cB.__$RTC_TUILogin__=Ep.instance,Ep.instance)}login(i){const{SDKAppID:r,userID:s,userSig:g,scene:B="",framework:Q}=i,f=Object.assign(Object.assign({},i),{scene:B||this.getStatScene(Q)});return this.chat=$G.create(f),this.EVENT=$G.EVENT,this.TYPES=$G.TYPES,this.SDKAppID=r,this.userID=s,this.userSig=g,this.offChatEvent(),this.onChatEvent(),this._addSDKExtensions(),this.loginChat(i)}logout(){return this.chat.logout().then(i=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS),Promise.resolve(i)))}destroy(){return this.chat.destroy().then(i=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS),Promise.resolve(i)))}setLogLevel(i){return this.chat.setLogLevel(i)}getContext(){return{chat:this.chat,SDKAppID:this.SDKAppID,userID:this.userID,userSig:this.userSig}}reportPlugin(){var i;for(const r in l8)this.TUICore.getService(r)&&((i=this.chat.callExperimentalAPI("isFeatureEnabledForStat",l8[r]))===null||i===void 0||i.catch(()=>{}))}loginChat(i){const{userID:r,userSig:s}=i;return new Promise((g,B)=>{this.chat.login({userID:r,userSig:s}).then(Q=>{Q.data.repeatLogin&&this.chat.isReady()&&g(Q),this.reportPlugin(),this.loginStatusPromise.set("login",{resolve:g,reject:B,imResponse:Q})}).catch(Q=>{B(Q)})})}onChatEvent(){this.chat.on(this.EVENT.SDK_READY,this.onSDKReady,this),this.chat.on(this.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.chat.on(this.EVENT.KICKED_OUT,this.onUserKicked,this),this.isOnChatEvent=!0}offChatEvent(){this.isOnChatEvent&&(this.chat.off(this.EVENT.SDK_READY,this.onSDKReady,this),this.chat.off(this.EVENT.SDK_NOT_READY,this.onSDKNotReady,this),this.chat.off(this.EVENT.KICKED_OUT,this.onUserKicked,this),this.isOnChatEvent=!1)}onSDKReady(){if(this.loginStatusPromise.has("login")){this.TUICore.notifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS);const i=setTimeout(()=>{const r=this.loginStatusPromise.get("login");r.resolve(r.imResponse),clearTimeout(i),this.loginStatusPromise.delete("login")},500)}}onSDKNotReady(){this.loginStatusPromise.has("login")&&this.loginStatusPromise.get("login").reject(new Error("sdk not ready")),this.loginStatusPromise.delete("login")}onUserKicked(i){i.data.type!==this.TYPES.KICKED_OUT_USERSIG_EXPIRED?this.TUICore.notifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_KICKED_OFFLINE):this.TUICore.notifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_SIG_EXPIRED)}_addSDKExtensions(){Array.isArray(cB.__$RTC_CHAT__)&&cB.__$RTC_CHAT__.length>0&&this.chat.use(cB.__$RTC_CHAT__)}getStatScene(i){return i&&bEA.indexOf(i)>-1?i==="rn"?"38":TEA?i==="vue2"?"31":"32":i==="vue2"?"29":"30":i}}class LEA{constructor(){this.eventMap=new Map}registerEvent(i,r,s){const g=this.getKey(i,r);if(console.log(`TUIEventManager.registerEvent eventName:${i} subKey:${r}`),!this.eventMap.has(g)){const Q=[];this.eventMap.set(g,Q)}const B=this.eventMap.get(g);B.indexOf(s)===-1&&(B.push(s),this.renotify(i,r,s))}unregisterEvent(i,r,s){console.log(`TUIEventManager.unregisterEvent eventName:${i} subKey:${r}`);const g=this.getKey(i,r);if(this.eventMap.has(g)){const B=this.eventMap.get(g),Q=B.indexOf(s);Q>-1&&B.splice(Q,1)}}notifyEvent(i,r,s){const g=this.getKey(i,r),B=s?`params:${JSON.stringify(s)}`:"";console.log(`TUIEventManager.notifyEvent eventName:${i} subKey:${r} ${B}`),this.eventMap.has(g)&&this.eventMap.get(g).forEach(Q=>{Q.onNotifyEvent(i,r,s)})}getKey(i,r){let s=i;return r&&(s=`${i}-${s}`),s}renotify(i,r,s){if(i===mr.TUILogin.EVENT.LOGIN_STATE_CHANGED&&r===mr.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:g}=Ep.getInstance().getContext();g&&g.isReady()&&(s.onNotifyEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS),console.log("TUIEventManager.renotify success."))}}}class Wm{constructor(){this.serviceManager=new kEA,this.extensionManager=new _EA,this.eventManager=new LEA}static getInstance(){return cB.__$RTC_TUICore__&&cB.__$RTC_TUILogin__?cB.__$RTC_TUICore__:(Wm.instance||(console.log("TUICore.getInstance ok."),Wm.instance=new Wm),cB.__$RTC_TUICore__=Wm.instance,Wm.instance)}registerService(i,r){return this.serviceManager.registerService(i,r)}unregisterService(i){return this.serviceManager.unregisterService(i)}getService(i){return this.serviceManager.getService(i)}callService(i){return this.serviceManager.callService(i)}registerExtension(i,r){return this.extensionManager.registerExtension(i,r)}unregisterExtension(i,r){return this.extensionManager.unregisterExtension(i,r)}getExtensionList(i,r){return this.extensionManager.getExtensionList(i,r)}registerEvent(i,r,s){return this.eventManager.registerEvent(i,r,s)}unregisterEvent(i,r,s){return this.eventManager.unregisterEvent(i,r,s)}notifyEvent(i,r,s){return this.eventManager.notifyEvent(i,r,s)}}console.log("TUICore-Lite.VERSION:1.0.0");const nw=Wm.getInstance(),FEA=Ep.getInstance(nw);(function(){try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".tk-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box;width:100%}.tk-col{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.tk-loading_dot-container{display:flex;justify-content:space-between;align-items:center;height:100%}.tk-loading_dot-container .tk-loading_dot:nth-child(1){opacity:0;animation-duration:.8s;animation-delay:0s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot:nth-child(2){opacity:.083;animation-duration:.8s;animation-delay:.2666666667s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot:nth-child(3){opacity:.1667;animation-duration:.8s;animation-delay:.5333333333s;animation-play-state:running}.tk-loading_dot-container .tk-loading_dot{width:20%;height:20%;border-radius:50%;background-color:#fff;animation-duration:1.8s;animation-name:dotting;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}@keyframes dotting{0%{opacity:.15}1%{opacity:.8}33%{opacity:.8}34%{opacity:.15}to{opacity:.15}}.tk-loading_circle-container{height:100%;border:2px solid;border-radius:50%;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:#fff;background:0 0;vertical-align:middle;box-sizing:border-box;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tk-loading{display:flex;align-items:center;flex-direction:column}.tk-loading .tk-loading_text{margin:10px}.tk-image{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;vertical-align:middle;width:300px;height:225px}.tk-image .tk-image_inner{width:100%;height:100%}.tk-button{display:inline-flex;align-items:center;justify-content:center}.tk-button.tk-button--small{height:24px}.tk-button.tk-button--middle{height:32px}.tk-button.tk-button--large{height:40px}.tk-button .tk-button--content{color:#606266;font-size:14px;font-weight:500}.tk-button.tk-circle.tk-button--small{width:24px}.tk-button.tk-circle.tk-button--default{width:32px}.tk-button.tk-circle.tk-button--large{width:40px}.btn-content[data-v-744bd8dc],.btn-content[data-v-f92abf93]{display:flex;flex-direction:column;align-items:center}.tk-text{display:inline-block;overflow:hidden;text-align:center;line-height:normal;white-space:nowrap;font-weight:400;font-size:14px;color:#303133}.tk-text.tk-text--line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;white-space:normal}.btn-content[data-v-7c062dcf]{display:flex;flex-direction:column;align-items:center}.ai-transcriber-switch[data-v-5c010454]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:20px;color:#fff;font-size:14px;font-weight:400;font-family:PingFang SC;cursor:pointer}.ai-transcriber-switch__label[data-v-5c010454]{white-space:nowrap}.ai-transcriber-switch__toggle[data-v-5c010454]{position:relative;width:32px;height:20px;background:rgba(255,255,255,.3019607843);border-radius:10px;transition:background-color .3s ease;cursor:pointer}.ai-transcriber-switch__toggle--active[data-v-5c010454]{background:#1C66E5}.ai-transcriber-switch__slider[data-v-5c010454]{position:absolute;top:3px;left:2px;width:14px;height:14px;border-radius:50%;background:white;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.ai-transcriber-switch__toggle--active .ai-transcriber-switch__slider[data-v-5c010454]{transform:translate(14px)}.top-bar-container[data-v-3317b720]{position:absolute;z-index:2;width:100%;height:5.8%;display:flex;align-items:center}.topbar-right-controls[data-v-3317b720]{margin-right:10px;display:flex;align-items:center;gap:16px}.top-bar-left-controls[data-v-3317b720]{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-left:10px}.control-item[data-v-3317b720]{display:flex;align-items:center;justify-content:center}.auto-play-dialog[data-v-5493446f]{background-color:#fff;position:absolute;top:5.2%;left:50%;transform:translate(-50%);z-index:2;width:90%;height:40px;display:flex;justify-content:space-between;border-radius:6px;align-items:center;font-size:14px;font-weight:400;font-family:PingFang SC;padding:0 10px}.auto-play-dialog .auto-play-action[data-v-5493446f]{color:#1c66e5}.tk-overlay{position:fixed;left:0;top:0;bottom:0;width:100%}.tk-overlay .tk-overlay_mask-container{width:100%;height:100%;z-index:0;position:absolute}.tk-overlay .tk-overlay_mask{position:absolute;left:0;top:0;right:0;bottom:0;background-color:#00000080;z-index:1}.tk-overlay .tk-overlay_slot{position:absolute;left:0;right:0;top:0;bottom:0;z-index:1;display:flex;justify-content:center}.tk-avatar{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;font-size:14px}.tk-avatar.tk-avatar--square{border-radius:4px}.tk-avatar.tk-avatar--circle{border-radius:100%}.tk-avatar .tk-avatar_img,.tk-avatar .tk-avatar_image{width:100%;height:100%}.mic-container[data-v-ea062939]{position:relative;width:24px;height:24px}.mic-container .mic-level-container[data-v-ea062939]{position:absolute;left:6px;width:8px;height:14px;display:flex;flex-wrap:wrap;border-radius:4px;overflow:hidden;flex-direction:column-reverse;justify-content:space-between}.mic-container .mic-level-container .mic-level[data-v-ea062939]{width:100%;background-color:#27c39f;transition:height .2s}.overlay-stream-container.mobile .overlay-stream-content-container[data-v-a2512d7c]{width:100%;top:26%;position:absolute;display:flex;justify-content:center;flex-direction:column}.overlay-stream-container.mobile .overlay-stream-content-container .overlay-stream-content[data-v-a2512d7c]{display:flex;flex-direction:column;align-items:center}.overlay-stream-container.mobile .overlay-stream-content-container .overlay-stream-content .overlay-stream-avatar[data-v-a2512d7c]{margin-bottom:12px}.overlay-stream-container.mobile .overlay-stream-content-container .overlay-stream-content .overlay-stream-info[data-v-a2512d7c]{display:flex;align-items:center}.overlay-stream-container.mobile .overlay-stream-content-container .overlay-stream-content .overlay-stream-tip[data-v-a2512d7c]{margin-top:12px;color:#fff}.overlay-stream-container.pc .overlay-stream-content-container[data-v-a2512d7c]{display:flex;height:100%;align-items:center;justify-content:center}.overlay-stream-container.pc .overlay-stream-content-container .overlay-stream-content[data-v-a2512d7c]{display:flex;flex-direction:column;align-items:center}.overlay-stream-container.pc .overlay-stream-content-container .overlay-stream-content .overlay-stream-info[data-v-a2512d7c]{display:flex;align-items:center}.overlay-stream-container[data-v-a2512d7c]{position:absolute;display:flex;height:100%;width:100%;flex-direction:column;justify-content:center;align-items:center}.waiting-container[data-v-8dc3669f]{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1}.groupcall-info[data-v-8dc3669f]{display:flex;flex-direction:column;align-items:center;margin-top:24px;z-index:1;color:#fff;width:100%}.groupcall-info .avatar-group[data-v-8dc3669f]{display:flex;flex-wrap:wrap;margin-top:12px;align-items:center;justify-content:center;max-width:70%}.groupcall-info .avatar-group .avatar-item[data-v-8dc3669f]{width:10vw;height:10vw;margin-left:10px;margin-top:10px}.tk-toggle-window{height:100%;position:relative}.tk-toggle-window-item{height:100%;position:absolute}.tk-toggle-window-item.tk-toggle-window-item--big{width:100%;height:100%;z-index:0}.tk-toggle-window-item.mobile.tk-toggle-window-item--small{z-index:1;width:24.3%!important;height:19.7%!important;border-radius:5px;left:98%;top:8%;transform:translate(-100%);overflow:hidden}.tk-toggle-window-item.pc.tk-toggle-window-item--small{top:2%;left:2%;width:22%;height:21%;border-radius:12px;overflow:hidden;z-index:1}.stream-userInfo[data-v-73beaeef]{padding:2px 5px;display:flex;align-items:center;background-color:#000000a6;color:#fff}.stream-userInfo .nickname[data-v-73beaeef]{display:flex}.stream-icon[data-v-46cc5655]{width:30px;height:30px;background:rgba(34,38,46,.5019607843);border-radius:50%;display:flex;align-items:center;justify-content:center}.switch-camera[data-v-46cc5655]{margin:0 12px}.pusher-container[data-v-8cf5d7b3]{width:100%;height:100%;position:relative;background-color:#4c515a}.pusher-container .audio-stream-container[data-v-8cf5d7b3]{position:absolute;z-index:3;width:100%;height:100%}.pusher-container .stream-info-container[data-v-8cf5d7b3]{position:absolute;bottom:0;z-index:3;width:100%}.pusher-container .stream-info-container.mobile[data-v-8cf5d7b3]{margin-bottom:8px}.player-container[data-v-1bb63b56]{width:100%;height:100%;position:relative;background-color:#4c515a}.player-container .audio-stream-container[data-v-1bb63b56]{position:absolute;z-index:1;width:100%;height:100%}.player-container .stream-info-container[data-v-1bb63b56]{position:absolute;bottom:0;z-index:10;width:100%}.player-container .stream-info-container.mobile[data-v-1bb63b56]{margin-bottom:8px}.float-control-panel[data-v-89ef9c99]{width:168px;height:56px;background:white;z-index:13;display:flex;flex-wrap:nowrap;justify-content:center;border-radius:40px;box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px}.float-control-item-icon[data-v-89ef9c99]{display:flex;flex-direction:row;justify-content:center;align-items:center;width:56px;height:56px;position:relative}.float-control-item-icon-container[data-v-89ef9c99]{border-radius:40px;width:40px;height:40px;margin:.5rem;cursor:pointer;display:flex;flex-direction:row;justify-content:center;align-items:center}.float-control-item-icon-container[data-v-89ef9c99]:hover{background:rgba(218,218,218,.3)}.singlecall-video-float[data-v-9dbb05f9]{width:110px;height:196px;display:flex;z-index:99;flex-direction:column;align-items:center;background:#000;border-radius:12px;box-shadow:0 0 10px #35394166;overflow:hidden}.singlecall-video-float .singlecall-video-float-content[data-v-9dbb05f9]{width:100%;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center}.singlecall-video-float .float-window-tip-container[data-v-9dbb05f9]{position:absolute;bottom:8px}.singlecall-audio-float[data-v-9dbb05f9]{width:72px;height:72px;display:flex;z-index:99;flex-direction:column;align-items:center;background:#FFF;border-radius:12px;box-shadow:0 0 10px #35394166}.singlecall-audio-float .singlecall-audio-float-content[data-v-9dbb05f9]{width:100%;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center}.click-container[data-v-ea7a3e81]{position:absolute;width:100%;height:100%;z-index:2}.groupcall-video-float.float[data-v-ea7a3e81]{width:72px;height:90px;display:flex;z-index:99;flex-direction:column;align-items:center;border-radius:12px;background:#FFF;box-shadow:0 0 10px #35394166;box-sizing:border-box;overflow:hidden}.groupcall-video-float.float .stream-container[data-v-ea7a3e81]{position:relative;width:72px;height:70px}.groupcall-video-float.float .video[data-v-ea7a3e81]{width:72px;height:70px;position:absolute}.groupcall-video-float.float .audio[data-v-ea7a3e81]{position:absolute;width:100%;height:70px;padding-top:10px;background-color:#fff;display:flex;flex-direction:column;align-items:center}.groupcall-video-float.float .device-status[data-v-ea7a3e81]{width:100%;height:20px;background-color:#f9f6f4;display:flex;position:relative;justify-content:space-around}.groupcall-video-float.not-float[data-v-ea7a3e81]{width:100%;height:100%}.groupcall-video-float.not-float .stream-container[data-v-ea7a3e81],.groupcall-video-float.not-float .stream-container .video[data-v-ea7a3e81]{height:100%}.float-window-container.not-float[data-v-794f0a9b]{width:100%;height:100%}.float-window-container.float[data-v-794f0a9b]{position:absolute}.float-window-container.float.pc[data-v-794f0a9b]{top:50px;left:50%;transform:translate(-50%)}.float-window-container.float.mobile[data-v-794f0a9b]{top:150px;right:0}.singlecall-media-container[data-v-852a25f0]{width:100%;height:100%;position:absolute;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.singlecall-media-container.float[data-v-852a25f0]{position:relative}.singlecall-media-container.pc[data-v-852a25f0]{border-radius:12px;overflow:hidden}.roggle-btn[data-v-852a25f0]{position:absolute;left:100px;z-index:100;top:0}.tk-message{position:fixed;left:50%;transform:translate(-50%);padding:10px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:14px;z-index:9999;color:#000;border-color:#e9e9eb;background-color:#f4f4f5}.tk-message .tk-message_icon{margin-right:5px}.tk-message .tk-message_close{cursor:pointer;margin-left:5px}.tk-message--info{color:#909399;border-color:#e9e9eb;background-color:#f4f4f5}.tk-message--success{color:#67c23a;border-color:#e1f3d8;background-color:#f0f9eb}.tk-message--warning{color:#e6a23c;border-color:#faecd8;background-color:#fdf6ec}.tk-message--error{color:#f56c6c;border-color:#fde2e2;background-color:#fef0f0}.tk-grid-item{display:flex;justify-content:center}.tk-grid-item.h5{transition-property:width,height,left,top;transition-duration:.3s;transition-timing-function:ease-in}.tk-justify-start{justify-content:flex-start}.tk-justify-center{justify-content:center}.tk-justify-end{justify-content:flex-end}.tk-justify-space-between{justify-content:space-between}.tk-justify-space-around{justify-content:space-around}.tk-justify-space-evenly{justify-content:space-evenly}.tk-align-center{align-items:center}.tk-align-start{align-items:flex-start}.tk-align-end{align-items:flex-end}.tk-align-stretch{align-items:stretch}.tk-align-baseline{align-items:baseline}.tk-blur{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tk-round{border-radius:20px}.tk-circle{border-radius:100%}.tk-popover{position:relative}.tk-popover .tk-popover_content{display:inline-block;vertical-align:middle;min-width:120px;position:absolute;background:#FFFFFF;border-radius:4px;font-size:14px;box-shadow:0 0 12px #0000001f;overflow-wrap:break-word;box-sizing:border-box;text-align:center}.tk-popover .tk-popover_arrow{position:absolute;transform:translate(-50%);width:0;height:0}.tk-popover .tk-popover_trigger{display:inline-block;position:relative;vertical-align:middle}.device-selector-container[data-v-31eef133]{width:180px;display:flex;flex-direction:column;align-items:center;padding:6px;font-weight:500}.device-selector-container .device-item[data-v-31eef133]{overflow:hidden;padding:5px 3px;text-align:left;line-height:16px;cursor:pointer}.device-selector-container .device-item[data-v-31eef133]:hover{border-radius:5px;background:rgba(255,255,255,.3215686275)}.device-selector-container .device-item.select[data-v-31eef133]{background-color:#0f101433;border-radius:3px}.device-selector-container .control-item[data-v-31eef133]{width:100%;height:1px;background-color:#fff3}.scroll-container[data-v-31eef133]{width:100%;overflow:hidden}.scroll-container .scroll-content[data-v-31eef133]{max-height:60px;margin-right:-26px;overflow:hidden auto;padding-right:20px}.btn-content[data-v-84cd42ba],.btn-content[data-v-d2aaa623],.btn-content[data-v-884ec28b],.btn-content[data-v-e78303e9],.btn-content[data-v-1a266441],.btn-content[data-v-001b7a7b],.btn-content[data-v-5a074e02],.btn-content[data-v-1d790d2d],.btn-content[data-v-f7839a20]{display:flex;flex-direction:column;align-items:center}.button-panel-container[data-v-6582c17d]{position:absolute;z-index:1}.button-panel-container.pc[data-v-6582c17d]{width:60%;height:63px;margin:0 auto;bottom:6%;left:50%;z-index:2;transform:translate(-50%)}.button-panel-container.mobile[data-v-6582c17d]{display:flex;justify-content:center;height:27%;bottom:0;width:100%}.button-panel-container.mobile.h5[data-v-6582c17d]{transition-property:width,height,left,top;transition-duration:.3s;transition-timing-function:ease-in}.button-panel-container.mobile.groupCall.showBackGround[data-v-6582c17d]{background-color:#4f586b}.button-panel-container.mobile .button-group[data-v-6582c17d]{position:absolute;width:72%;top:2vh;height:80%}.button-panel-container.mobile.close[data-v-6582c17d]{height:14%;align-items:center}.button-panel-container.mobile.close .button-group[data-v-6582c17d]{position:absolute;width:72%;right:6.2vw;height:40px;top:auto;bottom:auto}.button-panel-container .button-group[data-v-6582c17d]{position:relative;height:100%}.button-panel-container .toggle-button-container[data-v-6582c17d]{display:flex;align-items:center;position:absolute;left:8.2vw}.button-panel-container .toggle-button-container.h5[data-v-6582c17d]{transition-property:width,height,left,top;transition-duration:.3s;transition-timing-function:ease-in}.button-panel-container.open .toggle-button-container[data-v-6582c17d]{bottom:6vh}.singlecall-container[data-v-0fa5f69a]{height:100%}.stream-loading-container[data-v-56b8bc56]{width:100%;height:100%;position:absolute;z-index:1;display:flex;align-items:center;justify-content:center}.groupcall-media-container[data-v-aee2b0d9]{width:100%;height:100%;position:absolute;z-index:1}.groupcall-media-container.pc[data-v-aee2b0d9]{border-radius:12px;overflow:hidden}.groupcall-media-container.pc.two-layout[data-v-aee2b0d9]{margin-top:20%}.groupcall-media-container.pc .tk-toggle-window-item--small[data-v-aee2b0d9]{top:2%;left:2%;width:22%;height:21%;border-radius:12px;overflow:hidden}.groupcall-media-container.mobile[data-v-aee2b0d9]{margin-top:5.5vh}.groupcall-media-container.mobile.float[data-v-aee2b0d9]{margin-top:0}.groupcall-media-container.mobile.two-layout[data-v-aee2b0d9]{margin-top:15vh}.groupcall-media-container.mobile.two-layout.float[data-v-aee2b0d9]{margin-top:0}.dialog[data-v-26735e82]{background:rgba(0,0,0,.3)}.dialog-main[data-v-26735e82]{background:#FFFFFF}.dialog-main-header[data-v-26735e82]{font-weight:500;color:#333}.dialog-main-title[data-v-26735e82]{font-family:PingFangSC-Medium;font-weight:500;color:#333}.dialog-main-back[data-v-26735e82]{background:none}.dialog-main-content[data-v-26735e82]{font-weight:400;color:#333}.btn[data-v-26735e82]{font-weight:400;color:#fff;letter-spacing:0}.btn-cancel[data-v-26735e82]{border:1px solid #dddddd;color:#666}.btn-default[data-v-26735e82]{background:#006EFF;border:1px solid #006EFF}.dialog[data-v-26735e82]{position:absolute;width:100%;height:100%;left:0;top:0;z-index:6;display:flex;justify-content:center;align-items:center}.dialog-main[data-v-26735e82]{min-width:368px;border-radius:10px;padding:20px 30px}.dialog-main-header[data-v-26735e82]{display:flex;justify-content:space-between;align-items:center;font-size:16px;line-height:30px}.dialog-main-title[data-v-26735e82]{font-size:16px;line-height:30px}.dialog-main-content[data-v-26735e82]{font-size:14px}.dialog-main-footer[data-v-26735e82]{display:flex;justify-content:flex-end}.btn[data-v-26735e82]{padding:8px 20px;margin:0 6px;border-radius:4px;border:none;font-size:14px;text-align:center;line-height:20px}.btn[data-v-26735e82]:disabled{opacity:.3}.btn[data-v-26735e82]:last-child{margin-right:0}.dialog-h5[data-v-26735e82]{height:100%;top:0;align-items:inherit}.dialog-h5 .dialog-main[data-v-26735e82]{border-radius:0;padding:0;display:flex;flex-direction:column;overflow:hidden;width:100%;min-height:80px;min-width:120px}.dialog-h5 .dialog-main-content[data-v-26735e82]{flex:1;min-width:0;min-height:0;text-align:center}.dialog-h5 .dialog-main-content-uniapp[data-v-26735e82]{padding:40px 0}.dialog-h5 .dialog-main-footer[data-v-26735e82]{border-top:1px solid #DDDDDD}.dialog-h5 .dialog-main-footer .btn[data-v-26735e82]{flex:1;margin:0;background:none;border-right:1px solid #DDDDDD}.dialog-h5 .dialog-main-footer .btn-default[data-v-26735e82]{color:#ff584c;border:none}.center[data-v-26735e82]{align-items:center;padding:20px;box-sizing:border-box}.icon[data-v-b989a330]{display:inline-flex;justify-content:center;align-items:center;margin:0}.main[data-v-cc0325fc]{background:#FFFFFF;border:1px solid #E0E0E0;box-shadow:0 -4px 12px #0000000f}.main .left[data-v-cc0325fc]{border-right:1px solid #E8E8E9}.main .transfer-header[data-v-cc0325fc]{font-weight:500;color:#000;letter-spacing:0}.main .transfer-header input[data-v-cc0325fc]{background:#FFFFFF;border:1px solid #DEE0E3;font-weight:500;color:#8f959e;letter-spacing:0}.main .transfer-list .transfer-text[data-v-cc0325fc]{font-weight:500;color:#8f959e;letter-spacing:0}.main .transfer-list-item .disabled[data-v-cc0325fc]{background:#eeeeee}.btn[data-v-cc0325fc]{background:#3370FF;border:0 solid #2F80ED;font-weight:400;color:#fff}.btn-cancel[data-v-cc0325fc]{background:#FFFFFF;border:1px solid #DDDDDD;color:#828282}.btn-no[data-v-cc0325fc]{background:#e8e8e9;border:1px solid #DDDDDD;font-weight:400;color:#fff}.transfer-h5-header[data-v-cc0325fc]{background:#FFFFFF}.transfer-h5-header .title[data-v-cc0325fc]{font-family:PingFangSC-Medium;font-weight:500;color:#000;letter-spacing:0}.main[data-v-cc0325fc]{box-sizing:border-box;width:541px;height:390px;display:flex;border-radius:8px;padding:20px 0}.main .right[data-v-cc0325fc]{padding:0 20px;flex:1}.main .right .transfer-list[data-v-cc0325fc]{padding-right:20px}.main .left[data-v-cc0325fc]{flex:1;overflow-y:hidden;display:flex;flex-direction:column}.main .left .transfer-header[data-v-cc0325fc]{padding:0 20px}.main .left .transfer-left-main[data-v-cc0325fc]{flex:1;overflow-y:auto;padding:0 13px}.main .right[data-v-cc0325fc]{display:flex;flex-direction:column;text-align:left}.main .right .transfer-right-footer[data-v-cc0325fc]{align-self:flex-end}.main .right .transfer-right-footer .btn-cancel[data-v-cc0325fc]{margin-right:12px}.main .right .transfer-list[data-v-cc0325fc]{overflow-y:auto}.main .transfer-header[data-v-cc0325fc]{font-size:14px;line-height:14px;padding-bottom:20px}.main .transfer-header input[data-v-cc0325fc]{box-sizing:border-box;width:100%;border-radius:30px;font-size:10px;line-height:14px;padding:9px 12px}.main .transfer-list[data-v-cc0325fc]{flex:1;display:flex;flex-direction:column}.main .transfer-list .transfer-text[data-v-cc0325fc]{font-size:10px;line-height:14px}.main .transfer-list-item[data-v-cc0325fc]{padding:6px 0;display:flex;align-items:center;font-size:14px;text-align:left}.main .transfer-list-item-content[data-v-cc0325fc]{flex:1;display:flex;align-items:center}.main .transfer-list-item .avatar[data-v-cc0325fc]{margin:0 5px 0 8px;border-radius:50%}.main .transfer-list-item .name[data-v-cc0325fc]{width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.avatar[data-v-cc0325fc]{width:36px;height:36px;border-radius:5px;font-size:12px;display:flex;justify-content:center;align-items:center}.btn[data-v-cc0325fc],.btn-no[data-v-cc0325fc]{padding:4px 28px;font-size:12px;line-height:24px;border-radius:4px}.space-between[data-v-cc0325fc]{justify-content:space-between}.select-all[data-v-cc0325fc]{padding-left:8px;font-size:14px}.more[data-v-cc0325fc]{display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:14px}.transfer-h5[data-v-cc0325fc]{width:100vw;height:100vh;display:flex;flex-direction:column}.transfer-h5-header[data-v-cc0325fc]{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:18px;padding:16px 18px}.transfer-h5-header .space[data-v-cc0325fc],.transfer-h5-header .icon[data-v-cc0325fc]{width:18px;height:18px}.transfer-h5 .main[data-v-cc0325fc]{flex-direction:column;width:auto;height:550px;border-radius:0;border:none;box-shadow:none;max-height:calc(100% - 50px);padding:0}.transfer-h5 .main .avatar[data-v-cc0325fc]{border-radius:5px}.transfer-h5 .main .left[data-v-cc0325fc]{padding:0;flex:1;border:none;display:flex;flex-direction:column}.transfer-h5 .main .left .transfer-header[data-v-cc0325fc]{position:sticky;top:0;padding:0 18px}.transfer-h5 .main .left .transfer-header input[data-v-cc0325fc]{border-radius:5px;font-size:14px}.transfer-h5 .main .left-uniapp-input[data-v-cc0325fc]{height:36px}.transfer-h5 .main .right[data-v-cc0325fc]{flex:0;flex-direction:row;align-items:center;box-shadow:inset 0 1px #eee;padding:8px 18px}.transfer-h5 .main .right .transfer-list[data-v-cc0325fc]{flex-direction:row;width:0}.transfer-h5 .main .right .transfer-list-item-content[data-v-cc0325fc]{flex:none}.transfer-h5 .main .right .transfer-right-footer[data-v-cc0325fc]{padding:6px 0;display:flex;align-items:center}.transfer-h5 .main .right .transfer-right-footer .btn[data-v-cc0325fc]{font-size:14px}ul[data-v-cc0325fc],ol[data-v-cc0325fc],li[data-v-cc0325fc]{margin:0;padding:0}.icon-unselected[data-v-cc0325fc]{width:18px;height:18px;background:#FFFFFF;border:1px solid #DDDDDD;border-radius:11px;box-sizing:border-box}.groupcall-container[data-v-5655d849]{height:100%}.card[data-v-9982fa76]{box-sizing:border-box;border-radius:4px;border:1px solid #EBEEF5;background-color:#fff;overflow:hidden;color:#303133;transition:.3s;box-shadow:0 2px 12px #0000001a}.card .card-body[data-v-9982fa76]{padding:20px}.card-wrapper[data-v-9982fa76]{display:flex;flex-direction:column;align-items:center;width:500px;position:relative}.card-wrapper .button[data-v-9982fa76]{box-sizing:border-box;background-color:#104ef5;color:#fff;font-size:12px;height:37px;border-radius:4px;padding:10px}.card-wrapper .image-wrapper[data-v-9982fa76]{box-sizing:border-box}.title[data-v-9982fa76]{padding:10px 0;font-size:16px;font-weight:500;line-height:22px}.desc[data-v-9982fa76]{font-size:12px;margin-bottom:10px}.button[data-v-9982fa76]{background-color:#104ef5;color:#fff;font-size:12px;height:37px;border-radius:4px;padding:10px}.allow[data-v-9982fa76]{font-size:12px;color:#666;padding:10px 0 20px}.image[data-v-9982fa76]{width:100%;border-radius:10px}.close[data-v-9982fa76]{position:absolute;z-index:999;display:flex;justify-content:center;align-items:center;font-size:20px;right:20px;cursor:pointer;width:20px;height:20px}.tips[data-v-cd63c32e]{width:100%;height:100%}.card[data-v-cd63c32e]{position:fixed;right:0;bottom:0;box-shadow:0 2px 12px #0000001a;border-radius:4px;border:1px solid #EBEEF5;background-color:#fff;overflow:hidden;color:#303133;transition:.3s}.tag[data-v-cd63c32e]{position:fixed;left:0;top:0;width:320px;text-align:left}.toast-container[data-v-27fc22c5]{position:fixed;display:flex;align-items:center;z-index:1002;justify-content:space-between;left:50%;transform:translate(-50%);padding:15px 15px 15px 20px;background-color:#000;color:#fff;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid}.toast-container .toast-content[data-v-27fc22c5]{margin-right:16px}.toast-container .toast-close-icon[data-v-27fc22c5]{width:16px;line-height:16px;cursor:pointer}.toast-container .toast-close-icon[data-v-27fc22c5]:before{font-style:normal;content:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiPjxwYXRoIGQ9Ik01MTIgNDY2Ljc1MiA4Ni42NTYgNDEuMzQ0YTMyIDMyIDAgMCAwLTQ1LjMxMiA0NS4zMTJMNDY2Ljc1MiA1MTIgNDEuMzQ0IDkzNy4zNDRhMzIgMzIgMCAwIDAgNDUuMzEyIDQ1LjMxMkw1MTIgNTU3LjI0OGw0MjUuMzQ0IDQyNS40MDhhMzIgMzIgMCAwIDAgNDUuMzEyLTQ1LjMxMkw1NTcuMjQ4IDUxMiA5ODIuNjU2IDg2LjY1NmEzMiAzMiAwIDAgMC00NS4zMTItNDUuMzEyTDUxMiA0NjYuNzUyeiIgZmlsbD0iIzcwNzA3MCIvPjwvc3ZnPg==)}.info[data-v-27fc22c5]{border-color:#ebeef5;color:#909399;background-color:#edf2fc}.success[data-v-27fc22c5]{color:#67c23a;background-color:#f0f9eb;border-color:#e1f3d8}.waring[data-v-27fc22c5]{color:#e6a23c;background-color:#fdf6ec;border-color:#faecd8}.error[data-v-27fc22c5]{color:#f56c6c;background-color:#fef0f0;border-color:#fde2e2}.slide-up-enter-active[data-v-27fc22c5],.slide-up-leave-active[data-v-27fc22c5]{transition:all .5s ease-out}.slide-up-enter-from[data-v-27fc22c5]{opacity:0;transform:translate(-50%,20px)}.slide-up-leave-to[data-v-27fc22c5]{opacity:0;transform:translate(-50%,-20px)}.fade-enter-from[data-v-27fc22c5],.fade-leave-to[data-v-27fc22c5]{opacity:0;transform:translate(-50%,-100%)}.subtitle-content[data-v-9ba522cb]{position:relative;padding:10px 12px;color:#fff;background-color:#000000b8;opacity:.72;border-radius:8px;overflow-y:auto;overflow-x:hidden;font-size:12px;scrollbar-width:none}.subtitle-content[data-v-9ba522cb]::-webkit-scrollbar{width:0;background:transparent}.subtitle-content[data-v-9ba522cb]:not(.subtitle-content--h5){width:640px;min-width:640px;height:180px;max-height:180px}.subtitle-content:not(.subtitle-content--h5) .subtitle-content__settings-btn[data-v-9ba522cb]{position:fixed;top:8px;right:8px;cursor:pointer;z-index:999}.subtitle-content--h5[data-v-9ba522cb]{position:relative;width:350px;min-width:350px;height:116px;max-height:116px}.subtitle-content--h5 .subtitle-content__settings-btn[data-v-9ba522cb]{position:fixed;top:50%;right:4px;cursor:pointer;z-index:999;transform:translateY(-50%)}.sender-name[data-v-9ba522cb]{font-family:PingFang SC;font-weight:400;font-style:Regular;font-size:12px;leading-trim:NONE;line-height:16px;letter-spacing:0px;color:#ffffffbf}.custom-select-wrapper[data-v-8cbeab17]{position:relative;width:100%}.custom-select[data-v-8cbeab17]{height:36px;padding:0 32px 0 12px;border:1px solid #DCDFE6;border-radius:4px;font-size:14px;color:#606266;background:#FFFFFF;cursor:pointer;display:flex;align-items:center;transition:all .3s}.custom-select[data-v-8cbeab17]:hover:not(.is-disabled){border-color:#c0c4cc}.custom-select.is-open[data-v-8cbeab17]{border-color:#409eff;box-shadow:0 0 0 2px #409eff33}.custom-select.is-disabled[data-v-8cbeab17]{background:#F5F7FA;color:#c0c4cc;cursor:not-allowed;border-color:#e4e7ed}.select-text[data-v-8cbeab17]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-arrow[data-v-8cbeab17]{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;transition:transform .3s}.select-arrow.is-open[data-v-8cbeab17]{transform:translateY(-50%) rotate(180deg)}.custom-options[data-v-8cbeab17]{position:absolute;top:100%;left:0;right:0;background:#FFFFFF;border:1px solid #DCDFE6;border-radius:4px;box-shadow:0 2px 12px #0000001a;z-index:1000;margin-top:4px;overflow:hidden;max-height:200px;overflow-y:auto}.custom-option[data-v-8cbeab17]{padding:8px 12px;font-size:14px;color:#606266;cursor:pointer;transition:all .2s}.custom-option[data-v-8cbeab17]:hover{background:#F5F7FA;color:#409eff}.custom-option.is-selected[data-v-8cbeab17]{color:#409eff;font-weight:500}.custom-option.is-selected[data-v-8cbeab17]:hover{background:#F5F7FA;color:#409eff}.custom-options[data-v-8cbeab17]::-webkit-scrollbar{width:6px}.custom-options[data-v-8cbeab17]::-webkit-scrollbar-track{background:#F1F1F1;border-radius:3px}.custom-options[data-v-8cbeab17]::-webkit-scrollbar-thumb{background:#C0C4CC;border-radius:3px}.custom-options[data-v-8cbeab17]::-webkit-scrollbar-thumb:hover{background:#A8ABB2}.subtitle-settings-overlay[data-v-b03aa36f]{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;z-index:1000;font-family:PingFang SC;box-shadow:0 2px 6px 0 var(--Black-8)}.subtitle-settings-modal[data-v-b03aa36f]{background:white;border-radius:12px;width:480px;overflow:hidden}.modal-header[data-v-b03aa36f]{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 10px}.modal-title[data-v-b03aa36f]{font-size:16px;font-weight:600;color:#000000e5}.close-btn[data-v-b03aa36f]{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.close-btn[data-v-b03aa36f]:hover{background-color:#f5f5f5}.modal-content[data-v-b03aa36f]{padding:24px}.setting-item[data-v-b03aa36f]{margin-bottom:24px}.setting-item[data-v-b03aa36f]:last-child{margin-bottom:0}.setting-label[data-v-b03aa36f]{display:block;font-size:14px;font-weight:400;color:#4f586b;margin-bottom:8px}.modal-footer[data-v-b03aa36f]{display:flex;justify-content:flex-end;gap:20px;padding:16px 24px 24px}.btn[data-v-b03aa36f]{width:72px;height:32px;font-size:14px;font-weight:500;cursor:pointer;border-radius:26px;transition:all .2s;border:1px solid transparent}.btn.btn-cancel[data-v-b03aa36f]{color:#1c66e5;border-color:#1c66e5;background-color:#fff}.btn.btn-confirm[data-v-b03aa36f]{background:#1C66E5;color:#fff}.subtitle-settings-overlay[data-v-50f476c3]{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background-color:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;font-family:PingFang SC}.subtitle-settings-modal[data-v-50f476c3]{background-color:#fff;border-radius:12px;width:90%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideIn-50f476c3 .3s ease-out}@keyframes modalSlideIn-50f476c3{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-50f476c3]{text-align:center;padding:20px 20px 16px}.modal-title[data-v-50f476c3]{font-size:18px;font-weight:500;color:#333;margin:0}.modal-content[data-v-50f476c3]{flex:1;overflow-y:auto;padding:16px 0}.modal-footer[data-v-50f476c3]{display:flex;gap:12px;padding:16px 20px 20px}.btn[data-v-50f476c3]{flex:1;width:200px;height:44px;border-radius:20px;border:none;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.btn.btn-cancel[data-v-50f476c3]{color:#1c66e5;border:1px solid #1C66E5;background-color:#fff}.btn.btn-confirm[data-v-50f476c3]{background-color:#1677ff;color:#fff}.setting-group[data-v-50f476c3]{margin-bottom:12px}.setting-group[data-v-50f476c3]:last-child{margin-bottom:0}.group-title[data-v-50f476c3]{font-size:13px;color:#666;padding:0 20px 8px;margin-bottom:2px}.group-content[data-v-50f476c3]{background:white;border-radius:8px;margin:0 16px;overflow:hidden;border:1px solid #f0f0f0}.setting-section[data-v-50f476c3]{border-bottom:1px solid #f0f0f0}.setting-section[data-v-50f476c3]:last-child{border-bottom:none}.section-header[data-v-50f476c3]{display:flex;align-items:center;justify-content:space-between;padding:16px;cursor:pointer;transition:background-color .2s}.section-header[data-v-50f476c3]:active{background-color:#f8f8f8}.section-title[data-v-50f476c3]{font-size:16px;color:#333;font-weight:400}.section-value[data-v-50f476c3]{display:flex;align-items:center;font-size:14px;color:#666;gap:4px}.arrow-icon[data-v-50f476c3]{flex-shrink:0}.toggle-switch[data-v-50f476c3]{width:44px;height:24px;background-color:#ccc;border-radius:12px;position:relative;cursor:pointer;transition:background-color .3s}.toggle-switch.active[data-v-50f476c3]{background-color:#1677ff}.toggle-slider[data-v-50f476c3]{width:20px;height:20px;background-color:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .3s;box-shadow:0 2px 4px #0003}.toggle-switch.active .toggle-slider[data-v-50f476c3]{transform:translate(20px)}.language-selector-overlay[data-v-50f476c3]{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;background-color:#00000080;z-index:1100;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.language-selector[data-v-50f476c3]{max-height:70vh;display:flex;flex-direction:column;background-color:#fff;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom);transform:translateY(0);animation:slideUp-50f476c3 .3s ease-out}@keyframes slideUp-50f476c3{0%{transform:translateY(100%)}to{transform:translateY(0)}}.selector-header[data-v-50f476c3]{text-align:center;padding:16px 16px 12px;border-bottom:1px solid #e5e5e5;background:white;border-radius:16px 16px 0 0}.selector-title[data-v-50f476c3]{font-size:12px;font-weight:400;color:#0006;margin:0}.language-list[data-v-50f476c3]{flex:1;overflow-y:auto;padding:0 16px 16px;max-height:50vh}.language-item[data-v-50f476c3]{font-family:PingFang SC;font-weight:400;font-style:Regular;font-size:16px;leading-trim:NONE;line-height:100%;letter-spacing:0px;text-align:center;text-transform:capitalize;display:flex;align-items:center;justify-content:center;padding:16px 0;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s}.language-item[data-v-50f476c3]:active{background-color:#f8f8f8}.language-item.selected[data-v-50f476c3]{color:#1677ff}.language-item span[data-v-50f476c3]{font-size:16px;color:inherit}.language-item[data-v-50f476c3]:last-child{border-bottom:none}.check-icon[data-v-50f476c3]{flex-shrink:0}.ai-subtitle-pc[data-v-02339ead]{position:absolute;z-index:1;left:50%;transform:translate(-50%);width:auto;height:auto;bottom:110px}.ai-subtitle-pc--expanded[data-v-02339ead]{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;background-color:transparent;transform:none!important;z-index:1000}.ai-subtitle-pc:not(.ai-subtitle-pc--expanded) .ai-subtitle-pc__content[data-v-02339ead]{position:relative;width:auto;height:auto}.ai-subtitle-pc--expanded .ai-subtitle-pc__content[data-v-02339ead]{display:none}.ai-subtitle-pc--expanded .ai-subtitle-pc__settings[data-v-02339ead]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001}.ai-subtitle-pc:not(.ai-subtitle-pc--expanded) .ai-subtitle-pc__settings[data-v-02339ead]{display:none}.ai-subtitle-h5[data-v-02339ead]{position:absolute;z-index:100;left:50%;transform:translate(-50%);width:auto;height:auto;bottom:26%}.ai-subtitle-h5--expanded[data-v-02339ead]{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;background-color:transparent;transform:none!important;z-index:1000}.ai-subtitle-h5:not(.ai-subtitle-h5--expanded) .ai-subtitle-h5__content[data-v-02339ead]{position:relative;width:auto;height:auto}.ai-subtitle-h5--expanded .ai-subtitle-h5__content[data-v-02339ead]{display:none}.ai-subtitle-h5--expanded .ai-subtitle-h5__settings[data-v-02339ead]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001}.ai-subtitle-h5:not(.ai-subtitle-h5--expanded) .ai-subtitle-h5__settings[data-v-02339ead]{display:none}.uikit-modal-mask[data-v-1d6740ac]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.6);z-index:9999;display:flex;align-items:center;justify-content:center}.uikit-modal-default[data-v-1d6740ac]{width:480px;max-width:calc(100% - 40px);box-shadow:0 2px 12px #00000026}.uikit-modal-container[data-v-1d6740ac]{box-sizing:border-box;background:#fff;position:relative;display:flex;flex-direction:column;overflow:hidden;padding:24px;border-radius:20px}.uikit-modal-header[data-v-1d6740ac]{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px}.uikit-modal-header .uikit-modal-type-icon[data-v-1d6740ac]{margin-right:6px}.uikit-modal-title[data-v-1d6740ac]{font-size:16px;line-height:24px;font-weight:600;color:#333;flex:1}.uikit-modal-body[data-v-1d6740ac]{flex:1;display:block;font-size:14px;font-weight:400;line-height:22px;color:#333;word-break:break-word}.uikit-modal-body[data-v-1d6740ac] .uikit-modal-link{color:#006eff;text-decoration:none;transition:all .2s ease;cursor:pointer;border-bottom:1px solid transparent;margin:0 .2em}.uikit-modal-footer[data-v-1d6740ac]{padding-top:20px;box-sizing:border-box;display:flex;justify-content:flex-end;gap:12px}.uikit-modal-btn[data-v-1d6740ac]{min-width:88px;height:32px;padding:0 16px;border-radius:20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;outline:none;white-space:nowrap}.uikit-modal-btn[data-v-1d6740ac]:active{transform:scale(.98)}.uikit-modal-btn-cancel[data-v-1d6740ac]{background:#F0F2F9;color:#333}.uikit-modal-btn-cancel[data-v-1d6740ac]:hover{background:#e5e7ed}.uikit-modal-btn-confirm[data-v-1d6740ac]{background:#1c66e5;color:#fff}.uikit-modal-btn-confirm[data-v-1d6740ac]:hover{background:#1557cc}.uikit-modal-header[data-v-1d6740ac]:not(:has(:not(:empty))),.uikit-modal-body[data-v-1d6740ac]:not(:has(:not(:empty))),.uikit-modal-footer[data-v-1d6740ac]:not(:has(:not(:empty))){padding:0}.uikit-modal-container-mobile[data-v-1d6740ac]{border-radius:12px;max-width:calc(100% - 32px);padding:0}.uikit-modal-container-mobile .uikit-modal-header[data-v-1d6740ac]{padding:20px 20px 16px;justify-content:flex-start}.uikit-modal-container-mobile .uikit-modal-body[data-v-1d6740ac]{padding:0 20px 20px;justify-content:flex-start}.uikit-modal-container-mobile .uikit-modal-footer[data-v-1d6740ac]{padding:0;border-top:.5px solid #e5e5e5;gap:0}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn[data-v-1d6740ac]{flex:1;border-radius:0;height:56px;min-width:auto;background:#fff;font-size:17px}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn[data-v-1d6740ac]:active{transform:none;background:#f5f5f5}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn[data-v-1d6740ac]:hover{background:#fff}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn-cancel[data-v-1d6740ac]{color:#666}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn-cancel[data-v-1d6740ac]:first-child:last-child{border-radius:0 0 12px 12px}.uikit-modal-container-mobile .uikit-modal-footer .uikit-modal-btn-confirm[data-v-1d6740ac]{color:#1c66e5;border-left:.5px solid #e5e5e5;font-weight:600}.TUICallKit-mobile,.TUICallKit-mobile .singCall{width:100%;height:100%}.transition-animation{transform:translateY(-100%);animation:slideInDown .5s ease forwards}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.TUICallKit-desktop{margin:0 auto;position:relative;border-radius:inherit;width:100%;height:100%;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden;z-index:12;border-radius:16px}.TUICallKit-desktop .singCall{width:100%;height:100%}.mobile-audio{background-color:#fff}.miniMized{width:168px!important;height:56px!important;overflow:visible!important}.miniMized-mobile-audio{width:72px;height:72px;position:fixed;top:40px;right:40px}.miniMized-mobile-video{width:40%;height:30%;position:fixed;top:40px;right:40px}.banner-pc{position:relative;cursor:pointer}.banner-pc .top{height:24px;padding-right:10px;border-radius:4px;background:#F4F5F9;display:inline-flex;align-items:center}.banner-pc .top .call-icon{margin:4px 4px 4px 8px}.banner-pc .top .text{font-weight:400;font-size:12px;line-height:16px;color:#666}.banner-pc .content{width:220px;margin-top:8px;padding:10px 18px 6px;box-shadow:0 0 24px #161e2733;background-color:#fff;border-radius:10px;position:absolute;z-index:10;display:flex;display:-webkit-flex;flex-direction:column;align-items:center}.banner-pc .content .content-arrows{width:12px;height:12px;border-radius:2px;background-color:#fff;transform:rotate(45deg);position:absolute;top:-5px;left:80px}.banner-pc .content .avatar-box{display:flex;justify-content:center;flex-wrap:wrap}.banner-pc .content .avatar{margin:6px;display:flex;border-radius:4px}.banner-pc .content .btn{margin:10px 0;width:97px;height:30px;background:#F2F5FC;border-radius:4px;display:flex;justify-content:center;align-items:center;font-size:12px;color:#1c66e5;cursor:pointer}.banner-h5{padding:0 16px;position:relative}.banner-h5 .top{height:36px;background:#FFFFFF;border-radius:4px;display:flex;display:-webkit-flex;justify-content:space-between;align-items:center}.banner-h5 .top .left{display:flex;align-items:center}.banner-h5 .top .left .text{font-weight:400;font-size:12px;color:#666}.banner-h5 .content-box{box-sizing:border-box;width:100%;padding:0 16px 10px;background:#FFFFFF;box-shadow:0 3px 3px 1px #b4b4b440;border-radius:0 0 8px 8px;position:absolute;left:0;z-index:10}.banner-h5 .content-box .content{background:#EEF0F2;border-radius:6px}.banner-h5 .content-box .content .avatar-box{padding:30px 6px;border-bottom:1px solid rgba(112,112,112,.1058823529);display:flex;display:-webkit-flex;justify-content:center;flex-wrap:wrap}.banner-h5 .content-box .content .btn{padding:10px;font-weight:600;font-size:14px;text-align:center;color:#333;cursor:pointer}")),document.head.appendChild(t)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();var bA=(t=>(t.CALL="call",t.CUSTOM="custom",t))(bA||{}),Pr=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.AUDIO=1]="AUDIO",t[t.VIDEO=2]="VIDEO",t))(Pr||{}),Ts=(t=>(t.UNKNOWN="unknown",t.CALLEE="callee",t.CALLER="caller",t))(Ts||{}),Ao=(t=>(t.IDLE="idle",t.CALLING="calling",t.CONNECTED="connected",t))(Ao||{}),tW=(t=>(t.CONTAIN="contain",t.COVER="cover",t.FILL="fill",t))(tW||{}),iW=(t=>(t.RESOLUTION_480P="480p",t.RESOLUTION_720P="720p",t.RESOLUTION_1080P="1080p",t))(iW||{}),o7=(t=>(t.EN="en",t["ZH-CN"]="zh-cn",t.JA_JP="ja_JP",t))(o7||{});const TI={IDLE:"idle",BE_INVITED:"be-invited",DIALING_C2C:"dialing-c2c",DIALING_GROUP:"dialing-group",CALLING_C2C_AUDIO:"calling-c2c-audio",CALLING_C2C_VIDEO:"calling-c2c-video",CALLING_GROUP_AUDIO:"calling-group-audio",CALLING_GROUP_VIDEO:"calling-group-video"},UEA={unknown:0,audio:1,video:2};var _I=(t=>(t.MICROPHONE="microphone",t.CAMERA="camera",t.SPEAKER="speaker",t))(_I||{}),zm=(t=>(t[t.FRONT=0]="FRONT",t[t.BACK=1]="BACK",t))(zm||{}),gD=(t=>(t.Camera="camera",t.Microphone="microphone",t.SwitchCamera="switchCamera",t.InviteUser="inviteUser",t))(gD||{}),Bk=(t=>(t.Open="open",t.Close="close",t))(Bk||{}),td=(t=>(t.LOCAL="local",t.REMOTE="remote",t))(td||{}),$2=(t=>(t.LocalInLargeView="local",t.RemoteInLargeView="remote",t))($2||{}),aw=(t=>(t[t.INVITE=1]="INVITE",t[t.CANCEL_INVITE=2]="CANCEL_INVITE",t[t.ACCEPT_INVITE=3]="ACCEPT_INVITE",t[t.REJECT_INVITE=4]="REJECT_INVITE",t[t.INVITE_TIMEOUT=5]="INVITE_TIMEOUT",t))(aw||{});const C8={SWITCH_TO_AUDIO_CALL_FAILED:60001,SWITCH_TO_VIDEO_CALL_FAILED:60002,MICROPHONE_UNAVAILABLE:60003,CAMERA_UNAVAILABLE:60004,BAN_DEVICE:60005,NOT_SUPPORTED_WEBRTC:60006,ERROR_BLACKLIST:20007},B8={SWITCH_TO_AUDIO_CALL_FAILED:"switchToAudioCall-call-failed",SWITCH_TO_VIDEO_CALL_FAILED:"switchToVideoCall-call-failed",MICROPHONE_UNAVAILABLE:"microphone-unavailable",CAMERA_UNAVAILABLE:"camera-unavailable",BAN_DEVICE:"ban-device",NOT_SUPPORTED_WEBRTC:"not-supported-webrtc",ERROR_BLACKLIST:"blacklist-user-tips"};var r7=(t=>(t[t.NORMAL=0]="NORMAL",t[t.RELEASE=1]="RELEASE",t[t.WARNING=2]="WARNING",t[t.ERROR=3]="ERROR",t[t.NONE=4]="NONE",t))(r7||{});const M2={CALL_STATUS:"callStatus",CALL_ROLE:"callRole",CALL_MEDIA_TYPE:"callMediaType",LOCAL_USER_INFO:"localUserInfo",LOCAL_USER_INFO_EXCLUDE_VOLUMN:"localUserInfoExcludeVolume",REMOTE_USER_INFO_LIST:"remoteUserInfoList",REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST:"remoteUserInfoExcludeVolumeList",CALLER_USER_INFO:"callerUserInfo",IS_GROUP:"isGroup",CALL_DURATION:"callDuration",CALL_TIPS:"callTips",TOAST_INFO:"toastInfo",IS_MINIMIZED:"isMinimized",ENABLE_FLOAT_WINDOW:"enableFloatWindow",BIG_SCREEN_USER_ID:"bigScreenUserId",LANGUAGE:"language",IS_CLICKABLE:"isClickable",DISPLAY_MODE:"displayMode",VIDEO_RESOLUTION:"videoResolution",PUSHER:"pusher",PLAYER:"player",IS_EAR_PHONE:"isEarPhone",IS_MUTE_SPEAKER:"isMuteSpeaker",SHOW_PERMISSION_TIP:"SHOW_PERMISSION_TIP",NETWORK_STATUS:"NetWorkStatus",CALL_ID:"callID",GROUP_ID:"groupID",ROOM_ID:"roomID",ROOM_ID_TYPE:"roomIdType",SHOW_SELECT_USER:"showSelectUser",IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:"isShowEnableVirtualBackground",ENABLE_VIRTUAL_BACKGROUND:"enableVirtualBackground",GROUP_CALL_MEMBERS:"groupCallMembers",PUSHER_ID:"pusherId",IS_FORCE_USE_V2_API:"isForceUseV2API",MODAL_ERROR:"modalError",TRANSCRIBER_ROBOT_ID:"transcriberRobotId",REALTIME_MESSAGE_LIST:"realtimeMessageList",IS_AI_TRANSCRIBER_ENABLED:"isAITranscriberEnabled",IS_AI_TRANSCRIBER_RUNNING:"isAITranscriberRunning"},OEA={INNER_ATTR_KIT_INFO:"inner_attr_kit_info"},xEA={INITIAL_PUSHER:"initialPusher",NEW_PUSHER:"newPusher"},aA={PREFIX:"【CallService】",AUDIO:"audio",VIDEO:"video",LOCAL_VIDEO:"localVideo",ERROR:"error",TIMEOUT:"timeout",RAF:"raf",INTERVAL:"interval",DEFAULT:"default",BOOLEAN:"boolean",STRING:"string",NUMBER:"number",OBJECT:"object",ARRAY:"array",FUNCTION:"function",UNDEFINED:"undefined",UNKNOWN:"unknown",ALL:"all",MYSELF:"myself",DEVICE_LIST:"deviceList",CAMERA_POSITION:"cameraPosition",CUSTOM_UI_CONFIG:"customUIConfig",TRANSLATE:"translate",...xEA,...M2,...OEA},YEA="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",PEA="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",JEA=3,HEA=4;var Vj=(t=>(t.MAC="mac",t.WIN="win",t))(Vj||{}),oW=(t=>(t[t.TUI_CALL_KIT=14]="TUI_CALL_KIT",t[t.TIM_CALL_KIT=15]="TIM_CALL_KIT",t))(oW||{}),qj=(t=>(t[t.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",t[t.STRING_ROOM_ID=2]="STRING_ROOM_ID",t))(qj||{});async function VEA(t){if(!t)return!1;try{const i=await new Promise((r,s)=>{const g=new XMLHttpRequest;g.open("HEAD",t,!0),g.onload=()=>r(g),g.onerror=()=>s(g),g.send()});return i.status===200&&i.getResponseHeader("Content-Type")==="audio/mpeg"}catch(i){return console.warn(i),!1}}function AY(t){if(typeof t!="object"||t===null)return t;let i=Array.isArray(t)?[]:{};for(let r in t)t.hasOwnProperty(r)&&(i[r]=AY(t[r]));return i}const qEA={hangup:"挂断",reject:"拒绝",accept:"接受",camera:"摄像头",microphone:"麦克风",speaker:"扬声器","open camera":"打开摄像头","close camera":"关闭摄像头","open microphone":"打开麦克风","close microphone":"关闭麦克风","video-to-audio":"转语音通话","virtual-background":"模糊背景","other side reject call":"对方已拒绝","reject call":"{{ userList }} 拒绝通话",cancel:"取消通话","other side line busy":"对方忙线","in busy":"{{ userList }} 正在忙","call timeout":"呼叫超时","end call":"{{ userList }} 结束通话","caller calling message":"等待对方接受邀请","callee calling video message":"邀请你视频通话","callee calling audio message":"邀请你语音通话","no microphone access":"没有麦克风权限","no camera access":"没有摄像头权限","invite member":"邀请成员","Invited group call":"邀请你加入多人通话","Those involved":"参与通话的有:",waiting:"等待接听...",me:"(我)","browser-authorization":"浏览器授权","mac-privacy":"系统偏好设置 -> 安全与隐私 -> 隐私","win-privacy":"设置 -> 隐私和安全性 -> 应用权限","mac-preferences":"打开系统偏好设置","win-preferences":"打开系统设置","Please enter userID":"请输入 userID","View more":"查看更多","people selected":"人已选中","Select all":"全选",Cancel:"取消",Done:"完成","exist group call":"当前群组中已经存在群组通话","camera enabled":"摄像头已开","camera disabled":"摄像头已关","microphone enabled":"麦克风已开","microphone disabled":"麦克风已关","speaker enabled":"扬声器已开","speaker disabled":"扬声器已关","open speaker":"开启扬声器","close speaker":"关闭扬声器","wait to be called":"等待接听",answered:"已接通","people in the call":"人参与通话","failed to obtain speakers":"无法获取扬声器","you have a new call":"您有一个新的通话","switch camera":"翻转",join:"加入","people on the call":"人正在通话","Supports a maximum of 9 people for simultaneous calls":"最多支持9人同时通话",you:"(你)","The network is poor during your current call":"当前通话你的网络不佳","The other user network is poor during the current call":"当前通话对方网络不佳","TUICallKit init is not complete":"TUICallKit 初始化登录未完成,需要在 init 完成后使用此 API","auto play failed":"音频播放被拦截,请点击恢复播放","click to resume":"恢复播放","Video call":"发起视频通话","Voice call":"发起语音通话","Call End":"通话结束","Switch voice call":"切换语音通话","Switch video call":"切换视频通话","Call duration":"通话时长","Call Cancel":"已取消","Other Side Cancel":"对方已取消",Decline:"已拒绝","Other Side Decline":"对方已拒绝","No answer":"超时无应答","Other Side No Answer":"对方无应答",Answered:"已接听","Other Side Line Busy":"对方忙线中","Line Busy":"忙线无应答",timeout:"{{ userList }} 超时","kick out":"被踢",call:"通话","video-call":"视频通话","audio-call":"音频通话",search:"搜索","search-result":"搜索结果","Wechat scan right QR code":"微信扫右二维码","Use-phone-and-computer":"用手机与电脑互打体验视频通话","Scan the QR code above":"扫描上方二维码","no-user":"未搜索到用户","member-not-added":"未添加成员","not-login":"未登录","login-status-expire":"登录状态已失效,请刷新网页重试","experience-multi-call":"体验多人通话请下载全功能demo:","not-support-multi-call":"多人通话接口未开放","input-phone-userID":"请输入手机号/用户ID",userID:"用户ID","already-enter":"已经进入当前通话","image-resolution":"分辨率","default-image-resolution":"默认分辨率","invited-person":"添加成员","be-rejected":"对方已拒绝,","be-no-response":"对方无应答,","be-line-busy":"对方忙线中,","be-canceled":"对方已取消","voice-call-end":"语音通话结束","video-call-end":"视频通话结束","method-call-failed":"同步操作失败","failed-to-obtain-permission":"权限获取失败","environment-detection-failed":"环境检测失败","switchToAudioCall-call-failed":"切语音调用失败","switchToVideoCall-call-failed":"切视频调用失败","microphone-unavailable":"没有可用的麦克风设备","camera-unavailable":"没有可用的摄像头设备","ban-device":"用户禁止使用设备","not-supported-webrtc":"当前环境不支持 WebRTC","blacklist-user-tips":"发起通话失败,被对方拉入黑名单,禁止发起!","is-already-calling":"TUICallKit 已在通话状态","need-init":"TUICallKit 发起通话前需保证 TUICallKitAPI.init() 方法执行成功","can't call yourself":"不能呼叫自己","accept-error":"接通失败","accept-device-error":"接通失败,通话设备获取失败","call-error":"发起通话失败","error.10001":"您的应用还未开通音视频通话(TUICallKit)能力,首次使用,您可以去<a href='https://cloud.tencent.com/document/product/647/104662'>开通服务</a>申请免费体验,或购买通话能力套餐包:<a href='https://console.cloud.tencent.com/trtc'>购买页面</a>","error.10002":"您暂不支持使用该能力,请前往<a href='https://buy.cloud.tencent.com/avc?addRavLicense=1&position=1600110000&ravLicenseType=1&regionId=1'>购买页</a>购买开通","error.10004":"摄像头/麦克风权限被拒绝,请检查浏览器设置,确保已允许使用您的摄像头和麦克风。如果您确认已授予权限,请前往<a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>音视频能力检测</a>检查您的设备和环境是否支持通话","error.10005":"未检测到麦克风设备。请确保您的设备已连接麦克风,并检查系统或浏览器设置中麦克风是否可用。","error.10006":"未检测到摄像头设备。请确保您的摄像头已连接,并检查系统或浏览器设置中摄像头是否可用。","error.10007":"当前浏览器环境不支持 WebRTC 功能。请前往<a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>音视频能力检测</a>检查您的设备和环境兼容性","error.10008":"TUICallEngine 尚未完成初始化或登录。请确保在调用此功能前,已成功执行 init 或 login 操作。解决方案:<a href='https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887'>查看文档</a>","error.10012":"检测到当前页面正处于 http 协议下,为确保生产环境用户顺畅接入和体验 TUICallEngine SDK 的全部功能,请使用 https 协议(或 localhost)访问音视频应用页面。详情请前往:<a href='https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3'>查看文档</a>","error.10013":"呼叫失败:您已被对方拉黑或您拉黑了对方","error.10014":"发起通话失败,用户 ID 无效,请确认该用户已注册。",error:"错误","ai-subtitle":"AI 字幕","ai-subtitle-settings":"AI 字幕设置","recognition-language":"识别语言","translation-language":"翻译语言","subtitle-display-settings":"字幕显示设置","subtitle-display-bilingual":"字幕显示双语","no-translation":"不翻译","show-bilingual":"显示双语","show-original-only":"仅显示原文",save:"保存","select-recognition-language":"请选择识别语言","select-translation-language":"请选择翻译语言",confirm:"确定","recognition-and-translation-settings":"识别与翻译设置"},KEA={hangup:"Hang up",reject:"Decline",accept:"Accept",camera:"Camera",microphone:"Microphone",speaker:"speaker","open camera":"Open Camera","close camera":"Close Camera","open microphone":"Open Microphone","close microphone":"Close Microphone","video-to-audio":"Switch to audio","virtual-background":"Blur Background","other side reject call":"other side reject call","reject call":"{{ userList }} Reject Call",cancel:"Cancel Call","other side line busy":"other side line busy","in busy":"{{ userList }} in busy","call timeout":"call timeout","no response from the other side":"no response from the other side","end call":"{{ userList }} end call","caller calling message":"Awaiting response","callee calling video message":"invites you to a video call","callee calling audio message":"invites you to a voice call","no microphone access":"no microphone access","no camera access":"no camera access","invite member":"Invite Member","Invited group call":"invites you to a group call",waiting:"Calling...",me:"(me)","browser-authorization":"Browser authorization","mac-privacy":"System Preferences -> Security and Privacy -> Privacy","win-privacy":"Setting -> Privacy and Security -> App permissions","mac-preferences":"Open System Preferences","win-preferences":"Open Setting","Please enter userID":"Please enter userID","View more":"View more","people selected":"people selected","Select all":"Select all",Cancel:"Cancel",Done:"Done","exist group call":"A group call already exists in the current group","camera enabled":"Camera On","camera disabled":"Camera Off","microphone enabled":"Unmuted","microphone disabled":"Muted","speaker enabled":"Speaker On","speaker disabled":"Speaker Off","open speaker":"Turn on speaker","close speaker":"Turn off speaker","wait to be called":"Waiting",answered:"Connected","people in the call":" other(s) in the call","failed to obtain speakers":"failed to obtain speakers","you have a new call":"You have a new call","switch camera":"Switch",join:"Join","people on the call":"people on the call","Supports a maximum of 9 people for simultaneous calls":"Supports a maximum of 9 people for simultaneous calls",you:"(you)","The network is poor during your current call":"The network is poor during your current call","The other user network is poor during the current call":"The other party's network is poor during the current call","TUICallKit init is not complete":"TUICallKit init is not complete. You need to use this API after the init API is finished.","auto play failed":"Audio playback was blocked","click to resume":"Resume playback","Video call":"Video call","Voice call":"Voice call","Call End":"Call End","Switch voice call":"Switch voice call","Switch video call":"Switch video call","Call duration":"Duration","Call Cancel":"Canceled","Other Side Cancel":"Call canceled by caller",Decline:"Declined","Other Side Decline":"Call declined by user","No answer":"Call not answered","Other Side No Answer":"Call wasn't answered",Answered:"Answered","Other Side Line Busy":"Line busy","Line Busy":"Line busy. Call not received.","Those involved":"Those involved in the call are",call:"call","video-call":"video call","audio-call":"audio call",search:"search","search-result":"search result","no-user":"user not found","member-not-added":"member not added","input-phone-userID":"phone number or userID","not-login":"not logged in","login-status-expire":"login status is invalid, please refresh the page and try again","experience-multi-call":"experience multi-person calls, please download the full-featured demo: ","not-support-multi-call":"multi-person call interface is not open",userID:"userID","already-enter":"entered the call","camera-opened":"Camera on","camera-closed":"Camera off","microphone-opened":"Mic on","microphone-closed":"Mic off",timeout:"{{ userList }} timeout","kick out":"kick out","image-resolution":"Resolution","default-image-resolution":"Default","invited-person":"Invite","be-rejected":"Call declined, ","be-no-response":"No response, ","be-line-busy":"Line busy, ","be-canceled":"The call is canceled, ","voice-call-end":"Voice call ended","video-call-end":"Video call ended","method-call-failed":"Failed to sync the operation","failed-to-obtain-permission":"Failed to obtain permissions","environment-detection-failed":"Failed to check the environment","switchToAudioCall-call-failed":"switch to audio call method failed","switchToVideoCall-call-failed":"switch to video call method failed","microphone-unavailable":"No mic found","camera-unavailable":"No camera found","ban-device":"Device access denied","not-supported-webrtc":"Your current environment does not support WebRTC","blacklist-user-tips":"The identifier is in blacklist. Failed to send this message!","is-already-calling":"TUICallKit is already on a call","need-init":"Before initiating a call with TUICallKit, ensure that the TUICallKitAPI.init() method has executed successfully. ","can't call yourself":"Can't call yourself","Use-phone-and-computer":"Use your mobile phone and computer to experience video calls","Wechat scan right QR code":"Wechat scan right QR code","Scan the QR code above":"Scan the QR code above","accept-error":"Accept failed","accept-device-error":"Accept failed, unable to auth calling device","call-error":"Start call failed","error.10001":"Your application has not enabled audio/video call (TUICallKit) capability. For first-time use, you can go to <a href='https://cloud.tencent.com/document/product/647/104662'>Enable Service</a> to apply for a free trial, or purchase call capability packages: <a href='https://console.cloud.tencent.com/trtc'>Purchase Page</a>","error.10002":"You do not currently support using this capability. Please go to the <a href='https://buy.cloud.tencent.com/avc?addRavLicense=1&position=1600110000&ravLicenseType=1&regionId=1'>purchase page</a> to buy and activate it","error.10004":"Camera/microphone permission was denied. Please check browser settings to ensure camera and microphone access is allowed. If you have confirmed permission is granted, please go to <a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>Audio/Video Capability Detection</a> to check if your device and environment support calls","error.10005":"No microphone device detected. Please ensure your device has a microphone connected and check if the microphone is available in system or browser settings.","error.10006":"No camera device detected. Please ensure your camera is connected and check if the camera is available in system or browser settings.","error.10007":"Current browser environment does not support WebRTC functionality. Please go to <a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>Audio/Video Capability Detection</a> to check your device and environment compatibility","error.10008":"TUICallEngine has not completed initialization or login. Please ensure you have successfully executed init or login operations before calling this function. Solution: <a href='https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887'>View Documentation</a>","error.10012":"Detected that the current page is under HTTP protocol. To ensure smooth access and full functionality of TUICallEngine SDK for production environment users, please use HTTPS protocol (or localhost) to access the audio/video application page. For details, please visit: <a href='https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3'>View Documentation</a>","error.10013":"Call failed: You have been blocked by the other party or you have blocked the other party","error.10014":"Call initiation failed. User ID is invalid. Please confirm that the user is registered.",error:"Error","ai-subtitle":"AI Subtitle","ai-subtitle-settings":"AI Subtitle Settings","recognition-language":"Recognition Language","translation-language":"Translation Language","subtitle-display-settings":"Subtitle Display Settings","subtitle-display-bilingual":"Show Bilingual Subtitles","no-translation":"No Translation","show-bilingual":"Show Bilingual","show-original-only":"Show Original Only",save:"Save","select-recognition-language":"Please select recognition language","select-translation-language":"Please select translation language",confirm:"Confirm","recognition-and-translation-settings":"Recognition & Translation Settings"},jEA={hangup:"通話終了",reject:"拒否",accept:"応答",camera:"カメラ",microphone:"マイク",speaker:"スピーカー","virtual-background":"ボケ背景","other side reject call":"通話が拒否されました","reject call":"{{ userList }} 通話拒否",cancel:"通話をキャンセル","other side line busy":"相手が通話中です","in busy":"{{ userList }} 通話中","call timeout":"呼び出しタイムアウト","end call":"{{ userList }} 通話終了","caller calling message":"応答を待っています","callee calling video message":"ビデオ通話に招待されました","callee calling audio message":"音声通話に招待されました","no microphone access":"マイクにアクセスできません","no camera access":"カメラにアクセスできません","invite member":"メンバーを招待する","browser-authorization":"ブラウザ認証","mac-privacy":"システム環境設定 -> セキュリティとプライバシー ->プライバシー","win-privacy":"設定 -> セキュリティとプライバシー ->アプリのアクセス許可","mac-preferences":"システム環境設定を開く","win-preferences":"システム設定を開く","Please enter userID":"ユーザーIDを入力してください","View more":"もっと見る","people selected":"人が選択されました","Select all":"すべて選択",Cancel:"キャンセル",Done:"完了","exist group call":"現在のグループには既にグループ通話が存在しています","Video call":"ビデオ通話を開始","Voice call":"音声通話を開始","Call End":"通話終了","Switch audio call":"音声通話に切り替える","Switch video call":"ビデオ通話に切り替える","Call duration":"通話時間","Call Cancel":"通話をキャンセルする","Other Side Cancel":"相手がキャンセルしました",Decline:"通話を拒否する","Other Side Decline":"相手が拒否しました","No answer":"無応答","Other Side No Answer":"相手からの返答はありません",Answered:"応答しました","Other Side Line Busy":"相手は現在忙しくて対応できません","Line Busy":"忙しいので応答できません","open camera":"オープンカメラ","close camera":"カメラを閉じる","open microphone":"オープンマイク","close microphone":"マイクを閉じる","camera enabled":"カメラオン","camera disabled":"カメラオフ","microphone enabled":"マイクオン","microphone disabled":"マイクオフ","speaker enabled":"スピーカーオン","speaker disabled":"スピーカーオフ","open speaker":"スピーカーをオンにする","close speaker":"スピーカーの電源を切ります","wait to be called":"待機中",answered:"接続済み","people in the call":"通話に参加している人たち","failed to obtain speakers":"スピーカーが見つかりません","you have a new call":"新しい通話があります","switch camera":"切り替え",join:"参加する","people on the call":"人が通話中です","Supports a maximum of 9 people for simultaneous calls":"最大で9人まで同時通話が可能です",you:"(あなた)","The network is poor during your current call":"現在の通話で、あなたのネットワークは不良です","The other user network is poor during the current call":"現在の通話で、相手側のネットワークが不良です","TUICallKit init is not complete":"TUICallKitの初期化ログインが完了していません。init が完了した後にこのAPIを使用する必要があります。","auto play failed":"オーディオ再生がブロックされました","click to resume":"再生を再開",timeout:"{{ userList }} タイムアウト","kick out":"キックアウトされました","Invited group call":"グループ通話に招待されました。","Those involved":"参加者:",call:"通話","video-call":"ビデオ通話","audio-call":"音声通話",search:"検索","search-result":"検索結果","Wechat scan right QR code":"WeChatで右側にあるQRコードを読み取ります。","Use-phone-and-computer":"携帯電話とコンピュータを使用してビデオ通話を体験してください","Scan the QR code above":"上のQRコードを読み取ります。","no-user":"ユーザーが見つかりませんでした","member-not-added":"メンバーが追加されていません","not-login":"ログインしていません","login-status-expire":"ログインの有効期限が過ぎています。ページを更新してもう一度お試しください","experience-multi-call":"複数人で同時に音声通話できるグループ通話機能を体験するには、全機能のデモをダウンロードしてください","not-support-multi-call":"グループ通話インターフェイスが開いていません","input-phone-userID":"携帯電話番号/ユーザーIDを入力してください",userID:"ユーザーID","already-enter":"すでに通話に参加しています",waiting:"応答を待っています...","camera-opened":"カメラがオンになっています","camera-closed":"カメラがオフになっています","microphone-opened":"マイクがオンになっています","microphone-closed":"マイクがオフになっています","image-resolution":"解像度","default-image-resolution":"デフォルト解像度","invited-person":"メンバーを招待","video-to-audio":"音声通話に切り替えます",me:"(自分)","be-rejected":"通話が拒否されました, ","be-no-response":"応答なし, ","be-line-busy":"相手が通話中です, ","be-canceled":"相手が通話をキャンセルしました","voice-call-end":"音声通話が終了しました","video-call-end":"ビデオ通話が終了しました","method-call-failed":"操作の同期に失敗しました","failed-to-obtain-permission":"権限の取得に失敗しました","environment-detection-failed":"環境の検出に失敗しました","switchToAudioCall-call-failed":"音声通話に切り替えることはできません","switchToVideoCall-call-failed":"ビデオ通話に切り替えることはできません","microphone-unavailable":"使用できるマイクがありません","camera-unavailable":"使用できるカメラがありません","ban-device":"デバイスへのアクセスが拒否されました","not-supported-webrtc":"現在の環境はWebRTCをサポートしていません","blacklist-user-tips":"ユーザーはブラックリストに登録され、通話が開始できませんでした","is-already-calling":"TUICallKit はすでに通話中です","need-init":"TUICallKitで通話を開始する前に、TUICallKitAPI.init() メソッドが正常に実行されたことを確認してください。","can't call yourself":"自分に電話をかけることができません","accept-error":"接続できませんでした","accept-device-error":"接続できませんでした。発信側デバイスを認証できません","call-error":"通話が開始できませんでした","error.10001":"あなたのアプリケーションは音声・ビデオ通話(TUICallKit)機能を有効にしていません。初めてご利用の場合、<a href='https://cloud.tencent.com/document/product/647/104662'>サービスを有効にする</a>で無料体験を申請するか、通話機能パッケージを購入してください:<a href='https://console.cloud.tencent.com/trtc'>購入ページ</a>","error.10002":"現在この機能を使用することはできません。<a href='https://buy.cloud.tencent.com/avc?addRavLicense=1&position=1600110000&ravLicenseType=1&regionId=1'>購入ページ</a>で購入して有効にしてください","error.10004":"カメラ/マイクのアクセス許可が拒否されました。ブラウザ設定を確認し、カメラとマイクの使用が許可されていることを確認してください。許可されている場合は、<a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>音声・ビデオ機能検出</a>にアクセスして、お使いのデバイスと環境が通話をサポートしているか確認してください","error.10005":"マイクデバイスが検出されませんでした。デバイスにマイクが接続されていることを確認し、システムまたはブラウザ設定でマイクが利用可能かどうかを確認してください。","error.10006":"カメラデバイスが検出されませんでした。カメラが接続されていることを確認し、システムまたはブラウザ設定でカメラが利用可能かどうかを確認してください。","error.10007":"現在のブラウザ環境はWebRTC機能をサポートしていません。<a href='https://web.sdk.qcloud.com/trtc/webrtc/demo/detect/index.html'>音声・ビデオ機能検出</a>にアクセスして、お使いのデバイスと環境の互換性を確認してください","error.10008":"TUICallEngineが初期化またはログインを完了していません。この機能を呼び出す前に、initまたはlogin操作が正常に実行されていることを確認してください。解決策:<a href='https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887'>ドキュメントを確認</a>","error.10012":"現在のページがHTTPプロトコル下にあることが検出されました。本番環境のユーザーがTUICallEngine SDKの全機能をスムーズに利用できるようにするため、音声・ビデオアプリケーションページにはHTTPSプロトコル(またはlocalhost)を使用してアクセスしてください。詳細については、<a href='https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3'>ドキュメントを確認</a>してください","error.10013":"通話失敗:相手にブロックされているか、または相手をブロックしています","error.10014":"通話の開始に失敗しました。ユーザーIDが無効です。ユーザーが登録されていることを確認してください。",error:"エラー","ai-subtitle":"AI字幕","ai-subtitle-settings":"AI字幕設定","recognition-language":"認識言語","translation-language":"翻訳言語","subtitle-display-settings":"字幕表示設定","subtitle-display-bilingual":"バイリンガル字幕を表示","no-translation":"翻訳しない","show-bilingual":"バイリンガル表示","show-original-only":"原文のみ表示",save:"保存","select-recognition-language":"認識言語を選択してください","select-translation-language":"翻訳言語を選択してください",confirm:"確認","recognition-and-translation-settings":"認識と翻訳の設定"},eY=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,n7=typeof uni<"u"&&typeof uni>"u",WEA=eY||n7,a7=typeof uni<"u",s7=function(){return(typeof uni<"u"||typeof window<"u")&&!WEA}(),zEA=function(){return eY?wx:a7?uni:window}(),Qp=s7&&window&&window.navigator&&window.navigator.userAgent||"",ZEA=/Android/i.test(Qp),XEA=/(?:Windows Phone)/.test(Qp),$EA=/(?:SymbianOS)/.test(Qp),AlA=/iPad/i.test(Qp)||/iPhone/i.test(Qp)||/iPod/i.test(Qp),g7=ZEA||XEA||$EA||AlA,rW=s7&&!g7,elA=rW&&Qp.includes("Windows NT"),tlA=rW&&Qp.includes("Mac");let I7=class GG{constructor(){this.global=zEA,this.isPC=!1,this.isH5=!1,this.isWeChat=!1,this.isApp=!1,this.isUniPlatform=!1,this.isOfficial=!1,this.isWIN=!1,this.isMAC=!1,this.initEnv()}static getInstance(){return GG.instance||(GG.instance=new GG),GG.instance}initEnv(){this.isPC=rW,this.isH5=g7,this.isWeChat=eY,this.isApp=n7&&!eY,this.isUniPlatform=a7,this.isWIN=elA,this.isMAC=tlA}initOfficial(i){this.isOfficial=i===1400187352||i===1400188366}};const nW=function(t){return typeof t===aA.UNDEFINED},aW=function(t){if(typeof t!==aA.OBJECT||t===null)return!1;const i=Object.getPrototypeOf(t);if(i===null)return!0;let r=i;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return i===r},c7=function(t){return typeof t===aA.STRING},ilA=function(t){return typeof t===aA.BOOLEAN},olA=function(t){return t!==null&&(typeof t===aA.NUMBER&&!isNaN(t-0)||typeof t===aA.OBJECT&&t.constructor===Number)};function E7(t){const i=Math.floor(t/3600),r=Math.floor(t%3600/60),s=Math.floor(t%60);let g=i>9?`${i}`:`0${i}`;return g+=r>9?`:${r}`:`:0${r}`,g+=s>9?`:${s}`:`:0${s}`,g}function rlA(t){if(typeof t===aA.STRING)try{return!!JSON.parse(t)}catch(i){return console.debug(i),!1}return!1}const g2=function(t){return!t||!rlA(t)?t:JSON.parse(t)};function u8(t){var i;return((i=t?.message)==null?void 0:i.indexOf("is ongoing, please avoid repeated calls"))!==-1}function nlA(t){const{message:i}=t;return i?.indexOf("NotAllowedError: Permission denied")!==-1}function Aj(){return Date.now()}const w2=function(t){return typeof t===aA.FUNCTION},alA=()=>{if(I7.getInstance().isWeChat)return"zh-cn";const t=(navigator?.language||navigator?.userLanguage||"").substr(0,2);let i="en";switch(t){case"zh":i="zh-cn";break;case"ja":i="ja_JP";break;default:i="en"}return i};function slA(t){}function glA(t,i){return t.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g,(r,s)=>{const g=s.trim();return i[g]!==void 0?String(i[g]):r})}function IlA(t){window!=null&&window.addEventListener&&window.addEventListener("beforeunload",i=>{const r=(performance?.getEntriesByType("navigation")||[])[0];r&&r.type==="navigate"||t(i)})}const mc={OTHER_SIDE_REJECT_CALL:"other side reject call",REJECT_CALL:"reject call",OTHER_SIDE_LINE_BUSY:"other side line busy",IN_BUSY:"in busy",CALL_TIMEOUT:"call timeout",END_CALL:"end call",TIMEOUT:"timeout",KICK_OUT:"kick out",CALLER_CALLING_MSG:"caller calling message",CALLER_GROUP_CALLING_MSG:"wait to be called",CALLEE_CALLING_VIDEO_MSG:"callee calling video message",CALLEE_CALLING_AUDIO_MSG:"callee calling audio message",NO_MICROPHONE_DEVICE_PERMISSION:"no microphone access",NO_CAMERA_DEVICE_PERMISSION:"no camera access",LOCAL_NETWORK_IS_POOR:"The network is poor during your current call"},I2={"zh-cn":qEA,en:KEA,ja_JP:jEA};function Uu(t){var i,r;const s=me.getData(bA.CALL,aA.LANGUAGE);let g="";if(c7(t))g=((i=I2?.[s])==null?void 0:i[t])||"";else if(aW(t)){const{key:B,options:Q}=t;g=((r=I2?.[s])==null?void 0:r[B])||"",g=glA(g,Q)}return g}class clA{constructor(){this.defaultStore={callStatus:Ao.IDLE,callRole:Ts.UNKNOWN,callMediaType:Pr.UNKNOWN,localUserInfo:{userId:""},localUserInfoExcludeVolume:{userId:""},remoteUserInfoList:[],remoteUserInfoExcludeVolumeList:[],callerUserInfo:{userId:""},isGroup:!1,callDuration:"00:00:00",callTips:"",toastInfo:{text:""},isMinimized:!1,enableFloatWindow:!1,bigScreenUserId:"",language:alA(),isClickable:!1,deviceList:{cameraList:[],microphoneList:[],currentCamera:{},currentMicrophone:{}},showPermissionTip:!1,netWorkQualityList:[],isMuteSpeaker:!1,callID:"",groupID:"",roomID:0,roomIdType:0,cameraPosition:zm.FRONT,groupCallMembers:[],displayMode:tW.COVER,videoResolution:iW.RESOLUTION_720P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:"",isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:$2.RemoteInLargeView},translate:Uu,isForceUseV2API:!1,transcriberRobotId:null,realtimeMessageList:[],isAITranscriberEnabled:!1,isAITranscriberRunning:!1},this.store=AY(this.defaultStore),this.prevStore=AY(this.defaultStore)}update(i,r){switch(i){case aA.CALL_TIPS:const s=this.getData(i);this.prevStore[i]=s;default:this.store[i]=r}}getPrevData(i){return i?this.prevStore[i]:this.prevStore}getData(i){return i?this.store[i]:this.store}reset(i=[]){i.length===0&&(i=Object.keys(this.store));const r=i.reduce((s,g)=>({...s,[g]:this.defaultStore[g]}),{});this.store={...this.defaultStore,...this.store,...r}}}let kw=class kG{constructor(){this.timerId=-1,this.storeMap={[bA.CALL]:new clA},this.task={}}static getInstance(){return kG.instance||(kG.instance=new kG),kG.instance}watch(i,r,s){this.task[i]||(this.task[i]={});const g=this.task[i];Object.keys(r).forEach(B=>{const Q=r[B];g[B]||(g[B]=new Map),g[B].set(Q,1);const{notifyRangeWhenWatch:f}=s||{};if(f===aA.ALL&&this.notify(i,B),f===aA.MYSELF){const m=this.getData(i,B);Q.call(this,m)}})}unwatch(i,r){if(!this.task[i])return;const s=this.task[i];Object.keys(r).forEach(g=>{s[g].delete(r[g])})}update(i,r,s){var g;(c7(s)||olA(s)||ilA(s))&&this.storeMap[i].store[r]===s||((g=this.storeMap[i])==null||g.update(r,s),this.notify(i,r))}getPrevData(i,r){var s;return(s=this.storeMap[i])==null?void 0:s.getPrevData(r)}getData(i,r){var s;return(s=this.storeMap[i])==null?void 0:s.getData(r)}notify(i,r){if(!this.task[i])return;const s=this.task[i];if(s[r]){const g=s[r],B=this.getData(i,r);for(const[Q]of g.entries())Q.call(this,B)}}reset(i,r=[],s=!1){if(i in this.storeMap){const g=this.storeMap[i];r.length===0&&(r=Object.keys(g?.store)),g.reset(r),s&&r.forEach(B=>{this.notify(i,B)})}}updateStore(i,r){const s=r||bA.CALL;Object.keys(i).forEach(g=>{this.update(s,g,i[g])})}};const ElA=kw.getInstance(),llA=[-1001,-1002,-1101,60003,60004,60006,-1201,3e4,20007,101002],ClA={"-1001":{id:10001,key:"error.10001"},"-1002":{id:10002,key:"error.10002"},"-1101":{id:10004,key:"error.10004"},60003:{id:10005,key:"error.10005"},60004:{id:10006,key:"error.10006"},60006:{id:10007,key:"error.10007"},"-1201":{id:10008,key:"error.10008"},3e4:{id:10012,key:"error.10012"},20007:{id:10013,key:"error.10013"},101002:{id:10014,key:"error.10014"}};function QG(t){!t||!(t!=null&&t.code)||BlA(t)}function BlA(t){if(!llA.includes(t.code))return;const i=ClA[t.code.toString()];if(i){let r=Uu(i.key);ElA.update(bA.CALL,aA.MODAL_ERROR,{id:i.id,content:r,title:Uu("error")})}}const ulA="data:audio/mpeg;base64,SUQzAwAAAAAAGFRYWFgAAAAOAAAAVFhYWABpc29taXNvMv/zNGQAAqwAvnihCAADQAF4CUAQAFYAg3Lh8u+XUD5///wx//wQOAhKAgb/////xOoH4g8Hz4Pq8RoAbdTgMsMt9hcb990EP//zNGQQBPDjEgDItAAFWcIoAYoQAN9P/03QQ//umn//91SXL5uXP+pf8WYTvzgJPAQ+p/7f///1//6f///WH///F4BtJhNFkP/zNGQGA/jjNADHiAAEQDJcAYkQAGWrn6vw6ljfPtj/////////9Pv9sL/mL/QezSepgwrimv07//////y3u602OiyhOYb+LP/zNGQIBKTBKADoCACDoCZMAckAAKHKCUIAFsqGZXtSZ/////////Sn/Vy3nVUOJBqSX2UAkQxBddzv//////yq3lcgaTmTQ//zNGQHA9SrJgA8AliD4C5IAApYAKh3FKlMunKHm8H/2//77vkdqB2xfsXaHiDKBGtFKqONF3/////Z9VXClT5ND+syHkjBq//zNGQLBITJIAA8AmQEiDI4AAjSAGa1Vffm3ff/1/0//11tvZpAaIw3dBiIrjJgHQrGVWmdBU1f/////oDqEKrV1OpBUTjQtv/zNGQHAsjDKAAwAl4D0Co8AAmCBHIQNtld6fm0+/VigZzuMnGZlkAMLMJFv/////33UIWeFQkKsaceBsangecHzYXKI//////zNGQUA4QjKAA3CAID8CpEABMCBPfuStx4FQVHYMgKcO6jIJh//////9uIlspQkGQ2YyZscAV83Bv/////ncL6BEiWHyA2K//zNEQbAogfJgAx5hAEwDJcCAsEBtICgF3/////WJaIuuqMCCVGucgkrtwiwBO//////pW4YFRWQhaRRhZZnVwGhf////+ocv/zNEQmApgVJAANjwAFkC5YCApeAolD4kQb+EQJYNKwLWGmc6sqMBwJvf////6tDEOWDgFJk1VywKMGoM2f////+N1JmgJuPv/zNGQuA4AbJAAl5hIDwC48AAIGBEho7wTL5b6kSO7IUAA5uDABYNNjGDBSJEN//////xtQsszVy27IcWBbQkLgzv7YmZYW///zNGQ2AqzFNAgcA1+D8CZIAAhMAP/3/rozCAsBjIqCY/DBWMfQZp1f/////0F6phXSNisgAJjo6icT2vpvM/Vf9v///97eu//z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",Q8="data:audio/mpeg;base64,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//BP/+hwIa///Nf///wqXf/1IwFkb//wi3/1Pf/7FEQGAABjEVkFKKAADSOrIKOcAAKAUWQYooAAUpGswwRwAF//QA7//6iH/7//E1CP66uDpoqjowL/6/GGwzFQx/T3Vp/9XC73/yvuUKYdmmN6evmjf5L5ZKr/8hlL/f/7FGQCgAB5FF2GBKAADYOrUMEIAAGod2YcVoAANI6rg4pQAEZrqH8GxT/UqjT/+aDlf/6dvj/r/4+rR//UH//+wTMuo///86//9QGR//+wCCxv//+MCD//BP//oAIP///7FGQFAABgEdsNFKAAC2I68KOcAAMggWoYVQAAP46tAwQgAMzq//QwCv//4WM/+a0//YWHBbCL/5Hi/IAIkheLBSvsvr6F98kyv/4Zg7A3/0+pcfN//8bL5ar/+8wV/v/7FGQCgACDFF0GFKAADkQLYMCIAAGod2occoAANg7rw4pQAKbXi7oTBez1IPl9X/4G2b//1b7/r6/a/Gy//6HAX//+gDAv///nHf/xoBf//hF////ILP0V//lQuP//qP/7FGQDj/BVHVmBQC2QC6O6wDQHsgGEd2gUI4AAMA7sAopQAE8l+F//2DK3//y4f+Bj5j/+oX//8FpP///x0n//GAf//8Kf///xIcrp/ZHCA4SBM2nH8U7C55TDl+3X6P/7FGQKAADZI1uGFOAAEoRrMMKUAAGQd24cUQAANQ7sQ44gAHOZwyYabiX/9COkKb/T6rj9/09fUt+LGTgn/8YALf/+g43///kFf/zgX///UK////hxPTX/+4Sz//+sR//7FGQEA7BbHdmBoC2QDSEL3gADCQGgAXyUIQAAMw7rwpRwAK/hAeAAAAdAAAAAHQz///6wB/xxxyrjsayv6H/+r/+aBD//+Nm///8QulX+1VhmOIUu/+2UD0jR2CVfp//7FGQIgADVI1uGCOACD+RrYMCIAAGcd2ocE4AAMw7sQ4RQAGP+f8eIEjMMke//iRoP//tvp+v/Unyv4pqf/5n//84CQx///0FRv/+K///C3///6gKLdKr//EJ//9QHx//7FGQED/BSHdkBQBWQC4PKwCgHsgFYR2wUI4AANA7sAopQAD5hv/6Br//+SDvyge2n/+gP//8ISf/w9t//oDv//8K///8ggL6a+nTBTVf043E0UOgZIIdw1v/9FHfE3//7FGQLAADO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";class QlA{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=Q8,this._callRole=Ts.UNKNOWN,this._callStatus=Ao.IDLE,this._isPlaying=!1,this._bellContext=new Audio,this._bellContext.loop=!0}setBellSrc(){try{let i=ulA;this._callRole===Ts.CALLEE&&(i=this._calleeBellFilePath||Q8),this._bellContext.src=i}catch(i){console.warn(`${aA.PREFIX}Failed to setBellSrc, ${i}`)}}setBellProperties(i){this._callRole=i.callRole||this._callRole,this._callStatus=i.callStatus||this._callStatus,this._calleeBellFilePath=i.calleeBellFilePath||this._calleeBellFilePath,this._isMuteBell=nW(i.isMuteBell)?this._isMuteBell:i.isMuteBell}async play(){try{if(this._callStatus!==Ao.CALLING)return;if(this._callStatus!==Ao.CALLING||this._isPlaying){console.warn(`${aA.PREFIX}play skipped, callStatus: ${this._callStatus}, isPlaying: ${this._isPlaying}`);return}if(this._isPlaying=!0,this.setBellSrc(),this._callRole===Ts.CALLEE&&!this._isMuteBell){if(!this._isPlaying||this._callStatus!==Ao.CALLING)return;await this._bellContext.play();return}if(this._callRole===Ts.CALLER){if(!this._isPlaying||this._callStatus!==Ao.CALLING)return;await this._bellContext.play();return}}catch(i){console.warn(`${aA.PREFIX}Failed to play audio file, ${i}`)}}async stop(){var i;try{this._isPlaying=!1,await((i=this._bellContext)==null?void 0:i.pause())}catch(r){console.warn(`${aA.PREFIX}Failed to stop audio file, ${r}`)}}async setBellMute(i){this._callStatus!==Ao.CALLING&&this._callRole!==Ts.CALLEE||(i?await this.stop():await this.play())}destroy(){try{this._isMuteBell=!1,this._calleeBellFilePath="",this._callRole=Ts.UNKNOWN,this._callStatus=Ao.IDLE,this._isPlaying=!1,this._bellContext.pause(),this._bellContext=null}catch(i){console.warn(`${aA.PREFIX}Failed to destroy, ${i}`)}}_delay(i){return new Promise(r=>setTimeout(r,i))}_delayCallback(i,r){setTimeout(i,r)}}function vg(){return function(t,i,r){const s=r.value,g=new Set;return r.value=async function(...B){var Q,f;if(g.has(this)){console.warn(`${aA.PREFIX}previous ${i}() is ongoing, please avoid repeated calls`),(f=(Q=this==null?void 0:this.getTUICallEngineInstance())==null?void 0:Q.reportLog)==null||f.call(Q,{name:"TUICallKit.avoidRepeatedCall.fail",data:{name:i},error:`previous ${i}() is ongoing`});return}try{g.add(this);const m=await s.apply(this,B);return g.delete(this),m}catch(m){throw g.delete(this),m}},r.value.clearCallState=function(B){g.delete(B)},r}}const Fn=kw.getInstance();function S2(t,i){const r={userId:t,nick:"",avatar:"",remark:"",displayUserInfo:"",isAudioAvailable:!1,isVideoAvailable:!1,isEnter:!1,domId:i||t};return i?r:{...r,isEnter:!1}}async function dlA(t,i){var r,s,g,B,Q;let f=S2(t,aA.LOCAL_VIDEO);try{if(!i)return f;const m=await i.getMyProfile(),M=Fn?.getData(bA.CALL,aA.LOCAL_USER_INFO);return m?.code===0&&(f={...f,...M,userId:(r=m?.data)==null?void 0:r.userID,nick:(s=m?.data)==null?void 0:s.nick,avatar:(g=m?.data)==null?void 0:g.avatar,displayUserInfo:((B=m?.data)==null?void 0:B.nick)||((Q=m?.data)==null?void 0:Q.userID)}),f}catch(m){return console.error(`${aA.PREFIX}getMyProfile failed, error: ${m}.`),f}}async function uk(t,i){let r=t.map(s=>S2(s));try{if(!i)return r;if(i!=null&&i.getFriendProfile){const s=await i.getFriendProfile({userIDList:t});if(s.code===0){const{friendList:g=[],failureUserIDList:B=[]}=s.data;let Q=B.map(v=>v.userID);if(B.length>0){const v=await i.getUserProfile({userIDList:B.map(U=>U.userID)});v?.code===0&&(Q=v?.data||[])}const f=Fn?.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST),m=g.map(v=>v.userID),M=Q.map(v=>v.userID);r=t.map(v=>{var U,AA,z,sA,eA,X,QA;const wA=S2(v),HA=m.indexOf(v),VA=M.indexOf(v);let ue="",jA="",Ve="",Ze="";HA!==-1&&(ue=((U=g[HA])==null?void 0:U.remark)||"",jA=((z=(AA=g[HA])==null?void 0:AA.profile)==null?void 0:z.nick)||"",Ve=ue||jA||wA.userId||"",Ze=((eA=(sA=g[HA])==null?void 0:sA.profile)==null?void 0:eA.avatar)||""),VA!==-1&&(jA=((X=Q[VA])==null?void 0:X.nick)||"",Ve=jA||wA.userId||"",Ze=((QA=Q[VA])==null?void 0:QA.avatar)||"");const Me=f.find(qe=>qe.userId===v)||{};return{...wA,...Me,remark:ue,nick:jA,displayUserInfo:Ve,avatar:Ze}})}return r}else{const s=await i.getUserProfile({userIDList:t}),g=Fn?.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);return r=t.map(B=>{const Q=S2(B),f=g.find(M=>M.userId===B)||{},m=(s.data||[]).find(M=>M.userID===B)||{};return{...Q,...f,nick:m?.nick||"",displayUserInfo:m?.nick||B,avatar:m?.avatar||""}}),r}}catch(s){return console.error(`${aA.PREFIX}getRemoteUserProfile failed, error: ${s}.`),r}}function c2(){const t=Fn.getData(bA.CALL,aA.CALL_STATUS);if(t===Ao.IDLE)return TI.IDLE;const i=Fn.getData(bA.CALL,aA.IS_GROUP);if(t===Ao.CALLING)return i?TI.DIALING_GROUP:TI.DIALING_C2C;const r=Fn.getData(bA.CALL,aA.CALL_MEDIA_TYPE);return i?r===Pr.AUDIO?TI.CALLING_GROUP_AUDIO:TI.CALLING_GROUP_VIDEO:r===Pr.AUDIO?TI.CALLING_C2C_AUDIO:TI.CALLING_C2C_VIDEO}async function hlA(t,i,r,s){let g=[];try{const B=await i.getGroupMemberList({groupID:t,count:r,offset:s});if(B.code===0)return B.data.memberList||g}catch(B){return console.error(`${aA.PREFIX}getGroupMember failed, error: ${B}.`),g}}async function plA(t,i){let r={};try{return(await i.getGroupProfile({groupID:t})).data.group||r}catch(s){return console.warn(`${aA.PREFIX}getGroupProfile failed, error: ${s}.`),r}}function l7(t,i){t===0&&i?(Fn.update(bA.CALL,aA.ROOM_ID,i),Fn.update(bA.CALL,aA.ROOM_ID_TYPE,qj.STRING_ROOM_ID)):(Fn.update(bA.CALL,aA.ROOM_ID,t),Fn.update(bA.CALL,aA.ROOM_ID_TYPE,qj.NUMBER_ROOM_ID))}function gC(t){return t||{}}function ej(t){if(t.length===0)return;let i=Fn.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);t.forEach(r=>{i=i.filter(s=>s.userId!==r)}),Fn.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,i),Fn.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,i)}function tj(t){t?.getDeviceList("speaker").then(i=>{const r=Fn.getData(bA.CALL,aA.DEVICE_LIST),s=i?.[0]||{};Fn.update(bA.CALL,aA.DEVICE_LIST,{...r,speakerList:i,currentSpeaker:s})}).catch(i=>{console.error(`${aA.PREFIX}updateSpeakerList failed, error: ${JSON.stringify(i)}.`)}),Fn.getData(bA.CALL,aA.CALL_MEDIA_TYPE)===Pr.VIDEO&&t?.getDeviceList("camera").then(i=>{const r=Fn.getData(bA.CALL,aA.DEVICE_LIST),s=i?.[0]||{};Fn.update(bA.CALL,aA.DEVICE_LIST,{...r,cameraList:i,currentCamera:s})}).catch(i=>{console.error(`${aA.PREFIX}updateCameraList failed, error: ${i}.`)}),t?.getDeviceList("microphones").then(i=>{const r=Fn.getData(bA.CALL,aA.DEVICE_LIST),s=i?.[0]||{};Fn.update(bA.CALL,aA.DEVICE_LIST,{...r,microphoneList:i,currentMicrophone:s})}).catch(i=>{console.error(`${aA.PREFIX}updateMicrophoneList failed, error: ${i}.`)})}function ij(t,i,r){let s="";if(nlA(t)){i===Pr.AUDIO&&(s=mc.NO_MICROPHONE_DEVICE_PERMISSION),i===Pr.VIDEO&&(s=mc.NO_CAMERA_DEVICE_PERMISSION);const g=r?.getDevicePermission();g!=null&&g.audio||Fn.update(bA.CALL,aA.SHOW_PERMISSION_TIP,!0),s&&Fn.update(bA.CALL,aA.TOAST_INFO,{content:s,type:aA.ERROR}),console.error(`${aA.PREFIX}call failed, error: ${t.message}.`)}}function Hm(t,i){let r=Fn.getData(bA.CALL,aA.LOCAL_USER_INFO);i===aA.AUDIO&&(r={...r,isAudioAvailable:t}),i===aA.VIDEO&&(r={...r,isVideoAvailable:t}),Fn.update(bA.CALL,aA.LOCAL_USER_INFO,r),Fn.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,r)}const Kj=class{static generateTaskID(){return this.currentTaskID++}static run(i=aA.TIMEOUT,r,s){i===aA.INTERVAL?s={delay:2e3,count:0,backgroundTask:!0,...s}:s={delay:2e3,count:0,backgroundTask:!0,...s},aW(r)&&(s={...s,...r}),w2(i)&&(r=i,i=aA.TIMEOUT);const g={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:i,callback:r,...s};return this.taskMap.set(g.taskID,g),i===aA.INTERNAL?this.interval(g):this.timeout(g),g.taskID}static interval(i){const r=()=>{i.callback(),i.loopCount+=1,this.isBreakLoop(i)};return i.intervalID=setInterval(r,i.delay)}static timeout(i){const r=()=>{if(i.callback(),i.loopCount+=1,!this.isBreakLoop(i))return i.timeoutID=setTimeout(r,i.delay)};return i.timeoutID=setTimeout(r,i.delay)}static hasTask(i){return this.taskMap.has(i)}static clearTask(i){if(!this.taskMap.has(i))return!0;const{intervalID:r,timeoutID:s,onVisibilitychange:g}=this.taskMap.get(i);return r&&clearInterval(r),s&&clearTimeout(s),g&&document.removeEventListener("visibilitychange",g),this.taskMap.delete(i),!0}static isBreakLoop(i){return this.taskMap.has(i.taskID)?i.count!==0&&i.loopCount>=i.count?(this.clearTask(i.taskID),!0):!1:!0}};Kj.taskMap=new Map,Kj.currentTaskID=1;let d8=Kj;const flA=function(t){if(t===null||typeof t>"u")return!0;if(typeof t=="boolean")return!1;if(typeof t=="number")return t===0;if(typeof t=="string"||typeof t=="function"||Array.isArray(t))return t.length===0;if(t instanceof Error)return t.message==="";if(aW(t)){for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i))return!1;return!0}return!1},oj="_local_user_id";class eD{constructor(){this._viewConfig={viewBackground:{local:{},remote:{}}},this._isSetViewBackgroundConfig={remote:!1,local:!1},this._tuiCallEngine=null,this._tuiStore=null}static getInstance(){return eD.instance||(eD.instance=new eD),eD.instance}_updateViewBackground(){var i,r,s;const g=(i=this._tuiStore)==null?void 0:i.getData(bA.CALL,aA.CUSTOM_UI_CONFIG),{userId:B}=(r=this._tuiStore)==null?void 0:r.getData(bA.CALL,aA.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(B)&&delete this._viewConfig.viewBackground.remote[B],(s=this._tuiStore)==null||s.update(bA.CALL,aA.CUSTOM_UI_CONFIG,{...g,viewBackground:{...this._viewConfig.viewBackground.remote,...this._viewConfig.viewBackground.local}})}setEngineInstance(i){this._tuiCallEngine=i}setTUIStore(i){this._tuiStore=i}updateViewBackgroundUserId(i){var r,s;if(i==="local"){const{userId:g}=(r=this._tuiStore)==null?void 0:r.getData(bA.CALL,aA.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(g)&&(delete this._viewConfig.viewBackground.remote[g],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const B=this._viewConfig.viewBackground.local,Q=B[g]||B[oj];B[g]=B[oj],this._viewConfig.viewBackground.local={[g]:Q},this._updateViewBackground()}else{let g=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(g).includes("*")&&(((s=this._tuiStore)==null?void 0:s.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST)).map(B=>B.userId).forEach(B=>{Object.keys(g).includes(B)||(g[B]=g["*"])}),this._viewConfig.viewBackground.remote=g,this._updateViewBackground())}}hideFeatureButton(i){var r,s,g,B,Q;(s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:i}});const f=(g=this._tuiStore)==null?void 0:g.getData(bA.CALL,aA.CUSTOM_UI_CONFIG);(Q=this._tuiStore)==null||Q.update(bA.CALL,aA.CUSTOM_UI_CONFIG,{...f,button:{...f.button,[i]:{...((B=f.button)==null?void 0:B[i])||{},show:!1}}})}setLocalViewBackgroundImage(i){var r,s,g;(s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:i}}),this._isSetViewBackgroundConfig.local=!0;let{userId:B}=(g=this._tuiStore)==null?void 0:g.getData(bA.CALL,aA.LOCAL_USER_INFO);flA(B)&&(B=oj),this._viewConfig.viewBackground.local={[B]:i},this._updateViewBackground()}setRemoteViewBackgroundImage(i,r){var s,g;(g=(s=this._tuiCallEngine)==null?void 0:s.reportLog)==null||g.call(s,{name:"TUICallKit.setRemoteViewBackgroundImage.start",data:{userId:i,url:r}}),this._isSetViewBackgroundConfig.remote=!0,i==="*"&&(this._viewConfig.viewBackground.remote={}),this._viewConfig.viewBackground.remote[i]=r,this._updateViewBackground()}setLayoutMode(i){var r,s;(s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:i}});const g=this._tuiStore.getData(bA.CALL,aA.CUSTOM_UI_CONFIG);this._tuiStore.update(bA.CALL,aA.CUSTOM_UI_CONFIG,{...g,layoutMode:i})}setCameraDefaultState(i){var r,s;(s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:i}});const g=AY(this._tuiStore.getData(bA.CALL,aA.CUSTOM_UI_CONFIG));Object.keys(g.button).includes(gD.Camera)||(g.button[gD.Camera]={}),g.button[gD.Camera].state=i?Bk.Open:Bk.Close,this._tuiStore.update(bA.CALL,aA.CUSTOM_UI_CONFIG,g)}}const E2=kw.getInstance(),Vm={audioCall:()=>"Voice call",videoCall:()=>"Video call",switchToAudio:()=>"Switch audio call",switchToVideo:()=>"Switch video call",hangup:({callDuration:t})=>`${Uu("Call duration")}:${t}`};class cw{constructor(i){var r,s,g;this._callService=i.callService,nw.registerEvent(mr.TUILogin.EVENT.LOGIN_STATE_CHANGED,mr.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(r=mr.TUIChat)!=null&&r.EVENT&&nw.registerEvent((s=mr.TUIChat.EVENT)==null?void 0:s.CHAT_STATE_CHANGED,(g=mr.TUIChat.EVENT_SUB_KEY)==null?void 0:g.CHAT_OPENED,this),nw.registerService(mr.TUICalling.SERVICE.NAME,this),nw.registerExtension(mr.TUIChat.EXTENSION.INPUT_MORE.EXT_ID,this)}static getInstance(i){return cw.instance||(cw.instance=new cw(i)),cw.instance}callTUIService(i){const{message:r}=i||{};nw.callService({serviceName:mr.TUIChat.SERVICE.NAME,method:mr.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:r}})}onGetExtension(i,r){var s,g;if(i===mr.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((g=(s=this._callService.getTUICallEngineInstance())==null?void 0:s.reportLog)==null||g.call(s,{name:"TUICallKit.onGetExtension",data:{extensionID:i,params:r}}),nW(r))return[];if([mr.TUIChat.TYPE.ROOM,mr.TUIChat.TYPE.CUSTOMER_SERVICE].includes(r.chatType))return[];let B=[];const Q={weight:1e3,text:"语音通话",icon:YEA,data:{name:"voiceCall"},listener:{onClicked:async m=>await this._handleTUICoreOnClick(m,m.type||Pr.AUDIO)}},f={weight:900,text:"视频通话",icon:PEA,data:{name:"videoCall"},listener:{onClicked:async m=>await this._handleTUICoreOnClick(m,m.type||Pr.VIDEO)}};return r!=null&&r.chatType?B=[Q,f]:(!(r!=null&&r.filterVoice)&&B.push(Q),!(r!=null&&r.filterVideo)&&B.push(f)),B}}async onCall(i,r){i===mr.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(r,r.type)}async onNotifyEvent(i,r,s){var g,B,Q,f,m,M,v,U;try{if(i===mr.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(r===mr.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:AA,userID:z,userSig:sA,SDKAppID:eA}=FEA.getContext();await((g=this._callService)==null?void 0:g.init({tim:AA,userID:z,userSig:sA,sdkAppID:eA,isFromChat:!0,component:oW.TIM_CALL_KIT})),(B=this._callService)==null||B.setIsFromChat(!0),(Q=this._callService)==null||Q.setLogLevel(r7.NORMAL),this._addListenChatEvent()}else r===mr.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((f=this._callService)==null?void 0:f.destroyed()));if((m=mr.TUIChat)!=null&&m.EVENT&&i===mr.TUIChat.EVENT.CHAT_STATE_CHANGED&&r===mr.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((M=this._callService)==null||M.setCurrentGroupId(s?.groupID||""),E2.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE)return;const AA=(v=this._callService)==null?void 0:v.getCurrentGroupId(),z=AA?await this.getGroupAttributes((U=this._callService)==null?void 0:U.getTim(),AA):{};await this.updateStoreBasedOnGroupAttributes(z)}}catch(AA){console.error(`${aA.PREFIX}TUICore onNotifyEvent failed, error: ${AA}.`)}}async updateStoreBasedOnGroupAttributes(i){var r,s,g,B;(g=(s=(r=this._callService)==null?void 0:r.getTUICallEngineInstance())==null?void 0:s.reportLog)==null||g.call(s,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:i}});try{const{call_id:Q="",group_id:f="",room_id:m=0,room_id_type:M=0,call_media_type:v=aA.UNKNOWN,user_list:U}=i[aA.INNER_ATTR_KIT_INFO]?JSON.parse(i[aA.INNER_ATTR_KIT_INFO]):{};let AA=(U||[]).map(sA=>sA.userid);AA.length>0&&(AA=await uk(AA,(B=this._callService)==null?void 0:B.getTim()));const z={[aA.CALL_ID]:Q,[aA.GROUP_ID]:f,[aA.GROUP_CALL_MEMBERS]:AA,[aA.ROOM_ID]:m,[aA.CALL_MEDIA_TYPE]:UEA[v],[aA.ROOM_ID_TYPE]:M};E2.updateStore(z,bA.CALL)}catch(Q){console.warn(`${aA.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${Q}`)}}async getGroupAttributes(i,r){if(!r)return{};try{const{data:s}=await i.getGroupAttributes({groupID:r,keyList:[]});return s?.groupAttributes||{}}catch(s){return console.warn(`${aA.PREFIX}getGroupAttributes fail: ${s}`),{}}}isLineBusy(i){var r;const s=g2(i.payload.data),g=g2(s?.data);return g?.line_busy==="line_busy"||g?.line_busy===""||((r=g?.data)==null?void 0:r.message)==="lineBusy"}async getCallKitMessage(i,r){var s,g,B,Q;const f=g2(i.payload.data);if(f?.businessID!==1)return{};let m="";const M=g2(f?.data),v=M.call_type,U=f.inviteeList,AA=(s=M?.data)==null?void 0:s.inviter,z=E2.getData(bA.CALL,aA.LOCAL_USER_INFO).userId,sA=AA===z,eA=(g=M?.data)==null?void 0:g.cmd;switch(f?.actionType){case aw.INVITE:{m=Vm[eA]({callDuration:E7(M?.call_end)});break}case aw.CANCEL_INVITE:m=sA?"Call Cancel":"Other Side Cancel";break;case aw.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(eA)?m=(B=Vm?.[eA])==null?void 0:B.call(Vm):m=Uu("Answered");break;case aw.REJECT_INVITE:this.isLineBusy(i)?m=sA?"Line Busy":"Other Side Line Busy":m=sA?"Other Side Decline":"Decline";break;case aw.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(eA)?m=(Q=Vm?.[eA])==null?void 0:Q.call(Vm):m=sA?"Other Side No Answer":"No answer";break}return{messageCardContent:m,callMediaType:v,inviteeList:U}}_addListenChatEvent(){var i,r;if(!((i=this._callService)!=null&&i.getTim())){console.warn(`${aA.PREFIX}add tim event listener failed, tim is empty.`);return}(r=this._callService)==null||r.getTim().on($G.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}_removeListenChatEvent(){var i,r;if(!((i=this._callService)!=null&&i.getTim())){console.warn(`${aA.PREFIX}remove tim event listener failed, tim is empty.`);return}(r=this._callService)==null||r.getTim().off($G.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(i,r){var s;try{const{groupID:g,userIDList:B=[],version:Q="",...f}=i;await((s=this._callService)==null?void 0:s.calls({chatGroupID:g,userIDList:B,type:r,...f}))}catch(g){i!=null&&i.version||console.warn("Please upgrade to the latest Chat UIKit components."),console.debug(g)}}async _handleGroupAttributesUpdated(i){var r;if(E2.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE)return;const s=i?.data||{},{groupID:g="",groupAttributes:B={}}=s;g===((r=this._callService)==null?void 0:r.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(B)}}const mlA=0,DlA=1,h8=2;function ylA({retryFunction:t,settings:i,onError:r,onRetrying:s,onRetryFailed:g,context:B}){return function(...Q){const f=i.retries||5;let m=0,M=-1,v=mlA;const U=async(AA,z)=>{const sA=this;try{const eA=await t.apply(sA,Q);m=0,AA(eA)}catch(eA){const X=()=>{clearTimeout(M),m=0,v=h8,z(eA)},QA=()=>{v!==h8&&m<f?(m++,v=DlA,w2(s)&&s.call(sA,m,X),M=setTimeout(()=>{M=-1,U(AA,z)},nW(i.timeout)?1e3:i.timeout)):(X(),w2(g)&&g.call(sA,eA))};w2(r)?r.call(sA,eA,QA,z,Q):QA()}};return new Promise(U)}}function RlA(t){return function(i,r,s){const{retries:g=5,timeout:B=2e3,onError:Q,onRetrying:f,onRetryFailed:m}=t,M=ylA({retryFunction:s.value,settings:{retries:g,timeout:B},onError:Q,onRetrying:f,onRetryFailed:m,context:null});return s.value=function(...v){return M.apply(this,v)},s}}var MlA=Object.defineProperty,wlA=Object.getOwnPropertyDescriptor,SlA=(t,i,r,s)=>{for(var g=wlA(i,r),B=t.length-1,Q;B>=0;B--)(Q=t[B])&&(g=Q(i,r,g)||g);return g&&MlA(i,r,g),g};const Ho=kw.getInstance(),vlA=eD.getInstance(),C7=class _G{constructor(i){this._callService=i.callService}static getInstance(i){return _G.instance||(_G.instance=new _G(i)),_G.instance}addListenTuiCallEngineEvent(){var i,r;const s=(i=this._callService)==null?void 0:i.getTUICallEngineInstance();if(!s){console.warn(`${aA.PREFIX}add engine event listener failed, engine is empty.`);return}s.on(Yi.TUICallEvent.ERROR,this._handleError,this),s.on(Yi.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(r=Yi.TUICallEvent)!=null&&r.ON_CALL_BEGIN&&s.on(Yi.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),s.on(Yi.TUICallEvent.USER_ENTER,this._handleUserEnter,this),s.on(Yi.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),s.on(Yi.TUICallEvent.REJECT,this._handleInviteeReject,this),s.on(Yi.TUICallEvent.NO_RESP,this._handleNoResponse,this),s.on(Yi.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),s.on(Yi.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),s.on(Yi.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),s.on(Yi.TUICallEvent.SDK_READY,this._handleSDKReady,this),s.on(Yi.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),s.on(Yi.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),Yi.TUICallEvent.CALL_MESSAGE&&s.on(Yi.TUICallEvent.CALL_MESSAGE,this._handleCallMessage,this),Yi.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&s.on(Yi.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),s.on(Yi.TUICallEvent.CALLING_END,this._handleCallingEnd,this),s.on(Yi.TUICallEvent.CALL_TYPE_CHANGED,this._handleCallTypeChange,this),s.on(Yi.TUICallEvent.USER_VOICE_VOLUME,this._handleUserVoiceVolume,this),s.on(Yi.TUICallEvent.DEVICED_UPDATED,this._handleDeviceUpdate,this),s.on(Yi.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),s.on(Yi.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this)}removeListenTuiCallEngineEvent(){var i,r;const s=(i=this._callService)==null?void 0:i.getTUICallEngineInstance();s.off(Yi.TUICallEvent.ERROR,this._handleError,this),s.off(Yi.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(r=Yi.TUICallEvent)!=null&&r.ON_CALL_BEGIN&&s.off(Yi.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),s.off(Yi.TUICallEvent.USER_ENTER,this._handleUserEnter,this),s.off(Yi.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),s.off(Yi.TUICallEvent.REJECT,this._handleInviteeReject,this),s.off(Yi.TUICallEvent.NO_RESP,this._handleNoResponse,this),s.off(Yi.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),s.off(Yi.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),s.off(Yi.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),s.off(Yi.TUICallEvent.SDK_READY,this._handleSDKReady,this),s.off(Yi.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),s.off(Yi.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),Yi.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&s.off(Yi.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),s.off(Yi.TUICallEvent.CALLING_END,this._handleCallingEnd,this),s.off(Yi.TUICallEvent.CALL_TYPE_CHANGED,this._handleCallTypeChange,this),s.off(Yi.TUICallEvent.USER_VOICE_VOLUME,this._handleUserVoiceVolume,this),s.off(Yi.TUICallEvent.DEVICED_UPDATED,this._handleDeviceUpdate,this),s.off(Yi.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),s.off(Yi.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this)}_callerChangeToConnected(){var i,r,s;const g=Ho.getData(bA.CALL,aA.CALL_ROLE);Ho.getData(bA.CALL,aA.CALL_STATUS)===Ao.CALLING&&g===Ts.CALLER&&((r=(i=this._callService)==null?void 0:i._bellContext)==null||r.stop(),Ho.update(bA.CALL,aA.CALL_STATUS,Ao.CONNECTED),(s=this._callService)==null||s.startTimer())}_unNormalEventsManager(i,r){var s,g;console.log(`${aA.PREFIX}${r} event data: ${JSON.stringify(i)}.`);const B=Ho.getData(bA.CALL,aA.IS_GROUP),Q=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);switch(r){case Yi.TUICallEvent.REJECT:case Yi.TUICallEvent.LINE_BUSY:{const{userID:f}=gC(i);let m=r===Yi.TUICallEvent.REJECT?mc.OTHER_SIDE_REJECT_CALL:mc.OTHER_SIDE_LINE_BUSY,M="";B&&(M=(Q.find(v=>v.userId===f)||{}).displayUserInfo||f,m=r===Yi.TUICallEvent.REJECT?mc.REJECT_CALL:mc.IN_BUSY),Ho.update(bA.CALL,aA.TOAST_INFO,{content:{key:m,options:{userList:M}}}),f&&ej([f]),Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST).length===0&&((s=this._callService)==null||s._resetCallStore());break}case Yi.TUICallEvent.NO_RESP:{const{userIDList:f=[]}=gC(i),m=B?mc.TIMEOUT:mc.CALL_TIMEOUT,M=f.map(v=>(Q.find(U=>U.userId===v)||{}).displayUserInfo||v);Ho.update(bA.CALL,aA.TOAST_INFO,{content:{key:m,options:{userList:M.join()}}}),f.length>0&&ej(f);break}case Yi.TUICallEvent.ON_CALL_NOT_CONNECTED:{(g=this._callService)==null||g._resetCallStore();break}}}_handleError(i){var r;const{code:s,message:g}=i||{},B=Object.values(C8).indexOf(s);let Q="";if(B!==-1){const f=Object.keys(C8)[B];Q=Uu(B8[f]),Q&&Ho.update(bA.CALL,aA.TOAST_INFO,{content:B8[f],type:aA.ERROR})}(r=this._callService)==null||r.executeExternalAfterCalling(),console.error(`${aA.PREFIX}_handleError, errorCode: ${s}; errorMessage: ${Q||g}.`)}async _handleNewInvitationReceived(i){var r,s,g,B;console.log(`${aA.PREFIX}onCallReceived event data: ${JSON.stringify(i)}.`);const{callerId:Q="",callMediaType:f,inviteData:m={},calleeIdList:M=[],chatGroupID:v="",roomID:U,strRoomID:AA}=gC(i),z=Ho.getData(bA.CALL,aA.LOCAL_USER_INFO),sA=[Q,...M.filter(VA=>VA!==z.userId)],eA=f||m.callType,X=eA===Pr.AUDIO?mc.CALLEE_CALLING_AUDIO_MSG:mc.CALLEE_CALLING_VIDEO_MSG;let QA={[aA.CALL_ROLE]:Ts.CALLEE,[aA.IS_GROUP]:!!v||M.length>1,[aA.CALL_STATUS]:Ao.CALLING,[aA.CALL_MEDIA_TYPE]:eA,[aA.CALL_TIPS]:X,[aA.CALLER_USER_INFO]:{userId:Q},[aA.GROUP_ID]:v};l7(U,AA),Ho.updateStore(QA,bA.CALL),(r=this._callService)==null||r.executeExternalBeforeCalling(),(s=this._callService)!=null&&s.statusChanged&&((g=this._callService)==null||g.statusChanged({oldStatus:TI.IDLE,newStatus:TI.BE_INVITED}));const wA=await uk(sA,(B=this._callService)==null?void 0:B.getTim()),[HA]=wA.filter(VA=>VA.userId===Q);wA.length>0&&Ho.updateStore({[aA.REMOTE_USER_INFO_LIST]:wA,[aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:wA,[aA.CALLER_USER_INFO]:{userId:Q,nick:HA?.nick||"",avatar:HA?.avatar||"",displayUserInfo:HA?.remark||HA?.nick||Q}},bA.CALL)}async _handleOnCallBegin(i){var r,s;(s=(r=this._callService)==null?void 0:r._bellContext)==null||s.stop(),this._callerChangeToConnected(),Ho.update(bA.CALL,aA.CALL_TIPS,{text:"answered",duration:2e3}),await this._callService.openMicrophone(),console.log(`${aA.PREFIX}accept event data: ${JSON.stringify(i)}.`)}async _handleUserEnter(i){const{userID:r,data:s}=gC(i);this._callerChangeToConnected(),await this._addUserToRemoteUserInfoList(r);let g=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);g=g.map(B=>(B.userId===r&&(B.isEnter=!0),B)),g.length>0&&(Ho.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,g),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,g),vlA.updateViewBackgroundUserId("remote")),console.log(`${aA.PREFIX}userEnter event data: ${JSON.stringify(i)}.`)}_handleUserLeave(i){console.log(`${aA.PREFIX}userLeave event data: ${JSON.stringify(i)}.`);const{data:r,userID:s}=gC(i);if(Ho.getData(bA.CALL,aA.IS_GROUP)){const g=(Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST).find(B=>B.userId===s)||{}).displayUserInfo||s;Ho.update(bA.CALL,aA.TOAST_INFO,{content:{key:mc.END_CALL,options:{userList:g}}})}s&&ej([s])}_handleInviteeReject(i){this._unNormalEventsManager(i,Yi.TUICallEvent.REJECT)}_handleNoResponse(i){this._unNormalEventsManager(i,Yi.TUICallEvent.NO_RESP)}_handleLineBusy(i){this._unNormalEventsManager(i,Yi.TUICallEvent.LINE_BUSY)}_handleCallNotConnected(i){var r,s,g;(s=(r=this==null?void 0:this._callService)==null?void 0:r._cleanupAvoidRepeatCallState)==null||s.call(r),(g=this._callService)==null||g.executeExternalAfterCalling(),this._unNormalEventsManager(i,Yi.TUICallEvent.ON_CALL_NOT_CONNECTED)}async _handleOnUserInviting(i){const{userID:r}=gC(i);r&&r!==Ho.getData(bA.CALL,aA.LOCAL_USER_INFO).userId&&await this._addUserToRemoteUserInfoList(r)}_handleCallingEnd(i){var r,s;console.log(`${aA.PREFIX}callEnd event data: ${JSON.stringify(i)}.`),(r=this._callService)==null||r.executeExternalAfterCalling(),(s=this._callService)==null||s._resetCallStore()}async _handleSDKReady(i){var r;let s=Ho.getData(bA.CALL,aA.LOCAL_USER_INFO);s=await dlA(s.userId,(r=this._callService)==null?void 0:r.getTim()),Ho.update(bA.CALL,aA.LOCAL_USER_INFO,s),Ho.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,s)}_handleKickedOut(i){var r,s,g;console.log(`${aA.PREFIX}kickOut event data: ${JSON.stringify(i)}.`),(r=this._callService)!=null&&r.kickedOut&&((s=this._callService)==null||s.kickedOut(i)),Ho.update(bA.CALL,aA.CALL_TIPS,mc.KICK_OUT),(g=this._callService)==null||g._resetCallStore()}_messageSentByMe(i){var r,s;const g=i?.data;(r=this._callService)!=null&&r.onMessageSentByMe&&((s=this._callService)==null||s.onMessageSentByMe(g))}_handleCallMessage(i){const r=gC(i);this._callService._chatCombine.callTUIService({message:r})}_handleCallTypeChange(i){const{newCallType:r,type:s}=gC(i);Ho.update(bA.CALL,aA.CALL_MEDIA_TYPE,r||s)}_handleNetworkQuality(i){const{networkQualityList:r=[]}=gC(i);Ho.update(bA.CALL,aA.NETWORK_STATUS,r);const s=Ho.getData(bA.CALL,aA.IS_GROUP),g=Ho.getData(bA.CALL,aA.LOCAL_USER_INFO);if(Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST),!s&&r.find(B=>g?.userId===B?.userId&&B?.quality>=HEA)){Ho.update(bA.CALL,aA.CALL_TIPS,mc.LOCAL_NETWORK_IS_POOR);return}}async _startRemoteView(i){var r;if(!i){console.warn(`${aA.PREFIX}_startRemoteView userID is empty`);return}if(!document.getElementById(i))return console.warn(`${aA.PREFIX}_startRemoteView can't find HTMLElement sid: ${i}`),Promise.reject();try{const s=Ho.getData(bA.CALL,aA.DISPLAY_MODE);await((r=this._callService)==null?void 0:r.getTUICallEngineInstance().startRemoteView({userID:i,videoViewDomID:i,options:{objectFit:s}}))}catch(s){return console.error(`${aA.PREFIX}_startRemoteView error: ${s}.`),Promise.reject(s)}}_setRemoteUserInfoAudioVideoAvailable(i,r,s){let g=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);g=g.map(B=>{if(B.userId===s){if(r===aA.AUDIO)return{...B,isAudioAvailable:i};if(r===aA.VIDEO)return{...B,isVideoAvailable:i}}return B}),g.length>0&&(Ho.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,g),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,g))}async _handleUserVideoAvailable(i){const{userID:r,isVideoAvailable:s}=gC(i);console.log(`${aA.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(i)}.`),this._setRemoteUserInfoAudioVideoAvailable(s,aA.VIDEO,r);try{s&&await this._startRemoteView(r)}catch(g){console.error(`${aA.PREFIX}_startRemoteView failed, error: ${g}.`)}}_handleUserAudioAvailable(i){const{userID:r,isAudioAvailable:s}=gC(i);console.log(`${aA.PREFIX}_handleUserAudioAvailable event data: ${JSON.stringify(i)}.`),this._setRemoteUserInfoAudioVideoAvailable(s,aA.AUDIO,r)}_handleUserVoiceVolume(i){try{const{volumeMap:r}=gC(i);if((r||[]).length===0)return;const s=Ho.getData(bA.CALL,aA.LOCAL_USER_INFO);let g=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);const[B]=r.filter(m=>m.userId===s.userId),Q=r.reduce((m,M)=>M.userId!==s.userId?{...m,[M.userId]:M.audioVolume}:m,{});s.volume=B.audioVolume,g=g.map(m=>({...m,volume:Q[m.userId]}));const f={[aA.LOCAL_USER_INFO]:s,[aA.REMOTE_USER_INFO_LIST]:g};Ho.updateStore(f,bA.CALL)}catch(r){console.debug(r)}}_handleDeviceUpdate(i){const{cameraList:r,microphoneList:s,speakerList:g,currentCamera:B,currentMicrophone:Q,currentSpeaker:f}=i;Ho.update(bA.CALL,aA.DEVICE_LIST,{cameraList:r,microphoneList:s,speakerList:g,currentCamera:B,currentMicrophone:Q,currentSpeaker:f})}async _addUserToRemoteUserInfoList(i){var r;let s=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);if(!s.find(g=>g?.userId===i)){s.push({userId:i}),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,s),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,s);const[g]=await uk([i],(r=this._callService)==null?void 0:r.getTim());s=Ho.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST),s.forEach(B=>{B?.userId===i&&(B=Object.assign(B,g))}),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,s),Ho.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,s)}}};SlA([RlA({retries:5,timeout:200,onRetrying(t){console.warn(`${aA.PREFIX}_startRemoteView, retrying [${t}]`)}})],C7.prototype,"_startRemoteView");let NlA=C7;const IC=kw.getInstance();class Ew{constructor(i){this.eventListeners=new Map,this.getTranscriberManager=()=>{var r,s;const g=(r=this._callService)==null?void 0:r.getTUICallEngineInstance();if(!g)return console.warn(`${aA.PREFIX}Failed to get call engine instance.`),null;const B=(s=g.getTRTCCloudInstance)==null?void 0:s.call(g);return!B||!B.getAITranscriberManager?(console.warn(`${aA.PREFIX}AI Transcriber not supported.`),null):B.getAITranscriberManager()},this.triggerEvent=(r,s)=>{const g=this.eventListeners.get(r);g&&g.forEach(B=>{try{B(s)}catch(Q){console.error(`${aA.PREFIX}Error in event callback for ${r}:`,Q)}})},this.startRealtimeTranscriber=async r=>{const s=this.getTranscriberManager();if(!s)return null;try{const g=await s.startRealtimeTranscriber(r);return IC.update(bA.CALL,aA.TRANSCRIBER_ROBOT_ID,g),IC.update(bA.CALL,aA.IS_AI_TRANSCRIBER_RUNNING,!0),g}catch(g){throw console.error(`${aA.PREFIX}startRealtimeTranscriber error:`,g),g}},this.stopRealtimeTranscriber=async()=>{const r=this.getTranscriberManager();if(r)try{const s=IC.getData(bA.CALL,aA.TRANSCRIBER_ROBOT_ID);s&&await r.stopRealtimeTranscriber(s),IC.update(bA.CALL,aA.TRANSCRIBER_ROBOT_ID,null),IC.update(bA.CALL,aA.IS_AI_TRANSCRIBER_RUNNING,!1)}catch(s){throw console.error(`${aA.PREFIX}stopRealtimeTranscriber error:`,s),s}},this.updateRealTimeTranscriber=async r=>{const s=this.getTranscriberManager();if(!s)return null;try{const g=IC.getData(bA.CALL,aA.TRANSCRIBER_ROBOT_ID);g&&await s.stopRealtimeTranscriber(g);const B=await s.startRealtimeTranscriber(r);return IC.update(bA.CALL,aA.TRANSCRIBER_ROBOT_ID,B),B}catch(g){throw console.error(`${aA.PREFIX}updateRealTimeTranscriber error:`,g),g}},this.subscribeEvent=(r,s)=>{var g;this.eventListeners.has(r)||this.eventListeners.set(r,[]),(g=this.eventListeners.get(r))==null||g.push(s)},this.unsubscribeEvent=(r,s)=>{const g=this.eventListeners.get(r);if(g){const B=g.indexOf(s);B>-1&&g.splice(B,1),g.length===0&&this.eventListeners.delete(r)}},this.onReceiveTranscriberMessage=(r,s)=>{const{segmentId:g}=s;let B=IC.getData(bA.CALL,aA.REALTIME_MESSAGE_LIST)||[];const Q=B.findIndex(f=>f.segmentId===g);Q>=0?B[Q]=s:B.push(s),IC.update(bA.CALL,aA.REALTIME_MESSAGE_LIST,[...B]),this.triggerEvent("onReceiveTranscriberMessage",{roomId:r,message:s})},this.onRealtimeTranscriberStarted=(r,s,g)=>{this.triggerEvent("onRealtimeTranscriberStarted",{roomId:r,transcriberRobotId:s,sourceLanguage:g})},this.onRealtimeTranscriberStopped=(r,s)=>{this.triggerEvent("onRealtimeTranscriberStopped",{roomId:r,transcriberRobotId:s})},this.onRealtimeTranscriberError=(r,s,g,B)=>{this.triggerEvent("onRealtimeTranscriberError",{roomId:r,transcriberRobotId:s,error:g,errorMessage:B})},this.bindEvent=()=>{const r=this.getTranscriberManager();if(r)try{r.addListener({onReceiveTranscriberMessage:this.onReceiveTranscriberMessage,onRealtimeTranscriberStarted:this.onRealtimeTranscriberStarted,onRealtimeTranscriberStopped:this.onRealtimeTranscriberStopped,onRealtimeTranscriberError:this.onRealtimeTranscriberError})}catch(s){console.error(`${aA.PREFIX}bindEvent error:`,s)}},this.unbindEvent=()=>{const r=this.getTranscriberManager();if(r)try{r.removeListener({onReceiveTranscriberMessage:this.onReceiveTranscriberMessage,onRealtimeTranscriberStarted:this.onRealtimeTranscriberStarted,onRealtimeTranscriberStopped:this.onRealtimeTranscriberStopped,onRealtimeTranscriberError:this.onRealtimeTranscriberError})}catch(s){console.error(`${aA.PREFIX}unbindEvent error:`,s)}},this.reset=()=>{IC.update(bA.CALL,aA.TRANSCRIBER_ROBOT_ID,null),IC.update(bA.CALL,aA.REALTIME_MESSAGE_LIST,[]),IC.update(bA.CALL,aA.IS_AI_TRANSCRIBER_ENABLED,!1),this.eventListeners.clear()},this._callService=i.callService}static getInstance(i){return Ew.instance||(Ew.instance=new Ew(i)),Ew.instance}}var TlA=Object.defineProperty,GlA=Object.getOwnPropertyDescriptor,Ng=(t,i,r,s)=>{for(var g=GlA(i,r),B=t.length-1,Q;B>=0;B--)(Q=t[B])&&(g=Q(i,r,g)||g);return g&&TlA(i,r,g),g};const Pi=I7.getInstance(),me=kw.getInstance(),rp=eD.getInstance();rp.setTUIStore(me);const p8="4.4.6",f8="vue3",Xs=class bG{constructor(){this._aiAssistant=null,this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=Aj(),this._bellContext=null,this._isFromChat=!1,this._currentGroupId="",this._offlinePushInfo=null,this._permissionCheckTimer=null,this._chatCombine=null,this._engineEventHandler=null,this._isInitialized=!1,this._handleCallStatusChange=async i=>{var r,s,g,B,Q,f;try{const m={callRole:me.getData(bA.CALL,aA.CALL_ROLE),callStatus:me.getData(bA.CALL,aA.CALL_STATUS)};if((s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallkit._handleCallStatusChange.start",data:{bellParams:m}}),this._bellContext.setBellProperties(m),i===Ao.CALLING)(g=this==null?void 0:this._bellContext)==null||g.play();else{if((Q=(B=this._tuiCallEngine)==null?void 0:B.reportLog)==null||Q.call(B,{name:"TUICallkit._bellContext.stop"}),i===Ao.CONNECTED){const M=me.getData(bA.CALL,aA.IS_GROUP),v=me.getData(bA.CALL,aA.CALL_MEDIA_TYPE),U=me.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST),AA=M?TI.DIALING_GROUP:TI.DIALING_C2C;me.update(bA.CALL,aA.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:AA,newStatus:c2()}),!M&&v===Pr.VIDEO&&this.switchScreen(U[0].domId)}await((f=this==null?void 0:this._bellContext)==null?void 0:f.stop())}}catch(m){console.warn(`${aA.PREFIX}handleCallStatusChange, ${m}.`)}},console.log(`${aA.PREFIX}version: ${p8}`),this._wasmReadyPromise=new Promise(i=>{this._wasmReadyResolve=i}),this._loadWasm(),this._watchTUIStore(),this._engineEventHandler=NlA.getInstance({callService:this}),this._chatCombine=cw.getInstance({callService:this}),this._aiAssistant=Ew.getInstance({callService:this}),IlA(this.handleExceptionExit.bind(this))}static getInstance(){return bG.instance||(bG.instance=new bG),bG.instance}_loadWasm(){Yi.TUICallEngine.once("ready",()=>this._wasmReadyResolve())}async init(i){if(this._isInitialized){console.warn("TUICallKit has already been initialized.");return}await this._wasmReadyPromise,this._isInitialized||(this._doInit(i),this._isInitialized=!0)}async _doInit(i){var r,s,g,B,Q,f;try{if(this._tuiCallEngine)return;let{userID:m,tim:M,userSig:v,sdkAppID:U,SDKAppID:AA,isFromChat:z,component:sA=oW.TUI_CALL_KIT}=i;this._TUICore&&(U=this._TUICore.SDKAppID,M=this._TUICore.tim),this._tim=M,console.log(`${aA.PREFIX}init sdkAppId: ${U||AA}, userId: ${m}`);let eA="web";eA=`${eA}-${f8}`,this._tuiCallEngine=Yi.TUICallEngine.createInstance({tim:M,SDKAppID:U||AA,frameWork:f8,language:6,callkitVersion:p8,isFromChat:z||!1,component:sA,scene:eA}),rp.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext&&((r=this._bellContext)==null||r.destroy()),this._bellContext=new QlA,me.update(bA.CALL,aA.LOCAL_USER_INFO,{userId:m}),me.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:m}),rp.updateViewBackgroundUserId("local"),(s=this._aiAssistant)==null||s.bindEvent(),await this._tuiCallEngine.login({userID:m,userSig:v,assetsPath:""});const X=me.getData(bA.CALL,aA.CUSTOM_UI_CONFIG),QA=(B=(g=this._tuiCallEngine)==null?void 0:g.getTRTCCloudInstance)==null?void 0:B.call(g);QA?.callExperimentalAPI(JSON.stringify({api:"enableAutoPlayDialog",params:{enable:0}})),(f=(Q=this._tuiCallEngine)==null?void 0:Q.reportLog)==null||f.call(Q,{name:"TUICallkit.init",data:{uiConfig:X}})}catch(m){throw console.error(`${aA.PREFIX}init failed, error: ${m}.`),m}}async destroyed(){var i,r,s;try{this._isInitialized=!1;const g=me.getData(bA.CALL,aA.CALL_STATUS);if(g!==Ao.IDLE)throw new Error(`please destroyed when status is idle, current status: ${g}`);this._tuiCallEngine&&(this._removeListenTuiCallEngineEvent(),await this._tuiCallEngine.destroyInstance(),this._tuiCallEngine=null),(i=this._aiAssistant)==null||i.unbindEvent(),(r=this._aiAssistant)==null||r.reset(),(s=this._bellContext)==null||s.destroy(),this._bellContext=null}catch(g){throw console.error(`${aA.PREFIX}destroyed failed, error: ${g}.`),g}}async inviteUser(i){if(me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE)try{const{userIDList:r}=i;let s=await uk(r,this.getTim());const g=me.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST);if(r.filter(B=>!g.some(Q=>Q.userId===B)).length===0)return;me.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,[...g,...s]),me.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...g,...s]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(i)}catch(r){console.error(`${aA.PREFIX}inviteUser failed, error: ${r}.`)}}async calls(i){if(me.getData(bA.CALL,aA.CALL_STATUS)===Ao.IDLE)try{me.update(bA.CALL,aA.PUSHER_ID,aA.NEW_PUSHER);const{userIDList:r,type:s,chatGroupID:g,offlinePushInfo:B}=i;if(me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE)return;const Q=r.map(m=>({userId:m}));await this._updateCallStoreBeforeCall(s,Q,g),this.executeExternalBeforeCalling(),i.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...B};const f=await this._tuiCallEngine.calls(i);await this._updateCallStoreAfterCall(r,f)}catch(r){QG(r),this._handleCallError(r,"calls")}}async join(i){if(me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.CONNECTED)try{me.update(bA.CALL,aA.PUSHER_ID,aA.NEW_PUSHER);const r={[aA.CALL_ROLE]:Ts.CALLEE,[aA.IS_GROUP]:!0,[aA.CALL_STATUS]:Ao.CONNECTED,[aA.CALL_MEDIA_TYPE]:me.getData(bA.CALL,aA.CALL_MEDIA_TYPE)||Pr.AUDIO};me.updateStore(r,bA.CALL);const s=await this._tuiCallEngine.join(i);me.update(bA.CALL,aA.IS_CLICKABLE,!0),this.startTimer(),tj(this._tuiCallEngine),await this._tuiCallEngine.setVideoQuality(me.getData(bA.CALL,aA.VIDEO_RESOLUTION));const g=me.getData(bA.CALL,aA.LOCAL_USER_INFO);me.update(bA.CALL,aA.LOCAL_USER_INFO,{...g,isEnter:!0}),me.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...g,isEnter:!0}),await this.openMicrophone(),Hm(!0,aA.AUDIO)}catch(r){QG(r),this._handleCallError(r,"join")}}getTUICallEngineInstance(){return(this==null?void 0:this._tuiCallEngine)||null}setLogLevel(i){var r;(r=this==null?void 0:this._tuiCallEngine)==null||r.setLogLevel(i)}setLanguage(i){i&&Object.values(o7).includes(i)&&(me.update(bA.CALL,aA.LANGUAGE,i),me.update(bA.CALL,aA.TRANSLATE,Uu.bind(null)))}enableFloatWindow(i){me.update(bA.CALL,aA.ENABLE_FLOAT_WINDOW,i)}async setSelfInfo(i){const{nickName:r,avatar:s}=i;try{await this._tuiCallEngine.setSelfInfo({nickName:r,avatar:s})}catch(g){console.error(`${aA.PREFIX}setSelfInfo failed, error: ${g}.`)}}async enableVirtualBackground(i){me.update(bA.CALL,aA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND,i)}async enableAIVoice(i){try{await this._tuiCallEngine.enableAIVoice(i),console.log(`${aA.PREFIX}enableAIVoice: ${i}.`)}catch(r){throw console.error(`${aA.PREFIX}enableAIVoice failed, error: ${r}.`),r}}async enableAITranscriber(i){try{me.update(bA.CALL,aA.IS_AI_TRANSCRIBER_ENABLED,i),console.log(`${aA.PREFIX}enableAITranscriber: ${i}.`)}catch(r){throw console.error(`${aA.PREFIX}enableAITranscriber failed, error: ${r}.`),r}}async setCallingBell(i){let r=!0;if(r=await VEA(i),!r){console.warn(`${aA.PREFIX}setCallingBell failed, filePath: ${i}.`);return}const s={calleeBellFilePath:i};this._bellContext.setBellProperties(s)}async enableMuteMode(i){try{const r={isMuteBell:i};this._bellContext.setBellProperties(r),await this._bellContext.setBellMute(i)}catch(r){console.warn(`${aA.PREFIX}enableMuteMode failed, error: ${r}.`)}}hideFeatureButton(i){rp.hideFeatureButton(i)}setLocalViewBackgroundImage(i){rp.setLocalViewBackgroundImage(i)}setRemoteViewBackgroundImage(i,r){rp.setRemoteViewBackgroundImage(i,r)}setLayoutMode(i){rp.setLayoutMode(i)}setCameraDefaultState(i){rp.setCameraDefaultState(i)}callExperimentalAPI(i){var r,s,g,B;const Q=JSON.parse(i);if(Q===i)return;const{api:f,params:m}=Q;if(!(!f||!m))try{switch(f){case"setAssetsPath":(s=(r=Yi.TUICallEngine)==null?void 0:r.callExperimentalAPI)==null||s.call(r,i);break;case"forceUseV2API":const{enable:M}=m;me.update(bA.CALL,aA.IS_FORCE_USE_V2_API,!!M);break;default:break}}catch(M){(B=(g=this._tuiCallEngine)==null?void 0:g.reportLog)==null||B.call(g,{name:"TUICallKit.callExperimentalAPI.fail",data:{error:M}})}}async accept(){var i,r,s,g;const B=me.getData(bA.CALL,aA.CALL_STATUS);if((r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.accept.start",data:{callStatus:B}}),B!==Ao.CONNECTED)try{me.update(bA.CALL,aA.CALL_STATUS,Ao.CONNECTED),tj(this._tuiCallEngine);const Q=await this._tuiCallEngine.accept();await this._handleAcceptResponse(Q)}catch(Q){if((g=(s=this._tuiCallEngine)==null?void 0:s.reportLog)==null||g.call(s,{name:"TUICallKit.accept.fail",level:"error",error:Q}),u8(Q))return;QG(Q),ij(Q,Pr.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async _handleAcceptResponse(i){var r,s;if(i){(s=this._chatCombine)==null||s.callTUIService({message:(r=i?.data)==null?void 0:r.message}),me.update(bA.CALL,aA.IS_CLICKABLE,!0),this.startTimer();const g=me.getData(bA.CALL,aA.CALL_MEDIA_TYPE),B=this._getFeatureButtonDefaultState(gD.Camera)===Bk.Close;g===Pr.VIDEO&&!B&&await this.openCamera(aA.LOCAL_VIDEO),await this._tuiCallEngine.setVideoQuality(me.getData(bA.CALL,aA.VIDEO_RESOLUTION));const Q=me.getData(bA.CALL,aA.LOCAL_USER_INFO);me.update(bA.CALL,aA.LOCAL_USER_INFO,{...Q,isEnter:!0}),me.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...Q,isEnter:!0}),Hm(!0,aA.AUDIO)}}async hangup(){if(me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE){try{const i=await this._tuiCallEngine.hangup();i?.forEach(r=>{var s,g;r?.code===0&&((g=this._chatCombine)==null||g.callTUIService({message:(s=r?.data)==null?void 0:s.message}))})}catch(i){QG(i),console.debug(i)}this._resetCallStore()}}async reject(){var i,r;if(me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE){try{const s=await this._tuiCallEngine.reject();s?.code===0&&((r=this._chatCombine)==null||r.callTUIService({message:(i=s?.data)==null?void 0:i.message}))}catch(s){QG(s),console.debug(s)}this._resetCallStore()}}async openCamera(i){try{if(Pi.isH5||Pi.isWeChat){const r=me.getData(bA.CALL,aA.CAMERA_POSITION)===zm.FRONT;this._tuiCallEngine.openCamera(i,r)}else await this._tuiCallEngine.openCamera(i);Hm(!0,aA.VIDEO)}catch(r){ij(r,Pr.VIDEO,this._tuiCallEngine),console.error(`${aA.PREFIX}openCamera error: ${r}.`)}}async closeCamera(){try{await this._tuiCallEngine.closeCamera(),Hm(!1,aA.VIDEO)}catch(i){console.error(`${aA.PREFIX}closeCamera error: ${i}.`)}}async openMicrophone(){try{await this._tuiCallEngine.openMicrophone(),Hm(!0,aA.AUDIO)}catch(i){console.error(`${aA.PREFIX}openMicrophone failed, error: ${i}.`)}}async closeMicrophone(){try{await this._tuiCallEngine.closeMicrophone(),Hm(!1,aA.AUDIO)}catch(i){console.error(`${aA.PREFIX}closeMicrophone failed, error: ${i}.`)}}unMuteSpeaker(){var i,r;try{const s=(r=(i=this._tuiCallEngine)==null?void 0:i.getTRTCCloudInstance)==null?void 0:r.call(i);s&&(s.muteAllRemoteAudio(!1),me.update(bA.CALL,aA.IS_MUTE_SPEAKER,!1))}catch(s){console.error(`${aA.PREFIX}unMuteSpeaker failed, error: ${s}.`)}}muteSpeaker(){var i,r;try{const s=(r=(i=this._tuiCallEngine)==null?void 0:i.getTRTCCloudInstance)==null?void 0:r.call(i);s&&(s.muteAllRemoteAudio(!0),me.update(bA.CALL,aA.IS_MUTE_SPEAKER,!0))}catch(s){console.error(`${aA.PREFIX}muteSpeaker failed, error: ${s}.`)}}switchScreen(i){i&&me.update(bA.CALL,aA.BIG_SCREEN_USER_ID,i)}async switchCallMediaType(){var i,r;try{const s=me.getData(bA.CALL,aA.CALL_MEDIA_TYPE);if(s===Pr.AUDIO){console.warn(`${aA.PREFIX}switchCallMediaType failed, ${s} not support.`);return}const g=await this._tuiCallEngine.switchCallMediaType(Pr.AUDIO);g?.code===0&&((r=this._chatCombine)==null||r.callTUIService({message:(i=g?.data)==null?void 0:i.message})),me.update(bA.CALL,aA.CALL_MEDIA_TYPE,Pr.AUDIO);const B=me.getData(bA.CALL,aA.IS_GROUP)?TI.CALLING_GROUP_VIDEO:TI.CALLING_C2C_VIDEO,Q=c2();this.statusChanged&&this.statusChanged({oldStatus:B,newStatus:Q})}catch(s){console.error(`${aA.PREFIX}switchCallMediaType failed, error: ${s}.`)}}async switchCamera(){const i=me.getData(bA.CALL,aA.CAMERA_POSITION)===zm.BACK?zm.FRONT:zm.BACK;try{await this._tuiCallEngine.switchCamera(i),me.update(bA.CALL,aA.CAMERA_POSITION,i)}catch(r){console.error(`${aA.PREFIX}_switchCamera failed, error: ${r}.`)}}async setBlurBackground(i){try{await this._tuiCallEngine.setBlurBackground(i?JEA:0),me.update(bA.CALL,aA.ENABLE_VIRTUAL_BACKGROUND,i)}catch(r){console.error(`${aA.PREFIX}_setBlurBackground failed, error: ${r}.`)}}async switchDevice(i){try{await this._tuiCallEngine.switchDevice(i)}catch(r){console.error(`${aA.PREFIX}_switchDevice failed, error: ${r}.`)}}async getDeviceList(i){try{return await this._tuiCallEngine.getDeviceList(i)}catch(r){this._handleCallError(r,"call")}}_addListenTuiCallEngineEvent(){this._engineEventHandler.addListenTuiCallEngineEvent()}_removeListenTuiCallEngineEvent(){this._engineEventHandler.removeListenTuiCallEngineEvent()}setCallback(i){const{beforeCalling:r,afterCalling:s,onMinimized:g,onMessageSentByMe:B,kickedOut:Q,statusChanged:f}=i;r&&(this.beforeCalling=r),s&&(this.afterCalling=s),g&&(this.onMinimized=g),B&&(this.onMessageSentByMe=B),Q&&(this.kickedOut=Q),f&&(this.statusChanged=f)}toggleMinimize(){const i=me.getData(bA.CALL,aA.IS_MINIMIZED);me.update(bA.CALL,aA.IS_MINIMIZED,!i),console.log(`${aA.PREFIX}toggleMinimize: ${i} -> ${!i}.`),this.onMinimized&&this.onMinimized(i,!i)}executeExternalBeforeCalling(){this.beforeCalling&&this.beforeCalling()}executeExternalAfterCalling(){this.afterCalling&&this.afterCalling()}async handleExceptionExit(i){var r,s;try{const g=me.getData(bA.CALL,aA.CALL_STATUS),B=me.getData(bA.CALL,aA.CALL_ROLE);if((s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallkit.handleExceptionExit",data:{callStatus:g,callRole:B}}),g===Ao.IDLE)return;g===Ao.CALLING&&(B===Ts.CALLER?await(this==null?void 0:this.hangup()):await(this==null?void 0:this.reject())),g===Ao.CONNECTED&&await(this==null?void 0:this.hangup()),this==null||this._resetCallStore()}catch(g){console.error(`${aA.PREFIX} handleExceptionExit failed, error: ${g}.`)}i&&(i.returnValue="")}setVideoDisplayMode(i){me.update(bA.CALL,aA.DISPLAY_MODE,i)}async setVideoResolution(i){var r;try{if(!i)return;me.update(bA.CALL,aA.VIDEO_RESOLUTION,i),await((r=this._tuiCallEngine)==null?void 0:r.setVideoQuality(i))}catch(s){console.warn(`${aA.PREFIX}setVideoResolution failed, error: ${s}.`)}}startTimer(){this._timerId===-1&&(this._startTimeStamp=Aj(),this._timerId=d8.run(aA.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(i,r){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!u8(i))throw ij(i,Pr.AUDIO,this._tuiCallEngine),console.error(`${aA.PREFIX}${r} failed, error: ${i}.`),this._resetCallStore(),i}async _updateCallStoreBeforeCall(i,r,s){let g=mc.CALLER_CALLING_MSG;(s||me.getData(bA.CALL,aA.IS_MINIMIZED)||r.length>1)&&(g=mc.CALLER_GROUP_CALLING_MSG),console.warn(`呼叫前更新 call status: ${!!s||r.length>1}, ${s}, ${JSON.stringify(r)}`);let B={[aA.CALL_MEDIA_TYPE]:i,[aA.CALL_ROLE]:Ts.CALLER,[aA.REMOTE_USER_INFO_LIST]:r,[aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:r,[aA.IS_GROUP]:!!s||r.length>1,[aA.CALL_TIPS]:g,[aA.GROUP_ID]:s};me.updateStore({...B,[aA.CALL_STATUS]:Ao.CALLING},bA.CALL),this.statusChanged&&this.statusChanged({oldStatus:TI.IDLE,newStatus:s||r.length>1?TI.DIALING_GROUP:TI.DIALING_C2C}),tj(this._tuiCallEngine);const Q=await uk(r.map(f=>f.userId),this.getTim());Q.length>0&&(me.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,Q),me.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,Q))}async _updateCallStoreAfterCall(i,r){var s,g;if(r){me.update(bA.CALL,aA.IS_CLICKABLE,!0),l7(r?.roomID,r?.strRoomID);const B=me.getData(bA.CALL,aA.CALL_MEDIA_TYPE);if(r.code===0){(g=this._chatCombine)==null||g.callTUIService({message:(s=r?.data)==null?void 0:s.message});try{await this._tuiCallEngine.setVideoQuality(me.getData(bA.CALL,aA.VIDEO_RESOLUTION))}catch(m){console.warn(`${aA.PREFIX}setVideoQuality failed, error: ${m}.`)}}else{this._resetCallStore();return}const Q=this._getFeatureButtonDefaultState(gD.Camera)===Bk.Close;B===Pr.VIDEO&&!Q&&await this.openCamera(aA.LOCAL_VIDEO);const f=me.getData(bA.CALL,aA.LOCAL_USER_INFO);me.update(bA.CALL,aA.LOCAL_USER_INFO,{...f,isEnter:!0}),me.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...f,isEnter:!0}),Hm(!0,aA.AUDIO)}else this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=null,this._resetCallStore()}_getFeatureButtonDefaultState(i){var r;const{button:s}=me.getData(bA.CALL,aA.CUSTOM_UI_CONFIG);return(r=s?.[i])==null?void 0:r.state}_updateCallDuration(){const i=Math.round((Aj()-this._startTimeStamp)/1e3),r=E7(i);me.update(bA.CALL,aA.CALL_DURATION,r)}_stopTimer(){this._timerId!==-1&&(d8.clearTask(this._timerId),this._timerId=-1)}_cleanupAvoidRepeatCallState(i){var r,s;(s=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||s.call(r,{name:"TUICallkit._cleanupAvoidRepeatCallState",data:{methodName:i}});let g=[];i?g=[this[i]]:g=[this.calls,this.accept,this.hangup,this.reject,this.join,this.inviteUser],g?.forEach(B=>{var Q;(Q=B?.clearCallState)==null||Q.call(B,this)})}_resetCallStore(){var i;this._cleanupAvoidRepeatCallState(),(i=this._bellContext)==null||i.stop();const r=c2();this._stopTimer();let s=Object.keys(M2).filter(B=>{switch(M2[B]){case aA.CALL_STATUS:case aA.LANGUAGE:case aA.IS_GROUP:case aA.DISPLAY_MODE:case aA.VIDEO_RESOLUTION:case aA.ENABLE_FLOAT_WINDOW:case aA.LOCAL_USER_INFO:case aA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:case aA.IS_AI_TRANSCRIBER_ENABLED:case aA.IS_FORCE_USE_V2_API:case aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN:return!1;default:return!0}});s=s.map(B=>M2[B]),me.reset(bA.CALL,s),me.getData(bA.CALL,aA.CALL_STATUS)!==Ao.IDLE&&me.reset(bA.CALL,[aA.CALL_STATUS],!0),me.reset(bA.CALL,[aA.IS_MINIMIZED],!0),me.reset(bA.CALL,[aA.IS_EAR_PHONE],!0),me.reset(bA.CALL,[aA.PUSHER_ID],!0),me.reset(bA.CALL,[aA.ENABLE_VIRTUAL_BACKGROUND],!0),me.reset(bA.CALL,[aA.IS_MUTE_SPEAKER],!0),me.update(bA.CALL,aA.LOCAL_USER_INFO,{...me.getData(bA.CALL,aA.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),me.update(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...me.getData(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),me.update(bA.CALL,aA.REMOTE_USER_INFO_LIST,[]),me.update(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]),me.update(bA.CALL,aA.CAMERA_POSITION,zm.FRONT);const g=c2();r!==g&&this.statusChanged&&this.statusChanged({oldStatus:r,newStatus:g})}async getGroupMemberList(i,r){const s=me.getData(bA.CALL,aA.GROUP_ID);return await hlA(s,this.getTim(),i,r)}async getGroupProfile(){const i=me.getData(bA.CALL,aA.GROUP_ID);return await plA(i,this.getTim())}_watchTUIStore(){me?.watch(bA.CALL,{[aA.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){me?.unwatch(bA.CALL,{[aA.CALL_STATUS]:this._handleCallStatusChange})}bindTUICore(i){this._TUICore=i}getTim(){var i,r;return this._tim?this._tim:this._tuiCallEngine?((i=this._tuiCallEngine)==null?void 0:i.tim)||((r=this._tuiCallEngine)==null?void 0:r.getTim()):(console.warn(`${aA.PREFIX}getTim warning: _tuiCallEngine Instance is not available.`),null)}setIsFromChat(i){this._isFromChat=i}setCurrentGroupId(i){this._currentGroupId=i}getCurrentGroupId(){return this._currentGroupId}setDefaultOfflinePushInfo(i){this._offlinePushInfo=i}getDefaultOfflinePushInfo(){const i=me.getData(bA.CALL,aA.LOCAL_USER_INFO);return this._offlinePushInfo?this._offlinePushInfo:{title:i?.displayUserInfo||"",description:Uu("you have a new call")}}async getCallMessage(i){return await this._chatCombine.getCallKitMessage(i,this.getTim())}};Ng([vg()],Xs.prototype,"init");Ng([vg()],Xs.prototype,"inviteUser");Ng([vg()],Xs.prototype,"calls");Ng([vg()],Xs.prototype,"join");Ng([vg()],Xs.prototype,"accept");Ng([vg()],Xs.prototype,"hangup");Ng([vg()],Xs.prototype,"reject");Ng([vg()],Xs.prototype,"openCamera");Ng([vg()],Xs.prototype,"closeCamera");Ng([vg()],Xs.prototype,"openMicrophone");Ng([vg()],Xs.prototype,"closeMicrophone");Ng([vg()],Xs.prototype,"unMuteSpeaker");Ng([vg()],Xs.prototype,"muteSpeaker");Ng([vg()],Xs.prototype,"switchScreen");Ng([vg()],Xs.prototype,"switchCallMediaType");Ng([vg()],Xs.prototype,"switchCamera");Ng([vg()],Xs.prototype,"setBlurBackground");Ng([vg()],Xs.prototype,"switchDevice");let klA=Xs;const oo=klA.getInstance(),B7="CallInfoContextKey",u7="CallerUserInfoContextKey",Q7="UserInfoExcludeVolumeContextKey",d7="FocusContextKey",h7="ButtonPanelContextKey",p7="FloatWindowContextKey",f7="IsClickableContextKey",m7="PopoverContextKey",D7="CustomUIConfigContextKey",y7="translateContextKey";function _lA(){return rI(u7)}function Pa(){return rI(B7)}function kY(t){const i=Ne([]),r=Ne(""),s=B=>{var Q,f,m;switch(t){case _I.CAMERA:i.value=B?.cameraList||[],r.value=((Q=B?.currentCamera)==null?void 0:Q.deviceId)||"";break;case _I.MICROPHONE:i.value=B?.microphoneList||[],r.value=((f=B?.currentMicrophone)==null?void 0:f.deviceId)||"";break;case _I.SPEAKER:i.value=B?.speakerList||[],r.value=((m=B?.currentSpeaker)==null?void 0:m.deviceId)||"";break}},g=B=>{r.value=B};return gs(()=>{me.watch(bA.CALL,{[aA.DEVICE_LIST]:s},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.DEVICE_LIST]:s})}),[{deviceList:i,currentDeviceId:r},{updateCurrentDeviceId:g}]}const m8=t=>typeof t=="object"&&t!==null,R7=(t,i)=>{if(!m8(t)||!m8(i))return t===i;if(t===i)return!0;const r=Object.keys(t),s=Object.keys(i);if(r.length!==s.length)return!1;for(let g in t)if(!R7(t[g],i[g]))return!1;return!0};function blA(t){const i=document.getElementById(t);!document.fullscreenElement&&i?i.requestFullscreen().catch(r=>{console.error(`Error attempting to enable fullscreen mode: ${r.message} (${r.name})`)}):document.exitFullscreen()}function _Y(t){if(typeof t!="object"||t===null)return t;let i=Array.isArray(t)?[]:{};for(let r in t)t.hasOwnProperty(r)&&(i[r]=_Y(t[r]));return i}const LlA=500;function sW(t,i){if(typeof t!="function"||i!=null&&typeof i!="function")throw new TypeError("Expected a function");const r=function(...s){const g=i?i.apply(this,s):s[0],B=r.cache;if(B.has(g))return B.get(g);const Q=t.apply(this,s);return r.cache=B.set(g,Q)||B,Q};return r.cache=new(sW.Cache||Map),r}sW.Cache=Map;function FlA(t){const i=sW(t,r=>{const{cache:s}=i;return s.size===LlA&&s.clear(),r});return i}const UlA=46,OlA=/\\(\\)?/g,xlA=RegExp(`[^.[\\]]+|\\[(?:([^"'][^[]*)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))`,"g"),M7=FlA(t=>{const i=[];return t.charCodeAt(0)===UlA&&i.push(""),t.replace(xlA,(r,s,g,B)=>{let Q=r;g?Q=B.replace(OlA,"$1"):s&&(Q=s.trim()),i.push(Q)}),i});function Zm(t,i,r){if(typeof t!="object"||!i)return;const s=M7(i);let g=t;for(let B=0;B<s.length;B++){if(g==null)return;const Q=s[B];B!==s.length-1?g=g?.[Q]:Object.assign(g,{[Q]:r})}}function dG(t,i,r){if(typeof t!="object")return;const s=M7(i);let g=t;for(let B=0;B<s.length;B++){if(g==null)return;const Q=s[B];B!==s.length-1?g=g?.[Q]:Array.isArray(g)&&g.splice(Q,0,r)}}function w7(t){return t==null||typeof t=="string"&&t.trim().length===0?!0:Array.isArray(t)||typeof t=="object"?Object.keys(t).length===0:!1}function jj(t,i,r,s,g){Object.keys(t).forEach(B=>{const Q=t[B],f=w7(r)?B:`${r}.${B}`;if(typeof Q=="object")if(Array.isArray(Q))for(let m=0;m<Q.length;m++){const M=`${f}.${m}`;jj(Q[m],i,M,s,g)}else jj(Q,i,f,s,g);else if(i(Q)){const m=typeof g=="function"?g({key:Q,value:f}):f;s.push(m)}})}function S7(){const t=Ne(),i=Ne(me.getData(bA.CALL,aA.REMOTE_USER_INFO_LIST)),r=B=>{(Pi.isWeChat?B?.enableMic:B?.isAudioAvailable)&&(t.value={...t.value,localVideo:B?.volume})},s=B=>{const Q={};(B.length!==i.value.length||!R7(B,i.value))&&(i.value=B,i.value.forEach(f=>{if(Pi.isWeChat?f.hasAudio:f.isAudioAvailable){const m=Pi.isWeChat?f.userID:f.domId;Q[m]=f.volume}}),t.value={...t.value,...Q})};let g={[aA.LOCAL_USER_INFO]:r,[aA.REMOTE_USER_INFO_LIST]:s};return Pi.isUniPlatform&&(g={[aA.PUSHER]:r,[aA.PLAYER]:s}),gs(()=>{me.watch(bA.CALL,g,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,g)}),t}function YlA(){const t=Ne(""),i=Ne(!0),r=Ne(0),s=g=>{typeof g=="object"?(t.value=g.text,r.value=g.duration||0):t.value=g};return gs(()=>{me.watch(bA.CALL,{[aA.CALL_TIPS]:s},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.CALL_TIPS]:s})}),{tip:t,show:i,duration:r}}function PlA(){const t=Ne(me.getData(bA.CALL,aA.NETWORK_STATUS)),i=r=>{t.value=r};return gs(()=>{me.watch(bA.CALL,{[aA.NETWORK_STATUS]:i},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.NETWORK_STATUS]:i})}),{netWorkQualityList:t}}function v7(){const t=Ne(me.getData(bA.CALL,aA.PLAYER)),i=s=>{t.value=s?.map(g=>{const{userID:B,hasVideo:Q,hasAudio:f}=g;return{userID:B,hasVideo:Q,hasAudio:f}})},r={[aA.PLAYER]:i};return gs(()=>{me.watch(bA.CALL,r,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,r)}),t}function fl(){return rI(Q7)}function gW(){const t=Ne(me.getData(bA.CALL,aA.CALL_DURATION)),i=r=>{t.value=r};return gs(()=>{me.watch(bA.CALL,{[aA.CALL_DURATION]:i},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.CALL_DURATION]:i})}),{callDuration:t}}function Sk(){return rI(h7,{status:Ne("open")})}function N7(){return rI(d7,Ne("open"))}function uB(){return rI(p7)}function JlA(){return rI(f7)}function bY(){return rI(m7)}const HlA=(t,i)=>{const r=[{i:0,x:0,y:0,w:i,h:i}];for(let s=1;s<t;s++){const g=r[s-1].x+i===12;r[s]={i:s,x:r[s-1].x+i===12?0:r[s-1].x+i,y:r[s-1].y+(g?i:0),w:i,h:i}}return t===3&&(r[t-1].x+=3),t>3&&Pi.isPC&&t%3===2&&(r[t-1].x+=2,r[t-2].x+=2),r};function VlA(t,i){const{isFloatWindow:r}=Mo(uB()),s=Ne();return Un([t,i,r],()=>{if(r.value){const M=[];for(let v=0;v<i.value;v++)M[v]={i:v,x:0,y:0,w:12,h:12};s.value=M;return}const g=Object.keys(Array.from({length:i.value})),B=i.value<=4?6:4,Q=HlA(i.value,B);s.value=Q;let f,m;if(t.value!==null){if(g.length<5){const M=g.concat();M.splice(t.value,1),M.unshift(t.value)}else m=t.value%3,f=Math.floor(t.value/3);if(g.length<5){const M=Q.findIndex(v=>v.i===t.value);if(M!==-1){const v=Q[0];Q[0]=Q[M],Q[M]=v;for(let U=0;U<Q.length;U++){const AA=Q[U];U===0?(AA.w+=6,AA.h+=6,AA.x=0,AA.y=0):(AA.x=(U-1)*4,AA.y=12,AA.w=4,AA.h=4)}}}else{let M;m===0?(Q[t.value+1]&&(Q[t.value+1].x+=4),Q[t.value+2]&&(Q[t.value+2].y+=4),M={i:t.value,x:0,y:f*4,w:8,h:8}):m===2?(M={i:t.value,x:4,y:f*4,w:8,h:8},Q[t.value-1].x=0,Q[t.value-1].y+=4):m===1&&(M={i:t.value,x:4,y:f*4,w:8,h:8},Q[t.value+1]&&(Q[t.value+1].x=0,Q[t.value+1].y+=4));const v=3-m;for(let U=t.value+v;U<Q.length;U++){const AA=Q[U];AA.y+=4}Q[t.value]=M}s.value=Q}},{immediate:!0}),s}function vk(){return rI(D7)}const qlA={calling:[[{name:"switchCamera",customStyle:{justifyContent:"flex-start"},props:{}},{name:"virtualBackground"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{}]],accept:[[{name:"switchCamera",customStyle:{justifyContent:"flex-start"},props:{}},{name:"virtualBackground"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{name:"reject",customStyle:{paddingTop:"6vh",justifyContent:"center"}},{},{name:"accept",customStyle:{paddingTop:"6vh",justifyContent:"center"}}]],connected:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{name:"virtualBackground",customStyle:{justifyContent:"center",paddingTop:"6vh"},props:{}},{name:"hangup",customStyle:{paddingTop:"6vh"}},{name:"switchCamera",customStyle:{justifyContent:"center",paddingTop:"6vh"},props:{}}]]},KlA={singleCall:{video:{calling:[[],[{},{name:"hangup"},{}]],accept:[[],[{name:"reject",customStyle:{justifyContent:"flex-end"}},{},{name:"accept",customStyle:{justifyContent:"flex-start"}}]],connected:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{name:"switchCamera",customStyle:{justifyContent:"center",paddingTop:"6vh"},props:{}}]]},audio:{calling:[[],[{},{name:"hangup"},{}]],accept:[[],[{name:"reject",customStyle:{justifyContent:"flex-end"}},{},{name:"accept",customStyle:{justifyContent:"flex-start"}}]],connected:[[],[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"hangup"},{name:"speaker",customStyle:{justifyContent:"flex-end"}}]]}},groupCall:{video:{calling:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{}]],accept:[[],[{name:"reject"},{name:"accept"}]],connected:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{}]],close_calling:[[{name:"microphone",props:{}},{name:"speaker"},{name:"camera",props:{}},{name:"hangup"}]],close_connected:[[{name:"microphone",props:{}},{name:"speaker"},{name:"camera",props:{}},{name:"hangup"}]]},audio:{calling:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{}]],accept:[[],[{name:"reject"},{name:"accept"}]],connected:[[{name:"microphone",customStyle:{justifyContent:"flex-start"},props:{}},{name:"speaker"},{name:"camera",customStyle:{justifyContent:"flex-end"},props:{}}],[{},{name:"hangup",customStyle:{paddingTop:"6vh"}},{}]],close_calling:[[{name:"microphone",props:{}},{name:"speaker"},{name:"camera",props:{}},{name:"hangup"}]],close_connected:[[{name:"microphone",props:{}},{name:"speaker"},{name:"camera",props:{}},{name:"hangup"}]]}}},jlA={singleCall:{video:{calling:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"hangup"}]],accept:[[{name:"camera",props:{}},{name:"reject"},{name:"accept"}]],connected:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"speaker"},{name:"hangup"}]]},audio:{calling:[[{name:"microphone",props:{}},{name:"hangup"}]],accept:[[{name:"reject"},{name:"accept"}]],connected:[[{name:"microphone",props:{}},{name:"speaker"},{name:"hangup"}]]}},groupCall:{video:{calling:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"inviteUser",props:{}},{name:"hangup"}]],accept:[[{name:"reject"},{name:"accept"}]],connected:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"speaker"},{name:"inviteUser",props:{}},{name:"hangup"}]]},audio:{calling:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"hangup"}]],accept:[[{name:"reject"},{name:"accept"}]],connected:[[{name:"camera",props:{}},{name:"microphone",props:{}},{name:"speaker"},{name:"inviteUser",props:{}},{name:"hangup"}]]}}},D8={pc:jlA,mobile:KlA};function T7(t){const i=_Y(t);return Zm(i,"mobile.singleCall.video",qlA),dG(i,"pc.singleCall.video.calling[0][2]",{name:"virtualBackground",props:{}}),dG(i,"pc.singleCall.video.accept[0][1]",{name:"virtualBackground",props:{}}),dG(i,"pc.singleCall.video.connected[0][3]",{name:"virtualBackground",props:{}}),dG(i,"pc.groupCall.video.calling[0][3]",{name:"virtualBackground",props:{}}),dG(i,"pc.groupCall.video.connected[0][4]",{name:"virtualBackground",props:{}}),i}function WlA(t,i,r){let s=_Y(t);return i?(Zm(s,"mobile.singleCall.video.connected[1][2].props.show",!0),r&&T7(s)):(Zm(s,"mobile.singleCall.video.connected[1][2].props.show",!1),r&&(Zm(s,"mobile.singleCall.video.connected[1][0].props.show",!1),Zm(s,"pc.singleCall.video.connected[0][3].props.show",!1),Zm(s,"pc.groupCall.video.connected[0][4].props.show",!1))),s}function zlA(){const{isShowEnableVirtualBackground:t,callStatus:i}=Mo(Pa()),r=vk(),{localUserInfoExcludeVolume:s}=Mo(fl()),g=rt(()=>s?.value.isVideoAvailable||!1),B=rt(()=>t.value&&!Pi.isH5),Q=Ne([]);return Un([r,t,g],()=>{let f=_Y(D8);B.value&&(f=T7(D8)),i.value===Ao.CONNECTED&&(f=WlA(f,g.value,B.value));const{button:m}=r.value,M=[];function v(AA){return Object.keys(m).includes(AA)}function U({key:AA,value:z}){var sA;const eA=z.split(".");let X=eA.slice(0,eA.length-1);const QA=eA.slice(0,eA.length-2);if(QA[QA.length-1]==="0")for(let wA=0;wA<3;wA++){let HA=QA.slice();HA.push(wA),HA.push("customStyle"),HA.push("justifyContent"),HA=HA.join("."),M.push({path:HA,value:"center"})}return X.push("props"),X.push("show"),X=X.join("."),{path:X,value:(sA=m?.[AA])==null?void 0:sA.show}}jj(f,v,"",M,U),M?.forEach(AA=>{Zm(f,AA.path,AA.value)}),Q.value=f},{immediate:!0}),Q}function G7(){const t=vk(),i=Ne(t.value.viewBackground);return Un(t,()=>{i.value=t.value.viewBackground}),i}function ZlA(){const t=Ne(me.getData(bA.CALL,aA.ROOM_ID)),i=Ne(me.getData(bA.CALL,aA.ROOM_ID_TYPE)),r=Ne(me.getData(bA.CALL,aA.GROUP_ID)),s=Ne(me.getData(bA.CALL,aA.CALL_MEDIA_TYPE)),g=Ne(me.getData(bA.CALL,aA.GROUP_CALL_MEMBERS)),B=Ne(me.getData(bA.CALL,aA.CALL_STATUS)),Q=Ne(me.getData(bA.CALL,aA.CALL_ID)),f=eA=>{t.value=eA},m=eA=>{r.value=eA},M=eA=>{s.value=eA},v=eA=>{g.value=eA},U=eA=>{B.value=eA},AA=eA=>{i.value=eA},z=eA=>{Q.value=eA},sA={[aA.ROOM_ID]:f,[aA.GROUP_ID]:m,[aA.CALL_MEDIA_TYPE]:M,[aA.GROUP_CALL_MEMBERS]:v,[aA.CALL_STATUS]:U,[aA.ROOM_ID_TYPE]:AA,[aA.CALL_ID]:z};return gs(()=>{me.watch(bA.CALL,sA,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,sA)}),{roomId:t,roomIdType:i,groupId:r,callMediaType:s,groupCallMembers:g,callStatus:B,callId:Q}}function Ca(){return rI(y7,Ne(slA))}function Nk(){const t=Ne(me.getData(bA.CALL,aA.IS_AI_TRANSCRIBER_ENABLED)),i=Ne(me.getData(bA.CALL,aA.IS_AI_TRANSCRIBER_RUNNING)),r=Ne([]),s=M=>M?M instanceof Map?Array.from(M.entries()).map(([v,U])=>({language:String(v),text:g(U)})):typeof M=="object"?Object.entries(M).map(([v,U])=>({language:String(v),text:g(U)})):[]:[],g=M=>{if(M==null)return"";if(typeof M=="string")return M;if(typeof M=="object")try{return JSON.stringify(M)}catch(v){return console.warn("Failed to stringify translation content:",v),"[Invalid Object]"}return String(M)},B=M=>M.map(v=>({roundId:v.segmentId,sender:v.speakerUserId,nick:"",text:v.sourceText,end:v.isCompleted,translation:s(v.translationTexts)})),Q=M=>{t.value=M||!1},f=M=>{i.value=M||!1},m=M=>{if(M&&M.length>0){const v=B(M);r.value=v}else r.value=[]};return gs(()=>{me.watch(bA.CALL,{[aA.IS_AI_TRANSCRIBER_ENABLED]:Q,[aA.IS_AI_TRANSCRIBER_RUNNING]:f,[aA.REALTIME_MESSAGE_LIST]:m});const M=me.getData(bA.CALL,aA.REALTIME_MESSAGE_LIST);M&&m(M)}),Ya(()=>{me.unwatch(bA.CALL,{[aA.IS_AI_TRANSCRIBER_ENABLED]:Q,[aA.IS_AI_TRANSCRIBER_RUNNING]:f,[aA.REALTIME_MESSAGE_LIST]:m})}),{isAITranscriberEnabled:t,isAITranscriberRunning:i,subtitleInfoList:r}}const XlA={customStyle:{type:Object},customClass:{type:String}},$lA=["start","center","end","space-around","space-between","space-evenly"],ACA=["top","middle","bottom"],eCA={gutter:{type:Number,default:0},justify:{type:String,values:$lA,default:"start"},align:{type:String,values:ACA,default:"top"},customStyle:{type:Object,default:()=>{}}};function ga(...t){const i=[],r={}.hasOwnProperty;for(let s=0;s<t.length;s++){const g=t[s];if(!g)continue;const B=typeof g;if(B==="string"||B==="number")i.push(g);else if(Array.isArray(g)){if(g.length){const Q=ga.apply(null,g);Q&&i.push(Q)}}else if(B==="object"){if(g.toString!==Object.prototype.toString&&!g.toString.toString().includes("[native code]")){i.push(g.toString());continue}for(const Q in g)r.call(g,Q)&&g[Q]&&i.push(Q)}}return i.join(" ")}const ID=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,tCA=typeof uni<"u"&&typeof uni>"u",k7=ID||tCA,iCA=typeof uni<"u",_7=function(){return(typeof uni<"u"||typeof window<"u")&&!k7}();(function(){return ID?wx:iCA?uni:window})();const dp=_7&&window&&window.navigator&&window.navigator.userAgent||"",oCA=/Android/i.test(dp),rCA=/(?:Windows Phone)/.test(dp),nCA=/(?:SymbianOS)/.test(dp),aCA=/iPad/i.test(dp)||/iPhone/i.test(dp)||/iPod/i.test(dp),b7=oCA||rCA||nCA||aCA,Dp=_7&&!b7;Dp&&dp.includes("Windows NT");Dp&&dp.includes("Mac");function tY(t){const i={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==void 0&&(i[r]=t[r]);return i}function sCA(){let t="unknow";return t=pj.split(".")[0],{version:pj,majorVersion:t}}function y8(t,i){const{key:r,value:s}=i;return t.find(g=>g[r]===s)}const L7="RowContextKey",ur="tk",LG={SUCCESS:"success",INFO:"info",WARNING:"warning",ERROR:"error"},gCA={options:{virtualHost:!0}},Ak=Ai({...gCA,__name:"Row",props:eCA,setup(t){const i=t,r=rt(()=>i.gutter);gE(L7,{gutter:r});const s=ga([`${ur}-row`,`${ur}-justify-${i.justify}`,`${ur}-align-${i.align}`]);return(g,B)=>(qA(),Ue("div",{class:Qi(W(s)),style:zr([g.customStyle])},[Dr(g.$slots,"default")],6))}}),ICA=["start","center","end","space-around","space-between","space-evenly"],cCA=["top","middle","bottom"],ECA={span:{type:Number,default:24},justify:{type:String,values:ICA,default:"start"},align:{type:String,values:cCA,default:"middle"},offset:{type:Number,default:0}},lCA={options:{virtualHost:!0}},CC=Ai({...lCA,__name:"Col",props:ECA,setup(t){const i=t,{gutter:r}=rI(L7,{gutter:rt(()=>0)}),s=ga([`${ur}-col`,`${ur}-justify-${i.justify}`,`${ur}-align-${i.align}`]),g=rt(()=>`${i.span/24*100}%`),B=rt(()=>`${i.offset/24*100}%`),Q=rt(()=>`${r.value/2}px`),f=Q;return(m,M)=>(qA(),Ue("div",{class:Qi(W(s)),style:zr({width:W(g),marginLeft:W(B),paddingLeft:W(Q),paddingRight:W(f)})},[Dr(m.$slots,"default")],6))}}),CCA={width:{type:String,default:"40px"},height:{type:String,default:"40px"},color:{type:String}},BCA={options:{virtualHost:!0}},uCA=Ai({...BCA,__name:"Dot",props:CCA,setup(t){const i=t,r=`${ur}-loading_dot-container`,s=`${ur}-loading_dot`,g=rt(()=>({width:i.width,height:i.height})),B=rt(()=>{const Q={};return i.color&&(Q.backgroundColor=i.color),Q});return(Q,f)=>(qA(),Ue("div",{class:Qi(r),style:zr([W(g)])},[ce("div",{class:Qi(s),style:zr([W(B)])},null,4),ce("div",{class:Qi(s),style:zr([W(B)])},null,4),ce("div",{class:Qi(s),style:zr([W(B)])},null,4)],4))}}),QCA={width:{type:String,default:"40px"},height:{type:String,default:"40px"},color:{type:String}},dCA={options:{virtualHost:!0}},hCA=Ai({...dCA,__name:"Circle",props:QCA,setup(t){const i=t,r=rt(()=>{const g={width:i.width,height:i.height};return i.color&&(g["--tk-loading-primary-color"]=i.color),g}),s=`${ur}-loading_circle-container`;return(g,B)=>(qA(),Ue("div",{class:Qi(s),style:zr([W(r)])},null,4))}}),pCA=["circle","dot"],fCA=["row","column"],mCA={mode:{type:String,values:pCA,default:"circle"},loadingWidth:{type:String,default:"40px"},loadingHeight:{type:String,default:"40px"},color:{type:String},text:{type:String},layout:{type:String,values:fCA,default:"column"}},DCA={options:{virtualHost:!0}},IW=Ai({...DCA,__name:"Loading",props:mCA,setup(t){const i=t,r=`${ur}-loading ${ur}-loading--${i.mode}`,s=`${ur}-loading_text`,g=rt(()=>({flexDirection:i.layout}));return(B,Q)=>(qA(),Ue("div",{class:Qi(r),style:zr([W(g)])},[B.mode==="dot"?(qA(),_t(uCA,{key:0,width:B.loadingWidth,height:B.loadingHeight,color:B.color},null,8,["width","height","color"])):(qA(),_t(hCA,{key:1,width:B.loadingWidth,height:B.loadingHeight,color:B.color},null,8,["width","height","color"])),B.text?(qA(),Ue("div",{key:2,class:Qi(s)},Wt(B.text),1)):Tt("",!0)],4))}}),yCA={src:{type:String},size:{type:Number,default:20}},RCA=["fill","contain","cover"],R8={fill:"scaleToFill",contain:"aspectFit",cover:"aspectFill"},MCA={width:{type:String,default:"320px"},height:{type:String,default:"240px"},src:{type:String},fit:{type:String,values:RCA,default:"fill"},customStyle:{type:Object},defaultSrc:{type:String}},wCA={error:t=>t},SCA=["src"],vCA=["src","mode"],NCA={options:{virtualHost:!0}},zs=Ai({...NCA,__name:"TKImage",props:MCA,emits:wCA,setup(t,{emit:i}){const r=t,s=i,g=Ne(!1),B=Ne(r.src);Un(()=>r.src,()=>{g.value=!1,B.value=r.src});const Q=rt(()=>ga([`${ur}-image`])),f=rt(()=>({width:r.width,height:r.height,...r.customStyle})),m=rt(()=>ga([`${ur}-image_inner`])),M=rt(()=>ID?R8[r.fit]||R8.cover:r.fit);function v(U){g.value=!0,B.value=r.defaultSrc,s("error",U)}return(U,AA)=>(qA(),Ue("div",{class:Qi(W(Q)),style:zr([W(f)])},[W(g)&&!U.defaultSrc?Dr(U.$slots,"error",{key:0}):(qA(),Ue(Tn,{key:1},[W(ID)?Tt("",!0):(qA(),Ue("img",{key:0,class:Qi(W(m)),src:W(B),style:zr({objectFit:W(M)}),onError:v},null,46,SCA)),W(ID)?(qA(),Ue("image",{key:1,class:Qi(W(m)),src:W(B),mode:W(M),onError:v},null,42,vCA)):Tt("",!0)],64))],6))}}),TCA={options:{virtualHost:!0}},bu=Ai({...TCA,__name:"Icon",props:yCA,setup(t){const i=t,r=rt(()=>`${i.size}px`),s=rt(()=>`${i.size}px`);return(g,B)=>(qA(),_t(zs,{src:g.src,width:W(r),height:W(s)},null,8,["src","width","height"]))}}),GCA=["small","middle","large"],kCA=["row","column"],_CA=["circle","round"],bCA={iconSrc:{type:String},iconSize:{type:Number},text:{type:String},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"#fff"},loadingWidth:{type:String,default:"40px"},loadingHeight:{type:String,default:"40px"},size:{type:String,values:GCA,default:"middle"},width:{type:String},height:{type:String},color:{type:String},direction:{type:String,values:kCA,default:"row"},shape:{type:String,values:_CA},buttonStyle:{type:Object},buttonTextStyle:{type:Object}},LCA={options:{virtualHost:!0}},cE=Ai({...LCA,__name:"Button",props:bCA,emits:["click"],setup(t,{emit:i}){const r=t,s=`${ur}-button--content`,g=rt(()=>({width:r.width,height:r.height,backgroundColor:r.color,flexDirection:r.direction,cursor:Dp?"pointer":"auto",...r.buttonStyle})),B=ga([`${ur}-button`,{[`${ur}-${r.shape}`]:r.shape},`${ur}-button--${r.size}`]),Q=i,f=m=>{!r.loading&&Q("click",m)};return(m,M)=>(qA(),Ue("div",{style:zr([W(g)]),class:Qi(W(B)),onClick:f},[m.loading?(qA(),_t(IW,{key:0,loadingWidth:m.loadingWidth,loadingHeight:m.loadingHeight,color:m.loadingColor},null,8,["loadingWidth","loadingHeight","color"])):Tt("",!0),m.iconSrc&&!m.loading?(qA(),_t(bu,{key:1,size:m.iconSize,src:m.iconSrc},null,8,["size","src"])):Tt("",!0),m.text?(qA(),Ue("div",{key:2,style:zr([m.buttonTextStyle]),class:Qi(s)},Wt(m.text),5)):Tt("",!0)],6))}}),Wj="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwIDE2LjA1YzAtMi4yMzUtMS4yMjgtNC4zMy0zLjMxNC01LjEzNUEzMi40MjMgMzIuNDIzIDAgMCAwIDE1IDguNzUxYy00LjEyIDAtOC4wNi43NjYtMTEuNjg1IDIuMTY0QzEuMjI4IDExLjcxOSAwIDEzLjgxNSAwIDE2LjA1MXYzLjU5N2ExLjUgMS41IDAgMCAwIDEuNiAxLjQ5Nmw2LjM3NS0uNDI1YTEuNSAxLjUgMCAwIDAgMS40LTEuNDk2di0zLjAxNGMwLS4zNTMuMjQ1LS42NTkuNTkxLS43MjZBMjYuMzgyIDI2LjM4MiAwIDAgMSAxNSAxNS4wMDFjMS43MjIgMCAzLjQwNC4xNjYgNS4wMzQuNDgyYS43MzYuNzM2IDAgMCAxIC41OTEuNzI2djMuMDE0YTEuNSAxLjUgMCAwIDAgMS40IDEuNDk2bDYuMzc1LjQyNWExLjUgMS41IDAgMCAwIDEuNi0xLjQ5NlYxNi4wNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",F7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguOTE2IDguMmguODVWNC44SDMuOTg0djMuNGg0LjkzM3ptLTcuOS02LjUzM2EuMTUuMTUgMCAwIDEgLjE1LS4xNWgxNi42NjdhLjE1LjE1IDAgMCAxIC4xNS4xNXYxNi42NjZhLjE1LjE1IDAgMCAxLS4xNS4xNUgxLjE2N2EuMTUuMTUgMCAwIDEtLjE1LS4xNVYxLjY2N3ptMjAuMTk4IDMuMzU1YS4xNS4xNSAwIDAgMSAuMDg3LS4xMzZsMy40NjktMS42MThhLjE1LjE1IDAgMCAxIC4yMTMuMTM1djEzLjE5M2EuMTUuMTUgMCAwIDEtLjIxMy4xMzZsLTMuNDctMS42MThhLjE1LjE1IDAgMCAxLS4wODYtLjEzNlY1LjAyMnoiIGZpbGw9IiMyMjI2MkUiIHN0cm9rZT0iIzIyMjYyRSIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==",U7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIGZpbGw9IiNmZmYiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45NTIgMjMuMzM0aDguODgxYTEgMSAwIDAgMCAxLTFWMTEuNDNMOS45NTIgMjMuMzM0ek0yMS4zNjQgOS41ODVsMS42MjYtMS45NTggMi40Mi0xLjEzYTEgMSAwIDAgMSAxLjQyMy45MDd2MTMuMTkzYTEgMSAwIDAgMS0xLjQyMy45MDZsLTIuOTUyLTEuMzc4LS41MTYtLjI0YTEgMSAwIDAgMS0uNTc4LS45MDdWOS41ODV6bS0zLjUtNC45MThMMi4zNjcgMjMuMzM0aC0uMjAxYTEgMSAwIDAgMS0xLTFWNS42NjdhMSAxIDAgMCAxIDEtMWgxNS42OTZ6TTUuODMzIDExLjM1aDQuMDgydi0xLjdINS44MzN2MS43eiIvPjwvbWFzaz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuOTUyIDIzLjMzNGg4Ljg4MWExIDEgMCAwIDAgMS0xVjExLjQzTDkuOTUyIDIzLjMzNHpNMjEuMzY0IDkuNTg1bDEuNjI2LTEuOTU4IDIuNDItMS4xM2ExIDEgMCAwIDEgMS40MjMuOTA3djEzLjE5M2ExIDEgMCAwIDEtMS40MjMuOTA2bC0yLjk1Mi0xLjM3OC0uNTE2LS4yNGExIDEgMCAwIDEtLjU3OC0uOTA3VjkuNTg1em0tMy41LTQuOTE4TDIuMzY3IDIzLjMzNGgtLjIwMWExIDEgMCAwIDEtMS0xVjUuNjY3YTEgMSAwIDAgMSAxLTFoMTUuNjk2ek01LjgzMyAxMS4zNWg0LjA4MnYtMS43SDUuODMzdjEuN3oiIGZpbGw9IiNmZmYiIHN0eWxlPSJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjEiLz48cGF0aCBkPSJtOS45NTIgMjMuMzM0LTEuMzA4LTEuMDg2LTIuMzEzIDIuNzg2aDMuNjJ2LTEuN3ptOS44ODEtMTEuOTA0aDEuN1Y2LjcybC0zLjAwOCAzLjYyNCAxLjMwOCAxLjA4NnptMy4xNTctMy44MDMtLjcyLTEuNTQtLjM0NS4xNjEtLjI0NC4yOTQgMS4zMDkgMS4wODV6bS0xLjYyNiAxLjk1OEwyMC4wNTYgOC41bC0uMzkyLjQ3MnYuNjE0aDEuN3ptNC4wNDYtMy4wODcuNzIgMS41NC0uNzItMS41NHptMS40MjMuOTA2aDEuNy0xLjd6bTAgMTMuMTkzaC0xLjcgMS43em0tMS40MjMuOTA2LS43MTkgMS41NC43Mi0xLjU0em0tMi45NTItMS4zNzguNzItMS41NC0uNzIgMS41NHptLS41MTYtLjI0LS43MiAxLjU0LjcyLTEuNTR6bS0uNTc4LS45MDdoLTEuNyAxLjd6TTIuMzY4IDIzLjMzNHYxLjdoLjc5OGwuNTEtLjYxNC0xLjMwOC0xLjA4NnpNMTcuODYzIDQuNjY3bDEuMzA4IDEuMDg2IDIuMzEzLTIuNzg2aC0zLjYydjEuN3pNOS45MTYgMTEuMzV2MS43aDEuN3YtMS43aC0xLjd6bS00LjA4MyAwaC0xLjd2MS43aDEuN3YtMS43em00LjA4My0xLjdoMS43di0xLjdoLTEuN3YxLjd6bS00LjA4MyAwdi0xLjdoLTEuN3YxLjdoMS43em0xMyAxMS45ODRIOS45NTJ2My40aDguODgxdi0zLjR6bS0uNy43YS43LjcgMCAwIDEgLjctLjd2My40YTIuNyAyLjcgMCAwIDAgMi43LTIuN2gtMy40em0wLTEwLjkwNHYxMC45MDRoMy40VjExLjQzaC0zLjR6bS4zOTItMS4wODZMOC42NDQgMjIuMjQ4bDIuNjE2IDIuMTcxIDkuODgxLTExLjkwMy0yLjYxNi0yLjE3MnptMy4xNTctMy44MDItMS42MjYgMS45NTcgMi42MTYgMi4xNzIgMS42MjYtMS45NTgtMi42MTYtMi4xNzF6bTMuMDEtMS41ODUtMi40MjEgMS4xMyAxLjQzOCAzLjA4IDIuNDItMS4xMjktMS40MzgtMy4wOHptMy44NDEgMi40NDdjMC0xLjk3Ni0yLjA1Mi0zLjI4Mi0zLjg0Mi0yLjQ0N2wxLjQzOCAzLjA4MWEuNy43IDAgMCAxLS45OTYtLjYzNGgzLjR6bTAgMTMuMTkzVjcuNDA0aC0zLjR2MTMuMTkzaDMuNHptLTMuODQyIDIuNDQ3YzEuNzkuODM1IDMuODQyLS40NzIgMy44NDItMi40NDdoLTMuNGEuNy43IDAgMCAxIC45OTYtLjYzNWwtMS40MzggMy4wODJ6bS0yLjk1Mi0xLjM3OCAyLjk1MiAxLjM3OCAxLjQzOC0zLjA4Mi0yLjk1Mi0xLjM3Ny0xLjQzOCAzLjA4em0tLjUxNi0uMjQxLjUxNi4yNCAxLjQzOC0zLjA4LS41MTctLjI0MS0xLjQzNyAzLjA4em0tMS41NTktMi40NDdhMi43IDIuNyAwIDAgMCAxLjU1OSAyLjQ0N2wxLjQzOC0zLjA4MWEuNy43IDAgMCAxIC40MDMuNjM0aC0zLjR6bTAtOS4zOTN2OS4zOTNoMy40VjkuNTg1aC0zLjR6TTMuNjc2IDI0LjQyIDE5LjE3MSA1Ljc1MyAxNi41NTUgMy41OCAxLjA2IDIyLjI0OGwyLjYxNiAyLjE3MXptLTEuMzA4LTIuNzg1aC0uMjAxdjMuNGguMjAxdi0zLjR6bS0uMjAxIDBhLjcuNyAwIDAgMSAuNy43aC0zLjRhMi43IDIuNyAwIDAgMCAyLjcgMi43di0zLjR6bS43LjdWNS42NjdoLTMuNHYxNi42NjdoMy40em0wLTE2LjY2N2EuNy43IDAgMCAxLS43Ljd2LTMuNGEyLjcgMi43IDAgMCAwLTIuNyAyLjdoMy40em0tLjcuN2gxNS42OTZ2LTMuNEgyLjE2NnYzLjR6bTcuNzUgMy4yODNINS44MzJ2My40aDQuMDgzdi0zLjR6bS0xLjcgMHYxLjdoMy40di0xLjdoLTMuNHptLTIuMzg0IDEuN2g0LjA4M3YtMy40SDUuODMzdjMuNHptMS43IDB2LTEuN2gtMy40djEuN2gzLjR6IiBmaWxsPSIjZmZmIiBzdHlsZT0iZmlsbDojZmZmO2ZpbGwtb3BhY2l0eToxIiBtYXNrPSJ1cmwoI2EpIi8+PHBhdGggZD0iTTQuNTYzIDI1LjI2OSAyMi4xNCA0LjA4NCIgc3Ryb2tlPSIjZmZmIiBzdHlsZT0ic3Ryb2tlOiNmZmY7c3Ryb2tlLW9wYWNpdHk6MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",O7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDE1LjYyNVYxMy43NWgydjEuODc1YTkgOSAwIDEgMCAxOCAwVjEzLjc1aDJ2MS44NzVjMCA1LjczOC00LjM5MyAxMC40NS0xMCAxMC45NTVWMzBoLTJ2LTMuNDJjLTUuNjA3LS41MDUtMTAtNS4yMTctMTAtMTAuOTU1eiIgZmlsbD0iIzIyMjYyRSIvPjxyZWN0IHg9IjguNzUiIHk9IjEuMjUiIHdpZHRoPSIxMi41IiBoZWlnaHQ9IjIwLjYyNSIgcng9IjYuMjUiIGZpbGw9IiMyMjI2MkUiLz48L3N2Zz4=",x7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljc1IDcuNWE2LjI1IDYuMjUgMCAwIDEgMTEuMTMzLTMuOTAyTDguODczIDE2Ljg2MmE2LjI4IDYuMjggMCAwIDEtLjEyMy0xLjIzN1Y3LjV6TTYuODA2IDE5LjM1MkE4Ljk2NyA4Ljk2NyAwIDAgMSA2IDE1LjYyNVYxMy43NUg0djEuODc1YzAgMS45NjMuNTE0IDMuODA2IDEuNDE2IDUuNDAybDEuMzktMS42NzV6bTIuNDA2IDUuNjI5IDEuMjkyLTEuNTU4QTkgOSAwIDAgMCAyNCAxNS42MjV2LTEuODc0aDJ2MS44NzVjMCA1LjczOC00LjM5MyAxMC40NS0xMCAxMC45NTVWMzBoLTJ2LTMuNDJhMTAuOTM0IDEwLjkzNCAwIDAgMS00Ljc4OC0xLjZ6bTMuMDg2LTMuNzE5IDguOTUyLTEwLjc4NHY1LjE0N2E2LjI1IDYuMjUgMCAwIDEtOC45NTIgNS42Mzd6IiBmaWxsPSIjZmZmIiBzdHlsZT0iZmlsbDojZmZmO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZD0iTTYuNDE5IDI0LjA4NCAyMi4wOTQgNS4yMDkiIHN0cm9rZT0iI2ZmZiIgc3R5bGU9InN0cm9rZTojZmZmO3N0cm9rZS1vcGFjaXR5OjEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==",Y7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0yMC4xMzUuMzczLjg2Ni41QzI1LjE4MyAzLjI5NCAyOCA3LjgxOCAyOCAxM2MwIDUuMTgzLTIuODE3IDkuNzA3LTcgMTIuMTI3bC0uODY1LjUtMS4wMDEtMS43MzEuODY1LS41QzIzLjU5IDIxLjMxOCAyNiAxNy40NCAyNiAxM3MtMi40MTEtOC4zMTktNi0xMC4zOTVsLS44NjYtLjVMMjAuMTM1LjM3MnptLTYuNDkgMS4wMTZhMS4wNzEgMS4wNzEgMCAwIDEgMS43MS44NlYyMy43NWMwIC44ODEtMS4wMDMgMS4zODYtMS43MS44NmwtNi42NS00Ljk0NWExLjA3MSAxLjA3MSAwIDAgMC0uNjM5LS4yMTFIMS4yNTJjLS41OTIgMC0xLjA3Mi0uNDgtMS4wNzItMS4wNzJWNy42MzRjMC0uNTkuNDc4LTEuMDcgMS4wNjgtMS4wNzFsNS4xMS0uMDE3Yy4yMyAwIC40NTItLjA3NS42MzYtLjIxMWw2LjY1LTQuOTQ2em01LjkxIDQuNzgtLjgzMS0uNTU2LTEuMTExIDEuNjYzLjgzMi41NTZDMTkuOTM3IDguODI4IDIxIDEwLjc0MiAyMSAxM2MwIDIuMjU5LTEuMDYzIDQuMTcyLTIuNTU1IDUuMTY4bC0uODMyLjU1NiAxLjExIDEuNjYzLjgzMi0uNTU1QzIxLjY1IDE4LjQzMiAyMyAxNS44NjkgMjMgMTNjMC0yLjg2OS0xLjM1LTUuNDMzLTMuNDQ1LTYuODMyeiIgZmlsbD0iIzJFMzMzRCIvPjwvc3ZnPg==",P7="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xMC4zNiAyMi44NDIgNC4yMzUgMy41NmMuNjk3LjU4NyAxLjc2LjA5MSAxLjc2LS44MlYxNS42MmwtNS45OTUgNy4yMjN6bTEzLjM1Ni0xNi4wOSAxLjI4NS0xLjU0OEExMy45NTUgMTMuOTU1IDAgMCAxIDI5IDE1YzAgNS4xODMtMi44MTcgOS43MDctNyAxMi4xMjdsLS44NjUuNS0xLjAwMS0xLjczMS44NjUtLjVDMjQuNTkgMjMuMzE4IDI3IDE5LjQ0IDI3IDE1YzAtMy4xOTQtMS4yNDgtNi4wOTctMy4yODQtOC4yNDh6bS0zLjI3OCAzLjk1IDEuMjg4LTEuNTUzQzIzLjE0IDEwLjYxMyAyNCAxMi43MSAyNCAxNWMwIDIuODY5LTEuMzUgNS40MzMtMy40NDUgNi44MzJsLS44MzEuNTU1LTEuMTEtMS42NjMuODMtLjU1NkMyMC45MzggMTkuMTcyIDIyIDE3LjI1OCAyMiAxNWMwLTEuNzE2LS42MTMtMy4yMzItMS41NjItNC4yOTl6bS00LjA4Mi00LjIyTDMuOTI4IDIxLjQ1NkgyLjI1MmMtLjU5MiAwLTEuMDcyLS40OC0xLjA3Mi0xLjA3MlY5LjYzNWMwLS41OTEuNDc4LTEuMDcgMS4wNjktMS4wNzJsNi4wNzMtLjAxN2MuMjUxIDAgLjQ5NC0uMDkuNjg3LS4yNTFsNS41ODYtNC42OTdjLjY5Ny0uNTg2IDEuNzYtLjA5MSAxLjc2LjgydjIuMDY1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik00LjU2NCAyNS4yNjggMjIuMTQgNC4wODQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",FCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBvcGFjaXR5PSIuNSIgY3g9IjE1IiBjeT0iMTUiIHI9IjE1IiBmaWxsPSIjMjIyNjJFIiBzdHlsZT0iZmlsbDpjb2xvcihkaXNwbGF5LXAzIC4xMzMzIC4xNDkgLjE4MDQpO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC41MTYgMTcuNDUyYS40LjQgMCAwIDEtLjAxNC41NjVsLS44Ny44MjdhLjQuNCAwIDAgMS0uNTY2LS4wMTVMMTUgMTQuNTVsLTQuMDY2IDQuMjhhLjQuNCAwIDAgMS0uNTY2LjAxNWwtLjg3LS44MjdhLjQuNCAwIDAgMS0uMDE0LS41NjVsNS4wMzMtNS4yOThhLjY2Ny42NjcgMCAwIDEgLjk2NiAwbDUuMDMzIDUuMjk4eiIgZmlsbD0iI2ZmZiIgc3R5bGU9ImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MSIvPjwvc3ZnPg==",UCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNNC4xNjIgNS42NzdDMi41OCA3LjI1OCAxLjk2NyA5LjYwOCAyLjg3NCAxMS42NTJhMzIuNDIyIDMyLjQyMiAwIDAgMCA2LjczMyA5Ljc5MyAzMi40MjMgMzIuNDIzIDAgMCAwIDkuNzkzIDYuNzMzYzIuMDQ0LjkwNyA0LjM5NC4yOTMgNS45NzUtMS4yODhsMi41NDMtMi41NDNhMS41IDEuNSAwIDAgMC0uMDczLTIuMTlsLTQuODA4LTQuMjA3YTEuNSAxLjUgMCAwIDAtMi4wNDguMDY4bC0yLjEzMSAyLjEzMWEuNzM2LjczNiAwIDAgMS0uOTMyLjA5NSAyNi4zODUgMjYuMzg1IDAgMCAxLTMuOS0zLjIxOCAyNi4zODUgMjYuMzg1IDAgMCAxLTMuMjE4LTMuOS43MzYuNzM2IDAgMCAxIC4wOTUtLjkzMmwyLjEzLTIuMTNhMS41IDEuNSAwIDAgMCAuMDY5LTIuMDVMOC44OTUgMy4yMDhhMS41IDEuNSAwIDAgMC0yLjE5LS4wNzNMNC4xNjIgNS42Nzd6IiBmaWxsPSIjZmZmIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzMHYzMEgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",lp="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDJhMSAxIDAgMCAxIDEtMWgyNGExIDEgMCAwIDEgMSAxdjI0YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJ6bTE0LjY1MyAxNC44MDFhNC4xOCA0LjE4IDAgMSAwLTMuMzA2IDBoLS4yMDRhNS41NzEgNS41NzEgMCAwIDAtNS41NzIgNS41NzJ2Mi4yNWExIDEgMCAwIDAgMSAxSDIwLjQzYTEgMSAwIDAgMCAxLTF2LTIuMjVhNS41NzEgNS41NzEgMCAwIDAtNS41NzItNS41NzJoLS4yMDR6bS0xMy4yNi05LjE4TDcuNjIgMi4zOTNoMi4yMzJsLTcuNDYgNy40NlY3LjYyMXptMCA4LjEzdi0yLjIzMkwxMy41MTggMi4zOTNoMi4yMzNMMi4zOTMgMTUuNzV6bTAgNS44OTh2LTIuMjMzbDUuNDU5LTUuNDU5Yy4wNjIuNjI2LjIxNyAxLjIyNC40NTIgMS43OEwyLjM5MyAyMS42NXpNMTYuMzk4IDcuNjQ0YTYuMTQgNi4xNCAwIDAgMC0xLjc4LS40NTJsNC43OTgtNC44aDIuMjMzbC01LjI1MSA1LjI1MnpNMi44NCAyNC44NjdsMS43MzEtMS43MzJWMjVjMCAuMTE4LjAwNy4yMzQuMDIuMzQ4bC0uMjU4LjI1OGExLjk5NiAxLjk5NiAwIDAgMS0xLjQ5My0uNzM5ek0xOC41NDkgOS4xNThjLjM2LjM5My42NzIuODMzLjkyMyAxLjMxbDYuMTM0LTYuMTM1YTEuOTk2IDEuOTk2IDAgMCAwLS43MzktMS40OTNsLTYuMzE5IDYuMzE4em0uOTcgNi45NjMuMTI1LjA3MSA1Ljk2My01Ljk2M1Y3Ljk5N2wtNS40MyA1LjQzYTYuMTQ5IDYuMTQ5IDAgMCAxLS42NTkgMi42OTR6bTIuMTIgMS43NDFjLjM0Ni40MDkuNjUuODU0LjkwMyAxLjMzbDMuMDY1LTMuMDY1di0yLjIzMmwtMy45NjcgMy45Njd6bTEuNzkgNC44ODh2MS40NTNsMi4xNzgtMi4xNzh2LTIuMjMzbC0yLjIxNSAyLjIxNWMuMDI0LjI0NC4wMzcuNDkyLjAzNy43NDN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",zj="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDFhMSAxIDAgMCAxIDEtMWgyNGExIDEgMCAwIDEgMSAxdjI0YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjF6bTEzIDEzYTQuMTc5IDQuMTc5IDAgMSAwIDAtOC4zNTdBNC4xNzkgNC4xNzkgMCAwIDAgMTMgMTR6bS0xLjg1NyAxLjM0NmE1LjU3MSA1LjU3MSAwIDAgMC01LjU3MiA1LjU3MXYyLjI1YTEgMSAwIDAgMCAxIDFIMTkuNDNhMSAxIDAgMCAwIDEtMXYtMi4yNWE1LjU3MSA1LjU3MSAwIDAgMC01LjU3Mi01LjU3MUwxMyAxOC4wMTlsLTEuODU3LTIuNjczem0tOS43NS03LjMxIDYuNjQzLTYuNjQzaDIuMjMybC04Ljg3NSA4Ljg3NVY4LjAzNnptMCAxMi4yMzJ2LTIuMjMzbDYuNjQyLTYuNjQxTDkuMTUgMTIuNTFsLTcuNzU4IDcuNzU4em0yMy4yMTQtNS40NDd2Mi4yMzNsLTIuNDczIDIuNDczLTEuMTE2LTEuMTE2IDMuNTktMy41OXptMC0xMHYyLjIzM2wtNy4wOTIgNy4wOTItMS4xMTYtMS4xMTYgOC4yMDgtOC4yMDl6bS00LjMzOS0zLjQyOC0zLjg5NSAzLjg5NS0xLjExNy0xLjExNiAyLjc4LTIuNzhoMi4yMzJ6IiBmaWxsPSIjMDAwIiBzdHlsZT0iZmlsbDojMDAwO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+",OCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjY2NjgzIDkuMzMzMzdIMy4zMzM1VjQuMDAwMDRDMy4zMzM1IDMuNjMxODUgMy42MzE5NyAzLjMzMzM3IDQuMDAwMTYgMy4zMzMzN0w5LjMzMzUgMy4zMzMzN1Y0LjY2NjcxSDUuNjA5NjNMOS44MDQ5IDguODYxOTlMOC44NjIwOSA5LjgwNDhMNC42NjY4MyA1LjYwOTUyVjkuMzMzMzdaTTE1LjMzMzMgMTAuNjY2N0gxNi42NjY3VjE2QzE2LjY2NjcgMTYuMzY4MiAxNi4zNjgyIDE2LjY2NjcgMTYgMTYuNjY2N0wxMC42NjY3IDE2LjY2NjdMMTAuNjY2NyAxNS4zMzMzSDE0LjM5MDVMMTAuMTk1MyAxMS4xMzhMMTEuMTM4MSAxMC4xOTUyTDE1LjMzMzMgMTQuMzkwNVYxMC42NjY3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTAuNjY2NjY3IDEuMzMzMzNDMC42NjY2NjcgMC45NjUxNDQgMC45NjUxNDQgMC42NjY2NjcgMS4zMzMzMyAwLjY2NjY2N0gxOC42NjY3QzE5LjAzNDkgMC42NjY2NjcgMTkuMzMzMyAwLjk2NTE0NCAxOS4zMzMzIDEuMzMzMzNWMTguNjY2N0MxOS4zMzMzIDE5LjAzNDkgMTkuMDM0OSAxOS4zMzMzIDE4LjY2NjcgMTkuMzMzM0gxLjMzMzMzQzAuOTY1MTQzIDE5LjMzMzMgMC42NjY2NjcgMTkuMDM0OSAwLjY2NjY2NyAxOC42NjY3VjEuMzMzMzNaIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiLz4KPC9zdmc+",xCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxyZWN0IHg9IjAuNzY5MjMxIiB5PSIwLjc2OTIzMSIgd2lkdGg9IjE4LjQ2MTUiIGhlaWdodD0iMTguNDYxNSIgcng9IjAuNzY5MjMxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuNTM4NDYiLz4KICAgIDxwYXRoIGQ9Ik0xMS41Mzg1IDEyLjMwNzdDMTEuNTM4NSAxMS44ODI5IDExLjg4MjkgMTEuNTM4NSAxMi4zMDc3IDExLjUzODVIMTkuMjMwOFYxOC40NjE1QzE5LjIzMDggMTguODg2NCAxOC44ODY0IDE5LjIzMDggMTguNDYxNiAxOS4yMzA4SDExLjUzODVWMTIuMzA3N1oiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS41Mzg0NiIvPgogICAgPHBhdGggZD0iTTAuNzY5Mjg3IDAuNzY5MjI2TDguOTcyMyA4LjkyNDEyIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuNTM4NDYiLz4KICAgIDxwYXRoIGQ9Ik05LjQ5NjcgNC43MTcxNlY5LjQ0ODZINC43NDE0NiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjUzODQ2IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICA8L3N2Zz4=",YCA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzA4NDAwODQ5NTMxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjgyNjciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNMTIxLjUxIDQ2MC4xNWg3NzkuNjR2MTAwLjZIMTIxLjUxeiIgcC1pZD0iODI2OCIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik00NjEuMDM1IDkwMC4yNzF2LTc3OS42NGgxMDAuNnY3NzkuNjR6IiBwLWlkPSI4MjY5IiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+",PCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguNSA0SDNhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTUuNSIgc3Ryb2tlPSIjRDVFMEYyIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNSAzLjV2NWg1di01aC01ek0xMSAyYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFoLTZ6IiBmaWxsPSIjRDVFMEYyIi8+PC9zdmc+",cp="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS4wMTggNS43NjNhMiAyIDAgMCAxIDIgMnYxNS41MjhhMiAyIDAgMCAxLTIgMkgyLjk4MmEyIDIgMCAwIDEtMi0yVjcuNzYzYTIgMiAwIDAgMSAyLTJoNC4yNjJhMiAyIDAgMCAwIDEuNDk0LS42N2wxLjQxLTEuNTg3YTIgMiAwIDAgMSAxLjQ5NS0uNjcyaDQuNzE0YTIgMiAwIDAgMSAxLjQ5NC42NzFsMS40MSAxLjU4N2EyIDIgMCAwIDAgMS40OTUuNjcxaDQuMjYyek0xMS43MjMgOS41ODVhNS45MDcgNS45MDcgMCAwIDEgMi4xODYtLjQxN2MxLjcxOSAwIDMuMjcuNzMzIDQuMzQxIDEuOTAzVjkuOTE4aDEuNXY1LjAwMWgtMS41di0uMDA1Yy0uMDAyLTIuMzMyLTEuOTMyLTQuMjQ1LTQuMzQtNC4yNDUtLjU4IDAtMS4xMy4xMS0xLjYzMy4zMWwtLjU1NC0xLjM5NHpNOC4yNSAxOS45MTl2LTVoMS41YzAgMi4zMzQgMS45MyA0LjI1IDQuMzQgNC4yNS41OCAwIDEuMTMtLjExMSAxLjYzMy0uMzFsLjU1NCAxLjM5M2E1LjkwOCA1LjkwOCAwIDAgMS0yLjE4Ni40MTcgNS44NzMgNS44NzMgMCAwIDEtNC4zNDEtMS45MDN2MS4xNTNoLTEuNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",JCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMC41IDExLjA1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5em0tMiAxLjQ1YTYgNiAwIDAgMC02IDZWMjFhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xdi0yLjVhNiA2IDAgMCAwLTYtNmwtMiAyLjg4LTItMi44OHoiLz48L21hc2s+PHBhdGggZD0ibTguNSAxMi41IDEuMzk2LS45Ny0uNTA3LS43M0g4LjV2MS43em00IDB2LTEuN2gtLjg4OWwtLjUwNy43MyAxLjM5Ni45N3ptLTIgMi44OC0xLjM5Ni45NjkgMS4zOTYgMi4wMSAxLjM5Ni0yLjAxLTEuMzk2LS45N3ptMi44LTguODNhMi44IDIuOCAwIDAgMS0yLjggMi44djMuNGE2LjIgNi4yIDAgMCAwIDYuMi02LjJoLTMuNHptLTIuOC0yLjhhMi44IDIuOCAwIDAgMSAyLjggMi44aDMuNGE2LjIgNi4yIDAgMCAwLTYuMi02LjJ2My40em0tMi44IDIuOGEyLjggMi44IDAgMCAxIDIuOC0yLjhWLjM1YTYuMiA2LjIgMCAwIDAtNi4yIDYuMmgzLjR6bTIuOCAyLjhhMi44IDIuOCAwIDAgMS0yLjgtMi44SDQuM2E2LjIgNi4yIDAgMCAwIDYuMiA2LjJ2LTMuNHpNNC4yIDE4LjVhNC4zIDQuMyAwIDAgMSA0LjMtNC4zdi0zLjRhNy43IDcuNyAwIDAgMC03LjcgNy43aDMuNHptMCAyLjV2LTIuNUguOFYyMWgzLjR6bS0uNy0uN2EuNy43IDAgMCAxIC43LjdILjhhMi43IDIuNyAwIDAgMCAyLjcgMi43di0zLjR6bTE0IDBoLTE0djMuNGgxNHYtMy40em0tLjcuN2EuNy43IDAgMCAxIC43LS43djMuNGEyLjcgMi43IDAgMCAwIDIuNy0yLjdoLTMuNHptMC0yLjVWMjFoMy40di0yLjVoLTMuNHptLTQuMy00LjNhNC4zIDQuMyAwIDAgMSA0LjMgNC4zaDMuNGE3LjcgNy43IDAgMCAwLTcuNy03Ljd2My40em0tLjYwNCAyLjE0OSAyLTIuODc5LTIuNzkyLTEuOTQtMiAyLjg4IDIuNzkyIDEuOTM5ek03LjEwNCAxMy40N2wyIDIuODc5IDIuNzkyLTEuOTQtMi0yLjg3OS0yLjc5MiAxLjk0eiIgZmlsbD0iI0Q1RTBGMiIgbWFzaz0idXJsKCNiKSIvPjwvZz48cGF0aCBkPSJNMTYgMTFoN20tMy41LTMuNXY3IiBzdHJva2U9IiNENUUwRjIiIHN0cm9rZS13aWR0aD0iMS43Ii8+PGRlZnM+PGZpbHRlciBpZD0iYSIgeD0iLTUuNSIgeT0iLTUuOTQ5IiB3aWR0aD0iMzIiIGhlaWdodD0iMzUuOTUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjQiLz48ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMjU4NF8yMzYiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzI1ODRfMjM2IiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",HCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBvcGFjaXR5PSIuNSIgY3g9IjE1IiBjeT0iMTUiIHI9IjE1IiBmaWxsPSIjMjIyNjJFIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjQ4NCAxNC4zMTNhLjQuNCAwIDAgMSAuMDE0LS41NjVsLjg3LS44MjdhLjQuNCAwIDAgMSAuNTY2LjAxNUwxNSAxNy4yMTZsNC4wNjYtNC4yOGEuNC40IDAgMCAxIC41NjUtLjAxNWwuODcuODI3YS40LjQgMCAwIDEgLjAxNS41NjVsLTUuMDMzIDUuMjk4YS42NjcuNjY3IDAgMCAxLS45NjYgMGwtNS4wMzMtNS4yOTh6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",yg=!Pi.isPC;let J7=PCA,H7=JCA;yg||(J7=xCA,H7=YCA);const un={width:yg?"60px":"40px",height:yg?"60px":"40px",shape:"circle",iconSize:yg?30:20,showText:!0,textColor:"#D5E0F2",textSize:"12px",textStyle:{marginTop:"5px"}},_i={accept:{basicConfig:{...un,color:"#51C271",iconSrc:UCA},loadingConfig:{...un,color:"#51C271",loadingWidth:yg?"30px":"20px",loadingHeight:yg?"30px":"20px"}},hangup:{basicConfig:{...un,color:"#ED4651",iconSrc:Wj},loadingConfig:{...un,color:"#ED4651",loadingWidth:yg?"30px":"20px",loadingHeight:yg?"30px":"20px"}},reject:{basicConfig:{...un,color:"#ED4651",iconSrc:Wj}},camera:{basicConfig:{...un,color:"#FFFFFF",iconSrc:F7,shape:"circle"},closedConfig:{...un,color:"#6b758a4d",iconSrc:U7},loadingConfig:{...un,color:"#6b758a4d",loadingWidth:yg?"30px":"20px",loadingHeight:yg?"30px":"20px"}},microphone:{basicConfig:{...un,color:"#FFFFFF",iconSrc:O7},closedConfig:{...un,color:"#6b758a4d",iconSrc:x7}},speaker:{basicConfig:{...un,color:"#FFFFFF",iconSrc:Y7},closedConfig:{...un,color:"#6b758a4d",iconSrc:P7}},fullScreen:{basicConfig:{iconSize:20,iconSrc:OCA}},minimize:{basicConfig:{iconSize:yg?24:20,iconSrc:J7}},switchCamera:{basicConfig:{...un,color:"transparent",iconSrc:cp,shape:"circle"}},inviteUser:{basicConfig:{...un,color:yg?"":"#6b758a4d",width:yg?"24px":"40px",height:yg?"24px":"40px",shape:yg?"":"circle",iconSize:yg?24:20,iconSrc:H7}},toggleButtonPanel:{basicConfig:{color:"transparent",width:"40px",height:"40px",shape:"circle",iconSize:40,iconSrc:HCA}},virtualBackground:{basicConfig:{...un,color:"#6b758a4d",iconSrc:lp,shape:"circle"},closedConfig:{...un,color:"#FFFFFF",iconSrc:zj},loadingConfig:{...un,color:"#6b758a4d",loadingWidth:yg?"30px":"20px",loadingHeight:yg?"30px":"20px"},disableConfig:{...un,color:"#6b758a4d",iconSrc:lp,buttonStyle:{opacity:.6}}}},np={singleCall:{video:{calling:{..._i,switchCamera:{basicConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle",showText:!0},disableConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle",showText:!0,buttonStyle:{opacity:.6}}},hangup:{basicConfig:{..._i.hangup.basicConfig},loadingConfig:{..._i.hangup.loadingConfig}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},accept:{..._i,switchCamera:{basicConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle"},disableConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle",showText:!0,buttonStyle:{opacity:.6}}},accept:{basicConfig:{..._i.accept.basicConfig,showText:!1},loadingConfig:{..._i.accept.loadingConfig,showText:!1}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},connected:{..._i,virtualBackground:{basicConfig:{...un,color:"transparent",iconSrc:lp,shape:"circle",showText:!1},closedConfig:{...un,color:"transparent",iconSrc:lp,showText:!1},disableConfig:{...un,color:"transparent",iconSrc:lp,showText:!1,buttonStyle:{opacity:.6}}},hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},switchCamera:{basicConfig:{..._i.switchCamera.basicConfig,showText:!1},disableConfig:{..._i.switchCamera.basicConfig,showText:!1,buttonStyle:{opacity:.6}}}}},audio:{calling:_i,accept:_i,connected:_i}},groupCall:{video:{calling:{..._i,switchCamera:{basicConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle"}},hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{..._i.accept.basicConfig,showText:!1},loadingConfig:{..._i.accept.loadingConfig,showText:!1}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},accept:{..._i,hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{..._i.accept.basicConfig,showText:!1},loadingConfig:{..._i.accept.loadingConfig,showText:!1}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},connected:{..._i,virtualBackground:{basicConfig:{...un,color:"transparent",iconSrc:lp,shape:"circle",showText:!1},closedConfig:{...un,color:"transparent",iconSrc:zj,showText:!1}},hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}}}},audio:{calling:{..._i,switchCamera:{basicConfig:{...un,color:"#6b758a4d",iconSrc:cp,shape:"circle"}},hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{..._i.accept.basicConfig,showText:!1},loadingConfig:{..._i.accept.loadingConfig,showText:!1}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},accept:{..._i,hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{..._i.accept.basicConfig,showText:!1},loadingConfig:{..._i.accept.loadingConfig,showText:!1}},reject:{basicConfig:{..._i.reject.basicConfig,showText:!1}}},connected:{..._i,hangup:{basicConfig:{..._i.hangup.basicConfig,showText:!1},loadingConfig:{..._i.hangup.loadingConfig,showText:!1}},virtualBackground:{basicConfig:{...un,color:"transparent",iconSrc:lp,shape:"circle"},closedConfig:{...un,color:"transparent",iconSrc:zj}}}}}},VCA={singleCall:{video:{calling:_i,accept:_i,connected:_i},audio:{calling:_i,accept:_i,connected:_i}},groupCall:{video:{calling:_i,accept:_i,connected:_i},audio:{calling:_i,accept:_i,connected:_i}}},qCA={pc:VCA,mobile:np},op={width:"40px",height:"40px",shape:"circle",iconSize:20,textColor:"#D5E0F2"},l2={microphone:{basicConfig:{...op,color:"#FFFFFF",iconSrc:O7},closedConfig:{...op,color:"#6b758a4d",iconSrc:x7}},speaker:{basicConfig:{...op,color:"#FFFFFF",iconSrc:Y7},closedConfig:{...op,color:"#6b758a4d",iconSrc:P7}},camera:{basicConfig:{...op,color:"#FFFFFF",iconSrc:F7},closedConfig:{...op,color:"#6b758a4d",iconSrc:U7}},hangup:{basicConfig:{...op,color:"#ED4651",iconSrc:Wj},loadingConfig:{...op,color:"#ED4651",loadingWidth:"20px",loadingHeight:"20px"}},toggleButtonPanel:{basicConfig:{color:"transparent",width:"40px",height:"40px",shape:"circle",iconSize:40,iconSrc:FCA}}},KCA={mobile:{...np,groupCall:{video:{...np.groupCall.video,calling:{...np.groupCall.video.calling,...l2},connected:{...np.groupCall.video.connected,...l2}},audio:{...np.groupCall.audio,calling:{...np.groupCall.audio.calling,...l2},connected:{...np.groupCall.audio.connected,...l2}}}}},pl=(t,i)=>{var r;const s=Pi.isPC?"pc":"mobile",{status:g}=Sk(),{callStatus:B,callRole:Q,isGroupCall:f,callType:m}=Mo(Pa()),M=Ne((r=_i?.[t])==null?void 0:r[i.value]);return Un([i,g,B,f,m],()=>{var v,U,AA,z,sA;const eA=f.value?"groupCall":"singleCall",X=m.value===Pr.AUDIO?"audio":"video";let QA="";B.value===Ao.CALLING?QA=Q.value===Ts.CALLER?"calling":"accept":B.value===Ao.CONNECTED&&(QA="connected");let wA=qCA;g.value==="close"&&(wA=KCA),M.value=((sA=(z=(AA=(U=(v=wA?.[s])==null?void 0:v[eA])==null?void 0:U[X])==null?void 0:AA[QA])==null?void 0:z[t])==null?void 0:sA[i.value])||{}},{immediate:!0}),M},jCA={options:{virtualHost:!0}},WCA=Ai({...jCA,__name:"Minimize",setup(t){const i=pl("minimize",Ne("basicConfig")),r=async()=>{if(document!=null&&document.fullscreenElement)try{document?.exitFullscreen()}catch(s){console.debug(s)}await oo.toggleMinimize()};return(s,g)=>(qA(),_t(cE,{iconSrc:W(i).iconSrc,iconSize:W(i).iconSize,onClick:r},null,8,["iconSrc","iconSize"]))}}),wo=(t,i)=>{const r=t.__vccOpts||t;for(const[s,g]of i)r[s]=g;return r},M8=wo(WCA,[["__scopeId","data-v-744bd8dc"]]),zCA={options:{virtualHost:!0}},ZCA=Ai({...zCA,__name:"FullScreen",setup(t){const i=pl("fullScreen",Ne("basicConfig")),r=async()=>{await blA("tuicallkit-id")};return(s,g)=>(qA(),_t(cE,{iconSrc:W(i).iconSrc,iconSize:W(i).iconSize,onClick:r},null,8,["iconSrc","iconSize"]))}}),XCA=wo(ZCA,[["__scopeId","data-v-f92abf93"]]),$CA={width:{type:String},color:{type:String},size:{type:String},weight:{type:Number},truncated:{type:Boolean,default:!1},lineClamp:{type:Number},textStyle:{type:Object}},ABA={options:{virtualHost:!0}},Zs=Ai({...ABA,__name:"TKText",props:$CA,emits:["click"],setup(t,{emit:i}){const r=t,s=i,g=ga([`${ur}-text`,{[`${ur}-text--line-clamp`]:r.lineClamp}]),B=rt(()=>tY({maxWidth:r.width,fontSize:r.size,fontWeight:r.weight,color:r.color,textOverflow:r.truncated?"ellipsis":"auto","-webkit-line-clamp":r.lineClamp,...r.textStyle})),Q=()=>{s("click")};return(f,m)=>(qA(),Ue("span",{class:Qi(W(g)),style:zr([W(B)]),onClick:Q},[Dr(f.$slots,"default")],6))}}),Ed={width:{type:String},height:{type:String},showText:{type:Boolean,default:!0},iconSize:{type:String}},eBA={class:"btn-content"},tBA={options:{virtualHost:!0}},iBA=Ai({...tBA,__name:"InviteUser",props:Ed,setup(t){const i=t,r=pl("inviteUser",Ne("basicConfig")),s=Ca(),g=async()=>{me.update(bA.CALL,aA.SHOW_SELECT_USER,!0)};return(B,Q)=>(qA(),Ue("div",eBA,[ze(cE,{iconSrc:W(r).iconSrc,color:W(r).color,iconSize:W(r).iconSize,width:i.width||W(r).width,height:i.height||W(r).height,shape:W(r).shape,onClick:g},null,8,["iconSrc","color","iconSize","width","height","shape"]),B.showText?(qA(),_t(Zs,{key:0,textStyle:W(r).textStyle,color:W(r).textColor,size:W(r).textSize},{default:Vt(()=>[Na(Wt(W(s)("invite member")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),V7=wo(iBA,[["__scopeId","data-v-7c062dcf"]]),oBA={color:{type:String,default:"#FFF"},callDuration:{type:String,default:""},fontSize:{type:String,default:"16px"}},rBA={options:{virtualHost:!0}},iY=Ai({...rBA,__name:"Timer",props:oBA,setup(t){const i=t,r=rt(()=>({color:i.color,fontSize:i.fontSize}));return(s,g)=>(qA(),Ue("span",{style:zr([W(r)])},Wt(s.callDuration),5))}}),nBA=t=>(Sw("data-v-5c010454"),t=t(),vw(),t),aBA={class:"ai-transcriber-switch"},sBA={class:"ai-transcriber-switch__label"},gBA=nBA(()=>ce("div",{class:"ai-transcriber-switch__slider"},null,-1)),IBA=[gBA],cBA=Ai({__name:"AITranscriberSwitchPC",setup(t){const i=Ca(),{isAITranscriberRunning:r}=Nk(),s=async()=>{try{r.value?await oo._aiAssistant.stopRealtimeTranscriber():await oo._aiAssistant.startRealtimeTranscriber({sourceLanguage:"zh",translationLanguages:["en"]})}catch(g){console.error("Failed to toggle AI transcriber:",g)}};return(g,B)=>(qA(),Ue("div",aBA,[ce("span",sBA,Wt(W(i)("ai-subtitle")),1),ce("div",{class:Qi(["ai-transcriber-switch__toggle",{"ai-transcriber-switch__toggle--active":W(r)}]),onClick:s},IBA,2)]))}}),EBA=wo(cBA,[["__scopeId","data-v-5c010454"]]),lBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEyLjExODJIMTcuMzMzVjMuNjY2OTlIMi42NjY5OVYxNi4zMzNIOC4xODk0NVYxOEgxVjJIMTlWMTIuMTE4MloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOSIvPgo8cGF0aCBkPSJNMTUuNjY2NyA4LjAyMjAyQzE1LjY2NjcgOC4wMjIwMiAxNC45Njc3IDcuNzI1MzMgMTMuNzg0OSA3Ljc3NDc4QzEzLjA4NiA3LjgyNDIyIDEyLjU0ODQgNy45NzI1NyAxMi4xNzIgOC4zNjgxNUMxMS43NDE5IDguODEzMTkgMTEuNTI2OSA5LjM1NzExIDExLjUyNjkgMTAuMDQ5NEMxMS41MjY5IDEwLjc0MTcgMTEuNzQxOSAxMS4yMzYxIDEyLjExODMgMTEuNjMxN0MxMi40OTQ2IDExLjk3NzkgMTIuOTc4NSAxMi4xMjYyIDEzLjYyMzcgMTIuMTc1N0MxNC40MzAxIDEyLjI3NDUgMTUuNjY2NyAxMS45Nzc5IDE1LjY2NjcgMTEuOTc3OVYxMy4yNjM1QzE1LjY2NjcgMTMuMjYzNSAxNC43NTI3IDEzLjQ2MTMgMTMuNTE2MSAxMy40NjEzQzEyLjQ5NDYgMTMuNDYxMyAxMS42ODgyIDEzLjExNTIgMTEuMDQzIDEyLjUyMThDMTAuNDUxNiAxMS44NzkgMTAuMTI5IDExLjA4NzggMTAuMTI5IDEwLjA5ODhDMTAuMTI5IDkuMDYwNDMgMTAuNDUxNiA4LjE3MDM2IDExLjE1MDUgNy41Mjc1NEMxMS44NDk1IDYuODg0NzEgMTIuNzA5NyA2LjUzODU3IDEzLjc4NDkgNi41Mzg1N0MxNC43NTI3IDYuNTM4NTcgMTUuNjY2NyA2LjczNjM3IDE1LjY2NjcgNi43MzYzN1Y4LjAyMjAyWiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjxwYXRoIGQ9Ik05LjUzNzYzIDguMDIyMDJDOS41Mzc2MyA4LjAyMjAyIDguODM4NzEgNy43MjUzMyA3LjY1NTkyIDcuNzc0NzhDNi45NTY5OSA3LjgyNDIyIDYuNDE5MzYgNy45NzI1NyA2LjA0MzAxIDguMzY4MTVDNS42MTI5IDguODEzMTkgNS4zOTc4NSA5LjM1NzExIDUuMzk3ODUgMTAuMDQ5NEM1LjM5Nzg1IDEwLjc0MTcgNS42MTI5IDExLjIzNjEgNS45ODkyNSAxMS42MzE3QzYuMzY1NTkgMTEuOTc3OSA2Ljg0OTQ2IDEyLjEyNjIgNy40OTQ2MiAxMi4xNzU3QzguMzAxMDggMTIuMjc0NSA5LjUzNzYzIDExLjk3NzkgOS41Mzc2MyAxMS45Nzc5VjEzLjI2MzVDOS41Mzc2MyAxMy4yNjM1IDguNjIzNjYgMTMuNDYxMyA3LjM4NzEgMTMuNDYxM0M2LjM2NTU5IDEzLjQ2MTMgNS41NTkxNCAxMy4xMTUyIDQuOTEzOTggMTIuNTIxOEM0LjMyMjU4IDExLjg3OSA0IDExLjA4NzggNCAxMC4wOTg4QzQgOS4wNjA0MyA0LjMyMjU4IDguMTcwMzYgNS4wMjE1MSA3LjUyNzU0QzUuNzIwNDMgNi44ODQ3MSA2LjU4MDY1IDYuNTM4NTcgNy42NTU5MiA2LjUzODU3QzguNjIzNjYgNi41Mzg1NyA5LjUzNzYzIDYuNzM2MzcgOS41Mzc2MyA2LjczNjM3VjguMDIyMDJaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkiLz4KPHBhdGggZD0iTTEwIDE3LjA5MTZDMTAgMTUuNzEwOCAxMS4xMTkzIDE0LjU5MTYgMTIuNSAxNC41OTE2SDE3LjVDMTguODgwNyAxNC41OTE2IDIwIDE1LjcxMDggMjAgMTcuMDkxNkMyMCAxOC40NzIzIDE4Ljg4MDcgMTkuNTkxNiAxNy41IDE5LjU5MTZIMTIuNUMxMS4xMTkzIDE5LjU5MTYgMTAgMTguNDcyMyAxMCAxNy4wOTE2WiIgZmlsbD0iIzQ1ODhGNSIvPgo8cmVjdCB4PSIxNS41MDQyIiB5PSIxNS4wOTE2IiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",CBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEyLjExODJIMTcuMzMzVjMuNjY2OTlIMi42NjY5OVYxNi4zMzNIOC4xODk0NVYxOEgxVjJIMTlWMTIuMTE4MloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOSIvPgo8cGF0aCBkPSJNMTUuNjY2NyA4LjAyMjAyQzE1LjY2NjcgOC4wMjIwMiAxNC45Njc3IDcuNzI1MzMgMTMuNzg0OSA3Ljc3NDc4QzEzLjA4NiA3LjgyNDIyIDEyLjU0ODQgNy45NzI1NyAxMi4xNzIgOC4zNjgxNUMxMS43NDE5IDguODEzMTkgMTEuNTI2OSA5LjM1NzExIDExLjUyNjkgMTAuMDQ5NEMxMS41MjY5IDEwLjc0MTcgMTEuNzQxOSAxMS4yMzYxIDEyLjExODMgMTEuNjMxN0MxMi40OTQ2IDExLjk3NzkgMTIuOTc4NSAxMi4xMjYyIDEzLjYyMzcgMTIuMTc1N0MxNC40MzAxIDEyLjI3NDUgMTUuNjY2NyAxMS45Nzc5IDE1LjY2NjcgMTEuOTc3OVYxMy4yNjM1QzE1LjY2NjcgMTMuMjYzNSAxNC43NTI3IDEzLjQ2MTMgMTMuNTE2MSAxMy40NjEzQzEyLjQ5NDYgMTMuNDYxMyAxMS42ODgyIDEzLjExNTIgMTEuMDQzIDEyLjUyMThDMTAuNDUxNiAxMS44NzkgMTAuMTI5IDExLjA4NzggMTAuMTI5IDEwLjA5ODhDMTAuMTI5IDkuMDYwNDMgMTAuNDUxNiA4LjE3MDM2IDExLjE1MDUgNy41Mjc1NEMxMS44NDk1IDYuODg0NzEgMTIuNzA5NyA2LjUzODU3IDEzLjc4NDkgNi41Mzg1N0MxNC43NTI3IDYuNTM4NTcgMTUuNjY2NyA2LjczNjM3IDE1LjY2NjcgNi43MzYzN1Y4LjAyMjAyWiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjxwYXRoIGQ9Ik05LjUzNzYzIDguMDIyMDJDOS41Mzc2MyA4LjAyMjAyIDguODM4NzEgNy43MjUzMyA3LjY1NTkyIDcuNzc0NzhDNi45NTY5OSA3LjgyNDIyIDYuNDE5MzYgNy45NzI1NyA2LjA0MzAxIDguMzY4MTVDNS42MTI5IDguODEzMTkgNS4zOTc4NSA5LjM1NzExIDUuMzk3ODUgMTAuMDQ5NEM1LjM5Nzg1IDEwLjc0MTcgNS42MTI5IDExLjIzNjEgNS45ODkyNSAxMS42MzE3QzYuMzY1NTkgMTEuOTc3OSA2Ljg0OTQ2IDEyLjEyNjIgNy40OTQ2MiAxMi4xNzU3QzguMzAxMDggMTIuMjc0NSA5LjUzNzYzIDExLjk3NzkgOS41Mzc2MyAxMS45Nzc5VjEzLjI2MzVDOS41Mzc2MyAxMy4yNjM1IDguNjIzNjYgMTMuNDYxMyA3LjM4NzEgMTMuNDYxM0M2LjM2NTU5IDEzLjQ2MTMgNS41NTkxNCAxMy4xMTUyIDQuOTEzOTggMTIuNTIxOEM0LjMyMjU4IDExLjg3OSA0IDExLjA4NzggNCAxMC4wOTg4QzQgOS4wNjA0MyA0LjMyMjU4IDguMTcwMzYgNS4wMjE1MSA3LjUyNzU0QzUuNzIwNDMgNi44ODQ3MSA2LjU4MDY1IDYuNTM4NTcgNy42NTU5MiA2LjUzODU3QzguNjIzNjYgNi41Mzg1NyA5LjUzNzYzIDYuNzM2MzcgOS41Mzc2MyA2LjczNjM3VjguMDIyMDJaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkiLz4KPHJlY3QgeD0iMTAiIHk9IjE0LjU5MTYiIHdpZHRoPSIxMCIgaGVpZ2h0PSI1IiByeD0iMi41IiBmaWxsPSIjNjc2QTcwIi8+CjxyZWN0IHg9IjEwLjQ5OTciIHk9IjE1LjA5MTYiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",BBA=Ai({__name:"AITranscriberSwitchH5",setup(t){const{isAITranscriberRunning:i}=Nk(),r=async()=>{try{i.value?await oo._aiAssistant.stopRealtimeTranscriber():await oo._aiAssistant.startRealtimeTranscriber({sourceLanguage:"zh",translationLanguages:["en"]})}catch(s){console.error("Failed to toggle AI transcriber:",s)}};return(s,g)=>(qA(),Ue("div",{onClick:r},[W(i)?(qA(),_t(zs,{key:0,src:W(lBA),width:"24px",height:"24px"},null,8,["src"])):(qA(),_t(zs,{key:1,src:W(CBA),width:"24px",height:"24px"},null,8,["src"]))]))}}),uBA={class:"topbar-right-controls"},QBA={class:"top-bar-left-controls"},dBA={class:"control-item"},hBA={class:"control-item"},pBA={options:{virtualHost:!0}},fBA=Ai({...pBA,__name:"TopBar",props:XlA,setup(t){const i=Pi.isPC,{callStatus:r,isGroupCall:s,callRole:g,allowedFullScreen:B}=Mo(Pa()),{callDuration:Q}=gW(),{isAITranscriberEnabled:f}=Nk(),m=vk(),M=rt(()=>r.value===Ao.CONNECTED),v=Ne(me.getData(bA.CALL,aA.ENABLE_FLOAT_WINDOW)),U=rt(()=>r.value===Ao.CONNECTED&&f.value),AA=rt(()=>{var eA,X;return!s.value||((X=(eA=m.value.button)==null?void 0:eA[gD.InviteUser])==null?void 0:X.show)===!1?!1:r.value===Ao.CALLING?g.value===Ts.CALLER:!0});function z(eA){v.value=eA}const sA={[aA.ENABLE_FLOAT_WINDOW]:z};return gs(()=>{me.watch(bA.CALL,sA,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{...sA})}),(eA,X)=>(qA(),Ue("div",{style:zr(eA.customStyle),class:"top-bar-container"},[W(i)?(qA(),_t(Ak,{key:0},{default:Vt(()=>[ze(CC,{span:8}),ze(CC,{span:8,justify:"center",align:"center"},{default:Vt(()=>[W(M)?(qA(),_t(iY,{key:0,"call-duration":W(Q)},null,8,["call-duration"])):Tt("",!0)]),_:1}),ze(CC,{span:8,justify:"end",align:"center"},{default:Vt(()=>[ce("div",uBA,[W(U)?(qA(),_t(EBA,{key:0})):Tt("",!0),W(v)?(qA(),_t(M8,{key:1})):Tt("",!0),W(B)?(qA(),_t(XCA,{key:2})):Tt("",!0)])]),_:1})]),_:1})):Tt("",!0),W(i)?Tt("",!0):(qA(),_t(Ak,{key:1},{default:Vt(()=>[ze(CC,{span:8,align:"center"},{default:Vt(()=>[ce("div",QBA,[ce("div",dBA,[!W(i)&&W(v)?(qA(),_t(M8,{key:0})):Tt("",!0)]),ce("div",hBA,[W(U)?(qA(),_t(BBA,{key:0})):Tt("",!0)])])]),_:1}),ze(CC,{span:8,justify:"center",align:"center"},{default:Vt(()=>[W(M)?(qA(),_t(iY,{key:0,"call-duration":W(Q)},null,8,["call-duration"])):Tt("",!0)]),_:1}),ze(CC,{span:8,justify:"end",align:"center"},{default:Vt(()=>[ze(Ak,null,{default:Vt(()=>[ze(CC,{span:16}),ze(CC,{span:8,justify:"center"},{default:Vt(()=>[W(AA)?(qA(),_t(V7,{key:0,"show-text":W(i)},null,8,["show-text"])):Tt("",!0)]),_:1})]),_:1})]),_:1})]),_:1}))],4))}}),q7=wo(fBA,[["__scopeId","data-v-3317b720"]]),mBA={key:0,class:"auto-play-dialog"},DBA={options:{virtualHost:!0}},yBA=Ai({...DBA,__name:"AutoPlayDialog",setup(t){const i=Ca(),r=Ne(!1);gs(()=>{oo.getTUICallEngineInstance().getTRTCCloudInstance().on("onAutoPlayFailed",s)}),Ya(()=>{oo.getTUICallEngineInstance().getTRTCCloudInstance().off("onAutoPlayFailed",s)});const s=()=>{r.value=!0},g=()=>{r.value=!1};return(B,Q)=>W(r)&&W(Pi).isH5?(qA(),Ue("div",mBA,[ce("div",null,Wt(W(i)("auto play failed")),1),ce("div",{class:"auto-play-action",onClick:g},Wt(W(i)("click to resume")),1)])):Tt("",!0)}}),K7=wo(yBA,[["__scopeId","data-v-5493446f"]]),RBA={show:{type:Boolean,default:!0},showMask:{type:Boolean,default:!0},showBackgroundImage:{type:Boolean,default:!0},blur:{type:Boolean,default:!0},bgColor:{type:String},bgImage:{type:String},zIndex:{type:Number,default:11e3},customClass:{type:String},customStyle:{type:Object},customMaskStyle:{type:Object},fit:{type:String,default:"cover"},defaultSrc:{type:String}},MBA=["click","error"],wBA={options:{virtualHost:!0}},j7=Ai({...wBA,__name:"Overlay",props:RBA,emits:MBA,setup(t,{emit:i}){const r=t,s=i,g=ga([`${ur}-overlay`,r.customClass]),B=`${ur}-overlay_mask-container`,Q=rt(()=>ga([`${ur}-overlay_mask`,{[`${ur}-blur`]:r.blur}])),f=`${ur}-overlay_slot`,m=rt(()=>({zIndex:r.zIndex,...r.customStyle})),M=rt(()=>({backgroundColor:r.bgColor,...r.customMaskStyle}));function v(){s("click")}const U=AA=>{s("error",AA)};return(AA,z)=>AA.show?(qA(),Ue("div",{key:0,class:Qi(W(g)),style:zr([W(m)]),onClick:v},[ce("div",{class:Qi(B)},[AA.showMask?(qA(),Ue("div",{key:0,class:Qi(W(Q)),style:zr([W(M)])},null,6)):Tt("",!0),AA.showBackgroundImage?(qA(),_t(zs,{key:1,fit:AA.fit,src:AA.bgImage,width:"100%",height:"100%",defaultSrc:AA.defaultSrc,onError:U},null,8,["fit","src","defaultSrc"])):Tt("",!0)]),ce("div",{class:Qi(f)},[Dr(AA.$slots,"default")])],6)):Tt("",!0)}}),SBA=["fill","contain","cover"],vBA=["circle","square"],NBA={icon:{type:String},size:{type:[Number,String],default:100},shape:{type:String,values:vBA,default:"square"},src:{type:String},defaultSrc:{type:String},text:{type:String},fit:{type:String,values:SBA,default:"cover"},customClass:{type:String}},TBA={options:{virtualHost:!0}},W7=Ai({...TBA,__name:"Avatar",props:NBA,setup(t){const i=t,r=Ne("");Un(()=>i.src,()=>{r.value=i.src},{immediate:!0});const s=rt(()=>ga([`${ur}-avatar`,`${ur}-avatar--${i.shape}`,`${ur}-avatar--${i.size}`,i.customClass])),g=rt(()=>typeof i.size=="number"?`${i.size}px`:i.size),B=rt(()=>typeof i.size=="number"?`${i.size}px`:i.size),Q=rt(()=>({width:g.value,height:B.value}));function f(m){console.error(m),i.defaultSrc&&(r.value=i.defaultSrc)}return(m,M)=>(qA(),Ue("div",{class:Qi(W(s)),style:zr([W(Q)])},[W(r)?(qA(),_t(zs,{key:0,fit:m.fit,width:W(g),height:W(B),src:W(r),onError:f},null,8,["fit","width","height","src"])):Dr(m.$slots,"default",{key:1})],6))}}),GBA="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjE0OTkgMTFWMTIuNUMzLjE0OTkgMTcuMzg3NyA3LjExMjE4IDIxLjM1IDExLjk5OTkgMjEuMzVDMTYuODg3NiAyMS4zNSAyMC44NDk5IDE3LjM4NzcgMjAuODQ5OSAxMi41VjExSDE5LjE0OTlWMTIuNUMxOS4xNDk5IDE2LjQ0ODggMTUuOTQ4NyAxOS42NSAxMS45OTk5IDE5LjY1QzguMDUxMDcgMTkuNjUgNC44NDk5IDE2LjQ0ODggNC44NDk5IDEyLjVWMTFIMy4xNDk5WiIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IHg9IjcuODUiIHk9IjEuODUiIHdpZHRoPSI4LjMiIGhlaWdodD0iMTQuOCIgcng9IjQuMTUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPC9zdmc+",kBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguNzM3MDggMTIuOTk2M0M4LjcxMjY2IDEyLjgzNDQgOC43IDEyLjY2ODcgOC43IDEyLjVWNkM4LjcgNC4xNzc0NiAxMC4xNzc1IDIuNyAxMiAyLjdDMTMuNTQ4OCAyLjcgMTQuODQ4NCAzLjc2Njk1IDE1LjIwMzggNS4yMDU5MkwxNi40NDU4IDMuNzA5NzRDMTUuNjE1IDIuMTAwMzMgMTMuOTM2IDEgMTIgMUM5LjIzODU4IDEgNyAzLjIzODU4IDcgNlYxMi41QzcgMTMuMjMzMyA3LjE1Nzg2IDEzLjkyOTcgNy40NDE0NSAxNC41NTcyTDguNzM3MDggMTIuOTk2M1pNMTEuMzM4NSAxNS43MzM3TDEwLjE2MTggMTcuMTUxM0MxMC43MzA4IDE3LjM3NjMgMTEuMzUwOSAxNy41IDEyIDE3LjVDMTQuNzYxNCAxNy41IDE3IDE1LjI2MTQgMTcgMTIuNVY4LjkxMzNMMTUuMyAxMC45NjEzVjEyLjVDMTUuMyAxNC4zMjI1IDEzLjgyMjUgMTUuOCAxMiAxNS44QzExLjc3MzQgMTUuOCAxMS41NTIyIDE1Ljc3NzIgMTEuMzM4NSAxNS43MzM3Wk01Ljk2NTE5IDE2LjMzNTZDNS4yNTkzMyAxNS4yMjczIDQuODUwMzkgMTMuOTExNCA0Ljg1MDM5IDEyLjVWMTFIMy4xNTAzOVYxMi41QzMuMTUwMzkgMTQuNDQxNiAzLjc3NTYyIDE2LjIzNzEgNC44MzU3MiAxNy42OTYzTDUuOTY1MTkgMTYuMzM1NlpNNy42MzIxOCAyMC4xOTg2TDguNzM5NCAxOC44NjQ3QzkuNzE3MTggMTkuMzY2NyAxMC44MjU3IDE5LjY1IDEyLjAwMDQgMTkuNjVDMTUuOTQ5MiAxOS42NSAxOS4xNTA0IDE2LjQ0ODggMTkuMTUwNCAxMi41VjExSDIwLjg1MDRWMTIuNUMyMC44NTA0IDE3LjA0OTggMTcuNDE3MSAyMC43OTc2IDEzIDIxLjI5NDJWMjRIMTFWMjEuMjk0MUM5Ljc4NjEzIDIxLjE1NzUgOC42NDY1OCAyMC43NzU0IDcuNjMyMTggMjAuMTk4NloiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZD0iTTUuNzM2ODIgMTkuNTUxM0wxOC4yNjY3IDQuNDYzNzEiIHN0cm9rZT0iI0VENDE0RCIgc3R5bGU9InN0cm9rZTojRUQ0MTREO3N0cm9rZTpjb2xvcihkaXNwbGF5LXAzIDAuOTI5MiAwLjI1NTUgMC4zMDA0KTtzdHJva2Utb3BhY2l0eToxOyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4KCg==",_BA={isMuted:{type:Boolean,default:!1},volume:{type:Number,default:0}},bBA={class:"mic-container"},LBA={class:"mic-level-container"},FBA={options:{virtualHost:!0}},UBA=Ai({...FBA,__name:"MicrophoneVolume",props:_BA,setup(t){const i=t,r=rt(()=>i.isMuted?kBA:GBA),s=rt(()=>i.isMuted||!i.volume?"":`height: ${i.volume*4}%`);return(g,B)=>(qA(),Ue("div",bBA,[ce("div",LBA,[ce("div",{class:"mic-level",style:zr(W(s))},null,4)]),ze(bu,{src:W(r)},null,8,["src"])]))}}),z7=wo(UBA,[["__scopeId","data-v-ea062939"]]),ad="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNLTUtNWgxMTB2MTEwSC01eiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjUgNzEuNWMwLTEwLjI2NCA3LjkzLTE4LjY3NiAxNy45OTgtMTkuNDQzLjQ5Ni0uMDM4Ljk5Ny0uMDU3IDEuNTAyLS4wNTdoMTNjLjUwNSAwIDEuMDA2LjAyIDEuNTAxLjA1N0M2OS4wNyA1Mi44MjQgNzcgNjEuMjM2IDc3IDcxLjV2Ni43ODNIMjVWNzEuNXpNNDQuNSA0NS42MDVhMTQuMDc1IDE0LjA3NSAwIDAgMS0uMjA1LS4xMDRjLTQuNzA0LTIuNDMxLTcuOTItNy4zNC03LjkyLTEzLjAwMSAwLTguMDc3IDYuNTQ4LTE0LjYyNSAxNC42MjUtMTQuNjI1UzY1LjYyNSAyNC40MjMgNjUuNjI1IDMyLjVjMCA1LjY2LTMuMjE2IDEwLjU3LTcuOTIgMTMtLjA2OC4wMzYtLjEzNi4wNy0uMjA1LjEwNWExNC41NjUgMTQuNTY1IDAgMCAxLTYuNSAxLjUyYy0yLjMzNSAwLTQuNTQyLS41NDctNi41LTEuNTJ6IiBmaWxsPSIjRDVFMEYyIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNzMuNSIgeTE9Ii01IiB4Mj0iNSIgeTI9Ijk4LjUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjN0M4NTlCIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzQ3QzkwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+",OBA={showOverlayStream:{type:Boolean,default:!0},customClass:{type:String},customStyle:{type:Object},isSmallWindow:{type:Boolean,default:!1},tip:{type:String,default:null},showOverlay:{type:Boolean,default:!0},showMask:{type:Boolean,default:!0},showBackgroundImage:{type:Boolean,default:!0},blur:{type:Boolean,default:!0},bgColor:{type:String},bgImage:{type:String,default:ad},overlayZIndex:{type:Number},customOverlayClass:{type:String},fit:{type:String},showLoading:{type:Boolean,default:!1},showAvatar:{type:Boolean,default:!0},avatar:{type:String,default:ad},showUserName:{type:Boolean,default:!0},username:{type:String},color:{type:String,default:"#FFF"},showMicVolume:{type:Boolean,default:!1},isMuted:{type:Boolean,default:!1},volume:{type:Number,default:0},showTip:{type:Boolean,default:!0}},xBA=["error"],YBA={class:"overlay-stream-content-container"},PBA={class:"overlay-stream-content"},JBA={class:"overlay-stream-avatar"},HBA={class:"overlay-stream-info"},VBA={class:"overlay-stream-tip"},qBA={key:0},KBA={options:{virtualHost:!0}},jBA=Ai({...KBA,__name:"OverlayStream",props:OBA,emits:xBA,setup(t,{emit:i}){const r=i,s=t,g=Ne(100),{isFloatWindow:B}=Mo(uB()),Q=Pi.isPC?"40px":"20px";Un([()=>s.isSmallWindow,B],()=>{B.value?g.value=s.isSmallWindow?20:40:g.value=s.isSmallWindow?40:100},{immediate:!0});const f=rt(()=>ga(["overlay-stream-container",{pc:Pi.isPC,mobile:!Pi.isPC,float:B.value}])),m=M=>{r("error",M)};return(M,v)=>M.showOverlayStream?(qA(),Ue("div",{key:0,class:Qi(W(f)),style:zr([M.customStyle])},[ze(j7,{show:M.showOverlay,"show-background-image":M.showBackgroundImage,"show-mask":M.showMask,blur:M.blur,zIndex:M.overlayZIndex,bgColor:M.bgColor,bgImage:M.bgImage||W(ad),fit:M.fit,defaultSrc:W(ad),customStyle:{position:"absolute",width:"100%",height:"100%"},"custom-mask-style":{"backdrop-filter":"blur(12px)","-webkit-backdrop-filter":"blur(12px)"},customClass:M.customOverlayClass,onError:m},{default:Vt(()=>[ce("div",YBA,[ce("div",PBA,[M.showLoading?(qA(),_t(IW,{key:0,mode:"dot"})):Tt("",!0),ce("div",JBA,[M.showAvatar?(qA(),_t(W7,{key:0,src:M.avatar||W(ad),size:W(g)},null,8,["src","size"])):Tt("",!0)]),ce("div",HBA,[M.showUserName?(qA(),_t(Zs,{key:0,truncated:!0,size:W(Q),color:M.color,width:"200px",weight:500},{default:Vt(()=>[Na(Wt(M.username),1)]),_:1},8,["size","color"])):Tt("",!0),M.showMicVolume?(qA(),_t(z7,{key:1,isMuted:M.isMuted,volume:M.volume},null,8,["isMuted","volume"])):Tt("",!0)]),ce("div",VBA,[M.showTip&&M.tip?(qA(),Ue("div",qBA,Wt(M.tip),1)):Tt("",!0)])]),Dr(M.$slots,"default",{},void 0,!0)])]),_:3},8,["show","show-background-image","show-mask","blur","zIndex","bgColor","bgImage","fit","defaultSrc","customClass"])],6)):Tt("",!0)}}),Z7=wo(jBA,[["__scopeId","data-v-a2512d7c"]]),WBA={class:"waiting-container"},zBA={key:0,class:"groupcall-info"},ZBA={class:"tip"},XBA={class:"avatar-group"},$BA={class:"avatar-item"},AuA=Ai({__name:"Waiting",setup(t){const{localUserInfoExcludeVolume:i,remoteUserListExcludeVolume:r}=Mo(fl()),{callerUserInfo:s}=Mo(_lA()),{isGroupCall:g}=Mo(Pa()),B=G7(),Q=Ca(),f=rt(()=>{var X,QA;return g.value?s.value.displayUserInfo:(QA=(X=r.value)==null?void 0:X[0])==null?void 0:QA.displayUserInfo}),m=rt(()=>{var X,QA;return g.value?s.value.avatar:(QA=(X=r.value)==null?void 0:X[0])==null?void 0:QA.avatar}),M=rt(()=>g.value?!0:!i.value.isVideoAvailable),v=rt(()=>g.value?Q.value("Invited group call"):null),U=rt(()=>{var X,QA;return g.value?B.value[s.value.userId]||m.value:B.value[(QA=(X=r.value)==null?void 0:X[0])==null?void 0:QA.userId]||m.value}),AA=Ne(!1),z=Ne("fill");let sA=Ne(!1);Nw(()=>{var X,QA,wA,HA;if(sA.value){AA.value=g.value?!0:!i.value.isVideoAvailable,z.value="cover";return}g.value?(AA.value=!B.value[s.value.userId],z.value=B.value[s.value.userId]?"fill":"cover"):(AA.value=!i.value.isVideoAvailable&&!B.value[(QA=(X=r.value)==null?void 0:X[0])==null?void 0:QA.userId],z.value=B.value[(HA=(wA=r.value)==null?void 0:wA[0])==null?void 0:HA.userId]?"fill":"cover")});const eA=()=>{sA.value=!0};return(X,QA)=>(qA(),Ue("div",WBA,[ze(Z7,{username:W(f),avatar:W(m),"bg-image":W(U),"show-avatar":!W(Pi).isPC,"show-loading":!1,"bg-color":"#22262ed9","show-mask":W(AA),"show-background-image":W(M),tip:W(v),fit:W(z),onError:eA},{default:Vt(()=>[!W(Pi).isPC&&W(g)?(qA(),Ue("div",zBA,[ce("div",ZBA,[ze(Zs,{color:"#FFF"},{default:Vt(()=>[Na(Wt(W(r).length)+Wt(W(Q)("people in the call")),1)]),_:1})]),ce("div",XBA,[(qA(!0),Ue(Tn,null,DC(W(r),wA=>(qA(),Ue("div",$BA,[ze(W7,{size:"100%",src:wA.avatar||W(ad)},null,8,["src"])]))),256))])])):Tt("",!0)]),_:1},8,["username","avatar","bg-image","show-avatar","show-mask","show-background-image","tip","fit"])]))}}),X7=wo(AuA,[["__scopeId","data-v-8dc3669f"]]),euA={bigWindow:{type:String},showSmallWindow:{type:Boolean,default:!0},smallWindowWidth:{type:String,default:"30%"},smallWindowHeight:{type:String,default:"30%"}},tuA=["toggle"],$7="ToggleWindowContextKey",iuA={options:{virtualHost:!0}},ouA=Ai({...iuA,__name:"ToggleWindow",props:euA,emits:tuA,setup(t,{emit:i}){const r=t,s=i,g=Ne(r.bigWindow),B=`${ur}-toggle-window`,Q=f=>{g.value=f,s("toggle",f)};return Un(()=>r.bigWindow,()=>{g.value=r.bigWindow}),gE($7,{bigWindow:g,toggleWindow:Q,smallWindowWidth:pK(r,"smallWindowWidth"),smallWindowHeight:pK(r,"smallWindowHeight"),showSmallWindow:pK(r,"showSmallWindow")}),(f,m)=>(qA(),Ue("div",{class:Qi(B)},[Dr(f.$slots,"default")]))}}),ruA={options:{virtualHost:!0}},nuA=Ai({...ruA,__name:"Portal",props:["disabled"],setup(t){return(i,r)=>{const s=eoA("root-portal");return qA(),_t(s,{enable:!t.disabled},{default:Vt(()=>[Dr(i.$slots,"default")]),_:3},8,["enable"])}}}),auA={name:"teleport",props:{to:{type:String,required:!0},source:{type:String,required:!0},disabled:{type:Boolean,required:!0}},mounted(){if(this.disabled)return;const t=document.querySelector(this.to);t&&t.appendChild(this.$el)},watch:{disabled:{immediate:!0,handler(){var t,i;this.disabled?(i=document.querySelector(this.source))==null||i.appendChild(this.$el):(t=document.querySelector(this.to))==null||t.appendChild(this.$el)}}},destroyed(){const t=document.querySelector(this.to);if(t)try{t.removeChild(this.$el)}catch(i){console.debug(i)}}};function suA(t,i,r,s,g,B){return qA(),Ue("div",null,[Dr(t.$slots,"default")])}const guA=wo(auA,[["render",suA]]),IuA={options:{virtualHost:!0}},cuA=Ai({...IuA,__name:"Portal",props:["disabled","to"],setup(t){return(i,r)=>(qA(),_t(xiA,{disabled:t.disabled,to:t.to},[Dr(i.$slots,"default")],8,["disabled","to"]))}}),EuA={disabled:{type:Boolean,default:!1},to:{type:String,default:"body"},source:{type:String,default:"body"}},A$=Ai({__name:"Portal",props:EuA,setup(t){const{majorVersion:i}=sCA();rt(()=>i==="3");const r=rt(()=>i==="2");return(s,g)=>(qA(),Ue("div",null,[W(k7)?(qA(),_t(nuA,{key:0,disabled:s.disabled},{default:Vt(()=>[Dr(s.$slots,"default")]),_:3},8,["disabled"])):W(r)?(qA(),_t(guA,{key:1,disabled:s.disabled,to:s.to,source:s.source},{default:Vt(()=>[Dr(s.$slots,"default")]),_:3},8,["disabled","to","source"])):(qA(),_t(cuA,{key:2,disabled:s.disabled,to:s.to},{default:Vt(()=>[Dr(s.$slots,"default")]),_:3},8,["disabled","to"]))]))}}),luA={value:{type:String}},CuA={options:{virtualHost:!0}},w8=Ai({...CuA,__name:"ToggleWindowItem",props:luA,setup(t){const i=t,{bigWindow:r,toggleWindow:s,smallWindowWidth:g,smallWindowHeight:B,showSmallWindow:Q}=rI($7),f=rt(()=>ga([`${ur}-toggle-window-item`,`${ur}-toggle-window-item--${r.value===i.value?"big":"small"}`,{pc:Dp,mobile:!Dp}])),m=rt(()=>{let M={};return r.value!==i.value&&(M={width:g.value,height:B.value},Q.value?M.visibility="":M.visibility="hidden"),M});return(M,v)=>(qA(),Ue("div",{class:Qi(W(f)),style:zr([W(m)]),onClick:v[0]||(v[0]=()=>W(s)(M.value))},[Dr(M.$slots,"default")],6))}}),cW={nickName:{type:String,default:""},isSelf:{type:Boolean,default:!1},isMuted:{type:Boolean,default:!1},volume:{type:Number,default:0},showNickName:{type:Boolean,default:!1},showSwitchCameraButton:{type:Boolean,default:!1},showVirtualBackgroundButton:{type:Boolean,default:!1},showNetWorkStatus:{type:Boolean,default:!1}},e$="data:image/png;base64,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",BuA={class:"stream-userInfo"},uuA={class:"nickname"},QuA={key:0},duA={options:{virtualHost:!0}},huA=Ai({...duA,__name:"StreamInfoPC",props:cW,setup(t){const i=Ca();return(r,s)=>(qA(),_t(Ak,null,{default:Vt(()=>[ze(CC,{span:12,justify:"start",align:"center"},{default:Vt(()=>[ce("div",BuA,[ze(z7,{class:"mic-volume","is-muted":r.isMuted,volume:r.volume},null,8,["is-muted","volume"]),ce("div",uuA,[ze(Zs,{color:"#fff",truncated:!0,width:"80px",size:"14px"},{default:Vt(()=>[Na(Wt(r.nickName),1)]),_:1}),aa(ze(Zs,{color:"#fff",size:"14px"},{default:Vt(()=>[Na(Wt(W(i)("me")),1)]),_:1},512),[[sa,r.isSelf]])])])]),_:1}),ze(CC,{span:12,justify:"center"},{default:Vt(()=>[r.showNetWorkStatus?(qA(),Ue("div",QuA,[ze(zs,{width:"24px",height:"24px",src:W(e$)},null,8,["src"])])):Tt("",!0)]),_:1})]),_:1}))}}),puA=wo(huA,[["__scopeId","data-v-73beaeef"]]),fuA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48Y2lyY2xlIGN4PSIxNCIgY3k9IjE0IiByPSIxMiIgZmlsbD0iI2ZmZiIvPjwvZz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1LjgxMiAyMi41MzhjNC43MTYtNC43MTUgNC43MTYtMTIuMzYgMC0xNy4wNzZsLTEuNzY3IDEuNzY3YTkuNTc1IDkuNTc1IDAgMCAxIDAgMTMuNTQxbDEuNzY3IDEuNzY4eiIgZmlsbD0iIzFDNjZFNSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMTg4IDE5LjEzNmE3LjI2NCA3LjI2NCAwIDAgMCAwLTEwLjI3M2wtMS43NjggMS43NjhhNC43NjQgNC43NjQgMCAwIDEgMCA2LjczN2wxLjc2OCAxLjc2OHpNOS4xMjEgMTYuMDdhMi45MjcgMi45MjcgMCAwIDAgMC00LjE0bC0yLjAxOCAyLjAxOGEuMDczLjA3MyAwIDAgMSAwIC4xMDNsMi4wMTggMi4wMTh6IiBmaWxsPSIjMUM2NkU1Ii8+PGRlZnM+PGZpbHRlciBpZD0iYSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+PGZlT2Zmc2V0Lz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+PGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfMTI0XzY0NyIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd18xMjRfNjQ3IiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",muA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48Y2lyY2xlIGN4PSIxNCIgY3k9IjE0IiByPSIxMiIgZmlsbD0iI2ZmZiIvPjwvZz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjY2NyAxMGEzLjMzMyAzLjMzMyAwIDAgMSA1LjkzNy0yLjA4bC01Ljg3MiA3LjA3M2EzLjM0NSAzLjM0NSAwIDAgMS0uMDY1LS42NlYxMHpNOS42MyAxNi4zMjFhNC43ODIgNC43ODIgMCAwIDEtLjQzLTEuOTg4di0xSDguMTMzdjFjMCAxLjA0Ny4yNzUgMi4wMy43NTUgMi44ODFsLjc0Mi0uODkzem0xLjI4MyAzLjAwMi42OS0uODNhNC44IDQuOCAwIDAgMCA3LjE5OC00LjE2di0xaDEuMDY2djFhNS44NjcgNS44NjcgMCAwIDEtNS4zMzQgNS44NDNWMjJoLTEuMDY2di0xLjgyNGE1LjgzMSA1LjgzMSAwIDAgMS0yLjU1NC0uODUzem0xLjY0Ni0xLjk4MyA0Ljc3NC01Ljc1MXYyLjc0NGEzLjMzMyAzLjMzMyAwIDAgMS00Ljc3NCAzLjAwN3oiIGZpbGw9IiNFNjM5NUMiLz48cGF0aCBkPSJtOS40MjMgMTguODQ1IDguMzYtMTAuMDY3IiBzdHJva2U9IiNFNjM5NUMiIHN0cm9rZS13aWR0aD0iMS4wNjciIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48ZGVmcz48ZmlsdGVyIGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz48ZmVPZmZzZXQvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz48ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJvdXQiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjUgMCIvPjxmZUJsZW5kIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18xNzQxXzEwNjc4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzE3NDFfMTA2NzgiIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+",DuA={key:0},yuA={options:{virtualHost:!0}},RuA=Ai({...yuA,__name:"StreamInfoMobile",props:cW,setup(t){const{enableVirtualBackground:i}=Mo(Pa()),r=async()=>{await oo.switchCamera()},s=async()=>{await oo.setBlurBackground(!i.value)};return(g,B)=>(qA(),_t(Ak,{"custom-style":{padding:"2px 5px"}},{default:Vt(()=>[ze(CC,{span:12,justify:"start",align:"center"},{default:Vt(()=>[g.showNickName?(qA(),_t(Zs,{key:0,width:"100px",truncated:!0,color:"#FFF"},{default:Vt(()=>[Na(Wt(g.nickName),1)]),_:1})):Tt("",!0),aa(ce("div",null,[ze(bu,{size:24,src:W(fuA)},null,8,["src"])],512),[[sa,!g.isMuted&&g.volume]]),aa(ce("div",null,[ze(bu,{size:24,src:W(muA)},null,8,["src"])],512),[[sa,g.isMuted]])]),_:1}),ze(CC,{span:12,justify:"end",align:"center"},{default:Vt(()=>[g.showNetWorkStatus?(qA(),Ue("div",DuA,[ze(zs,{width:"24px",height:"24px",src:W(e$)},null,8,["src"])])):Tt("",!0),g.showSwitchCameraButton?(qA(),Ue("div",{key:1,class:"switch-camera stream-icon",onClick:ul(r,["stop"])},[ze(zs,{width:"15px",height:"15px",src:W(cp)},null,8,["src"])])):Tt("",!0),g.showVirtualBackgroundButton?(qA(),Ue("div",{key:2,class:"stream-icon",onClick:ul(s,["stop"])},[ze(zs,{width:"15px",height:"15px",src:W(lp)},null,8,["src"])])):Tt("",!0)]),_:1})]),_:1}))}}),MuA=wo(RuA,[["__scopeId","data-v-46cc5655"]]),wuA={options:{virtualHost:!0}},oY=Ai({...wuA,__name:"TKStreamInfo",props:cW,setup(t){const{isGroupCall:i}=Pa(),r=Pi.isPC;return(s,g)=>(qA(),Ue("div",null,[W(r)?(qA(),_t(puA,{key:0,nickName:s.nickName,isSelf:s.isSelf,isMuted:s.isMuted,volume:s.volume,showNetWorkStatus:s.showNetWorkStatus},null,8,["nickName","isSelf","isMuted","volume","showNetWorkStatus"])):Tt("",!0),W(i)&&!W(r)?(qA(),_t(MuA,{key:1,showSwitchCameraButton:s.showSwitchCameraButton,showVirtualBackgroundButton:s.showVirtualBackgroundButton,showNetWorkStatus:s.showNetWorkStatus,nickName:s.nickName,showNickName:s.showNickName,isSelf:s.isSelf,isMuted:s.isMuted,volume:s.volume},null,8,["showSwitchCameraButton","showVirtualBackgroundButton","showNetWorkStatus","nickName","showNickName","isSelf","isMuted","volume"])):Tt("",!0)]))}}),SuA={show:{type:Boolean,default:!0},domId:{type:String},loading:{type:Boolean},showStreamInfo:{type:Boolean},showAudioStream:{type:Boolean}},vuA=["id"],NuA={class:"audio-stream-container"},TuA={options:{virtualHost:!0}},GuA=Ai({...TuA,__name:"Pusher",props:SuA,setup(t){const i=Ne(me.getData(bA.CALL,aA.PUSHER_ID)),r=ga(["stream-info-container",{mobile:!Pi.isPC}]),s=B=>{i.value=B},g={[aA.PUSHER_ID]:s};return gs(()=>{me.watch(bA.CALL,g,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,g)}),(B,Q)=>aa((qA(),Ue("div",{id:B.domId,class:"pusher-container"},[aa(ce("div",NuA,[Dr(B.$slots,"audio-stream",{},void 0,!0)],512),[[sa,B.showAudioStream]]),Dr(B.$slots,"loading",{},void 0,!0),ce("div",{class:Qi(W(r))},[Dr(B.$slots,"stream-info",{},void 0,!0)],2)],8,vuA)),[[sa,B.show]])}}),t$=wo(GuA,[["__scopeId","data-v-8cf5d7b3"]]),kuA={show:{type:Boolean,default:!0},domId:{type:String},loading:{type:Boolean},showStreamInfo:{type:Boolean},showAudioStream:{type:Boolean}},_uA=["id"],buA={class:"audio-stream-container"},LuA={options:{virtualHost:!0}},FuA=Ai({...LuA,__name:"Player",props:kuA,setup(t){const i=ga(["stream-info-container",{mobile:!Pi.isPC}]);return(r,s)=>aa((qA(),Ue("div",{id:r.domId,class:"player-container"},[aa(ce("div",buA,[Dr(r.$slots,"audio-stream",{},void 0,!0)],512),[[sa,r.showAudioStream]]),Dr(r.$slots,"loading",{},void 0,!0),ce("div",{class:Qi(W(i))},[Dr(r.$slots,"stream-info",{},void 0,!0)],2)],8,_uA)),[[sa,r.show]])}}),i$=wo(FuA,[["__scopeId","data-v-1bb63b56"]]),UuA={avatar:{type:String},username:{type:String},isVideoAvailable:{type:Boolean},showStreamInfo:{type:Boolean},isSmallWindow:{type:Boolean,default:!1},isMuted:{type:Boolean,default:!0},volume:{type:Number,default:0},userId:{type:String}},OuA={options:{virtualHost:!0}},rY=Ai({...OuA,__name:"AudioStream",props:UuA,setup(t){const i=t,r=G7(),{callType:s,isGroupCall:g}=Mo(Pa()),{isFloatWindow:B}=Mo(uB()),Q=rt(()=>!g.value&&!Pi.isPC),f=rt(()=>g.value?Pi.isPC:s.value===Pr.AUDIO),m=rt(()=>!g.value&&Pi.isPC&&s.value===Pr.AUDIO),M=rt(()=>({zIndex:1})),v=rt(()=>r.value[i.userId]||i.avatar),U=Ne(!r.value[i.userId]),AA=Ne(r.value[i.userId]?"fill":"cover");Un([()=>i.userId,r],()=>{r.value[i.userId]?(AA.value="fill",U.value=!1):(AA.value="cover",U.value=!0)},{immediate:!0});const z=()=>{U.value=!0,AA.value="cover"};return(sA,eA)=>(qA(),_t(Z7,{avatar:sA.avatar,"bg-image":W(v),"show-avatar":W(Q),username:sA.username,"show-user-name":W(f),"show-mask":!W(g)&&W(U),fit:W(AA),blur:!W(g),"show-mic-volume":W(m),"show-tip":!W(g)&&!W(B),"custom-style":W(M),"is-small-window":sA.isSmallWindow,"is-muted":sA.isMuted,volume:sA.volume,"bg-color":"rgba(0, 0, 0, 0.5)",onError:z},null,8,["avatar","bg-image","show-avatar","username","show-user-name","show-mask","fit","blur","show-mic-volume","show-tip","custom-style","is-small-window","is-muted","volume"]))}}),xuA="data:image/svg+xml;base64,IDxzdmcgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgPHBhdGggZD0iTTE4LjQ0MzcgMTIuNDQ5QzE4LjQ0MzcgMTQuMTE0MiAxOC4yMzM2IDE1LjM1MTUgMjEuNTA4OSAxNS43MTI2QzI0Ljc4NzUgMTYuMDczNyAyNC4zNjY2IDEzLjY3OTQgMjQuMzY2MiAxMi4wNjY5QzI0LjM2NDkgMTAuMjA2MSAyMC4wNjAyIDcuNjE4OTUgMTMuMjcyNiA3LjYxNzNDNi40ODY2MiA3LjYxNzM1IDIuMTc4OSAxMC4yMDUgMi4xNzg4OCAxMi4wNjdDMi4xNzg4NyAxMy42OCAxLjc1NjIxIDE2LjA3MjYgNS4wMzMxNSAxNS43MTIzQzguMzEwMDkgMTUuMzUzNyA4LjEwMDA1IDE0LjExNTUgOC4wOTgzNyAxMi40NDk1QzguMTAxMzQgMTEuMjg2MiAxMC43NTg3IDExLjAzMTYgMTMuMjcyNSAxMS4wMjk4QzE1Ljc4NjMgMTEuMDI4MSAxOC40NDU0IDExLjI4NDQgMTguNDQzNyAxMi40NDlaIiBmaWxsPSIjRkUzQzQ0Ii8+CiAgICA8L3N2Zz4=",YuA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02LjY2NjY2IDQuMTY2NjhDNi42NjY2NiAyLjMyODM0IDguMTYxNjYgMC44MzMzNDQgOS45OTk5OSAwLjgzMzM0NEMxMS44MzgzIDAuODMzMzQ0IDEzLjMzMzMgMi4zMjgzNCAxMy4zMzMzIDQuMTY2NjhWOS4xNjY2OEMxMy4zMzMzIDExLjAwNSAxMS44MzgzIDEyLjUgOS45OTk5OSAxMi41QzguMTYxNjYgMTIuNSA2LjY2NjY2IDExLjAwNSA2LjY2NjY2IDkuMTY2NjhWNC4xNjY2OFpNNi42NjY2NiAxOC4zMzMzQzYuNjY2NjYgMTcuODcyNSA3LjAzOTk5IDE3LjUgNy40OTk5OSAxNy41SDEyLjVDMTIuOTYwOCAxNy41IDEzLjMzMzMgMTcuODcyNSAxMy4zMzMzIDE4LjMzMzNDMTMuMzMzMyAxOC43OTQyIDEyLjk2MDggMTkuMTY2NyAxMi41IDE5LjE2NjdINy40OTk5OUM3LjAzOTk5IDE5LjE2NjcgNi42NjY2NiAxOC43OTQyIDYuNjY2NjYgMTguMzMzM1oiIGZpbGw9IiMxMDE0MTkiLz4KPHBhdGggZD0iTTE1LjgzMzMgOC4zNTEyVjkuNTA4MjVDMTUuODMzMyAxMi4wODEgMTMuMjIxNyAxNSA5Ljk5OTk5IDE1QzYuNzc4MzMgMTUgNC4xNjY2NiAxMi4wODEgNC4xNjY2NiA5LjUwODI1VjguMzMzMzQiIHN0cm9rZT0iIzEwMTQxOSIgc3Ryb2tlLXdpZHRoPSIxLjY2NjY3IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+",PuA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAxNSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC42MjQ3IDAuNzE5MTY4QzE0LjE5MzQgMC4zNzQxNTggMTMuNTY0MSAwLjQ0NDA4IDEzLjIxOTEgMC44NzUzNDJMMTAuODE2OCAzLjgzMjAzQzEwLjE3ODkgMy4wMjQ1NSA5LjE1Mzg3IDIuNTAwMDQgOC4wMDAwMSAyLjUwMDA0QzYuMDY5NzYgMi41MDAwNCA0LjUwMDAxIDMuOTY3ODUgNC41MDAwMSA1Ljc3Mjc2VjEwLjY4MTlDNC41MDAwMSAxMC45NTYzIDQuNTM2MyAxMS4yMjI5IDQuNjA0NjMgMTEuNDc3OEwzLjM4OCAxMi45NzUyQzIuOTg0NDkgMTIuMzQzMyAyLjc1MDAxIDExLjY1MjIgMi43NTAwMSAxMC45NzE3VjkuODE4MTlMMi43NDMxOSA5LjcxNTU2QzIuNjg5MiA5LjMxMjEzIDIuMzIxMDggOS4wMDAwMSAxLjg3NTAxIDkuMDAwMDFDMS4zOTE3NiA5LjAwMDAxIDEuMDAwMDEgOS4zNjYzMiAxLjAwMDAxIDkuODE4MTlWMTAuOTcxN0wxLjAwNDY2IDExLjE3NjFDMS4wNTU1NyAxMi4yOTY4IDEuNTIxNjEgMTMuNDAxNiAyLjI2OTM5IDE0LjM1MTlMMC4yMTkxMzcgMTYuODc1M0wwLjE0Njg2MSAxNi45NzgyQy0wLjExMjk3NyAxNy40MDE3IC0wLjAyMjc3NjcgMTcuOTYyNCAwLjM3NTMxMSAxOC4yODA5QzAuODA2NTczIDE4LjYyNTkgMS40MzU4NyAxOC41NTYgMS43ODA4OCAxOC4xMjQ3TDMuNzE2NjEgMTUuNzQyM0MzLjcxODQ5IDE1Ljc0MzcgMy43MjAzOCAxNS43NDUgMy43MjIyNyAxNS43NDY0TDQuMjk5NyAxNS4wMjQ2TDguMjgwODggMTAuMTI0N0wxNC43ODA5IDIuMTI0NzNMMTQuODUzMiAyLjAyMTkxQzE1LjExMyAxLjU5ODM0IDE1LjAyMjggMS4wMzc2NCAxNC42MjQ3IDAuNzE5MTY4Wk03LjcyNDk5IDEzLjk0NDZMMTEuNSA5LjIyNTgyVjEwLjY4MTlDMTEuNSAxMi40ODY4IDkuOTMwMjYgMTMuOTU0NiA4LjAwMDAxIDEzLjk1NDZDNy45MDc0NiAxMy45NTQ2IDcuODE1NzUgMTMuOTUxMiA3LjcyNDk5IDEzLjk0NDZaTTYuNjA0NDUgMTUuMzQ1M0w1LjUwNzk4IDE2LjcxNTlDNi4yOTIyNSAxNy4wMTM2IDcuMTM1MzIgMTcuMTgxOCA4LjAwMDAxIDE3LjE4MThDMTEuNjk3NiAxNy4xODE4IDE1IDE0LjEwNjQgMTUgMTAuOTcxN1Y5LjgzNTcyTDE0Ljk5MzIgOS43MzMwOUMxNC45MzkyIDkuMzI5NjYgMTQuNTcxMSA5LjAxNzU0IDE0LjEyNSA5LjAxNzU0QzEzLjY0MTggOS4wMTc1NCAxMy4yNSA5LjM4Mzg1IDEzLjI1IDkuODM1NzJWMTAuOTcxN0wxMy4yNDQ1IDExLjE1MjdDMTMuMTEzOCAxMy4zMjYyIDEwLjY1ODkgMTUuNTQ1NSA4LjAwMDAxIDE1LjU0NTVDNy41MjQyNCAxNS41NDU1IDcuMDU1MDEgMTUuNDc0NCA2LjYwNDQ1IDE1LjM0NTNaTTUuMzc1MDEgMTguODYzN0M0Ljg5MjAxIDE4Ljg2MzcgNC41MDAwMSAxOS4yMjk0IDQuNTAwMDEgMTkuNjgxOUM0LjUwMDAxIDIwLjEzNDMgNC44OTIwMSAyMC41IDUuMzc1MDEgMjAuNUgxMC42MjVDMTEuMTA4OSAyMC41IDExLjUgMjAuMTM0MyAxMS41IDE5LjY4MTlDMTEuNSAxOS4yMjk0IDExLjEwODkgMTguODYzNyAxMC42MjUgMTguODYzN0g1LjM3NTAxWiIgZmlsbD0iIzEwMTQxOSIvPgo8L3N2Zz4=",JuA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjMzMzM3IDkuMzMzMzFIMC4zMzMzNzRWMC45OTk5OEMwLjMzMzM3NCAwLjYzMTc5IDAuNjMxODUxIDAuMzMzMzEzIDEuMDAwMDQgMC4zMzMzMTNMOS4zMzMzOCAwLjMzMzMxM1YyLjMzMzMxSDMuNzQ3NThMMTAuMDQwNSA4LjYyNjI0TDguNjI2MjcgMTAuMDQwNEwyLjMzMzM3IDMuNzQ3NTNWOS4zMzMzMVpNMTguMzMzMSAxMS4zMzMzSDIwLjMzMzFWMTkuNjY2NkMyMC4zMzMxIDIwLjAzNDggMjAuMDM0NyAyMC4zMzMzIDE5LjY2NjUgMjAuMzMzM0wxMS4zMzMxIDIwLjMzMzNMMTEuMzMzMSAxOC4zMzMzSDE2LjkxODlMMTAuNjI2IDEyLjA0MDNMMTIuMDQwMiAxMC42MjYxTDE4LjMzMzEgMTYuOTE5VjExLjMzMzNaIiBmaWxsPSIjMTAxNDE5Ii8+Cjwvc3ZnPg==",HuA={class:"float-window-container"},VuA={class:"float-control-panel"},quA={class:"float-control-item-icon"},KuA=["src"],juA={class:"float-control-item-icon"},WuA=["src"],zuA=["src"],ZuA={class:"float-control-item-icon"},XuA=["src"],$uA={options:{virtualHost:!0}},AQA=Ai({...$uA,__name:"FloatWindow",setup(t){const{localUserInfoExcludeVolume:i}=Mo(fl()),{callRole:r,callStatus:s}=Mo(Pa()),{isFloatWindow:g}=Mo(uB());function B(){oo.toggleMinimize()}async function Q(){r.value===Ts.CALLEE&&s.value===Ao.CALLING?await oo.reject():await oo.hangup()}async function f(){i.value.isAudioAvailable?await oo.closeMicrophone():await oo.openMicrophone()}return(m,M)=>(qA(),Ue("div",HuA,[aa(ce("div",VuA,[ce("div",quA,[ce("div",{class:"float-control-item-icon-container",onClick:Q},[ce("img",{src:W(xuA)},null,8,KuA)])]),aa(ce("div",juA,[ce("div",{class:"float-control-item-icon-container",onClick:f},[W(i).isAudioAvailable?(qA(),Ue("img",{key:0,src:W(YuA)},null,8,WuA)):(qA(),Ue("img",{key:1,src:W(PuA)},null,8,zuA))])],512),[[sa,W(g)]]),aa(ce("div",ZuA,[ce("div",{class:"float-control-item-icon-container",onClick:B},[ce("img",{src:W(JuA)},null,8,XuA)])],512),[[sa,W(g)]])],512),[[sa,W(g)]]),aa(ce("div",null,[Dr(m.$slots,"default",{},void 0,!0)],512),[[sa,!W(g)]])]))}}),eQA=wo(AQA,[["__scopeId","data-v-89ef9c99"]]),o$="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTS43NjEgOS4zMzJDLjAwMSA3LjEzNC45NjMgNC43NzMgMi44MzMgMy4zOSA0LjI1MiAyLjM0MyA1LjY3NiAxLjI4NSA2LjQ5LjY4MWEuOTEyLjkxMiAwIDAgMSAxLjI0LjE0MWw0LjQyOSA1LjIxYy4yOS4zNC4yOS44NDEgMCAxLjE4MmwtMi43MTYgMy4xOThhLjg5My44OTMgMCAwIDAtLjA5MyAxLjAzNCAxOS45NDYgMTkuOTQ2IDAgMCAwIDMuMTUxIDQuMDQ4IDE5LjYyIDE5LjYyIDAgMCAwIDQuMDY0IDMuMTM3Ljg5NS44OTUgMCAwIDAgMS4wMzMtLjA5NGwzLjE4Ni0yLjcwMmEuOTEzLjkxMyAwIDAgMSAxLjE4MSAwbDUuMjE0IDQuNDMxYy4zNjYuMzExLjQyOS44NTIuMTQzIDEuMjM4bC0yLjcyNyAzLjY5Yy0xLjM3MiAxLjg1NS0zLjcxNCAyLjc5OC01Ljg5NSAyLjA0N2EyOC44NjUgMjguODY1IDAgMCAxLTExLjA0LTYuOTA4QTI4Ljg1NSAyOC44NTUgMCAwIDEgLjc2MSA5LjMzMnoiIGZpbGw9IiMxMkI5NjkiLz48L3N2Zz4=",tQA={class:"float-window-tip-container"},iQA={options:{virtualHost:!0}},oQA=Ai({...iQA,__name:"FloatWindowSingleCall",setup(t){const{callType:i,callStatus:r}=Mo(Pa()),{isFloatWindow:s}=Mo(uB()),{callDuration:g}=gW(),B=Ca(),Q=rt(()=>ga(["float-window-container",{"singlecall-video-float":i.value===Pr.VIDEO&&s.value,"singlecall-audio-float":i.value===Pr.AUDIO&&s.value}]));function f(){s.value&&oo.toggleMinimize()}return(m,M)=>(qA(),Ue("div",{class:Qi(W(Q))},[aa(ce("div",{class:"singlecall-video-float-content",onClick:f},[Dr(m.$slots,"default",{},void 0,!0),ce("div",tQA,[W(r)===W(Ao).CALLING&&W(s)?(qA(),_t(Zs,{key:0,color:"#FFF",size:"12px"},{default:Vt(()=>[Na(Wt(W(B)("wait to be called")),1)]),_:1})):Tt("",!0)])],512),[[sa,!(W(s)&&W(i)===W(Pr).AUDIO)]]),aa(ce("div",{class:"singlecall-audio-float-content",onClick:f},[ze(zs,{width:"36px",height:"36px",src:W(o$)},null,8,["src"]),W(r)===W(Ao).CONNECTED?(qA(),_t(iY,{key:0,fontSize:"12px",callDuration:W(g),color:"#12b969"},null,8,["callDuration"])):Tt("",!0),W(r)===W(Ao).CALLING&&W(s)?(qA(),_t(Zs,{key:1,color:"#12b969",size:"12px"},{default:Vt(()=>[Na(Wt(W(B)("wait to be called")),1)]),_:1})):Tt("",!0)],512),[[sa,W(s)&&W(i)===W(Pr).AUDIO]])],2))}}),rQA=wo(oQA,[["__scopeId","data-v-9dbb05f9"]]),nQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNyA3LjU3di0uNzMxaDEuNXYuNzNhNC41ODMgNC41ODMgMCAxIDAgOS4xNjYgMHYtLjczaDEuNXYuNzNhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMgNi4wMzh2MS4zMDJoLTEuNXYtMS4zMDJhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMtNi4wMzh6IiBmaWxsPSIjMTJCOTY5Ii8+PHJlY3QgeD0iNC42NjciIHk9IjEuMDkxIiB3aWR0aD0iNi42NjciIGhlaWdodD0iOS44OTciIHJ4PSIzLjMzMyIgZmlsbD0iIzEyQjk2OSIvPjwvc3ZnPg==",aQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzIgNi4xMTdhLjYuNiAwIDAgMC0uMzMxLjUzNnYyLjY5M2EuNi42IDAgMCAwIC4zMy41MzdsMi44MDMgMS40MDVhLjIuMiAwIDAgMCAuMjktLjE3OFY0Ljg5YS4yLjIgMCAwIDAtLjI5LS4xNzlsLTIuODAyIDEuNDA2eiIgZmlsbD0iIzEyQjk2OSIvPjxnIGZpbHRlcj0idXJsKCNhKSI+PHJlY3QgeD0iLjY2NyIgeT0iMi44OTQiIHdpZHRoPSIxMC42NjciIGhlaWdodD0iMTAuMjEzIiByeD0iMS41IiBmaWxsPSIjMTJCOTY5Ii8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9ImEiIHg9Ii03LjMzMyIgeT0iLTUuMTA2IiB3aWR0aD0iMjYuNjY3IiBoZWlnaHQ9IjI2LjIxMyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iNCIvPjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIi8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",sQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNyA3LjU3di0uNzMxaDEuNXYuNzNhNC41ODMgNC41ODMgMCAxIDAgOS4xNjYgMHYtLjczaDEuNXYuNzNhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMgNi4wMzh2MS4zMDJoLTEuNXYtMS4zMDJhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMtNi4wMzh6IiBmaWxsPSIjQURBREFEIi8+PHJlY3QgeD0iNC42NjciIHk9IjEuMDkxIiB3aWR0aD0iNi42NjciIGhlaWdodD0iOS44OTciIHJ4PSIzLjMzMyIgZmlsbD0iI0FEQURBRCIvPjwvc3ZnPg==",gQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzIgNS43NzdhLjYuNiAwIDAgMC0uMzMxLjUzNnYyLjY5M2EuNi42IDAgMCAwIC4zMy41MzZsMi44MDMgMS40MDZhLjIuMiAwIDAgMCAuMjktLjE3OVY0LjU1YS4yLjIgMCAwIDAtLjI5LS4xNzhsLTIuODAyIDEuNDA2eiIgZmlsbD0iI0FEQURBRCIvPjxnIGZpbHRlcj0idXJsKCNhKSI+PHJlY3QgeD0iLjY2NyIgeT0iMi41NTMiIHdpZHRoPSIxMC42NjciIGhlaWdodD0iMTAuMjEzIiByeD0iMS41IiBmaWxsPSIjQURBREFEIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9ImEiIHg9Ii03LjMzMyIgeT0iLTUuNDQ3IiB3aWR0aD0iMjYuNjY3IiBoZWlnaHQ9IjI2LjIxMyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iNCIvPjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xMzFfMTQ0OSIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMTMxXzE0NDkiIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+",IQA={class:"stream-container"},cQA={class:"video"},EQA={class:"audio"},lQA={class:"device-status"},CQA={options:{virtualHost:!0}},BQA=Ai({...CQA,__name:"FloatWindowGroupCall",setup(t){const{isFloatWindow:i}=Mo(uB()),{callDuration:r}=gW(),{localUserInfoExcludeVolume:s}=Mo(fl()),{callStatus:g}=Mo(Pa()),B=Ca(),Q=rt(()=>s.value.isAudioAvailable?nQA:sQA),f=rt(()=>s.value.isVideoAvailable?aQA:gQA),m=rt(()=>ga(["groupcall-video-float",{"not-float":!i.value,float:i.value}]));function M(){i.value&&oo.toggleMinimize()}return(v,U)=>(qA(),Ue("div",{class:Qi(W(m))},[W(i)?(qA(),Ue("div",{key:0,class:"click-container",onClickCapture:ul(M,["stop"])},null,32)):Tt("",!0),ce("div",IQA,[ce("div",cQA,[Dr(v.$slots,"default",{},void 0,!0)]),aa(ce("div",EQA,[ze(zs,{width:"36px",height:"36px",src:W(o$)},null,8,["src"]),W(g)===W(Ao).CONNECTED?(qA(),_t(iY,{key:0,fontSize:"12px",callDuration:W(r),color:"#12b969"},null,8,["callDuration"])):Tt("",!0),W(g)===W(Ao).CALLING?(qA(),_t(Zs,{key:1,size:"12px",color:"#12b969"},{default:Vt(()=>[Na(Wt(W(B)("wait to be called")),1)]),_:1})):Tt("",!0)],512),[[sa,W(i)]])]),aa(ce("div",lQA,[ze(zs,{width:"16px",height:"16px",src:W(Q)},null,8,["src"]),ze(zs,{width:"16px",height:"16px",src:W(f)},null,8,["src"])],512),[[sa,W(i)]])],2))}}),uQA=wo(BQA,[["__scopeId","data-v-ea7a3e81"]]),QQA={id:"float-window-id"},dQA={options:{virtualHost:!0}},hQA=Ai({...dQA,__name:"FloatWindow",setup(t){const{isGroupCall:i}=Mo(Pa());return(r,s)=>(qA(),Ue("div",QQA,[W(i)?(qA(),_t(uQA,{key:1},{default:Vt(()=>[Dr(r.$slots,"default")]),_:3})):(qA(),_t(rQA,{key:0},{default:Vt(()=>[Dr(r.$slots,"default")]),_:3}))]))}}),pQA={options:{virtualHost:!0}},fQA=Ai({...pQA,__name:"FloatWindow",setup(t){const{isFloatWindow:i}=Mo(uB()),r=rt(()=>ga(["float-window-container",{float:i.value,"not-float":!i.value,pc:Pi.isPC,mobile:!Pi.isPC}]));return(s,g)=>(qA(),Ue("div",{class:Qi(W(r))},[W(Pi).isPC?(qA(),_t(eQA,{key:0},{default:Vt(()=>[Dr(s.$slots,"default",{},void 0,!0)]),_:3})):Tt("",!0),W(Pi).isPC?Tt("",!0):(qA(),_t(hQA,{key:1},{default:Vt(()=>[Dr(s.$slots,"default",{},void 0,!0)]),_:3}))],2))}}),r$=wo(fQA,[["__scopeId","data-v-794f0a9b"]]);function mQA(){const t=vk(),{callStatus:i}=Mo(Pa()),r=Ne(td.LOCAL),{remoteUserListExcludeVolume:s}=Mo(fl());return Un([s,t,i],()=>{var g,B,Q,f;if(i.value===Ao.CALLING)return;const m=[$2.RemoteInLargeView,$2.LocalInLargeView],M=(g=t.value)==null?void 0:g.layoutMode;if(m.includes(M)){r.value=(B=t.value)==null?void 0:B.layoutMode;return}(f=(Q=s.value)==null?void 0:Q[0])!=null&&f.isEnter&&(r.value=td.REMOTE)},{immediate:!0}),r}const DQA={options:{virtualHost:!0}},yQA=Ai({...DQA,__name:"MediaContainer",setup(t){const i=mQA(),r=Ne(!0),{isFloatWindow:s}=Mo(uB()),{localUserInfoExcludeVolume:g,remoteUserListExcludeVolume:B}=Mo(fl()),Q=S7(),{callType:f,callStatus:m}=Mo(Pa());v7();const M=rt(()=>{var sA,eA;return(eA=(sA=B.value)==null?void 0:sA[0])==null?void 0:eA.isVideoAvailable}),v=rt(()=>{var sA,eA;return(eA=(sA=B.value)==null?void 0:sA[0])==null?void 0:eA.domId}),U=rt(()=>{var sA,eA,X;return(X=Q.value)==null?void 0:X[(eA=(sA=B.value)==null?void 0:sA[0])==null?void 0:eA.domId]});Un([f,m],()=>{f.value===Pr.AUDIO||m.value===Ao.CALLING?r.value=!1:r.value=!0},{immediate:!0});const AA=rt(()=>ga(["singlecall-media-container",{mobile:!Pi.isPC,pc:Pi.isPC,float:s.value}]));function z(sA){i.value=sA}return(sA,eA)=>(qA(),_t(A$,{id:"source",disabled:!W(s),source:"#source",to:"body"},{default:Vt(()=>[ze(r$,null,{default:Vt(()=>[ce("div",{class:Qi(W(AA))},[ze(ouA,{"big-window":W(i),"show-small-window":W(r),onToggle:z},{default:Vt(()=>[(qA(),_t(w8,{value:W(td).LOCAL,key:W(td).LOCAL},{default:Vt(()=>[ze(t$,{domId:W(g).domId,"show-audio-stream":!W(g).isVideoAvailable},{"audio-stream":Vt(()=>[ze(rY,{userId:W(g).userId,username:W(g).displayUserInfo,avatar:W(g).avatar,"is-video-available":W(g).isVideoAvailable,"is-small-window":W(i)!==W(td).LOCAL,"is-muted":!W(g).isAudioAvailable,volume:W(Q)&&W(Q)[W(g).domId]},null,8,["userId","username","avatar","is-video-available","is-small-window","is-muted","volume"])]),"stream-info":Vt(()=>[W(f)===W(Pr).VIDEO?(qA(),_t(oY,{key:0,"nick-name":W(g).displayUserInfo,"is-self":!0,"is-muted":!W(g).isAudioAvailable,volume:W(Q)&&W(Q)[W(g).domId]},null,8,["nick-name","is-muted","volume"])):Tt("",!0)]),_:1},8,["domId","show-audio-stream"])]),_:1},8,["value"])),(qA(),_t(w8,{value:W(td).REMOTE,key:W(td).REMOTE},{default:Vt(()=>[ze(i$,{"dom-id":W(v),"show-audio-stream":!W(M)},{"audio-stream":Vt(()=>[ze(rY,{userId:W(B)[0]&&W(B)[0].userId,username:W(B)[0]&&W(B)[0].displayUserInfo,avatar:W(B)[0]&&W(B)[0].avatar,"is-video-available":W(M),"is-small-window":W(i)!==W(td).REMOTE,"is-muted":W(B)[0]&&!W(B)[0].isAudioAvailable,volume:W(U)},null,8,["userId","username","avatar","is-video-available","is-small-window","is-muted","volume"])]),"stream-info":Vt(()=>[W(f)===W(Pr).VIDEO?(qA(),_t(oY,{key:0,"nick-name":W(B)[0]&&W(B)[0].displayUserInfo,"is-muted":W(B)[0]&&!W(B)[0].isAudioAvailable,volume:W(U)},null,8,["nick-name","is-muted","volume"])):Tt("",!0)]),_:1},8,["dom-id","show-audio-stream"])]),_:1},8,["value"]))]),_:1},8,["big-window","show-small-window"])],2)]),_:1})]),_:1},8,["disabled"]))}}),RQA=wo(yQA,[["__scopeId","data-v-852a25f0"]]),MQA=[LG.SUCCESS,LG.INFO,LG.WARNING,LG.ERROR],sw={isShow:{type:Boolean,default:!1},message:{type:String,default:""},type:{type:String,values:MQA,default:LG.INFO},duration:{type:Number,default:3e3},offset:{type:Number,default:16},showClose:{type:Boolean,default:!1},showIcon:{type:Boolean,default:!0},customClass:{type:String},customStyle:{type:Object}},wQA={onClose:null};function SQA(t,i){const r=Ne(t?.message||sw.message.default),s=Ne(t?.duration||sw.duration.default),g=Ne(t?.type||sw.type.default),B=Ne(t?.offset||sw.offset.default),Q=Ne(t?.showClose||sw.showClose.default),f=Ne(!1);let m=-1;const M=AA=>{m>-1&&(clearTimeout(m),m=-1),f.value=!0,U(AA||{}),s.value&&(m=setTimeout(()=>{v()},s.value))},v=()=>{f.value=!1,m>-1&&(clearTimeout(m),m=-1)},U=AA=>{const{message:z=r.value,type:sA=g.value,offset:eA=B.value,duration:X=s.value,showClose:QA=Q.value}=AA;s.value=t?.duration===0?t?.duration:X,r.value=z,g.value=sA,B.value=eA,Q.value=QA};return Un(()=>t?.isShow,AA=>{AA&&M()},{immediate:!0}),Un(f,AA=>{AA||i("onClose")}),{messageContent:r,messageDuration:s,messageType:g,messageOffset:B,isShowCloseIcon:Q,visible:f,show:M,close:v}}const vQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMzQ5NzM4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTEyOS4yOTIxOSAyMzMuNDQ3NjE5bC0xMjkuMjY3ODA5IDEyOS4yOTIxOS0xMjkuMzE2NTcxLTEyOS4yOTIxOS01MS43MzYzODEgNTEuNzM2MzgxIDEyOS4zMTY1NzEgMTI5LjI2NzgwOS0xMjkuMzE2NTcxIDEyOS4zMTY1NzEgNTEuNzM2MzgxIDUxLjczNjM4MUw1MTIgNTYzLjY4NzYxOWwxMjkuMjkyMTkgMTI5LjMxNjU3MSA1MS43MzYzODEtNTEuNzM2MzhMNTYzLjY4NzYxOSA1MTJsMTI5LjMxNjU3MS0xMjkuMjkyMTktNTEuNzM2MzgtNTEuNzM2MzgxeiIgcC1pZD0iNjMwMSIgZmlsbD0iI2Q1NDk0MSI+PC9wYXRoPjwvc3ZnPgo=",NQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIxNTM5Nzg4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQwMTgiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTE5My4xOTQ2NjcgMjE4LjMzMTQyOEw0NDcuMjE5ODEgNTgxLjMxNTA0OGwtMTAzLjkzNi0xMDcuODEyNTcyLTUyLjY2Mjg1OCA1MC43NjExNDMgMTU2LjM3OTQyOSAxNjIuMjMwODU3IDMxMC42NjIwOTUtMzE5LjY4MzA0Ny01Mi40Njc4MDktNTAuOTU2MTkxeiIgcC1pZD0iNDAxOSIgZmlsbD0iIzJiYTQ3MSI+PC9wYXRoPjwvc3ZnPgo=",TQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiNlMzczMTgiPjwvcGF0aD48L3N2Zz4K",GQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiMwMDUyZDkiPjwvcGF0aD48L3N2Zz4K",kQA="data:image/svg+xml;base64,ICAgIAo8c3ZnIHQ9IjE3MDAxMjM3NjYyNDciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+CiAgICA8cGF0aCBkPSJNNTU3LjIgNTEybDIzMy40LTIzMy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4ycy0zMi44LTEyLjUtNDUuMiAwTDUxMiA0NjYuOCAyNzguNiAyMzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4yIDBzLTEyLjUgMzIuOCAwIDQ1LjJMNDY2LjggNTEyIDIzMy40IDc0NS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuMiA2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40TDUxMiA1NTcuMmwyMzMuNCAyMzMuNGM2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4yTDU1Ny4yIDUxMnoiIHAtaWQ9IjYzMDEiIGZpbGw9IiM3Mzc2N2EiPjwvcGF0aD4KPC9zdmc+Cg==",_QA={options:{virtualHost:!0}},n$=Ai({..._QA,__name:"Message",props:sw,emits:wQA,setup(t,{expose:i,emit:r}){const s=t,g=r,{messageContent:B,messageType:Q,messageOffset:f,isShowCloseIcon:m,visible:M,show:v,close:U}=SQA(s,g),AA=rt(()=>ga([`${ur}-message`,`${ur}-message--${Q.value}`,s.customClass])),z=rt(()=>ga([`${ur}-message_icon`])),sA=rt(()=>ga([`${ur}-message_close`])),eA=rt(()=>`${f.value}px`),X=rt(()=>({top:eA.value,...s.customStyle})),QA={info:GQA,waring:TQA,success:NQA,error:vQA};return i({show:v,close:U}),(wA,HA)=>W(M)?(qA(),Ue("div",{key:0,class:Qi(W(AA)),style:zr([W(X)])},[aa(ce("div",{class:Qi(W(z))},[ze(bu,{src:QA[W(Q)]},null,8,["src"])],2),[[sa,wA.showIcon]]),ce("span",null,Wt(W(B)),1),aa(ce("div",{class:Qi(W(sA)),onClick:HA[0]||(HA[0]=(...VA)=>W(U)&&W(U)(...VA))},[ze(bu,{src:W(kQA)},null,8,["src"])],2),[[sa,W(m)]])],6)):Tt("",!0)}}),bQA={customClass:{type:String}},LQA={options:{virtualHost:!0,styleIsolation:"shared"}},a$=Ai({...LQA,__name:"Tip",props:bQA,setup(t){const{isFloatWindow:i}=Mo(uB()),{tip:r,duration:s}=YlA(),g=Ca(),{isGroupCall:B}=Mo(Pa()),Q=Ne(null),f=t,m=Pi.isPC,M=rt(()=>[f.customClass]),v=rt(()=>tY({color:"white",background:"none",position:"absolute","z-index":4,"align-items":"center",left:"50%",top:`${m?"60%":"70%"}`,transform:"translate(-50%, -50%)","font-size":i.value?"12px":void 0})),U=rt(()=>tY({color:"white",background:"none",position:"static",transform:"none","font-size":i.value?"12px":void 0})),AA=rt(()=>B.value?U.value:v.value);return Un([r,g,s],()=>{var z;(z=Q.value)==null||z.show({message:g.value(r.value),duration:s.value,offset:0})}),(z,sA)=>(qA(),Ue("div",null,[ze(n$,{showIcon:!1,class:Qi(W(M)),ref_key:"message",ref:Q,customStyle:W(AA)},null,8,["class","customStyle"])]))}}),FQA=["%","vw"],UQA={length:{type:Number,default:0},unit:{type:String,values:FQA,default:"%"},enableFocus:{type:Boolean,default:!1},layout:{type:Array},focus:{type:[String,Number]}},OQA=["change","toggle"],s$="GridContextKey",xQA={style:{height:"100%"}},YQA={options:{virtualHost:!0}},g$=Ai({...YQA,__name:"Grid",props:UQA,emits:OQA,setup(t,{emit:i}){const r=t,s=Ne(r.focus),g=Ne(r.layout),B=Ne(r.unit),Q=i;function f(m){Q("toggle",m)}return Un(()=>r.focus,()=>s.value=r.focus),Un(()=>r.layout,()=>g.value=r.layout),Un(()=>r.unit,()=>B.value=r.unit),gE(s$,{layout:g,enableFocus:r.enableFocus,handleFocusChange:f,focus:s,unit:B}),(m,M)=>(qA(),Ue("div",xQA,[Dr(m.$slots,"default")]))}}),PQA={options:{virtualHost:!0}},IB=Ai({...PQA,__name:"GridItem",props:["index","height","customStyle"],setup(t){const i=t,{layout:r,enableFocus:s,handleFocusChange:g,focus:B,unit:Q}=rI(s$),f=100/12,m=f,M=Ne({}),v=ga([`${ur}-grid-item`,{pc:Dp,mobile:!Dp,h5:b7}]),U=()=>{const z=String(i.index)===String(B.value)?null:i.index;s&&g(z)},AA=rt(()=>!!y8(r.value,{key:"i",value:i.index}));return Nw(()=>{const z=y8(r.value,{key:"i",value:i.index});if(!z)return;const{x:sA,y:eA,w:X,h:QA,customStyle:wA,customProps:HA}=z;M.value={width:X*f+Q.value,height:i.height||QA*m+Q.value,left:sA*f+Q.value,top:eA*m+Q.value,position:"absolute",visibility:HA?.show===!1?"hidden":"",...i.customStyle,...wA}}),Ya(()=>{String(i.index)===String(B.value)&&s&&g(null)}),(z,sA)=>W(AA)?(qA(),Ue("div",{key:0,class:Qi(W(v)),style:zr([W(M)]),onClick:U},[Dr(z.$slots,"default")],6)):Tt("",!0)}});function JQA(){const t=Ne([]),i=Ne([]),{callStatus:r,isGroupCall:s,callType:g,callRole:B}=Mo(Pa()),{status:Q}=Sk()||{},f=zlA();return Un([r,s,g,B,Q,f],()=>{var m,M,v;let U=f.value;const AA=Pi.isPC?"pc":"mobile",z=s.value?"groupCall":"singleCall",sA=g.value===Pr.AUDIO?"audio":"video";let eA=r.value===Ao.CALLING?B.value===Ts.CALLER?"calling":"accept":r.value;s&&Q?.value==="close"&&(eA="close_"+eA);const X=((v=(M=(m=U?.[AA])==null?void 0:m[z])==null?void 0:M[sA])==null?void 0:v[eA])||[];i.value=X;const QA=[];let wA=0;for(let VA=0;VA<X.length;VA++){const ue=VA===0?X[VA].filter(Ze=>{var Me;return((Me=Ze?.props)==null?void 0:Me.show)!==!1}):X[VA];X[VA]=ue;const jA=12/ue.length,Ve=3;for(let Ze=0;Ze<ue.length;Ze++)QA[wA++]={i:ue[Ze].name,x:Ze*jA,y:VA*jA,w:jA,h:Ve,customStyle:ue[Ze].customStyle,customProps:ue[Ze].props}}wA=0;let HA=[];for(let VA=0;VA<X.flat().length;VA++)HA[VA]=QA[wA++];HA=HA.filter(VA=>VA.i),t.value=HA},{immediate:!0}),{layout:t,config:i}}function HQA(...t){let i=window?.document,r="",s=()=>{},g={};if(typeof t[0]=="string"?[r,s,g]=t:[i,r,s,g]=t,!!i)return i?.addEventListener(r,s,g),()=>{i?.removeEventListener(r,s,g)}}function VQA(t,i){let r=()=>{};gs(()=>{r=HQA("click",s=>{const g=t.map(f=>W(f)),B=s.composedPath(),Q=[];for(let f=0;f<g.length;f++)Q[f]=B.includes(g[f]);Q.every(f=>!f)&&i()},{passive:!0})}),Ya(()=>{r?.()})}const qQA=(t,i,r,s,g)=>{const B=r.isShowArrow?r.arrowSize:0,Q=`${t.width/2-i.width/2}px`,f=`${t.height/2-i.height/2}px`,m=`${B}px solid ${r.color}`,M={...s},v={...g};switch(r.placement){case"top":M.left=Q,M.top=`-${i.height+B+r.arrowDistance}px`,v.borderTop=m,v.left=`${t.width/2-B/2}px`,v.top=`-${B+r.arrowDistance}px`;break;case"bottom":M.left=Q,M.top=`${t.height+B+r.arrowDistance}px`,v.borderBottom=m,v.left=`${t.width/2-B/2}px`,v.top=`${t.height+r.arrowDistance-B}px`;break;case"left":M.left=`-${i.width+B+r.arrowDistance}px`,M.top=f,v.borderLeft=m,v.left=`-${B*2-r.arrowDistance}px`,v.top=`${t.height/2-B/2}px`;break;case"right":M.left=`${t.width+B+r.arrowDistance}px`,M.top=f,v.borderRight=m,v.left=`${t.width+B*2-r.arrowDistance}px`,v.top=`${t.height/2-B/2}px`;break}return{finalContentStyle:M,finalArrowStyle:v}},KQA=["click","hover"],jQA=["top","bottom","left","right"],I$={trigger:{type:String,values:KQA,default:"click"},placement:{type:String,values:jQA,default:"top"},color:{type:String},isShowArrow:{type:Boolean,default:!0},arrowSize:{type:Number,default:5},arrowDistance:{type:Number,default:5},show:{type:Boolean},autoClose:{type:Number,default:300}},WQA={options:{virtualHost:!0}},zQA=Ai({...WQA,__name:"PopoverWeb",props:I$,emits:["hover"],setup(t,{emit:i}){const r=t,s=`${ur}-popover`,g=`${ur}-popover_content`,B=`${ur}-popover_arrow`,Q=`${ur}-popover_trigger`,f=Ne(),m=Ne(),M=Ne(),v=Ne(!1),U=Ne(null),AA=rt(()=>v.value&&r.isShowArrow&&r.show),z=tY({left:"0px",top:"0px",backgroundColor:r.color}),sA=Ne(z),eA=`${r.arrowSize}px solid transparent`,X={borderLeft:eA,borderRight:eA,borderTop:eA,borderBottom:eA,top:"0px",left:"0px"},QA=Ne(X),wA=i,HA=()=>{lY(()=>{var Ze,Me,qe,Et;if(!v.value||!r.show)return;const Je=(Me=(Ze=m.value).getBoundingClientRect)==null?void 0:Me.call(Ze),$e=(Et=(qe=M.value).getBoundingClientRect)==null?void 0:Et.call(qe),{finalContentStyle:Dt,finalArrowStyle:Zi}=qQA(Je,$e,r,z,X);sA.value={...z,...Dt},QA.value={...X,...Zi}})},VA=()=>{clearTimeout(U.value)},ue=()=>{r.trigger==="click"&&(v.value=!v.value,HA())},jA=()=>{r.trigger==="hover"&&(wA("hover"),VA(),v.value=!0,HA())},Ve=()=>{r.trigger==="hover"&&(U.value=setTimeout(()=>{v.value=!1,HA()},1e3))};return VQA([f],()=>{v.value=!1}),(Ze,Me)=>(qA(),Ue("div",{class:Qi(s),ref_key:"popoverRef",ref:f},[W(v)&&Ze.show?(qA(),Ue("div",{key:0,ref_key:"contentRef",ref:M,onMouseenter:VA,onMouseleave:Ve,class:Qi(g),style:zr([W(sA)])},[Dr(Ze.$slots,"content")],36)):Tt("",!0),W(AA)?(qA(),Ue("div",{key:1,style:zr([W(QA)]),class:Qi(B)},null,4)):Tt("",!0),ce("div",{ref_key:"triggerRef",ref:m,class:Qi(Q),onClick:ue,onMouseenter:jA,onMouseleave:Ve},[Dr(Ze.$slots,"trigger")],544)],512))}}),ZQA={options:{virtualHost:!0}};function XQA(t,i,r,s,g,B){return null}const $QA=wo(ZQA,[["render",XQA]]),AdA={options:{virtualHost:!0}},EW=Ai({...AdA,__name:"Popover",props:I$,emits:["hover"],setup(t,{emit:i}){const r=i,s=()=>{r("hover")};return(g,B)=>(qA(),Ue(Tn,null,[W(ID)?Tt("",!0):(qA(),_t(zQA,dj({key:0,onHover:s},g.$props),{trigger:Vt(()=>[Dr(g.$slots,"trigger")]),content:Vt(()=>[Dr(g.$slots,"content")]),_:3},16)),W(ID)?(qA(),_t($QA,eiA(dj({key:1},g.$props)),{trigger:Vt(()=>[Dr(g.$slots,"trigger")]),content:Vt(()=>[Dr(g.$slots,"content")]),_:3},16)):Tt("",!0)],64))}}),edA={deviceType:{type:String},isShowControlBtn:{type:Boolean,default:!1}},tdA=t=>(Sw("data-v-31eef133"),t=t(),vw(),t),idA={class:"device-selector-container"},odA={class:"scroll-container"},rdA={class:"scroll-content"},ndA=tdA(()=>ce("div",{class:"control-item"},null,-1)),adA={options:{virtualHost:!0}},sdA=Ai({...adA,__name:"DeviceSelect",props:edA,setup(t){const i=t,[{deviceList:r,currentDeviceId:s},{updateCurrentDeviceId:g}]=kY(i.deviceType),{localUserInfoExcludeVolume:B}=Mo(fl()),{isMuteSpeaker:Q}=Mo(Pa()),f=bY(),m=Ca(),M=async z=>{try{AA(),await oo.switchDevice({deviceType:i.deviceType,deviceId:z}),g(z)}catch(sA){console.debug(sA)}},v=async()=>{var z,sA;AA(),i.deviceType===_I.CAMERA&&((z=B.value)!=null&&z.isVideoAvailable?await oo.closeCamera():await oo.openCamera("localVideo")),i.deviceType===_I.MICROPHONE&&((sA=B.value)!=null&&sA.isAudioAvailable?await oo.closeMicrophone():await oo.openMicrophone()),i.deviceType===_I.SPEAKER&&(Q.value?await oo.unMuteSpeaker():await oo.muteSpeaker())},U=rt(()=>{var z;if(i.deviceType===_I.CAMERA)return B!=null&&B.value.isVideoAvailable?m.value("close camera"):m.value("open camera");if(i.deviceType===_I.MICROPHONE)return(z=B?.value)!=null&&z.isAudioAvailable?m.value("close microphone"):m.value("open microphone");if(i.deviceType===_I.SPEAKER)return Q.value?m.value("open speaker"):m.value("close speaker")}),AA=()=>{f.value="close"};return(z,sA)=>(qA(),Ue("div",idA,[ce("div",odA,[ce("div",rdA,[(qA(!0),Ue(Tn,null,DC(W(r),eA=>(qA(),Ue("div",{key:eA.deviceId},[ze(Zs,{width:"100%",color:"#ffff",truncated:!0,size:"14px",class:Qi(["device-item",{select:W(s)===eA.deviceId}]),onClick:()=>M(eA.deviceId)},{default:Vt(()=>[Na(Wt(eA.label),1)]),_:2},1032,["class","onClick"])]))),128))])]),ndA,z.isShowControlBtn?(qA(),_t(Zs,{key:0,width:"100%",color:"#ffff",truncated:!0,size:"14px",class:"device-item",onClick:v},{default:Vt(()=>[Na(Wt(W(U)),1)]),_:1})):Tt("",!0)]))}}),lW=wo(sdA,[["__scopeId","data-v-31eef133"]]),gdA={class:"btn-content"},IdA={options:{virtualHost:!0}},cdA=Ai({...IdA,__name:"Camera",props:Ed,setup(t){const i=Ca(),r=t,s=Ne(!0),g=Pi.isPC,{localUserInfoExcludeVolume:B}=Mo(fl()),Q=Ne(B?.value.isVideoAvailable),f=rt(()=>B?.value.isVideoAvailable),m=bY(),[{deviceList:M}]=kY(_I.CAMERA),v=rt(()=>{var X;return((X=M.value)==null?void 0:X.length)>0&&m.value==="camera"}),U=rt(()=>s.value?f.value?"basicConfig":"closedConfig":"loadingConfig"),AA=rt(()=>B!=null&&B.value.isVideoAvailable?i.value("camera enabled"):i.value("camera disabled")),z=pl("camera",U),sA=async()=>{s.value=!1,Q.value=!f.value,f.value?await oo.closeCamera():await oo.openCamera("localVideo"),s.value=!0},eA=()=>{m.value="camera"};return(X,QA)=>(qA(),Ue("div",gdA,[W(g)?(qA(),_t(EW,{key:0,color:"rgba(107, 117, 138, 0.5)",show:W(v),onHover:eA,trigger:"hover"},{content:Vt(()=>[ze(lW,{isShowControlBtn:!0,deviceType:W(_I).CAMERA},null,8,["deviceType"])]),trigger:Vt(()=>[ze(cE,{loading:!W(s),iconSrc:W(z).iconSrc,color:W(z).color,iconSize:W(z).iconSize,width:r.width||W(z).width,height:r.height||W(z).height,loadingWidth:W(z).loadingWidth,loadingHeight:W(z).loadingHeight,shape:W(z).shape,onClick:sA},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])]),_:1},8,["show"])):Tt("",!0),W(g)?Tt("",!0):(qA(),_t(cE,{key:1,loading:!W(s),iconSrc:W(z).iconSrc,color:W(z).color,iconSize:r.iconSize||W(z).iconSize,width:r.width||W(z).width,height:r.height||W(z).height,loadingWidth:W(z).loadingWidth,loadingHeight:W(z).loadingHeight,shape:"circle",onClick:sA},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight"])),W(z).showText?(qA(),_t(Zs,{key:2,textStyle:W(z).textStyle,color:W(z).textColor,size:W(z).textSize},{default:Vt(()=>[Na(Wt(W(AA)),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),EdA=wo(cdA,[["__scopeId","data-v-84cd42ba"]]),ldA={class:"btn-content"},CdA={options:{virtualHost:!0}},BdA=Ai({...CdA,__name:"Hangup",props:Ed,setup(t){const i=t,r=JlA(),s=rt(()=>r.value?"basicConfig":"loadingConfig"),g=pl("hangup",s),B=Ca(),Q=async()=>{await oo.hangup()};return(f,m)=>(qA(),Ue("div",ldA,[ze(cE,{loading:!W(r),loadingWidth:W(g).loadingWidth,loadingHeight:W(g).loadingHeight,iconSrc:W(g).iconSrc,color:W(g).color,iconSize:i.iconSize||W(g).iconSize,width:i.width||W(g).width,height:i.height||W(g).height,shape:W(g).shape,onClick:Q},null,8,["loading","loadingWidth","loadingHeight","iconSrc","color","iconSize","width","height","shape"]),W(g).showText?(qA(),_t(Zs,{key:0,textStyle:W(g).textStyle,color:W(g).textColor,size:W(g).textSize},{default:Vt(()=>[Na(Wt(W(B)("hangup")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),udA=wo(BdA,[["__scopeId","data-v-d2aaa623"]]),QdA={class:"btn-content"},ddA={options:{virtualHost:!0}},hdA=Ai({...ddA,__name:"Accept",props:Ed,setup(t){const i=Ne(!0),r=t,s=rt(()=>i.value?"basicConfig":"loadingConfig"),g=pl("accept",s),B=Ca(),Q=async()=>{i.value=!1,await oo.accept(),i.value=!0};return(f,m)=>(qA(),Ue("div",QdA,[ze(cE,{iconSrc:W(g).iconSrc,color:W(g).color,iconSize:r.iconSize||W(g).iconSize,width:r.width||W(g).width,height:r.height||W(g).height,shape:W(g).shape,loading:!W(i),loadingWidth:W(g).loadingWidth,loadingHeight:W(g).loadingHeight,onClick:Q},null,8,["iconSrc","color","iconSize","width","height","shape","loading","loadingWidth","loadingHeight"]),W(g).showText?(qA(),_t(Zs,{key:0,textStyle:W(g).textStyle,color:W(g).textColor,size:W(g).textSize},{default:Vt(()=>[Na(Wt(W(B)("accept")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),pdA=wo(hdA,[["__scopeId","data-v-884ec28b"]]),fdA={class:"btn-content"},mdA={options:{virtualHost:!0}},DdA=Ai({...mdA,__name:"Microphone",props:Ed,setup(t){const i=Pi.isPC,r=Ne(!0),{localUserInfoExcludeVolume:s}=Mo(fl()),g=bY(),[{deviceList:B}]=kY(_I.MICROPHONE),Q=rt(()=>{var z;return((z=B.value)==null?void 0:z.length)>0&&g.value==="microphone"}),f=rt(()=>r.value?s!=null&&s.value.isAudioAvailable?"basicConfig":"closedConfig":"loadingConfig"),m=pl("microphone",f),M=Ca(),v=rt(()=>s!=null&&s.value.isAudioAvailable?M.value("microphone enabled"):M.value("microphone disabled")),U=async()=>{s!=null&&s.value.isAudioAvailable?await oo.closeMicrophone():await oo.openMicrophone()},AA=()=>{g.value="microphone"};return(z,sA)=>(qA(),Ue("div",fdA,[W(i)?(qA(),_t(EW,{key:0,color:"rgba(107, 117, 138, 0.5)",show:W(Q),onHover:AA,trigger:"hover"},{content:Vt(()=>[ze(lW,{isShowControlBtn:!0,deviceType:W(_I).MICROPHONE},null,8,["deviceType"])]),trigger:Vt(()=>[ze(cE,{loading:!W(r),iconSrc:W(m).iconSrc,color:W(m).color,iconSize:W(m).iconSize,width:W(m).width,height:W(m).height,loadingWidth:W(m).loadingWidth,loadingHeight:W(m).loadingHeight,shape:W(m).shape,onClick:U},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])]),_:1},8,["show"])):Tt("",!0),W(i)?Tt("",!0):(qA(),_t(cE,{key:1,loading:!W(r),iconSrc:W(m).iconSrc,color:W(m).color,iconSize:W(m).iconSize,width:W(m).width,height:W(m).height,loadingWidth:W(m).loadingWidth,loadingHeight:W(m).loadingHeight,shape:W(m).shape,onClick:U},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])),W(m).showText?(qA(),_t(Zs,{key:2,textStyle:W(m).textStyle,color:W(m).textColor,size:W(m).textSize},{default:Vt(()=>[Na(Wt(W(v)),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),ydA=wo(DdA,[["__scopeId","data-v-e78303e9"]]),RdA={class:"btn-content"},MdA={options:{virtualHost:!0}},wdA=Ai({...MdA,__name:"Reject",props:Ed,setup(t){const i=t,r=pl("reject",Ne("basicConfig")),s=Ca(),g=async()=>{await oo.reject()};return(B,Q)=>(qA(),Ue("div",RdA,[ze(cE,{iconSrc:W(r).iconSrc,color:W(r).color,iconSize:W(r).iconSize,width:i.width||W(r).width,height:i.height||W(r).height,shape:W(r).shape,onClick:g},null,8,["iconSrc","color","iconSize","width","height","shape"]),W(r).showText?(qA(),_t(Zs,{key:0,textStyle:W(r).textStyle,color:W(r).textColor,size:W(r).textSize},{default:Vt(()=>[Na(Wt(W(s)("reject")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),SdA=wo(wdA,[["__scopeId","data-v-1a266441"]]),vdA={class:"btn-content"},NdA={options:{virtualHost:!0}},TdA=Ai({...NdA,__name:"Speaker",props:Ed,setup(t){const i=Pi.isWeChat,r=Pi.isPC,s=t,{isEarPhone:g,isMuteSpeaker:B}=Mo(Pa()),Q=bY(),f=Ca(),m=rt(()=>g.value?"closedConfig":"basicConfig"),M=rt(()=>B.value?"closedConfig":"basicConfig"),[{deviceList:v,currentDeviceId:U}]=kY(_I.SPEAKER),AA=rt(()=>{var QA;return((QA=v.value)==null?void 0:QA.length)>0&&Q.value==="speaker"&&r}),z=i?pl("speaker",m):pl("speaker",M);rt(()=>g.value?f.value("speaker disabled"):f.value("speaker enabled"));const sA=async()=>{B.value?await oo.unMuteSpeaker():await oo.muteSpeaker()},eA=()=>{if(r){const QA=v.value.find(wA=>wA.deviceId===U.value);return QA?QA.label:f.value("speaker enabled")}else return B.value?f.value("speaker disabled"):f.value("speaker enabled")},X=()=>{Q.value="speaker"};return(QA,wA)=>(qA(),Ue("div",vdA,[ze(EW,{color:"rgba(107, 117, 138, 0.5)",show:W(AA),onHover:X,trigger:"hover"},{content:Vt(()=>[ze(lW,{isShowControlBtn:!0,deviceType:W(_I).SPEAKER},null,8,["deviceType"])]),trigger:Vt(()=>[ze(cE,{iconSrc:W(z).iconSrc,color:W(z).color,iconSize:s.iconSize||W(z).iconSize,width:s.width||W(z).width,height:s.height||W(z).height,shape:W(z).shape,onClick:sA},null,8,["iconSrc","color","iconSize","width","height","shape"])]),_:1},8,["show"]),W(z).showText?(qA(),_t(Zs,{key:0,width:"60px",truncated:!0,textStyle:W(z).textStyle,color:W(z).textColor,size:W(z).textSize,lineClamp:2},{default:Vt(()=>[Na(Wt(eA()),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),GdA=wo(TdA,[["__scopeId","data-v-001b7a7b"]]),kdA={class:"btn-content"},_dA={options:{virtualHost:!0}},bdA=Ai({..._dA,__name:"SwitchCamera",setup(t){const{localUserInfoExcludeVolume:i}=Mo(fl()),r=rt(()=>i?.value.isVideoAvailable),s=rt(()=>r.value?"basicConfig":"disableConfig"),g=pl("switchCamera",s),B=Ca(),Q=async()=>{r.value&&await oo.switchCamera()};return(f,m)=>(qA(),Ue("div",kdA,[ze(cE,{iconSrc:W(g).iconSrc,iconSize:W(g).iconSize,color:W(g).color,width:W(g).width,height:W(g).height,buttonStyle:W(g).buttonStyle,shape:"circle",onClick:Q},null,8,["iconSrc","iconSize","color","width","height","buttonStyle"]),W(g).showText?(qA(),_t(Zs,{key:0,textStyle:W(g).textStyle,color:W(g).textColor,size:W(g).textSize},{default:Vt(()=>[Na(Wt(W(B)("switch camera")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),LdA=wo(bdA,[["__scopeId","data-v-5a074e02"]]),FdA={class:"btn-content"},UdA={options:{virtualHost:!0}},OdA=Ai({...UdA,__name:"VirtualBackground",props:Ed,setup(t){const i=t,r=Ne(!0),{localUserInfoExcludeVolume:s}=Mo(fl()),g=rt(()=>s?.value.isVideoAvailable),{enableVirtualBackground:B}=Mo(Pa()),Q=rt(()=>r.value?B.value?"closedConfig":g.value?"basicConfig":"disableConfig":"loadingConfig"),f=pl("virtualBackground",Q),m=Ca(),M=async()=>{g.value&&(r.value=!1,await oo.setBlurBackground(!B.value),r.value=!0)};return(v,U)=>(qA(),Ue("div",FdA,[ze(cE,{loading:!W(r),iconSrc:W(f).iconSrc,color:W(f).color,iconSize:i.iconSize||W(f).iconSize,width:i.width||W(f).width,height:i.height||W(f).height,shape:W(f).shape,loadingWidth:W(f).loadingWidth,loadingHeight:W(f).loadingHeight,buttonStyle:W(f).buttonStyle,onClick:M},null,8,["loading","iconSrc","color","iconSize","width","height","shape","loadingWidth","loadingHeight","buttonStyle"]),W(f).showText?(qA(),_t(Zs,{key:0,width:"70px",lineClamp:2,textStyle:W(f).textStyle,color:W(f).textColor,size:W(f).textSize},{default:Vt(()=>[Na(Wt(W(m)("virtual-background")),1)]),_:1},8,["textStyle","color","size"])):Tt("",!0)]))}}),xdA=wo(OdA,[["__scopeId","data-v-1d790d2d"]]),YdA={class:"btn-content"},PdA={options:{virtualHost:!0}},JdA=Ai({...PdA,__name:"ToggleButtonPanel",props:Ed,setup(t){const{status:i}=Sk(),r=t,s=pl("toggleButtonPanel",Ne("basicConfig")),g=async()=>{i.value=i.value==="close"?"open":"close"};return(B,Q)=>(qA(),Ue("div",YdA,[ze(cE,{iconSrc:W(s).iconSrc,color:W(s).color,iconSize:r.iconSize||W(s).iconSize,width:r.width||W(s).width,height:r.height||W(s).height,shape:W(s).shape,onClick:g},null,8,["iconSrc","color","iconSize","width","height","shape"])]))}}),HdA=wo(JdA,[["__scopeId","data-v-f7839a20"]]),VdA={class:"button-group"},qdA={options:{virtualHost:!0}},KdA=Ai({...qdA,__name:"ButtonPanel",setup(t){const i=Ne(null),r=Ne({}),{isGroupCall:s}=Mo(Pa()),{status:g}=Sk()||{},B=Ne(!1),Q=Ne(!1),f=Ne(""),m=N7();Nw(()=>{B.value||(s.value&&!Pi.isPC&&m.value!==null?B.value=!0:B.value=!1)});const M=rt(()=>ga(["button-panel-container",{pc:Pi.isPC,mobile:!Pi.isPC,h5:Pi.isH5,groupCall:s.value,singleCall:!s.value,close:g?.value==="close",open:g?.value==="open",showBackGround:B.value}])),v=ga(["toggle-button-container",{h5:Pi.isH5}]),U=Pi.isH5?{transitionProperty:"width,height,left,top",transitionDuration:"0.3s",transitionTimingFunction:"ease-in"}:{};function AA(QA){i.value=QA}const{layout:z,config:sA}=JQA();Un(sA,()=>{const QA={},wA=sA.value.flat();for(let HA of wA){const{name:VA,props:ue={}}=HA;ue.showText!==!1&&(ue.showText=!0),QA[VA]=ue}r.value=QA},{immediate:!0});function eA(QA){Q.value=QA}const X={[aA.IS_CLICKABLE]:eA};return gs(()=>{me.watch(bA.CALL,X,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,X)}),gE(f7,Q),gE(m7,f),(QA,wA)=>(qA(),Ue("div",{class:Qi(W(M))},[ce("div",VdA,[ze(g$,{unit:"%",onToggle:AA,layout:W(z),focus:W(i)},{default:Vt(()=>[ze(IB,{index:"accept",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(pdA)]),_:1},8,["customStyle"]),ze(IB,{index:"reject",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(SdA)]),_:1},8,["customStyle"]),ze(IB,{index:"microphone",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(ydA)]),_:1},8,["customStyle"]),ze(IB,{index:"hangup",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(udA)]),_:1},8,["customStyle"]),ze(IB,{index:"speaker",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(GdA)]),_:1},8,["customStyle"]),ze(IB,{index:"camera",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(EdA)]),_:1},8,["customStyle"]),ze(IB,{index:"virtualBackground",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(xdA)]),_:1},8,["customStyle"]),ze(IB,{index:"switchCamera",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(LdA)]),_:1},8,["customStyle"]),ze(IB,{index:"inviteUser",height:"auto",customStyle:W(U)},{default:Vt(()=>[ze(V7)]),_:1},8,["customStyle"])]),_:1},8,["layout","focus"])]),W(B)?(qA(),Ue("div",{key:0,class:Qi(W(v))},[ze(HdA)],2)):Tt("",!0)],2))}}),c$=wo(KdA,[["__scopeId","data-v-6582c17d"]]),jdA={class:"singlecall-container"},WdA=Ai({__name:"SingleCall",setup(t){const{callStatus:i}=Mo(Pa());return(r,s)=>(qA(),Ue("div",jdA,[ze(q7),ze(K7),W(i)===W(Ao).CALLING?(qA(),_t(X7,{key:0})):Tt("",!0),ze(RQA),ze(a$),ze(c$)]))}}),zdA=wo(WdA,[["__scopeId","data-v-0fa5f69a"]]),ZdA={class:"stream-loading-container"},XdA=Ai({__name:"StreamLoading",setup(t){return(i,r)=>(qA(),Ue("div",ZdA,[ze(IW,{mode:"dot",color:"#FFF",loadingWidth:"50px",loadingHeight:"50px"})]))}}),S8=wo(XdA,[["__scopeId","data-v-56b8bc56"]]),$dA={options:{virtualHost:!0}},AhA=Ai({...$dA,__name:"MediaContainer",setup(t){const i=Ne("local"),r=Ne(!1);vk();const{localUserInfoExcludeVolume:s,remoteUserListExcludeVolume:g}=Mo(fl()),{callStatus:B,callType:Q,isShowEnableVirtualBackground:f,callRole:m}=Mo(Pa()),M=Ne(Pi.isPC?null:Q.value===Pr.VIDEO?0:null),{netWorkQualityList:v}=PlA(),U=rt(()=>g.value.length+1);v7();const AA=VlA(M,U),z=S7(),{isFloatWindow:sA}=Mo(uB()),eA=N7(),{status:X}=Sk()||{},QA=!Pi.isPC,wA=rt(()=>String(M.value)==="0"),HA=rt(()=>!Pi.isPC&&wA.value&&s.value.isVideoAvailable),VA=rt(()=>HA.value),ue=rt(()=>HA.value&&f.value&&Pi.isWeChat),jA=rt(()=>Pi.isPC||wA.value),Ve=rt(()=>Pi.isPC||sA.value?"%":"vw"),Ze=rt(()=>[s.value,...g.value].map(qt=>{var ai;if(sA.value){if(((ai=z.value)==null?void 0:ai[qt.domId])>=10)return qt.domId}else return qt.domId})),Me=rt(()=>!(m.value===Ts.CALLEE&&B.value===Ao.CALLING&&!sA.value)),qe=rt(()=>{let qt="";return m.value===Ts.CALLEE&&B.value===Ao.CALLING&&!sA.value&&(qt="hidden"),{visibility:qt}});function Et(qt){M.value=qt,eA.value=qt,X.value=qt!==null?"close":"open"}function Je(qt){return!qt.isVideoAvailable}function $e(qt){return!qt.isAudioAvailable}function Dt(qt){if(!v.value)return;const ai=qt!==s.value.userId;if(!Pi.isWeChat&&ai)return;const Ki=v.value.find(Ur=>Ur.userId===qt);return Ki&&Ki?.quality>=4}Un([g,Q],()=>{var qt,ai;(ai=(qt=g.value)==null?void 0:qt[0])!=null&&ai.isEnter&&(i.value="remote"),Q.value===Pr.AUDIO?r.value=!1:r.value=!0});const Zi=rt(()=>ga(["groupcall-media-container",{mobile:!Pi.isPC,pc:Pi.isPC,"two-layout":U.value===2&&M.value===null,float:sA.value}])),bi=rt(()=>B.value===Ao.CALLING&&(Q.value===Pr.AUDIO&&!s.value.isAudioAvailable||Q.value===Pr.VIDEO&&!s.value.isVideoAvailable));return(qt,ai)=>(qA(),_t(A$,{id:"source",disabled:!W(sA),source:"#source",to:"body"},{default:Vt(()=>[ze(r$,null,{default:Vt(()=>[ce("div",{class:Qi(W(Zi)),style:zr([W(qe)])},[ze(g$,{unit:W(Ve),"enable-focus":QA,focus:W(M),length:W(U),layout:W(AA),onToggle:Et},{default:Vt(()=>[(qA(),_t(IB,{index:0,key:W(s).userId},{default:Vt(()=>[ze(t$,{domId:W(s).domId,"show-audio-stream":!W(s).isVideoAvailable,show:W(Ze).includes(W(s).domId)&&W(Me)},{"audio-stream":Vt(()=>[ze(rY,{"user-id":W(s).userId,username:W(s).displayUserInfo,avatar:W(s).avatar,"is-video-available":W(s).isVideoAvailable},null,8,["user-id","username","avatar","is-video-available"])]),loading:Vt(()=>[W(bi)?(qA(),_t(S8,{key:0})):Tt("",!0)]),"stream-info":Vt(()=>[W(sA)?Tt("",!0):(qA(),_t(oY,{key:0,"is-self":!0,"show-nick-name":W(jA),showSwitchCameraButton:W(VA),showVirtualBackgroundButton:W(ue),showNetWorkStatus:Dt(W(s).userId),nickName:W(s).displayUserInfo,isMuted:!W(s).isAudioAvailable,volume:W(z)&&W(z)[W(s).domId]},null,8,["show-nick-name","showSwitchCameraButton","showVirtualBackgroundButton","showNetWorkStatus","nickName","isMuted","volume"]))]),_:1},8,["domId","show-audio-stream","show"])]),_:1})),(qA(!0),Ue(Tn,null,DC(W(g),(Ki,Ur)=>(qA(),_t(IB,{key:Ki.userId,index:Ur+1},{default:Vt(()=>[ze(i$,{domId:Ki.domId,"show-audio-stream":Je(Ki),show:W(Ze).includes(Ki.domId)&&W(Me)},{"audio-stream":Vt(()=>[ze(rY,{"user-id":Ki.userId,username:Ki.displayUserInfo,avatar:Ki.avatar},null,8,["user-id","username","avatar"])]),loading:Vt(()=>[Ki.isEnter?Tt("",!0):(qA(),_t(S8,{key:0}))]),"stream-info":Vt(()=>[W(sA)?Tt("",!0):(qA(),_t(oY,{key:0,"show-nick-name":W(Pi).isPC||String(W(M))===String(Ur+1),"show-control-button":!1,showNetWorkStatus:Dt(Ki.userId),nickName:Ki.displayUserInfo,"is-muted":$e(Ki),volume:W(z)&&W(z)[Ki.domId]},null,8,["show-nick-name","showNetWorkStatus","nickName","is-muted","volume"]))]),_:2},1032,["domId","show-audio-stream","show"])]),_:2},1032,["index"]))),128))]),_:1},8,["unit","focus","length","layout"])],6)]),_:1})]),_:1},8,["disabled"]))}}),ehA=wo(AhA,[["__scopeId","data-v-aee2b0d9"]]),thA={key:0,class:"dialog-main-header"},ihA={class:"dialog-main-title"},ohA={key:1,class:"dialog-main-footer"},rhA=Ai({__name:"TDialog",props:{isHeaderShow:{type:Boolean,default:!0},isFooterShow:{type:Boolean,default:!0},background:{type:Boolean,default:!0},title:{type:String,default:""},center:{type:Boolean,default:!1},isH5:{type:Boolean,default:!1}},emits:["cancel","submit"],setup(t,{emit:i}){const r={OUTSIDE:"outside",INSIDE:"inside"},s=t,g=Ne(!0),B=Ne(!0),Q=Ne(!0),f=Ne(""),m=Ca();Nw(()=>{f.value=s.title,g.value=s.isHeaderShow,B.value=s.isFooterShow,Q.value=s.background});const M=i,v=z=>{z===r.OUTSIDE&&U()},U=()=>{M("cancel")},AA=()=>{M("submit")};return(z,sA)=>(qA(),Ue("div",{class:Qi(["dialog",[s.isH5?"dialog-h5":"",t.center?"center":""]]),onClick:sA[1]||(sA[1]=ul(eA=>v(r.OUTSIDE),["stop","prevent"]))},[ce("main",{class:Qi(["dialog-main",[W(Q)?"":"dialog-main-back"]]),onClick:sA[0]||(sA[0]=ul(eA=>v(r.INSIDE),["stop","prevent"]))},[W(g)?(qA(),Ue("header",thA,[ce("h1",ihA,Wt(W(f)),1),ce("i",{class:"icon icon-close",onClick:U})])):Tt("",!0),ce("div",{class:Qi(["dialog-main-content",[s.isH5?"dialog-main-content-uniapp":""]])},[Dr(z.$slots,"default",{},void 0,!0)],2),W(B)?(qA(),Ue("footer",ohA,[ce("button",{class:"btn btn-cancel",onClick:U},Wt(W(m)("Cancel")),1),ce("button",{class:"btn btn-default",onClick:AA},Wt(W(m)("Done")),1)])):Tt("",!0)],2)],2))}}),nhA=wo(rhA,[["__scopeId","data-v-26735e82"]]),ahA=["src"],shA=["src"],ghA=Ai({__name:"TIcon",props:{file:{type:String,default:""},width:{type:String,default:"20px"},height:{type:String,default:"20px"},isApp:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:i}){const r=i,s=t,g=()=>{r("click")};return(B,Q)=>(qA(),Ue("div",{class:"icon",onClick:g},[s.isApp?(qA(),Ue("image",{key:0,class:"icon",src:s.file,style:zr({width:s.width,height:s.height})},null,12,ahA)):(qA(),Ue("img",{key:1,class:"icon",src:s.file,style:zr({width:s.width,height:s.height})},null,12,shA))]))}}),C2=wo(ghA,[["__scopeId","data-v-b989a330"]]),v8="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPue8lue7hCAxNDwvdGl0bGU+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii0xMC42JSIgeT0iLTUuNCUiIHdpZHRoPSIxMjEuMiUiIGhlaWdodD0iMTEwLjklIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMSI+CiAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjEgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSIgcmVzdWx0PSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgPGZlTWVyZ2U+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVNZXJnZU5vZGU+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIj48L2ZlTWVyZ2VOb2RlPgogICAgICA8L2ZlTWVyZ2U+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+CiAgPGcgaWQ9Im5ldyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0i6Ieq5a6a5LmJ5raI5oGvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDU4LjAwMDAwMCwgLTMxOC4wMDAwMDApIj4KICAgICAgPGcgaWQ9Iue8lue7hC0zMiIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0xKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDQuMDAwMDAwLCA2MC4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0i57yW57uELTI0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMC4wMDAwMDAsIDI1MC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM4NC4wMDAwMDAsIDguMDAwMDAwKSI+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9IuakreWchuW9oiIgZmlsbD0iIzAwNkVGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBjeD0iOCIgY3k9IjgiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICA8cG9seWxpbmUgaWQ9Iui3r+W+hC00IiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC4wNDI2NDEsIDYuMjQyNjQxKSByb3RhdGUoLTMxNS4wMDAwMDApIHRyYW5zbGF0ZSgtOC4wNDI2NDEsIC02LjI0MjY0MSkgIiBwb2ludHM9IjYuMDQyNjQwNjkgMTAuMjQyNjQwNyAxMC4wNDI2NDA3IDEwLjI0MjY0MDcgMTAuMDQyNjQwNyAyLjI0MjY0MDY5Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==",IhA="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDhweCIgaGVpZ2h0PSI0OHB4IiB2aWV3Qm94PSIwIDAgNDggNDgiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPmljX2JhY2tfd2hpdGU8L3RpdGxlPgogIDxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0iMDIuLeafpeeci+S/oeaBry3npLrkvovlpb3lj4siIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi4wMDAwMDAsIC0yMDAuMDAwMDAwKSI+CiAgICAgIDxnIGlkPSLnvJbnu4QtNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDE3Ni4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iaWNfYmFja193aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIuMDAwMDAwLCAyNC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSJpY19iYWNrX2JsYWNrIiBmaWxsPSIjNDQ0NDQ0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8cGF0aCBkPSJNOS41MTIzMTA3MSwyNCBMMjMuNTE5ODI4NiwzOC43MjkwNDExIEMyMy43ODUzNzgsMzkuMDA4MjY4OSAyMy43NzUzMTY4LDM5LjQ0OTYwODIgMjMuNDk3MzE4NywzOS43MTY0NDQ4IEwyMS42MjU1OTE1LDQxLjUxMzAyMjYgQzIxLjM0NjY4MjcsNDEuNzgwNzMzMiAyMC45MDM1NjAyLDQxLjc3MTY1NTMgMjAuNjM1ODQ5Niw0MS40OTI3NDY2IEMyMC42MzUxMDMyLDQxLjQ5MTk2OSAyMC42MzQzNTg2LDQxLjQ5MTE4OTYgMjAuNjMzNjE1Nyw0MS40OTA0MDg1IEw0LjQ1ODc2Mzk5LDI0LjQ4MjM5NDggQzQuMjAxNzU0NCwyNC4yMTIxNDY3IDQuMjAxNzU0NCwyMy43ODc4NTMzIDQuNDU4NzYzOTksMjMuNTE3NjA1MiBMMjAuNjMzNjE1Nyw2LjUwOTU5MTUyIEMyMC45MDAwMzUsNi4yMjk0NDkwNiAyMS4zNDMxMTA5LDYuMjE4MzI0MjIgMjEuNjIzMjUzMyw2LjQ4NDc0MzUxIEMyMS42MjQwMzQ0LDYuNDg1NDg2MzQgMjEuNjI0ODEzOCw2LjQ4NjIzMDk3IDIxLjYyNTU5MTUsNi40ODY5Nzc0MSBMMjMuNDk3MzE4Nyw4LjI4MzU1NTI0IEMyMy43NzUzMTY4LDguNTUwMzkxNzUgMjMuNzg1Mzc4LDguOTkxNzMxMTQgMjMuNTE5ODI4Niw5LjI3MDk1ODkzIEw5LjUxMjMxMDcxLDI0IEw5LjUxMjMxMDcxLDI0IFoiIGlkPSJQYXRoLTIiPjwvcGF0aD4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==",chA="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPua4hemZpDwvdGl0bGU+CiAgPGcgaWQ9Iumhtemdoi0y5aSH5Lu9IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgIDxnIGlkPSLliJvlu7rnvqTogYoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjQzLjAwMDAwMCwgLTQxMy4wMDAwMDApIj4KICAgICAgPGcgaWQ9Ikdyb3VwLTEzNjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY1MC4wMDAwMDAsIDM0My4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iR3JvdXAtMTM2MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLjAwMDAwMCwgNDYuMDAwMDAwKSI+CiAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTM1OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDI0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5riF6ZmkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDMuMDAwMDAwLCAwLjAwMDAwMCkiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLDAgTDE2LDAgTDE2LDE2IEwwLDE2IEwwLDAgWiIgaWQ9IuefqeW9oiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDggQzEsMTEuODY1OTk5OSA0LjEzNDAwMDA2LDE1IDgsMTUgQzExLjg2NTk5OTksMTUgMTUsMTEuODY1OTk5OSAxNSw4IEMxNSw0LjEzNDAwMDA2IDExLjg2NTk5OTksMSA4LDEgTDgsMSBDNC4xMzQwMDAwNiwxIDEsNC4xMzQwMDAwNiAxLDggWiIgZmlsbD0iIzk5OTk5OSI+PC9wYXRoPgogICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguMDAwMDAwLCA4LjAwMDAwMCkgcm90YXRlKC0zMTUuMDAwMDAwKSB0cmFuc2xhdGUoLTguMDAwMDAwLCAtOC4wMDAwMDApIHRyYW5zbGF0ZSg0LjAwMDAwMCwgNC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDAwMDAwLCA0LjAwMDAwMCkgcm90YXRlKC05MC4wMDAwMDApIHRyYW5zbGF0ZSgtNC4wMDAwMDAsIC00LjAwMDAwMCkgIiB4PSIxLjgxODk4OTRlLTEyIiB5PSIzLjUiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiIHJ4PSIwLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDAwMDAwLCA0LjAwMDAwMCkgcm90YXRlKC0zNjAuMDAwMDAwKSB0cmFuc2xhdGUoLTQuMDAwMDAwLCAtNC4wMDAwMDApICIgeD0iMCIgeT0iMy41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxIiByeD0iMC41Ij48L3JlY3Q+CiAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9yZWN0PgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K",EhA=t=>(Sw("data-v-cc0325fc"),t=t(),vw(),t),lhA={class:"title"},ChA=EhA(()=>ce("span",{class:"space"},null,-1)),BhA={class:"main"},uhA={class:"left"},QhA={class:"transfer-header"},dhA=["value","placeholder"],hhA=["placeholder","value"],phA={class:"transfer-left-main"},fhA={class:"transfer-list"},mhA={key:1,class:"icon-unselected"},DhA={class:"select-all"},yhA=["onClick"],RhA=["src"],MhA={class:"name"},whA={key:0},ShA={class:"right"},vhA={key:0,class:"transfer-header"},NhA={key:1,class:"transfer-list"},ThA={key:0,class:"transfer-text"},GhA={class:"transfer-list-item-content"},khA=["src"],_hA={key:0,class:"name"},bhA=["onClick"],LhA={class:"transfer-right-footer"},FhA=Ai({__name:"TTransfer",props:{list:{type:Array,default:()=>[]},selectedList:{type:Array,default:()=>[]},isSearch:{type:Boolean,default:!0},isRadio:{type:Boolean,default:!1},isCustomItem:{type:Boolean,default:!1},title:{type:String,default:""},type:{type:String,default:""},resultShow:{type:Boolean,default:!0},total:{type:Number,default:0},isH5:{type:Boolean,default:!1}},emits:["search","submit","cancel","getMore"],setup(t,{emit:i}){const r=t,s=i,g=Ne(""),B=Ne([]),Q=Ne(0),f=Ne([]),m=Ne(!0),M=Ne(!1),v=Ne(""),U=Ne(""),AA=Ca();Nw(()=>{const{list:VA,isCustomItem:ue,isSearch:jA,title:Ve,total:Ze,selectedList:Me}=r;if(ue)for(let qe=0;qe<VA.length;qe++)VA[qe].conversationID.indexOf("@TIM#SYSTEM")>-1&&VA.splice(qe,1),B.value=VA;else B.value=VA;Q.value=Ze||VA.length,f.value=Me&&Me.length>0?Me:f.value,m.value=jA,M.value=ue,v.value=Ve,g.value=r.type});const z=rt(()=>B.value.filter(VA=>!VA.isDisabled)),sA=VA=>{U.value=VA.target.value,s("search",VA.target.value)},eA=VA=>{if(VA.isDisabled)return;let ue=f.value;const jA=ue.indexOf(VA);if(jA>-1)return f.value.splice(jA,1);r.isRadio&&(ue=[]),ue.push(VA),f.value=ue},X=()=>{f.value.length===z.value.length?f.value=[]:f.value=[...z.value]},QA=()=>{s("submit",f.value),U.value="",f.value=[]},wA=()=>{s("cancel"),U.value="",f.value=[]},HA=()=>{s("getMore")};return(VA,ue)=>(qA(),Ue("div",{class:Qi(["transfer",[r.isH5?"transfer-h5":""]])},[r.isH5?(qA(),Ue("header",{key:0,class:"transfer-header transfer-h5-header",onClick:wA},[ze(C2,{class:"icon",file:W(IhA),width:"18px",height:"18px"},null,8,["file"]),ce("span",lhA,Wt(W(v)),1),ChA])):Tt("",!0),ce("main",BhA,[ce("div",uhA,[ce("header",QhA,[!r.isH5&&W(m)?(qA(),Ue("input",{key:0,type:"text",value:W(U),onKeyup:prA(sA,["enter"]),placeholder:W(AA)("Please enter userID"),enterkeyhint:"search",class:Qi([r.isH5?"left-uniapp-input":""])},null,42,dhA)):Tt("",!0),r.isH5&&W(m)?(qA(),Ue("input",{key:1,type:"text",onBlur:sA,onConfirm:sA,placeholder:W(AA)("Please enter userID"),enterkeyhint:"search",value:W(U),class:Qi([r.isH5?"left-uniapp-input":""])},null,42,hhA)):Tt("",!0)]),ce("main",phA,[ce("ul",fhA,[W(z).length>1&&!t.isRadio?(qA(),Ue("li",{key:0,class:"transfer-list-item",onClick:X},[W(f).length===W(z).length?(qA(),_t(C2,{key:0,file:W(v8),width:"18px",height:"18px"},null,8,["file"])):(qA(),Ue("i",mhA)),ce("span",DhA,Wt(W(AA)("Select all")),1)])):Tt("",!0),(qA(!0),Ue(Tn,null,DC(W(B),jA=>(qA(),Ue("li",{class:"transfer-list-item",key:jA.userID,onClick:Ve=>eA(jA)},[W(f).indexOf(jA)>-1?(qA(),_t(C2,{key:0,file:W(v8),class:Qi([jA.isDisabled&&"disabled"]),width:"18px",height:"18px"},null,8,["file","class"])):(qA(),Ue("i",{key:1,class:Qi([jA.isDisabled&&"disabled","icon-unselected"])},null,2)),W(M)?Dr(VA.$slots,"left",{key:3,data:jA},void 0,!0):(qA(),Ue(Tn,{key:2},[ce("img",{class:"avatar",src:jA.avatar||"https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png",onerror:"this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"},null,8,RhA),ce("span",MhA,Wt(jA.nick||jA.userID),1),jA.isDisabled?(qA(),Ue("span",whA)):Tt("",!0)],64))],8,yhA))),128)),W(Q)>W(B).length?(qA(),Ue("li",{key:1,class:"transfer-list-item more",onClick:HA},Wt(W(AA)("View more")),1)):Tt("",!0)])])]),ce("div",ShA,[r.isH5?Tt("",!0):(qA(),Ue("header",vhA,Wt(W(v)),1)),t.resultShow?(qA(),Ue("ul",NhA,[W(f).length>0&&!r.isH5?(qA(),Ue("p",ThA,Wt(W(f).length)+" "+Wt(W(AA)("people selected")),1)):Tt("",!0),(qA(!0),Ue(Tn,null,DC(W(f),(jA,Ve)=>(qA(),Ue("li",{class:"transfer-list-item space-between",key:Ve},[ce("aside",GhA,[W(M)?Dr(VA.$slots,"right",{key:1,data:jA},void 0,!0):(qA(),Ue(Tn,{key:0},[ce("img",{class:"avatar",src:jA.avatar||"https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png",onerror:"this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"},null,8,khA),r.isH5?Tt("",!0):(qA(),Ue("span",_hA,Wt(jA.nick||jA.userID),1))],64))]),r.isH5?Tt("",!0):(qA(),Ue("span",{key:0,onClick:Ze=>eA(jA)},[ze(C2,{file:W(chA),width:"18px",height:"18px"},null,8,["file"])],8,bhA))]))),128))])):Tt("",!0),ce("footer",LhA,[ce("button",{class:"btn btn-cancel",onClick:wA},Wt(W(AA)("Cancel")),1),W(f).length>0?(qA(),Ue("button",{key:0,class:"btn",onClick:QA},Wt(W(AA)("Done")),1)):(qA(),Ue("button",{key:1,class:"btn btn-no",onClick:QA},Wt(W(AA)("Done")),1))])])])],2))}}),UhA=wo(FhA,[["__scopeId","data-v-cc0325fc"]]),OhA=Ai({__name:"SelectUser",props:{isRadio:{type:Boolean,default:!1},isNeedSearch:{type:Boolean,default:!1},title:{type:String,default:""},userList:{type:Array,default:()=>[]},total:{type:Number,default:0},isPC:{type:Boolean,default:!0}},emits:["confirm","cancel","search","getMore"],setup(t,{emit:i}){const r=i,s=t,g=()=>{r("cancel")},B=m=>{r("confirm",m)},Q=m=>{r("search",m)},f=()=>{r("getMore")};return(m,M)=>(qA(),_t(nhA,{isH5:!t.isPC,isHeaderShow:!1,isFooterShow:!1,background:!1,onCancel:g},{default:Vt(()=>[ze(UhA,{isSearch:s.isNeedSearch,title:s.title,list:s.userList,isH5:!t.isPC,isRadio:s.isRadio,total:s.total,onGetMore:f,onSearch:Q,onSubmit:B,onCancel:g},null,8,["isSearch","title","list","isH5","isRadio","total"])]),_:1},8,["isH5"]))}}),xhA={options:{virtualHost:!0}},YhA=Ai({...xhA,__name:"BackGround",setup(t){return(i,r)=>(qA(),_t(j7,{bgColor:"#22262ed9",bgImage:W(ad),customStyle:{position:"absolute",zIndex:0}},null,8,["bgImage"]))}}),PhA={class:"groupcall-container"},N8=30,JhA=Ai({__name:"GroupCall",setup(t){const i=Ne(null),r=Ne("open"),s=Ne(!1),g=Ne(0),B=Ne([]),Q=Ne([]),f=Ne(0),m=i,M={status:r},{callRole:v,callStatus:U}=Mo(Pa()),{isFloatWindow:AA}=Mo(uB()),{localUserInfoExcludeVolume:z,remoteUserListExcludeVolume:sA}=Mo(fl()),eA=async jA=>{if(s.value=jA,s.value){await wA();const Ve=await oo.getGroupProfile();g.value=Ve.memberCount}},X=()=>{s.value=!1,me.update(bA.CALL,aA.SHOW_SELECT_USER,!1),f.value=0,B.value=[]},QA=async()=>{f.value+=N8,await wA()},wA=async()=>{const jA=await oo.getGroupMemberList(N8,f.value),Ve=[...sA.value,z.value].map(Ze=>Ze.userId);B.value.push(...jA),B.value=B.value.map(Ze=>(Ve.includes(Ze.userID)&&(Ze={...Ze,isDisabled:!0}),Ze)),Q.value=B.value},HA=async jA=>{try{if(jA.length<=0)return;s.value=!1,me.update(bA.CALL,aA.SHOW_SELECT_USER,!1),f.value=0;const Ve=jA.map(Ze=>Ze.userID);await oo.inviteUser({userIDList:Ve}),B.value=[]}catch(Ve){console.debug(Ve)}},VA=jA=>{jA?B.value=B.value.filter(Ve=>Ve.userID.includes(jA)||Ve.nick.includes(jA)):B.value=Q.value},ue={[aA.SHOW_SELECT_USER]:eA};return gs(()=>{me.watch(bA.CALL,ue,{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,ue)}),M.status=Ne("open"),m.value=null,gE(h7,M),gE(d7,m),(jA,Ve)=>(qA(),Ue("div",PhA,[ze(q7),ze(K7),W(U)===W(Ao).CALLING&&W(v)===W(Ts).CALLEE&&!W(AA)?(qA(),_t(X7,{key:0})):Tt("",!0),ze(ehA),ze(a$),ze(c$),ze(YhA),W(s)?(qA(),_t(OhA,{key:1,isNeedSearch:!0,userList:W(B),isPC:W(Pi).isPC,total:W(g),onConfirm:HA,onCancel:X,onGetMore:QA,onSearch:VA},null,8,["userList","isPC","total"])):Tt("",!0)]))}}),HhA=wo(JhA,[["__scopeId","data-v-5655d849"]]),VhA={},qhA={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","data-v-ea893728":""},KhA=ce("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),jhA=[KhA];function WhA(t,i){return qA(),Ue("svg",qhA,jhA)}const zhA=wo(VhA,[["render",WhA]]),T8="data:image/jpeg;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApo2cKDRs4UCFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBRI2cKACwAAAAAAAAAAAAAAAAAAAAAAAAA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",ZhA="data:image/jpeg;base64,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AAAVOjT6Ee4cVT6ESELQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hEcVT6EQLQVcVT6ERxVPoRAtBVxVPoRHFU+hEC0FXFU+hE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ThBt8y1a/wD8lmDYvUvp3lC7t1bXNnJRqRUtKOTWpp+xgeyDmKWO4piUqtXB8MhVtKctFVK1TRdRrcub57C6rwgr08AWKrDqilCajWo1G4uC2ZrVr5gOhBoXWJULfCJ4mpKVFUuMjzaWa1L2meGXNW9w+hdV6Kozqx0uLUs8k9nMBuAADSmtG7klslFS9ueRkY13lea/s1+bGnHr7gMgY6cevuGnHr7glkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19w049fcBkDHTj19xknms08wAAAAAAAAAAAAAAV5563z7Cwqj5vsAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGH+t/PMSQ/PfXrJAHgcLberPD6VzQjpStaqquOWecVtfs1PszPfGrY9aYHh1ngWN2tK6u50pRhF5KdVwcG8m00mtepbfYeFZUKlfgJdQpRcpKq5ZJa2k4t+Cb9h088CwqdR1JWFFybzeUck/YtXgb1GjSoUlTo04U6a1KMIpJexAcjC3wiphXKamOX3FunlOlymLa1a46LWvdl/gsxynRjwbwuFDjJUHXp6HGpaTi4yazWWWxnQfQ+GOrxrsKDm3m3oLbvy2GxXtqFxCMLilCpGMlKKnFNJrUms+fWwPJ4Xfw9cf7of3I0OE1GKvMKuLipVo2qThOrSllKDex55PLu2JnT16FK5pOlcU4VKbybjNJp5PNamKlGlWpOlVpwnTksnCUU012MDlqtlhELizjLFr67nOrF0oRrxqLPPU2stS6zcmk+HFNtJtWja6nm0erbYZYWlTjLa0pU55ZaUYrNLqfMX8no8o5S6UOOUdFVNFaSW7PbkB5fCTEa+H2EJ2zjCpVqqnxklmoJpvPLZzc5z+Lwo0Kljp4tVvriVeE5Z1E4RiudRWpZtrLXszO1rUaVxSlSr041actsZJNP2M1o4Th0KLpRsaC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Heg4LlWN9O7/AAscqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5VjfTu/wALGfHQ5XVrh3oOC5VjfTu/wscrxvp3f4X8Bnx0OV1a4d6DguVY307v8LHKsb6d3+FjPjocrq1w70HBcqxvp3f4WOVY307v8L+Az46HK6tcO9BwXKsb6d3+FjlWN9O7/Cxnx0OV1a4d6DguVY307v8ACxyrG+nd/hYz46HK6tcO9BwXK8b6d3+F/Acqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5VjfTu/wsZ8dDldWuHeg4LlWN9O7/CxyrG+nd/hYz46HK6tcO9BwfKsb6d3+F/AjlWN9O7/AAsZ8dDldWuHeg4PlWN9O7/C/gOVY307v8L+Az46HK6tcO8BwXK8b6d3+F/Acqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5VjfTu/wsZ8dDldWuHeg4LlWN9O7/AAscqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5VjfTu/wALGfHQ5XVrh3oOC5VjfTu/wscqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5XjfTu/wv4DPjocrq1w70HBcqxvp3f4WOVY307v8LGfHQ5XVrh3oOC5VjfTu/wscqxvp3f4X8Bnx0OV1a4d6DhIYxi1pUi6tWpr/wBFWGpnXYXiNPErVVoJxktU47cmd0XYq7lbaNiuWI3p74boBGlFamz1UkgjTjv8GNOO/wAGBII047/BjTjv8GBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTjv8GBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjT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",XhA="data:image/png;base64,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",$hA="data:image/png;base64,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Fqg33HCDf/mFKTTce++99uSTT/rvHTt2tKOOOsoOhA0bNhywAAIAAIBD2/nnn29PPfVUzIPCERcS6tat67sobdmypeC+SZMm+e5KKSkp/nvt2rWtatWq/rNWOVQOpWbqnTt3WmZmpm3atMnWrl1rO3bs8OdoBWLFihV+X1CmpONt377d79Nr9brCFBZ0f+HVEpU56T7dgtWO4P30fL3Hrl27Cp6vn/Xcwu8LAACAQ1eTJk2sW7duHhSWLVtmsRLTxuVvv/3W6tSpY8nJuz8N3a8B8qhRo+yKK67wXoVolSlTxho1auTv3aFDBy9z+vzzz+2iiy6yVatW+XNefPFFf0w7LfXv399+/vlnS01NteOOO85OP/106969u51wwgn+c7169eydd97xc9NAXq/p2rWrjRw50oYNG2b169e31atXW4kSJezZZ5/148+fP9/efPNNW7hwodWqVcsee+wxDxpq3FZQ0K106dLWo0cPDwYPPPCAv5+Cjb4T7QSl8NK7d2/bvHmzf0c6l5tuuskSEhIMAAAAh64gKDzxxBPWs2dPq169uh1sMQ0Js2bNsgULFljbtm19sKuZcQ3GNXDXwPrcc8+1efPm+YD+4osv9seKg8qJNMC+5JJLvDlas/a6NkMQEgIzZsywadOmeZIrX7683zd37lxLSkry3ZeqVatm99xzjweYc845xwf3GqjrXKVChQr24IMPekC47777bOLEiR4m1KCtP7wG/Nddd51/9uHDh/vx7rzzTh/oP/roox409J+kVKlSXg6l60Z07tzZd4PSeev7UiBRYFDQuPLKK61ixYoGAACAQ5vGdBozanwai5AQ03KjFi1a2Pjx461GjRo+4660NGbMGB/Aq8SnZcuWNnbsWGvQoEGxBQRRyZEG8NOnT7dPPvnEQ0paWtovnrdo0SIPD0FACKgcKbhPy0DNmjXzgb0G8/ocWlEQvbZkyZIeDJo2bephQPR5tVKgz6THVVKkwHTKKad4ANHz9d1oFUEUHvSfRPfrvXWcOXPm+IrE66+/bv369fPPlJubawAAADi0abJc4+H27dv7mDAWYhoSTjrpJJ99V7nPI4884qFAJTqa2VcTsertFRouu+wyK26dOnWygQMHelOIzmN3FCR0Dnur91cwCEKBzlslQSppkuBicFoZ0XUgdLw9UQ9EUHem99N/Dl0zYk8qV65szZs3t169evlNqx17ez4AAADinybKFRB0rbA2bdrErJQ8puVGmkl//PHHvZRGg+irr77aLr/8cm8QHj16tA0ePNhuvPFGO+aYY6y4aYCtAb3+AHsavJ966qk2dOhQe+6553wGXysaKvkpTOU/GqTrOPqjqsdAqwna6lSrIJrlV3OyZv+VBNXfsDtXXXWV9zqoN0ErBlopUHAKtmUtql27dv69vfrqqx4YFCyuueaaPfZ3AAAAIP6pHzbWAUES/jfbHdG2OBr4qjRGM+nRfgDtzqPmXzUoi2r4NdBWQNDAuji/oAkTJvgxFVDU76AZfNV8aTVAQUWrCupDUO2XyoIUWFQSpZ2KtNKhMqOZM2da69at/fOLyn7Uv6DjqGRIpUsffvihrwzoedrpSI3FRd9HFCRUilSuXDlbt26d9y3o8yqgaPCv1YjC71f43HQs7cykFQwdTwEFAAAAhy6NOVWWXhzjX00ia1Jc49793AAoPy5CQkC1+WoAHjBggO9AdChTSFDJ0F133WUAAADAwRZNSIir6yToAyh06Hao08qAUiAAAABwqImrlQRROZDKbxhgAwAAAJGLZiUh7rpcVdMPAAAAIHbiqtwIAAAAQOwREgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIREHBISEhIsPz/fAAAAAMQnjdkjEXFISEpKstzcXMvLyzMAAAAA8UOT+dnZ2R4SIgkKyRahxMREf8MdO3ZYWlqahwYAAAAAsaeAkJmZ6WP0SEJCQnp6elQ1QzoBrShQegQAAADEB4WD4BaB/IhXEgIpKSl+AwAAAHB4YHcjAAAAACFRrySozIhSIwAAACB+RNqwHIgqJARd0wQFAAAAIL6oHyE5Ofng7m6kUJCVleX9CKmpqexuBAAAAMSJnJwcy8jI8H8j6R+OuCdB10dQKiEgAAAAAPFFKwi6TEGku5BGFRIUDnS9BAAAAADxRWP1SNsCIh7h04MAAAAAHJ5YBgAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABASdyEhPz/fAAAAAMROssWJ7du325dffmnjxo2zY4891q6++mqrVKmSAQAAADi44mIlIS8vz55//nkPCa1atbJly5bZHXfcYenp6QYAAADg4IqLkLB06VJbtGiRPfHEE/a73/3O/61Zs6avKgAAAAA4uOIiJKxZs8bKli3rN0lMTLT69evb4sWLLZbUH5GRkWEH265du3x1JVKxOm8AAABEJzs72+JBXISEnJyc3Q6Ks7KyrDgpjOi9Ctu0aZPt3Llzt89X2dOjjz7q/RIHU79+/WzEiBEWqVidNwAAAKLTt29fW758ucVa3OxupNnz9evXF9z0e3F766237L///W/ovpdeeslGjRq12+dXr17drrzySktJSbED7cMPPywY1Ldt29aOP/74/Xm5zZ071yZMmOA/H8zzBgAAQPE5//zz7amnnop5UIibkDB58mS76qqr7PLLL/fbu+++a8Xt4osvtu+//75gNWHr1q3eD6Fmaa1arFy50m9BQElOTrZGjRpZampqwfNXrFjhIUYlPbpt2LDB79uxY8cv3k+P67l6vHATtlZN1q5d6/crGOgYCgkzZsywzMxMH+TXqlXLVz4Kr7Dod9Fr9FodQ++hlZAxY8bYF198YZs3b97jeQfPl23btvlNx1y9enVU5U0AAAAoHk2aNLFu3bp5UFB1SKzEdAvUb7/91urUqeODWg3Si+5mpPtVDqSZ/iuuuMJ7FaJx4okn+oB83bp1PghXY3Tjxo2tZMmS9vLLL/tgORh0P/vssz5wfvDBB+2VV17xAfbrr7/u55Cbm2v33nuv90x88sknfuyNGzfa008/bTVq1Ch4vylTpth7773nx9GxdcyjjjrKPvjgAx/Up6WleYO2zmX+/Pn2/vvvW1JSko0dO9bq1atn06ZNszPOOMMuuOACH8w/+eST9vDDD/uKiELJqlWr7LLLLvOQo52h1IegsKH7HnroIT9v/ed65513/Lz12fXcrl272siRI23w4MG+YrFkyRI75ZRT7M4777SEhAQDAABA7ARBQZv59OzZ0yeQD7aYhoRZs2bZggUL7MILL/QBs2bRAxqsqnl53rx5Hia0ChDMjEdK5Tdnn322ffPNN3bDDTfY119/7ddj0KBcg24N4vUer732mg0aNMiuvfbagtcqIOgctASkc9NqxOOPP24333yz1a1b1z7//HP77LPP7NZbby14jf7A3bt391Dx73//24PB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PWYrV670n9U/8ec//9l/Hj16tN1444128803W69evezss8+2vSl63Ndee82mTp3qP19wwQUeOAo3ahfHygcAAAAODV27dvUKlVgHhbjZAvVgUQP0KaecYv369fNSpoSEhILHNCCfNWuWff311z7Df9ZZZ1mbNm181UCN1H//+9/tpptu8sCikKPXqq9COzLJsmXL7IwzzrC6det62ZBWGfS8du3aWZ06dbz/Yt68eda4cWO78sorbcyYMR5QtKtTZmamVapUyebOneuP6Zh6/qJFi6x27drWqVMnK1OmjL333nv+vGAp6rbbbrOyZct6+Bk1apQHr86dO1vlypUNAAAAhxZNFnfr1s1eeeUVDwqaiNb47mA7Ii+mdt111/kg/ueffw7dP3/+fHvppZesadOmdtlll9mbb77pg3g1UWvQrebqWrVqeenTjBkzrFmzZh4ItALQqFEjmzZtmvcnqF9Bx2nSpIlv4aotXdesWWOlS5e2jh072g8//OABoejrFQwUOjT4VzO3SrIUGLTqod9zc3P9PbQblFYstPqhc9Tz3n77bQ80J554ogcOAAAAHJoUFP70pz/Z5MmTvcw9FmIWElR3v6/bmqrcKKjbLw4atN91111e6rNr166C+zV41+rBeeedZy1atPAZea0qVK9e3Wfr1R9RsWLFgucrOOj3o446yqpWrVpwv4LFqaee6oN/BY7jjjvO6tev789RuNB7asVgT69fvny5P0dhRq/XspMCjC42J1pV+M1vfmMdOnTw52oFRDcFjGOOOcaDDAAAAA5NmjBWb4KuG3b88cdbLMQsJIwdO9bq1atn5cqV+9XnqoTniy++KNb6fA2yNej/4IMPCu7TwFwlPYESJUqEypH21fbt2wu2cw3oYnETJkzwFQM1a2dlZe3x9QpEWlZKTv7/ajD1bej3oC6t8P36TpQ2n376aS9D6t69u40bN84AAABw6NF4T6Xuqh5R2VHRMeXBErOQoN2Azj33XB+Yq/5/bzeFBC216JoJxemOO+7wlBZsr9q6dWsPIyoZ0nupxl8rCqKBuZpI9mVFQyFA/QQqMVq/fr2X/2glQGVLDRs29D6DgI6r9y8cGrSyoPfSEpNWD7755hsPNCpX2h2dk/okLr74Yr9KtfoqAAAAcOj59NNPYx4QJGaNy5oFHzBggL3//vv+uwa5msXXzL1mxzUbrxKfgGbS1QQcrcKlOBUqVLBbbrnFr+wsJ510ki1ZssQefvhhL4Vq2bKlD7xFJT4vvviidenSxVc/gmChMqFgh6bgZ4UNlQEFV4r+/e9/b7/73e/srbfesu+++87PIRjwX3LJJfbGG2/4Z1M40LH1Gu2mpIvJKTzouCo5UtlV4ffT81SupNKtgQMHerjRd6ZSKgAAABx6NM6LdUCQhP8NziOq4dHgVR9CFzyLpCRHoUAz7UEJzQsvvGDNmze3tm3ber2+AoRKZ4LyHw3oq1WrFtF7AQAAAEcaTbxrAxxNLO/nDkn5MVtJ0Ix34ZUCzZTrGgHr1q3zLUG1q4/6BmKx5RMAAABwJIvZSsLuqFZfNVg1a9b00p+gQRcAAADA/olmJSGuQgIAAACA4hFNSKCWBwAAAEAIIQEAAABACCEBAAAAQAghAQAAAEAIIQEAAABACCEBAAAAQAghAQAAAEAIIQEAAABACCEBAAAAQAghAQAAAEAIIQEAAABACCEBAAAAQAghAQAAAEAIIQEAAAA4TCUkJFgkIg4JiYmJlpeXZ/n5+QYAAAAgvmisHqmIQ0JSUpLl5uZadnY2QQEAAACIExqbKyBkZmb6xL5u+yvZIqSlixIlStiuXbssKyvLQwMAAACA2MvJyfGwoPF6JCIOCaJUojfWioJOBAAAAEBsaTI/OTk5ohWEQFQhofBJAAAAADg8sLsRAAAAgJColwBU60TjMgAAABA/VO0T6fanElVIUDgIdjciKAAAAADxQxsLqS0gkrAQcUhQKNCuRikpKZaamsruRgAAAECc0KZCGRkZ/q/G6/sr4p4E7b2qVEJAAAAAAOKLVhDS0tJ8F9JIKn6iCgkKB9FsrQQAAADgwNBYPdK2gIhH+PQgAAAAAIcnlgEAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAIQQEgAAAACEEBIAAAAAhBASAAAAAITEPCRkZWVZbm6uAQAAAIgPyRYjeXl59u2339pnn31mJUuWtJtvvtkaNmzoj+Xk5NjOnTt/8Zrk5GQrVaqUAQAAADhwYhYSpkyZYv369bMbb7zRNm/ebPfff7/961//snLlytnEiRPtjTfe+MUKQ+nSpa1Xr15WsWJFO1zl5+fbrl27LC0tzQAAAHBkyc7OtpSUFIu1mIWESZMmWatWreySSy7x34cMGWLLli2zpk2bWvPmze2hhx7yAXNh+sLKli1r0dKXv27dOqtdu7bFG30Hffr0sccee8zKlCmz2+coRHz00Ue2adMmu+WWWwgUAAAAh4m+ffvalVdeaXXq1LFYillPQuPGje3HH3+0xYsX+8pBYmKiVa1a1R/TikGjRo3suOOOC93q16/vJUfR0ipGhw4d7Oeff7ZYWblypX311Ve/uL969er+H2NvCXLcuHE2efJka9u2bVwkTQAAABSP888/35566ilbvny5xVLMVhLOOOMMmzVrlv3pT3/yPgPNiAchQf0IGzdu/MVrNCCuUaOGRevLL7/0Afann35qzZo1K7g/IyPDZ+eDwKJAsn37dtuyZYv/XK1aNX9s69atlp6e7uej+xISErxkSp8jNTXVeyr0u46xbdu2gs+klRGFAK1kaJCvkNCiRQurUqVKwTnofRSQdBwdQ++h90tKSvLX6hwVrLSiEpxjcN6i8yE4AAAAHJqaNGli3bp186Cgypq6detaLMQkJKhcZv369XbZZZd5uZEG2bopGGjgq5WFJ554wgfThVWqVMnefvvt0KB6f2nAv3DhQv/SH330UR+Iq8dB9//973/3wb/ORSsNRx99tJf+6Dw08L/99tt9oP/OO+94WNiwYYOXTHXt2tUGDhxo9erV81UAHevBBx+0V155xUaOHGmDBw+2448/3pYsWWKnnHKKXX311fb555/bokWLbNCgQdalS5eChuzCr9Uxp06d6mVRc+fOtWuvvdZLsRRyFAw+/PBDu/zyy/0c9btuWoXp0aOH/wsAAIBDTxAUNB7u2bOnTxQfbDEJCaq10q5GCgtFPfPMM3bOOef47UAYM2aMD9iPOeYYL19SILnooot8VUFh4eGHHy4oaXruuee8R0KDc4UCueeee+yKK67w89Og/KabbrKLL754r++p8PDII494ALnrrru8Wfv666+3ESNG+H+AvdH76z0XLFhgL774ooeqq666ylavXu3hQkFCqwd33nmnhxsFHwUThRwAAAAcmjQuVeXIqlWrjpyQoDKb/v37/6Jx+P3337dhw4bZmWeeaQeCtl1VOKlZs6Z98sknHgaGDh1qF1xwgc2ePdtXNgr3PMyYMcN+97vfFQQEUWOxSpQ0INfsv4KGVhT2RiGhRIkSVrlyZcvMzPRrQ+yrBg0a+PtrFUUrGkVXV1SypUCgciRR+dKKFSsMAAAAhyZNBvfu3dvat2/vY7tYiElIULnQ6NGjvewmGNyq9l+NxBoU64tRU3PRLVC12895550XGrTvj6VLl/ps/llnneXlQyeccIJNmDDBm4jLly/v/xamBKf7NMgPKBgoFOgzaMCu8iCdl8JFcG0HlTApkBwMKs9ScFEZk0qh9N1FU44FAACA2FmzZo0HhAsvvNDatGnjE9OxEJOQ8Le//c26d+9uY8eOtdatW3vZjhp51XCrWXHNhOuxolugqpm3ZcuWPqseCV287dRTT7Vrrrmm4AtXCFCN/29/+1s/Jw36RX8YlRI9//zzNn/+fF8BUJlP586d/VoNelx/xFq1avlqgh5/+umnPfTMnDmzoGF5TzSQVwOyVlVUuhTprk06J523mpsVnubMmeOlTQAAADj0qNom1gFBEv43s55vEVDJjAbEmlmP5ANoMD5q1ChvIlYpjho0NIA/kHv+a3VCg3rdArpegs5BM/FaIVCPgs7n5JNPtgoVKnhgUYDRRd50nxqCFRpUiqSVBr0uOOfp06f7wF/buwZNzWrQ1mdVb4HoM5900kl+lWmdjwb3Z599tgcgUdjQ++m1WvlQcFL/ROH7ix5Tn0Hnrb+DvkOVNQEAAODQo+oajTeLIyBowl1jRo0z97MSJz9mIQEAAADAgRNNSIjZxdQAAAAAxCdCAgAAAIAQQgIAAACAEEICAAAAgBBCAgAAAIAQQgIAAACAEEICAAAAgBBCAgAAAIAQQgIAAACAEEICAAAAgBBCAgAAAIAQQgIAAACAEEICAAAAgBBCAgAAAIAQQgIAAACAEEICAAAAgJCIQ0JCQoLl5+cbAAAAgPikMXskIg4JSUlJlpuba3l5eQYAAAAgfmgyPzs720NCJEEh2SKUmJjob7hjxw5LS0vz0AAAAAAg9hQQMjMzfYweSUhISE9Pj6pmSCegFQVKjwAAAID4oHAQ3CKQH/FKQiAlJcVvAAAAAA4P7G4EAAAAICTqlQSVGVFqBAAAAMSPSBuWA1GFhKBrmqAAAAAAxBf1IyQnJx/c3Y0UCrKysrwfITU1ld2NAAAAgDiRk5NjGRkZ/m8k/cMR9yTo+ghKJQQEAAAAIL5oBUGXKYh0F9KoQoLCga6XAAAAACC+aKweaVtAxCN8ehAAAACAwxPLAAAAAABCCAkAAAAAQggJAAAAAEIICQAAAABCCAkAAAAAQggJAAAAAEIICQAAAABCCAkAAAAAQggJAAAAAEIICQAAAABCCAkAAAAAQggJAAAAAELiJiTk5+cbAAAAgNhLthhSMJg7d6598cUXtnbtWjv11FPtoosuspIlSxoAAACA2IjpSsL48ePt0UcftaSkJGvRooWNHDnSHn74YcvMzCx4jn7Ozc01AAAAAAdHQnp6ekR1PllZWT64L1WqlCUkJNj+ysvLsxtuuMFuu+02O++88/y+7Oxsu/POO61Dhw6+ojB8+HAbMWKElS5d2m655RZr2LChAQAAAPh1qtrZsmWLpaamWmLifq0N5MdsJUEn/L+AYieeeGLBfSkpKXb22WfbnDlzfJXh3XfftUsuucSOPfZYe+CBB2zHjh0GAAAAHK40aR4PYhYSypYt6/9u3Lix4D6tLixdutRq1KhhU6ZMsdatW1u7du18FUGrFevXr7fikJGRYatXr7YVK1bY5s2baZoGAABAXOjbt68tX77cYi1mIUGrBio36tmzp82cOdPWrFljQ4YMsZ9//tlXExo3bmwTJkywJUuW2NixY32JJC0tzaK1ePFi69Wrl73wwgvWp08fe+KJJ2zDhg22v7QS8tlnn+13v4QatfW5AAAAgKLOP/98e+qpp2IeFGK6u1HHjh3930ceecQH2/Xr1/dG5tq1a1u1atV8QN2tWzcrUaKE/eEPf/D7oqEVhGeffdbf94ILLvDgodWLoKdi69atXgKlAKP30v3btm3zx3bu3OkrDtWrV/fXzJgxwz7++GNr2rSp1atXz7Zv3+7BofBrCx9TtWDq3xgzZoz/0Rs1amQVKlSwdevW+bJSxYoVvfcCAAAAR64mTZr4+FdB4aGHHrK6detaLMSkcVk7FmlwXJhCgo4XUDlS+fLlvSRIg3O9R5UqVaJaTVCfw0cffWRPPvmkB4/CtJrxzjvveHDQykKrVq2sa9euvroxePBgO/74431V45RTTrHOnTv7MSZOnOhpT83Xb731lvdMrFq1yi677DL77W9/awsWLLDXX3/dj6nP1759e19CUli59NJLPWB88MEH/v4KH/fee6+HDAAAABzZZs2aZS+99JJX3WicGIloGpdjspLw73//2wYNGhTa6rQoDeIHDBhgb775pn333Xf+ITWofuWVV/yDRkKBo2bNmr8ICKJB/hVXXGHnnHOOD+Jvuukmu/jii/0xrRRotUMrAnfddZfdeOONduutt/r5q6Fa56NdmURB4u233/ZjKSDoGAoSQZBSX4X6Ibp06eKfrWXLlnbVVVd5QCIgAAAAQFRloklzTUBHGhKiEbOQ8Nprr3nJzZ706NHDJk2a5DP2ohKfNm3a+Cy/ypEioXKewo3ShS1btsyaNWvmg3mtjqj0KehVUEhQsKhcubIHA62iFKYVBH0mJTWltKCESE3YzZs33+NKy+WXX27PPPOMh6DrrruuYCtYAAAAHLk0ody7d2+vQtG1xGIhJo3LycnJu53NL6zozLoG91WrVvXXRkrbrc6ePdsWLVpUcJ/ChygYBKFAA3wN+MuUKbNPx1V/gnoXunfvbp06dSroLdC5btq0aY+vUyp89dVX/QJyWsnQTksAAAA4cmkzHwWECy+80CfII7keWXGIyUrCqaeeal999ZXX8u+OBsvTp0+3a665xn9X82+/fv28T6BSpUoWKa1A3HzzzT6Y1xdfrlw5X0FQj4Fu2vVI9+uPU6tWLV9NUKjYnaDp+PPPP/edmBQ81JQ8derUgus56POpUbpt27ZewqTPo2Cgi8TpuWqGVt+CzkPvV7gnAwAAAEee/v37xzwgSEwal1W3/8c//tH++te/2mmnnVawqqDmXtXsq1Zfx9QWqUOHDvXAoLos1f8XR03WypUr/ZgauB999NFeZqRVi/nz5/uqgN5LDcpqklYfg1YV1A8ho0aNspNOOsk/t46hnYrOPfdc/0x6vVYrtESkQKNeheCY2vFI133Q51IDtShcKFQoLJx88sl+fQgAAAAcubRjpqpSiiMgRNO4HJOQIJMnT7ann37adzDSFZXVmKHB9cKFC33rp7vvvtsH3tOmTfPfVdtPYy8AAACwbw7JkCCaQVcIUDjQ8XQsza43aNBgfz8IAAAAgEIO2ZAAAAAA4MCIJiQwXQ8AAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAICTikJCQkGD5+fkGAAAAID5pzB6JiENCUlKS5ebmWl5engEAAACIH5rMz87O9pAQSVBItgglJib6G+7YscPS0tI8NAAAAACIPQWEzMxMH6NHEhIS0tPTo6oZ0gloRYHSIwAAACA+KBwEtwjkR7ySEEhJSfEbAAAAgMMDuxsBAAAACIlqJUElRmpcpoEZAAAAiB9BqZH6iCMRVUhQONCtRIkSNC4DAAAAcUAT+Tk5OZaVleXj9EiCgkJCRB3HwQpCqVKl6EkAAAAA4khqaqrt2rXLbyVLlvy1p/9i+6P/AxLzgaft3EodAAAAAElFTkSuQmCC",ApA={key:0,class:"card"},epA={class:"card-body"},tpA={class:"card-wrapper"},ipA={class:"title"},opA={class:"button"},rpA={class:"allow"},npA={class:"image-wrapper"},apA=["src"],spA=Ai({__name:"SystemPermitTip",props:{platform:{},language:{}},setup(t){const i={mac:{"zh-cn":T8,en:ZhA},win:{"zh-cn":XhA,en:$hA}},r=t,s=rt(()=>r.platform==="mac"?"mac-privacy":"win-privacy"),g=rt(()=>r.platform==="mac"?"mac-preferences":"win-preferences"),B=Ne(T8),Q=Ne(!0),f=Ca(),m=v=>{v&&Pi.isPC&&(Q.value=!0)},M=()=>{Q.value=!1};return Un(()=>r.language,()=>{B.value=i[r.platform][r.language]},{immediate:!0}),gs(()=>{me.watch(bA.CALL,{[aA.SHOW_PERMISSION_TIP]:m},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.SHOW_PERMISSION_TIP]:m})}),(v,U)=>W(Q)?(qA(),Ue("div",ApA,[ce("div",epA,[ce("div",{class:"close",onClick:M},[ze(zhA)]),ce("div",tpA,[ce("div",ipA,Wt(W(f)("browser-authorization")),1),ce("div",opA,Wt(W(f)(W(g))),1),ce("div",rpA,Wt(W(f)(W(s))),1),ce("div",npA,[ce("img",{src:W(B),class:"image",alt:"system permit"},null,8,apA)])])])])):Tt("",!0)}}),gpA=wo(spA,[["__scopeId","data-v-9982fa76"]]),IpA={class:"tip"},cpA={class:"card"},EpA=Ai({__name:"PermitTip",setup(t){const i=rt(()=>Pi.isMAC?Vj.MAC:Vj.WIN),r=Ne(me.getData(bA.CALL,aA.LANGUAGE)),s=g=>r.value=g;return gs(()=>{me.watch(bA.CALL,{[aA.LANGUAGE]:s},{notifyRangeWhenWatch:aA.MYSELF})}),Ya(()=>{me.unwatch(bA.CALL,{[aA.LANGUAGE]:s})}),(g,B)=>(qA(),Ue("div",IpA,[ce("div",cpA,[ze(gpA,{platform:W(i),language:W(r)},null,8,["platform","language"])])]))}}),lpA=wo(EpA,[["__scopeId","data-v-cd63c32e"]]),E$={};let rj=null,CpA=1;const BpA=()=>{const t=document.body,i=document.createElement("div");rj&&(t.removeChild(rj.el),iD(null,i));const r=ze(lpA,{index:`permit-item-${CpA++}`,destroy(){iD(null,i)}});iD(r,i),t.appendChild(i.firstElementChild),rj=r};E$.show=()=>BpA();const upA={class:"toast-content"},QpA=Ai({__name:"Toast",props:{type:{},duration:{},message:{},index:{},showClose:{type:Boolean},destroy:{type:Function},close:{type:Function}},setup(t){const i=t,r=Ne(!1),s=Ne(null),g=rt(()=>`toast-container ${i.type}`),B=()=>{i.destroy()},Q=()=>{i.close(),r.value=!1},f=()=>{s.value&&clearTimeout(s.value),i.duration&&(s.value=setTimeout(()=>{Q()},i.duration))};return gs(()=>{r.value=!0,f()}),Ya(()=>{s.value&&clearTimeout(s.value)}),(m,M)=>(qA(),_t(ZoA,{name:"slide-up",onAfterLeave:B},{default:Vt(()=>[aa((qA(),Ue("div",{key:m.index,class:Qi(W(g))},[ce("div",upA,Wt(m.message),1),aa(ce("i",{onClick:Q,class:"toast-close-icon"},null,512),[[sa,m.showClose]])],2)),[[sa,W(r)]])]),_:1}))}}),dpA=wo(QpA,[["__scopeId","data-v-27fc22c5"]]),lw={},BC=[];let hpA=1;function ppA(){var t,i,r;const s=BC.length;return s>0?(r=(i=(t=BC[s-1])==null?void 0:t.el)==null?void 0:i.style)==null?void 0:r.top:"30px"}function fpA(){var t,i;const r=BC.length;return r>0?(i=(t=BC[r-1])==null?void 0:t.el)==null?void 0:i.offsetHeight:0}const l$=t=>{const{type:i,duration:r=3e3,message:s,showClose:g=!1,onClose:B}=t,Q=document.body,f=document.createElement("div"),m=ze(dpA,{type:i,duration:r,message:s,showClose:g,index:`toast-item-${hpA++}`,close(){var U,AA,z,sA;const eA=BC.findIndex(QA=>QA===m);console.log((AA=(U=BC[eA])==null?void 0:U.el)==null?void 0:AA.offsetHeight);const X=parseInt((sA=(z=BC[eA])==null?void 0:z.el)==null?void 0:sA.offsetHeight)+20;for(let QA=0;QA<BC.length;QA++)QA<eA||(BC[QA].el.style.top=parseInt(BC[QA].el.style.top)-X+"px");BC.splice(eA,1)},destroy(){iD(null,f)}});iD(m,f),Q.appendChild(f.firstElementChild);const M=ppA(),v=fpA();m.el.style.top=parseInt(M)+parseInt(v)+20+"px",BC.push(m)};["info","waring","error","success"].forEach(t=>{let i={};lw[t]=r=>{typeof r=="string"?i.message=r:i=r,l$({type:t,...i})}});lw.show=t=>{let i={};return typeof t=="string"?(i.message=t,i.type="info"):i=t,l$({type:"info",...i})};const mpA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMyAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuMDYyMTggNi43NUM5LjA2MjE4IDguNDA2ODUgNy43MTkwMyA5Ljc1IDYuMDYyMTggOS43NUM0LjQwNTMyIDkuNzUgMy4wNjIxOCA4LjQwNjg1IDMuMDYyMTggNi43NUMzLjA2MjE4IDUuMDkzMTUgNC40MDUzMiAzLjc1IDYuMDYyMTggMy43NUM3LjcxOTAzIDMuNzUgOS4wNjIxOCA1LjA5MzE1IDkuMDYyMTggNi43NVpNOC4wNjIxOCA2Ljc1QzguMDYyMTggNS42NDU0MyA3LjE2Njc1IDQuNzUgNi4wNjIxOCA0Ljc1QzQuOTU3NjEgNC43NSA0LjA2MjE4IDUuNjQ1NDMgNC4wNjIxOCA2Ljc1QzQuMDYyMTggNy44NTQ1NyA0Ljk1NzYxIDguNzUgNi4wNjIxOCA4Ljc1QzcuMTY2NzUgOC43NSA4LjA2MjE4IDcuODU0NTcgOC4wNjIxOCA2Ljc1WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NSIvPgo8cGF0aCBkPSJNNi4wNjIxOCAwTDEyLjEyNDQgMy4zNzVWMTAuMTI1TDYuMDYyMTggMTMuNUwwIDEwLjEyNVYzLjM3NUw2LjA2MjE4IDBaTTEgMy45NjI4VjkuNTM3Mkw2LjA2MjE4IDEyLjM1NTVMMTEuMTI0NCA5LjUzNzJWMy45NjI4TDYuMDYyMTggMS4xNDQ1M0wxIDMuOTYyOFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNzUiLz4KPC9zdmc+Cg==",DpA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDYgMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xLjg0NTI5IDkuMzQ0NDhMMS4xNTU4NiA4LjY1NTA1TDMuODExMTQgNS45OTk3N0wxLjE1NTg2IDMuMzQ0NDhMMS44NDUyOSAyLjY1NTA1TDUuMTkgNS45OTk3N0wxLjg0NTI5IDkuMzQ0NDhaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQyIi8+Cjwvc3ZnPgo=",ypA={key:0,style:{height:"16px"}},RpA={class:"sender-name"},G8="16px",MpA=Ai({__name:"SubtitleContent",emits:["open-settings"],setup(t,{emit:i}){const r=Ne(!1),s=Ne(null),{subtitleInfoList:g,isAITranscriberRunning:B}=Nk(),Q=Pi.isH5,f=rt(()=>Q?DpA:mpA),m=i,M=()=>{m("open-settings")},v=()=>{s.value&&lY(()=>{s.value.scrollTop=s.value.scrollHeight})};Un(()=>g.value,(z,sA)=>{z&&sA&&z.length>sA.length&&v()},{deep:!0}),Un(()=>B.value&&g.value.length>0,z=>{z&&v()});const U=z=>{if(z==null)return{language:"Unknown",text:""};if(typeof z=="string")try{const sA=JSON.parse(z);return sA&&typeof sA=="object"?{language:sA.language||"Unknown",text:sA.text||z}:{language:"Unknown",text:z}}catch{return{language:"Unknown",text:z}}return{language:"Unknown",text:String(z)}},AA=z=>U(z).text;return(z,sA)=>W(B)&&W(g).length>0?(qA(),Ue("div",{key:0,ref_key:"subtitleContainer",ref:s,class:Qi(["subtitle-content",{"subtitle-content--h5":W(Q)}]),onMouseenter:sA[0]||(sA[0]=eA=>!W(Q)&&(r.value=!0)),onMouseleave:sA[1]||(sA[1]=eA=>!W(Q)&&(r.value=!1))},[aa(ce("div",{class:Qi(["subtitle-content__settings-btn",{"subtitle-content__settings-btn--h5":W(Q)}]),onClick:M},[ze(zs,{src:W(f),width:G8,height:G8},null,8,["src"])],2),[[sa,W(Q)||W(r)]]),(qA(!0),Ue(Tn,null,DC(Array.isArray(W(g))?W(g):[],(eA,X)=>(qA(),Ue("div",{key:eA.roundId},[X!==0?(qA(),Ue("div",ypA)):Tt("",!0),ce("div",RpA,Wt(`${eA?.nick||eA?.sender}:`),1),ce("div",null,Wt(eA?.text),1),(qA(!0),Ue(Tn,null,DC(Array.isArray(eA?.translation)?eA.translation:[],QA=>(qA(),Ue("div",{key:QA?.language},[ce("span",null,Wt(AA(QA?.text)),1)]))),128))]))),128))],34)):Tt("",!0)}}),wpA=wo(MpA,[["__scopeId","data-v-9ba522cb"]]),SpA={value:{type:[String,Number],default:""},options:{type:Array,default:()=>[]},placeholder:{type:String,default:"Please select"},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},size:{type:String,values:["small","medium","large"],default:"medium"},width:{type:String,default:"100%"}},vpA={input:t=>!0,change:t=>!0,clear:()=>!0},NpA=t=>(Sw("data-v-8cbeab17"),t=t(),vw(),t),TpA={class:"select-text"},GpA=NpA(()=>ce("path",{d:"M1 1L6 6L11 1",stroke:"#C0C4CC","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),kpA=[GpA],_pA={class:"custom-options"},bpA=["onClick"],LpA=Ai({__name:"CustomSelect",props:SpA,emits:vpA,setup(t,{emit:i}){const r=t,s=i,g=Ne(!1),B=Ne(null),Q=rt(()=>{const v=r.options.find(U=>U.value===r.value);return v?v.label:r.placeholder}),f=()=>{r.disabled||(g.value=!g.value)},m=v=>{s("input",v),s("change",v),g.value=!1},M=v=>{if(!B.value)return;const U=v.target;B.value.contains(U)||(g.value=!1)};return gs(()=>{document.addEventListener("click",M)}),Ya(()=>{document.removeEventListener("click",M)}),(v,U)=>(qA(),Ue("div",{class:"custom-select-wrapper",ref_key:"wrapperRef",ref:B},[ce("div",{class:Qi(["custom-select",{"is-open":W(g),"is-disabled":v.disabled}]),onClick:ul(f,["stop"])},[ce("span",TpA,Wt(W(Q)),1),(qA(),Ue("svg",{class:Qi(["select-arrow",{"is-open":W(g)}]),width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},kpA,2))],2),aa(ce("div",_pA,[(qA(!0),Ue(Tn,null,DC(v.options,AA=>(qA(),Ue("div",{key:AA.value,class:Qi(["custom-option",{"is-selected":v.value===AA.value}]),onClick:ul(z=>m(AA.value),["stop"])},Wt(AA.label),11,bpA))),128))],512),[[sa,W(g)]])],512))}}),nj=wo(LpA,[["__scopeId","data-v-8cbeab17"]]),FpA=t=>(Sw("data-v-b03aa36f"),t=t(),vw(),t),UpA={class:"modal-header"},OpA={class:"modal-title"},xpA=FpA(()=>ce("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ce("path",{d:"M12 4L4 12M4 4L12 12",stroke:"#666","stroke-width":"2","stroke-linecap":"round"})],-1)),YpA=[xpA],PpA={class:"modal-content"},JpA={class:"setting-item"},HpA={class:"setting-label"},VpA={class:"setting-item"},qpA={class:"setting-label"},KpA={class:"setting-item"},jpA={class:"setting-label"},WpA={class:"modal-footer"},zpA=Ai({__name:"SubtitleSettingsPC",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","confirm"],setup(t,{emit:i}){const r=i,s=Ca(),g=Ne("zh"),B=Ne("en"),Q=Ne("both"),f=Ne({recognitionLanguage:"zh",translationLanguage:"en",subtitleDisplay:"both"}),m=rt(()=>[{value:"zh",label:"中文"},{value:"en",label:"English"}]),M=rt(()=>[{value:"",label:s.value("no-translation")},{value:"zh",label:"Chinese (中文)"},{value:"en",label:"English (英语)"},{value:"vi",label:"Vietnamese (越南语)"},{value:"ja",label:"Japanese (日语)"},{value:"ko",label:"Korean (韩语)"},{value:"id",label:"Indonesian (印尼语)"},{value:"th",label:"Thai (泰语)"},{value:"pt",label:"Portuguese (葡萄牙语)"},{value:"ar",label:"Arabic (阿拉伯语)"},{value:"es",label:"Spanish (西班牙语)"},{value:"fr",label:"French (法语)"},{value:"ms",label:"Malay (马来语)"},{value:"de",label:"German (德语)"},{value:"it",label:"Italian (意大利语)"},{value:"ru",label:"Russian (俄语)"}]),v=rt(()=>M.value.filter(wA=>wA.value===""||wA.value!==g.value)),U=rt(()=>[{value:"both",label:s.value("show-bilingual")},{value:"original",label:s.value("show-original-only")}]),AA=wA=>{g.value=wA},z=wA=>{B.value=wA},sA=wA=>{Q.value=wA},eA=()=>{g.value=f.value.recognitionLanguage,B.value=f.value.translationLanguage,Q.value=f.value.subtitleDisplay,r("update:visible",!1)},X=()=>{eA()},QA=async()=>{try{const wA=B.value?[B.value]:[];await oo._aiAssistant.updateRealTimeTranscriber({sourceLanguage:g.value,translationLanguages:wA}),f.value={recognitionLanguage:g.value,translationLanguage:B.value,subtitleDisplay:Q.value},r("confirm",{recognitionLanguage:g.value,translationLanguage:B.value,subtitleDisplay:Q.value})}catch(wA){console.error("Failed to update AI transcriber settings:",wA)}eA()};return Un(g,wA=>{B.value===wA&&(B.value="")}),(wA,HA)=>wA.visible?(qA(),Ue("div",{key:0,class:"subtitle-settings-overlay",onClick:X},[ce("div",{class:"subtitle-settings-modal",onClick:HA[0]||(HA[0]=ul(()=>{},["stop"]))},[ce("div",UpA,[ce("h3",OpA,Wt(W(s)("ai-subtitle-settings")),1),ce("button",{class:"close-btn",onClick:eA},YpA)]),ce("div",PpA,[ce("div",JpA,[ce("label",HpA,Wt(W(s)("recognition-language")),1),ze(nj,{value:W(g),onInput:AA,options:W(m),onChange:AA},null,8,["value","options"])]),ce("div",VpA,[ce("label",qpA,Wt(W(s)("translation-language")),1),ze(nj,{value:W(B),onInput:z,options:W(v),onChange:z},null,8,["value","options"])]),ce("div",KpA,[ce("label",jpA,Wt(W(s)("subtitle-display-settings")),1),ze(nj,{value:W(Q),onInput:sA,options:W(U),onChange:sA},null,8,["value","options"])])]),ce("div",WpA,[ce("button",{class:"btn btn-cancel",onClick:eA},Wt(W(s)("Cancel")),1),ce("button",{class:"btn btn-confirm",onClick:QA},Wt(W(s)("save")),1)])])])):Tt("",!0)}}),ZpA=wo(zpA,[["__scopeId","data-v-b03aa36f"]]),Tk=t=>(Sw("data-v-50f476c3"),t=t(),vw(),t),XpA={key:0,class:"subtitle-settings-overlay"},$pA={class:"modal-header"},AfA={class:"modal-title"},efA={class:"modal-content"},tfA={class:"setting-group"},ifA={class:"group-title"},ofA={class:"group-content"},rfA={class:"setting-section"},nfA={class:"section-title"},afA={class:"section-value"},sfA=Tk(()=>ce("svg",{class:"arrow-icon",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ce("path",{d:"M6 4L10 8L6 12",stroke:"#999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),gfA={class:"setting-section"},IfA={class:"section-title"},cfA={class:"section-value"},EfA=Tk(()=>ce("svg",{class:"arrow-icon",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ce("path",{d:"M6 4L10 8L6 12",stroke:"#999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),lfA={class:"setting-section"},CfA={class:"section-header"},BfA={class:"section-title"},ufA=Tk(()=>ce("div",{class:"toggle-slider"},null,-1)),QfA=[ufA],dfA={class:"modal-footer"},hfA={class:"selector-header"},pfA={class:"selector-title"},ffA=Tk(()=>ce("div",{class:"header-placeholder"},null,-1)),mfA={class:"language-list"},DfA=["onClick"],yfA={class:"selector-header"},RfA={class:"selector-title"},MfA=Tk(()=>ce("div",{class:"header-placeholder"},null,-1)),wfA={class:"language-list"},SfA=["onClick"],vfA=Ai({__name:"SubtitleSettingsH5",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","confirm"],setup(t,{emit:i}){const r=i,s=Ca(),g=Ne({recognitionLanguage:"zh",translationLanguage:"en",subtitleEnabled:!0}),B=Ne("zh"),Q=Ne("en"),f=Ne(!0),m=Ne(!1),M=Ne(!1),v=rt(()=>[{value:"zh",label:"中文"},{value:"en",label:"English"}]),U=rt(()=>[{value:"",label:s.value("no-translation")},{value:"zh",label:"Chinese (中文)"},{value:"en",label:"English (英语)"},{value:"vi",label:"Vietnamese (越南语)"},{value:"ja",label:"Japanese (日语)"},{value:"ko",label:"Korean (韩语)"},{value:"id",label:"Indonesian (印尼语)"},{value:"th",label:"Thai (泰语)"},{value:"pt",label:"Portuguese (葡萄牙语)"},{value:"ar",label:"Arabic (阿拉伯语)"},{value:"es",label:"Spanish (西班牙语)"},{value:"fr",label:"French (法语)"},{value:"ms",label:"Malay (马来语)"},{value:"de",label:"German (德语)"},{value:"it",label:"Italian (意大利语)"},{value:"ru",label:"Russian (俄语)"}]),AA=rt(()=>U.value.filter(HA=>HA.value===""||HA.value!==B.value)),z=HA=>{const VA=[...Array.isArray(v.value)?v.value:[],...Array.isArray(AA.value)?AA.value:[]].find(ue=>ue.value===HA);return VA?.label||""},sA=()=>{B.value=g.value.recognitionLanguage,Q.value=g.value.translationLanguage,f.value=g.value.subtitleEnabled,m.value=!1,M.value=!1,r("update:visible",!1)},eA=async()=>{try{g.value={recognitionLanguage:B.value,translationLanguage:Q.value,subtitleEnabled:f.value};const HA=Q.value?[Q.value]:[];await oo._aiAssistant.updateRealTimeTranscriber({sourceLanguage:B.value,translationLanguages:HA}),r("confirm",{recognitionLanguage:B.value,translationLanguage:Q.value,subtitleEnabled:f.value})}catch(HA){console.error("Failed to update AI transcriber settings:",HA)}r("update:visible",!1)},X=HA=>{B.value=HA,m.value=!1},QA=HA=>{Q.value=HA,M.value=!1},wA=()=>{f.value=!f.value};return Un(B,HA=>{Q.value===HA&&(Q.value="")}),(HA,VA)=>HA.visible?(qA(),Ue("div",XpA,[ce("div",{class:"subtitle-settings-modal",onClick:VA[2]||(VA[2]=ul(()=>{},["stop"]))},[ce("div",$pA,[ce("h3",AfA,Wt(W(s)("ai-subtitle-settings")),1)]),ce("div",efA,[ce("div",tfA,[ce("div",ifA,Wt(W(s)("recognition-and-translation-settings")),1),ce("div",ofA,[ce("div",rfA,[ce("div",{class:"section-header",onClick:VA[0]||(VA[0]=ue=>m.value=!0)},[ce("span",nfA,Wt(W(s)("recognition-language")),1),ce("span",afA,[Na(Wt(z(W(B)))+" ",1),sfA])])]),ce("div",gfA,[ce("div",{class:"section-header",onClick:VA[1]||(VA[1]=ue=>M.value=!0)},[ce("span",IfA,Wt(W(s)("translation-language")),1),ce("span",cfA,[Na(Wt(z(W(Q))||W(s)("no-translation"))+" ",1),EfA])])]),ce("div",lfA,[ce("div",CfA,[ce("span",BfA,Wt(W(s)("subtitle-display-bilingual")),1),ce("div",{class:Qi(["toggle-switch",{active:W(f)}]),onClick:wA},QfA,2)])])])])]),ce("div",dfA,[ce("button",{class:"btn btn-cancel",onClick:sA},Wt(W(s)("Cancel")),1),ce("button",{class:"btn btn-confirm",onClick:eA},Wt(W(s)("confirm")),1)])]),W(m)?(qA(),Ue("div",{key:0,class:"language-selector-overlay",onClick:VA[4]||(VA[4]=ue=>m.value=!1)},[ce("div",{class:"language-selector",onClick:VA[3]||(VA[3]=ul(()=>{},["stop"]))},[ce("div",hfA,[ce("h3",pfA,Wt(W(s)("select-recognition-language")),1),ffA]),ce("div",mfA,[(qA(!0),Ue(Tn,null,DC(Array.isArray(W(v))?W(v):[],ue=>(qA(),Ue("div",{key:ue.value,class:Qi(["language-item",{selected:W(B)===ue.value}]),onClick:jA=>X(ue.value)},[ce("span",null,Wt(ue.label),1)],10,DfA))),128))])])])):Tt("",!0),W(M)?(qA(),Ue("div",{key:1,class:"language-selector-overlay",onClick:VA[6]||(VA[6]=ue=>M.value=!1)},[ce("div",{class:"language-selector",onClick:VA[5]||(VA[5]=ul(()=>{},["stop"]))},[ce("div",yfA,[ce("h3",RfA,Wt(W(s)("select-translation-language")),1),MfA]),ce("div",wfA,[(qA(!0),Ue(Tn,null,DC(Array.isArray(W(AA))?W(AA):[],ue=>(qA(),Ue("div",{key:ue.value,class:Qi(["language-item",{selected:W(Q)===ue.value}]),onClick:jA=>QA(ue.value)},[ce("span",null,Wt(ue.label),1)],10,SfA))),128))])])])):Tt("",!0)])):Tt("",!0)}}),NfA=wo(vfA,[["__scopeId","data-v-50f476c3"]]),TfA={options:{virtualHost:!0}},GfA=Ai({...TfA,__name:"AISubtitle",props:{customClass:{type:String},customStyle:{type:Object}},setup(t){const i=Pi.isPC,{isAITranscriberEnabled:r}=Nk(),s=Ne(!1),g=()=>{s.value=!0},B=Q=>{s.value=!1};return(Q,f)=>W(r)?(qA(),Ue("div",{key:0,class:Qi([W(i)?"ai-subtitle-pc":"ai-subtitle-h5",t.customClass,{"ai-subtitle-pc--expanded":W(s)&&W(i),"ai-subtitle-h5--expanded":W(s)&&!W(i)}]),style:zr([t.customStyle])},[aa(ze(wpA,{onOpenSettings:g,class:Qi(W(i)?"ai-subtitle-pc__content":"ai-subtitle-h5__content")},null,8,["class"]),[[sa,!W(s)]]),W(i)?(qA(),_t(ZpA,{key:0,visible:W(s),"onUpdate:visible":f[0]||(f[0]=m=>s.value=m),onConfirm:B,class:"ai-subtitle-pc__settings"},null,8,["visible"])):(qA(),_t(NfA,{key:1,visible:W(s),"onUpdate:visible":f[1]||(f[1]=m=>s.value=m),onConfirm:B,class:"ai-subtitle-h5__settings"},null,8,["visible"]))],6)):Tt("",!0)}}),kfA=wo(GfA,[["__scopeId","data-v-02339ead"]]),_fA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTUxMiA5Ny41MjRjMjI4LjkxMyAwIDQxNC40NzYgMTg1LjU2MyA0MTQuNDc2IDQxNC40NzZTNzQwLjkxMyA5MjYuNDc2IDUxMiA5MjYuNDc2IDk3LjUyNCA3NDAuOTEzIDk3LjUyNCA1MTIgMjgzLjA4NyA5Ny41MjQgNTEyIDk3LjUyNHptMTkzLjE5NSAyMTguMzMxTDQ0Ny4yMiA1ODEuMzE1IDM0My4yODQgNDczLjUwMmwtNTIuNjYzIDUwLjc2MiAxNTYuMzggMTYyLjIzIDMxMC42NjEtMzE5LjY4My01Mi40NjctNTAuOTU2eiIgZmlsbD0iIzJiYTQ3MSIvPjwvc3ZnPg==",bfA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6bTM2LjU3MSAzNDEuMzMzSDQ3NS40M1Y3MzEuNDNoNzMuMTQyVjQzOC44NTd6bTAtMTIxLjkwNUg0NzUuNDN2NzMuMTQzaDczLjE0MnYtNzMuMTQzeiIgZmlsbD0iIzAwNTJkOSIvPjwvc3ZnPg==",LfA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6TTY0MS4yOTIgMzMwLjk3IDUxMi4wMjQgNDYwLjI2NCAzODIuNzA4IDMzMC45N2wtNTEuNzM3IDUxLjczNyAxMjkuMzE3IDEyOS4yNjgtMTI5LjMxNyAxMjkuMzE2IDUxLjczNyA1MS43MzdMNTEyIDU2My42ODhsMTI5LjI5MiAxMjkuMzE2IDUxLjczNy01MS43MzZMNTYzLjY4OCA1MTJsMTI5LjMxNi0xMjkuMjkyLTUxLjczNi01MS43Mzd6IiBmaWxsPSIjZDU0OTQxIi8+PC9zdmc+",FfA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6bTM2LjU3MSAzNDEuMzMzSDQ3NS40M1Y3MzEuNDNoNzMuMTQyVjQzOC44NTd6bTAtMTIxLjkwNUg0NzUuNDN2NzMuMTQzaDczLjE0MnYtNzMuMTQzeiIgZmlsbD0iI2UzNzMxOCIvPjwvc3ZnPg==",UfA={class:"uikit-modal-header"},OfA={class:"uikit-modal-title"},xfA=["innerHTML"],YfA={class:"uikit-modal-footer"},PfA=Ai({__name:"UIKitModal",props:{visible:{type:Boolean},id:{},title:{},content:{},type:{},onConfirm:{type:Function},onCancel:{type:Function}},emits:["confirm","cancel"],setup(t,{emit:i}){const r=t,s=i,g=Dp,B=rt(()=>Uu("reject")),Q=rt(()=>Uu("accept")),f=/^(https?:\/\/)?([da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/i,m=/(https?:\/\/[^\s]+)/g,M=rt(()=>{const X=["uikit-modal-default","uikit-modal-container"];return g||X.push("uikit-modal-container-mobile"),X.join(" ")}),v=rt(()=>{const{content:X}=r;if(!X||typeof X!="string")return X;if(f.test(X.trim())){const QA=X.trim(),wA=QA.startsWith("http")?QA:`https://${QA}`;return`<a href="${U(wA)}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${U(QA)}</a>`}return X.includes("<a ")||X.includes("<a>")?AA(X):m.test(X)?U(X).replace(m,QA=>`<a href="${QA}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${QA}</a>`):U(X)});function U(X){const QA=document.createElement("div");return QA.textContent=X,QA.innerHTML}function AA(X){const QA=new DOMParser().parseFromString(X,"text/html");return QA.querySelectorAll("a").forEach(wA=>{if(wA.getAttribute("href")){wA.setAttribute("target","_blank"),wA.setAttribute("rel","noopener noreferrer"),wA.classList.add("uikit-modal-link");const HA=wA.textContent||"";wA.innerHTML=`<span style="padding: 0 0.2em; display: inline-block;">${HA}</span>`}}),QA.body.innerHTML}function z(){sA()}function sA(){var X;(X=r.onConfirm)==null||X.call(r),s("confirm")}function eA(){var X;(X=r.onCancel)==null||X.call(r),s("cancel")}return(X,QA)=>X.visible?(qA(),Ue("div",{key:0,class:"uikit-modal-mask",onClick:ul(z,["self"])},[ce("div",{class:Qi(W(M))},[ce("div",UfA,[X.type==="success"?(qA(),_t(bu,{key:0,class:"uikit-modal-type-icon",src:W(_fA),size:20},null,8,["src"])):Tt("",!0),X.type==="info"?(qA(),_t(bu,{key:1,class:"uikit-modal-type-icon",src:W(bfA),size:20},null,8,["src"])):Tt("",!0),X.type==="error"?(qA(),_t(bu,{key:2,class:"uikit-modal-type-icon",src:W(LfA),size:20},null,8,["src"])):Tt("",!0),X.type==="warning"?(qA(),_t(bu,{key:3,class:"uikit-modal-type-icon",src:W(FfA),size:20},null,8,["src"])):Tt("",!0),ce("span",OfA,Wt(X.title),1)]),ce("div",{class:"uikit-modal-body",innerHTML:W(v)},null,8,xfA),ce("div",YfA,[ce("button",{class:"uikit-modal-btn uikit-modal-btn-cancel",onClick:eA},Wt(W(B)||"Cancel"),1),ce("button",{class:"uikit-modal-btn uikit-modal-btn-confirm",onClick:sA},Wt(W(Q)||"Confirm"),1)])],2)])):Tt("",!0)}}),JfA=wo(PfA,[["__scopeId","data-v-1d6740ac"]]);let Zj=null,id=null;const HfA=()=>{if(typeof window>"u")return!1;const t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.startsWith("192.168.")},k8=()=>{Zj&&id&&(iD(null,id),id.parentNode&&id.parentNode.removeChild(id),Zj=null,id=null)},VfA=t=>new Promise(i=>{k8();const r=oo.getTim();if(r&&typeof r.callExperimentalAPI=="function"){const Q={id:t.id,title:t.title,type:t.type,content:t.content};r.callExperimentalAPI("reportModalView",JSON.stringify(Q))}if(!HfA()){i({action:"confirm"});return}const s=Q=>{k8(),i({action:Q})},g={...t,visible:!0,onConfirm:()=>{var Q;(Q=t.onConfirm)==null||Q.call(t),s("confirm")},onCancel:()=>{var Q;(Q=t.onCancel)==null||Q.call(t),s("cancel")}};id=document.createElement("div");const B=ze(JfA,g);iD(B,id),document.body.appendChild(id),Zj=B}),qfA={openModal:t=>VfA(t)},Gk=Ai({__name:"TUICallKit",props:{beforeCalling:{},afterCalling:{},onMinimized:{},onMessageSentByMe:{},kickedOut:{},statusChanged:{},allowedMinimized:{type:Boolean,default:!1},allowedFullScreen:{type:Boolean,default:!0},videoDisplayMode:{default:tW.COVER},videoResolution:{default:iW.RESOLUTION_720P}},setup(t){const i=!Pi.isPC,r=i?"TUICallKit-mobile transition-animation":"TUICallKit-desktop",s=Ne(""),g=Ne(""),B=Ne(""),Q=Ne(!1),f=t,m=Ne(me.getData(bA.CALL,aA.CALL_STATUS)),M=Ne(me.getData(bA.CALL,aA.CALL_ROLE)),v=Ne(me.getData(bA.CALL,aA.CALL_MEDIA_TYPE)),U=Ne(me.getData(bA.CALL,aA.IS_GROUP)),AA=Ne(me.getData(bA.CALL,aA.IS_EAR_PHONE)),z=Ne(null),sA=Ne(me.getData(bA.CALL,aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN)),eA=Ne(me.getData(bA.CALL,aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST)),X=Ne(me.getData(bA.CALL,aA.CALLER_USER_INFO)),QA=Ne(me.getData(bA.CALL,aA.IS_MINIMIZED)),wA=Ne(me.getData(bA.CALL,aA.ENABLE_VIRTUAL_BACKGROUND)),HA=Ne(me.getData(bA.CALL,aA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND)),VA=Ne(me.getData(bA.CALL,aA.CUSTOM_UI_CONFIG)),ue=Ne(me.getData(bA.CALL,aA.IS_MUTE_SPEAKER)),jA=Ne(me.getData(bA.CALL,aA.TRANSLATE)),Ve=Xm({callStatus:m,callRole:M,callType:v,isGroupCall:U,isEarPhone:AA,focusElement:z,allowedFullScreen:f.allowedFullScreen,enableVirtualBackground:wA,isShowEnableVirtualBackground:HA,isMuteSpeaker:ue}),Ze=Xm({callerUserInfo:X}),Me=Xm({localUserInfoExcludeVolume:sA,remoteUserListExcludeVolume:eA}),qe=Xm({isFloatWindow:QA}),Et=Ne(jA),{beforeCalling:Je,afterCalling:$e,onMinimized:Dt,onMessageSentByMe:Zi,videoDisplayMode:bi,videoResolution:qt,kickedOut:ai,statusChanged:Ki,allowedMinimized:Ur}=Mo(f),Er=ae=>{Ve.callStatus=ae},no=ae=>{Ve.isGroupCall=ae},Kn=ae=>{if(typeof ae=="object"){const{content:ye,type:Xe="info"}=ae;!w7(ye)&&ht(jA.value(ye),Xe)}},Xi=ae=>{Ve.callType=ae,i&&Q.value&&(B.value="miniMized-mobile-audio",g.value=""),i&&!Q.value&&(g.value="mobile-audio")},yr=ae=>{qe.isFloatWindow=ae,ae?i?Ve.callType===Pr.AUDIO?g.value="miniMized-mobile-audio":B.value="miniMized-mobile-video":s.value="miniMized":(g.value="mobile-audio",s.value="",B.value="")},lr=ae=>{if(ae&&Pi.isPC)try{E$.show()}catch(ye){console.debug(ye)}},Ni=ae=>{Ve.callRole=ae},wt=ae=>{Me.localUserInfoExcludeVolume=ae},Ji=ae=>{Me.remoteUserListExcludeVolume=[...ae]},Di=ae=>{Ze.callerUserInfo=ae},ar=ae=>{Ve.isEarPhone=ae},MA=ae=>{Ve.enableVirtualBackground=ae},YA=ae=>{Ve.isShowEnableVirtualBackground=ae},pe=ae=>{VA.value=ae},st=ae=>{Ve.isMuteSpeaker=ae},Te=ae=>{jA.value=ae},be=ae=>{ae&&qfA.openModal({id:ae?.id,title:ae?.title,content:ae?.content,type:"error"})};Nw(()=>{oo.setCallback({beforeCalling:Je&&Je.value,afterCalling:$e&&$e.value,onMinimized:Dt&&Dt.value,onMessageSentByMe:Zi&&Zi.value,kickedOut:ai&&ai.value,statusChanged:Ki&&Ki.value})});const yt={[aA.CALL_STATUS]:Er,[aA.IS_GROUP]:no,[aA.TOAST_INFO]:Kn,[aA.CALL_MEDIA_TYPE]:Xi,[aA.SHOW_PERMISSION_TIP]:lr,[aA.CALL_ROLE]:Ni,[aA.LOCAL_USER_INFO_EXCLUDE_VOLUMN]:wt,[aA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:Ji,[aA.CALLER_USER_INFO]:Di,[aA.IS_EAR_PHONE]:ar,[aA.ENABLE_VIRTUAL_BACKGROUND]:MA,[aA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND]:YA,[aA.CUSTOM_UI_CONFIG]:pe,[aA.IS_MUTE_SPEAKER]:st,[aA.TRANSLATE]:Te,[aA.MODAL_ERROR]:be};gs(()=>{Ur.value&&oo.enableFloatWindow(Ur.value),oo.setVideoDisplayMode(bi.value),oo.setVideoResolution(qt.value),me.watch(bA.CALL,yt,{notifyRangeWhenWatch:aA.MYSELF}),me.watch(bA.CALL,{[aA.IS_MINIMIZED]:yr})});function ht(ae,ye){switch(ye){case"info":lw?.info(ae);break;case"error":lw?.error(ae);break}}return Ya(async()=>{me.unwatch(bA.CALL,{...yt,[aA.IS_MINIMIZED]:yr})}),gE(B7,Ve),gE(u7,Ze),gE(Q7,Me),gE(p7,qe),gE(D7,VA),gE(y7,Et),(ae,ye)=>W(Ve).callStatus!==W(Ao).IDLE?(qA(),Ue("div",{key:0,style:zr([{visibility:W(qe).isFloatWindow?"hidden":""}]),id:"tuicallkit-id",class:Qi([W(r),W(s),W(B),W(g)])},[W(Ve).isGroupCall?(qA(),_t(HhA,{key:1,class:"singCall"})):(qA(),_t(zdA,{key:0,class:"singCall"})),ze(kfA)],6)):Tt("",!0)}}),C$="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNTM2IDYuNjgyYy0uMzMtLjk1NS4wODgtMS45OC45LTIuNTgxLjYxNy0uNDU2IDEuMjM2LS45MTYgMS41ODktMS4xNzhhLjM5Ni4zOTYgMCAwIDEgLjUzOS4wNjJsMS45MjUgMi4yNjRhLjM5Ni4zOTYgMCAwIDEgMCAuNTEzbC0xLjE4IDEuMzlhLjM4OC4zODggMCAwIDAtLjA0MS40NSA4LjY2NyA4LjY2NyAwIDAgMCAxLjM3IDEuNzU4Yy41Ny41NyAxLjEyLjk4MiAxLjc2NSAxLjM2NGEuMzg5LjM4OSAwIDAgMCAuNDUtLjA0MWwxLjM4My0xLjE3NGEuMzk3LjM5NyAwIDAgMSAuNTE0IDBsMi4yNjYgMS45MjVjLjE1OS4xMzUuMTg2LjM3LjA2Mi41MzhsLTEuMTg1IDEuNjA0Yy0uNTk2LjgwNi0xLjYxNCAxLjIxNi0yLjU2Mi44OWExMi41NDUgMTIuNTQ1IDAgMCAxLTQuNzk3LTMuMDAzIDEyLjU0IDEyLjU0IDAgMCAxLTIuOTk4LTQuNzh6IiBmaWxsPSIjMUM2NkU1Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljg4OSAyLjEzM2EuMzU2LjM1NiAwIDAgMC0uMzU2LjM1NnYzLjY4NWMwIC4xOTYuMTYuMzU1LjM1Ni4zNTVoMy42ODVjLjE5NiAwIC4zNTUtLjE1OS4zNTUtLjM1NXYtLjE4NmEuMzIuMzIgMCAwIDEgLjQ1NS0uMjlsLjY4Ny4zMmEuMzU2LjM1NiAwIDAgMCAuNTA2LS4zMjJ2LTIuNzNjMC0uMjYtLjI3LS40MzItLjUwNi0uMzIybC0uNjg3LjMyYS4zMi4zMiAwIDAgMS0uNDU1LS4yOVYyLjQ5YS4zNTYuMzU2IDAgMCAwLS4zNTUtLjM1Nkg4Ljg4OXoiIGZpbGw9IiMxQzY2RTUiLz48L3N2Zz4=",KfA={class:"banner-pc"},jfA={class:"text"},WfA={class:"content"},zfA=ce("div",{class:"content-arrows"},null,-1),ZfA={class:"avatar-box"},XfA=Ai({__name:"JoinGroupCard",props:{userListInfo:{type:Array,default:[]}},emits:["joinGroupCall"],setup(t,{emit:i}){const r=i,s=Ne(!1),g=Ca(),B=()=>{r("joinGroupCall"),s.value=!1},Q=()=>{s.value=!s.value};return(f,m)=>(qA(),Ue("div",KfA,[ce("div",{class:"top",onClick:Q},[ze(zs,{class:"call-icon",src:W(C$),width:"16px",height:"16px"},null,8,["src"]),ce("span",jfA,Wt(t.userListInfo.length)+" "+Wt(W(g)("people on the call")),1)]),aa(ce("div",WfA,[zfA,ce("div",ZfA,[(qA(!0),Ue(Tn,null,DC(t.userListInfo,M=>(qA(),_t(zs,{class:"avatar",src:M?.avatar,defaultSrc:W(ad),fit:"cover",width:"32px",height:"32px"},null,8,["src","defaultSrc"]))),256))]),ce("div",{class:"btn",onClick:B},Wt(W(g)("join")||"join"),1)],512),[[sa,W(s)]])]))}}),$fA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuNSAwIDUgMy43NS41IDB2MS41NjJsNC4xMTYgMy40My4zODQuMzIuMzg0LS4zMkw5LjUgMS41NjJWMHoiIGZpbGw9IiM2NjYiLz48L3N2Zz4=",AmA={class:"banner-h5"},emA={class:"left"},tmA={class:"text"},imA={class:"content-box"},omA={class:"content"},rmA={class:"avatar-box"},nmA=Ai({__name:"JoinGroupCard",props:{userListInfo:{type:Array,default:[]}},emits:["joinGroupCall"],setup(t,{emit:i}){const r=Ca(),s=Ne({margin:"8px 10px 8px 0px"}),g=Ne({margin:"6px",borderRadius:"4px"}),B=Ne(!1),Q=i,f=()=>{Q("joinGroupCall"),B.value=!1},m=()=>{B.value=!B.value};return(M,v)=>(qA(),Ue("div",AmA,[ce("div",{class:"top",onClick:m},[ce("div",emA,[ze(zs,{class:"call-icon",src:W(C$),width:"16px",height:"16px",customStyle:W(s)},null,8,["src","customStyle"]),ce("span",tmA,Wt(t.userListInfo.length)+" "+Wt(W(r)("people on the call")),1)]),ze(zs,{src:W($fA),width:"9px",height:"9px"},null,8,["src"])]),aa(ce("div",imA,[ce("div",omA,[ce("div",rmA,[(qA(!0),Ue(Tn,null,DC(t.userListInfo,U=>(qA(),_t(zs,{src:U?.avatar,customStyle:W(g),defaultSrc:W(ad),fit:"cover",width:"50px",height:"50px"},null,8,["src","customStyle","defaultSrc"]))),256))]),ce("div",{class:"btn",onClick:ul(f,["stop"])},Wt(W(r)("join")||"join"),1)])],512),[[sa,W(B)]])]))}}),amA=Ai({__name:"JoinGroupCard",setup(t){const i=Ne(Pi.isPC),r=Ne(null),{groupId:s,roomId:g,roomIdType:B,callMediaType:Q,groupCallMembers:f,callStatus:m,callId:M}=Mo(ZlA()),v=rt(()=>s&&m?.value===Ao.IDLE&&f.value.length),U=async()=>{if(f.value.length>9){r.value.show({message:"Supports a maximum of 9 people for simultaneous calls",type:"success"});return}if(me.getData(bA.CALL,aA.IS_FORCE_USE_V2_API)){const AA={type:Q.value,groupID:s.value,roomID:B.value===1?Number(g.value):0,strRoomID:String(g.value)};try{await oo.joinInGroupCall(AA)}catch(z){console.error(`${aA.PREFIX}joinInGroupCall fail: ${z}`)}}else{const AA={callId:M.value};try{await oo.join(AA)}catch(z){console.error(`${aA.PREFIX}join fail: ${z}`)}}};return(AA,z)=>aa((qA(),Ue("div",null,[W(i)?(qA(),_t(XfA,{key:0,userListInfo:W(f),onJoinGroupCall:U},null,8,["userListInfo"])):(qA(),_t(nmA,{key:1,userListInfo:W(f),onJoinGroupCall:U},null,8,["userListInfo"])),ze(n$,{ref_key:"message",ref:r},null,512)],512)),[[sa,W(v)]])}}),smA=t=>(t.component("TUICallKit",{server:oo}),oo.bindTUICore(t),Gk),gmA=t=>{t.component("TUICallKit",Gk).component("JoinGroupCard",amA),console.log("TUICallKit&mini installed",t)};Gk.plugin=smA;Gk.install=gmA;const ImA={AUDIO_CALL:1,VIDEO_CALL:2},cmA={class:"call-stage"},EmA={key:0,class:"status-card"},lmA={key:0,class:"status-hint"},CmA={key:1,class:"live-status",role:"status"},BmA=Ai({__name:"App",props:{phase:{},statusText:{}},setup(t){return(i,r)=>(qA(),Ue("main",cmA,[ze(W(Gk),{class:"call-kit","allowed-minimized":!1,"allowed-full-screen":!0}),i.phase.value==="ready"||i.phase.value==="starting"||i.phase.value==="error"?(qA(),Ue("section",EmA,[ce("span",{class:Qi(["status-dot",`status-dot--${i.phase.value}`]),"aria-hidden":"true"},null,2),ce("div",null,[r[0]||(r[0]=ce("p",{class:"eyebrow"},"中医视频面诊",-1)),ce("h1",null,Wt(i.statusText.value),1),i.phase.value==="ready"?(qA(),Ue("p",lmA,"通话凭证仅由业务后端签发")):Tt("",!0)])])):(qA(),Ue("div",CmA,[r[1]||(r[1]=ce("span",{class:"status-dot status-dot--live","aria-hidden":"true"},null,-1)),Na(" "+Wt(i.statusText.value),1)]))]))}}),cD=Ne("ready"),ED=Ne("等待桌面端发起视频面诊");let Bl=null,lD=!1,v2=!1,Xj="";function umA(){const t=window.qt?.webChannelTransport,i=window.QWebChannel;if(!(!t||typeof i!="function"))try{new i(t,r=>{const s=r.objects.qtVideoBridge;s&&(window.qtVideoBridge=s),yp({source:"doctor-call",event:"ready"})})}catch{console.warn("[doctor-call] Qt WebChannel 初始化失败,将使用 postMessage 通知")}}function QmA(t){let i=!1;try{window.parent&&window.parent!==window&&(window.parent.postMessage(t,"*"),i=!0)}catch{}try{window.opener&&!window.opener.closed&&(window.opener.postMessage(t,"*"),i=!0)}catch{}return i}function yp(t){const i=window.qtVideoBridge;if(i&&typeof i.notify=="function")try{i.notify(JSON.stringify(t));return}catch{}QmA(t)||console.info("[doctor-call]",t.event,t.status??t.message??"")}function aj(t,i){if(typeof t!="string"||t.trim()==="")throw new Error(`${i} 不能为空`);return t.trim()}function dmA(t){if(!t||typeof t!="object")throw new Error("通话配置无效");const i=t.SDKAppID??t.sdkAppId,r=Number(i);if(!Number.isSafeInteger(r)||r<=0)throw new Error("SDKAppID 必须是正整数");const s=t.diagnosisId;if(s==null||typeof s=="string"&&s.trim()==="")throw new Error("diagnosisId 不能为空");return{SDKAppID:r,userID:aj(t.userID??t.userId,"userID"),userSig:aj(t.userSig,"userSig"),targetUserId:aj(t.targetUserId??t.patientUserId,"targetUserId"),diagnosisId:typeof s=="string"?s.trim():s}}function B$(t){let i=t instanceof Error?t.message:"视频通话发生未知错误";return Bl?.userSig&&(i=i.split(Bl.userSig).join("[REDACTED]")),i.replace(/(user\s*sig\s*[:=]\s*)[^\s,;&]+/gi,"$1[REDACTED]").slice(0,400)}function CW(t="ended"){lD||(lD=!0,cD.value="ended",ED.value="视频面诊已结束",yp({source:"doctor-call",event:"hangup",diagnosisId:Bl?.diagnosisId,status:t}))}function hmA(){const t=me.getData(bA.CALL,aA.ROOM_ID);if(t==null)return"";const i=String(t).trim();return i&&i!=="0"?i:""}function pmA(){const t=hmA();return!t||t===Xj?!!t:(Xj=t,yp({source:"doctor-call",event:"room",diagnosisId:Bl?.diagnosisId,roomId:t}),!0)}async function u$(){for(let t=0;t<40&&Bl&&!lD;t+=1){if(pmA())return;await new Promise(i=>window.setTimeout(i,50))}}function fmA(t){const i=t&&typeof t=="object"?t.newStatus:t,r=typeof i=="string"?i:"unknown";r==="connected"||r.startsWith("calling-")?(cD.value="connected",ED.value="视频面诊进行中",u$()):r==="calling"||r.startsWith("dialing")?(cD.value="dialing",ED.value="正在等待患者接听"):r==="idle"&&Bl&&!v2&&CW(r),yp({source:"doctor-call",event:"status",diagnosisId:Bl?.diagnosisId,status:r})}oo.setCallback({statusChanged:fmA,afterCalling:()=>CW("after-calling")});oo.enableFloatWindow(!1);async function mmA(t){if(v2||Bl&&!lD)throw new Error("已有视频通话正在进行");v2=!0,lD=!1,cD.value="starting",ED.value="正在初始化安全通话";try{const i=dmA(t);Bl=i,Xj="",await oo.init({SDKAppID:i.SDKAppID,userID:i.userID,userSig:i.userSig}),await lY(),cD.value="dialing",ED.value="正在呼叫患者",await oo.calls({userIDList:[i.targetUserId],type:ImA.VIDEO_CALL}),u$(),yp({source:"doctor-call",event:"status",diagnosisId:i.diagnosisId,status:"dialing"})}catch(i){const r=B$(i);throw cD.value="error",ED.value=r,yp({source:"doctor-call",event:"error",diagnosisId:Bl?.diagnosisId,message:r}),Bl=null,lD=!0,new Error(r)}finally{v2=!1}}async function DmA(){if(!(!Bl||lD))try{await oo.hangup(),CW("local-hangup")}catch(t){const i=B$(t);throw yp({source:"doctor-call",event:"error",diagnosisId:Bl.diagnosisId,message:i}),new Error(i)}}window.doctorCall={start:mmA,hangup:DmA};umA();mrA(BmA,{phase:T2(cD),statusText:T2(ED)}).mount("#app");yp({source:"doctor-call",event:"ready"});