633 lines
4.0 MiB
Plaintext
633 lines
4.0 MiB
Plaintext
(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))l(I);new MutationObserver(I=>{for(const h of I)if(h.type==="childList")for(const f of h.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function r(I){const h={};return I.integrity&&(h.integrity=I.integrity),I.referrerPolicy&&(h.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?h.credentials="include":I.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function l(I){if(I.ep)return;I.ep=!0;const h=r(I);fetch(I.href,h)}})();var mg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function QW(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function GU(t){if(t.__esModule)return t;var i=t.default;if(typeof i=="function"){var r=function l(){return this instanceof l?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(l){var I=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(r,l,I.get?I:{enumerable:!0,get:function(){return t[l]}})}),r}var j1={exports:{}},OoA=j1.exports,t8;function PoA(){return t8||(t8=1,function(t,i){(function(r,l){t.exports=l()})(OoA,function(){const r=s=>s===void 0,l=s=>typeof s=="string",I=s=>{var n;return(n=Object.prototype.toString.call(s).match(/^\[object (.*)\]$/))===null||n===void 0?void 0:n[1].toLowerCase()},h=s=>typeof Array.isArray=="function"?Array.isArray(s):I(s)==="array",f=s=>s!==null&&typeof s=="object",w=s=>h(s)||f(s),_=s=>{if(typeof s!="string")return!1;const n=s[0];return!/[^a-zA-Z0-9]/.test(n)},b=s=>{if(typeof s!="object"||s===null)return!1;const n=Object.getPrototypeOf(s);if(n===null)return!0;let g=n;for(;Object.getPrototypeOf(g)!==null;)g=Object.getPrototypeOf(g);return n===g};function U(s=99999999){return Math.round(Math.random()*s)}const j=(s,n,g,u)=>{if(!w(s)||!w(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M<T;M++)if(D=m[M],!(r(n[D])||g&&g.includes(D)))if(w(s[D])&&w(n[D]))E+=j(s[D],n[D],g,u);else{if(u&&u.includes(n[D]))continue;s[D]!==n[D]&&(s[D]=n[D],E+=1)}return E};function IA(s){let n,g,u=s;s.length%8!=0&&(u="0".repeat(8-s.length%8)+s);let E="";for(let m=0,{length:D}=u;m<D;m+=8)n=parseInt(u.slice(m,m+4),2),g=parseInt(u.slice(m+4,m+8),2),E+=base16Map.get(n)+base16Map.get(g);return E}const nA={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},mA=["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 lA;(function(s){s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.NONE=4]="NONE"})(lA||(lA={}));const cA="LiteChat",TA={[lA.DEBUG]:console.debug,[lA.INFO]:console.info,[lA.WARN]:console.warn,[lA.ERROR]:console.error},WA={[lA.INFO]:4,[lA.WARN]:5,[lA.ERROR]:6},Ee=1e3,de=2,Pe=5e3,pe=50,gt={CHINA:"CHINA",OVERSEA:"OVERSEA",SINGAPORE:"SINGAPORE",KOREA:"KOREA",GERMANY:"GERMANY",IND:"IND",JPN:"JPN",USA:"USA",INDONESIA:"INDONESIA",KSA:"KSA"},pt={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 We;(function(s){s[s.CONV_DELETED=1]="CONV_DELETED",s[s.CONV_PINED=2]="CONV_PINED",s[s.CONV_UNPINED=3]="CONV_UNPINED",s[s.CONV_MARK_UPDATED=4]="CONV_MARK_UPDATED",s[s.CONV_GROUP_ADDED=5]="CONV_GROUP_ADDED",s[s.CONV_GROUP_DELETED=6]="CONV_GROUP_DELETED",s[s.CONV_GROUP_UPDATED=7]="CONV_GROUP_UPDATED"})(We||(We={}));var Dt=Object.freeze({__proto__:null,ACCESS_ENVIRONMENT:gt,CONSOLE_METHOD:TA,CloudConfigReportLevelMap:WA,get ConvModifyPushType(){return We},DEFAULT_GLOBAL_MAX_TOTAL_COUNT:pe,DEFAULT_GLOBAL_THROTTLE_TIME:Pe,DEFAULT_SINGLE_MAX_TOTAL_COUNT:de,DEFAULT_SINGLE_THROTTLE_TIME:Ee,ENUM_PLATFORM:nA,HOST_CONFIG:pt,IS_TOPIC_MESSAGE:2,get LogLevel(){return lA},NOT_NEED_CRC_SERVCMD:mA,SDK_NAME:cA});const Kt=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows")&&wx.getSystemInfoSync().uniPlatform===void 0,ut=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||Kt,ge=ut&&typeof wx.createGamePortal=="function",XA=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,_e=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,je=_e&&typeof tt.onShow=="function",Ut=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,gi=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,Fi=typeof jd<"u"&&typeof jd.getSystemInfoSync=="function",To=typeof uni<"u"&&typeof window>"u"&&typeof uni.requireNativePlugin=="function",to=ut&&typeof wx.miniapp=="object",Eo=typeof uni<"u",Vs=_e&&typeof tt.enterChat=="function",ki=ut||XA||_e||Ut||gi||To||Fi,ns=typeof window>"u"&&!ki&&typeof mg<"u"&&mg.NativeScriptGlobals!==void 0,jo=typeof mg<"u"&&(mg.nativeModuleProxy!==void 0||mg.ReactNative!==void 0),$i=typeof wx<"u"&&typeof wx.getAccountInfoSync=="function"&&!!wx.getAccountInfoSync().plugin,Wt=typeof uni<"u"?!ki:typeof window<"u"&&!ki&&!jo,io=XA?qq:_e?tt:Ut?swan:gi?my:ut?wx:To?uni:Fi?jd:{},bi=Wt&&window&&window.navigator&&window.navigator.userAgent||"",vs=/(micromessenger|webbrowser)/i.test(bi),HA=function(){let s="WEB";return vs?s="WEB":XA?s="QQ_MP":_e?s="TT_MP":Ut?s="BAIDU_MP":gi?s="ALI_MP":ut?s=to?"DONUT_NATIVE_APP":"WX_MP":To?s="UNI_NATIVE_APP":ns?s="NS_NATIVE_APP":jo&&(s="RN_NATIVE_APP"),nA[s]}(),le=/iPad/i.test(bi),Ve=/iPhone/i.test(bi)&&!le,Ft=/iPod/i.test(bi),nt=Ve||le||Ft,It=function(){const s=bi.match(/OS (\d+)_/i);return s&&s[1]?s[1]:null}(),Ai=/Android/i.test(bi),ei=function(){const s=bi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!s)return null;const n=s[1]&&parseFloat(s[1]),g=s[2]&&parseFloat(s[2]);return n&&g?parseFloat(`${s[1]}.${s[2]}`):n||null}(),ke=/Firefox/i.test(bi),Ze=/Edge/i.test(bi),vt=!Ze&&/Chrome/i.test(bi),_t=/MSIE/.test(bi)||bi.indexOf("Trident")>-1&&bi.indexOf("rv:11.0")>-1,Oi=function(){const s=/MSIE\s(\d+)\.\d/.exec(bi);let n=s&&parseFloat(s[1]);return!n&&/Trident\/7.0/i.test(bi)&&/rv:11.0/.test(bi)&&(n=11),n}(),po=/Safari/i.test(bi)&&!vt&&!Ai&&!Ze,No=/Windows/i.test(bi),oo=/MAC OS X/i.test(bi),Go=Wt&&typeof Worker<"u"&&!_t,An=Ai||nt,rn=function(){if(typeof window>"u"||window.navigator===void 0)return!1;const{standalone:s}=window.navigator;return!(!nt||s||po)}();function Es(){let s="unknown";if(oo&&(s="mac"),No&&(s="windows"),nt&&(s="ios"),Ai&&(s="android"),ki)try{const{platform:n}=io.getSystemInfoSync();n!==void 0&&(s=n)}catch(n){console.error(n)}return s}const an=typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0&&typeof window>"u";function Do(s,n){var g={};for(var u in s)Object.prototype.hasOwnProperty.call(s,u)&&n.indexOf(u)<0&&(g[u]=s[u]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var E=0;for(u=Object.getOwnPropertySymbols(s);E<u.length;E++)n.indexOf(u[E])<0&&Object.prototype.propertyIsEnumerable.call(s,u[E])&&(g[u[E]]=s[u[E]])}return g}function pA(s,n,g,u){return new(g||(g=Promise))(function(E,m){function D(P){try{T(u.next(P))}catch(W){m(W)}}function M(P){try{T(u.throw(P))}catch(W){m(W)}}function T(P){var W;P.done?E(P.value):(W=P.value,W instanceof g?W:new g(function(iA){iA(W)})).then(D,M)}T((u=u.apply(s,n||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;const Jn=2800,Qr=2801,ds=3e3,zr="application/x-www-form-urlencoded;charset=UTF-8";function Pi(s){return pA(this,arguments,void 0,function*({method:n,url:g,data:u,timeout:E=ds}){return ki?new Promise((m,D)=>{io.request({url:g,data:u,method:n,timeout:E,header:{"content-type":zr},success:M=>m(M.data),fail:()=>D(new Error(`{"message":"Network error","code":${Jn}}`))})}):an?void 0:new Promise((m,D)=>{const M=new XMLHttpRequest,T=setTimeout(()=>{M.abort(),D(new Error(`{"message":"Request timeout","code":${Qr}}`))},E);M.onreadystatechange=function(){if(M.readyState===4)if(clearTimeout(T),M.status===200||M.status===304)try{m(M.responseText?JSON.parse(M.responseText):null)}catch{m(M.responseText)}else D(new Error(`{"message":"Network error","code":${Jn}}`))},M.open(n,g,!0),M.setRequestHeader("Content-type",zr),M.send(u||null)})})}function Rs(s){if(s==null)return!0;if(typeof s=="boolean")return!1;if(typeof s=="number")return s===0;if(typeof s=="string"||typeof s=="function"||Array.isArray(s))return s.length===0;if(s instanceof Error)return s.message==="";if(b(s)){for(const n in s)if(Object.prototype.hasOwnProperty.call(s,n))return!1;return!0}return(Object.prototype.toString.call(s)==="[object Map]"||Object.prototype.toString.call(s)==="[object Set]"||Object.prototype.toString.call(s)==="[object File]")&&s.size===0}function or(s,n){if(s===null||typeof s!="object")return s;const g=n||new WeakMap;if(g.has(s))return g.get(s);if(s instanceof Date)return new Date(s.getTime());if(s instanceof RegExp)return new RegExp(s.source,s.flags);if(s instanceof Map){const m=new Map;return g.set(s,m),s.forEach((D,M)=>{m.set(or(M,g),or(D,g))}),m}if(s instanceof Set){const m=new Set;return g.set(s,m),s.forEach(D=>{m.add(or(D,g))}),m}if(Array.isArray(s)){const m=[];return g.set(s,m),s.forEach(D=>{m.push(or(D,g))}),m}const u=Object.getPrototypeOf(s),E=Object.create(u);return g.set(s,E),[...Object.getOwnPropertyNames(s),...Object.getOwnPropertySymbols(s)].forEach(m=>{if(m==="__ob__"||m==="__v_skip"||m==="__v_isRef"||m==="__v_isReadonly")return;const D=Object.getOwnPropertyDescriptor(s,m);D&&(D.get||D.set?Object.defineProperty(E,m,D):E[m]=or(s[m],g))}),E}function en(s,n,g){const u=new WeakSet,E=(m,D)=>{if(n&&(D=n(m,D)),D===void 0)return"undefined";if(D===null)return null;if(Number.isNaN(D))return"NaN";if(D===1/0)return"Infinity";if(D===-1/0)return"-Infinity";if(typeof D=="function")return`[Function: ${D.name||"anonymous"}]`;if(typeof D=="symbol")return D.toString();if(typeof D=="bigint")return`${D.toString()}n`;if(typeof D=="object"&&D!==null){if(u.has(D))return"[Circular]";u.add(D)}return D instanceof Date?D.toISOString():D instanceof Error?{name:D.name,message:D.message}:D instanceof Map?{dataType:"Map",value:Array.from(D.entries())}:D instanceof Set?{dataType:"Set",value:Array.from(D.values())}:D};try{return JSON.stringify(s,E,g)}catch(m){return console.error("Failed to stringify:",m),""}}function wn(){let s,n;return{promise:new Promise((g,u)=>{s=g,n=u}),resolve:s,reject:n}}var Ht,yg=Object.freeze({__proto__:null,ANDROID_VERSION:ei,IE_VERSION:Oi,IN_ALIPAY_MINI_APP:gi,IN_BAIDU_MINI_APP:Ut,IN_BROWSER:Wt,IN_DONUT_NATIVE_APP:to,IN_FEISHU_MINI_APP:Vs,IN_JD_MINI_APP:Fi,IN_MINI_APP:ki,IN_NODE:an,IN_NS_NATIVE_APP:ns,IN_QQ_MINI_APP:XA,IN_RN_APP:jo,IN_TT_MINI_APP:_e,IN_TT_MINI_GAME:je,IN_UNI_APP:Eo,IN_UNI_NATIVE_APP:To,IN_WX_MINI_APP:ut,IN_WX_MINI_APP_DESK:Kt,IN_WX_MINI_GAME:ge,IN_WX_MINI_PLUGIN:$i,IOS_VERSION:It,IS_ANDROID:Ai,IS_CHROME:vt,IS_EDGE:Ze,IS_FIREFOX:ke,IS_IE:_t,IS_IOS:nt,IS_IPAD:le,IS_IPHONE:Ve,IS_IPOD:Ft,IS_MAC:oo,IS_SAFARI:po,IS_WECHAT:vs,IS_WIN:No,IS_WORKER_AVAILABLE:Go,MINI_APP_NAMESPACE:io,USER_AGENT:bi,base16EncodeBinaryString:IA,deepCopyWithMethods:or,deepMerge:j,generatePromise:wn,getPlatformType:Es,getType:I,httpRequest:Pi,isArray:h,isArrayOrObject:w,isEmpty:Rs,isH5:An,isIOSWebView:rn,isNumber:s=>s!==null&&(typeof s=="number"&&!Number.isNaN(s-0)||typeof s=="object"&&s.constructor===Number),isObject:f,isPlainObject:b,isString:l,isUndefined:r,isUniIOSApp:function(){return To&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios"},isValidRequestKey:_,platform:HA,randomInt:U,randomString:function(){const s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let g=32;g>0;--g)n+=s[Math.floor(62*Math.random())];return n},safeStringify:en});class On{constructor(){this.listeners={}}on(n,g,u){this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push({fn:g,context:u})}off(n,g,u){var E;g&&(this.listeners[n]=(E=this.listeners[n])===null||E===void 0?void 0:E.filter(m=>{const D=m.fn===g,M=!u||m.context===u;return!(D&&M)}))}emit(n,...g){const u=this.listeners[n];u&&u.forEach(E=>{const{fn:m,context:D}=E;try{m.apply(D,g)}catch(M){console.warn(`Error in event handler for ${n} error: ${en(M)}`)}})}once(n,g,u){const E=(...m)=>{g.apply(u,m),this.off(n,E)};this.on(n,E)}}(function(s){s.BUSINESS_COMMAND="business_command",s.C2C_REALTIME_MESSAGE="c2c_realtime_message",s.C2C_MESSAGE_MODIFIED="c2c_message_modified",s.C2C_REVOKED_MESSAGE="c2c_message_revoked",s.GROUP_REALTIME_MESSAGE="group_realtime_message",s.GROUP_MESSAGE_MODIFIED="group_message_modified",s.GROUP_MESSAGE_REVOKED="group_message_revoked",s.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",s.MESSAGE_REACTION_UPDATED="message_reaction_updated",s.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",s.GROUP_AT_TIPS="group_at_tips",s.USER_STATUS_UPDATE="user_status_update",s.FRIEND_LIST_MODIFIED="friend_list_modified",s.PROFILE_MODIFIED="profile_modified",s.CONV_MODIFIED="conversation_modified",s.GROUP_TIPS_NOTIFICATION="group_tips_notification",s.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",s.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",s.GROUP_SYSTEM_NOTIFICATION="group_system_notification",s.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",s.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",s.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",s.FOLLOW_LIST_UPDATED="follow_list_updated",s.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",s.ALL_MESSAGE_READ="all_message_read",s.CONVERSATION_MARK_UPDATED="conversation_mark_updated",s.CONVERSATION_GROUP_ADD="conversation_group_add",s.CONVERSATION_GROUP_DELETED="conversation_group_deleted",s.CONVERSATION_GROUP_UPDATED="conversation_group_updated",s.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",s.TOPIC_AT_TIPS="topic_at_tips",s.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",s.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",s.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",s.TOPIC_LATEST_MESSAGE="topic_latest_message",s.GROUP_MESSAGE_PINNED="group_message_pinned"})(Ht||(Ht={}));const Gn=[16,17];function Js(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{var E;u.GroupInfo.MillionGroupFlag===2?g.push(Ht.TOPIC_TIPS_NOTIFICATION):Gn.includes((E=u?.MsgBody)===null||E===void 0?void 0:E.OpType)?g.push(Ht.GROUP_MESSAGE_PINNED):g.push(Ht.GROUP_TIPS_NOTIFICATION)}),g}const pr=[{conditions:[{type:"event",value:100}],subType:Ht.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Ht.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Ht.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Ht.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Ht.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Ht.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Ht.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Ht.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Ht.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Ht.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(s){var n;const g=[];return(n=s?.C2cNotifyMsgArray)===null||n===void 0||n.forEach(u=>{u.WithdrawC2cMsgNotify&&g.push(Ht.C2C_REVOKED_MESSAGE),u.C2cReadedReceipt&&g.push(Ht.C2C_MESSAGE_PEER_READ),u.ReadC2cMsgNotify&&g.push(Ht.C2C_MESSAGE_READ_SYNC),u.MuteNotificationsSync&&g.push(Ht.C2C_REMIND_TYPE_SYNC)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{Array.isArray(u.MsgBody.GroupWithdrawInfoArray)?g.push(Ht.GROUP_MESSAGE_REVOKED):Array.isArray(u.MsgBody.GroupMsgReceiptList)?g.push(Ht.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(u.MsgBody.GroupReadInfoArray)?u.MsgBody.GroupReadInfoArray[0].TopicId?g.push(Ht.TOPIC_MESSAGE_READ_SYNC):g.push(Ht.GROUP_MESSAGE_READ_SYNC):u.GroupInfo.MillionGroupFlag===2?g.push(Ht.TOPIC_SYSTEM_NOTIFICATION):g.push(Ht.GROUP_SYSTEM_NOTIFICATION)}),g}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(s){var n;const g=[];return(n=s?.GroupTips)===null||n===void 0||n.forEach(u=>{const{GroupAtTips:{TopicId:E}}=u;E?g.push(Ht.TOPIC_AT_TIPS):g.push(Ht.GROUP_AT_TIPS)}),g}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(s){var n;const g=[];return(n=s?.RecentContactMod)===null||n===void 0||n.forEach(u=>{switch(u.PushType){case We.CONV_MARK_UPDATED:g.push(Ht.CONVERSATION_MARK_UPDATED);break;case We.CONV_GROUP_ADDED:g.push(Ht.CONVERSATION_GROUP_ADD);break;case We.CONV_GROUP_DELETED:g.push(Ht.CONVERSATION_GROUP_DELETED);break;case We.CONV_GROUP_UPDATED:g.push(Ht.CONVERSATION_GROUP_UPDATED);break;default:g.push(Ht.CONV_MODIFIED)}}),g}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Ht.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Ht.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Ht.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Ht.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Ht.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Ht.ALL_MESSAGE_READ}];var Pn;function mr(s){var n;const g=Array.isArray((n=s?.body)===null||n===void 0?void 0:n.EventArray)?s.body.EventArray:[],u=[];return g.forEach(E=>{E.Flag=s.body.Flag;const m=pr.find(M=>M.conditions.every(T=>{switch(T.type){case"event":return E.Event===T.value;case"hasKey":return Object.prototype.hasOwnProperty.call(E,T.value);default:return!1}}));if(!m)return null;let D=[];typeof m.subTypeParser=="function"?D=m.subTypeParser(E):m.subType&&(D=m.subType),Array.isArray(D)?D.forEach(M=>{u.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${M}`,data:E})}):u.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${D}`,data:E})}),u}(function(s){s.SERVER_PUSH_MESSAGE="im_open_push.msg_push",s.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",s.ERROR="error"})(Pn||(Pn={}));const mo={[Pn.SERVER_PUSH_MESSAGE]:mr,[Pn.SERVER_PUSH_MESSAGE_MULTIPLE]:mr,[Pn.ERROR]:function(s){const{errorCode:n}=s;return[{type:`error:${n}`,data:s}]}},gn=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new On,this._innerEventEmitter=new On,this.InnerEventSubType=Ht}subscribeInnerEvent(s,n,g,u,E){var m;let D,M,T,P;["string","number"].includes(typeof n)?(T=`${s}:${n}`,P=g,M=u,D=E):(T=s,P=n,M=g,D=typeof u=="function"?u:void 0),D?this._subscribeWithFilter(T,P,M,D):(m=this._innerEventEmitter)===null||m===void 0||m.on(T,P,M)}emitInnerEvent(s,n){var g,u;if((g=this._innerEventEmitter)===null||g===void 0||g.emit(s,n),Object.keys(mo).includes(s)){const E=(u=mo[s])===null||u===void 0?void 0:u.call(mo,n);E?.forEach(m=>{var D;m&&((D=this._innerEventEmitter)===null||D===void 0||D.emit(m.type,m.data))})}}subscribeOuterEvent(s,n,g){var u;(u=this._outerEventEmitter)===null||u===void 0||u.on(s,n,g)}unSubscribeOuterEvent(s,n,g){var u;(u=this._outerEventEmitter)===null||u===void 0||u.off(s,n,g)}unSubscribeInnerEvent(s,n,g,u){if(["string","number"].includes(typeof n)){const E=g,m=`${s}:${n}`;this._unsubscribeEvent(m,E,u)}else{const E=n;this._unsubscribeEvent(s,E,g)}}emitOuterEvent(s,n){var g;(g=this._outerEventEmitter)===null||g===void 0||g.emit(s,n)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}_subscribeWithFilter(s,n,g,u){var E;const m=D=>{u.call(g,D)&&n.call(g,D)};this._filteredCallbackMap.has(s)||this._filteredCallbackMap.set(s,[]),this._filteredCallbackMap.get(s).push({originalCallback:n,filteredCallback:m,filter:u,context:g}),(E=this._innerEventEmitter)===null||E===void 0||E.on(s,m,g)}_unsubscribeEvent(s,n,g){var u,E;const m=this._filteredCallbackMap.get(s);if(m){const D=m.findIndex(M=>M.originalCallback===n&&M.context===g);if(D!==-1){const{filteredCallback:M}=m[D];return(u=this._innerEventEmitter)===null||u===void 0||u.off(s,M,g),m.splice(D,1),void(m.length===0&&this._filteredCallbackMap.delete(s))}}(E=this._innerEventEmitter)===null||E===void 0||E.off(s,n,g)}};class Sl{constructor(){this._socket=null}connectSocket(n){return this._socket=new WebSocket(n),this._socket}send(n){var g,u;try{(g=this._socket)===null||g===void 0||g.send(n)}catch(E){(u=this._onSendFail)===null||u===void 0||u.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=g,this._socket.onmessage=u,this._socket.onclose=E,this._socket.onerror=m,this._onSendFail=D)}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 cn{constructor(n){this._onError=n.onError}connectSocket(n){const g=this;return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},complete:()=>{},fail:u=>g._onError(u)}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(u),this._socket.onError(m),this._onSendFail=D)}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 fr="CONNECT",Ls="SEND",Jc="DISCONNECT",ms="OPEN",as="MESSAGE",Mu="CLOSE",Wa="ERROR",Cs="SEND_FAIL";class sg{constructor(){this._worker=null,this._blobUrl=null}connectSocket(n){const g=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(g)),this._worker.postMessage({type:fr,url:n})}send(n){var g,u;try{(g=this._worker)===null||g===void 0||g.postMessage({type:Ls,data:n})}catch(E){(u=this._onSendFail)===null||u===void 0||u.call(this,E)}}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;if(this._worker){const M={[ms]:g,[as]:u,[Mu]:E,[Wa]:m,[Cs]:D};this._onSendFail=D,this._worker.onmessage=T=>{var P;const{type:W}=T?.data||{};typeof M[W]=="function"&&((P=M[W])===null||P===void 0||P.call(M,T?.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Jc}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}class JI{}var $o,Xi=new class{constructor(){this._store=new Map}get(s){return this._store.get(s)}getStorage(s){return ki?gi?my.getStorageSync({key:s}).data:io.getStorageSync(s):this._canUseLocalStorage()?localStorage.getItem(s):{}}set(s,n){const g=this._store.get(s)||{};n instanceof Map?this._store.set(s,n):this._store.set(s,Object.assign(Object.assign({},g),n))}setStorage(s,n){ki?gi?my.setStorageSync({key:s,data:JSON.stringify(n)}):io.setStorageSync(s,JSON.stringify(n)):this._canUseLocalStorage()&&localStorage.setItem(s,JSON.stringify(n))}clear(s){typeof s=="string"?this._store.set(s,{}):this._store.clear()}clearLocalStorage(s){this._canUseLocalStorage()&&(typeof s=="string"?localStorage.setItem(s,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return typeof window<"u"&&navigator&&navigator.cookieEnabled&&localStorage}};class pc{connectSocket(n){return this._socket=io.connectSocket({url:n,header:{"content-type":"application/json"},multiple:!0,complete:()=>{}}),this._socket}send(n){var g;(g=this._socket)===null||g===void 0||g.send({data:n,fail:this._onSendFail})}bindSocketHandlers(n){const{onOpen:g,onMessage:u,onClose:E,onError:m,onSendFail:D}=n;this._socket&&(this._socket.onClose(E),this._socket.onOpen(g),this._socket.onMessage(M=>u(M?.data)),this._socket.onError(()=>m),this._onSendFail=D)}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(s){s[s.CONNECTED=0]="CONNECTED",s[s.CONNECTING=1]="CONNECTING",s[s.DISCONNECTED=2]="DISCONNECTED"})($o||($o={}));class ng{constructor(n){this._url="",this._readyState=$o.DISCONNECTED,this._url=n,this._id=U(),this._emitter=new On,gi?this._socket=new pc:ut||To||_e||XA||Fi||Ut?this._socket=new cn({onError:this._onError.bind(this)}):an?this._socket=new JI:this._canUseWebWorker()?this._socket=new sg:this._socket=new Sl,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this._readyState=$o.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(n){this._readyState!==$o.CONNECTED?this.reconnect():this._socket.send(n)}reconnect(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(n,g,u){this._emitter.on(n,g,u)}off(n,g,u){this._emitter.off(n,g,u)}isConnected(){return this._readyState===$o.CONNECTED}disconnect(){this._readyState=$o.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(n){this._readyState===$o.CONNECTING&&(this._readyState=$o.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:n}))}_onMessage(n){this._emitter.emit("message",n)}_onClose(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:n})}_onError(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:n})}_onSendFail(n){this._readyState=$o.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:n})}_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 n=Xi.get("cloudConfig")||{};return(r(n.isWorkerEnabled)||n.isWorkerEnabled==="1")&&Go}}const Dg={[gt.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[gt.KOREA]:[[3e7,4e7],[173e7,174e7]],[gt.GERMANY]:[[4e7,5e7],[174e7,175e7]],[gt.IND]:[[5e7,6e7],[175e7,176e7]],[gt.JPN]:[[6e7,7e7],[176e7,177e7]],[gt.USA]:[[7e7,8e7],[177e7,178e7]],[gt.INDONESIA]:[[8e7,9e7],[178e7,179e7]],[gt.KSA]:[[9e7,1e8],[179e7,18e8]]};function ua(s){var n;if(!((n=Xi.get("instance"))===null||n===void 0)&&n.oversea)return gt.OVERSEA;for(const g of Object.keys(Dg))for(const[u,E]of Dg[g])if(s>=u&&s<E)return g;return gt.CHINA}var bo,Zr="1.6.18";(function(s){s.INITIAL="INITIAL",s.DEFAULT="DEFAULT",s.BACKUP="BACKUP",s.BACKUP_WEB_ONLY="BACKUP_WEB_ONLY",s.BACKUP_CN="BACKUP_CN",s.ANYCAST="ANYCAST",s.IPV6="IPV6"})(bo||(bo={}));let _o=bo.INITIAL;function Hc(){const s=Math.random();return s===0?Hc():s}function Hn(s,n){const{isBinary:g=!1}=n||{},u=Xi.get("instance"),{sdkAppId:E,instanceId:m}=u,D=Hc(),M=Es(),T=function(){const iA=Es();let EA=-1;return iA==="ios"?EA=It||-1:iA==="android"&&(EA=ei||-1),EA}(),P=(W={sdkappid:E,instanceid:m,random:D,platform:HA,host:M,version:T,sdkversion:Zr},Object.keys(W).map(iA=>`${iA}=${W[iA]}`).join("&"));var W;return g?`${s}/binfo?${P}&compress=gzip`:`${s}/info?${P}`}function Hs(s){const n=Xi.get("instance"),{sdkAppId:g,testEnv:u,proxyServer:E}=n,m=ua(g);if(u)return Hn(pt.TEST[m].DEFAULT,{isBinary:s});if(!Rs(E))return Hn(E,{isBinary:s});const D=pt.PRODUCTION[m],M=Wt&&D.ANYCAST,T=Wt,P=!!D.BACKUP_CN;return Hn({[bo.INITIAL]:()=>(_o=bo.DEFAULT,D.DEFAULT),[bo.DEFAULT]:()=>(_o=bo.IPV6,D.IPV6),[bo.IPV6]:()=>(_o=bo.BACKUP,D.BACKUP),[bo.BACKUP]:()=>T?(_o=bo.BACKUP_WEB_ONLY,function(W){const iA=Math.floor(10001*Math.random())+1e4;return W.replace("*",String(iA))}(D.BACKUP_WEB_ONLY)):P?(_o=bo.BACKUP_CN,D.BACKUP_CN):M?(_o=bo.ANYCAST,D.ANYCAST):D.DEFAULT,[bo.BACKUP_WEB_ONLY]:()=>P?(_o=bo.BACKUP_CN,D.BACKUP_CN):M?(_o=bo.ANYCAST,D.ANYCAST):D.DEFAULT,[bo.BACKUP_CN]:()=>(_o=M?bo.ANYCAST:bo.DEFAULT,D[_o]),[bo.ANYCAST]:()=>(_o=bo.DEFAULT,D.ANYCAST="",D.DEFAULT)}[_o](),{isBinary:s})}var Sg=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(s,n){const g=Date.now(),u=g-s;this._timeOffsetWithServer=n+u-g}};const mc=16;var fn=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(s){const{id:n}=s;this.removeTask(n),this._tasks.push(s),this._taskMap.set(n,s),this._sort(),this._scheduleNextTask()}_createTask(s){const{id:n,callback:g,context:u,isOnce:E=!1,intervalMs:m=mc}=s,D=Math.max(m,mc);return{id:n,nextExecuteTime:Date.now()+D,intervalMs:m,callback:g,context:u,isOnce:E}}addTask(s){const n=this._createTask(s);this._addTaskToScheduler(n)}addOnceTask(s){const n=this._createTask(Object.assign(Object.assign({},s),{isOnce:!0}));this._addTaskToScheduler(n)}removeTask(s){const n=this._tasks.findIndex(g=>g.id===s);n>-1&&(this._tasks.splice(n,1),this._taskMap.delete(s),this._scheduleNextTask())}updateTaskInterval(s,n){const g=this._taskMap.get(s);g&&(g.intervalMs=n,g.nextExecuteTime=Date.now()+n,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((s,n)=>s.nextExecuteTime-n.nextExecuteTime)}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const s=this._tasks[0];if(s){const n=Math.max(0,s.nextExecuteTime-Date.now());this._timer=setTimeout(()=>this._execute(),n)}}_execute(){const s=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=s;){const n=this._tasks[0];try{n.context?n.callback.call(n.context):n.callback(),n.isOnce?this.removeTask(n.id):(n.nextExecuteTime=s+n.intervalMs,this._sort())}catch(g){console.warn(`Task ${n.id} execution failed:`,g),n.isOnce&&this.removeTask(n.id)}}this._scheduleNextTask()}};function Ga(s){const n=[];for(let g=0;g<s.length;g+=1){const u=s.charCodeAt(g);if(u>=55296&&u<=56319){const E=s.charCodeAt(++g)-56320+(u-55296<<10)+65536;n.push(240|E>>18,128|E>>12&63,128|E>>6&63,128|63&E)}else u<=127?n.push(u):u<=2047?n.push(192|u>>6,128|63&u):n.push(224|u>>12,128|u>>6&63,128|63&u)}return new Uint8Array(n)}function In(s){const n=Array.isArray(s)?[]:Object.create(null);for(const g in s)Object.prototype.hasOwnProperty.call(s,g)&&_(g)&&s[g]!=null&&(s[g]===null||typeof s[g]!="object"?n[g]=s[g]:n[g]=In(s[g]));return n}function fs(s,n){if(mA.includes(s))return 0;const g=Ga(JSON.stringify(n));let u=4294967295;const{length:E}=g;for(let m=0;m<E;m++){u^=g[m];for(let D=0;D<8;D++)1&~u?u>>>=1:u=u>>>1^3988292384}return(4294967295^u)>>>0}function Ea(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",a2:D.a2Key||void 0,tinyid:D.tinyID||void 0,status_instid:D.statusInstanceId||0,sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.a2Key?void 0:D.userId,usersig:D.a2Key?void 0:D.userSig,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,tjgID:"",seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}}function yn(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}}let ba=U();function Sa(){return ba=ba<2415919103?ba+1:U(),ba}function $(){var s;const n=Xi.get("login")||{},g=Xi.get("instance")||{};return{sdk_type:30,sdk_app_id:g.sdkAppId,sdk_version:"1.6.18",tiny_id:Number(n.tinyID),user_id:n.userId||((s=Xi.get("webPush"))===null||s===void 0?void 0:s.userId),platform:HA,instance_id:g.instanceId,trace_id:new Date().getTime()}}var K,vA=Object.freeze({__proto__:null,calcBodyCRC:fs,filterProtocolDataInvalidFields:In,generateCosSpecifiedData:function(s){const{servcmd:n,data:g}=s,u=function(m){const D=Xi.get("login")||{},M=Xi.get("instance")||{};return{servcmd:m,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:M.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:D.userId,usersig:D.userSig,status_instid:D.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:M.applicationID||0,seq:Sa(),cs:0}}(n),E=In(g);return u.cs=fs(n,E),{head:u,body:E}},generateProtocolData:Ea,generateSSOLogProtocolData:yn,generateSequence:Sa,getCommonHead:$,getHostSite:ua,taskScheduler:fn,timeManager:Sg});(function(s){s[s.info=4]="info",s[s.warning=5]="warning",s[s.error=6]="error"})(K||(K={}));const qA={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 ee{constructor(n){this.level=K.info,this._canSendLog=!0,this._logCreatedAt=Sg.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:g,eventType:u=0,message:E="",costTime:m=0,error:D,uiPlatform:M,moreMessage:T="",code:P=0,startTime:W=0}=n||{};this.eventType=u,this.method=g,this.message=E,this.costTime=m,this.moreMessage=`${T} startTime:${W}`,this.code=P,D&&this.setError(D),Rs(M)||(this.uiPlatform=M)}setMoreMessage(n){this.moreMessage=`${this.moreMessage} ${n}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Sg.getTimeOffsetWithServer()}end(n=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=Sg.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),n&&this._ssoLogModule.uploadSSOLogData())}setError(n){var g;return n instanceof Error?this._canSendLog?(!((g=Xi.get("netWorkMonitor"))===null||g===void 0)&&g.isNetworkOnline&&(n.errorCode&&(this.code=n.errorCode),n.errorMessage&&this.setMoreMessage(n.errorMessage)),this.level=K.error,this):this:(console.warn("SSOLogData.setError value not instanceof Error, please check!"),this)}setLogInfo(n){return Object.keys(n).forEach(g=>{Object.keys(qA).includes(g)&&(this[g]=n[g])}),this}setSSOLogModule(n){this._ssoLogModule=n}_convertSSOLogDataKeyToServe(){const n={};return Object.keys(this).forEach(g=>{const u=g;qA[u]&&(n[qA[u]]=this[u])}),n}_getUiPlatform(){var n;const g=(n=Xi.get("instance"))===null||n===void 0?void 0:n.scene;if(typeof g=="string"){const u=Number(g);return isNaN(u)?void 0:u}}_getSDKEdition(){var n;return(n=Xi.get("instance"))===null||n===void 0?void 0:n.sdkEdition}}var fe;(function(s){s.RECONNECTED="reconnected",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.SOCKET_DISCONNECTED="socket_disconnected"})(fe||(fe={}));var xe=fe;const Oe=20,rt=6e4,dt=[4,5,6],Mt="report-logger";var xt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=lA.DEBUG,this._throttleConfig={global:{throttleTime:Pe,maxCount:pe},single:{throttleTime:Ee,maxCount:de}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,gn.subscribeInnerEvent(xe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),fn.addTask({id:Mt,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(s){const{evt_rpt_threshold:n=Oe,evt_rpt_waiting:g=rt,evt_rpt_level:u=dt,evt_rpt_sdkappid_bl:E="",evt_rpt_tinyid_wl:m="",evt_rpt_global_throttle_time:D=Pe,evt_rpt_global_throttle_count:M=pe,evt_rpt_single_throttle_time:T=Ee,evt_rpt_single_throttle_count:P=de}=s||{};this._sdkAppIdBlackList=E.split(",").map(W=>Number(W)),this._waitingTime=Number(g),this._minThreshold=n,this._reportLevel=u,this._tinyIdWhiteList=m.split(","),this._throttleConfig={global:{throttleTime:D,maxCount:M},single:{throttleTime:T,maxCount:P}}}createSSOLogData(s){const n=new ee(s);return n.setSSOLogModule(this),this._ssoLogMap.set(s.method,n),n}getSSOLogData(s){return this._ssoLogMap.get(s)||{}}pushToLogQueue(s){s&&(this._logQueue.push(s),this._shouldUploadImmediately()&&this.uploadSSOLogData())}setLogLevel(s){[lA.DEBUG,lA.ERROR,lA.INFO,lA.NONE,lA.WARN].includes(s)&&(this._logLevel=s)}debug(s,n="",g){this._log(lA.DEBUG,s,n,g)}info(s,n="",g){this._log(lA.INFO,s,n,g)}warn(s,n="",g){this._log(lA.WARN,s,n,g)}error(s,n="",g){this._log(lA.ERROR,s,n,g)}_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 pA(this,void 0,void 0,function*(){if(this._logQueue.length===0)return;const s=this._logQueue.slice();this._logQueue=[];try{const n=this._filterLogs(s);if(n.length===0)return void(this._lastReportAt=Date.now());const g={Header:$(),Event:n};Rs(g.Header.user_id)||(yield function(u){const E="imopenstat.tim_web_report_v2",m=yn({servcmd:E,data:u}),D=`${m.head.seq}${E}`;return De.sendPacket(m,{requestId:D})}(g))}catch(n){this._requeueFailedLogs(s),this.debug("uploadSSOLogData",en(n))}finally{this._lastReportAt=Date.now()}})}_requeueFailedLogs(s){this._logQueue=s.concat(this._logQueue);const n=this._logQueue.length-200;n>0&&(this._logQueue.splice(0,n),this.debug("uploadSSOLogData",`log queue overflow, dropped ${n} oldest logs`))}_savePlatFormInfo(){var s,n;if(ut){const g=(n=(s=wx.getAccountInfoSync)===null||s===void 0?void 0:s.call(wx))===null||n===void 0?void 0:n.miniProgram;if(g){const{appId:u,envVersion:E}=g;Xi.set("instance",{appId:u,envVersion:E})}}else Wt&&Xi.set("instance",{href:window.location.href})}_filterLogs(s){const{tinyID:n}=Xi.get("login")||{},{sdkAppId:g}=Xi.get("instance")||{};return this._sdkAppIdBlackList.includes(g)&&!this._tinyIdWhiteList.includes(n)?[]:s.filter(u=>this._reportLevel.includes(u.level))}_checkThrottle(s){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(s)}_checkGlobalThrottle(){const s=Date.now();if(s-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=s;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(s){const n=Date.now(),g=this._singleThrottleMap.get(s);return g?n-g.startTime>=this._throttleConfig.single.throttleTime?(g.count=1,g.startTime=n,!1):g.count>=this._throttleConfig.single.maxCount||(g.count++,!1):(this._singleThrottleMap.set(s,{count:1,startTime:n}),!1)}_shouldLog(s){return s>=this._logLevel&&this._logLevel!==lA.NONE}_shouldReport(s){return this._reportLevel.includes(WA[s])}_formatLog(s,n,g,u){const E=new Date,m=`${E.getHours()}:${E.getMinutes()}:${E.getSeconds()}:${E.getMilliseconds()}`,D=`<${lA[s]}>`;return _t||ki?[`${cA} [${m}] ${D} [${n}] ${g}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",cA,"",`[${m}] ${D} [${n}] ${g} params: ${en(u)}`]}_log(s,n,g,u){if(this._shouldLog(s)){const E=this._formatLog(s,n,g,u);TA[s].apply(console,E)}if(this._shouldReport(s)){const E=this._getThrottleKey(n,g,u);this._checkThrottle(E)||this.createSSOLogData(Object.assign(Object.assign({message:g},u),{method:n})).end()}}_getThrottleKey(s,n,g){const u=`${s}${n}${en(Object.assign(Object.assign({},g),{costTime:""}))}`,E=Ga(JSON.stringify(u));let m=4294967295;const{length:D}=E;for(let M=0;M<D;M++){m^=E[M];for(let T=0;T<8;T++)1&~m?m>>>=1:m=m>>>1^3988292384}return`${(4294967295^m)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),fn.removeTask(Mt),gn.unSubscribeInnerEvent(xe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._logQueue=[],this._logLevel=lA.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const Ii=15e3,ct="Channel",Pt="channel_schedule_task",Ji="channel_reconnect_task",Ki="connected",qs="connecting",Mi="disconnected",zo=1e3,Mg="network_status_change",sr="activity_status_change",yr="send_fail",xn="reconnect_failed",Ml="socket_error",Ks="socket_close";function aI(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function Wg(s){return Wg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Wg(s)}function fc(s){throw new Error('Could not dynamically require "'+s+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var vu,Ma={exports:{}},vl=(vu||(vu=1,function(s){s.exports=function n(g,u,E){function m(T,P){if(!u[T]){if(!g[T]){if(!P&&fc)return fc(T);if(D)return D(T,!0);var W=new Error("Cannot find module '"+T+"'");throw W.code="MODULE_NOT_FOUND",W}var iA=u[T]={exports:{}};g[T][0].call(iA.exports,function(EA){return m(g[T][1][EA]||EA)},iA,iA.exports,n,g,u,E)}return u[T].exports}for(var D=fc,M=0;M<E.length;M++)m(E[M]);return m}({1:[function(n,g,u){var E=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";u.assign=function(M){for(var T,P,W=Array.prototype.slice.call(arguments,1);W.length;){var iA=W.shift();if(iA){if(Wg(iA)!="object")throw new TypeError(iA+"must be non-object");for(var EA in iA)T=iA,P=EA,Object.prototype.hasOwnProperty.call(T,P)&&(M[EA]=iA[EA])}}return M},u.shrinkBuf=function(M,T){return M.length===T?M:M.subarray?M.subarray(0,T):(M.length=T,M)};var m={arraySet:function(M,T,P,W,iA){if(T.subarray&&M.subarray)M.set(T.subarray(P,P+W),iA);else for(var EA=0;EA<W;EA++)M[iA+EA]=T[P+EA]},flattenChunks:function(M){var T,P,W,iA,EA,RA;for(T=W=0,P=M.length;T<P;T++)W+=M[T].length;for(RA=new Uint8Array(W),T=iA=0,P=M.length;T<P;T++)EA=M[T],RA.set(EA,iA),iA+=EA.length;return RA}},D={arraySet:function(M,T,P,W,iA){for(var EA=0;EA<W;EA++)M[iA+EA]=T[P+EA]},flattenChunks:function(M){return[].concat.apply([],M)}};u.setTyped=function(M){M?(u.Buf8=Uint8Array,u.Buf16=Uint16Array,u.Buf32=Int32Array,u.assign(u,m)):(u.Buf8=Array,u.Buf16=Array,u.Buf32=Array,u.assign(u,D))},u.setTyped(E)},{}],2:[function(n,g,u){var E=n("./common"),m=!0,D=!0;try{String.fromCharCode.apply(null,[0])}catch{m=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{D=!1}for(var M=new E.Buf8(256),T=0;T<256;T++)M[T]=252<=T?6:248<=T?5:240<=T?4:224<=T?3:192<=T?2:1;function P(W,iA){if(iA<65534&&(W.subarray&&D||!W.subarray&&m))return String.fromCharCode.apply(null,E.shrinkBuf(W,iA));for(var EA="",RA=0;RA<iA;RA++)EA+=String.fromCharCode(W[RA]);return EA}M[254]=M[254]=1,u.string2buf=function(W){var iA,EA,RA,kA,xA,LA=W.length,SA=0;for(kA=0;kA<LA;kA++)(64512&(EA=W.charCodeAt(kA)))==55296&&kA+1<LA&&(64512&(RA=W.charCodeAt(kA+1)))==56320&&(EA=65536+(EA-55296<<10)+(RA-56320),kA++),SA+=EA<128?1:EA<2048?2:EA<65536?3:4;for(iA=new E.Buf8(SA),kA=xA=0;xA<SA;kA++)(64512&(EA=W.charCodeAt(kA)))==55296&&kA+1<LA&&(64512&(RA=W.charCodeAt(kA+1)))==56320&&(EA=65536+(EA-55296<<10)+(RA-56320),kA++),EA<128?iA[xA++]=EA:(EA<2048?iA[xA++]=192|EA>>>6:(EA<65536?iA[xA++]=224|EA>>>12:(iA[xA++]=240|EA>>>18,iA[xA++]=128|EA>>>12&63),iA[xA++]=128|EA>>>6&63),iA[xA++]=128|63&EA);return iA},u.buf2binstring=function(W){return P(W,W.length)},u.binstring2buf=function(W){for(var iA=new E.Buf8(W.length),EA=0,RA=iA.length;EA<RA;EA++)iA[EA]=W.charCodeAt(EA);return iA},u.buf2string=function(W,iA){var EA,RA,kA,xA,LA=iA||W.length,SA=new Array(2*LA);for(EA=RA=0;EA<LA;)if((kA=W[EA++])<128)SA[RA++]=kA;else if(4<(xA=M[kA]))SA[RA++]=65533,EA+=xA-1;else{for(kA&=xA===2?31:xA===3?15:7;1<xA&&EA<LA;)kA=kA<<6|63&W[EA++],xA--;1<xA?SA[RA++]=65533:kA<65536?SA[RA++]=kA:(kA-=65536,SA[RA++]=55296|kA>>10&1023,SA[RA++]=56320|1023&kA)}return P(SA,RA)},u.utf8border=function(W,iA){var EA;for((iA=iA||W.length)>W.length&&(iA=W.length),EA=iA-1;0<=EA&&(192&W[EA])==128;)EA--;return EA<0||EA===0?iA:EA+M[W[EA]]>iA?EA:iA}},{"./common":1}],3:[function(n,g,u){g.exports=function(E,m,D,M){for(var T=65535&E,P=E>>>16&65535,W=0;D!==0;){for(D-=W=2e3<D?2e3:D;P=P+(T=T+m[M++]|0)|0,--W;);T%=65521,P%=65521}return T|P<<16}},{}],4:[function(n,g,u){g.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(n,g,u){var E=function(){for(var m,D=[],M=0;M<256;M++){m=M;for(var T=0;T<8;T++)m=1&m?3988292384^m>>>1:m>>>1;D[M]=m}return D}();g.exports=function(m,D,M,T){var P=E,W=T+M;m^=-1;for(var iA=T;iA<W;iA++)m=m>>>8^P[255&(m^D[iA])];return-1^m}},{}],6:[function(n,g,u){g.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(n,g,u){g.exports=function(E,m){var D,M,T,P,W,iA,EA,RA,kA,xA,LA,SA,OA,JA,ae,re,_i,Ti,Lt,Ni,cs,Me,mt,UA,si;D=E.state,M=E.next_in,UA=E.input,T=M+(E.avail_in-5),P=E.next_out,si=E.output,W=P-(m-E.avail_out),iA=P+(E.avail_out-257),EA=D.dmax,RA=D.wsize,kA=D.whave,xA=D.wnext,LA=D.window,SA=D.hold,OA=D.bits,JA=D.lencode,ae=D.distcode,re=(1<<D.lenbits)-1,_i=(1<<D.distbits)-1;A:do{OA<15&&(SA+=UA[M++]<<OA,OA+=8,SA+=UA[M++]<<OA,OA+=8),Ti=JA[SA&re];e:for(;;){if(SA>>>=Lt=Ti>>>24,OA-=Lt,(Lt=Ti>>>16&255)==0)si[P++]=65535&Ti;else{if(!(16&Lt)){if(!(64&Lt)){Ti=JA[(65535&Ti)+(SA&(1<<Lt)-1)];continue e}if(32&Lt){D.mode=12;break A}E.msg="invalid literal/length code",D.mode=30;break A}Ni=65535&Ti,(Lt&=15)&&(OA<Lt&&(SA+=UA[M++]<<OA,OA+=8),Ni+=SA&(1<<Lt)-1,SA>>>=Lt,OA-=Lt),OA<15&&(SA+=UA[M++]<<OA,OA+=8,SA+=UA[M++]<<OA,OA+=8),Ti=ae[SA&_i];t:for(;;){if(SA>>>=Lt=Ti>>>24,OA-=Lt,!(16&(Lt=Ti>>>16&255))){if(!(64&Lt)){Ti=ae[(65535&Ti)+(SA&(1<<Lt)-1)];continue t}E.msg="invalid distance code",D.mode=30;break A}if(cs=65535&Ti,OA<(Lt&=15)&&(SA+=UA[M++]<<OA,(OA+=8)<Lt&&(SA+=UA[M++]<<OA,OA+=8)),EA<(cs+=SA&(1<<Lt)-1)){E.msg="invalid distance too far back",D.mode=30;break A}if(SA>>>=Lt,OA-=Lt,(Lt=P-W)<cs){if(kA<(Lt=cs-Lt)&&D.sane){E.msg="invalid distance too far back",D.mode=30;break A}if(mt=LA,(Me=0)===xA){if(Me+=RA-Lt,Lt<Ni){for(Ni-=Lt;si[P++]=LA[Me++],--Lt;);Me=P-cs,mt=si}}else if(xA<Lt){if(Me+=RA+xA-Lt,(Lt-=xA)<Ni){for(Ni-=Lt;si[P++]=LA[Me++],--Lt;);if(Me=0,xA<Ni){for(Ni-=Lt=xA;si[P++]=LA[Me++],--Lt;);Me=P-cs,mt=si}}}else if(Me+=xA-Lt,Lt<Ni){for(Ni-=Lt;si[P++]=LA[Me++],--Lt;);Me=P-cs,mt=si}for(;2<Ni;)si[P++]=mt[Me++],si[P++]=mt[Me++],si[P++]=mt[Me++],Ni-=3;Ni&&(si[P++]=mt[Me++],1<Ni&&(si[P++]=mt[Me++]))}else{for(Me=P-cs;si[P++]=si[Me++],si[P++]=si[Me++],si[P++]=si[Me++],2<(Ni-=3););Ni&&(si[P++]=si[Me++],1<Ni&&(si[P++]=si[Me++]))}break}}break}}while(M<T&&P<iA);M-=Ni=OA>>3,SA&=(1<<(OA-=Ni<<3))-1,E.next_in=M,E.next_out=P,E.avail_in=M<T?T-M+5:5-(M-T),E.avail_out=P<iA?iA-P+257:257-(P-iA),D.hold=SA,D.bits=OA}},{}],8:[function(n,g,u){var E=n("../utils/common"),m=n("./adler32"),D=n("./crc32"),M=n("./inffast"),T=n("./inftrees"),P=1,W=2,iA=0,EA=-2,RA=1,kA=852,xA=592;function LA(Me){return(Me>>>24&255)+(Me>>>8&65280)+((65280&Me)<<8)+((255&Me)<<24)}function SA(){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 E.Buf16(320),this.work=new E.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function OA(Me){var mt;return Me&&Me.state?(mt=Me.state,Me.total_in=Me.total_out=mt.total=0,Me.msg="",mt.wrap&&(Me.adler=1&mt.wrap),mt.mode=RA,mt.last=0,mt.havedict=0,mt.dmax=32768,mt.head=null,mt.hold=0,mt.bits=0,mt.lencode=mt.lendyn=new E.Buf32(kA),mt.distcode=mt.distdyn=new E.Buf32(xA),mt.sane=1,mt.back=-1,iA):EA}function JA(Me){var mt;return Me&&Me.state?((mt=Me.state).wsize=0,mt.whave=0,mt.wnext=0,OA(Me)):EA}function ae(Me,mt){var UA,si;return Me&&Me.state?(si=Me.state,mt<0?(UA=0,mt=-mt):(UA=1+(mt>>4),mt<48&&(mt&=15)),mt&&(mt<8||15<mt)?EA:(si.window!==null&&si.wbits!==mt&&(si.window=null),si.wrap=UA,si.wbits=mt,JA(Me))):EA}function re(Me,mt){var UA,si;return Me?(si=new SA,(Me.state=si).window=null,(UA=ae(Me,mt))!==iA&&(Me.state=null),UA):EA}var _i,Ti,Lt=!0;function Ni(Me){if(Lt){var mt;for(_i=new E.Buf32(512),Ti=new E.Buf32(32),mt=0;mt<144;)Me.lens[mt++]=8;for(;mt<256;)Me.lens[mt++]=9;for(;mt<280;)Me.lens[mt++]=7;for(;mt<288;)Me.lens[mt++]=8;for(T(P,Me.lens,0,288,_i,0,Me.work,{bits:9}),mt=0;mt<32;)Me.lens[mt++]=5;T(W,Me.lens,0,32,Ti,0,Me.work,{bits:5}),Lt=!1}Me.lencode=_i,Me.lenbits=9,Me.distcode=Ti,Me.distbits=5}function cs(Me,mt,UA,si){var _s,Gi=Me.state;return Gi.window===null&&(Gi.wsize=1<<Gi.wbits,Gi.wnext=0,Gi.whave=0,Gi.window=new E.Buf8(Gi.wsize)),si>=Gi.wsize?(E.arraySet(Gi.window,mt,UA-Gi.wsize,Gi.wsize,0),Gi.wnext=0,Gi.whave=Gi.wsize):(si<(_s=Gi.wsize-Gi.wnext)&&(_s=si),E.arraySet(Gi.window,mt,UA-si,_s,Gi.wnext),(si-=_s)?(E.arraySet(Gi.window,mt,UA-si,si,0),Gi.wnext=si,Gi.whave=Gi.wsize):(Gi.wnext+=_s,Gi.wnext===Gi.wsize&&(Gi.wnext=0),Gi.whave<Gi.wsize&&(Gi.whave+=_s))),0}u.inflateReset=JA,u.inflateReset2=ae,u.inflateResetKeep=OA,u.inflateInit=function(Me){return re(Me,15)},u.inflateInit2=re,u.inflate=function(Me,mt){var UA,si,_s,Gi,Or,xi,gr,Tt,Nt,AE,ln,Bo,Il,_C,_r,xg,wI,ac,nf,ap,Va,Yl,_I,eE,Yg=0,dg=new E.Buf8(4),nS=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!Me||!Me.state||!Me.output||!Me.input&&Me.avail_in!==0)return EA;(UA=Me.state).mode===12&&(UA.mode=13),Or=Me.next_out,_s=Me.output,gr=Me.avail_out,Gi=Me.next_in,si=Me.input,xi=Me.avail_in,Tt=UA.hold,Nt=UA.bits,AE=xi,ln=gr,Yl=iA;A:for(;;)switch(UA.mode){case RA:if(UA.wrap===0){UA.mode=13;break}for(;Nt<16;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(2&UA.wrap&&Tt===35615){dg[UA.check=0]=255&Tt,dg[1]=Tt>>>8&255,UA.check=D(UA.check,dg,2,0),Nt=Tt=0,UA.mode=2;break}if(UA.flags=0,UA.head&&(UA.head.done=!1),!(1&UA.wrap)||(((255&Tt)<<8)+(Tt>>8))%31){Me.msg="incorrect header check",UA.mode=30;break}if((15&Tt)!=8){Me.msg="unknown compression method",UA.mode=30;break}if(Nt-=4,Va=8+(15&(Tt>>>=4)),UA.wbits===0)UA.wbits=Va;else if(Va>UA.wbits){Me.msg="invalid window size",UA.mode=30;break}UA.dmax=1<<Va,Me.adler=UA.check=1,UA.mode=512&Tt?10:12,Nt=Tt=0;break;case 2:for(;Nt<16;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(UA.flags=Tt,(255&UA.flags)!=8){Me.msg="unknown compression method",UA.mode=30;break}if(57344&UA.flags){Me.msg="unknown header flags set",UA.mode=30;break}UA.head&&(UA.head.text=Tt>>8&1),512&UA.flags&&(dg[0]=255&Tt,dg[1]=Tt>>>8&255,UA.check=D(UA.check,dg,2,0)),Nt=Tt=0,UA.mode=3;case 3:for(;Nt<32;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.head&&(UA.head.time=Tt),512&UA.flags&&(dg[0]=255&Tt,dg[1]=Tt>>>8&255,dg[2]=Tt>>>16&255,dg[3]=Tt>>>24&255,UA.check=D(UA.check,dg,4,0)),Nt=Tt=0,UA.mode=4;case 4:for(;Nt<16;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.head&&(UA.head.xflags=255&Tt,UA.head.os=Tt>>8),512&UA.flags&&(dg[0]=255&Tt,dg[1]=Tt>>>8&255,UA.check=D(UA.check,dg,2,0)),Nt=Tt=0,UA.mode=5;case 5:if(1024&UA.flags){for(;Nt<16;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.length=Tt,UA.head&&(UA.head.extra_len=Tt),512&UA.flags&&(dg[0]=255&Tt,dg[1]=Tt>>>8&255,UA.check=D(UA.check,dg,2,0)),Nt=Tt=0}else UA.head&&(UA.head.extra=null);UA.mode=6;case 6:if(1024&UA.flags&&(xi<(Bo=UA.length)&&(Bo=xi),Bo&&(UA.head&&(Va=UA.head.extra_len-UA.length,UA.head.extra||(UA.head.extra=new Array(UA.head.extra_len)),E.arraySet(UA.head.extra,si,Gi,Bo,Va)),512&UA.flags&&(UA.check=D(UA.check,si,Bo,Gi)),xi-=Bo,Gi+=Bo,UA.length-=Bo),UA.length))break A;UA.length=0,UA.mode=7;case 7:if(2048&UA.flags){if(xi===0)break A;for(Bo=0;Va=si[Gi+Bo++],UA.head&&Va&&UA.length<65536&&(UA.head.name+=String.fromCharCode(Va)),Va&&Bo<xi;);if(512&UA.flags&&(UA.check=D(UA.check,si,Bo,Gi)),xi-=Bo,Gi+=Bo,Va)break A}else UA.head&&(UA.head.name=null);UA.length=0,UA.mode=8;case 8:if(4096&UA.flags){if(xi===0)break A;for(Bo=0;Va=si[Gi+Bo++],UA.head&&Va&&UA.length<65536&&(UA.head.comment+=String.fromCharCode(Va)),Va&&Bo<xi;);if(512&UA.flags&&(UA.check=D(UA.check,si,Bo,Gi)),xi-=Bo,Gi+=Bo,Va)break A}else UA.head&&(UA.head.comment=null);UA.mode=9;case 9:if(512&UA.flags){for(;Nt<16;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(Tt!==(65535&UA.check)){Me.msg="header crc mismatch",UA.mode=30;break}Nt=Tt=0}UA.head&&(UA.head.hcrc=UA.flags>>9&1,UA.head.done=!0),Me.adler=UA.check=0,UA.mode=12;break;case 10:for(;Nt<32;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}Me.adler=UA.check=LA(Tt),Nt=Tt=0,UA.mode=11;case 11:if(UA.havedict===0)return Me.next_out=Or,Me.avail_out=gr,Me.next_in=Gi,Me.avail_in=xi,UA.hold=Tt,UA.bits=Nt,2;Me.adler=UA.check=1,UA.mode=12;case 12:if(mt===5||mt===6)break A;case 13:if(UA.last){Tt>>>=7&Nt,Nt-=7&Nt,UA.mode=27;break}for(;Nt<3;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}switch(UA.last=1&Tt,Nt-=1,3&(Tt>>>=1)){case 0:UA.mode=14;break;case 1:if(Ni(UA),UA.mode=20,mt!==6)break;Tt>>>=2,Nt-=2;break A;case 2:UA.mode=17;break;case 3:Me.msg="invalid block type",UA.mode=30}Tt>>>=2,Nt-=2;break;case 14:for(Tt>>>=7&Nt,Nt-=7&Nt;Nt<32;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if((65535&Tt)!=(Tt>>>16^65535)){Me.msg="invalid stored block lengths",UA.mode=30;break}if(UA.length=65535&Tt,Nt=Tt=0,UA.mode=15,mt===6)break A;case 15:UA.mode=16;case 16:if(Bo=UA.length){if(xi<Bo&&(Bo=xi),gr<Bo&&(Bo=gr),Bo===0)break A;E.arraySet(_s,si,Gi,Bo,Or),xi-=Bo,Gi+=Bo,gr-=Bo,Or+=Bo,UA.length-=Bo;break}UA.mode=12;break;case 17:for(;Nt<14;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(UA.nlen=257+(31&Tt),Tt>>>=5,Nt-=5,UA.ndist=1+(31&Tt),Tt>>>=5,Nt-=5,UA.ncode=4+(15&Tt),Tt>>>=4,Nt-=4,286<UA.nlen||30<UA.ndist){Me.msg="too many length or distance symbols",UA.mode=30;break}UA.have=0,UA.mode=18;case 18:for(;UA.have<UA.ncode;){for(;Nt<3;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.lens[nS[UA.have++]]=7&Tt,Tt>>>=3,Nt-=3}for(;UA.have<19;)UA.lens[nS[UA.have++]]=0;if(UA.lencode=UA.lendyn,UA.lenbits=7,_I={bits:UA.lenbits},Yl=T(0,UA.lens,0,19,UA.lencode,0,UA.work,_I),UA.lenbits=_I.bits,Yl){Me.msg="invalid code lengths set",UA.mode=30;break}UA.have=0,UA.mode=19;case 19:for(;UA.have<UA.nlen+UA.ndist;){for(;xg=(Yg=UA.lencode[Tt&(1<<UA.lenbits)-1])>>>16&255,wI=65535&Yg,!((_r=Yg>>>24)<=Nt);){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(wI<16)Tt>>>=_r,Nt-=_r,UA.lens[UA.have++]=wI;else{if(wI===16){for(eE=_r+2;Nt<eE;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(Tt>>>=_r,Nt-=_r,UA.have===0){Me.msg="invalid bit length repeat",UA.mode=30;break}Va=UA.lens[UA.have-1],Bo=3+(3&Tt),Tt>>>=2,Nt-=2}else if(wI===17){for(eE=_r+3;Nt<eE;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}Nt-=_r,Va=0,Bo=3+(7&(Tt>>>=_r)),Tt>>>=3,Nt-=3}else{for(eE=_r+7;Nt<eE;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}Nt-=_r,Va=0,Bo=11+(127&(Tt>>>=_r)),Tt>>>=7,Nt-=7}if(UA.have+Bo>UA.nlen+UA.ndist){Me.msg="invalid bit length repeat",UA.mode=30;break}for(;Bo--;)UA.lens[UA.have++]=Va}}if(UA.mode===30)break;if(UA.lens[256]===0){Me.msg="invalid code -- missing end-of-block",UA.mode=30;break}if(UA.lenbits=9,_I={bits:UA.lenbits},Yl=T(P,UA.lens,0,UA.nlen,UA.lencode,0,UA.work,_I),UA.lenbits=_I.bits,Yl){Me.msg="invalid literal/lengths set",UA.mode=30;break}if(UA.distbits=6,UA.distcode=UA.distdyn,_I={bits:UA.distbits},Yl=T(W,UA.lens,UA.nlen,UA.ndist,UA.distcode,0,UA.work,_I),UA.distbits=_I.bits,Yl){Me.msg="invalid distances set",UA.mode=30;break}if(UA.mode=20,mt===6)break A;case 20:UA.mode=21;case 21:if(6<=xi&&258<=gr){Me.next_out=Or,Me.avail_out=gr,Me.next_in=Gi,Me.avail_in=xi,UA.hold=Tt,UA.bits=Nt,M(Me,ln),Or=Me.next_out,_s=Me.output,gr=Me.avail_out,Gi=Me.next_in,si=Me.input,xi=Me.avail_in,Tt=UA.hold,Nt=UA.bits,UA.mode===12&&(UA.back=-1);break}for(UA.back=0;xg=(Yg=UA.lencode[Tt&(1<<UA.lenbits)-1])>>>16&255,wI=65535&Yg,!((_r=Yg>>>24)<=Nt);){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(xg&&!(240&xg)){for(ac=_r,nf=xg,ap=wI;xg=(Yg=UA.lencode[ap+((Tt&(1<<ac+nf)-1)>>ac)])>>>16&255,wI=65535&Yg,!(ac+(_r=Yg>>>24)<=Nt);){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}Tt>>>=ac,Nt-=ac,UA.back+=ac}if(Tt>>>=_r,Nt-=_r,UA.back+=_r,UA.length=wI,xg===0){UA.mode=26;break}if(32&xg){UA.back=-1,UA.mode=12;break}if(64&xg){Me.msg="invalid literal/length code",UA.mode=30;break}UA.extra=15&xg,UA.mode=22;case 22:if(UA.extra){for(eE=UA.extra;Nt<eE;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.length+=Tt&(1<<UA.extra)-1,Tt>>>=UA.extra,Nt-=UA.extra,UA.back+=UA.extra}UA.was=UA.length,UA.mode=23;case 23:for(;xg=(Yg=UA.distcode[Tt&(1<<UA.distbits)-1])>>>16&255,wI=65535&Yg,!((_r=Yg>>>24)<=Nt);){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(!(240&xg)){for(ac=_r,nf=xg,ap=wI;xg=(Yg=UA.distcode[ap+((Tt&(1<<ac+nf)-1)>>ac)])>>>16&255,wI=65535&Yg,!(ac+(_r=Yg>>>24)<=Nt);){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}Tt>>>=ac,Nt-=ac,UA.back+=ac}if(Tt>>>=_r,Nt-=_r,UA.back+=_r,64&xg){Me.msg="invalid distance code",UA.mode=30;break}UA.offset=wI,UA.extra=15&xg,UA.mode=24;case 24:if(UA.extra){for(eE=UA.extra;Nt<eE;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}UA.offset+=Tt&(1<<UA.extra)-1,Tt>>>=UA.extra,Nt-=UA.extra,UA.back+=UA.extra}if(UA.offset>UA.dmax){Me.msg="invalid distance too far back",UA.mode=30;break}UA.mode=25;case 25:if(gr===0)break A;if(Bo=ln-gr,UA.offset>Bo){if((Bo=UA.offset-Bo)>UA.whave&&UA.sane){Me.msg="invalid distance too far back",UA.mode=30;break}Bo>UA.wnext?(Bo-=UA.wnext,Il=UA.wsize-Bo):Il=UA.wnext-Bo,Bo>UA.length&&(Bo=UA.length),_C=UA.window}else _C=_s,Il=Or-UA.offset,Bo=UA.length;for(gr<Bo&&(Bo=gr),gr-=Bo,UA.length-=Bo;_s[Or++]=_C[Il++],--Bo;);UA.length===0&&(UA.mode=21);break;case 26:if(gr===0)break A;_s[Or++]=UA.length,gr--,UA.mode=21;break;case 27:if(UA.wrap){for(;Nt<32;){if(xi===0)break A;xi--,Tt|=si[Gi++]<<Nt,Nt+=8}if(ln-=gr,Me.total_out+=ln,UA.total+=ln,ln&&(Me.adler=UA.check=UA.flags?D(UA.check,_s,ln,Or-ln):m(UA.check,_s,ln,Or-ln)),ln=gr,(UA.flags?Tt:LA(Tt))!==UA.check){Me.msg="incorrect data check",UA.mode=30;break}Nt=Tt=0}UA.mode=28;case 28:if(UA.wrap&&UA.flags){for(;Nt<32;){if(xi===0)break A;xi--,Tt+=si[Gi++]<<Nt,Nt+=8}if(Tt!==(4294967295&UA.total)){Me.msg="incorrect length check",UA.mode=30;break}Nt=Tt=0}UA.mode=29;case 29:Yl=1;break A;case 30:Yl=-3;break A;case 31:return-4;default:return EA}return Me.next_out=Or,Me.avail_out=gr,Me.next_in=Gi,Me.avail_in=xi,UA.hold=Tt,UA.bits=Nt,(UA.wsize||ln!==Me.avail_out&&UA.mode<30&&(UA.mode<27||mt!==4))&&cs(Me,Me.output,Me.next_out,ln-Me.avail_out)?(UA.mode=31,-4):(AE-=Me.avail_in,ln-=Me.avail_out,Me.total_in+=AE,Me.total_out+=ln,UA.total+=ln,UA.wrap&&ln&&(Me.adler=UA.check=UA.flags?D(UA.check,_s,ln,Me.next_out-ln):m(UA.check,_s,ln,Me.next_out-ln)),Me.data_type=UA.bits+(UA.last?64:0)+(UA.mode===12?128:0)+(UA.mode===20||UA.mode===15?256:0),(AE===0&&ln===0||mt===4)&&Yl===iA&&(Yl=-5),Yl)},u.inflateEnd=function(Me){if(!Me||!Me.state)return EA;var mt=Me.state;return mt.window&&(mt.window=null),Me.state=null,iA},u.inflateGetHeader=function(Me,mt){var UA;return Me&&Me.state&&2&(UA=Me.state).wrap?((UA.head=mt).done=!1,iA):EA},u.inflateSetDictionary=function(Me,mt){var UA,si=mt.length;return Me&&Me.state?(UA=Me.state).wrap!==0&&UA.mode!==11?EA:UA.mode===11&&m(1,mt,si,0)!==UA.check?-3:cs(Me,mt,si,si)?(UA.mode=31,-4):(UA.havedict=1,iA):EA},u.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(n,g,u){var E=n("../utils/common"),m=[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],D=[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],M=[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],T=[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];g.exports=function(P,W,iA,EA,RA,kA,xA,LA){var SA,OA,JA,ae,re,_i,Ti,Lt,Ni,cs=LA.bits,Me=0,mt=0,UA=0,si=0,_s=0,Gi=0,Or=0,xi=0,gr=0,Tt=0,Nt=null,AE=0,ln=new E.Buf16(16),Bo=new E.Buf16(16),Il=null,_C=0;for(Me=0;Me<=15;Me++)ln[Me]=0;for(mt=0;mt<EA;mt++)ln[W[iA+mt]]++;for(_s=cs,si=15;1<=si&&ln[si]===0;si--);if(si<_s&&(_s=si),si===0)return RA[kA++]=20971520,RA[kA++]=20971520,LA.bits=1,0;for(UA=1;UA<si&&ln[UA]===0;UA++);for(_s<UA&&(_s=UA),Me=xi=1;Me<=15;Me++)if(xi<<=1,(xi-=ln[Me])<0)return-1;if(0<xi&&(P===0||si!==1))return-1;for(Bo[1]=0,Me=1;Me<15;Me++)Bo[Me+1]=Bo[Me]+ln[Me];for(mt=0;mt<EA;mt++)W[iA+mt]!==0&&(xA[Bo[W[iA+mt]]++]=mt);if(P===0?(Nt=Il=xA,_i=19):P===1?(Nt=m,AE-=257,Il=D,_C-=257,_i=256):(Nt=M,Il=T,_i=-1),Me=UA,re=kA,Or=mt=Tt=0,JA=-1,ae=(gr=1<<(Gi=_s))-1,P===1&&852<gr||P===2&&592<gr)return 1;for(;;){for(Ti=Me-Or,xA[mt]<_i?(Lt=0,Ni=xA[mt]):xA[mt]>_i?(Lt=Il[_C+xA[mt]],Ni=Nt[AE+xA[mt]]):(Lt=96,Ni=0),SA=1<<Me-Or,UA=OA=1<<Gi;RA[re+(Tt>>Or)+(OA-=SA)]=Ti<<24|Lt<<16|Ni,OA!==0;);for(SA=1<<Me-1;Tt&SA;)SA>>=1;if(SA!==0?(Tt&=SA-1,Tt+=SA):Tt=0,mt++,--ln[Me]==0){if(Me===si)break;Me=W[iA+xA[mt]]}if(_s<Me&&(Tt&ae)!==JA){for(Or===0&&(Or=_s),re+=UA,xi=1<<(Gi=Me-Or);Gi+Or<si&&!((xi-=ln[Gi+Or])<=0);)Gi++,xi<<=1;if(gr+=1<<Gi,P===1&&852<gr||P===2&&592<gr)return 1;RA[JA=Tt&ae]=_s<<24|Gi<<16|re-kA}}return Tt!==0&&(RA[re+Tt]=Me-Or<<24|64<<16),LA.bits=_s,0}},{"../utils/common":1}],10:[function(n,g,u){g.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(n,g,u){g.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(n,g,u){var E=n("./zlib/inflate"),m=n("./utils/common"),D=n("./utils/strings"),M=n("./zlib/constants"),T=n("./zlib/messages"),P=n("./zlib/zstream"),W=n("./zlib/gzheader"),iA=Object.prototype.toString;function EA(kA){if(!(this instanceof EA))return new EA(kA);this.options=m.assign({chunkSize:16384,windowBits:0,to:""},kA||{});var xA=this.options;xA.raw&&0<=xA.windowBits&&xA.windowBits<16&&(xA.windowBits=-xA.windowBits,xA.windowBits===0&&(xA.windowBits=-15)),!(0<=xA.windowBits&&xA.windowBits<16)||kA&&kA.windowBits||(xA.windowBits+=32),15<xA.windowBits&&xA.windowBits<48&&!(15&xA.windowBits)&&(xA.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new P,this.strm.avail_out=0;var LA=E.inflateInit2(this.strm,xA.windowBits);if(LA!==M.Z_OK)throw new Error(T[LA]);if(this.header=new W,E.inflateGetHeader(this.strm,this.header),xA.dictionary&&(typeof xA.dictionary=="string"?xA.dictionary=D.string2buf(xA.dictionary):iA.call(xA.dictionary)==="[object ArrayBuffer]"&&(xA.dictionary=new Uint8Array(xA.dictionary)),xA.raw&&(LA=E.inflateSetDictionary(this.strm,xA.dictionary))!==M.Z_OK))throw new Error(T[LA])}function RA(kA,xA){var LA=new EA(xA);if(LA.push(kA,!0),LA.err)throw LA.msg||T[LA.err];return LA.result}EA.prototype.push=function(kA,xA){var LA,SA,OA,JA,ae,re=this.strm,_i=this.options.chunkSize,Ti=this.options.dictionary,Lt=!1;if(this.ended)return!1;SA=xA===~~xA?xA:xA===!0?M.Z_FINISH:M.Z_NO_FLUSH,typeof kA=="string"?re.input=D.binstring2buf(kA):iA.call(kA)==="[object ArrayBuffer]"?re.input=new Uint8Array(kA):re.input=kA,re.next_in=0,re.avail_in=re.input.length;do{if(re.avail_out===0&&(re.output=new m.Buf8(_i),re.next_out=0,re.avail_out=_i),(LA=E.inflate(re,M.Z_NO_FLUSH))===M.Z_NEED_DICT&&Ti&&(LA=E.inflateSetDictionary(this.strm,Ti)),LA===M.Z_BUF_ERROR&&Lt===!0&&(LA=M.Z_OK,Lt=!1),LA!==M.Z_STREAM_END&&LA!==M.Z_OK)return this.onEnd(LA),!(this.ended=!0);re.next_out&&(re.avail_out!==0&&LA!==M.Z_STREAM_END&&(re.avail_in!==0||SA!==M.Z_FINISH&&SA!==M.Z_SYNC_FLUSH)||(this.options.to==="string"?(OA=D.utf8border(re.output,re.next_out),JA=re.next_out-OA,ae=D.buf2string(re.output,OA),re.next_out=JA,re.avail_out=_i-JA,JA&&m.arraySet(re.output,re.output,OA,JA,0),this.onData(ae)):this.onData(m.shrinkBuf(re.output,re.next_out)))),re.avail_in===0&&re.avail_out===0&&(Lt=!0)}while((0<re.avail_in||re.avail_out===0)&&LA!==M.Z_STREAM_END);return LA===M.Z_STREAM_END&&(SA=M.Z_FINISH),SA===M.Z_FINISH?(LA=E.inflateEnd(this.strm),this.onEnd(LA),this.ended=!0,LA===M.Z_OK):SA!==M.Z_SYNC_FLUSH||(this.onEnd(M.Z_OK),!(re.avail_out=0))},EA.prototype.onData=function(kA){this.chunks.push(kA)},EA.prototype.onEnd=function(kA){kA===M.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=m.flattenChunks(this.chunks)),this.chunks=[],this.err=kA,this.msg=this.strm.msg},u.Inflate=EA,u.inflate=RA,u.inflateRaw=function(kA,xA){return(xA=xA||{}).raw=!0,RA(kA,xA)},u.ungzip=RA},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")}(Ma)),Ma.exports),De=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=zo,this._currentConnectState=Ki,this._beforeSendInterceptors=[]}init(){fn.addTask({id:Pt,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(s){const n=Xi.get("instance"),{sdkAppId:g,testEnv:u,disableIndependentDomain:E,proxyServer:m}=n,D=ua(g);let M="";return u?M=pt.TEST[D].DEFAULT:Rs(m)?E?(M=pt.PRODUCTION[D].DEFAULT,_o=bo.DEFAULT):M=pt.PRODUCTION[D].INITIAL.replace("*",`${g}`):M=m,Hn(M,{isBinary:s})}(this._isBinarySupported),gn.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),gn.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(s,n){var g;const{requestId:u,timeout:E=Ii,canResend:m=!0,shouldRejectOnError:D=!0}=n||{};if(Rs(s))return xt.warn("sendPacket",`${ct}.sendPacket: packet is empty `),null;this._executeBeforeSendInterceptors(s),this._currentConnectState===Mi&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:yr});const M=JSON.stringify(s);let T=null;if(u){const{resolve:W,reject:iA,promise:EA}=wn();T=EA,this._pendingRequests.set(u,{resolve:W,reject:iA,timestamp:Date.now(),uplinkData:M,timeout:E,canResend:m,requestHead:s?.head,shouldRejectOnError:D})}const P=this._isBinarySupported?Ga(M).buffer:M;return(g=this._socketAdapter)===null||g===void 0||g.send(P),T}connect(){var s;this._socketAdapter=new ng(this._url),this._connectionEstablishedTime=0,this._addEventListeners(),this._connectionStartTime=Date.now();const n=(s=this._socketAdapter)===null||s===void 0?void 0:s.getId(),g=`${ct}.connect isWorkerEnabled: ${Go} socketID:${n} url:${this._url}`;this._connectionId=n,this._ssoLog({method:"connect",message:g})}disconnect(){var s,n;const g=(s=this._socketAdapter)===null||s===void 0?void 0:s.getId(),u=`${ct}.disconnect socketID:${g}`;this._ssoLog({method:"disconnect",message:u}),this._removeEventListeners(),(n=this._socketAdapter)===null||n===void 0||n.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${ct}.dispose`),fn.removeTask(Pt),fn.removeTask(Ji),gn.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),gn.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=zo,this._url=""}registerBeforeSendInterceptor(s,n){this._beforeSendInterceptors.push(s.bind(n))}_executeBeforeSendInterceptors(s){for(const n of this._beforeSendInterceptors){const{servcmd:g=""}=s?.head;n(g.includes(".")?g.split(".").pop():"")}}_shouldSkipReconnect(){const s=this._currentConnectState===qs&&this._isReconnecting;return!this._socketAdapter||s}reconnect(){return pA(this,void 0,void 0,function*(){const s=`${ct}.reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:s}),!this._shouldSkipReconnect()){this._url=Hs(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(n){this._isReconnecting=!1,this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:xn}),xt.warn(`${ct}.reconnect failed: ${en(n)}`)}}})}_addEventListeners(){var s,n,g,u,E;(s=this._socketAdapter)===null||s===void 0||s.on("connect",this._onConnect,this),(n=this._socketAdapter)===null||n===void 0||n.on("message",this._onMessage,this),(g=this._socketAdapter)===null||g===void 0||g.on("close",this._onClose,this),(u=this._socketAdapter)===null||u===void 0||u.on("error",this._onError,this),(E=this._socketAdapter)===null||E===void 0||E.on("sendFail",this._onSendFail,this)}_removeEventListeners(){var s,n,g,u,E;(s=this._socketAdapter)===null||s===void 0||s.off("connect",this._onConnect,this),(n=this._socketAdapter)===null||n===void 0||n.off("message",this._onMessage,this),(g=this._socketAdapter)===null||g===void 0||g.off("close",this._onClose,this),(u=this._socketAdapter)===null||u===void 0||u.off("error",this._onError,this),(E=this._socketAdapter)===null||E===void 0||E.off("sendFail",this._onSendFail,this)}_onClose(s){const{socketId:n,event:g}=s||{},u=this._connectionEstablishedTime!==0?Date.now()-this._connectionEstablishedTime:0,E=`${ct}.onClose closeSocketID: ${n} currentSocketID: ${this._connectionId} connectionDuration: ${u} code: ${g?.code} reason: ${g?.reason}`;this._ssoLog({method:"onClose",message:E}),n===this._connectionId&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ks}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(s){const{socketId:n,error:g}=s||{},u=`${ct}.onError sourceSocketID: ${n} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(g)}`;this._ssoLog({method:"onError",message:u}),n===this._connectionId&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ml}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(s){const{socketId:n,error:g}=s||{},u=`${ct}.onSendFail sendFailSocketId: ${n} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${en(g)}`;this._ssoLog({method:"onSendFail",message:u}),this._isReconnecting&&(this._isReconnecting=!1)}_onMessage(s){let n,g;this._updateHeartbeatTime();try{n=this._isBinarySupported?this._isCompressedData(s.data)?(D=>{const M=new Uint8Array(D).slice(4);let T;try{T=vl.inflate(M,{to:"string"})}catch(P){console.error("inflate error",P)}return T})(s.data):function(D){const M=new Uint8Array(D);let T="",P=0;const{length:W}=M;for(;P<W;){let iA=M[P],EA=0,RA=0;if(iA<=127?(EA=0,RA=255&iA):iA<=223?(EA=1,RA=31&iA):iA<=239?(EA=2,RA=15&iA):iA<=244&&(EA=3,RA=7&iA),W-P-EA>0)for(let kA=0;kA<EA;kA+=1)iA=M[P+kA+1],RA=RA<<6|63&iA;else RA=65533,EA=W-P;T+=String.fromCodePoint(RA),P+=EA+1}return T}(s.data):s.data,g=JSON.parse(n)}catch(D){const M=`event.data: ${en(s.data)} error: ${en(D)}`;return void this._ssoLog({method:"jsonParseError",message:M})}if(!g||!g.head)return;const{seq:u,servcmd:E}=g.head,m=`${u}${E}`;this._pendingRequests.has(m)?this._handleRequestResponse(g):this._handlePushMessage(g)}_handleRequestResponse(s){var n,g;const{seq:u,servcmd:E}=s.head,{int32_error_code:m,str_error_message:D}=s?.body||{},M=((n=s?.body)===null||n===void 0?void 0:n.ErrorCode)||m,T=((g=s?.body)===null||g===void 0?void 0:g.ErrorInfo)||D,P=`${u}${E}`,{resolve:W,reject:iA,timestamp:EA,headSeq:RA,requestHead:kA,shouldRejectOnError:xA=!0}=this._pendingRequests.get(P);if(this._pendingRequests.delete(P),M&&M!==0&&xA)return gn.emitInnerEvent("error",{errorCode:M,errorInfo:T,requestHead:kA}),void iA({errorCode:M,errorInfo:T});W(s.body)}_handlePushMessage(s){const{servcmd:n}=s.head,{NeedAck:g,SessionData:u}=s.body;g===1&&this._sendAck(u),gn.emitInnerEvent(n,s)}_checkPendingRequestsAndResend(){var s;xt.debug("_checkPendingRequestsAndResend",` reConnectFlag:${this._isReconnecting} promiseMap.size:${this._pendingRequests.size}`),(s=this._pendingRequests)===null||s===void 0||s.forEach((n,g)=>{var u;const{uplinkData:E,canResend:m,resolve:D,reject:M,timeout:T}=n;if(m){this._pendingRequests.set(g,{resolve:D,reject:M,timestamp:Date.now(),uplinkData:E,timeout:T,canResend:m});const P=this._isBinarySupported?Ga(E).buffer:E;(u=this._socketAdapter)===null||u===void 0||u.send(P)}else this._pendingRequests.delete(g)})}_onConnect(s){const{socketId:n,event:g={}}=s||{};this._connectionId=n,this._connectionEstablishedTime=Date.now();const u=Date.now()-this._connectionStartTime,E=`${ct}.onConnect cost:${u} ms. socketID:${n} res:${JSON.stringify(g)}`;if(this._ssoLog({method:"onConnect",message:E}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const m=`${ct}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:m}),gn.emitInnerEvent(xe.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:Ki,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(s){const n=Ea({servcmd:"openim.ws_msg_push_ack",data:{SessionData:s}});this.sendPacket(n)}_executeScheduledTaskIfReady(){return pA(this,void 0,void 0,function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()})}_canSendHeartbeat(){var s;return((s=this._socketAdapter)===null||s===void 0?void 0:s.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return pA(this,void 0,void 0,function*(){var s;const n=Ea({servcmd:"heartbeat.alive",data:{}});try{const g=`${n.head.seq}${n.head.servcmd}`;yield this.sendPacket(n,{requestId:g,timeout:3e3})}catch(g){const u=(s=Xi.get("netWorkMonitor"))===null||s===void 0?void 0:s.isNetworkOnline,E=`${ct}.sendHeartbeat failed. isNetWorkOnline:${u} error: ${en(g)}`;this._ssoLog({method:"sendHeartbeatError",message:E}),this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return pA(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=To?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(s){const n=`${ct}.networkStatusChange ${JSON.stringify(s)}`;this._ssoLog({method:"networkStatusChange",message:n});const{isNetworkOnline:g,networkType:u}=s;g&&u!=="none"?this._handleConnectStateChange({state:Ki,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg}):this._handleConnectStateChange({state:Mi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg})}isPrivateNetWork(){const s=Xi.get("instance")||{};return s.proxyServer&&!s.fileDownloadProxy}_handleConnectStateChange(s){const{state:n,shouldAttemptReconnect:g,shouldEmitEvent:u,reason:E}=s,m=`${ct}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${g} shouldEmitEvent: ${u} reason: ${E}`;this._currentConnectState!==n&&(this._ssoLog({method:"handleConnectStateChange",message:m}),u&&(xt.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${n}`),gn.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:n}}),this._currentConnectState=n,n===Mi&&gn.emitInnerEvent(xe.SOCKET_DISCONNECTED)),g&&(this._resetReconnectDelay(),fn.addTask({id:Ji,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this})))}_handleActivityStatusChange(s){var n,g;const u=(g=(n=this._socketAdapter)===null||n===void 0?void 0:n._ws)===null||g===void 0?void 0:g.readyState,E=`${ct}.activityStatusChange ${JSON.stringify(s)} readyState: ${u}`;xt.debug("activityStatusChange",E),u===3&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:sr})}_resetReconnectDelay(){var s;xt.debug(`${ct}._resetReconnectDelay`),fn.removeTask(Ji);const n=(s=Xi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?zo:1e3}_scheduleReconnectWithBackoff(){var s;const n=(s=Xi.get("activityMonitor"))===null||s===void 0?void 0:s.isActive;this._intendedDelay=n?Math.min(5e3,Math.max(zo,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const g=new Date().toTimeString().slice(0,8),u=`${ct}.scheduleReconnectWithBackoff timeStr: ${g} intendedDelay: ${this._intendedDelay}`;xt.debug(u),this.reconnect(),fn.updateTaskInterval(Ji,this._intendedDelay)}_ssoLog(s){const{method:n,message:g}=s;xt.info(n,g)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(s){pA(this,void 0,void 0,function*(){const n=s.split("/")[2];if(!n.startsWith("ws"))return;const g=`https://${n}/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:g,data:{}})}catch(u){xt.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${u.message}`)}})}(this._url),function(s){pA(this,void 0,void 0,function*(){const n=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${s.slice(s.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:n,data:{}})}catch(g){xt.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${g.message}`)}})}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[s,n]of this._pendingRequests.entries()){const{reject:g,timestamp:u,timeout:E}=n;Date.now()-u>=E&&(this._pendingRequests.delete(s),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),g({errorCode:Qr,errorInfo:"NETWORK_TIMEOUT",data:{requestId:s}}))}}_updateIsBinarySupported(){var s;if(!((s=Xi.get("instance"))===null||s===void 0)&&s.devMode)return void(this._isBinarySupported=!1);const n=Es();if((gi||ut&&n==="windows"||Vs)&&(this._isBinarySupported=!1),To){const{uniRuntimeVersion:g=""}=io.getSystemInfoSync();(function(u){const E=u.split(".").map(Number),[m=0,D=0,M=0]=E;return m>2||!(m<2)&&(D>2||!(D<2)&&M>=6)})(g)||(this._isBinarySupported=!1)}}_isCompressedData(s){const n=new Uint8Array(s);return n[0]===67&&n[1]===79&&n[2]===77&&n[3]===80}};const ye={init:function(s){Xi.set("instance",s),De.init()},destroy:function(){De.dispose(),Xi.clear(),fn.dispose()},notificationCenter:gn,channel:De,store:Xi,ssoLog:xt,utils:yg,common:vA,constants:Dt},vg=s=>typeof s=="function";function rg(s,n,g){const u=g||[];if(!s||!n)return!1;const E=Object.keys(s).filter(D=>!u.includes(D)),m=Object.keys(n).filter(D=>!u.includes(D));return E.length===m.length&&E.every(D=>!!n.hasOwnProperty(D)&&(typeof s[D]=="object"&&s[D]!==null?rg(s[D],n[D],g):s[D]===n[D]))}var Rg;(function(s){s.SDK_READY="sdkStateReady",s.SDK_NOT_READY="sdkStateNotReady",s.SDK_DESTROY="sdkDestroy",s.MESSAGE_RECEIVED="onMessageReceived",s.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",s.MESSAGE_MODIFIED="onMessageModified",s.MESSAGE_REVOKED="onMessageRevoked",s.MESSAGE_READ_BY_PEER="onMessageReadByPeer",s.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",s.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",s.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",s.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",s.CONVERSATION_LIST_UPDATED="onConversationListUpdated",s.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",s.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",s.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",s.GROUP_LIST_UPDATED="onGroupListUpdated",s.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",s.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",s.TOPIC_CREATED="onTopicCreated",s.TOPIC_DELETED="onTopicDeleted",s.TOPIC_UPDATED="onTopicUpdated",s.PROFILE_UPDATED="onProfileUpdated",s.USER_STATUS_UPDATED="onUserStatusUpdated",s.BLACKLIST_UPDATED="blacklistUpdated",s.FRIEND_LIST_UPDATED="onFriendListUpdated",s.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",s.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",s.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",s.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",s.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",s.KICKED_OUT="kickedOut",s.ERROR="error",s.NET_STATE_CHANGE="netStateChange",s.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated",s.SERVER_CONFIG_UPDATED="onServerConfigUpdated",s.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",s.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived",s.GROUP_ONLINE_MEMBER_COUNT_CHANGED="onGroupOnlineMemberCountChanged",s.RICH_STATUS_CHANGED="onRichStatusChanged"})(Rg||(Rg={}));var Dn,Dr=Rg;(function(s){s.LOGOUT="logout",s.DESTROY="destroy",s.CLOUD_CONFIG_UPDATE="cloud_config_update",s.PROFILE_UPDATE="profile_updated",s.ERROR="error",s.RECONNECTED="reconnected",s.FORCE_OFFLINE="im_open_status.stat_forceoffline",s.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",s.OVERLOAD_PUSH="OverLoadPush.notify2",s.NEW_MESSAGE="new_message",s.MESSAGE_PUSH="im_open_push.msg_push",s.MESSAGE_DELETED="message_deleted",s.MESSAGE_REVOKED="message_revoked",s.MESSAGE_MODIFIED="message_modified",s.SOCKET_DISCONNECTED="socket_disconnected",s.CONVERSATION_UPDATED="conversation_updated",s.TOPIC_MESSAGE_DELETED="topic_message_deleted",s.TOPIC_MESSAGE_REVOKED="topic_message_revoked",s.TOPIC_MESSAGE_MODIFIED="topic_message_modified",s.TOPIC_NEW_MESSAGE="topic_new_message",s.QUALITY_STAT="quality_stat",s.SYNC_CONVERSATION_LIST="sync_conversation_list",s.HISTORY_MESSAGE_FETCHED="history_message_fetched"})(Dn||(Dn={}));var ui,so=Dn;(function(s){s.NEW_INVITATION_RECEIVED="newInvitationReceived",s.INVITEE_ACCEPTED="ts_invitee_accepted",s.INVITEE_REJECTED="ts_invitee_rejected",s.INVITATION_CANCELLED="ts_invitation_cancelled",s.INVITATION_TIMEOUT="ts_invitation_timeout",s.INVITATION_MODIFIED="ts_invitation_modified"})(ui||(ui={}));var qc=ui;const zg=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),wg={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 Yr;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(Yr||(Yr={}));const yc={modify:so.MESSAGE_MODIFIED,delete:so.MESSAGE_DELETED,revoke:so.MESSAGE_REVOKED};var Kc;(function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"})(Kc||(Kc={}));const ag=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},wg),{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:Yr,Direction:Kc}),Ru={[yc.modify]:so.TOPIC_MESSAGE_MODIFIED,[yc.delete]:so.TOPIC_MESSAGE_DELETED,[yc.revoke]:so.TOPIC_MESSAGE_REVOKED},SE={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"},_g=Object.assign({},SE),ka={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},Dc=Object.assign(Object.assign(Object.assign(Object.assign({},ka),{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"}),ME=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"}),La={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},sa={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},Tg={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},gI=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},La),{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:sa,GROUP_TIPS_OPERATION_TYPE:Tg}),hs={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},Lo=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zg),ag),_g),Dc),ME),gI),hs),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",NET_STATE_CONNECTED:"connected"}),da={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},nr={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3",NODE:"4"},Yt={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"},qt={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"},Ng={[Yt.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:qt.USER_STATUS_UPDATE},{stepId:qt.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:qt.UNREAD_MESSAGE_SYNC,dependency:qt.C2C_HISTORY_MESSAGE_RECOVER},{stepId:qt.CONVERSATION_RECOVER},{stepId:qt.HISTORY_MESSAGE_RECOVER,dependency:qt.CONVERSATION_RECOVER},{stepId:qt.BLACKLIST_RECOVER},{stepId:qt.FRIEND_RECOVER},{stepId:qt.FRIEND_APPLICATION_LIST_RECOVER},{stepId:qt.GROUP_REVOKED_NOTICE_RECOVER,dependency:qt.HISTORY_MESSAGE_RECOVER},{stepId:qt.GROUP_TIPS_RECOVER,dependency:qt.HISTORY_MESSAGE_RECOVER},{stepId:qt.TOPIC_REQUEST_INFO_RESET},{stepId:qt.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_RECOVER]},{stepId:qt.EMIT_C2C_MESSAGE_EVENT,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:qt.C2C_HISTORY_MESSAGE_RECOVER,dependency:qt.CONVERSATION_RECOVER},{stepId:qt.STREAM_MESSAGE_RECOVER}],[Yt.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:qt.COMMERCIAL_CONFIG_UPDATE},{stepId:qt.CLOUD_CONFIG_SYNC},{stepId:qt.USER_PROFILE_SYNC},{stepId:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.FRIEND_AND_BLACKLIST_SYNC},{stepId:qt.GROUP_LIST_SYNC},{stepId:qt.CONVERSATION_LIST_SYNC},{stepId:qt.SIGNALING_MESSAGE_RECOVER,dependency:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC]},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC,qt.CONVERSATION_LIST_SYNC]},{stepId:qt.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[qt.GROUP_LIST_SYNC,qt.CONVERSATION_LIST_SYNC]},{stepId:qt.CONVERSATION_GROUP_LIST_SYNC},{stepId:qt.CONVERSATION_GROUP_UPDATE,dependency:[qt.CONVERSATION_LIST_SYNC,qt.CONVERSATION_GROUP_LIST_SYNC]},{stepId:qt.QUALITY_REPORT}],[Yt.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:qt.HANDLE_C2C_NEW_MESSAGE},{stepId:qt.UNREAD_MESSAGE_SYNC},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_C2C_NEW_MESSAGE},{stepId:qt.EMIT_C2C_MESSAGE_EVENT,dependency:[qt.HANDLE_C2C_NEW_MESSAGE,qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:qt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[qt.UNREAD_MESSAGE_SYNC]}],[Yt.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.UPDATE_GROUP_NEXT_SEQUENCE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_NEW_MESSAGE},{stepId:qt.EMIT_GROUP_MESSAGE_EVENT,dependency:[qt.HANDLE_GROUP_NEW_MESSAGE,qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[Yt.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:qt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:qt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:qt.EMIT_GROUP_TIPS_EVENT,dependency:[qt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,qt.HANDLE_GROUP_TIPS_NOTIFICATION],skipIfDependencyMissing:!1}]},cI={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},rr={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},HI=["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 za=Object.freeze({__proto__:null,ERROR_CODE:da,InnerEvent:so,NEED_LOG_API:HI,OuterConstant:Lo,OuterEvent:Dr,PUSH:hs,QUALITY_METRICS:cI,SDK_EDITION:nr,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:rr,SignalingEvent:qc,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Ng,WORKFLOW_NAME:Yt,WORKFLOW_STEP:qt}),na,un,Sn;(function(s){s[s.USER_INITIATED=0]="USER_INITIATED",s[s.KICKED_OUT=1]="KICKED_OUT"})(na||(na={})),function(s){s[s.multipleAccount=1]="multipleAccount",s[s.multipleDevice=2]="multipleDevice",s[s.restApi=3]="restApi"}(un||(un={})),function(s){s[s.multipleDevice=3002]="multipleDevice",s[s.multipleAccount=3003]="multipleAccount",s[s.usersigExpired=70001]="usersigExpired",s[s.restApi=20002]="restApi"}(Sn||(Sn={}));const wu={[un.multipleAccount]:"multipleAccount",[un.multipleDevice]:"multipleDevice",[un.restApi]:"REST_API_Kick",[Sn.multipleAccount]:"multipleAccount",[Sn.multipleDevice]:"multipleDevice",[Sn.restApi]:"REST_API_Kick",[Sn.usersigExpired]:"userSigExpired"},Gg="login_online_presence_task",{ERROR:Ua,DESTROY:jc,FORCE_OFFLINE:qI}=so,{KICKED_OUT_MULT_ACCOUNT:vE,KICKED_OUT_MULT_DEVICE:lI,KICKED_OUT_REST_API:_u,ACCOUNT_A2KEY_EXPIRED:Rl,MSG_A2KEY_EXPIRED:Sc}=da;class Tu{init(){const{notificationCenter:n}=ye;n.subscribeInnerEvent(qI,this._handleForceOfflineFromServerPush,this),n.subscribeInnerEvent(Ua,Sc,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(Ua,Rl,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),n.subscribeInnerEvent(Ua,vE,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Ua,lI,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(Ua,_u,this._handleForceOfflineFromResponse,this),n.subscribeInnerEvent(jc,this._dispose,this)}_handleForceOfflineFromServerPush(n){var g;if(((g=ye.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)===!0){const{EventArray:u=[]}=n?.body||{};this._extractKickedOutMessages(u).forEach(E=>{const{KickoutMsgNotify:{KickType:m,NewInstInfo:D,Instid:M}}=E;this._isCurrentInstanceKickedOut(M)&&this._processKickedOutReasonInfo({kickedOutReasonCode:m,newInstanceInfo:D})})}}_extractKickedOutMessages(n){return n.reduce((g,u)=>[...g,...u.C2cNotifyMsgArray||[]],[]).filter(g=>{var u;return this._isKickedOut((u=g?.KickoutMsgNotify)===null||u===void 0?void 0:u.KickType)})}_handleForceOfflineFromResponse(n){const{errorCode:g}=n;this._processKickedOutReasonInfo({kickedOutReasonCode:g})}_processKickedOutReasonInfo(n){return pA(this,void 0,void 0,function*(){const{kickedOutReasonCode:g}=n,{ssoLog:u,utils:{safeStringify:E}}=ye;try{this._logKickedOutEvent(n),this._shouldLogoutAfterKickedOut(g)?yield ye.login.loginAction.logout(na.KICKED_OUT):ye.login.loginAction.handleLogoutCompleted()}catch(m){u.debug("_processKickedOutReasonInfo",` fail ${E(m)}`)}finally{ye.notificationCenter.emitOuterEvent(Dr.KICKED_OUT,{data:{type:wu[g]},name:Dr.KICKED_OUT})}})}_logKickedOutEvent(n){const{kickedOutReasonCode:g,newInstanceInfo:u={}}=n,E=`type:${wu[g]} newInstanceInfo: ${JSON.stringify(u)}`;ye.ssoLog.warn("kickedOut",E)}_isKickedOut(n){return[un.multipleAccount,un.multipleDevice,un.restApi].includes(n)}_isChatLoginEvent(n){const{requestHead:g}=n||{};return g?.idtype!==1}_shouldLogoutAfterKickedOut(n){return![Sn.usersigExpired,un.restApi].includes(n)}_isCurrentInstanceKickedOut(n){const{isLoggedIn:g,statusInstanceId:u}=ye.store.get("login")||{};return g===!0&&n===u}_dispose(){const{notificationCenter:n}=ye;n.unSubscribeInnerEvent(qI,this._handleForceOfflineFromServerPush,this),n.unSubscribeInnerEvent(Ua,Rl,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,Sc,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,vE,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,lI,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(Ua,_u,this._handleForceOfflineFromResponse,this),n.unSubscribeInnerEvent(jc,this._dispose,this)}}function Nu(s){return pA(this,void 0,void 0,function*(){const n="im_open_status.wslogin",g=ye.common.generateProtocolData({servcmd:n,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:s}}),u=`${g.head.seq}${n}`,E=yield ye.channel.sendPacket(g,{timeout:9e4,requestId:u});if(E){const{HelloInterval:m,InstId:D,TinyId:M,TimeStamp:T,CustomStatus:P,PurchaseBits:W,A2Key:iA,RichMsgAuthKey:EA,ErrorCode:RA,ErrorInfo:kA,ActionStatus:xA}=E;return{helloInterval:m,instanceID:D,tinyID:M,timeStamp:T,customStatus:P,purchaseBits:W,a2Key:iA,authKey:EA,errorCode:RA,errorInfo:kA,actionStatus:xA}}})}function wl(){const{store:s}=ye;return ua(s.get("instance").sdkAppId)!==gt.CHINA}function rs(s){var n;try{const g=Xi.getStorage("errorMessage");if(!s||!g)return"";const u=((n=JSON.parse(g))===null||n===void 0?void 0:n.errorMessage)||{},{code:E,replacement1:m="",replacement2:D=""}=s;if(!E)return"";const M=wl()?`${E}_en`:`${E}_cn`;let T=u[u[M]?M:E]||"";return T&&(m&&(T=T.replace("$replacement1",m)),D&&(T=T.replace("$replacement2",D))),T}catch(g){return console.warn("Error parsing stored error messages:",g),""}}class gs extends Error{constructor(n={}){n.code=n.code||n.errorCode;let{functionName:g="Unknown",code:u,message:E="",data:m="",moreMessage:D="",errorMessage:M=""}=n;M=(u?rs(n):"")||M||E;let T=u?`${g} failed. error: {"message": ${M}, "code": ${u}}`:`${g} failed. error: {"message": ${M}}`;T=`${T} ${D}`,super(),this.code=u,this.errorCode=u,this.errorMessage=M,this.message=T,this.data=m}}function ud(s,n){var g;if(s&&((g=ye.store.get("login"))===null||g===void 0?void 0:g.isLoggedIn)!==!0)throw new gs({code:da.USER_NOT_LOGGED_IN,functionName:n})}function II(s,n,g){if(Array.isArray(s))for(let u=0;u<s.length;u++)uI.call(this,Object.assign(Object.assign({},s[u]),{value:n[u],name:g}));else for(const u in s)uI.call(this,Object.assign(Object.assign({},s[u]),{value:n[0][u],name:g,key:u}))}function uI({required:s,rules:n,range:g,value:u,allowEmpty:E,name:m,key:D,customValidator:M}){if(u===void 0){if(s)throw new gs({functionName:m,message:`[${m}] Missing required params: "${D}"`});return}let T="";if(!n.some(P=>{return P===(W=u,Object.prototype.toString.call(W).match(/^\[object (.*)\]$/)[1].toLowerCase());var W})){for(let W=0;W<n.length;W++){let iA=n[W];iA=iA.replace(iA[0],iA[0].toUpperCase()),T+=`${iA}/`}T=T.substring(0,T.length-1);const P=`[${D}] must be type of ${T}, received type: ${function(W){return Reflect.apply(Object.prototype.toString,W,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}(u)}.`;throw new gs({functionName:m,message:P})}if(E===!1){if(Array.isArray(u)&&(u.length===0||typeof u[0]=="string"&&u[0].trim()===""))throw new gs({functionName:m,message:`${D} can not be empty.`});if(typeof u=="string"&&u.trim()==="")throw new gs({functionName:m,message:`${D} can not be empty.`})}if(M&&typeof M=="function"){const P=M(u);if(P!==!0)throw new gs({functionName:m,message:`[${D}] custom validation failed: ${P||"Invalid value"}`})}}const RE=[],Ed={},_l={};function Sr(s,n){ud(Ed[s],s),II(_l[s],n,s),function(g){RE.forEach(u=>{const{interceptor:E,context:m}=u;E.apply(m,[g])})}(s)}function Mc(s,n){RE.push({interceptor:s,context:n})}function Wc(s){const{params:n,auth:g}=s;n&&typeof n=="object"&&Object.assign(_l,n),g&&typeof g=="object"&&Object.assign(Ed,g)}function tn(s){return ye.store.get("commercialConfig").get(s)}class ws{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(n,g)=>{const u=Date.now();g?(this._stepStartTimes.set(`${n}-${g}`,u),ye.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} started at ${new Date(u).toISOString()}`)):(this._workflowStartTimes.set(n,u),ye.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] started at ${new Date(u).toISOString()}`))},success:(n,g)=>{const u=Date.now();if(g){const E=this._stepStartTimes.get(`${n}-${g}`),m=E?u-E:0;this._stepStartTimes.delete(`${n}-${g}`),ye.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] Step ${g} completed successfully at ${new Date(u).toISOString()} (${m}ms)`)}else{const E=this._workflowStartTimes.get(n),m=E?u-E:0;this._workflowStartTimes.delete(n),ye.ssoLog.debug("_executeWorkflowStep",`[Workflow ${n}] completed successfully at ${new Date(u).toISOString()} (${m}ms)`)}},error:(n,g,u)=>{const{ssoLog:E,utils:{safeStringify:m}}=ye,D=Date.now();if(g){const M=this._stepStartTimes.get(`${n}-${g}`),T=M?D-M:0;this._stepStartTimes.delete(`${n}-${g}`),E.error("_executeWorkflowStep",`[Workflow ${n}] Step ${g} failed at ${new Date(D).toISOString()} (${T}ms) ${m(u)}`,{error:u})}else{const M=this._workflowStartTimes.get(n),T=M?D-M:0;this._workflowStartTimes.delete(n),E.error("_executeWorkflowStep",`[Workflow ${n}] failed at ${new Date(D).toISOString()} (${T}ms) ${m(u)}`,{error:u})}}}}static getInstance(){return ws._instance||(ws._instance=new ws),ws._instance}static setInstance(n){ws._instance=n}init(){this._initializeWorkflows()}registerWorkflowStep(n,g,u,E){if(!this._handlers.has(n))return void ye.ssoLog.debug("registerWorkflowStep",`Workflow '${n}' not defined in core`);if(!Ng[n].find(D=>D.stepId===g))return void ye.ssoLog.debug("registerWorkflowStep",`Step '${g}' not defined in workflow '${n}'`);const m=this._handlers.get(n);m.has(g)||m.set(g,E?u.bind(E):u)}executeWorkflow(n,g){return pA(this,void 0,void 0,function*(){if(!this._validateWorkflow(n))return;ye.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Started execution at ${new Date().toISOString()}`);const u=Ng[n],E={},m={cancelled:!1};this._activeWorkflows.set(n,{cancelToken:m});try{const D=new Map;u.forEach(T=>{D.set(T.stepId,T)});const M={workflowName:n,pendingSteps:new Set(u.map(T=>T.stepId)),completedSteps:new Set,runningSteps:new Set,stepMap:D,stepResults:E,data:g,cancelToken:m};yield new Promise((T,P)=>{const W=()=>{if(m.cancelled)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(iA=>!M.runningSteps.has(iA)).forEach(iA=>{M.completedSteps.has(iA)||M.runningSteps.has(iA)||this._executeWorkflowStep(iA,M,{onComplete:()=>{if(M.pendingSteps.size===0)return void T();this._getExecutableSteps({pendingSteps:M.pendingSteps,completedSteps:M.completedSteps,stepMap:M.stepMap,workflowName:n}).filter(EA=>!M.runningSteps.has(EA)).length===0&&M.runningSteps.size===0&&(ye.ssoLog.debug("executeWorkflow",`Workflow ${n} completed with some steps skipped due to dependency failures`),T())},onError:P,onStepComplete:W})})};W()}),ye.ssoLog.debug("executeWorkflow",`[Workflow ${n}] Completed execution at ${new Date().toISOString()}`)}catch(D){ye.ssoLog.error("executeWorkflow",`[Workflow ${n}] Failed execution at ${new Date().toISOString()}`,{error:D})}finally{this._activeWorkflows.delete(n)}})}_executeWorkflowStep(n,g,u){return pA(this,void 0,void 0,function*(){const{workflowName:E,runningSteps:m,stepMap:D,stepResults:M,data:T}=g;m.add(n),this._logWorkflowExecution(E,n,"start");try{const P=D.get(n);let W=null;P?.dependency&&(l(P.dependency)?W=M[P.dependency]:Array.isArray(P.dependency)&&(W={},P.dependency.forEach(EA=>{W[EA]=M[EA]})));const iA=this._handlers.get(E).get(n);if(iA){const EA=yield Promise.resolve(iA({data:T,result:W}));M[n]=EA,this._logWorkflowExecution(E,n,"success")}g.completedSteps.add(n)}catch(P){const W=`[Workflow].${E}.${n}`,{errorCode:iA,errorInfo:EA=`${W} failed`}=P||{},RA=new gs({functionName:W,code:iA,message:EA});ye.ssoLog.error(W,EA,{error:RA}),this._logWorkflowExecution(E,n,"error",P),u.onError(P)}finally{m.delete(n),g.pendingSteps.delete(n),u.onStepComplete(),u.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Ng).forEach(n=>{this._handlers.has(n)||this._handlers.set(n,new Map)})}_cancelWorkFlow(n){const g=this._activeWorkflows.get(n);if(!g)return;const{cancelToken:u}=g;u.cancelled=!0,this._activeWorkflows.delete(n)}_cancelAllWorkflows(){Object.keys(Ng).forEach(n=>{this._cancelWorkFlow(n)})}_validateWorkflow(n){return Ng[n]?!!this._handlers.get(n):!1}_getExecutableSteps(n){const{pendingSteps:g,completedSteps:u,stepMap:E,workflowName:m}=n;return Array.from(g).filter(D=>{const M=E.get(D)||{},{dependency:T,skipIfDependencyMissing:P=!0}=M;if(!T)return!0;if(l(T))return this._isStepRegistered({workflowName:m,stepId:T})?u.has(T):!P;if(h(T)){if(T.filter(W=>!this._isStepRegistered({workflowName:m,stepId:W})).length>0&&P)return!1;for(const W of T)if(!u.has(W))return!1;return!0}return!1})}_isStepRegistered(n){var g;const{workflowName:u,stepId:E}=n;return(g=this._handlers.get(u))===null||g===void 0?void 0:g.has(E)}_logWorkflowExecution(n,g,u,E){this._logHandlers[u](n,g)}}const Ca=new Map,Xr=({type:s,groupID:n})=>s===Lo.GRP_COMMUNITY||`${n}`.startsWith(sa.COMMUNITY)&&!`${n}`.includes(sa.TOPIC),zc=(s="")=>{const n=s.startsWith("GROUP")?s.replace("GROUP",""):s;return n.startsWith(sa.COMMUNITY)&&`${n}`.includes(sa.TOPIC)},dd="openim",Zg="million_group_open_http_svc";function gg(s){return pA(this,void 0,void 0,function*(){const{servcmd:n,data:g}=function(m){const{data:D}=m;return wE(D)||Xg(D)}(s)?function(m){let{servcmd:D,data:M}=m;return Xg(M)?function(T){const{servcmd:P,data:W}=T;let{GroupId:iA=""}=W;const EA=iA;return[iA]=EA.split(sa.TOPIC),{servcmd:qn(P),data:Object.assign(Object.assign({},W),{GroupId:iA,TopicId:EA})}}(m):(wE(M)&&(D=qn(D)),{servcmd:D,data:M})}(s):s,u=ye.common.generateProtocolData({servcmd:n,data:g}),E=`${u.head.seq}${n}`;return ye.channel.sendPacket(u,{requestId:E,timeout:s.timeout})})}function wE(s){const{Type:n,GroupId:g,GroupIdList:u=[]}=s,E=g||u[0]||"";return Xr({type:n,groupID:E})}function Xg(s){const{GroupId:n=""}=s;return zc(n)}function qn(s){if(s.includes(dd))return s;const n=s.split(".")[1];return`${Zg}.${n}`}function Ar(){var s;return(s=ye.store.get("login"))===null||s===void 0?void 0:s.userId}const Fa=s=>h(s)||f(s),Cd=(s,n,g,u)=>{if(!Fa(s)||!Fa(n))return 0;let E=0;const m=Object.keys(n);let D;for(let M=0,T=m.length;M<T;M++)if(D=m[M],!(r(n[D])||g&&g.includes(D)))if(Fa(s[D])&&Fa(n[D]))E+=Cd(s[D],n[D],g,u);else{if(u&&u.includes(n[D]))continue;s[D]!==n[D]&&(s[D]=n[D],E+=1)}return E},lC={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 Gu(s){var n;const g=wl()?"en":"zh";return((n=lC[g])===null||n===void 0?void 0:n[s])||s}const KI={[Lo.MSG_IMAGE]:"MSG_IMAGE",[Lo.MSG_LOCATION]:"MSG_LOCATION",[Lo.MSG_AUDIO]:"MSG_AUDIO",[Lo.MSG_VIDEO]:"MSG_VIDEO",[Lo.MSG_FILE]:"MSG_FILE",[Lo.MSG_CUSTOM]:"MSG_CUSTOM",[Lo.MSG_GRP_TIP]:"MSG_GRP_TIP",[Lo.MSG_GRP_SYS_NOTICE]:"MSG_GRP_SYS_NOTICE",[Lo.MSG_FACE]:"MSG_FACE",[Lo.MSG_MERGER]:"MSG_MERGER",[Lo.MSG_STREAM]:"MSG_STREAM"},Zc=(s,n)=>{if(r(n))return"";if(s===Lo.MSG_TEXT)return n.text||"";const g=KI[s];return g?Gu(g):""},Xc=[{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}],jI="im_sdk_config_mgr.fetch_config",EI="im_sdk_config_mgr.push_configv2",$c="cloud-config",Al=2996,va=new class{init(s){this.core=s}};function bg(s){return pA(this,void 0,void 0,function*(){const{sdkAppId:n}=va.core.store.get("instance")||{},g=va.core.helper.generateProtocolData({servcmd:jI,data:{uint32_sdkappid:n,uint64_version:s}}),u=`${g.head.seq}${jI}`;return va.core.channel.sendPacket(g,{requestId:u})})}var ys=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:u,constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},channel:D}=s;n.subscribeInnerEvent(EI,this._handlePushedConfig,this),u.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),u.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(Xc),D.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(s){return pA(this,void 0,void 0,function*(){var n;const g={code:0,data:""};return s&&(g.data=((n=this._core.store.get("cloudConfig"))===null||n===void 0?void 0:n[s])||""),g})}checkMethodCallOverLimit(s){if(!this._cmdFrequencyLimitMap.has(s))return;if(!this._methodCallFrequencyMap.has(s))return void this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});const{count:n,interval:g}=this._cmdFrequencyLimitMap.get(s);let{startTime:u,methodCallCounter:E}=this._methodCallFrequencyMap.get(s);if(Date.now()-u>1e3*g)this._methodCallFrequencyMap.set(s,{startTime:Date.now(),methodCallCounter:1});else if(E+=1,this._methodCallFrequencyMap.set(s,{startTime:u,methodCallCounter:E}),E>n)throw new this._core.helper.ChatError({code:Al,replacement1:s})}_handlePushedConfig(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.info("_handlePushedConfig",g(s)),yield this._updateCloudConfig(s)})}_handleLoginSuccess(){return pA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{if(this._canFetch()){const g=yield bg(this._version);s.info("_fetchCloudConfigIfLogin",n(g)),yield this._updateCloudConfig(g)}this._core.helper.taskScheduler.addTask({id:$c,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(g){s.debug("_fetchCloudConfigIfLogin",n(g))}})}_fetchCloudConfigIfReady(){return pA(this,void 0,void 0,function*(){const{ssoLog:s,utils:{safeStringify:n}}=this._core;if(this._canFetch())try{const g=yield bg(this._version);s.info("_fetchCloudConfigIfReady",n(g)),yield this._updateCloudConfig(g)}catch(g){s.error("_fetchCloudConfigIfReady",n(g))}})}_updateCloudConfig(s){return pA(this,void 0,void 0,function*(){const n=this._parseCloudConfig(s);n&&(this._core.store.set("cloudConfig",n),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,n),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config:n}}))})}_canFetch(){const{isLoggedIn:s}=this._core.store.get("login")||{};return s&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(s){const{int32_error_code:n,str_error_message:g,str_json_config:u,uint32_expired_time:E,uint32_sdkappid:m,uint64_version:D}=s;let M=null;if(n===0){if(this._version!==D)try{M=JSON.parse(u),this._version=D}catch{}this._expirationTime=Date.now()+1e3*E}else this._expirationTime=n===void 0?Date.now()+36e5:Date.now()+12e4;return M}_parseCmdFreqLimit(){return pA(this,void 0,void 0,function*(){var s;let n=(s=yield this.getServerConfig("cmd_frequency_limit"))===null||s===void 0?void 0:s.data;const{isEmpty:g}=this._core.utils;if(!g(n))try{n=JSON.parse(n),this._updateCmdFreqLimitMap(n)}catch(u){console.warn(u)}})}_updateCmdFreqLimitMap(s){s.forEach(n=>{this._cmdFrequencyLimitMap.set(n.cmd,{interval:n.interval,count:n.count})})}_reset(){this._core.helper.taskScheduler.removeTask($c),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Xc),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(EI,this._handlePushedConfig,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}};class Kn{constructor(n=0,g=0){this.high=n,this.low=g}equal(n){return n!==null&&this.low===n.low&&this.high===n.high}toString(){const n=Number(this.high).toString(16);let g=Number(this.low).toString(16);if(g.length<8){let u=8-g.length;for(;u;)g=`0${g}`,u--}return n+g}}const vc={SEARCH_GRP_SNS:new Kn(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new Kn(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new Kn(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new Kn(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new Kn(0,Math.pow(2,6)).toString(),USER_STATUS:new Kn(0,Math.pow(2,7)).toString(),CONV_MARK:new Kn(0,Math.pow(2,9)).toString(),CONV_GROUP:new Kn(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new Kn(0,Math.pow(2,11)).toString(),MSG_EXT:new Kn(0,Math.pow(2,13)).toString(),GRP_COUNTER:new Kn(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new Kn(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new Kn(Math.pow(2,7)).toString(),PLUGIN_CS:new Kn(Math.pow(2,8)).toString(),PLUGIN_PUSH:new Kn(Math.pow(2,9)).toString(),PLUGIN_BOT:new Kn(Math.pow(2,10)).toString(),MSG_REACTION:new Kn(Math.pow(2,16)).toString(),FOLLOW:new Kn(Math.pow(2,20)).toString()},WI="CommercialConfig",zI="commercial-config";var _E=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}install(s){this._core=s;const{helper:n,notificationCenter:g,constants:{WORKFLOW_NAME:u,WORKFLOW_STEP:E,InnerEvent:m}}=s;g.subscribeInnerEvent(m.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),g.subscribeInnerEvent(m.LOGOUT,this._handleLogout,this),g.subscribeInnerEvent(m.DESTROY,this._dispose,this),n.registerWorkflowStep(u.SYNC_SERVER_INFO_AFTER_LOGIN,E.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),s.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this),s.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(s){return pA(this,void 0,void 0,function*(){const n=parseInt(s,10).toString(2),{length:g}=n;let u,E=!0;for(let m=g-1,D=0;m>=0;m--,D++)if(n.charAt(m)==="1"&&(u=D<32?new Kn(0,2**D).toString():new Kn(2**(D-32),0).toString(),!this._featureMap.get(u))){E=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${WI}.isFeatureEnabled decimalNumber:${s} key:${u} ret:${E}`),{code:0,data:{enabled:E}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return pA(this,void 0,void 0,function*(){var s;const{ssoLog:n,utils:{safeStringify:g},common:{buildAndSendPacket:u}}=this._core;try{this._isFetching=!0;const E=yield u({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:(s=this._core.store.get("instance"))===null||s===void 0?void 0:s.sdkAppId}});E&&(this._parseCommercialConfig(E),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(E){n.error("_fetchAndParseCommercialConfig",g(E))}finally{this._isFetching=!1}})}_syncCommercialConfig(s){return pA(this,void 0,void 0,function*(){const{purchaseBits:n}=s?.data||{};n&&(this._parsePurchaseBits(n),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:zI,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})})}_canFetch(){var s;const n=(s=this._core.store.get("login"))===null||s===void 0?void 0:s.isLoggedIn,g=Date.now()>=this._expirationTime;return n&&!this._isFetching&&g}_handlePushedConfig(s){s?.body&&(this._parseCommercialConfig(s.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return pA(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(s){const{ssoLog:n}=this._core;if(typeof s!="object")return;const{int32_error_code:g,str_error_message:u,str_purchase_bits:E,uint32_expired_time:m}=s;g===0?(this._parsePurchaseBits(E),this._expirationTime=Date.now()+1e3*m):g===void 0?(n.warn("_parseCommercialConfig",`${WI}._parseCommercialConfig failed. Invalid message format:`,s),this._expirationTime=Date.now()+36e5):(n.warn("_parseCommercialConfig",`${WI}._parseCommercialConfig errorCode:${g} errorMessage:${u}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(s){return s&&typeof s=="string"&&s.length>=1&&s.length<=64&&/[01]{1,64}/.test(s)}_parsePurchaseBits(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(this._isValidPurchaseBits(s)){this._purchaseBits=s,this._featureMap.clear(),this._methodKeyMap.clear();let u=null;for(let E=s.length-1,m=0;E>=0;E--,m++)if(u=m<32?new Kn(0,2**m).toString():new Kn(2**(m-32),0).toString(),s[E]==="1"){this._featureMap.set(u,!0);const D=this._getKeyByValue(vc,u);D&&this._methodKeyMap.set(D,!0)}else{this._featureMap.set(u,!1);const D=this._getKeyByValue(vc,u);D&&this._methodKeyMap.set(D,!1)}}else n.warn("_parsePurchaseBits",`${WI}.parsePurchaseBits invalid purchases:${g(s)}`)}_getKeyByValue(s,n){const g=Object.entries(s).find(([u,E])=>E===n);return g?g[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(zI),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}},rh=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,channel:u}=this._core;n.subscribeInnerEvent(g.OVERLOAD_PUSH,this._handleOverLoadPush,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),u.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(s){if(!this._serverOverloadInfoMap.has(s))return;const{overloadStartTimestamp:n,delaySeconds:g}=this._serverOverloadInfoMap.get(s);if(Date.now()-n<=1e3*g)throw new this._core.helper.ChatError({functionName:s,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(s)}_handleOverLoadPush(s){const{OverLoadServCmd:n,DelaySecs:g}=s;this._serverOverloadInfoMap.set(n,{overloadStartTimestamp:Date.now(),delaySeconds:g})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.OVERLOAD_PUSH,this._handleOverLoadPush,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}},IC=new class{constructor(){this.name="ConfigCenter"}install(s){va.init(s),ys.install(s),_E.install(s),rh.install(s)}},ah=new class{constructor(){this.name="ErrorMessage",this._core=null}install(s){return pA(this,void 0,void 0,function*(){if(this._core=s,this._canFetch()){const n=yield this._fetchErrorMessage();if(!n)return;const g=this._parseResponse(n);this._saveErrorMessage(g)}})}_canFetch(){const s=this._core.store.getStorage("errorMessage");return!s||this._isExpired(s)}_saveErrorMessage(s){this._core.store.setStorage("errorMessage",{errorMessage:s,errorMessageSavedTime:new Date().getTime()})}_fetchErrorMessage(){return pA(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(s){console.error(s)}})}_isExpired(s){if(!s)return!0;const{errorMessageSavedTime:n}=s;return n&&new Date().getTime()-n>=6048e5}_parseResponse(s){if(typeof s=="string"){const n=s.split(`;
|
||
`),g={},u=new RegExp(/'/g);for(let E=0;E<n.length;E++){const m=n[E].indexOf(":"),D=n[E].slice(0,m);let M=n[E].slice(m+1);if(!D.startsWith("//")){if(M==="")continue;M=M.replace(u,""),g[D]=M}}return g}}};function el(s,n){return pA(this,void 0,void 0,function*(){const{cookie:g,syncFlag:u,syncTriggerEvent:E}=s,m="openim.getmsg",D=n.helper.generateProtocolData({servcmd:m,data:{Cookie:g,SyncFlag:u,IsOnlineSync:E,NeedAbstract:1,NeedSignaling:1,NeedCachedMsg:1}}),M=`${D.head.seq}${m}`;try{const T=yield n.channel.sendPacket(D,{requestId:M});if(!T)return null;const{C2CPairUnreadCount:P,C2CRemainingUnreadCount:W,EventArray:iA}=T,{unreadMessageList:EA,revokedMessageList:RA}=function(kA,xA){const LA=[],SA=[];return kA?.forEach(OA=>{var JA,ae,re;const _i=function(Ti,Lt){const{From_Account:Ni,From_AccountHeadurl:cs,From_AccountNick:Me,IsNeedReadReceipt:mt,MsgBody:UA,MsgClientTime:si,MsgRandom:_s,MsgSeq:Gi,MsgTimeStamp:Or,SendMsgControl:xi,SupportMessageExtension:gr,To_Account:Tt,TinyId:Nt,MsgCheckResult:AE,CloudCustomData:ln,IsPeerRead:Bo,MsgFlagBits:Il,MsgVersion:_C,EventArray:_r}=Ti;return{from:Ni,avatar:cs,nick:Me,needReadReceipt:mt===1,readReceiptSentByPeer:Bo,clientTime:si,messageFlagBits:Il,random:_s,sequence:Gi,time:Or,messageControlInfo:xi,isSupportExtension:gr,to:Tt,tinyID:Nt,checkResult:AE,cloudCustomData:ln,messageVersion:_C,eventArray:_r,elements:Lt.message.messageHelper.parseServerPushMessageElement(UA)}}(OA,xA);if(!((re=(ae=(JA=OA?.EventArray)===null||JA===void 0?void 0:JA[0])===null||ae===void 0?void 0:ae.hasOwnProperty)===null||re===void 0)&&re.call(ae,"C2cNotifyMsgArray"))SA.push(...function(Ti){var Lt;const Ni=[];return(Lt=Ti.EventArray)===null||Lt===void 0||Lt.forEach(cs=>{var Me,mt;const{C2cNotifyMsgArray:UA}=cs,si=(mt=(Me=UA?.[0])===null||Me===void 0?void 0:Me.WithdrawC2cMsgNotify)===null||mt===void 0?void 0:mt.C2cWithdrawInfoArray;Array.isArray(si)&&Ni.push(...si)}),Ni}(OA));else{const Ti=xA.message.messageFactory.createMessage(Object.assign(Object.assign({},_i),{conversationType:"C2C",flow:"in"})),{elements:Lt}=_i;Ti.setElement(Lt),LA.push(Ti)}}),{unreadMessageList:LA,revokedMessageList:SA}}(T.MsgList,n);return{syncFlag:T?.SyncFlag,unreadMessageList:EA,revokedMessageList:RA,unreadCountList:P,overflowUnreadCountList:W,cookie:T?.Cookie,groupTipList:iA}}catch(T){console.warn(T)}})}var kg,no;(function(s){s[s.START_SYNC=0]="START_SYNC",s[s.SYNCING=1]="SYNCING",s[s.SYNC_COMPLETE=2]="SYNC_COMPLETE"})(kg||(kg={})),function(s){s[s.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",s[s.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(no||(no={}));var uC=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}install(s){this._core=s;const{constants:n}=s;s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),s.helper.registerWorkflowStep(n.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,n.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.SOCKET_DISCONNECTED,this._handleDisconnect,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(s){return pA(this,void 0,void 0,function*(){const{isAfterReOnline:n=!1,isAfterNewMessageReceived:g=!1,isAfterLogin:u=!1}=s||{};let E=kg.START_SYNC;const m=[],D=[],M=[],T=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:E});){const P=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:E,syncTriggerEvent:g?no.NEW_MESSAGE_RECEIVED:no.LOGIN_SUCCESS});if(!P)break;const{unreadMessageList:W=[],revokedMessageList:iA=[],overflowUnreadCountList:EA,unreadCountList:RA,groupTipList:kA}=P;if(this._cookie=P?.cookie||"",E=P?.syncFlag,this._parseAndSaveUnreadMessageList(W),M.push(...iA),this._updateConversationUnreadOptions({unreadCountList:RA,overflowUnreadCountList:EA,conversationUpdateFieldList:m}),Array.isArray(kA)&&D.push(...kA),n){const{messages:xA}=this._handleNewMessageList(W);T.push(...xA)}}return n?{conversationUpdateFieldList:m,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D,messages:T,isUnreadC2CMessage:!0}:{conversationUpdateFieldList:m,isInstantMessage:!u,isUnreadC2CMessage:!0,revokedMessageList:M,unreadMessageMap:this._unreadDBMessageMap,groupTipList:D}})}_syncUnreadDBMessageAfterLogin(){return pA(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(s){return pA(this,void 0,void 0,function*(){if(s.data.Flag===1)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})})}_updateConversationUnreadOptions(s){const{unreadCountList:n,overflowUnreadCountList:g,conversationUpdateFieldList:u}=s,{constants:{OuterConstant:{CONV_C2C:E,CONV_SYSTEM:m}}}=this._core;n?.forEach(D=>{const{From_Account:M,UnreadCount:T}=D;if(M!==m){const P=u.find(({conversationID:W})=>W===`${E}${M}`);P?P.unreadCount=T:u.push({conversationID:`${E}${M}`,unreadCount:T,type:E})}}),g?.forEach(D=>{const{From_Account:M,LastMsgTime:T}=D;M!==m&&(u.find(({conversationID:P})=>P===`${E}${M}`)||u.push({conversationID:`${E}${M}`,type:E,lastMsgTime:T}))})}_syncUnreadDBMessageAfterReOnline(){return pA(this,void 0,void 0,function*(){return this._syncUnreadMessage({isAfterReOnline:!0})})}_updateMessageProfile(s){var n;const{messageDataHandler:g}=this._core.message||{},u=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{from:E,nick:m,avatar:D,conversationID:M=""}=s;if(E!==u){const T=g.getLatestMsgSentByPeer(M);if(T){const{nick:P,avatar:W}=T;m&&D?m===P&&D===W||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!1}):(s.nick=P,s.avatar=W)}}else{const T=g.getLatestMsgSentByMe(M);!T||m===T.nick&&D===T.avatar||g.updateNickAndAvatarOfSentMessage({conversationID:M,latestNick:m,latestAvatar:D,isSentByMe:!0})}}_handleNewMessageList(s){const{messageDataHandler:n}=this._core.message||{},g=new Map,u=[];return s.forEach(E=>{this._updateMessageProfile(E);let m=E.isModified===1;if(n.isMessageSentByCurrentInstance(E)?E.isModified=m:m=!1,E.isOnlineMessage())E._onlineOnlyFlag=!0,n.isMessageSentByCurrentInstance(E)||u.push(E);else if(this._shouldStoreUnreadMessage(E)){if(n.storeConversationMessage(E)){const{conversationID:D,conversationType:M,conversationSubType:T,flow:P,_isExcludedFromUnreadCount:W,_isExcludedFromLastMessage:iA}=E,EA=iA?"":E;g.has(D)?(g.get(D).lastMessage=EA,P==="in"&&(W||g.get(D).unreadCount++)):g.set(D,{conversationID:D,type:M,subType:T,unreadCount:W||P!=="in"?0:1,lastMessage:EA})}n.isMessageSentByCurrentInstance(E)&&!m||u.push(E)}}),{messages:u,conversationOptions:g}}_shouldStoreUnreadMessage(s){var n;const{conversationID:g}=s,{message:u,appStore:E,utils:{isEmpty:m}}=this._core||{},D=Array.from(((n=E.conversationStore.getConversationMap())===null||n===void 0?void 0:n.keys())||[]),M=this._getLocalLastMessageTime(g);return!u.messageDataHandler.isInMessageList(s)&&D.includes(g)&&this._localConversationIDListBeforeDisconnect.includes(g)&&!m(M)}_fetchUnreadDBMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;try{n.debug("_fetchUnreadDBMessage",`unread-message-synchronizer._fetchUnreadDBMessage options:${g(s)}`);const E=yield el(s,this._core);if(!E)return null;const{syncFlag:m,unreadMessageList:D,revokedMessageList:M,cookie:T,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}=E;return this._parseAndSaveUnreadMessageList(D),{syncFlag:m,cookie:T,unreadMessageList:D,revokedMessageList:M,unreadCountList:P,overflowUnreadCountList:W,groupTipList:iA}}catch(u){console.log(u)}})}_canContinueSync({cookie:s,syncFlag:n}){var g;return n===kg.START_SYNC||n===kg.SYNCING&&!(!((g=this._core)===null||g===void 0)&&g.helper.isEmpty(s))}_parseAndSaveUnreadMessageList(s){s.forEach(n=>{const{ID:g}=n;this._unreadDBMessageMap.set(g,n)})}_handleDisconnect(){var s;const{appStore:n}=this._core;this._localConversationIDListBeforeDisconnect=Array.from(((s=n.conversationStore.getConversationMap())===null||s===void 0?void 0:s.keys())||[])}_getLocalLastMessageTime(s){const{message:n}=this._core,g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.time}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}},TE=new class{init(s){var n;this._core=s,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),document?.addEventListener("visibilitychange",this._visibilityChangeHandler),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var s,n;const g=document?.visibilityState==="visible";(s=this._core)===null||s===void 0||s.store.set("activityMonitor",{isActive:g}),(n=this._core)===null||n===void 0||n.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:g})}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){document?.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},NE=new class{init(s){var n;this._core=s,this._bindAppActivityEvent(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var s,n,g,u,E;const{MINI_APP_NAMESPACE:m,IN_TT_MINI_GAME:D,IN_WX_MINI_GAME:M}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};D||M?((n=m?.onShow)===null||n===void 0||n.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(g=m?.onHide)===null||g===void 0||g.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})})):((u=m?.onAppShow)===null||u===void 0||u.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!0}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(E=m?.onAppHide)===null||E===void 0||E.call(m,()=>{var T,P;(T=this._core)===null||T===void 0||T.store.set("activityMonitor",{isActive:!1}),(P=this._core)===null||P===void 0||P.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var s;(s=this._core)===null||s===void 0||s.store.clear("activityMonitor")}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),this._reset()}},hd=new class{init(s){const{IN_MINI_APP:n,IN_WX_MINI_PLUGIN:g}=s.helper;g||(n?NE.init(s):TE.init(s))}};const GE="none",tl="online";var dI=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(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(s){var n,g;const{isConnected:u,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:u,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:u,networkType:E})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:tl})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:GE})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},bu=new class{init(s){this._core=s,this._activateNetworkMonitoring(),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:s}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),s.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(s){console.error(s)}})}_deactivateNetworkMonitoring(){if(this._mpNetworkStatusCallback!==null){const{utils:{MINI_APP_NAMESPACE:s}}=this._core;s.offNetworkStatusChange&&s.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null}}_onNetworkStatusChange(s){var n,g;const{isConnected:u,networkType:E}=s;(n=this._core)===null||n===void 0||n.store.set("netWorkMonitor",{isNetworkOnline:u,networkType:E}),(g=this._core)===null||g===void 0||g.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:u,networkType:E})}_reset(){var s;this._deactivateNetworkMonitoring(),(s=this._core)===null||s===void 0||s.store.clear("netWorkMonitor")}_dispose(){var s,n;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent((n=this._core)===null||n===void 0?void 0:n.InnerEvent.DESTROY,this._dispose,this),this._reset()}},ku=new class{init(s){const{IN_MINI_APP:n}=s.utils;n?bu.init(s):dI.init(s)}},EC=new class{constructor(){this.name="SystemStateMonitor"}install(s){hd.init(s),ku.init(s)}};const Rr=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.*"]),cg="tui_room_svr.*";var Rc=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=Rr}install(s){this._core=s;const{notificationCenter:n,InnerEvent:g,helper:u}=s;n.subscribeInnerEvent(g.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),n.subscribeInnerEvent(g.LOGOUT,this._reset,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this),n.subscribeInnerEvent("im_open_push.msg_push",n.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),u.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),u.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(s){return pA(this,void 0,void 0,function*(){const n="transferBusinessCommand";try{const{serviceCommand:g=cg}=s||{};if(!this._isValidTransferredCommand(g))throw new this._core.helper.ChatError({code:2995,functionName:n});return{code:0,data:(yield function(E,m){return pA(this,void 0,void 0,function*(){const{helper:D,channel:M}=m,{serviceCommand:T=cg,data:P}=E||{};let W={};try{W=typeof P=="string"?JSON.parse(P):P}catch(RA){console.warn(RA)}const iA=D.generateProtocolData({servcmd:T,data:W}),EA=`${iA.head.seq}${T}`;return M.sendPacket(iA,{requestId:EA,shouldRejectOnError:!1})})}(s,this._core))||{}}}catch(g){throw console.warn(g),new this._core.helper.ChatError({code:g?.errorCode,message:g?.errorInfo,data:{},functionName:n})}})}_onCloudConfigUpdate(s={}){try{if(typeof s.rtc_cmd!="string")return;const n=JSON.parse(s.rtc_cmd);Array.isArray(n)&&(this._transferredCommands=new Set([...this._transferredCommands,...n]))}catch(n){console.log(n)}}_isValidTransferredCommand(s=""){const n=`${s?.split(".")[0]}.*`;return this._transferredCommands.has(n)}_onServerPushBusinessCommand(s){const{OuterEvent:n,notificationCenter:g}=this._core,{MsgContent:u}=s||{},{ROOM_CUSTOM_DATA_RECEIVED:E}=n;g.emitOuterEvent(E,{name:E,data:u})}_reset(){this._transferredCommands=Rr}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;this._reset(),s.unSubscribeInnerEvent(n.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this),s.unSubscribeInnerEvent("im_open_push.msg_push",s.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const Lu=1,Tl=2,Bd=3,$r=4,CI=5,_n="TIMCustomElem",dC="C2C",il="GROUP",Qd="invite",hI="accept",Oa="cancel",CC="reject",Pa="modifyInvitation",ur="signaling",pd=8010,Uu="signaling-timeout";function Er(s){return s.filter(n=>{if(n.type===_n){const{cloudCustomData:g="",payload:{data:u=""}={}}=n,E=g.match(/"type":"tsignaling"/),m=u.match(/inviteID/),D=u.match(/actionType/);return E||m&&D}return!1})}function wc(s){const{data:n}=s.payload;try{return JSON.parse(n)}catch(g){return console.error(g),null}}function ol(s,n){return s.toString(16).padStart(n,"0")}function Lg(s){if(s<0||s>53)throw new Error("Number of digits must be between 0 and 53");if(s<=30)return Math.floor(Math.random()*(1<<s));const n=s-30;return Math.floor(Math.random()*(1<<n))*(1<<30)+Math.floor(Math.random()*(1<<30))}var Oo=new class{constructor(){this._onlineSignalingMap=new Map,this._isSignalingListening=!1}init(s){this._core=s,s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this)}getOnlineSignalingMap(){return this._onlineSignalingMap}hasSignaling(s){return this._onlineSignalingMap.has(s)}getSignaling(s){return this._onlineSignalingMap.get(s)}saveSignaling(s,n){return this._onlineSignalingMap.set(s,n)}removeSignaling(s){return this._onlineSignalingMap.delete(s)}isInvitationValid(s){const n=`${ur}.isInvitationValid`,{inviteID:g,groupID:u,inviter:E}=s,m=E===this._core.common.getCurrentUserID();if(!this._onlineSignalingMap.has(g))return!1;const{inviteeList:D}=this._onlineSignalingMap.get(g);if(console.log(`${n} inviteID:${g} inviteeList:${D} groupID:${u}`),u){if(m)return D.length>0;const M=this._core.common.getCurrentUserID();return D.includes(M)}return!0}updateSignaling(s){const n=`${ur}.updateSignaling`,{inviteID:g,inviter:u,inviteeList:E,groupID:m}=s;if(console.log(`${n} inviteID:${g} inviter:${u} groupID:${m}`),m&&this.hasSignaling(g)){const D=E[0],{inviteeList:M}=this._onlineSignalingMap.get(g);M.includes(D)&&(M.splice(M.indexOf(D),1),console.log(`${n} remove ${D}. localInviteeList.length:${M.length}`)),M.length===0&&this.removeSignaling(g)}else this.removeSignaling(g)}setSignalingListenStatus(s){this._isSignalingListening=s}getSignalingListenStatus(){return this._isSignalingListening}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),this._isSignalingListening=!1}_reset(){this._onlineSignalingMap.clear()}},$g=new class{init(s){this._core=s}createInviteSignaling(s){const n=this._generateInviteID(),g=this._createInviteSignalingData(Object.assign(Object.assign({},s),{inviteID:n})),{groupID:u,inviteeList:E}=g,m=u||E[0];return{signaling:this._createSignaling(g,m),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createAcceptSignaling(s){const n=this._createAcceptSignalingData(s),{groupID:g,inviter:u}=n,E=g||u;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createCancelSignaling(s){const n=this._createCancelSignalingData(s),{groupID:g,inviteeList:u}=n,E=g||u[0];return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createRejectSignaling(s){const n=this._createRejectSignalingData(s),{groupID:g,inviter:u}=n,E=g||u;return{signaling:this._createSignaling(n,E),signalingData:n,signalingExtensionOptions:this._createSignalingExtensionOptions(s)}}createTimeoutSignaling(s){const{isInviter:n=!1}=s,g=this._createTimeoutSignalingData(s),{groupID:u,inviteeList:E,inviter:m}=g,D=u||(n?E[0]:m);return{signaling:this._createSignaling(g,D),signalingData:g,signalingExtensionOptions:this._createSignalingExtensionOptions(g)}}_createSignalingExtensionOptions(s){var n,g;const{data:u="",onlineUserOnly:E,inviteID:m="",offlinePushInfo:D,actionType:M}=s,T=((g=(n=Oo.getSignaling(m))===null||n===void 0?void 0:n.signaling)===null||g===void 0?void 0:g._onlineOnlyFlag)||!1;return{onlineUserOnly:E||T,offlinePushInfo:D,messageControlInfo:this._createMessageControlInfo(u,M)}}_createMessageControlInfo(s,n){const g=n===CI&&!!s.match(/excludeTimeoutSignalingFromHistoryMessage/),u=!!s.match(/excludeFromHistoryMessage/)||!!s.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:g||u,excludedFromLastMessage:g||u}}_createInviteSignalingData(s){const n=`${ur}._createInviteSignalingData`,{userID:g,timeout:u=0,groupID:E="",inviteeList:m=[]}=s,D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Lu,inviter:D,inviteeList:E?m:[g],timeout:u});return console.log(`${n} signalingData:`,M),M}_createAcceptSignalingData(s){const n=`${ur}._createAcceptSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Bd,groupID:m,inviter:E,inviteeList:[u]});return console.log(`${n} signalingData:`,D),D}_createCancelSignalingData(s){const n=`${ur}._createCancelSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviteeList:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:Tl,groupID:m,inviter:u,inviteeList:E});return console.log(`${n} signalingData:`,D),D}_createRejectSignalingData(s){const n=`${ur}._createRejectSignalingData`,{inviteID:g}=s,u=this._core.common.getCurrentUserID(),{inviter:E,groupID:m}=Oo.getSignaling(g),D=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:$r,groupID:m,inviter:E,inviteeList:[u]});return console.log(`${n} signalingData:`,D),D}_createTimeoutSignalingData(s){const n=`${ur}._createTimeoutSignalingData`,{isInviter:g=!1,inviteID:u}=s,{inviteeList:E,inviter:m}=Oo.getSignaling(u),D=this._core.common.getCurrentUserID(),M=Object.assign(Object.assign({},this._generateBaseSignalData(s)),{actionType:CI,inviter:m,inviteeList:g?E:[D]});return console.log(`${n} signalingData:`,M),M}_createSignaling(s,n){var g,u,E;const{groupID:m=""}=s,D={to:n,conversationType:m?il:dC,priority:"High",payload:{data:JSON.stringify(s)}};return(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(D)}_generateInviteID(){return[ol(Lg(32),8),ol(Lg(16),4),ol(16384|Lg(12),4),ol(32768|Lg(14),4),ol(Lg(48),12)].join("-")}_generateBaseSignalData(s){const{data:n="",inviteID:g="",groupID:u=""}=s;return{businessID:1,timeout:0,data:n,inviteID:g,groupID:u}}},Za=new class{constructor(){this._isProcessingSignaling=!1}init(s){this._core=s,s.helper.registerApi({apiName:"invite",context:this}),s.helper.registerApi({apiName:"accept",context:this}),s.helper.registerApi({apiName:"cancel",context:this}),s.helper.registerApi({apiName:"reject",context:this}),s.helper.registerApi({apiName:"modifyInvitation",context:this}),s.helper.registerApi({apiName:"getSignalingInfo",context:this}),s.helper.registerApi({apiName:"addSignalingListener",context:this}),s.helper.registerApi({apiName:"removeSignalingListener",context:this}),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this)}invite(s){return pA(this,void 0,void 0,function*(){var n;try{this._validateBeforeInvite(s);const{signaling:g,signalingData:u,signalingExtensionOptions:E}=$g.createInviteSignaling(s),m=yield this._sendSignaling(g,E);if(m?.code===0){const{inviteID:D,timeout:M}=u;return Oo.saveSignaling(D,Object.assign(Object.assign({},u),{signaling:g})),M>0&&((n=this._core)===null||n===void 0||n.helper.taskScheduler.addOnceTask({id:`${Uu}-${D}`,intervalMs:1e3*(M+5),callback:this.handleInvitationExpiryTimer.bind(this,D)})),Object.assign(Object.assign({},m),{inviteID:D})}return m}catch(g){throw g}})}accept(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeAccept(n),this._isProcessingSignaling=!0;const{signaling:g,signalingData:u,signalingExtensionOptions:E}=$g.createAcceptSignaling(s),m=yield this._sendSignaling(g,E);return m?.code===0?(Oo.updateSignaling(u),Object.assign(Object.assign({},m),{inviteID:n})):m}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}cancel(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeCancel(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:u}=$g.createCancelSignaling(s),E=yield this._sendSignaling(g,u);return E?.code===0?(Oo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}reject(s){return pA(this,void 0,void 0,function*(){try{const{inviteID:n}=s;this._validateBeforeReject(n),this._isProcessingSignaling=!0;const{signaling:g,signalingExtensionOptions:u}=$g.createRejectSignaling(s),E=yield this._sendSignaling(g,u);return E?.code===0?(Oo.removeSignaling(n),Object.assign(Object.assign({},E),{inviteID:n})):E}catch(n){throw n}finally{this._isProcessingSignaling=!1}})}modifyInvitation(s){return pA(this,void 0,void 0,function*(){var n,g;const{inviteID:u,data:E}=s;let m="";try{this._validateBeforeModifyInvitation(u);const D=Oo.getSignaling(u),{signaling:M}=D,T=Do(D,["signaling"]);m=M.payload.data,T.data=E,M.payload.data=JSON.stringify(T);const P=yield(g=(n=this._core)===null||n===void 0?void 0:n.message.messageAction)===null||g===void 0?void 0:g.modifyMessage(M);return Oo.hasSignaling(u)&&Oo.saveSignaling(u,Object.assign(Object.assign({},T),{signaling:M})),P}catch(D){if(m){const{signaling:M}=Oo.getSignaling(u);M.payload.data=m}throw D}})}getSignalingInfo(s){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(Er([s]).length===0)return;const u=wc(s),E={businessID:u.businessID||1,inviteID:u.inviteID,groupID:u.groupID||"",inviter:u.inviter||"",inviteeList:u.inviteeList||[],data:u.data||"",actionType:u.actionType||Lu,timeout:u.timeout||0};return n.debug(`${ur} getSignalingInfo ${g(E)}`),E}addSignalingListener(s,n,g){var u,E;s===((u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED)&&Oo.setSignalingListenStatus(!0),(E=this._core)===null||E===void 0||E.notificationCenter.subscribeOuterEvent(s,n,g)}removeSignalingListener(s,n,g){var u,E;s===((u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED)&&Oo.setSignalingListenStatus(!1),(E=this._core)===null||E===void 0||E.notificationCenter.unSubscribeOuterEvent(s,n,g)}handleInvitationExpiryTimer(s){const n=Oo.getOnlineSignalingMap(),g=this._core.common.getCurrentUserID();if(!n.has(s))return;const u=n.get(s).inviter===g;this._sendTimeoutNotice({inviteID:s,isInviter:u})}_sendSignaling(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;return(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)})}_sendTimeoutNotice(s){return pA(this,void 0,void 0,function*(){var n,g,u;this._core.ssoLog.debug("_sendTimeoutNotice",`${ur}._sendTimeoutNotice params:${JSON.stringify(s)}`);const{isInviter:E,inviteID:m}=s,{signaling:D,signalingData:M,signalingExtensionOptions:T}=$g.createTimeoutSignaling(s),P=yield this._sendSignaling(D,T);if(P?.code===0){const{data:W,groupID:iA,inviteeList:EA,inviter:RA}=M;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent((g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_TIMEOUT,{name:(u=this._core)===null||u===void 0?void 0:u.SignalingEvent.INVITATION_TIMEOUT,data:{data:W,groupID:iA,inviteID:m,inviteeList:EA,inviter:RA,isSelfTimeout:!0,message:D}}),E?Oo.removeSignaling(m):Oo.updateSignaling(M)}})}_validateInviteId(s,n){if(!Oo.hasSignaling(n))throw new this._core.helper.ChatError({functionName:s,code:pd})}_validateProcessStatus(s){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:s,message:"processing other signaling operations"})}_validateBeforeInvite(s){const n=Qd,{userID:g}=s,u=this._core.common.getCurrentUserID();if(g===u)throw new this._core.helper.ChatError({functionName:n,message:`cannot invite yourself, currentUserId:${u}, inviteeId:${g}`})}_validateBeforeAccept(s){const n=hI;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:u}=Oo.getSignaling(s);if(!u.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeCancel(s){const n=Oa;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviter:u}=Oo.getSignaling(s);if(u!==g){const E=`unmatched inviter:${u} and my userID:${g}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeReject(s){const n=CC;this._validateInviteId(n,s),this._validateProcessStatus(n);const g=this._core.common.getCurrentUserID(),{inviteeList:u}=Oo.getSignaling(s);if(!u.includes(g)){const E=`userID:${g} not in inviteeList. inviteID:${s}`;throw new this._core.helper.ChatError({functionName:n,message:E})}}_validateBeforeModifyInvitation(s){const n=Pa;this._validateInviteId(n,s)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this)}_reset(){this._isProcessingSignaling=!1}},Nl=new class{constructor(){this._actionProcessor=new Map([[Lu,this._onNewInvitationReceived.bind(this)],[$r,this._onInviteeRejected.bind(this)],[Bd,this._onInviteeAccepted.bind(this)],[Tl,this._onInvitationCancelled.bind(this)],[CI,this._onInvitationTimeout.bind(this)]])}init(s){this._core=s,s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),s.notificationCenter.subscribeOuterEvent(s.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this._dispose,this)}handleActionSignaling(s){s.forEach(n=>{const g=wc(n);if(g){const u=this._actionProcessor.get(g.actionType);u?.(g,n)}})}_handleMessageReceived(s){if(!Oo.getSignalingListenStatus())return;const n=Er(s.data);n.length!==0&&this.handleActionSignaling(n)}_handleMessageModified(s){if(!Oo.getSignalingListenStatus())return;const n=Er(s.data);n.length>0&&n.forEach(g=>{const u=wc(g);u&&this._onInvitationModified(u,g)})}_onNewInvitationReceived(s,n){var g,u;const E=`${ur}._onNewInvitationReceived`,{inviteID:m,inviteeList:D,groupID:M}=s,T=this._core.common.getCurrentUserID();if(this._core.ssoLog.debug("_onNewInvitationReceived",`${E} signalingData:${JSON.stringify(s)}}`),M&&!D.includes(T))return;let{timeout:P}=s;const W=Date.now()/1e3-n.time;P>0&&W>0&&P>W&&(P-=W);const iA=Oo.getSignaling(m);iA!==s&&(iA||Oo.saveSignaling(m,Object.assign(Object.assign({},s),{signaling:n})),P>0&&((g=this._core)===null||g===void 0||g.helper.taskScheduler.addOnceTask({id:`${Uu}-${m}`,intervalMs:1e3*P,callback:Za.handleInvitationExpiryTimer.bind(Za,m)})),this._emitEvent({name:(u=this._core)===null||u===void 0?void 0:u.SignalingEvent.NEW_INVITATION_RECEIVED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:D})}))}_onInviteeRejected(s){var n;const g=`${ur}._onInviteeRejected`,{inviteID:u,inviter:E,groupID:m,inviteeList:D}=s,M=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInviteeRejected",`${g} inviteID:${u} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_REJECTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInviteeAccepted(s){var n;const g=`${ur}._onInviteeAccepted`,{inviteID:u,inviter:E,groupID:m,inviteeList:D}=s,M=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInviteeAccepted",`${g} inviteID:${u} hasInviteID:${M} inviter:${E} groupID:${m}`),M&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITEE_ACCEPTED,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{invitee:D[0]})}))}_onInvitationCancelled(s){var n;const g=`${ur}._onInvitationCancelled`,{inviteID:u,inviter:E,groupID:m}=s,D=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInvitationCancelled",`${g} inviteID:${u} hasInviteID:${D} inviter:${E} groupID:${m}`),D&&(Oo.removeSignaling(u),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_CANCELLED,data:this._generateBaseEmitData(s)}))}_onInvitationTimeout(s){var n;const g=`${ur}._onInvitationTimeout`,{inviteID:u,inviteeList:E}=s,m=Oo.hasSignaling(u);this._core.ssoLog.debug("_onInvitationTimeout",`${g} inviteID:${u} hasInviteID:${m} data:${s.data}`),m&&(Oo.updateSignaling(s),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.SignalingEvent.INVITATION_TIMEOUT,data:Object.assign(Object.assign({},this._generateBaseEmitData(s)),{inviteeList:E,isSelfTimeout:!1})}))}_onInvitationModified(s,n){var g;const u=`${ur}._onInvitationModified`,{inviteID:E,data:m}=s,D=Oo.hasSignaling(E);this._core.ssoLog.debug("_onInvitationModified",`${u} inviteID:${E} data:${m}`),D&&(Oo.saveSignaling(E,Object.assign(Object.assign({},s),{signaling:n})),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.SignalingEvent.INVITATION_MODIFIED,data:{inviteID:E,data:m}}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}_generateBaseEmitData(s){const{inviteID:n,inviter:g,groupID:u,data:E}=s;return{inviteID:n,inviter:g,groupID:u,data:E||""}}_dispose(){var s,n,g;(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_RECEIVED,this._handleMessageReceived,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeOuterEvent(this._core.OuterEvent.MESSAGE_MODIFIED,this._handleMessageModified,this),(g=this._core)===null||g===void 0||g.notificationCenter.unSubscribeOuterEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}},Aa=new class{constructor(){this._offlineSignalingMap=new Map}init(s){this._core=s;const{notificationCenter:n,helper:g,constants:{InnerEvent:u,WORKFLOW_STEP:E,WORKFLOW_NAME:m}}=s;n.subscribeInnerEvent(u.DESTROY,this._dispose,this),n.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_LOGIN,E.SIGNALING_MESSAGE_RECOVER,this._handleC2COfflineMessage,this)}_handleC2COfflineMessage(s){const{result:{unreadMessageMap:n}={}}=s||{};if(!(n?.size!==0&&Oo.getSignalingListenStatus()))return;const g=Er([...n.values()]);if(g.length!==0&&(g.forEach(u=>{this._handleC2CActionType(u)}),this._offlineSignalingMap.size>0)){const u=this._sortOfflineSignalingByTime();Nl.handleActionSignaling(u)}}_handleC2CActionType(s){const n=wc(s);if(!n)return;const{actionType:g}=n;g===Lu?this._saveValidOfflineInvite(n,s):this._removeOfflineInvite(n)}_saveValidOfflineInvite(s,n){const{inviteID:g,inviteeList:u=[],timeout:E=0}=s,m=this._core.common.getCurrentUserID();if(!u.includes(m))return;const D=Date.now()/1e3-n.time;E>0&&D>E&&E!==0||this._offlineSignalingMap.set(g,Object.assign(Object.assign({},s),{signalingList:[n]}))}_removeOfflineInvite(s){const{inviteID:n=""}=s;this._offlineSignalingMap.has(n)&&this._offlineSignalingMap.delete(n)}_sortOfflineSignalingByTime(){let s=[];return this._offlineSignalingMap.forEach(n=>{s=[...s,...n.signalingList]}),s.sort((n,g)=>n.time-g.time)}_dispose(){var s,n;this._reset(),(s=this._core)===null||s===void 0||s.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(n=this._core)===null||n===void 0||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this)}_reset(){this._offlineSignalingMap.clear()}};const gh={invite:{userID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0},timeout:{required:!1,rules:["number"],allowEmpty:!1},onlineUserOnly:{required:!1,rules:["boolean"],allowEmpty:!1},offlinePushInfo:{required:!1,rules:["object"],allowEmpty:!1}},cancel:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},accept:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},reject:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}},modifyInvitation:{inviteID:{required:!0,rules:["string"],allowEmpty:!1},data:{required:!1,rules:["string"],allowEmpty:!0}}},js={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var ZI=new class{constructor(){this.name="Signaling"}install(s){Za.init(s),Nl.init(s),$g.init(s),Oo.init(s),Aa.init(s),s.helper.registerValidateConfig({auth:js,params:gh})}};const Us=new class{init(s){this.core=s}};function _c(s){let n;const{message:g}=Us.core,{conversationID:u,messageID:E}=s;return n=g.messageDataHandler.getLocalMessageList(u).find(m=>m.ID===E),!n&&(n=g.messageDataHandler.getSparseMessageList(u).find(m=>m.ID===E)),n}function Ac(s){return s.map(n=>{const{from:g,to:u,cloudCustomData:E,avatar:m,nick:D,ID:M,clientSequence:T,clientTime:P,messageRandom:W,messageSequence:iA,time:EA}=n;return{ClientSeq:T,CloudCustomData:E,From_Account:g,From_AccountHeadurl:m,From_AccountNick:D,Id:M,MsgBody:JSON.parse(JSON.stringify(n.transformElementsToServerFormat())),MsgClientTime:P,MsgRandom:W,Random:W,MsgSeq:iA,MsgTimeStamp:EA,ReceiverId:u,SenderId:g,To_Account:u}})}function dr(s){var n;const{From_Account:g,From_AccountHeadurl:u,From_AccountNick:E,GroupId:m,MsgClientTime:D,ClientSeq:M,To_Account:T,MsgTimeStamp:P,TinyId:W,MsgRandom:iA,MsgSeq:EA}=s;return{from:g,avatar:u,nick:E,clientTime:D,time:P,tinyID:W,random:iA,sequence:EA,to:T,groupID:m,clientSequence:M,_elements:(n=s.MsgBody)===null||n===void 0?void 0:n.map(RA=>{const{MsgType:kA}=RA;return Us.core.message.messageFactory.getElementClass(kA).parseServerPushElement(RA)})}}var Vr,Xa;(function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_STREAM="TIMStreamElem"})(Vr||(Vr={})),function(s){s[s.FORWARD=0]="FORWARD",s[s.BACKWARD=1]="BACKWARD"}(Xa||(Xa={}));const bE="MSG_REACTION",hC="MSG_EXT",ch=0,ro=1,Tc={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},Gl="16k_zh",BC="16k_en",QC="16k_yue",bl="16k_ja",XI="16k_zh-PY",BI={[Tc.ZH_CN]:Gl,[Tc.EN_US]:BC,[Tc.YUE_HK]:QC,[Tc.JA_JP]:bl,[Tc.ZH_PY]:XI},QI=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,kE={READ:0,UNREAD:1},kl=1,Ll=2,Ug=3;var ec;(function(s){s.IN="in",s.OUT="out"})(ec||(ec={}));const md=16,LE=17;var Nc;(function(s){s[s.DATA=0]="DATA",s[s.REVOKED=1]="REVOKED"})(Nc||(Nc={}));var $I;(function(s){s[s.NORMAL=0]="NORMAL",s[s.TIMEOUT=1]="TIMEOUT"})($I||($I={}));const lo="StreamMsg.PushStreamHttp";var UE=new class{constructor(){this._reactionsMap=new Map}init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:u},InnerEventSubType:{MESSAGE_REACTION_UPDATED:E,MESSAGE_REACTION_UPDATED_SYNC:m}}=s;n.registerApi({apiName:"addMessageReaction",context:this}),n.registerApi({apiName:"removeMessageReaction",context:this}),n.registerApi({apiName:"getMessageReactions",context:this}),n.registerApi({apiName:"getAllUserListOfMessageReaction",context:this}),g.subscribeInnerEvent(u,E,this._handleReactionUpdated,this),g.subscribeInnerEvent(u,m,this._handleReactionSync,this)}addMessageReaction(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,ssoLog:u,helper:E}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:m,ID:D,conversationType:M,from:T,to:P,clientSequence:W,random:iA,time:EA,sequence:RA}=s,kA=`conversationID:${m} messageID:${D} reactionID:${n}`;try{return this._recordMessageReactedByMe(D,n),M===g.CONV_C2C?yield function(xA,LA){return pA(this,void 0,void 0,function*(){var SA;const{from:OA,to:JA,clientSequence:ae,random:re,time:_i,reactionID:Ti}=xA,Lt={From_Account:OA,To_Account:JA,MsgKey:`${ae}_${re}_${_i}`,Reaction:Ti,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:Lt})})}({from:T,to:P,clientSequence:W,random:iA,time:EA,reactionID:n},this._core):M===g.CONV_GROUP&&(yield function(xA,LA){return pA(this,void 0,void 0,function*(){var SA;const{to:OA,reactionID:JA,sequence:ae}=xA,re={GroupId:OA,MsgSeq:ae,Reaction:JA,Add_Account:[(SA=LA.store.get("login"))===null||SA===void 0?void 0:SA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:re})})}({to:P,reactionID:n,sequence:RA},this._core)),{code:0,successLog:{message:kA}}}catch(xA){this._removeMyReactionRecord(D,n);const{errorCode:LA}=xA||{};throw new E.ChatError({functionName:"addMessageReaction",code:LA,moreMessage:kA})}})}removeMessageReaction(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,helper:u}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:E,ID:m,conversationType:D,from:M,to:T,clientSequence:P,random:W,time:iA,sequence:EA}=s,RA=`conversationID:${E} messageID:${m} reactionID:${n}`;try{return this._removeMyReactionRecord(m,n),D===g.CONV_C2C?yield function(kA,xA){return pA(this,void 0,void 0,function*(){var LA;const{from:SA,to:OA,clientSequence:JA,random:ae,time:re,reactionID:_i}=kA,Ti={From_Account:SA,To_Account:OA,MsgKey:`${JA}_${ae}_${re}`,Reaction:_i,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:Ti})})}({from:M,to:T,clientSequence:P,random:W,time:iA,reactionID:n},this._core):D===g.CONV_GROUP&&(yield function(kA,xA){return pA(this,void 0,void 0,function*(){var LA;const{to:SA,reactionID:OA,sequence:JA}=kA,ae={GroupId:SA,MsgSeq:JA,Reaction:OA,Del_Account:[(LA=xA.store.get("login"))===null||LA===void 0?void 0:LA.userId]};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:ae},xA)})}({to:T,reactionID:n,sequence:EA},this._core)),{code:0,successLog:{message:RA}}}catch(kA){const{errorCode:xA}=kA||{};throw new u.ChatError({functionName:"removeMessageReaction",code:xA,moreMessage:RA})}})}getAllUserListOfMessageReaction(s){return pA(this,void 0,void 0,function*(){this._validateMessageReactionBusinessCapability();const{message:n,reactionID:g,nextSeq:u=0}=s,E=s.count>100?100:s.count,{conversationID:m}=n,{ssoLog:D,helper:M,constants:T}=this._core;try{let P=null;if(P=m.startsWith(T.OuterConstant.CONV_C2C)?yield function(W){return pA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{from:xA,to:LA,clientSequence:SA,random:OA,time:JA}=iA,ae={Reaction:RA,NextSeq:EA,Count:kA,From_Account:xA,To_Account:LA,MsgKey:`${SA}_${OA}_${JA}`};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:ae})})}({message:n,reactionID:g,nextSeq:u,count:E}):yield function(W){return pA(this,void 0,void 0,function*(){const{message:iA,nextSeq:EA,reactionID:RA,count:kA}=W,{sequence:xA,to:LA}=iA,SA={Reaction:RA,NextSeq:EA,GroupId:LA,Count:kA,MsgSeq:xA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:SA})})}({message:n,reactionID:g,nextSeq:u,count:E}),P){const{Reaction_Account:W,NextSeq:iA}=P,EA=yield this._getUserProfileList(W);return{code:0,data:{nextSeq:iA,isCompleted:u===0,userList:EA}}}}catch(P){const{errorCode:W}=P||{};throw new M.ChatError({functionName:"getAllUserListOfMessageReaction",code:W})}})}getMessageReactions(s){return pA(this,void 0,void 0,function*(){const{constants:n}=this._core;this._validateMessageReactionBusinessCapability();const{messageList:g,maxUserCountPerReaction:u=10}=s,E=g[0];let m=null;const D=new Map,{from:M,to:T,conversationType:P}=E,W=this._generateMessageKeyList(g,D);P===n.OuterConstant.CONV_C2C?m=yield function(kA){return pA(this,void 0,void 0,function*(){const{from:xA,to:LA,messageKeyList:SA,maxUserCountPerReaction:OA}=kA,JA={From_Account:xA,To_Account:LA,MsgKeyList:SA,Count:OA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:JA})})}({from:M,to:T,messageKeyList:W,maxUserCountPerReaction:u}):P===n.OuterConstant.CONV_GROUP&&(m=yield function(kA){return pA(this,void 0,void 0,function*(){const{groupId:xA,messageSequenceList:LA,maxUserCountPerReaction:SA}=kA,OA={GroupId:xA,MsgSeqList:LA,Count:SA};return Us.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:OA})})}({groupId:T,messageSequenceList:W,maxUserCountPerReaction:u}));const{Results:iA=[]}=m||{},EA=this._extractUserIDsFromReactionResults(iA),RA=yield this._getUserProfileMap(EA);return{code:0,data:{resultList:iA.map(kA=>{const{ReactionList:xA,MsgSeq:LA,MsgKey:SA}=kA;return{messageID:this._generateMessageID({messageSequence:LA,messageKey:SA,messageIDMap:D}),reactionList:xA.map(OA=>{const{Reaction:JA,Count:ae,Reaction_Account:re,ReactedByMe:_i}=OA;return{reactionID:JA,totalUserCount:ae,partialUserList:this._generatePartialUserInfo({userIDList:re,userProfileMap:RA}),reactedByMyself:_i===1}})}})}}})}dispose(){this._reactionsMap.clear()}_extractUserIDsFromReactionResults(s){const n=[];return s?.forEach(g=>{const{ReactionList:u=[]}=g;u.forEach(E=>{E.Reaction_Account&&n.push(...E.Reaction_Account)})}),n}_getUserProfileList(s){return pA(this,void 0,void 0,function*(){var n;try{const g=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:s});return g?g.data:[]}catch{return[]}})}_getUserProfileMap(s){return pA(this,void 0,void 0,function*(){const n=new Map;return(yield this._getUserProfileList(s)).forEach(g=>{const{nick:u,avatar:E,userID:m}=g;n.set(m,{nick:u,avatar:E,userID:m})}),n})}_recordMessageReactedByMe(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)?this._reactionsMap.get(g).reactedByMe=!0:this._reactionsMap.set(g,{reactedByMe:!0})}_removeMyReactionRecord(s,n){const g=`${s}-${n}`;this._reactionsMap.has(g)&&(this._reactionsMap.get(g).reactedByMe=!1)}_recordMessageReactionInfo(s){const{messageID:n,reactionID:g,reactionInfo:u}=s,E=`${n}-${g}`,m=this._reactionsMap.get(E)||{};this._reactionsMap.set(E,Object.assign(Object.assign({},m),u))}_validateMessageReactionBusinessCapability(){const{helper:s,constants:n}=this._core;if(!s.checkBusinessCapabilityBits(bE))throw new s.ChatError({functionName:"addMessageReaction",code:n.ERROR_CODE.NO_USE,replacement1:"addMessageReaction"})}_handleReactionUpdated(s){const{MsgReactionNotifyList:n}=s,{notificationCenter:g,constants:u}=this._core;n.forEach(E=>pA(this,void 0,void 0,function*(){const{C2CMsgInfo:m,GroupMsgInfo:D,MsgReactionSummary:M}=E,{TinyId:T,MsgClientTime:P,MsgRandom:W}=Object.assign(Object.assign({},m),D),iA=`${T}-${P}-${W}`,EA=this._extractUserIDsFromReactionResults([{ReactionList:M}]),RA=yield this._getUserProfileMap(EA),kA=M.map(xA=>{var LA;const{Reaction:SA,Reaction_Account:OA}=xA,JA=this._generatePartialUserInfo({userIDList:OA,userProfileMap:RA}),ae=OA?xA.Count:0,re=((LA=this._reactionsMap.get(`${iA}-${SA}`))===null||LA===void 0?void 0:LA.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:iA,reactionID:SA,reactionInfo:{reactionID:SA,totalUserCount:ae,partialUserList:JA}}),{reactionID:SA,totalUserCount:ae,partialUserList:JA,reactedByMyself:re}});g.emitOuterEvent(u.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:u.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:kA}})}))}_handleReactionSync(s){var n;const{notificationCenter:g,constants:u}=this._core,{C2CMsgInfo:E={},GroupMsgInfo:m={},Reaction:D,OperateType:M}=s.MsgReactionNotify,{TinyId:T="",MsgClientTime:P=0,MsgRandom:W=0}=Object.assign(Object.assign({},E),m),iA=`${T}-${P}-${W}`,EA=`${iA}-${D}`;if(M===1?this._recordMessageReactedByMe(iA,D):this._removeMyReactionRecord(iA,D),(n=this._reactionsMap.get(EA))===null||n===void 0?void 0:n.reactionID){const RA=this._reactionsMap.get(EA);RA.reactedByMyself=M===1,g.emitOuterEvent(u.OuterEvent.MESSAGE_REACTIONS_UPDATED,{name:u.OuterEvent.MESSAGE_REACTIONS_UPDATED,data:{messageID:iA,reactionList:[RA]}})}}_generatePartialUserInfo({userIDList:s,userProfileMap:n}){const g=[];return s?.forEach(u=>{n.has(u)&&g.push(n.get(u))}),g}_generateMessageID(s){const{messageSequence:n,messageKey:g,messageIDMap:u}=s;return g?u.get(g):u.get(n)}_generateMessageKeyList(s,n){const{constants:g}=this._core,u=s[0],{conversationType:E}=u;let m=[];return E===g.OuterConstant.CONV_C2C?m=s.map(D=>{const{clientSequence:M,random:T,time:P,ID:W}=D,iA=`${M}_${T}_${P}`;return n.set(iA,W),iA}):E===g.OuterConstant.CONV_GROUP&&(m=s.map(D=>{const{ID:M,sequence:T}=D;return n.set(T,M),T})),m}},$a=new class{init(s){this._core=s;const{helper:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:u,GROUP_MESSAGE_READ_RECEIPT:E},notificationCenter:m}=s;n.registerApi({apiName:"sendMessageReadReceipt",context:this}),n.registerApi({apiName:"getMessageReadReceiptList",context:this}),n.registerApi({apiName:"getGroupMessageReadMemberList",context:this}),m.subscribeInnerEvent(g,u,this._handleC2CMessageReadReceipt,this),m.subscribeInnerEvent(g,E,this._handleGroupMessageReadReceipt,this)}sendMessageReadReceipt(s){return pA(this,void 0,void 0,function*(){var n;const{common:g,constants:u}=this._core,E=this._filterValidMessageSendByOther(s);if(E.length===0)throw new g.ChatError({code:u.ERROR_CODE.READ_RECEIPT_MSG_LIST_EMPTY});try{const{conversationType:m}=E[0];return m===u.OuterConstant.CONV_C2C?yield function(D){return pA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P=D[0].conversationID.replace(T.OuterConstant.CONV_C2C,""),W=D.map(EA=>{const{from:RA,to:kA,sequence:xA,random:LA,time:SA,clientTime:OA}=EA;return{From_Account:RA,To_Account:kA,MsgSeq:xA,MsgRandom:LA,MsgTime:SA,MsgClientTime:OA}}),iA={Peer_Account:P,C2CMsgInfo:W};return M.buildAndSendPacket({servcmd:"openim.c2c_msg_read_receipt",data:iA})})}(E):yield function(D){return pA(this,void 0,void 0,function*(){const{common:M,constants:T}=Us.core,P={GroupId:D[0].conversationID.replace(T.OuterConstant.CONV_GROUP,""),MsgSeqList:D.map(W=>({MsgSeq:W.sequence}))};return M.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_receipt",data:P})})}(E),{code:0,data:{}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g.ChatError({code:D,message:M,moreMessage:`peerAccount:${(n=E?.[0])===null||n===void 0?void 0:n.conversationID}`})}})}getMessageReadReceiptList(s){return pA(this,void 0,void 0,function*(){const{common:n,constants:g}=this._core;try{const{conversationType:u}=s[0];if(u===g.OuterConstant.CONV_GROUP){const E=this._filterValidMessageSendByMe(s);if(E?.length>0){const m=yield function(M){return pA(this,void 0,void 0,function*(){const{common:T,constants:P}=Us.core,W={GroupId:M[0].conversationID.replace(P.OuterConstant.CONV_GROUP,""),MsgSeqList:M.map(iA=>({MsgSeq:iA.sequence}))};return T.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt",data:W})})}(E),{GroupMsgReceiptList:D}=m||{};this._updateGroupMessagesReadReceiptInfo({messageList:s,readReceiptList:D})}}return{code:0,data:{messageList:s}}}catch(u){const{errorCode:E,errorInfo:m}=u;throw new n.ChatError({code:E,message:m})}})}getGroupMessageReadMemberList(s){return pA(this,void 0,void 0,function*(){const{constants:n,common:g}=this._core,{message:u,filter:E=kE.READ,cursor:m=""}=s,{conversationID:D,sequence:M,ID:T}=u,P=D.replace(n.OuterConstant.CONV_GROUP,""),W=s.count>=100?100:s.count;try{const iA=yield function(EA){return pA(this,void 0,void 0,function*(){const{sequence:RA,groupID:kA,filter:xA,cursor:LA,count:SA}=EA,OA={MsgSeq:RA,GroupId:kA,Filter:xA,Cursor:LA,Num:SA};return Us.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:OA})})}({groupID:P,sequence:M,filter:E,cursor:m,count:W});if(iA){const{Cursor:EA,IsFinish:RA,UnreadList:kA,ReadList:xA}=iA,LA={cursor:EA,isCompleted:RA===1,messageID:T,unreadUserIDList:[],readUserIDList:[]};return E===kE.READ?LA.readUserIDList=xA.map(SA=>SA.Read_Account):E===kE.UNREAD&&(LA.unreadUserIDList=kA.map(SA=>SA.Unread_Account)),{code:0,data:LA}}}catch(iA){const{errorCode:EA,errorInfo:RA}=iA;throw new g.ChatError({code:EA,message:RA})}})}_handleC2CMessageReadReceipt(s){const n=[],{constants:g,helper:u}=this._core,{C2cMsgInfo:E,PeerReadTime:m,Peer_Account:D}=s;if(u.isEmpty(E))return;const M=`${g.OuterConstant.CONV_C2C}${D}`;E?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA}=T,EA=`${P}-${W}-${iA}`,RA=_c({conversationID:M,messageID:EA});RA&&!RA.readReceiptInfo.isPeerRead&&(RA.readReceiptInfo.isPeerRead=!0,RA.readReceiptInfo.timestamp=m,n.push({userID:D,messageID:EA,isPeerRead:!0,timestamp:m}))}),this._emitReadReceiptEventIfNeed(n)}_updateGroupMessagesReadReceiptInfo(s){const{messageList:n,readReceiptList:g}=s,u=new Map;n.forEach(E=>{u.set(E.sequence,E)}),g?.forEach(E=>{if(E.Code===0){const{MsgSeq:m,ReadNum:D,UnreadNum:M}=E,T=u.get(m);T&&(T.readReceiptInfo.readCount=D,T.readReceiptInfo.unreadCount=M)}})}_handleGroupMessageReadReceipt(s){const n=[],{constants:g}=this._core,{GroupTips:u}=s;u.forEach(E=>{const{MsgBody:{GroupMsgReceiptList:m},GroupInfo:{GroupId:D}}=E,M=`${g.OuterConstant.CONV_GROUP}${D}`;m?.forEach(T=>{const{TinyId:P,MsgClientTime:W,MsgRandom:iA,ReadNum:EA,UnreadNum:RA}=T,kA=`${P}-${W}-${iA}`,xA=_c({conversationID:M,messageID:kA}),LA={groupID:D,messageID:kA,readCount:0,unreadCount:0};xA&&(typeof EA=="number"&&(xA.readReceiptInfo.readCount=EA,LA.readCount=EA),typeof RA=="number"&&(xA.readReceiptInfo.unreadCount=RA,LA.unreadCount=RA),n.push(LA))})}),this._emitReadReceiptEventIfNeed(n)}_emitReadReceiptEventIfNeed(s){const{notificationCenter:n,OuterEvent:g}=this._core;s.length>0&&n.emitOuterEvent(g.MESSAGE_READ_RECEIPT_RECEIVED,{name:g.MESSAGE_READ_RECEIPT_RECEIVED,data:s})}_filterValidMessageSendByOther(s){return this._filterNeedReadReceiptMessages(s).filter(n=>{const{from:g}=n;return g!==this._core.common.getCurrentUserID()})}_filterValidMessageSendByMe(s){const{OuterConstant:n}=this._core.constants;return this._filterNeedReadReceiptMessages(s).filter(g=>{const{from:u,status:E}=g;return u===this._core.common.getCurrentUserID()&&E===n.MessageStatus.SUCCESS})}_filterNeedReadReceiptMessages(s){return s.filter(n=>n.needReadReceipt===!0)}dispose(){const{InnerEvent:{MESSAGE_PUSH:s},InnerEventSubType:{C2C_MESSAGE_READ_RECEIPT:n,GROUP_MESSAGE_READ_RECEIPT:g},notificationCenter:u}=this._core;u.unSubscribeInnerEvent(s,n,this._handleC2CMessageReadReceipt,this),u.unSubscribeInnerEvent(s,g,this._handleGroupMessageReadReceipt,this)}};function Au(s,n,g){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:u}}=Us.core,{from:E,to:m,clientSequence:D,random:M,time:T}=s;return u({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:E,To_Account:m,MsgKey:`${D}_${M}_${T}`,OperateType:g,ExtensionList:n}})})}function Fu(s,n,g){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:u}}=Us.core,{to:E,sequence:m}=s;return u({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:E,MsgSeq:m,OperateType:g,ExtensionList:n}})})}var Gc=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(s){this._core=s;const{notificationCenter:n,helper:{registerApi:g},InnerEvent:{MESSAGE_PUSH:u,LOGOUT:E},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:m}}=s;g({apiName:"setMessageExtensions",context:this}),g({apiName:"getMessageExtensions",context:this}),g({apiName:"deleteMessageExtensions",context:this}),n.subscribeInnerEvent(u,m,this._handleMessageExtensionsNotify,this),n.subscribeInnerEvent(E,this.reset,this)}setMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");const{constants:{OuterConstant:g},ssoLog:u}=this._core,{ID:E,conversationID:m,sequence:D,time:M,conversationType:T}=s;let P=n;n.length>20&&(P=n.slice(0,20),u.warn("setMessageExtensions","the length of extensions cannot exceed 20"));const W=this._generateServerExtensions(s,P),iA=`convID:${m} messageID:${E} sequence:${D} time:${M} count:${P.length}`;try{let EA;if(T===g.CONV_C2C?EA=yield Au(s,W,kl):T===g.CONV_GROUP&&(EA=yield Fu(s,W,kl)),EA){const{resultList:RA,successCount:kA,failureCount:xA}=this._handleModifyMessageExtensions(s,EA);return{code:0,data:{extensions:RA},successLog:{message:`${iA} successCount:${kA} failCount:${xA}`}}}return{code:0,data:{extensions:[]}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:RA,moreMessage:iA})}})}getMessageExtensions(s){return pA(this,void 0,void 0,function*(){const{utils:{isUndefined:n}}=this._core;this._validateMessageExtensionBusinessCapability("getMessageExtensions");const{conversationID:g,ID:u,sequence:E,time:m}=s,D=`convID:${g} messageID:${u} sequence:${E} time:${m}`;try{let M;this._completedFetchExtensions.has(u)&&(M=this._extensionsLatestSequenceMap.get(u));const T=yield this._fetchMessageExtensions(s,M);return n(M)&&T.length>1&&this._completedFetchExtensions.add(u),{code:0,data:{extensions:T},successLog:{message:D}}}catch(M){const{errorCode:T,errorInfo:P=""}=M||{};throw new this._core.common.ChatError({code:T,message:P,moreMessage:D})}})}deleteMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");const{utils:{isEmpty:g},constants:{OuterConstant:u}}=this._core,{conversationType:E,conversationID:m,sequence:D,ID:M,time:T}=s;let P=Ug;const W=[];g(n)||(P=Ll,n?.forEach(RA=>{W.push({key:RA,value:"",seq:0})}));const iA=`convID:${m} messageID:${M} sequence:${D} time:${T} operateType:${P}`,EA=this._generateServerExtensions(s,W);try{let RA;if(E===u.CONV_C2C?RA=yield Au(s,EA,P):E===u.CONV_GROUP&&(RA=yield Fu(s,EA,P)),RA){const{resultList:kA,successCount:xA,failureCount:LA}=this._handleModifyMessageExtensions(s,RA);return{code:0,data:{extensions:kA},successLog:{message:`${iA}successCount:${xA} failCount:${LA}`}}}return{code:0,data:{extensions:[]}}}catch(RA){const{errorCode:kA}=RA;throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:kA,moreMessage:iA})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,LOGOUT:g},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:u}}=this._core;s.unSubscribeInnerEvent(n,u,this._handleMessageExtensionsNotify,this),s.subscribeInnerEvent(g,this.reset,this)}_handleModifyMessageExtensions(s,n){const{ID:g}=s,{Seq:u}=n,E=n.ExtensionList||[],m=[];let D=0,M=0,T=[];return E.forEach(P=>{const{ErrorCode:W,Extension:iA}=P,{Key:EA,Value:RA,Seq:kA}=iA;m.push({code:W,key:EA,value:RA}),W===0?D++:M++,T.push({key:EA,value:RA,seq:kA})}),this._extensionsLatestSequenceMap.set(g,u),T.length>0&&this._updateLocalExtensions(s.ID,T),{resultList:m,successCount:D,failureCount:M}}_updateLocalExtensions(s,n){this._messageExtensionsMap.has(s)||this._messageExtensionsMap.set(s,new Map);const g=this._messageExtensionsMap.get(s);n?.forEach(u=>{const{key:E,seq:m,value:D=""}=u;g?.set(E,{value:D,seq:m})})}_fetchMessageExtensions(s,n){return pA(this,void 0,void 0,function*(){const{constants:{OuterConstant:g},utils:{isEmpty:u}}=this._core;try{let E;const{conversationType:m,ID:D}=s;if(m===g.CONV_C2C?E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{from:W,to:iA,clientSequence:EA,random:RA,time:kA}=M;return P({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:W,To_Account:iA,MsgKey:`${EA}_${RA}_${kA}`,StartSeq:T}})}(s,n):m===g.CONV_GROUP&&(E=yield function(M,T){const{common:{buildAndSendPacket:P}}=Us.core,{to:W,sequence:iA}=M;return P({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:W,MsgSeq:iA,StartSeq:T}})}(s,n)),E){const{LatestSeq:M,ClearSeq:T,CompleteFlag:P}=E,W=(E.ExtensionList||[]).map(EA=>({key:EA.Key,value:EA.Value,seq:EA.Seq}));if(this._updateLocalExtensions(D,W),this._clearLocationExtensions(D,T),this._extensionsLatestSequenceMap.set(D,M),P!==1){const EA=W[W.length-1].seq+1;return this._fetchMessageExtensions(s,EA)}const iA=[];if(this._messageExtensionsMap.has(D)){const EA=this._messageExtensionsMap.get(D);EA?.forEach((RA,kA)=>{const{value:xA}=RA;u(xA)||iA.push({key:kA,value:xA})})}return iA}}catch(E){throw E}})}_clearLocationExtensions(s,n){if(!(n<=0)&&this._messageExtensionsMap.has(s)){const g=this._messageExtensionsMap.get(s);g?.forEach((u,E)=>{u.seq<=n&&g.delete(E)})}}_generateServerExtensions(s,n){const{ID:g}=s;if(this._messageExtensionsMap.has(g)){const u=this._messageExtensionsMap.get(g);return n.map(E=>{var m;const{key:D,value:M}=E;let T=0;return u?.has(D)&&(T=(m=u.get(D))===null||m===void 0?void 0:m.seq),{Key:D,Value:M,Seq:T}})}return n.map(u=>({Key:u.key,Value:u.value,Seq:0}))}_validateMessageExtensionBusinessCapability(s){const{helper:n,constants:g}=this._core;if(!n.checkBusinessCapabilityBits(hC))throw new n.ChatError({functionName:s,code:g.ERROR_CODE.NO_USE,replacement1:s})}_handleMessageExtensionsNotify(s){const{SetKVInfo:n,DeleteKVInfo:g,ClearKVInfo:u,MsgOptType:E,TinyId:m,MsgLastSeq:D,ExtensionC2cMsgInfo:M,ExtensionGroupMsgInfo:T}=s?.MsgExtensionNotify||{},P=M||T||{},{MsgClientTime:W,MsgRandom:iA}=P,EA=`${m}-${W}-${iA}`;this._extensionsLatestSequenceMap.set(EA,D),E===kl?this._handleMessageExtensionsUpdated({messageID:EA,updateMessageExtensionsInfo:n}):E===Ll?this._handleMessageExtensionsDeleted({messageID:EA,deleteMessageExtensionsInfo:g}):E===Ug&&this._handleMessageExtensionsCleared({messageID:EA,clearMessageExtensionsInfo:u})}_handleMessageExtensionsUpdated(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:u,updateMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push({key:P.Key,value:P.Value}),{key:P.Key,value:P.Value,seq:P.Seq}));this._updateLocalExtensions(u,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_UPDATED,{name:g.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:u,extensions:m}})}_handleMessageExtensionsDeleted(s){const{notificationCenter:n,OuterEvent:g}=this._core,{messageID:u,deleteMessageExtensionsInfo:E=[]}=s,m=[];E.forEach(D=>{const{MsgKeyValue:M=[]}=D,T=M.map(P=>(m.push(P.Key),{key:P.Key,seq:P.Seq}));this._updateLocalExtensions(u,T)}),n.emitOuterEvent(g.MESSAGE_EXTENSIONS_DELETED,{name:g.MESSAGE_EXTENSIONS_DELETED,data:{messageID:u,keyList:m}})}_handleMessageExtensionsCleared(s){const{notificationCenter:n,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:g},utils:{isEmpty:u}}=this._core,{messageID:E,clearMessageExtensionsInfo:m=[]}=s,D=[];m.forEach(M=>{const{ClearMsgSeq:T}=M;this._messageExtensionsMap.has(E)&&(this._messageExtensionsMap.get(E)||[]).forEach((P,W)=>{P.seq<=T&&!u(P.value)&&D.push(W)}),this._clearLocationExtensions(E,T)}),n.emitOuterEvent(g,{name:g,data:{messageID:E,keyList:D}})}};const pI={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{constants:{OuterConstant:n}}=Us.core;return s.status!==n.MessageStatus.SUCCESS?"message is not success":s.isSupportExtension===!0||"message is not support extension"}},sl={setMessageExtensions:[pI,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[pI],deleteMessageExtensions:[pI]},nl=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const n=function(g){var u;return typeof g?.text!="string"||typeof g.text=="string"&&((u=g?.text)===null||u===void 0?void 0:u.length)===0?"payload.text is invalid.":!0}(s);return n!==!0?n:!(s?.atUserList&&!Array.isArray(s.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>{const{utils:{isString:n,isNumber:g}}=Us.core;return n(s?.description)?g(s?.longitude)?!!g(s?.latitude)||"payload.latitude must be a number.":"payload.longitude must be a number.":"payload.description must be a string."}}}},{addMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],removeMessageReaction:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"reactionID",required:!0,rules:["string"],allowEmpty:!1}],getMessageReactions:{messageList:{required:!0,rules:["array"],allowEmpty:!1},maxUserCountPerReaction:{required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s!="number"?"maxUserCountPerReaction is invalid.":!(s<0||s>10)||"maxUserCountPerReaction should between [0, 10]."}},getAllUserListOfMessageReaction:{message:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>s.status==="success"||"message is invalid."},reactionID:{required:!0,rules:["string"],allowEmpty:!1},nextSeq:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}}}),{sendMessageReadReceipt:[{required:!0,rules:["array"],allowEmpty:!1}],getMessageReadReceiptList:[{required:!0,rules:["array"],allowEmpty:!1}],getGroupMessageReadMemberList:{message:{required:!0,rules:["object"],allowEmpty:!1},filter:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0},cursor:{required:!1,rules:["string"],allowEmpty:!0}}}),sl),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),{createQuoteMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"quotedMessage",required:!0,rules:["object"],allowEmpty:!1}]}),xa=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0}),{createQuoteMessage:!0});class FE{constructor(n){this._core=n}deleteMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:u}=n,E={From_Account:this._core.common.getCurrentUserID(),To_Account:g,MsgKeyList:u};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:E})})}revokeMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,from:u,sequence:E,time:m,random:D}=n,M={MsgInfo:{From_Account:u,To_Account:g,MsgSeq:E,MsgRandom:D,MsgTimeStamp:m}};return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:M})})}}class ra{constructor(n){this._core=n}deleteMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,messageIdentifiers:u}=n,E={GroupId:g,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:u};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:E})})}revokeMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,sequence:u}=n,E={GroupId:g,MsgSeqList:[{MsgSeq:u}]};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:E})})}}const Mn=2116;class kr{constructor(n){this._core=n}generateRevokeMessage(n){const{conversationID:g,sequence:u,random:E,tinyID:m,clientTime:D,revokeReason:M,revoker:T}=n;let P={};const{messageDataHandler:W}=this._core.message;return P=W.revokeMessage({conversationID:g,sequence:u,random:E,revoker:T}),P||(P={conversationID:g,sequence:u},m&&D&&E&&(P.ID=`${m}-${D}-${E}`)),P.revoker=T,P.revokeReason=M,P.revokerInfo={userID:T,nick:"",avatar:""},P}updateRevokerInfo(n){return pA(this,void 0,void 0,function*(){const g=n.map(u=>u.revoker);try{const u=yield this._fetchUserInfos(g);u&&n.forEach(E=>{const{revoker:m}=E;u[m]&&(E.revokerInfo.nick=u[m].nick||"",E.revokerInfo.avatar=u[m].avatar||"",E.revokerInfo.userID=m)})}catch(u){console.debug(u)}})}_fetchUserInfos(n){return pA(this,void 0,void 0,function*(){var g,u;const E=yield(g=this._core.user.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:n});return E?.data?(u=E.data)===null||u===void 0?void 0:u.reduce((m,{userID:D,nick:M,avatar:T})=>(m[D]={nick:M||"",avatar:T||""},m),{}):null})}}var rl=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(s){this._core=s,this._groupMessageAction=new ra(s),this._c2cMessageAction=new FE(s),this._messageHelper=new kr(s);const{helper:n}=s;n.registerApi({apiName:"deleteMessage",context:this}),n.registerApi({apiName:"revokeMessage",context:this}),n.registerApi({apiName:"resendMessage",context:this}),n.registerApi({apiName:"findMessage",context:this}),n.registerApi({apiName:"createQuoteMessage",context:this})}deleteMessage(s){return pA(this,void 0,void 0,function*(){let n=[],g=[];const{conversationID:u,conversationType:E}=s[0],m=u.replace(E,"");if(E==="@TIM#SYSTEM")throw new this._core.helper.ChatError({code:Mn});if(s.forEach(D=>{const{conversationID:M,conversationType:T,status:P,_onlineOnlyFlag:W,sequence:iA,random:EA,time:RA}=D||{};if(P==="success"&&M===u&&T===E){if(!W){const kA=T==="C2C"?`${iA}_${EA}_${RA}`:String(iA);n.push(kA)}g.push(D)}}),n.length===0)return this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}};n.length>30&&(n=n.slice(0,30),g=g.slice(0,30));try{return E==="C2C"?yield this._c2cMessageAction.deleteMessage({to:m,messageIdentifiers:n}):yield this._groupMessageAction.deleteMessage({to:m,messageIdentifiers:n}),this._handleDeleteMessageSuccess(g),{code:0,data:{messageList:g}}}catch(D){const{utils:{safeStringify:M}}=this._core,{errorCode:T,errorInfo:P}=D;throw new this._core.helper.ChatError({functionName:"deleteMessage",code:T,message:P,moreMessage:`messageIdentifiers: ${M(n)}`})}})}revokeMessage(s){return pA(this,void 0,void 0,function*(){var n;const{conversationType:g,isRevoked:u,ID:E,type:m,from:D,to:M}=s;let T=null;const P=`type:${m} from:${D} to:${M} ID:${E}`;if(g==="@TIM#SYSTEM")throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(u)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:P});try{if(T=g==="C2C"?yield this._c2cMessageAction.revokeMessage(s):yield this._groupMessageAction.revokeMessage(s),T){const{RecallRetList:W}=T,iA=((n=W?.[0])===null||n===void 0?void 0:n.RetCode)||0;if(iA!==0)throw new this._core.helper.ChatError({code:iA,moreMessage:P});return s.isRevoked=!0,yield this._handleRevokeMessageSuccess(s),{code:0,data:{message:s},successLog:{message:P}}}}catch(W){const{errorCode:iA}=W;throw new this._core.helper.ChatError({functionName:"revokeMessage",code:iA,moreMessage:P})}})}resendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u;return s.isResend=!0,s.status="unSend",(u=(g=this._core)===null||g===void 0?void 0:g.apiMap)===null||u===void 0?void 0:u.sendMessage(s,n)})}findMessage(s){return this._core.message.messageDataHandler.findMessage(s)}createQuoteMessage(s,n){const{ID:g,time:u,sequence:E}=n;return s.quoteInfo={msgID:g,messageTime:u,messageSequence:E},s}_handleDeleteMessageSuccess(s){if(s.length===0)return;const{message:{messageDataHandler:n},common:{isTopic:g},notificationCenter:u,InnerEvent:E}=this._core;s.forEach(D=>{D.isDeleted=!0;const M=n.getLocalMessageList(D.conversationID);M?.forEach(T=>{T.ID===D.ID&&(T.isDeleted=!0)})});const{conversationID:m=""}=s[0];g(m)?u.emitInnerEvent(E.TOPIC_MESSAGE_DELETED,m):u.emitInnerEvent(E.MESSAGE_DELETED,m)}_handleRevokeMessageSuccess(s){return pA(this,void 0,void 0,function*(){var n;const g=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,{conversationID:u,sequence:E,random:m}=s;this._core.message.messageDataHandler.revokeMessage({conversationID:u,sequence:E,random:m,revoker:g}),yield this._messageHelper.updateRevokerInfo([s])})}};class Ul{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Index:u,Data:E}=g;return new Ul({index:u,data:E})}constructor(n){this.type=Vr.MSG_FACE;const{index:g,data:u}=n;this.content={index:g,data:u}}validateBeforeSend(){var n,g;return typeof((n=this.content)===null||n===void 0?void 0:n.index)=="number"&&typeof((g=this.content)===null||g===void 0?void 0:g.data)=="string"?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{index:E,data:m}=u;return{MsgType:this.type,MsgContent:{Index:E,Data:m}}}}class bc{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Desc:u,Longitude:E,Latitude:m}=g;return new bc({description:u,longitude:E,latitude:m})}constructor(n){this.type=Vr.MSG_LOCATION;const{description:g,longitude:u,latitude:E}=n;this.content={description:g,longitude:u,latitude:E}}validateBeforeSend(){return{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{description:E,longitude:m,latitude:D}=u;return{MsgType:this.type,MsgContent:{Desc:E,Longitude:m,Latitude:D}}}}class OE{static parseServerPushElement(n){const{MsgContent:g={}}=n,{StreamMsgID:u,CompatibleText:E,Markdown:m,BinaryData:D,ErrorCode:M,ErrorMsg:T}=g;return new OE({streamMessageID:u,compatibleText:E,markdown:m,binaryData:D,errorCode:M,errorMessage:T})}constructor(n){this.type=Vr.MSG_STREAM,this.content={streamMessageID:"",compatibleText:"",errorCode:0,errorMessage:"",isStreamEnded:!1},this._chunks=[],this._latestIndex=0;const{streamMessageID:g,compatibleText:u,markdown:E,binaryData:m,errorCode:D=0,errorMessage:M="",isStreamEnded:T=!1,chunks:P=[],latestIndex:W=0}=n;this.content.streamMessageID=g,this.content.compatibleText=u,this.content.markdown=E,this.content.binaryData=m,this.content.errorCode=D,this.content.errorMessage=M,this.content.isStreamEnded=T,this.content.chunks=P,this.content.latestIndex=W}updateChunks(n){if(!n||n.length===0)return;const g=n.sort((m,D)=>m.index-D.index),u=this._getMaxRevokedChunkIndex(g);u>=0&&(this._chunks=[],this._latestIndex=u,this._updateContent());const E=this._getValidChunks(g);if(E.length!==0&&(this._mergeAndSortChunks(E),this._chunks.length>0)){const m=this._chunks[this._chunks.length-1];this._latestIndex=m.index,this._updateContent(),this.content.isStreamEnded=m.isLast}}getLatestIndex(){return this._latestIndex}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{streamMessageID:E,chunks:m}=u,D=m?.map(M=>({EventType:M.eventType||"data",Index:M.index,Markdown:M.markdown,IsLast:M.isLast}));return{MsgType:this.type,MsgContent:{StreamMsgID:E,Chunks:D}}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.chunks)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content is invalid"}}}_filterContinuousChunks(n,g){if(n.length===0)return[];const u=[];let E=g;for(const m of n){if(m.index>E)break;m.index===E&&(u.push(m),E++)}return u}_mergeAndSortChunks(n){const g=new Map;this._chunks.forEach(u=>{g.set(u.index,u)}),n.forEach(u=>{g.set(u.index,u)}),this._chunks=Array.from(g.values()).sort((u,E)=>u.index-E.index)}_updateContent(){this.content.markdown=this._chunks.map(g=>g.markdown).join("");const n=this._chunks.map(g=>g.binaryData).filter(g=>g?.length>0);if(n.length===0)this.content.binaryData=new Uint8Array(0);else if(n.length===1)this.content.binaryData=n[0];else{const g=n.reduce((m,D)=>m+D.length,0),u=new Uint8Array(g);let E=0;for(const m of n)u.set(m,E),E+=m.length;this.content.binaryData=u}}_getMaxRevokedChunkIndex(n){let g=-1;for(let u=0;u<n.length;u++){const E=n[u];E.eventType===Nc.REVOKED&&E.index>g&&(g=E.index)}return g}_getValidChunks(n){const g=n.filter(u=>u.eventType===Nc.DATA&&u.index>this._latestIndex);return this._filterContinuousChunks(g,this._latestIndex+1)}}var kc=new class{init(s){this._core=s,s.message.messageFactory.registerElementClass(Vr.MSG_FACE,Ul),s.message.messageFactory.registerElementClass(Vr.MSG_LOCATION,bc),s.message.messageFactory.registerElementClass(Vr.MSG_STREAM,OE),s.helper.registerApi({apiName:"createFaceMessage",context:this}),s.helper.registerApi({apiName:"createTextAtMessage",context:this}),s.helper.registerApi({apiName:"createForwardMessage",context:this}),s.helper.registerApi({apiName:"createLocationMessage",context:this})}createFaceMessage(s){if(!s)return null;const{index:n,data:g}=s?.payload||{},u=new Ul({index:n,data:g}),E=this._core.common.getCurrentUserID(),m=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(u),m}createTextAtMessage(s){const{atUserList:n}=s?.payload||{},g=this._core.apiMap.createTextMessage(s),{OuterConstant:u}=this._core;if(!g)return null;if(Array.isArray(n)){const E=[],m=[];n.forEach(D=>{D!==u.MSG_AT_ALL?(E.push({GroupAtAllFlag:ch,GroupAt_Account:D}),m.push(D)):(E.push({GroupAtAllFlag:ro}),m.push(u.MSG_AT_ALL))}),g._groupAtInfoList=E,g.atUserList=m}return g}createForwardMessage(s){const{helper:n,OuterConstant:g}=this._core,{to:u,conversationType:E,priority:m,payload:D,needReadReceipt:M,receiverList:T,cloudCustomData:P="",isSupportExtension:W=!1}=s;if(!Array.isArray(D._elements))throw new n.ChatError({functionName:"createForwardMessage",code:2454});if(D.type===g.MSG_GRP_TIP)throw new n.ChatError({functionName:"createForwardMessage",code:2453});const iA=this._core.common.getCurrentUserID(),EA=this._core.message.messageFactory.createMessage({to:u,from:iA,conversationType:E,isPlaceMessage:0,priority:m,payload:D,needReadReceipt:M,isSupportExtension:W,cloudCustomData:P,receiverList:T});return EA.setRelayFlag(!0),EA.setElement(D._elements[0]),EA}createLocationMessage(s){if(!s)return null;const{description:n,longitude:g,latitude:u}=s?.payload||{},E=new bc({description:n,longitude:g,latitude:u}),m=this._core.common.getCurrentUserID(),D=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:m}));return D.setElement(E),D}};let Ou=class{init(s){this._messageHelper=new kr(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{C2C_REVOKED_MESSAGE:u},helper:{registerWorkflowStep:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(g,u,this._handleC2CNotifyMessage,this),E(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,this._handleC2CRevokeMessagesFromUnreadMessageSync,this)}_handleC2CNotifyMessage(s){const{C2cNotifyMsgArray:n}=s;n?.forEach(g=>{Object.keys(g).includes("WithdrawC2cMsgNotify")&&this._handleC2CRevokeMessage(g)})}_handleC2CRevokeMessage(s){return pA(this,void 0,void 0,function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:n}}=s;yield this._parseAndEmitC2CRevokedMessages(n)}catch(n){console.debug(n)}})}_parseAndEmitC2CRevokedMessages(s){return pA(this,void 0,void 0,function*(){const n=[],{notificationCenter:g,OuterEvent:u,common:{getCurrentUserID:E}}=this._core;s.forEach(m=>{var D;const{MsgRand:M,MsgSeq:T,To_Account:P,From_Account:W,RevokerInfo:{Revoker_Account:iA,Revoke_Reason:EA}}=m,RA=E()===W?`C2C${P}`:`C2C${W}`,kA=((D=m?.RevokerInfo)===null||D===void 0?void 0:D.Reason)||EA,xA=this._messageHelper.generateRevokeMessage({conversationID:RA,sequence:T,random:M,revoker:iA,revokeReason:kA});n.push(xA)}),n.length>0&&(yield this._messageHelper.updateRevokerInfo(n),g.emitOuterEvent(u.MESSAGE_REVOKED,{name:u.MESSAGE_REVOKED,data:n}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(s){return pA(this,void 0,void 0,function*(){const{revokedMessageList:n}=s.result;yield this._parseAndEmitC2CRevokedMessages(n)})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{C2C_REVOKED_MESSAGE:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleC2CNotifyMessage,this)}},pC=class{init(s){this._messageHelper=new kr(s),this._core=s;const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g},InnerEventSubType:{GROUP_MESSAGE_REVOKED:u}}=s;n.subscribeInnerEvent(g,u,this._handleGroupNotifyMessage,this)}_handleGroupNotifyMessage(s){const{GroupTips:n}=s;n?.forEach(g=>{var u;Array.isArray((u=g?.MsgBody)===null||u===void 0?void 0:u.GroupWithdrawInfoArray)&&this._handleGroupRevokeMessage(g)})}_handleGroupRevokeMessage(s){return pA(this,void 0,void 0,function*(){try{const{RevokerInfo:n,MsgBody:{GroupWithdrawInfoArray:g},GroupInfo:u}=s,E=[],m=[],{notificationCenter:D,OuterEvent:M,utils:{isEmpty:T},common:{isCommunity:P}}=this._core;let W=!1;u&&(W=P({groupID:u.GroupId})||!T(u.TopicId)),g.forEach(iA=>{const{Random:EA,MsgSeq:RA,GroupId:kA,MsgClientTime:xA,TinyId:LA,TopicId:SA,RevokerInfo:{Revoker_Account:OA=n?.Revoker_Account||"",Reason:JA=n?.Reason||""}}=iA,ae=SA?`GROUP${SA}`:`GROUP${kA}`,re=this._messageHelper.generateRevokeMessage({conversationID:ae,sequence:RA,random:EA,tinyID:LA,clientTime:xA,revoker:OA,revokeReason:JA});W?(re.revokerInfo.nick=u.From_AccountNick,re.revokerInfo.avatar=u.From_AccountHeadurl,E.push(re)):m.push(re)}),m.length>0&&(yield this._messageHelper.updateRevokerInfo(m),E.push(...m)),E.length!==0&&D.emitOuterEvent(M.MESSAGE_REVOKED,{name:M.MESSAGE_REVOKED,data:E})}catch(n){console.debug(n)}})}dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{GROUP_MESSAGE_REVOKED:g}}=this._core;s.unSubscribeInnerEvent(n,g,this._handleGroupNotifyMessage,this)}};var eu=new class{constructor(){this._c2cMessageReceiver=new Ou,this._groupMessageReceiver=new pC}init(s){this._c2cMessageReceiver.init(s),this._groupMessageReceiver.init(s)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}},lh=new class{constructor(){this._core=null}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"translateText",context:this})}translateText(s){return pA(this,void 0,void 0,function*(){try{const{sourceLanguage:n,sourceTextList:g,targetLanguage:u}=s,E=yield function(m,D){return pA(this,void 0,void 0,function*(){var M,T;const{sourceTextList:P,sourceLanguage:W,targetLanguage:iA}=m,{store:EA,common:RA}=D,kA={SourceText:P,Source:W,Target:iA,FromAccount:(M=EA.get("login"))===null||M===void 0?void 0:M.tinyID,SDKAppID:(T=EA.get("instance"))===null||T===void 0?void 0:T.sdkAppId},xA=yield RA.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:kA});if(xA){const{CmdErrorCode:LA,TargetText:SA}=xA;return{cmdErrorCode:LA,translatedTextList:SA}}})}({sourceLanguage:n,sourceTextList:g,targetLanguage:u},this._core);if(E){const{cmdErrorCode:{ErrorCode:m,ErrorInfo:D},translatedTextList:M}=E;if(m===0)return{code:0,data:{translatedTextList:M}};throw{errorCode:m,errorInfo:D,message:D}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};throw new this._core.helper.ChatError({functionName:"translateText",code:g,message:u})}})}},Pu=new class{init(s){this._core=s,s.helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(s){return pA(this,void 0,void 0,function*(){var n;const{message:g,language:u=Tc.ZH_PY}=s;let{url:E}=g.payload||{};const m=this._core.common.getCurrentUserID();g.from===m&&g.flow==="out"&&(E=g.payload.remoteAudioUrl),this._validateVoiceFormat(E);const D=((n=QI.exec(E))===null||n===void 0?void 0:n[1])||"mp3",M=BI[u]||XI;try{const T=yield function(P){var W;const{store:iA,common:EA}=Us.core,{url:RA,format:kA,serverLanguageType:xA}=P,LA={BytesUrl:RA,BytesEngServiceType:xA,BytesVoiceFormat:kA,Uint32Sdkappid:(W=iA.get("instance"))===null||W===void 0?void 0:W.sdkAppId,Uint64SourceType:0};return EA.buildAndSendPacket({servcmd:"im_open_speech.ws_sentence_recognition",data:LA})}({url:E,format:D,serverLanguageType:M});if(T){const{CmdErrorCode:P,BytesResult:W}=T;if(P.ErrorCode===0)return{code:0,data:{result:W}};throw{code:P.ErrorCode,message:P.ErrorInfo}}}catch(T){const{code:P,message:W}=T||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:P,message:W})}})}_validateVoiceFormat(s){if(!QI.test(s))throw new this._core.common.ChatError({code:2119})}};class mI{constructor(n){const{constants:g,common:u,utils:E}=Us.core,{CONV_C2C:m,CONV_GROUP:D}=g.OuterConstant,{ID:M,tinyID:T,from:P,to:W,clientTime:iA=u.timeManager.getServerTimeSeconds()||0,random:EA,sequence:RA,cloudCustomData:kA="",nick:xA="",avatar:LA="",clientSequence:SA,conversationType:OA,groupID:JA,_elements:ae,time:re}=n;this.ID=M||`${T}-${iA}-${EA}`,this.messageRandom=EA,this.from=P,this.messageSender=P,this.time=re,this.messageSequence=RA,this.clientSequence=SA||RA,this.clientTime=iA,this.cloudCustomData=kA,this.messageReceiver=W,this.avatar=LA,this.nick=xA;const _i=E.deepCopyWithMethods(ae);_i.forEach(Ti=>{Ti.payload=Ti.content,delete Ti.content}),this.messageBody=_i,M?OA.startsWith(m)?this.receiverUserID=W:OA.startsWith(D)&&(this.receiverGroupID=W):JA?(this.receiverGroupID=JA,this.messageReceiver=JA):W&&(this.receiverUserID=W,this.messageReceiver=W)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(n=>n.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class al{static parseServerPushElement(n){const{MsgContent:g}=n,{MsgList:u=[],CompatibleText:E,AbstractList:m,Title:D,PbMsgKey:M,JsonMsgKey:T}=g||{},P=u.map(W=>dr(W));return new al({messageList:P,title:D,abstractList:m,compatibleText:E,pbDownloadKey:M,downloadKey:T})}constructor(n){this.type=Us.core.constants.OuterConstant.MSG_MERGER;const{messageList:g,title:u,abstractList:E,compatibleText:m,pbDownloadKey:D="",downloadKey:M="",version:T=0,layersOverLimit:P=!1}=n,W=[];g.forEach(iA=>{if(iA){const EA=new mI(iA);W.push(EA)}}),this.content={messageList:W,title:u,abstractList:E,compatibleText:m,version:T,downloadKey:M,pbDownloadKey:D,layersOverLimit:P}}validateBeforeSend(){const{isEmpty:n}=Us.core.helper;return n(this.content.messageList)?{isValid:!1,error:{message:"content is invalid"}}:{isValid:!0}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{abstractList:E,compatibleText:m,downloadKey:D,layersOverLimit:M,pbDownloadKey:T,title:P,version:W,messageList:iA}=u;return{MsgType:this.type,MsgContent:{AbstractList:E,CompatibleText:m,JsonMsgKey:D,LayersOverLimit:M,PbMsgKey:T,Title:P,Version:W,MsgList:Ac(iA)}}}}var mC=new class{init(s){this._core=s;const{message:n,helper:g,constants:{OuterConstant:u}}=s;n.messageFactory.registerElementClass(u.MSG_MERGER,al),g.registerApi({apiName:"createMergerMessage",context:this}),g.registerApi({apiName:"sendMessage",context:this,matcher:E=>E[0].type===u.MSG_MERGER}),g.registerApi({apiName:"downloadMergerMessage",context:this})}createMergerMessage(s){const{common:n}=this._core;if(!s)return null;const g=new al(s.payload),u=n.getCurrentUserID(),E=this._core.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:u}));return E.setRelayFlag(!0),E.setElement(g),E}sendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;try{const m=function(P){let W="utf-8";Us.core.helper.IN_BROWSER&&document&&(W=document.charset.toLowerCase());let iA,EA=0,RA=0;if(RA=P.length,W==="utf-8"||W==="utf8")for(let kA=0;kA<RA;kA++)iA=P.codePointAt(kA),iA<=127?EA+=1:iA<=2047?EA+=2:iA<=65535?EA+=3:(EA+=4,kA++);else if(W==="utf-16"||W==="utf16")for(let kA=0;kA<RA;kA++)iA=P.codePointAt(kA),iA<=65535?EA+=2:(EA+=4,kA++);else EA=P.replace(/[^\x00-\xff]/g,"aa").length;return EA}(JSON.stringify(s));let D=s,M=null;if(m>11264){D=this._core.utils.deepCopyWithMethods(s);try{const{JsonMsgKey:P,PbMsgKey:W}=yield function(EA){return pA(this,void 0,void 0,function*(){const{payload:{messageList:RA}}=EA,kA={MsgList:Ac(RA)};return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:kA})})}(D),{payload:iA}=D;M=new al(Object.assign(Object.assign({},iA),{messageList:[],downloadKey:P,pbDownloadKey:W})),D.setElement(M)}catch(P){console.error(P)}}const{data:{message:T}}=yield(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(D,n);return M&&T.setElement(s._elements),{code:0,data:{message:T}}}catch(m){const{errorCode:D}=m;throw new this._core.helper.ChatError({code:D})}})}downloadMergerMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,g=s.payload,{downloadKey:u,pbDownload:E,type:m,messageList:D}=g,M=Do(g,["downloadKey","pbDownload","type","messageList"]);try{const T=yield function(iA){return pA(this,void 0,void 0,function*(){return Us.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:iA}})})}(u),{MsgList:P}=T||{},W=P?.map(iA=>{const EA=dr(iA);return new mI(EA)});return typeof s.isOnlineMessage=="function"?s.setElement({type:s.type,content:Object.assign({messageList:W},M)}):(s.payload.messageList=W,s.payload.downloadKey="",s.payload.pbDownloadKey=""),n.info("downloadMergerMessage",` success downloadKey:${u}`),s}catch(T){const{errorCode:P}=T;throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:P,moreMessage:u})}})}},aa=new class{init(s){this._core=s,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(s){return pA(this,void 0,void 0,function*(){const{appStore:n,message:g,common:{getCurrentUserID:u},utils:{isArray:E}}=this._core,{GroupId:m,To_Account:D}=s;s.From_Account=s.From_Account||u();let M=null;if(m){M=this._generateGroupMessage(Object.assign(Object.assign({},s),{ToGroupId:m}));const T=n.userStore.getUserProfile(u());M.level=T?.level||0,E(D)&&D.length>0&&(M._receiverList=D)}else D&&(M=this._generateC2CMessage(s));return g.messageSender.sendMessage(M,s)})}_generateC2CMessage(s){const{message:n,OuterConstant:{CONV_C2C:g}}=this._core,u=g,E=n.messageHelper.parseServerPushMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:u,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}_generateGroupMessage(s){const{message:n,OuterConstant:{CONV_GROUP:g}}=this._core,u=g,E=n.messageHelper.parseServerGroupMessage(s),m=n.messageFactory.createMessage(Object.assign(Object.assign({},E),{conversationType:u,flow:ec.OUT})),{elements:D}=E;return m.setElement(D),m}},tc=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{MESSAGE_PUSH:u},InnerEventSubType:{GROUP_MESSAGE_PINNED:E}}=s;g.subscribeInnerEvent(u,E,this._handleGroupMessagePinned,this),n.registerApi({apiName:"pinGroupMessage",context:this}),n.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,common:{isTopic:g},OuterConstant:{GROUP_ID_PREFIX:u},helper:{ChatError:E}}=this._core;let{groupID:m,message:D,isPinned:M}=s;const{sequence:T}=D;try{return yield function(P){return pA(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:W,getCurrentUserID:iA}}=Us.core,{groupID:EA,sequence:RA,isPinned:kA}=P,xA=iA(),LA=kA?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",SA={GroupId:EA,MsgSeq:RA};return kA?SA.Pinner_Account=xA:SA.UnPinner_Account=xA,W({servcmd:LA,data:SA})})}({groupID:m,sequence:T,isPinned:M}),{code:0,data:{}}}catch(P){const{errorCode:W,errorInfo:iA}=P||{};throw new E({code:W,message:iA})}})}getPinnedGroupMessageList(s){return pA(this,void 0,void 0,function*(){let n=[];try{const g=yield function(u){return pA(this,void 0,void 0,function*(){const{groupID:E}=u,{common:{buildAndSendPacket:m}}=Us.core;return m({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:E}})})}({groupID:s});if(g){const{PinnedMsgList:u=[]}=g;n=yield this._updatePinnedMessageInfo({serverPinnedMessageList:u,groupID:s})}return{code:0,data:{messageList:n}}}catch(g){throw g}})}_handleGroupMessagePinned(s){const{message:{messageHelper:n,messageFactory:g},notificationCenter:u,OuterEvent:E,OuterConstant:m}=this._core;s.GroupTips.forEach(D=>{const{ToGroupId:M,MsgBody:{PinnedMsg:T,OpType:P,MsgOperatorMemberExtraInfo:W,SdkGroupMessageId:iA}}=D,{UserId:EA,NickName:RA="",ImageUrl:kA=""}=W;let xA=null,LA=!1;if(P===md){LA=!0;const SA=n.parseServerGroupMessage(T);xA=g.createMessage(Object.assign(Object.assign({},SA),{conversationType:m.CONV_GROUP,flow:"in"})),xA.setElement(SA.elements),xA.pinnerInfo={userID:EA,nick:RA,avatar:kA}}else if(P===LE){const{ClientTime:SA,Random:OA,SenderTinyId:JA,ServerTime:ae,MsgSeq:re}=iA;xA={ID:`${JA}-${SA}-${OA}`,sequence:re,random:OA,time:ae,clientTime:SA}}xA&&u.emitOuterEvent(E.PINNED_GROUP_MESSAGE_UPDATED,{name:E.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:M,message:xA,isPinned:LA,operatorInfo:{userID:EA,nick:RA,avatar:kA}}})})}_findMessageBySequence(s,n){const{message:{messageDataHandler:g}}=this._core;return[...g.getLocalMessageList(s),...g.getSparseMessageList(s)].find(u=>u.sequence===n)}_updatePinnedMessageInfo(s){return pA(this,arguments,void 0,function*({serverPinnedMessageList:n,groupID:g}){const{OuterConstant:{CONV_GROUP:u},utils:{isEmpty:E}}=this._core,m=[],D=[],M=[],T=new Map,P=`${u}${g}`;for(let iA=0;iA<n.length;iA++){const EA=n[iA],{Pinner_Account:RA,MsgSeq:kA}=EA,xA=this._findMessageBySequence(P,kA);D.push(RA),T.set(kA,RA),xA?m.push(xA):M.push(kA)}const W=yield this._fetchPinnedMessageInfo({conversationID:P,messageSequenceList:M,pinnerIDList:D});if(W){const{pinnerInfoMap:iA,messageList:EA}=W;return m.push(...EA),m.forEach(RA=>{const{sequence:kA}=RA,xA=T.get(kA),LA=iA[xA]||{userID:xA,nick:"",avatar:""};RA.pinnerInfo=LA}),m.sort((RA,kA)=>RA.sequence-kA.sequence),m}return[]})}_fetchPinnedMessageInfo(s){return pA(this,void 0,void 0,function*(){var n,g;const{message:{messageHistory:u},user:{userProfile:E},utils:{isArray:m}}=this._core,{conversationID:D,messageSequenceList:M,pinnerIDList:T}=s,P=yield Promise.all([this._fetchMessageBySequence({conversationID:D,messageSequenceList:M}),E?.getUserProfile({userIDList:T})]);if(m(P)){const W={};return(((n=P[1])===null||n===void 0?void 0:n.data)||[]).forEach(iA=>{const{userID:EA,nick:RA="",avatar:kA=""}=iA;W[EA]={userID:EA,nick:RA,avatar:kA}}),{messageList:((g=P[0])===null||g===void 0?void 0:g.messageList)||[],pinnerInfoMap:W}}})}_fetchMessageBySequence(s){return pA(this,void 0,void 0,function*(){const{utils:{isEmpty:n},message:{messageHistory:g}}=this._core,{conversationID:u,messageSequenceList:E}=s;return n(E)?[]:g.getGroupRoamingMessagesByAnchor({conversationID:u,messageSequenceList:E,getType:3})})}};class lg{constructor(n){this.eventType=Nc.DATA,this.index=0,this.markdown="",this.isLast=!1,this.binaryData=null;const{EventType:g,Index:u,Markdown:E,IsLast:m,BinaryData:D}=n;this.eventType=g,this.index=u,this.markdown=E,this.isLast=m,this.binaryData=D}}var fI=new class{constructor(){this._messageMap=new Map,this._retryCountMap=new Map}init(s){this._core=s;const{notificationCenter:n,OuterEvent:{MESSAGE_RECEIVED:g},InnerEvent:{HISTORY_MESSAGE_FETCHED:u},common:{workflowManager:E},constants:{WORKFLOW_NAME:m,WORKFLOW_STEP:D}}=s;n.subscribeInnerEvent(lo,this._handleStreamMessageChunkPush,this),n.subscribeOuterEvent(g,this._handleMessageReceived,this),n.subscribeInnerEvent(u,this.processHistoryMessage,this),E.registerWorkflowStep(m.SYNC_SERVER_INFO_AFTER_RE_ONLINE,D.STREAM_MESSAGE_RECOVER,this._recoverStreamMessage,this)}processHistoryMessage(s){const{utils:{isEmpty:n,safeStringify:g},ssoLog:u}=this._core;try{s?.forEach(E=>{var m;if(this._isValidStreamMessage(E)){const D=(m=E?._elements)===null||m===void 0?void 0:m[0],{streamMessageID:M,markdown:T,binaryData:P}=D?.content||{};n(T)&&n(P)?(this._messageMap.set(M,E),this._fetchStreamMessageChunks(E)):D.content.isStreamEnded=!0}})}catch(E){u.error("processHistoryMessage.error",g(E))}}_handleMessageReceived(s){const n=s.data;n?.forEach(g=>{var u,E;if(this._isValidStreamMessage(g)){const{streamMessageID:m}=((E=(u=g?._elements)===null||u===void 0?void 0:u[0])===null||E===void 0?void 0:E.content)||{};m&&(this._messageMap.set(m,g),this._fetchStreamMessageChunks(g))}})}_isValidStreamMessage(s){var n,g;const{utils:{isEmpty:u}}=this._core,{streamMessageID:E}=((g=(n=s?._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g.content)||{};return s.type===Vr.MSG_STREAM&&!u(E)}_fetchStreamMessageChunks(s){return pA(this,void 0,void 0,function*(){var n,g;const{constants:{ERROR_CODE:u},ssoLog:E,utils:{safeStringify:m}}=this._core,D=(n=s._elements)===null||n===void 0?void 0:n[0],M=(g=D?.content)===null||g===void 0?void 0:g.streamMessageID;try{const{from:T,to:P}=s,W=D.getLatestIndex();if(D.content.isStreamEnded)return;const iA=yield function(EA){return pA(this,void 0,void 0,function*(){const{from:RA,to:kA,streamMessageID:xA,index:LA}=EA,SA={From_Account:RA,To_Account:kA,StreamMsgID:xA,AckIndex:LA};return Us.core.common.buildAndSendPacket({servcmd:"StreamMsg.GetStreamHttp",data:SA,timeout:5e3})})}({from:T,to:P,streamMessageID:M,index:W});if(iA){const{ErrorCode:EA,ErrorInfo:RA}=iA;if(EA!==0)throw D.content.errorCode=EA,D.content.errorMessage=RA,{errorCode:EA,errorMessage:RA}}}catch(T){if(T.errorCode===u.NETWORK_TIMEOUT&&this._shouldRetryFetch(M)){const P=this._retryCountMap.get(M)||0;E.debug("_fetchStreamMessageChunks.timeout",`error: ${m(T)} retried: ${P}`),this._retryCountMap.set(M,P+1),this._fetchStreamMessageChunks(s)}else E.error("_fetchStreamMessageChunks.error",m(T))}})}_shouldRetryFetch(s){const{utils:{isNumber:n}}=this._core;if(!this._retryCountMap.has(s))return this._retryCountMap.set(s,1),!0;const g=this._retryCountMap.get(s);return!!(n(g)&&g<=3)}_onStreamEnded(s,n,g){const{ssoLog:u}=this._core;g.content.isStreamEnded=!0,g.stopReason=n,this._messageMap.delete(s),u.debug("_onStreamEnded",`streamMessage end, StopReason: ${n}`)}_handleStreamMessageChunkPush(s){var n;const{ssoLog:g}=this._core,{StopReason:u,Chunks:E,StreamID:m}=s?.body||{},D=this._messageMap.get(m);if(!D)return void g.warn(`_handleStreamMessageChunkPush, unfounded message: ${m}`);const M=(n=D._elements)===null||n===void 0?void 0:n[0];if(M&&this._validateExpectedChunk(M,E)){if(E.length>0){const T=E.map(P=>new lg(P));M.updateChunks(T)}this._emitMessageModify(D),function(T,P){pA(this,void 0,void 0,function*(){const{common:{generateProtocolData:W},utils:{safeStringify:iA},ssoLog:EA,channel:RA}=Us.core,kA={StreamMsgID:T,AckIndex:P};try{const xA=W({servcmd:"StreamMsg.AckHttp",data:kA});RA.sendPacket(xA)}catch(xA){EA.debug("sendStreamChunkAck",iA(xA))}})}(m,M.getLatestIndex()),M.content.isStreamEnded&&this._onStreamEnded(m,u,M)}}_emitMessageModify(s){const{notificationCenter:n,OuterEvent:{MESSAGE_MODIFIED:g}}=this._core;n.emitOuterEvent(g,{name:g,data:[s]})}_validateExpectedChunk(s,n){const g=s.getLatestIndex()+1;let u=!1;for(let E=0;E<n.length;E++)if(n[E].Index===g){u=!0;break}if(!u){const{ssoLog:E}=this._core;return E.debug("_handleStreamMessageChunkPush",`Ignore push, expected index: ${g}, received: [${n.map(m=>m.Index).join(", ")}]`),!1}return!0}_recoverStreamMessage(){this._retryCountMap.clear();const{ssoLog:s,utils:{safeStringify:n}}=this._core;try{const g=Array.from(this._messageMap.entries());for(let u=Math.max(0,g.length-300);u<g.length;u++){const E=g[u][0],m=g[u][1];m.payload.isStreamEnded===!1&&(s.debug("_recoverStreamMessage",`recover unfinished stream: ${E}`),this._fetchStreamMessageChunks(m))}}catch(g){s.error("_recoverStreamMessage.error",n(g))}}reset(){this._messageMap.clear(),this._retryCountMap.clear()}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;this.reset(),s.unSubscribeInnerEvent(lo,this._handleStreamMessageChunkPush,this),s.unSubscribeInnerEvent(n,this._handleMessageReceived,this)}},PE=new class{constructor(){this.name="MessageEnhancer"}install(s){this._core=s,Us.init(s),rl.init(s),kc.init(s),eu.init(s),UE.init(s),lh.init(s),Pu.init(s),$a.init(s),mC.init(s),Gc.init(s),aa.init(s),tc.init(s),fI.init(s),s.helper.registerValidateConfig({auth:xa,params:nl}),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this.dispose,this),eu.dispose(),$a.dispose(),Gc.dispose(),fI.dispose()}_reset(){fI.reset()}},xu=new class{constructor(){this._name="WebRequest"}init(s){this._core=s}request(s,n){return pA(this,void 0,void 0,function*(){var g;const{isEmpty:u}=(g=this._core)===null||g===void 0?void 0:g.utils,{downloadUrl:E="",method:m="PUT",url:D,qs:M,headers:T={},resources:P,dataType:W="text",uploadByIP:iA,uploadIP:EA}=s;let RA=D;if(M){const LA=this._queryString(M);LA&&(RA+=`${RA.includes("?")?"&":"?"}${LA}`)}const kA=new XMLHttpRequest;kA.open(m.toUpperCase(),RA,!0),kA.responseType=W;const xA=Object.assign({},T);if(iA&&EA&&(xA.host=EA),!u(xA))for(const LA in xA)xA.hasOwnProperty(LA)&&!["content-length","user-agent","origin","host"].includes(LA.toLowerCase())&&kA.setRequestHeader(LA,xA[LA]);return kA.onload=()=>{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA);if(kA.status===200)n(null,SA);else{if(EA&&!RA.includes(EA))return s.url=this._domainName2IP(RA,EA),s.uploadByIP=!0,this.request(s,n);n({code:kA.status,message:JSON.stringify(kA.responseText)},SA)}},kA.onerror=()=>{const LA=this._getResponseBody(kA,E,iA&&EA),SA=this._buildResponse(kA,LA),OA={code:kA.status,message:kA.status===0?"CORS blocked or network error":JSON.stringify(kA.responseText)};n(OA,SA)},s.onProgress&&kA.upload&&(kA.upload.onprogress=LA=>{const{total:SA,loaded:OA}=LA,JA=Math.min(Math.floor(100*OA/SA),100);s.onProgress({total:SA,loaded:OA,percent:JA/100})}),kA.send(P),kA})}_buildResponse(s,n){const g={};return s.getAllResponseHeaders().trim().split(`
|
||
`).forEach(u=>{if(u){const[E,m]=u.split(":").map(D=>D.trim());g[E.toLowerCase()]=m}}),{statusCode:s.status,statusMessage:s.statusText,headers:g,data:n}}_getResponseBody(s,n,g){return s.status===200&&n?{location:n,uploadIP:g}:{response:s.responseText,uploadIP:g}}_queryString(s,n="&",g="="){var u;const{isEmpty:E,isPlainObject:m}=(u=this._core)===null||u===void 0?void 0:u.utils;return E(s)?"":m(s)?Object.keys(s).map(D=>{const M=encodeURIComponent(D)+g;return Array.isArray(s[D])?s[D].map(T=>M+encodeURIComponent(T)).join(n):M+encodeURIComponent(s[D])}).filter(Boolean).join(n):void 0}_domainName2IP(s,n){return s.replace(/^http(s)?:\/\/(.*?)\//,`https://${n}/`)}};const Yu=["unknown","image","video","audio","log"];var yI=new class{init(s){this._core=s}request(s,n){var g;const{MINI_APP_NAMESPACE:u,IN_ALIPAY_MINI_APP:E,isUniIOSApp:m}=(g=this._core)===null||g===void 0?void 0:g.utils,{resources:D="",headers:M={},url:T,downloadUrl:P=""}=s;let W=T,iA=null;const EA=P?P.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!EA)return void console.warn("message Invalid download URL format");const RA=decodeURIComponent(EA[3]),kA=RA.includes("?")?RA.split("?")[0]:RA||"",xA={key:s.fileKey||kA,success_action_status:200,"Content-Type":""},LA={};if(m()){const[OA,JA]=T.split("?sign=");JA&&(W=`${OA}?sign=${encodeURIComponent(JA)}`,LA.sign=decodeURIComponent(JA),LA.signature=decodeURIComponent(JA))}let SA={url:W,header:M,name:"file",filePath:D,formData:Object.assign(Object.assign({},xA),LA),timeout:s.timeout||3e5};if(E){const{name:OA}=SA,JA=Do(SA,["name"]);SA=Object.assign(Object.assign({},JA),{fileName:"file",fileType:s.fileType?Yu[s.fileType]:"image"})}return iA=u.uploadFile(Object.assign(Object.assign({},SA),{success:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})},fail:OA=>{this._handleResponse({response:OA,downloadUrl:P,callback:n})}})),iA.onProgressUpdate&&iA.onProgressUpdate(OA=>{s.onProgress&&s.onProgress({total:OA.totalBytesExpectedToSend||0,loaded:OA.totalBytesSent||0,percent:OA.progress?Math.floor(OA.progress)/100:0})}),iA}_handleResponse(s){const{downloadUrl:n,response:g,callback:u}=s,E={};if(g.header)for(const D in g.header)g.header.hasOwnProperty(D)&&(E[D.toLowerCase()]=g.header[D]);const m=+g.statusCode;m===200?u(null,{statusCode:m,headers:E,data:Object.assign(Object.assign({},g.data),{location:n})}):u({code:m,message:JSON.stringify(g.data)},{statusCode:m,headers:E,data:void 0})}};function gl(s){return function(n){return Object.prototype.toString.call(n).match(/^\[object (.*)\]$/)[1].toLowerCase()}(s)==="file"}function Lr(s){const n=s||99999999;return Math.round(Math.random()*n)}function Ur(s,n=!0,g=!0){const u=Date.now();return n?g?u-s+" ms":`${Math.round((u-s)/1e3)} s`:g?u-s:Math.round((u-s)/1e3)}function Ig(s){return`${Array.from({length:8},()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1)).join("")}-${s}`}function ar(s,n){return Math.round(Number(s)*10**n)/10**n}function wr(s){return s<=1048576?`${ar(s/1024,1)}KB/s`:`${ar(s/1048576,1)}MB/s`}const ic="TIMImageElem",Fg="TIMSoundElem",Ya="TIMFileElem",Fl="TIMVideoFileElem",ha="RichMediaMessagePlugin",DI=["rich.my-imcloud.com","imrich.qcloud.com"],tu=1,Ba=2,cl=3,xE=255;var iu;(function(s){s.UNSENT="unSend",s.SUCCESS="success",s.FAIL="fail"})(iu||(iu={}));const YE={wechat:/^(wxfile:\/\/tmp_|http:\/\/temp\/|cloud:\/\/temp-)/,alipay:/^(https:\/\/resource\/|alipayfile:\/\/tmp\/)/,baidu:/^(http:\/\/tmp\/|swanfile:\/\/tmp_)/,bytedance:/^(ttfile:\/\/tmp_|\/(var|tmp)\/|tttemp:\/\/)/,qq:/^(qqfile:\/\/tmp_|http:\/\/qtemp\/)/},Jr=Symbol("isCustomUpload");var ou,Ot=new class{init(s){this._core=s}addAuthToUrl(s=""){if(this._isMiniProgramTempFile(s))return s;const n=function(g){return g?g.startsWith("https://")?g:g.startsWith("http://")?g.replace("http://","https://"):g:""}(s);return this.processResourceUrl(n)}removeAuthToUrl(s){return function(n,g){const[u,E]=n.split("?");if(!E)return u;const m=E.split("&").reduce((M,T)=>{const[P,W]=T.split("=");return P&&P!==g&&(M[P]=W||""),M},{}),D=Object.keys(m).map(M=>`${M}${m[M]?`=${m[M]}`:""}`).join("&");return D?`${u}?${D}`:u}(s,"authKey")}_isMiniProgramTempFile(s){return!!this.getPlatformFlags().IN_MINI_APP&&Object.values(YE).some(n=>n.test(s))}extractFileFromInput(s){const{utils:{isArray:n}}=this._core;return gl(s)?s:function(g){if(typeof g!="object"||g===null)return!1;const u=Object.getPrototypeOf(g);if(u===null)return!0;let E=u;for(;Object.getPrototypeOf(E)!==null;)E=Object.getPrototypeOf(E);return u===E}(s)&&typeof uni<"u"?n(s.tempFiles)&&s.tempFiles.length>0?s.tempFiles[0]:n(s.files)?s.files[0]:s.tempFile?s.tempFile:null:s instanceof HTMLInputElement&&s.files&&s.files.length>0?s.files[0]:null}probeImageWidthHeight(s){return pA(this,void 0,void 0,function*(){var n;const{IN_MINI_APP:g,IN_BROWSER:u}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return this._shouldSkipProbing()?{width:0,height:0}:u?this._probeImageDimensionsWeb(s):g?this._probeImageDimensionsMiniApp(s):void 0})}isSimpleCos(){var s;const n=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{simple_cos:g}=n;return g!=="0"}getFileDNList(){var s;let n=DI;const g=((s=this._core)===null||s===void 0?void 0:s.store.get("cloudConfig"))||{},{file_dn_list:u}=g;if(u===void 0)return n;try{JSON.parse(u).forEach(E=>{n.includes(E)||n.push(E)})}catch(E){console.warn(E),n=DI}return n}getPlatform(){var s;return(s=this._core)===null||s===void 0?void 0:s.utils.platform}generateUUID(s,n){var g;let u=`${this.getSDKAppID()}-${this.getCurrentUserID()}-${(g=this._core)===null||g===void 0?void 0:g.utils.randomString()}`;if(n)return`${u}.${n}`;const E=s.name||s.value||s.url||s.tempFilePath,m=E&&E.slice(E.lastIndexOf(".")+1);return m&&(u=`${u}.${m}`),u}processResourceUrl(s){if(!s)return"";let n=s;const g=this.getFileDownloadProxy(),u=this.getAuthKey(),E=this.getFileDNList();return g&&(s.startsWith("http://")?n=s.replace(/^http:\/\/[^/]+/,g):s.startsWith("https://")&&(n=s.replace(/^https:\/\/[^/]+/,g))),u&&n.indexOf("authKey=")===-1&&function(D,M){let T=!1;if(D){const P=D.match(/:\/\/([0-9]?\.)?(.[^/:]+)/),W=P&&P[2]||"";if(W.includes("rich-dev"))return!0;for(let iA=0;iA<M.length;iA++)if(W.endsWith(M[iA])){T=!0;break}}return T}(n,E)&&(n=n.indexOf("?")>-1?`${n}&authKey=${u}`:`${n}?authKey=${u}`),n}getCurrentUserID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.userId}getSDKAppID(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.sdkAppId}getFileDownloadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileDownloadProxy)||""}getFileUploadProxy(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.fileUploadProxy)||""}getAuthKey(){var s,n;return((n=(s=this._core)===null||s===void 0?void 0:s.store.get("login"))===null||n===void 0?void 0:n.authKey)||""}isPrivateNetWork(){var s,n;return(n=(s=this._core)===null||s===void 0?void 0:s.store.get("instance"))===null||n===void 0?void 0:n.proxyServer}getPlatformFlags(){var s;const{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:u,IN_UNI_NATIVE_APP:E}=(s=this._core)===null||s===void 0?void 0:s.utils;return{IN_BROWSER:n,IN_MINI_APP:g,IN_RN_APP:u,IN_UNI_NATIVE_APP:E}}isEmpty(s){var n;const{isEmpty:g}=(n=this._core)===null||n===void 0?void 0:n.utils;return g(s)}generateURL(s,n){const{needAddAuthToUrl:g=!0}=n||{};return g?this.addAuthToUrl(s):s}_probeImageDimensionsMiniApp(s){var n;const{MINI_APP_NAMESPACE:g}=((n=this._core)===null||n===void 0?void 0:n.utils)||{};return new Promise(u=>{g.getImageInfo({src:s,success:E=>u({width:E.width,height:E.height}),fail:()=>u({width:0,height:0})})})}_shouldSkipProbing(){var s;const{IN_RN_APP:n,IS_IE:g,IE_VERSION:u,IN_WX_MINI_GAME:E}=((s=this._core)===null||s===void 0?void 0:s.utils)||{};return n||g&&u===9||E}_probeImageDimensionsWeb(s){return new Promise(n=>{const g=new Image,u=()=>{g.onload=null,g.onerror=null,g.src=""};g.onload=()=>{n({width:g.width,height:g.height}),u()},g.onerror=()=>{n({width:0,height:0}),u()},g.src=s})}},Vu={exports:{}},Ju=(ou||(ou=1,function(s){s.exports=function(n){var g=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function u(LA,SA){var OA=LA[0],JA=LA[1],ae=LA[2],re=LA[3];JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&ae|~JA&re)+SA[0]-680876936|0)<<7|OA>>>25)+JA|0)&JA|~OA&ae)+SA[1]-389564586|0)<<12|re>>>20)+OA|0)&OA|~re&JA)+SA[2]+606105819|0)<<17|ae>>>15)+re|0)&re|~ae&OA)+SA[3]-1044525330|0)<<22|JA>>>10)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&ae|~JA&re)+SA[4]-176418897|0)<<7|OA>>>25)+JA|0)&JA|~OA&ae)+SA[5]+1200080426|0)<<12|re>>>20)+OA|0)&OA|~re&JA)+SA[6]-1473231341|0)<<17|ae>>>15)+re|0)&re|~ae&OA)+SA[7]-45705983|0)<<22|JA>>>10)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&ae|~JA&re)+SA[8]+1770035416|0)<<7|OA>>>25)+JA|0)&JA|~OA&ae)+SA[9]-1958414417|0)<<12|re>>>20)+OA|0)&OA|~re&JA)+SA[10]-42063|0)<<17|ae>>>15)+re|0)&re|~ae&OA)+SA[11]-1990404162|0)<<22|JA>>>10)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&ae|~JA&re)+SA[12]+1804603682|0)<<7|OA>>>25)+JA|0)&JA|~OA&ae)+SA[13]-40341101|0)<<12|re>>>20)+OA|0)&OA|~re&JA)+SA[14]-1502002290|0)<<17|ae>>>15)+re|0)&re|~ae&OA)+SA[15]+1236535329|0)<<22|JA>>>10)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&re|ae&~re)+SA[1]-165796510|0)<<5|OA>>>27)+JA|0)&ae|JA&~ae)+SA[6]-1069501632|0)<<9|re>>>23)+OA|0)&JA|OA&~JA)+SA[11]+643717713|0)<<14|ae>>>18)+re|0)&OA|re&~OA)+SA[0]-373897302|0)<<20|JA>>>12)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&re|ae&~re)+SA[5]-701558691|0)<<5|OA>>>27)+JA|0)&ae|JA&~ae)+SA[10]+38016083|0)<<9|re>>>23)+OA|0)&JA|OA&~JA)+SA[15]-660478335|0)<<14|ae>>>18)+re|0)&OA|re&~OA)+SA[4]-405537848|0)<<20|JA>>>12)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&re|ae&~re)+SA[9]+568446438|0)<<5|OA>>>27)+JA|0)&ae|JA&~ae)+SA[14]-1019803690|0)<<9|re>>>23)+OA|0)&JA|OA&~JA)+SA[3]-187363961|0)<<14|ae>>>18)+re|0)&OA|re&~OA)+SA[8]+1163531501|0)<<20|JA>>>12)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA&re|ae&~re)+SA[13]-1444681467|0)<<5|OA>>>27)+JA|0)&ae|JA&~ae)+SA[2]-51403784|0)<<9|re>>>23)+OA|0)&JA|OA&~JA)+SA[7]+1735328473|0)<<14|ae>>>18)+re|0)&OA|re&~OA)+SA[12]-1926607734|0)<<20|JA>>>12)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA^ae^re)+SA[5]-378558|0)<<4|OA>>>28)+JA|0)^JA^ae)+SA[8]-2022574463|0)<<11|re>>>21)+OA|0)^OA^JA)+SA[11]+1839030562|0)<<16|ae>>>16)+re|0)^re^OA)+SA[14]-35309556|0)<<23|JA>>>9)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA^ae^re)+SA[1]-1530992060|0)<<4|OA>>>28)+JA|0)^JA^ae)+SA[4]+1272893353|0)<<11|re>>>21)+OA|0)^OA^JA)+SA[7]-155497632|0)<<16|ae>>>16)+re|0)^re^OA)+SA[10]-1094730640|0)<<23|JA>>>9)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA^ae^re)+SA[13]+681279174|0)<<4|OA>>>28)+JA|0)^JA^ae)+SA[0]-358537222|0)<<11|re>>>21)+OA|0)^OA^JA)+SA[3]-722521979|0)<<16|ae>>>16)+re|0)^re^OA)+SA[6]+76029189|0)<<23|JA>>>9)+ae|0,JA=((JA+=((ae=((ae+=((re=((re+=((OA=((OA+=(JA^ae^re)+SA[9]-640364487|0)<<4|OA>>>28)+JA|0)^JA^ae)+SA[12]-421815835|0)<<11|re>>>21)+OA|0)^OA^JA)+SA[15]+530742520|0)<<16|ae>>>16)+re|0)^re^OA)+SA[2]-995338651|0)<<23|JA>>>9)+ae|0,JA=((JA+=((re=((re+=(JA^((OA=((OA+=(ae^(JA|~re))+SA[0]-198630844|0)<<6|OA>>>26)+JA|0)|~ae))+SA[7]+1126891415|0)<<10|re>>>22)+OA|0)^((ae=((ae+=(OA^(re|~JA))+SA[14]-1416354905|0)<<15|ae>>>17)+re|0)|~OA))+SA[5]-57434055|0)<<21|JA>>>11)+ae|0,JA=((JA+=((re=((re+=(JA^((OA=((OA+=(ae^(JA|~re))+SA[12]+1700485571|0)<<6|OA>>>26)+JA|0)|~ae))+SA[3]-1894986606|0)<<10|re>>>22)+OA|0)^((ae=((ae+=(OA^(re|~JA))+SA[10]-1051523|0)<<15|ae>>>17)+re|0)|~OA))+SA[1]-2054922799|0)<<21|JA>>>11)+ae|0,JA=((JA+=((re=((re+=(JA^((OA=((OA+=(ae^(JA|~re))+SA[8]+1873313359|0)<<6|OA>>>26)+JA|0)|~ae))+SA[15]-30611744|0)<<10|re>>>22)+OA|0)^((ae=((ae+=(OA^(re|~JA))+SA[6]-1560198380|0)<<15|ae>>>17)+re|0)|~OA))+SA[13]+1309151649|0)<<21|JA>>>11)+ae|0,JA=((JA+=((re=((re+=(JA^((OA=((OA+=(ae^(JA|~re))+SA[4]-145523070|0)<<6|OA>>>26)+JA|0)|~ae))+SA[11]-1120210379|0)<<10|re>>>22)+OA|0)^((ae=((ae+=(OA^(re|~JA))+SA[2]+718787259|0)<<15|ae>>>17)+re|0)|~OA))+SA[9]-343485551|0)<<21|JA>>>11)+ae|0,LA[0]=OA+LA[0]|0,LA[1]=JA+LA[1]|0,LA[2]=ae+LA[2]|0,LA[3]=re+LA[3]|0}function E(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA.charCodeAt(SA)+(LA.charCodeAt(SA+1)<<8)+(LA.charCodeAt(SA+2)<<16)+(LA.charCodeAt(SA+3)<<24);return OA}function m(LA){var SA,OA=[];for(SA=0;SA<64;SA+=4)OA[SA>>2]=LA[SA]+(LA[SA+1]<<8)+(LA[SA+2]<<16)+(LA[SA+3]<<24);return OA}function D(LA){var SA,OA,JA,ae,re,_i,Ti=LA.length,Lt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)u(Lt,E(LA.substring(SA-64,SA)));for(OA=(LA=LA.substring(SA-64)).length,JA=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],SA=0;SA<OA;SA+=1)JA[SA>>2]|=LA.charCodeAt(SA)<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(u(Lt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return ae=(ae=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),re=parseInt(ae[2],16),_i=parseInt(ae[1],16)||0,JA[14]=re,JA[15]=_i,u(Lt,JA),Lt}function M(LA){var SA,OA,JA,ae,re,_i,Ti=LA.length,Lt=[1732584193,-271733879,-1732584194,271733878];for(SA=64;SA<=Ti;SA+=64)u(Lt,m(LA.subarray(SA-64,SA)));for(OA=(LA=SA-64<Ti?LA.subarray(SA-64):new Uint8Array(0)).length,JA=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],SA=0;SA<OA;SA+=1)JA[SA>>2]|=LA[SA]<<(SA%4<<3);if(JA[SA>>2]|=128<<(SA%4<<3),SA>55)for(u(Lt,JA),SA=0;SA<16;SA+=1)JA[SA]=0;return ae=(ae=8*Ti).toString(16).match(/(.*?)(.{0,8})$/),re=parseInt(ae[2],16),_i=parseInt(ae[1],16)||0,JA[14]=re,JA[15]=_i,u(Lt,JA),Lt}function T(LA){var SA,OA="";for(SA=0;SA<4;SA+=1)OA+=g[LA>>8*SA+4&15]+g[LA>>8*SA&15];return OA}function P(LA){var SA;for(SA=0;SA<LA.length;SA+=1)LA[SA]=T(LA[SA]);return LA.join("")}function W(LA){return/[\u0080-\uFFFF]/.test(LA)&&(LA=unescape(encodeURIComponent(LA))),LA}function iA(LA,SA){var OA,JA=LA.length,ae=new ArrayBuffer(JA),re=new Uint8Array(ae);for(OA=0;OA<JA;OA+=1)re[OA]=LA.charCodeAt(OA);return SA?re:ae}function EA(LA){return String.fromCharCode.apply(null,new Uint8Array(LA))}function RA(LA,SA,OA){var JA=new Uint8Array(LA.byteLength+SA.byteLength);return JA.set(new Uint8Array(LA)),JA.set(new Uint8Array(SA),LA.byteLength),JA}function kA(LA){var SA,OA=[],JA=LA.length;for(SA=0;SA<JA-1;SA+=2)OA.push(parseInt(LA.substr(SA,2),16));return String.fromCharCode.apply(String,OA)}function xA(){this.reset()}return P(D("hello")),typeof ArrayBuffer>"u"||ArrayBuffer.prototype.slice||function(){function LA(SA,OA){return(SA=0|SA||0)<0?Math.max(SA+OA,0):Math.min(SA,OA)}ArrayBuffer.prototype.slice=function(SA,OA){var JA,ae,re,_i,Ti=this.byteLength,Lt=LA(SA,Ti),Ni=Ti;return OA!==n&&(Ni=LA(OA,Ti)),Lt>Ni?new ArrayBuffer(0):(JA=Ni-Lt,ae=new ArrayBuffer(JA),re=new Uint8Array(ae),_i=new Uint8Array(this,Lt,JA),re.set(_i),ae)}}(),xA.prototype.append=function(LA){return this.appendBinary(W(LA)),this},xA.prototype.appendBinary=function(LA){this._buff+=LA,this._length+=LA.length;var SA,OA=this._buff.length;for(SA=64;SA<=OA;SA+=64)u(this._hash,E(this._buff.substring(SA-64,SA)));return this._buff=this._buff.substring(SA-64),this},xA.prototype.end=function(LA){var SA,OA,JA=this._buff,ae=JA.length,re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(SA=0;SA<ae;SA+=1)re[SA>>2]|=JA.charCodeAt(SA)<<(SA%4<<3);return this._finish(re,ae),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},xA.prototype.setState=function(LA){return this._buff=LA.buff,this._length=LA.length,this._hash=LA.hash,this},xA.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},xA.prototype._finish=function(LA,SA){var OA,JA,ae,re=SA;if(LA[re>>2]|=128<<(re%4<<3),re>55)for(u(this._hash,LA),re=0;re<16;re+=1)LA[re]=0;OA=(OA=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),JA=parseInt(OA[2],16),ae=parseInt(OA[1],16)||0,LA[14]=JA,LA[15]=ae,u(this._hash,LA)},xA.hash=function(LA,SA){return xA.hashBinary(W(LA),SA)},xA.hashBinary=function(LA,SA){var OA=P(D(LA));return SA?kA(OA):OA},xA.ArrayBuffer=function(){this.reset()},xA.ArrayBuffer.prototype.append=function(LA){var SA,OA=RA(this._buff.buffer,LA),JA=OA.length;for(this._length+=LA.byteLength,SA=64;SA<=JA;SA+=64)u(this._hash,m(OA.subarray(SA-64,SA)));return this._buff=SA-64<JA?new Uint8Array(OA.buffer.slice(SA-64)):new Uint8Array(0),this},xA.ArrayBuffer.prototype.end=function(LA){var SA,OA,JA=this._buff,ae=JA.length,re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(SA=0;SA<ae;SA+=1)re[SA>>2]|=JA[SA]<<(SA%4<<3);return this._finish(re,ae),OA=P(this._hash),LA&&(OA=kA(OA)),this.reset(),OA},xA.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},xA.ArrayBuffer.prototype.getState=function(){var LA=xA.prototype.getState.call(this);return LA.buff=EA(LA.buff),LA},xA.ArrayBuffer.prototype.setState=function(LA){return LA.buff=iA(LA.buff,!0),xA.prototype.setState.call(this,LA)},xA.ArrayBuffer.prototype.destroy=xA.prototype.destroy,xA.ArrayBuffer.prototype._finish=xA.prototype._finish,xA.ArrayBuffer.hash=function(LA,SA){var OA=P(M(new Uint8Array(LA)));return SA?kA(OA):OA},xA}()}(Vu)),Vu.exports),fC=aI(Ju),q=new class{constructor(){this.uploadFileTryCount=0,this.maxRetries=1,this.systemClockOffset=0,this.httpRequest=null,this.uploadFileType="",this.duration=900,this.fetchCosTryCount=0}init(s){var n;this._core=s;const{IN_MINI_APP:g}=s.utils;this.httpRequest=g?yI:xu,(n=this.httpRequest)===null||n===void 0||n.init(s)}uploadToCOS(s){return pA(this,void 0,void 0,function*(){const n=`${ha} uploadToCOS`,{ssoLog:g,utils:{safeStringify:u}}=this._core,{file:E}=s;this.uploadFileType=s.uploadFileType,g.debug("uploadToCOS",`${n} options:${u(s)}`);try{const m=Date.now(),D=yield this._createCosOptions(s),M=D.fileExistsInCOS?{data:{location:D.downloadUrl}}:yield this._uploadFile(D);this._handleUploadError(M,s);const T=this._createUploadResult(E,M),P=Date.now()-m,W=function(EA){return EA<1024?`${EA}B`:EA<1048576?`${Math.floor(EA/1024)}KB`:`${Math.floor(EA/1048576)}MB`}(E.size),iA=`size:${W} time:${P}ms speed:${wr(1e3*E.size/P)}`;return g.debug("uploadToCOS",`${n} ok. name:${E.name} ${iA}`),{uploadOptions:D,response:T}}catch(m){throw g.warn("uploadToCOS",`${n} failed, error:${u(m)}`),m}})}_handleUploadError(s,n){var g,u;const{ChatError:E}=(g=this._core)===null||g===void 0?void 0:g.helper;if(s.statusCode===403)throw n.url,!((u=s?.data)===null||u===void 0)&&u.uploadIP&&s.data.uploadIP,new E({message:"Upload failed with status 403"})}_createUploadResult(s,n){return{fileName:s.name,fileSize:s.size,fileType:s.type.slice(s.type.indexOf("/")+1).toLowerCase(),location:n.data.location||"",uploadTime:Ur(Date.now(),!1),uploadSpeed:wr(1e3*s.size/Ur(Date.now(),!1))}}_createCosOptions(s){return pA(this,void 0,void 0,function*(){const{fileName:n,resources:g,uploadMethod:u}=yield this._prepareUploadParams(s),E=this._isC2CConversation(s.message.conversationID)?1:2;try{const m=yield this._fetchCosSignatureUrl({fileType:this.uploadFileType,fileName:n,uploadMethod:u,duration:this.duration,userID:s.message.from,conversationType:E}),{uploadUrl:D,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,existFlag:EA}=m,RA=!Ot.isPrivateNetWork()&&m.uploadIP;return{url:this._getRawOrUploadProxyUrl(D),fileType:this.uploadFileType,fileName:n,resources:g,downloadUrl:M,requestSnapshotUrl:T,thumbUrl:P,largeUrl:W,fileKey:iA,uploadIP:RA||"",fileExistsInCOS:EA===1,onProgress:kA=>this._handleUploadProgress(kA,s)}}catch(m){throw console.error("Failed to create COS pre-signed URL options:",m),m}})}_prepareUploadParams(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g,isEmpty:u}}=this._core;n.debug("_prepareUploadParams",` prepareUploadParams:${g(s)}`);const{file:E}=s,{IN_MINI_APP:m,IN_RN_APP:D}=Ot.getPlatformFlags(),M=m||D,T=M&&s.message.type!==Ya,{name:P}=E,W=P.slice(P.lastIndexOf(".")),iA=`${Lr(999999)}${W}`,EA=T?E.name:iA,RA=yield this._generateHashFileName(E);return{fileName:u(RA)?Ig(EA):`${RA}${W}`,resources:M?E.url:E,uploadMethod:M?1:0}})}_generateHashFileName(s){return pA(this,void 0,void 0,function*(){const{utils:{IN_MINI_APP:n,IN_BROWSER:g,IN_UNI_NATIVE_APP:u,isArray:E},ssoLog:m}=this._core,D=Date.now();let M="";return g&&(M=yield this._generateHashFileNameInWeb(s)),n&&(E(s.tempFiles)&&(s=s.tempFiles[0]),u||(M=yield this._generateFileNameInMiniProgram(s)),u&&(M=yield this._generateFileNameInUNINativeApp(s))),m.info("_generateHashFileName",`hashFileName:${M} costTime:${Date.now()-D}`),M})}_generateHashFileNameInWeb(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;let u="";try{u=yield new Promise((E,m)=>{const D=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;D||(n.warn("_generateHashFileNameInWeb","Browser does not support file slicing"),E(""));const M=10485760,T=Math.ceil(s.size/M);let P=0;const W=new fC.ArrayBuffer,iA=new FileReader,EA=setTimeout(()=>{iA.abort(),n.warn("_generateHashFileNameInWeb","File hash generation timeout"),E("")},2e3);function RA(){const kA=P*M,xA=kA+M>=s.size?s.size:kA+M;iA.readAsArrayBuffer(D.call(s,kA,xA))}iA.onload=kA=>{n.debug("_generateHashFileNameInWeb",`read chunk nr ${P+1} of ${T}`),W.append(kA.target.result),P++,P<T?RA():(n.debug("_generateHashFileNameInWeb","finished loading"),clearTimeout(EA),E(W.end()))},iA.onerror=kA=>{clearTimeout(EA),m(kA)},RA()})}catch(E){n.warn("_generateHashFileNameInWeb",g(E))}return u})}_generateFileNameInMiniProgram(s){return pA(this,void 0,void 0,function*(){const{utils:{MINI_APP_NAMESPACE:n,safeStringify:g,isEmpty:u},ssoLog:E}=this._core;let m="";if(u(s.url))return E.warn("_generateFileNameInMiniProgram","file.url is empty"),m;if(typeof n?.getFileSystemManager!="function")return E.warn("_generateFileNameInUNINativeApp","getFileSystemManager is not a function"),m;try{m=yield new Promise((D,M)=>{n.getFileSystemManager().getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_generateFileNameInUNINativeApp(s){return pA(this,void 0,void 0,function*(){var n;const{utils:{safeStringify:g,isEmpty:u},ssoLog:E}=this._core;let m="";if(u(s.url))return E.warn("_generateFileNameInUNINativeApp","file.url is empty"),m;if(typeof((n=plus==null?void 0:plus.io)===null||n===void 0?void 0:n.getFileInfo)!="function")return E.warn("_generateFileNameInUNINativeApp","plus.io.getFileInfo is not a function"),m;try{m=yield new Promise((D,M)=>{plus.io.getFileInfo({filePath:s.url,success:T=>{D(T.digest)},fail:T=>{M(T)}})})}catch(D){E.warn("_generateFileNameInMiniProgram",g(D))}return m})}_handleUploadProgress(s,n){if(typeof n.onProgress=="function")try{n.onProgress(s.percent)}catch(g){throw console.warn("Upload progress callback error:",g),g}}_fetchCosSignatureUrl(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core,u=Ot.isSimpleCos(),E=this._prepareCosRequestData(s),m=u?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const D=yield function(T,P,W){return pA(this,void 0,void 0,function*(){try{const{helper:iA,channel:EA}=W,RA=iA.generateCosSpecifiedData({servcmd:T,data:P}),kA=`${RA.head.seq}${T}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(iA){throw console.warn("getCosSig error:",iA),iA}})}(m,E,this._core);this.fetchCosTryCount=0;const M=this._processResponse(D);return n.debug("_fetchCosSignatureUrl",` ok. isSimpleCos:${u} data:${g(M)}`),M||{}}catch(D){if(this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(s);throw this.fetchCosTryCount=0,D}})}_processResponse(s){var n;const g=Ot.isSimpleCos(),u=g?(n=s?.rpt_pre_sig)===null||n===void 0?void 0:n[0]:s;if(!u)return{};if(g){const{str_final_ip:W,rpt_pre_sig:iA,uint32_file_id:EA,uint32_exist_flag:RA,str_download_url:kA,str_upload_url:xA,str_snapshot_url:LA,str_file_key:SA}=u;return{uploadIP:W,preSig:iA,fileID:EA,existFlag:RA,downloadUrl:kA,uploadUrl:xA,requestSnapshotUrl:LA,fileKey:SA}}const{upload_url:E,download_url:m,snapshot_url:D,thumb_url:M,large_url:T,file_key:P}=u;return{uploadUrl:E,downloadUrl:m,requestSnapshotUrl:D,thumbUrl:M,largeUrl:T,fileKey:P}}_prepareCosRequestData(s){return Ot.isSimpleCos()?{uint32_upload_method:s.uploadMethod,uint32_platform:Ot.getPlatform(),uint32_sdkappid:Ot.getSDKAppID(),str_user_id:s.userID,uint32_scene:s.conversationType,rpt_upload_object:[{uint32_file_id:1,uint32_file_type:s.fileType,str_file_name:s.fileName}]}:{file_type:s.fileType,file_name:s.fileName,upload_method:s.uploadMethod,Duration:s.duration}}_uploadFile(s){return pA(this,void 0,void 0,function*(){return new Promise((n,g)=>{this.httpRequest.request(s,(u,E)=>{u&&this.uploadFileTryCount<this.maxRetries&&this.shouldRetry(u)?(this.uploadFileTryCount++,this._uploadFile(s).then(n).catch(g)):(this.uploadFileTryCount=0,u?g(u):n(E))})})})}shouldRetry(s){return s?Math.floor(s.statusCode/100)===5?!0:!(!this.isTimeRelatedError(s)||!this._isClockOutOfSync(s))&&(this._syncSystemClock(s),!0):!1}isTimeRelatedError(s){var n,g;try{const u=(n=s.error)===null||n===void 0?void 0:n.Code,E=(g=s.error)===null||g===void 0?void 0:g.Message;return u==="RequestTimeTooSkewed"||u==="AccessDenied"&&E==="Request has expired"}catch{return!1}}_isClockOutOfSync(s){var n,g,u;const E=((n=s.headers)===null||n===void 0?void 0:n.date)||((g=s.headers)===null||g===void 0?void 0:g.Date)||((u=s.error)===null||u===void 0?void 0:u.ServerTime);if(!E)return!1;const m=Date.now(),D=Date.parse(E);return Math.abs(m+this.systemClockOffset-D)>=3e4}_syncSystemClock(s){var n,g,u;const E=((n=s.headers)===null||n===void 0?void 0:n.date)||((g=s.headers)===null||g===void 0?void 0:g.Date)||((u=s.error)===null||u===void 0?void 0:u.ServerTime);if(E){const m=Date.now(),D=Date.parse(E);this.systemClockOffset=D-m}}_getRawOrUploadProxyUrl(s){const n=Ot.getFileUploadProxy();let g=s;return n&&(g=s.replace(/^https:\/\/[^/]+/,n)),g}_isC2CConversation(s){return s.slice(0,3)==="C2C"}};const L=2108,oA=2251,G=2252,x=2253,tA=["jpg","jpeg","gif","png","bmp","image","webp"],uA={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255},wA=1,$A=2;class me{constructor(n,g){this.instanceID=Lr(9999999),this.sizeType=n.type||0,this.type=0,this.size=n.size||0,this.width=n.width||0,this.height=n.height||0,this.imageUrl=Ot.addAuthToUrl(n.imageUrl||n.url||""),this.url=Ot.addAuthToUrl(n.url||g)}setSizeType(n){this.sizeType=n}setType(n){this.type=n}setImageUrl(n){n&&(this.imageUrl=Ot.addAuthToUrl(n))}getImageUrl(){return this.imageUrl}}function p(s){const{originUrl:n,originWidth:g,originHeight:u,min:E=198}=s,m=parseInt(g)||0,D=parseInt(u)||0,M={url:void 0,width:0,height:0};if((m<=D?m:D)<=E)M.url=n,M.width=m,M.height=D;else{D<=m?(M.width=Math.ceil(m*E/D),M.height=E):(M.width=E,M.height=Math.ceil(D*E/m));const T=n&&n.indexOf("?")>-1?`${n}&`:`${n}?`;M.url=E===198?`${T}imageView2/3/w/198/h/198`:`${T}imageView2/3/w/720/h/720`}if(n===void 0){const{url:T}=M;return Do(M,["url"])}return M}class B{constructor(n){this._imageMemoryURL="",this._percent=0,this.type=ic;const{uuid:g,file:u,imageFormat:E,imageInfoArray:m=[],isCustomUpload:D=!1}=n;this._imageMemoryURL=this.createImageDataAsURL(u),this.content={imageFormat:E,uuid:g,imageInfoArray:[]},this[Jr]=D,this.initImageInfoArray(m),this.autoFixUrl()}static parseServerPushElement(n){const{MsgContent:g}=n,{ImageFormat:u,ImageInfoArray:E,UUID:m}=g,D=function(M){return M.map(T=>({size:T.Size,type:T.Type,width:T.Width,height:T.Height,url:T.URL}))}(E);return new B({imageFormat:u,imageInfoArray:D,uuid:m})}createImageDataAsURL(n){let g="";const{IN_MINI_APP:u,IN_RN_APP:E,IN_BROWSER:m}=Ot.getPlatformFlags();return n&&((u||E)&&(g=n.url),m&&(g=window.URL.createObjectURL(n))),g}initImageInfoArray(n=[]){const g={type:0,size:0,width:0,height:0,url:""};for(let u=0;u<3;u++){const E=n[u]||Object.assign({},g),m=new me(E,this._imageMemoryURL);m.setSizeType(u+1),m.setType(u),this.addImageInfo(m)}this.updateAccessSideImageInfoArray()}autoFixUrl(){const n=["http","https"];this.content.imageInfoArray.forEach(g=>{if(!g.url||g.imageUrl==="")return;const[u,...E]=g.imageUrl.split("://"),m=E.join("://");n.includes(u)||g.setImageUrl(`https://${m}`)})}updatePercent(n){this._percent=Math.min(n,1)}updateImageFormat(n){this.content.imageFormat=uA[n.toUpperCase()]||uA.UNKNOWN}addImageInfo(n){this.content.imageInfoArray.length>=3||this.content.imageInfoArray.push(n)}updateImageInfoArray(n){const g=this.content.imageInfoArray.length;let u;for(let E=0;E<g;E++)u=this.content.imageInfoArray[E],n[E].size&&(u.size=n[E].size),n[E].url&&u.setImageUrl(n[E].url),n[E].width&&(u.width=n[E].width),n[E].height&&(u.height=n[E].height)}updateAccessSideImageInfoArray(){const[n]=this.content.imageInfoArray;n&&n.width!==0&&n.height!==0&&(function(g){const u=g[2];g[2]=g[1],g[1]=u;for(let E=0;E<g.length;E++)g[E].setType(E)}(this.content.imageInfoArray),Object.assign(this.content.imageInfoArray[2],p({originWidth:n.width,originHeight:n.height,min:720})))}validateBeforeSend(){if(this[Jr])return delete this[Jr],{isValid:!0};const[n]=this.content.imageInfoArray,g=!!n&&n.imageUrl!==""&&n.size!==0;return{isValid:g,error:g?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{uuid:E,imageFormat:m,imageInfoArray:D}=u;return{MsgType:this.type,MsgContent:{ImageFormat:m,ImageInfoArray:this.parseImageInfoArray(D),UUID:E}}}parseImageInfoArray(n){return n.map(g=>({InstanceId:g.instanceID,Type:g.sizeType,MsgType:g.type,Size:g.size,Width:g.width,Height:g.height,URL:Ot.removeAuthToUrl(g.imageUrl)}))}}const v=new class{init(s){this.core=s}},N={[tu]:"i",[cl]:"a",[Ba]:"v",[xE]:"f"};let O=null,z=null;function X(s){var n;const{store:g,utils:{isNumber:u,safeStringify:E},ssoLog:m}=v.core;try{const D=((n=g.get("cloudConfig"))===null||n===void 0?void 0:n.upload_size_limit)||"";D!==z&&(z=D,O=JSON.parse(D)||{});const M=O?.[N[s]];if(u(M))return 1024*M*1024}catch(D){m.debug("getCloudControlUploadSizeLimit",E(D))}return null}var rA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createImageMessage",context:this}),u.registerExperimentalAPI("createImageMessage",this,"createCustomUploadImageMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(ic,B),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createImageMessage(s){var n,g,u;try{const E=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,m=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:E})),D=this._processImage(s);s.payload.file=D;const M={imageFormat:uA.UNKNOWN,uuid:Ot.generateUUID(D),file:D,imageInfoArray:[]},T=new B(M);return m.setElement(T),this._messageOptionsMap.set(m.clientSequence,s),m}catch(E){throw E}}createCustomUploadImageMessage(s){var n,g,u,E;const{store:m,utils:{isEmpty:D}}=this._core,M=(n=m.get("login"))===null||n===void 0?void 0:n.userId,T=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:M})),{largeImageUuid:P,largeFileSize:W,largeImageWidth:iA,largeImageHeight:EA,largeImageUrl:RA,originImageUuid:kA,originFileSize:xA,originImageWidth:LA,originImageHeight:SA,originImageUrl:OA,thumbImageUuid:JA,thumbFileSize:ae,thumbImageWidth:re,thumbImageHeight:_i,thumbImageUrl:Ti}=((E=s?.payload)===null||E===void 0?void 0:E.file)||{};if(D(OA)||D(kA))throw new Error("createImageMessageExperimental originImageUrl or originImageUuid is empty");const Lt=new B({imageFormat:uA.UNKNOWN,uuid:kA,imageInfoArray:[{instanceID:kA,size:xA,width:LA,height:SA,imageUrl:OA,url:OA},{instanceID:P,size:W,width:iA,height:EA,imageUrl:RA,url:RA},{instanceID:JA,size:ae,width:re,height:_i,imageUrl:Ti,url:Ti}],isCustomUpload:!0});return T.setElement(Lt),this._messageOptionsMap.set(T.clientSequence,s),T._skipUpload=!0,T}upload(s){return pA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadImage(g);const u=yield this._performImageUpload(n,s,g),E=this._generateImageInfo(u);return n.updateImageFormat(u?.fileType),n.updateImageInfoArray(E),this._updateImageType(n.content.imageInfoArray),s})}_performImageUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:tu,file:g,to:u,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{uploadOptions:m,response:D}=yield q.uploadToCOS(E);return this._parseResponse(m,D)})}_generateImageInfo(s){const{location:n,fileSize:g,width:u,height:E,smallImageUrl:m,smallImageWidth:D,smallImageHeight:M,largeImageUrl:T,largeImageWidth:P,largeImageHeight:W,imageInfoArray:iA}=s,EA=Ot.addAuthToUrl(n),RA={size:g,url:EA,width:u,height:E};return iA?.length>0?this._processImageInfoArray(iA,g):m&&T?[Object.assign({},RA),{largeImageUrl:T,largeImageWidth:P,largeImageHeight:W},{smallImageUrl:m,smallImageWidth:D,smallImageHeight:M}]:[Object.assign({},RA),this._generateThumbInfo(EA,u,E,720),this._generateThumbInfo(EA,u,E,198)]}_generateThumbInfo(s,n,g,u){return p({originUrl:s,originWidth:n,originHeight:g,min:u})}_processImageInfoArray(s,n){let g,u,E;for(const m of s)m.type===1?(u=m,u.size=n):m.type===2?(E=m,E.size=n):(g=m,g.size=n);return[Object.assign({},g),Object.assign({},E),Object.assign({},u)]}_parseResponse(s,n){return pA(this,void 0,void 0,function*(){try{const{thumbUrl:g,largeUrl:u,downloadUrl:E}=s;if(g&&u&&(yield this._getImageInfoByUrl(g,n,"thumb"),yield this._getImageInfoByUrl(u,n,"large")),Ot.isSimpleCos()&&!Ot.isPrivateNetWork()&&(yield this._getImageInfoArray(E,n),n?.uploadIP)){const m=this._extractDomainFromUrl(E);m&&(yield this._getDownloadIP(m,n))}return n}catch(g){throw g}})}_extractDomainFromUrl(s){var n;try{const g=s.match(/:\/\/([^\/]+)/);return g?g[1]:null}catch(g){return(n=this._core)===null||n===void 0||n.ssoLog.warn("_extractDomainFromUrl",`Failed to extract domain from URL:${g.message}`),null}}_getImageInfoByUrl(s,n,g){return pA(this,void 0,void 0,function*(){var u;try{const E=Ot.addAuthToUrl(s),{width:m=0,height:D=0}=yield Ot.probeImageWidthHeight(E);n.width=m,n.height=D,g==="thumb"?(n.smallImageUrl=s,n.smallImageWidth=m,n.smallImageHeight=D):(n.largeImageUrl=s,n.largeImageWidth=m,n.largeImageHeight=D)}catch(E){(u=this._core)===null||u===void 0||u.ssoLog.warn("_getImageInfoByUrl",`Failed to get ${g} image info:${E.message}`)}})}_validateBeforeUploadImage(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper;if(!s)throw new g({code:oA});this._checkImageType(s),this._checkImageSize(s)}_processImage(s){var n;try{const{IN_MINI_APP:g}=(n=this._core)===null||n===void 0?void 0:n.utils;let{file:u}=s.payload;return u=g?this._processMiniAppImageFile(u):this._processWebImageFile(u),u}catch(g){throw g}}_processMiniAppImageFile(s){gl(s)&&console.warn("FileUnsupportedInMiniApp","createImageMessage");const n=s.tempFiles[0].path||s.tempFiles[0].tempFilePath;return{url:n,name:n.slice(n.lastIndexOf("/")+1),size:s.tempFiles&&s.tempFiles[0].size||1,type:n.slice(n.lastIndexOf(".")+1).toLowerCase()}}_processWebImageFile(s){var n;const{ChatError:g}=(n=this._core)===null||n===void 0?void 0:n.helper,u=Ot.extractFileFromInput(s);if(!u)throw new g({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return u}_getDownloadIP(s,n){return pA(this,void 0,void 0,function*(){const g=`${ha} getDownloadIP domainName: ${s}`;try{const u=yield function(m,D){return pA(this,void 0,void 0,function*(){try{const{helper:M,channel:T}=D,P="im_cos_msg.get_final_ip",W={str_domain:m},iA=M.generateProtocolData({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})}catch(M){throw console.warn("getFinalIP error:",M),M}})}(s,this._core);if(!u||!u.str_final_ip)return;console.log(`${g} ok. downloadIP:${u}`);const E=n.location.split("/");E[0]=u.str_final_ip,n.location=E.join("/")}catch(u){console.warn(u)}})}_getImageInfoArray(s,n){return pA(this,void 0,void 0,function*(){try{const g=yield function(u,E){return pA(this,void 0,void 0,function*(){try{const{helper:m,channel:D}=E,M="im_cos_msg.get_imageinfo",T={str_image_url:u},P=m.generateProtocolData({servcmd:M,data:T}),W=`${P.head.seq}${M}`;return yield D.sendPacket(P,{requestId:W})}catch(m){throw console.warn("getImageInfo error:",m),m}})}(s,this._core);return n.imageInfoArray=this._processImageInfoResponse(g),n}catch(g){throw n.imageInfoArray=void 0,g}})}_processImageInfoResponse(s){if(!s)return[];const{rpt_msg_image_info:n}=s;return n.map(g=>({type:g.uint32_image_type,url:g.str_url,width:g.uint32_width,height:g.uint32_height,imageFormat:g.str_image_format}))}_checkImageType(s){const{utils:n,helper:g}=this._core;let u="";if(n.IN_MINI_APP&&(u=s.url.slice(s.url.lastIndexOf(".")+1)),n.IN_BROWSER&&(u=s.name.slice(s.name.lastIndexOf(".")+1)),tA.indexOf(u.toLowerCase())<0)throw new g.ChatError({code:G})}_checkImageSize(s){const{utils:n,helper:g,store:u}=this._core;let E=0;if(E=(n.IN_MINI_APP,s.size),E===0)throw new g.ChatError({code:L});if(E>=(X(tu)||20971520))throw new g.ChatError({code:x})}_updateImageType(s){s[1].type=$A,s[2].type=wA}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const DA=2108,GA=2401,VA=2402,te="2.5.0",Ce="1.18.0";function Ke(s,n){const g=s.split("."),u=n.split("."),E=Math.max(g.length,u.length);for(;g.length<E;)g.push("0");for(;u.length<E;)u.push("0");for(let m=0;m<E;m++){const D=parseInt(g[m]),M=parseInt(u[m]);if(D>M)return 1;if(D<M)return-1}return 0}var ot;class at{constructor(n){this.type=Ya,this.uploadProgress=0,this[ot]=!1;const g=this._getFileInfo(n);this[Jr]=n.isCustomUpload||!1,this.content={downloadFlag:2,fileUrl:Ot.generateURL(n.url||n.fileUrl,{needAddAuthToUrl:!this[Jr]})||"",uuid:n.uuid,fileName:g.name||"",fileSize:g.size||0}}static parseServerPushElement(n){const{MsgContent:g}=n,{Download_Flag:u,Url:E,FileName:m,FileSize:D,UUID:M}=g;return new at({downloadFlag:u,url:E,fileName:m,fileSize:D,uuid:M})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateFileUrl(n){this.content.fileUrl=n}validateBeforeSend(){if(this[Jr])return{isValid:!0};const n=this.content.fileUrl!==""&&this.content.fileName!==""&&this.content.fileSize>0;return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{uuid:E,downloadFlag:m,fileUrl:D,fileName:M,fileSize:T}=u;return{MsgType:this.type,MsgContent:{Download_Flag:m,Url:Ot.removeAuthToUrl(D),FileName:M,FileSize:T,UUID:E}}}_getFileInfo(n){const{utils:{IN_UNI_NATIVE_APP:g}}=v.core;if(n.fileName&&n.fileSize)return{size:n.fileSize,name:n.fileName};const{file:u}=n;return u?(g&&this._processNativeAppFile(u),{size:u.size,name:u.name}):{size:0,name:""}}_processNativeAppFile(n){if(n.path&&n.path.includes(".")){const g=n.path.slice(n.path.lastIndexOf(".")+1).toLowerCase();n.type=g,n.name||(n.name=`${Lr(999999)}.${g}`)}n.name||(n.type="",n.name=n.path.slice(n.path.lastIndexOf("/")+1).toLowerCase()),n.suffix&&(n.type=n.suffix),n.url||(n.url=n.path)}}ot=Jr;var kt=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createFileMessage",context:this}),u.registerExperimentalAPI("createFileMessage",this,"createCustomUploadFileMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Ya,at),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createFileMessage(s){var n,g,u;try{this._checkVersion();const E=this._processFile(s.payload.file);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={uuid:Ot.generateUUID(E),file:E},T=new at(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadFileMessage(s){var n,g,u;try{const{store:E,message:m,utils:{isEmpty:D}}=this._core,M=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:T,uuid:P,fileSize:W,fileName:iA=""}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{};if(D(T))throw new Error("url is required");const EA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:M})),RA=new at({url:T,uuid:P,file:{size:W,name:iA},isCustomUpload:!0});return EA.setElement(RA),EA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const{file:n}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadFile(n);const g=s.getElements()[0],u=yield this._performFileUpload(g,s,n),E=Ot.addAuthToUrl(u?.location);return g.updateFileUrl(E),s})}_validateBeforeUploadFile(s){const{helper:{ChatError:n}}=this._core;if(!s)throw new n({code:GA});const g=X(xE)||104857600;if(s.size>g)throw new n({code:VA});if(s.size===0)throw new n({code:DA})}_performFileUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:xE,file:g,to:u,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processFile(s){var n,g;const{IN_BROWSER:u,IN_RN_APP:E,IN_WX_MINI_APP:m,IN_QQ_MINI_APP:D,IN_UNI_NATIVE_APP:M}=(n=this._core)===null||n===void 0?void 0:n.utils,{ChatError:T}=(g=this._core)===null||g===void 0?void 0:g.helper;if(u||M){const P=Ot.extractFileFromInput(s);if(!P)throw new T({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});return P}if(m||D){const{tempFiles:P}=s;return Object.assign(Object.assign({},P[0]),{url:P[0].path})}return E?Object.assign(Object.assign({},s),{url:s.uri}):s}_checkVersion(){var s,n;const{MINI_APP_NAMESPACE:g,IN_MINI_APP:u,IN_WX_MINI_APP:E,IN_QQ_MINI_APP:m,IN_UNI_NATIVE_APP:D}=(s=this._core)===null||s===void 0?void 0:s.utils,{ChatError:M}=(n=this._core)===null||n===void 0?void 0:n.helper;if(u){if(!(E||m||D))throw new M({message:"Unsupported mini app environment"});const T=g.getSystemInfoSync().SDKVersion;if(E&&Ke(T,te)<0)throw new M({message:`WXChooseMessageFile requires SDK version ${te} or higher`});if(m&&Ke(T,Ce)<0)throw new M({message:`QQChooseMessageFile requires SDK version ${Ce} or higher`})}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Vt=2108,Ui=2351,ao=2352,Zi=["mp4","quicktime","mov","video"];var Ei;class Po{constructor(n){this.type=Fl,this.uploadProgress=0,this[Ei]=!1;const g=typeof n?.videoSecond=="number"?n?.videoSecond:0;this[Jr]=n.isCustomUpload||!1,this.content={remoteVideoUrl:Ot.addAuthToUrl(n.remoteVideoUrl||n.videoUrl||""),videoFormat:n.videoFormat,videoSecond:parseInt(g?.toString(),10),videoSize:n.videoSize,videoUrl:Ot.addAuthToUrl(n.videoUrl),videoDownloadFlag:2,videoUUID:n.videoUUID,thumbUUID:n.thumbUUID,thumbFormat:n.thumbFormat,thumbWidth:n.thumbWidth,snapshotWidth:n.thumbWidth,thumbHeight:n.thumbHeight,snapshotHeight:n.thumbHeight,thumbSize:n.thumbSize,snapshotSize:n.thumbSize,thumbDownloadFlag:2,thumbUrl:Ot.addAuthToUrl(n.thumbUrl),snapshotUrl:Ot.addAuthToUrl(n.thumbUrl)}}static parseServerPushElement(n){const{MsgContent:g}=n,{VideoUrl:u,VideoFormat:E,VideoSecond:m,VideoSize:D,VideoDownloadFlag:M,VideoUUID:T,ThumbUUID:P,ThumbFormat:W,ThumbWidth:iA,SnapshotWidth:EA,ThumbHeight:RA,SnapshotHeight:kA,ThumbSize:xA,SnapshotSize:LA,ThumbDownloadFlag:SA,ThumbUrl:OA,SnapshotUrl:JA}=g;return new Po({videoUrl:u,videoFormat:E,videoSecond:m,videoSize:D,videoDownloadFlag:M,videoUUID:T,thumbUUID:P,thumbFormat:W,thumbWidth:iA,snapshotWidth:EA,thumbHeight:RA,snapshotHeight:kA,thumbSize:xA,snapshotSize:LA,thumbDownloadFlag:SA,thumbUrl:OA,snapshotUrl:JA})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateVideoUrl(n){n&&(this.content.remoteVideoUrl=n)}updateSnapshotInfo(n){const{snapshotUrl:g,snapshotWidth:u,snapshotHeight:E}=n;Ot.isEmpty(g)||(this.content.thumbUrl=this.content.snapshotUrl=g),Ot.isEmpty(u)||(this.content.thumbWidth=this.content.snapshotWidth=Number(u)),Ot.isEmpty(E)||(this.content.thumbHeight=this.content.snapshotHeight=Number(E))}validateBeforeSend(){if(this[Jr])return{isValid:!0};const n=this.content.remoteVideoUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{remoteVideoUrl:E,videoFormat:m,videoSecond:D,videoSize:M,videoDownloadFlag:T,videoUUID:P,thumbUUID:W,thumbFormat:iA,thumbWidth:EA,snapshotWidth:RA,thumbHeight:kA,snapshotHeight:xA,thumbSize:LA,snapshotSize:SA,thumbDownloadFlag:OA,thumbUrl:JA,snapshotUrl:ae}=u;return{MsgType:this.type,MsgContent:{VideoUrl:Ot.removeAuthToUrl(E),VideoFormat:m,VideoSecond:D,VideoSize:M,VideoDownloadFlag:T,VideoUUID:P,ThumbUUID:W,ThumbFormat:iA,ThumbWidth:EA,SnapshotWidth:RA,ThumbHeight:kA,SnapshotHeight:xA,ThumbSize:LA,SnapshotSize:SA,ThumbDownloadFlag:OA,ThumbUrl:Ot.removeAuthToUrl(JA),SnapshotUrl:Ot.removeAuthToUrl(ae)}}}}Ei=Jr;var As,pi=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createVideoMessage",context:this}),u.registerExperimentalAPI("createVideoMessage",this,"createCustomUploadVideoMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Fl,Po),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createVideoMessage(s){var n,g,u;try{const E=this._processVideo(s);s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={videoFormat:E.videoFile.type,videoSecond:ar(E.videoFile.second,0),videoSize:E.videoFile.size,remoteVideoUrl:"",videoUrl:E.videoFile.url,videoUUID:Ot.generateUUID(E.videoFile),thumbUUID:Ot.generateUUID(E.videoFile,"jpg"),thumbWidth:E.width||200,thumbHeight:E.height||200,thumbUrl:E.thumbUrl,thumbSize:E.thumbSize,thumbFormat:"jpg"},T=new Po(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadVideoMessage(s){var n,g,u;try{const{store:E,message:m}=this._core;this._validateCustomUploadVideoMessage(s);const D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{videoUrl:M,videoUuid:T,duration:P,snapshotUrl:W,snapshotUuid:iA,videoFileSize:EA,videoType:RA,snapshotWidth:kA,snapshotHeight:xA,snapshotFileSize:LA,snapshotType:SA="jpg"}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},OA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:D})),JA=new Po({videoFormat:RA,videoSecond:P||0,videoSize:EA,remoteVideoUrl:M,videoUrl:M,videoUUID:T,thumbUUID:iA,thumbWidth:kA||200,thumbHeight:xA||200,thumbUrl:W,thumbSize:LA,thumbFormat:SA,isCustomUpload:!0});return OA.setElement(JA),this._messageOptionsMap.set(OA.clientSequence,s),OA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const n=s.getElements()[0],{file:g}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadVideo(g);const u=yield this._performVideoUpload(n,s,g),{location:E,snapshotInfo:m}=u,D=Ot.addAuthToUrl(E);return n.updateVideoUrl(D),Ot.isEmpty(m)||n.updateSnapshotInfo(m),s})}_validateBeforeUploadVideo(s){const{helper:{ChatError:n}}=this._core,g=X(Ba)||104857600;if(s.videoFile.size>g)throw new n({code:Ui});if(s.videoFile.size===0)throw new n({code:Vt});if(Zi.indexOf(s.videoFile.type)===-1)throw new n({code:ao})}_validateCustomUploadVideoMessage(s){var n;const{utils:{isEmpty:g,isNumber:u}}=this._core,{videoUrl:E,videoUuid:m,duration:D,snapshotUrl:M,snapshotUuid:T}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(E)||g(m)||!u(D)||g(M)||g(T))throw new Error("Invalid video message options: missing required fields (videoUrl, videoUuid, duration, snapshotUrl, snapshotUuid)")}_performVideoUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:Ba,file:g,to:u,message:n,onProgress:M=>{var T,P;s.updatePercent(M),(P=(T=this._messageOptionsMap.get(n.clientSequence))===null||T===void 0?void 0:T.onProgress)===null||P===void 0||P.call(T,M)}},{response:m,uploadOptions:D}=yield q.uploadToCOS(E);return{snapshotInfo:yield this._getSnapshotInfoByUrl(D.requestSnapshotUrl),location:m.location}})}_processVideo(s){var n,g;try{const{ChatError:u}=(n=this._core)===null||n===void 0?void 0:n.helper,{IN_MINI_APP:E,IN_BROWSER:m}=(g=this._core)===null||g===void 0?void 0:g.utils;let{file:D}=s.payload,M={};if(E&&(M=this._processMiniVideoFile(D),D.name=M.name,D.url=M.url,D.type=M.type),m){const T=Ot.extractFileFromInput(D);if(!T)throw new u({message:"Invalid file. Pass either `e.target` (from file input) or a File object"});D=T,M=this._processWebVideoFile(D)}return D.videoFile=M,D.thumbUrl="",D.thumbSize=0,D}catch(u){throw console.warn(`${ha} _processFile error:`,u),u}}_processMiniVideoFile(s){const{utils:{IN_UNI_NATIVE_APP:n},helper:{ChatError:g}}=this._core;if(gl(s))throw new g({message:"FileUnsupportedInMiniApp"});Array.isArray(s.tempFiles)&&(s=s.tempFiles[0]);let u=s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase();return n&&(u=s.fileType||u),{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.size||1,second:s.duration||0,type:u}}_processWebVideoFile(s){const{name:n,size:g=1,duration:u=0,type:E}=s,m=E.split("/")[1];return{url:window.URL.createObjectURL(s),name:n,size:g,second:u,type:m}}_getSnapshotInfoByUrl(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core;try{n.debug("_getSnapshotInfoByUrl",`${ha} _getSnapshotInfoByUrl url:${s}`);const g={version:1,platform:Ot.getPlatform(),cover_name:Ig(Lr(99999)),snapshot_url:s},u=yield function(T,P){return pA(this,void 0,void 0,function*(){try{const W="im_cos_msg.video_cover",{helper:iA,channel:EA}=P,RA=iA.generateCosSpecifiedData({servcmd:W,data:T}),kA=`${RA.head.seq}${W}`;return yield EA.sendPacket(RA,{requestId:kA})}catch(W){throw console.warn("getSnapshotInfo error:",W),W}})}(g,this._core),{download_url:E}=u||{};if(n.debug("_getSnapshotInfoByUrl",`${ha} _getSnapshotInfoByUrl OK snapshotUrl:${E}`),Ot.isEmpty(E))return{};const m=Ot.addAuthToUrl(E),{width:D=0,height:M=0}=yield Ot.probeImageWidthHeight(m);return{snapshotUrl:m,snapshotWidth:D,snapshotHeight:M}}catch(g){throw g}})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};class ji{constructor(n){this.uploadProgress=0,this.type=Fg,this[As]=!1,this[Jr]=n.isCustomUpload||!1,this.content={downloadFlag:2,second:n.second,size:n.size,url:Ot.generateURL(n.url,{needAddAuthToUrl:!this[Jr]}),remoteAudioUrl:Ot.addAuthToUrl(n.url||""),uuid:n.uuid}}static parseServerPushElement(n){const{MsgContent:g}=n,{Url:u,Download_Flag:E,Second:m,Size:D,UUID:M}=g;return new ji({url:u,downloadFlag:E,second:m,size:D,uuid:M})}updatePercent(n){this.uploadProgress=Math.min(n,1)}updateAudioUrl(n){this.content.remoteAudioUrl=n}validateBeforeSend(){if(this[Jr])return{isValid:!0};const n=this.content.remoteAudioUrl!=="";return{isValid:n,error:n?null:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{uuid:E,downloadFlag:m,remoteAudioUrl:D,size:M,second:T}=u;return{MsgType:this.type,MsgContent:{Url:Ot.removeAuthToUrl(D),Download_Flag:m,Second:T,Size:M,UUID:E}}}}As=Jr;const Ws=2108,Te=2300,Rt=2301;var FA=new class{constructor(){this._messageOptionsMap=new Map}init(s){var n;this._core=s;const{notificationCenter:g,helper:u,InnerEvent:E,message:m}=s;u.registerApi({apiName:"createAudioMessage",context:this}),u.registerExperimentalAPI("createAudioMessage",this,"createCustomUploadAudioMessage"),(n=m?.messageFactory)===null||n===void 0||n.registerElementClass(Fg,ji),g.subscribeInnerEvent(E.DESTROY,this._dispose,this)}createAudioMessage(s){var n,g,u;try{let{file:E}=s.payload;E=this._processAudioFile(s.payload.file),s.payload.file=E;const m=(n=this._core.store.get("login"))===null||n===void 0?void 0:n.userId,D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:m})),M={second:Math.max(1,Math.round((E.duration||E.second)/1e3)),size:E.fileSize||E.size||1,url:E.tempFilePath||E.uri||E.url,uuid:Ot.generateUUID(E)},T=new ji(M);return D.setElement(T),this._messageOptionsMap.set(D.clientSequence,s),D}catch(E){throw E}}createCustomUploadAudioMessage(s){var n,g,u;try{this._validateCustomUploadOptions(s);const{store:E,message:m}=this._core,D=(n=E.get("login"))===null||n===void 0?void 0:n.userId,{url:M,uuid:T,duration:P,fileSize:W}=((g=s?.payload)===null||g===void 0?void 0:g.file)||{},iA=(u=m.messageFactory)===null||u===void 0?void 0:u.createMessage(Object.assign(Object.assign({},s),{from:D})),EA=new ji({second:P,size:W||1,url:M,uuid:T,isCustomUpload:!0});return iA.setElement(EA),this._messageOptionsMap.set(iA.clientSequence,s),iA}catch(E){throw E}}upload(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;n.debug("upload",`${ha} uploadAudio message:${g(s)}`);const{file:u}=this._messageOptionsMap.get(s.clientSequence).payload;this._validateBeforeUploadAudio(u);const E=s.getElements()[0],m=yield this._performAudioUpload(E,s,u),D=Ot.addAuthToUrl(m?.location);return E.updateAudioUrl(D),s})}_validateBeforeUploadAudio(s){const{helper:{ChatError:n},store:g}=this._core;if(!s)throw new n({code:Te});const u=X(cl)||20971520;if(s.size>u)throw new n({code:Rt});if(s.size===0)throw new n({code:Ws})}_performAudioUpload(s,n,g){return pA(this,void 0,void 0,function*(){const{to:u}=n,E={uploadFileType:cl,file:g,to:u,message:n,onProgress:D=>{var M,T;s.updatePercent(D),(T=(M=this._messageOptionsMap.get(n.clientSequence))===null||M===void 0?void 0:M.onProgress)===null||T===void 0||T.call(M,D)}},{response:m}=yield q.uploadToCOS(E);return m})}_processAudioFile(s){var n;const{IN_MINI_APP:g,IN_BROWSER:u}=(n=this._core)===null||n===void 0?void 0:n.utils;return g?this._processMiniFile(s):u?this._processWebFile(s):void 0}_processMiniFile(s){return{url:s.tempFilePath,name:s.tempFilePath.slice(s.tempFilePath.lastIndexOf("/")+1),size:s.fileSize,second:s.duration,type:s.tempFilePath.slice(s.tempFilePath.lastIndexOf(".")+1).toLowerCase()}}_processWebFile(s){if(s.tempFilePath||s.uri)return s;const n=URL.createObjectURL(s);return s.tempFilePath=n,s}_validateCustomUploadOptions(s){var n;const{utils:{isEmpty:g}}=this._core,{url:u,uuid:E,duration:m}=((n=s?.payload)===null||n===void 0?void 0:n.file)||{};if(g(u)||g(E)||g(m))throw new Error("Invalid audio message options")}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const zt={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},onProgress:{required:!1,rules:["function"],allowEmpty:!1}},En={createImageMessage:zt,createAudioMessage:zt,createVideoMessage:zt,createFileMessage:zt},Xt={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},us={[ic]:rA,[Ya]:kt,[Fl]:pi,[Fg]:FA};var vi=new class{constructor(){this.name="RichMediaMessage"}install(s){this._core=s;const{constants:{OuterConstant:{MSG_AUDIO:n,MSG_FILE:g,MSG_IMAGE:u,MSG_VIDEO:E}}}=s;v.init(s),rA.init(s),kt.init(s),pi.init(s),FA.init(s),q.init(s),Ot.init(s),s.helper.registerApi({apiName:"sendMessage",context:this,matcher:m=>[n,g,u,E].includes(m[0].type)}),s.helper.registerValidateConfig({auth:Xt,params:En})}sendMessage(s,n){return pA(this,void 0,void 0,function*(){var g,u,E;try{return this._isCustomUpload(s)||(yield this._upload(s)),yield(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageSender)===null||E===void 0?void 0:E.sendMessage(s,n)}catch(m){throw m}})}_upload(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=this._core;if(n.debug("_upload",` uploadFile message:${g(s)}`),s._relayFlag!==!0)try{const u=us[s.type];u&&(yield u.upload(s),n.info("_upload",` type:${s.type}`))}catch(u){throw s.status=iu.FAIL,u instanceof Error&&(u.data={message:s}),this._core.message.messageDataHandler.storeConversationMessage(s),u}})}_isCustomUpload(s){var n,g;return((g=(n=s._elements)===null||n===void 0?void 0:n[0])===null||g===void 0?void 0:g[Jr])===!0}};const ho=new class{init(s){this.core=s}};class Ct{constructor(n){this.conversationID=n.conversationID||"",this.unreadCount=n.unreadCount||0,this.type=n.type||"",this.lastMessage=ho.core.common.buildLastMessage(n.lastMessage),this.peerReadTime=n.peerReadTime||0,this.groupAtInfoList=[],this.remark=n.remark||"",this.isPinned=n.isPinned||!1,this.messageRemindType=n.messageRemindType,this.markList=n.markList||[],this.customData=n.customData||"",this.conversationGroupList=n.conversationGroupList||[],this.draftText=n.draftText||"",this.userProfile=n.userProfile,this.groupProfile=n.groupProfile,this.subType=n.subType||"",this._isInfoCompleted=!1,this._init()}_init(){var n;const{core:{OuterConstant:g,utils:{isUndefined:u}}}=ho;u(this.userProfile)&&this.type===g.CONV_C2C?this.userProfile={userID:this.conversationID.replace(g.CONV_C2C,"")}:this.type===g.CONV_GROUP&&(!this.subType&&(!((n=this.groupProfile)===null||n===void 0)&&n.type)&&(this.subType=this.groupProfile.type),u(this.groupProfile)&&(this.groupProfile={groupID:this.conversationID.replace(g.CONV_GROUP,""),selfInfo:{},lastMessage:{},type:this.subType}))}updateUnreadCount(n){var g;const{core:{OuterConstant:u,utils:{isUndefined:E},store:m}}=ho,{nextUnreadCount:D,isFromGetConversations:M,isUnreadC2CMessage:T}=n;if(E(D))return;if(this.subType===u.GRP_AVCHATROOM)return void(this.unreadCount=0);if(M&&this.type===u.CONV_GROUP)return void(this.unreadCount=D);if(T&&this.type===u.CONV_C2C)return void(this.unreadCount=D);const P=((g=m.get("cloudConfig"))===null||g===void 0?void 0:g.support_unread_count_for_meeting)==="1";this.subType!==u.GRP_MEETING||P?this.unreadCount+=D:this.unreadCount=0}updateLastMessage(n){this.lastMessage=ho.core.common.buildLastMessage(n)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(n){const{core:{OuterConstant:g}}=ho,{sequence:u,time:E}=n;return this.type===g.CONV_C2C&&u===this.lastMessage.lastSequence&&E===this.lastMessage.lastTime||this.type===g.CONV_GROUP&&u===this.lastMessage.lastSequence}setLastMessageRevoked(n){this.lastMessage.isRevoked=n}setLastMessageRevoker(n){this.lastMessage.revoker=n}setDraftText(n){this.draftText=n}updateGroupAtInfoList(n){const{core:{common:{updateGroupAtInfo:g}}}=ho;g(n,this.groupAtInfoList)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}const Bt=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s.slice(0,3)===n.CONV_C2C},ug=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s.slice(0,5)===n.CONV_GROUP},ks=s=>{const{core:{OuterConstant:n,utils:{isString:g}}}=ho;return g(s)&&s===n.CONV_SYSTEM};function Wi(s){const{OuterConstant:n}=ho.core;let g="";return s===0?g=n.MSG_REMIND_ACPT_AND_NOTE:s===1?g=n.MSG_REMIND_DISCARD:s===2?g=n.MSG_REMIND_ACPT_NOT_NOTE:s===3&&(g=n.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}function Hr(s){const{OuterConstant:n}=ho.core;let g;return s.startsWith(n.CONV_C2C)&&(g=s.replace(n.CONV_C2C,"")),g==="@TLS#ERROR"||g==="@TLS#NOT_FOUND"}function oc(s,n){const{helper:g}=ho.core,u=new g.ChatError({functionName:s,code:n?.errorCode||n?.code,message:n?.errorInfo||n?.message});throw console.error(`${s} fail:`,u),u}var is,ga;(function(s){s[s.OFF=0]="OFF",s[s.ON=1]="ON"})(is||(is={})),function(s){s[s.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(ga||(ga={}));var Qa;(function(s){s[s.CONV_NOT_FOUND=2500]="CONV_NOT_FOUND",s[s.USER_OR_GRP_NOT_FOUND=2501]="USER_OR_GRP_NOT_FOUND",s[s.CONV_UN_RECORDED_TYPE=2502]="CONV_UN_RECORDED_TYPE"})(Qa||(Qa={}));const ea=0,H=1;var BA=new class{constructor(){this._name="GetC2CMessageRemindType"}init(s){this._core=s}get(s){return pA(this,void 0,void 0,function*(){try{const{common:n}=this._core,g=yield function(E,m){return pA(this,void 0,void 0,function*(){const{toAccount:D,userIDList:M}=E,T={To_Account:D,Peer_Account:M};return m.common.buildAndSendPacket({servcmd:"openim.get_c2c_peer_mute_notifications",data:T})})}({toAccount:n.getCurrentUserID(),userIDList:s},this._core),{MuteNotificationsList:u=[]}=g||{};u.forEach(E=>{const{Peer_Account:m,MuteNotifications:D}=E,M=`${this._core.OuterConstant.CONV_C2C}${m}`,T=Wi(D);NA.patchMessageRemindType([M],T)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},yA=new class{constructor(){this._name="GetGroupMessageRemindType"}init(s){this._core=s}get(s){return pA(this,void 0,void 0,function*(){if(s.length!==0)try{const n=yield function(u,E){return pA(this,void 0,void 0,function*(){const{groupIDList:m,responseFilter:D}=u,M={GroupIdList:m,ResponseFilter:D};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:M})})}({groupIDList:s,responseFilter:{MemberInfoFilter:["MsgFlag"]}},this._core),{GroupInfo:g=[]}=n||{};g.forEach(u=>{var E;const{GroupId:m,MemberList:D}=u,M=((E=D[0])===null||E===void 0?void 0:E.MsgFlag)||"",T=`${this._core.OuterConstant.CONV_GROUP}${m}`;NA.patchMessageRemindType([T],M)})}catch(n){console.error(`${this._name}.get fail:`,n)}})}},NA=new class{constructor(){this._name="ConversationDataHandler",this._totalUnreadCount=0,this._groupAtTipsList=[]}init(s){this._core=s;const{helper:n,notificationCenter:g,appStore:{conversationStore:u},constants:{WORKFLOW_NAME:E,WORKFLOW_STEP:m},InnerEvent:{SYNC_CONVERSATION_LIST:D,MESSAGE_PUSH:M,NEW_MESSAGE:T,MESSAGE_DELETED:P,MESSAGE_REVOKED:W,MESSAGE_MODIFIED:iA,CONVERSATION_UPDATED:EA,LOGOUT:RA,DESTROY:kA},InnerEventSubType:{C2C_MESSAGE_PEER_READ:xA}}=s;this._conversationStore=u,n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_LOGIN,m.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,this._handleGroupListSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.RECEIVE_C2C_NEW_MESSAGE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_NEW_MESSAGE,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this),n.registerWorkflowStep(E.SYNC_SERVER_INFO_AFTER_RE_ONLINE,m.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,this._handleUnreadSyncFinished,this),n.registerWorkflowStep(E.RECEIVE_GROUP_TIPS_NOTIFICATION,m.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this);const{InnerEventSubType:{GROUP_AT_TIPS:LA}}=g;g.subscribeInnerEvent(D,this._handleConversationSynced,this),g.subscribeInnerEvent(T,this._handleNewMessage,this),g.subscribeInnerEvent(M,LA,this._handleNewGroupAtTips,this),g.subscribeInnerEvent(P,this._handleMessageDeleted,this),g.subscribeInnerEvent(W,this._handleMessageRevoked,this),g.subscribeInnerEvent(iA,this._handleMessageModified,this),g.subscribeInnerEvent(EA,this._handleConversationUpdated,this),g.subscribeInnerEvent(M,xA,this._handleMessageRead,this),g.subscribeInnerEvent(RA,this._reset,this),g.subscribeInnerEvent(kA,this._dispose,this),s.ssoLog.debug(`${this._name}.init`)}_handleConversationSynced(s){this.updateLocalConversationList({conversationUpdateFieldList:s.conversationUpdateFieldList||[],isFromGetConversations:!0,updateUnreadCount:!0}),this.emitConversationListUpdate()}_handleUnreadSyncFinished(s){const{constants:{WORKFLOW_STEP:n}}=this._core,{conversationUpdateFieldList:g=[],groupTipList:u=[],isUnreadC2CMessage:E}=s.result[n.UNREAD_MESSAGE_SYNC]||{};let m=!1;g.forEach(D=>{const{conversationID:M,unreadCount:T}=D,P=this.getLocalConversation(M);P&&P.unreadCount!==T&&(P.updateUnreadCount({nextUnreadCount:T,isUnreadC2CMessage:E}),m=!0)}),m&&this.emitConversationListUpdate(),this._handleGroupAtTipsSynced(u)}_handleGroupAtTipsSynced(s){var n;for(let g=0;g<s.length;g++)if(s[g].Event===12){if(!((n=s[g].GroupTips[0].MsgBody)===null||n===void 0)&&n.TopicId)continue;this._handleNewGroupAtTips(s[g])}}_handleGroupListSyncFinished(s){var n;const{constants:{WORKFLOW_STEP:g}}=this._core,u=s.result[g.GROUP_LIST_SYNC]||[],{OuterConstant:{CONV_GROUP:E}}=this._core;let m=!1;for(let D=0;D<u.length;D++){const M=u[D],T=`${E}${M.groupID}`;if(!this.hasLocalConversation(T))continue;const P=this.getLocalConversation(T);P.groupProfile=JSON.parse(JSON.stringify(M)),P.lastMessage.lastSequence<M.nextMessageSeq&&(P.lastMessage.lastSequence=M.nextMessageSeq-1),P.subType||(P.subType=M.type),((n=M._groupAtInfoList)===null||n===void 0?void 0:n.length)>0&&this._handleNewGroupAtTips({GroupTips:M._groupAtInfoList}),m=!0}m&&this.emitConversationListUpdate()}_handleNewMessage(s){const{conversationUpdateFieldList:n=[],isInstantMessage:g=!0,isUnreadC2CMessage:u=!1,updateUnreadCount:E=!0}=s.result||{};if(n.length===0)return;const{common:{isTopic:m}}=this._core;m(n[0].conversationID)||(this.updateLocalConversationList({conversationUpdateFieldList:n,isInstantMessage:g,isUnreadC2CMessage:u,isFromGetConversations:!1,updateUnreadCount:E}),n.filter(D=>this._isConversationNeedShow(D.conversationID)).length>0&&this.emitConversationListUpdate())}_handleNewGroupAtTips(s){const{GroupTips:n=[]}=s;n.forEach(g=>{const{GroupAtTips:u,MsgBody:E,MsgRandom:m,ClientSeq:D}=g;let M={};u?M=this._convertGroupAtTipsKey(u):E?M=Object.assign({},this._convertGroupAtTipsKey(E)):g.groupAtType&&(M=Object.assign({},g)),M.__random=m,M.__sequence=D,this._groupAtTipsList.push(M)}),console.log(`${this._name}._handleNewGroupAtTips groupAtTipsList: ${JSON.stringify(this._groupAtTipsList)}`),this._updateGroupAtInfoList()}_convertGroupAtTipsKey(s){const{From_Account:n,GroupId:g,MsgSeq:u,GroupAtType:E}=s;return{from:n,groupID:g,sequence:u,groupAtType:E}}_updateGroupAtInfoList(){if(this._groupAtTipsList.length===0)return;const{common:s,OuterConstant:n}=this._core,g=s.getCurrentUserID();let u=!1;this._groupAtTipsList.forEach(E=>{const{groupID:m,from:D}=E;if(D!==g){const M=this.getLocalConversation(`${n.CONV_GROUP}${m}`);M&&(M.updateGroupAtInfoList(E),u=!0)}}),u&&this.emitConversationListUpdate(),this._groupAtTipsList.length=0}_handleMessageDeleted(s){var n,g;console.log(`${this._name}._handleMessageDeleted, conversationID:`,s);const{message:{messageDataHandler:u},OuterConstant:E}=this._core,m=u?.getLocalMessageList(s)||[];let D={};for(let P=(m.length||0)-1;P>=0;P--)if(!m[P].isDeleted&&m[P]._isExcludedFromLastMessage!==!0){D=m[P];break}const M=this.getLocalConversation(s);if(!M)return;let T=!1;M.lastMessage.lastSequence===D.sequence&&M.lastMessage.lastTime===D.time||(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D)&&(D=void 0),M.updateLastMessage(D),T=!0),s.startsWith(E.CONV_C2C)&&this.updateUnreadCount(s),T&&(this.emitConversationListUpdate(),console.log(`${this._name}._handleMessageDeleted. update conversationID:${s} with lastMessage:`,M.lastMessage))}_handleMessageRevoked(s){const{messageList:n=[],updateUnreadCount:g=!0}=s;if(console.log(`${this._name}._handleMessageRevoked messageList:${n.length}`),n.length===0)return;let u=null,E=!1;n.forEach(m=>{u=this.getLocalConversation(m.conversationID),u&&(g&&u.reduceUnreadCount()&&(E=!0),u.isLastMessageRevoked({sequence:m.sequence,time:m.time})&&(u.setLastMessageRevoked(!0),u.setLastMessageRevoker(m.revoker),E=!0))}),E&&this.emitConversationListUpdate()}_handleMessageModified(s){const{utils:{isEmpty:n},common:{getMessagePreviewText:g},ssoLog:u}=this._core;u.debug(`${this._name}._handleMessageModified`,JSON.stringify(s));const{conversationID:E,messageList:m}=s,D=this.getLocalConversation(E);if(n(D))return;const{lastMessage:M}=D;if(M){const T=m?.[0]||{};M.lastTime===T.time&&M.lastSequence===T.sequence&&M.version!==T.version&&(M.type=T.type,M.payload=T.payload,M.messageForShow=g(T.type,T.payload),M.cloudCustomData=T.cloudCustomData,M.version=T.version,this.emitConversationListUpdate(),console.log(`${this._name} conversationID:${E} lastMessage updated`))}}_handleConversationUpdated(s){this.emitConversationListUpdate(s?.needSort)}updateLocalConversationList(s){const{isFromGetConversations:n}=s,{newConversationList:g}=this._getTmpConversationListMapping(s);this._sortConversationList(),n||this._updateNewConversationProfile(g),this._core.ssoLog.debug("updateLocalConversationList",` newConversationList: ${g.length}`)}_getTmpConversationListMapping(s){const{OuterConstant:n}=this._core,{conversationUpdateFieldList:g,isFromGetConversations:u,isInstantMessage:E,isUnreadC2CMessage:m=!1,updateUnreadCount:D}=s,M=[],T=g?.length;for(let P=0;P<T;P++){const W=new Ct(g[P]),{conversationID:iA,type:EA}=W;if(!Hr(iA))if(this.hasLocalConversation(iA)){const RA=this.getLocalConversation(iA);if(u){this.setLocalConversation(iA,W),EA===n.CONV_C2C?W.unreadCount=RA?.unreadCount||0:EA===n.CONV_GROUP&&(W.groupProfile=JSON.parse(JSON.stringify(RA?.groupProfile)));continue}this._mergeConversationInfo({conversationID:iA,tmpConversation:W,lastMessage:g[P].lastMessage,isFromGetConversations:u,isInstantMessage:E}),this._patchLastMessage({conversationID:iA,lastMessage:g[P].lastMessage,isInstantMessage:E}),D===!0&&RA?.updateUnreadCount({nextUnreadCount:W.unreadCount,isFromGetConversations:u,isUnreadC2CMessage:m})}else M.push(W),this.setLocalConversation(iA,W)}return{newConversationList:M}}_mergeConversationInfo(s){const{conversationID:n,tmpConversation:g,lastMessage:u,isFromGetConversations:E,isInstantMessage:m}=s,D=this.getLocalConversation(n),M=["unreadCount","allowType","adminForbidType","payload"];m===!1&&M.push("lastMessage"),E||M.push("isPinned");const{utils:{isUndefined:T,isEmpty:P},common:{deepMerge:W}}=this._core;T(m)&&u&&D?.lastMessage.payload===null&&(D.lastMessage.payload=u.payload),P(D?.lastMessage.revoker)||(D.lastMessage.revoker=null),W(D,g,M,[null,void 0,"",0,NaN])}_patchLastMessage(s){const{OuterConstant:n}=this._core,{conversationID:g,lastMessage:u,isInstantMessage:E}=s,m=this.getLocalConversation(g);if(m&&u){const{payload:D,nameCard:M,nick:T,cloudCustomData:P="",version:W=0}=u;E&&(D&&(m.lastMessage.payload=D),m.type===n.CONV_GROUP&&(m.lastMessage.nameCard=M,m.lastMessage.nick=T),m.lastMessage.version=W),m.lastMessage.cloudCustomData!==P&&(m.lastMessage.cloudCustomData=P)}}_sortConversationList(){const{utils:{isEmpty:s}}=this._core,n=[...this._conversationStore.getConversationMap()],g=[],u=[],E=[],m=[];n.forEach(M=>{M[1].isPinned===!0?s(M[1].lastMessage.lastTime)?u.push(M):g.push(M):s(M[1].lastMessage.lastTime)?m.push(M):E.push(M)});const D=g.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime).concat(u).concat(E.sort((M,T)=>T[1].lastMessage.lastTime-M[1].lastMessage.lastTime)).concat(m);this._updateConversationMapFromList(D)}_updateNewConversationProfile(s){if(s.length===0)return;const n=[],g=[],{OuterConstant:{CONV_GROUP:u,CONV_C2C:E}}=this._core;s.forEach(m=>{const{conversationID:D,type:M}=m;if(M===E){const T=D.replace(E,"");n.push(T)}else if(M===u){const T=D.replace(u,"");g.push(T)}}),n.length>0&&this._updateC2CConversation(n),g.length>0&&this._updateGroupConversation(g)}_updateC2CConversation(s){var n;const{OuterConstant:{CONV_C2C:g},appStore:{userStore:u},user:E}=this._core;let m=!1;(n=E.userProfile)===null||n===void 0||n.getUserProfile({userIDList:s}).then(D=>{(D?.data||[]).forEach(M=>{var T;const{userID:P}=M,W=this.getLocalConversation(`${g}${P}`);if(W){const iA=((T=u.getFriend(P))===null||T===void 0?void 0:T.remark)||"";W.remark=iA,W.userProfile=M,m=!0}}),m&&this.emitConversationListUpdate()}).catch(D=>{}),BA.get(s)}_updateGroupConversation(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g},utils:{safeStringify:u},ssoLog:E,apiMap:{getGroupProfile:m}}=this._core;let D=!1;try{yield Promise.all(s.map(M=>pA(this,void 0,void 0,function*(){const T=g.getGroup(M),P=this.getLocalConversation(`${n}${M}`);T&&P&&(P.groupProfile=T,D=!0),P&&!P.getProfileCompleted()&&typeof m=="function"&&(yield m({groupID:M}))}))),yA.get(s),D&&this.emitConversationListUpdate()}catch(M){E.debug("_updateGroupConversation",u(M))}})}_handleMessageRead(s){const{OuterConstant:{CONV_C2C:n}}=this._core,{C2cNotifyMsgArray:g=[]}=s||{};g.forEach(u=>{const{To_Account:E,UinPairReadArray:m=[]}=u?.C2cReadedReceipt||{};m?.forEach(D=>{const{LastReadTime:M}=D,T=`${n}${E}`;this._updateConversationReadInfo({conversationID:T,peerReadTime:M}),this._updateMessageListPeerRead({conversationID:T,peerReadTime:M})})})}_updateConversationReadInfo(s){const{appStore:n,utils:{isEmpty:g},common:{getCurrentUserID:u}}=this._core,{conversationID:E,peerReadTime:m}=s,D=n.conversationStore.getConversationMap();if(D.has(E)){const M=D.get(E);M.peerReadTime=m;const T=M?.lastMessage;g(T)||T.fromAccount===u()&&T.lastTime<=m&&!T.isPeerRead&&(T.isPeerRead=!0,n.conversationStore.updateConversation(E,{lastMessage:T}))}}_updateMessageListPeerRead(s){const{notificationCenter:n,OuterEvent:g,message:u}=this._core,{conversationID:E,peerReadTime:m}=s,D=u.messageDataHandler.getLocalMessageList(E),M=u.messageDataHandler.getSparseMessageList(E),T=[];D.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),M.forEach(P=>{P.time<=m&&!P.isPeerRead&&P.flow==="out"&&(P.isPeerRead=!0,T.push(P))}),n.emitOuterEvent(g.MESSAGE_READ_BY_PEER,{name:g.MESSAGE_READ_BY_PEER,data:T})}_isConversationNeedShow(s){var n,g;const{OuterConstant:{CONV_GROUP:u,GRP_ROOM:E,GRP_LIVE:m},utils:{isUndefined:D}}=this._core,M=this.getLocalConversation(s);if(D(M))return!0;const T=M.type===u&&((n=M.groupProfile)===null||n===void 0?void 0:n.type)===E,P=M.type===u&&((g=M.groupProfile)===null||g===void 0?void 0:g.type)===m;return!(T||P)}updateUnreadCount(s,n=!0){var g,u;let E=!1;const m=this.getLocalConversation(s),D=(u=(g=this._core)===null||g===void 0?void 0:g.message.messageDataHandler)===null||u===void 0?void 0:u.getLocalMessageList(s);if(!m)return E;const M=m.unreadCount,T=D?.filter(P=>!P.isRead&&!P._onlineOnlyFlag&&!P.isDeleted).length;return console.log(`${this._name}._updateUnreadCount conversationID:${s} currentUnreadCount:${M} newUnreadCount:${T}`),M!==T&&(m.unreadCount=T,E=!0,n===!0&&this.emitConversationListUpdate()),E}emitConversationListUpdate(s=!1){var n,g;s&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:u},conversation:E}=this._core,m=this.getLocalConversationList();this._emitEvent({name:u,data:m,isSyncCompleted:(g=(n=E?.syncConversationHandler)===null||n===void 0?void 0:n.isSyncCompleted)===null||g===void 0?void 0:g.call(n)}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var s;const n=this.getTotalUnreadMessageCount();this._totalUnreadCount!==n&&(this._core.ssoLog.debug("_emitTotalUnreadCountUpdate",` from ${this._totalUnreadCount} to ${n}`),this._totalUnreadCount=n,this._emitEvent({name:(s=this._core)===null||s===void 0?void 0:s.OuterEvent.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,data:n}))}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}getTotalUnreadMessageCount(){const{OuterConstant:s,utils:{isEmpty:n}}=this._core,g=this.getLocalConversationList();let u=0;return g.forEach(E=>{E.type!==s.CONV_SYSTEM&&(n(E.messageRemindType)||E.messageRemindType===s.MSG_REMIND_ACPT_AND_NOTE)&&(u+=E.unreadCount)}),u}getLocalConversationList(){return[...this._conversationStore.getConversationMap().values()].filter(s=>this._isConversationNeedShow(s.conversationID))}hasLocalConversation(s){return this._conversationStore.getConversationMap().has(s)}getLocalConversation(s){return this._conversationStore.getConversationMap().get(s)}setLocalConversation(s,n){return this._conversationStore.getConversationMap().set(s,n)}deleteLocalConversation(s){this._conversationStore.getConversationMap().delete(s)}_updateConversationMapFromList(s){this._clearConversationMap();for(const[n,g]of s)this.setLocalConversation(n,g)}_clearConversationMap(){this._conversationStore.getConversationMap().clear()}patchMessageRemindType(s,n){let g=!1;s.forEach(u=>{const E=this.getLocalConversation(u);E?.messageRemindType!==n&&(E.messageRemindType=n,g=!0)}),console.log(`${this._name}.patchMessageRemindType conversationIDList:${s} messageRemindType:${n} hasUpdated:${g}`),g&&this.emitConversationListUpdate()}markMessageAsRead(s){const{message:{messageDataHandler:n}}=this._core,{conversationID:g,lastReadTime:u=0,lastReadSequence:E=0}=s,m=n?.getLocalMessageList(g);if(m.length===0)return;const{length:D}=m;for(let M=D-1;M>=0;M--){const T=m[M],P=u&&T.time>u,W=E&&T.sequence>E;if(!P&&!W){if(T.flow==="in"&&T.isRead)break;T.setIsRead(!0)}}}appendToPinnedConversation(s){const n=[...this._conversationStore.getConversationMap().entries()],g=n.findIndex(u=>u[1].isPinned===!1);n.splice(g,0,[s.conversationID,s]),this._updateConversationMapFromList(n),this.emitConversationListUpdate()}_reset(){this._clearConversationMap(),this._totalUnreadCount=0,this._groupAtTipsList=[]}_dispose(){const{notificationCenter:s,InnerEvent:{NEW_MESSAGE:n,MESSAGE_DELETED:g,MESSAGE_REVOKED:u,MESSAGE_MODIFIED:E,CONVERSATION_UPDATED:m,LOGOUT:D,DESTROY:M,SYNC_CONVERSATION_LIST:T}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:P}}=s;s.unSubscribeInnerEvent(n,this._handleNewMessage,this),s.unSubscribeInnerEvent(n,P,this._handleNewGroupAtTips,this),s.unSubscribeInnerEvent(g,this._handleMessageDeleted,this),s.unSubscribeInnerEvent(u,this._handleMessageRevoked,this),s.unSubscribeInnerEvent(E,this._handleMessageModified,this),s.unSubscribeInnerEvent(m,this._handleConversationUpdated,this),s.unSubscribeInnerEvent(T,this._handleConversationSynced,this),s.unSubscribeInnerEvent(D,this._reset,this),s.unSubscribeInnerEvent(M,this._dispose,this)}},zA=new class{constructor(){this._name="GetConversationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationList",context:this})}getConversationList(s){return pA(this,void 0,void 0,function*(){return{code:0,data:{conversationList:this._getConversationList(s),isSyncCompleted:this._core.conversation.syncConversationHandler.isSyncCompleted()}}})}_getConversationList(s){const{utils:{isUndefined:n,isArray:g,isPlainObject:u}}=this._core;if(n(s))return NA.getLocalConversationList();if(g(s))return s.length===0?[]:NA.getLocalConversationList().filter(E=>s.includes(E.conversationID));if(u(s)){const{type:E,markType:m,groupName:D,hasUnreadCount:M,hasGroupAtInfo:T}=s;return NA.getLocalConversationList().filter(P=>this._filterType(P,E)&&this._filterMarkType(P,m)&&this._filterGroupName(P,D)&&this._filterUnreadCount(P,M)&&this._filterGroupAtInfo(P,T))}return[]}_filterType(s,n){const{OuterConstant:g}=this._core;return n!==g.CONV_C2C&&n!==g.CONV_GROUP||s.type===n}_filterGroupName(s,n){const{utils:{isString:g}}=this._core;return!g(n)||(n===""?s.conversationGroupList.length===0:s.conversationGroupList.includes(n))}_filterMarkType(s,n){const{utils:{isNumber:g}}=this._core;return!g(n)||(n===0?s.markList.length===0:s.markList.includes(n))}_filterUnreadCount(s,n){let g=!0;return n===!0?g=s.unreadCount>=1:n===!1&&(g=s.unreadCount===0),g}_filterGroupAtInfo(s,n){let g=!0;return n===!0?g=s.groupAtInfoList.length>=1:n===!1&&(g=s.groupAtInfoList.length===0),g}},we=new class{constructor(){this._name="GetConversationProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,GRP_AVCHATROOM:u},appStore:{groupStore:E},utils:{isEmpty:m}}=this._core,D={code:0,data:{}};let M=NA.getLocalConversation(s);if(ks(s))return D.data.conversation=M,D;let T=!1;const P=Bt(s)?n:g;if(m(M)&&(T=!0,M=new Ct({conversationID:s,type:P})),console.log(`${this._name}.getConversationProfile conversationID:${s} isNewConversation:${T}`),D.data.conversation=M,M?.getProfileCompleted())return D;if(P===n){const W=s.replace(n,"");yield this._handleC2CConversation(M,W),T&&(yield BA.get([W]))}if(P===g){const W=s.replace(g,"");if(!E.getGroup(W))return D;yield this._handleGroupConversation(M,W),T&&M.groupProfile.type!==u&&(yield yA.get([W]))}return D})}_handleC2CConversation(s,n){return pA(this,void 0,void 0,function*(){var g,u;const{user:E,helper:m,utils:{isEmpty:D},appStore:{conversationStore:M,userStore:T}}=this._core,{conversationID:P}=s,W=yield(g=E.userProfile)===null||g===void 0?void 0:g.getUserProfile({userIDList:[n]});if(W?.data.length===0)throw new m.ChatError({code:Qa.USER_OR_GRP_NOT_FOUND});s.userProfile=W?.data[0];const iA=(u=T.getFriend(n))===null||u===void 0?void 0:u.remark;D(iA)||s.remark===iA||(s.remark=iA),s.setProfileCompleted();const EA=NA.hasLocalConversation(P);console.log(`${this._name}._handleC2CConversation conversationID:${P} hasLocalConversation: ${EA}`),EA?M.updateConversation(P,s):NA.appendToPinnedConversation(s)})}_handleGroupConversation(s,n){return pA(this,void 0,void 0,function*(){const{apiMap:{getGroupProfile:g},appStore:{conversationStore:u}}=this._core,{conversationID:E}=s,m=yield g({groupID:n});s.groupProfile=m?.data.group,s.setProfileCompleted();const D=NA.hasLocalConversation(E);console.log(`${this._name}._handleGroupConversation conversationID:${E} hasLocalConversation: ${D}`),D?u.updateConversation(E,s):NA.appendToPinnedConversation(s)})}},Ie=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return NA.getTotalUnreadMessageCount()}},Ge=new class{constructor(){this._serverGroupConversationLastReadSeqMap=new Map,this._name="SetMessageRead"}init(s){this._core=s;const{helper:n,common:{isTopic:g},notificationCenter:u,InnerEvent:{MESSAGE_PUSH:E},InnerEventSubType:{ALL_MESSAGE_READ:m}}=s;n.registerApi({apiName:"setMessageRead",context:this,matcher:D=>!g(D[0].conversationID)}),n.registerApi({apiName:"setAllMessageRead",context:this}),u.subscribeInnerEvent(E,m,this._handleAllMessageRead,this)}handleC2CMessageReadSync(s){const{helper:{isEmpty:n},OuterConstant:g}=this._core;s.forEach(u=>{const{ReadC2cMsgNotify:E}=u;if(!n(E)){const{UinPairReadArray:m=[]}=E;m.forEach(D=>{const{From_Account:M,LastReadTime:T}=D,P=`${g.CONV_C2C}${M}`;console.log(`${this._name}.handleC2CMessageReadSync conversationID:${P} lastReadTime:${T}`),NA.markMessageAsRead({conversationID:P,lastReadTime:T}),NA.updateUnreadCount(P)})}})}handleGroupMessageReadSync(s){const{OuterConstant:n,utils:{isUndefined:g}}=this._core;s.forEach(u=>{const{GroupReadInfoArray:E}=u.MsgBody;g(E)||E.forEach(m=>{const{GroupId:D,LastReadMsgSeq:M}=m,T=`${n.CONV_GROUP}${D}`;console.log(`${this._name}.handleGroupMessageReadSync conversationID:${T} lastReadSequence:${M}`),NA.markMessageAsRead({conversationID:T,lastReadSequence:M}),NA.updateUnreadCount(T),this._clearGroupAtInfoList(T)})})}setMessageRead(s){return pA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:u}=this._core,{conversationID:E}=s,m={code:0,data:{}},D=NA.getLocalConversation(E);let M=`${this._name}.setMessageRead conversationID:${E} unreadCount:${D?.unreadCount||0}`;if(m.successLog={message:M},!D)return m;const T=!(!((g=(n=this._core)===null||n===void 0?void 0:n.helper)===null||g===void 0)&&g.isEmpty(D.groupAtInfoList));if(D.type===u.CONV_GROUP&&T&&this._deleteGroupAtTips(E),D.unreadCount===0)return m;const{helper:{ChatError:P}}=this._core;try{if(D.type===u.CONV_C2C){const W=this._getLocalMessageMaxTime(D);M+=`lastMessageTime:${W}`,yield this._setC2CMessageRead(E,W)}if(D.type===u.CONV_GROUP){const W=this._getLocalMessageMaxSequence(D);M+=`lastMessageSequence:${W}`,yield this._setGroupMessageRead(E,W)}}catch(W){const{errorCode:iA,errorInfo:EA}=W;throw new P({functionName:"setMessageRead",code:iA,message:EA,moreMessage:M})}return D.type===u.CONV_SYSTEM&&(D.unreadCount=0),NA.emitConversationListUpdate(),Object.assign(Object.assign({},m),{successLog:{message:M}})})}setAllMessageRead(){return pA(this,arguments,void 0,function*(s={}){const{OuterConstant:{READ_ALL_MSG:n},utils:{safeStringify:g}}=this._core;let u=`scope:${s.scope}`;s.scope||(s.scope=n);const{scope:E}=s,m=this._generateSetAllMessageReadRequestData(E);if(m.allC2CMessageReadStatus===ea&&m.groupMessageReadInfoList.length===0)return{code:0};try{const D=yield function(M){return pA(this,void 0,void 0,function*(){const{allC2CMessageReadStatus:T,groupMessageReadInfoList:P}=M,W={C2CReadAllMsg:T,GroupReadInfo:P};return ho.core.common.buildAndSendPacket({servcmd:"openim.read_all_unread_msg",data:W})})}(m);if(D){const{GroupReadInfoArray:M,C2CReadAllMsg:T}=D,P=this._parseGroupReadInfo(M);this._updateAllConversationReadStatus({allC2CMessageReadStatus:T})>0&&NA.emitConversationListUpdate(),u+=`failureGroupInfoList:${g(P)}`}return{code:0,successLog:{message:u}}}catch(D){const{errorCode:M}=D;throw new this._core.helper.ChatError({functionName:"setAllMessageRead",code:M,moreMessage:u})}})}_handleAllMessageRead(s){const{GroupReadInfoArray:n,C2CReadAllMsg:g}=s;this._parseGroupReadInfo(n),this._updateAllConversationReadStatus({allC2CMessageReadStatus:g})>0&&NA.emitConversationListUpdate()}_updateAllConversationReadStatus(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g},appStore:u}=this._core,E=u.conversationStore.getConversationMap(),{allC2CMessageReadStatus:m}=s;let D=0;for(const[M,T]of E)if(T.unreadCount>=1){if(m===H&&T.type===n){const P=this._getLocalMessageMaxTime(T);NA.markMessageAsRead({conversationID:M,lastReadTime:P})}else if(T.type===g){const P=M.replace(g,"");if(this._serverGroupConversationLastReadSeqMap.has(P)){const W=this._serverGroupConversationLastReadSeqMap.get(P);NA.markMessageAsRead({conversationID:M,lastReadSequence:W})}}NA.updateUnreadCount(M,!1)&&(D+=1)}return D}_generateSetAllMessageReadRequestData(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_C2C_MSG:u},appStore:E}=this._core,m={allC2CMessageReadStatus:ea,groupMessageReadInfoList:[]},D=E.conversationStore.getConversationMap();for(const[,M]of D){const{type:T,unreadCount:P}=M;if(this._shouldSetAllMessageRead({scope:s,type:T,unreadCount:P})){if(T===n&&m.allC2CMessageReadStatus===ea){if(m.allC2CMessageReadStatus=H,s===u)break}else if(T===g){const W=this._getLocalMessageMaxSequence(M),{groupID:iA}=M.groupProfile;m.groupMessageReadInfoList.push({GroupId:iA,MsgSeq:W})}}}return m}_parseGroupReadInfo(s){const{utils:{isUndefined:n}}=this._core,g=[];return s?.forEach(u=>{const{GroupId:E,MsgSeq:m,RetCode:D,LastReadMsgSeq:M}=u;n(D)?this._serverGroupConversationLastReadSeqMap.set(E,M):(this._serverGroupConversationLastReadSeqMap.set(E,m),D!==0&&g.push(`${E}-${m}-${D}`))}),g}_deleteGroupAtTips(s){return pA(this,void 0,void 0,function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${s}`);const n=NA.getLocalConversation(s);if(!n)return;const g=n?.groupAtInfoList||[];if(g.length!==0)try{const{common:{getCurrentUserID:u,isCommunity:E},OuterConstant:{CONV_GROUP:m,CONV_AT_ALL:D}}=this._core;let M=[...g];if(E({groupID:s.replace(m,"")})&&(M=g.filter(P=>!P.atTypeArray.includes(D)),M.length===0))return void this._clearGroupAtInfoList(s,!1);const T=M.map(P=>({From_Account:P.from,To_Account:u(),MsgSeq:P.__sequence,MsgRandom:P.__random,GroupId:P.groupID}));yield function(P,W){return pA(this,void 0,void 0,function*(){const{messageListToDelete:iA}=P,EA={DelMsgList:iA};return W.common.buildAndSendPacket({servcmd:"openim.deletemsg",data:EA})})}({messageListToDelete:T},this._core),console.log(`${this._name}._deleteGroupAtTips ok. count:${g.length}`),this._clearGroupAtInfoList(s)}catch(u){console.error(`${this._name}._deleteGroupAtTips fail:`,u)}})}_clearGroupAtInfoList(s,n=!0){const g=NA.getLocalConversation(s);g&&(g.groupAtInfoList.length>0&&(g.clearGroupAtInfoList(),console.log(`${this._name}._clearGroupAtInfoList conversationID:${s} needEmitConversationUpdate:${n}`)),n&&NA.emitConversationListUpdate())}_getLocalMessageMaxTime(s){var n;const{conversationID:g}=s,u=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...u.map(D=>D.time));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastTime)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxTime update lastMessageTime from ${m} to ${E}`),m=E),m}_getLocalMessageMaxSequence(s){var n;const{conversationID:g}=s,u=this._core.message.messageDataHandler.getLocalMessageList(g),E=Math.max(...u.map(D=>D.sequence));let m=((n=s?.lastMessage)===null||n===void 0?void 0:n.lastSequence)||0;return E>m&&(console.log(`${this._name}._getLocalMessageMaxSequence update lastMessageSequence from ${m} to ${E}`),m=E),m}_setC2CMessageRead(s,n){return pA(this,void 0,void 0,function*(){try{yield function(g,u){return pA(this,void 0,void 0,function*(){return u.common.buildAndSendPacket({servcmd:"openim.msgreaded",data:g})})}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:s.replace("C2C",""),LastedMsgTime:n,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${n}`),NA.markMessageAsRead({conversationID:s,lastReadTime:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setC2CMessageRead fail:`,g),g}})}_setGroupMessageRead(s,n){return pA(this,void 0,void 0,function*(){try{yield function(g,u){return pA(this,void 0,void 0,function*(){const{groupID:E,lastMessageSequence:m}=g,D={GroupId:E,MsgReadedSeq:m};return u.common.buildAndSendPacket({servcmd:"group_open_http_svc.msg_read_report",data:D})})}({groupID:s.replace("GROUP",""),lastMessageSequence:n},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${n}`),NA.markMessageAsRead({conversationID:s,lastReadSequence:n}),NA.updateUnreadCount(s)}catch(g){throw console.warn(`${this._name}._setGroupMessageRead fail:`,g),g}})}_shouldSetAllMessageRead(s){const{OuterConstant:{CONV_C2C:n,CONV_GROUP:g,READ_ALL_MSG:u,READ_ALL_C2C_MSG:E,READ_ALL_GROUP_MSG:m}}=this._core,{type:D,scope:M,unreadCount:T}=s;return!(T<=0)&&(!(D!==n||![u,E].includes(M))||!(D!==g||![u,m].includes(M)))}},ce=new class{constructor(){this._name="PinConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"pinConversation",context:this})}handleConversationPinned(s,n){const{utils:{isArray:g}}=this._core;if(!g(s))return;const{OuterConstant:u}=this._core;let E=!1;s.forEach(m=>{const{Type:D,Peer_Account:M,GroupId:T}=m;let P;D===1?P=NA.getLocalConversation(`${u.CONV_C2C}${M}`):D===2&&(P=NA.getLocalConversation(`${u.CONV_GROUP}${T}`)),P&&(console.log(`${this._name}.handleConversationPinned conversationID:${P.conversationID} localPinned:${P.isPinned} remotePinned:${n}`),n&&!P.isPinned&&(P.isPinned=!0,E=!0),!n&&P.isPinned&&(P.isPinned=!1,E=!0))}),E&&NA.emitConversationListUpdate(!0)}pinConversation(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n,common:g,helper:{ChatError:u}}=this._core,{conversationID:E,isPinned:m}=s,D={code:0,data:{conversationID:E}},M=NA.getLocalConversation(E);if(M&&M.isPinned===m)return D;if(ks(E))return M&&(M.isPinned=m),NA.emitConversationListUpdate(!0),D;const T=`conversationID:${E} isPinned:${m}`;try{let P=null;if(Bt(E)?P={Type:1,To_Account:E.replace(n.CONV_C2C,"")}:ug(E)&&(P={Type:2,GroupId:E.replace(n.CONV_GROUP,"")}),yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{fromAccount:RA,operationType:kA,itemList:xA}=iA,LA={From_Account:RA,OperationType:kA,RecentContactItem:xA};return EA.common.buildAndSendPacket({servcmd:"recentcontact.top",data:LA})})}({fromAccount:g.getCurrentUserID(),operationType:m===!0?1:2,itemList:[P]},this._core)){if(M)M.isPinned!==m&&(M.isPinned=m);else{const iA=new Ct({conversationID:E,type:Bt(E)?n.CONV_C2C:n.CONV_GROUP,isPinned:m});NA.setLocalConversation(E,iA)}NA.emitConversationListUpdate(!0)}return Object.assign(Object.assign({},D),{successLog:{message:T}})}catch(P){const{errorCode:W,errorInfo:iA}=P;throw new u({functionName:"pinConversation",code:W,message:iA,moreMessage:T})}})}},Fe=new class{constructor(){this._name="DeleteConversation"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteConversation",context:this})}handleConversationDeleted(s){const{utils:{isArray:n}}=this._core;if(!n(s))return;const{OuterConstant:g}=this._core,u=[];s.forEach(E=>{const{Type:m,Peer_Account:D,GroupId:M}=E;m===1&&u.push(`${g.CONV_C2C}${D}`),m===2&&u.push(`${g.CONV_GROUP}${M}`)}),console.log(`${this._name}.handleConversationDeleted conversationIDList:${u}`),this._deleteLocalConversationList(u)}deleteConversation(s){return pA(this,void 0,void 0,function*(){const{utils:{isString:n}}=this._core;if(n(s))return this._deleteConversation({conversationIDList:[s],flag:ga.ONLY_CONVERSATIONID});const g=Object.assign({},s);return g.conversationIDList.length>100&&(g.conversationIDList=g.conversationIDList.slice(0,100)),this._deleteConversation(g)})}_deleteConversation(s){return pA(this,void 0,void 0,function*(){const{conversationIDList:n,clearHistoryMessage:g=!0,flag:u=0}=s,{helper:{ChatError:E}}=this._core,m=`conversationIDList:${n} clearHistoryMessage:${g}`;try{const D=yield Promise.all([this._deleteConversationFromLocal(n),this._deleteConversationFromServer(n,g)]),M=[...D[0],...D[1]];if(M.length===0)throw new this._core.helper.ChatError({code:Qa.CONV_NOT_FOUND});return{code:0,data:u===ga.ONLY_CONVERSATIONID?{conversationID:M[0]}:{conversationIDList:M},successLog:{message:m}}}catch(D){const{errorCode:M,errorInfo:T}=D;throw new E({code:M,message:T,moreMessage:m})}})}_deleteConversationFromLocal(s){const{OuterConstant:n}=this._core;return s.filter(g=>{var u;if(!NA.hasLocalConversation(g))return!1;const E=(u=NA.getLocalConversation(g))===null||u===void 0?void 0:u.type;return E!==n.CONV_GROUP||this._hasLocalGroup(g)?E===n.CONV_SYSTEM&&(this._deleteLocalConversation(g),!0):(this._deleteLocalConversation(g),!0)})}_deleteConversationFromServer(s,n){return pA(this,void 0,void 0,function*(){const{OuterConstant:g,common:u}=this._core,E={fromAccount:u.getCurrentUserID(),conversationList:[],clearHistoryMessage:n?1:0};if(s.forEach(D=>{var M;if(NA.hasLocalConversation(D)){const T=((M=NA.getLocalConversation(D))===null||M===void 0?void 0:M.type)||"",P=D.replace(T,"");T===g.CONV_C2C?E.conversationList.push({To_Account:P,Type:1}):T===g.CONV_GROUP&&this._hasLocalGroup(D)&&E.conversationList.push({ToGroupid:P,Type:2})}}),E.conversationList.length===0)return[];const m=yield function(D,M){return pA(this,void 0,void 0,function*(){const{fromAccount:T,conversationList:P,clearHistoryMessage:W}=D,iA={From_Account:T,ContactItem:P,ClearRamble:W};return M.common.buildAndSendPacket({servcmd:"recentcontact.batch_delete",data:iA})})}(E,this._core);if(m){const{ResultItem:D=[]}=m,M=[];return D.length>0&&D.forEach(T=>{if(T.ResultCode===0){const P=T.Type===1?`${g.CONV_C2C}${T.To_Account}`:`${g.CONV_GROUP}${T.ToGroupid}`;M.push(P)}}),this._deleteLocalConversationList(M),M}return[]})}_deleteLocalConversationList(s){let n=!1;s.forEach(g=>{NA.hasLocalConversation(g)&&(this._deleteLocalConversation(g,!1),n=!0)}),console.log(`${this._name}._deleteLocalConversationList isUpdate:${n}`),n&&NA.emitConversationListUpdate()}_deleteLocalConversation(s,n=!0){const g=NA.hasLocalConversation(s);console.log(`${this._name}._deleteLocalConversation conversationID:${s} has:${g}`),g&&(NA.deleteLocalConversation(s),this._deleteConversationLocalMessage(s),n&&NA.emitConversationListUpdate())}_hasLocalGroup(s){const{OuterConstant:{CONV_GROUP:n},appStore:{groupStore:g}}=this._core,u=s.replace(n,"");return!!g.getGroup(u)}_deleteConversationLocalMessage(s){console.log(`${this._name}._deleteConversationLocalMessage conversationID:${s}`),this._core.message.messageDataHandler.deleteConversationMessageList(s),this._core.message.messageHistory.completedHistoryConversations.delete(s)}},St=new class{constructor(){this._name="SetConversationDraft"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(s){return pA(this,void 0,void 0,function*(){const{conversationID:n,draftText:g}=s;if(console.log(`${this._name} conversationID:${n} draftText:${g}`),!NA.hasLocalConversation(n))throw new this._core.helper.ChatError({code:Qa.CONV_NOT_FOUND});const u=NA.getLocalConversation(n);return u?.setDraftText(g),NA.emitConversationListUpdate(),{code:0,data:{conversation:u}}})}},jt=new class{constructor(){this._name="SetC2CMessageRemindType"}init(s){this._core=s}set(s,n){return pA(this,void 0,void 0,function*(){s.length>30&&(console.warn(`${this._name}.set userIDList length:${s.length} exceeds limit 30`),s.splice(30));const g=function(){const{MSG_REMIND_ACPT_AND_NOTE:P,MSG_REMIND_DISCARD:W,MSG_REMIND_ACPT_NOT_NOTE:iA}=ho.core.OuterConstant;return{[P]:0,[W]:1,[iA]:2}}()[n],u=yield function(P,W){return pA(this,void 0,void 0,function*(){const{userIDList:iA,receiveMessageOption:EA}=P,RA={Peer_Account:iA,Mute_Notifications:EA};return W.common.buildAndSendPacket({servcmd:"openim.set_c2c_peer_mute_notifications",data:RA})})}({userIDList:s,receiveMessageOption:g},this._core),{ErrorList:E=[]}=u||{},m=[];E.forEach(P=>{const{Peer_Account:W,ErrorCode:iA}=P;m.push({userID:W,code:iA});const EA=s.indexOf(W);EA>-1&&s.splice(EA,1)});const D=[],M=[],{OuterConstant:T}=this._core;return s.forEach(P=>{M.push(`${T.CONV_C2C}${P}`),D.push({userID:P})}),NA.patchMessageRemindType(M,n),{code:0,data:{successUserIDList:D,failureUserIDList:m}}})}},ci=new class{constructor(){this._name="SetGroupMessageRemindType"}init(s){this._core=s}set(s,n){return pA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:g,isTopic:u},OuterConstant:E}=this._core;if(yield function(m,D){return pA(this,void 0,void 0,function*(){const{groupID:M,userID:T,receiveMessageOption:P}=m,W={GroupId:M,Member_Account:T,MsgFlag:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:W})})}({groupID:s,userID:g(),receiveMessageOption:n},this._core),!u(s)){const m=`${E.CONV_GROUP}${s}`;NA.patchMessageRemindType([m],n)}return{code:0,data:{groupID:s,messageRemindType:n}}})}},ft=new class{constructor(){this._name="SetMessageRemindType"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setMessageRemindType",context:this})}handleC2CMessageRemindTypeSync(s){const{helper:{isEmpty:n},OuterConstant:g,ssoLog:u}=this._core;s.forEach(E=>{const{MuteNotificationsSync:m}=E;if(!n(m)){const{To_Account:D,MuteNotifications:M}=m,T=D.map(W=>`${g.CONV_C2C}${W}`),P=Wi(M);u.debug(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${T} messageRemindType:${P}`),NA.patchMessageRemindType(T,P)}})}setMessageRemindType(s){return pA(this,void 0,void 0,function*(){const n="setMessageRemindType",{groupID:g,userIDList:u,messageRemindType:E}=s,{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;try{if(!D(g))return M.debug(`${this._name}.${n} groupID:${g} messageRemindType:${E}`),yield ci.set(g,E);if(!D(u))return M.debug(`${this._name}.${n} userIDList:${u} messageRemindType:${E}`),yield jt.set(u,E);throw new m.ChatError({functionName:n,message:"userIDList or groupID is required"})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:`groupID:${g} userIDList:${u} messageRemindType:${E}`})}})}},Bi=new class{init(s){s.ssoLog.debug("ConversationAction.init"),this._core=s,zA.init(s),we.init(s),Ie.init(s),Ge.init(s),ce.init(s),Fe.init(s),St.init(s),ft.init(s);const{notificationCenter:n,InnerEvent:{MESSAGE_PUSH:g,DESTROY:u}}=this._core,{InnerEventSubType:{CONV_MODIFIED:E,C2C_MESSAGE_READ_SYNC:m,GROUP_MESSAGE_READ_SYNC:D,C2C_REMIND_TYPE_SYNC:M}}=n;n.subscribeInnerEvent(g,E,this._onConversationModified,this),n.subscribeInnerEvent(g,m,this._onC2CMessageReadSync,this),n.subscribeInnerEvent(g,M,this._onC2CMessageRemindTypeSync,this),n.subscribeInnerEvent(g,D,this._onGroupMessageReadSync,this),n.subscribeInnerEvent(u,this._dispose,this)}_onConversationModified(s){const{constants:{ConvModifyPushType:n}}=this._core,{RecentContactMod:g=[]}=s;g.forEach(u=>{const{PushType:E}=u;if(E===n.CONV_DELETED){const{RecentContactList:m}=u.RecentContactDeleteItem;Fe.handleConversationDeleted(m)}if(E===n.CONV_PINED){const{RecentContactList:m}=u.RecentContactTopItem;ce.handleConversationPinned(m,!0)}if(E===n.CONV_UNPINED){const{RecentContactList:m}=u.RecentContactTopItem;ce.handleConversationPinned(m,!1)}})}_onC2CMessageReadSync(s){const{C2cNotifyMsgArray:n=[]}=s;Ge.handleC2CMessageReadSync(n)}_onC2CMessageRemindTypeSync(s){const{C2cNotifyMsgArray:n=[]}=s;ft.handleC2CMessageRemindTypeSync(n)}_onGroupMessageReadSync(s){const{GroupTips:n=[]}=s;Ge.handleGroupMessageReadSync(n)}_dispose(){const{notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n,DESTROY:g}}=this._core,{InnerEventSubType:{CONV_MODIFIED:u,C2C_MESSAGE_READ_SYNC:E,GROUP_MESSAGE_READ_SYNC:m,C2C_REMIND_TYPE_SYNC:D}}=s;s.unSubscribeInnerEvent(n,u,this._onConversationModified,this),s.unSubscribeInnerEvent(n,E,this._onC2CMessageReadSync,this),s.unSubscribeInnerEvent(n,D,this._onC2CMessageRemindTypeSync,this),s.unSubscribeInnerEvent(n,m,this._onGroupMessageReadSync,this),s.unSubscribeInnerEvent(g,this._dispose,this)}},Ao=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setAllReceiveMessageOpt",context:this})}setAllReceiveMessageOpt(s){return pA(this,void 0,void 0,function*(){try{const{OuterConstant:{MSG_REMIND_ACPT_NOT_NOTE:n}}=this._core,{messageRemindType:g=n,isRepeated:u=!0}=s,{startTime:E=0,endTime:m=0}=this._calcStartAndEndTime(s),D=yield function(M){return pA(this,void 0,void 0,function*(){const{common:T}=ho.core,{startTime:P,endTime:W,isRepeated:iA,messageRemindType:EA}=M,RA={StartTime:P,EndTime:W,IsRepeated:iA,Level:EA};return T.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_set_do_not_disturb",data:RA})})}({messageRemindType:this._getType(g),startTime:E,endTime:m,isRepeated:u?is.ON:is.OFF});return{code:0,data:{errorCode:D.ErrorCode,errorInfo:D.ErrorInfo}}}catch(n){oc("setAllReceiveMessageOpt",n)}})}_calcStartAndEndTime(s){const{startHour:n=0,startMinute:g=0,startSecond:u=0,duration:E=0,isRepeated:m=!0}=s,D=new Date,M=new Date(D.getFullYear(),D.getMonth(),D.getDate(),n,g,u),T=Math.round(M.getTime()/1e3);let P=T+E;return m&&E>=86400&&(P=T+86400),{startTime:T,endTime:P}}_getType(s){const{OuterConstant:n}=this._core;return{[n.MSG_REMIND_ACPT_AND_NOTE]:0,[n.MSG_REMIND_DISCARD]:1,[n.MSG_REMIND_ACPT_NOT_NOTE]:2}[s]}},Is=new class{init(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:u}=s;n.registerApi({apiName:"getAllReceiveMessageOpt",context:this}),g.subscribeInnerEvent(u.MESSAGE_PUSH,g.InnerEventSubType.ALL_RECEIVE_MESSAGE_OPTION,this.onAllReceiveMsgOptionNotify,this)}onAllReceiveMsgOptionNotify(s){const n=this._handleResult(s),{notificationCenter:g,OuterEvent:{ALL_RECEIVE_MESSAGE_OPT_UPDATED:u}}=this._core;g.emitOuterEvent(u,{name:u,data:n})}getAllReceiveMessageOpt(){return pA(this,void 0,void 0,function*(){try{const s=yield function(){return pA(this,void 0,void 0,function*(){const{common:n}=ho.core,g={To_Account:n.getCurrentUserID()};return n.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_get_do_not_disturb",data:g})})}();return{code:0,data:this._handleResult(s)}}catch(s){oc("getAllReceiveMessageOpt",s)}})}_handleResult(s){const{OuterConstant:n}=this._core,{MSG_REMIND_ACPT_AND_NOTE:g,MSG_REMIND_DISCARD:u,MSG_REMIND_ACPT_NOT_NOTE:E}=n,m={0:g,1:u,2:E},{Level:D,StartTime:M,EndTime:T,IsRepeated:P}=s;return{messageRemindType:m[D]||g,startTime:M,endTime:T,isRepeated:P===is.ON}}},Uo=new class{init(s){s.ssoLog.debug("ReceiveMessageOptions.init"),this._core=s,jt.init(s),ci.init(s),BA.init(s),yA.init(s),Ao.init(s),Is.init(s)}};const ii=s=>!Bt(s)&&!ug(s)&&!ks(s),Fr={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ii(s)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ii(s)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!ii(s)||"conversationID is invalid."},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},deleteConversation:[{key:"options",required:!0,rules:["string","object"],allowEmpty:!1,customValidator:s=>{const{core:{utils:{isArray:n,isObject:g,isString:u}}}=ho;if(!u(s)&&!g(s))return"options is String or Object.";if(u(s)&&ii(s))return"conversationID is invalid.";if(g(s)){if(!n(s.conversationIDList))return"conversationIDList is not Array.";if(s.conversationIDList.length===0)return"conversationIDList is empty.";if(s.conversationIDList.some(E=>{if(ii(E))return!0}))return"conversationIDList includes invalid conversationID.";if(s.clearHistoryMessage&&typeof s.clearHistoryMessage!="boolean")return"clearHistoryMessage is not Boolean."}return!0}}],setConversationDraft:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:s=>!(!Bt(s)&&!ug(s))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}},setAllReceiveMessageOpt:{messageRemindType:{required:!1,rules:["string"],allowEmpty:!0},startHour:{required:!1,rules:["number"],allowEmpty:!0},startMinute:{required:!1,rules:["number"],allowEmpty:!0},startSecond:{required:!1,rules:["number"],allowEmpty:!0},duration:{required:!1,rules:["number"],allowEmpty:!0},isRepeated:{required:!1,rules:["boolean"],allowEmpty:!0}}},Zo={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0,getAllReceiveMessageOpt:!0,setAllReceiveMessageOpt:!0};var jn=new class{constructor(){this.name="Conversation"}install(s){ho.init(s),Bi.init(s),Uo.init(s),NA.init(s),s.helper.registerValidateConfig({auth:Zo,params:Fr})}};const Wn=new class{init(s){this.core=s}},ta="AVChatRoom",qr="AV_HISTORY_MSG",sc="GRP_COUNTER",Hu="Set",mm="Increase",Ri="Decrease",oi=0,yo=1,on=2,os=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Eg=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Ol=["Role","JoinTime","MsgFlag","MsgSeq"],fd=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],Lc=0,Mr=1,SI="notStart",su="resolved",Og="rejected",nu=10018,MI=11e3,Uc=2,qu=["Owner","Admin","Member"],fm=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],ym=0,Dm=1,Sm=2,gD=4,cD=1,kv=2,lD=3,ID=4,Lv=5,dT=1,yd=0,CT=4,uD=6,hT=400,ED=300,BT={from:!0,groupID:!0,groupName:!0,to:!0},Uv={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},QT=2,Fv=4,pT=5,mT=7,dD=8,CD=15,TQ=20,Mm=21,vm=2600,Dd=2602,fT=2603,yT=2620,Rm=2621,hD=2623,Ih=2660,DT=2661,ST=2681,wm=2683,Ov=2684,BD=2685,_m=2687,Pv=3122,MT=10018,vT={0:"DisableInvite",1:"NeedPermission",2:"FreeAccess"},xv=s=>s===Wn.core.OuterConstant.GRP_PUBLIC,Sd=s=>s===Wn.core.OuterConstant.GRP_AVCHATROOM,Tm=(s,n)=>{const{isArray:g}=Wn.core.utils;if(!g(s)||!g(n))return!1;let u=!1;return n.forEach(({key:E,value:m})=>{const D=s.find(M=>M.key===E);D?D.value!==m&&(D.value=m,u=!0):(s.push({key:E,value:m}),u=!0)}),u},Md=s=>{const n=[];if(!s)return n;for(let g=0,u=s.length;g<u;g++){const{Key:E,Value:m}=s[g];n.push({key:E,value:m})}return n},VE=s=>{const n=[];for(let g=0,u=s.length;g<u;g++){const{key:E,value:m}=s[g];n.push({Key:E,Value:m})}return n};function Nm(s,n){const{helper:g}=Wn.core;if(!g.checkBusinessCapabilityBits(n))throw new g.ChatError({functionName:s,code:Pv,replacement1:s})}function yC(s,n){const{helper:g}=Wn.core,u=new g.ChatError({functionName:s,code:n?.errorCode||n?.code,message:n?.errorInfo||n?.message});throw console.error(`${s} fail:`,u),u}const uh=["groupID","name","avatar","type","introduction","notification","ownerID","selfInfo","createTime","infoSequence","lastInfoTime","lastMessage","nextMessageSeq","memberCount","maxMemberCount","memberList","joinOption","groupCustomField","muteAllMembers","isSupportTopic","inviteOption","_lastRevokedTime","_groupAtInfoList"];class Ku{constructor(n){this.groupID="",this.name="",this.avatar="",this.type="",this.introduction="",this.notification="",this.ownerID="",this.createTime=0,this.selfInfo={messageRemindType:"",joinTime:"",nameCard:"",role:"",userID:"",memberCustomField:void 0,readedSequence:0,excludedUnreadSequenceList:void 0},this.lastMessage={lastTime:0,lastSequence:0,fromAccount:"",messageForShow:""},this.nextMessageSeq=0,this.memberCount=0,this.maxMemberCount=0,this.joinOption="",this.inviteOption="",this.groupCustomField=[],this.muteAllMembers=!1,this.isSupportTopic=!1,this._lastRevokedTime=0,this._groupAtInfoList=[],this._initGroup(n)}_initGroup(n){const{utils:{isString:g}}=Wn.core;for(const u in n)uh.indexOf(u)<0||(u!=="selfInfo"?u!=="isSupportTopic"?u==="muteAllMembers"&&g(n[u])?this.muteAllMembers=n[u]==="On":this[u]=n[u]:this.isSupportTopic=n[u]===1:this.updateSelfInfo(n[u]))}updateGroup(n){const{utils:{isArray:g,isUndefined:u,isNumber:E,isString:m},common:{deepMerge:D}}=Wn.core;n.appid=void 0,n.grossTopicNextMsgSeq=void 0,n.selfInfo&&(n.selfInfo.grossTopicReadSeq=void 0);const M=JSON.parse(JSON.stringify(n));M.lastMsgTime&&(this.lastMessage.lastTime=M.lastMsgTime),m(M.muteAllMembers)&&(M.muteAllMembers=M.muteAllMembers==="On"),M.groupCustomField&&Tm(this.groupCustomField,M.groupCustomField),u(M.isSupportTopic)||(this.isSupportTopic=E(M.isSupportTopic)?M.isSupportTopic===1:M.isSupportTopic),D(this,M,["members","errorCode","lastMsgTime","groupCustomField","isSupportTopic"]),g(M.members)&&M.members.length>0&&M.members.forEach(T=>{T.userID===this.selfInfo.userID&&D(this.selfInfo,T,["sequence"])})}updateSelfInfo(n){const{nameCard:g,joinTime:u,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M}=n,{common:{deepMerge:T}}=Wn.core;T(this.selfInfo,{nameCard:g,joinTime:u,role:E,messageRemindType:m,readedSequence:D,excludedUnreadSequenceList:M},[],["",null,void 0,0,NaN])}setSelfNameCard(n){this.selfInfo.nameCard=n}}var Yi=new class{constructor(){this._name="GroupDataHandler"}init(s){this._core=s;const{appStore:{groupStore:n}}=s;this._groupMap=n.getGroupMap()}hasLocalGroup(s){return this._groupMap.has(s)}getLocalGroup(s){return this._groupMap.get(s)}updateLocalGroup(s){const{common:{getCurrentUserID:n}}=this._core;let g;s.forEach(E=>{var m;g=E.groupID,this.hasLocalGroup(g)?(m=this.getLocalGroup(g))===null||m===void 0||m.updateGroup(E):(this._groupMap.set(g,new Ku(E)),this._clearGroupLocalMessage(g))});const u=n();for(const[,E]of this._groupMap)E.selfInfo.userID=u,E.selfInfo.role==="Owner"&&(E.ownerID=u)}deleteLocalGroup(s){this._groupMap.delete(s)}getLocalGroupList(){const{OuterConstant:{GRP_ROOM:s,GRP_LIVE:n}}=this._core;return[...this._groupMap.values()].filter(g=>{const{type:u}=g;return u!==s&&u!==n})}clearLocalGroup(){this._groupMap.clear()}emitGroupListUpdate(){const s=this.getLocalGroupList(),{OuterEvent:{GROUP_LIST_UPDATED:n},notificationCenter:g}=this._core;g.emitOuterEvent(n,{name:n,data:s})}updateConversationGroupProfile(s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core,u=`${g}${s}`,E=n.getConversation(u);if(E){const m=this.getLocalGroup(s);E.setProfileCompleted(),n.updateConversation(u,{groupProfile:m})}}reset(){this.clearLocalGroup()}_clearGroupLocalMessage(s){const{message:{messageHistory:n,messageDataHandler:g},OuterConstant:{CONV_GROUP:u},ssoLog:E}=this._core;E.debug("_clearGroupLocalMessage",`groupID:${s}`);const m=`${u}${s}`;n.completedHistoryConversations.delete(m),g.deleteConversationMessageList(m)}};function Gm(s,n){return pA(this,void 0,void 0,function*(){const{type:g,limit:u,offset:E,supportTopic:m=0,memberAccount:D,responseFilter:M}=s,T={Type:g,Limit:u,Offset:E,Member_Account:D,ResponseFilter:M,SupportTopic:m,NeedAppDefineData:1};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_joined_group_list",data:T})})}const dn=function(s,n){return{code:0,data:s||{},successLog:n}};var Yv=new class{constructor(){this._name="GetGroupList",this._pagingStatus=SI,this.PAGING_GRP_COUNT_LIMIT=200}init(s){this._core=s;const{helper:n,constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:u}}=s;n.registerApi({apiName:"getGroupList",context:this}),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_LOGIN,u.GROUP_LIST_SYNC,this._syncGroupList,this)}getGroupList(){return pA(this,arguments,void 0,function*(s=!1){if(s){const g=[];return yield this._pagingGetJoinedCommunityList({limit:this.PAGING_GRP_COUNT_LIMIT,offset:0,groupList:g}),Yi.updateLocalGroup(g),Yi.getLocalGroupList()}if(this._core.ssoLog.debug("getGroupList",`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===Og||this._pagingStatus===SI)return this._syncGroupList().then(()=>{const g=Yi.getLocalGroupList();return dn({groupList:g,isSyncCompleted:this._isSyncCompleted()})}).catch(g=>{throw g});const n=Yi.getLocalGroupList();return dn({groupList:n,isSyncCompleted:this._isSyncCompleted()},{message:`return group count:${n.length}`})})}_syncGroupList(){return pA(this,void 0,void 0,function*(){this._pagingStatus===SI&&Yi.clearLocalGroup();const s=this.PAGING_GRP_COUNT_LIMIT,n=[];try{yield this._pagingGetGroupList({limit:s,offset:0,groupList:n}),this._pagingStatus=su,this._groupListTreeShaking(n),Yi.updateLocalGroup(n);const g=Yi.getLocalGroupList();return this._core.ssoLog.debug("_syncGroupList",`${this._name}._syncGroupList ok, count:${g.length}`),Yi.emitGroupListUpdate(),g}catch(g){throw this._pagingStatus=Og,g}})}_pagingGetGroupList(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{isCommunityRelay:g=!1,groupList:u}=s;let E,{limit:m,offset:D}=s;const M=[...os];g&&(E=this._core.OuterConstant.GRP_COMMUNITY,M.push("AtInfoList"));try{const T=yield Gm({type:E,limit:m,offset:D,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:M,SelfInfoFilter:[...Ol]}},this._core),{GroupIdList:P=[],TotalCount:W=0}=T||{},iA=this._convertGroupKey(P);u.push(...iA);const EA=D+m,RA=!(W>EA),kA=`offset:${D} limit:${m} total:${W} isCompleted:${RA} current:${u.length} isCommunityRelay:${g}`;return n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. ${kA}`),g?RA?u:(D=EA,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:u})):RA?(n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList start to get community list`),D=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:m,offset:D,groupList:u})):(D=EA,this._pagingGetGroupList({limit:m,offset:D,groupList:u}))}catch(T){if(T.ErrorCode===nu)return n.warn("_pagingGetGroupList",`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetGroupList({isCommunityRelay:g,limit:m,offset:D,groupList:u});if(g)return T.code===MI&&n.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. community unavailable`),u;throw T}})}_pagingGetJoinedCommunityList(s){return pA(this,void 0,void 0,function*(){const{common:{getCurrentUserID:n},OuterConstant:g,ssoLog:u}=this._core,{groupList:E}=s;let{limit:m,offset:D}=s;try{const M=yield Gm({limit:m,offset:D,type:g.GRP_COMMUNITY,memberAccount:n(),supportTopic:1,responseFilter:{GroupBaseInfoFilter:[...os],SelfInfoFilter:[...Ol]}},this._core),{GroupIdList:T=[],TotalCount:P=0}=M||{},W=this._convertGroupKey(T);E.push(...W);const iA=D+m,EA=!(P>iA),RA=`offset:${D} limit:${m} total:${P} isCompleted:${EA} current:${E.length}`;return u.debug("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList ok. ${RA}`),EA?E:(D=iA,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E}))}catch(M){if(M.code===MT)return u.warn("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList response size exceeds the limit, request count:${m}`),m=50,this._pagingGetJoinedCommunityList({limit:m,offset:D,groupList:E});throw M}})}_groupListTreeShaking(s){const n=new Map([...Yi.getLocalGroupList()]);for(let u=0,E=s.length;u<E;u++)n.delete(s[u].groupID);const g=[...n.keys()];for(let u=0,E=g.length;u<E;u++)Yi.deleteLocalGroup(g[u])}_isSyncCompleted(){return this._pagingStatus===su}_convertGroupKey(s){const n=[];for(let g=0,u=s.length;g<u;g++){const{AppDefinedData:E,ApplyJoinOption:m,CreateTime:D,FaceUrl:M,GroupId:T,Introduction:P,InviteJoinOption:W,LastInfoTime:iA,LastMsgTime:EA,MemberNum:RA,MaxMemberNum:kA,MuteAllMember:xA,Name:LA,NextMsgSeq:SA,Notification:OA,Owner_Account:JA,Type:ae,LastRecallTime:re,SelfInfo:_i,AtInfoList:Ti=[],SupportTopic:Lt}=s[g],Ni=Md(E),cs=this._convertSelfInfo(_i),Me=this._convertAtInfoList(T,Ti);n.push({groupCustomField:Ni,joinOption:m,createTime:D,avatar:M,groupID:T,introduction:P,inviteOption:W,lastInfoTime:iA,lastMsgTime:EA,memberCount:RA,maxMemberCount:kA,muteAllMembers:xA,name:LA,nextMessageSeq:SA,notification:OA,ownerID:JA,type:ae,selfInfo:cs,_lastRevokedTime:re,_groupAtInfoList:Me,isSupportTopic:Lt})}return n}_convertSelfInfo(s){const{JoinTime:n,MsgFlag:g,MsgSeq:u,NoUnreadSeqList:E,Role:m}=s;return{joinTime:n,messageRemindType:g,readedSequence:u,excludedUnreadSequenceList:E,role:m}}_convertAtInfoList(s,n){if(n.length===0)return[];const g=[];return n.forEach(u=>{const{AtFlagList:E,AtMsgSeq:m,From_Account:D}=u;g.push({groupID:s,groupAtType:E,sequence:m,from:D})}),g}},ju=new class{constructor(){this._name="CreateGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"createGroup",context:this})}createGroup(s){return pA(this,void 0,void 0,function*(){var n;this._preCheckParams(s);const{helper:{ChatError:g}}=this._core;try{const{utils:{isEmpty:u},common:{getCurrentUserID:E},OuterConstant:{GRP_AVCHATROOM:m}}=this._core,D=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{name:RA,type:kA,groupID:xA,introduction:LA,notification:SA,avatar:OA,maxMemberNum:JA,joinOption:ae,inviteOption:re,memberList:_i,groupCustomField:Ti,isSupportTopic:Lt}=iA;let Ni,cs;_i&&(Ni=_i.map(mt=>{const{userID:UA,memberCustomField:si}=mt;return{Member_Account:UA,AppMemberDefinedData:si?VE(si):void 0}})),Ti&&(cs=VE(Ti));const Me={Name:RA,Type:kA,GroupId:xA,Introduction:LA,Notification:SA,FaceUrl:OA,MaxMemberCount:JA,ApplyJoinOption:ae,InviteJoinOption:re,MemberList:Ni,AppDefinedData:cs,SupportTopic:Lt,webPushFlag:1};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.create_group",data:Me})})}(Object.assign(Object.assign({},s),{ownerID:E()}),this._core),{GroupId:M,OverJoinedGroupLimit_Account:T=[]}=D||{},P=`${this._name}.createGroup ok, type:${s.type} groupID:${M} overLimitUserIDList:${T}`;if(u(s.memberList)||u(T)||(s.memberList=(n=s.memberList)===null||n===void 0?void 0:n.filter(iA=>T.includes(iA.userID))),s.type===m)return dn({group:new Ku(Object.assign(Object.assign({},s),{groupID:M}))},{message:P});Yi.updateLocalGroup([Object.assign(Object.assign({},s),{groupID:M})]);const W=Yi.getLocalGroup(M);return this._notNeedSendCustomMessage(s)||(this._sendCustomMessage(M,s.type),Yi.emitGroupListUpdate()),dn({group:W},{message:P})}catch(u){const{errorCode:E,errorInfo:m}=u;throw new g({functionName:"createGroup",code:E,message:m,moreMessage:` groupID:${s.groupID}`})}})}_preCheckParams(s){const{type:n,groupID:g}=s,{utils:{isEmpty:u,isUndefined:E},common:{isCommunity:m}}=this._core,D=!u(g);if(!(()=>{const{GRP_PUBLIC:M,GRP_WORK:T,GRP_MEETING:P,GRP_AVCHATROOM:W,GRP_COMMUNITY:iA}=Wn.core.OuterConstant;return[M,T,P,W,iA]})().includes(n))throw new this._core.helper.ChatError({code:vm});if(!m({type:n})){if(D&&m({groupID:g}))throw new this._core.helper.ChatError({code:Dd});E(s.isSupportTopic)||(s.isSupportTopic=void 0)}if(this._canIUseMemberList(n)||E(s.memberList)||(s.memberList=void 0),this._canIUseJoinOption(n)||E(s.joinOption)||(s.joinOption=void 0),m({type:n})){if(D&&!m({groupID:g}))throw new this._core.helper.ChatError({code:Dd});s.isSupportTopic=this._canIUseTopic(s)?1:0}}_canIUseMemberList(s){return!Sd(s)}_canIUseJoinOption(s){return xv(s)||this._core.common.isCommunity({type:s})}_canIUseTopic(s){const{isSupportTopic:n}=s;return n===!0}_notNeedSendCustomMessage(s){const{type:n,isSupportTopic:g}=s,{OuterConstant:{GRP_AVCHATROOM:u,GRP_COMMUNITY:E}}=this._core;return n===u||n===E&&g===1}_sendCustomMessage(s,n){var g,u,E,m,D,M;const{OuterConstant:T,common:{t:P}}=this._core;let W=P("CREATE_GROUP"),iA=Lc;n===T.GRP_COMMUNITY&&(W=P("CREATE_COMMUNITY"),iA=Mr);const EA={to:s,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:W,cmd:iA,opUser:this._core.store.get("login").userId,version:4})}},RA=(E=(u=(g=this._core)===null||g===void 0?void 0:g.message)===null||u===void 0?void 0:u.messageFactory)===null||E===void 0?void 0:E.createCustomMessage(EA);(M=(D=(m=this._core)===null||m===void 0?void 0:m.message)===null||D===void 0?void 0:D.messageSender)===null||M===void 0||M.sendMessage(RA,{})}},zs=new class{constructor(){this._name="AttributesDataHandler",this._groupAttributesCache=new Map,this._groupAttributesCacheValuesCopy={}}init(s){this._core=s;const{helper:n,constants:g}=s;n.registerWorkflowStep(g.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,g.WORKFLOW_STEP.GROUP_ATTRIBUTE_CACHE_CLEAR,this.clearLocalMainSequence,this)}clearLocalMainSequence(){this._groupAttributesCache.forEach(s=>{s.localMainSequence=0})}isGroupAttributesUpdated(s){const{elements:{newGroupProfile:n}}=s,{utils:{isEmpty:g,isUndefined:u}}=this._core;return!u(n)&&!g(n.groupAttributeOption)}handleGroupAttributesUpdated(s){const{groupID:n,groupAttributeOption:g}=s,{serverMainSequence:u,groupAttributeList:E=[],operation:m}=g;this._core.ssoLog.debug("handleGroupAttributesUpdated",`${this._name}.handleGroupAttributesUpdated groupID:${n} operation:${m}`);const{utils:{isUndefined:D}}=this._core;D(m)||(this.refreshGroupAttributesCache({groupID:n,serverMainSequence:u,groupAttributeList:E,operation:m}),this.emitGroupAttributesUpdated(n))}initGroupAttributesCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupAttributesCache.set(n,{lastUpdateTime:0,localMainSequence:0,serverMainSequence:0,avChatRoomKey:g,values:new Map}),this._core.ssoLog.debug("initGroupAttributesCache",`${this._name}.initGroupAttributesCache. groupID:${n} avChatRoomKey:${g}`)}hasGroupAttributesCache(s){return this._groupAttributesCache.has(s)}getGroupAttributesCache(s){return this.hasGroupAttributesCache(s)||this.initGroupAttributesCache({groupID:s}),this._groupAttributesCache.get(s)}deleteGroupAttributesCache(s){this.hasGroupAttributesCache(s)&&this._groupAttributesCache.delete(s)}refreshGroupAttributesCache(s){const{groupID:n,serverMainSequence:g,groupAttributeList:u,operation:E}=s;if(this.hasGroupAttributesCache(n)){const m=this.getGroupAttributesCache(n),{localMainSequence:D}=m;E!==Lv&&g-D!==1||(m.serverMainSequence=g,m.localMainSequence=g,m.lastUpdateTime=Date.now(),this._updateGroupAttributesCacheValues({groupAttributes:m,groupAttributeList:u,operation:E})),g-D>1&&(m.serverMainSequence=g),this._groupAttributesCache.set(n,m),this._core.ssoLog.debug("refreshGroupAttributesCache",`${this._name}.refreshGroupAttributesCache. operation:${E} localMainSequence:${D} serverMainSequence:${g}`)}}_updateGroupAttributesCacheValues(s){const{groupAttributes:n,groupAttributeList:g=[],operation:u}=s;u!==lD?u!==ID?(u===cD&&n.values.clear(),g.forEach(E=>{const{key:m,value:D,sequence:M}=E;n.values.set(m,{value:D,sequence:M})})):g.forEach(E=>{n.values.delete(E.key)}):n.values.clear()}getGroupAttributesCacheValues(s){var n;const{groupID:g,keyList:u=[]}=s,E={};if(this.hasGroupAttributesCache(g)){const{values:m}=this.getGroupAttributesCache(g);if(u.length===0){for(const D of m.keys())E[D]=((n=m.get(D))===null||n===void 0?void 0:n.value)||"";return E}return u.forEach(D=>{var M;m.has(D)&&(E[D]=((M=m.get(D))===null||M===void 0?void 0:M.value)||"")}),E}return E}saveGroupAttributesCacheValuesCopy(s){this._groupAttributesCacheValuesCopy=this.getGroupAttributesCacheValues({groupID:s})}emitGroupAttributesUpdated(s){var n,g;const{OuterConstant:{GRP_ROOM:u,GRP_LIVE:E}}=this._core,m=this.getGroupAttributesCacheValues({groupID:s}),D=this._core.appStore.groupStore.getGroup(s),{updatedKeyList:M,deletedKeyList:T}=this._computeValuesChangedData(m);M.length===0&&T.length===0||([u,E].includes(D.type)?(this._core.ssoLog.debug("RICH_STATUS_CHANGED",`${this._name}.emitRichStatusChanged update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(n=this._core)===null||n===void 0?void 0:n.OuterEvent.RICH_STATUS_CHANGED,data:{groupID:s,richStatus:m,updatedKeyList:M,deletedKeyList:T}})):(this._core.ssoLog.debug("emitGroupAttributesUpdated",`${this._name}.emitGroupAttributesUpdated update count:${M.length}, delete count:${T.length}`),this._emitEvent({name:(g=this._core)===null||g===void 0?void 0:g.OuterEvent.GROUP_ATTRIBUTES_UPDATED,data:{groupID:s,groupAttributes:m,updatedKeyList:M,deletedKeyList:T}})))}_computeValuesChangedData(s){const{utils:{isUndefined:n}}=this._core,g=[],u=[];return Object.keys(s).forEach(E=>{s[E]!==this._groupAttributesCacheValuesCopy[E]&&g.push(E)}),Object.keys(this._groupAttributesCacheValuesCopy).forEach(E=>{n(s[E])&&u.push(E)}),this._groupAttributesCacheValuesCopy={},{updatedKeyList:g,deletedKeyList:u}}_emitEvent(s){var n;(n=this._core)===null||n===void 0||n.notificationCenter.emitOuterEvent(s.name,s)}convertKeyValueMapToList(s){const n=[];return Object.keys(s).forEach(g=>{n.push({key:g,value:s[g]})}),n}reset(){this._groupAttributesCache.clear(),this._groupAttributesCacheValuesCopy={}}},Eh=new class{constructor(){this._name="DismissGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}dismissGroup(s){return pA(this,void 0,void 0,function*(){const{helper:{ChatError:n}}=this._core;try{yield function(u,E){return pA(this,void 0,void 0,function*(){const m={GroupId:u};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.destroy_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:s})}catch(g){const{errorCode:u,errorInfo:E}=g;throw new n({functionName:"dismissGroup",code:u,message:E})}})}},Pl=new class{constructor(){this._name="GetGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupCustomFieldFilter:g}=s,u={groupIDList:[n],responseFilter:{GroupBaseInfoFilter:[...os],AppDefinedDataFilter_Group:g,MemberInfoFilter:[...fd]}},{helper:{ChatError:E}}=this._core;try{const m=yield this.getGroupProfileAdvance(u),{successGroupList:D,failureGroupList:M}=m;if(M.length>0)throw M[0];let T;return!Yi.hasLocalGroup(n)&&Sd(D[0].type)?T=new Ku(D[0]):(Yi.updateLocalGroup(D),T=Yi.getLocalGroup(n)),T.isSupportTopic||Yi.updateConversationGroupProfile(n),dn({group:T},{message:`groupID:${n}`})}catch(m){const{code:D,message:M}=m;throw new E({functionName:"getGroupProfile",code:D,message:M})}})}getGroupProfileAdvance(s){return pA(this,void 0,void 0,function*(){const{groupIDList:n}=s,{common:{isCommunity:g}}=this._core,u=n.filter(T=>!g({groupID:T})),E=n.filter(T=>g({groupID:T}));u.length>50&&(u.length=50),E.length>50&&(E.length=50);const m=yield Promise.all([this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:u})),this._getGroupProfileAdvance(Object.assign(Object.assign({},s),{groupIDList:E,isCommunityProfile:!0}))]),D=[],M=[];return m.forEach(T=>{D.push(...T.successGroupList),M.push(...T.failureGroupList)}),{successGroupList:D,failureGroupList:M}})}_getGroupProfileAdvance(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{isUndefined:g}}=this._core,{isCommunityProfile:u=!1}=s,E=Do(s,["isCommunityProfile"]);if(E.groupIDList.length===0)return{successGroupList:[],failureGroupList:[]};try{const m=yield function(W,iA){return pA(this,void 0,void 0,function*(){const{groupIDList:EA,responseFilter:RA}=W,kA={GroupIdList:EA,ResponseFilter:RA};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:kA})})}(E,this._core),{GroupInfo:D=[]}=m||{},M=this._convertGroupProfileKey(D),T=M.filter(W=>g(W.errorCode)||W.errorCode===0),P=M.filter(W=>W.errorCode&&W.errorCode!==0).map(W=>({code:W.errorCode,message:W.errorInfo,data:{groupID:W.groupID}}));return n.debug("_getGroupProfileAdvance",`${this._name}._getGroupProfileAdvance ok, groupID:${E.groupIDList.join(",")}`),{successGroupList:T,failureGroupList:P}}catch(m){if(u)return{successGroupList:[],failureGroupList:[]};throw m}})}_convertGroupProfileKey(s){const n=[];for(let g=0,u=s.length;g<u;g++){const{AppDefinedData:E,ApplyJoinOption:m,CreateTime:D,FaceUrl:M,GroupId:T,InfoSeq:P,Introduction:W,InviteJoinOption:iA,LastInfoTime:EA,LastMsgTime:RA,MaxMemberNum:kA,MemberNum:xA,MuteAllMember:LA,Name:SA,NextMsgSeq:OA,Notification:JA,Owner_Account:ae,ShutUpAllMember:re,ShutUpUntil:_i,Type:Ti,MemberList:Lt,ErrorCode:Ni,ErrorInfo:cs}=s[g],Me=Md(E),mt=this._convertMembers(Lt);n.push({groupCustomField:Me,joinOption:m,createTime:D,avatar:M,groupID:T,infoSequence:P,introduction:W,inviteOption:iA,lastInfoTime:EA,lastMsgTime:RA,maxMemberCount:kA,memberCount:xA,muteAllMembers:LA,name:SA,nextMessageSeq:OA,notification:JA,ownerID:ae,shutUpAllMember:re,muteUntil:_i,type:Ti,members:mt,errorCode:Ni,errorInfo:cs})}return n}_convertMembers(s){if(!s)return[];const n=[];for(let g=0,u=s.length;g<u;g++){const{AppMemberDefinedData:E,JoinTime:m,Member_Account:D,MsgFlag:M,MsgSeq:T,NameCard:P,Role:W}=s[g],iA=Md(E);n.push({memberCustomField:iA,joinTime:m,userID:D,messageRemindType:M,sequence:T,nameCard:P,role:W})}return n}},nc=new class{constructor(){this._groupCountersMap=new Map}init(s){this._core=s}getLocalGroupCounters(s){return this._hasLocalGroupCounters(s)||this.initGroupCountersCache({groupID:s}),this._groupCountersMap.get(s)}updateLocalGroupCounters(s){const{groupID:n,counterList:g=[],groupCounterSeq:u}=s;if(this._hasLocalGroupCounters(n)){const{counters:E,avChatRoomKey:m,groupCounterSeq:D}=this.getLocalGroupCounters(n);if(u>0&&u<D)return;g.forEach(M=>{const{Key:T,Value:P=0}=M;E.set(T,P)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:u,counters:E,avChatRoomKey:m})}}initGroupCountersCache(s){const{groupID:n,avChatRoomKey:g}=s;this._groupCountersMap.set(n,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:g})}getLocalCounters(s,n){const g={};if(!this._hasLocalGroupCounters(s))return g;const{counters:u}=this.getLocalGroupCounters(s);if(n.length>0)n.forEach(E=>{u.has(E)&&(g[E]=u.get(E))});else for(const E of u.keys())g[E]=u.get(E);return g}deleteLocalGroupCounters(s){const{groupID:n,counterList:g=[],groupCounterSeq:u}=s;if(this._hasLocalGroupCounters(n)){const{counters:E,avChatRoomKey:m}=this.getLocalGroupCounters(n);g.forEach(D=>{E.delete(D.key)}),this._groupCountersMap.set(n,{lastUpdateTime:Date.now(),groupCounterSeq:u,counters:E,avChatRoomKey:m})}}setGroupCounters(s,n){if(!this._hasLocalGroupCounters(s))return;const g=this.getLocalGroupCounters(s),{counters:u}=g;let E=!1;Object.entries(n).forEach(([m,D])=>{u.has(m)&&u.get(m)!==D&&(u.set(m,D),E=!0)}),E&&this._groupCountersMap.set(s,Object.assign(Object.assign({},g),{lastUpdateTime:Date.now(),counters:u}))}_hasLocalGroupCounters(s){return this._groupCountersMap.has(s)}reset(){this._groupCountersMap.clear()}},JE=new class{constructor(){this._name="JoinGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}joinGroup(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{helper:{ChatError:g},OuterConstant:u,ssoLog:E}=this._core;try{if(Yi.hasLocalGroup(n))try{return yield Pl.getGroupProfile({groupID:n}),dn({status:u.JOIN_STATUS_ALREADY_IN_GROUP,group:Yi.getLocalGroup(n)},{message:`groupID:${n} joinedStatus:${u.JOIN_STATUS_ALREADY_IN_GROUP}`})}catch{return E.warn("joinGroup",`${this._name}.joinGroup ${n} was unjoined, start to join!`),Yi.deleteLocalGroup(n),yield this._applyJoinGroup(s)}return yield this._applyJoinGroup(s)}catch(m){const{errorCode:D,errorInfo:M}=m;throw new g({functionName:"joinGroup",code:D,message:M,moreMessage:`groupID:${n}`})}})}_applyJoinGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n,helper:g,ssoLog:u}=this._core,{groupID:E}=s,m=Object.assign({},s),D=g.checkBusinessCapabilityBits(qr);D&&(m.historyMessageFlag=1);const M=yield function(SA,OA){return pA(this,void 0,void 0,function*(){const{groupID:JA,applyMessage:ae,historyMessageFlag:re}=SA,_i={GroupId:JA,ApplyMsg:ae,HugeGroupHistoryMsgFlag:re};return OA.common.buildAndSendPacket({servcmd:"group_open_http_svc.apply_join_group",data:_i})})}(m,this._core),{Type:T,JoinedStatus:P,LongPollingKey:W,StartSeq:iA,HugeGroupFlag:EA,AVChatRoomKey:RA,RspMsgList:kA=[]}=M||{},xA=`groupID:${E} joinedStatus:${P} longPollingKey:${W} startSeq:${iA} avChatRoomFlag:${EA} canGetAVChatRoomHistoryMsg:${D}, historyMessageCount:${kA.length}`;u.debug("_applyJoinGroup",`${this._name}._applyJoinGroup ok, ${xA}`);let LA=new Ku({groupID:E,type:T});if(P===n.JOIN_STATUS_WAIT_APPROVAL)return dn({status:n.JOIN_STATUS_WAIT_APPROVAL,group:LA});if(P===n.JOIN_STATUS_SUCCESS){try{LA=(yield Pl.getGroupProfile({groupID:E})).data.group}catch(SA){u.warn("_applyJoinGroup",`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${E}, errorCode:${SA?.code}`)}return this._handleJoinResult({group:LA,avChatRoomFlag:EA,longPollingKey:W,startSequence:iA,avChatRoomKey:RA,historyMessageList:kA})}throw new this._core.helper.ChatError({code:Ih})})}_handleJoinResult(s){const{group:n,avChatRoomFlag:g,avChatRoomKey:u}=s;return g===1?(zs.initGroupAttributesCache({groupID:n.groupID,avChatRoomKey:u}),nc.initGroupCountersCache({groupID:n.groupID,avChatRoomKey:u}),dn(s)):(Yi.updateLocalGroup([n]),Yi.emitGroupListUpdate(),dn({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:n},{message:`groupID:${n.groupID}`}))}},NQ=new class{constructor(){this._name="QuitGroup"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}quitGroup(s){return pA(this,void 0,void 0,function*(){if(!Yi.hasLocalGroup(s))throw new this._core.helper.ChatError({code:hD});const{helper:{ChatError:n}}=this._core;try{yield function(u,E){return pA(this,void 0,void 0,function*(){const m={GroupId:u};return E.common.buildAndSendPacket({servcmd:"group_open_http_svc.quit_group",data:m})})}(s,this._core);const{type:g}=Yi.getLocalGroup(s);return Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate(),zs.deleteGroupAttributesCache(s),dn({groupID:s,type:g},{message:`groupID:${s}`})}catch(g){const{errorCode:u,errorInfo:E}=g;throw new n({functionName:"quitGroup",code:u,message:E,moreMessage:`groupID:${s}`})}})}},cB=new class{constructor(){this._name="SearchGroup"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(s){return pA(this,void 0,void 0,function*(){try{const n=yield function(OA,JA){return pA(this,void 0,void 0,function*(){const ae={GroupIdList:[OA],GroupBasePublicInfoFilter:[...Eg]};return JA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_public_info",data:ae})})}(s,this._core),{GroupInfo:g=[]}=n||{},{AppDefinedData:u=[],ApplyJoinOption:E,CreateTime:m,FaceUrl:D,Introduction:M,InviteJoinOption:T,MaxMemberNum:P,MemberNum:W,Name:iA,Owner_Account:EA,Type:RA,ErrorCode:kA,ErrorInfo:xA}=g[0];if(kA!==0)throw new this._core.helper.ChatError({code:kA,message:xA});const LA=Md(u),SA=new Ku({groupID:s,name:iA,avatar:D,introduction:M,joinOption:E,inviteOption:T,maxMemberCount:P,memberCount:W,type:RA,ownerID:EA,createTime:m,groupCustomField:LA});return dn({group:SA})}catch(n){const{errorCode:g,errorInfo:u}=n;throw new this._core.helper.ChatError({functionName:"searchGroupByID",code:g,message:u})}})}},RT=new class{constructor(){this._name="UpdateGroupProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{utils:{isUndefined:g,safeStringify:u},ssoLog:E,helper:m}=this._core;let D=Yi.getLocalGroup(n);if(D){const{type:M}=D;this._canIUseJoinOption(M)||g(s.joinOption)||(E.warn("updateGroupProfile",`${this._name}.updateGroupProfile groupID:${n} joinOption is unavailable for Work/Meeting/AVChatRoom`),s.joinOption=void 0)}g(s.muteAllMembers)||(s.muteAllMembers=s.muteAllMembers===!0?"On":"Off");try{return yield function(M,T){return pA(this,void 0,void 0,function*(){const{groupID:P,name:W,avatar:iA,introduction:EA,notification:RA,muteAllMembers:kA,joinOption:xA,inviteOption:LA,groupCustomField:SA}=M,OA={GroupId:P,Name:W,FaceUrl:iA,Introduction:EA,Notification:RA,ShutUpAllMember:kA,ApplyJoinOption:xA,InviteJoinOption:LA,AppDefinedData:SA?VE(SA):void 0};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_base_info",data:OA})})}(s,this._core),D?(D.updateGroup(s),Yi.emitGroupListUpdate()):D=new Ku(s),dn({group:D},{message:`groupID:${n}`})}catch(M){const{errorCode:T,errorInfo:P}=M;throw new m.ChatError({code:T,message:P,moreMessage:`options:${u(s)}`})}})}_canIUseJoinOption(s){return xv(s)||this._core.common.isCommunity({type:s})}},wT=new class{constructor(){this._name="ChangeGroupOwner"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(s){return pA(this,void 0,void 0,function*(){const n="changeGroupOwner",{groupID:g,newOwnerID:u}=s,E=Yi.getLocalGroup(g),{helper:m,OuterConstant:D,common:{getCurrentUserID:M}}=this._core;if(E?.type===D.GRP_AVCHATROOM)throw new m.ChatError({functionName:n,code:yT});if(u===M())throw new m.ChatError({functionName:n,code:Rm});try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,newOwnerID:iA}=T,EA={GroupId:W,NewOwner_Account:iA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.change_group_owner",data:EA})})}(s,this._core),E.ownerID=u,Yi.emitGroupListUpdate(),dn({group:E})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},GQ=new class{constructor(){this._name="GetGroupOnlineMemberCount",this._onlineMemberCountMap=new Map}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}getGroupOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const n="getGroupOnlineMemberCount";if(!Yi.hasLocalGroup(s))return dn({memberCount:0});const g=Date.now();if(this._onlineMemberCountMap.has(s)){const u=this._onlineMemberCountMap.get(s),{lastReqTime:E=0,memberCount:m=0}=u||{};if(g-E<=6e4)return dn({memberCount:m})}try{const u=yield function(D,M){return pA(this,void 0,void 0,function*(){const T={GroupId:D};return M.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:T})})}(s,this._core),{OnlineMemberNum:E=0}=u||{};this._onlineMemberCountMap.set(s,{lastReqTime:Date.now(),memberCount:E});const m=`${this._name}.${n} ok. groupID:${s} memberCount:${E}`;return dn({memberCount:E},{message:m})}catch(u){throw new this._core.helper.ChatError({functionName:n,code:u?.errorCode,message:u?.errorInfo})}})}},bQ=new class{init(s,n){s.ssoLog.debug("GroupAction.init"),Yv.init(s),ju.init(s),Eh.init(s,n),JE.init(s,n),NQ.init(s,n),cB.init(s),Pl.init(s),RT.init(s),wT.init(s),GQ.init(s,n)}dismissGroup(s){return Eh.dismissGroup(s)}joinGroup(s){return JE.joinGroup(s)}quitGroup(s){return NQ.quitGroup(s)}getGroupOnlineMemberCount(s){return GQ.getGroupOnlineMemberCount(s)}},Vv=new class{constructor(){this._name="GetGroupApplicationList"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return pA(this,void 0,void 0,function*(){const s="getGroupApplicationList";try{const n=yield Promise.all([this._getGroupApplicationList(),this._getGroupApplicationList({type:this._core.OuterConstant.GRP_COMMUNITY})]);this._core.ssoLog.debug("getGroupApplicationList",`${this._name}.${s} ok.`);const g=this._handleGroupApplicationResult([...n[0],...n[1]]);return dn({applicationList:g})}catch(n){throw new this._core.helper.ChatError({functionName:s,code:n?.errorCode,message:n?.errorInfo})}})}_getGroupApplicationList(s){return pA(this,void 0,void 0,function*(){const{type:n,startTime:g=0,limit:u=20}=s||{},{common:E}=this._core;let m;try{m=yield function(P,W){return pA(this,void 0,void 0,function*(){const{type:iA,startTime:EA,limit:RA,handleAccount:kA}=P,xA={Type:iA,StartTime:EA,Limit:RA,Handle_Account:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_pendency",data:xA})})}({type:n,startTime:g,limit:u,handleAccount:E.getCurrentUserID()},this._core)}catch(P){if(P?.errorCode!==11e3)throw P;m={}}const{NextStartTime:D=0,PendencyList:M=[]}=m||{};if(D===0)return M;const T=yield this._getGroupApplicationList(Object.assign(Object.assign({},s),{startTime:D}));return[...M,...T]})}_handleGroupApplicationResult(s){const n=[];return s.forEach(g=>{const u=this._convertApplicationData(g),{handled:E}=u,m=Do(u,["handled"]);E===0&&n.push(m)}),n}_convertApplicationData(s){const{Handled:n,AddTime:g,ApplyInviteMsg:u,Authentication:E,FromUserNickName:m,From_Account:D,GroupId:M,GroupName:T,PendencyType:P,To_Account:W}=s;return{handled:n,messageKey:g,applicant:D,applicantNick:m,groupID:M,groupName:T,authentication:E,applicationType:P,userID:W,note:u,addTime:g}}},Jv=new class{constructor(){this._name="HandleGroupApplication"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(s){return pA(this,void 0,void 0,function*(){const{application:n}=s,g=this._handleParams(s);try{n?.applicationType===Uc?yield function(E,m){return pA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,invitee:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,Invited_Account:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_invite_join_permission_group",data:EA})})}(g,this._core):yield function(E,m){return pA(this,void 0,void 0,function*(){const{groupID:D,handleAction:M,handleMessage:T,applicant:P,authentication:W,messageKey:iA}=E,EA={GroupId:D,HandleMsg:M,ApprovalMsg:T,Applicant_Account:P,Authentication:W,MsgKey:iA};return m.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_apply_join_group",data:EA})})}(g,this._core);const u=Yi.getLocalGroup(g.groupID);return dn({group:u})}catch(u){throw new this._core.helper.ChatError({functionName:"handleGroupApplication",code:u?.errorCode,message:u?.errorInfo})}})}_handleParams(s){var n;const{handleAction:g,handleMessage:u,message:E,application:m}=s;let D,M,T,P,W;if(E){const{payload:iA}=E||{};D=iA.operatorID,M=(n=iA.groupProfile)===null||n===void 0?void 0:n.groupID,T=iA.authentication,P=iA.messageKey}else D=m?.applicant||"",M=m?.groupID||"",T=m?.authentication||"",P=m?.messageKey||0;return m?.applicationType===Uc&&(W=m.userID),{handleAction:g,handleMessage:u,applicant:D,invitee:W,groupID:M,authentication:T,messageKey:P}}},QD=new class{init(s){s.ssoLog.debug("GroupApplication.init"),Vv.init(s),Jv.init(s)}};let DC=class{constructor(s){this.userID="",this.avatar="",this.nick="",this.role="",this.joinTime="",this.nameCard="",this.muteUntil=0,this.memberCustomField=[],this.isOnline=!1,this.updateMember(s)}updateMember(s){const{core:{utils:{isUndefined:n},common:{deepMerge:g}}}=Wn;n(s.muteTime)||(this.muteUntil=Math.floor((Date.now()+1e3*s.muteTime)/1e3)),n(s.onlineStatus)||(this.isOnline=s.onlineStatus==="Online");const u=[null,void 0,"",0,NaN];s.memberCustomField&&Tm(this.memberCustomField,s.memberCustomField),g(this,s,["memberCustomField","marks","onlineStatus","muteTime"],u)}};function lB(s,n){return pA(this,void 0,void 0,function*(){const{groupID:g,userID:u,muteTime:E,role:m,nameCard:D,memberCustomField:M}=s;let T;M&&(T=VE(M));const P={GroupId:g,Member_Account:u,ShutUpTime:E,Role:m,NameCard:D,AppMemberDefinedData:T};return n.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:P})})}var pD=new class{constructor(){this._name="GetGroupMemberList"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="getGroupMemberList",{groupID:g,offset:u=0,count:E=100,role:m="",filter:D=""}=s,M=Yi.getLocalGroup(g),T=E>100?100:E,P={groupID:g,offset:u,limit:T,memberRoleFilter:qu.includes(m)?[m]:void 0,memberInfoFilter:fm};try{const W=yield function(re,_i){return pA(this,void 0,void 0,function*(){const{isCommunity:Ti}=_i.common,{groupID:Lt,offset:Ni,limit:cs,memberRoleFilter:Me,memberInfoFilter:mt}=re,UA={GroupId:Lt,Limit:cs,MemberRoleFilter:Me,MemberInfoFilter:mt};return Ti({groupID:Lt})?UA.Next=String(Ni):UA.Offset=Ni,_i.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_member_info",data:UA})})}(P,this._core),{MemberList:iA,MemberNum:EA,Next:RA}=W||{},kA=`${this._name}.${n} ok, totalMemberCount:${EA} next:${RA}`,{utils:{isArray:xA,isEmpty:LA},common:{isCommunity:SA}}=this._core;if(M&&(M.memberCount=EA),!xA(iA)||iA.length===0)return dn({memberList:[],offset:0},{message:kA});let OA=u+T;SA({groupID:g})&&(OA=LA(RA)?0:RA),iA.length<T&&(OA=0);let JA=this._convertMemberInfo(iA);JA=yield this._patchAvatarAndNick(JA);const ae=this._generateGroupMember(JA);return dn({memberList:ae,offset:OA},{message:kA})}catch(W){throw new this._core.helper.ChatError({functionName:n,code:W?.errorCode,message:W?.errorInfo})}})}_convertMemberInfo(s){const n=[];for(let g=0,u=s.length;g<u;g++){const{AppMemberDefinedData:E,JoinTime:m,Member_Account:D,OnlineStatus:M,Role:T,ShutUpUntil:P,NameCard:W}=s[g],iA=Md(E);n.push({userID:D,joinTime:m,onlineStatus:M,role:T,muteUntil:P,memberCustomField:iA,nameCard:W})}return n}_patchAvatarAndNick(s){return pA(this,void 0,void 0,function*(){var n;const g=s.map(D=>D.userID),u=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=u?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,u=s.length;g<u;g++){const E=new DC(s[g]);n.push(E)}return n}},kQ=new class{constructor(){this._name="GetGroupMemberProfile"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupMemberProfile",context:this})}getGroupMemberProfile(s){return pA(this,void 0,void 0,function*(){const n="getGroupMemberProfile",{groupID:g,userIDList:u,memberCustomFieldFilter:E}=s,m=Yi.getLocalGroup(g),{helper:D,utils:{isArray:M},ssoLog:T}=this._core;if(m&&Sd(m.type))throw new D.ChatError({functionName:n,replacement1:n,code:_m});u.length>50&&(T.warn("getGroupMemberProfile",`${this._name}.${n} userIDList length:${u.length} exceeds limit 50`),u.splice(50));const P=`userIDList length:${u.length} groupID:${g}`;try{const W=yield function(kA,xA){return pA(this,void 0,void 0,function*(){const{groupID:LA,userIDList:SA,memberInfoFilter:OA,memberCustomFieldFilter:JA}=kA,ae={GroupId:LA,Member_List_Account:SA,MemberInfoFilter:OA,AppDefinedDataFilter_GroupMember:JA};return xA.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_specified_group_member_info",data:ae})})}({groupID:g,userIDList:u,memberCustomFieldFilter:E,memberInfoFilter:[...fm]},this._core),{MemberList:iA}=W||{};if(!M(iA)||iA.length===0)return dn({memberList:[]});let EA=this._convertMemberInfo(iA);EA=yield this._getMemberAvatarAndNick(EA);const RA=this._generateGroupMember(EA);return dn({memberList:RA},{message:P})}catch(W){throw new D.ChatError({functionName:n,code:W?.errorCode,message:W?.errorInfo,moreMessage:P})}})}_convertMemberInfo(s){const n=[];for(let g=0,u=s.length;g<u;g++){const{AppMemberDefinedData:E,JoinTime:m,Member_Account:D,OnlineStatus:M,Role:T,ShutUpUntil:P,NameCard:W}=s[g],iA=Md(E);n.push({userID:D,joinTime:m,onlineStatus:M,role:T,muteUntil:P,memberCustomField:iA,nameCard:W})}return n}_getMemberAvatarAndNick(s){return pA(this,void 0,void 0,function*(){var n;const g=s.map(D=>D.userID),u=yield(n=this._core.user.userProfile)===null||n===void 0?void 0:n.getUserProfile({userIDList:g}),E=u?.data||[],m=new Map(E.map(D=>[D.userID,D]));return s.forEach(D=>{if(m.has(D.userID)){const{nick:M="",avatar:T=""}=m.get(D.userID);D.nick=M,D.avatar=T}}),s})}_generateGroupMember(s){const n=[];for(let g=0,u=s.length;g<u;g++){const E=new DC(s[g]);n.push(E)}return n}},vd=new class{constructor(){this._name="AddGroupMember"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"addGroupMember",context:this})}addGroupMember(s){return pA(this,void 0,void 0,function*(){const n="addGroupMember",{groupID:g,userIDList:u}=s,E=Yi.getLocalGroup(g),{helper:m}=this._core;if(E&&Sd(E.type))throw new m.ChatError({functionName:n,code:DT});const D=u.map(M=>({Member_Account:M}));try{const M=yield function(RA,kA){return pA(this,void 0,void 0,function*(){const{groupID:xA,userIDList:LA}=RA,SA={GroupId:xA,MemberList:LA};return kA.common.buildAndSendPacket({servcmd:"group_open_http_svc.add_group_member",data:SA})})}({groupID:g,userIDList:D},this._core),{MemberList:T=[]}=M||{},{failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA}=this._handleResult(T);return dn({failureUserIDList:P,successUserIDList:W,existedUserIDList:iA,overLimitUserIDList:EA,group:E},{message:` groupID:${g} successUserIDList:${W} failureUserIDList:${P} existedUserIDList:${iA} overLimitUserIDList:${EA}`})}catch(M){throw new m.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_handleResult(s){const n=[],g=[],u=[],E=[];return s.forEach(m=>{const{Result:D,Member_Account:M}=m;D===ym?n.push(M):D===Dm?g.push(M):D===Sm?u.push(M):D===gD&&E.push(M)}),{failureUserIDList:n,successUserIDList:g,existedUserIDList:u,overLimitUserIDList:E}}},Rd=new class{constructor(){this._name="DeleteGroupMember"}init(s,n){this._core=s;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>!n.getInstalledSubPlugins().includes(ta)})}deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupMember",{groupID:g,userIDList:u}=s,E=Yi.getLocalGroup(g),{helper:m,utils:{isUndefined:D},ssoLog:M}=this._core;if(D(E))throw new m.ChatError({functionName:n,code:fT});u.length>20&&(M.warn("deleteGroupMember",`${this._name}.${n} userIDList length:${u.length} exceeds limit 20`),u.splice(20));try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,reason:EA}=T,RA={GroupId:W,MemberToDel_Account:iA,Reason:EA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_member",data:RA})})}({groupID:g,userIDList:u},this._core),dn({group:E,userIDList:u},{message:`groupID:${g} userIDList length:${u.length}`})}catch(T){throw new m.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},Hv=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(s){return pA(this,void 0,void 0,function*(){const{helper:n}=this._core,{groupID:g,userID:u,muteTime:E}=s,m=` groupID:${g} userID:${u} muteTime:${E}`;this._preCheckSettingMuteParams(s);try{yield lB(s,this._core);const D=Yi.getLocalGroup(g),M=new DC({userID:u,muteTime:E});return dn({group:D,member:M},{message:m})}catch(D){throw new n.ChatError({functionName:"setGroupMemberMuteTime",code:D?.errorCode,message:D?.errorInfo,moreMessage:m})}})}_preCheckSettingMuteParams(s){const{userID:n}=s,{store:g,helper:u}=this._core;if(n===g.get("login").userId)throw new u.ChatError({functionName:"setGroupMemberMuteTime",code:BD})}},LQ=new class{constructor(){this._name="SetGroupMemberRole"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(s){return pA(this,void 0,void 0,function*(){const n="setGroupMemberRole",{helper:g}=this._core,{groupID:u,userID:E,role:m}=s,D=`${this._name}.${n} ok, groupID:${u} userID:${E} role:${m}`;this._preCheckSettingRoleParams(s);try{yield lB(s,this._core);const M=Yi.getLocalGroup(u),T=new DC({userID:E,role:m});return dn({group:M,member:T},{message:D})}catch(M){throw new g.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo,moreMessage:D})}})}_preCheckSettingRoleParams(s){var n;const{groupID:g,userID:u,role:E}=s,{store:m,helper:D,OuterConstant:M,common:{isCommunity:T}}=this._core,P=Yi.getLocalGroup(g);if(((n=P?.selfInfo)===null||n===void 0?void 0:n.role)!==M.GRP_MBR_ROLE_OWNER)throw new D.ChatError({functionName:"setGroupMemberRole",code:ST});if(u===m.get("login").userId)throw new D.ChatError({functionName:"setGroupMemberRole",code:Ov});const W=[...qu];if(T({groupID:g})&&W.push(M.GRP_MBR_ROLE_CUSTOM),!W.includes(E))throw new D.ChatError({functionName:"setGroupMemberRole",code:wm})}},mD=new class{constructor(){this._name="SetGroupMemberNameCard"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(s){return pA(this,void 0,void 0,function*(){var n;const g="setGroupMemberNameCard",{helper:u,common:{getCurrentUserID:E}}=this._core,{groupID:m,userID:D=E(),nameCard:M}=s,T=`${this._name}.${g} ok, groupID:${m} userID:${D} nameCard:${M}`;this._preCheckSettingNameCardParams(s);try{yield lB({groupID:m,userID:D,nameCard:M},this._core);const W=Yi.getLocalGroup(m);D===((n=W?.selfInfo)===null||n===void 0?void 0:n.userID)&&(W.updateSelfInfo({nameCard:M}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m));const iA=new DC({userID:D,nameCard:M});return dn({group:W,member:iA},{message:T})}catch(P){throw new u.ChatError({functionName:g,code:P?.errorCode,message:P?.errorInfo,moreMessage:T})}})}_preCheckSettingNameCardParams(s){const{groupID:n}=s,{helper:g}=this._core,u=Yi.getLocalGroup(n);if(Sd(u?.type))throw new g.ChatError({functionName:"setGroupMemberNameCard",code:_m})}},bm=new class{constructor(){this._name="SetGroupMemberCustomField"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(s){return pA(this,void 0,void 0,function*(){const n="setGroupMemberCustomField",{helper:g,common:{getCurrentUserID:u}}=this._core;this._preCheckSettingCustomFiledParams(s);const{groupID:E,userID:m=u(),memberCustomField:D}=s,M=`${this._name}.${n} ok, groupID:${E}userID:${m} memberCustomField:${JSON.stringify(D)}`;try{yield lB({groupID:E,userID:m,memberCustomField:D},this._core);const P=Yi.getLocalGroup(E),W=new DC({userID:m,memberCustomField:D});return dn({group:P,member:W},{message:M})}catch(T){throw new g.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo,moreMessage:M})}})}_preCheckSettingCustomFiledParams(s){const{groupID:n}=s,{helper:g}=this._core,u=Yi.getLocalGroup(n);if(Sd(u?.type))throw new g.ChatError({functionName:"setGroupMemberCustomField",code:_m})}},qv=new class{init(s,n){s.ssoLog.debug("GroupMember.init"),pD.init(s,n),kQ.init(s),vd.init(s),Rd.init(s,n),Hv.init(s),LQ.init(s),mD.init(s),bm.init(s)}getGroupMemberList(s){return pD.getGroupMemberList(s)}deleteGroupMember(s){return Rd.deleteGroupMember(s)}},_T=new class{init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupCounters",context:this})}getGroupCounters(s){return pA(this,void 0,void 0,function*(){const n="getGroupCounters";try{Nm(n,sc);const{groupID:g,keyList:u=[]}=s,{avChatRoomKey:E,lastUpdateTime:m}=nc.getLocalGroupCounters(g);if(!(Date.now()-m>=this._getExpireTime()))return{code:0,data:{counters:nc.getLocalCounters(g,u)}};const D=yield function(P){return pA(this,void 0,void 0,function*(){const{groupID:W,GroupCounterKeys:iA,avChatRoomKey:EA}=P,{common:RA}=Wn.core,kA={GroupId:W,keyList:iA,BytesKey:EA};return RA.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_counter",data:kA})})}({groupID:g,keyList:u,avChatRoomKey:E}),{GroupCounter:M=[],GroupCounterSeq:T}=D;return nc.updateLocalGroupCounters({groupID:g,counterList:M,groupCounterSeq:T}),{code:0,data:{counters:nc.getLocalCounters(g,u)}}}catch(g){yC(n,g)}})}_getExpireTime(){const{store:s,utils:{isUndefined:n}}=this._core,g=s.get("cloudConfig")||{},{grp_counter_expire_time:u}=g;return n(u)?3e4:Number(u)}},km=new class{init(s){const{helper:n}=s;n.registerApi({apiName:"setGroupCounters",context:this}),n.registerApi({apiName:"increaseGroupCounter",context:this}),n.registerApi({apiName:"decreaseGroupCounter",context:this})}setGroupCounters(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(Hu,s)})}increaseGroupCounter(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(mm,s)})}decreaseGroupCounter(s){return pA(this,void 0,void 0,function*(){return this._handleCounterOperation(Ri,s)})}_handleCounterOperation(s,n){return pA(this,void 0,void 0,function*(){const g=`${s}GroupCounter`;try{Nm(g,sc);const{groupID:u,key:E,value:m=0}=n,{avChatRoomKey:D}=nc.getLocalGroupCounters(u),M=s===Hu?this._convertObjectToList(n.counters):[{Key:E,Value:m}],T=yield this._updateGroupCounters({groupID:u,counterList:M,avChatRoomKey:D,mode:s});return nc.setGroupCounters(u,T),{code:0,data:{counters:T}}}catch(u){yC(g,u)}})}_updateGroupCounters(s){return pA(this,void 0,void 0,function*(){const n=yield function(E){const{groupID:m,counterList:D,mode:M,avChatRoomKey:T}=E,{common:P}=Wn.core,W={GroupId:m,GroupCounter:D,Mode:M,BytesKey:T};return P.buildAndSendPacket({servcmd:"group_open_http_svc.update_group_counter",data:W})}(s),{GroupCounter:g=[]}=n,u={};return g.forEach(E=>{const{Key:m,Value:D=0}=E;u[m]=D}),u})}_convertObjectToList(s){return Object.entries(s).map(([n,g])=>({Key:n,Value:g||0}))}},IB=new class{init(s){this._core=s,_T.init(s),km.init(s)}isGroupCounterUpdated(s){const{elements:{groupCounterInfo:n}}=s,{utils:{isEmpty:g}}=this._core;return!g(n)}handleGroupCounterUpdated(s){const{to:n,elements:{groupCounterInfo:g}}=s;g.forEach(u=>{const{type:E,groupCounterSeq:m,counterList:D=[]}=u;E!==oi&&E!==on||this._processAndNotifyCounterUpdate(n,m,D),E===yo&&nc.deleteLocalGroupCounters({groupID:n,groupCounterSeq:m,counterList:D})})}_processAndNotifyCounterUpdate(s,n,g){const{OuterEvent:u,notificationCenter:E}=this._core;nc.updateLocalGroupCounters({groupID:s,groupCounterSeq:n,counterList:g}),g.forEach(({Key:m,Value:D=0})=>{E.emitOuterEvent(u.GROUP_COUNTER_UPDATED,{name:u.GROUP_COUNTER_UPDATED,data:{groupID:s,key:m,value:D}})})}reset(){nc.reset()}},Lm=new class{constructor(){this._name="InitGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g}=s,{serverMainSequence:u,avChatRoomKey:E}=zs.getGroupAttributesCache(n),m=zs.convertKeyValueMapToList(g);try{const D=yield function(W,iA){return pA(this,void 0,void 0,function*(){const{groupID:EA,mainSequence:RA,groupAttributeList:kA,avChatRoomKey:xA}=W,LA={GroupId:EA,AttrMainSeq:RA,GroupAttr:kA,BytesKey:xA,AttrControl:["RaceConflict"]};return iA.common.buildAndSendPacket({servcmd:"group_open_http_svc.set_group_attr",data:LA})})}({groupID:n,avChatRoomKey:E,groupAttributeList:m,mainSequence:u},this._core),{AttrMainSeq:M,GroupAttr:T}=D||{},P=T.map(W=>{const{Key:iA,seq:EA}=W;return{key:iA,value:g[iA],sequence:EA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:M,groupAttributeList:P,operation:cD}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${M}`})}catch(D){throw new this._core.helper.ChatError({functionName:"initGroupAttributes",code:D?.errorCode,message:D?.errorInfo})}})}},TT=new class{constructor(){this._name="SetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"setGroupAttributes",context:this}),n.registerExperimentalAPI("setRichStatus",this)}setGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n,groupAttributes:g,richStatusMode:u}=s,{serverMainSequence:E,avChatRoomKey:m,values:D}=zs.getGroupAttributesCache(n),M=zs.convertKeyValueMapToList(g).map(T=>{var P;const{key:W,value:iA}=T;return{key:W,value:iA,seq:((P=D.get(T.key))===null||P===void 0?void 0:P.sequence)||0}});try{const T=yield function(EA,RA){return pA(this,void 0,void 0,function*(){const{groupID:kA,mainSequence:xA,groupAttributeList:LA,avChatRoomKey:SA,richStatusMode:OA}=EA,JA={GroupId:kA,AttrMainSeq:xA,GroupAttr:LA,BytesKey:SA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:OA};return RA.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_attr",data:JA})})}({groupID:n,avChatRoomKey:m,groupAttributeList:M,mainSequence:E,richStatusMode:u},this._core),{AttrMainSeq:P,GroupAttr:W}=T||{},iA=W.map(EA=>{const{Key:RA,seq:kA}=EA;return{key:RA,value:g[RA],sequence:kA}});return zs.saveGroupAttributesCacheValuesCopy(n),zs.refreshGroupAttributesCache({groupID:n,serverMainSequence:P,groupAttributeList:iA,operation:kv}),zs.emitGroupAttributesUpdated(n),dn({groupAttributes:g},{message:` groupID:${n} serverMainSequence:${P}`})}catch(T){throw new this._core.helper.ChatError({functionName:"setGroupAttributes",code:T?.errorCode,message:T?.errorInfo})}})}setRichStatus(s){return pA(this,void 0,void 0,function*(){const{groupID:n,richStatus:g}=s;return this.setGroupAttributes({groupID:n,groupAttributes:g,richStatusMode:!0})})}},fD=new class{constructor(){this._name="DeleteGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"deleteGroupAttributes",context:this}),n.registerExperimentalAPI("deleteRichStatus",this)}deleteGroupAttributes(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupAttributes",{groupID:g,keyList:u=[],richStatusMode:E}=s;try{let m;m=u.length===0?yield this._clearGroupAttributes(g,{richStatusMode:E}):yield this._deleteGroupAttributes(g,{keyList:u,richStatusMode:E});const{resultList:D,serverMainSequence:M,operation:T,groupAttributeList:P}=m||{},W=`${this._name}.${n} ok. groupID:${g} operation: ${T}`;return zs.saveGroupAttributesCacheValuesCopy(g),zs.refreshGroupAttributesCache({groupID:g,serverMainSequence:M,groupAttributeList:P,operation:T}),zs.emitGroupAttributesUpdated(g),dn({keyList:D},{message:W})}catch(m){throw new this._core.helper.ChatError({functionName:n,code:m?.errorCode,message:m?.errorInfo})}})}deleteRichStatus(s){return pA(this,void 0,void 0,function*(){return this.deleteGroupAttributes(Object.assign(Object.assign({},s),{richStatusMode:!0}))})}_deleteGroupAttributes(s,n){return pA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:u,values:E}=zs.getGroupAttributesCache(s),{keyList:m,richStatusMode:D}=n,M=[],T=[];m.forEach(iA=>{if(E.has(iA)){const{sequence:EA=0}=E.get(iA)||{};T.push({key:iA,seq:EA}),M.push(iA)}});const P=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{groupID:RA,mainSequence:kA,groupAttributeList:xA,avChatRoomKey:LA,richStatusMode:SA}=iA,OA={GroupId:RA,AttrMainSeq:kA,GroupAttr:xA,BytesKey:LA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:SA};return EA.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_attr",data:OA})})}({groupID:s,avChatRoomKey:u,groupAttributeList:T,mainSequence:g,richStatusMode:D},this._core),{AttrMainSeq:W}=P||{};return{resultList:M,serverMainSequence:W,groupAttributeList:T,operation:ID}})}_clearGroupAttributes(s,n){return pA(this,void 0,void 0,function*(){const{serverMainSequence:g,avChatRoomKey:u,values:E}=zs.getGroupAttributesCache(s),{richStatusMode:m}=n||{},D=[...E.keys()],M=yield function(P,W){return pA(this,void 0,void 0,function*(){const{groupID:iA,mainSequence:EA,avChatRoomKey:RA,richStatusMode:kA}=P,xA={GroupId:iA,AttrMainSeq:EA,BytesKey:RA,AttrControl:["RaceConflict"],AllowRoomEngineOpt:kA};return W.common.buildAndSendPacket({servcmd:"group_open_http_svc.clear_group_attr",data:xA})})}({groupID:s,avChatRoomKey:u,mainSequence:g,richStatusMode:m},this._core),{AttrMainSeq:T}=M||{};return{resultList:D,serverMainSequence:T,operation:lD}})}},yD=new class{constructor(){this._name="GetGroupAttributes"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"getGroupAttributes",context:this}),n.registerExperimentalAPI("getRichStatus",this,"getGroupAttributes")}getGroupAttributes(s){return pA(this,void 0,void 0,function*(){const{groupID:n}=s,{avChatRoomKey:g,lastUpdateTime:u,localMainSequence:E,serverMainSequence:m}=zs.getGroupAttributesCache(n),{helper:{ChatError:D}}=this._core,M=`groupID:${n} localMainSequence:${E} serverMainSequence:${m} keyList:${s.keyList}`;if(Date.now()-u>=3e4||E<m)try{const P=yield this.getGroupAttributesFromServer({groupID:n,avChatRoomKey:g}),W=zs.getGroupAttributesCacheValues(s),{serverGroupAttributeList:iA=[]}=P||{};return dn({groupAttributes:W},{message:M,moreMessage:`from server, count:${iA.length}`})}catch(P){throw new D({functionName:"getGroupAttributes",code:P?.errorCode,message:P?.errorInfo})}const T=zs.getGroupAttributesCacheValues(s);return dn({groupAttributes:T},{message:M,moreMessage:"from cache"})})}getGroupAttributesFromServer(s){return pA(this,void 0,void 0,function*(){const{utils:{isUndefined:n},ssoLog:g}=this._core,{groupID:u,avChatRoomKey:E}=s,m=n(E)?yd:dT,D=yield function(W,iA){return pA(this,void 0,void 0,function*(){const{groupID:EA,groupType:RA,avChatRoomKey:kA}=W,xA={GroupId:EA,GroupType:RA,Key:kA};return iA.common.buildAndSendPacket({servcmd:"group_open_attr_http_svc.get_group_attr",data:xA})})}({groupID:u,avChatRoomKey:E,groupType:m},this._core),{AttrMainSeq:M=0,GroupAttrAry:T}=D||{};g.debug("getGroupAttributesFromServer",`${this._name}._getGroupAttributesFromServer ok. groupID:${u} serverMainSequence:${M}`);const P=T.map(W=>{const{key:iA,value:EA,seq:RA}=W;return{key:iA,value:EA,sequence:RA}});return zs.refreshGroupAttributesCache({groupID:u,serverMainSequence:M,groupAttributeList:P,operation:Lv}),{serverGroupAttributeList:T}})}},UQ=new class{init(s){s.ssoLog.debug("GroupAttribute.init"),Lm.init(s),TT.init(s),fD.init(s),yD.init(s),zs.init(s)}isGroupAttributesUpdated(s){return zs.isGroupAttributesUpdated(s)}handleGroupAttributesUpdated(s){const{to:n,elements:{newGroupProfile:g}}=s,{groupAttributeOption:u}=g,{serverMainSequence:E,withChangedAttributeInfo:m}=u,{localMainSequence:D}=zs.getGroupAttributesCache(n),M=E-D;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${n} withChangedAttributeInfo:${m} diffSequence:${M}`),M!==0)if(zs.saveGroupAttributesCacheValuesCopy(n),m!==1||M!==1){if(zs.hasGroupAttributesCache(n)){const{avChatRoomKey:T}=zs.getGroupAttributesCache(n);yD.getGroupAttributesFromServer({groupID:n,avChatRoomKey:T}).then(()=>{zs.emitGroupAttributesUpdated(n)}).catch(()=>{})}}else zs.handleGroupAttributesUpdated({groupID:n,groupAttributeOption:u})}reset(){zs.reset()}};function HE(s,n="tips"){const{ClientSeq:g,From_Account:u,MsgClientTime:E,MsgPriority:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,TinyId:P,ToGroupId:W,GroupInfo:iA,MsgBody:EA}=s,RA=function(kA){const{GroupCode:xA,GroupId:LA,GroupName:SA,GroupType:OA,MsgFrom_AccountExtraInfo:JA,From_Account:ae,To_Account:re}=kA;return{groupCode:xA,groupID:LA,groupName:SA,type:OA,messageFromAccountExtraInformation:JA,from:ae,to:re}}(iA);return{clientSequence:g,from:u,clientTime:E,priority:m,random:D,sequence:M,time:T,tinyID:P,to:W,groupProfile:RA,elements:n==="tips"?Wu(EA):dh(EA)}}function Wu(s){const n={};return Object.keys(s).forEach(g=>{var u,E;switch(g){case"MemberNum":n.memberCount=s[g];break;case"OpType":n.operationType=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"List_Account":n.userIDList=s[g];break;case"MsgMemberExtraInfo":n.memberInfoList=(u=s[g])===null||u===void 0?void 0:u.map(m=>DD(m));break;case"MsgOperatorMemberExtraInfo":n.operatorInfo=DD(s[g]);break;case"MsgGroupNewInfo":n.newGroupProfile=function(m){const D={};return Object.keys(m).forEach(M=>{switch(M){case"GroupIntroduction":D.introduction=m[M];break;case"GroupName":D.groupName=m[M];break;case"GroupFaceUrl":D.avatar=m[M];break;case"GroupNotification":D.notification=m[M];break;case"ApplyJoinOption":D.joinOption=m[M];break;case"InviteJoinOption":D.inviteOption=m[M];break;case"ShutupAll":D.muteAllMembers=m[M];break;case"Owner_Account":D.ownerID=m[M];break;case"GroupAttrOption":D.groupAttributeOption=function(P){const{BytesChangedKeys:W,GroupAttrSeq:iA,OpType:EA,PushChangedAttrValFlag:RA,GroupAttrInfo:kA}=P,xA=kA.map(LA=>{const{Key:SA,Val:OA,SubKeySeq:JA}=LA;return{key:SA,value:OA,sequence:JA}});return{changedKeyList:W,groupAttributeList:xA,serverMainSequence:iA,operation:EA,withChangedAttributeInfo:RA}}(m[M]);break;case"MsgAppDefinedData":D.groupCustomField=(T=m[M])==null?void 0:T.map(P=>({key:P.Key,value:P.Value}));break;case"InviteOption":D.inviteOption=vT[m[M]]||m[M]}var T}),D}(s[g]);break;case"MsgMemberInfo":n.msgMemberInfo=(E=s[g])===null||E===void 0?void 0:E.map(m=>function(D){const{ShutupTime:M,User_Account:T}=D;return{muteTime:M,userID:T}}(m));break;case"OnlineMemberInfo":n.onlineMemberInfo=function(m){const{ExpireTime:D,OnlineMemberNum:M}=m;return{expireTime:D,onlineMemberNum:M}}(s[g]);break;case"GroupCounterInfo":n.groupCounterInfo=function(m){return m.map(D=>{const{GroupCounterSeq:M,GroupCounter:T,Type:P}=D;return{type:P,groupCounterSeq:M,counterList:T}})}(s[g])}}),n}function DD(s){const{ImageUrl:n,NickName:g,Role:u,UserId:E}=s;return{avatar:n,nick:g,role:u,userID:E}}function dh(s){const n={};return Object.keys(s).forEach(g=>{switch(g){case"MsgKey":n.messageKey=s[g];break;case"Operator_Account":n.operatorID=s[g];break;case"ReportType":n.operationType=s[g];break;case"Authentication":n.authentication=s[g];break;case"MsgFlag":n.messageRemindType=s[g];break;case"UserDefinedField":n.userDefinedField=s[g];break;case"RemarkInfo":n.remarkInfo=s[g];break;case"BanDuration":n.duration=s[g];break;case"MuteTime":n.muteTime=s[g];break;case"MsgMemberExtraInfoList":n.inviteeInfoList=(u=s[g]||[])==null?void 0:u.map(E=>{const{UserId:m,ImageUrl:D,NickName:M}=E;return{userID:m,avatar:D,nick:M}});break;case"MemberList_Account":n.inviteeList=s[g]}var u}),n}class Um{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=Wu(n);return new Um(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"groupProfile":this._initGroupProfile(n[g]);break;case"operatorInfo":this._initOperatorInfo(n[g]);break;case"memberInfoList":case"msgMemberInfo":this._updateMemberList(n[g]);break;case"newGroupProfile":this._initNewGroupProfile(n[g]);break;case"memberExtraInfo":case"remarkInfo":case"onlineMemberInfo":break;default:this.content[g]=n[g]}}),this.content.userIDList||(this.content.userIDList=[this.content.operatorID])}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let u=0;u<g.length;u++){const E=g[u];BT[E]&&(this.content.groupProfile[E]=n[E])}}_initOperatorInfo(n){this.content.operatorInfo={};const g=Object.keys(n);for(let u=0;u<g.length;u++){const E=g[u];this.content.operatorInfo[E]=n[E]}}_updateMemberList(n){this.content.memberList?this.content.memberList.forEach(g=>{n.forEach(u=>{g.userID===u.userID&&Object.assign(g,u)})}):this.content.memberList=n}_initNewGroupProfile(n){this.content.newGroupProfile={};const g=Object.keys(n);for(let u=0;u<g.length;u++){const E=g[u];E!=="muteAllMembers"?this.content.newGroupProfile[E]=n[E]:this.content.newGroupProfile.muteAllMembers=n.muteAllMembers===1}}}var Kv=new class{constructor(){this._name="GroupTipsNotification"}init(s){this._core=s;const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:u}}=s,{message:{messageFactory:E},OuterConstant:m}=s;E?.registerElementClass(m.MSG_GRP_TIP,Um),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,u.GROUP_TIPS_RECOVER,this._handleGroupTipsRecover,this),n.registerWorkflowStep(g.RECEIVE_GROUP_TIPS_NOTIFICATION,u.HANDLE_GROUP_TIPS_NOTIFICATION,this.onNewGroupTips,this),n.registerWorkflowStep(g.RECEIVE_GROUP_TIPS_NOTIFICATION,u.EMIT_GROUP_TIPS_EVENT,this._emitGroupTipsEvent,this)}onNewGroupTips(s){const{data:n}=s||{},{messageList:g,conversationUpdateFieldList:u}=this._handleGroupTips(n);return g.length>0&&this._handleGroupTipMessage(g),{conversationUpdateFieldList:u,messageList:g}}_emitGroupTipsEvent(s){var n;const{constants:{WORKFLOW_STEP:g}}=this._core,{messageList:u=[]}=((n=s?.result)===null||n===void 0?void 0:n[g.HANDLE_GROUP_TIPS_NOTIFICATION])||{};if(u.length>0){const{notificationCenter:E,OuterEvent:m}=this._core;E.emitOuterEvent(m.MESSAGE_RECEIVED,{name:m.MESSAGE_RECEIVED,data:u})}}_handleGroupTips(s,n=!0){const{Event:g,GroupTips:u}=s,E=new Map,m=[],D=[];for(let M=0,T=u.length;M<T;M++){const P=HE(u[M],"tips");if(g===uD){if(UQ.isGroupAttributesUpdated(P)){UQ.handleGroupAttributesUpdated(P);continue}if(IB.isGroupCounterUpdated(P)){IB.handleGroupCounterUpdated(P);continue}}const{groupProfile:{groupID:W}}=P;if(!Yi.hasLocalGroup(W))continue;const iA=this._assembleMessage(P);if(g===uD&&(iA._onlineOnlyFlag=!0,D.push(iA)),g===CT){if(!this._core.message.messageDataHandler.storeConversationMessage(iA)&&n)continue;D.push(iA)}this._handleConversationOptions(E,iA)}return m.push(...E.values()),{conversationUpdateFieldList:m,messageList:D}}_assembleMessage(s){const{OuterConstant:n,message:{messageFactory:g},common:{setGroupTipsUserInfo:u}}=this._core;s.flow="in",s.conversationType=n.CONV_GROUP;const E=g.createMessage(s);u(s.elements,E);const m=new Um(Object.assign(Object.assign({},s.elements),{groupProfile:Object.assign({},s.groupProfile)}));return E.setElement(m),E.isSystemMessage=!1,E}_handleConversationOptions(s,n){const{common:{getMessagePreviewText:g},utils:{isObject:u},appStore:{conversationStore:E}}=this._core,{conversationID:m,conversationType:D}=n;let M;if(!E.getConversation(m)||!n._onlineOnlyFlag){if(s.has(m))M=s.get(m),n.flow==="in"&&(n._isExcludedFromUnreadCount||n._onlineOnlyFlag||M.unreadCount++),M.type=D,M.lastMessage=n._isExcludedFromLastMessage?"":Object.assign({},n);else{let T=0;n.flow==="in"&&(n._isExcludedFromUnreadCount||n._onlineOnlyFlag||(T=1)),M={conversationID:m,unreadCount:T,type:D,lastMessage:n._isExcludedFromLastMessage?"":Object.assign({},n)}}u(M.lastMessage)&&(M.lastMessage.messageForShow=g(M.lastMessage.type,M.lastMessage.payload)),s.set(m,M)}}_handleGroupTipMessage(s){const{OuterConstant:{GROUP_TIPS_OPERATION_TYPE:n}}=this._core;s.forEach(g=>{const{operationType:u}=g.payload;switch(u){case n.JOINED:this._handleNewMemberJoined(g);break;case n.QUITTED:this._handleMemberQuitted(g);break;case n.KICKED:this._handleMemberKicked(g);break;case n.GROUP_PROFILE_UPDATED:this._handleGroupProfileUpdated(g);break;case n.ADMIN_SET:this._handleMemberGrantAdmin(g);break;case n.ADMIN_CANCELED:this._handleMemberRevokeAdmin(g)}})}_handleNewMemberJoined(s){this._handleGroupMemberCountUpdated(s)}_handleMemberQuitted(s){this._handleGroupMemberCountUpdated(s)}_handleMemberKicked(s){this._handleGroupMemberCountUpdated(s)}_handleGroupProfileUpdated(s){var n;const{newGroupProfile:g,groupProfile:u,operatorInfo:E}=s.payload,{groupID:m}=u,D=Yi.getLocalGroup(m);Object.keys(g).forEach(T=>{switch(T){case"ownerID":this._handleGroupOwnerChanged(m,g);break;case"groupName":D.name=g[T];break;case"groupCustomField":Array.isArray(D[T])&&Array.isArray(g[T])?Tm(D[T],g[T]):D[T]=g[T];break;default:D[T]=g[T]}});const{utils:{isUndefined:M}}=this._core;M(E)||((n=D?.selfInfo)===null||n===void 0?void 0:n.userID)!==E.userID||Object.keys(E).forEach(T=>{T==="nameCard"&&D.updateSelfInfo({nameCard:E[T]}),T==="role"&&this._updateSelfRole(D,E[T])}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m)}_handleGroupOwnerChanged(s,n){const{common:g,OuterConstant:u}=this._core,E=Yi.getLocalGroup(s),m=g.getCurrentUserID(),{ownerID:D}=n;m===D&&E.updateGroup({ownerID:D,selfInfo:{role:u.GRP_MBR_ROLE_OWNER}})}_updateSelfRole(s,n){const{OuterConstant:g}=this._core;let u=g.GRP_MBR_ROLE_MEMBER;n===hT?u=g.GRP_MBR_ROLE_OWNER:n===ED&&(u=g.GRP_MBR_ROLE_ADMIN),s.updateSelfInfo({role:u})}_handleGroupMemberCountUpdated(s){const{memberCount:n,groupProfile:{groupID:g}}=s.payload,u=Yi.getLocalGroup(g),{utils:{isNumber:E}}=this._core;u&&E(n)&&u.memberCount!==n&&(u.memberCount=n,Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(g))}_handleGroupTipsRecover(s){const{utils:{isArray:n}}=this._core,{groupTipList:g}=s?.result||{};n(g)&&g.forEach(u=>{const{messageList:E}=this._handleGroupTips({Event:u.Event,GroupTips:[u]},!1);this._handleGroupTipMessage(E)})}_handleMemberGrantAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:u}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&u.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_ADMIN}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}_handleMemberRevokeAdmin(s){const{OuterConstant:n}=this._core,{groupProfile:g,userIDList:u}=s.payload,E=this._core.common.getCurrentUserID(),{groupID:m}=g,D=Yi.getLocalGroup(m);D&&u.includes(E)&&(D.updateSelfInfo({role:n.GRP_MBR_ROLE_MEMBER}),Yi.emitGroupListUpdate(),Yi.updateConversationGroupProfile(m))}};class FQ{constructor(n){this.type=Wn.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(n)}static parseServerPushElement(n){const g=dh(n);return new FQ(g)}_initContent(n){Object.keys(n).forEach(g=>{switch(g){case"remarkInfo":this.content.handleMessage=n[g];break;case"groupProfile":this._initGroupProfile(n[g]);break;case"memberInfoList":break;default:this.content[g]=n[g]}})}_initGroupProfile(n){this.content.groupProfile={};const g=Object.keys(n);for(let u=0;u<g.length;u++){const E=g[u];Uv[E]&&(this.content.groupProfile[E]=n[E])}}}var jv=new class{constructor(){this._name="GroupSystemNotification"}init(s){this._core=s;const{message:{messageFactory:n},OuterConstant:{MSG_GRP_SYS_NOTICE:g}}=s;n?.registerElementClass(g,FQ)}onNewGroupSystemNotification(s){const{GroupTips:n=[],isInstantMessage:g=!0}=s;this._core.ssoLog.debug("onNewGroupSystemNotification",` count:${n.length} isInstantMessage:${g}`);const{conversationUpdateFieldList:u,messageList:E}=this._handleGroupSystemNotification(n,g),{notificationCenter:m,OuterEvent:D}=this._core;u.length>0&&this._handleGroupSysTemMessage(g,E),g===!0&&E.length>0&&m.emitOuterEvent(D.MESSAGE_RECEIVED,{name:D.MESSAGE_RECEIVED,data:E})}_handleGroupSystemNotification(s,n){const g=[];let u={};for(let E=0;E<s.length;E++){const m=HE(s[E],"system"),{elements:{operationType:D}}=m;if(D===CD)continue;const M=this._assembleMessage(m);this._core.message.messageDataHandler.storeConversationMessage(M)&&(g.push(M),u=this._handleConversationOptions(M,n))}return u.lastMessage=g[g.length-1],{conversationUpdateFieldList:g.length>0?[u]:[],messageList:g}}_assembleMessage(s){const{message:{messageFactory:n},OuterConstant:g,utils:{randomInt:u}}=this._core;s.flow="in",s.conversationType=g.CONV_SYSTEM,s.conversationSubType=s.groupProfile.type,s.conversationID=g.CONV_SYSTEM;const E=n.createMessage(s),m=new FQ(Object.assign(Object.assign({},s.elements),{groupProfile:Object.assign({},s.groupProfile)}));E.setElement(m),E.isSystemMessage=!0;const D=E.sequence===1&&E.random===1,M=E.sequence===2&&E.random===2;return(D||M)&&(E.sequence=u(),E.random=u(),E.generateMessageID()),E}_handleConversationOptions(s,n){const{OuterConstant:g}=this._core,u={conversationID:g.CONV_SYSTEM,unreadCount:0,type:g.CONV_SYSTEM,subType:s.conversationSubType,lastMessage:null};return n&&u.unreadCount++,u}_handleGroupSysTemMessage(s,n){s&&n.forEach(g=>{const{operationType:u}=g.payload;switch(u){case QT:this._handleGroupJoinResult(g);break;case Fv:this._handleMemberKicked(g);break;case pT:this._handleGroupDismissed(g);break;case mT:this._handleGroupInvitedResult(g);break;case dD:this._handleGroupQuitResult(g);break;case TQ:this._handleMessageRemindTypeSynced(g);break;case Mm:this._handleAVChatRoomMemberBanned(g)}})}_handleGroupJoinResult(s){const{groupProfile:n}=s.payload,{groupID:g,type:u}=n,E=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupJoinResult",` groupID:${g} type:${u} hasLocalGroup:${E}`),E||Sd(u)||(Yi.updateLocalGroup([Object.assign({},n)]),Yi.emitGroupListUpdate())}_handleMemberKicked(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupDismissed(s){const{groupProfile:{groupID:n,type:g}}=s.payload;Yi.hasLocalGroup(n)&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleGroupInvitedResult(s){const{groupProfile:n}=s.payload,{groupID:g}=n,u=Yi.hasLocalGroup(g);this._core.ssoLog.debug("_handleGroupInvitedResult",` groupID:${g} hasLocalGroup:${u}`),u||Pl.getGroupProfile({groupID:g}).then(E=>{const{data:{group:m}}=E;Yi.updateLocalGroup([Object.assign({},m)]),Yi.emitGroupListUpdate()})}_handleGroupQuitResult(s){const{groupProfile:{groupID:n,type:g}}=s.payload,u=Yi.hasLocalGroup(n);this._core.ssoLog.debug("_handleGroupQuitResult",` groupID:${n} type:${g} hasLocalGroup:${u}`),u&&this._deleteLocalGroup(n,g),this._updateConversationProfile(n,{unreadCount:0})}_handleMessageRemindTypeSynced(s){const{groupProfile:{groupID:n},messageRemindType:g}=s.payload;this._updateConversationProfile(n,{messageRemindType:g})}_handleAVChatRoomMemberBanned(s){const{groupProfile:{groupID:n,type:g}}=s.payload;this._deleteLocalGroup(n,g)}_deleteLocalGroup(s,n){if(Sd(n)){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:u}}=this._core;g.deleteConversation(`${u}${s}`)}Yi.deleteLocalGroup(s),Yi.emitGroupListUpdate()}_updateConversationProfile(s,n){const{appStore:{conversationStore:g},OuterConstant:{CONV_GROUP:u}}=this._core,E=`${u}${s}`;g.getConversation(E)&&g.updateConversation(E,n)}},SD=new class{init(s){this._core=s,s.ssoLog.debug("GroupNotificationHandler.init"),Kv.init(s),jv.init(s);const{notificationCenter:n,InnerEvent:g}=s,{InnerEventSubType:u}=n;n.subscribeInnerEvent(g.MESSAGE_PUSH,u.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),n.subscribeInnerEvent(g.MESSAGE_PUSH,u.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this),n.subscribeInnerEvent(g.DESTROY,this._dispose,this)}_onNewGroupTipsNotification(s){const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g}}=this._core;n.executeWorkflow(g.RECEIVE_GROUP_TIPS_NOTIFICATION,s)}_onNewGroupSystemNotification(s){jv.onNewGroupSystemNotification(s)}_dispose(){const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_TIPS_NOTIFICATION,this._onNewGroupTipsNotification,this),s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onNewGroupSystemNotification,this)}};const vn={required:!0,rules:["string"],allowEmpty:!1},OQ={required:!0,rules:["number"],allowEmpty:!1},wd={required:!0,rules:["array"],allowEmpty:!1},MD={required:!0,rules:["object"],allowEmpty:!1},NT={createGroup:{name:vn,type:vn},dismissGroup:[Object.assign({key:"groupID"},vn)],joinGroup:{groupID:vn,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},vn)],searchGroupByID:[Object.assign({key:"groupID"},vn)],getGroupProfile:{groupID:vn,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:vn,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:vn,newOwnerID:vn},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},vn)],handleGroupApplication:{handleAction:vn},getGroupMemberList:{groupID:vn},getGroupMemberProfile:{groupID:vn,userIDList:wd,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:vn,userIDList:wd},deleteGroupMember:{groupID:vn,userIDList:wd},setGroupMemberMuteTime:{groupID:vn,userID:vn,muteTime:Object.assign(Object.assign({},OQ),{customValidator:s=>!(s<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:vn,userID:vn,role:vn},setGroupMemberNameCard:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:vn},setGroupMemberCustomField:{groupID:vn,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:wd},markGroupMemberList:{groupID:vn,markType:Object.assign(Object.assign({},OQ),{customValidator:s=>!(s<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:wd},initGroupAttributes:{groupID:vn,groupAttributes:MD},setGroupAttributes:{groupID:vn,groupAttributes:MD},deleteGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},wd),{allowEmpty:!0})},getGroupAttributes:{groupID:vn,keyList:Object.assign(Object.assign({},wd),{allowEmpty:!0})},getGroupCounters:{groupID:vn,keyList:{required:!1,rules:["array"],allowEmpty:!0}},setGroupCounters:{groupID:vn,counters:MD},increaseGroupCounter:{groupID:vn,key:vn,value:OQ},decreaseGroupCounter:{groupID:vn,key:vn,value:OQ}},GT={getGroupList:!0,createGroup:!0,dismissGroup:!0,joinGroup:!0,quitGroup:!0,searchGroupByID:!0,getGroupProfile:!0,updateGroupProfile:!0,changeGroupOwner:!0,getGroupOnlineMemberCount:!0,getGroupApplicationList:!0,handleGroupApplication:!0,getGroupMemberList:!0,getGroupMemberProfile:!0,addGroupMember:!0,deleteGroupMember:!0,setGroupMemberMuteTime:!0,setGroupMemberRole:!0,setGroupMemberNameCard:!0,setGroupMemberCustomField:!0,markGroupMemberList:!0,initGroupAttributes:!0,setGroupAttributes:!0,getGroupAttributes:!0,deleteGroupAttributes:!0,getGroupCounters:!0,setGroupCounters:!0,increaseGroupCounter:!0,decreaseGroupCounter:!0};var bT=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=Yi,this.groupAction=bQ,this.groupAttribute=UQ,this.groupMember=qv,this.groupCounter=IB,this.name="Group"}install(s,n=[]){this._core=s,Wn.init(s),Yi.init(s),bQ.init(s,this),qv.init(s,this),QD.init(s),IB.init(s),UQ.init(s),SD.init(s),s.helper.registerValidateConfig({auth:GT,params:NT}),this._installSubPlugins(n);const{notificationCenter:g,InnerEvent:u}=s;g.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.subscribeInnerEvent(u.DESTROY,this._dispose,this)}getInstalledSubPlugins(){return this._installedSubPlugins}_installSubPlugins(s){const{utils:{isArray:n}}=this._core;s&&n(s)&&s.forEach(g=>{var u;this._installedSubPlugins.includes(g.name)||((u=g.install)===null||u===void 0||u.call(g,this._core,this),this._installedSubPlugins.push(g.name))})}_reset(){Yi.reset(),UQ.reset(),IB.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const uB=new class{init(s){this.core=s}},Wv="AV_MBR_LIST",kT="AV_BAN_MBR",qE={NORMAL_MESSAGE:3,GROUP_TIPS_HAS_ROAMING:4,GROUP_SYSTEM_MESSAGE:5,GROUP_TIPS_HAS_NO_ROAMING:6,BROADCAST_MESSAGE:17,MESSAGE_REVOKED:20,MESSAGE_REACTION:21,LIVE_CUSTOM_DATA:100},Ch={GROUP_DISMISSED:5,QUIT_GROUP:8,AVCHATROOM_MEMBER_BANNED:21},vD=60,RD=2603,LT=2686,UT=2688,PQ=3122;class zv{constructor(n){const{core:g,manager:u,groupID:E,getRequestParams:m,onSuccess:D,onFail:M}=n;this._name="Polling",this._core=g,this._manager=u,this._timeoutID=-1,this._isRunning=!1,this._groupID=E,this._getRequestParams=m,this._onSuccess=D,this._onFail=M}start(){this._isRunning=!0,this._request(),console.log(`${this._name}.start pollingInterval:${this._manager.getCurrentPollingInterval(this._groupID)}`)}isRunning(){return this._isRunning}_request(){return pA(this,void 0,void 0,function*(){try{const n=this._getRequestParams(this._groupID),g=yield function(E,m){return pA(this,void 0,void 0,function*(){const{longPollingKey:D,startSequence:M,startBroadcastSeq:T,simplifiedMessage:P}=E,W={Key:D,StartSeq:M,StartBroadcastSeq:T,DownsizeFlag:P,USP:1,HoldTime:90};return m.common.buildAndSendPacket({servcmd:"group_open_long_polling_http_svc.get_msg",data:W})})}(n,this._core);this._onSuccess(this._groupID,g);const u=this._manager.getCurrentPollingInterval(this._groupID);this._runNextPolling(u)}catch(n){this._onFail(this._groupID,n),this._runNextPolling(2e3)}})}_runNextPolling(n){this.isRunning()&&(this._timeoutID>-1&&clearTimeout(this._timeoutID),this._timeoutID=setTimeout(this._request.bind(this),n))}stop(){console.log(`${this._name}.stop timerID:${this._timeoutID}`),this._timeoutID>-1&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}class hh{constructor(n){this._maxLength=n,this._map=new Map}set(n){var g;if(this._map.size>=this._maxLength){const u=((g=this._map.entries().next().value)===null||g===void 0?void 0:g[0])||"";this._map.delete(u)}this._map.set(n,1)}has(n){return this._map.has(n)}delete(n){this.has(n)&&this._map.delete(n)}clear(){this._map.clear()}}const zu=s=>s===qE.GROUP_TIPS_HAS_NO_ROAMING||s===qE.GROUP_TIPS_HAS_ROAMING,xQ=s=>s===qE.GROUP_SYSTEM_MESSAGE;function Fm(s){const n=function(g){const{E:u,MCT:E,MR:m,MP:D,MTS:M,GId:T,MS:P,CCD:W,F_Account:iA,IsSys:EA,GInf:RA,MsgBody:kA}=g,xA=Do(g,["E","MCT","MR","MP","MTS","GId","MS","CCD","F_Account","IsSys","GInf","MsgBody"]);return Object.assign({Event:u,MsgClientTime:E,MsgRandom:m,MsgPriority:D,MsgTimeStamp:M,ToGroupId:T,MsgSeq:P,CloudCustomData:W,From_Account:iA,IsSystemMsg:EA,GroupInfo:wD(RA),MsgBody:FT(kA)},xA)}(s);return function(g){const{Event:u}=g;(zu(u)||xQ(u))&&(g.From_Account=g.From_Account||"@TIM#SYSTEM"),E=u,(E===qE.BROADCAST_MESSAGE||(m=>m===qE.NORMAL_MESSAGE)(u))&&function(m){const{core:{OuterConstant:D}}=uB;m.CloudCustomData=m.CloudCustomData||"",m.MsgBody=m.MsgBody.map(M=>{if(M.MsgType===D.MSG_CUSTOM){const{content:T={}}=M;M.content=Object.assign({Data:"",Desc:"",Ext:""},T)}return M})}(g);var E;zu(u)&&function(m){const{GroupJoinType:D,MsgOperatorMemberExtraInfo:M={},MsgMemberExtraInfo:T,Operator_Account:P,List_Account:W,OpType:iA}=m.MsgBody||{};typeof D=="number"||iA!==1&&iA!==2||(m.MsgBody.GroupJoinType=iA===2?0:1),T||(m.MsgBody.MsgMemberExtraInfo=W?.map(EA=>({UserId:EA}))),iA!==1||T||(m.MsgBody.MsgMemberExtraInfo=[{UserId:M.UserId}]),m.MsgBody.MsgOperatorMemberExtraInfo=Object.assign({Operator_Account:P,ImageUrl:"",NickName:""},M)}(g),xQ(u)&&function(m){const{MsgOperatorMemberExtraInfo:D={},Operator_Account:M}=m.MsgBody||{};m.MsgBody.MsgMemberExtraInfo=Object.assign({UserId:M,ImageUrl:"",NickName:""},D),m.MsgBody=Object.assign({Authentication:"",RemarkInfo:"",MsgKey:1e3*m.MsgTimeStamp},m.MsgBody),m.MsgBody=Object.keys(m.MsgBody).filter(T=>T!=="MsgOperatorMemberExtraInfo").reduce((T,P)=>Object.assign(Object.assign({},T),{[P]:m.MsgBody[P]}),{})}(g)}(n),n}function wD(s){const n=s||{},{GN:g,GT:u,F_Hd:E,F_NN:m,F_Ll:D}=n,M=Do(n,["GN","GT","F_Hd","F_NN","F_Ll"]),T=Object.assign({GroupName:g,GroupType:u},M);return E&&(T.From_AccountHeadurl=E),m&&(T.From_AccountNick=m),D&&(T.From_AccountLevel=D),T}function FT(s){let n=s;Array.isArray(s)||(n=[s]);const g=n.map(u=>{const{O_Account:E,Opt:m,L_Account:D,RT:M,UDF:T,OpInf:P,OnlineInf:W,MsgMemberExtraInfo:iA}=u,EA=Do(u,["O_Account","Opt","L_Account","RT","UDF","OpInf","OnlineInf","MsgMemberExtraInfo"]),RA=Object.assign({Operator_Account:E,OpType:m,List_Account:D,ReportType:M,UserDefinedField:T},EA);return P&&(RA.MsgOperatorMemberExtraInfo=function(kA){const{Img:xA,NN:LA}=kA,SA=Do(kA,["Img","NN"]);return Object.assign({ImageUrl:xA,NickName:LA},SA)}(P)),iA&&(RA.MsgMemberExtraInfo=function(kA){return kA?.map(xA=>{const{Img:LA,NN:SA}=xA,OA=Do(xA,["Img","NN"]);return Object.assign({ImageUrl:LA,NickName:SA},OA)})}(iA)),W&&(RA.OnlineMemberInfo=function(kA){const{ET:xA,Num:LA}=kA;return{ExpireTime:xA,OnlineMemberNum:LA}}(W)),RA});return Array.isArray(s)?g:g[0]}var Bh=new class{constructor(){this._name="MessageParser",this._sequenceList=new hh(200),this._messageIDList=new hh(100),this._broadcastMessageIDMap=new Map,this._reportMessageStackedCount=0}init(s,n){this._core=s,this._avChatRoomHandler=n}onMessageReceived(s,n,g=!1){this._sortServerMessageList({groupID:s,serverMessageList:n,isHistoryMessage:g});const u=this._handleMessageList(s,n);if(u.length===0)return;if(!g){const{appStore:{conversationStore:T},OuterConstant:{CONV_GROUP:P},common:{buildLastMessage:W}}=this._core,iA=W(u[u.length-1]);T.updateConversation(`${P}${s}`,{lastMessage:iA})}this._checkMessageStacked(u);const E=u.filter(T=>T.isModified===!0),m=u.filter(T=>T.isModified===!1),{OuterEvent:{MESSAGE_RECEIVED:D,MESSAGE_MODIFIED:M}}=this._core;E.length>0&&this._emitEvent({name:M,data:E}),m.length>0&&this._emitEvent({name:D,data:m})}_sortServerMessageList(s){const{groupID:n,serverMessageList:g,isHistoryMessage:u}=s;let E=[];this._avChatRoomHandler.isPollingSimplifiedMessage()&&!u?(g.sort((m,D)=>m.MS-D.MS),E=g.map(m=>m.MS)):(g.sort((m,D)=>m.MsgSeq-D.MsgSeq),E=g.map(m=>m.MsgSeq)),console.log(`${this._name}._sortServerMessageList groupID:${n} count:${E.length} sequenceList:${E}`),E.length=0}_handleMessageList(s,n){var g;const{message:{messageDataHandler:u,messageHelper:E}}=this._core,m=this._avChatRoomHandler.isPollingSimplifiedMessage(),D=[],M=n.length;for(let T=0;T<M;T++){let P=n[T];if(m&&(P=Fm(P)),xQ(P.Event)&&Object.values(Ch).includes(P.MsgBody.ReportType)){this._onGroupDismissed(s);break}if(this._filterMessageItem(P)===null)continue;this._patchMessageType(P);const W=E.parseServerGroupMessage(P),iA=this._createMessage(W);if(iA.level=P.GroupInfo.From_AccountLevel,zu(P.Event)){const EA=Object.assign(Object.assign({},W),{elements:Object.assign({},((g=W?.elements)===null||g===void 0?void 0:g.content)||{})});if(this._avChatRoomHandler.isGroupAttributesUpdated(EA)){this._avChatRoomHandler.handleGroupAttributesUpdated(EA);continue}if(this._avChatRoomHandler.isGroupCounterUpdated(EA)){this._avChatRoomHandler.handleGroupCounterUpdated(EA);continue}}this._filterDuplicateMessage(iA)!==null&&(u.isMessageSentByCurrentInstance(iA)||(W.isModified===1&&(iA.isModified=!0),zu(P.Event)&&this._updateLocalOnlineMemberCountFromTips(P),D.push(iA)))}return D}_patchMessageType(s){const{OuterConstant:n}=this._core;zu(s.Event)&&(s.MsgBody.MsgType=n.MSG_GRP_TIP),xQ(s.Event)&&(s.MsgBody.MsgType=n.MSG_GRP_SYS_NOTICE)}_filterMessageItem(s){const{Event:n}=s;return Object.values(qE).includes(n)?(g=>g===qE.MESSAGE_REVOKED)(n)?(this._handleMessageRevoked(s),null):(g=>g===qE.LIVE_CUSTOM_DATA)(n)?(this._onLiveCustomData(s),null):(g=>g===qE.MESSAGE_REACTION)(n)?null:s:(console.warn(`${this._name}.onMessageReceived unknown event:${n}`),null)}_createMessage(s){const{message:{messageFactory:n},OuterConstant:g}=this._core;let u=g.CONV_GROUP;s.elements.type===g.MSG_GRP_SYS_NOTICE&&(u=g.CONV_SYSTEM);const E=!!s.isSystemMessage,m=n.createMessage(Object.assign(Object.assign({},s),{conversationType:u,isSystemMessage:E,flow:"in"}));return m.setElement(s.elements),m}_filterDuplicateMessage(s){const{common:n}=this._core;if(!n.isUnlimitedAVChatRoom()){if(this._sequenceList.has(s.sequence))return null;this._sequenceList.set(s.sequence)}const g=this._messageIDList.has(s.ID);return g?(console.warn(`${this._name}_filterDuplicateMessageItem ID:${s.ID} has:${g}`),null):(this._messageIDList.set(s.ID),s)}_handleMessageRevoked(s){const{OuterConstant:n,OuterEvent:{MESSAGE_REVOKED:g}}=this._core,{ToGroupId:u,MsgBody:{RevokeMsgList:E},RevokerInfo:{Revoker_Account:m,Reason:D=""}}=s,M=[];E.forEach(T=>{const{TinyId:P,MsgClientTime:W,Random:iA,MsgSeq:EA}=T,RA={conversationID:`${n.CONV_GROUP}${u}`,ID:`${P}-${W}-${iA}`,revoker:m,revokeReason:D,revokerInfo:{userID:m,nick:"",avatar:""},sequence:EA};M.push(RA)}),M.length!==0&&this._emitEvent({name:g,data:M})}_onLiveCustomData(s){const{OuterEvent:{ROOM_CUSTOM_DATA_RECEIVED:n}}=this._core,{ToGroupId:g,MsgSeq:u,MsgTimeStamp:E,MsgBody:m}=s,D=m?.Content||m?.MsgContent||"";this._emitEvent({name:n,data:D}),console.log(`${this._name}._onLiveCustomData groupID:${g} sequence:${u} time:${E} data:${D}`)}_onGroupDismissed(s){this._avChatRoomHandler.reset(s)}_checkMessageStacked(s){const{length:n}=s;if(n>=100&&this._reportMessageStackedCount<5){const g=this._avChatRoomHandler.getJoinedGroups();this._core.ssoLog.info("MessageStacked",`count:${n} groupID:${g.join(",")}`),this._reportMessageStackedCount+=1}}_emitEvent(s){this._core.notificationCenter.emitOuterEvent(s.name,s)}onBroadcastMessageReceived(s){const{message:{messageHelper:n},OuterEvent:{MESSAGE_RECEIVED:g}}=this._core,u=this._avChatRoomHandler.isPollingSimplifiedMessage(),E=[],m=s.length;for(let D=0;D<m;D++){let M=s[D];u&&(M=Fm(M));const T=n.parseServerGroupMessage(M);if(!Object.values(qE).includes(M.Event)){console.warn(`${this._name}.onBroadcastMessageReceived unknown event:${M.Event}`);continue}const P=this._createMessage(T);P.isBroadcastMessage=!0,this._broadcastMessageIDMap.has(P.ID)||(E.push(P),this._broadcastMessageIDMap.set(P.ID,1))}E.length>0&&this._emitEvent({name:g,data:E})}_updateLocalOnlineMemberCountFromTips(s){const{utils:{isEmpty:n}}=this._core,{ToGroupId:g,MsgBody:{OnlineMemberInfo:u}}=s;if(n(u))return;const{OnlineMemberNum:E=0,ExpireTime:m=vD}=u,D=Date.now();let M=this._avChatRoomHandler.getLocalOnlineMemberCount(g);n(M)?M={lastReqTime:0,lastSyncTime:0,latestUpdateTime:D,memberCount:E,expireTime:m}:(M.latestUpdateTime=D,M.memberCount=E),this._avChatRoomHandler.updateLocalOnlineMemberCount(g,M)}reset(){this._reportMessageStackedCount=0,this._sequenceList.clear(),this._messageIDList.clear(),this._broadcastMessageIDMap.clear()}};const EB=s=>{const{core:{store:n}}=uB;return(n.get("cloudConfig")||{})[s]},Qh=s=>{const{core:{utils:{isUndefined:n}}}=uB;return!n(s)},YQ=()=>{const s=EB("polling_interval");return Qh(s)?parseInt(s,10):300},dB=()=>{const s=EB("polling_simplified_msg");return Qh(s)?parseInt(s,10):0};var Zv=new class{constructor(){this._name="GetAVChatRoomOnlineMemberCount"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},OuterConstant:g}=this._core,u=n.getGroup(s);return u?u.type===g.GRP_AVCHATROOM?this._getOnlineMemberCount(s):this._parentPlugin.groupAction.getGroupOnlineMemberCount(s):{code:0,data:{memberCount:0}}})}_getOnlineMemberCount(s){return pA(this,void 0,void 0,function*(){const n="_getOnlineMemberCount",{utils:{isEmpty:g}}=this._core,u=Pg.getLocalOnlineMemberCount(s);if(g(u)||this._isExpired(s)){const{memberCount:E=0}=yield this._getOnlineMemberCountFromServer(s);return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${E} from server.`),{code:0,data:{memberCount:E}}}return console.log(`${this._name}.${n} ok, groupID:${s} memberCount:${u.memberCount} from local.`),{code:0,data:{memberCount:u.memberCount}}})}_isExpired(s){const n=Pg.getLocalOnlineMemberCount(s),g=Date.now(),u=g-n.lastSyncTime>1e3*n.expireTime,E=g-n.latestUpdateTime>1e4,m=g-n.lastReqTime>3e3;return u&&E&&m}_getOnlineMemberCountFromServer(s){return pA(this,void 0,void 0,function*(){const n="_getOnlineMemberCountFromServer";try{const g=yield function(M,T){return pA(this,void 0,void 0,function*(){const P={GroupId:M};return T.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:P})})}(s,this._core),{OnlineMemberNum:u=0,ExpireTime:E=vD}=g||{},m=Date.now(),D={lastSyncTime:m,latestUpdateTime:m,lastReqTime:m,memberCount:u,expireTime:E};return Pg.updateLocalOnlineMemberCount(s,D),{memberCount:u}}catch(g){const u=new this._core.helper.ChatError({functionName:n,code:g?.errorCode,message:g?.errorInfo});throw console.error(`${this._name}.${n} fail:`,u),u}})}},Pg=new class{constructor(){this._name="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this._onlineMemberCountMap=new Map,this._pollingIntervalMap=new Map,this._pollingNoMessageCountMap=new Map,this._membersReqInfoMap=new Map,this._startBroadcastSequence=1}init(s,n){this._core=s,this._parentPlugin=n,Bh.init(s,this),s.ssoLog.debug("AVChatRoomHandler.init")}onAVChatRoomSystemNotification(s){const{OuterConstant:{GRP_AVCHATROOM:n}}=this._core,{GroupTips:g=[]}=s;for(let u=0;u<g.length;u++){const{MsgBody:E,GroupInfo:{GroupId:m,GroupType:D}}=g[u],M=Object.values(Ch).includes(E.ReportType);D===n&&M&&this.reset(m)}}getCurrentPollingInterval(s){return this._pollingIntervalMap.get(s)||YQ()}isPollingSimplifiedMessage(){return dB()!==0}isGroupAttributesUpdated(s){return this._parentPlugin.groupAttribute.isGroupAttributesUpdated(s)}handleGroupAttributesUpdated(s){this._parentPlugin.groupAttribute.handleGroupAttributesUpdated(s)}updateLocalOnlineMemberCount(s,n){const{notificationCenter:g,OuterEvent:{GROUP_ONLINE_MEMBER_COUNT_CHANGED:u}}=this._core;this._onlineMemberCountMap.set(s,n),g.emitOuterEvent(u,{name:u,data:{groupID:s,count:n.memberCount}})}getLocalOnlineMemberCount(s){return this._onlineMemberCountMap.get(s)||{}}hasPollingInstance(s){return this._pollingInstanceMap.has(s)}getJoinedLiveList(){const{OuterConstant:{GRP_LIVE:s}}=this._core;let n=[];return this._joinedGroupMap.size>0&&(n=[...this._joinedGroupMap.values()].filter(g=>g.type===s)),n}handleJoinGroupResult(s){return pA(this,void 0,void 0,function*(){const{utils:{isUndefined:n},OuterConstant:{CONV_GROUP:g},apiMap:{getConversationProfile:u},OuterConstant:E}=this._core,{longPollingKey:m,group:D,historyMessageList:M=[]}=s,{groupID:T}=D;return yield this._preCheck(D),this._joinedGroupMap.set(T,D),this._parentPlugin.groupDataHandler.updateLocalGroup([D]),this._parentPlugin.groupDataHandler.emitGroupListUpdate(),u(`${g}${T}`),Zv.getGroupOnlineMemberCount(T),M.length>0&&Bh.onMessageReceived(T,M,!0),n(m)?{code:0,data:{status:E.JOIN_STATUS_SUCCESS,group:D}}:{code:0,data:this.startMessageLongPolling(s)}})}isGroupCounterUpdated(s){return this._parentPlugin.groupCounter.isGroupCounterUpdated(s)}handleGroupCounterUpdated(s){this._parentPlugin.groupCounter.handleGroupCounterUpdated(s)}_preCheck(s){return pA(this,void 0,void 0,function*(){const{common:n,OuterConstant:g,helper:u,apiMap:{quitGroup:E},ssoLog:m}=this._core;if(n.isUnlimitedAVChatRoom()){if(this._pollingInstanceMap.size>(()=>{const T=EB("polling_count_limit");return Qh(T)&&T>0?parseInt(T,10):20})())throw new u.ChatError({code:UT,message:"the count of longPolling exceeds the max limit"});return}if(this._joinedAVChatRoomCount()===0||s.type===g.GRP_LIVE)return;const[D,M]=this._joinedGroupMap.entries().next().value;if(M.selfInfo.role===g.GRP_MBR_ROLE_OWNER)this._parentPlugin.groupDataHandler.deleteLocalGroup(D);else try{yield E(D)}catch(T){m.debug("quitGroup",`${this._name}._preCheck quitGroup failed, groupID:${D} info:`,T)}this.reset(D)})}startMessageLongPolling(s){const{OuterConstant:n}=this._core,{longPollingKey:g,startSequence:u=1,group:E}=s,{groupID:m}=E;return this._pollingRequestInfoMap.set(m,{longPollingKey:g,startSequence:u}),this._pollingIntervalMap.set(m,YQ()),this._startPolling(m),this._reportLongPollingCount(),{status:n.JOIN_STATUS_SUCCESS,group:E}}_startPolling(s){if(this._core.ssoLog.debug("_startPolling",`${this._name}._startPolling groupID:${s}`),this._pollingInstanceMap.has(s)){const g=this._pollingInstanceMap.get(s);return void(g?.isRunning()||g==null||g.start())}const n=new zv({core:this._core,manager:this,groupID:s,getRequestParams:this._handleRequestParams.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});n.start(),this._pollingInstanceMap.set(s,n)}_handleRequestParams(s){const{longPollingKey:n,startSequence:g}=this._pollingRequestInfoMap.get(s)||{};return s===[...this._pollingInstanceMap.keys()][0]?{longPollingKey:n,startSequence:g,startBroadcastSeq:this._startBroadcastSequence,simplifiedMessage:dB()}:{longPollingKey:n,startSequence:g,simplifiedMessage:dB()}}_handleSuccess(s,n){const{ErrorCode:g}=n;if(g!==0){const{longPollingKey:u,startSequence:E}=this._pollingRequestInfoMap.get(s)||{};return void console.warn(`${this._name}._handleSuccess groupID:${s} key:${u} startSeq:${E} errorCode:${g}`)}this._hasJoinedAVChatRoom(s)&&this._handleResponseData(s,n)}_handleResponseData(s,n){const{Key:g,NextSeq:u,NextBroadcastSeq:E,RspMsgList:m=[],RspBroadcastMsgList:D=[]}=n;if(g&&u&&this._pollingRequestInfoMap.set(s,{longPollingKey:g,startSequence:u}),E&&E>this._startBroadcastSequence&&(this._startBroadcastSequence=E),m.length>0)this._getPollingNoMessageCount(s)!==0&&(this._updatePollingNoMessageCount(s,0),this._pollingIntervalMap.set(s,YQ())),Bh.onMessageReceived(s,m);else{let M=this._getPollingNoMessageCount(s);if(M+=1,this._updatePollingNoMessageCount(s,M),M===(()=>{const T=EB("polling_no_msg_count");return Qh(T)?parseInt(T,10):20})()){const T=YQ()+(()=>{const P=EB("polling_interval_plus");return Qh(P)?parseInt(P,10):2e3})();this._pollingIntervalMap.set(s,T)}}D.length>0&&Bh.onBroadcastMessageReceived(D)}_handleFailure(s,n){const{ssoLog:g,utils:{safeStringify:u}}=this._core;g.warn("polling",`${this._name}._handleFailure groupID:${s} error: ${u(n)}`)}_joinedAVChatRoomCount(){const{OuterConstant:s}=this._core;let n=[];return this._joinedGroupMap.size>0&&(n=this.getJoinedGroups().filter(g=>g.type===s.GRP_AVCHATROOM)),n.length}_hasJoinedAVChatRoom(s){return this._joinedGroupMap.has(s)}getJoinedGroups(){return[...this._joinedGroupMap.values()]}updateLocalLiveGroup(s,n){this._joinedGroupMap.set(s,n),this._parentPlugin.groupDataHandler.updateLocalGroup([n])}handleLiveHistoryMessages(s,n){Bh.onMessageReceived(s,n,!0)}isOverFrequencyLimit(s){if(!this._membersReqInfoMap.has(s))return this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1;let{startTime:n,requestCount:g}=this._membersReqInfoMap.get(s);const{interval:u,count:E}=(()=>{const m=EB("av_members_freq_limit");if(Qh(m)){const{interval:D,count:M}=JSON.parse(m);if(M>0&&D>0)return{interval:D,count:M}}return{interval:30,count:4}})();return Date.now()-n>1e3*u?(this._membersReqInfoMap.set(s,{startTime:Date.now(),requestCount:1}),!1):(g+=1,this._membersReqInfoMap.set(s,{startTime:n,requestCount:g}),g>E)}_stopPolling(s){if(this._core.ssoLog.debug("_stopPolling",`${this._name}._stopPolling groupID:${s}`),s){const{appStore:{conversationStore:n},OuterConstant:{CONV_GROUP:g}}=this._core;n.deleteConversation(`${g}${s}`);const u=this._pollingInstanceMap.get(s);return u?.stop(),this._parentPlugin.groupDataHandler.deleteLocalGroup(s),this._pollingInstanceMap.delete(s),this._pollingRequestInfoMap.delete(s),this._joinedGroupMap.delete(s),this._onlineMemberCountMap.delete(s),this._pollingIntervalMap.delete(s),this._pollingNoMessageCountMap.delete(s),void this._membersReqInfoMap.delete(s)}for(const n of this._pollingInstanceMap.values())n?.stop();this._pollingInstanceMap.clear(),this._pollingRequestInfoMap.clear(),this._joinedGroupMap.clear(),this._onlineMemberCountMap.clear(),this._pollingIntervalMap.clear(),this._pollingNoMessageCountMap.clear(),this._membersReqInfoMap.clear()}_updatePollingNoMessageCount(s,n){this._pollingNoMessageCountMap.set(s,n)}_getPollingNoMessageCount(s){return this._pollingNoMessageCountMap.get(s)||0}_reportLongPollingCount(){const s=this._joinedGroupMap.size;if(s>1){const{common:n,OuterConstant:g,ssoLog:u}=this._core,E=n.isUnlimitedAVChatRoom()?1:0,m=[],D=[];Array.from(this._joinedGroupMap.values()).forEach(({groupID:M,type:T})=>{T===g.GRP_LIVE?D.push(M):m.push(M)}),u.info("longPollingCount",String(s),{moreMessage:`av:${m.join(",")} live:${D.join(",")} code: ${E}`,eventType:29})}}reset(s){this._stopPolling(s),this._startBroadcastSequence=1,Bh.reset()}},Xv=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"joinGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}joinGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.joinGroup(s),{data:{status:u,group:{type:E}}}=g;return E===n.GRP_AVCHATROOM?u===n.JOIN_STATUS_ALREADY_IN_GROUP?g:Pg.handleJoinGroupResult(g.data):g})}},OT=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"quitGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}quitGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.quitGroup(s),{data:{type:u}}=g;return u===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},$v=new class{init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"dismissGroup",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}dismissGroup(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=yield this._parentPlugin.groupAction.dismissGroup(s),{data:{type:u}}=g;return u===n.GRP_AVCHATROOM&&Pg.reset(s),g})}},Om=new class{constructor(){this._name="GetAVChatRoomMemberList"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const{appStore:{groupStore:n},helper:g,OuterConstant:u}=this._core,{groupID:E}=s,m=n.getGroup(E);if(m?.type===u.GRP_AVCHATROOM&&g.checkBusinessCapabilityBits(Wv)){if(Pg.isOverFrequencyLimit(E))throw{code:2996,message:`Over frequency limit: get_members-${E}`};return this._getGroupMemberList(s)}return this._parentPlugin.groupMember.getGroupMemberList(s)})}_getGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="_getGroupMemberList",{helper:g}=this._core;try{const u=yield function(M,T){return pA(this,void 0,void 0,function*(){const{groupID:P,offset:W=0}=M,iA={GroupId:P,Timestamp:W};return T.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.get_members",data:iA})})}(s,this._core),{MemberList:E=[],NextTimestamp:m=0}=u||{},D=this._handleMemberList(E);return console.log(`${this._name}.${n} ok, groupID:${s.groupID} count:${D.length} nextOffset:${m}`),{code:0,data:{memberList:D,offset:m}}}catch(u){const E=new g.ChatError({functionName:n,code:u?.errorCode,message:u?.errorInfo});throw console.error(`${this._name}.${n} fail:`,E),E}})}_handleMemberList(s){return s.map(n=>{const{Member_Account:g,NickName:u="",Avatar:E="",Remark:m="",JoinTime:D=0,Marks:M=[]}=n;return{userID:g,nick:u,avatar:E,remark:m,joinTime:D,marks:M,isOnline:!0}})}},Pm=new class{constructor(){this._name="DeleteAVChatRoomMember"}init(s,n){this._core=s,this._parentPlugin=n;const{helper:g}=s;g.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>n.getInstalledSubPlugins().length>0})}deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="deleteGroupMember",{appStore:{groupStore:g},utils:{isUndefined:u},helper:E,OuterConstant:m}=this._core,{groupID:D}=s,M=g.getGroup(D);if(u(M))throw new E.ChatError({functionName:n,code:RD});if(M.type===m.GRP_AVCHATROOM){if(E.checkBusinessCapabilityBits(kT))return this._deleteGroupMember(s);throw new E.ChatError({functionName:n,code:PQ})}return this._parentPlugin.groupMember.deleteGroupMember(s)})}_deleteGroupMember(s){return pA(this,void 0,void 0,function*(){const n="_deleteGroupMember",{appStore:{groupStore:g},helper:u,ssoLog:E}=this._core,{groupID:m,duration:D=0,userIDList:M}=s;if(D===0)throw new u.ChatError({functionName:n,code:LT});try{return yield function(T,P){return pA(this,void 0,void 0,function*(){const{groupID:W,userIDList:iA,duration:EA,reason:RA}=T,kA={GroupId:W,Members_Account:iA,Duration:EA,Description:RA};return P.common.buildAndSendPacket({servcmd:"group_open_http_svc.ban_group_member",data:kA})})}(s,this._core),E.debug(n,`${this._name}.${n} ok, groupID:${m}`),{code:0,data:{group:g.getGroup(m),userIDList:M}}}catch(T){throw new u.ChatError({functionName:n,code:T?.errorCode,message:T?.errorInfo})}})}},_d=new class{constructor(){this._name="MarkAVChatRoomMember"}init(s){this._core=s;const{helper:n}=s;n.registerApi({apiName:"markGroupMemberList",context:this})}markGroupMemberList(s){return pA(this,void 0,void 0,function*(){const n="markGroupMemberList",{groupID:g,markType:u,enableMark:E,userIDList:m=[]}=s,D=this._generateRequestData(s);try{const M=yield function(iA,EA){return pA(this,void 0,void 0,function*(){const{groupID:RA,operationType:kA,memberList:xA}=iA,LA={GroupId:RA,CommandType:kA,MemberList:xA};return EA.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.modify_user_info",data:LA})})}(D,this._core),{MemberList:T=[]}=M||{},{successUserIDList:P,failureUserIDList:W}=this._handleResult(T,m);return{code:0,data:{successUserIDList:P,failureUserIDList:W},successLog:{message:`${this._name}.${n} ok, groupID:${g} markType:${u} enableMark:${E} success:${P.length} fail:${W.length}`}}}catch(M){throw new this._core.helper.ChatError({functionName:n,code:M?.errorCode,message:M?.errorInfo})}})}_generateRequestData(s){const{groupID:n,markType:g,enableMark:u,userIDList:E=[]}=s,m=u===!0?1:2,D=[...E];return D.length>500&&console.warn(`${this._name}._generateRequestData, the length of userIDList cannot exceed 500`),{groupID:n,operationType:m,memberList:D.map(M=>({Member_Account:M,Marks:[g]}))}}_handleResult(s,n){const g=[],u=[];return s.length===n.length?(g.push(...n),{successUserIDList:g,failureUserIDList:u}):(n.forEach(E=>{s.find(m=>m.Member_Account===E)?g.push(E):u.push(E)}),{successUserIDList:g,failureUserIDList:u})}},AR=new class{init(s,n){s.ssoLog.debug("AVChatRoomAction.init"),Xv.init(s,n),OT.init(s,n),$v.init(s,n),Om.init(s,n),Zv.init(s,n),Pm.init(s,n),_d.init(s)}},eR=new class{constructor(){this._name="LiveHandler"}init(s){this._core=s;const{helper:n,ssoLog:g}=s;n.registerExperimentalAPI("startMessageLongPolling",this),n.registerExperimentalAPI("stopMessageLongPolling",this),g.debug("LiveHandler.init")}startMessageLongPolling(s){const{common:n,utils:{isEmpty:g},OuterConstant:u,ssoLog:E}=this._core,{groupID:m,longPollingKey:D,longPollingSequence:M=1}=s;if(g(D))return E.warn("startMessageLongPolling",`${this._name}.startMessageLongPolling longPollingKey is empty.`),Promise.resolve({});Pg.hasPollingInstance(m)&&this.stopMessageLongPolling({groupID:m});const T=Pg.getJoinedLiveList(),P=n.isUnlimitedAVChatRoom();!P&&T.length>0&&this.stopMessageLongPolling({groupID:T[0].groupID}),E.debug("startMessageLongPolling",`${this._name}.startMessageLongPolling isUnlimited:${P} groupID:${m} longPollingKey:${D} longPollingSequence:${M}`);const W={groupID:m,type:u.GRP_LIVE};return Pg.updateLocalLiveGroup(m,W),this._getLiveHistoryMessages({groupID:m,longPollingKey:D,startSequence:M}),Pg.startMessageLongPolling({group:W,longPollingKey:D,startSequence:M})}stopMessageLongPolling(s){const{groupID:n}=s;return Pg.reset(n),this._core.ssoLog.debug("stopMessageLongPolling",`${this._name}.stopMessageLongPolling ok, groupID:${n}`),Promise.resolve({groupID:n})}_getLiveHistoryMessages(s){return pA(this,void 0,void 0,function*(){const{ssoLog:n}=this._core,{groupID:g}=s;try{const u=yield function(m,D){return pA(this,void 0,void 0,function*(){const{groupID:M,longPollingKey:T,startSequence:P}=m,W={GroupId:M,LongPollingKey:T,PullPreSeq:P};return D.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_huge_group_msg",data:W})})}(s,this._core),{RspMsgList:E=[]}=u||{};n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages ok, groupID:${g} count:${E.length}`),E.length>0&&Pg.handleLiveHistoryMessages(g,E)}catch(u){n.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages failed, groupID:${g} info:${u.message}`)}})}},xm=new class{constructor(){this.name="AVChatRoom"}install(s,n){this._core=s,uB.init(s),Pg.init(s,n),AR.init(s,n),eR.init(s);const{notificationCenter:g,InnerEvent:u}=s,{InnerEventSubType:E}=g;g.subscribeInnerEvent(u.MESSAGE_PUSH,E.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),g.subscribeInnerEvent(u.LOGOUT,this._reset,this),g.subscribeInnerEvent(u.DESTROY,this._dispose,this)}_onAVChatRoomSystemNotification(s){Pg.onAVChatRoomSystemNotification(s)}_reset(){Pg.reset()}_dispose(){this._reset();const{notificationCenter:s,InnerEvent:n}=this._core,{InnerEventSubType:g}=s;s.unSubscribeInnerEvent(n.MESSAGE_PUSH,g.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this._dispose,this)}};const Ag=new class{init(s){this.core=s}},Ym="message",CB="user",hB={OR:"or",AND:"and"},vI=20,PT=20,tR=20,ph={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!s||!!(Array.isArray(s)&&s.length<=5)||"keywordList should be an array and length <= 5"},Vm={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>!s||!![hB.OR,hB.AND].includes(s)||"keywordListMatchType should be OR or AND"},SC={required:!1,rules:["number"],allowEmpty:!0,customValidator:s=>typeof s=="number"&&s>=1&&s<=100||"count must be a number between 1 and 100"},VQ={required:!1,rules:["string"],allowEmpty:!0},iR={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core;if(!Array.isArray(s))return"groupTypeList should be an array";const g=[n.GRP_PUBLIC,n.GRP_COMMUNITY,n.GRP_WORK,n.GRP_MEETING];let u=!1;for(let E=0;E<s.length;E++)if(g.indexOf(s[E])===-1){u=!0;break}return!u||"groupTypeList should be supported group type"}},oR={required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core,g=[n.MSG_TEXT,n.MSG_IMAGE,n.MSG_AUDIO,n.MSG_FILE,n.MSG_VIDEO,n.MSG_LOCATION,n.MSG_CUSTOM,n.MSG_MERGER];let u=!1;for(let E=0;E<s.length;E++)if(g.indexOf(s[E])===-1){u=!0;break}return!u||"messageTypeList should be supported message type"}},sR={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core;return!(!s?.startsWith(n.CONV_C2C)&&!s?.startsWith(n.CONV_GROUP)&&s!==n.CONV_SYSTEM)||"conversationID is invalid"}},Jm=s=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:n=>typeof n=="number"&&n>=0||`${s} should be a number >= 0';`}),_D={required:!1,rules:["string"],allowEmpty:!0,customValidator:s=>{const{OuterConstant:n}=Ag.core;return!![n.GENDER_FEMALE,n.GENDER_MALE].includes(s)||"gender is invalid"}},Hm={searchCloudMessages:{keywordList:ph,keywordListMatchType:Vm,cursor:VQ,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:s=>!!(Array.isArray(s)&&s.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:oR,conversationID:sR,timePosition:Jm("timePosition"),timePeriod:Jm("timePeriod")},searchCloudUsers:{keywordList:ph,keywordListMatchType:Vm,cursor:VQ,count:SC,miniBirthday:Jm("miniBirthday"),maxBirthday:Jm("maxBirthday"),gender:_D},searchCloudGroupMembers:{keywordList:ph,keywordListMatchType:Vm,cursor:VQ,count:SC,groupTypeList:iR,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:ph,keywordListMatchType:Vm,cursor:VQ,count:SC,groupTypeList:iR}},TD={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var ND=new class{constructor(){this.name="CloudSearch"}install(s){this._core=s,Ag.init(s),s.helper.registerApi({apiName:"searchCloudMessages",context:this}),s.helper.registerApi({apiName:"searchCloudUsers",context:this}),s.helper.registerApi({apiName:"searchCloudGroupMembers",context:this}),s.helper.registerApi({apiName:"searchCloudGroups",context:this}),s.helper.registerValidateConfig({auth:TD,params:Hm})}searchCloudMessages(s){return pA(this,void 0,void 0,function*(){try{const{OuterConstant:n,helper:g}=this._core,{conversationID:u,timePeriod:E,timePosition:m}=s,D=Do(s,["conversationID","timePeriod","timePosition"]),M=Object.assign({count:100},D);u&&(u.startsWith(n.CONV_C2C)?M.account=u.replace(n.CONV_C2C,""):u.startsWith(n.CONV_GROUP)&&(M.groupID=u.replace(n.CONV_GROUP,""))),this._setTimeRangeParams(M,{timePeriod:E,timePosition:m});const T=yield function(LA){return pA(this,void 0,void 0,function*(){const{count:SA,keywordList:OA,keywordListMatchType:JA,senderUserIDList:ae,messageTypeList:re,endTime:_i,startTime:Ti,cursor:Lt,account:Ni,groupID:cs}=LA,Me={Count:SA,KeywordList:OA,MatchType:JA,SendUserIDList:ae,MsgTypeList:re,EndTime:_i,StartTime:Ti,Cursor:Lt,PeerAccount:Ni,GroupID:cs};return Ag.core.common.buildAndSendPacket({servcmd:"message_search.query",data:Me})})}(M);if(!T)return{code:0,data:{}};const{ErrorCode:P,ErrorInfo:W,TotalCount:iA,Cursor:EA="",ConversationMsgs:RA=[]}=T;if(P!==0)throw{errorCode:P,errorInfo:W};const kA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} res: totalCount:${iA}`;return{code:0,data:{searchResultList:RA.map(LA=>{const{MsgList:SA,Count:OA,GroupID:JA,UserID:ae}=LA,re=JA?`${n.CONV_GROUP}${JA}`:`${n.CONV_C2C}${ae}`;if(this._isSearchingAllConversations(s)&&OA>1)return{conversationID:re,messageCount:OA,messageList:[]};const _i=SA.map(Ti=>g.isEmpty(JA)?function(Lt,Ni){const cs=Ni.OuterConstant.CONV_C2C,Me=Ni.message.messageHelper.parseServerPushMessage(Lt),mt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Me),{conversationType:cs,flow:"in"}));return mt.setElement(Me.elements),mt}(Ti,this._core):function(Lt,Ni){const cs=Ni.OuterConstant.CONV_GROUP,Me=Ni.message.messageHelper.parseServerGroupMessage(Lt),mt=Ni.message.messageFactory.createMessage(Object.assign(Object.assign({},Me),{conversationType:cs,flow:"in"}));return mt.setElement(Me.elements),mt}(Ti,this._core));return{conversationID:re,messageCount:OA,messageList:_i}}),cursor:EA,totalCount:iA},successLog:{message:kA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:Ym,functionName:"searchCloudMessages"})}})}searchCloudUsers(s){return pA(this,void 0,void 0,function*(){var n;try{const{keywordListMatchType:g,count:u=PT}=s,E=Do(s,["keywordListMatchType","count"]),m=Object.assign({count:u,keywordListMatchType:g===hB.AND?1:0},E);this._setBirthdayRangeParams(m,s);const D=yield function(kA){return pA(this,void 0,void 0,function*(){const{count:xA,keywordList:LA,keywordListMatchType:SA,miniBirthday:OA,maxBirthday:JA,cursor:ae,gender:re}=kA,_i={Count:xA,Keywords:LA,KeywordMatchType:SA,Cursor:ae,UserBirthStart:OA,UserBirthEnd:JA,Gender:re};return Ag.core.common.buildAndSendPacket({servcmd:"user_search.query",data:_i})})}(m);if(!D)return{error:0,data:{}};const{ErrorCode:M,ErrorInfo:T,TotalCount:P,Cursor:W="",Users:iA=[]}=D;if(M!==0)throw{errorCode:M,errorInfo:T};const EA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${P}`,RA=[];for(let kA=0,xA=iA.length;kA<xA;kA++){const{UserID:LA,ProfileItems:SA}=iA[kA];if(LA===this._core.OuterConstant.USER_NOT_FOUND||LA==="")continue;const OA=SA.map(ae=>({tag:ae.Tag,value:ae.StrValue})),JA=(n=this._core.user.userProfile)===null||n===void 0?void 0:n.createProfile(LA,OA);RA.push(JA)}return{code:0,data:{searchResultList:RA,cursor:W,totalCount:P},successLog:{message:EA}}}catch(g){const{errorCode:u,errorInfo:E}=g||{};this._handleError({errorCode:u,errorInfo:E,searchType:CB,functionName:"searchCloudUsers"})}})}searchCloudGroupMembers(s){return pA(this,void 0,void 0,function*(){try{const{count:n=tR,keywordListMatchType:g}=s,u=Do(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===hB.AND?1:0},u),m=yield function(RA){return pA(this,void 0,void 0,function*(){const{count:kA,keywordList:xA,keywordListMatchType:LA,groupTypeList:SA,cursor:OA,groupIDList:JA}=RA,ae={Count:kA,Keywords:xA,KeywordMatchType:LA,Cursor:OA,GroupType:SA,GroupIdList:JA};return Ag.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:ae})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,GroupMembers:T=[],Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`,EA=new Map;return T.forEach(RA=>{const{GroupID:kA,GroupName:xA,GroupType:LA,GroupFaceUrl:SA,GroupMemberUserName:OA,GroupMemberUserID:JA,GroupMemberNameCard:ae,GroupMemberAvatar:re=""}=RA,_i={groupID:kA,name:xA,type:LA,avatar:SA},Ti={userID:JA,nick:OA,nameCard:ae,avatar:re};if(EA.has(kA)){const Lt=EA.get(kA);Lt.memberList.push(Ti),EA.set(kA,Lt)}else EA.set(kA,{groupInfo:_i,memberList:[Ti]})}),{code:0,data:{searchResultList:[...EA.values()],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:CB,functionName:"searchCloudGroupMembers"})}})}searchCloudGroups(s){return pA(this,void 0,void 0,function*(){try{const{count:n=vI,keywordListMatchType:g}=s,u=Do(s,["count","keywordListMatchType"]),E=Object.assign({count:n,keywordListMatchType:g===hB.AND?1:0},u),m=yield function(EA){return pA(this,void 0,void 0,function*(){const{count:RA,keywordList:kA,keywordListMatchType:xA,groupTypeList:LA,cursor:SA}=EA,OA={Count:RA,Keywords:kA,KeywordMatchType:xA,Cursor:SA,GroupType:LA};return Ag.core.common.buildAndSendPacket({servcmd:"group_search.query",data:OA})})}(E);if(!m)return{code:0,data:{}};const{ErrorCode:D,ErrorInfo:M,Groups:T,Cursor:P,TotalCount:W}=m;if(D!==0)throw{errorCode:D,errorInfo:M};const iA=`keywordList:${s.keywordList} keywordListMatchType:${s.keywordListMatchType} cursor:${s.cursor} count:${s.count} res: totalCount:${W}`;return{code:0,data:{searchResultList:T?.map(EA=>function(RA){const{GroupFaceUrl:kA,GroupID:xA,GroupIntroduction:LA,GroupMemberNum:SA,GroupName:OA,GroupOwnerTinyID:JA,GroupOwnerUserID:ae,GroupOwnerUserName:re,GroupType:_i,GroupAddOption:Ti,GroupInviteOption:Lt}=RA;return{avatar:kA,groupID:xA,introduction:LA,memberCount:SA,name:OA,ownerTinyID:JA,ownerID:ae,ownerNick:re,type:_i,joinOption:Ti,inviteOption:Lt}}(EA))||[],cursor:P,totalCount:W},successLog:{message:iA}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};this._handleError({errorCode:g,errorInfo:u,searchType:CB,functionName:"searchCloudGroups"})}})}_setTimeRangeParams(s,{timePeriod:n,timePosition:g}){n&&n>0&&(s.startTime=g&&g>0?g-n:this._core.helper.timeManager.getServerTimeSeconds()-n),s.startTime&&s.startTime<0&&(s.startTime=void 0),g&&g>0&&(s.endTime=g)}_handleError({errorCode:s,errorMessage:n,searchType:g}){const{helper:u}=this._core;let E=s;throw s===60020?E="SearchUnable":g!==Ym&&s===27003?E="SearchParamsError":g!==Ym&&s===60018&&(E="SearchOverLimit"),new u.ChatError({code:E,message:n})}_isSearchingAllConversations(s){return this._core.helper.isEmpty(s.conversationID)}_setBirthdayRangeParams(s,n){const{miniBirthday:g,maxBirthday:u}=n;g!==void 0&&(s.miniBirthday=g,u===void 0&&(s.maxBirthday=4294967295)),u!==void 0&&(s.maxBirthday=u)}};function mh(s,n){return Math.round(Number(s)*Math.pow(10,n))/Math.pow(10,n)}const nR="qualityStat",GD="im-ssolog-quality-stat";var bD;(function(s){s[s.ONLINE=8]="ONLINE"})(bD||(bD={}));const qm="networkRTT",fh="messageE2EDelay",BB="sendMessageC2C",yh="sendMessageGroup",Dh="sendMessageGroupAV",QB="sendMessageRichMedia",pB="cosUpload",MC="messageReceivedGroup",JQ="messageReceivedGroupAVPush",HQ="messageReceivedGroupAVPull",xT={[qm]:2,[fh]:3,[BB]:4,[yh]:5,[Dh]:6,[QB]:7,[MC]:8,[JQ]:9,[HQ]:10,[pB]:11},rR=[BB,yh,Dh,QB,pB],Sh=[MC,JQ,HQ],mB=[qm,fh,BB,yh,Dh,QB,pB,MC,JQ,HQ],kD={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MSG_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},Km="quality_stat";var qQ=new class{constructor(){this._messageStatsMap=new Map,this._userSideErrorCodes=new Set(Object.values(kD))}init(s){this._core=s,Object.values(rR).forEach(n=>{this._messageStatsMap.set(n,{totalCount:0,successCount:0,failedCountOfUserSide:0,costSum:0,costCount:0,fileSizeSum:0})})}dispatchSendStats(s){const{name:n,message:g,error:u,startTs:E}=s,{SEND_MESSAGE_STAT:m}=this._core.constants;switch(n){case m.TOTAL_COUNT:this._handleTotalCount(g);break;case m.SUCCESS_COUNT:this._handleSuccessCount(g);break;case m.FAILED_COUNT:this._handleFailedCount(g,u);break;case m.SEND_COST:this._handleSendCost(g,E)}}getStatResult(s){const n=this._messageStatsMap.get(s);if(!n||n.totalCount===0)return null;const{totalCount:g,successCount:u,failedCountOfUserSide:E}=n,m=mh(u/g*100,2),D=u+E,M=mh(D/g*100,2),T=this._calcAverageValue(n,s);return this._resetStat(s),{total_count:g,success_count_business:u,percent_business:m,success_count_platform:D,percent_platform:M,average_value:T}}_handleTotalCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.totalCount++}_handleSuccessCount(s){const n=this._getSendMessageSpecifiedKey(s),g=n&&this._messageStatsMap.get(n);g&&g.successCount++}_handleFailedCount(s,n){var g;const u=(g=n?.code)!==null&&g!==void 0?g:n?.errorCode;if(this._isUserSideError(u)){const E=this._getSendMessageSpecifiedKey(s),m=E&&this._messageStatsMap.get(E);m&&m.failedCountOfUserSide++}}_handleSendCost(s,n){const g=this._getSendMessageSpecifiedKey(s),u=g&&this._messageStatsMap.get(g);u&&(u.costSum+=Date.now()-n,u.costCount++)}_isUserSideError(s){return this._userSideErrorCodes.has(s)||s>=120001&&s<=13e4||s>=10100&&s<=10200}_getSendMessageSpecifiedKey(s){const{MSG_IMAGE:n,MSG_AUDIO:g,MSG_VIDEO:u,MSG_FILE:E,CONV_C2C:m,CONV_GROUP:D,GRP_AVCHATROOM:M}=this._core.OuterConstant;if([n,g,u,E].includes(s.type))return QB;if(s.conversationType===m)return BB;if(s.conversationType===D){const{groupStore:T}=this._core.appStore,P=T.getGroup(s.to);if(!P)return;const{type:W}=P;return W===M?Dh:yh}}_calcAverageValue(s,n){return s.costCount===0?0:Math.round(n===pB?1e3*s.fileSizeSum/s.costSum:s.costSum/s.costCount)}_resetStat(s){const n=this._messageStatsMap.get(s);n&&(n.totalCount=0,n.successCount=0,n.failedCountOfUserSide=0,n.costSum=0,n.costCount=0,n.fileSizeSum=0)}},KQ=new class{constructor(){this._lastCycleStats=new Map,this._currentCycleStats=new Map}init(s){this._core=s;const{OuterEvent:n,notificationCenter:g}=s;this._initStatsMap(),g.subscribeOuterEvent(n.MESSAGE_RECEIVED,this._onMessageReceived,this)}addMessageSequence(s){const n=this._getReceivedMessageSpecifiedKey(s),{utils:{isUndefined:g},OuterConstant:{CONV_GROUP:u},ssoLog:E}=this._core;if(g(n)||!this._currentCycleStats.has(n))return void E.debug("addMessageSequence",`${nR}.addMessageSequence invalid key:${n}`);const{conversationID:m,sequence:D}=s,M=m.replace(u,""),T=this._lastCycleStats.get(n);if(T.size===0||!T.has(M))return void this._addToCurrentCycle(n,M,D);const P=T.get(M);D>P.minSeq&&D<P.maxSeq?this._insertToLastCycle(D,P):this._addToCurrentCycle(n,M,D)}getStatResult(s){const n=this._lastCycleStats.get(s);if(!n||n.size===0)return this._transferCycleDataOptimized(s),null;let g=0,u=0;return n.forEach(E=>{const{sortedSequences:m,minSeq:D,maxSeq:M}=E;m.length>0&&(u+=m.length,g+=M-D+1)}),g===0?null:(this._transferCycleDataOptimized(s),{total_count:g,success_count_business:u,percent_business:mh(u/g*100,2)})}reset(){this._lastCycleStats.clear(),this._currentCycleStats.clear()}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_initStatsMap(){Object.values(Sh).forEach(s=>{this._lastCycleStats.set(s,new Map),this._currentCycleStats.set(s,new Map)})}_onMessageReceived(s){const{data:n=[]}=s;n.forEach(g=>{this.addMessageSequence(g)})}_transferCycleDataOptimized(s){const n=this._currentCycleStats.get(s);if(!n)return;const g=new Map;n.forEach((u,E)=>{const m=u.dirty?[...u.sortedSequences].sort((D,M)=>D-M):u.sortedSequences;g.set(E,{sortedSequences:m,minSeq:u.minSeq,maxSeq:u.maxSeq,dirty:!1})}),this._lastCycleStats.set(s,g),this._currentCycleStats.set(s,new Map)}_getReceivedMessageSpecifiedKey(s){const{OuterConstant:{CONV_GROUP:n,GRP_AVCHATROOM:g}}=this._core;if(s.conversationType===n&&s?._onlineOnlyFlag!==!0){const{groupStore:u}=this._core.appStore,E=u.getGroup(s.to);if(!E)return null;const{type:m}=E;return m===g?HQ:MC}}_insertToLastCycle(s,n){n.dirty&&(n.sortedSequences.sort((u,E)=>u-E),n.dirty=!1);const g=this._findInsertPos(n.sortedSequences,s);n.sortedSequences.splice(g,0,s),n.minSeq=Math.min(n.minSeq,s),n.maxSeq=Math.max(n.maxSeq,s)}_findInsertPos(s,n){let g=0,u=s.length-1;for(;g<=u;){const E=Math.floor((g+u)/2);if(s[E]===n)return E;s[E]<n?g=E+1:u=E-1}return g}_addToCurrentCycle(s,n,g){let u=this._currentCycleStats.get(s).get(n);u?(u.sortedSequences.push(g),u.minSeq=Math.min(u.minSeq,g),u.maxSeq=Math.max(u.maxSeq,g),u.dirty=!0):(u={sortedSequences:[g],minSeq:g,maxSeq:g,dirty:!1},this._currentCycleStats.get(s).set(n,u))}},jQ=new class{constructor(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}init(s){this._core=s;const{OuterEvent:{MESSAGE_RECEIVED:n},notificationCenter:g}=s;g.subscribeOuterEvent(n,this._onMessageReceived,this)}addMessageDelay(s){const{timeManager:n}=this._core.common,g=n.getServerTimeSeconds()-s;g>0&&(this._totalDelay+=g,this._totalCount++,g<=1?this._countLessThan1s++:g<=3&&this._countLessThan3s++)}getStatResult(){if(this._totalCount===0)return null;const s={total_count:this._totalCount,success_count_business:this._countLessThan1s,success_count_platform:this._countLessThan3s,percent_business:this._calculatePercentage(this._countLessThan1s,this._totalCount),percent_platform:this._calculatePercentage(this._countLessThan3s,this._totalCount),average_value:this._calculateAverageDelay(this._totalCount)};return this.reset(),s}reset(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}dispose(){const{notificationCenter:s,OuterEvent:{MESSAGE_RECEIVED:n}}=this._core;s.unSubscribeOuterEvent(n,this._onMessageReceived,this),this.reset()}_onMessageReceived(s){const{data:n=[]}=s,{OuterConstant:{MSG_GRP_TIP:g,MSG_GRP_SYS_NOTICE:u}}=this._core,E=[g,u];n.forEach(m=>{!E.includes(m.type)&&m.clientTime>0&&this.addMessageDelay(m.clientTime)})}_calculateAverageDelay(s){return s===0?0:mh(this._totalDelay/s,1)}_calculatePercentage(s,n){return mh(s/n*100,2)}},aR=new class{init(s){this.core=s}},YT=new class{constructor(){this.name="MessageQualityStat",this._reportIndex=0,this._wholePeriod=!1,this._pendingReports=[],this._failedLogsCache=new Map}install(s){this._core=s;const{helper:n,notificationCenter:g,InnerEvent:{QUALITY_STAT:u,LOGOUT:E,DESTROY:m},constants:{WORKFLOW_NAME:D,WORKFLOW_STEP:M}}=s;aR.init(s),qQ.init(s),KQ.init(s),jQ.init(s),n.registerWorkflowStep(D.SYNC_SERVER_INFO_AFTER_LOGIN,M.QUALITY_REPORT,this.handleLoginSuccess,this),g.subscribeInnerEvent(u,this._handleQualityStat,this),g.subscribeInnerEvent(E,this._reset,this),g.subscribeInnerEvent(m,this._dispose,this)}handleLoginSuccess(){const{store:s,helper:n,utils:{isUndefined:g}}=this._core,u=s.get("cloudConfig")||{},{q_rpt_interval:E}=u,m=g(E)?12e4:Number(E);n.taskScheduler.addTask({id:Km,intervalMs:m,callback:this.report,context:this})}report(){this._wholePeriod=!0;const s=[...mB.map(n=>{const g=this._buildQualityReportItem(n);return g?Object.assign(Object.assign({},g),{report_index:this._reportIndex,whole_period:this._wholePeriod}):null}).filter(Boolean),...this._pendingReports];this._pendingReports=[],this._needSkipReport()||this._uploadQualityReports(s)}_handleQualityStat(s){const{constants:{QUALITY_METRICS:n}}=this._core,{label:g,data:u}=s;g===n.MESSAGE_SEND_SUCCESS_RATE&&qQ.dispatchSendStats(u)}_needSkipReport(){return this._isSDKAppIDInBlacklist()&&!this._isTinyIDInWhitelist()}_isSDKAppIDInBlacklist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},u=s.get("instance")||{},{sdkAppId:E}=u,{q_rpt_sdkappid_bl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").map(D=>Number(D)).includes(E)}_isTinyIDInWhitelist(){const{store:s,utils:n}=this._core,g=s.get("cloudConfig")||{},u=s.get("login")||{},E=Number(u.tinyID),{q_rpt_tinyid_wl:m=[]}=g;if(!n.isEmpty(m))return m.split(",").includes(E)}_buildQualityReportItem(s){const n=this._getStatResultByKey(s);if(n===null)return null;const g={quality_type:xT[s],timestamp:Date.now(),network_type:bD.ONLINE,extension:""};return Object.assign(Object.assign({},g),n)}_getStatResultByKey(s){switch(s){case fh:return jQ.getStatResult();case BB:case yh:case Dh:case QB:case pB:return qQ.getStatResult(s);case MC:case JQ:case HQ:return KQ.getStatResult(s);default:return null}}_uploadQualityReports(s){return pA(this,void 0,void 0,function*(){try{const n={header:this._core.common.getCommonHead(),quality:s};yield function(g){const{common:u,channel:E}=aR.core,m="imopenstat.tim_web_report_v2",D=u.generateSSOLogProtocolData({servcmd:m,data:g}),M=`${D.head.seq}${m}`;return E.sendPacket(D,{requestId:M})}(n),this._reportIndex++,this._wholePeriod=!1}catch(n){console.warn("doReport failed. error:",n),this._pendingReports=this._pendingReports.concat(s),this._cacheFailedLogs()}})}_cacheFailedLogs(){const s=this._pendingReports,n=`${nR}._cacheFailedLogs`;let g=[...this._failedLogsCache.get(GD)||[],...s];g.length>10&&(g=g.slice(g.length-10),console.log(`${n} logs overflow, keeping last 10 items`)),this._failedLogsCache.set(GD,g),console.log(`${n} count: ${g.length}`),this._pendingReports=[]}_reset(){const{helper:s}=this._core;s.taskScheduler.removeTask(Km)}_dispose(){const{notificationCenter:s,InnerEvent:{QUALITY_STAT:n,LOGOUT:g,DESTROY:u}}=this._core;s.unSubscribeInnerEvent(n,this._handleQualityStat,this),s.unSubscribeInnerEvent(g,this._reset,this),s.unSubscribeInnerEvent(u,this._dispose,this),this._reset(),jQ.dispose(),KQ.dispose()}};const ll=new class{init(s){this.core=s}};function gR(s){return pA(this,void 0,void 0,function*(){var n;const{message:g,user:u,appStore:E,constants:{OuterConstant:m}}=ll.core,D=E.conversationStore.getConversationMap();if(D.has(s)){const T=(n=D.get(s))===null||n===void 0?void 0:n.userProfile;if(T&&s.startsWith(m.CONV_C2C)){const{avatar:P,nick:W}=T;ll.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:P,latestNick:W,isSentByMe:!1})}}const{data:M}=(yield u.userProfile.getMyProfile())||{};if(M){const{avatar:T,nick:P}=M;g.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:s,latestAvatar:T,latestNick:P,isSentByMe:!0})}})}function cR(s){return pA(this,void 0,void 0,function*(){const n=s.map(g=>g.revoker);try{const g=yield function(u){return pA(this,void 0,void 0,function*(){var E,m;const D=yield(E=ll.core.user.userProfile)===null||E===void 0?void 0:E.getUserProfile({userIDList:u});return D?.data?(m=D.data)===null||m===void 0?void 0:m.reduce((M,{userID:T,nick:P,avatar:W})=>(M[T]={nick:P||"",avatar:W||""},M),{}):null})}(n);g&&s.forEach(u=>{const{revoker:E}=u;g[E]&&(u.revokerInfo.nick=g[E].nick||"",u.revokerInfo.avatar=g[E].avatar||"",u.revokerInfo.userID=E)})}catch(g){console.debug(g)}})}const LD=1,lR=2,Mh=20,WQ=2500,IR=1,vh=300;function zQ(s){return pA(this,void 0,void 0,function*(){var n,g;const{appStore:u,utils:{isEmpty:E},common:{getCurrentUserID:m},notificationCenter:D,OuterEvent:M,OuterConstant:{CONV_C2C:T}}=ll.core,{messageList:P,conversationID:W}=s,iA=u.conversationStore.getConversationMap();let EA=(n=iA.get(W))===null||n===void 0?void 0:n.peerReadTime;if(!EA){const kA=W.replace(T,""),xA=yield function(LA){return pA(this,void 0,void 0,function*(){const SA={To_Account:LA};return ll.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:SA})})}([kA]);if(xA){const{ReadTime:LA}=xA;EA=LA?.[0],iA.has(W)&&(iA.get(W).peerReadTime=EA)}}if(iA.has(W)){const kA=(g=iA.get(W))===null||g===void 0?void 0:g.lastMessage;E(kA)||kA.fromAccount===m()&&kA.lastTime<=EA&&!kA.isPeerRead&&(kA.isPeerRead=!0,u.conversationStore.updateConversation(W,{lastMessage:kA}))}const RA=[];P.forEach(kA=>{kA.time<=EA&&!kA.isPeerRead&&kA.flow==="out"&&(kA.isPeerRead=!0,RA.push(kA))}),RA.length>0&&D.emitOuterEvent(M.MESSAGE_READ_BY_PEER,{name:M.MESSAGE_READ_BY_PEER,data:RA})})}var uR=new class{init(s){this._core=s,s.helper.registerApi({apiName:"getMessageList",context:this}),s.helper.registerApi({apiName:"getMessageListHopping",context:this}),s.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(s){return pA(this,void 0,void 0,function*(){try{const{message:n,OuterConstant:{Direction:g,CONV_C2C:u,CONV_GROUP:E},InnerEvent:{HISTORY_MESSAGE_FETCHED:m},notificationCenter:D}=this._core,{conversationID:M,nextReqMessageID:T}=s,P=Mh;if(M==="@TIM#SYSTEM")return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const W=this._getAvailableLocalMessagesCount({conversationID:M,nextReqMessageID:T});if(this._needFetchHistoryMessageList({conversationID:M,availableLocalMessagesCount:W,targetCount:P})){let iA=null;if(M.startsWith(E)?iA=yield n.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:Number(T),count:P,direction:g.FORWARD,shouldMarkCompleted:!0}):M.startsWith(u)&&(iA=yield n.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,messageID:T,count:P,direction:g.FORWARD,shouldMarkCompleted:!0})),iA){const{nextReqMessageIDFromServer:EA,hasNoMoreHistoryMessage:RA,messageList:kA}=iA,xA=n.messageDataHandler.prependLocalMessageList({messageList:kA,conversationID:M});(function(ae){const{appStore:re,message:_i,OuterConstant:Ti}=ll.core,Lt=re.conversationStore.getConversation(ae),Ni=_i.messageDataHandler.getLocalMessageList(ae);if(!Lt||Ni.length===0||ae===Ti.CONV_SYSTEM)return;const cs=[];for(let mt=0;mt<Ni.length;mt++)Ni[mt].flow!=="in"?Ni[mt].flow!=="out"||Ni[mt].isRead||Ni[mt].setIsRead(!0):cs.push(Ni[mt]);let Me=0;if(Lt.type===Ti.CONV_C2C){const mt=cs.slice(-Lt.unreadCount).filter(UA=>UA.isRevoked).length;Me=cs.length-Lt.unreadCount-mt}else Me=cs.length-Lt.unreadCount;for(let mt=0;mt<Me&&!cs[mt].isRead;mt++)cs[mt].setIsRead(!0)})(M),yield gR(M),M.startsWith(u)&&(yield zQ({messageList:kA,conversationID:M}));const LA=this._core.message.messageDataHandler.getLocalMessageList(M).slice(0,xA.length+W),SA=LA.filter(ae=>ae.isRevoked);yield cR(SA),D.emitInnerEvent(m,xA);const OA={nextReqMessageID:RA?"":String(EA),messageList:LA,isCompleted:RA},JA=LA.map(ae=>ae.sequence);return{code:0,data:OA,successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W} sequenceList: ${JSON.stringify(JA)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:M,nextReqMessageID:T,count:P}),successLog:{message:`conversationID: ${M} nextReqMessageID: ${T} availableLocalMessagesCount: ${W}}`}}}catch(n){const{code:g,message:u}=n||{};throw new this._core.helper.ChatError({code:g,message:u,moreMessage:`options: ${this._core.utils.safeStringify(s)}`})}})}getMessageListHopping(s){return pA(this,void 0,void 0,function*(){var n,g;const{OuterConstant:{Direction:u,CONV_C2C:E,CONV_GROUP:m},utils:{safeStringify:D}}=this._core,{conversationID:M,sequence:T,time:P,direction:W=u.FORWARD}=s,{utils:{isEmpty:iA},message:EA,notificationCenter:RA,InnerEvent:{HISTORY_MESSAGE_FETCHED:kA}}=this._core;if(![u.BACKWARD,u.FORWARD].includes(W))throw new this._core.helper.ChatError({message:"direction must be 0 or 1",moreMessage:`options: ${D(s)}`});let{count:xA=Mh}=s;xA=xA>Mh?Mh:xA;let LA=null;if(M.startsWith(m)){if(LA=yield EA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:M,sequence:T,count:xA,direction:W}),LA){const{nextReqMessageIDFromServer:SA,hasNoMoreHistoryMessage:OA,messageList:JA,invisibleSequenceList:ae}=LA;if(this._core.message.messageDataHandler.storeSparseMessageList(JA),RA.emitInnerEvent(kA,JA),W===u.FORWARD){const re=OA&&SA<1;return{code:0,data:{messageList:JA,isCompleted:re,nextMessageSeq:re?"":SA}}}if(W===u.BACKWARD){if(iA(JA)&&iA(ae))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const re=((n=JA?.[JA.length-1])===null||n===void 0?void 0:n.sequence)||0,_i=((g=ae?.[ae.length-1])===null||g===void 0?void 0:g.sequence)||0;return{code:0,data:{messageList:JA.filter(Ti=>Ti.sequence>=T),isCompleted:!OA,nextMessageSeq:OA?Math.max(re,_i)+1:""}}}return{code:0,data:LA}}}else if(M.startsWith(E)&&(LA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:M,count:xA+1,time:P,direction:W}),LA)){const{messageList:SA,lastMessageTime:OA,hasNoMoreHistoryMessage:JA}=LA;return RA.emitInnerEvent(kA,SA),JA||(W===u.FORWARD?SA.shift():SA.pop()),EA.messageDataHandler.storeSparseMessageList(SA),yield zQ({messageList:SA,conversationID:M}),{code:0,data:{messageList:SA,isCompleted:JA,nextMessageTime:JA?"":OA}}}})}clearHistoryMessage(s){return pA(this,void 0,void 0,function*(){var n;const{appStore:g,common:{ChatError:u,getCurrentUserID:E},OuterConstant:{CONV_C2C:m,CONV_GROUP:D},apiMap:M,message:T}=this._core,P=g.conversationStore.getConversation(s);if(!P)throw new u({code:WQ});const W={fromAccount:E()},{type:iA}=P;iA===m?(W.type=LD,W.toAccount=s.replace(m,"")):iA===D&&(W.type=lR,W.toGroupID=s.replace(D,""));try{return yield(n=M?.setMessageRead)===null||n===void 0?void 0:n.call(M,{conversationID:s}),(yield function(RA){return pA(this,void 0,void 0,function*(){const{fromAccount:kA,type:xA,toAccount:LA,toGroupID:SA}=RA,OA={From_Account:kA,Type:xA,To_Account:LA,ToGroupid:SA};return ll.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:OA})})}(W))&&(T.messageDataHandler.deleteConversationMessageList(s),T.messageHistory.completedHistoryConversations.delete(s),T.messageHistory.clearHistoryMessageListFetchAnchors(s),this._updateConversationLastMessage(s)),{code:0,data:{conversationID:s},successLog:{message:`convID:${s}`}}}catch(EA){const{errorCode:RA}=EA;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:RA,moreMessage:`convID:${s}`})}})}_updateConversationLastMessage(s){const{appStore:n}=this._core;n.conversationStore.updateConversation(s,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:s,nextReqMessageID:n}){const{OuterConstant:{CONV_C2C:g,CONV_GROUP:u}}=this._core,E=this._core.message.messageDataHandler.getLocalMessageList(s),{length:m}=E;if(!n)return m;let D=-1;return s?.startsWith(g)?D=E.findIndex(M=>M.ID===n):s?.startsWith(u)&&(D=E.findIndex(M=>n.includes("-")?M.ID===n:String(M.sequence)===n)),D===-1?0:D}_needFetchHistoryMessageList({conversationID:s,availableLocalMessagesCount:n,targetCount:g}){const{message:u}=this._core;return n<g&&!u.messageHistory.completedHistoryConversations.has(s)}_getMessageListFromMemory(s){return pA(this,arguments,void 0,function*({conversationID:n,nextReqMessageID:g,count:u}){const{OuterConstant:{CONV_C2C:E},message:m}=this._core,D=this._core.message.messageDataHandler.getLocalMessageList(n),M=D.length;let T=M,P={isCompleted:!1,nextReqMessageID:"",messageList:[]},W=0,iA=M;return g?g&&(iA=D.findIndex(EA=>n.startsWith(E)?EA.ID===g:String(EA.sequence)===g),W=iA>u?iA-u:0,T=iA):W=M>u?M-u:0,P.messageList=D.slice(W,iA),P.isCompleted=T<=u&&m.messageHistory.completedHistoryConversations.has(n),P.isCompleted?P.nextReqMessageID="":P.nextReqMessageID=this._generateNextReqMessageID({conversationID:n,targetIndex:W}),n.startsWith(E)&&(yield gR(n),yield zQ({messageList:P.messageList,conversationID:n})),P})}_generateNextReqMessageID({conversationID:s,targetIndex:n}){const g=this._core.message.messageDataHandler.getLocalMessageList(s);return s.startsWith("C2C")?g[n].ID:String(g[n].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}}},fB=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(s){this._core=s;const{common:{workflowManager:n},constants:{WORKFLOW_NAME:g,WORKFLOW_STEP:u,InnerEvent:E}}=s;n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,u.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),n.registerWorkflowStep(g.SYNC_SERVER_INFO_AFTER_RE_ONLINE,u.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),s.notificationCenter.subscribeInnerEvent(E.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(s){const{conversationList:n}=s?.result||{},{OuterConstant:g,utils:{isArray:u}}=this._core;if(u(n)){const E=n.filter(m=>m.type===g.CONV_GROUP&&m.groupProfile.type!==g.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(E)}}_recoverGroupHistoryMessage(s){return pA(this,void 0,void 0,function*(){const{OuterConstant:n}=this._core,g=[],u=[];return yield Promise.all(s?.map(E=>pA(this,void 0,void 0,function*(){const{groupProfile:{groupID:m}={},lastMessage:{lastSequence:D}={}}=E,M=`${n.CONV_GROUP}${m}`;let T=this._getLocalLastMessageSequence(M);this._shouldRecoverHistory({localLastMessageSequence:T,serverLastMessageSequence:D})&&(yield this._recoverGroupHistoryForConversation({conversationID:M,localLastMessageSequence:T,serverLastMessageSequence:D,groupTipList:u})),g.push(M.replace(n.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:g,groupTipList:u}})}_recoverGroupHistoryForConversation(s){return pA(this,arguments,void 0,function*({conversationID:n,localLastMessageSequence:g,serverLastMessageSequence:u,groupTipList:E}){try{const{utils:{isArray:m,isObject:D,isEmpty:M},OuterEvent:T,OuterConstant:P,notificationCenter:W,message:iA,appStore:EA,common:{getMessagePreviewText:RA,buildLastMessage:kA}}=this._core,xA=u-g,LA=Math.min(20,xA),SA={},OA=yield iA.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:n,sequence:g+LA,direction:P.Direction.FORWARD,count:LA}),{nextReqMessageIDFromServer:JA,hasNoMoreHistoryMessage:ae,messageList:re,serverGroupTipList:_i}=OA;m(_i)&&E.push(..._i);const Ti=ae&&JA<0,Lt=[];if(m(re)&&(re.forEach(Ni=>{iA.messageReceiver.groupMessageReceiver.updateMessageProfile(Ni),Ni.from===P.CONV_SYSTEM&&(Ni.isSystemMessage=!1),iA.messageDataHandler.storeConversationMessage(Ni)&&!M(Ni.payload)&&(Lt.push(Ni),Ni._isExcludedFromLastMessage||(SA.lastMessage=kA(Ni)))}),Lt.length>0&&W.emitOuterEvent(T.MESSAGE_RECEIVED,{name:T.MESSAGE_RECEIVED,data:Lt})),!Ti&&re.length>0){const Ni=re[re.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:n,localLastMessageSequence:Ni,serverLastMessageSequence:u,groupTipList:E})}D(SA.lastMessage)&&(SA.lastMessage.messageForShow=RA(SA.lastMessage.type,SA.lastMessage.payload),EA.conversationStore.updateConversation(n,SA))}catch(m){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${n}`,{error:m})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:s}=this._core,n=s.messageDataHandler.getContinuousMessagesByConversation();for(const[g,u]of n){const E=Array.from(u.values());if(E?.length>0){const m=E[E.length-1];g.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(g,m.time):g.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(g,m.sequence)}}}_getLocalLastMessageSequence(s){const{message:n}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(s))return this._lastMessageSequenceMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.sequence}_shouldRecoverHistory(s){const{localLastMessageSequence:n,serverLastMessageSequence:g}=s;if(typeof n!="number"||typeof g!="number")return!1;const u=g-n;return g!==0&&n>0&&u>=IR&&u<vh}_syncC2COfflineMessage(s){const{conversationList:n}=s?.result||{},{OuterConstant:g,utils:{isArray:u}}=this._core;if(u(n)){const E=[];return n.forEach(m=>{m.type===g.CONV_C2C&&E.push(m)}),this._recoverC2CHistoryMessage(E)}}_recoverC2CHistoryMessage(s){return pA(this,void 0,void 0,function*(){yield Promise.all(s?.map(n=>pA(this,void 0,void 0,function*(){const{conversationID:g,lastMessage:{lastTime:u}={}}=n,E=this._getLocalLastMessageTime(g);this._shouldRecoverC2CHistory({localLastMessageTime:E,serverLastMessageTime:u})&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:E,serverLastMessageTime:u}))})))})}_shouldRecoverC2CHistory(s){const{localLastMessageTime:n,serverLastMessageTime:g}=s,u=g-n;return n>0&&u>=1&&u<=600}_recoverHistoryForC2CConversation(s){return pA(this,void 0,void 0,function*(){var n;const{conversationID:g,localLastMessageTime:u,serverLastMessageTime:E}=s,{utils:{isArray:m,isObject:D,isEmpty:M,safeStringify:T},OuterEvent:P,OuterConstant:W,notificationCenter:iA,message:EA,appStore:RA,common:{getMessagePreviewText:kA,buildLastMessage:xA}}=this._core;try{const LA={},SA=yield EA.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:g,direction:W.Direction.BACKWARD,time:u,count:20});if(M(SA))return;const{hasNoMoreHistoryMessage:OA,messageList:JA}=SA,ae=[];m(JA)&&(JA.forEach(_i=>{EA.messageDataHandler.storeConversationMessage(_i)&&!M(_i.payload)&&(ae.push(_i),_i._isExcludedFromLastMessage||(LA.lastMessage=xA(_i)))}),ae.length>0&&iA.emitOuterEvent(P.MESSAGE_RECEIVED,{name:P.MESSAGE_RECEIVED,data:ae}));const re=(n=JA[JA.length-1])===null||n===void 0?void 0:n.time;!OA&&re>E&&(yield this._recoverHistoryForC2CConversation({conversationID:g,localLastMessageTime:re,serverLastMessageTime:E})),D(LA.lastMessage)&&(LA.lastMessage.messageForShow=kA(LA.lastMessage.type,LA.lastMessage.payload),RA.conversationStore.updateConversation(g,LA))}catch(LA){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${g} error: ${T(LA)}`)}})}_getLocalLastMessageTime(s){const{message:n}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(s))return this._lastMessageTimeMapOnDisconnect.get(s);const g=n.messageDataHandler.getLocalMessageList(s),u=g[g.length-1];return u?.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}},yB=new class{constructor(){this.name="HistoryMessage"}install(s){this._core=s,ll.init(s),uR.init(s),fB.init(s),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.LOGOUT,this._reset,this),s.notificationCenter.subscribeInnerEvent(s.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:s,InnerEvent:n}=this._core;s.unSubscribeInnerEvent(n.LOGOUT,this._reset,this),s.unSubscribeInnerEvent(n.DESTROY,this.dispose,this),fB.dispose()}_reset(){fB.reset()}},UD=new class{init(s){this.core=s}},vC=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(s){const{helper:{registerExperimentalAPI:n}}=s;this._core=s,n("reportModalView",this),n("reportTUIFeatureUsage",this),n("reportRoomEngineEvent",this)}reportModalView(s){const{ssoLog:n,utils:{safeStringify:g,isString:u}}=this._core;try{if(!u(s))throw new Error("reportModalView data is not a string");n.createSSOLogData({method:"reportModalView",message:s,eventType:30}).end(!0)}catch(E){n.debug(`reportModalView Report failed: ${g(E)}`)}}reportTUIFeatureUsage(s){const{ssoLog:n,utils:{safeStringify:g,isEmpty:u}}=this._core,{atomicStoreID:E}=s;try{u(E)||this._reportedAtomicStoreIDs.has(E)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${s.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:E}),this._reportedAtomicStoreIDs.add(E))}catch(m){n.debug(`reportTUIFeatureUsage Report failed: ${g(m)}`)}}reportRoomEngineEvent(s){const{utils:{safeStringify:n},ssoLog:g}=this._core;try{g.debug(`reportRoomEngineEvent Report: ${n(s)}`);const{eventId:u,eventCode:E,eventResult:m,eventMessage:D,moreMessage:M,extensionMessage:T}=s;g.createSSOLogData({method:T,code:u,message:D,eventType:30,costTime:E,uiPlatform:m,moreMessage:M}).end(!0)}catch(u){g.debug(`reportRoomEngineEvent Report failed: ${n(u)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}},ZQ=new class{constructor(){this.name="DataReport"}install(s){this._core=s;const{notificationCenter:n,InnerEvent:{LOGOUT:g,DESTROY:u}}=s;UD.init(s),vC.init(s),n.subscribeInnerEvent(g,this._reset,this),n.subscribeInnerEvent(u,this._dispose,this)}_reset(){vC.reset()}_dispose(){const{notificationCenter:s,InnerEvent:{LOGOUT:n,DESTROY:g}}=this._core;s.unSubscribeInnerEvent(n,this._reset,this),s.unSubscribeInnerEvent(g,this._dispose,this),vC.dispose()}};let jm=nr.STANDARD,DB=[];jm=nr.STANDARD,DB=[ah,IC,uC,EC,Rc,YT,yB,ZQ,PE,vi,jn,bT,xm,ND,ZI];function SB(s,n){const{operationType:g,memberInfoList:u,operatorInfo:E}=s||{};let m={};if(Rs(u)?Rs(E)||(m=E):g!==Tg.JOINED&&g!==Tg.KICKED&&g!==Tg.ADMIN_SET&&g!==Tg.ADMIN_CANCELED||(m=Object.assign({},u[0])),!Rs(m)){const{nick:D="",avatar:M=""}=m;n.nick=D,n.avatar=M}}const XQ=s=>({lastTime:s?.time||s?.lastTime||0,lastSequence:s?.sequence||s?.lastSequence||0,fromAccount:s?.from||s?.fromAccount||"",messageForShow:Zc(s?.type,s?.payload),payload:s?.payload||null,type:s?.type||"",isRevoked:s?.isRevoked||!1,cloudCustomData:s?.cloudCustomData||"",onlineOnlyFlag:s?._onlineOnlyFlag||!1,nick:s?.nick||"",nameCard:s?.nameCard||"",version:s?.version||0,isPeerRead:s?.isPeerRead||!1,revoker:s?.revoker||null});var $Q=Object.freeze({__proto__:null,ChatError:gs,WorkflowManager:ws,buildAndSendPacket:gg,buildLastMessage:XQ,get builtInPlugins(){return DB},checkBusinessCapabilityBits:tn,deepMerge:Cd,getCurrentUserID:Ar,getErrorMessage:rs,getMessagePreviewText:Zc,isC2CConv:s=>l(s)&&s.slice(0,3)===ka.CONV_C2C,isCommunity:Xr,isGroupConv:s=>l(s)&&s.slice(0,5)===ka.CONV_GROUP,isInternational:wl,isTopic:zc,isUnlimitedAVChatRoom:function(){var s;return!!(!((s=ye.store.get("instance"))===null||s===void 0)&&s.unlimitedAVChatRoom)},liteChatInstanceMap:Ca,registerInterceptor:Mc,registerValidateConfig:Wc,requireAuth:ud,get sdkEdition(){return jm},setGroupTipsUserInfo:SB,t:Gu,updateGroupAtInfo:(s,n)=>{const{CONV_AT_ME:g,CONV_AT_ALL:u,CONV_AT_ALL_AT_ME:E}=Lo;if(function(M,T){const{CONV_AT_ME:P,CONV_AT_ALL:W,CONV_AT_ALL_AT_ME:iA}=Lo,{groupID:EA,sequence:RA}=M;let kA=!1;return Xr({groupID:EA})&&T.forEach(xA=>{xA.messageSequence===RA&&(xA.atTypeArray.includes(P)&&M.groupAtType.includes(W)&&(xA.atTypeArray=[iA]),xA.atTypeArray.includes(W)&&M.groupAtType.includes(P)&&(xA.atTypeArray=[iA],xA.__random=M.__random,xA.__sequence=M.__sequence),kA=!0)}),kA}(s,n))return;let m=[...s.groupAtType];m.includes(g)&&m.includes(u)&&(m=[E]);const D={from:s.from,groupID:s.groupID,topicID:s.topicID,messageSequence:s.sequence,atTypeArray:m,__random:s.__random,__sequence:s.__sequence};n.push(D)},validateAndExecute:Sr,validateParameters:II});class ru{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return ru._instance||(ru._instance=new ru),ru._instance}static setInstance(n){ru._instance=n}installBuiltInPlugin(n){n&&this._installPlugin(n,this._builtInPlugins)}installExternalPlugin(n){n&&this._installPlugin(n,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(n,g){let u=[];u=h(n)?n:[n];const E=u.findIndex(D=>D?.name==="AVChatRoom"),m=E>-1?u.splice(E,1):[];u.forEach(D=>{this._isPluginInstalled(D.name)||(D&&vg(D.install)?(g.add(D.name),vg(D.getInstalledSubPlugins)?(m?.forEach(M=>g.add(M?.name)),D.install(Cr.getInstance().exposeApiForPlugin(),m)):D.install(Cr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):vg(D)?(g.add(D.name),D(Cr.getInstance().exposeApiForPlugin()),vg(D.handleLoginSuccess)&&this._isLoggedIn()&&D.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(n){return this._builtInPlugins.has(n)||this._externalPlugins.has(n)}_isLoggedIn(){var n;return((n=ye.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}}var MB=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(s){return this._conversationMap.get(s)}updateConversation(s,n,g){const{emit:u=!0,needSort:E=!1}=g||{},m=this._conversationMap.get(s);m&&!Rs(n)&&(Object.keys(n).forEach(D=>{m[D]=n[D]}),u&&ye.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED,{needSort:E}))}deleteConversation(s){this._conversationMap.has(s)&&(this._conversationMap.delete(s),ye.notificationCenter.emitInnerEvent(so.CONVERSATION_UPDATED))}},Ap=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(s){return this._groupMap.get(s)}updateGroup(s,n){const g=this._groupMap.get(s);g&&!Rs(n)&&Object.keys(n).forEach(u=>{g[u]=n[u]})}},ep=new class{constructor(){this._messagesByConversation=new Map}updateMessage(s,n,g){var u;const{operation:E,updateUnreadCount:m=!0}=g,D=Do(g,["operation","updateUnreadCount"]),M=[];for(const T of n){const P=(u=this._messagesByConversation.get(s))===null||u===void 0?void 0:u.get(T);if(!P)return!1;Object.keys(D).forEach(W=>{P[W]=D[W]}),M.push(P)}return this._emitMessageStoreOperationEvent(E,{conversationID:s,messageList:M,updateUnreadCount:m}),M}getMessagesByConversation(s){var n;return[...((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(s,n){const{conversationID:g}=n;zc(g)?ye.notificationCenter.emitInnerEvent(Ru[s],n):ye.notificationCenter.emitInnerEvent(s,n)}},rc=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(s){return this.userProfileMap.get(s)}getFriend(s){return this.friendMap.get(s)}},FD=Object.freeze({__proto__:null,conversationStore:MB,groupStore:Ap,messageStore:ep,userStore:rc});class Cr{static getInstance(){return Cr._instance||(Cr._instance=new Cr),Cr._instance}static setInstance(n){Cr._instance=n}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:ye.notificationCenter.subscribeOuterEvent.bind(ye.notificationCenter),off:ye.notificationCenter.unSubscribeOuterEvent.bind(ye.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:ru.getInstance().installExternalPlugin.bind(ru.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(n){ye.ssoLog.debug("registerPlugin",n)}statKeyFeatureUsage(n){ye.ssoLog.debug("statTUIKeyFeatures",n)}setLogLevel(n){ye.ssoLog.debug("setLogLevel",n),ye.ssoLog.setLogLevel(n)}setApplicationID(n){ye.store.set("instance",{applicationID:n})}getApiMap(){return this._apiMap}setApiMap(n){this._apiMap=n}registerApi(n){const{common:{timeManager:g},utils:{safeStringify:u}}=ye,{apiName:E,context:m,methodName:D=E,matcher:M}=n;this._apiHandlersMap[E]||(this._apiHandlersMap[E]=[]),this._apiHandlersMap[E].push({context:m,methodName:D,matcher:M}),this._apiMap[E]&&this._apiHandlersMap[E].length!==1||(this._apiMap[E]=(...T)=>{const P=g.getServerTimeMs();let W=0;E==="login"&&(W=4),HI.includes(E)&&ye.ssoLog.debug(E,`${E} start params: ${u(T)}`),Sr(D,T);const iA=this._apiHandlersMap[E];for(const EA of iA)if(!EA.matcher||EA.matcher(T))try{const RA=EA.context[EA.methodName].bind(EA.context)(...T);return this._isPromiseLike(RA)?this._handleAsyncResult(RA,E,W,P):(this._reportApiSuccessLog({result:RA,apiName:E,eventType:W,startTime:P}),RA)}catch(RA){throw ye.ssoLog.error(E,`${E} fail ${RA?.message||RA?.errorMessage})`,{error:RA,costTime:g.getServerTimeMs()-P,eventType:W,method:E}),RA}})}registerExperimentalAPI(n,g,u){const E=u||n;this._experimentalApiMap[n]=g[E].bind(g)}destroy(){return pA(this,void 0,void 0,function*(){var n,g;try{!((n=ye.store.get("login"))===null||n===void 0)&&n.isLogin&&(yield this._apiMap.logout()),ye.notificationCenter.emitInnerEvent(so.DESTROY)}catch(u){console.debug("destroy error: ",u)}finally{ye.notificationCenter.emitOuterEvent(Dr.SDK_DESTROY,{SDKAppID:(g=ye.store.get("instance"))===null||g===void 0?void 0:g.sdkAppId}),Ca.clear(),ru.getInstance().clear(),ws.getInstance().destroy(),ye.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:so,InnerEventSubType:ye.notificationCenter.InnerEventSubType,OuterEvent:Dr,OuterConstant:Lo,SignalingEvent:qc,helper:Object.assign(Object.assign(Object.assign({},ye.utils),ye.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:Mc,registerValidateConfig:Wc,checkBusinessCapabilityBits:tn,registerWorkflowStep:ws.getInstance().registerWorkflowStep.bind(ws.getInstance()),ChatError:gs}),apiMap:this._apiMap},ye),{constants:Object.assign(Object.assign({},za),ye.constants),common:Object.assign(Object.assign(Object.assign({},$Q),ye.common),{workflowManager:ws.getInstance()}),utils:ye.utils,appStore:FD})}callExperimentalAPI(n,g){return ye.ssoLog.debug(`callExperimentalAPI.${n} start params: ${ye.utils.safeStringify(g)}`),this._experimentalApiMap[n]?this._experimentalApiMap[n](g):(ye.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${n} not found, params: ${ye.utils.safeStringify(g)}`),Promise.reject(new gs({code:da.INVALID_OPERATION})))}_isPromiseLike(n){return n!==null&&typeof n=="object"&&typeof n.then=="function"}_handleAsyncResult(n,g,u,E){return n.then(m=>(this._reportApiSuccessLog({result:m,apiName:g,eventType:u,startTime:E}),m)).catch(m=>{throw ye.ssoLog.error(g,`${g} fail ${m?.message||m?.errorMessage})`,{error:m,costTime:ye.common.timeManager.getServerTimeMs()-E,eventType:u,method:g,startTime:E}),m})}_reportApiSuccessLog(n){let{result:g,apiName:u,startTime:E,eventType:m}=n;const{timeManager:D}=ye.common,{successLog:{message:M,moreMessage:T}={message:"",moreMessage:""}}=g||{},P=D.getServerTimeMs();u==="login"&&(E+=D.getTimeOffsetWithServer()),HI.includes(u)&&ye.ssoLog.info(u,`${u} success ${M} ${T}`,{costTime:P-E,eventType:m,message:M,moreMessage:T,startTime:E}),g?.successLog&&delete g.successLog}}class ER{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:n,store:g}=ye;g.set("login",{isReady:!1}),Cr.getInstance().registerApi({apiName:"login",context:this}),Cr.getInstance().registerApi({apiName:"logout",context:this}),Cr.getInstance().registerApi({apiName:"getLoginUser",context:this}),Cr.getInstance().registerApi({apiName:"isReady",context:this}),Cr.getInstance().registerApi({apiName:"getServerTime",context:this}),Cr.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),n.subscribeInnerEvent(so.RECONNECTED,this._reLogin,this),ye.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}login(n){return pA(this,void 0,void 0,function*(){var g;const{sdkEdition:u}=ye.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new gs({functionName:"login",code:da.REPEAT_LOGIN});const E=yield this._performLogin(n);this._validateAfterLogin(E),this._handleLoginSuccess(E),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const m=(g=ye.channel.getSocketAdapter())===null||g===void 0?void 0:g.getId(),{appId:D,href:M}=ye.store.get("instance")||{},{instanceID:T,customStatus:P}=E||{};return{code:0,data:E,successLog:{message:u,moreMessage:`socketID:${m} instanceID:${T} customStatus:${P} href: ${M} appId: ${D}`}}}catch(E){const{errorCode:m}=E;m!==da.REPEAT_LOGIN&&(this._latestLoginAt=0);const D=new gs({functionName:"login",code:m});throw console.error(D),D}})}_reLogin(){return pA(this,void 0,void 0,function*(){var n;try{if(!this._isLoginIn())return;const g=yield Nu(this._customLoginInfo);if(g){const{instanceID:u,customStatus:E}=g;ye.store.set("login",{statusInstanceId:u}),ws.getInstance().executeWorkflow(Yt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:E,statusType:SE.USER_STATUS_ONLINE});const m=(n=ye.channel.getSocketAdapter())===null||n===void 0?void 0:n.getId();ye.ssoLog.info("reLogin",`socketId:${m} instanceId:${u}`)}}catch(g){console.warn(g)}})}logout(){return pA(this,arguments,void 0,function*(n=na.USER_INITIATED){const{ssoLog:g}=ye;g.debug("logout",`logout start logoutReason: ${n}`);try{yield this._performLogout(n),g.info("logout","logout success"),ye.ssoLog.uploadSSOLogData()}catch(u){const{errorCode:E}=u;throw new gs({functionName:"logout",code:E})}finally{this.handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?Ar():""}isReady(){var n;return(n=ye.store.get("login"))===null||n===void 0?void 0:n.isReady}setCustomLoginInfo(n=""){this._customLoginInfo=n}handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),ws.getInstance().reset(),ye.notificationCenter.emitInnerEvent("logout")}getServerTime(){const{timeManager:n}=ye.common;return n.getServerTimeMs()}_updateAndEmitSDKReady(){ye.store.set("login",{isReady:!0}),setTimeout(()=>{ye.notificationCenter.emitOuterEvent(Dr.SDK_READY,{name:Dr.SDK_READY})},1)}_updateAndEmitSDKNotReady(){ye.store.set("login",{isReady:!1}),ye.notificationCenter.emitOuterEvent(Dr.SDK_NOT_READY,{name:Dr.SDK_NOT_READY})}_validateAfterLogin(n){const g="login";if(!n)throw new gs({functionName:g,message:"login response is empty"});const{tinyID:u,a2Key:E}=n||{};if(!u)throw new gs({functionName:g,code:da.NO_TINYID});if(!E)throw new gs({functionName:g,code:da.NO_A2KEY})}_createRepeatLoginResponse(){var n;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:rs({code:"RepeatLogin",replacement1:(n=ye.store.get("login"))===null||n===void 0?void 0:n.userId}),repeatLogin:!0}}}_performLogin(n){return pA(this,void 0,void 0,function*(){const{userID:g,userSig:u}=n;return ye.store.set("login",{userId:g,userSig:u}),this._latestLoginAt=Date.now(),Nu(this._customLoginInfo)})}_ensureAsyncComplete(){return pA(this,void 0,void 0,function*(){yield new Promise(n=>{setTimeout(()=>n(null),1)})})}_handleLoginSuccess(n){const{timeManager:g}=ye.common,{helloInterval:u,timeStamp:E,customStatus:m,purchaseBits:D}=n,M=1e3*E;g.calculateTimeOffsetWithServer(this._latestLoginAt,M),this._helloInterval=u||120,this._updateLoginStore(n),ye.user.userStatus.setCustomStatus(m),ws.getInstance().executeWorkflow(Yt.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:D}),ye.common.taskScheduler.addTask({id:Gg,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(n){return function(g){return pA(this,void 0,void 0,function*(){const{logoutReason:u}=g,E="im_open_status.wslogout",m=ye.common.generateProtocolData({servcmd:E,data:{wslogout_type:u,isWebUniapp:0}}),D=`${m.head.seq}${E}`;return yield ye.channel.sendPacket(m,{requestId:D})})}({logoutReason:n})}_updateLoginStore(n){const{a2Key:g,tinyID:u,instanceID:E,authKey:m}=n;ye.store.set("login",{a2Key:g,tinyID:u,statusInstanceId:E,authKey:m,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return pA(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const n="im_open_status.wshello",g=ye.common.generateProtocolData({servcmd:n,data:{isWebUniapp:0}}),u=`${g.head.seq}${n}`;return ye.channel.sendPacket(g,{requestId:u})}()}catch(n){ye.ssoLog.warn("_sendOnlinePresenceRequest",` error:${n.message}`)}})}_isLoginIn(){var n;return((n=ye.store.get("login"))===null||n===void 0?void 0:n.isLoggedIn)===!0}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){ye.common.taskScheduler.removeTask(Gg),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",ye.store.clear("login"),ye.store.set("login",{isReady:!1}),ye.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:n}=ye;n.unSubscribeInnerEvent(so.RECONNECTED,this._reLogin,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}const dR={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},VT={logout:!0};class Rh{constructor(){this.loginAction=new ER,this.kickedOutHandler=new Tu,this.loginAction.init(),this.kickedOutHandler.init(),Wc({auth:VT,params:dR})}}var Kr,Zu,KE;(function(s){s.CONV_C2C="C2C",s.CONV_GROUP="GROUP",s.CONV_TOPIC="TOPIC",s.CONV_SYSTEM="@TIM#SYSTEM"})(Kr||(Kr={})),function(s){s.MSG_PRIORITY_HIGH="High",s.MSG_PRIORITY_NORMAL="Normal",s.MSG_PRIORITY_LOW="Low",s.MSG_PRIORITY_LOWEST="Lowest"}(Zu||(Zu={})),function(s){s.MSG_TEXT="TIMTextElem",s.MSG_CUSTOM="TIMCustomElem",s.MSG_LOCATION="TIMLocationElem",s.MSG_FACE="TIMFaceElem",s.MSG_IMAGE="TIMImageElem",s.MSG_AUDIO="TIMSoundElem",s.MSG_FILE="TIMFileElem",s.MSG_VIDEO="TIMVideoFileElem",s.MSG_GRP_TIP="TIMGroupTipElem",s.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",s.MSG_MERGER="TIMRelayElem"}(KE||(KE={}));const OD={1:Zu.MSG_PRIORITY_HIGH,2:Zu.MSG_PRIORITY_NORMAL,3:Zu.MSG_PRIORITY_LOW,4:Zu.MSG_PRIORITY_LOWEST},PD=0,CR=1;var Xu;(function(s){s.IN="in",s.OUT="out"})(Xu||(Xu={}));const hR=2,tp={};function au(s){if(!s)return 0;if(tp[s]===void 0){const n=new Date,g=`3${n.getHours()}`.slice(-2),u=`0${n.getMinutes()}`.slice(-2),E=`0${n.getSeconds()}`.slice(-2);tp[s]=parseInt([g,u,E,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${tp[s]}`)}else tp[s]+=1;return tp[s]}class jE{constructor(n){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=Zu.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:g=ye.common.timeManager.getServerTimeSeconds()||0,senderTinyID:u,currentUser:E,needReadReceipt:m,isSupportExtension:D,customModerationConfigurationId:M,to:T,from:P,nick:W="",avatar:iA="",time:EA,messageControlInfo:RA,tinyID:kA,cloudCustomData:xA="",messageLifeTime:LA,messageVersion:SA=0,conversationType:OA,sequence:JA,checkResult:ae=0,isPlaceMessage:re=0,messageFlagBits:_i,receiverList:Ti,isSystemMessage:Lt=!1,status:Ni=Yr.SUCCESS,revokeReason:cs="",conversationSubType:Me,clientSequence:mt,protocol:UA="JSON",revokerInfo:si={userID:"",nick:"",avatar:""},readReceiptInfo:_s={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:Gi,groupProfile:Or,atUserList:xi,flow:gr,isRead:Tt=!1,priority:Nt=Zu.MSG_PRIORITY_NORMAL,onlineOnlyFlag:AE=!1,nameCard:ln="",quoteInfo:Bo}=n;var Il;this.clientTime=g,this.senderTinyID=u||kA,this.needReadReceipt=m===!0||m===1,this.isSupportExtension=D===!0||D===1,this._cmConfigID=M,this.to=T,this.nick=W,this.avatar=iA,this.protocol=UA,this.random=Gi===void 0?(Il=Il||99999999,Math.round(Math.random()*Il)):Gi,this.time=EA||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!RA?.excludedFromLastMessage,this._isExcludedFromUnreadCount=!!RA?.excludedFromUnreadCount,this.isModified=!!SA,this.cloudCustomData=xA,this.messageLifeTime=LA,this.from=P||null,this.sequence=JA||0,this.conversationType=OA||Kr.CONV_C2C,this.hasRiskContent=ae>1,this.version=SA,this.isPlaceMessage=re,this.isRevoked=re===2||_i===8,this.isSystemMessage=Lt,this.readReceiptInfo=_s,this.revokeReason=cs,this.revokerInfo=si,this._receiverList=Ti,this.conversationSubType=Me,this.revoker=si?.revoker||"",this.clientSequence=mt||JA||0,this.status=Ni,this.atUserList=xi||[],this.flow=gr,this.isRead=Tt,this.priority=Nt,this._onlineOnlyFlag=AE,this.nameCard=ln,this.quoteInfo=Bo,this.reInitialize(E),this._initC2CReadReceiptInfo(n),this._extractGroupInfo(Or)}getElements(){return this._elements}isOnlineMessage(){return this.messageLifeTime===0}setElement(n){Array.isArray(n)?this._elements=n:this._elements=[n],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map(n=>n.transformToServerFormat()):this._elements.transformToServerFormat():null}setRelayFlag(n){this._relayFlag=n}validateBeforeSend(){var n,g,u;return this._relayFlag?{isValid:!0}:((n=this._elements)===null||n===void 0?void 0:n.length)>0?(u=(g=this._elements[0])===null||g===void 0?void 0:g.validateBeforeSend)===null||u===void 0?void 0:u.call(g):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(n){const{readReceiptSentByPeer:g,timestamp:u=0}=n;this.conversationType===Kr.CONV_C2C&&this.needReadReceipt===!0&&(this.readReceiptInfo.isPeerRead=g===1,this.readReceiptInfo.timestamp=u)}_extractGroupInfo(n){if(!n)return;const{From_AccountNick:g,From_AccountHeadurl:u,MsgFrom_AccountExtraInfo:E,GroupType:m}=n,{NameCard:D}=E||{};typeof g=="string"&&(this.nick=g),typeof u=="string"&&(this.avatar=u),typeof D=="string"&&(this.nameCard=D),this.conversationSubType=m}reInitialize(n){n===this.from&&(this.isRead=!0),this._initSequence(n),this._concatConversationID(n),this.generateMessageID()}_concatConversationID(n){let g="";const u=this.conversationType;u!==Kr.CONV_SYSTEM?(g=u===Kr.CONV_C2C?n===this.from?this.to:this.from:this.to,this.conversationID=g?`${u}${g}`:null):this.conversationID=Kr.CONV_SYSTEM}_initSequence(n){this.clientSequence===0&&n&&(this.clientSequence=au(n)),this.sequence===0&&this.conversationType===Kr.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===Kr.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(n){this.isRead=n}}class Td{static parseServerPushElement(n){const{MsgContent:g={}}=n,{Data:u,Ext:E,Desc:m}=g;return new Td({data:u,description:m,extension:E})}constructor(n){this.type=KE.MSG_CUSTOM;const{data:g="",description:u="",extension:E=""}=n;this.content={data:g,description:u,extension:E}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{data:E,description:m,extension:D}=u;return{MsgType:this.type,MsgContent:{Data:E,Ext:D,Desc:m}}}validateBeforeSend(){const{isEmpty:n}=ye.utils,g=[this.content.data,this.content.description,this.content.extension].some(u=>!n(u));return{isValid:g,error:g?null:{message:"content can not be empty"}}}}class Nd{static parseServerPushElement(n){const{MsgContent:g={Text:""}}=n,{Text:u}=g;return new Nd({text:u})}constructor(n){this.type=wg.MSG_TEXT,this.content={text:n.text||""}}validateBeforeSend(){var n,g;return((g=(n=this.content)===null||n===void 0?void 0:n.text)===null||g===void 0?void 0:g.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(n){const{isMergerMessage:g=!1}=n||{},u=g?this.payload:this.content,{text:E}=u;return{MsgType:this.type,MsgContent:{Text:E}}}}var Wm=new class{constructor(){this._elementClassMap={[KE.MSG_CUSTOM]:Td,[KE.MSG_TEXT]:Nd}}init(){Cr.getInstance().registerApi({apiName:"createCustomMessage",context:this}),Cr.getInstance().registerApi({apiName:"createTextMessage",context:this})}registerElementClass(s,n){var g;(g=n).prototype!==void 0&&"constructor"in g.prototype&&(this._elementClassMap[s]=n)}getElementClass(s){return this._elementClassMap[s]}createMessage(s){const{from:n,flow:g=Xu.OUT}=s,{userId:u}=ye.store.get("login")||{};this._isSendByCurrentInstance({from:n,flow:g,currentUser:u})?this._updateWithSenderInfo(s):this._isMultiEndpointSyncMessage({from:n,flow:g,currentUser:u})&&(s.flow=Xu.OUT);const E=Object.assign(Object.assign({},s),{currentUser:u});return new jE(E)}createCustomMessage(s){const n=Ar(),g=this.createMessage(Object.assign(Object.assign({},s),{from:n})),u=this._elementClassMap[KE.MSG_CUSTOM];if(!g)return null;if(u){const E=new u(s.payload);g.setElement(E)}return g}createTextMessage(s){var n;if(!s)return null;const g=typeof s.payload=="string"?s.payload:((n=s?.payload)===null||n===void 0?void 0:n.text)||"",u=new Nd({text:g}),E=Ar(),m=ye.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{from:E}));return m.setElement(u),m}_updateWithSenderInfo(s){var n,g;const{nick:u,avatar:E,conversationType:m,to:D}=s,{userId:M,tinyID:T}=ye.store.get("login")||{},P=rc.getUserProfile(M);return s.nick=u||P?.nick||"",s.avatar=E||P?.avatar||"",s.tinyID=s.tinyID||T||"",s.from=M,s.status=Yr.UNSENT,s.flow=Xu.OUT,m===ka.CONV_GROUP&&(s.nameCard=(g=(n=Ap.getGroup(D))===null||n===void 0?void 0:n.selfInfo)===null||g===void 0?void 0:g.nameCard),s}_isMultiEndpointSyncMessage(s){const{from:n,flow:g,currentUser:u}=s;return n===u&&g===Xu.IN}_isSendByCurrentInstance(s){const{from:n,flow:g,currentUser:u}=s;return n===u&&g===Xu.OUT}};const BR={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}},Gd={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},xD={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function QR(s,n){return Object.keys(n).forEach(g=>{const{range:u,defaultValue:E}=n[g];s[g]=u.includes(s[g])?s[g]:E}),s}function ip(s){const n=s.lastIndexOf(".");return n===-1?s:s.slice(0,n)}function pR(s){const{androidInfo:n={},androidOPPOChannelID:g=""}=s,u=n.OPPOChannelID||g,E=QR(n,Gd),{sound:m="",FCMChannelID:D=""}=E,M=Do(E,["sound","FCMChannelID"]);return Object.assign(Object.assign({},M),{Sound:ip(m),OPPOChannelID:u,GoogleChannelID:D})}function mR(s){const{apnsInfo:n={},ignoreIOSBadge:g=!1,disableVoipPush:u}=s,E=QR(n,xD),{ignoreIOSBadge:m,disableVoipPush:D,enableIOSBackgroundNotification:M}=E,T=Do(E,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),P=m===!0||g===!0?1:0;let W;return r(u)||(W=u===!1?1:0),r(D)||(W=D===!1?1:0),Object.assign(Object.assign({},T),{BadgeMode:P,IsVoipPush:W,ContentAvailable:M?1:0})}function YD(s){return ye.utils.isPlainObject(s)?{PushFlag:s.disablePush===!0?1:0,Title:s.title||"",Desc:s.description||"",Ext:s.extension||"",ApnsInfo:mR(s),AndroidInfo:pR(s)}:BR}function zm(s){const{From_AccountHeadurl:n,From_AccountNick:g,IsNeedReadReceipt:u,IsPeerRead:E,IsSyncMsg:m,MsgBody:D,MsgClientTime:M,MsgLifeTime:T,MsgRandom:P,MsgSeq:W,MsgTimeStamp:iA,SendMsgControl:EA,SupportMessageExtension:RA,TinyId:kA,MsgCheckResult:xA,CloudCustomData:LA,MsgVersion:SA,MsgFlagBits:OA,RevokerInfo:JA,InnerSdkCustomData:ae}=s;let re,{From_Account:_i,To_Account:Ti}=s;if(m===1){const Lt=Ti;Ti=_i,_i=Lt}if(JA){const{Reason:Lt,Revoker_Account:Ni,Revoker_FromUin:cs}=JA;re={reason:Lt,revoker:Ni,revokerFromUin:cs,userID:Ni}}return{from:_i,avatar:n,nick:g,needReadReceipt:u===1,isSyncMessage:m,clientTime:M,messageLifeTime:T,random:P,sequence:W,time:iA,messageControlInfo:{excludedFromLastMessage:EA?.NoLastMsg===1,excludedFromUnreadCount:EA?.NoUnread===1},isSupportExtension:RA,to:Ti,tinyID:kA,checkResult:xA,cloudCustomData:LA,revokerInfo:re,messageVersion:SA,messageFlagBits:OA,readReceiptSentByPeer:E,elements:RC(D),onlineOnlyFlag:T===0,quoteInfo:op(ae)}}function Zm(s){const{From_Account:n,MsgBody:g,MsgClientTime:u,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,To_Account:M,MsgVersion:T,CloudCustomData:P,MsgCheckResult:W}=s;return{from:n,clientTime:u,random:E,sequence:m,time:D,to:M,elements:RC(g),messageVersion:T,cloudCustomData:P,checkResult:W}}function VD(s){const{ClientSeq:n,From_Account:g,GroupInfo:u,MsgBody:E,MsgClientTime:m,MsgRandom:D,MsgSeq:M,MsgTimeStamp:T,SendMsgControl:P,SupportMessageExtension:W,TinyId:iA,CloudCustomData:EA,MsgVersion:RA,MsgCheckResult:kA,NeedReadReceipt:xA,IsPlaceMsg:LA,RevokerInfo:SA,GroupAtInfo:OA,OnlineOnlyFlag:JA,InnerSdkCustomData:ae}=s;let re,_i=Zu.MSG_PRIORITY_NORMAL;if(Object.keys(OD).includes(String(s.MsgPriority))&&(_i=OD[s.MsgPriority]),SA){const{Reason:Lt,Revoker_Account:Ni,Revoker_FromUin:cs}=SA;re={reason:Lt,revoker:Ni,revokerFromUin:cs,userID:Ni}}const Ti=function(Lt){const Ni=[];return Array.isArray(Lt)&&Lt.forEach(cs=>{cs.GroupAtAllFlag===PD?Ni.push(cs.GroupAt_Account):cs.GroupAtAllFlag===CR&&Ni.push(Lo.MSG_AT_ALL)}),Ni}(OA);return{clientSequence:n,from:g,groupProfile:u,clientTime:m,priority:_i,random:D,sequence:M,time:T,messageControlInfo:{excludedFromLastMessage:P?.NoLastMsg===1,excludedFromUnreadCount:P?.NoUnread===1},isSupportExtension:W,tinyID:iA,cloudCustomData:EA,messageVersion:RA,checkResult:kA,needReadReceipt:xA,isPlaceMessage:LA,revokerInfo:re,atUserList:Ti,elements:RC(E),to:JT(s),onlineOnlyFlag:JA===1,quoteInfo:op(ae)}}function JT(s){const{utils:{isEmpty:n},constants:{IS_TOPIC_MESSAGE:g}}=ye,{ToGroupId:u,GroupInfo:{MillionGroupFlag:E=0,TopicId:m}={}}=s;return E!==g||n(m)?u:m}function RC(s){if(!s)return null;if(Array.isArray(s))return s.map(g=>{const u=ye.message.messageFactory.getElementClass(g.MsgType);return u?.parseServerPushElement(g)});const n=ye.message.messageFactory.getElementClass(s.MsgType);return n?.parseServerPushElement(s)}function JD(s){const{From_Account:n,MsgBody:g,MsgClientTime:u,MsgRandom:E,MsgSeq:m,MsgTimeStamp:D,GroupId:M,TopicId:T,MsgVersion:P,CloudCustomData:W,MsgCheckResult:iA}=s;return{from:n,clientTime:u,random:E,sequence:m,time:D,groupID:M,topicID:T,elements:RC(g),messageVersion:P,cloudCustomData:W,checkResult:iA}}function op(s){const{utils:{isString:n,safeStringify:g},ssoLog:u}=ye;if(!n(s))return null;try{const{messageID:E,messageTime:m,messageSequence:D}=JSON.parse(s).businessQuote;return{msgID:E,messageTime:m,messageSequence:D}}catch(E){return u.debug("_parseServerQuoteInfo",g(E)),null}}function sp({conversationUpdateFields:s,message:n}){const{conversationID:g,conversationType:u,conversationSubType:E,flow:m,_isExcludedFromUnreadCount:D,_isExcludedFromLastMessage:M}=n,T=M?"":XQ(n),P=!D&&m===Xu.IN;s.has(g)?(s.get(g).lastMessage=T,P&&s.get(g).unreadCount++):s.set(g,{conversationID:g,type:u,subType:E,unreadCount:P?1:0,lastMessage:T})}function vB(s){return s.filter(n=>{const g=!Rs(n?._elements),u=n?.isPlaceMessage===1;return g||ye.ssoLog.error("emptyMessageBody",`from:${n.from} to:${n.to} sequence:${n.sequence}`),g&&!u})}function RB(s){const{messageDataHandler:n}=ye.message;return!n.isInMessageList(s)&&!n.isMessageSentByCurrentInstance(s)}var fR=Object.freeze({__proto__:null,autoIncrementIndex:au,createAndroidPushInfo:pR,createApnsPushInfo:mR,createOfflinePushInfo:YD,filterValidMessages:vB,getAndroidSoundName:ip,parseServerGroupMessage:VD,parseServerPushC2CModifyMessage:Zm,parseServerPushGroupModifyMessage:JD,parseServerPushMessage:zm,parseServerPushMessageElement:RC,shouldStoreMessage:RB,updateConversationFields:sp});const{isPlainObject:yR}=ye.utils;function np(s,n={}){const{onlineUserOnly:g,messageControlInfo:u}=n;let{offlinePushInfo:E}=n;s.conversationType===Kr.CONV_C2C&&g===!0&&(E?E.disablePush=!0:E={disablePush:!0});let m="";typeof s.cloudCustomData=="string"&&s.cloudCustomData.length>0&&(m=s.cloudCustomData);const D=[];if(u&&yR(u)){const{excludedFromUnreadCount:M,excludedFromLastMessage:T,excludedFromContentModeration:P}=u;M===!0&&D.push("NoUnread"),T===!0&&D.push("NoLastMsg"),P===!0&&D.push("NoMsgCheck")}return{onlineUserOnly:g,cloudCustomData:m,messageControlInfo:D,offlinePushInfo:E}}function HD(s){const{webhookInfo:{disableCloudMessagePreHook:n=!1,disableCloudMessagePostHook:g=!1}={}}=s||{};if(!n&&!g)return;const u=[];return n&&u.push("ForbidBeforeSendMsgCallback"),g&&u.push("ForbidAfterSendMsgCallback"),u}function wh(s,n){return pA(this,void 0,void 0,function*(){const g=s.conversationType===Kr.CONV_GROUP?function(E,m){var D;const M=np(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));let RA;return h(E._receiverList)&&E._receiverList.length>0&&(RA=E._receiverList,E._receiverList.length>50&&(RA=E._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:(D=ye.store.get("login"))===null||D===void 0?void 0:D.userId,GroupId:E.to,MsgBody:EA,CloudCustomData:P,Random:E.random,MsgPriority:E.priority,ClientSeq:E.clientSequence,GroupAtInfo:E._groupAtInfoList,OnlineOnlyFlag:T?1:0,MsgClientTime:E.clientTime,OfflinePushInfo:YD(iA),SendMsgControl:T?void 0:W,NeedReadReceipt:E.needReadReceipt===!0?1:0,To_Account:RA,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,ForbidCallbackControl:HD(m),InnerSdkCustomData:_B(E)}}}(s,n):function(E,m){var D;const M=np(E,m),{onlineUserOnly:T,cloudCustomData:P,messageControlInfo:W,offlinePushInfo:iA}=M,EA=T===!0?0:void 0,RA=JSON.parse(JSON.stringify(E.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:(D=ye.store.get("login"))===null||D===void 0?void 0:D.userId,To_Account:E.to,MsgBody:RA,CloudCustomData:P,MsgSeq:E.sequence,MsgRandom:E.random,MsgLifeTime:EA,From_AccountNick:E.nick,From_AccountHeadurl:E.avatar,SendMsgControl:EA!==0?W:void 0,MsgClientTime:E.clientTime,IsNeedReadReceipt:E.needReadReceipt===!0?1:0,SupportMessageExtension:E.isSupportExtension===!0?1:0,IsRelayMsg:E._relayFlag===!0?1:0,CustomModerationConfigID:E._cmConfigID,OfflinePushInfo:YD(iA),ForbidCallbackControl:HD(m),InnerSdkCustomData:_B(E)}}}(s,n),u=yield gg(g);return u?{time:u.MsgTime,messageDropReason:u.MsgDropReason,sequence:u.MsgSeq}:null})}function _h(s){return pA(this,void 0,void 0,function*(){const{from:n,to:g,version:u=0,sequence:E,random:m,time:D,type:M,cloudCustomData:T}=s,P={From_Account:n,To_Account:g,MsgVersion:u,MsgSeq:E,MsgRandom:m,MsgTime:D,MsgType:M,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:T},W=yield gg({servcmd:"openim.modify_c2c_msg",data:P});if(W){const{MsgBody:iA,MsgVersion:EA,CloudCustomData:RA}=W;return{elements:RC(iA),messageVersion:EA,cloudCustomData:RA}}})}function wB(s){return pA(this,void 0,void 0,function*(){const{to:n,version:g=0,sequence:u,cloudCustomData:E}=s,m={GroupId:n,MsgVersion:g,MsgSeq:u,MsgBody:s.transformElementsToServerFormat(),CloudCustomData:E},D=yield gg({servcmd:"openim.modify_group_msg",data:m});if(D){const{MsgBody:M,MsgVersion:T,CloudCustomData:P}=D;return{elements:RC(M),messageVersion:T,cloudCustomData:P}}})}function Th(s){return pA(this,void 0,void 0,function*(){const{groupID:n,count:g,messageSequence:u,messageSequenceList:E,getType:m}=s,D={GroupId:n,ReqMsgNumber:g,WithRecalledMsg:1,Version:1,GetType:m};return u&&(D.ReqMsgSeq=u),h(E)&&E.length>0&&(D.ReqMsgSeqList=E),yield gg({servcmd:"group_open_http_svc.group_msg_get",data:D})})}function Xm(s){return pA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:u,messageKey:E,direction:m}=s;return gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g,WithRecalledMsg:1,LastMsgTime:u,MsgKey:E,GetDirection:m}})})}function _B(s){if(ye.utils.isObject(s.quoteInfo)){const{msgID:n,messageSequence:g,messageTime:u}=s.quoteInfo;return JSON.stringify({businessQuote:{messageID:n,messageSequence:g,messageTime:u}})}}var qD=Object.freeze({__proto__:null,createMessagePackOptions:np,generateForbidCallbackControl:HD,getC2CRoamingMessagesByAnchor:Xm,getGroupRoamingMessagesByAnchor:Th,getRoamingMessages:function(s){return pA(this,void 0,void 0,function*(){const{peerAccount:n,count:g,lastMessageTime:u,messageKey:E}=s;return(yield gg({servcmd:"openim.getroammsg",data:{Peer_Account:n,MaxCnt:g||15,LastMsgTime:u||0,MsgKey:E,GetDirection:0,WithRecalledMsg:1}}))||[]})},modifyC2CMessage:_h,modifyGroupMessage:wB,sendMessage:wh});const{isPlainObject:HT}=ye.utils,{MSG_AUDIO:KD,MSG_FILE:jD,MSG_IMAGE:DR,MSG_VIDEO:SR,MSG_MERGER:MR}=Lo;class $m{constructor(){this._sendProtocolMap=new Map}init(){Cr.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:n=>![KD,jD,DR,SR,MR].includes(n[0].type)})}registerSendProtocol(n,g,u){this._sendProtocolMap.set(n,g.bind(u))}sendMessage(n,g){return pA(this,void 0,void 0,function*(){const{TOTAL_COUNT:u,SEND_COST:E,SUCCESS_COUNT:m,FAILED_COUNT:D}=rr;if(!(n instanceof jE))throw new gs({code:da.MSG_INSTANCE_REQUIRED});const M=n.validateBeforeSend();if(!M.isValid){const{code:W,message:iA=""}=M.error||{};throw new gs({code:W,message:iA})}this._reportMessageSendQuality({name:u,message:n});let T=!1;const{messageDataHandler:P}=ye.message||{};try{const{messageControlInfo:W}=g||{};let iA=null;P.addRandomOfSentMessage(n.random);const EA=Date.now(),RA=this._getSendProtocol(n);if(n.conversationType===Kr.CONV_C2C?(T=g?.onlineUserOnly===!0,iA=yield RA(n,g)):n.conversationType===Kr.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(n),iA=yield RA(n,g)),iA){const{messageDropReason:kA,sequence:xA,time:LA}=iA;if(this._updateNickAndAvatarOfSentMessageByMe(n),kA&&this._logRateLimitInfo(n,xA,kA),this._reportMessageSendQuality({name:m,message:n}),this._reportMessageSendQuality({name:E,message:n,startTs:EA}),n.isResend===!0){const SA=P.findMessage(n.ID);SA&&(ye.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${SA.ID}`),P.deleteConversationMessage(SA))}return n.status=Yr.SUCCESS,n.time=LA,n.conversationType===Kr.CONV_GROUP&&(n.sequence=xA),T?n._onlineOnlyFlag=!0:(P.storeConversationMessage(n),this._applySentMessageControlInfo(n,W),this._emitOnlineMessageSent(n)),n.type===wg.MSG_STREAM?{code:0,data:{message:n,streamMessageID:iA.streamMessageID}}:{code:0,data:{message:n}}}}catch(W){n.status=Yr.FAIL,P.removeRandomOfSentMessage(n.random);let{errorCode:iA}=W||{},EA=W?.errorInfo||W?.message||"";throw this._hasRiskContent(iA)&&(n.hasRiskContent=!0),T||this._isRejectedByRestApi(iA)||P.storeConversationMessage(n),this._reportMessageSendQuality({name:D,message:n,error:W}),new gs({code:iA,message:EA,data:{message:n},moreMessage:`type:${n.type} from:${n.from} to:${n.to}`})}})}_hasRiskContent(n){return n===80001||n===80004}_isRejectedByRestApi(n){return n>=10100&&n<=10200||n>=120001&&n<=13e4}_emitOnlineMessageSent(n){const g=n._isExcludedFromLastMessage?"":n,{conversationID:u,conversationType:E}=n,m=zc(u)?so.TOPIC_NEW_MESSAGE:so.NEW_MESSAGE;ye.notificationCenter.emitInnerEvent(m,{result:{conversationUpdateFieldList:[{conversationID:u,type:E,message:n,lastMessage:g,unreadCount:0}]}})}_applySentMessageControlInfo(n,g){g&&HT(g)&&(g.excludedFromLastMessage===!0&&(n._isExcludedFromLastMessage=!0),g.excludedFromUnreadCount===!0&&(n._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(n,g,u){const E=`from:${n.from} to:${n.to} sequence:${g} messageDropReason:${u}`;ye.ssoLog.warn("messageDropReason",E)}_updateNickAndAvatarOfSentMessageByMe(n){const{messageDataHandler:g}=ye.message||{};let u=!1;const{conversationID:E}=n,m=g.getLatestMsgSentByMe(E);if(m){const{nick:D,avatar:M}=m;D===n.nick&&M===n.avatar||(u=!0),u&&g.updateNickAndAvatarOfSentMessage({conversationID:E,latestNick:n.nick,latestAvatar:n.avatar,isSentByMe:!0})}}_validateBeforeSendGroupMessage(n){return pA(this,void 0,void 0,function*(){var g,u,E;const{to:m,from:D}=n;let M=m,T=Ap.getGroup(M);if(Xr({groupID:M})&&T?.isSupportTopic)throw new gs({code:da.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(zc(m)&&([M]=m.split(sa.TOPIC),T=Ap.getGroup(M)),!T&&typeof((g=Cr.getInstance().getApiMap())===null||g===void 0?void 0:g.getGroupProfile)=="function"){const P=yield Cr.getInstance().getApiMap().getGroupProfile({groupID:M});if(((E=(u=P?.data)===null||u===void 0?void 0:u.group)===null||E===void 0?void 0:E.type)===Lo.GRP_AVCHATROOM){const W=rs({code:da.MSG_SEND_FAIL_NOT_IN_AV,replacement1:D,replacement2:M});throw new gs({code:da.MSG_SEND_FAIL_NOT_IN_AV,message:W})}}return!0})}_reportMessageSendQuality(n){ye.notificationCenter.emitInnerEvent(so.QUALITY_STAT,{label:cI.MESSAGE_SEND_SUCCESS_RATE,data:n})}_getSendProtocol(n){return this._sendProtocolMap.get(n.type)||wh}}var qT=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){ye.notificationCenter.subscribeInnerEvent(so.LOGOUT,this._reset,this),ye.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}get _messagesByConversation(){return ep.getMessages()}storeConversationMessage(s,n=!1){if(an)return!0;const{conversationID:g}=s;if(!g||(this._messagesByConversation.has(g)||this._messagesByConversation.set(g,new Map),this._shouldSkipStoreMessage(s,n)))return!1;const u=this._getUniqueIdOfMessage(s);return this._messagesByConversation.get(g).set(u,s),this._updateLatestMessageMap(s),!0}_updateLatestMessageMap(s){const{conversationID:n}=s;s.flow==="out"?this._setLatestMsgSentByMe(n,s):n.startsWith("C2C")&&this._setLatestMsgSentByPeer(n,s)}_shouldSkipStoreMessage(s,n){const g=this._getUniqueIdOfMessage(s),u=this._messagesByConversation.get(s.conversationID);if(u?.has(g)){const E=u?.get(g);if(!n||E?.isModified===!0)return!0}return!1}deleteConversationMessage(s){var n;const{conversationID:g=""}=s,u=this._getUniqueIdOfMessage(s);this._messagesByConversation.has(g)&&((n=this._messagesByConversation.get(g))===null||n===void 0||n.delete(u))}modifyConversationMessage(s,n){var g;if(!this._messagesByConversation.has(s)&&!this._sparseMessagesByConversation.has(s))return{isUpdated:!1,message:null};const u=this._getUniqueIdOfMessage(n),E=this._getMessageFromLocalMessage(s,u);if(E){const{messageVersion:m,elements:D,cloudCustomData:M,checkResult:T=0}=n,P=T>1;if(ye.ssoLog.debug("modifyConversationMessage",`conversationToMessageMap modifyConversationMessage localVersion:${E.version} remoteVersion:${m}`),E.version<m){const W=this._getUniqueIdOfMessage(E),iA=or(D);return!((g=this._messagesByConversation.get(s))===null||g===void 0)&&g.has(W)?ep.updateMessage(s,[W],{isModified:!0,version:m,_elements:iA,payload:iA[0].content,type:iA[0].type,cloudCustomData:M,hasRiskContent:P,operation:yc.modify}):(E.version=m,E._elements=iA,E.payload=E._elements[0].content,E.type=E._elements[0].type,E.cloudCustomData=M,E.isModified=!0,E.hasRiskContent=P),{isUpdated:!0,message:E}}return{isUpdated:!1,message:E}}return{isUpdated:!1,message:null}}_getMessageFromLocalMessage(s,n){var g;if(this._messagesByConversation.has(s))return(g=this._messagesByConversation.get(s))===null||g===void 0?void 0:g.get(n);if(this._sparseMessagesByConversation.has(s)){const u=[...this._sparseMessagesByConversation.get(s).values()];for(let E=0;E<u.length;E++)if(this._getUniqueIdOfMessage(u[E])===n)return u[E]}return null}findMessage(s){let n=null;const g=Array.from(this._messagesByConversation.values());for(const u of g)if(n=Array.from(u.values()).find(E=>E.ID===s)||null,n)break;if(!n){const u=Array.from(this._sparseMessagesByConversation.values());for(const E of u)if(n=E.get(s)||null,n)break}return n}deleteConversationMessageList(s){this._messagesByConversation.has(s)&&(this._messagesByConversation.delete(s),this._latestMessageSentByMeMap.delete(s),this._latestMessageSentByPeerMap.delete(s)),this._sparseMessagesByConversation.has(s)&&this._sparseMessagesByConversation.delete(s)}revokeMessage({conversationID:s,sequence:n,random:g,revoker:u}){const E=this._messagesByConversation.get(s);let m=null;if(E){const D=Array.from(E.values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m){const M=this._getUniqueIdOfMessage(m);return ep.updateMessage(s,[M],{isRevoked:!0,revoker:u,operation:yc.revoke}),m}}if(this._sparseMessagesByConversation.has(s)){const D=Array.from(this._sparseMessagesByConversation.get(s).values());if(m=this._findMessageBySequenceAndRandom({messageList:D,random:g,sequence:n}),m)return m.isRevoked=!0,m.revoker=u,m}}_findMessageBySequenceAndRandom({messageList:s,sequence:n,random:g}){for(let u=0;u<s.length;u+=1){const E=s[u];if(E.sequence===n&&(r(g)||E.random===g))return E}return null}prependLocalMessageList(s){const{messageList:n,conversationID:g}=s;if(n.length===0)return[];if(an)return n;const u=[],E=[],m=this._messagesByConversation.get(g)||new Map;for(const D of n){const M=this._getUniqueIdOfMessage(D);m.has(M)||(u.push(D),E.push([M,D]))}if(E.length>0){const D=new Map([...E,...m.entries()]);this._messagesByConversation.set(g,D),this._updateLatestMessageSentByMe(g),this._updateLatestMessageSentByPeer(g)}return u}storeSparseMessageList(s){if(s.length===0)return;const{conversationID:n}=s[0],g=s.length;this._sparseMessagesByConversation.has(n)||this._sparseMessagesByConversation.set(n,new Map);const u=this._sparseMessagesByConversation.get(n);for(let E=0;E<g;E++){const m=s[E];u.has(m.ID)||u.set(m.ID,m)}}_updateLatestMessageSentByMe(s){var n;const g=Array.from(((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]);if(g.length!==0){for(let u=g.length-1;u>=0;u--)if(g[u].flow==="out"){this._setLatestMsgSentByMe(s,g[u]);break}}}_updateLatestMessageSentByPeer(s){var n;const g=Array.from(((n=this._messagesByConversation.get(s))===null||n===void 0?void 0:n.values())||[]);if(g.length!==0&&s.startsWith("C2C")){for(let u=g.length-1;u>=0;u--)if(g[u].flow==="in"){this._setLatestMsgSentByPeer(s,g[u]);break}}}_getUniqueIdOfMessage(s){const{from:n,to:g,random:u,sequence:E,time:m}=s;return`${n}-${g}-${u}-${E}-${m}`}_setLatestMsgSentByPeer(s,n){this._latestMessageSentByPeerMap.set(s,n)}_setLatestMsgSentByMe(s,n){this._latestMessageSentByMeMap.set(s,n)}getLatestMsgSentByPeer(s){return this._latestMessageSentByPeerMap.get(s)}getLatestMsgSentByMe(s){return this._latestMessageSentByMeMap.get(s)}addRandomOfSentMessage(s){this._randomOfSentMessageList.add(s)}removeRandomOfSentMessage(s){this._randomOfSentMessageList.delete(s)}updateNickAndAvatarOfSentMessage(s){const{conversationID:n="",latestAvatar:g,latestNick:u,isSentByMe:E=!0}=s,m=this._messagesByConversation.get(n);if(!m)return;const D=Array.from(m.values()),M=E?"out":"in";D.forEach(T=>{const{nick:P,avatar:W,flow:iA}=T;iA===M&&(P!==u&&(T.nick=u),W!==g&&(T.avatar=g))})}isInMessageList(s){var n;const{conversationID:g}=s;if(!g||!this._messagesByConversation.has(g))return!1;const u=this._getUniqueIdOfMessage(s);return(n=this._messagesByConversation.get(g))===null||n===void 0?void 0:n.has(u)}isMessageSentByCurrentInstance(s){const{random:n}=s;return this._randomOfSentMessageList.has(n)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(s){const n=this._messagesByConversation.get(s);return n?[...n.values()]:[]}getSparseMessageList(s){const n=this._sparseMessagesByConversation.get(s);return n?[...n.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),ye.notificationCenter.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),ye.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}};function Af(s,n){const g=MB.getConversation(s);if(g?.lastMessage){const{lastMessage:u}=g,{lastTime:E,lastSequence:m,version:D}=u,{time:M,sequence:T,messageVersion:P,elements:W,cloudCustomData:iA}=n;E===M&&m===T&&D!==P&&(u.type=W[0].type,u.payload=W[0].content,u.messageForShow=Zc(u.type,u.payload),u.cloudCustomData=iA,u.version=P,MB.updateConversation(s,{lastMessage:u}))}}class vR{init(){Cr.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(n){return pA(this,void 0,void 0,function*(){const{to:g,payload:u,sequence:E,conversationType:m,random:D,time:M,from:T,type:P}=n;if(this._canModifyMessageElement(P)){const W=n?._elements||[];W.length>=1&&(W[0].type=P,W[0].content=u)}try{let W=null,iA=null;if(m===Kr.CONV_C2C?W=yield _h(n):m===Kr.CONV_GROUP&&(W=yield wB(n)),W){let EA=`${m}${g}`;return g===Ar()&&m===Kr.CONV_C2C&&(EA=`${m}${T}`),iA={conversationType:m,from:T,to:g,time:M,random:D,sequence:E,elements:W?.elements,cloudCustomData:W?.cloudCustomData,messageVersion:W?.messageVersion,conversationID:EA},this._handleModifyMessageSuccess(iA),{code:0,data:{message:n},successLog:{message:`to:${g}`}}}}catch(W){const{errorCode:iA}=W||{};throw new gs({functionName:"modifyMessage",code:iA,moreMessage:`to:${g}`})}})}_handleModifyMessageSuccess(n){const{conversationID:g}=n,{isUpdated:u,message:E}=ye.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&ye.notificationCenter.emitOuterEvent(Dr.MESSAGE_MODIFIED,{name:Dr.MESSAGE_MODIFIED,data:[E]}),ye.notificationCenter.emitInnerEvent(so.MESSAGE_MODIFIED,{conversationID:g,message:E}),Af(g,n)}_canModifyMessageElement(n){return[KE.MSG_TEXT,KE.MSG_CUSTOM,KE.MSG_LOCATION,KE.MSG_FACE].includes(n)}}class Nh{init(){const{notificationCenter:n}=ye,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(Yt.RECEIVE_C2C_NEW_MESSAGE,qt.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),ws.getInstance().registerWorkflowStep(Yt.RECEIVE_C2C_NEW_MESSAGE,qt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),ws.getInstance().registerWorkflowStep(Yt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){ws.getInstance().executeWorkflow(Yt.RECEIVE_C2C_NEW_MESSAGE,n)}_handleC2CMessagePush(n){const g=n.data||{},{messageDataHandler:u}=ye.message||{},E=[],m=new Map;return g.C2cMsgArray.forEach(D=>{const M=this._generateC2CMessage(D);this._updateMessageProfile(M);let T=M.isModified===1;u.isMessageSentByCurrentInstance(M)?M.isModified=T:T=!1,M._onlineOnlyFlag?u.isMessageSentByCurrentInstance(M)||E.push(M):RB(M)&&(u.storeConversationMessage(M)&&sp({conversationUpdateFields:m,message:M}),u.isMessageSentByCurrentInstance(M)&&!T||E.push(M))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEventsAfterReceiveNewMessage(n){var g;const{messages:u=[]}=((g=n.result)===null||g===void 0?void 0:g[qt.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(u)}_emitMessageEventsAfterSyncUnreadMessage(n){var g;const{messages:u=[]}=((g=n.result)===null||g===void 0?void 0:g[qt.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(u)}_emitMessageEvents(n){const g=n?.filter(E=>E?.isModified===!0)||[];g.length>0&&ye.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:g});const u=n?.filter(E=>!E?.isModified);u.length>0&&ye.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:u})}_generateC2CMessage(n){const g=Kr.CONV_C2C,u=zm(n),E=ye.message.messageFactory.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:Xu.IN})),{elements:m}=u;return E.setElement(m),E}_updateMessageProfile(n){var g;const{messageDataHandler:u}=ye.message||{},E=(g=ye.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T=""}=n;if(m!==E){const P=u.getLatestMsgSentByPeer(T);if(P){const{nick:W,avatar:iA}=P;r(D)||r(M)?(n.nick=l(W)?W:n.nick,n.avatar=l(iA)?iA:n.avatar):D===W&&M===iA||(u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:T,nick:D,avatar:M}))}}else{const P=u.getLatestMsgSentByMe(T);!P||D===P.nick&&M===P.avatar||u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}}_updateConversationUserProfile(n){const{conversationID:g,nick:u,avatar:E}=n,m=MB.getConversation(g),{userProfile:D={}}=m||{};D.avatar===E&&D.nick===u||MB.updateConversation(g,{userProfile:Object.assign(Object.assign({},D),{nick:u,avatar:E})})}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:u,message:E}=ye.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&ye.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),ye.notificationCenter.emitInnerEvent("ModifyMessageSuccess",n),Af(g,n)}_handleC2CMessageModify(n){n.C2cMsgModNotifys.forEach(g=>{var u;const E=Kr.CONV_C2C;let m=Zm(g);const{to:D,from:M}=m;let T=`${E}${D}`;D===((u=ye.store.get("login"))===null||u===void 0?void 0:u.userId)&&(T=`${E}${M}`),m=Object.assign({conversationType:E,conversationID:T},m),this._updateMessageListDueToModify(m)})}_dispose(){const{notificationCenter:n}=ye,{InnerEventSubType:g}=n;ye.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),ye.notificationCenter.unSubscribeInnerEvent(so.MESSAGE_PUSH,g.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),ye.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class Gh{init(){const{notificationCenter:n}=ye,{InnerEventSubType:g}=n;ws.getInstance().registerWorkflowStep(Yt.RECEIVE_GROUP_NEW_MESSAGE,qt.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),ws.getInstance().registerWorkflowStep(Yt.RECEIVE_GROUP_NEW_MESSAGE,qt.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,g.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(n){this._canExecuteReceiverNewMessageWorkFlow(n)&&ws.getInstance().executeWorkflow(Yt.RECEIVE_GROUP_NEW_MESSAGE,n)}_handleGroupMessagePush(n){const g=n.data||{},{messageDataHandler:u}=ye.message,E=[],m=new Map,D=g?.GroupMsgArray;return D?.forEach(M=>{if(M.GroupInfo.NotVisible===1)return;const T=this._generateGroupMessage(M);this.updateMessageProfile(T);let P=T.isModified===1;u.isMessageSentByCurrentInstance(T)?T.isModified=P:P=!1,T._onlineOnlyFlag?u.isMessageSentByCurrentInstance(T)||E.push(T):RB(T)&&u.storeConversationMessage(T)&&(E.push(T),sp({conversationUpdateFields:m,message:T}))}),{conversationUpdateFieldList:[...m.values()],messages:E}}_emitMessageEvents(n){var g;const{messages:u}=((g=n.result)===null||g===void 0?void 0:g[qt.HANDLE_GROUP_NEW_MESSAGE])||{},E=u?.filter(D=>D?.isModified===!0)||[];E.length>0&&ye.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:E});const m=u?.filter(D=>!D?.isModified)||[];m.length>0&&ye.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:m})}_generateGroupMessage(n){const g=Kr.CONV_GROUP,u=VD(n),E=ye.message.messageFactory.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:Xu.IN})),{elements:m}=u;return E.setElement(m),E}updateMessageProfile(n){var g;const{messageDataHandler:u}=ye.message||{},E=(g=ye.store.get("login"))===null||g===void 0?void 0:g.userId,{from:m,nick:D,avatar:M,conversationID:T="",_elements:P}=n;if(m===E){const W=u.getLatestMsgSentByMe(T);!W||D===W.nick&&M===W.avatar||u.updateNickAndAvatarOfSentMessage({conversationID:T,latestNick:D,latestAvatar:M,isSentByMe:!0})}else if(m===Lo.CONV_SYSTEM){const{operationType:W,memberInfoList:iA,operatorInfo:EA}=P;let RA={};if(Rs(iA)?Rs(EA)||(RA=EA):[Tg.JOINED,Tg.KICKED,Tg.ADMIN_SET,Tg.ADMIN_CANCELED].includes(W)&&(RA=Object.assign({},iA[0])),!Rs(RA)){const{nick:kA="",avatar:xA=""}=RA;n.nick=kA,n.avatar=xA}}}_updateMessageListDueToModify(n){const{conversationID:g}=n,{isUpdated:u,message:E}=ye.message.messageDataHandler.modifyConversationMessage(g,n);u===!0&&ye.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[E]}),Af(g,n)}_handleGroupMessageModify(n){n.GroupMsgModNotifys.forEach(g=>{const u=Kr.CONV_GROUP;let E=JD(g);const{topicID:m,groupID:D}=E,M=m||D,T=`${u}${M}`;E=Object.assign({conversationType:u,conversationID:T,to:M},E),this._updateMessageListDueToModify(E)})}_dispose(){const{notificationCenter:n}=ye,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:g,GROUP_MESSAGE_MODIFIED:u}}=n;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,g,this._handleGroupMessagePush,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,u,this._handleGroupMessageModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(n){var g,u;const{GroupId:E,GroupType:m}=((u=(g=n?.GroupMsgArray)===null||g===void 0?void 0:g[0])===null||u===void 0?void 0:u.GroupInfo)||{},D=m===La.GRP_AVCHATROOM;return!(!Ap.getGroup(E)&&D)}}var WD=new class{constructor(){this.c2cMessageReceiver=new Nh,this.groupMessageReceiver=new Gh}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const RR={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:s=>!(!s.startsWith("C2C")&&!s.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:s=>function(n){var g;return typeof n?.text!="string"||typeof n.text=="string"&&((g=n?.text)===null||g===void 0?void 0:g.length)===0?"payload.text must be a string":!0}(s)}}},KT={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var jT=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(s){return pA(this,void 0,void 0,function*(){try{const{conversationID:n,count:g,direction:u,sequence:E,messageSequenceList:m,shouldMarkCompleted:D=!1,getType:M}=s,T=n.replace(ka.CONV_GROUP,""),P=[];let W=E;if(u===Kc.BACKWARD){if(typeof E!="number")return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};W=E+g-1}const iA=yield Th({groupID:T,count:g,messageSequence:W,messageSequenceList:m,getType:M});if(iA){const{RspMsgList:EA=[],NextReqMsgSeq:RA=0,IsFinished:kA,InvisibleMsgSeq:xA}=iA,LA=`groupID:${T} sequence:${E} reqSeq:${W} direction:${u} complete:${kA} nextSequence:${RA} remoteMsgCount:${EA.length} invisibleSequenceList:${xA}`,SA=[];for(let ae=0;ae<EA.length;ae++){const re=EA[ae];re.From_Account===Lo.CONV_SYSTEM&&P.push(re);const _i=this._parseMessage(re);SA.push(_i)}SA.reverse();let OA=kA===hR;u===Kc.BACKWARD&&(OA=SA[SA.length-1].sequence>=E),OA&&D&&this.completedHistoryConversations.add(n);const JA=vB(SA);return ye.ssoLog.info("getGroupRoamingMessagesByAnchor",LA),{messageList:JA,invisibleSequenceList:xA,nextReqMessageIDFromServer:RA,hasNoMoreHistoryMessage:OA,serverGroupTipList:P}}}catch(n){const{errorCode:g,errorInfo:u}=n||{};throw new gs({code:g,message:u})}})}clearHistoryMessageListFetchAnchors(s){this._historyMessageListFetchAnchors.delete(s)}isHistoryMessageFetchCompleted(s){return this.completedHistoryConversations.has(s)}_parseMessage(s){var n;const g=ka.CONV_GROUP;s.Event===4&&(s.MsgBody.MsgType=Lo.MSG_GRP_TIP);const u=VD(s),E=Wm.createMessage(Object.assign(Object.assign({},u),{conversationType:g,flow:"in"}));return SB(((n=u.elements)===null||n===void 0?void 0:n.content)||{},E),E.setElement(u.elements),E}getC2CRoamingMessagesByAnchor(s){return pA(this,void 0,void 0,function*(){var n;try{const{conversationID:g,count:u,messageID:E,time:m,direction:D,shouldMarkCompleted:M=!1}=s;let T=m,P="";if(!m){const EA=E?ye.message.messageDataHandler.findMessage(E):null;if(T=EA?.time||0,E&&this._historyMessageListFetchAnchors.has(g)){const RA=this._historyMessageListFetchAnchors.get(g);T=RA.lastMessageTime,P=RA.messageKey}}const W=g.replace(ka.CONV_C2C,""),iA=yield Xm({count:u,lastMessageTime:T,messageKey:P,peerAccount:W,direction:D});if(iA){const{MsgList:EA=[],Complete:RA,MsgKey:kA,LastMsgTime:xA}=iA;this._historyMessageListFetchAnchors.set(g,{messageKey:kA,lastMessageTime:xA});const LA=[];for(let ae=0;ae<EA.length;ae++){const re=EA[ae],_i=this._parseC2CMessage(re);LA.push(_i)}const SA=vB(LA),OA=(n=SA[0])===null||n===void 0?void 0:n.ID,JA=RA===1;return JA&&M&&this.completedHistoryConversations.add(g),{messageList:SA,nextReqMessageIDFromServer:OA,lastMessageTime:xA,hasNoMoreHistoryMessage:JA}}}catch(g){throw ye.ssoLog.debug("getC2CRoamingMessagesByAnchor",en(g)),g}})}_parseC2CMessage(s){const n=ka.CONV_C2C,g=zm(s),u=Wm.createMessage(Object.assign(Object.assign({},g),{conversationType:n,flow:"in"}));return u.setElement(g.elements),u}reset(){this._historyMessageListFetchAnchors.clear(),this.completedHistoryConversations.clear()}};class zD{constructor(){this.messageHelper=fR,this.messageDataProtocol=qD,this.messageFactory=Wm,this.messageSender=new $m,this.messageAction=new vR,this.messageReceiver=WD,this.messageDataHandler=qT,this.messageHistory=jT,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),this.messageDataHandler.init(),Wc({auth:KT,params:RR}),ye.notificationCenter.subscribeInnerEvent(so.LOGOUT,this._reset,this),ye.notificationCenter.subscribeInnerEvent(so.DESTROY,this._dispose,this)}_reset(){this.messageHistory.reset()}_dispose(){this._reset(),ye.notificationCenter.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),ye.notificationCenter.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}const RI="Tag_Profile_IM_",xl={NICK:`${RI}Nick`,GENDER:`${RI}Gender`,BIRTHDAY:`${RI}BirthDay`,LOCATION:`${RI}Location`,SELFSIGNATURE:`${RI}SelfSignature`,ALLOWTYPE:`${RI}AllowType`,LANGUAGE:`${RI}Language`,AVATAR:`${RI}Image`,MESSAGESETTINGS:`${RI}MsgSettings`,ADMINFORBIDTYPE:`${RI}AdminForbidType`,LEVEL:`${RI}Level`,ROLE:`${RI}Role`},ZD="Tag_Profile_Custom",XD="profileCustomField",WT="USER_STATUS",bh=1,wR=1e3,ef={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:[]},bd=new Map([[xl.NICK,"nick"],[xl.GENDER,"gender"],[xl.BIRTHDAY,"birthday"],[xl.LOCATION,"location"],[xl.SELFSIGNATURE,"selfSignature"],[xl.ALLOWTYPE,"allowType"],[xl.LANGUAGE,"language"],[xl.AVATAR,"avatar"],[xl.MESSAGESETTINGS,"messageSettings"],[xl.ADMINFORBIDTYPE,"adminForbidType"],[xl.LEVEL,"level"],[xl.ROLE,"role"]]);var $u=new class{createProfile(s,n){const g={userID:s,profileCustomField:[]};return n.forEach(u=>{const{tag:E,value:m}=u;E&&E.indexOf(ZD)>-1?g.profileCustomField.push({key:E,value:m}):bd.has(E)&&(g[bd.get(E)]=m)}),Object.assign(Object.assign({},ef),g)}parseProfileItem(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.Value})}),n}parseProfileList(s=[]){const n=[];return s.forEach(g=>{n.push({tag:g.Tag,value:g.ValueBytes})}),n}convertParamsToProfile(s){const n=[];return Object.keys(s).forEach(g=>{g!==XD&&n.push({tag:xl[g.toUpperCase()],value:s[g]})}),s.profileCustomField&&h(s.profileCustomField)&&s.profileCustomField.forEach(g=>{n.push({tag:g.key,value:g.value})}),n}normalizeProfileFields(s){const n={},g=[];return s.forEach(u=>{const{tag:E,value:m}=u;if(E&&E.indexOf(ZD)>-1&&g.push({key:E,value:m}),bd.has(E)&&m!==void 0){const D=bd.get(E);n[D]=m}}),g.length>0&&(n.profileCustomField=g),n}};const{generateProtocolData:_R}=ye.common;function TR(s){return pA(this,void 0,void 0,function*(){const n="profile.portrait_get_all",g={From_Account:Ar(),UserItem:[]};s.forEach(D=>{g.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:D})});const u=_R({servcmd:n,data:g}),E=`${u.head.seq}${n}`,m=yield ye.channel.sendPacket(u,{requestId:E});if(m)return function(D){const{ActionStatus:M,ErrorCode:T,ErrorDisplay:P,ErrorInfo:W,UserProfileItem:iA}=D,EA=[];return iA.map(RA=>{const{To_Account:kA,CustomSequence:xA,ResultCode:LA,ResultInfo:SA,StandardSequence:OA,ProfileItem:JA}=RA,ae=$u.parseProfileItem(JA);EA.push({userId:kA,customSequence:xA,resultCode:LA,resultInfo:SA,standardSequence:OA,profileItem:ae})}),{actionStatus:M,errorCode:T,errorDisplay:P,errorInfo:W,userProfile:EA}}(m)})}function WE(s){return rc.getFriendMap().has(s)}const{isEmpty:$D}=ye.utils;class tf{constructor(){this._strangerProfileMap=new Map}init(){Cr.getInstance().registerApi({apiName:"getMyProfile",context:this}),Cr.getInstance().registerApi({apiName:"getUserProfile",context:this}),Cr.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=$u.createProfile.bind($u);const{notificationCenter:n}=ye;ws.getInstance().registerWorkflowStep(Yt.SYNC_SERVER_INFO_AFTER_LOGIN,qt.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}getMyProfile(){return pA(this,void 0,void 0,function*(){try{const n=Ar(),g=yield TR([n]);if(g){const u=this._handleProfileFormResponse(g)[0];return rc.getUserProfileMap().set(n,u),{code:0,data:u}}}catch(n){const{errorCode:g,errorInfo:u}=n;throw new gs({functionName:"getMyProfile",code:g,message:u})}})}getUserProfile(n){return pA(this,void 0,void 0,function*(){try{let{userIDList:g}=n;const{userIdListToRequest:u,profileFromCache:E}=this._filterRequestAndCacheUsers(g);if(u.length===0)return{code:0,data:E,successLog:{message:`userIDList.length:${g.length}`}};u.length>wR&&(ye.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),u.length=wR);const{data:m,error:D}=yield this._batchFetchUserProfiles(u),M=u.length,T=m.length,P=M-T;if(E.length===0&&M===P&&!$D(D))throw D;if(h(m))return m.forEach(iA=>{WE(iA.userID)?rc.getUserProfileMap().set(iA.userID,iA):this._strangerProfileMap.set(iA.userID,iA)}),{code:0,data:m.concat(E),successLog:{message:`getUserProfile query:${M} success:${T} fail:${P} from cache:${E.length}`}}}catch(g){throw new gs(g)}})}getMyProfileCacheThenServer(){return pA(this,void 0,void 0,function*(){const n=Ar(),g=rc.getUserProfileMap().has(n);return g?{code:0,data:g}:this.getMyProfile()})}updateMyProfile(n){return pA(this,void 0,void 0,function*(){const g=Ar(),u={};for(const m in n)n[m]!==void 0&&(u[m]=n[m]);const E=$u.convertParamsToProfile(u);try{yield function(P){return pA(this,void 0,void 0,function*(){const W="profile.portrait_set",iA=_R({servcmd:W,data:P}),EA=`${iA.head.seq}${W}`,RA=yield ye.channel.sendPacket(iA,{requestId:EA});if(RA){const{ActionStatus:kA,ErrorCode:xA,ErrorDisplay:LA,ErrorInfo:SA}=RA;return{actionStatus:kA,errorCode:xA,errorDisplay:LA,errorInfo:SA}}})}({From_Account:g,ProfileItem:E});const D=rc.getUserProfile(g);let M;M=D?Object.assign(Object.assign({},D),u):$u.createProfile(g,E);const T=!rg(D,M,["lastUpdatedTime"]);return M.lastUpdatedTime=Date.now(),rc.getUserProfileMap().set(g,M),T&&this._emitProfileUpdated(M),{code:0,data:M,successLog:{message:`profileArray: ${ye.utils.safeStringify(E)}`}}}catch(m){const{errorCode:D,errorInfo:M}=m;throw new gs({functionName:"updateMyProfile",code:D,message:M,moreMessage:`params: ${ye.utils.safeStringify(n)}`})}})}updateMyNickAndAvatar(n){return pA(this,void 0,void 0,function*(){const g=Ar(),u=Date.now(),E=rc.getUserProfile(g);let m={};m=E?Object.assign(E,n):$u.createProfile(g,n),m.lastUpdatedTime=u,rc.getUserProfileMap().set(g,m)})}_onProfileDataModify(n){const g=function(m){const{Profile_Account:D,PushType:M,ProfileList:T}=m;return{userId:D,pushType:M,profileList:$u.parseProfileList(T)}}(n.ProfileDataMod[0]);if($D(g))return;const{isProfileUpdated:u,profile:E}=this._handleProfileModified(g);u&&this._emitProfileUpdated(E)}_emitProfileUpdated(n){ye.notificationCenter.emitInnerEvent(so.PROFILE_UPDATE,{name:so.PROFILE_UPDATE,data:[n]}),ye.notificationCenter.emitOuterEvent(Dr.PROFILE_UPDATED,{name:Dr.PROFILE_UPDATED,data:[n]}),MB.updateConversation(`C2C${n?.userID}`,{userProfile:n})}_dispose(){const{notificationCenter:n}=ye;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(n){const{userId:g,profileList:u}=n,E=rc.getUserProfile(g);if(!(Ar()===g||WE(g)&&E))return{isProfileUpdated:!1,profile:null};const m=$u.normalizeProfileFields(u),D=Object.keys(m).some(W=>W===XD?this._isCustomFieldChanged(E.profileCustomField,m.profileCustomField):E[W]!==m[W]);if(!D)return{isProfileUpdated:!1,profile:E};const M=Date.now(),T=Object.prototype.hasOwnProperty.call(m,XD)?this._mergeProfileCustomField(E.profileCustomField,m.profileCustomField):E.profileCustomField,P=Object.assign(Object.assign(Object.assign({},E),m),{profileCustomField:T,lastUpdatedTime:M});return rc.getUserProfileMap().set(g,P),{isProfileUpdated:D,profile:P}}_filterRequestAndCacheUsers(n){const g=[],u=[];return n.forEach(E=>{const m=rc.getUserProfileMap().has(E);WE(E)&&m?u.push(rc.getUserProfile(E)):this._isStrangerAndProfileValid(E)?u.push(this._strangerProfileMap.get(E)):g.push(E)}),{userIdListToRequest:g,profileFromCache:u}}_handleProfileFormResponse(n){const{userProfile:g}=n;if(!Array.isArray(g))return[];const u=g.filter(m=>m.userId!=="@TLS#NOT_FOUND"&&m.userId!==""&&!$D(m.profileItem)),E=Date.now();return u.map(m=>{const D=$u.createProfile(m.userId,m.profileItem);return D.lastUpdatedTime=E,D})}_isStrangerAndProfileValid(n){var g;if(!WE(n)){const{lastUpdatedTime:u=0}=this._strangerProfileMap.get(n)||{},E=((g=ye.store.get("cloudConfig"))===null||g===void 0?void 0:g.stranger_profile_expiration_time)||6e5;return Date.now()-u<=E}return!1}_chunkUserIDList(n,g){return Array.from({length:Math.ceil(n.length/g)},(u,E)=>n.slice(E*g,(E+1)*g))}_batchFetchUserProfiles(n){return pA(this,void 0,void 0,function*(){const g=[],u=[];let E={};return this._chunkUserIDList(n,100).forEach(m=>{g.push(TR(m))}),(yield Promise.allSettled(g)).forEach(m=>{if(m.status==="fulfilled"){const D=m.value,M=this._handleProfileFormResponse(D);h(M)&&u.push(...M)}else if(m.status==="rejected"){const{code:D,message:M}=m.reason||{};E={errorCode:D,message:M}}}),{data:u,error:E}})}_isCustomFieldChanged(n=[],g=[]){if(!h(g)||g.length===0)return!1;if(!h(n)||n.length===0)return!0;const u=new Map(n.map(E=>[E.key,E.value]));return g.some(E=>u.get(E.key)!==E.value)}_mergeProfileCustomField(n=[],g=[]){const u=h(n)?n.map(E=>Object.assign({},E)):[];return h(g)&&g.length!==0&&g.forEach(({key:E,value:m})=>{const D=u.find(M=>M.key===E);D?D.value=m:u.push({key:E,value:m})}),u}_reset(){rc.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const of=new Map,AS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let s=0,n=AS.length;s<n;s++)of.set(s,AS[s]);function rp(s){if(!s)return"";const n=String(s).replace(/[=]+$/,"");let g="";if(n.length%4==1)return"";for(let u,E,m=0,D=0;E=n.charAt(D++);~E&&(u=m%4?64*u+E:E,m++%4)?g+=String.fromCharCode(255&u>>(-2*m&6)):0)E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(E);try{return decodeURIComponent(escape(g))}catch(u){return console.warn(u),""}}const{isEmpty:zT}=ye.utils,{generateProtocolData:sf}=ye.common;function NR(s){return pA(this,void 0,void 0,function*(){const n="im_open_status.ws_get_user_status",g=sf({servcmd:n,data:{To_Account:s}}),u=`${g.head.seq}${n}`,E=yield ye.channel.sendPacket(g,{requestId:u});if(E)return function(m){const{ErrorCode:D,ErrorInfo:M,ErrorList:T=[],UserStatusList:P=[]}=m,W=P.map(EA=>{const{To_Account:RA,Status:kA,CustomStatus:xA,Detail:LA=[]}=EA;return{userID:RA,statusType:kA,customStatus:rp(xA),onlineDevices:ZT(LA)}}),iA=T.map(EA=>{const{To_Account:RA,Invalid_Account:kA,ErrorCode:xA,ErrorInfo:LA}=EA;return{userID:zT(kA)?RA:kA,code:xA,message:LA}});return{errorCode:D,errorInfo:M,successUserList:W,failureUserList:iA}}(E)})}function ZT(s){const n=[];return s?.forEach(g=>{const{Platform:u,Status:E}=g;E==="Online"&&n.push(u)}),n}class XT{constructor(){this._customStatus=""}init(){const{notificationCenter:n}=ye;Cr.getInstance().registerApi({apiName:"getUserStatus",context:this}),Cr.getInstance().registerApi({apiName:"setSelfStatus",context:this}),Cr.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),Cr.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),ws.getInstance().registerWorkflowStep(Yt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.USER_STATUS_UPDATE,this._onReOnline,this),n.subscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this)}setSelfStatus(n){return pA(this,void 0,void 0,function*(){const g=Ar(),{customStatus:u}=n;try{return yield function(E){return pA(this,void 0,void 0,function*(){const m="im_open_status.ws_set_custom_status",D=sf({servcmd:m,data:{CustomStatus:E}}),M=`${D.head.seq}${m}`,T=yield ye.channel.sendPacket(D,{requestId:M});if(T){const{ErrorCode:P,ErrorInfo:W}=T;return{errorCode:P,errorInfo:W}}})}(u),this._customStatus=u,{code:0,data:{userID:g,statusType:bh,customStatus:u},successLog:{message:`customStatus: ${u}`}}}catch(E){const{errorCode:m,errorInfo:D}=E;throw new gs({functionName:"setSelfStatus",code:m,message:D})}})}getUserStatus(n){return pA(this,void 0,void 0,function*(){const{userIDList:g=[]}=n;if(this._isOnlyMeInArray(g))return this._getMyStatus();const u=yield this._getUserStatus(g);return Object.assign(Object.assign({},u),{successLog:{message:`userIDList length: ${g.length}`}})})}setCustomStatus(n){const g=rp(n);this._customStatus=g}subscribeUserStatus(n){return pA(this,void 0,void 0,function*(){try{const{userIDList:g=[]}=n;this._checkBusinessCapabilityBits("subscribeUserStatus");const u=this._getMaxUserCount("subscribe"),E=this._sliceUserIDList(g,u),m=yield function(M){return pA(this,void 0,void 0,function*(){const{channel:T}=ye,P="im_open_status.ws_status_subscribe",W=sf({servcmd:P,data:{To_Account:M}}),iA=`${W.head.seq}${P}`;return yield T.sendPacket(W,{requestId:iA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"subscribeUserStatus",code:u})}})}unsubscribeUserStatus(n){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:g=[]}=n,u=this._getMaxUserCount("unsubscribe"),E=this._sliceUserIDList(g,u),m=yield function(M){return pA(this,void 0,void 0,function*(){const{channel:T}=ye,P="im_open_status.ws_status_unsubscribe";let W={};W=M.length===0?{UnsubscribeAll:1}:{To_Account:M};const iA=sf({servcmd:P,data:W}),EA=`${iA.head.seq}${P}`;return yield T.sendPacket(iA,{requestId:EA})})}(E),D=this._parseResponse(m);return{code:0,data:{failureUserList:D},successLog:{message:`userID length:${g.length} failCount: ${D.length}`}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"unsubscribeUserStatus",code:u})}})}_onUserStatusUpdate(n){const{UserStatusList:g=[]}=n||{},u=g.map(E=>{const{To_Account:m,Status:D,CustomStatus:M,Platform:T}=E,P={userID:m,statusType:D,customStatus:rp(M)};return T&&(P.onlineDevices=T),P});this._emitUserStatusUpdatedEvent(u)}_onReOnline(n){const g=rp(n.data.customStatus);if(this._customStatus===g)return;this._customStatus=g;const u={userID:Ar(),statusType:bh,customStatus:g};this._emitUserStatusUpdatedEvent(u)}_emitUserStatusUpdatedEvent(n){ye.notificationCenter.emitOuterEvent(Dr.USER_STATUS_UPDATED,{name:Dr.USER_STATUS_UPDATED,data:n})}_sliceUserIDList(n,g){return n.slice(0,g)}_parseResponse(n){const{ErrorList:g=[]}=n;return g.map(u=>{const{To_Account:E,Invalid_Account:m,ErrorCode:D,ErrorInfo:M}=u;return{userID:ye.utils.isEmpty(m)?E:m,code:D,message:M}})}_checkBusinessCapabilityBits(n){if(!ye.store.get("commercialConfig").get(WT))throw new gs({functionName:n,code:da.NO_USE,replacement1:n})}_getMaxUserCount(n){const g=ye.store.get("cloudConfig")||{},u={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:E,default:m}=u[n],D=g[E]||m;return parseInt(D,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:Ar(),statusType:bh,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(n){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const g=this._getMaxUserCount("query"),u=this._sliceUserIDList(n,g),E=yield NR(u),{successUserList:m,failureUserList:D}=E||{};return{code:0,data:{successUserList:m,failureUserList:D}}}catch(g){const{errorCode:u}=g;throw new gs({functionName:"getUserStatus",code:u})}})}_isOnlyMeInArray(n){const g=Ar();return n.length===1&&n.indexOf(g)>-1}_dispose(){const{notificationCenter:n}=ye;n.unSubscribeInnerEvent(so.MESSAGE_PUSH,n.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this),n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const eS={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(s){for(const n of s){if(typeof n!="object")return"Each item in profileCustomField must be an object";if(typeof n?.key!="string")return"Each item.key in profileCustomField must be a string";if(!n?.key.startsWith(ZD))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}}},$T={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class AN{constructor(){this.userProfile=new tf,this.userStatus=new XT,this.userProfile.init(),this.userStatus.init(),Wc({auth:$T,params:eS})}}function tS(s){const n=[];if(!l(s))return n;const g=s.length;if(g===0)return n;for(let u=g-1;u>=0;u--)s[u]==="1"&&n.push(2**(g-u-1));return n}var kd,wC,Ld;(function(s){s.NOT_START="notStart",s.PENDING="pending",s.RESOLVED="resolved",s.REJECTED="rejected"})(kd||(kd={})),function(s){s[s.C2C=1]="C2C",s[s.GROUP=2]="GROUP"}(wC||(wC={})),function(s){s[s.C2C=8]="C2C",s[s.GROUP=2]="GROUP"}(Ld||(Ld={}));class iS{constructor(){this._name="SyncConversationHandler",this._pagingStatus=kd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:n}=ye;ws.getInstance().registerWorkflowStep(Yt.SYNC_SERVER_INFO_AFTER_RE_ONLINE,qt.CONVERSATION_RECOVER,this._syncConversationList,this),ws.getInstance().registerWorkflowStep(Yt.SYNC_SERVER_INFO_AFTER_LOGIN,qt.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),n.subscribeInnerEvent(so.LOGOUT,this._reset,this),n.subscribeInnerEvent(so.DESTROY,this._dispose,this),ye.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===kd.RESOLVED}_syncConversationListAfterLogin(){return pA(this,void 0,void 0,function*(){return this._pagingStatus=kd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return pA(this,void 0,void 0,function*(){const{ssoLog:n,utils:{safeStringify:g}}=ye;n.debug("_syncConversationList","start");try{const u=yield this._pagingGetConversationList(!0);this._pagingStatus=kd.RESOLVED;const{conversationList:E=[]}=u||{};return n.info("_syncConversationList",`success count:${E.length}`),u}catch(u){const E=new gs(u);n.error("_syncConversationList",`fail ${g(u)}`,{error:E})}})}_pagingGetConversationList(n){return pA(this,void 0,void 0,function*(){try{const g=[];this._pagingStatus=kd.PENDING;const u=yield function(iA){return pA(this,void 0,void 0,function*(){const{fromAccount:EA,pagingTimeStamp:RA,pagingStartIndex:kA,pagingPinnedTimeStamp:xA,pagingPinnedStartIndex:LA}=iA;return gg({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:EA,StartIndex:kA,TimeStamp:RA,TopStartIndex:LA,TopTimeStamp:xA}})})}({fromAccount:Ar(),pagingTimeStamp:n?this._pagingTimeStamp:0,pagingStartIndex:n?this._pagingStartIndex:0,pagingPinnedTimeStamp:n?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:n?this._pagingPinnedStartIndex:0}),{CompleteFlag:E,SessionItem:m=[],TimeStamp:D,StartIndex:M,TopTimeStamp:T,TopStartIndex:P}=u||{};let W=[];if(E===1&&(this._pagingStatus=kd.RESOLVED),m.length>0&&(W=this._getConversationOptions(m),g.push(...W)),ye.notificationCenter.emitInnerEvent(so.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:W}),this._pagingTimeStamp=D,this._pagingStartIndex=M,this._pagingPinnedTimeStamp=T,this._pagingPinnedStartIndex=P,E!==1){const{conversationList:iA}=yield this._pagingGetConversationList(n);g.push(...iA)}return{conversationList:g}}catch(g){throw g}})}_getConversationOptions(n){const{utils:{isUndefined:g}}=ye,u=this._convertConversationKey(n);return this._filterValidConversations(u).map(E=>(g(E.lastMsg)&&(E.lastMsg={elements:[]}),E.type===wC.C2C?this._assembleC2COption(E):this._assembleGroupOption(E)))}_filterValidConversations(n){return n.filter(({type:g,userID:u})=>g===wC.C2C&&!function(E){let m;return E.startsWith(Lo.CONV_C2C)&&(m=E.replace(Lo.CONV_C2C,"")),m==="@TLS#ERROR"||m==="@TLS#NOT_FOUND"}(u)||g===2)}_assembleC2COption(n){var g,u,E,m,D,M,T,P;const W=this._createUserprofile(n);return{conversationID:`${Lo.CONV_C2C}${n.userID}`,type:Lo.CONV_C2C,lastMessage:{lastTime:n.time,lastSequence:n.sequence,fromAccount:n.lastC2CMsgFromAccount,type:!((g=n.lastMsg)===null||g===void 0)&&g.elements[0]?(u=n.lastMsg)===null||u===void 0?void 0:u.elements[0].type:null,payload:!((E=n.lastMsg)===null||E===void 0)&&E.elements[0]?this._amendLayersOverLimitProp(n.lastMsg.elements[0].content):null,cloudCustomData:((M=(D=(m=n.lastMsg)===null||m===void 0?void 0:m.elements)===null||D===void 0?void 0:D[0])===null||M===void 0?void 0:M.cloudCustomData)||"",isRevoked:n.lastMessageFlag===Ld.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(n),revoker:((P=(T=n.lastMsg)===null||T===void 0?void 0:T.revokerInfo)===null||P===void 0?void 0:P.revoker)||null},unreadCount:0,userProfile:W,peerReadTime:n.peerReadTime,isPinned:n.isPinned===1,customData:n.customMark||"",markList:tS(n.standardMark),conversationGroupList:[],remark:n.friendRemark||"",messageRemindType:this._transMsgRemindType(n.messageRemindType)}}_createUserprofile(n){var g;const{userID:u,nick:E,peerAvatar:m}=n,D=[{tag:"Tag_Profile_IM_Nick",value:E},{tag:"Tag_Profile_IM_Image",value:m}];return(g=ye.user.userProfile)===null||g===void 0?void 0:g.createProfile(u,D)}_computeIsPeerRead(n){const g=Ar(),{lastC2CMsgFromAccount:u,time:E,c2cPeerReadTime:m}=n;return u===g&&E<=m}_assembleGroupOption(n){var g,u,E,m,D;return{conversationID:`${Lo.CONV_GROUP}${n.groupID}`,type:Lo.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:n.time,lastSequence:n.sequence,fromAccount:n.msgGroupFromAccount},this._patchTypeAndPayload(n)),{cloudCustomData:((E=(u=(g=n.lastMsg)===null||g===void 0?void 0:g.elements)===null||u===void 0?void 0:u[0])===null||E===void 0?void 0:E.cloudCustomData)||"",isRevoked:n.lastMessageFlag===Ld.GROUP,onlineOnlyFlag:!1,nick:n.msgGroupFromNickName||"",nameCard:n.msgGroupFromCardName||"",revoker:((D=(m=n.lastMsg)===null||m===void 0?void 0:m.revokerInfo)===null||D===void 0?void 0:D.revoker)||null}),groupProfile:{groupID:n.groupID,name:n.groupNick,avatar:n.groupImage,type:n.groupType,nextMessageSeq:n.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(n),peerReadTime:0,isPinned:n.isPinned===1,version:0,customData:n.customMark||"",markList:tS(n.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(n.messageRemindType),subType:n.groupType}}_convertConversationKey(n){return n.map(g=>({type:g.Type,userID:g.To_Account,nick:g.C2cNick,peerAvatar:g.C2cImage,time:g.MsgTimeStamp,sequence:g.MsgSeq,lastC2CMsgFromAccount:g.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(g.LastMsg),lastMessageFlag:g.LastMsgFlags,c2cPeerReadTime:g.C2cPeerReadTime,peerReadTime:g.C2cPeerReadTime,friendRemark:g.C2cRemark,isPinned:g.TopFlags,standardMark:g.StandardMark,customMark:g.CustomMark,messageRemindType:g.MsgRecvOption,groupID:g.ToAccount,groupNick:g.GroupNick,groupImage:g.GroupImage,groupType:g.GroupType,nextMessageSeq:g.GroupNextMsgSeq,msgGroupFromAccount:g.MsgGroupFrom_Account,msgGroupFromNickName:g.MsgGroupFromNickName,msgGroupFromCardName:g.MsgGroupFromCardName,unreadCount:g.UnreadMsgCount,noUnreadCount:g.GroupIgnoredUnreadSeqCount}))}_convertLastMsgKey(n){var g,u,E;const{utils:{isEmpty:m}}=ye;if(m(n))return null;let D="",M=null;if(!m(n.GroupTips)){const{From_Account:T,GroupName:P}=((g=n.GroupTips)===null||g===void 0?void 0:g.GroupInfo)||{};D=Lo.MSG_GRP_TIP,M=Object.assign(Object.assign({},this._parseContent(D,n.GroupTips.MsgBody)),{groupProfile:{from:T,groupName:P}})}return n.MsgBody&&(D=(u=n.MsgBody[0])===null||u===void 0?void 0:u.MsgType,M=this._parseContent(D,n.MsgBody[0])),{event:n.Event,elements:[{type:D,content:M,cloudCustomData:n.CloudCustomData}],revokerInfo:{revoker:(E=n.RevokerInfo)===null||E===void 0?void 0:E.Revoker_Account}}}_parseContent(n,g){var u;if(!g)return g;const E=ye.message.messageFactory.getElementClass(n);return E?(u=E.parseServerPushElement(g))===null||u===void 0?void 0:u.content:g}_amendLayersOverLimitProp(n){const{LayersOverLimit:g}=n;return Do(n,["LayersOverLimit"]).layersOverLimit=g===1,n}_transMsgRemindType(n){let g="";return n===0?g=Lo.MSG_REMIND_ACPT_AND_NOTE:n===1?g=Lo.MSG_REMIND_DISCARD:n===2?g=Lo.MSG_REMIND_ACPT_NOT_NOTE:n===3&&(g=Lo.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),g}_patchTypeAndPayload(n){var g;const{utils:{isUndefined:u}}=ye,{event:E,elements:m=[]}=n.lastMsg||{};return u(E)?{type:m[0]?m[0].type:null,payload:m[0]?this._amendLayersOverLimitProp(m[0].content):null}:{type:Lo.MSG_GRP_TIP,payload:((g=m?.[0])===null||g===void 0?void 0:g.content)||{}}}_computeGroupUnreadCount(n){const{unreadCount:g=0,noUnreadCount:u=0}=n,E=g-u;return E>0?E:0}_reset(){this._pagingStatus=kd.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:n}=ye;n.unSubscribeInnerEvent(so.LOGOUT,this._reset,this),n.unSubscribeInnerEvent(so.DESTROY,this._dispose,this)}}class oS{constructor(){this.syncConversationHandler=new iS,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Zr}`);var sS={create:function(s){var n,g;const{SDKAppID:u,testEnv:E=!1,devMode:m=!1,unlimitedAVChatRoom:D=!1,scene:M="",oversea:T=!1,instance:P,disableIndependentDomain:W=!1,proxyServer:iA=""}=s;let EA=u;if(!function(kA){if(typeof kA=="number")return!0;const xA=Number(kA);return!Number.isNaN(xA)}(EA))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(EA=Number(EA),Ca.has(EA))return Ca.get(EA);let RA=null;if(P)RA=P,RA._workflowManager&&ws.setInstance(RA._workflowManager),RA._pluginManager&&RA._pluginManager.installBuiltInPlugin(DB),P.isReady()&&((g=(n=ws.getInstance()).executeWorkflow)===null||g===void 0||g.call(n,Yt.SYNC_SERVER_INFO_AFTER_LOGIN));else{const kA=function(){function ae(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${ae()+ae()}${ae()}${ae()}${ae()}${ae()}${ae()}${ae()}`}();ye.init({sdkAppId:EA,instanceId:kA,testEnv:E,devMode:m,unlimitedAVChatRoom:D,disableIndependentDomain:W,scene:M,oversea:T,sdkEdition:jm,version:Zr,proxyServer:iA}),ws.getInstance().init(),ye.message=new zD,ye.user=new AN,ye.login=new Rh,ye.conversation=new oS,ru.getInstance().installBuiltInPlugin(DB),RA=Cr.getInstance().exposeApiForClient(),RA._workflowManager=ws.getInstance(),RA._pluginManager=ru.getInstance();const{utils:{IS_WORKER_AVAILABLE:xA,USER_AGENT:LA,getPlatformType:SA,isIOSWebView:OA}}=ye,JA=`instanceID:${kA} SDKAppID:${u} platform:${HA} host:${SA()} isIOSWebView:${OA} workerAvailable:${xA} UserAgent:${LA}`;ye.ssoLog.info("sdkConstruct",JA)}return Ca.set(EA,RA),RA},TSignaling:qc,EVENT:Dr,VERSION:Zr,TYPES:Lo};return sS})}(j1)),j1.exports}var xoA=PoA();const ig=QW(xoA);var W1={exports:{}},YoA=W1.exports,i8;function VoA(){return i8||(i8=1,function(t,i){(function(r,l){t.exports=l()})(YoA,function(){function r(ge,XA){if(!(ge instanceof XA))throw new TypeError("Cannot call a class as a function")}function l(ge,XA){for(var _e=0;_e<XA.length;_e++){var je=XA[_e];je.enumerable=je.enumerable||!1,je.configurable=!0,"value"in je&&(je.writable=!0),Object.defineProperty(ge,_(je.key),je)}}function I(ge,XA,_e){return XA&&l(ge.prototype,XA),_e&&l(ge,_e),Object.defineProperty(ge,"prototype",{writable:!1}),ge}function h(ge,XA,_e){return(XA=_(XA))in ge?Object.defineProperty(ge,XA,{value:_e,enumerable:!0,configurable:!0,writable:!0}):ge[XA]=_e,ge}function f(ge,XA){var _e=Object.keys(ge);if(Object.getOwnPropertySymbols){var je=Object.getOwnPropertySymbols(ge);XA&&(je=je.filter(function(Ut){return Object.getOwnPropertyDescriptor(ge,Ut).enumerable})),_e.push.apply(_e,je)}return _e}function w(ge){for(var XA=1;XA<arguments.length;XA++){var _e=arguments[XA]!=null?arguments[XA]:{};XA%2?f(Object(_e),!0).forEach(function(je){h(ge,je,_e[je])}):Object.getOwnPropertyDescriptors?Object.defineProperties(ge,Object.getOwnPropertyDescriptors(_e)):f(Object(_e)).forEach(function(je){Object.defineProperty(ge,je,Object.getOwnPropertyDescriptor(_e,je))})}return ge}function _(ge){var XA=function(_e,je){if(typeof _e!="object"||!_e)return _e;var Ut=_e[Symbol.toPrimitive];if(Ut!==void 0){var gi=Ut.call(_e,je);if(typeof gi!="object")return gi;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(_e)}(ge,"string");return typeof XA=="symbol"?XA:XA+""}function b(ge){return(b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(XA){return typeof XA}:function(XA){return XA&&typeof Symbol=="function"&&XA.constructor===Symbol&&XA!==Symbol.prototype?"symbol":typeof XA})(ge)}var U=typeof mg<"u"?mg:typeof self<"u"?self:typeof window<"u"?window:{},j=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows"),IA=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||j,nA=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,mA=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,lA=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,cA=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,TA=typeof uni<"u"&&typeof window>"u"&&typeof uni.requireNativePlugin=="function",WA=TA&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios",Ee=(TA&&uni.getDeviceInfo().platform.toLocaleLowerCase(),IA||nA||mA||lA||cA||TA),de=U!==void 0&&(U.nativeModuleProxy!==void 0||U.ReactNative!==void 0),Pe=nA?qq:mA?tt:lA?swan:cA?my:IA?wx:TA?uni:{},pe=function(ge){if(b(ge)!=="object"||ge===null)return!1;var XA=Object.getPrototypeOf(ge);if(XA===null)return!0;for(var _e=XA;Object.getPrototypeOf(_e)!==null;)_e=Object.getPrototypeOf(_e);return XA===_e};function gt(ge){if(ge==null)return!0;if(typeof ge=="boolean")return!1;if(typeof ge=="number")return ge===0;if(typeof ge=="string"||typeof ge=="function"||Array.isArray(ge))return ge.length===0;if(ge instanceof Error)return ge.message==="";if(pe(ge)){for(var XA in ge)if(Object.prototype.hasOwnProperty.call(ge,XA))return!1;return!0}return!1}var pt=function(){return I(function ge(){r(this,ge),this._n="WebRequest"},[{key:"request",value:function(ge,XA){var _e=this,je="".concat(this._n,".request"),Ut=ge.downloadUrl||"",gi=(ge.method||"PUT").toUpperCase(),Fi=ge.url;if(console.log("%c tim-upload-plugin %c","background:#0abf5b; padding:1px; border-radius:3px; color: #fff","background:transparent","".concat(je," URL:").concat(Fi)),ge.qs){var To=function(ki){var ns=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"&",jo=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"=";return gt(ki)?"":pe(ki)?Object.keys(ki).map(function($i){var Wt=encodeURIComponent($i)+jo;return Array.isArray(ki[$i])?ki[$i].map(function(io){return Wt+encodeURIComponent(io)}).join(ns):Wt+encodeURIComponent(ki[$i])}).filter(Boolean).join(ns):void 0}(ge.qs);To&&(Fi+="".concat(Fi.indexOf("?")===-1?"?":"&").concat(To))}var to=new XMLHttpRequest;to.open(gi,Fi,!0),to.responseType=ge.dataType||"text";var Eo=ge.headers||{};if(ge.uploadByIP&&(Eo=w(w({},Eo),{},{host:ge.uploadIP})),!gt(Eo))for(var Vs in Eo)Eo.hasOwnProperty(Vs)&&Vs.toLowerCase()!=="content-length"&&Vs.toLowerCase()!=="user-agent"&&Vs.toLowerCase()!=="origin"&&Vs.toLowerCase()!=="host"&&to.setRequestHeader(Vs,Eo[Vs]);return to.onload=function(){if(to.status===200)XA(null,_e._xhrRes(to,_e._xhrBody(to,Ut,ge.uploadByIP&&ge.uploadIP),Eo));else{if(ge.uploadIP&&ge.url.indexOf(ge.uploadIP)===-1)return ge.url=function(ns,jo){return ns.replace(/^http(s)?:\/\/(.*?)\//,"https://".concat(jo,"/"))}(ge.url,ge.uploadIP),ge.uploadByIP=!0,_e.request(ge,XA);var ki={code:to.status,message:JSON.stringify(to.responseText)};XA(ki,_e._xhrRes(to,_e._xhrBody(to,Ut,ge.uploadByIP&&ge.uploadIP),Eo))}},to.onerror=function(ki){var ns=_e._xhrBody(to,Ut,ge.uploadByIP&&ge.uploadIP),jo={code:to.status,message:JSON.stringify(to.responseText)};ns||to.statusText||to.status!==0||(ki.message="CORS blocked or network error"),XA(jo,_e._xhrRes(to,ns)),jo=null},ge.onProgress&&to.upload&&(to.upload.onprogress=function(ki){var ns=ki.total,jo=ki.loaded,$i=Math.floor(100*jo/ns);ge.onProgress({total:ns,loaded:jo,percent:($i>=100?100:$i)/100})}),to.send(ge.resources),to}},{key:"_xhrRes",value:function(ge,XA){var _e={};return ge.getAllResponseHeaders().trim().split(`
|
||
`).forEach(function(je){if(je){var Ut=je.indexOf(":"),gi=je.substr(0,Ut).trim().toLowerCase(),Fi=je.substr(Ut+1).trim();_e[gi]=Fi}}),{statusCode:ge.status,statusMessage:ge.statusText,headers:_e,data:XA}}},{key:"_xhrBody",value:function(ge,XA,_e){return ge.status===200&&XA?{location:XA,uploadIP:_e}:{response:ge.responseText,uploadIP:_e}}}])}(),We=["unknown","image","video","audio","log"],Dt=["name"],Kt=function(){return I(function ge(){r(this,ge)},[{key:"request",value:function(ge,XA){var _e=this,je=ge.resources,Ut=je===void 0?"":je,gi=ge.headers,Fi=gi===void 0?{}:gi,To=ge.url,to=ge.downloadUrl,Eo=to===void 0?"":to,Vs=To,ki=null,ns=Eo.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/),jo=decodeURIComponent(ns[3]),$i=jo.indexOf("?")>-1?jo.split("?")[0]:jo,Wt={key:ge.fileKey?ge.fileKey:$i,success_action_status:200,"Content-Type":""},io={};if(WA){var bi=To.split("?sign=");if(bi.length>1){var vs=bi[1];Vs="".concat(bi[0],"?sign=").concat(encodeURIComponent("".concat(vs))),io.sign=decodeURIComponent(vs),io.signature=decodeURIComponent(vs)}}var HA={url:Vs,header:Fi,name:"file",filePath:Ut,formData:w(w({},Wt),io),timeout:ge.timeout||3e5};if(cA){var le=HA;le.name,HA=w(w({},function(Ve,Ft){if(Ve==null)return{};var nt,It,Ai=function(ke,Ze){if(ke==null)return{};var vt={};for(var _t in ke)if({}.hasOwnProperty.call(ke,_t)){if(Ze.includes(_t))continue;vt[_t]=ke[_t]}return vt}(Ve,Ft);if(Object.getOwnPropertySymbols){var ei=Object.getOwnPropertySymbols(Ve);for(It=0;It<ei.length;It++)nt=ei[It],Ft.includes(nt)||{}.propertyIsEnumerable.call(Ve,nt)&&(Ai[nt]=Ve[nt])}return Ai}(le,Dt)),{},{fileName:"file",fileType:We[ge.fileType]})}return(ki=Pe.uploadFile(w(w({},HA),{},{success:function(Ve){_e._handleResponse({response:Ve,downloadUrl:Eo,callback:XA})},fail:function(Ve){_e._handleResponse({response:Ve,downloadUrl:Eo,callback:XA})}}))).onProgressUpdate&&ki.onProgressUpdate(function(Ve){ge.onProgress&&ge.onProgress({total:Ve.totalBytesExpectedToSend,loaded:Ve.totalBytesSent,percent:Math.floor(Ve.progress)/100})}),ki}},{key:"_handleResponse",value:function(ge){var XA=ge.downloadUrl,_e=ge.response,je=ge.callback,Ut=_e.header,gi={};if(Ut)for(var Fi in Ut)Ut.hasOwnProperty(Fi)&&(gi[Fi.toLowerCase()]=Ut[Fi]);var To=+_e.statusCode;To===200?je(null,{statusCode:To,headers:gi,data:w(w({},_e.data),{},{location:XA})}):je({code:To,message:JSON.stringify(_e.data)},{statusCode:To,headers:gi,data:void 0})}}])}(),ut=function(){return I(function ge(){r(this,ge)},[{key:"request",value:function(ge,XA){var _e=this,je=ge.resources,Ut=je===void 0?"":je,gi=ge.fileKey,Fi=gi===void 0?"":gi,To=ge.url,to=ge.downloadUrl,Eo=to===void 0?"":to,Vs=new FormData;Vs.append("key",Fi),Vs.append("success_action_status",200),Vs.append("file",{uri:Ut,type:"application/octet-stream",name:"uploaded_file"}),fetch(To,{method:"POST",headers:{"Content-Type":"multipart/form-data"},body:Vs}).then(function(ki){_e._handleResponse({response:ki,downloadUrl:Eo,callback:XA})}).catch(function(ki){_e._handleResponse({response:ki,downloadUrl:Eo,callback:XA})})}},{key:"_handleResponse",value:function(ge){var XA=ge.downloadUrl,_e=ge.response,je=ge.callback,Ut=_e.headers,gi=_e.status,Fi=Ut&&Ut.map||{};gi===200?je(null,{statusCode:200,headers:Fi,data:{location:XA}}):je({code:gi,message:JSON.stringify(_e)},{statusCode:gi,headers:Fi,data:void 0})}}])}();return function(){return I(function ge(){r(this,ge),this.retry=1,this.tryCount=0,this.systemClockOffset=0,this.httpRequest=Ee?new Kt:de?new ut:new pt,console.log("TIMUploadPlugin.VERSION: ".concat("1.4.3"))},[{key:"uploadFile",value:function(ge,XA){var _e=this;return this.httpRequest.request(ge,function(je,Ut){je&&_e.tryCount<_e.retry&&_e.allowRetry(je)?(_e.tryCount++,_e.uploadFile(ge,XA)):(_e.tryCount=0,XA(je,Ut))})}},{key:"allowRetry",value:function(ge){var XA=!1,_e=!1;if(ge){var je=ge.headers&&(ge.headers.date||ge.headers.Date)||ge.error&&ge.error.ServerTime;try{var Ut=ge.error&&ge.error.Code,gi=ge.error&&ge.error.Message;(Ut==="RequestTimeTooSkewed"||Ut==="AccessDenied"&&gi==="Request has expired")&&(_e=!0)}catch{}if(_e&&je){var Fi=Date.now(),To=Date.parse(je);Math.abs(Fi+this.systemClockOffset-To)>=3e4&&(this.systemClockOffset=To-Fi,XA=!0)}else Math.floor(ge.statusCode/100)===5&&(XA=!0)}return XA}}],[{key:"getVersion",value:function(){return"1.4.3"}}])}()})}(W1)),W1.exports}var JoA=VoA();const HoA=QW(JoA);/**
|
||
* @vue/shared v3.5.13
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**//*! #__NO_SIDE_EFFECTS__ */function pW(t){const i=Object.create(null);for(const r of t.split(","))i[r]=1;return r=>r in i}const Da={},Y_=[],RQ=()=>{},qoA=()=>!1,ZY=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),mW=t=>t.startsWith("onUpdate:"),sI=Object.assign,fW=(t,i)=>{const r=t.indexOf(i);r>-1&&t.splice(r,1)},KoA=Object.prototype.hasOwnProperty,Wr=(t,i)=>KoA.call(t,i),Ms=Array.isArray,V_=t=>XY(t)==="[object Map]",u6=t=>XY(t)==="[object Set]",$s=t=>typeof t=="function",fg=t=>typeof t=="string",Cm=t=>typeof t=="symbol",Na=t=>t!==null&&typeof t=="object",E6=t=>(Na(t)||$s(t))&&$s(t.then)&&$s(t.catch),d6=Object.prototype.toString,XY=t=>d6.call(t),joA=t=>XY(t).slice(8,-1),C6=t=>XY(t)==="[object Object]",yW=t=>fg(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,HL=pW(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$Y=t=>{const i=Object.create(null);return r=>i[r]||(i[r]=t(r))},WoA=/-(\w)/g,sh=$Y(t=>t.replace(WoA,(i,r)=>r?r.toUpperCase():"")),zoA=/\B([A-Z])/g,nD=$Y(t=>t.replace(zoA,"-$1").toLowerCase()),AV=$Y(t=>t.charAt(0).toUpperCase()+t.slice(1)),fj=$Y(t=>t?`on${AV(t)}`:""),jy=(t,i)=>!Object.is(t,i),z1=(t,...i)=>{for(let r=0;r<t.length;r++)t[r](...i)},h6=(t,i,r,l=!1)=>{Object.defineProperty(t,i,{configurable:!0,enumerable:!1,writable:l,value:r})},B3=t=>{const i=parseFloat(t);return isNaN(i)?t:i},ZoA=t=>{const i=fg(t)?Number(t):NaN;return isNaN(i)?t:i};let o8;const eV=()=>o8||(o8=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Br(t){if(Ms(t)){const i={};for(let r=0;r<t.length;r++){const l=t[r],I=fg(l)?esA(l):Br(l);if(I)for(const h in I)i[h]=I[h]}return i}else if(fg(t)||Na(t))return t}const XoA=/;(?![^(]*\))/g,$oA=/:([^]+)/,AsA=/\/\*[^]*?\*\//g;function esA(t){const i={};return t.replace(AsA,"").split(XoA).forEach(r=>{if(r){const l=r.split($oA);l.length>1&&(i[l[0].trim()]=l[1].trim())}}),i}function qi(t){let i="";if(fg(t))i=t;else if(Ms(t))for(let r=0;r<t.length;r++){const l=qi(t[r]);l&&(i+=l+" ")}else if(Na(t))for(const r in t)t[r]&&(i+=r+" ");return i.trim()}function tsA(t){if(!t)return null;let{class:i,style:r}=t;return i&&!fg(i)&&(t.class=qi(i)),r&&(t.style=Br(r)),t}const isA="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",osA=pW(isA);function B6(t){return!!t||t===""}const Q6=t=>!!(t&&t.__v_isRef===!0),ni=t=>fg(t)?t:t==null?"":Ms(t)||Na(t)&&(t.toString===d6||!$s(t.toString))?Q6(t)?ni(t.value):JSON.stringify(t,p6,2):String(t),p6=(t,i)=>Q6(i)?p6(t,i.value):V_(i)?{[`Map(${i.size})`]:[...i.entries()].reduce((r,[l,I],h)=>(r[yj(l,h)+" =>"]=I,r),{})}:u6(i)?{[`Set(${i.size})`]:[...i.values()].map(r=>yj(r))}:Cm(i)?yj(i):Na(i)&&!Ms(i)&&!C6(i)?String(i):i,yj=(t,i="")=>{var r;return Cm(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 iC;class ssA{constructor(i=!1){this.detached=i,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=iC,!i&&iC&&(this.index=(iC.scopes||(iC.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=iC;try{return iC=this,i()}finally{iC=r}}}on(){iC=this}off(){iC=this.parent}stop(i){if(this._active){this._active=!1;let r,l;for(r=0,l=this.effects.length;r<l;r++)this.effects[r].stop();for(this.effects.length=0,r=0,l=this.cleanups.length;r<l;r++)this.cleanups[r]();if(this.cleanups.length=0,this.scopes){for(r=0,l=this.scopes.length;r<l;r++)this.scopes[r].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!i){const I=this.parent.scopes.pop();I&&I!==this&&(this.parent.scopes[this.index]=I,I.index=this.index)}this.parent=void 0}}}function nsA(){return iC}let _a;const Dj=new WeakSet;class m6{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,iC&&iC.active&&iC.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Dj.has(this)&&(Dj.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||y6(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,s8(this),D6(this);const i=_a,r=sB;_a=this,sB=!0;try{return this.fn()}finally{S6(this),_a=i,sB=r,this.flags&=-3}}stop(){if(this.flags&1){for(let i=this.deps;i;i=i.nextDep)MW(i);this.deps=this.depsTail=void 0,s8(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Dj.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Q3(this)&&this.run()}get dirty(){return Q3(this)}}let f6=0,qL,KL;function y6(t,i=!1){if(t.flags|=8,i){t.next=KL,KL=t;return}t.next=qL,qL=t}function DW(){f6++}function SW(){if(--f6>0)return;if(KL){let i=KL;for(KL=void 0;i;){const r=i.next;i.next=void 0,i.flags&=-9,i=r}}let t;for(;qL;){let i=qL;for(qL=void 0;i;){const r=i.next;if(i.next=void 0,i.flags&=-9,i.flags&1)try{i.trigger()}catch(l){t||(t=l)}i=r}}if(t)throw t}function D6(t){for(let i=t.deps;i;i=i.nextDep)i.version=-1,i.prevActiveLink=i.dep.activeLink,i.dep.activeLink=i}function S6(t){let i,r=t.depsTail,l=r;for(;l;){const I=l.prevDep;l.version===-1?(l===r&&(r=I),MW(l),rsA(l)):i=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=I}t.deps=i,t.depsTail=r}function Q3(t){for(let i=t.deps;i;i=i.nextDep)if(i.dep.version!==i.version||i.dep.computed&&(M6(i.dep.computed)||i.dep.version!==i.version))return!0;return!!t._dirty}function M6(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===uU))return;t.globalVersion=uU;const i=t.dep;if(t.flags|=2,i.version>0&&!t.isSSR&&t.deps&&!Q3(t)){t.flags&=-3;return}const r=_a,l=sB;_a=t,sB=!0;try{D6(t);const I=t.fn(t._value);(i.version===0||jy(I,t._value))&&(t._value=I,i.version++)}catch(I){throw i.version++,I}finally{_a=r,sB=l,S6(t),t.flags&=-3}}function MW(t,i=!1){const{dep:r,prevSub:l,nextSub:I}=t;if(l&&(l.nextSub=I,t.prevSub=void 0),I&&(I.prevSub=l,t.nextSub=void 0),r.subs===t&&(r.subs=l,!l&&r.computed)){r.computed.flags&=-5;for(let h=r.computed.deps;h;h=h.nextDep)MW(h,!0)}!i&&!--r.sc&&r.map&&r.map.delete(r.key)}function rsA(t){const{prevDep:i,nextDep:r}=t;i&&(i.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=i,t.nextDep=void 0)}let sB=!0;const v6=[];function rD(){v6.push(sB),sB=!1}function aD(){const t=v6.pop();sB=t===void 0?!0:t}function s8(t){const{cleanup:i}=t;if(t.cleanup=void 0,i){const r=_a;_a=void 0;try{i()}finally{_a=r}}}let uU=0;class asA{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 vW{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(!_a||!sB||_a===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==_a)r=this.activeLink=new asA(_a,this),_a.deps?(r.prevDep=_a.depsTail,_a.depsTail.nextDep=r,_a.depsTail=r):_a.deps=_a.depsTail=r,R6(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const l=r.nextDep;l.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=l),r.prevDep=_a.depsTail,r.nextDep=void 0,_a.depsTail.nextDep=r,_a.depsTail=r,_a.deps===r&&(_a.deps=l)}return r}trigger(i){this.version++,uU++,this.notify(i)}notify(i){DW();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{SW()}}}function R6(t){if(t.dep.sc++,t.sub.flags&4){const i=t.dep.computed;if(i&&!t.dep.subs){i.flags|=20;for(let l=i.deps;l;l=l.nextDep)R6(l)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const EY=new WeakMap,Bv=Symbol(""),p3=Symbol(""),EU=Symbol("");function Qu(t,i,r){if(sB&&_a){let l=EY.get(t);l||EY.set(t,l=new Map);let I=l.get(r);I||(l.set(r,I=new vW),I.map=l,I.key=r),I.track()}}function lm(t,i,r,l,I,h){const f=EY.get(t);if(!f){uU++;return}const w=_=>{_&&_.trigger()};if(DW(),i==="clear")f.forEach(w);else{const _=Ms(t),b=_&&yW(r);if(_&&r==="length"){const U=Number(l);f.forEach((j,IA)=>{(IA==="length"||IA===EU||!Cm(IA)&&IA>=U)&&w(j)})}else switch((r!==void 0||f.has(void 0))&&w(f.get(r)),b&&w(f.get(EU)),i){case"add":_?b&&w(f.get("length")):(w(f.get(Bv)),V_(t)&&w(f.get(p3)));break;case"delete":_||(w(f.get(Bv)),V_(t)&&w(f.get(p3)));break;case"set":V_(t)&&w(f.get(Bv));break}}SW()}function gsA(t,i){const r=EY.get(t);return r&&r.get(i)}function Q_(t){const i=Gr(t);return i===t?i:(Qu(i,"iterate",EU),th(t)?i:i.map(pu))}function tV(t){return Qu(t=Gr(t),"iterate",EU),t}const csA={__proto__:null,[Symbol.iterator](){return Sj(this,Symbol.iterator,pu)},concat(...t){return Q_(this).concat(...t.map(i=>Ms(i)?Q_(i):i))},entries(){return Sj(this,"entries",t=>(t[1]=pu(t[1]),t))},every(t,i){return im(this,"every",t,i,void 0,arguments)},filter(t,i){return im(this,"filter",t,i,r=>r.map(pu),arguments)},find(t,i){return im(this,"find",t,i,pu,arguments)},findIndex(t,i){return im(this,"findIndex",t,i,void 0,arguments)},findLast(t,i){return im(this,"findLast",t,i,pu,arguments)},findLastIndex(t,i){return im(this,"findLastIndex",t,i,void 0,arguments)},forEach(t,i){return im(this,"forEach",t,i,void 0,arguments)},includes(...t){return Mj(this,"includes",t)},indexOf(...t){return Mj(this,"indexOf",t)},join(t){return Q_(this).join(t)},lastIndexOf(...t){return Mj(this,"lastIndexOf",t)},map(t,i){return im(this,"map",t,i,void 0,arguments)},pop(){return CL(this,"pop")},push(...t){return CL(this,"push",t)},reduce(t,...i){return n8(this,"reduce",t,i)},reduceRight(t,...i){return n8(this,"reduceRight",t,i)},shift(){return CL(this,"shift")},some(t,i){return im(this,"some",t,i,void 0,arguments)},splice(...t){return CL(this,"splice",t)},toReversed(){return Q_(this).toReversed()},toSorted(t){return Q_(this).toSorted(t)},toSpliced(...t){return Q_(this).toSpliced(...t)},unshift(...t){return CL(this,"unshift",t)},values(){return Sj(this,"values",pu)}};function Sj(t,i,r){const l=tV(t),I=l[i]();return l!==t&&!th(t)&&(I._next=I.next,I.next=()=>{const h=I._next();return h.value&&(h.value=r(h.value)),h}),I}const lsA=Array.prototype;function im(t,i,r,l,I,h){const f=tV(t),w=f!==t&&!th(t),_=f[i];if(_!==lsA[i]){const j=_.apply(t,h);return w?pu(j):j}let b=r;f!==t&&(w?b=function(j,IA){return r.call(this,pu(j),IA,t)}:r.length>2&&(b=function(j,IA){return r.call(this,j,IA,t)}));const U=_.call(f,b,l);return w&&I?I(U):U}function n8(t,i,r,l){const I=tV(t);let h=r;return I!==t&&(th(t)?r.length>3&&(h=function(f,w,_){return r.call(this,f,w,_,t)}):h=function(f,w,_){return r.call(this,f,pu(w),_,t)}),I[i](h,...l)}function Mj(t,i,r){const l=Gr(t);Qu(l,"iterate",EU);const I=l[i](...r);return(I===-1||I===!1)&&_W(r[0])?(r[0]=Gr(r[0]),l[i](...r)):I}function CL(t,i,r=[]){rD(),DW();const l=Gr(t)[i].apply(t,r);return SW(),aD(),l}const IsA=pW("__proto__,__v_isRef,__isVue"),w6=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Cm));function usA(t){Cm(t)||(t=String(t));const i=Gr(this);return Qu(i,"has",t),i.hasOwnProperty(t)}class _6{constructor(i=!1,r=!1){this._isReadonly=i,this._isShallow=r}get(i,r,l){if(r==="__v_skip")return i.__v_skip;const I=this._isReadonly,h=this._isShallow;if(r==="__v_isReactive")return!I;if(r==="__v_isReadonly")return I;if(r==="__v_isShallow")return h;if(r==="__v_raw")return l===(I?h?ysA:b6:h?G6:N6).get(i)||Object.getPrototypeOf(i)===Object.getPrototypeOf(l)?i:void 0;const f=Ms(i);if(!I){let _;if(f&&(_=csA[r]))return _;if(r==="hasOwnProperty")return usA}const w=Reflect.get(i,r,iI(i)?i:l);return(Cm(r)?w6.has(r):IsA(r))||(I||Qu(i,"get",r),h)?w:iI(w)?f&&yW(r)?w:w.value:Na(w)?I?CE(w):Ev(w):w}}class T6 extends _6{constructor(i=!1){super(!1,i)}set(i,r,l,I){let h=i[r];if(!this._isShallow){const _=Rv(h);if(!th(l)&&!Rv(l)&&(h=Gr(h),l=Gr(l)),!Ms(i)&&iI(h)&&!iI(l))return _?!1:(h.value=l,!0)}const f=Ms(i)&&yW(r)?Number(r)<i.length:Wr(i,r),w=Reflect.set(i,r,l,iI(i)?i:I);return i===Gr(I)&&(f?jy(l,h)&&lm(i,"set",r,l):lm(i,"add",r,l)),w}deleteProperty(i,r){const l=Wr(i,r);i[r];const I=Reflect.deleteProperty(i,r);return I&&l&&lm(i,"delete",r,void 0),I}has(i,r){const l=Reflect.has(i,r);return(!Cm(r)||!w6.has(r))&&Qu(i,"has",r),l}ownKeys(i){return Qu(i,"iterate",Ms(i)?"length":Bv),Reflect.ownKeys(i)}}class EsA extends _6{constructor(i=!1){super(!0,i)}set(i,r){return!0}deleteProperty(i,r){return!0}}const dsA=new T6,CsA=new EsA,hsA=new T6(!0);const m3=t=>t,R1=t=>Reflect.getPrototypeOf(t);function BsA(t,i,r){return function(...l){const I=this.__v_raw,h=Gr(I),f=V_(h),w=t==="entries"||t===Symbol.iterator&&f,_=t==="keys"&&f,b=I[t](...l),U=r?m3:i?f3:pu;return!i&&Qu(h,"iterate",_?p3:Bv),{next(){const{value:j,done:IA}=b.next();return IA?{value:j,done:IA}:{value:w?[U(j[0]),U(j[1])]:U(j),done:IA}},[Symbol.iterator](){return this}}}}function w1(t){return function(...i){return t==="delete"?!1:t==="clear"?void 0:this}}function QsA(t,i){const r={get(I){const h=this.__v_raw,f=Gr(h),w=Gr(I);t||(jy(I,w)&&Qu(f,"get",I),Qu(f,"get",w));const{has:_}=R1(f),b=i?m3:t?f3:pu;if(_.call(f,I))return b(h.get(I));if(_.call(f,w))return b(h.get(w));h!==f&&h.get(I)},get size(){const I=this.__v_raw;return!t&&Qu(Gr(I),"iterate",Bv),Reflect.get(I,"size",I)},has(I){const h=this.__v_raw,f=Gr(h),w=Gr(I);return t||(jy(I,w)&&Qu(f,"has",I),Qu(f,"has",w)),I===w?h.has(I):h.has(I)||h.has(w)},forEach(I,h){const f=this,w=f.__v_raw,_=Gr(w),b=i?m3:t?f3:pu;return!t&&Qu(_,"iterate",Bv),w.forEach((U,j)=>I.call(h,b(U),b(j),f))}};return sI(r,t?{add:w1("add"),set:w1("set"),delete:w1("delete"),clear:w1("clear")}:{add(I){!i&&!th(I)&&!Rv(I)&&(I=Gr(I));const h=Gr(this);return R1(h).has.call(h,I)||(h.add(I),lm(h,"add",I,I)),this},set(I,h){!i&&!th(h)&&!Rv(h)&&(h=Gr(h));const f=Gr(this),{has:w,get:_}=R1(f);let b=w.call(f,I);b||(I=Gr(I),b=w.call(f,I));const U=_.call(f,I);return f.set(I,h),b?jy(h,U)&&lm(f,"set",I,h):lm(f,"add",I,h),this},delete(I){const h=Gr(this),{has:f,get:w}=R1(h);let _=f.call(h,I);_||(I=Gr(I),_=f.call(h,I)),w&&w.call(h,I);const b=h.delete(I);return _&&lm(h,"delete",I,void 0),b},clear(){const I=Gr(this),h=I.size!==0,f=I.clear();return h&&lm(I,"clear",void 0,void 0),f}}),["keys","values","entries",Symbol.iterator].forEach(I=>{r[I]=BsA(I,t,i)}),r}function RW(t,i){const r=QsA(t,i);return(l,I,h)=>I==="__v_isReactive"?!t:I==="__v_isReadonly"?t:I==="__v_raw"?l:Reflect.get(Wr(r,I)&&I in l?r:l,I,h)}const psA={get:RW(!1,!1)},msA={get:RW(!1,!0)},fsA={get:RW(!0,!1)};const N6=new WeakMap,G6=new WeakMap,b6=new WeakMap,ysA=new WeakMap;function DsA(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function SsA(t){return t.__v_skip||!Object.isExtensible(t)?0:DsA(joA(t))}function Ev(t){return Rv(t)?t:wW(t,!1,dsA,psA,N6)}function MsA(t){return wW(t,!1,hsA,msA,G6)}function CE(t){return wW(t,!0,CsA,fsA,b6)}function wW(t,i,r,l,I){if(!Na(t)||t.__v_raw&&!(i&&t.__v_isReactive))return t;const h=I.get(t);if(h)return h;const f=SsA(t);if(f===0)return t;const w=new Proxy(t,f===2?l:r);return I.set(t,w),w}function J_(t){return Rv(t)?J_(t.__v_raw):!!(t&&t.__v_isReactive)}function Rv(t){return!!(t&&t.__v_isReadonly)}function th(t){return!!(t&&t.__v_isShallow)}function _W(t){return t?!!t.__v_raw:!1}function Gr(t){const i=t&&t.__v_raw;return i?Gr(i):t}function vsA(t){return!Wr(t,"__v_skip")&&Object.isExtensible(t)&&h6(t,"__v_skip",!0),t}const pu=t=>Na(t)?Ev(t):t,f3=t=>Na(t)?CE(t):t;function iI(t){return t?t.__v_isRef===!0:!1}function ze(t){return RsA(t,!1)}function RsA(t,i){return iI(t)?t:new wsA(t,i)}class wsA{constructor(i,r){this.dep=new vW,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?i:Gr(i),this._value=r?i:pu(i),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(i){const r=this._rawValue,l=this.__v_isShallow||th(i)||Rv(i);i=l?i:Gr(i),jy(i,r)&&(this._rawValue=i,this._value=l?i:pu(i),this.dep.trigger())}}function aA(t){return iI(t)?t.value:t}const _sA={get:(t,i,r)=>i==="__v_raw"?t:aA(Reflect.get(t,i,r)),set:(t,i,r,l)=>{const I=t[i];return iI(I)&&!iI(r)?(I.value=r,!0):Reflect.set(t,i,r,l)}};function k6(t){return J_(t)?t:new Proxy(t,_sA)}function Gs(t){const i=Ms(t)?new Array(t.length):{};for(const r in t)i[r]=L6(t,r);return i}class TsA{constructor(i,r,l){this._object=i,this._key=r,this._defaultValue=l,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 gsA(Gr(this._object),this._key)}}class NsA{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 vj(t,i,r){return iI(t)?t:$s(t)?new NsA(t):Na(t)&&arguments.length>1?L6(t,i,r):ze(t)}function L6(t,i,r){const l=t[i];return iI(l)?l:new TsA(t,i,r)}class GsA{constructor(i,r,l){this.fn=i,this.setter=r,this._value=void 0,this.dep=new vW(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=uU-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=l}notify(){if(this.flags|=16,!(this.flags&8)&&_a!==this)return y6(this,!0),!0}get value(){const i=this.dep.track();return M6(this),i&&(i.version=this.dep.version),this._value}set value(i){this.setter&&this.setter(i)}}function bsA(t,i,r=!1){let l,I;return $s(t)?l=t:(l=t.get,I=t.set),new GsA(l,I,r)}const _1={},dY=new WeakMap;let rv;function ksA(t,i=!1,r=rv){if(r){let l=dY.get(r);l||dY.set(r,l=[]),l.push(t)}}function LsA(t,i,r=Da){const{immediate:l,deep:I,once:h,scheduler:f,augmentJob:w,call:_}=r,b=de=>I?de:th(de)||I===!1||I===0?Im(de,1):Im(de);let U,j,IA,nA,mA=!1,lA=!1;if(iI(t)?(j=()=>t.value,mA=th(t)):J_(t)?(j=()=>b(t),mA=!0):Ms(t)?(lA=!0,mA=t.some(de=>J_(de)||th(de)),j=()=>t.map(de=>{if(iI(de))return de.value;if(J_(de))return b(de);if($s(de))return _?_(de,2):de()})):$s(t)?i?j=_?()=>_(t,2):t:j=()=>{if(IA){rD();try{IA()}finally{aD()}}const de=rv;rv=U;try{return _?_(t,3,[nA]):t(nA)}finally{rv=de}}:j=RQ,i&&I){const de=j,Pe=I===!0?1/0:I;j=()=>Im(de(),Pe)}const cA=nsA(),TA=()=>{U.stop(),cA&&cA.active&&fW(cA.effects,U)};if(h&&i){const de=i;i=(...Pe)=>{de(...Pe),TA()}}let WA=lA?new Array(t.length).fill(_1):_1;const Ee=de=>{if(!(!(U.flags&1)||!U.dirty&&!de))if(i){const Pe=U.run();if(I||mA||(lA?Pe.some((pe,gt)=>jy(pe,WA[gt])):jy(Pe,WA))){IA&&IA();const pe=rv;rv=U;try{const gt=[Pe,WA===_1?void 0:lA&&WA[0]===_1?[]:WA,nA];_?_(i,3,gt):i(...gt),WA=Pe}finally{rv=pe}}}else U.run()};return w&&w(Ee),U=new m6(j),U.scheduler=f?()=>f(Ee,!1):Ee,nA=de=>ksA(de,!1,U),IA=U.onStop=()=>{const de=dY.get(U);if(de){if(_)_(de,4);else for(const Pe of de)Pe();dY.delete(U)}},i?l?Ee(!0):WA=U.run():f?f(Ee.bind(null,!0),!0):U.run(),TA.pause=U.pause.bind(U),TA.resume=U.resume.bind(U),TA.stop=TA,TA}function Im(t,i=1/0,r){if(i<=0||!Na(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),i--,iI(t))Im(t.value,i,r);else if(Ms(t))for(let l=0;l<t.length;l++)Im(t[l],i,r);else if(u6(t)||V_(t))t.forEach(l=>{Im(l,i,r)});else if(C6(t)){for(const l in t)Im(t[l],i,r);for(const l of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,l)&&Im(t[l],i,r)}return t}/**
|
||
* @vue/runtime-core v3.5.13
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function bU(t,i,r,l){try{return l?t(...l):t()}catch(I){iV(I,i,r)}}function rB(t,i,r,l){if($s(t)){const I=bU(t,i,r,l);return I&&E6(I)&&I.catch(h=>{iV(h,i,r)}),I}if(Ms(t)){const I=[];for(let h=0;h<t.length;h++)I.push(rB(t[h],i,r,l));return I}}function iV(t,i,r,l=!0){const I=i?i.vnode:null,{errorHandler:h,throwUnhandledErrorInProduction:f}=i&&i.appContext.config||Da;if(i){let w=i.parent;const _=i.proxy,b=`https://vuejs.org/error-reference/#runtime-${r}`;for(;w;){const U=w.ec;if(U){for(let j=0;j<U.length;j++)if(U[j](t,_,b)===!1)return}w=w.parent}if(h){rD(),bU(h,null,10,[t,_,b]),aD();return}}UsA(t,r,I,l,f)}function UsA(t,i,r,l=!0,I=!1){if(I)throw t;console.error(t)}const QE=[];let QQ=-1;const H_=[];let Ly=null,D_=0;const U6=Promise.resolve();let CY=null;function Vy(t){const i=CY||U6;return t?i.then(this?t.bind(this):t):i}function FsA(t){let i=QQ+1,r=QE.length;for(;i<r;){const l=i+r>>>1,I=QE[l],h=dU(I);h<t||h===t&&I.flags&2?i=l+1:r=l}return i}function TW(t){if(!(t.flags&1)){const i=dU(t),r=QE[QE.length-1];!r||!(t.flags&2)&&i>=dU(r)?QE.push(t):QE.splice(FsA(i),0,t),t.flags|=1,F6()}}function F6(){CY||(CY=U6.then(P6))}function OsA(t){Ms(t)?H_.push(...t):Ly&&t.id===-1?Ly.splice(D_+1,0,t):t.flags&1||(H_.push(t),t.flags|=1),F6()}function r8(t,i,r=QQ+1){for(;r<QE.length;r++){const l=QE[r];if(l&&l.flags&2){if(t&&l.id!==t.uid)continue;QE.splice(r,1),r--,l.flags&4&&(l.flags&=-2),l(),l.flags&4||(l.flags&=-2)}}}function O6(t){if(H_.length){const i=[...new Set(H_)].sort((r,l)=>dU(r)-dU(l));if(H_.length=0,Ly){Ly.push(...i);return}for(Ly=i,D_=0;D_<Ly.length;D_++){const r=Ly[D_];r.flags&4&&(r.flags&=-2),r.flags&8||r(),r.flags&=-2}Ly=null,D_=0}}const dU=t=>t.id==null?t.flags&2?-1:1/0:t.id;function P6(t){try{for(QQ=0;QQ<QE.length;QQ++){const i=QE[QQ];i&&!(i.flags&8)&&(i.flags&4&&(i.flags&=-2),bU(i,i.i,i.i?15:14),i.flags&4||(i.flags&=-2))}}finally{for(;QQ<QE.length;QQ++){const i=QE[QQ];i&&(i.flags&=-2)}QQ=-1,QE.length=0,O6(),CY=null,(QE.length||H_.length)&&P6()}}let tI=null,oV=null;function hY(t){const i=tI;return tI=t,oV=t&&t.type.__scopeId||null,i}function gT(t){oV=t}function cT(){oV=null}function Li(t,i=tI,r){if(!i||t._n)return t;const l=(...I)=>{l._d&&m8(-1);const h=hY(i);let f;try{f=t(...I)}finally{hY(h),l._d&&m8(1)}return f};return l._n=!0,l._c=!0,l._d=!0,l}function Ta(t,i){if(tI===null)return t;const r=gV(tI),l=t.dirs||(t.dirs=[]);for(let I=0;I<i.length;I++){let[h,f,w,_=Da]=i[I];h&&($s(h)&&(h={mounted:h,updated:h}),h.deep&&Im(f),l.push({dir:h,instance:r,value:f,oldValue:void 0,arg:w,modifiers:_}))}return t}function Av(t,i,r,l){const I=t.dirs,h=i&&i.dirs;for(let f=0;f<I.length;f++){const w=I[f];h&&(w.oldValue=h[f].value);let _=w.dir[l];_&&(rD(),rB(_,r,8,[t.el,w,t,i]),aD())}}const x6=Symbol("_vte"),Y6=t=>t.__isTeleport,jL=t=>t&&(t.disabled||t.disabled===""),a8=t=>t&&(t.defer||t.defer===""),g8=t=>typeof SVGElement<"u"&&t instanceof SVGElement,c8=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,y3=(t,i)=>{const r=t&&t.to;return fg(r)?i?i(r):null:r},V6={name:"Teleport",__isTeleport:!0,process(t,i,r,l,I,h,f,w,_,b){const{mc:U,pc:j,pbc:IA,o:{insert:nA,querySelector:mA,createText:lA,createComment:cA}}=b,TA=jL(i.props);let{shapeFlag:WA,children:Ee,dynamicChildren:de}=i;if(t==null){const Pe=i.el=lA(""),pe=i.anchor=lA("");nA(Pe,r,l),nA(pe,r,l);const gt=(We,Dt)=>{WA&16&&(I&&I.isCE&&(I.ce._teleportTarget=We),U(Ee,We,Dt,I,h,f,w,_))},pt=()=>{const We=i.target=y3(i.props,mA),Dt=J6(We,i,lA,nA);We&&(f!=="svg"&&g8(We)?f="svg":f!=="mathml"&&c8(We)&&(f="mathml"),TA||(gt(We,Dt),Z1(i,!1)))};TA&&(gt(r,pe),Z1(i,!0)),a8(i.props)?hE(()=>{pt(),i.el.__isMounted=!0},h):pt()}else{if(a8(i.props)&&!t.el.__isMounted){hE(()=>{V6.process(t,i,r,l,I,h,f,w,_,b),delete t.el.__isMounted},h);return}i.el=t.el,i.targetStart=t.targetStart;const Pe=i.anchor=t.anchor,pe=i.target=t.target,gt=i.targetAnchor=t.targetAnchor,pt=jL(t.props),We=pt?r:pe,Dt=pt?Pe:gt;if(f==="svg"||g8(pe)?f="svg":(f==="mathml"||c8(pe))&&(f="mathml"),de?(IA(t.dynamicChildren,de,We,I,h,f,w),GW(t,i,!0)):_||j(t,i,We,Dt,I,h,f,w,!1),TA)pt?i.props&&t.props&&i.props.to!==t.props.to&&(i.props.to=t.props.to):T1(i,r,Pe,b,1);else if((i.props&&i.props.to)!==(t.props&&t.props.to)){const Kt=i.target=y3(i.props,mA);Kt&&T1(i,Kt,null,b,0)}else pt&&T1(i,pe,gt,b,1);Z1(i,TA)}},remove(t,i,r,{um:l,o:{remove:I}},h){const{shapeFlag:f,children:w,anchor:_,targetStart:b,targetAnchor:U,target:j,props:IA}=t;if(j&&(I(b),I(U)),h&&I(_),f&16){const nA=h||!jL(IA);for(let mA=0;mA<w.length;mA++){const lA=w[mA];l(lA,i,r,nA,!!lA.dynamicChildren)}}},move:T1,hydrate:PsA};function T1(t,i,r,{o:{insert:l},m:I},h=2){h===0&&l(t.targetAnchor,i,r);const{el:f,anchor:w,shapeFlag:_,children:b,props:U}=t,j=h===2;if(j&&l(f,i,r),(!j||jL(U))&&_&16)for(let IA=0;IA<b.length;IA++)I(b[IA],i,r,2);j&&l(w,i,r)}function PsA(t,i,r,l,I,h,{o:{nextSibling:f,parentNode:w,querySelector:_,insert:b,createText:U}},j){const IA=i.target=y3(i.props,_);if(IA){const nA=jL(i.props),mA=IA._lpa||IA.firstChild;if(i.shapeFlag&16)if(nA)i.anchor=j(f(t),i,w(t),r,l,I,h),i.targetStart=mA,i.targetAnchor=mA&&f(mA);else{i.anchor=f(t);let lA=mA;for(;lA;){if(lA&&lA.nodeType===8){if(lA.data==="teleport start anchor")i.targetStart=lA;else if(lA.data==="teleport anchor"){i.targetAnchor=lA,IA._lpa=i.targetAnchor&&f(i.targetAnchor);break}}lA=f(lA)}i.targetAnchor||J6(IA,i,U,b),j(mA&&f(mA),i,IA,r,l,I,h)}Z1(i,nA)}return i.anchor&&f(i.anchor)}const xsA=V6;function Z1(t,i){const r=t.ctx;if(r&&r.ut){let l,I;for(i?(l=t.el,I=t.anchor):(l=t.targetStart,I=t.targetAnchor);l&&l!==I;)l.nodeType===1&&l.setAttribute("data-v-owner",r.uid),l=l.nextSibling;r.ut()}}function J6(t,i,r,l){const I=i.targetStart=r(""),h=i.targetAnchor=r("");return I[x6]=h,t&&(l(I,t),l(h,t)),h}const Uy=Symbol("_leaveCb"),N1=Symbol("_enterCb");function YsA(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return hc(()=>{t.isMounted=!0}),X6(()=>{t.isUnmounting=!0}),t}const JC=[Function,Array],H6={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:JC,onEnter:JC,onAfterEnter:JC,onEnterCancelled:JC,onBeforeLeave:JC,onLeave:JC,onAfterLeave:JC,onLeaveCancelled:JC,onBeforeAppear:JC,onAppear:JC,onAfterAppear:JC,onAppearCancelled:JC},q6=t=>{const i=t.subTree;return i.component?q6(i.component):i},VsA={name:"BaseTransition",props:H6,setup(t,{slots:i}){const r=OnA(),l=YsA();return()=>{const I=i.default&&W6(i.default(),!0);if(!I||!I.length)return;const h=K6(I),f=Gr(t),{mode:w}=f;if(l.isLeaving)return Rj(h);const _=l8(h);if(!_)return Rj(h);let b=D3(_,f,l,r,j=>b=j);_.type!==pE&&CU(_,b);let U=r.subTree&&l8(r.subTree);if(U&&U.type!==pE&&!gv(_,U)&&q6(r).type!==pE){let j=D3(U,f,l,r);if(CU(U,j),w==="out-in"&&_.type!==pE)return l.isLeaving=!0,j.afterLeave=()=>{l.isLeaving=!1,r.job.flags&8||r.update(),delete j.afterLeave,U=void 0},Rj(h);w==="in-out"&&_.type!==pE?j.delayLeave=(IA,nA,mA)=>{const lA=j6(l,U);lA[String(U.key)]=U,IA[Uy]=()=>{nA(),IA[Uy]=void 0,delete b.delayedLeave,U=void 0},b.delayedLeave=()=>{mA(),delete b.delayedLeave,U=void 0}}:U=void 0}else U&&(U=void 0);return h}}};function K6(t){let i=t[0];if(t.length>1){for(const r of t)if(r.type!==pE){i=r;break}}return i}const JsA=VsA;function j6(t,i){const{leavingVNodes:r}=t;let l=r.get(i.type);return l||(l=Object.create(null),r.set(i.type,l)),l}function D3(t,i,r,l,I){const{appear:h,mode:f,persisted:w=!1,onBeforeEnter:_,onEnter:b,onAfterEnter:U,onEnterCancelled:j,onBeforeLeave:IA,onLeave:nA,onAfterLeave:mA,onLeaveCancelled:lA,onBeforeAppear:cA,onAppear:TA,onAfterAppear:WA,onAppearCancelled:Ee}=i,de=String(t.key),Pe=j6(r,t),pe=(We,Dt)=>{We&&rB(We,l,9,Dt)},gt=(We,Dt)=>{const Kt=Dt[1];pe(We,Dt),Ms(We)?We.every(ut=>ut.length<=1)&&Kt():We.length<=1&&Kt()},pt={mode:f,persisted:w,beforeEnter(We){let Dt=_;if(!r.isMounted)if(h)Dt=cA||_;else return;We[Uy]&&We[Uy](!0);const Kt=Pe[de];Kt&&gv(t,Kt)&&Kt.el[Uy]&&Kt.el[Uy](),pe(Dt,[We])},enter(We){let Dt=b,Kt=U,ut=j;if(!r.isMounted)if(h)Dt=TA||b,Kt=WA||U,ut=Ee||j;else return;let ge=!1;const XA=We[N1]=_e=>{ge||(ge=!0,_e?pe(ut,[We]):pe(Kt,[We]),pt.delayedLeave&&pt.delayedLeave(),We[N1]=void 0)};Dt?gt(Dt,[We,XA]):XA()},leave(We,Dt){const Kt=String(t.key);if(We[N1]&&We[N1](!0),r.isUnmounting)return Dt();pe(IA,[We]);let ut=!1;const ge=We[Uy]=XA=>{ut||(ut=!0,Dt(),XA?pe(lA,[We]):pe(mA,[We]),We[Uy]=void 0,Pe[Kt]===t&&delete Pe[Kt])};Pe[Kt]=t,nA?gt(nA,[We,ge]):ge()},clone(We){const Dt=D3(We,i,r,l,I);return I&&I(Dt),Dt}};return pt}function Rj(t){if(sV(t))return t=AD(t),t.children=null,t}function l8(t){if(!sV(t))return Y6(t.type)&&t.children?K6(t.children):t;const{shapeFlag:i,children:r}=t;if(r){if(i&16)return r[0];if(i&32&&$s(r.default))return r.default()}}function CU(t,i){t.shapeFlag&6&&t.component?(t.transition=i,CU(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 W6(t,i=!1,r){let l=[],I=0;for(let h=0;h<t.length;h++){let f=t[h];const w=r==null?f.key:String(r)+String(f.key!=null?f.key:h);f.type===vr?(f.patchFlag&128&&I++,l=l.concat(W6(f.children,i,w))):(i||f.type!==pE)&&l.push(w!=null?AD(f,{key:w}):f)}if(I>1)for(let h=0;h<l.length;h++)l[h].patchFlag=-2;return l}/*! #__NO_SIDE_EFFECTS__ */function zi(t,i){return $s(t)?sI({name:t.name},i,{setup:t}):t}function z6(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function BY(t,i,r,l,I=!1){if(Ms(t)){t.forEach((mA,lA)=>BY(mA,i&&(Ms(i)?i[lA]:i),r,l,I));return}if(q_(l)&&!I){l.shapeFlag&512&&l.type.__asyncResolved&&l.component.subTree.component&&BY(t,i,r,l.component.subTree);return}const h=l.shapeFlag&4?gV(l.component):l.el,f=I?null:h,{i:w,r:_}=t,b=i&&i.r,U=w.refs===Da?w.refs={}:w.refs,j=w.setupState,IA=Gr(j),nA=j===Da?()=>!1:mA=>Wr(IA,mA);if(b!=null&&b!==_&&(fg(b)?(U[b]=null,nA(b)&&(j[b]=null)):iI(b)&&(b.value=null)),$s(_))bU(_,w,12,[f,U]);else{const mA=fg(_),lA=iI(_);if(mA||lA){const cA=()=>{if(t.f){const TA=mA?nA(_)?j[_]:U[_]:_.value;I?Ms(TA)&&fW(TA,h):Ms(TA)?TA.includes(h)||TA.push(h):mA?(U[_]=[h],nA(_)&&(j[_]=U[_])):(_.value=[h],t.k&&(U[t.k]=_.value))}else mA?(U[_]=f,nA(_)&&(j[_]=f)):lA&&(_.value=f,t.k&&(U[t.k]=f))};f?(cA.id=-1,hE(cA,r)):cA()}}}eV().requestIdleCallback;eV().cancelIdleCallback;const q_=t=>!!t.type.__asyncLoader,sV=t=>t.type.__isKeepAlive;function HsA(t,i){Z6(t,"a",i)}function qsA(t,i){Z6(t,"da",i)}function Z6(t,i,r=PI){const l=t.__wdc||(t.__wdc=()=>{let I=r;for(;I;){if(I.isDeactivated)return;I=I.parent}return t()});if(nV(i,l,r),r){let I=r.parent;for(;I&&I.parent;)sV(I.parent.vnode)&&KsA(l,i,r,I),I=I.parent}}function KsA(t,i,r,l){const I=nV(i,t,l,!0);Kg(()=>{fW(l[i],I)},r)}function nV(t,i,r=PI,l=!1){if(r){const I=r[t]||(r[t]=[]),h=i.__weh||(i.__weh=(...f)=>{rD();const w=kU(r),_=rB(i,r,t,f);return w(),aD(),_});return l?I.unshift(h):I.push(h),h}}const hm=t=>(i,r=PI)=>{(!QU||t==="sp")&&nV(t,(...l)=>i(...l),r)},jsA=hm("bm"),hc=hm("m"),WsA=hm("bu"),zsA=hm("u"),X6=hm("bum"),Kg=hm("um"),ZsA=hm("sp"),XsA=hm("rtg"),$sA=hm("rtc");function AnA(t,i=PI){nV("ec",t,i)}const enA="components";function tnA(t,i){return onA(enA,t,!0,i)||t}const inA=Symbol.for("v-ndc");function onA(t,i,r=!0,l=!1){const I=tI||PI;if(I){const h=I.type;{const w=JnA(h,!1);if(w&&(w===i||w===sh(i)||w===AV(sh(i))))return h}const f=I8(I[t]||h[t],i)||I8(I.appContext[t],i);return!f&&l?h:f}}function I8(t,i){return t&&(t[i]||t[sh(i)]||t[AV(sh(i))])}function fE(t,i,r,l){let I;const h=r,f=Ms(t);if(f||fg(t)){const w=f&&J_(t);let _=!1;w&&(_=!th(t),t=tV(t)),I=new Array(t.length);for(let b=0,U=t.length;b<U;b++)I[b]=i(_?pu(t[b]):t[b],b,void 0,h)}else if(typeof t=="number"){I=new Array(t);for(let w=0;w<t;w++)I[w]=i(w+1,w,void 0,h)}else if(Na(t))if(t[Symbol.iterator])I=Array.from(t,(w,_)=>i(w,_,void 0,h));else{const w=Object.keys(t);I=new Array(w.length);for(let _=0,b=w.length;_<b;_++){const U=w[_];I[_]=i(t[U],U,_,h)}}else I=[];return I}function Fn(t,i,r={},l,I){if(tI.ce||tI.parent&&q_(tI.parent)&&tI.parent.ce)return i!=="default"&&(r.name=i),se(),Qi(vr,null,[bt("slot",r,l)],64);let h=t[i];h&&h._c&&(h._d=!1),se();const f=h&&$6(h(r)),w=r.key||f&&f.key,_=Qi(vr,{key:(w&&!Cm(w)?w:`_${i}`)+(!f&&l?"_fb":"")},f||[],f&&t._===1?64:-2);return!I&&_.scopeId&&(_.slotScopeIds=[_.scopeId+"-s"]),h&&h._c&&(h._d=!0),_}function $6(t){return t.some(i=>BU(i)?!(i.type===pE||i.type===vr&&!$6(i.children)):!0)?t:null}const S3=t=>t?B9(t)?gV(t):S3(t.parent):null,WL=sI(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=>S3(t.parent),$root:t=>S3(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>e9(t),$forceUpdate:t=>t.f||(t.f=()=>{TW(t.update)}),$nextTick:t=>t.n||(t.n=Vy.bind(t.proxy)),$watch:t=>SnA.bind(t)}),wj=(t,i)=>t!==Da&&!t.__isScriptSetup&&Wr(t,i),snA={get({_:t},i){if(i==="__v_skip")return!0;const{ctx:r,setupState:l,data:I,props:h,accessCache:f,type:w,appContext:_}=t;let b;if(i[0]!=="$"){const nA=f[i];if(nA!==void 0)switch(nA){case 1:return l[i];case 2:return I[i];case 4:return r[i];case 3:return h[i]}else{if(wj(l,i))return f[i]=1,l[i];if(I!==Da&&Wr(I,i))return f[i]=2,I[i];if((b=t.propsOptions[0])&&Wr(b,i))return f[i]=3,h[i];if(r!==Da&&Wr(r,i))return f[i]=4,r[i];M3&&(f[i]=0)}}const U=WL[i];let j,IA;if(U)return i==="$attrs"&&Qu(t.attrs,"get",""),U(t);if((j=w.__cssModules)&&(j=j[i]))return j;if(r!==Da&&Wr(r,i))return f[i]=4,r[i];if(IA=_.config.globalProperties,Wr(IA,i))return IA[i]},set({_:t},i,r){const{data:l,setupState:I,ctx:h}=t;return wj(I,i)?(I[i]=r,!0):l!==Da&&Wr(l,i)?(l[i]=r,!0):Wr(t.props,i)||i[0]==="$"&&i.slice(1)in t?!1:(h[i]=r,!0)},has({_:{data:t,setupState:i,accessCache:r,ctx:l,appContext:I,propsOptions:h}},f){let w;return!!r[f]||t!==Da&&Wr(t,f)||wj(i,f)||(w=h[0])&&Wr(w,f)||Wr(l,f)||Wr(WL,f)||Wr(I.config.globalProperties,f)},defineProperty(t,i,r){return r.get!=null?t._.accessCache[i]=0:Wr(r,"value")&&this.set(t,i,r.value,null),Reflect.defineProperty(t,i,r)}};function u8(t){return Ms(t)?t.reduce((i,r)=>(i[r]=null,i),{}):t}let M3=!0;function nnA(t){const i=e9(t),r=t.proxy,l=t.ctx;M3=!1,i.beforeCreate&&E8(i.beforeCreate,t,"bc");const{data:I,computed:h,methods:f,watch:w,provide:_,inject:b,created:U,beforeMount:j,mounted:IA,beforeUpdate:nA,updated:mA,activated:lA,deactivated:cA,beforeDestroy:TA,beforeUnmount:WA,destroyed:Ee,unmounted:de,render:Pe,renderTracked:pe,renderTriggered:gt,errorCaptured:pt,serverPrefetch:We,expose:Dt,inheritAttrs:Kt,components:ut,directives:ge,filters:XA}=i;if(b&&rnA(b,l,null),f)for(const Ut in f){const gi=f[Ut];$s(gi)&&(l[Ut]=gi.bind(r))}if(I){const Ut=I.call(r,r);Na(Ut)&&(t.data=Ev(Ut))}if(M3=!0,h)for(const Ut in h){const gi=h[Ut],Fi=$s(gi)?gi.bind(r,r):$s(gi.get)?gi.get.bind(r,r):RQ,To=!$s(gi)&&$s(gi.set)?gi.set.bind(r):RQ,to=wt({get:Fi,set:To});Object.defineProperty(l,Ut,{enumerable:!0,configurable:!0,get:()=>to.value,set:Eo=>to.value=Eo})}if(w)for(const Ut in w)A9(w[Ut],l,r,Ut);if(_){const Ut=$s(_)?_.call(r):_;Reflect.ownKeys(Ut).forEach(gi=>{cd(gi,Ut[gi])})}U&&E8(U,t,"c");function je(Ut,gi){Ms(gi)?gi.forEach(Fi=>Ut(Fi.bind(r))):gi&&Ut(gi.bind(r))}if(je(jsA,j),je(hc,IA),je(WsA,nA),je(zsA,mA),je(HsA,lA),je(qsA,cA),je(AnA,pt),je($sA,pe),je(XsA,gt),je(X6,WA),je(Kg,de),je(ZsA,We),Ms(Dt))if(Dt.length){const Ut=t.exposed||(t.exposed={});Dt.forEach(gi=>{Object.defineProperty(Ut,gi,{get:()=>r[gi],set:Fi=>r[gi]=Fi})})}else t.exposed||(t.exposed={});Pe&&t.render===RQ&&(t.render=Pe),Kt!=null&&(t.inheritAttrs=Kt),ut&&(t.components=ut),ge&&(t.directives=ge),We&&z6(t)}function rnA(t,i,r=RQ){Ms(t)&&(t=v3(t));for(const l in t){const I=t[l];let h;Na(I)?"default"in I?h=VI(I.from||l,I.default,!0):h=VI(I.from||l):h=VI(I),iI(h)?Object.defineProperty(i,l,{enumerable:!0,configurable:!0,get:()=>h.value,set:f=>h.value=f}):i[l]=h}}function E8(t,i,r){rB(Ms(t)?t.map(l=>l.bind(i.proxy)):t.bind(i.proxy),i,r)}function A9(t,i,r,l){let I=l.includes(".")?u9(r,l):()=>r[l];if(fg(t)){const h=i[t];$s(h)&&br(I,h)}else if($s(t))br(I,t.bind(r));else if(Na(t))if(Ms(t))t.forEach(h=>A9(h,i,r,l));else{const h=$s(t.handler)?t.handler.bind(r):i[t.handler];$s(h)&&br(I,h,t)}}function e9(t){const i=t.type,{mixins:r,extends:l}=i,{mixins:I,optionsCache:h,config:{optionMergeStrategies:f}}=t.appContext,w=h.get(i);let _;return w?_=w:!I.length&&!r&&!l?_=i:(_={},I.length&&I.forEach(b=>QY(_,b,f,!0)),QY(_,i,f)),Na(i)&&h.set(i,_),_}function QY(t,i,r,l=!1){const{mixins:I,extends:h}=i;h&&QY(t,h,r,!0),I&&I.forEach(f=>QY(t,f,r,!0));for(const f in i)if(!(l&&f==="expose")){const w=anA[f]||r&&r[f];t[f]=w?w(t[f],i[f]):i[f]}return t}const anA={data:d8,props:C8,emits:C8,methods:ML,computed:ML,beforeCreate:uE,created:uE,beforeMount:uE,mounted:uE,beforeUpdate:uE,updated:uE,beforeDestroy:uE,beforeUnmount:uE,destroyed:uE,unmounted:uE,activated:uE,deactivated:uE,errorCaptured:uE,serverPrefetch:uE,components:ML,directives:ML,watch:cnA,provide:d8,inject:gnA};function d8(t,i){return i?t?function(){return sI($s(t)?t.call(this,this):t,$s(i)?i.call(this,this):i)}:i:t}function gnA(t,i){return ML(v3(t),v3(i))}function v3(t){if(Ms(t)){const i={};for(let r=0;r<t.length;r++)i[t[r]]=t[r];return i}return t}function uE(t,i){return t?[...new Set([].concat(t,i))]:i}function ML(t,i){return t?sI(Object.create(null),t,i):i}function C8(t,i){return t?Ms(t)&&Ms(i)?[...new Set([...t,...i])]:sI(Object.create(null),u8(t),u8(i??{})):i}function cnA(t,i){if(!t)return i;if(!i)return t;const r=sI(Object.create(null),t);for(const l in i)r[l]=uE(t[l],i[l]);return r}function t9(){return{app:null,config:{isNativeTag:qoA,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 lnA=0;function InA(t,i){return function(l,I=null){$s(l)||(l=sI({},l)),I!=null&&!Na(I)&&(I=null);const h=t9(),f=new WeakSet,w=[];let _=!1;const b=h.app={_uid:lnA++,_component:l,_props:I,_container:null,_context:h,_instance:null,version:T3,get config(){return h.config},set config(U){},use(U,...j){return f.has(U)||(U&&$s(U.install)?(f.add(U),U.install(b,...j)):$s(U)&&(f.add(U),U(b,...j))),b},mixin(U){return h.mixins.includes(U)||h.mixins.push(U),b},component(U,j){return j?(h.components[U]=j,b):h.components[U]},directive(U,j){return j?(h.directives[U]=j,b):h.directives[U]},mount(U,j,IA){if(!_){const nA=b._ceVNode||bt(l,I);return nA.appContext=h,IA===!0?IA="svg":IA===!1&&(IA=void 0),t(nA,U,IA),_=!0,b._container=U,U.__vue_app__=b,gV(nA.component)}},onUnmount(U){w.push(U)},unmount(){_&&(rB(w,b._instance,16),t(null,b._container),delete b._container.__vue_app__)},provide(U,j){return h.provides[U]=j,b},runWithContext(U){const j=K_;K_=b;try{return U()}finally{K_=j}}};return b}}let K_=null;function cd(t,i){if(PI){let r=PI.provides;const l=PI.parent&&PI.parent.provides;l===r&&(r=PI.provides=Object.create(l)),r[t]=i}}function VI(t,i,r=!1){const l=PI||tI;if(l||K_){const I=K_?K_._context.provides:l?l.parent==null?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides:void 0;if(I&&t in I)return I[t];if(arguments.length>1)return r&&$s(i)?i.call(l&&l.proxy):i}}const i9={},o9=()=>Object.create(i9),s9=t=>Object.getPrototypeOf(t)===i9;function unA(t,i,r,l=!1){const I={},h=o9();t.propsDefaults=Object.create(null),n9(t,i,I,h);for(const f in t.propsOptions[0])f in I||(I[f]=void 0);r?t.props=l?I:MsA(I):t.type.props?t.props=I:t.props=h,t.attrs=h}function EnA(t,i,r,l){const{props:I,attrs:h,vnode:{patchFlag:f}}=t,w=Gr(I),[_]=t.propsOptions;let b=!1;if((l||f>0)&&!(f&16)){if(f&8){const U=t.vnode.dynamicProps;for(let j=0;j<U.length;j++){let IA=U[j];if(rV(t.emitsOptions,IA))continue;const nA=i[IA];if(_)if(Wr(h,IA))nA!==h[IA]&&(h[IA]=nA,b=!0);else{const mA=sh(IA);I[mA]=R3(_,w,mA,nA,t,!1)}else nA!==h[IA]&&(h[IA]=nA,b=!0)}}}else{n9(t,i,I,h)&&(b=!0);let U;for(const j in w)(!i||!Wr(i,j)&&((U=nD(j))===j||!Wr(i,U)))&&(_?r&&(r[j]!==void 0||r[U]!==void 0)&&(I[j]=R3(_,w,j,void 0,t,!0)):delete I[j]);if(h!==w)for(const j in h)(!i||!Wr(i,j))&&(delete h[j],b=!0)}b&&lm(t.attrs,"set","")}function n9(t,i,r,l){const[I,h]=t.propsOptions;let f=!1,w;if(i)for(let _ in i){if(HL(_))continue;const b=i[_];let U;I&&Wr(I,U=sh(_))?!h||!h.includes(U)?r[U]=b:(w||(w={}))[U]=b:rV(t.emitsOptions,_)||(!(_ in l)||b!==l[_])&&(l[_]=b,f=!0)}if(h){const _=Gr(r),b=w||Da;for(let U=0;U<h.length;U++){const j=h[U];r[j]=R3(I,_,j,b[j],t,!Wr(b,j))}}return f}function R3(t,i,r,l,I,h){const f=t[r];if(f!=null){const w=Wr(f,"default");if(w&&l===void 0){const _=f.default;if(f.type!==Function&&!f.skipFactory&&$s(_)){const{propsDefaults:b}=I;if(r in b)l=b[r];else{const U=kU(I);l=b[r]=_.call(null,i),U()}}else l=_;I.ce&&I.ce._setProp(r,l)}f[0]&&(h&&!w?l=!1:f[1]&&(l===""||l===nD(r))&&(l=!0))}return l}const dnA=new WeakMap;function r9(t,i,r=!1){const l=r?dnA:i.propsCache,I=l.get(t);if(I)return I;const h=t.props,f={},w=[];let _=!1;if(!$s(t)){const U=j=>{_=!0;const[IA,nA]=r9(j,i,!0);sI(f,IA),nA&&w.push(...nA)};!r&&i.mixins.length&&i.mixins.forEach(U),t.extends&&U(t.extends),t.mixins&&t.mixins.forEach(U)}if(!h&&!_)return Na(t)&&l.set(t,Y_),Y_;if(Ms(h))for(let U=0;U<h.length;U++){const j=sh(h[U]);h8(j)&&(f[j]=Da)}else if(h)for(const U in h){const j=sh(U);if(h8(j)){const IA=h[U],nA=f[j]=Ms(IA)||$s(IA)?{type:IA}:sI({},IA),mA=nA.type;let lA=!1,cA=!0;if(Ms(mA))for(let TA=0;TA<mA.length;++TA){const WA=mA[TA],Ee=$s(WA)&&WA.name;if(Ee==="Boolean"){lA=!0;break}else Ee==="String"&&(cA=!1)}else lA=$s(mA)&&mA.name==="Boolean";nA[0]=lA,nA[1]=cA,(lA||Wr(nA,"default"))&&w.push(j)}}const b=[f,w];return Na(t)&&l.set(t,b),b}function h8(t){return t[0]!=="$"&&!HL(t)}const a9=t=>t[0]==="_"||t==="$stable",NW=t=>Ms(t)?t.map(fQ):[fQ(t)],CnA=(t,i,r)=>{if(i._n)return i;const l=Li((...I)=>NW(i(...I)),r);return l._c=!1,l},g9=(t,i,r)=>{const l=t._ctx;for(const I in t){if(a9(I))continue;const h=t[I];if($s(h))i[I]=CnA(I,h,l);else if(h!=null){const f=NW(h);i[I]=()=>f}}},c9=(t,i)=>{const r=NW(i);t.slots.default=()=>r},l9=(t,i,r)=>{for(const l in i)(r||l!=="_")&&(t[l]=i[l])},hnA=(t,i,r)=>{const l=t.slots=o9();if(t.vnode.shapeFlag&32){const I=i._;I?(l9(l,i,r),r&&h6(l,"_",I,!0)):g9(i,l)}else i&&c9(t,i)},BnA=(t,i,r)=>{const{vnode:l,slots:I}=t;let h=!0,f=Da;if(l.shapeFlag&32){const w=i._;w?r&&w===1?h=!1:l9(I,i,r):(h=!i.$stable,g9(i,I)),f=i}else i&&(c9(t,i),f={default:1});if(h)for(const w in I)!a9(w)&&f[w]==null&&delete I[w]},hE=NnA;function QnA(t){return pnA(t)}function pnA(t,i){const r=eV();r.__VUE__=!0;const{insert:l,remove:I,patchProp:h,createElement:f,createText:w,createComment:_,setText:b,setElementText:U,parentNode:j,nextSibling:IA,setScopeId:nA=RQ,insertStaticContent:mA}=t,lA=(HA,le,Ve,Ft=null,nt=null,It=null,Ai=void 0,ei=null,ke=!!le.dynamicChildren)=>{if(HA===le)return;HA&&!gv(HA,le)&&(Ft=$i(HA),Eo(HA,nt,It,!0),HA=null),le.patchFlag===-2&&(ke=!1,le.dynamicChildren=null);const{type:Ze,ref:vt,shapeFlag:_t}=le;switch(Ze){case aV:cA(HA,le,Ve,Ft);break;case pE:TA(HA,le,Ve,Ft);break;case Tj:HA==null&&WA(le,Ve,Ft,Ai);break;case vr:ut(HA,le,Ve,Ft,nt,It,Ai,ei,ke);break;default:_t&1?Pe(HA,le,Ve,Ft,nt,It,Ai,ei,ke):_t&6?ge(HA,le,Ve,Ft,nt,It,Ai,ei,ke):(_t&64||_t&128)&&Ze.process(HA,le,Ve,Ft,nt,It,Ai,ei,ke,bi)}vt!=null&&nt&&BY(vt,HA&&HA.ref,It,le||HA,!le)},cA=(HA,le,Ve,Ft)=>{if(HA==null)l(le.el=w(le.children),Ve,Ft);else{const nt=le.el=HA.el;le.children!==HA.children&&b(nt,le.children)}},TA=(HA,le,Ve,Ft)=>{HA==null?l(le.el=_(le.children||""),Ve,Ft):le.el=HA.el},WA=(HA,le,Ve,Ft)=>{[HA.el,HA.anchor]=mA(HA.children,le,Ve,Ft,HA.el,HA.anchor)},Ee=({el:HA,anchor:le},Ve,Ft)=>{let nt;for(;HA&&HA!==le;)nt=IA(HA),l(HA,Ve,Ft),HA=nt;l(le,Ve,Ft)},de=({el:HA,anchor:le})=>{let Ve;for(;HA&&HA!==le;)Ve=IA(HA),I(HA),HA=Ve;I(le)},Pe=(HA,le,Ve,Ft,nt,It,Ai,ei,ke)=>{le.type==="svg"?Ai="svg":le.type==="math"&&(Ai="mathml"),HA==null?pe(le,Ve,Ft,nt,It,Ai,ei,ke):We(HA,le,nt,It,Ai,ei,ke)},pe=(HA,le,Ve,Ft,nt,It,Ai,ei)=>{let ke,Ze;const{props:vt,shapeFlag:_t,transition:Oi,dirs:po}=HA;if(ke=HA.el=f(HA.type,It,vt&&vt.is,vt),_t&8?U(ke,HA.children):_t&16&&pt(HA.children,ke,null,Ft,nt,_j(HA,It),Ai,ei),po&&Av(HA,null,Ft,"created"),gt(ke,HA,HA.scopeId,Ai,Ft),vt){for(const oo in vt)oo!=="value"&&!HL(oo)&&h(ke,oo,null,vt[oo],It,Ft);"value"in vt&&h(ke,"value",null,vt.value,It),(Ze=vt.onVnodeBeforeMount)&&BQ(Ze,Ft,HA)}po&&Av(HA,null,Ft,"beforeMount");const No=mnA(nt,Oi);No&&Oi.beforeEnter(ke),l(ke,le,Ve),((Ze=vt&&vt.onVnodeMounted)||No||po)&&hE(()=>{Ze&&BQ(Ze,Ft,HA),No&&Oi.enter(ke),po&&Av(HA,null,Ft,"mounted")},nt)},gt=(HA,le,Ve,Ft,nt)=>{if(Ve&&nA(HA,Ve),Ft)for(let It=0;It<Ft.length;It++)nA(HA,Ft[It]);if(nt){let It=nt.subTree;if(le===It||d9(It.type)&&(It.ssContent===le||It.ssFallback===le)){const Ai=nt.vnode;gt(HA,Ai,Ai.scopeId,Ai.slotScopeIds,nt.parent)}}},pt=(HA,le,Ve,Ft,nt,It,Ai,ei,ke=0)=>{for(let Ze=ke;Ze<HA.length;Ze++){const vt=HA[Ze]=ei?Fy(HA[Ze]):fQ(HA[Ze]);lA(null,vt,le,Ve,Ft,nt,It,Ai,ei)}},We=(HA,le,Ve,Ft,nt,It,Ai)=>{const ei=le.el=HA.el;let{patchFlag:ke,dynamicChildren:Ze,dirs:vt}=le;ke|=HA.patchFlag&16;const _t=HA.props||Da,Oi=le.props||Da;let po;if(Ve&&ev(Ve,!1),(po=Oi.onVnodeBeforeUpdate)&&BQ(po,Ve,le,HA),vt&&Av(le,HA,Ve,"beforeUpdate"),Ve&&ev(Ve,!0),(_t.innerHTML&&Oi.innerHTML==null||_t.textContent&&Oi.textContent==null)&&U(ei,""),Ze?Dt(HA.dynamicChildren,Ze,ei,Ve,Ft,_j(le,nt),It):Ai||gi(HA,le,ei,null,Ve,Ft,_j(le,nt),It,!1),ke>0){if(ke&16)Kt(ei,_t,Oi,Ve,nt);else if(ke&2&&_t.class!==Oi.class&&h(ei,"class",null,Oi.class,nt),ke&4&&h(ei,"style",_t.style,Oi.style,nt),ke&8){const No=le.dynamicProps;for(let oo=0;oo<No.length;oo++){const Go=No[oo],An=_t[Go],rn=Oi[Go];(rn!==An||Go==="value")&&h(ei,Go,An,rn,nt,Ve)}}ke&1&&HA.children!==le.children&&U(ei,le.children)}else!Ai&&Ze==null&&Kt(ei,_t,Oi,Ve,nt);((po=Oi.onVnodeUpdated)||vt)&&hE(()=>{po&&BQ(po,Ve,le,HA),vt&&Av(le,HA,Ve,"updated")},Ft)},Dt=(HA,le,Ve,Ft,nt,It,Ai)=>{for(let ei=0;ei<le.length;ei++){const ke=HA[ei],Ze=le[ei],vt=ke.el&&(ke.type===vr||!gv(ke,Ze)||ke.shapeFlag&70)?j(ke.el):Ve;lA(ke,Ze,vt,null,Ft,nt,It,Ai,!0)}},Kt=(HA,le,Ve,Ft,nt)=>{if(le!==Ve){if(le!==Da)for(const It in le)!HL(It)&&!(It in Ve)&&h(HA,It,le[It],null,nt,Ft);for(const It in Ve){if(HL(It))continue;const Ai=Ve[It],ei=le[It];Ai!==ei&&It!=="value"&&h(HA,It,ei,Ai,nt,Ft)}"value"in Ve&&h(HA,"value",le.value,Ve.value,nt)}},ut=(HA,le,Ve,Ft,nt,It,Ai,ei,ke)=>{const Ze=le.el=HA?HA.el:w(""),vt=le.anchor=HA?HA.anchor:w("");let{patchFlag:_t,dynamicChildren:Oi,slotScopeIds:po}=le;po&&(ei=ei?ei.concat(po):po),HA==null?(l(Ze,Ve,Ft),l(vt,Ve,Ft),pt(le.children||[],Ve,vt,nt,It,Ai,ei,ke)):_t>0&&_t&64&&Oi&&HA.dynamicChildren?(Dt(HA.dynamicChildren,Oi,Ve,nt,It,Ai,ei),(le.key!=null||nt&&le===nt.subTree)&&GW(HA,le,!0)):gi(HA,le,Ve,vt,nt,It,Ai,ei,ke)},ge=(HA,le,Ve,Ft,nt,It,Ai,ei,ke)=>{le.slotScopeIds=ei,HA==null?le.shapeFlag&512?nt.ctx.activate(le,Ve,Ft,Ai,ke):XA(le,Ve,Ft,nt,It,Ai,ke):_e(HA,le,ke)},XA=(HA,le,Ve,Ft,nt,It,Ai)=>{const ei=HA.component=FnA(HA,Ft,nt);if(sV(HA)&&(ei.ctx.renderer=bi),PnA(ei,!1,Ai),ei.asyncDep){if(nt&&nt.registerDep(ei,je,Ai),!HA.el){const ke=ei.subTree=bt(pE);TA(null,ke,le,Ve)}}else je(ei,HA,le,Ve,nt,It,Ai)},_e=(HA,le,Ve)=>{const Ft=le.component=HA.component;if(_nA(HA,le,Ve))if(Ft.asyncDep&&!Ft.asyncResolved){Ut(Ft,le,Ve);return}else Ft.next=le,Ft.update();else le.el=HA.el,Ft.vnode=le},je=(HA,le,Ve,Ft,nt,It,Ai)=>{const ei=()=>{if(HA.isMounted){let{next:_t,bu:Oi,u:po,parent:No,vnode:oo}=HA;{const an=I9(HA);if(an){_t&&(_t.el=oo.el,Ut(HA,_t,Ai)),an.asyncDep.then(()=>{HA.isUnmounted||ei()});return}}let Go=_t,An;ev(HA,!1),_t?(_t.el=oo.el,Ut(HA,_t,Ai)):_t=oo,Oi&&z1(Oi),(An=_t.props&&_t.props.onVnodeBeforeUpdate)&&BQ(An,No,_t,oo),ev(HA,!0);const rn=Q8(HA),Es=HA.subTree;HA.subTree=rn,lA(Es,rn,j(Es.el),$i(Es),HA,nt,It),_t.el=rn.el,Go===null&&TnA(HA,rn.el),po&&hE(po,nt),(An=_t.props&&_t.props.onVnodeUpdated)&&hE(()=>BQ(An,No,_t,oo),nt)}else{let _t;const{el:Oi,props:po}=le,{bm:No,m:oo,parent:Go,root:An,type:rn}=HA,Es=q_(le);ev(HA,!1),No&&z1(No),!Es&&(_t=po&&po.onVnodeBeforeMount)&&BQ(_t,Go,le),ev(HA,!0);{An.ce&&An.ce._injectChildStyle(rn);const an=HA.subTree=Q8(HA);lA(null,an,Ve,Ft,HA,nt,It),le.el=an.el}if(oo&&hE(oo,nt),!Es&&(_t=po&&po.onVnodeMounted)){const an=le;hE(()=>BQ(_t,Go,an),nt)}(le.shapeFlag&256||Go&&q_(Go.vnode)&&Go.vnode.shapeFlag&256)&&HA.a&&hE(HA.a,nt),HA.isMounted=!0,le=Ve=Ft=null}};HA.scope.on();const ke=HA.effect=new m6(ei);HA.scope.off();const Ze=HA.update=ke.run.bind(ke),vt=HA.job=ke.runIfDirty.bind(ke);vt.i=HA,vt.id=HA.uid,ke.scheduler=()=>TW(vt),ev(HA,!0),Ze()},Ut=(HA,le,Ve)=>{le.component=HA;const Ft=HA.vnode.props;HA.vnode=le,HA.next=null,EnA(HA,le.props,Ft,Ve),BnA(HA,le.children,Ve),rD(),r8(HA),aD()},gi=(HA,le,Ve,Ft,nt,It,Ai,ei,ke=!1)=>{const Ze=HA&&HA.children,vt=HA?HA.shapeFlag:0,_t=le.children,{patchFlag:Oi,shapeFlag:po}=le;if(Oi>0){if(Oi&128){To(Ze,_t,Ve,Ft,nt,It,Ai,ei,ke);return}else if(Oi&256){Fi(Ze,_t,Ve,Ft,nt,It,Ai,ei,ke);return}}po&8?(vt&16&&jo(Ze,nt,It),_t!==Ze&&U(Ve,_t)):vt&16?po&16?To(Ze,_t,Ve,Ft,nt,It,Ai,ei,ke):jo(Ze,nt,It,!0):(vt&8&&U(Ve,""),po&16&&pt(_t,Ve,Ft,nt,It,Ai,ei,ke))},Fi=(HA,le,Ve,Ft,nt,It,Ai,ei,ke)=>{HA=HA||Y_,le=le||Y_;const Ze=HA.length,vt=le.length,_t=Math.min(Ze,vt);let Oi;for(Oi=0;Oi<_t;Oi++){const po=le[Oi]=ke?Fy(le[Oi]):fQ(le[Oi]);lA(HA[Oi],po,Ve,null,nt,It,Ai,ei,ke)}Ze>vt?jo(HA,nt,It,!0,!1,_t):pt(le,Ve,Ft,nt,It,Ai,ei,ke,_t)},To=(HA,le,Ve,Ft,nt,It,Ai,ei,ke)=>{let Ze=0;const vt=le.length;let _t=HA.length-1,Oi=vt-1;for(;Ze<=_t&&Ze<=Oi;){const po=HA[Ze],No=le[Ze]=ke?Fy(le[Ze]):fQ(le[Ze]);if(gv(po,No))lA(po,No,Ve,null,nt,It,Ai,ei,ke);else break;Ze++}for(;Ze<=_t&&Ze<=Oi;){const po=HA[_t],No=le[Oi]=ke?Fy(le[Oi]):fQ(le[Oi]);if(gv(po,No))lA(po,No,Ve,null,nt,It,Ai,ei,ke);else break;_t--,Oi--}if(Ze>_t){if(Ze<=Oi){const po=Oi+1,No=po<vt?le[po].el:Ft;for(;Ze<=Oi;)lA(null,le[Ze]=ke?Fy(le[Ze]):fQ(le[Ze]),Ve,No,nt,It,Ai,ei,ke),Ze++}}else if(Ze>Oi)for(;Ze<=_t;)Eo(HA[Ze],nt,It,!0),Ze++;else{const po=Ze,No=Ze,oo=new Map;for(Ze=No;Ze<=Oi;Ze++){const Jn=le[Ze]=ke?Fy(le[Ze]):fQ(le[Ze]);Jn.key!=null&&oo.set(Jn.key,Ze)}let Go,An=0;const rn=Oi-No+1;let Es=!1,an=0;const Do=new Array(rn);for(Ze=0;Ze<rn;Ze++)Do[Ze]=0;for(Ze=po;Ze<=_t;Ze++){const Jn=HA[Ze];if(An>=rn){Eo(Jn,nt,It,!0);continue}let Qr;if(Jn.key!=null)Qr=oo.get(Jn.key);else for(Go=No;Go<=Oi;Go++)if(Do[Go-No]===0&&gv(Jn,le[Go])){Qr=Go;break}Qr===void 0?Eo(Jn,nt,It,!0):(Do[Qr-No]=Ze+1,Qr>=an?an=Qr:Es=!0,lA(Jn,le[Qr],Ve,null,nt,It,Ai,ei,ke),An++)}const pA=Es?fnA(Do):Y_;for(Go=pA.length-1,Ze=rn-1;Ze>=0;Ze--){const Jn=No+Ze,Qr=le[Jn],ds=Jn+1<vt?le[Jn+1].el:Ft;Do[Ze]===0?lA(null,Qr,Ve,ds,nt,It,Ai,ei,ke):Es&&(Go<0||Ze!==pA[Go]?to(Qr,Ve,ds,2):Go--)}}},to=(HA,le,Ve,Ft,nt=null)=>{const{el:It,type:Ai,transition:ei,children:ke,shapeFlag:Ze}=HA;if(Ze&6){to(HA.component.subTree,le,Ve,Ft);return}if(Ze&128){HA.suspense.move(le,Ve,Ft);return}if(Ze&64){Ai.move(HA,le,Ve,bi);return}if(Ai===vr){l(It,le,Ve);for(let _t=0;_t<ke.length;_t++)to(ke[_t],le,Ve,Ft);l(HA.anchor,le,Ve);return}if(Ai===Tj){Ee(HA,le,Ve);return}if(Ft!==2&&Ze&1&&ei)if(Ft===0)ei.beforeEnter(It),l(It,le,Ve),hE(()=>ei.enter(It),nt);else{const{leave:_t,delayLeave:Oi,afterLeave:po}=ei,No=()=>l(It,le,Ve),oo=()=>{_t(It,()=>{No(),po&&po()})};Oi?Oi(It,No,oo):oo()}else l(It,le,Ve)},Eo=(HA,le,Ve,Ft=!1,nt=!1)=>{const{type:It,props:Ai,ref:ei,children:ke,dynamicChildren:Ze,shapeFlag:vt,patchFlag:_t,dirs:Oi,cacheIndex:po}=HA;if(_t===-2&&(nt=!1),ei!=null&&BY(ei,null,Ve,HA,!0),po!=null&&(le.renderCache[po]=void 0),vt&256){le.ctx.deactivate(HA);return}const No=vt&1&&Oi,oo=!q_(HA);let Go;if(oo&&(Go=Ai&&Ai.onVnodeBeforeUnmount)&&BQ(Go,le,HA),vt&6)ns(HA.component,Ve,Ft);else{if(vt&128){HA.suspense.unmount(Ve,Ft);return}No&&Av(HA,null,le,"beforeUnmount"),vt&64?HA.type.remove(HA,le,Ve,bi,Ft):Ze&&!Ze.hasOnce&&(It!==vr||_t>0&&_t&64)?jo(Ze,le,Ve,!1,!0):(It===vr&&_t&384||!nt&&vt&16)&&jo(ke,le,Ve),Ft&&Vs(HA)}(oo&&(Go=Ai&&Ai.onVnodeUnmounted)||No)&&hE(()=>{Go&&BQ(Go,le,HA),No&&Av(HA,null,le,"unmounted")},Ve)},Vs=HA=>{const{type:le,el:Ve,anchor:Ft,transition:nt}=HA;if(le===vr){ki(Ve,Ft);return}if(le===Tj){de(HA);return}const It=()=>{I(Ve),nt&&!nt.persisted&&nt.afterLeave&&nt.afterLeave()};if(HA.shapeFlag&1&&nt&&!nt.persisted){const{leave:Ai,delayLeave:ei}=nt,ke=()=>Ai(Ve,It);ei?ei(HA.el,It,ke):ke()}else It()},ki=(HA,le)=>{let Ve;for(;HA!==le;)Ve=IA(HA),I(HA),HA=Ve;I(le)},ns=(HA,le,Ve)=>{const{bum:Ft,scope:nt,job:It,subTree:Ai,um:ei,m:ke,a:Ze}=HA;B8(ke),B8(Ze),Ft&&z1(Ft),nt.stop(),It&&(It.flags|=8,Eo(Ai,HA,le,Ve)),ei&&hE(ei,le),hE(()=>{HA.isUnmounted=!0},le),le&&le.pendingBranch&&!le.isUnmounted&&HA.asyncDep&&!HA.asyncResolved&&HA.suspenseId===le.pendingId&&(le.deps--,le.deps===0&&le.resolve())},jo=(HA,le,Ve,Ft=!1,nt=!1,It=0)=>{for(let Ai=It;Ai<HA.length;Ai++)Eo(HA[Ai],le,Ve,Ft,nt)},$i=HA=>{if(HA.shapeFlag&6)return $i(HA.component.subTree);if(HA.shapeFlag&128)return HA.suspense.next();const le=IA(HA.anchor||HA.el),Ve=le&&le[x6];return Ve?IA(Ve):le};let Wt=!1;const io=(HA,le,Ve)=>{HA==null?le._vnode&&Eo(le._vnode,null,null,!0):lA(le._vnode||null,HA,le,null,null,null,Ve),le._vnode=HA,Wt||(Wt=!0,r8(),O6(),Wt=!1)},bi={p:lA,um:Eo,m:to,r:Vs,mt:XA,mc:pt,pc:gi,pbc:Dt,n:$i,o:t};return{render:io,hydrate:void 0,createApp:InA(io)}}function _j({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 ev({effect:t,job:i},r){r?(t.flags|=32,i.flags|=4):(t.flags&=-33,i.flags&=-5)}function mnA(t,i){return(!t||t&&!t.pendingBranch)&&i&&!i.persisted}function GW(t,i,r=!1){const l=t.children,I=i.children;if(Ms(l)&&Ms(I))for(let h=0;h<l.length;h++){const f=l[h];let w=I[h];w.shapeFlag&1&&!w.dynamicChildren&&((w.patchFlag<=0||w.patchFlag===32)&&(w=I[h]=Fy(I[h]),w.el=f.el),!r&&w.patchFlag!==-2&&GW(f,w)),w.type===aV&&(w.el=f.el)}}function fnA(t){const i=t.slice(),r=[0];let l,I,h,f,w;const _=t.length;for(l=0;l<_;l++){const b=t[l];if(b!==0){if(I=r[r.length-1],t[I]<b){i[l]=I,r.push(l);continue}for(h=0,f=r.length-1;h<f;)w=h+f>>1,t[r[w]]<b?h=w+1:f=w;b<t[r[h]]&&(h>0&&(i[l]=r[h-1]),r[h]=l)}}for(h=r.length,f=r[h-1];h-- >0;)r[h]=f,f=i[f];return r}function I9(t){const i=t.subTree.component;if(i)return i.asyncDep&&!i.asyncResolved?i:I9(i)}function B8(t){if(t)for(let i=0;i<t.length;i++)t[i].flags|=8}const ynA=Symbol.for("v-scx"),DnA=()=>VI(ynA);function lT(t,i){return bW(t,null,i)}function br(t,i,r){return bW(t,i,r)}function bW(t,i,r=Da){const{immediate:l,deep:I,flush:h,once:f}=r,w=sI({},r),_=i&&l||!i&&h!=="post";let b;if(QU){if(h==="sync"){const nA=DnA();b=nA.__watcherHandles||(nA.__watcherHandles=[])}else if(!_){const nA=()=>{};return nA.stop=RQ,nA.resume=RQ,nA.pause=RQ,nA}}const U=PI;w.call=(nA,mA,lA)=>rB(nA,U,mA,lA);let j=!1;h==="post"?w.scheduler=nA=>{hE(nA,U&&U.suspense)}:h!=="sync"&&(j=!0,w.scheduler=(nA,mA)=>{mA?nA():TW(nA)}),w.augmentJob=nA=>{i&&(nA.flags|=4),j&&(nA.flags|=2,U&&(nA.id=U.uid,nA.i=U))};const IA=LsA(t,i,w);return QU&&(b?b.push(IA):_&&IA()),IA}function SnA(t,i,r){const l=this.proxy,I=fg(t)?t.includes(".")?u9(l,t):()=>l[t]:t.bind(l,l);let h;$s(i)?h=i:(h=i.handler,r=i);const f=kU(this),w=bW(I,h.bind(l),r);return f(),w}function u9(t,i){const r=i.split(".");return()=>{let l=t;for(let I=0;I<r.length&&l;I++)l=l[r[I]];return l}}const MnA=(t,i)=>i==="modelValue"||i==="model-value"?t.modelModifiers:t[`${i}Modifiers`]||t[`${sh(i)}Modifiers`]||t[`${nD(i)}Modifiers`];function vnA(t,i,...r){if(t.isUnmounted)return;const l=t.vnode.props||Da;let I=r;const h=i.startsWith("update:"),f=h&&MnA(l,i.slice(7));f&&(f.trim&&(I=r.map(U=>fg(U)?U.trim():U)),f.number&&(I=r.map(B3)));let w,_=l[w=fj(i)]||l[w=fj(sh(i))];!_&&h&&(_=l[w=fj(nD(i))]),_&&rB(_,t,6,I);const b=l[w+"Once"];if(b){if(!t.emitted)t.emitted={};else if(t.emitted[w])return;t.emitted[w]=!0,rB(b,t,6,I)}}function E9(t,i,r=!1){const l=i.emitsCache,I=l.get(t);if(I!==void 0)return I;const h=t.emits;let f={},w=!1;if(!$s(t)){const _=b=>{const U=E9(b,i,!0);U&&(w=!0,sI(f,U))};!r&&i.mixins.length&&i.mixins.forEach(_),t.extends&&_(t.extends),t.mixins&&t.mixins.forEach(_)}return!h&&!w?(Na(t)&&l.set(t,null),null):(Ms(h)?h.forEach(_=>f[_]=null):sI(f,h),Na(t)&&l.set(t,f),f)}function rV(t,i){return!t||!ZY(i)?!1:(i=i.slice(2).replace(/Once$/,""),Wr(t,i[0].toLowerCase()+i.slice(1))||Wr(t,nD(i))||Wr(t,i))}function Q8(t){const{type:i,vnode:r,proxy:l,withProxy:I,propsOptions:[h],slots:f,attrs:w,emit:_,render:b,renderCache:U,props:j,data:IA,setupState:nA,ctx:mA,inheritAttrs:lA}=t,cA=hY(t);let TA,WA;try{if(r.shapeFlag&4){const de=I||l,Pe=de;TA=fQ(b.call(Pe,de,U,j,nA,IA,mA)),WA=w}else{const de=i;TA=fQ(de.length>1?de(j,{attrs:w,slots:f,emit:_}):de(j,null)),WA=i.props?w:RnA(w)}}catch(de){zL.length=0,iV(de,t,1),TA=bt(pE)}let Ee=TA;if(WA&&lA!==!1){const de=Object.keys(WA),{shapeFlag:Pe}=Ee;de.length&&Pe&7&&(h&&de.some(mW)&&(WA=wnA(WA,h)),Ee=AD(Ee,WA,!1,!0))}return r.dirs&&(Ee=AD(Ee,null,!1,!0),Ee.dirs=Ee.dirs?Ee.dirs.concat(r.dirs):r.dirs),r.transition&&CU(Ee,r.transition),TA=Ee,hY(cA),TA}const RnA=t=>{let i;for(const r in t)(r==="class"||r==="style"||ZY(r))&&((i||(i={}))[r]=t[r]);return i},wnA=(t,i)=>{const r={};for(const l in t)(!mW(l)||!(l.slice(9)in i))&&(r[l]=t[l]);return r};function _nA(t,i,r){const{props:l,children:I,component:h}=t,{props:f,children:w,patchFlag:_}=i,b=h.emitsOptions;if(i.dirs||i.transition)return!0;if(r&&_>=0){if(_&1024)return!0;if(_&16)return l?p8(l,f,b):!!f;if(_&8){const U=i.dynamicProps;for(let j=0;j<U.length;j++){const IA=U[j];if(f[IA]!==l[IA]&&!rV(b,IA))return!0}}}else return(I||w)&&(!w||!w.$stable)?!0:l===f?!1:l?f?p8(l,f,b):!0:!!f;return!1}function p8(t,i,r){const l=Object.keys(i);if(l.length!==Object.keys(t).length)return!0;for(let I=0;I<l.length;I++){const h=l[I];if(i[h]!==t[h]&&!rV(r,h))return!0}return!1}function TnA({vnode:t,parent:i},r){for(;i;){const l=i.subTree;if(l.suspense&&l.suspense.activeBranch===t&&(l.el=t.el),l===t)(t=i.vnode).el=r,i=i.parent;else break}}const d9=t=>t.__isSuspense;function NnA(t,i){i&&i.pendingBranch?Ms(t)?i.effects.push(...t):i.effects.push(t):OsA(t)}const vr=Symbol.for("v-fgt"),aV=Symbol.for("v-txt"),pE=Symbol.for("v-cmt"),Tj=Symbol.for("v-stc"),zL=[];let oC=null;function se(t=!1){zL.push(oC=t?null:[])}function GnA(){zL.pop(),oC=zL[zL.length-1]||null}let hU=1;function m8(t,i=!1){hU+=t,t<0&&oC&&i&&(oC.hasOnce=!0)}function C9(t){return t.dynamicChildren=hU>0?oC||Y_:null,GnA(),hU>0&&oC&&oC.push(t),t}function At(t,i,r,l,I,h){return C9(ne(t,i,r,l,I,h,!0))}function Qi(t,i,r,l,I){return C9(bt(t,i,r,l,I,!0))}function BU(t){return t?t.__v_isVNode===!0:!1}function gv(t,i){return t.type===i.type&&t.key===i.key}const h9=({key:t})=>t??null,X1=({ref:t,ref_key:i,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?fg(t)||iI(t)||$s(t)?{i:tI,r:t,k:i,f:!!r}:t:null);function ne(t,i=null,r=null,l=0,I=null,h=t===vr?0:1,f=!1,w=!1){const _={__v_isVNode:!0,__v_skip:!0,type:t,props:i,key:i&&h9(i),ref:i&&X1(i),scopeId:oV,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:h,patchFlag:l,dynamicProps:I,dynamicChildren:null,appContext:null,ctx:tI};return w?(kW(_,r),h&128&&t.normalize(_)):r&&(_.shapeFlag|=fg(r)?8:16),hU>0&&!f&&oC&&(_.patchFlag>0||h&6)&&_.patchFlag!==32&&oC.push(_),_}const bt=bnA;function bnA(t,i=null,r=null,l=0,I=null,h=!1){if((!t||t===inA)&&(t=pE),BU(t)){const w=AD(t,i,!0);return r&&kW(w,r),hU>0&&!h&&oC&&(w.shapeFlag&6?oC[oC.indexOf(t)]=w:oC.push(w)),w.patchFlag=-2,w}if(HnA(t)&&(t=t.__vccOpts),i){i=knA(i);let{class:w,style:_}=i;w&&!fg(w)&&(i.class=qi(w)),Na(_)&&(_W(_)&&!Ms(_)&&(_=sI({},_)),i.style=Br(_))}const f=fg(t)?1:d9(t)?128:Y6(t)?64:Na(t)?4:$s(t)?2:0;return ne(t,i,r,l,I,f,h,!0)}function knA(t){return t?_W(t)||s9(t)?sI({},t):t:null}function AD(t,i,r=!1,l=!1){const{props:I,ref:h,patchFlag:f,children:w,transition:_}=t,b=i?w3(I||{},i):I,U={__v_isVNode:!0,__v_skip:!0,type:t.type,props:b,key:b&&h9(b),ref:i&&i.ref?r&&h?Ms(h)?h.concat(X1(i)):[h,X1(i)]:X1(i):h,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:w,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:i&&t.type!==vr?f===-1?16:f|16:f,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:_,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&AD(t.ssContent),ssFallback:t.ssFallback&&AD(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return _&&l&&CU(U,_.clone(U)),U}function Ia(t=" ",i=0){return bt(aV,null,t,i)}function $t(t="",i=!1){return i?(se(),Qi(pE,null,t)):bt(pE,null,t)}function fQ(t){return t==null||typeof t=="boolean"?bt(pE):Ms(t)?bt(vr,null,t.slice()):BU(t)?Fy(t):bt(aV,null,String(t))}function Fy(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:AD(t)}function kW(t,i){let r=0;const{shapeFlag:l}=t;if(i==null)i=null;else if(Ms(i))r=16;else if(typeof i=="object")if(l&65){const I=i.default;I&&(I._c&&(I._d=!1),kW(t,I()),I._c&&(I._d=!0));return}else{r=32;const I=i._;!I&&!s9(i)?i._ctx=tI:I===3&&tI&&(tI.slots._===1?i._=1:(i._=2,t.patchFlag|=1024))}else $s(i)?(i={default:i,_ctx:tI},r=32):(i=String(i),l&64?(r=16,i=[Ia(i)]):r=8);t.children=i,t.shapeFlag|=r}function w3(...t){const i={};for(let r=0;r<t.length;r++){const l=t[r];for(const I in l)if(I==="class")i.class!==l.class&&(i.class=qi([i.class,l.class]));else if(I==="style")i.style=Br([i.style,l.style]);else if(ZY(I)){const h=i[I],f=l[I];f&&h!==f&&!(Ms(h)&&h.includes(f))&&(i[I]=h?[].concat(h,f):f)}else I!==""&&(i[I]=l[I])}return i}function BQ(t,i,r,l=null){rB(t,i,7,[r,l])}const LnA=t9();let UnA=0;function FnA(t,i,r){const l=t.type,I=(i?i.appContext:t.appContext)||LnA,h={uid:UnA++,vnode:t,type:l,parent:i,appContext:I,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ssA(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:i?i.provides:Object.create(I.provides),ids:i?i.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:r9(l,I),emitsOptions:E9(l,I),emit:null,emitted:null,propsDefaults:Da,inheritAttrs:l.inheritAttrs,ctx:Da,data:Da,props:Da,attrs:Da,slots:Da,refs:Da,setupState:Da,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 h.ctx={_:h},h.root=i?i.root:h,h.emit=vnA.bind(null,h),t.ce&&t.ce(h),h}let PI=null;const OnA=()=>PI||tI;let pY,_3;{const t=eV(),i=(r,l)=>{let I;return(I=t[r])||(I=t[r]=[]),I.push(l),h=>{I.length>1?I.forEach(f=>f(h)):I[0](h)}};pY=i("__VUE_INSTANCE_SETTERS__",r=>PI=r),_3=i("__VUE_SSR_SETTERS__",r=>QU=r)}const kU=t=>{const i=PI;return pY(t),t.scope.on(),()=>{t.scope.off(),pY(i)}},f8=()=>{PI&&PI.scope.off(),pY(null)};function B9(t){return t.vnode.shapeFlag&4}let QU=!1;function PnA(t,i=!1,r=!1){i&&_3(i);const{props:l,children:I}=t.vnode,h=B9(t);unA(t,l,h,i),hnA(t,I,r);const f=h?xnA(t,i):void 0;return i&&_3(!1),f}function xnA(t,i){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,snA);const{setup:l}=r;if(l){rD();const I=t.setupContext=l.length>1?VnA(t):null,h=kU(t),f=bU(l,t,0,[t.props,I]),w=E6(f);if(aD(),h(),(w||t.sp)&&!q_(t)&&z6(t),w){if(f.then(f8,f8),i)return f.then(_=>{y8(t,_)}).catch(_=>{iV(_,t,0)});t.asyncDep=f}else y8(t,f)}else Q9(t)}function y8(t,i,r){$s(i)?t.type.__ssrInlineRender?t.ssrRender=i:t.render=i:Na(i)&&(t.setupState=k6(i)),Q9(t)}function Q9(t,i,r){const l=t.type;t.render||(t.render=l.render||RQ);{const I=kU(t);rD();try{nnA(t)}finally{aD(),I()}}}const YnA={get(t,i){return Qu(t,"get",""),t[i]}};function VnA(t){const i=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,YnA),slots:t.slots,emit:t.emit,expose:i}}function gV(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(k6(vsA(t.exposed)),{get(i,r){if(r in i)return i[r];if(r in WL)return WL[r](t)},has(i,r){return r in i||r in WL}})):t.proxy}function JnA(t,i=!0){return $s(t)?t.displayName||t.name:t.name||i&&t.__name}function HnA(t){return $s(t)&&"__vccOpts"in t}const wt=(t,i)=>bsA(t,i,QU);function qnA(t,i,r){const l=arguments.length;return l===2?Na(i)&&!Ms(i)?BU(i)?bt(t,null,[i]):bt(t,i):bt(t,null,i):(l>3?r=Array.prototype.slice.call(arguments,2):l===3&&BU(r)&&(r=[r]),bt(t,i,r))}const T3="3.5.13";/**
|
||
* @vue/runtime-dom v3.5.13
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let N3;const D8=typeof window<"u"&&window.trustedTypes;if(D8)try{N3=D8.createPolicy("vue",{createHTML:t=>t})}catch{}const p9=N3?t=>N3.createHTML(t):t=>t,KnA="http://www.w3.org/2000/svg",jnA="http://www.w3.org/1998/Math/MathML",am=typeof document<"u"?document:null,S8=am&&am.createElement("template"),WnA={insert:(t,i,r)=>{i.insertBefore(t,r||null)},remove:t=>{const i=t.parentNode;i&&i.removeChild(t)},createElement:(t,i,r,l)=>{const I=i==="svg"?am.createElementNS(KnA,t):i==="mathml"?am.createElementNS(jnA,t):r?am.createElement(t,{is:r}):am.createElement(t);return t==="select"&&l&&l.multiple!=null&&I.setAttribute("multiple",l.multiple),I},createText:t=>am.createTextNode(t),createComment:t=>am.createComment(t),setText:(t,i)=>{t.nodeValue=i},setElementText:(t,i)=>{t.textContent=i},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>am.querySelector(t),setScopeId(t,i){t.setAttribute(i,"")},insertStaticContent(t,i,r,l,I,h){const f=r?r.previousSibling:i.lastChild;if(I&&(I===h||I.nextSibling))for(;i.insertBefore(I.cloneNode(!0),r),!(I===h||!(I=I.nextSibling)););else{S8.innerHTML=p9(l==="svg"?`<svg>${t}</svg>`:l==="mathml"?`<math>${t}</math>`:t);const w=S8.content;if(l==="svg"||l==="mathml"){const _=w.firstChild;for(;_.firstChild;)w.appendChild(_.firstChild);w.removeChild(_)}i.insertBefore(w,r)}return[f?f.nextSibling:i.firstChild,r?r.previousSibling:i.lastChild]}},_y="transition",hL="animation",pU=Symbol("_vtc"),m9={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},znA=sI({},H6,m9),ZnA=t=>(t.displayName="Transition",t.props=znA,t),XnA=ZnA((t,{slots:i})=>qnA(JsA,$nA(t),i)),tv=(t,i=[])=>{Ms(t)?t.forEach(r=>r(...i)):t&&t(...i)},M8=t=>t?Ms(t)?t.some(i=>i.length>1):t.length>1:!1;function $nA(t){const i={};for(const ut in t)ut in m9||(i[ut]=t[ut]);if(t.css===!1)return i;const{name:r="v",type:l,duration:I,enterFromClass:h=`${r}-enter-from`,enterActiveClass:f=`${r}-enter-active`,enterToClass:w=`${r}-enter-to`,appearFromClass:_=h,appearActiveClass:b=f,appearToClass:U=w,leaveFromClass:j=`${r}-leave-from`,leaveActiveClass:IA=`${r}-leave-active`,leaveToClass:nA=`${r}-leave-to`}=t,mA=ArA(I),lA=mA&&mA[0],cA=mA&&mA[1],{onBeforeEnter:TA,onEnter:WA,onEnterCancelled:Ee,onLeave:de,onLeaveCancelled:Pe,onBeforeAppear:pe=TA,onAppear:gt=WA,onAppearCancelled:pt=Ee}=i,We=(ut,ge,XA,_e)=>{ut._enterCancelled=_e,iv(ut,ge?U:w),iv(ut,ge?b:f),XA&&XA()},Dt=(ut,ge)=>{ut._isLeaving=!1,iv(ut,j),iv(ut,nA),iv(ut,IA),ge&&ge()},Kt=ut=>(ge,XA)=>{const _e=ut?gt:WA,je=()=>We(ge,ut,XA);tv(_e,[ge,je]),v8(()=>{iv(ge,ut?_:h),om(ge,ut?U:w),M8(_e)||R8(ge,l,lA,je)})};return sI(i,{onBeforeEnter(ut){tv(TA,[ut]),om(ut,h),om(ut,f)},onBeforeAppear(ut){tv(pe,[ut]),om(ut,_),om(ut,b)},onEnter:Kt(!1),onAppear:Kt(!0),onLeave(ut,ge){ut._isLeaving=!0;const XA=()=>Dt(ut,ge);om(ut,j),ut._enterCancelled?(om(ut,IA),T8()):(T8(),om(ut,IA)),v8(()=>{ut._isLeaving&&(iv(ut,j),om(ut,nA),M8(de)||R8(ut,l,cA,XA))}),tv(de,[ut,XA])},onEnterCancelled(ut){We(ut,!1,void 0,!0),tv(Ee,[ut])},onAppearCancelled(ut){We(ut,!0,void 0,!0),tv(pt,[ut])},onLeaveCancelled(ut){Dt(ut),tv(Pe,[ut])}})}function ArA(t){if(t==null)return null;if(Na(t))return[Nj(t.enter),Nj(t.leave)];{const i=Nj(t);return[i,i]}}function Nj(t){return ZoA(t)}function om(t,i){i.split(/\s+/).forEach(r=>r&&t.classList.add(r)),(t[pU]||(t[pU]=new Set)).add(i)}function iv(t,i){i.split(/\s+/).forEach(l=>l&&t.classList.remove(l));const r=t[pU];r&&(r.delete(i),r.size||(t[pU]=void 0))}function v8(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let erA=0;function R8(t,i,r,l){const I=t._endId=++erA,h=()=>{I===t._endId&&l()};if(r!=null)return setTimeout(h,r);const{type:f,timeout:w,propCount:_}=trA(t,i);if(!f)return l();const b=f+"end";let U=0;const j=()=>{t.removeEventListener(b,IA),h()},IA=nA=>{nA.target===t&&++U>=_&&j()};setTimeout(()=>{U<_&&j()},w+1),t.addEventListener(b,IA)}function trA(t,i){const r=window.getComputedStyle(t),l=mA=>(r[mA]||"").split(", "),I=l(`${_y}Delay`),h=l(`${_y}Duration`),f=w8(I,h),w=l(`${hL}Delay`),_=l(`${hL}Duration`),b=w8(w,_);let U=null,j=0,IA=0;i===_y?f>0&&(U=_y,j=f,IA=h.length):i===hL?b>0&&(U=hL,j=b,IA=_.length):(j=Math.max(f,b),U=j>0?f>b?_y:hL:null,IA=U?U===_y?h.length:_.length:0);const nA=U===_y&&/\b(transform|all)(,|$)/.test(l(`${_y}Property`).toString());return{type:U,timeout:j,propCount:IA,hasTransform:nA}}function w8(t,i){for(;t.length<i.length;)t=t.concat(t);return Math.max(...i.map((r,l)=>_8(r)+_8(t[l])))}function _8(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function T8(){return document.body.offsetHeight}function irA(t,i,r){const l=t[pU];l&&(i=(i?[i,...l]:[...l]).join(" ")),i==null?t.removeAttribute("class"):r?t.setAttribute("class",i):t.className=i}const mY=Symbol("_vod"),f9=Symbol("_vsh"),Ka={beforeMount(t,{value:i},{transition:r}){t[mY]=t.style.display==="none"?"":t.style.display,r&&i?r.beforeEnter(t):BL(t,i)},mounted(t,{value:i},{transition:r}){r&&i&&r.enter(t)},updated(t,{value:i,oldValue:r},{transition:l}){!i!=!r&&(l?i?(l.beforeEnter(t),BL(t,!0),l.enter(t)):l.leave(t,()=>{BL(t,!1)}):BL(t,i))},beforeUnmount(t,{value:i}){BL(t,i)}};function BL(t,i){t.style.display=i?t[mY]:"none",t[f9]=!i}const orA=Symbol(""),srA=/(^|;)\s*display\s*:/;function nrA(t,i,r){const l=t.style,I=fg(r);let h=!1;if(r&&!I){if(i)if(fg(i))for(const f of i.split(";")){const w=f.slice(0,f.indexOf(":")).trim();r[w]==null&&$1(l,w,"")}else for(const f in i)r[f]==null&&$1(l,f,"");for(const f in r)f==="display"&&(h=!0),$1(l,f,r[f])}else if(I){if(i!==r){const f=l[orA];f&&(r+=";"+f),l.cssText=r,h=srA.test(r)}}else i&&t.removeAttribute("style");mY in t&&(t[mY]=h?l.display:"",t[f9]&&(l.display="none"))}const N8=/\s*!important$/;function $1(t,i,r){if(Ms(r))r.forEach(l=>$1(t,i,l));else if(r==null&&(r=""),i.startsWith("--"))t.setProperty(i,r);else{const l=rrA(t,i);N8.test(r)?t.setProperty(nD(l),r.replace(N8,""),"important"):t[l]=r}}const G8=["Webkit","Moz","ms"],Gj={};function rrA(t,i){const r=Gj[i];if(r)return r;let l=sh(i);if(l!=="filter"&&l in t)return Gj[i]=l;l=AV(l);for(let I=0;I<G8.length;I++){const h=G8[I]+l;if(h in t)return Gj[i]=h}return i}const b8="http://www.w3.org/1999/xlink";function k8(t,i,r,l,I,h=osA(i)){l&&i.startsWith("xlink:")?r==null?t.removeAttributeNS(b8,i.slice(6,i.length)):t.setAttributeNS(b8,i,r):r==null||h&&!B6(r)?t.removeAttribute(i):t.setAttribute(i,h?"":Cm(r)?String(r):r)}function L8(t,i,r,l,I){if(i==="innerHTML"||i==="textContent"){r!=null&&(t[i]=i==="innerHTML"?p9(r):r);return}const h=t.tagName;if(i==="value"&&h!=="PROGRESS"&&!h.includes("-")){const w=h==="OPTION"?t.getAttribute("value")||"":t.value,_=r==null?t.type==="checkbox"?"on":"":String(r);(w!==_||!("_value"in t))&&(t.value=_),r==null&&t.removeAttribute(i),t._value=r;return}let f=!1;if(r===""||r==null){const w=typeof t[i];w==="boolean"?r=B6(r):r==null&&w==="string"?(r="",f=!0):w==="number"&&(r=0,f=!0)}try{t[i]=r}catch{}f&&t.removeAttribute(I||i)}function S_(t,i,r,l){t.addEventListener(i,r,l)}function arA(t,i,r,l){t.removeEventListener(i,r,l)}const U8=Symbol("_vei");function grA(t,i,r,l,I=null){const h=t[U8]||(t[U8]={}),f=h[i];if(l&&f)f.value=l;else{const[w,_]=crA(i);if(l){const b=h[i]=urA(l,I);S_(t,w,b,_)}else f&&(arA(t,w,f,_),h[i]=void 0)}}const F8=/(?:Once|Passive|Capture)$/;function crA(t){let i;if(F8.test(t)){i={};let l;for(;l=t.match(F8);)t=t.slice(0,t.length-l[0].length),i[l[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):nD(t.slice(2)),i]}let bj=0;const lrA=Promise.resolve(),IrA=()=>bj||(lrA.then(()=>bj=0),bj=Date.now());function urA(t,i){const r=l=>{if(!l._vts)l._vts=Date.now();else if(l._vts<=r.attached)return;rB(ErA(l,r.value),i,5,[l])};return r.value=t,r.attached=IrA(),r}function ErA(t,i){if(Ms(i)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},i.map(l=>I=>!I._stopped&&l&&l(I))}else return i}const O8=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,drA=(t,i,r,l,I,h)=>{const f=I==="svg";i==="class"?irA(t,l,f):i==="style"?nrA(t,r,l):ZY(i)?mW(i)||grA(t,i,r,l,h):(i[0]==="."?(i=i.slice(1),!0):i[0]==="^"?(i=i.slice(1),!1):CrA(t,i,l,f))?(L8(t,i,l),!t.tagName.includes("-")&&(i==="value"||i==="checked"||i==="selected")&&k8(t,i,l,f,h,i!=="value")):t._isVueCE&&(/[A-Z]/.test(i)||!fg(l))?L8(t,sh(i),l,h,i):(i==="true-value"?t._trueValue=l:i==="false-value"&&(t._falseValue=l),k8(t,i,l,f))};function CrA(t,i,r,l){if(l)return!!(i==="innerHTML"||i==="textContent"||i in t&&O8(i)&&$s(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 I=t.tagName;if(I==="IMG"||I==="VIDEO"||I==="CANVAS"||I==="SOURCE")return!1}return O8(i)&&fg(r)?!1:i in t}const P8=t=>{const i=t.props["onUpdate:modelValue"]||!1;return Ms(i)?r=>z1(i,r):i};function hrA(t){t.target.composing=!0}function x8(t){const i=t.target;i.composing&&(i.composing=!1,i.dispatchEvent(new Event("input")))}const kj=Symbol("_assign"),BrA={created(t,{modifiers:{lazy:i,trim:r,number:l}},I){t[kj]=P8(I);const h=l||I.props&&I.props.type==="number";S_(t,i?"change":"input",f=>{if(f.target.composing)return;let w=t.value;r&&(w=w.trim()),h&&(w=B3(w)),t[kj](w)}),r&&S_(t,"change",()=>{t.value=t.value.trim()}),i||(S_(t,"compositionstart",hrA),S_(t,"compositionend",x8),S_(t,"change",x8))},mounted(t,{value:i}){t.value=i??""},beforeUpdate(t,{value:i,oldValue:r,modifiers:{lazy:l,trim:I,number:h}},f){if(t[kj]=P8(f),t.composing)return;const w=(h||t.type==="number")&&!/^0\d/.test(t.value)?B3(t.value):t.value,_=i??"";w!==_&&(document.activeElement===t&&t.type!=="range"&&(l&&i===r||I&&t.value.trim()===_)||(t.value=_))}},QrA=["ctrl","shift","alt","meta"],prA={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))},yE=(t,i)=>{const r=t._withMods||(t._withMods={}),l=i.join(".");return r[l]||(r[l]=(I,...h)=>{for(let f=0;f<i.length;f++){const w=prA[i[f]];if(w&&w(I,i))return}return t(I,...h)})},mrA={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},y9=(t,i)=>{const r=t._withKeys||(t._withKeys={}),l=i.join(".");return r[l]||(r[l]=I=>{if(!("key"in I))return;const h=nD(I.key);if(i.some(f=>f===h||mrA[f]===h))return t(I)})},frA=sI({patchProp:drA},WnA);let Y8;function D9(){return Y8||(Y8=QnA(frA))}const Qv=(...t)=>{D9().render(...t)},yrA=(...t)=>{const i=D9().createApp(...t),{mount:r}=i;return i.mount=l=>{const I=SrA(l);if(!I)return;const h=i._component;!$s(h)&&!h.render&&!h.template&&(h.template=I.innerHTML),I.nodeType===1&&(I.textContent="");const f=r(I,!1,DrA(I));return I instanceof Element&&(I.removeAttribute("v-cloak"),I.setAttribute("data-v-app","")),f},i};function DrA(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function SrA(t){return fg(t)?document.querySelector(t):t}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 vL={exports:{}},AY={exports:{}},vrA=AY.exports,V8;function S9(){return V8||(V8=1,function(t,i){(function(r,l){t.exports=l()})(vrA,function(){const r=p=>p===void 0,l=p=>typeof p=="string",I=p=>{var B;return(B=Object.prototype.toString.call(p).match(/^\[object (.*)\]$/))===null||B===void 0?void 0:B[1].toLowerCase()},h=p=>typeof Array.isArray=="function"?Array.isArray(p):I(p)==="array",f=p=>p!==null&&typeof p=="object",w=p=>h(p)||f(p),_=p=>{if(typeof p!="string")return!1;const B=p[0];return!/[^a-zA-Z0-9]/.test(B)},b=p=>{if(typeof p!="object"||p===null)return!1;const B=Object.getPrototypeOf(p);if(B===null)return!0;let v=B;for(;Object.getPrototypeOf(v)!==null;)v=Object.getPrototypeOf(v);return B===v};function U(p=99999999){return Math.round(Math.random()*p)}const j=(p,B,v,N)=>{if(!w(p)||!w(B))return 0;let O=0;const z=Object.keys(B);let X;for(let rA=0,DA=z.length;rA<DA;rA++)if(X=z[rA],!(r(B[X])||v&&v.includes(X)))if(w(p[X])&&w(B[X]))O+=j(p[X],B[X],v,N);else{if(N&&N.includes(B[X]))continue;p[X]!==B[X]&&(p[X]=B[X],O+=1)}return O};function IA(p){let B,v,N=p;p.length%8!=0&&(N="0".repeat(8-p.length%8)+p);let O="";for(let z=0,{length:X}=N;z<X;z+=8)B=parseInt(N.slice(z,z+4),2),v=parseInt(N.slice(z+4,z+8),2),O+=base16Map.get(B)+base16Map.get(v);return O}const nA={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},mA=["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 lA;(function(p){p[p.DEBUG=0]="DEBUG",p[p.INFO=1]="INFO",p[p.WARN=2]="WARN",p[p.ERROR=3]="ERROR",p[p.NONE=4]="NONE"})(lA||(lA={}));const cA="LiteChat",TA={[lA.DEBUG]:console.debug,[lA.INFO]:console.info,[lA.WARN]:console.warn,[lA.ERROR]:console.error},WA={[lA.INFO]:4,[lA.WARN]:5,[lA.ERROR]:6},Ee=1e3,de=2,Pe=5e3,pe=50,gt={CHINA:"CHINA",OVERSEA:"OVERSEA",SINGAPORE:"SINGAPORE",KOREA:"KOREA",GERMANY:"GERMANY",IND:"IND",JPN:"JPN",USA:"USA",INDONESIA:"INDONESIA",KSA:"KSA"},pt={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 We;(function(p){p[p.CONV_DELETED=1]="CONV_DELETED",p[p.CONV_PINED=2]="CONV_PINED",p[p.CONV_UNPINED=3]="CONV_UNPINED",p[p.CONV_MARK_UPDATED=4]="CONV_MARK_UPDATED",p[p.CONV_GROUP_ADDED=5]="CONV_GROUP_ADDED",p[p.CONV_GROUP_DELETED=6]="CONV_GROUP_DELETED",p[p.CONV_GROUP_UPDATED=7]="CONV_GROUP_UPDATED"})(We||(We={}));var Dt=Object.freeze({__proto__:null,ACCESS_ENVIRONMENT:gt,CONSOLE_METHOD:TA,CloudConfigReportLevelMap:WA,get ConvModifyPushType(){return We},DEFAULT_GLOBAL_MAX_TOTAL_COUNT:pe,DEFAULT_GLOBAL_THROTTLE_TIME:Pe,DEFAULT_SINGLE_MAX_TOTAL_COUNT:de,DEFAULT_SINGLE_THROTTLE_TIME:Ee,ENUM_PLATFORM:nA,HOST_CONFIG:pt,IS_TOPIC_MESSAGE:2,get LogLevel(){return lA},NOT_NEED_CRC_SERVCMD:mA,SDK_NAME:cA});const Kt=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows")&&wx.getSystemInfoSync().uniPlatform===void 0,ut=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||Kt,ge=ut&&typeof wx.createGamePortal=="function",XA=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,_e=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,je=_e&&typeof tt.onShow=="function",Ut=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,gi=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,Fi=typeof jd<"u"&&typeof jd.getSystemInfoSync=="function",To=typeof uni<"u"&&typeof window>"u"&&typeof uni.requireNativePlugin=="function",to=ut&&typeof wx.miniapp=="object",Eo=typeof uni<"u",Vs=_e&&typeof tt.enterChat=="function",ki=ut||XA||_e||Ut||gi||To||Fi,ns=typeof window>"u"&&!ki&&typeof mg<"u"&&mg.NativeScriptGlobals!==void 0,jo=typeof mg<"u"&&(mg.nativeModuleProxy!==void 0||mg.ReactNative!==void 0),$i=typeof wx<"u"&&typeof wx.getAccountInfoSync=="function"&&!!wx.getAccountInfoSync().plugin,Wt=typeof uni<"u"?!ki:typeof window<"u"&&!ki&&!jo,io=XA?qq:_e?tt:Ut?swan:gi?my:ut?wx:To?uni:Fi?jd:{},bi=Wt&&window&&window.navigator&&window.navigator.userAgent||"",vs=/(micromessenger|webbrowser)/i.test(bi),HA=function(){let p="WEB";return vs?p="WEB":XA?p="QQ_MP":_e?p="TT_MP":Ut?p="BAIDU_MP":gi?p="ALI_MP":ut?p=to?"DONUT_NATIVE_APP":"WX_MP":To?p="UNI_NATIVE_APP":ns?p="NS_NATIVE_APP":jo&&(p="RN_NATIVE_APP"),nA[p]}(),le=/iPad/i.test(bi),Ve=/iPhone/i.test(bi)&&!le,Ft=/iPod/i.test(bi),nt=Ve||le||Ft,It=function(){const p=bi.match(/OS (\d+)_/i);return p&&p[1]?p[1]:null}(),Ai=/Android/i.test(bi),ei=function(){const p=bi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!p)return null;const B=p[1]&&parseFloat(p[1]),v=p[2]&&parseFloat(p[2]);return B&&v?parseFloat(`${p[1]}.${p[2]}`):B||null}(),ke=/Firefox/i.test(bi),Ze=/Edge/i.test(bi),vt=!Ze&&/Chrome/i.test(bi),_t=/MSIE/.test(bi)||bi.indexOf("Trident")>-1&&bi.indexOf("rv:11.0")>-1,Oi=function(){const p=/MSIE\s(\d+)\.\d/.exec(bi);let B=p&&parseFloat(p[1]);return!B&&/Trident\/7.0/i.test(bi)&&/rv:11.0/.test(bi)&&(B=11),B}(),po=/Safari/i.test(bi)&&!vt&&!Ai&&!Ze,No=/Windows/i.test(bi),oo=/MAC OS X/i.test(bi),Go=Wt&&typeof Worker<"u"&&!_t,An=Ai||nt,rn=function(){if(typeof window>"u"||window.navigator===void 0)return!1;const{standalone:p}=window.navigator;return!(!nt||p||po)}();function Es(){let p="unknown";if(oo&&(p="mac"),No&&(p="windows"),nt&&(p="ios"),Ai&&(p="android"),ki)try{const{platform:B}=io.getSystemInfoSync();B!==void 0&&(p=B)}catch(B){console.error(B)}return p}const an=typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0&&typeof window>"u";function Do(p,B){var v={};for(var N in p)Object.prototype.hasOwnProperty.call(p,N)&&B.indexOf(N)<0&&(v[N]=p[N]);if(p!=null&&typeof Object.getOwnPropertySymbols=="function"){var O=0;for(N=Object.getOwnPropertySymbols(p);O<N.length;O++)B.indexOf(N[O])<0&&Object.prototype.propertyIsEnumerable.call(p,N[O])&&(v[N[O]]=p[N[O]])}return v}function pA(p,B,v,N){return new(v||(v=Promise))(function(O,z){function X(GA){try{DA(N.next(GA))}catch(VA){z(VA)}}function rA(GA){try{DA(N.throw(GA))}catch(VA){z(VA)}}function DA(GA){var VA;GA.done?O(GA.value):(VA=GA.value,VA instanceof v?VA:new v(function(te){te(VA)})).then(X,rA)}DA((N=N.apply(p,B||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;const Jn=2800,Qr=2801,ds=3e3,zr="application/x-www-form-urlencoded;charset=UTF-8";function Pi(p){return pA(this,arguments,void 0,function*({method:B,url:v,data:N,timeout:O=ds}){return ki?new Promise((z,X)=>{io.request({url:v,data:N,method:B,timeout:O,header:{"content-type":zr},success:rA=>z(rA.data),fail:()=>X(new Error(`{"message":"Network error","code":${Jn}}`))})}):an?void 0:new Promise((z,X)=>{const rA=new XMLHttpRequest,DA=setTimeout(()=>{rA.abort(),X(new Error(`{"message":"Request timeout","code":${Qr}}`))},O);rA.onreadystatechange=function(){if(rA.readyState===4)if(clearTimeout(DA),rA.status===200||rA.status===304)try{z(rA.responseText?JSON.parse(rA.responseText):null)}catch{z(rA.responseText)}else X(new Error(`{"message":"Network error","code":${Jn}}`))},rA.open(B,v,!0),rA.setRequestHeader("Content-type",zr),rA.send(N||null)})})}function Rs(p){if(p==null)return!0;if(typeof p=="boolean")return!1;if(typeof p=="number")return p===0;if(typeof p=="string"||typeof p=="function"||Array.isArray(p))return p.length===0;if(p instanceof Error)return p.message==="";if(b(p)){for(const B in p)if(Object.prototype.hasOwnProperty.call(p,B))return!1;return!0}return(Object.prototype.toString.call(p)==="[object Map]"||Object.prototype.toString.call(p)==="[object Set]"||Object.prototype.toString.call(p)==="[object File]")&&p.size===0}function or(p,B){if(p===null||typeof p!="object")return p;const v=B||new WeakMap;if(v.has(p))return v.get(p);if(p instanceof Date)return new Date(p.getTime());if(p instanceof RegExp)return new RegExp(p.source,p.flags);if(p instanceof Map){const z=new Map;return v.set(p,z),p.forEach((X,rA)=>{z.set(or(rA,v),or(X,v))}),z}if(p instanceof Set){const z=new Set;return v.set(p,z),p.forEach(X=>{z.add(or(X,v))}),z}if(Array.isArray(p)){const z=[];return v.set(p,z),p.forEach(X=>{z.push(or(X,v))}),z}const N=Object.getPrototypeOf(p),O=Object.create(N);return v.set(p,O),[...Object.getOwnPropertyNames(p),...Object.getOwnPropertySymbols(p)].forEach(z=>{if(z==="__ob__"||z==="__v_skip"||z==="__v_isRef"||z==="__v_isReadonly")return;const X=Object.getOwnPropertyDescriptor(p,z);X&&(X.get||X.set?Object.defineProperty(O,z,X):O[z]=or(p[z],v))}),O}function en(p,B,v){const N=new WeakSet,O=(z,X)=>{if(B&&(X=B(z,X)),X===void 0)return"undefined";if(X===null)return null;if(Number.isNaN(X))return"NaN";if(X===1/0)return"Infinity";if(X===-1/0)return"-Infinity";if(typeof X=="function")return`[Function: ${X.name||"anonymous"}]`;if(typeof X=="symbol")return X.toString();if(typeof X=="bigint")return`${X.toString()}n`;if(typeof X=="object"&&X!==null){if(N.has(X))return"[Circular]";N.add(X)}return X instanceof Date?X.toISOString():X instanceof Error?{name:X.name,message:X.message}:X instanceof Map?{dataType:"Map",value:Array.from(X.entries())}:X instanceof Set?{dataType:"Set",value:Array.from(X.values())}:X};try{return JSON.stringify(p,O,v)}catch(z){return console.error("Failed to stringify:",z),""}}function wn(){let p,B;return{promise:new Promise((v,N)=>{p=v,B=N}),resolve:p,reject:B}}var Ht,yg=Object.freeze({__proto__:null,ANDROID_VERSION:ei,IE_VERSION:Oi,IN_ALIPAY_MINI_APP:gi,IN_BAIDU_MINI_APP:Ut,IN_BROWSER:Wt,IN_DONUT_NATIVE_APP:to,IN_FEISHU_MINI_APP:Vs,IN_JD_MINI_APP:Fi,IN_MINI_APP:ki,IN_NODE:an,IN_NS_NATIVE_APP:ns,IN_QQ_MINI_APP:XA,IN_RN_APP:jo,IN_TT_MINI_APP:_e,IN_TT_MINI_GAME:je,IN_UNI_APP:Eo,IN_UNI_NATIVE_APP:To,IN_WX_MINI_APP:ut,IN_WX_MINI_APP_DESK:Kt,IN_WX_MINI_GAME:ge,IN_WX_MINI_PLUGIN:$i,IOS_VERSION:It,IS_ANDROID:Ai,IS_CHROME:vt,IS_EDGE:Ze,IS_FIREFOX:ke,IS_IE:_t,IS_IOS:nt,IS_IPAD:le,IS_IPHONE:Ve,IS_IPOD:Ft,IS_MAC:oo,IS_SAFARI:po,IS_WECHAT:vs,IS_WIN:No,IS_WORKER_AVAILABLE:Go,MINI_APP_NAMESPACE:io,USER_AGENT:bi,base16EncodeBinaryString:IA,deepCopyWithMethods:or,deepMerge:j,generatePromise:wn,getPlatformType:Es,getType:I,httpRequest:Pi,isArray:h,isArrayOrObject:w,isEmpty:Rs,isH5:An,isIOSWebView:rn,isNumber:p=>p!==null&&(typeof p=="number"&&!Number.isNaN(p-0)||typeof p=="object"&&p.constructor===Number),isObject:f,isPlainObject:b,isString:l,isUndefined:r,isUniIOSApp:function(){return To&&uni.getDeviceInfo().platform.toLocaleLowerCase()==="ios"},isValidRequestKey:_,platform:HA,randomInt:U,randomString:function(){const p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let B="";for(let v=32;v>0;--v)B+=p[Math.floor(62*Math.random())];return B},safeStringify:en});class On{constructor(){this.listeners={}}on(B,v,N){this.listeners[B]||(this.listeners[B]=[]),this.listeners[B].push({fn:v,context:N})}off(B,v,N){var O;v&&(this.listeners[B]=(O=this.listeners[B])===null||O===void 0?void 0:O.filter(z=>{const X=z.fn===v,rA=!N||z.context===N;return!(X&&rA)}))}emit(B,...v){const N=this.listeners[B];N&&N.forEach(O=>{const{fn:z,context:X}=O;try{z.apply(X,v)}catch(rA){console.warn(`Error in event handler for ${B} error: ${en(rA)}`)}})}once(B,v,N){const O=(...z)=>{v.apply(N,z),this.off(B,O)};this.on(B,O)}}(function(p){p.BUSINESS_COMMAND="business_command",p.C2C_REALTIME_MESSAGE="c2c_realtime_message",p.C2C_MESSAGE_MODIFIED="c2c_message_modified",p.C2C_REVOKED_MESSAGE="c2c_message_revoked",p.GROUP_REALTIME_MESSAGE="group_realtime_message",p.GROUP_MESSAGE_MODIFIED="group_message_modified",p.GROUP_MESSAGE_REVOKED="group_message_revoked",p.C2C_MESSAGE_READ_RECEIPT="c2c_message_read_receipt",p.MESSAGE_REACTION_UPDATED="message_reaction_updated",p.MESSAGE_REACTION_UPDATED_SYNC="message_reaction_updated_sync",p.GROUP_AT_TIPS="group_at_tips",p.USER_STATUS_UPDATE="user_status_update",p.FRIEND_LIST_MODIFIED="friend_list_modified",p.PROFILE_MODIFIED="profile_modified",p.CONV_MODIFIED="conversation_modified",p.GROUP_TIPS_NOTIFICATION="group_tips_notification",p.GROUP_MESSAGE_READ_RECEIPT="group_message_read_receipt",p.GROUP_MESSAGE_READ_SYNC="group_message_read_sync",p.GROUP_SYSTEM_NOTIFICATION="group_system_notification",p.C2C_MESSAGE_PEER_READ="c2c_message_peer_read",p.C2C_MESSAGE_READ_SYNC="c2c_message_read_sync",p.C2C_REMIND_TYPE_SYNC="c2c_remind_type_sync",p.FOLLOW_LIST_UPDATED="follow_list_updated",p.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",p.ALL_MESSAGE_READ="all_message_read",p.CONVERSATION_MARK_UPDATED="conversation_mark_updated",p.CONVERSATION_GROUP_ADD="conversation_group_add",p.CONVERSATION_GROUP_DELETED="conversation_group_deleted",p.CONVERSATION_GROUP_UPDATED="conversation_group_updated",p.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",p.TOPIC_AT_TIPS="topic_at_tips",p.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",p.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",p.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",p.TOPIC_LATEST_MESSAGE="topic_latest_message",p.GROUP_MESSAGE_PINNED="group_message_pinned"})(Ht||(Ht={}));const Gn=[16,17];function Js(p){var B;const v=[];return(B=p?.GroupTips)===null||B===void 0||B.forEach(N=>{var O;N.GroupInfo.MillionGroupFlag===2?v.push(Ht.TOPIC_TIPS_NOTIFICATION):Gn.includes((O=N?.MsgBody)===null||O===void 0?void 0:O.OpType)?v.push(Ht.GROUP_MESSAGE_PINNED):v.push(Ht.GROUP_TIPS_NOTIFICATION)}),v}const pr=[{conditions:[{type:"event",value:100}],subType:Ht.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Ht.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Ht.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Ht.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Ht.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Ht.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Ht.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Ht.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Ht.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Ht.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(p){var B;const v=[];return(B=p?.C2cNotifyMsgArray)===null||B===void 0||B.forEach(N=>{N.WithdrawC2cMsgNotify&&v.push(Ht.C2C_REVOKED_MESSAGE),N.C2cReadedReceipt&&v.push(Ht.C2C_MESSAGE_PEER_READ),N.ReadC2cMsgNotify&&v.push(Ht.C2C_MESSAGE_READ_SYNC),N.MuteNotificationsSync&&v.push(Ht.C2C_REMIND_TYPE_SYNC)}),v}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(p){var B;const v=[];return(B=p?.GroupTips)===null||B===void 0||B.forEach(N=>{Array.isArray(N.MsgBody.GroupWithdrawInfoArray)?v.push(Ht.GROUP_MESSAGE_REVOKED):Array.isArray(N.MsgBody.GroupMsgReceiptList)?v.push(Ht.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(N.MsgBody.GroupReadInfoArray)?N.MsgBody.GroupReadInfoArray[0].TopicId?v.push(Ht.TOPIC_MESSAGE_READ_SYNC):v.push(Ht.GROUP_MESSAGE_READ_SYNC):N.GroupInfo.MillionGroupFlag===2?v.push(Ht.TOPIC_SYSTEM_NOTIFICATION):v.push(Ht.GROUP_SYSTEM_NOTIFICATION)}),v}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Js},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(p){var B;const v=[];return(B=p?.GroupTips)===null||B===void 0||B.forEach(N=>{const{GroupAtTips:{TopicId:O}}=N;O?v.push(Ht.TOPIC_AT_TIPS):v.push(Ht.GROUP_AT_TIPS)}),v}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(p){var B;const v=[];return(B=p?.RecentContactMod)===null||B===void 0||B.forEach(N=>{switch(N.PushType){case We.CONV_MARK_UPDATED:v.push(Ht.CONVERSATION_MARK_UPDATED);break;case We.CONV_GROUP_ADDED:v.push(Ht.CONVERSATION_GROUP_ADD);break;case We.CONV_GROUP_DELETED:v.push(Ht.CONVERSATION_GROUP_DELETED);break;case We.CONV_GROUP_UPDATED:v.push(Ht.CONVERSATION_GROUP_UPDATED);break;default:v.push(Ht.CONV_MODIFIED)}}),v}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Ht.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Ht.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Ht.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Ht.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Ht.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Ht.ALL_MESSAGE_READ}];var Pn;function mr(p){var B;const v=Array.isArray((B=p?.body)===null||B===void 0?void 0:B.EventArray)?p.body.EventArray:[],N=[];return v.forEach(O=>{O.Flag=p.body.Flag;const z=pr.find(rA=>rA.conditions.every(DA=>{switch(DA.type){case"event":return O.Event===DA.value;case"hasKey":return Object.prototype.hasOwnProperty.call(O,DA.value);default:return!1}}));if(!z)return null;let X=[];typeof z.subTypeParser=="function"?X=z.subTypeParser(O):z.subType&&(X=z.subType),Array.isArray(X)?X.forEach(rA=>{N.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${rA}`,data:O})}):N.push({type:`${Pn.SERVER_PUSH_MESSAGE}:${X}`,data:O})}),N}(function(p){p.SERVER_PUSH_MESSAGE="im_open_push.msg_push",p.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",p.ERROR="error"})(Pn||(Pn={}));const mo={[Pn.SERVER_PUSH_MESSAGE]:mr,[Pn.SERVER_PUSH_MESSAGE_MULTIPLE]:mr,[Pn.ERROR]:function(p){const{errorCode:B}=p;return[{type:`error:${B}`,data:p}]}},gn=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new On,this._innerEventEmitter=new On,this.InnerEventSubType=Ht}subscribeInnerEvent(p,B,v,N,O){var z;let X,rA,DA,GA;["string","number"].includes(typeof B)?(DA=`${p}:${B}`,GA=v,rA=N,X=O):(DA=p,GA=B,rA=v,X=typeof N=="function"?N:void 0),X?this._subscribeWithFilter(DA,GA,rA,X):(z=this._innerEventEmitter)===null||z===void 0||z.on(DA,GA,rA)}emitInnerEvent(p,B){var v,N;if((v=this._innerEventEmitter)===null||v===void 0||v.emit(p,B),Object.keys(mo).includes(p)){const O=(N=mo[p])===null||N===void 0?void 0:N.call(mo,B);O?.forEach(z=>{var X;z&&((X=this._innerEventEmitter)===null||X===void 0||X.emit(z.type,z.data))})}}subscribeOuterEvent(p,B,v){var N;(N=this._outerEventEmitter)===null||N===void 0||N.on(p,B,v)}unSubscribeOuterEvent(p,B,v){var N;(N=this._outerEventEmitter)===null||N===void 0||N.off(p,B,v)}unSubscribeInnerEvent(p,B,v,N){if(["string","number"].includes(typeof B)){const O=v,z=`${p}:${B}`;this._unsubscribeEvent(z,O,N)}else{const O=B;this._unsubscribeEvent(p,O,v)}}emitOuterEvent(p,B){var v;(v=this._outerEventEmitter)===null||v===void 0||v.emit(p,B)}getOuterEventEmitter(){return this._outerEventEmitter}rest(){this._outerEventEmitter=null,this._innerEventEmitter=null}_subscribeWithFilter(p,B,v,N){var O;const z=X=>{N.call(v,X)&&B.call(v,X)};this._filteredCallbackMap.has(p)||this._filteredCallbackMap.set(p,[]),this._filteredCallbackMap.get(p).push({originalCallback:B,filteredCallback:z,filter:N,context:v}),(O=this._innerEventEmitter)===null||O===void 0||O.on(p,z,v)}_unsubscribeEvent(p,B,v){var N,O;const z=this._filteredCallbackMap.get(p);if(z){const X=z.findIndex(rA=>rA.originalCallback===B&&rA.context===v);if(X!==-1){const{filteredCallback:rA}=z[X];return(N=this._innerEventEmitter)===null||N===void 0||N.off(p,rA,v),z.splice(X,1),void(z.length===0&&this._filteredCallbackMap.delete(p))}}(O=this._innerEventEmitter)===null||O===void 0||O.off(p,B,v)}};class Sl{constructor(){this._socket=null}connectSocket(B){return this._socket=new WebSocket(B),this._socket}send(B){var v,N;try{(v=this._socket)===null||v===void 0||v.send(B)}catch(O){(N=this._onSendFail)===null||N===void 0||N.call(this,O)}}bindSocketHandlers(B){const{onOpen:v,onMessage:N,onClose:O,onError:z,onSendFail:X}=B;this._socket&&(this._socket.binaryType="arraybuffer",this._socket.onopen=v,this._socket.onmessage=N,this._socket.onclose=O,this._socket.onerror=z,this._onSendFail=X)}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 cn{constructor(B){this._onError=B.onError}connectSocket(B){const v=this;return this._socket=io.connectSocket({url:B,header:{"content-type":"application/json"},complete:()=>{},fail:N=>v._onError(N)}),this._socket}send(B){var v;(v=this._socket)===null||v===void 0||v.send({data:B,fail:this._onSendFail})}bindSocketHandlers(B){const{onOpen:v,onMessage:N,onClose:O,onError:z,onSendFail:X}=B;this._socket&&(this._socket.onClose(O),this._socket.onOpen(v),this._socket.onMessage(N),this._socket.onError(z),this._onSendFail=X)}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 fr="CONNECT",Ls="SEND",Jc="DISCONNECT",ms="OPEN",as="MESSAGE",Mu="CLOSE",Wa="ERROR",Cs="SEND_FAIL";class sg{constructor(){this._worker=null,this._blobUrl=null}connectSocket(B){const v=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(v)),this._worker.postMessage({type:fr,url:B})}send(B){var v,N;try{(v=this._worker)===null||v===void 0||v.postMessage({type:Ls,data:B})}catch(O){(N=this._onSendFail)===null||N===void 0||N.call(this,O)}}bindSocketHandlers(B){const{onOpen:v,onMessage:N,onClose:O,onError:z,onSendFail:X}=B;if(this._worker){const rA={[ms]:v,[as]:N,[Mu]:O,[Wa]:z,[Cs]:X};this._onSendFail=X,this._worker.onmessage=DA=>{var GA;const{type:VA}=DA?.data||{};typeof rA[VA]=="function"&&((GA=rA[VA])===null||GA===void 0||GA.call(rA,DA?.data))}}}unbindSocketHandlers(){this._worker&&(this._worker.onmessage=null)}disconnect(){this._worker&&(this._worker.postMessage({type:Jc}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}class JI{}var $o,Xi=new class{constructor(){this._store=new Map}get(p){return this._store.get(p)}getStorage(p){return ki?gi?my.getStorageSync({key:p}).data:io.getStorageSync(p):this._canUseLocalStorage()?localStorage.getItem(p):{}}set(p,B){const v=this._store.get(p)||{};B instanceof Map?this._store.set(p,B):this._store.set(p,Object.assign(Object.assign({},v),B))}setStorage(p,B){ki?gi?my.setStorageSync({key:p,data:JSON.stringify(B)}):io.setStorageSync(p,JSON.stringify(B)):this._canUseLocalStorage()&&localStorage.setItem(p,JSON.stringify(B))}clear(p){typeof p=="string"?this._store.set(p,{}):this._store.clear()}clearLocalStorage(p){this._canUseLocalStorage()&&(typeof p=="string"?localStorage.setItem(p,""):localStorage.clear())}reset(){this.clear()}_canUseLocalStorage(){return typeof window<"u"&&navigator&&navigator.cookieEnabled&&localStorage}};class pc{connectSocket(B){return this._socket=io.connectSocket({url:B,header:{"content-type":"application/json"},multiple:!0,complete:()=>{}}),this._socket}send(B){var v;(v=this._socket)===null||v===void 0||v.send({data:B,fail:this._onSendFail})}bindSocketHandlers(B){const{onOpen:v,onMessage:N,onClose:O,onError:z,onSendFail:X}=B;this._socket&&(this._socket.onClose(O),this._socket.onOpen(v),this._socket.onMessage(rA=>N(rA?.data)),this._socket.onError(()=>z),this._onSendFail=X)}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(p){p[p.CONNECTED=0]="CONNECTED",p[p.CONNECTING=1]="CONNECTING",p[p.DISCONNECTED=2]="DISCONNECTED"})($o||($o={}));class ng{constructor(B){this._url="",this._readyState=$o.DISCONNECTED,this._url=B,this._id=U(),this._emitter=new On,gi?this._socket=new pc:ut||To||_e||XA||Fi||Ut?this._socket=new cn({onError:this._onError.bind(this)}):an?this._socket=new JI:this._canUseWebWorker()?this._socket=new sg:this._socket=new Sl,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this._readyState=$o.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(B){this._readyState!==$o.CONNECTED?this.reconnect():this._socket.send(B)}reconnect(){[$o.CONNECTED,$o.CONNECTING].includes(this._readyState)||(this.disconnect(),this.doOpen())}getId(){return this._id}on(B,v,N){this._emitter.on(B,v,N)}off(B,v,N){this._emitter.off(B,v,N)}isConnected(){return this._readyState===$o.CONNECTED}disconnect(){this._readyState=$o.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(B){this._readyState===$o.CONNECTING&&(this._readyState=$o.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:B}))}_onMessage(B){this._emitter.emit("message",B)}_onClose(B){this._readyState=$o.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:B})}_onError(B){this._readyState=$o.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:B})}_onSendFail(B){this._readyState=$o.DISCONNECTED,this._emitter.emit("sendFail",{socketId:this._id,error:B})}_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 B=Xi.get("cloudConfig")||{};return(r(B.isWorkerEnabled)||B.isWorkerEnabled==="1")&&Go}}const Dg={[gt.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[gt.KOREA]:[[3e7,4e7],[173e7,174e7]],[gt.GERMANY]:[[4e7,5e7],[174e7,175e7]],[gt.IND]:[[5e7,6e7],[175e7,176e7]],[gt.JPN]:[[6e7,7e7],[176e7,177e7]],[gt.USA]:[[7e7,8e7],[177e7,178e7]],[gt.INDONESIA]:[[8e7,9e7],[178e7,179e7]],[gt.KSA]:[[9e7,1e8],[179e7,18e8]]};function ua(p){var B;if(!((B=Xi.get("instance"))===null||B===void 0)&&B.oversea)return gt.OVERSEA;for(const v of Object.keys(Dg))for(const[N,O]of Dg[v])if(p>=N&&p<O)return v;return gt.CHINA}var bo,Zr="1.6.18";(function(p){p.INITIAL="INITIAL",p.DEFAULT="DEFAULT",p.BACKUP="BACKUP",p.BACKUP_WEB_ONLY="BACKUP_WEB_ONLY",p.BACKUP_CN="BACKUP_CN",p.ANYCAST="ANYCAST",p.IPV6="IPV6"})(bo||(bo={}));let _o=bo.INITIAL;function Hc(){const p=Math.random();return p===0?Hc():p}function Hn(p,B){const{isBinary:v=!1}=B||{},N=Xi.get("instance"),{sdkAppId:O,instanceId:z}=N,X=Hc(),rA=Es(),DA=function(){const te=Es();let Ce=-1;return te==="ios"?Ce=It||-1:te==="android"&&(Ce=ei||-1),Ce}(),GA=(VA={sdkappid:O,instanceid:z,random:X,platform:HA,host:rA,version:DA,sdkversion:Zr},Object.keys(VA).map(te=>`${te}=${VA[te]}`).join("&"));var VA;return v?`${p}/binfo?${GA}&compress=gzip`:`${p}/info?${GA}`}function Hs(p){const B=Xi.get("instance"),{sdkAppId:v,testEnv:N,proxyServer:O}=B,z=ua(v);if(N)return Hn(pt.TEST[z].DEFAULT,{isBinary:p});if(!Rs(O))return Hn(O,{isBinary:p});const X=pt.PRODUCTION[z],rA=Wt&&X.ANYCAST,DA=Wt,GA=!!X.BACKUP_CN;return Hn({[bo.INITIAL]:()=>(_o=bo.DEFAULT,X.DEFAULT),[bo.DEFAULT]:()=>(_o=bo.IPV6,X.IPV6),[bo.IPV6]:()=>(_o=bo.BACKUP,X.BACKUP),[bo.BACKUP]:()=>DA?(_o=bo.BACKUP_WEB_ONLY,function(VA){const te=Math.floor(10001*Math.random())+1e4;return VA.replace("*",String(te))}(X.BACKUP_WEB_ONLY)):GA?(_o=bo.BACKUP_CN,X.BACKUP_CN):rA?(_o=bo.ANYCAST,X.ANYCAST):X.DEFAULT,[bo.BACKUP_WEB_ONLY]:()=>GA?(_o=bo.BACKUP_CN,X.BACKUP_CN):rA?(_o=bo.ANYCAST,X.ANYCAST):X.DEFAULT,[bo.BACKUP_CN]:()=>(_o=rA?bo.ANYCAST:bo.DEFAULT,X[_o]),[bo.ANYCAST]:()=>(_o=bo.DEFAULT,X.ANYCAST="",X.DEFAULT)}[_o](),{isBinary:p})}var Sg=new class{constructor(){this._timeOffsetWithServer=0}getServerTimeMs(){return Date.now()+this._timeOffsetWithServer}getServerTimeSeconds(){return Math.floor(this.getServerTimeMs()/1e3)}getTimeOffsetWithServer(){return this._timeOffsetWithServer}calculateTimeOffsetWithServer(p,B){const v=Date.now(),N=v-p;this._timeOffsetWithServer=B+N-v}};const mc=16;var fn=new class{constructor(){this._tasks=[],this._timer=null,this._taskMap=new Map}_addTaskToScheduler(p){const{id:B}=p;this.removeTask(B),this._tasks.push(p),this._taskMap.set(B,p),this._sort(),this._scheduleNextTask()}_createTask(p){const{id:B,callback:v,context:N,isOnce:O=!1,intervalMs:z=mc}=p,X=Math.max(z,mc);return{id:B,nextExecuteTime:Date.now()+X,intervalMs:z,callback:v,context:N,isOnce:O}}addTask(p){const B=this._createTask(p);this._addTaskToScheduler(B)}addOnceTask(p){const B=this._createTask(Object.assign(Object.assign({},p),{isOnce:!0}));this._addTaskToScheduler(B)}removeTask(p){const B=this._tasks.findIndex(v=>v.id===p);B>-1&&(this._tasks.splice(B,1),this._taskMap.delete(p),this._scheduleNextTask())}updateTaskInterval(p,B){const v=this._taskMap.get(p);v&&(v.intervalMs=B,v.nextExecuteTime=Date.now()+B,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((p,B)=>p.nextExecuteTime-B.nextExecuteTime)}_scheduleNextTask(){this._timer&&(clearTimeout(this._timer),this._timer=null);const p=this._tasks[0];if(p){const B=Math.max(0,p.nextExecuteTime-Date.now());this._timer=setTimeout(()=>this._execute(),B)}}_execute(){const p=Date.now();for(;this._tasks.length&&this._tasks[0].nextExecuteTime<=p;){const B=this._tasks[0];try{B.context?B.callback.call(B.context):B.callback(),B.isOnce?this.removeTask(B.id):(B.nextExecuteTime=p+B.intervalMs,this._sort())}catch(v){console.warn(`Task ${B.id} execution failed:`,v),B.isOnce&&this.removeTask(B.id)}}this._scheduleNextTask()}};function Ga(p){const B=[];for(let v=0;v<p.length;v+=1){const N=p.charCodeAt(v);if(N>=55296&&N<=56319){const O=p.charCodeAt(++v)-56320+(N-55296<<10)+65536;B.push(240|O>>18,128|O>>12&63,128|O>>6&63,128|63&O)}else N<=127?B.push(N):N<=2047?B.push(192|N>>6,128|63&N):B.push(224|N>>12,128|N>>6&63,128|63&N)}return new Uint8Array(B)}function In(p){const B=Array.isArray(p)?[]:Object.create(null);for(const v in p)Object.prototype.hasOwnProperty.call(p,v)&&_(v)&&p[v]!=null&&(p[v]===null||typeof p[v]!="object"?B[v]=p[v]:B[v]=In(p[v]));return B}function fs(p,B){if(mA.includes(p))return 0;const v=Ga(JSON.stringify(B));let N=4294967295;const{length:O}=v;for(let z=0;z<O;z++){N^=v[z];for(let X=0;X<8;X++)1&~N?N>>>=1:N=N>>>1^3988292384}return(4294967295^N)>>>0}function Ea(p){const{servcmd:B,data:v}=p,N=function(z){const X=Xi.get("login")||{},rA=Xi.get("instance")||{};return{servcmd:z,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",a2:X.a2Key||void 0,tinyid:X.tinyID||void 0,status_instid:X.statusInstanceId||0,sdkappid:rA.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:X.a2Key?void 0:X.userId,usersig:X.a2Key?void 0:X.userSig,sdkability:478343027,sdkability_ext:IA(""),cappid:rA.applicationID||0,tjgID:"",seq:Sa(),cs:0}}(B),O=In(v);return N.cs=fs(B,O),{head:N,body:O}}function yn(p){const{servcmd:B,data:v}=p,N=function(z){const X=Xi.get("login")||{},rA=Xi.get("instance")||{};return{servcmd:z,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:rA.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:X.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:rA.applicationID||0,seq:Sa(),cs:0}}(B),O=In(v);return N.cs=fs(B,O),{head:N,body:O}}let ba=U();function Sa(){return ba=ba<2415919103?ba+1:U(),ba}function $(){var p;const B=Xi.get("login")||{},v=Xi.get("instance")||{};return{sdk_type:30,sdk_app_id:v.sdkAppId,sdk_version:"1.6.18",tiny_id:Number(B.tinyID),user_id:B.userId||((p=Xi.get("webPush"))===null||p===void 0?void 0:p.userId),platform:HA,instance_id:v.instanceId,trace_id:new Date().getTime()}}var K,vA=Object.freeze({__proto__:null,calcBodyCRC:fs,filterProtocolDataInvalidFields:In,generateCosSpecifiedData:function(p){const{servcmd:B,data:v}=p,N=function(z){const X=Xi.get("login")||{},rA=Xi.get("instance")||{};return{servcmd:z,ver:"v4",platform:HA,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:rA.sdkAppId,contenttype:"json",reqtime:Math.floor(Date.now()/1e3),identifier:X.userId,usersig:X.userSig,status_instid:X.statusInstanceId||0,sdkability:478343027,sdkability_ext:IA(""),cappid:rA.applicationID||0,seq:Sa(),cs:0}}(B),O=In(v);return N.cs=fs(B,O),{head:N,body:O}},generateProtocolData:Ea,generateSSOLogProtocolData:yn,generateSequence:Sa,getCommonHead:$,getHostSite:ua,taskScheduler:fn,timeManager:Sg});(function(p){p[p.info=4]="info",p[p.warning=5]="warning",p[p.error=6]="error"})(K||(K={}));const qA={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 ee{constructor(B){this.level=K.info,this._canSendLog=!0,this._logCreatedAt=Sg.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:v,eventType:N=0,message:O="",costTime:z=0,error:X,uiPlatform:rA,moreMessage:DA="",code:GA=0,startTime:VA=0}=B||{};this.eventType=N,this.method=v,this.message=O,this.costTime=z,this.moreMessage=`${DA} startTime:${VA}`,this.code=GA,X&&this.setError(X),Rs(rA)||(this.uiPlatform=rA)}setMoreMessage(B){this.moreMessage=`${this.moreMessage} ${B}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=Sg.getTimeOffsetWithServer()}end(B=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=Sg.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),B&&this._ssoLogModule.uploadSSOLogData())}setError(B){var v;return B instanceof Error?this._canSendLog?(!((v=Xi.get("netWorkMonitor"))===null||v===void 0)&&v.isNetworkOnline&&(B.errorCode&&(this.code=B.errorCode),B.errorMessage&&this.setMoreMessage(B.errorMessage)),this.level=K.error,this):this:(console.warn("SSOLogData.setError value not instanceof Error, please check!"),this)}setLogInfo(B){return Object.keys(B).forEach(v=>{Object.keys(qA).includes(v)&&(this[v]=B[v])}),this}setSSOLogModule(B){this._ssoLogModule=B}_convertSSOLogDataKeyToServe(){const B={};return Object.keys(this).forEach(v=>{const N=v;qA[N]&&(B[qA[N]]=this[N])}),B}_getUiPlatform(){var B;const v=(B=Xi.get("instance"))===null||B===void 0?void 0:B.scene;if(typeof v=="string"){const N=Number(v);return isNaN(N)?void 0:N}}_getSDKEdition(){var B;return(B=Xi.get("instance"))===null||B===void 0?void 0:B.sdkEdition}}var fe;(function(p){p.RECONNECTED="reconnected",p.CLOUD_CONFIG_UPDATE="cloud_config_update",p.SOCKET_DISCONNECTED="socket_disconnected"})(fe||(fe={}));var xe=fe;const Oe=20,rt=6e4,dt=[4,5,6],Mt="report-logger";var xt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=lA.DEBUG,this._throttleConfig={global:{throttleTime:Pe,maxCount:pe},single:{throttleTime:Ee,maxCount:de}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,gn.subscribeInnerEvent(xe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),fn.addTask({id:Mt,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(p){const{evt_rpt_threshold:B=Oe,evt_rpt_waiting:v=rt,evt_rpt_level:N=dt,evt_rpt_sdkappid_bl:O="",evt_rpt_tinyid_wl:z="",evt_rpt_global_throttle_time:X=Pe,evt_rpt_global_throttle_count:rA=pe,evt_rpt_single_throttle_time:DA=Ee,evt_rpt_single_throttle_count:GA=de}=p||{};this._sdkAppIdBlackList=O.split(",").map(VA=>Number(VA)),this._waitingTime=Number(v),this._minThreshold=B,this._reportLevel=N,this._tinyIdWhiteList=z.split(","),this._throttleConfig={global:{throttleTime:X,maxCount:rA},single:{throttleTime:DA,maxCount:GA}}}createSSOLogData(p){const B=new ee(p);return B.setSSOLogModule(this),this._ssoLogMap.set(p.method,B),B}getSSOLogData(p){return this._ssoLogMap.get(p)||{}}pushToLogQueue(p){p&&(this._logQueue.push(p),this._shouldUploadImmediately()&&this.uploadSSOLogData())}setLogLevel(p){[lA.DEBUG,lA.ERROR,lA.INFO,lA.NONE,lA.WARN].includes(p)&&(this._logLevel=p)}debug(p,B="",v){this._log(lA.DEBUG,p,B,v)}info(p,B="",v){this._log(lA.INFO,p,B,v)}warn(p,B="",v){this._log(lA.WARN,p,B,v)}error(p,B="",v){this._log(lA.ERROR,p,B,v)}_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 pA(this,void 0,void 0,function*(){if(this._logQueue.length===0)return;const p=this._logQueue.slice();this._logQueue=[];try{const B=this._filterLogs(p);if(B.length===0)return void(this._lastReportAt=Date.now());const v={Header:$(),Event:B};Rs(v.Header.user_id)||(yield function(N){const O="imopenstat.tim_web_report_v2",z=yn({servcmd:O,data:N}),X=`${z.head.seq}${O}`;return vl.sendPacket(z,{requestId:X})}(v))}catch(B){this._requeueFailedLogs(p),this.debug("uploadSSOLogData",en(B))}finally{this._lastReportAt=Date.now()}})}_requeueFailedLogs(p){this._logQueue=p.concat(this._logQueue);const B=this._logQueue.length-200;B>0&&(this._logQueue.splice(0,B),this.debug("uploadSSOLogData",`log queue overflow, dropped ${B} oldest logs`))}_savePlatFormInfo(){var p,B;if(ut){const v=(B=(p=wx.getAccountInfoSync)===null||p===void 0?void 0:p.call(wx))===null||B===void 0?void 0:B.miniProgram;if(v){const{appId:N,envVersion:O}=v;Xi.set("instance",{appId:N,envVersion:O})}}else Wt&&Xi.set("instance",{href:window.location.href})}_filterLogs(p){const{tinyID:B}=Xi.get("login")||{},{sdkAppId:v}=Xi.get("instance")||{};return this._sdkAppIdBlackList.includes(v)&&!this._tinyIdWhiteList.includes(B)?[]:p.filter(N=>this._reportLevel.includes(N.level))}_checkThrottle(p){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(p)}_checkGlobalThrottle(){const p=Date.now();if(p-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=p;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(p){const B=Date.now(),v=this._singleThrottleMap.get(p);return v?B-v.startTime>=this._throttleConfig.single.throttleTime?(v.count=1,v.startTime=B,!1):v.count>=this._throttleConfig.single.maxCount||(v.count++,!1):(this._singleThrottleMap.set(p,{count:1,startTime:B}),!1)}_shouldLog(p){return p>=this._logLevel&&this._logLevel!==lA.NONE}_shouldReport(p){return this._reportLevel.includes(WA[p])}_formatLog(p,B,v,N){const O=new Date,z=`${O.getHours()}:${O.getMinutes()}:${O.getSeconds()}:${O.getMilliseconds()}`,X=`<${lA[p]}>`;return _t||ki?[`${cA} [${z}] ${X} [${B}] ${v}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",cA,"",`[${z}] ${X} [${B}] ${v} params: ${en(N)}`]}_log(p,B,v,N){if(this._shouldLog(p)){const O=this._formatLog(p,B,v,N);TA[p].apply(console,O)}if(this._shouldReport(p)){const O=this._getThrottleKey(B,v,N);this._checkThrottle(O)||this.createSSOLogData(Object.assign(Object.assign({message:v},N),{method:B})).end()}}_getThrottleKey(p,B,v){const N=`${p}${B}${en(Object.assign(Object.assign({},v),{costTime:""}))}`,O=Ga(JSON.stringify(N));let z=4294967295;const{length:X}=O;for(let rA=0;rA<X;rA++){z^=O[rA];for(let DA=0;DA<8;DA++)1&~z?z>>>=1:z=z>>>1^3988292384}return`${(4294967295^z)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),fn.removeTask(Mt),gn.unSubscribeInnerEvent(xe.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Oe,this._maxThreshold=100,this._waitingTime=rt,this._logQueue=[],this._logLevel=lA.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const Ii=15e3,ct="Channel",Pt="channel_schedule_task",Ji="channel_reconnect_task",Ki="connected",qs="connecting",Mi="disconnected",zo=1e3,Mg="network_status_change",sr="activity_status_change",yr="send_fail",xn="reconnect_failed",Ml="socket_error",Ks="socket_close";function aI(p){return aI=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(B){return typeof B}:function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},aI(p)}function Wg(p){throw new Error('Could not dynamically require "'+p+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var fc,vu={exports:{}},Ma=(fc||(fc=1,function(p){p.exports=function B(v,N,O){function z(DA,GA){if(!N[DA]){if(!v[DA]){if(!GA&&Wg)return Wg(DA);if(X)return X(DA,!0);var VA=new Error("Cannot find module '"+DA+"'");throw VA.code="MODULE_NOT_FOUND",VA}var te=N[DA]={exports:{}};v[DA][0].call(te.exports,function(Ce){return z(v[DA][1][Ce]||Ce)},te,te.exports,B,v,N,O)}return N[DA].exports}for(var X=Wg,rA=0;rA<O.length;rA++)z(O[rA]);return z}({1:[function(B,v,N){var O=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";N.assign=function(rA){for(var DA,GA,VA=Array.prototype.slice.call(arguments,1);VA.length;){var te=VA.shift();if(te){if(aI(te)!="object")throw new TypeError(te+"must be non-object");for(var Ce in te)DA=te,GA=Ce,Object.prototype.hasOwnProperty.call(DA,GA)&&(rA[Ce]=te[Ce])}}return rA},N.shrinkBuf=function(rA,DA){return rA.length===DA?rA:rA.subarray?rA.subarray(0,DA):(rA.length=DA,rA)};var z={arraySet:function(rA,DA,GA,VA,te){if(DA.subarray&&rA.subarray)rA.set(DA.subarray(GA,GA+VA),te);else for(var Ce=0;Ce<VA;Ce++)rA[te+Ce]=DA[GA+Ce]},flattenChunks:function(rA){var DA,GA,VA,te,Ce,Ke;for(DA=VA=0,GA=rA.length;DA<GA;DA++)VA+=rA[DA].length;for(Ke=new Uint8Array(VA),DA=te=0,GA=rA.length;DA<GA;DA++)Ce=rA[DA],Ke.set(Ce,te),te+=Ce.length;return Ke}},X={arraySet:function(rA,DA,GA,VA,te){for(var Ce=0;Ce<VA;Ce++)rA[te+Ce]=DA[GA+Ce]},flattenChunks:function(rA){return[].concat.apply([],rA)}};N.setTyped=function(rA){rA?(N.Buf8=Uint8Array,N.Buf16=Uint16Array,N.Buf32=Int32Array,N.assign(N,z)):(N.Buf8=Array,N.Buf16=Array,N.Buf32=Array,N.assign(N,X))},N.setTyped(O)},{}],2:[function(B,v,N){var O=B("./common"),z=!0,X=!0;try{String.fromCharCode.apply(null,[0])}catch{z=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{X=!1}for(var rA=new O.Buf8(256),DA=0;DA<256;DA++)rA[DA]=252<=DA?6:248<=DA?5:240<=DA?4:224<=DA?3:192<=DA?2:1;function GA(VA,te){if(te<65534&&(VA.subarray&&X||!VA.subarray&&z))return String.fromCharCode.apply(null,O.shrinkBuf(VA,te));for(var Ce="",Ke=0;Ke<te;Ke++)Ce+=String.fromCharCode(VA[Ke]);return Ce}rA[254]=rA[254]=1,N.string2buf=function(VA){var te,Ce,Ke,ot,at,kt=VA.length,Vt=0;for(ot=0;ot<kt;ot++)(64512&(Ce=VA.charCodeAt(ot)))==55296&&ot+1<kt&&(64512&(Ke=VA.charCodeAt(ot+1)))==56320&&(Ce=65536+(Ce-55296<<10)+(Ke-56320),ot++),Vt+=Ce<128?1:Ce<2048?2:Ce<65536?3:4;for(te=new O.Buf8(Vt),ot=at=0;at<Vt;ot++)(64512&(Ce=VA.charCodeAt(ot)))==55296&&ot+1<kt&&(64512&(Ke=VA.charCodeAt(ot+1)))==56320&&(Ce=65536+(Ce-55296<<10)+(Ke-56320),ot++),Ce<128?te[at++]=Ce:(Ce<2048?te[at++]=192|Ce>>>6:(Ce<65536?te[at++]=224|Ce>>>12:(te[at++]=240|Ce>>>18,te[at++]=128|Ce>>>12&63),te[at++]=128|Ce>>>6&63),te[at++]=128|63&Ce);return te},N.buf2binstring=function(VA){return GA(VA,VA.length)},N.binstring2buf=function(VA){for(var te=new O.Buf8(VA.length),Ce=0,Ke=te.length;Ce<Ke;Ce++)te[Ce]=VA.charCodeAt(Ce);return te},N.buf2string=function(VA,te){var Ce,Ke,ot,at,kt=te||VA.length,Vt=new Array(2*kt);for(Ce=Ke=0;Ce<kt;)if((ot=VA[Ce++])<128)Vt[Ke++]=ot;else if(4<(at=rA[ot]))Vt[Ke++]=65533,Ce+=at-1;else{for(ot&=at===2?31:at===3?15:7;1<at&&Ce<kt;)ot=ot<<6|63&VA[Ce++],at--;1<at?Vt[Ke++]=65533:ot<65536?Vt[Ke++]=ot:(ot-=65536,Vt[Ke++]=55296|ot>>10&1023,Vt[Ke++]=56320|1023&ot)}return GA(Vt,Ke)},N.utf8border=function(VA,te){var Ce;for((te=te||VA.length)>VA.length&&(te=VA.length),Ce=te-1;0<=Ce&&(192&VA[Ce])==128;)Ce--;return Ce<0||Ce===0?te:Ce+rA[VA[Ce]]>te?Ce:te}},{"./common":1}],3:[function(B,v,N){v.exports=function(O,z,X,rA){for(var DA=65535&O,GA=O>>>16&65535,VA=0;X!==0;){for(X-=VA=2e3<X?2e3:X;GA=GA+(DA=DA+z[rA++]|0)|0,--VA;);DA%=65521,GA%=65521}return DA|GA<<16}},{}],4:[function(B,v,N){v.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(B,v,N){var O=function(){for(var z,X=[],rA=0;rA<256;rA++){z=rA;for(var DA=0;DA<8;DA++)z=1&z?3988292384^z>>>1:z>>>1;X[rA]=z}return X}();v.exports=function(z,X,rA,DA){var GA=O,VA=DA+rA;z^=-1;for(var te=DA;te<VA;te++)z=z>>>8^GA[255&(z^X[te])];return-1^z}},{}],6:[function(B,v,N){v.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(B,v,N){v.exports=function(O,z){var X,rA,DA,GA,VA,te,Ce,Ke,ot,at,kt,Vt,Ui,ao,Zi,Ei,Po,As,pi,ji,Ws,Te,Rt,FA,zt;X=O.state,rA=O.next_in,FA=O.input,DA=rA+(O.avail_in-5),GA=O.next_out,zt=O.output,VA=GA-(z-O.avail_out),te=GA+(O.avail_out-257),Ce=X.dmax,Ke=X.wsize,ot=X.whave,at=X.wnext,kt=X.window,Vt=X.hold,Ui=X.bits,ao=X.lencode,Zi=X.distcode,Ei=(1<<X.lenbits)-1,Po=(1<<X.distbits)-1;A:do{Ui<15&&(Vt+=FA[rA++]<<Ui,Ui+=8,Vt+=FA[rA++]<<Ui,Ui+=8),As=ao[Vt&Ei];e:for(;;){if(Vt>>>=pi=As>>>24,Ui-=pi,(pi=As>>>16&255)==0)zt[GA++]=65535&As;else{if(!(16&pi)){if(!(64&pi)){As=ao[(65535&As)+(Vt&(1<<pi)-1)];continue e}if(32&pi){X.mode=12;break A}O.msg="invalid literal/length code",X.mode=30;break A}ji=65535&As,(pi&=15)&&(Ui<pi&&(Vt+=FA[rA++]<<Ui,Ui+=8),ji+=Vt&(1<<pi)-1,Vt>>>=pi,Ui-=pi),Ui<15&&(Vt+=FA[rA++]<<Ui,Ui+=8,Vt+=FA[rA++]<<Ui,Ui+=8),As=Zi[Vt&Po];t:for(;;){if(Vt>>>=pi=As>>>24,Ui-=pi,!(16&(pi=As>>>16&255))){if(!(64&pi)){As=Zi[(65535&As)+(Vt&(1<<pi)-1)];continue t}O.msg="invalid distance code",X.mode=30;break A}if(Ws=65535&As,Ui<(pi&=15)&&(Vt+=FA[rA++]<<Ui,(Ui+=8)<pi&&(Vt+=FA[rA++]<<Ui,Ui+=8)),Ce<(Ws+=Vt&(1<<pi)-1)){O.msg="invalid distance too far back",X.mode=30;break A}if(Vt>>>=pi,Ui-=pi,(pi=GA-VA)<Ws){if(ot<(pi=Ws-pi)&&X.sane){O.msg="invalid distance too far back",X.mode=30;break A}if(Rt=kt,(Te=0)===at){if(Te+=Ke-pi,pi<ji){for(ji-=pi;zt[GA++]=kt[Te++],--pi;);Te=GA-Ws,Rt=zt}}else if(at<pi){if(Te+=Ke+at-pi,(pi-=at)<ji){for(ji-=pi;zt[GA++]=kt[Te++],--pi;);if(Te=0,at<ji){for(ji-=pi=at;zt[GA++]=kt[Te++],--pi;);Te=GA-Ws,Rt=zt}}}else if(Te+=at-pi,pi<ji){for(ji-=pi;zt[GA++]=kt[Te++],--pi;);Te=GA-Ws,Rt=zt}for(;2<ji;)zt[GA++]=Rt[Te++],zt[GA++]=Rt[Te++],zt[GA++]=Rt[Te++],ji-=3;ji&&(zt[GA++]=Rt[Te++],1<ji&&(zt[GA++]=Rt[Te++]))}else{for(Te=GA-Ws;zt[GA++]=zt[Te++],zt[GA++]=zt[Te++],zt[GA++]=zt[Te++],2<(ji-=3););ji&&(zt[GA++]=zt[Te++],1<ji&&(zt[GA++]=zt[Te++]))}break}}break}}while(rA<DA&&GA<te);rA-=ji=Ui>>3,Vt&=(1<<(Ui-=ji<<3))-1,O.next_in=rA,O.next_out=GA,O.avail_in=rA<DA?DA-rA+5:5-(rA-DA),O.avail_out=GA<te?te-GA+257:257-(GA-te),X.hold=Vt,X.bits=Ui}},{}],8:[function(B,v,N){var O=B("../utils/common"),z=B("./adler32"),X=B("./crc32"),rA=B("./inffast"),DA=B("./inftrees"),GA=1,VA=2,te=0,Ce=-2,Ke=1,ot=852,at=592;function kt(Te){return(Te>>>24&255)+(Te>>>8&65280)+((65280&Te)<<8)+((255&Te)<<24)}function Vt(){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 O.Buf16(320),this.work=new O.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ui(Te){var Rt;return Te&&Te.state?(Rt=Te.state,Te.total_in=Te.total_out=Rt.total=0,Te.msg="",Rt.wrap&&(Te.adler=1&Rt.wrap),Rt.mode=Ke,Rt.last=0,Rt.havedict=0,Rt.dmax=32768,Rt.head=null,Rt.hold=0,Rt.bits=0,Rt.lencode=Rt.lendyn=new O.Buf32(ot),Rt.distcode=Rt.distdyn=new O.Buf32(at),Rt.sane=1,Rt.back=-1,te):Ce}function ao(Te){var Rt;return Te&&Te.state?((Rt=Te.state).wsize=0,Rt.whave=0,Rt.wnext=0,Ui(Te)):Ce}function Zi(Te,Rt){var FA,zt;return Te&&Te.state?(zt=Te.state,Rt<0?(FA=0,Rt=-Rt):(FA=1+(Rt>>4),Rt<48&&(Rt&=15)),Rt&&(Rt<8||15<Rt)?Ce:(zt.window!==null&&zt.wbits!==Rt&&(zt.window=null),zt.wrap=FA,zt.wbits=Rt,ao(Te))):Ce}function Ei(Te,Rt){var FA,zt;return Te?(zt=new Vt,(Te.state=zt).window=null,(FA=Zi(Te,Rt))!==te&&(Te.state=null),FA):Ce}var Po,As,pi=!0;function ji(Te){if(pi){var Rt;for(Po=new O.Buf32(512),As=new O.Buf32(32),Rt=0;Rt<144;)Te.lens[Rt++]=8;for(;Rt<256;)Te.lens[Rt++]=9;for(;Rt<280;)Te.lens[Rt++]=7;for(;Rt<288;)Te.lens[Rt++]=8;for(DA(GA,Te.lens,0,288,Po,0,Te.work,{bits:9}),Rt=0;Rt<32;)Te.lens[Rt++]=5;DA(VA,Te.lens,0,32,As,0,Te.work,{bits:5}),pi=!1}Te.lencode=Po,Te.lenbits=9,Te.distcode=As,Te.distbits=5}function Ws(Te,Rt,FA,zt){var En,Xt=Te.state;return Xt.window===null&&(Xt.wsize=1<<Xt.wbits,Xt.wnext=0,Xt.whave=0,Xt.window=new O.Buf8(Xt.wsize)),zt>=Xt.wsize?(O.arraySet(Xt.window,Rt,FA-Xt.wsize,Xt.wsize,0),Xt.wnext=0,Xt.whave=Xt.wsize):(zt<(En=Xt.wsize-Xt.wnext)&&(En=zt),O.arraySet(Xt.window,Rt,FA-zt,En,Xt.wnext),(zt-=En)?(O.arraySet(Xt.window,Rt,FA-zt,zt,0),Xt.wnext=zt,Xt.whave=Xt.wsize):(Xt.wnext+=En,Xt.wnext===Xt.wsize&&(Xt.wnext=0),Xt.whave<Xt.wsize&&(Xt.whave+=En))),0}N.inflateReset=ao,N.inflateReset2=Zi,N.inflateResetKeep=Ui,N.inflateInit=function(Te){return Ei(Te,15)},N.inflateInit2=Ei,N.inflate=function(Te,Rt){var FA,zt,En,Xt,us,vi,ho,Ct,Bt,ug,ks,Wi,Hr,oc,is,ga,Qa,ea,H,BA,yA,NA,zA,we,Ie=0,Ge=new O.Buf8(4),ce=[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 Ce;(FA=Te.state).mode===12&&(FA.mode=13),us=Te.next_out,En=Te.output,ho=Te.avail_out,Xt=Te.next_in,zt=Te.input,vi=Te.avail_in,Ct=FA.hold,Bt=FA.bits,ug=vi,ks=ho,NA=te;A:for(;;)switch(FA.mode){case Ke:if(FA.wrap===0){FA.mode=13;break}for(;Bt<16;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(2&FA.wrap&&Ct===35615){Ge[FA.check=0]=255&Ct,Ge[1]=Ct>>>8&255,FA.check=X(FA.check,Ge,2,0),Bt=Ct=0,FA.mode=2;break}if(FA.flags=0,FA.head&&(FA.head.done=!1),!(1&FA.wrap)||(((255&Ct)<<8)+(Ct>>8))%31){Te.msg="incorrect header check",FA.mode=30;break}if((15&Ct)!=8){Te.msg="unknown compression method",FA.mode=30;break}if(Bt-=4,yA=8+(15&(Ct>>>=4)),FA.wbits===0)FA.wbits=yA;else if(yA>FA.wbits){Te.msg="invalid window size",FA.mode=30;break}FA.dmax=1<<yA,Te.adler=FA.check=1,FA.mode=512&Ct?10:12,Bt=Ct=0;break;case 2:for(;Bt<16;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(FA.flags=Ct,(255&FA.flags)!=8){Te.msg="unknown compression method",FA.mode=30;break}if(57344&FA.flags){Te.msg="unknown header flags set",FA.mode=30;break}FA.head&&(FA.head.text=Ct>>8&1),512&FA.flags&&(Ge[0]=255&Ct,Ge[1]=Ct>>>8&255,FA.check=X(FA.check,Ge,2,0)),Bt=Ct=0,FA.mode=3;case 3:for(;Bt<32;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.head&&(FA.head.time=Ct),512&FA.flags&&(Ge[0]=255&Ct,Ge[1]=Ct>>>8&255,Ge[2]=Ct>>>16&255,Ge[3]=Ct>>>24&255,FA.check=X(FA.check,Ge,4,0)),Bt=Ct=0,FA.mode=4;case 4:for(;Bt<16;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.head&&(FA.head.xflags=255&Ct,FA.head.os=Ct>>8),512&FA.flags&&(Ge[0]=255&Ct,Ge[1]=Ct>>>8&255,FA.check=X(FA.check,Ge,2,0)),Bt=Ct=0,FA.mode=5;case 5:if(1024&FA.flags){for(;Bt<16;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.length=Ct,FA.head&&(FA.head.extra_len=Ct),512&FA.flags&&(Ge[0]=255&Ct,Ge[1]=Ct>>>8&255,FA.check=X(FA.check,Ge,2,0)),Bt=Ct=0}else FA.head&&(FA.head.extra=null);FA.mode=6;case 6:if(1024&FA.flags&&(vi<(Wi=FA.length)&&(Wi=vi),Wi&&(FA.head&&(yA=FA.head.extra_len-FA.length,FA.head.extra||(FA.head.extra=new Array(FA.head.extra_len)),O.arraySet(FA.head.extra,zt,Xt,Wi,yA)),512&FA.flags&&(FA.check=X(FA.check,zt,Wi,Xt)),vi-=Wi,Xt+=Wi,FA.length-=Wi),FA.length))break A;FA.length=0,FA.mode=7;case 7:if(2048&FA.flags){if(vi===0)break A;for(Wi=0;yA=zt[Xt+Wi++],FA.head&&yA&&FA.length<65536&&(FA.head.name+=String.fromCharCode(yA)),yA&&Wi<vi;);if(512&FA.flags&&(FA.check=X(FA.check,zt,Wi,Xt)),vi-=Wi,Xt+=Wi,yA)break A}else FA.head&&(FA.head.name=null);FA.length=0,FA.mode=8;case 8:if(4096&FA.flags){if(vi===0)break A;for(Wi=0;yA=zt[Xt+Wi++],FA.head&&yA&&FA.length<65536&&(FA.head.comment+=String.fromCharCode(yA)),yA&&Wi<vi;);if(512&FA.flags&&(FA.check=X(FA.check,zt,Wi,Xt)),vi-=Wi,Xt+=Wi,yA)break A}else FA.head&&(FA.head.comment=null);FA.mode=9;case 9:if(512&FA.flags){for(;Bt<16;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(Ct!==(65535&FA.check)){Te.msg="header crc mismatch",FA.mode=30;break}Bt=Ct=0}FA.head&&(FA.head.hcrc=FA.flags>>9&1,FA.head.done=!0),Te.adler=FA.check=0,FA.mode=12;break;case 10:for(;Bt<32;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}Te.adler=FA.check=kt(Ct),Bt=Ct=0,FA.mode=11;case 11:if(FA.havedict===0)return Te.next_out=us,Te.avail_out=ho,Te.next_in=Xt,Te.avail_in=vi,FA.hold=Ct,FA.bits=Bt,2;Te.adler=FA.check=1,FA.mode=12;case 12:if(Rt===5||Rt===6)break A;case 13:if(FA.last){Ct>>>=7&Bt,Bt-=7&Bt,FA.mode=27;break}for(;Bt<3;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}switch(FA.last=1&Ct,Bt-=1,3&(Ct>>>=1)){case 0:FA.mode=14;break;case 1:if(ji(FA),FA.mode=20,Rt!==6)break;Ct>>>=2,Bt-=2;break A;case 2:FA.mode=17;break;case 3:Te.msg="invalid block type",FA.mode=30}Ct>>>=2,Bt-=2;break;case 14:for(Ct>>>=7&Bt,Bt-=7&Bt;Bt<32;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if((65535&Ct)!=(Ct>>>16^65535)){Te.msg="invalid stored block lengths",FA.mode=30;break}if(FA.length=65535&Ct,Bt=Ct=0,FA.mode=15,Rt===6)break A;case 15:FA.mode=16;case 16:if(Wi=FA.length){if(vi<Wi&&(Wi=vi),ho<Wi&&(Wi=ho),Wi===0)break A;O.arraySet(En,zt,Xt,Wi,us),vi-=Wi,Xt+=Wi,ho-=Wi,us+=Wi,FA.length-=Wi;break}FA.mode=12;break;case 17:for(;Bt<14;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(FA.nlen=257+(31&Ct),Ct>>>=5,Bt-=5,FA.ndist=1+(31&Ct),Ct>>>=5,Bt-=5,FA.ncode=4+(15&Ct),Ct>>>=4,Bt-=4,286<FA.nlen||30<FA.ndist){Te.msg="too many length or distance symbols",FA.mode=30;break}FA.have=0,FA.mode=18;case 18:for(;FA.have<FA.ncode;){for(;Bt<3;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.lens[ce[FA.have++]]=7&Ct,Ct>>>=3,Bt-=3}for(;FA.have<19;)FA.lens[ce[FA.have++]]=0;if(FA.lencode=FA.lendyn,FA.lenbits=7,zA={bits:FA.lenbits},NA=DA(0,FA.lens,0,19,FA.lencode,0,FA.work,zA),FA.lenbits=zA.bits,NA){Te.msg="invalid code lengths set",FA.mode=30;break}FA.have=0,FA.mode=19;case 19:for(;FA.have<FA.nlen+FA.ndist;){for(;ga=(Ie=FA.lencode[Ct&(1<<FA.lenbits)-1])>>>16&255,Qa=65535&Ie,!((is=Ie>>>24)<=Bt);){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(Qa<16)Ct>>>=is,Bt-=is,FA.lens[FA.have++]=Qa;else{if(Qa===16){for(we=is+2;Bt<we;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(Ct>>>=is,Bt-=is,FA.have===0){Te.msg="invalid bit length repeat",FA.mode=30;break}yA=FA.lens[FA.have-1],Wi=3+(3&Ct),Ct>>>=2,Bt-=2}else if(Qa===17){for(we=is+3;Bt<we;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}Bt-=is,yA=0,Wi=3+(7&(Ct>>>=is)),Ct>>>=3,Bt-=3}else{for(we=is+7;Bt<we;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}Bt-=is,yA=0,Wi=11+(127&(Ct>>>=is)),Ct>>>=7,Bt-=7}if(FA.have+Wi>FA.nlen+FA.ndist){Te.msg="invalid bit length repeat",FA.mode=30;break}for(;Wi--;)FA.lens[FA.have++]=yA}}if(FA.mode===30)break;if(FA.lens[256]===0){Te.msg="invalid code -- missing end-of-block",FA.mode=30;break}if(FA.lenbits=9,zA={bits:FA.lenbits},NA=DA(GA,FA.lens,0,FA.nlen,FA.lencode,0,FA.work,zA),FA.lenbits=zA.bits,NA){Te.msg="invalid literal/lengths set",FA.mode=30;break}if(FA.distbits=6,FA.distcode=FA.distdyn,zA={bits:FA.distbits},NA=DA(VA,FA.lens,FA.nlen,FA.ndist,FA.distcode,0,FA.work,zA),FA.distbits=zA.bits,NA){Te.msg="invalid distances set",FA.mode=30;break}if(FA.mode=20,Rt===6)break A;case 20:FA.mode=21;case 21:if(6<=vi&&258<=ho){Te.next_out=us,Te.avail_out=ho,Te.next_in=Xt,Te.avail_in=vi,FA.hold=Ct,FA.bits=Bt,rA(Te,ks),us=Te.next_out,En=Te.output,ho=Te.avail_out,Xt=Te.next_in,zt=Te.input,vi=Te.avail_in,Ct=FA.hold,Bt=FA.bits,FA.mode===12&&(FA.back=-1);break}for(FA.back=0;ga=(Ie=FA.lencode[Ct&(1<<FA.lenbits)-1])>>>16&255,Qa=65535&Ie,!((is=Ie>>>24)<=Bt);){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(ga&&!(240&ga)){for(ea=is,H=ga,BA=Qa;ga=(Ie=FA.lencode[BA+((Ct&(1<<ea+H)-1)>>ea)])>>>16&255,Qa=65535&Ie,!(ea+(is=Ie>>>24)<=Bt);){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}Ct>>>=ea,Bt-=ea,FA.back+=ea}if(Ct>>>=is,Bt-=is,FA.back+=is,FA.length=Qa,ga===0){FA.mode=26;break}if(32&ga){FA.back=-1,FA.mode=12;break}if(64&ga){Te.msg="invalid literal/length code",FA.mode=30;break}FA.extra=15&ga,FA.mode=22;case 22:if(FA.extra){for(we=FA.extra;Bt<we;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.length+=Ct&(1<<FA.extra)-1,Ct>>>=FA.extra,Bt-=FA.extra,FA.back+=FA.extra}FA.was=FA.length,FA.mode=23;case 23:for(;ga=(Ie=FA.distcode[Ct&(1<<FA.distbits)-1])>>>16&255,Qa=65535&Ie,!((is=Ie>>>24)<=Bt);){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(!(240&ga)){for(ea=is,H=ga,BA=Qa;ga=(Ie=FA.distcode[BA+((Ct&(1<<ea+H)-1)>>ea)])>>>16&255,Qa=65535&Ie,!(ea+(is=Ie>>>24)<=Bt);){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}Ct>>>=ea,Bt-=ea,FA.back+=ea}if(Ct>>>=is,Bt-=is,FA.back+=is,64&ga){Te.msg="invalid distance code",FA.mode=30;break}FA.offset=Qa,FA.extra=15&ga,FA.mode=24;case 24:if(FA.extra){for(we=FA.extra;Bt<we;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}FA.offset+=Ct&(1<<FA.extra)-1,Ct>>>=FA.extra,Bt-=FA.extra,FA.back+=FA.extra}if(FA.offset>FA.dmax){Te.msg="invalid distance too far back",FA.mode=30;break}FA.mode=25;case 25:if(ho===0)break A;if(Wi=ks-ho,FA.offset>Wi){if((Wi=FA.offset-Wi)>FA.whave&&FA.sane){Te.msg="invalid distance too far back",FA.mode=30;break}Wi>FA.wnext?(Wi-=FA.wnext,Hr=FA.wsize-Wi):Hr=FA.wnext-Wi,Wi>FA.length&&(Wi=FA.length),oc=FA.window}else oc=En,Hr=us-FA.offset,Wi=FA.length;for(ho<Wi&&(Wi=ho),ho-=Wi,FA.length-=Wi;En[us++]=oc[Hr++],--Wi;);FA.length===0&&(FA.mode=21);break;case 26:if(ho===0)break A;En[us++]=FA.length,ho--,FA.mode=21;break;case 27:if(FA.wrap){for(;Bt<32;){if(vi===0)break A;vi--,Ct|=zt[Xt++]<<Bt,Bt+=8}if(ks-=ho,Te.total_out+=ks,FA.total+=ks,ks&&(Te.adler=FA.check=FA.flags?X(FA.check,En,ks,us-ks):z(FA.check,En,ks,us-ks)),ks=ho,(FA.flags?Ct:kt(Ct))!==FA.check){Te.msg="incorrect data check",FA.mode=30;break}Bt=Ct=0}FA.mode=28;case 28:if(FA.wrap&&FA.flags){for(;Bt<32;){if(vi===0)break A;vi--,Ct+=zt[Xt++]<<Bt,Bt+=8}if(Ct!==(4294967295&FA.total)){Te.msg="incorrect length check",FA.mode=30;break}Bt=Ct=0}FA.mode=29;case 29:NA=1;break A;case 30:NA=-3;break A;case 31:return-4;default:return Ce}return Te.next_out=us,Te.avail_out=ho,Te.next_in=Xt,Te.avail_in=vi,FA.hold=Ct,FA.bits=Bt,(FA.wsize||ks!==Te.avail_out&&FA.mode<30&&(FA.mode<27||Rt!==4))&&Ws(Te,Te.output,Te.next_out,ks-Te.avail_out)?(FA.mode=31,-4):(ug-=Te.avail_in,ks-=Te.avail_out,Te.total_in+=ug,Te.total_out+=ks,FA.total+=ks,FA.wrap&&ks&&(Te.adler=FA.check=FA.flags?X(FA.check,En,ks,Te.next_out-ks):z(FA.check,En,ks,Te.next_out-ks)),Te.data_type=FA.bits+(FA.last?64:0)+(FA.mode===12?128:0)+(FA.mode===20||FA.mode===15?256:0),(ug===0&&ks===0||Rt===4)&&NA===te&&(NA=-5),NA)},N.inflateEnd=function(Te){if(!Te||!Te.state)return Ce;var Rt=Te.state;return Rt.window&&(Rt.window=null),Te.state=null,te},N.inflateGetHeader=function(Te,Rt){var FA;return Te&&Te.state&&2&(FA=Te.state).wrap?((FA.head=Rt).done=!1,te):Ce},N.inflateSetDictionary=function(Te,Rt){var FA,zt=Rt.length;return Te&&Te.state?(FA=Te.state).wrap!==0&&FA.mode!==11?Ce:FA.mode===11&&z(1,Rt,zt,0)!==FA.check?-3:Ws(Te,Rt,zt,zt)?(FA.mode=31,-4):(FA.havedict=1,te):Ce},N.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(B,v,N){var O=B("../utils/common"),z=[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],X=[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],rA=[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],DA=[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];v.exports=function(GA,VA,te,Ce,Ke,ot,at,kt){var Vt,Ui,ao,Zi,Ei,Po,As,pi,ji,Ws=kt.bits,Te=0,Rt=0,FA=0,zt=0,En=0,Xt=0,us=0,vi=0,ho=0,Ct=0,Bt=null,ug=0,ks=new O.Buf16(16),Wi=new O.Buf16(16),Hr=null,oc=0;for(Te=0;Te<=15;Te++)ks[Te]=0;for(Rt=0;Rt<Ce;Rt++)ks[VA[te+Rt]]++;for(En=Ws,zt=15;1<=zt&&ks[zt]===0;zt--);if(zt<En&&(En=zt),zt===0)return Ke[ot++]=20971520,Ke[ot++]=20971520,kt.bits=1,0;for(FA=1;FA<zt&&ks[FA]===0;FA++);for(En<FA&&(En=FA),Te=vi=1;Te<=15;Te++)if(vi<<=1,(vi-=ks[Te])<0)return-1;if(0<vi&&(GA===0||zt!==1))return-1;for(Wi[1]=0,Te=1;Te<15;Te++)Wi[Te+1]=Wi[Te]+ks[Te];for(Rt=0;Rt<Ce;Rt++)VA[te+Rt]!==0&&(at[Wi[VA[te+Rt]]++]=Rt);if(GA===0?(Bt=Hr=at,Po=19):GA===1?(Bt=z,ug-=257,Hr=X,oc-=257,Po=256):(Bt=rA,Hr=DA,Po=-1),Te=FA,Ei=ot,us=Rt=Ct=0,ao=-1,Zi=(ho=1<<(Xt=En))-1,GA===1&&852<ho||GA===2&&592<ho)return 1;for(;;){for(As=Te-us,at[Rt]<Po?(pi=0,ji=at[Rt]):at[Rt]>Po?(pi=Hr[oc+at[Rt]],ji=Bt[ug+at[Rt]]):(pi=96,ji=0),Vt=1<<Te-us,FA=Ui=1<<Xt;Ke[Ei+(Ct>>us)+(Ui-=Vt)]=As<<24|pi<<16|ji,Ui!==0;);for(Vt=1<<Te-1;Ct&Vt;)Vt>>=1;if(Vt!==0?(Ct&=Vt-1,Ct+=Vt):Ct=0,Rt++,--ks[Te]==0){if(Te===zt)break;Te=VA[te+at[Rt]]}if(En<Te&&(Ct&Zi)!==ao){for(us===0&&(us=En),Ei+=FA,vi=1<<(Xt=Te-us);Xt+us<zt&&!((vi-=ks[Xt+us])<=0);)Xt++,vi<<=1;if(ho+=1<<Xt,GA===1&&852<ho||GA===2&&592<ho)return 1;Ke[ao=Ct&Zi]=En<<24|Xt<<16|Ei-ot}}return Ct!==0&&(Ke[Ei+Ct]=Te-us<<24|64<<16),kt.bits=En,0}},{"../utils/common":1}],10:[function(B,v,N){v.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(B,v,N){v.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(B,v,N){var O=B("./zlib/inflate"),z=B("./utils/common"),X=B("./utils/strings"),rA=B("./zlib/constants"),DA=B("./zlib/messages"),GA=B("./zlib/zstream"),VA=B("./zlib/gzheader"),te=Object.prototype.toString;function Ce(ot){if(!(this instanceof Ce))return new Ce(ot);this.options=z.assign({chunkSize:16384,windowBits:0,to:""},ot||{});var at=this.options;at.raw&&0<=at.windowBits&&at.windowBits<16&&(at.windowBits=-at.windowBits,at.windowBits===0&&(at.windowBits=-15)),!(0<=at.windowBits&&at.windowBits<16)||ot&&ot.windowBits||(at.windowBits+=32),15<at.windowBits&&at.windowBits<48&&!(15&at.windowBits)&&(at.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new GA,this.strm.avail_out=0;var kt=O.inflateInit2(this.strm,at.windowBits);if(kt!==rA.Z_OK)throw new Error(DA[kt]);if(this.header=new VA,O.inflateGetHeader(this.strm,this.header),at.dictionary&&(typeof at.dictionary=="string"?at.dictionary=X.string2buf(at.dictionary):te.call(at.dictionary)==="[object ArrayBuffer]"&&(at.dictionary=new Uint8Array(at.dictionary)),at.raw&&(kt=O.inflateSetDictionary(this.strm,at.dictionary))!==rA.Z_OK))throw new Error(DA[kt])}function Ke(ot,at){var kt=new Ce(at);if(kt.push(ot,!0),kt.err)throw kt.msg||DA[kt.err];return kt.result}Ce.prototype.push=function(ot,at){var kt,Vt,Ui,ao,Zi,Ei=this.strm,Po=this.options.chunkSize,As=this.options.dictionary,pi=!1;if(this.ended)return!1;Vt=at===~~at?at:at===!0?rA.Z_FINISH:rA.Z_NO_FLUSH,typeof ot=="string"?Ei.input=X.binstring2buf(ot):te.call(ot)==="[object ArrayBuffer]"?Ei.input=new Uint8Array(ot):Ei.input=ot,Ei.next_in=0,Ei.avail_in=Ei.input.length;do{if(Ei.avail_out===0&&(Ei.output=new z.Buf8(Po),Ei.next_out=0,Ei.avail_out=Po),(kt=O.inflate(Ei,rA.Z_NO_FLUSH))===rA.Z_NEED_DICT&&As&&(kt=O.inflateSetDictionary(this.strm,As)),kt===rA.Z_BUF_ERROR&&pi===!0&&(kt=rA.Z_OK,pi=!1),kt!==rA.Z_STREAM_END&&kt!==rA.Z_OK)return this.onEnd(kt),!(this.ended=!0);Ei.next_out&&(Ei.avail_out!==0&&kt!==rA.Z_STREAM_END&&(Ei.avail_in!==0||Vt!==rA.Z_FINISH&&Vt!==rA.Z_SYNC_FLUSH)||(this.options.to==="string"?(Ui=X.utf8border(Ei.output,Ei.next_out),ao=Ei.next_out-Ui,Zi=X.buf2string(Ei.output,Ui),Ei.next_out=ao,Ei.avail_out=Po-ao,ao&&z.arraySet(Ei.output,Ei.output,Ui,ao,0),this.onData(Zi)):this.onData(z.shrinkBuf(Ei.output,Ei.next_out)))),Ei.avail_in===0&&Ei.avail_out===0&&(pi=!0)}while((0<Ei.avail_in||Ei.avail_out===0)&&kt!==rA.Z_STREAM_END);return kt===rA.Z_STREAM_END&&(Vt=rA.Z_FINISH),Vt===rA.Z_FINISH?(kt=O.inflateEnd(this.strm),this.onEnd(kt),this.ended=!0,kt===rA.Z_OK):Vt!==rA.Z_SYNC_FLUSH||(this.onEnd(rA.Z_OK),!(Ei.avail_out=0))},Ce.prototype.onData=function(ot){this.chunks.push(ot)},Ce.prototype.onEnd=function(ot){ot===rA.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=z.flattenChunks(this.chunks)),this.chunks=[],this.err=ot,this.msg=this.strm.msg},N.Inflate=Ce,N.inflate=Ke,N.inflateRaw=function(ot,at){return(at=at||{}).raw=!0,Ke(ot,at)},N.ungzip=Ke},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")}(vu)),vu.exports),vl=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=zo,this._currentConnectState=Ki,this._beforeSendInterceptors=[]}init(){fn.addTask({id:Pt,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(p){const B=Xi.get("instance"),{sdkAppId:v,testEnv:N,disableIndependentDomain:O,proxyServer:z}=B,X=ua(v);let rA="";return N?rA=pt.TEST[X].DEFAULT:Rs(z)?O?(rA=pt.PRODUCTION[X].DEFAULT,_o=bo.DEFAULT):rA=pt.PRODUCTION[X].INITIAL.replace("*",`${v}`):rA=z,Hn(rA,{isBinary:p})}(this._isBinarySupported),gn.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),gn.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(p,B){var v;const{requestId:N,timeout:O=Ii,canResend:z=!0,shouldRejectOnError:X=!0}=B||{};if(Rs(p))return xt.warn("sendPacket",`${ct}.sendPacket: packet is empty `),null;this._executeBeforeSendInterceptors(p),this._currentConnectState===Mi&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:yr});const rA=JSON.stringify(p);let DA=null;if(N){const{resolve:VA,reject:te,promise:Ce}=wn();DA=Ce,this._pendingRequests.set(N,{resolve:VA,reject:te,timestamp:Date.now(),uplinkData:rA,timeout:O,canResend:z,requestHead:p?.head,shouldRejectOnError:X})}const GA=this._isBinarySupported?Ga(rA).buffer:rA;return(v=this._socketAdapter)===null||v===void 0||v.send(GA),DA}connect(){var p;this._socketAdapter=new ng(this._url),this._connectionEstablishedTime=0,this._addEventListeners(),this._connectionStartTime=Date.now();const B=(p=this._socketAdapter)===null||p===void 0?void 0:p.getId(),v=`${ct}.connect isWorkerEnabled: ${Go} socketID:${B} url:${this._url}`;this._connectionId=B,this._ssoLog({method:"connect",message:v})}disconnect(){var p,B;const v=(p=this._socketAdapter)===null||p===void 0?void 0:p.getId(),N=`${ct}.disconnect socketID:${v}`;this._ssoLog({method:"disconnect",message:N}),this._removeEventListeners(),(B=this._socketAdapter)===null||B===void 0||B.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${ct}.dispose`),fn.removeTask(Pt),fn.removeTask(Ji),gn.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),gn.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=zo,this._url=""}registerBeforeSendInterceptor(p,B){this._beforeSendInterceptors.push(p.bind(B))}_executeBeforeSendInterceptors(p){for(const B of this._beforeSendInterceptors){const{servcmd:v=""}=p?.head;B(v.includes(".")?v.split(".").pop():"")}}_shouldSkipReconnect(){const p=this._currentConnectState===qs&&this._isReconnecting;return!this._socketAdapter||p}reconnect(){return pA(this,void 0,void 0,function*(){const p=`${ct}.reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:p}),!this._shouldSkipReconnect()){this._url=Hs(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(B){this._isReconnecting=!1,this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:xn}),xt.warn(`${ct}.reconnect failed: ${en(B)}`)}}})}_addEventListeners(){var p,B,v,N,O;(p=this._socketAdapter)===null||p===void 0||p.on("connect",this._onConnect,this),(B=this._socketAdapter)===null||B===void 0||B.on("message",this._onMessage,this),(v=this._socketAdapter)===null||v===void 0||v.on("close",this._onClose,this),(N=this._socketAdapter)===null||N===void 0||N.on("error",this._onError,this),(O=this._socketAdapter)===null||O===void 0||O.on("sendFail",this._onSendFail,this)}_removeEventListeners(){var p,B,v,N,O;(p=this._socketAdapter)===null||p===void 0||p.off("connect",this._onConnect,this),(B=this._socketAdapter)===null||B===void 0||B.off("message",this._onMessage,this),(v=this._socketAdapter)===null||v===void 0||v.off("close",this._onClose,this),(N=this._socketAdapter)===null||N===void 0||N.off("error",this._onError,this),(O=this._socketAdapter)===null||O===void 0||O.off("sendFail",this._onSendFail,this)}_onClose(p){const{socketId:B,event:v}=p||{},N=this._connectionEstablishedTime!==0?Date.now()-this._connectionEstablishedTime:0,O=`${ct}.onClose closeSocketID: ${B} currentSocketID: ${this._connectionId} connectionDuration: ${N} code: ${v?.code} reason: ${v?.reason}`;this._ssoLog({method:"onClose",message:O}),B===this._connectionId&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ks}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(p){const{socketId:B,error:v}=p||{},N=`${ct}.onError sourceSocketID: ${B} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(v)}`;this._ssoLog({method:"onError",message:N}),B===this._connectionId&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ml}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(p){const{socketId:B,error:v}=p||{},N=`${ct}.onSendFail sendFailSocketId: ${B} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${en(v)}`;this._ssoLog({method:"onSendFail",message:N}),this._isReconnecting&&(this._isReconnecting=!1)}_onMessage(p){let B,v;this._updateHeartbeatTime();try{B=this._isBinarySupported?this._isCompressedData(p.data)?(X=>{const rA=new Uint8Array(X).slice(4);let DA;try{DA=Ma.inflate(rA,{to:"string"})}catch(GA){console.error("inflate error",GA)}return DA})(p.data):function(X){const rA=new Uint8Array(X);let DA="",GA=0;const{length:VA}=rA;for(;GA<VA;){let te=rA[GA],Ce=0,Ke=0;if(te<=127?(Ce=0,Ke=255&te):te<=223?(Ce=1,Ke=31&te):te<=239?(Ce=2,Ke=15&te):te<=244&&(Ce=3,Ke=7&te),VA-GA-Ce>0)for(let ot=0;ot<Ce;ot+=1)te=rA[GA+ot+1],Ke=Ke<<6|63&te;else Ke=65533,Ce=VA-GA;DA+=String.fromCodePoint(Ke),GA+=Ce+1}return DA}(p.data):p.data,v=JSON.parse(B)}catch(X){const rA=`event.data: ${en(p.data)} error: ${en(X)}`;return void this._ssoLog({method:"jsonParseError",message:rA})}if(!v||!v.head)return;const{seq:N,servcmd:O}=v.head,z=`${N}${O}`;this._pendingRequests.has(z)?this._handleRequestResponse(v):this._handlePushMessage(v)}_handleRequestResponse(p){var B,v;const{seq:N,servcmd:O}=p.head,{int32_error_code:z,str_error_message:X}=p?.body||{},rA=((B=p?.body)===null||B===void 0?void 0:B.ErrorCode)||z,DA=((v=p?.body)===null||v===void 0?void 0:v.ErrorInfo)||X,GA=`${N}${O}`,{resolve:VA,reject:te,timestamp:Ce,headSeq:Ke,requestHead:ot,shouldRejectOnError:at=!0}=this._pendingRequests.get(GA);if(this._pendingRequests.delete(GA),rA&&rA!==0&&at)return gn.emitInnerEvent("error",{errorCode:rA,errorInfo:DA,requestHead:ot}),void te({errorCode:rA,errorInfo:DA});VA(p.body)}_handlePushMessage(p){const{servcmd:B}=p.head,{NeedAck:v,SessionData:N}=p.body;v===1&&this._sendAck(N),gn.emitInnerEvent(B,p)}_checkPendingRequestsAndResend(){var p;xt.debug("_checkPendingRequestsAndResend",` reConnectFlag:${this._isReconnecting} promiseMap.size:${this._pendingRequests.size}`),(p=this._pendingRequests)===null||p===void 0||p.forEach((B,v)=>{var N;const{uplinkData:O,canResend:z,resolve:X,reject:rA,timeout:DA}=B;if(z){this._pendingRequests.set(v,{resolve:X,reject:rA,timestamp:Date.now(),uplinkData:O,timeout:DA,canResend:z});const GA=this._isBinarySupported?Ga(O).buffer:O;(N=this._socketAdapter)===null||N===void 0||N.send(GA)}else this._pendingRequests.delete(v)})}_onConnect(p){const{socketId:B,event:v={}}=p||{};this._connectionId=B,this._connectionEstablishedTime=Date.now();const N=Date.now()-this._connectionStartTime,O=`${ct}.onConnect cost:${N} ms. socketID:${B} res:${JSON.stringify(v)}`;if(this._ssoLog({method:"onConnect",message:O}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const z=`${ct}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:z}),gn.emitInnerEvent(xe.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:Ki,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(p){const B=Ea({servcmd:"openim.ws_msg_push_ack",data:{SessionData:p}});this.sendPacket(B)}_executeScheduledTaskIfReady(){return pA(this,void 0,void 0,function*(){this._clearTimeoutRequest(),this._sendHeartbeatIfReady()})}_canSendHeartbeat(){var p;return((p=this._socketAdapter)===null||p===void 0?void 0:p.isConnected())&&Date.now()>=this._nextHeartbeatAt&&!this._isHeartbeatInProgress}_sendHeartbeat(){return pA(this,void 0,void 0,function*(){var p;const B=Ea({servcmd:"heartbeat.alive",data:{}});try{const v=`${B.head.seq}${B.head.servcmd}`;yield this.sendPacket(B,{requestId:v,timeout:3e3})}catch(v){const N=(p=Xi.get("netWorkMonitor"))===null||p===void 0?void 0:p.isNetworkOnline,O=`${ct}.sendHeartbeat failed. isNetWorkOnline:${N} error: ${en(v)}`;this._ssoLog({method:"sendHeartbeatError",message:O}),this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return pA(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=To?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(p){const B=`${ct}.networkStatusChange ${JSON.stringify(p)}`;this._ssoLog({method:"networkStatusChange",message:B});const{isNetworkOnline:v,networkType:N}=p;v&&N!=="none"?this._handleConnectStateChange({state:Ki,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg}):this._handleConnectStateChange({state:Mi,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Mg})}isPrivateNetWork(){const p=Xi.get("instance")||{};return p.proxyServer&&!p.fileDownloadProxy}_handleConnectStateChange(p){const{state:B,shouldAttemptReconnect:v,shouldEmitEvent:N,reason:O}=p,z=`${ct}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${v} shouldEmitEvent: ${N} reason: ${O}`;this._currentConnectState!==B&&(this._ssoLog({method:"handleConnectStateChange",message:z}),N&&(xt.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${B}`),gn.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:B}}),this._currentConnectState=B,B===Mi&&gn.emitInnerEvent(xe.SOCKET_DISCONNECTED)),v&&(this._resetReconnectDelay(),fn.addTask({id:Ji,intervalMs:this._intendedDelay,callback:this._scheduleReconnectWithBackoff,context:this})))}_handleActivityStatusChange(p){var B,v;const N=(v=(B=this._socketAdapter)===null||B===void 0?void 0:B._ws)===null||v===void 0?void 0:v.readyState,O=`${ct}.activityStatusChange ${JSON.stringify(p)} readyState: ${N}`;xt.debug("activityStatusChange",O),N===3&&this._handleConnectStateChange({state:Mi,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:sr})}_resetReconnectDelay(){var p;xt.debug(`${ct}._resetReconnectDelay`),fn.removeTask(Ji);const B=(p=Xi.get("activityMonitor"))===null||p===void 0?void 0:p.isActive;this._intendedDelay=B?zo:1e3}_scheduleReconnectWithBackoff(){var p;const B=(p=Xi.get("activityMonitor"))===null||p===void 0?void 0:p.isActive;this._intendedDelay=B?Math.min(5e3,Math.max(zo,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const v=new Date().toTimeString().slice(0,8),N=`${ct}.scheduleReconnectWithBackoff timeStr: ${v} intendedDelay: ${this._intendedDelay}`;xt.debug(N),this.reconnect(),fn.updateTaskInterval(Ji,this._intendedDelay)}_ssoLog(p){const{method:B,message:v}=p;xt.info(B,v)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(p){pA(this,void 0,void 0,function*(){const B=p.split("/")[2];if(!B.startsWith("ws"))return;const v=`https://${B}/v3/netcheck/getconninfo?${p.slice(p.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:v,data:{}})}catch(N){xt.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${N.message}`)}})}(this._url),function(p){pA(this,void 0,void 0,function*(){const B=`https://boce-cdn.my-imcloud.com/v3/netcheck/getconninfo?${p.slice(p.indexOf("info?")+5)}&reqtime=${Date.now()}`;try{yield Pi({method:"GET",url:B,data:{}})}catch(v){xt.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${v.message}`)}})}(this._url),this._beforeSendInterceptors=[])}_clearTimeoutRequest(){for(const[p,B]of this._pendingRequests.entries()){const{reject:v,timestamp:N,timeout:O}=B;Date.now()-N>=O&&(this._pendingRequests.delete(p),Date.now()-this._lastDiagnoseAt>=3e4&&this._diagnose(),v({errorCode:Qr,errorInfo:"NETWORK_TIMEOUT",data:{requestId:p}}))}}_updateIsBinarySupported(){var p;if(!((p=Xi.get("instance"))===null||p===void 0)&&p.devMode)return void(this._isBinarySupported=!1);const B=Es();if((gi||ut&&B==="windows"||Vs)&&(this._isBinarySupported=!1),To){const{uniRuntimeVersion:v=""}=io.getSystemInfoSync();(function(N){const O=N.split(".").map(Number),[z=0,X=0,rA=0]=O;return z>2||!(z<2)&&(X>2||!(X<2)&&rA>=6)})(v)||(this._isBinarySupported=!1)}}_isCompressedData(p){const B=new Uint8Array(p);return B[0]===67&&B[1]===79&&B[2]===77&&B[3]===80}};const De={init:function(p){Xi.set("instance",p),vl.init()},destroy:function(){vl.dispose(),Xi.clear(),fn.dispose()},notificationCenter:gn,channel:vl,store:Xi,ssoLog:xt,utils:yg,common:vA,constants:Dt},ye=p=>typeof p=="function";function vg(p,B,v){const N=v||[];if(!p||!B)return!1;const O=Object.keys(p).filter(X=>!N.includes(X)),z=Object.keys(B).filter(X=>!N.includes(X));return O.length===z.length&&O.every(X=>!!B.hasOwnProperty(X)&&(typeof p[X]=="object"&&p[X]!==null?vg(p[X],B[X],v):p[X]===B[X]))}var rg;(function(p){p.SDK_READY="sdkStateReady",p.SDK_NOT_READY="sdkStateNotReady",p.SDK_DESTROY="sdkDestroy",p.MESSAGE_RECEIVED="onMessageReceived",p.ROOM_CUSTOM_DATA_RECEIVED="onRoomCustomDataReceived",p.MESSAGE_MODIFIED="onMessageModified",p.MESSAGE_REVOKED="onMessageRevoked",p.MESSAGE_READ_BY_PEER="onMessageReadByPeer",p.MESSAGE_READ_RECEIPT_RECEIVED="onMessageReadReceiptReceived",p.MESSAGE_EXTENSIONS_UPDATED="onMessageExtensionsUpdated",p.MESSAGE_EXTENSIONS_DELETED="onMessageExtensionsDeleted",p.MESSAGE_REACTIONS_UPDATED="onMessageReactionsUpdated",p.CONVERSATION_LIST_UPDATED="onConversationListUpdated",p.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED="onTotalUnreadMessageCountUpdated",p.CONVERSATION_GROUP_LIST_UPDATED="onConversationGroupListUpdated",p.CONVERSATION_IN_GROUP_UPDATED="onConversationInGroupUpdated",p.GROUP_LIST_UPDATED="onGroupListUpdated",p.GROUP_ATTRIBUTES_UPDATED="groupAttributesUpdated",p.GROUP_COUNTER_UPDATED="onGroupCounterUpdated",p.TOPIC_CREATED="onTopicCreated",p.TOPIC_DELETED="onTopicDeleted",p.TOPIC_UPDATED="onTopicUpdated",p.PROFILE_UPDATED="onProfileUpdated",p.USER_STATUS_UPDATED="onUserStatusUpdated",p.BLACKLIST_UPDATED="blacklistUpdated",p.FRIEND_LIST_UPDATED="onFriendListUpdated",p.FRIEND_GROUP_LIST_UPDATED="onFriendGroupListUpdated",p.FRIEND_APPLICATION_LIST_UPDATED="onFriendApplicationListUpdated",p.MY_FOLLOWERS_LIST_UPDATED="onMyFollowersListUpdated",p.MY_FOLLOWING_LIST_UPDATED="onMyFollowingListUpdated",p.MUTUAL_FOLLOWERS_LIST_UPDATED="onMutualFollowersListUpdated",p.KICKED_OUT="kickedOut",p.ERROR="error",p.NET_STATE_CHANGE="netStateChange",p.ALL_RECEIVE_MESSAGE_OPT_UPDATED="onAllReceiveMessageOptUpdated",p.SERVER_CONFIG_UPDATED="onServerConfigUpdated",p.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",p.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived",p.GROUP_ONLINE_MEMBER_COUNT_CHANGED="onGroupOnlineMemberCountChanged",p.RICH_STATUS_CHANGED="onRichStatusChanged"})(rg||(rg={}));var Rg,Dn=rg;(function(p){p.LOGOUT="logout",p.DESTROY="destroy",p.CLOUD_CONFIG_UPDATE="cloud_config_update",p.PROFILE_UPDATE="profile_updated",p.ERROR="error",p.RECONNECTED="reconnected",p.FORCE_OFFLINE="im_open_status.stat_forceoffline",p.COMMERCIAL_CONFIG_PUSH="im_sdk_config_mgr.push_imsdk_purchase_bitsv2",p.OVERLOAD_PUSH="OverLoadPush.notify2",p.NEW_MESSAGE="new_message",p.MESSAGE_PUSH="im_open_push.msg_push",p.MESSAGE_DELETED="message_deleted",p.MESSAGE_REVOKED="message_revoked",p.MESSAGE_MODIFIED="message_modified",p.SOCKET_DISCONNECTED="socket_disconnected",p.CONVERSATION_UPDATED="conversation_updated",p.TOPIC_MESSAGE_DELETED="topic_message_deleted",p.TOPIC_MESSAGE_REVOKED="topic_message_revoked",p.TOPIC_MESSAGE_MODIFIED="topic_message_modified",p.TOPIC_NEW_MESSAGE="topic_new_message",p.QUALITY_STAT="quality_stat",p.SYNC_CONVERSATION_LIST="sync_conversation_list",p.HISTORY_MESSAGE_FETCHED="history_message_fetched"})(Rg||(Rg={}));var Dr,ui=Rg;(function(p){p.NEW_INVITATION_RECEIVED="newInvitationReceived",p.INVITEE_ACCEPTED="ts_invitee_accepted",p.INVITEE_REJECTED="ts_invitee_rejected",p.INVITATION_CANCELLED="ts_invitation_cancelled",p.INVITATION_TIMEOUT="ts_invitation_timeout",p.INVITATION_MODIFIED="ts_invitation_modified"})(Dr||(Dr={}));var so=Dr;const qc=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),zg={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 wg;(function(p){p.UNSENT="unSend",p.SUCCESS="success",p.FAIL="fail"})(wg||(wg={}));const Yr={modify:ui.MESSAGE_MODIFIED,delete:ui.MESSAGE_DELETED,revoke:ui.MESSAGE_REVOKED};var yc;(function(p){p[p.FORWARD=0]="FORWARD",p[p.BACKWARD=1]="BACKWARD"})(yc||(yc={}));const Kc=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},zg),{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:wg,Direction:yc}),ag={[Yr.modify]:ui.TOPIC_MESSAGE_MODIFIED,[Yr.delete]:ui.TOPIC_MESSAGE_DELETED,[Yr.revoke]:ui.TOPIC_MESSAGE_REVOKED},Ru={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"},SE=Object.assign({},Ru),_g={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},ka=Object.assign(Object.assign(Object.assign(Object.assign({},_g),{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"}),Dc=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"}),ME={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},La={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},sa={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},Tg=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ME),{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:La,GROUP_TIPS_OPERATION_TYPE:sa}),gI={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},hs=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},qc),Kc),SE),ka),Dc),Tg),gI),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected",NET_STATE_CONNECTED:"connected"}),Lo={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},da={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3",NODE:"4"},nr={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"},Yt={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"},qt={[nr.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:Yt.USER_STATUS_UPDATE},{stepId:Yt.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:Yt.UNREAD_MESSAGE_SYNC,dependency:Yt.C2C_HISTORY_MESSAGE_RECOVER},{stepId:Yt.CONVERSATION_RECOVER},{stepId:Yt.HISTORY_MESSAGE_RECOVER,dependency:Yt.CONVERSATION_RECOVER},{stepId:Yt.BLACKLIST_RECOVER},{stepId:Yt.FRIEND_RECOVER},{stepId:Yt.FRIEND_APPLICATION_LIST_RECOVER},{stepId:Yt.GROUP_REVOKED_NOTICE_RECOVER,dependency:Yt.HISTORY_MESSAGE_RECOVER},{stepId:Yt.GROUP_TIPS_RECOVER,dependency:Yt.HISTORY_MESSAGE_RECOVER},{stepId:Yt.TOPIC_REQUEST_INFO_RESET},{stepId:Yt.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:Yt.UNREAD_MESSAGE_SYNC},{stepId:Yt.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:Yt.UNREAD_MESSAGE_SYNC},{stepId:Yt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Yt.UNREAD_MESSAGE_SYNC,Yt.CONVERSATION_RECOVER]},{stepId:Yt.EMIT_C2C_MESSAGE_EVENT,dependency:[Yt.UNREAD_MESSAGE_SYNC,Yt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:Yt.C2C_HISTORY_MESSAGE_RECOVER,dependency:Yt.CONVERSATION_RECOVER},{stepId:Yt.STREAM_MESSAGE_RECOVER}],[nr.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:Yt.COMMERCIAL_CONFIG_UPDATE},{stepId:Yt.CLOUD_CONFIG_SYNC},{stepId:Yt.USER_PROFILE_SYNC},{stepId:Yt.UNREAD_MESSAGE_SYNC},{stepId:Yt.FRIEND_AND_BLACKLIST_SYNC},{stepId:Yt.GROUP_LIST_SYNC},{stepId:Yt.CONVERSATION_LIST_SYNC},{stepId:Yt.SIGNALING_MESSAGE_RECOVER,dependency:Yt.UNREAD_MESSAGE_SYNC},{stepId:Yt.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[Yt.UNREAD_MESSAGE_SYNC]},{stepId:Yt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Yt.UNREAD_MESSAGE_SYNC,Yt.CONVERSATION_LIST_SYNC]},{stepId:Yt.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[Yt.GROUP_LIST_SYNC,Yt.CONVERSATION_LIST_SYNC]},{stepId:Yt.CONVERSATION_GROUP_LIST_SYNC},{stepId:Yt.CONVERSATION_GROUP_UPDATE,dependency:[Yt.CONVERSATION_LIST_SYNC,Yt.CONVERSATION_GROUP_LIST_SYNC]},{stepId:Yt.QUALITY_REPORT}],[nr.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:Yt.HANDLE_C2C_NEW_MESSAGE},{stepId:Yt.UNREAD_MESSAGE_SYNC},{stepId:Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Yt.HANDLE_C2C_NEW_MESSAGE},{stepId:Yt.EMIT_C2C_MESSAGE_EVENT,dependency:[Yt.HANDLE_C2C_NEW_MESSAGE,Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:Yt.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Yt.UNREAD_MESSAGE_SYNC]}],[nr.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:Yt.HANDLE_GROUP_NEW_MESSAGE},{stepId:Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Yt.HANDLE_GROUP_NEW_MESSAGE},{stepId:Yt.UPDATE_GROUP_NEXT_SEQUENCE,dependency:Yt.HANDLE_GROUP_NEW_MESSAGE},{stepId:Yt.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:Yt.HANDLE_GROUP_NEW_MESSAGE},{stepId:Yt.EMIT_GROUP_MESSAGE_EVENT,dependency:[Yt.HANDLE_GROUP_NEW_MESSAGE,Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[nr.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:Yt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Yt.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:Yt.EMIT_GROUP_TIPS_EVENT,dependency:[Yt.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,Yt.HANDLE_GROUP_TIPS_NOTIFICATION],skipIfDependencyMissing:!1}]},Ng={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},cI={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},rr=["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 HI=Object.freeze({__proto__:null,ERROR_CODE:Lo,InnerEvent:ui,NEED_LOG_API:rr,OuterConstant:hs,OuterEvent:Dn,PUSH:gI,QUALITY_METRICS:Ng,SDK_EDITION:da,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:cI,SignalingEvent:so,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:qt,WORKFLOW_NAME:nr,WORKFLOW_STEP:Yt}),za,na,un;(function(p){p[p.USER_INITIATED=0]="USER_INITIATED",p[p.KICKED_OUT=1]="KICKED_OUT"})(za||(za={})),function(p){p[p.multipleAccount=1]="multipleAccount",p[p.multipleDevice=2]="multipleDevice",p[p.restApi=3]="restApi"}(na||(na={})),function(p){p[p.multipleDevice=3002]="multipleDevice",p[p.multipleAccount=3003]="multipleAccount",p[p.usersigExpired=70001]="usersigExpired",p[p.restApi=20002]="restApi"}(un||(un={}));const Sn={[na.multipleAccount]:"multipleAccount",[na.multipleDevice]:"multipleDevice",[na.restApi]:"REST_API_Kick",[un.multipleAccount]:"multipleAccount",[un.multipleDevice]:"multipleDevice",[un.restApi]:"REST_API_Kick",[un.usersigExpired]:"userSigExpired"},wu="login_online_presence_task",{ERROR:Gg,DESTROY:Ua,FORCE_OFFLINE:jc}=ui,{KICKED_OUT_MULT_ACCOUNT:qI,KICKED_OUT_MULT_DEVICE:vE,KICKED_OUT_REST_API:lI,ACCOUNT_A2KEY_EXPIRED:_u,MSG_A2KEY_EXPIRED:Rl}=Lo;class Sc{init(){const{notificationCenter:B}=De;B.subscribeInnerEvent(jc,this._handleForceOfflineFromServerPush,this),B.subscribeInnerEvent(Gg,Rl,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),B.subscribeInnerEvent(Gg,_u,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),B.subscribeInnerEvent(Gg,qI,this._handleForceOfflineFromResponse,this),B.subscribeInnerEvent(Gg,vE,this._handleForceOfflineFromResponse,this),B.subscribeInnerEvent(Gg,lI,this._handleForceOfflineFromResponse,this),B.subscribeInnerEvent(Ua,this._dispose,this)}_handleForceOfflineFromServerPush(B){var v;if(((v=De.store.get("login"))===null||v===void 0?void 0:v.isLoggedIn)===!0){const{EventArray:N=[]}=B?.body||{};this._extractKickedOutMessages(N).forEach(O=>{const{KickoutMsgNotify:{KickType:z,NewInstInfo:X,Instid:rA}}=O;this._isCurrentInstanceKickedOut(rA)&&this._processKickedOutReasonInfo({kickedOutReasonCode:z,newInstanceInfo:X})})}}_extractKickedOutMessages(B){return B.reduce((v,N)=>[...v,...N.C2cNotifyMsgArray||[]],[]).filter(v=>{var N;return this._isKickedOut((N=v?.KickoutMsgNotify)===null||N===void 0?void 0:N.KickType)})}_handleForceOfflineFromResponse(B){const{errorCode:v}=B;this._processKickedOutReasonInfo({kickedOutReasonCode:v})}_processKickedOutReasonInfo(B){return pA(this,void 0,void 0,function*(){const{kickedOutReasonCode:v}=B,{ssoLog:N,utils:{safeStringify:O}}=De;try{this._logKickedOutEvent(B),this._shouldLogoutAfterKickedOut(v)?yield De.login.loginAction.logout(za.KICKED_OUT):De.login.loginAction.handleLogoutCompleted()}catch(z){N.debug("_processKickedOutReasonInfo",` fail ${O(z)}`)}finally{De.notificationCenter.emitOuterEvent(Dn.KICKED_OUT,{data:{type:Sn[v]},name:Dn.KICKED_OUT})}})}_logKickedOutEvent(B){const{kickedOutReasonCode:v,newInstanceInfo:N={}}=B,O=`type:${Sn[v]} newInstanceInfo: ${JSON.stringify(N)}`;De.ssoLog.warn("kickedOut",O)}_isKickedOut(B){return[na.multipleAccount,na.multipleDevice,na.restApi].includes(B)}_isChatLoginEvent(B){const{requestHead:v}=B||{};return v?.idtype!==1}_shouldLogoutAfterKickedOut(B){return![un.usersigExpired,na.restApi].includes(B)}_isCurrentInstanceKickedOut(B){const{isLoggedIn:v,statusInstanceId:N}=De.store.get("login")||{};return v===!0&&B===N}_dispose(){const{notificationCenter:B}=De;B.unSubscribeInnerEvent(jc,this._handleForceOfflineFromServerPush,this),B.unSubscribeInnerEvent(Gg,_u,this._handleForceOfflineFromResponse,this),B.unSubscribeInnerEvent(Gg,Rl,this._handleForceOfflineFromResponse,this),B.unSubscribeInnerEvent(Gg,qI,this._handleForceOfflineFromResponse,this),B.unSubscribeInnerEvent(Gg,vE,this._handleForceOfflineFromResponse,this),B.unSubscribeInnerEvent(Gg,lI,this._handleForceOfflineFromResponse,this),B.unSubscribeInnerEvent(Ua,this._dispose,this)}}function Tu(p){return pA(this,void 0,void 0,function*(){const B="im_open_status.wslogin",v=De.common.generateProtocolData({servcmd:B,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:p}}),N=`${v.head.seq}${B}`,O=yield De.channel.sendPacket(v,{timeout:9e4,requestId:N});if(O){const{HelloInterval:z,InstId:X,TinyId:rA,TimeStamp:DA,CustomStatus:GA,PurchaseBits:VA,A2Key:te,RichMsgAuthKey:Ce,ErrorCode:Ke,ErrorInfo:ot,ActionStatus:at}=O;return{helloInterval:z,instanceID:X,tinyID:rA,timeStamp:DA,customStatus:GA,purchaseBits:VA,a2Key:te,authKey:Ce,errorCode:Ke,errorInfo:ot,actionStatus:at}}})}function Nu(){const{store:p}=De;return ua(p.get("instance").sdkAppId)!==gt.CHINA}function wl(p){var B;try{const v=Xi.getStorage("errorMessage");if(!p||!v)return"";const N=((B=JSON.parse(v))===null||B===void 0?void 0:B.errorMessage)||{},{code:O,replacement1:z="",replacement2:X=""}=p;if(!O)return"";const rA=Nu()?`${O}_en`:`${O}_cn`;let DA=N[N[rA]?rA:O]||"";return DA&&(z&&(DA=DA.replace("$replacement1",z)),X&&(DA=DA.replace("$replacement2",X))),DA}catch(v){return console.warn("Error parsing stored error messages:",v),""}}class rs extends Error{constructor(B={}){B.code=B.code||B.errorCode;let{functionName:v="Unknown",code:N,message:O="",data:z="",moreMessage:X="",errorMessage:rA=""}=B;rA=(N?wl(B):"")||rA||O;let DA=N?`${v} failed. error: {"message": ${rA}, "code": ${N}}`:`${v} failed. error: {"message": ${rA}}`;DA=`${DA} ${X}`,super(),this.code=N,this.errorCode=N,this.errorMessage=rA,this.message=DA,this.data=z}}function gs(p,B){var v;if(p&&((v=De.store.get("login"))===null||v===void 0?void 0:v.isLoggedIn)!==!0)throw new rs({code:Lo.USER_NOT_LOGGED_IN,functionName:B})}function ud(p,B,v){if(Array.isArray(p))for(let N=0;N<p.length;N++)II.call(this,Object.assign(Object.assign({},p[N]),{value:B[N],name:v}));else for(const N in p)II.call(this,Object.assign(Object.assign({},p[N]),{value:B[0][N],name:v,key:N}))}function II({required:p,rules:B,range:v,value:N,allowEmpty:O,name:z,key:X,customValidator:rA}){if(N===void 0){if(p)throw new rs({functionName:z,message:`[${z}] Missing required params: "${X}"`});return}let DA="";if(!B.some(GA=>{return GA===(VA=N,Object.prototype.toString.call(VA).match(/^\[object (.*)\]$/)[1].toLowerCase());var VA})){for(let VA=0;VA<B.length;VA++){let te=B[VA];te=te.replace(te[0],te[0].toUpperCase()),DA+=`${te}/`}DA=DA.substring(0,DA.length-1);const GA=`[${X}] must be type of ${DA}, received type: ${function(VA){return Reflect.apply(Object.prototype.toString,VA,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}(N)}.`;throw new rs({functionName:z,message:GA})}if(O===!1){if(Array.isArray(N)&&(N.length===0||typeof N[0]=="string"&&N[0].trim()===""))throw new rs({functionName:z,message:`${X} can not be empty.`});if(typeof N=="string"&&N.trim()==="")throw new rs({functionName:z,message:`${X} can not be empty.`})}if(rA&&typeof rA=="function"){const GA=rA(N);if(GA!==!0)throw new rs({functionName:z,message:`[${X}] custom validation failed: ${GA||"Invalid value"}`})}}const uI=[],RE={},Ed={};function _l(p,B){gs(RE[p],p),ud(Ed[p],B,p),function(v){uI.forEach(N=>{const{interceptor:O,context:z}=N;O.apply(z,[v])})}(p)}function Sr(p,B){uI.push({interceptor:p,context:B})}function Mc(p){const{params:B,auth:v}=p;B&&typeof B=="object"&&Object.assign(Ed,B),v&&typeof v=="object"&&Object.assign(RE,v)}function Wc(p){return De.store.get("commercialConfig").get(p)}class tn{constructor(){this._handlers=new Map,this._activeWorkflows=new Map,this._stepStartTimes=new Map,this._logHandlers={start:(B,v)=>{const N=Date.now();v?(this._stepStartTimes.set(`${B}-${v}`,N),De.ssoLog.debug("_executeWorkflowStep",`[Workflow ${B}] Step ${v} started at ${new Date(N).toISOString()}`)):(this._workflowStartTimes.set(B,N),De.ssoLog.debug("_executeWorkflowStep",`[Workflow ${B}] started at ${new Date(N).toISOString()}`))},success:(B,v)=>{const N=Date.now();if(v){const O=this._stepStartTimes.get(`${B}-${v}`),z=O?N-O:0;this._stepStartTimes.delete(`${B}-${v}`),De.ssoLog.debug("_executeWorkflowStep",`[Workflow ${B}] Step ${v} completed successfully at ${new Date(N).toISOString()} (${z}ms)`)}else{const O=this._workflowStartTimes.get(B),z=O?N-O:0;this._workflowStartTimes.delete(B),De.ssoLog.debug("_executeWorkflowStep",`[Workflow ${B}] completed successfully at ${new Date(N).toISOString()} (${z}ms)`)}},error:(B,v,N)=>{const{ssoLog:O,utils:{safeStringify:z}}=De,X=Date.now();if(v){const rA=this._stepStartTimes.get(`${B}-${v}`),DA=rA?X-rA:0;this._stepStartTimes.delete(`${B}-${v}`),O.error("_executeWorkflowStep",`[Workflow ${B}] Step ${v} failed at ${new Date(X).toISOString()} (${DA}ms) ${z(N)}`,{error:N})}else{const rA=this._workflowStartTimes.get(B),DA=rA?X-rA:0;this._workflowStartTimes.delete(B),O.error("_executeWorkflowStep",`[Workflow ${B}] failed at ${new Date(X).toISOString()} (${DA}ms) ${z(N)}`,{error:N})}}}}static getInstance(){return tn._instance||(tn._instance=new tn),tn._instance}static setInstance(B){tn._instance=B}init(){this._initializeWorkflows()}registerWorkflowStep(B,v,N,O){if(!this._handlers.has(B))return void De.ssoLog.debug("registerWorkflowStep",`Workflow '${B}' not defined in core`);if(!qt[B].find(X=>X.stepId===v))return void De.ssoLog.debug("registerWorkflowStep",`Step '${v}' not defined in workflow '${B}'`);const z=this._handlers.get(B);z.has(v)||z.set(v,O?N.bind(O):N)}executeWorkflow(B,v){return pA(this,void 0,void 0,function*(){if(!this._validateWorkflow(B))return;De.ssoLog.debug("executeWorkflow",`[Workflow ${B}] Started execution at ${new Date().toISOString()}`);const N=qt[B],O={},z={cancelled:!1};this._activeWorkflows.set(B,{cancelToken:z});try{const X=new Map;N.forEach(DA=>{X.set(DA.stepId,DA)});const rA={workflowName:B,pendingSteps:new Set(N.map(DA=>DA.stepId)),completedSteps:new Set,runningSteps:new Set,stepMap:X,stepResults:O,data:v,cancelToken:z};yield new Promise((DA,GA)=>{const VA=()=>{if(z.cancelled)return void DA();this._getExecutableSteps({pendingSteps:rA.pendingSteps,completedSteps:rA.completedSteps,stepMap:rA.stepMap,workflowName:B}).filter(te=>!rA.runningSteps.has(te)).forEach(te=>{rA.completedSteps.has(te)||rA.runningSteps.has(te)||this._executeWorkflowStep(te,rA,{onComplete:()=>{if(rA.pendingSteps.size===0)return void DA();this._getExecutableSteps({pendingSteps:rA.pendingSteps,completedSteps:rA.completedSteps,stepMap:rA.stepMap,workflowName:B}).filter(Ce=>!rA.runningSteps.has(Ce)).length===0&&rA.runningSteps.size===0&&(De.ssoLog.debug("executeWorkflow",`Workflow ${B} completed with some steps skipped due to dependency failures`),DA())},onError:GA,onStepComplete:VA})})};VA()}),De.ssoLog.debug("executeWorkflow",`[Workflow ${B}] Completed execution at ${new Date().toISOString()}`)}catch(X){De.ssoLog.error("executeWorkflow",`[Workflow ${B}] Failed execution at ${new Date().toISOString()}`,{error:X})}finally{this._activeWorkflows.delete(B)}})}_executeWorkflowStep(B,v,N){return pA(this,void 0,void 0,function*(){const{workflowName:O,runningSteps:z,stepMap:X,stepResults:rA,data:DA}=v;z.add(B),this._logWorkflowExecution(O,B,"start");try{const GA=X.get(B);let VA=null;GA?.dependency&&(l(GA.dependency)?VA=rA[GA.dependency]:Array.isArray(GA.dependency)&&(VA={},GA.dependency.forEach(Ce=>{VA[Ce]=rA[Ce]})));const te=this._handlers.get(O).get(B);if(te){const Ce=yield Promise.resolve(te({data:DA,result:VA}));rA[B]=Ce,this._logWorkflowExecution(O,B,"success")}v.completedSteps.add(B)}catch(GA){const VA=`[Workflow].${O}.${B}`,{errorCode:te,errorInfo:Ce=`${VA} failed`}=GA||{},Ke=new rs({functionName:VA,code:te,message:Ce});De.ssoLog.error(VA,Ce,{error:Ke}),this._logWorkflowExecution(O,B,"error",GA),N.onError(GA)}finally{z.delete(B),v.pendingSteps.delete(B),N.onStepComplete(),N.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(qt).forEach(B=>{this._handlers.has(B)||this._handlers.set(B,new Map)})}_cancelWorkFlow(B){const v=this._activeWorkflows.get(B);if(!v)return;const{cancelToken:N}=v;N.cancelled=!0,this._activeWorkflows.delete(B)}_cancelAllWorkflows(){Object.keys(qt).forEach(B=>{this._cancelWorkFlow(B)})}_validateWorkflow(B){return qt[B]?!!this._handlers.get(B):!1}_getExecutableSteps(B){const{pendingSteps:v,completedSteps:N,stepMap:O,workflowName:z}=B;return Array.from(v).filter(X=>{const rA=O.get(X)||{},{dependency:DA,skipIfDependencyMissing:GA=!0}=rA;if(!DA)return!0;if(l(DA))return this._isStepRegistered({workflowName:z,stepId:DA})?N.has(DA):!GA;if(h(DA)){if(DA.filter(VA=>!this._isStepRegistered({workflowName:z,stepId:VA})).length>0&&GA)return!1;for(const VA of DA)if(!N.has(VA))return!1;return!0}return!1})}_isStepRegistered(B){var v;const{workflowName:N,stepId:O}=B;return(v=this._handlers.get(N))===null||v===void 0?void 0:v.has(O)}_logWorkflowExecution(B,v,N,O){this._logHandlers[N](B,v)}}const ws=new Map,Ca=({type:p,groupID:B})=>p===hs.GRP_COMMUNITY||`${B}`.startsWith(La.COMMUNITY)&&!`${B}`.includes(La.TOPIC),Xr=(p="")=>{const B=p.startsWith("GROUP")?p.replace("GROUP",""):p;return B.startsWith(La.COMMUNITY)&&`${B}`.includes(La.TOPIC)},zc="openim",dd="million_group_open_http_svc";function Zg(p){return pA(this,void 0,void 0,function*(){const{servcmd:B,data:v}=function(z){const{data:X}=z;return gg(X)||wE(X)}(p)?function(z){let{servcmd:X,data:rA}=z;return wE(rA)?function(DA){const{servcmd:GA,data:VA}=DA;let{GroupId:te=""}=VA;const Ce=te;return[te]=Ce.split(La.TOPIC),{servcmd:Xg(GA),data:Object.assign(Object.assign({},VA),{GroupId:te,TopicId:Ce})}}(z):(gg(rA)&&(X=Xg(X)),{servcmd:X,data:rA})}(p):p,N=De.common.generateProtocolData({servcmd:B,data:v}),O=`${N.head.seq}${B}`;return De.channel.sendPacket(N,{requestId:O,timeout:p.timeout})})}function gg(p){const{Type:B,GroupId:v,GroupIdList:N=[]}=p,O=v||N[0]||"";return Ca({type:B,groupID:O})}function wE(p){const{GroupId:B=""}=p;return Xr(B)}function Xg(p){if(p.includes(zc))return p;const B=p.split(".")[1];return`${dd}.${B}`}function qn(){var p;return(p=De.store.get("login"))===null||p===void 0?void 0:p.userId}const Ar=p=>h(p)||f(p),Fa=(p,B,v,N)=>{if(!Ar(p)||!Ar(B))return 0;let O=0;const z=Object.keys(B);let X;for(let rA=0,DA=z.length;rA<DA;rA++)if(X=z[rA],!(r(B[X])||v&&v.includes(X)))if(Ar(p[X])&&Ar(B[X]))O+=Fa(p[X],B[X],v,N);else{if(N&&N.includes(B[X]))continue;p[X]!==B[X]&&(p[X]=B[X],O+=1)}return O},Cd={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 lC(p){var B;const v=Nu()?"en":"zh";return((B=Cd[v])===null||B===void 0?void 0:B[p])||p}const Gu={[hs.MSG_IMAGE]:"MSG_IMAGE",[hs.MSG_LOCATION]:"MSG_LOCATION",[hs.MSG_AUDIO]:"MSG_AUDIO",[hs.MSG_VIDEO]:"MSG_VIDEO",[hs.MSG_FILE]:"MSG_FILE",[hs.MSG_CUSTOM]:"MSG_CUSTOM",[hs.MSG_GRP_TIP]:"MSG_GRP_TIP",[hs.MSG_GRP_SYS_NOTICE]:"MSG_GRP_SYS_NOTICE",[hs.MSG_FACE]:"MSG_FACE",[hs.MSG_MERGER]:"MSG_MERGER",[hs.MSG_STREAM]:"MSG_STREAM"},KI=(p,B)=>{if(r(B))return"";if(p===hs.MSG_TEXT)return B.text||"";const v=Gu[p];return v?lC(v):""},Zc=[{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}],Xc="im_sdk_config_mgr.fetch_config",jI="im_sdk_config_mgr.push_configv2",EI="cloud-config",$c=2996,Al=new class{init(p){this.core=p}};function va(p){return pA(this,void 0,void 0,function*(){const{sdkAppId:B}=Al.core.store.get("instance")||{},v=Al.core.helper.generateProtocolData({servcmd:Xc,data:{uint32_sdkappid:B,uint64_version:p}}),N=`${v.head.seq}${Xc}`;return Al.core.channel.sendPacket(v,{requestId:N})})}var bg=new class{constructor(){this._core=null,this._expirationTime=0,this._version=0,this._isFetching=!1,this._cmdFrequencyLimitMap=new Map,this._methodCallFrequencyMap=new Map}install(p){this._core=p;const{notificationCenter:B,InnerEvent:v,helper:N,constants:{WORKFLOW_NAME:O,WORKFLOW_STEP:z},channel:X}=p;B.subscribeInnerEvent(jI,this._handlePushedConfig,this),N.registerWorkflowStep(O.SYNC_SERVER_INFO_AFTER_LOGIN,z.CLOUD_CONFIG_SYNC,this._handleLoginSuccess,this),B.subscribeInnerEvent(v.LOGOUT,this._reset,this),B.subscribeInnerEvent(v.DESTROY,this._dispose,this),N.registerExperimentalAPI("getServerConfig",this),this._updateCmdFreqLimitMap(Zc),X.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(p){return pA(this,void 0,void 0,function*(){var B;const v={code:0,data:""};return p&&(v.data=((B=this._core.store.get("cloudConfig"))===null||B===void 0?void 0:B[p])||""),v})}checkMethodCallOverLimit(p){if(!this._cmdFrequencyLimitMap.has(p))return;if(!this._methodCallFrequencyMap.has(p))return void this._methodCallFrequencyMap.set(p,{startTime:Date.now(),methodCallCounter:1});const{count:B,interval:v}=this._cmdFrequencyLimitMap.get(p);let{startTime:N,methodCallCounter:O}=this._methodCallFrequencyMap.get(p);if(Date.now()-N>1e3*v)this._methodCallFrequencyMap.set(p,{startTime:Date.now(),methodCallCounter:1});else if(O+=1,this._methodCallFrequencyMap.set(p,{startTime:N,methodCallCounter:O}),O>B)throw new this._core.helper.ChatError({code:$c,replacement1:p})}_handlePushedConfig(p){return pA(this,void 0,void 0,function*(){const{ssoLog:B,utils:{safeStringify:v}}=this._core;B.info("_handlePushedConfig",v(p)),yield this._updateCloudConfig(p)})}_handleLoginSuccess(){return pA(this,void 0,void 0,function*(){const{ssoLog:p,utils:{safeStringify:B}}=this._core;try{if(this._canFetch()){const v=yield va(this._version);p.info("_fetchCloudConfigIfLogin",B(v)),yield this._updateCloudConfig(v)}this._core.helper.taskScheduler.addTask({id:EI,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(v){p.debug("_fetchCloudConfigIfLogin",B(v))}})}_fetchCloudConfigIfReady(){return pA(this,void 0,void 0,function*(){const{ssoLog:p,utils:{safeStringify:B}}=this._core;if(this._canFetch())try{const v=yield va(this._version);p.info("_fetchCloudConfigIfReady",B(v)),yield this._updateCloudConfig(v)}catch(v){p.error("_fetchCloudConfigIfReady",B(v))}})}_updateCloudConfig(p){return pA(this,void 0,void 0,function*(){const B=this._parseCloudConfig(p);B&&(this._core.store.set("cloudConfig",B),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,B),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config:B}}))})}_canFetch(){const{isLoggedIn:p}=this._core.store.get("login")||{};return p&&!this._isFetching&&Date.now()>=this._expirationTime}_parseCloudConfig(p){const{int32_error_code:B,str_error_message:v,str_json_config:N,uint32_expired_time:O,uint32_sdkappid:z,uint64_version:X}=p;let rA=null;if(B===0){if(this._version!==X)try{rA=JSON.parse(N),this._version=X}catch{}this._expirationTime=Date.now()+1e3*O}else this._expirationTime=B===void 0?Date.now()+36e5:Date.now()+12e4;return rA}_parseCmdFreqLimit(){return pA(this,void 0,void 0,function*(){var p;let B=(p=yield this.getServerConfig("cmd_frequency_limit"))===null||p===void 0?void 0:p.data;const{isEmpty:v}=this._core.utils;if(!v(B))try{B=JSON.parse(B),this._updateCmdFreqLimitMap(B)}catch(N){console.warn(N)}})}_updateCmdFreqLimitMap(p){p.forEach(B=>{this._cmdFrequencyLimitMap.set(B.cmd,{interval:B.interval,count:B.count})})}_reset(){this._core.helper.taskScheduler.removeTask(EI),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Zc),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:p,InnerEvent:B}=this._core;p.unSubscribeInnerEvent(jI,this._handlePushedConfig,this),p.unSubscribeInnerEvent(B.LOGOUT,this._reset,this),p.unSubscribeInnerEvent(B.DESTROY,this._dispose,this),this._reset()}};class ys{constructor(B=0,v=0){this.high=B,this.low=v}equal(B){return B!==null&&this.low===B.low&&this.high===B.high}toString(){const B=Number(this.high).toString(16);let v=Number(this.low).toString(16);if(v.length<8){let N=8-v.length;for(;N;)v=`0${v}`,N--}return B+v}}const Kn={SEARCH_GRP_SNS:new ys(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new ys(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new ys(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new ys(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new ys(0,Math.pow(2,6)).toString(),USER_STATUS:new ys(0,Math.pow(2,7)).toString(),CONV_MARK:new ys(0,Math.pow(2,9)).toString(),CONV_GROUP:new ys(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new ys(0,Math.pow(2,11)).toString(),MSG_EXT:new ys(0,Math.pow(2,13)).toString(),GRP_COUNTER:new ys(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new ys(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new ys(Math.pow(2,7)).toString(),PLUGIN_CS:new ys(Math.pow(2,8)).toString(),PLUGIN_PUSH:new ys(Math.pow(2,9)).toString(),PLUGIN_BOT:new ys(Math.pow(2,10)).toString(),MSG_REACTION:new ys(Math.pow(2,16)).toString(),FOLLOW:new ys(Math.pow(2,20)).toString()},vc="CommercialConfig",WI="commercial-config";var zI=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}install(p){this._core=p;const{helper:B,notificationCenter:v,constants:{WORKFLOW_NAME:N,WORKFLOW_STEP:O,InnerEvent:z}}=p;v.subscribeInnerEvent(z.COMMERCIAL_CONFIG_PUSH,this._handlePushedConfig,this),v.subscribeInnerEvent(z.LOGOUT,this._handleLogout,this),v.subscribeInnerEvent(z.DESTROY,this._dispose,this),B.registerWorkflowStep(N.SYNC_SERVER_INFO_AFTER_LOGIN,O.COMMERCIAL_CONFIG_UPDATE,this._syncCommercialConfig,this),p.helper.registerExperimentalAPI("isCommercialAbilityEnabled",this),p.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(p){return pA(this,void 0,void 0,function*(){const B=parseInt(p,10).toString(2),{length:v}=B;let N,O=!0;for(let z=v-1,X=0;z>=0;z--,X++)if(B.charAt(z)==="1"&&(N=X<32?new ys(0,2**X).toString():new ys(2**(X-32),0).toString(),!this._featureMap.get(N))){O=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${vc}.isFeatureEnabled decimalNumber:${p} key:${N} ret:${O}`),{code:0,data:{enabled:O}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return pA(this,void 0,void 0,function*(){var p;const{ssoLog:B,utils:{safeStringify:v},common:{buildAndSendPacket:N}}=this._core;try{this._isFetching=!0;const O=yield N({servcmd:"im_sdk_config_mgr.fetch_imsdk_purchase_bitsv2",data:{uint32_sdkappid:(p=this._core.store.get("instance"))===null||p===void 0?void 0:p.sdkAppId}});O&&(this._parseCommercialConfig(O),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(O){B.error("_fetchAndParseCommercialConfig",v(O))}finally{this._isFetching=!1}})}_syncCommercialConfig(p){return pA(this,void 0,void 0,function*(){const{purchaseBits:B}=p?.data||{};B&&(this._parsePurchaseBits(B),this._core.store.set("commercialConfig",this._methodKeyMap)),this._canFetch()&&(yield this._fetchAndParseCommercialConfig()),this._core.helper.taskScheduler.addTask({id:WI,intervalMs:1e3,callback:this._fetchCommercialConfigIfReady,context:this})})}_canFetch(){var p;const B=(p=this._core.store.get("login"))===null||p===void 0?void 0:p.isLoggedIn,v=Date.now()>=this._expirationTime;return B&&!this._isFetching&&v}_handlePushedConfig(p){p?.body&&(this._parseCommercialConfig(p.body),this._core.store.set("commercialConfig",this._methodKeyMap))}_fetchCommercialConfigIfReady(){return pA(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(p){const{ssoLog:B}=this._core;if(typeof p!="object")return;const{int32_error_code:v,str_error_message:N,str_purchase_bits:O,uint32_expired_time:z}=p;v===0?(this._parsePurchaseBits(O),this._expirationTime=Date.now()+1e3*z):v===void 0?(B.warn("_parseCommercialConfig",`${vc}._parseCommercialConfig failed. Invalid message format:`,p),this._expirationTime=Date.now()+36e5):(B.warn("_parseCommercialConfig",`${vc}._parseCommercialConfig errorCode:${v} errorMessage:${N}`),this._expirationTime=Date.now()+12e4)}_isValidPurchaseBits(p){return p&&typeof p=="string"&&p.length>=1&&p.length<=64&&/[01]{1,64}/.test(p)}_parsePurchaseBits(p){const{ssoLog:B,utils:{safeStringify:v}}=this._core;if(this._isValidPurchaseBits(p)){this._purchaseBits=p,this._featureMap.clear(),this._methodKeyMap.clear();let N=null;for(let O=p.length-1,z=0;O>=0;O--,z++)if(N=z<32?new ys(0,2**z).toString():new ys(2**(z-32),0).toString(),p[O]==="1"){this._featureMap.set(N,!0);const X=this._getKeyByValue(Kn,N);X&&this._methodKeyMap.set(X,!0)}else{this._featureMap.set(N,!1);const X=this._getKeyByValue(Kn,N);X&&this._methodKeyMap.set(X,!1)}}else B.warn("_parsePurchaseBits",`${vc}.parsePurchaseBits invalid purchases:${v(p)}`)}_getKeyByValue(p,B){const v=Object.entries(p).find(([N,O])=>O===B);return v?v[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(WI),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}},_E=new class{constructor(){this._core=null,this._serverOverloadInfoMap=new Map}install(p){this._core=p;const{notificationCenter:B,InnerEvent:v,channel:N}=this._core;B.subscribeInnerEvent(v.OVERLOAD_PUSH,this._handleOverLoadPush,this),B.subscribeInnerEvent(v.LOGOUT,this._reset,this),B.subscribeInnerEvent(v.DESTROY,this._dispose,this),N.registerBeforeSendInterceptor(this.checkServerOverload,this)}checkServerOverload(p){if(!this._serverOverloadInfoMap.has(p))return;const{overloadStartTimestamp:B,delaySeconds:v}=this._serverOverloadInfoMap.get(p);if(Date.now()-B<=1e3*v)throw new this._core.helper.ChatError({functionName:p,message:"service is busy, please try again later"});this._serverOverloadInfoMap.delete(p)}_handleOverLoadPush(p){const{OverLoadServCmd:B,DelaySecs:v}=p;this._serverOverloadInfoMap.set(B,{overloadStartTimestamp:Date.now(),delaySeconds:v})}_reset(){this._serverOverloadInfoMap.clear()}_dispose(){this._reset();const{notificationCenter:p,InnerEvent:B}=this._core;p.unSubscribeInnerEvent(B.OVERLOAD_PUSH,this._handleOverLoadPush,this),p.unSubscribeInnerEvent(B.LOGOUT,this._reset,this),p.unSubscribeInnerEvent(B.DESTROY,this._dispose,this)}},rh=new class{constructor(){this.name="ConfigCenter"}install(p){Al.init(p),bg.install(p),zI.install(p),_E.install(p)}},IC=new class{constructor(){this.name="ErrorMessage",this._core=null}install(p){return pA(this,void 0,void 0,function*(){if(this._core=p,this._canFetch()){const B=yield this._fetchErrorMessage();if(!B)return;const v=this._parseResponse(B);this._saveErrorMessage(v)}})}_canFetch(){const p=this._core.store.getStorage("errorMessage");return!p||this._isExpired(p)}_saveErrorMessage(p){this._core.store.setStorage("errorMessage",{errorMessage:p,errorMessageSavedTime:new Date().getTime()})}_fetchErrorMessage(){return pA(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(p){console.error(p)}})}_isExpired(p){if(!p)return!0;const{errorMessageSavedTime:B}=p;return B&&new Date().getTime()-B>=6048e5}_parseResponse(p){if(typeof p=="string"){const B=p.split(`;
|
||
`),v={},N=new RegExp(/'/g);for(let O=0;O<B.length;O++){const z=B[O].indexOf(":"),X=B[O].slice(0,z);let rA=B[O].slice(z+1);if(!X.startsWith("//")){if(rA==="")continue;rA=rA.replace(N,""),v[X]=rA}}return v}}};function ah(p,B){return pA(this,void 0,void 0,function*(){const{cookie:v,syncFlag:N,syncTriggerEvent:O}=p,z="openim.getmsg",X=B.helper.generateProtocolData({servcmd:z,data:{Cookie:v,SyncFlag:N,IsOnlineSync:O,NeedAbstract:1,NeedSignaling:1,NeedCachedMsg:1}}),rA=`${X.head.seq}${z}`;try{const DA=yield B.channel.sendPacket(X,{requestId:rA});if(!DA)return null;const{C2CPairUnreadCount:GA,C2CRemainingUnreadCount:VA,EventArray:te}=DA,{unreadMessageList:Ce,revokedMessageList:Ke}=function(ot,at){const kt=[],Vt=[];return ot?.forEach(Ui=>{var ao,Zi,Ei;const Po=function(As,pi){const{From_Account:ji,From_AccountHeadurl:Ws,From_AccountNick:Te,IsNeedReadReceipt:Rt,MsgBody:FA,MsgClientTime:zt,MsgRandom:En,MsgSeq:Xt,MsgTimeStamp:us,SendMsgControl:vi,SupportMessageExtension:ho,To_Account:Ct,TinyId:Bt,MsgCheckResult:ug,CloudCustomData:ks,IsPeerRead:Wi,MsgFlagBits:Hr,MsgVersion:oc,EventArray:is}=As;return{from:ji,avatar:Ws,nick:Te,needReadReceipt:Rt===1,readReceiptSentByPeer:Wi,clientTime:zt,messageFlagBits:Hr,random:En,sequence:Xt,time:us,messageControlInfo:vi,isSupportExtension:ho,to:Ct,tinyID:Bt,checkResult:ug,cloudCustomData:ks,messageVersion:oc,eventArray:is,elements:pi.message.messageHelper.parseServerPushMessageElement(FA)}}(Ui,at);if(!((Ei=(Zi=(ao=Ui?.EventArray)===null||ao===void 0?void 0:ao[0])===null||Zi===void 0?void 0:Zi.hasOwnProperty)===null||Ei===void 0)&&Ei.call(Zi,"C2cNotifyMsgArray"))Vt.push(...function(As){var pi;const ji=[];return(pi=As.EventArray)===null||pi===void 0||pi.forEach(Ws=>{var Te,Rt;const{C2cNotifyMsgArray:FA}=Ws,zt=(Rt=(Te=FA?.[0])===null||Te===void 0?void 0:Te.WithdrawC2cMsgNotify)===null||Rt===void 0?void 0:Rt.C2cWithdrawInfoArray;Array.isArray(zt)&&ji.push(...zt)}),ji}(Ui));else{const As=at.message.messageFactory.createMessage(Object.assign(Object.assign({},Po),{conversationType:"C2C",flow:"in"})),{elements:pi}=Po;As.setElement(pi),kt.push(As)}}),{unreadMessageList:kt,revokedMessageList:Vt}}(DA.MsgList,B);return{syncFlag:DA?.SyncFlag,unreadMessageList:Ce,revokedMessageList:Ke,unreadCountList:GA,overflowUnreadCountList:VA,cookie:DA?.Cookie,groupTipList:te}}catch(DA){console.warn(DA)}})}var el,kg;(function(p){p[p.START_SYNC=0]="START_SYNC",p[p.SYNCING=1]="SYNCING",p[p.SYNC_COMPLETE=2]="SYNC_COMPLETE"})(el||(el={})),function(p){p[p.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",p[p.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(kg||(kg={}));var no=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}install(p){this._core=p;const{constants:B}=p;p.helper.registerWorkflowStep(B.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_RE_ONLINE,B.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterReOnline,this),p.helper.registerWorkflowStep(B.WORKFLOW_NAME.RECEIVE_C2C_NEW_MESSAGE,B.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterNewMessageReceived,this),p.helper.registerWorkflowStep(B.WORKFLOW_NAME.SYNC_SERVER_INFO_AFTER_LOGIN,B.WORKFLOW_STEP.UNREAD_MESSAGE_SYNC,this._syncUnreadDBMessageAfterLogin,this),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.SOCKET_DISCONNECTED,this._handleDisconnect,this),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.LOGOUT,this._reset,this),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(p){return pA(this,void 0,void 0,function*(){const{isAfterReOnline:B=!1,isAfterNewMessageReceived:v=!1,isAfterLogin:N=!1}=p||{};let O=el.START_SYNC;const z=[],X=[],rA=[],DA=[];for(;this._canContinueSync({cookie:this._cookie,syncFlag:O});){const GA=yield this._fetchUnreadDBMessage({cookie:this._cookie,syncFlag:O,syncTriggerEvent:v?kg.NEW_MESSAGE_RECEIVED:kg.LOGIN_SUCCESS});if(!GA)break;const{unreadMessageList:VA=[],revokedMessageList:te=[],overflowUnreadCountList:Ce,unreadCountList:Ke,groupTipList:ot}=GA;if(this._cookie=GA?.cookie||"",O=GA?.syncFlag,this._parseAndSaveUnreadMessageList(VA),rA.push(...te),this._updateConversationUnreadOptions({unreadCountList:Ke,overflowUnreadCountList:Ce,conversationUpdateFieldList:z}),Array.isArray(ot)&&X.push(...ot),B){const{messages:at}=this._handleNewMessageList(VA);DA.push(...at)}}return B?{conversationUpdateFieldList:z,revokedMessageList:rA,unreadMessageMap:this._unreadDBMessageMap,groupTipList:X,messages:DA,isUnreadC2CMessage:!0}:{conversationUpdateFieldList:z,isInstantMessage:!N,isUnreadC2CMessage:!0,revokedMessageList:rA,unreadMessageMap:this._unreadDBMessageMap,groupTipList:X}})}_syncUnreadDBMessageAfterLogin(){return pA(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(p){return pA(this,void 0,void 0,function*(){if(p.data.Flag===1)return this._syncUnreadMessage({isAfterNewMessageReceived:!0})})}_updateConversationUnreadOptions(p){const{unreadCountList:B,overflowUnreadCountList:v,conversationUpdateFieldList:N}=p,{constants:{OuterConstant:{CONV_C2C:O,CONV_SYSTEM:z}}}=this._core;B?.forEach(X=>{const{From_Account:rA,UnreadCount:DA}=X;if(rA!==z){const GA=N.find(({conversationID:VA})=>VA===`${O}${rA}`);GA?GA.unreadCount=DA:N.push({conversationID:`${O}${rA}`,unreadCount:DA,type:O})}}),v?.forEach(X=>{const{From_Account:rA,LastMsgTime:DA}=X;rA!==z&&(N.find(({conversationID:GA})=>GA===`${O}${rA}`)||N.push({conversationID:`${O}${rA}`,type:O,lastMsgTime:DA}))})}_syncUnreadDBMessageAfterReOnline(){return pA(this,void 0,void 0,function*(){return this._syncUnreadMessage({isAfterReOnline:!0})})}_updateMessageProfile(p){var B;const{messageDataHandler:v}=this._core.message||{},N=(B=this._core.store.get("login"))===null||B===void 0?void 0:B.userId,{from:O,nick:z,avatar:X,conversationID:rA=""}=p;if(O!==N){const DA=v.getLatestMsgSentByPeer(rA);if(DA){const{nick:GA,avatar:VA}=DA;z&&X?z===GA&&X===VA||v.updateNickAndAvatarOfSentMessage({conversationID:rA,latestNick:z,latestAvatar:X,isSentByMe:!1}):(p.nick=GA,p.avatar=VA)}}else{const DA=v.getLatestMsgSentByMe(rA);!DA||z===DA.nick&&X===DA.avatar||v.updateNickAndAvatarOfSentMessage({conversationID:rA,latestNick:z,latestAvatar:X,isSentByMe:!0})}}_handleNewMessageList(p){const{messageDataHandler:B}=this._core.message||{},v=new Map,N=[];return p.forEach(O=>{this._updateMessageProfile(O);let z=O.isModified===1;if(B.isMessageSentByCurrentInstance(O)?O.isModified=z:z=!1,O.isOnlineMessage())O._onlineOnlyFlag=!0,B.isMessageSentByCurrentInstance(O)||N.push(O);else if(this._shouldStoreUnreadMessage(O)){if(B.storeConversationMessage(O)){const{conversationID:X,conversationType:rA,conversationSubType:DA,flow:GA,_isExcludedFromUnreadCount:VA,_isExcludedFromLastMessage:te}=O,Ce=te?"":O;v.has(X)?(v.get(X).lastMessage=Ce,GA==="in"&&(VA||v.get(X).unreadCount++)):v.set(X,{conversationID:X,type:rA,subType:DA,unreadCount:VA||GA!=="in"?0:1,lastMessage:Ce})}B.isMessageSentByCurrentInstance(O)&&!z||N.push(O)}}),{messages:N,conversationOptions:v}}_shouldStoreUnreadMessage(p){var B;const{conversationID:v}=p,{message:N,appStore:O,utils:{isEmpty:z}}=this._core||{},X=Array.from(((B=O.conversationStore.getConversationMap())===null||B===void 0?void 0:B.keys())||[]),rA=this._getLocalLastMessageTime(v);return!N.messageDataHandler.isInMessageList(p)&&X.includes(v)&&this._localConversationIDListBeforeDisconnect.includes(v)&&!z(rA)}_fetchUnreadDBMessage(p){return pA(this,void 0,void 0,function*(){const{ssoLog:B,utils:{safeStringify:v}}=this._core;try{B.debug("_fetchUnreadDBMessage",`unread-message-synchronizer._fetchUnreadDBMessage options:${v(p)}`);const O=yield ah(p,this._core);if(!O)return null;const{syncFlag:z,unreadMessageList:X,revokedMessageList:rA,cookie:DA,unreadCountList:GA,overflowUnreadCountList:VA,groupTipList:te}=O;return this._parseAndSaveUnreadMessageList(X),{syncFlag:z,cookie:DA,unreadMessageList:X,revokedMessageList:rA,unreadCountList:GA,overflowUnreadCountList:VA,groupTipList:te}}catch(N){console.log(N)}})}_canContinueSync({cookie:p,syncFlag:B}){var v;return B===el.START_SYNC||B===el.SYNCING&&!(!((v=this._core)===null||v===void 0)&&v.helper.isEmpty(p))}_parseAndSaveUnreadMessageList(p){p.forEach(B=>{const{ID:v}=B;this._unreadDBMessageMap.set(v,B)})}_handleDisconnect(){var p;const{appStore:B}=this._core;this._localConversationIDListBeforeDisconnect=Array.from(((p=B.conversationStore.getConversationMap())===null||p===void 0?void 0:p.keys())||[])}_getLocalLastMessageTime(p){const{message:B}=this._core,v=B.messageDataHandler.getLocalMessageList(p),N=v[v.length-1];return N?.time}_reset(){this._cookie="",this._unreadDBMessageMap.clear()}_dispose(){var p,B;(p=this._core)===null||p===void 0||p.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),(B=this._core)===null||B===void 0||B.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.DESTROY,this._dispose,this),this._reset()}},uC=new class{init(p){var B;this._core=p,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this._dispose,this),document?.addEventListener("visibilitychange",this._visibilityChangeHandler),(B=this._core)===null||B===void 0||B.store.set("activityMonitor",{isActive:!0})}_handleVisibilityChange(){var p,B;const v=document?.visibilityState==="visible";(p=this._core)===null||p===void 0||p.store.set("activityMonitor",{isActive:v}),(B=this._core)===null||B===void 0||B.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:v})}_reset(){var p;(p=this._core)===null||p===void 0||p.store.clear("activityMonitor")}_dispose(){document?.removeEventListener("visibilitychange",this._visibilityChangeHandler);const{notificationCenter:p,InnerEvent:B}=this._core;p.unSubscribeInnerEvent(B.DESTROY,this._dispose,this),this._reset()}},TE=new class{init(p){var B;this._core=p,this._bindAppActivityEvent(),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this._dispose,this),(B=this._core)===null||B===void 0||B.store.set("activityMonitor",{isActive:!0})}_bindAppActivityEvent(){var p,B,v,N,O;const{MINI_APP_NAMESPACE:z,IN_TT_MINI_GAME:X,IN_WX_MINI_GAME:rA}=((p=this._core)===null||p===void 0?void 0:p.utils)||{};X||rA?((B=z?.onShow)===null||B===void 0||B.call(z,()=>{var DA,GA;(DA=this._core)===null||DA===void 0||DA.store.set("activityMonitor",{isActive:!0}),(GA=this._core)===null||GA===void 0||GA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(v=z?.onHide)===null||v===void 0||v.call(z,()=>{var DA,GA;(DA=this._core)===null||DA===void 0||DA.store.set("activityMonitor",{isActive:!1}),(GA=this._core)===null||GA===void 0||GA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})})):((N=z?.onAppShow)===null||N===void 0||N.call(z,()=>{var DA,GA;(DA=this._core)===null||DA===void 0||DA.store.set("activityMonitor",{isActive:!0}),(GA=this._core)===null||GA===void 0||GA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!0})}),(O=z?.onAppHide)===null||O===void 0||O.call(z,()=>{var DA,GA;(DA=this._core)===null||DA===void 0||DA.store.set("activityMonitor",{isActive:!1}),(GA=this._core)===null||GA===void 0||GA.notificationCenter.emitInnerEvent("activityStatusChange",{isActive:!1})}))}_reset(){var p;(p=this._core)===null||p===void 0||p.store.clear("activityMonitor")}_dispose(){const{notificationCenter:p,InnerEvent:B}=this._core;p.unSubscribeInnerEvent(B.DESTROY,this._dispose,this),this._reset()}},NE=new class{init(p){const{IN_MINI_APP:B,IN_WX_MINI_PLUGIN:v}=p.helper;v||(B?TE.init(p):uC.init(p))}};const hd="none",GE="online";var tl=new class{init(p){this._core=p,this._activateNetworkMonitoring(),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(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(p){var B,v;const{isConnected:N,networkType:O}=p;(B=this._core)===null||B===void 0||B.store.set("netWorkMonitor",{isNetworkOnline:N,networkType:O}),(v=this._core)===null||v===void 0||v.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:N,networkType:O})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:GE})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:hd})}_reset(){var p;this._deactivateNetworkMonitoring(),(p=this._core)===null||p===void 0||p.store.clear("netWorkMonitor")}_dispose(){var p,B;(p=this._core)===null||p===void 0||p.notificationCenter.unSubscribeInnerEvent((B=this._core)===null||B===void 0?void 0:B.InnerEvent.DESTROY,this._dispose,this),this._reset()}},dI=new class{init(p){this._core=p,this._activateNetworkMonitoring(),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return pA(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:p}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),p.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(p){console.error(p)}})}_deactivateNetworkMonitoring(){if(this._mpNetworkStatusCallback!==null){const{utils:{MINI_APP_NAMESPACE:p}}=this._core;p.offNetworkStatusChange&&p.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null}}_onNetworkStatusChange(p){var B,v;const{isConnected:N,networkType:O}=p;(B=this._core)===null||B===void 0||B.store.set("netWorkMonitor",{isNetworkOnline:N,networkType:O}),(v=this._core)===null||v===void 0||v.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:N,networkType:O})}_reset(){var p;this._deactivateNetworkMonitoring(),(p=this._core)===null||p===void 0||p.store.clear("netWorkMonitor")}_dispose(){var p,B;(p=this._core)===null||p===void 0||p.notificationCenter.unSubscribeInnerEvent((B=this._core)===null||B===void 0?void 0:B.InnerEvent.DESTROY,this._dispose,this),this._reset()}},bu=new class{init(p){const{IN_MINI_APP:B}=p.utils;B?dI.init(p):tl.init(p)}},ku=new class{constructor(){this.name="SystemStateMonitor"}install(p){NE.init(p),bu.init(p)}};const EC=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.*"]),Rr="tui_room_svr.*";var cg=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=EC}install(p){this._core=p;const{notificationCenter:B,InnerEvent:v,helper:N}=p;B.subscribeInnerEvent(v.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),B.subscribeInnerEvent(v.LOGOUT,this._reset,this),B.subscribeInnerEvent(v.DESTROY,this._dispose,this),B.subscribeInnerEvent("im_open_push.msg_push",B.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this),N.registerExperimentalAPI("sendTRTCCustomData",this,"transferBusinessCommand"),N.registerExperimentalAPI("sendRoomCustomData",this,"transferBusinessCommand")}transferBusinessCommand(p){return pA(this,void 0,void 0,function*(){const B="transferBusinessCommand";try{const{serviceCommand:v=Rr}=p||{};if(!this._isValidTransferredCommand(v))throw new this._core.helper.ChatError({code:2995,functionName:B});return{code:0,data:(yield function(O,z){return pA(this,void 0,void 0,function*(){const{helper:X,channel:rA}=z,{serviceCommand:DA=Rr,data:GA}=O||{};let VA={};try{VA=typeof GA=="string"?JSON.parse(GA):GA}catch(Ke){console.warn(Ke)}const te=X.generateProtocolData({servcmd:DA,data:VA}),Ce=`${te.head.seq}${DA}`;return rA.sendPacket(te,{requestId:Ce,shouldRejectOnError:!1})})}(p,this._core))||{}}}catch(v){throw console.warn(v),new this._core.helper.ChatError({code:v?.errorCode,message:v?.errorInfo,data:{},functionName:B})}})}_onCloudConfigUpdate(p={}){try{if(typeof p.rtc_cmd!="string")return;const B=JSON.parse(p.rtc_cmd);Array.isArray(B)&&(this._transferredCommands=new Set([...this._transferredCommands,...B]))}catch(B){console.log(B)}}_isValidTransferredCommand(p=""){const B=`${p?.split(".")[0]}.*`;return this._transferredCommands.has(B)}_onServerPushBusinessCommand(p){const{OuterEvent:B,notificationCenter:v}=this._core,{MsgContent:N}=p||{},{ROOM_CUSTOM_DATA_RECEIVED:O}=B;v.emitOuterEvent(O,{name:O,data:N})}_reset(){this._transferredCommands=EC}_dispose(){const{notificationCenter:p,InnerEvent:B}=this._core;this._reset(),p.unSubscribeInnerEvent(B.CLOUD_CONFIG_UPDATE,this._onCloudConfigUpdate,this),p.unSubscribeInnerEvent(B.LOGOUT,this._reset,this),p.unSubscribeInnerEvent(B.DESTROY,this._dispose,this),p.unSubscribeInnerEvent("im_open_push.msg_push",p.InnerEventSubType.BUSINESS_COMMAND,this._onServerPushBusinessCommand,this)}};const Rc=new class{init(p){this.core=p}};function Lu(p){return pA(this,void 0,void 0,function*(){var B;const{message:v,user:N,appStore:O,constants:{OuterConstant:z}}=Rc.core,X=O.conversationStore.getConversationMap();if(X.has(p)){const DA=(B=X.get(p))===null||B===void 0?void 0:B.userProfile;if(DA&&p.startsWith(z.CONV_C2C)){const{avatar:GA,nick:VA}=DA;Rc.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:p,latestAvatar:GA,latestNick:VA,isSentByMe:!1})}}const{data:rA}=(yield N.userProfile.getMyProfile())||{};if(rA){const{avatar:DA,nick:GA}=rA;v.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:p,latestAvatar:DA,latestNick:GA,isSentByMe:!0})}})}function Tl(p){return pA(this,void 0,void 0,function*(){const B=p.map(v=>v.revoker);try{const v=yield function(N){return pA(this,void 0,void 0,function*(){var O,z;const X=yield(O=Rc.core.user.userProfile)===null||O===void 0?void 0:O.getUserProfile({userIDList:N});return X?.data?(z=X.data)===null||z===void 0?void 0:z.reduce((rA,{userID:DA,nick:GA,avatar:VA})=>(rA[DA]={nick:GA||"",avatar:VA||""},rA),{}):null})}(B);v&&p.forEach(N=>{const{revoker:O}=N;v[O]&&(N.revokerInfo.nick=v[O].nick||"",N.revokerInfo.avatar=v[O].avatar||"",N.revokerInfo.userID=O)})}catch(v){console.debug(v)}})}const Bd=1,$r=2,CI=20,_n=2500,dC=1,il=300;function Qd(p){return pA(this,void 0,void 0,function*(){var B,v;const{appStore:N,utils:{isEmpty:O},common:{getCurrentUserID:z},notificationCenter:X,OuterEvent:rA,OuterConstant:{CONV_C2C:DA}}=Rc.core,{messageList:GA,conversationID:VA}=p,te=N.conversationStore.getConversationMap();let Ce=(B=te.get(VA))===null||B===void 0?void 0:B.peerReadTime;if(!Ce){const ot=VA.replace(DA,""),at=yield function(kt){return pA(this,void 0,void 0,function*(){const Vt={To_Account:kt};return Rc.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:Vt})})}([ot]);if(at){const{ReadTime:kt}=at;Ce=kt?.[0],te.has(VA)&&(te.get(VA).peerReadTime=Ce)}}if(te.has(VA)){const ot=(v=te.get(VA))===null||v===void 0?void 0:v.lastMessage;O(ot)||ot.fromAccount===z()&&ot.lastTime<=Ce&&!ot.isPeerRead&&(ot.isPeerRead=!0,N.conversationStore.updateConversation(VA,{lastMessage:ot}))}const Ke=[];GA.forEach(ot=>{ot.time<=Ce&&!ot.isPeerRead&&ot.flow==="out"&&(ot.isPeerRead=!0,Ke.push(ot))}),Ke.length>0&&X.emitOuterEvent(rA.MESSAGE_READ_BY_PEER,{name:rA.MESSAGE_READ_BY_PEER,data:Ke})})}var hI=new class{init(p){this._core=p,p.helper.registerApi({apiName:"getMessageList",context:this}),p.helper.registerApi({apiName:"getMessageListHopping",context:this}),p.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(p){return pA(this,void 0,void 0,function*(){try{const{message:B,OuterConstant:{Direction:v,CONV_C2C:N,CONV_GROUP:O},InnerEvent:{HISTORY_MESSAGE_FETCHED:z},notificationCenter:X}=this._core,{conversationID:rA,nextReqMessageID:DA}=p,GA=CI;if(rA==="@TIM#SYSTEM")return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const VA=this._getAvailableLocalMessagesCount({conversationID:rA,nextReqMessageID:DA});if(this._needFetchHistoryMessageList({conversationID:rA,availableLocalMessagesCount:VA,targetCount:GA})){let te=null;if(rA.startsWith(O)?te=yield B.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:rA,sequence:Number(DA),count:GA,direction:v.FORWARD,shouldMarkCompleted:!0}):rA.startsWith(N)&&(te=yield B.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:rA,messageID:DA,count:GA,direction:v.FORWARD,shouldMarkCompleted:!0})),te){const{nextReqMessageIDFromServer:Ce,hasNoMoreHistoryMessage:Ke,messageList:ot}=te,at=B.messageDataHandler.prependLocalMessageList({messageList:ot,conversationID:rA});(function(Zi){const{appStore:Ei,message:Po,OuterConstant:As}=Rc.core,pi=Ei.conversationStore.getConversation(Zi),ji=Po.messageDataHandler.getLocalMessageList(Zi);if(!pi||ji.length===0||Zi===As.CONV_SYSTEM)return;const Ws=[];for(let Rt=0;Rt<ji.length;Rt++)ji[Rt].flow!=="in"?ji[Rt].flow!=="out"||ji[Rt].isRead||ji[Rt].setIsRead(!0):Ws.push(ji[Rt]);let Te=0;if(pi.type===As.CONV_C2C){const Rt=Ws.slice(-pi.unreadCount).filter(FA=>FA.isRevoked).length;Te=Ws.length-pi.unreadCount-Rt}else Te=Ws.length-pi.unreadCount;for(let Rt=0;Rt<Te&&!Ws[Rt].isRead;Rt++)Ws[Rt].setIsRead(!0)})(rA),yield Lu(rA),rA.startsWith(N)&&(yield Qd({messageList:ot,conversationID:rA}));const kt=this._core.message.messageDataHandler.getLocalMessageList(rA).slice(0,at.length+VA),Vt=kt.filter(Zi=>Zi.isRevoked);yield Tl(Vt),X.emitInnerEvent(z,at);const Ui={nextReqMessageID:Ke?"":String(Ce),messageList:kt,isCompleted:Ke},ao=kt.map(Zi=>Zi.sequence);return{code:0,data:Ui,successLog:{message:`conversationID: ${rA} nextReqMessageID: ${DA} availableLocalMessagesCount: ${VA} sequenceList: ${JSON.stringify(ao)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:rA,nextReqMessageID:DA,count:GA}),successLog:{message:`conversationID: ${rA} nextReqMessageID: ${DA} availableLocalMessagesCount: ${VA}}`}}}catch(B){const{code:v,message:N}=B||{};throw new this._core.helper.ChatError({code:v,message:N,moreMessage:`options: ${this._core.utils.safeStringify(p)}`})}})}getMessageListHopping(p){return pA(this,void 0,void 0,function*(){var B,v;const{OuterConstant:{Direction:N,CONV_C2C:O,CONV_GROUP:z},utils:{safeStringify:X}}=this._core,{conversationID:rA,sequence:DA,time:GA,direction:VA=N.FORWARD}=p,{utils:{isEmpty:te},message:Ce,notificationCenter:Ke,InnerEvent:{HISTORY_MESSAGE_FETCHED:ot}}=this._core;if(![N.BACKWARD,N.FORWARD].includes(VA))throw new this._core.helper.ChatError({message:"direction must be 0 or 1",moreMessage:`options: ${X(p)}`});let{count:at=CI}=p;at=at>CI?CI:at;let kt=null;if(rA.startsWith(z)){if(kt=yield Ce.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:rA,sequence:DA,count:at,direction:VA}),kt){const{nextReqMessageIDFromServer:Vt,hasNoMoreHistoryMessage:Ui,messageList:ao,invisibleSequenceList:Zi}=kt;if(this._core.message.messageDataHandler.storeSparseMessageList(ao),Ke.emitInnerEvent(ot,ao),VA===N.FORWARD){const Ei=Ui&&Vt<1;return{code:0,data:{messageList:ao,isCompleted:Ei,nextMessageSeq:Ei?"":Vt}}}if(VA===N.BACKWARD){if(te(ao)&&te(Zi))return{code:0,data:{messageList:[],isCompleted:!0,nextMessageSeq:""}};const Ei=((B=ao?.[ao.length-1])===null||B===void 0?void 0:B.sequence)||0,Po=((v=Zi?.[Zi.length-1])===null||v===void 0?void 0:v.sequence)||0;return{code:0,data:{messageList:ao.filter(As=>As.sequence>=DA),isCompleted:!Ui,nextMessageSeq:Ui?Math.max(Ei,Po)+1:""}}}return{code:0,data:kt}}}else if(rA.startsWith(O)&&(kt=yield Ce.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:rA,count:at+1,time:GA,direction:VA}),kt)){const{messageList:Vt,lastMessageTime:Ui,hasNoMoreHistoryMessage:ao}=kt;return Ke.emitInnerEvent(ot,Vt),ao||(VA===N.FORWARD?Vt.shift():Vt.pop()),Ce.messageDataHandler.storeSparseMessageList(Vt),yield Qd({messageList:Vt,conversationID:rA}),{code:0,data:{messageList:Vt,isCompleted:ao,nextMessageTime:ao?"":Ui}}}})}clearHistoryMessage(p){return pA(this,void 0,void 0,function*(){var B;const{appStore:v,common:{ChatError:N,getCurrentUserID:O},OuterConstant:{CONV_C2C:z,CONV_GROUP:X},apiMap:rA,message:DA}=this._core,GA=v.conversationStore.getConversation(p);if(!GA)throw new N({code:_n});const VA={fromAccount:O()},{type:te}=GA;te===z?(VA.type=Bd,VA.toAccount=p.replace(z,"")):te===X&&(VA.type=$r,VA.toGroupID=p.replace(X,""));try{return yield(B=rA?.setMessageRead)===null||B===void 0?void 0:B.call(rA,{conversationID:p}),(yield function(Ke){return pA(this,void 0,void 0,function*(){const{fromAccount:ot,type:at,toAccount:kt,toGroupID:Vt}=Ke,Ui={From_Account:ot,Type:at,To_Account:kt,ToGroupid:Vt};return Rc.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:Ui})})}(VA))&&(DA.messageDataHandler.deleteConversationMessageList(p),DA.messageHistory.completedHistoryConversations.delete(p),DA.messageHistory.clearHistoryMessageListFetchAnchors(p),this._updateConversationLastMessage(p)),{code:0,data:{conversationID:p},successLog:{message:`convID:${p}`}}}catch(Ce){const{errorCode:Ke}=Ce;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:Ke,moreMessage:`convID:${p}`})}})}_updateConversationLastMessage(p){const{appStore:B}=this._core;B.conversationStore.updateConversation(p,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:p,nextReqMessageID:B}){const{OuterConstant:{CONV_C2C:v,CONV_GROUP:N}}=this._core,O=this._core.message.messageDataHandler.getLocalMessageList(p),{length:z}=O;if(!B)return z;let X=-1;return p?.startsWith(v)?X=O.findIndex(rA=>rA.ID===B):p?.startsWith(N)&&(X=O.findIndex(rA=>B.includes("-")?rA.ID===B:String(rA.sequence)===B)),X===-1?0:X}_needFetchHistoryMessageList({conversationID:p,availableLocalMessagesCount:B,targetCount:v}){const{message:N}=this._core;return B<v&&!N.messageHistory.completedHistoryConversations.has(p)}_getMessageListFromMemory(p){return pA(this,arguments,void 0,function*({conversationID:B,nextReqMessageID:v,count:N}){const{OuterConstant:{CONV_C2C:O},message:z}=this._core,X=this._core.message.messageDataHandler.getLocalMessageList(B),rA=X.length;let DA=rA,GA={isCompleted:!1,nextReqMessageID:"",messageList:[]},VA=0,te=rA;return v?v&&(te=X.findIndex(Ce=>B.startsWith(O)?Ce.ID===v:String(Ce.sequence)===v),VA=te>N?te-N:0,DA=te):VA=rA>N?rA-N:0,GA.messageList=X.slice(VA,te),GA.isCompleted=DA<=N&&z.messageHistory.completedHistoryConversations.has(B),GA.isCompleted?GA.nextReqMessageID="":GA.nextReqMessageID=this._generateNextReqMessageID({conversationID:B,targetIndex:VA}),B.startsWith(O)&&(yield Lu(B),yield Qd({messageList:GA.messageList,conversationID:B})),GA})}_generateNextReqMessageID({conversationID:p,targetIndex:B}){const v=this._core.message.messageDataHandler.getLocalMessageList(p);return p.startsWith("C2C")?v[B].ID:String(v[B].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}}},Oa=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(p){this._core=p;const{common:{workflowManager:B},constants:{WORKFLOW_NAME:v,WORKFLOW_STEP:N,InnerEvent:O}}=p;B.registerWorkflowStep(v.SYNC_SERVER_INFO_AFTER_RE_ONLINE,N.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),B.registerWorkflowStep(v.SYNC_SERVER_INFO_AFTER_RE_ONLINE,N.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),p.notificationCenter.subscribeInnerEvent(O.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(p){const{conversationList:B}=p?.result||{},{OuterConstant:v,utils:{isArray:N}}=this._core;if(N(B)){const O=B.filter(z=>z.type===v.CONV_GROUP&&z.groupProfile.type!==v.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(O)}}_recoverGroupHistoryMessage(p){return pA(this,void 0,void 0,function*(){const{OuterConstant:B}=this._core,v=[],N=[];return yield Promise.all(p?.map(O=>pA(this,void 0,void 0,function*(){const{groupProfile:{groupID:z}={},lastMessage:{lastSequence:X}={}}=O,rA=`${B.CONV_GROUP}${z}`;let DA=this._getLocalLastMessageSequence(rA);this._shouldRecoverHistory({localLastMessageSequence:DA,serverLastMessageSequence:X})&&(yield this._recoverGroupHistoryForConversation({conversationID:rA,localLastMessageSequence:DA,serverLastMessageSequence:X,groupTipList:N})),v.push(rA.replace(B.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:v,groupTipList:N}})}_recoverGroupHistoryForConversation(p){return pA(this,arguments,void 0,function*({conversationID:B,localLastMessageSequence:v,serverLastMessageSequence:N,groupTipList:O}){try{const{utils:{isArray:z,isObject:X,isEmpty:rA},OuterEvent:DA,OuterConstant:GA,notificationCenter:VA,message:te,appStore:Ce,common:{getMessagePreviewText:Ke,buildLastMessage:ot}}=this._core,at=N-v,kt=Math.min(20,at),Vt={},Ui=yield te.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:B,sequence:v+kt,direction:GA.Direction.FORWARD,count:kt}),{nextReqMessageIDFromServer:ao,hasNoMoreHistoryMessage:Zi,messageList:Ei,serverGroupTipList:Po}=Ui;z(Po)&&O.push(...Po);const As=Zi&&ao<0,pi=[];if(z(Ei)&&(Ei.forEach(ji=>{te.messageReceiver.groupMessageReceiver.updateMessageProfile(ji),ji.from===GA.CONV_SYSTEM&&(ji.isSystemMessage=!1),te.messageDataHandler.storeConversationMessage(ji)&&!rA(ji.payload)&&(pi.push(ji),ji._isExcludedFromLastMessage||(Vt.lastMessage=ot(ji)))}),pi.length>0&&VA.emitOuterEvent(DA.MESSAGE_RECEIVED,{name:DA.MESSAGE_RECEIVED,data:pi})),!As&&Ei.length>0){const ji=Ei[Ei.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:B,localLastMessageSequence:ji,serverLastMessageSequence:N,groupTipList:O})}X(Vt.lastMessage)&&(Vt.lastMessage.messageForShow=Ke(Vt.lastMessage.type,Vt.lastMessage.payload),Ce.conversationStore.updateConversation(B,Vt))}catch(z){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${B}`,{error:z})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:p}=this._core,B=p.messageDataHandler.getContinuousMessagesByConversation();for(const[v,N]of B){const O=Array.from(N.values());if(O?.length>0){const z=O[O.length-1];v.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(v,z.time):v.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(v,z.sequence)}}}_getLocalLastMessageSequence(p){const{message:B}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(p))return this._lastMessageSequenceMapOnDisconnect.get(p);const v=B.messageDataHandler.getLocalMessageList(p),N=v[v.length-1];return N?.sequence}_shouldRecoverHistory(p){const{localLastMessageSequence:B,serverLastMessageSequence:v}=p;if(typeof B!="number"||typeof v!="number")return!1;const N=v-B;return v!==0&&B>0&&N>=dC&&N<il}_syncC2COfflineMessage(p){const{conversationList:B}=p?.result||{},{OuterConstant:v,utils:{isArray:N}}=this._core;if(N(B)){const O=[];return B.forEach(z=>{z.type===v.CONV_C2C&&O.push(z)}),this._recoverC2CHistoryMessage(O)}}_recoverC2CHistoryMessage(p){return pA(this,void 0,void 0,function*(){yield Promise.all(p?.map(B=>pA(this,void 0,void 0,function*(){const{conversationID:v,lastMessage:{lastTime:N}={}}=B,O=this._getLocalLastMessageTime(v);this._shouldRecoverC2CHistory({localLastMessageTime:O,serverLastMessageTime:N})&&(yield this._recoverHistoryForC2CConversation({conversationID:v,localLastMessageTime:O,serverLastMessageTime:N}))})))})}_shouldRecoverC2CHistory(p){const{localLastMessageTime:B,serverLastMessageTime:v}=p,N=v-B;return B>0&&N>=1&&N<=600}_recoverHistoryForC2CConversation(p){return pA(this,void 0,void 0,function*(){var B;const{conversationID:v,localLastMessageTime:N,serverLastMessageTime:O}=p,{utils:{isArray:z,isObject:X,isEmpty:rA,safeStringify:DA},OuterEvent:GA,OuterConstant:VA,notificationCenter:te,message:Ce,appStore:Ke,common:{getMessagePreviewText:ot,buildLastMessage:at}}=this._core;try{const kt={},Vt=yield Ce.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:v,direction:VA.Direction.BACKWARD,time:N,count:20});if(rA(Vt))return;const{hasNoMoreHistoryMessage:Ui,messageList:ao}=Vt,Zi=[];z(ao)&&(ao.forEach(Po=>{Ce.messageDataHandler.storeConversationMessage(Po)&&!rA(Po.payload)&&(Zi.push(Po),Po._isExcludedFromLastMessage||(kt.lastMessage=at(Po)))}),Zi.length>0&&te.emitOuterEvent(GA.MESSAGE_RECEIVED,{name:GA.MESSAGE_RECEIVED,data:Zi}));const Ei=(B=ao[ao.length-1])===null||B===void 0?void 0:B.time;!Ui&&Ei>O&&(yield this._recoverHistoryForC2CConversation({conversationID:v,localLastMessageTime:Ei,serverLastMessageTime:O})),X(kt.lastMessage)&&(kt.lastMessage.messageForShow=ot(kt.lastMessage.type,kt.lastMessage.payload),Ke.conversationStore.updateConversation(v,kt))}catch(kt){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${v} error: ${DA(kt)}`)}})}_getLocalLastMessageTime(p){const{message:B}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(p))return this._lastMessageTimeMapOnDisconnect.get(p);const v=B.messageDataHandler.getLocalMessageList(p),N=v[v.length-1];return N?.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}},CC=new class{constructor(){this.name="HistoryMessage"}install(p){this._core=p,Rc.init(p),hI.init(p),Oa.init(p),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.LOGOUT,this._reset,this),p.notificationCenter.subscribeInnerEvent(p.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:p,InnerEvent:B}=this._core;p.unSubscribeInnerEvent(B.LOGOUT,this._reset,this),p.unSubscribeInnerEvent(B.DESTROY,this.dispose,this),Oa.dispose()}_reset(){Oa.reset()}},Pa=new class{init(p){this.core=p}},ur=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(p){const{helper:{registerExperimentalAPI:B}}=p;this._core=p,B("reportModalView",this),B("reportTUIFeatureUsage",this),B("reportRoomEngineEvent",this)}reportModalView(p){const{ssoLog:B,utils:{safeStringify:v,isString:N}}=this._core;try{if(!N(p))throw new Error("reportModalView data is not a string");B.createSSOLogData({method:"reportModalView",message:p,eventType:30}).end(!0)}catch(O){B.debug(`reportModalView Report failed: ${v(O)}`)}}reportTUIFeatureUsage(p){const{ssoLog:B,utils:{safeStringify:v,isEmpty:N}}=this._core,{atomicStoreID:O}=p;try{N(O)||this._reportedAtomicStoreIDs.has(O)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${p.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:O}),this._reportedAtomicStoreIDs.add(O))}catch(z){B.debug(`reportTUIFeatureUsage Report failed: ${v(z)}`)}}reportRoomEngineEvent(p){const{utils:{safeStringify:B},ssoLog:v}=this._core;try{v.debug(`reportRoomEngineEvent Report: ${B(p)}`);const{eventId:N,eventCode:O,eventResult:z,eventMessage:X,moreMessage:rA,extensionMessage:DA}=p;v.createSSOLogData({method:DA,code:N,message:X,eventType:30,costTime:O,uiPlatform:z,moreMessage:rA}).end(!0)}catch(N){v.debug(`reportRoomEngineEvent Report failed: ${B(N)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}},pd=new class{constructor(){this.name="DataReport"}install(p){this._core=p;const{notificationCenter:B,InnerEvent:{LOGOUT:v,DESTROY:N}}=p;Pa.init(p),ur.init(p),B.subscribeInnerEvent(v,this._reset,this),B.subscribeInnerEvent(N,this._dispose,this)}_reset(){ur.reset()}_dispose(){const{notificationCenter:p,InnerEvent:{LOGOUT:B,DESTROY:v}}=this._core;p.unSubscribeInnerEvent(B,this._reset,this),p.unSubscribeInnerEvent(v,this._dispose,this),ur.dispose()}};let Uu=da.STANDARD,Er=[];Uu=da.BASIC,Er=[IC,rh,no,ku,cg,CC,pd];function wc(p,B){const{operationType:v,memberInfoList:N,operatorInfo:O}=p||{};let z={};if(Rs(N)?Rs(O)||(z=O):v!==sa.JOINED&&v!==sa.KICKED&&v!==sa.ADMIN_SET&&v!==sa.ADMIN_CANCELED||(z=Object.assign({},N[0])),!Rs(z)){const{nick:X="",avatar:rA=""}=z;B.nick=X,B.avatar=rA}}const ol=p=>({lastTime:p?.time||p?.lastTime||0,lastSequence:p?.sequence||p?.lastSequence||0,fromAccount:p?.from||p?.fromAccount||"",messageForShow:KI(p?.type,p?.payload),payload:p?.payload||null,type:p?.type||"",isRevoked:p?.isRevoked||!1,cloudCustomData:p?.cloudCustomData||"",onlineOnlyFlag:p?._onlineOnlyFlag||!1,nick:p?.nick||"",nameCard:p?.nameCard||"",version:p?.version||0,isPeerRead:p?.isPeerRead||!1,revoker:p?.revoker||null});var Lg=Object.freeze({__proto__:null,ChatError:rs,WorkflowManager:tn,buildAndSendPacket:Zg,buildLastMessage:ol,get builtInPlugins(){return Er},checkBusinessCapabilityBits:Wc,deepMerge:Fa,getCurrentUserID:qn,getErrorMessage:wl,getMessagePreviewText:KI,isC2CConv:p=>l(p)&&p.slice(0,3)===_g.CONV_C2C,isCommunity:Ca,isGroupConv:p=>l(p)&&p.slice(0,5)===_g.CONV_GROUP,isInternational:Nu,isTopic:Xr,isUnlimitedAVChatRoom:function(){var p;return!!(!((p=De.store.get("instance"))===null||p===void 0)&&p.unlimitedAVChatRoom)},liteChatInstanceMap:ws,registerInterceptor:Sr,registerValidateConfig:Mc,requireAuth:gs,get sdkEdition(){return Uu},setGroupTipsUserInfo:wc,t:lC,updateGroupAtInfo:(p,B)=>{const{CONV_AT_ME:v,CONV_AT_ALL:N,CONV_AT_ALL_AT_ME:O}=hs;if(function(rA,DA){const{CONV_AT_ME:GA,CONV_AT_ALL:VA,CONV_AT_ALL_AT_ME:te}=hs,{groupID:Ce,sequence:Ke}=rA;let ot=!1;return Ca({groupID:Ce})&&DA.forEach(at=>{at.messageSequence===Ke&&(at.atTypeArray.includes(GA)&&rA.groupAtType.includes(VA)&&(at.atTypeArray=[te]),at.atTypeArray.includes(VA)&&rA.groupAtType.includes(GA)&&(at.atTypeArray=[te],at.__random=rA.__random,at.__sequence=rA.__sequence),ot=!0)}),ot}(p,B))return;let z=[...p.groupAtType];z.includes(v)&&z.includes(N)&&(z=[O]);const X={from:p.from,groupID:p.groupID,topicID:p.topicID,messageSequence:p.sequence,atTypeArray:z,__random:p.__random,__sequence:p.__sequence};B.push(X)},validateAndExecute:_l,validateParameters:ud});class Oo{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return Oo._instance||(Oo._instance=new Oo),Oo._instance}static setInstance(B){Oo._instance=B}installBuiltInPlugin(B){B&&this._installPlugin(B,this._builtInPlugins)}installExternalPlugin(B){B&&this._installPlugin(B,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(B,v){let N=[];N=h(B)?B:[B];const O=N.findIndex(X=>X?.name==="AVChatRoom"),z=O>-1?N.splice(O,1):[];N.forEach(X=>{this._isPluginInstalled(X.name)||(X&&ye(X.install)?(v.add(X.name),ye(X.getInstalledSubPlugins)?(z?.forEach(rA=>v.add(rA?.name)),X.install(js.getInstance().exposeApiForPlugin(),z)):X.install(js.getInstance().exposeApiForPlugin()),ye(X.handleLoginSuccess)&&this._isLoggedIn()&&X.handleLoginSuccess()):ye(X)?(v.add(X.name),X(js.getInstance().exposeApiForPlugin()),ye(X.handleLoginSuccess)&&this._isLoggedIn()&&X.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(B){return this._builtInPlugins.has(B)||this._externalPlugins.has(B)}_isLoggedIn(){var B;return((B=De.store.get("login"))===null||B===void 0?void 0:B.isLoggedIn)===!0}}var $g=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(p){return this._conversationMap.get(p)}updateConversation(p,B,v){const{emit:N=!0,needSort:O=!1}=v||{},z=this._conversationMap.get(p);z&&!Rs(B)&&(Object.keys(B).forEach(X=>{z[X]=B[X]}),N&&De.notificationCenter.emitInnerEvent(ui.CONVERSATION_UPDATED,{needSort:O}))}deleteConversation(p){this._conversationMap.has(p)&&(this._conversationMap.delete(p),De.notificationCenter.emitInnerEvent(ui.CONVERSATION_UPDATED))}},Za=new class{constructor(){this._groupMap=new Map}getGroupMap(){return this._groupMap}getGroup(p){return this._groupMap.get(p)}updateGroup(p,B){const v=this._groupMap.get(p);v&&!Rs(B)&&Object.keys(B).forEach(N=>{v[N]=B[N]})}},Nl=new class{constructor(){this._messagesByConversation=new Map}updateMessage(p,B,v){var N;const{operation:O,updateUnreadCount:z=!0}=v,X=Do(v,["operation","updateUnreadCount"]),rA=[];for(const DA of B){const GA=(N=this._messagesByConversation.get(p))===null||N===void 0?void 0:N.get(DA);if(!GA)return!1;Object.keys(X).forEach(VA=>{GA[VA]=X[VA]}),rA.push(GA)}return this._emitMessageStoreOperationEvent(O,{conversationID:p,messageList:rA,updateUnreadCount:z}),rA}getMessagesByConversation(p){var B;return[...((B=this._messagesByConversation.get(p))===null||B===void 0?void 0:B.values())||[]]}getMessages(){return this._messagesByConversation}_emitMessageStoreOperationEvent(p,B){const{conversationID:v}=B;Xr(v)?De.notificationCenter.emitInnerEvent(ag[p],B):De.notificationCenter.emitInnerEvent(p,B)}},Aa=new class{constructor(){this.userProfileMap=new Map,this.friendMap=new Map}getUserProfileMap(){return this.userProfileMap}getFriendMap(){return this.friendMap}getUserProfile(p){return this.userProfileMap.get(p)}getFriend(p){return this.friendMap.get(p)}},gh=Object.freeze({__proto__:null,conversationStore:$g,groupStore:Za,messageStore:Nl,userStore:Aa});class js{static getInstance(){return js._instance||(js._instance=new js),js._instance}static setInstance(B){js._instance=B}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:De.notificationCenter.subscribeOuterEvent.bind(De.notificationCenter),off:De.notificationCenter.unSubscribeOuterEvent.bind(De.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:Oo.getInstance().installExternalPlugin.bind(Oo.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(B){De.ssoLog.debug("registerPlugin",B)}statKeyFeatureUsage(B){De.ssoLog.debug("statTUIKeyFeatures",B)}setLogLevel(B){De.ssoLog.debug("setLogLevel",B),De.ssoLog.setLogLevel(B)}setApplicationID(B){De.store.set("instance",{applicationID:B})}getApiMap(){return this._apiMap}setApiMap(B){this._apiMap=B}registerApi(B){const{common:{timeManager:v},utils:{safeStringify:N}}=De,{apiName:O,context:z,methodName:X=O,matcher:rA}=B;this._apiHandlersMap[O]||(this._apiHandlersMap[O]=[]),this._apiHandlersMap[O].push({context:z,methodName:X,matcher:rA}),this._apiMap[O]&&this._apiHandlersMap[O].length!==1||(this._apiMap[O]=(...DA)=>{const GA=v.getServerTimeMs();let VA=0;O==="login"&&(VA=4),rr.includes(O)&&De.ssoLog.debug(O,`${O} start params: ${N(DA)}`),_l(X,DA);const te=this._apiHandlersMap[O];for(const Ce of te)if(!Ce.matcher||Ce.matcher(DA))try{const Ke=Ce.context[Ce.methodName].bind(Ce.context)(...DA);return this._isPromiseLike(Ke)?this._handleAsyncResult(Ke,O,VA,GA):(this._reportApiSuccessLog({result:Ke,apiName:O,eventType:VA,startTime:GA}),Ke)}catch(Ke){throw De.ssoLog.error(O,`${O} fail ${Ke?.message||Ke?.errorMessage})`,{error:Ke,costTime:v.getServerTimeMs()-GA,eventType:VA,method:O}),Ke}})}registerExperimentalAPI(B,v,N){const O=N||B;this._experimentalApiMap[B]=v[O].bind(v)}destroy(){return pA(this,void 0,void 0,function*(){var B,v;try{!((B=De.store.get("login"))===null||B===void 0)&&B.isLogin&&(yield this._apiMap.logout()),De.notificationCenter.emitInnerEvent(ui.DESTROY)}catch(N){console.debug("destroy error: ",N)}finally{De.notificationCenter.emitOuterEvent(Dn.SDK_DESTROY,{SDKAppID:(v=De.store.get("instance"))===null||v===void 0?void 0:v.sdkAppId}),ws.clear(),Oo.getInstance().clear(),tn.getInstance().destroy(),De.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:ui,InnerEventSubType:De.notificationCenter.InnerEventSubType,OuterEvent:Dn,OuterConstant:hs,SignalingEvent:so,helper:Object.assign(Object.assign(Object.assign({},De.utils),De.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:Sr,registerValidateConfig:Mc,checkBusinessCapabilityBits:Wc,registerWorkflowStep:tn.getInstance().registerWorkflowStep.bind(tn.getInstance()),ChatError:rs}),apiMap:this._apiMap},De),{constants:Object.assign(Object.assign({},HI),De.constants),common:Object.assign(Object.assign(Object.assign({},Lg),De.common),{workflowManager:tn.getInstance()}),utils:De.utils,appStore:gh})}callExperimentalAPI(B,v){return De.ssoLog.debug(`callExperimentalAPI.${B} start params: ${De.utils.safeStringify(v)}`),this._experimentalApiMap[B]?this._experimentalApiMap[B](v):(De.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${B} not found, params: ${De.utils.safeStringify(v)}`),Promise.reject(new rs({code:Lo.INVALID_OPERATION})))}_isPromiseLike(B){return B!==null&&typeof B=="object"&&typeof B.then=="function"}_handleAsyncResult(B,v,N,O){return B.then(z=>(this._reportApiSuccessLog({result:z,apiName:v,eventType:N,startTime:O}),z)).catch(z=>{throw De.ssoLog.error(v,`${v} fail ${z?.message||z?.errorMessage})`,{error:z,costTime:De.common.timeManager.getServerTimeMs()-O,eventType:N,method:v,startTime:O}),z})}_reportApiSuccessLog(B){let{result:v,apiName:N,startTime:O,eventType:z}=B;const{timeManager:X}=De.common,{successLog:{message:rA,moreMessage:DA}={message:"",moreMessage:""}}=v||{},GA=X.getServerTimeMs();N==="login"&&(O+=X.getTimeOffsetWithServer()),rr.includes(N)&&De.ssoLog.info(N,`${N} success ${rA} ${DA}`,{costTime:GA-O,eventType:z,message:rA,moreMessage:DA,startTime:O}),v?.successLog&&delete v.successLog}}class ZI{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:B,store:v}=De;v.set("login",{isReady:!1}),js.getInstance().registerApi({apiName:"login",context:this}),js.getInstance().registerApi({apiName:"logout",context:this}),js.getInstance().registerApi({apiName:"getLoginUser",context:this}),js.getInstance().registerApi({apiName:"isReady",context:this}),js.getInstance().registerApi({apiName:"getServerTime",context:this}),js.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),B.subscribeInnerEvent(ui.RECONNECTED,this._reLogin,this),De.notificationCenter.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}login(B){return pA(this,void 0,void 0,function*(){var v;const{sdkEdition:N}=De.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new rs({functionName:"login",code:Lo.REPEAT_LOGIN});const O=yield this._performLogin(B);this._validateAfterLogin(O),this._handleLoginSuccess(O),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const z=(v=De.channel.getSocketAdapter())===null||v===void 0?void 0:v.getId(),{appId:X,href:rA}=De.store.get("instance")||{},{instanceID:DA,customStatus:GA}=O||{};return{code:0,data:O,successLog:{message:N,moreMessage:`socketID:${z} instanceID:${DA} customStatus:${GA} href: ${rA} appId: ${X}`}}}catch(O){const{errorCode:z}=O;z!==Lo.REPEAT_LOGIN&&(this._latestLoginAt=0);const X=new rs({functionName:"login",code:z});throw console.error(X),X}})}_reLogin(){return pA(this,void 0,void 0,function*(){var B;try{if(!this._isLoginIn())return;const v=yield Tu(this._customLoginInfo);if(v){const{instanceID:N,customStatus:O}=v;De.store.set("login",{statusInstanceId:N}),tn.getInstance().executeWorkflow(nr.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:O,statusType:Ru.USER_STATUS_ONLINE});const z=(B=De.channel.getSocketAdapter())===null||B===void 0?void 0:B.getId();De.ssoLog.info("reLogin",`socketId:${z} instanceId:${N}`)}}catch(v){console.warn(v)}})}logout(){return pA(this,arguments,void 0,function*(B=za.USER_INITIATED){const{ssoLog:v}=De;v.debug("logout",`logout start logoutReason: ${B}`);try{yield this._performLogout(B),v.info("logout","logout success"),De.ssoLog.uploadSSOLogData()}catch(N){const{errorCode:O}=N;throw new rs({functionName:"logout",code:O})}finally{this.handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?qn():""}isReady(){var B;return(B=De.store.get("login"))===null||B===void 0?void 0:B.isReady}setCustomLoginInfo(B=""){this._customLoginInfo=B}handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),tn.getInstance().reset(),De.notificationCenter.emitInnerEvent("logout")}getServerTime(){const{timeManager:B}=De.common;return B.getServerTimeMs()}_updateAndEmitSDKReady(){De.store.set("login",{isReady:!0}),setTimeout(()=>{De.notificationCenter.emitOuterEvent(Dn.SDK_READY,{name:Dn.SDK_READY})},1)}_updateAndEmitSDKNotReady(){De.store.set("login",{isReady:!1}),De.notificationCenter.emitOuterEvent(Dn.SDK_NOT_READY,{name:Dn.SDK_NOT_READY})}_validateAfterLogin(B){const v="login";if(!B)throw new rs({functionName:v,message:"login response is empty"});const{tinyID:N,a2Key:O}=B||{};if(!N)throw new rs({functionName:v,code:Lo.NO_TINYID});if(!O)throw new rs({functionName:v,code:Lo.NO_A2KEY})}_createRepeatLoginResponse(){var B;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:wl({code:"RepeatLogin",replacement1:(B=De.store.get("login"))===null||B===void 0?void 0:B.userId}),repeatLogin:!0}}}_performLogin(B){return pA(this,void 0,void 0,function*(){const{userID:v,userSig:N}=B;return De.store.set("login",{userId:v,userSig:N}),this._latestLoginAt=Date.now(),Tu(this._customLoginInfo)})}_ensureAsyncComplete(){return pA(this,void 0,void 0,function*(){yield new Promise(B=>{setTimeout(()=>B(null),1)})})}_handleLoginSuccess(B){const{timeManager:v}=De.common,{helloInterval:N,timeStamp:O,customStatus:z,purchaseBits:X}=B,rA=1e3*O;v.calculateTimeOffsetWithServer(this._latestLoginAt,rA),this._helloInterval=N||120,this._updateLoginStore(B),De.user.userStatus.setCustomStatus(z),tn.getInstance().executeWorkflow(nr.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:X}),De.common.taskScheduler.addTask({id:wu,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(B){return function(v){return pA(this,void 0,void 0,function*(){const{logoutReason:N}=v,O="im_open_status.wslogout",z=De.common.generateProtocolData({servcmd:O,data:{wslogout_type:N,isWebUniapp:0}}),X=`${z.head.seq}${O}`;return yield De.channel.sendPacket(z,{requestId:X})})}({logoutReason:B})}_updateLoginStore(B){const{a2Key:v,tinyID:N,instanceID:O,authKey:z}=B;De.store.set("login",{a2Key:v,tinyID:N,statusInstanceId:O,authKey:z,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return pA(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const B="im_open_status.wshello",v=De.common.generateProtocolData({servcmd:B,data:{isWebUniapp:0}}),N=`${v.head.seq}${B}`;return De.channel.sendPacket(v,{requestId:N})}()}catch(B){De.ssoLog.warn("_sendOnlinePresenceRequest",` error:${B.message}`)}})}_isLoginIn(){var B;return((B=De.store.get("login"))===null||B===void 0?void 0:B.isLoggedIn)===!0}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){De.common.taskScheduler.removeTask(wu),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",De.store.clear("login"),De.store.set("login",{isReady:!1}),De.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:B}=De;B.unSubscribeInnerEvent(ui.RECONNECTED,this._reLogin,this),B.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}}const Us={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},_c={logout:!0};class Ac{constructor(){this.loginAction=new ZI,this.kickedOutHandler=new Sc,this.loginAction.init(),this.kickedOutHandler.init(),Mc({auth:_c,params:Us})}}var dr,Vr,Xa;(function(p){p.CONV_C2C="C2C",p.CONV_GROUP="GROUP",p.CONV_TOPIC="TOPIC",p.CONV_SYSTEM="@TIM#SYSTEM"})(dr||(dr={})),function(p){p.MSG_PRIORITY_HIGH="High",p.MSG_PRIORITY_NORMAL="Normal",p.MSG_PRIORITY_LOW="Low",p.MSG_PRIORITY_LOWEST="Lowest"}(Vr||(Vr={})),function(p){p.MSG_TEXT="TIMTextElem",p.MSG_CUSTOM="TIMCustomElem",p.MSG_LOCATION="TIMLocationElem",p.MSG_FACE="TIMFaceElem",p.MSG_IMAGE="TIMImageElem",p.MSG_AUDIO="TIMSoundElem",p.MSG_FILE="TIMFileElem",p.MSG_VIDEO="TIMVideoFileElem",p.MSG_GRP_TIP="TIMGroupTipElem",p.MSG_GRP_SYS_NOTICE="TIMGroupSystemNoticeElem",p.MSG_MERGER="TIMRelayElem"}(Xa||(Xa={}));const bE={1:Vr.MSG_PRIORITY_HIGH,2:Vr.MSG_PRIORITY_NORMAL,3:Vr.MSG_PRIORITY_LOW,4:Vr.MSG_PRIORITY_LOWEST},hC=0,ch=1;var ro;(function(p){p.IN="in",p.OUT="out"})(ro||(ro={}));const Tc=2,Gl={};function BC(p){if(!p)return 0;if(Gl[p]===void 0){const B=new Date,v=`3${B.getHours()}`.slice(-2),N=`0${B.getMinutes()}`.slice(-2),O=`0${B.getSeconds()}`.slice(-2);Gl[p]=parseInt([v,N,O,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${Gl[p]}`)}else Gl[p]+=1;return Gl[p]}class QC{constructor(B){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=Vr.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:v=De.common.timeManager.getServerTimeSeconds()||0,senderTinyID:N,currentUser:O,needReadReceipt:z,isSupportExtension:X,customModerationConfigurationId:rA,to:DA,from:GA,nick:VA="",avatar:te="",time:Ce,messageControlInfo:Ke,tinyID:ot,cloudCustomData:at="",messageLifeTime:kt,messageVersion:Vt=0,conversationType:Ui,sequence:ao,checkResult:Zi=0,isPlaceMessage:Ei=0,messageFlagBits:Po,receiverList:As,isSystemMessage:pi=!1,status:ji=wg.SUCCESS,revokeReason:Ws="",conversationSubType:Te,clientSequence:Rt,protocol:FA="JSON",revokerInfo:zt={userID:"",nick:"",avatar:""},readReceiptInfo:En={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:Xt,groupProfile:us,atUserList:vi,flow:ho,isRead:Ct=!1,priority:Bt=Vr.MSG_PRIORITY_NORMAL,onlineOnlyFlag:ug=!1,nameCard:ks="",quoteInfo:Wi}=B;var Hr;this.clientTime=v,this.senderTinyID=N||ot,this.needReadReceipt=z===!0||z===1,this.isSupportExtension=X===!0||X===1,this._cmConfigID=rA,this.to=DA,this.nick=VA,this.avatar=te,this.protocol=FA,this.random=Xt===void 0?(Hr=Hr||99999999,Math.round(Math.random()*Hr)):Xt,this.time=Ce||Math.ceil(Date.now()/1e3),this._isExcludedFromLastMessage=!!Ke?.excludedFromLastMessage,this._isExcludedFromUnreadCount=!!Ke?.excludedFromUnreadCount,this.isModified=!!Vt,this.cloudCustomData=at,this.messageLifeTime=kt,this.from=GA||null,this.sequence=ao||0,this.conversationType=Ui||dr.CONV_C2C,this.hasRiskContent=Zi>1,this.version=Vt,this.isPlaceMessage=Ei,this.isRevoked=Ei===2||Po===8,this.isSystemMessage=pi,this.readReceiptInfo=En,this.revokeReason=Ws,this.revokerInfo=zt,this._receiverList=As,this.conversationSubType=Te,this.revoker=zt?.revoker||"",this.clientSequence=Rt||ao||0,this.status=ji,this.atUserList=vi||[],this.flow=ho,this.isRead=Ct,this.priority=Bt,this._onlineOnlyFlag=ug,this.nameCard=ks,this.quoteInfo=Wi,this.reInitialize(O),this._initC2CReadReceiptInfo(B),this._extractGroupInfo(us)}getElements(){return this._elements}isOnlineMessage(){return this.messageLifeTime===0}setElement(B){Array.isArray(B)?this._elements=B:this._elements=[B],this._updatePayloadAndType()}transformElementsToServerFormat(){return this._elements?Array.isArray(this._elements)?this._elements.map(B=>B.transformToServerFormat()):this._elements.transformToServerFormat():null}setRelayFlag(B){this._relayFlag=B}validateBeforeSend(){var B,v,N;return this._relayFlag?{isValid:!0}:((B=this._elements)===null||B===void 0?void 0:B.length)>0?(N=(v=this._elements[0])===null||v===void 0?void 0:v.validateBeforeSend)===null||N===void 0?void 0:N.call(v):{isValid:!1}}_updatePayloadAndType(){this._elements[0]&&(this.payload=this._elements[0].content,this.type=this._elements[0].type)}_initC2CReadReceiptInfo(B){const{readReceiptSentByPeer:v,timestamp:N=0}=B;this.conversationType===dr.CONV_C2C&&this.needReadReceipt===!0&&(this.readReceiptInfo.isPeerRead=v===1,this.readReceiptInfo.timestamp=N)}_extractGroupInfo(B){if(!B)return;const{From_AccountNick:v,From_AccountHeadurl:N,MsgFrom_AccountExtraInfo:O,GroupType:z}=B,{NameCard:X}=O||{};typeof v=="string"&&(this.nick=v),typeof N=="string"&&(this.avatar=N),typeof X=="string"&&(this.nameCard=X),this.conversationSubType=z}reInitialize(B){B===this.from&&(this.isRead=!0),this._initSequence(B),this._concatConversationID(B),this.generateMessageID()}_concatConversationID(B){let v="";const N=this.conversationType;N!==dr.CONV_SYSTEM?(v=N===dr.CONV_C2C?B===this.from?this.to:this.from:this.to,this.conversationID=v?`${N}${v}`:null):this.conversationID=dr.CONV_SYSTEM}_initSequence(B){this.clientSequence===0&&B&&(this.clientSequence=BC(B)),this.sequence===0&&this.conversationType===dr.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===dr.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(B){this.isRead=B}}class bl{static parseServerPushElement(B){const{MsgContent:v={}}=B,{Data:N,Ext:O,Desc:z}=v;return new bl({data:N,description:z,extension:O})}constructor(B){this.type=Xa.MSG_CUSTOM;const{data:v="",description:N="",extension:O=""}=B;this.content={data:v,description:N,extension:O}}transformToServerFormat(B){const{isMergerMessage:v=!1}=B||{},N=v?this.payload:this.content,{data:O,description:z,extension:X}=N;return{MsgType:this.type,MsgContent:{Data:O,Ext:X,Desc:z}}}validateBeforeSend(){const{isEmpty:B}=De.utils,v=[this.content.data,this.content.description,this.content.extension].some(N=>!B(N));return{isValid:v,error:v?null:{message:"content can not be empty"}}}}class XI{static parseServerPushElement(B){const{MsgContent:v={Text:""}}=B,{Text:N}=v;return new XI({text:N})}constructor(B){this.type=zg.MSG_TEXT,this.content={text:B.text||""}}validateBeforeSend(){var B,v;return((v=(B=this.content)===null||B===void 0?void 0:B.text)===null||v===void 0?void 0:v.length)>0?{isValid:!0}:{isValid:!1,error:{message:"content can not be empty"}}}transformToServerFormat(B){const{isMergerMessage:v=!1}=B||{},N=v?this.payload:this.content,{text:O}=N;return{MsgType:this.type,MsgContent:{Text:O}}}}var BI=new class{constructor(){this._elementClassMap={[Xa.MSG_CUSTOM]:bl,[Xa.MSG_TEXT]:XI}}init(){js.getInstance().registerApi({apiName:"createCustomMessage",context:this}),js.getInstance().registerApi({apiName:"createTextMessage",context:this})}registerElementClass(p,B){var v;(v=B).prototype!==void 0&&"constructor"in v.prototype&&(this._elementClassMap[p]=B)}getElementClass(p){return this._elementClassMap[p]}createMessage(p){const{from:B,flow:v=ro.OUT}=p,{userId:N}=De.store.get("login")||{};this._isSendByCurrentInstance({from:B,flow:v,currentUser:N})?this._updateWithSenderInfo(p):this._isMultiEndpointSyncMessage({from:B,flow:v,currentUser:N})&&(p.flow=ro.OUT);const O=Object.assign(Object.assign({},p),{currentUser:N});return new QC(O)}createCustomMessage(p){const B=qn(),v=this.createMessage(Object.assign(Object.assign({},p),{from:B})),N=this._elementClassMap[Xa.MSG_CUSTOM];if(!v)return null;if(N){const O=new N(p.payload);v.setElement(O)}return v}createTextMessage(p){var B;if(!p)return null;const v=typeof p.payload=="string"?p.payload:((B=p?.payload)===null||B===void 0?void 0:B.text)||"",N=new XI({text:v}),O=qn(),z=De.message.messageFactory.createMessage(Object.assign(Object.assign({},p),{from:O}));return z.setElement(N),z}_updateWithSenderInfo(p){var B,v;const{nick:N,avatar:O,conversationType:z,to:X}=p,{userId:rA,tinyID:DA}=De.store.get("login")||{},GA=Aa.getUserProfile(rA);return p.nick=N||GA?.nick||"",p.avatar=O||GA?.avatar||"",p.tinyID=p.tinyID||DA||"",p.from=rA,p.status=wg.UNSENT,p.flow=ro.OUT,z===_g.CONV_GROUP&&(p.nameCard=(v=(B=Za.getGroup(X))===null||B===void 0?void 0:B.selfInfo)===null||v===void 0?void 0:v.nameCard),p}_isMultiEndpointSyncMessage(p){const{from:B,flow:v,currentUser:N}=p;return B===N&&v===ro.IN}_isSendByCurrentInstance(p){const{from:B,flow:v,currentUser:N}=p;return B===N&&v===ro.OUT}};const QI={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}},kE={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},kl={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function Ll(p,B){return Object.keys(B).forEach(v=>{const{range:N,defaultValue:O}=B[v];p[v]=N.includes(p[v])?p[v]:O}),p}function Ug(p){const B=p.lastIndexOf(".");return B===-1?p:p.slice(0,B)}function ec(p){const{androidInfo:B={},androidOPPOChannelID:v=""}=p,N=B.OPPOChannelID||v,O=Ll(B,kE),{sound:z="",FCMChannelID:X=""}=O,rA=Do(O,["sound","FCMChannelID"]);return Object.assign(Object.assign({},rA),{Sound:Ug(z),OPPOChannelID:N,GoogleChannelID:X})}function md(p){const{apnsInfo:B={},ignoreIOSBadge:v=!1,disableVoipPush:N}=p,O=Ll(B,kl),{ignoreIOSBadge:z,disableVoipPush:X,enableIOSBackgroundNotification:rA}=O,DA=Do(O,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),GA=z===!0||v===!0?1:0;let VA;return r(N)||(VA=N===!1?1:0),r(X)||(VA=X===!1?1:0),Object.assign(Object.assign({},DA),{BadgeMode:GA,IsVoipPush:VA,ContentAvailable:rA?1:0})}function LE(p){return De.utils.isPlainObject(p)?{PushFlag:p.disablePush===!0?1:0,Title:p.title||"",Desc:p.description||"",Ext:p.extension||"",ApnsInfo:md(p),AndroidInfo:ec(p)}:QI}function Nc(p){const{From_AccountHeadurl:B,From_AccountNick:v,IsNeedReadReceipt:N,IsPeerRead:O,IsSyncMsg:z,MsgBody:X,MsgClientTime:rA,MsgLifeTime:DA,MsgRandom:GA,MsgSeq:VA,MsgTimeStamp:te,SendMsgControl:Ce,SupportMessageExtension:Ke,TinyId:ot,MsgCheckResult:at,CloudCustomData:kt,MsgVersion:Vt,MsgFlagBits:Ui,RevokerInfo:ao,InnerSdkCustomData:Zi}=p;let Ei,{From_Account:Po,To_Account:As}=p;if(z===1){const pi=As;As=Po,Po=pi}if(ao){const{Reason:pi,Revoker_Account:ji,Revoker_FromUin:Ws}=ao;Ei={reason:pi,revoker:ji,revokerFromUin:Ws,userID:ji}}return{from:Po,avatar:B,nick:v,needReadReceipt:N===1,isSyncMessage:z,clientTime:rA,messageLifeTime:DA,random:GA,sequence:VA,time:te,messageControlInfo:{excludedFromLastMessage:Ce?.NoLastMsg===1,excludedFromUnreadCount:Ce?.NoUnread===1},isSupportExtension:Ke,to:As,tinyID:ot,checkResult:at,cloudCustomData:kt,revokerInfo:Ei,messageVersion:Vt,messageFlagBits:Ui,readReceiptSentByPeer:O,elements:$a(X),onlineOnlyFlag:DA===0,quoteInfo:Fu(Zi)}}function $I(p){const{From_Account:B,MsgBody:v,MsgClientTime:N,MsgRandom:O,MsgSeq:z,MsgTimeStamp:X,To_Account:rA,MsgVersion:DA,CloudCustomData:GA,MsgCheckResult:VA}=p;return{from:B,clientTime:N,random:O,sequence:z,time:X,to:rA,elements:$a(v),messageVersion:DA,cloudCustomData:GA,checkResult:VA}}function lo(p){const{ClientSeq:B,From_Account:v,GroupInfo:N,MsgBody:O,MsgClientTime:z,MsgRandom:X,MsgSeq:rA,MsgTimeStamp:DA,SendMsgControl:GA,SupportMessageExtension:VA,TinyId:te,CloudCustomData:Ce,MsgVersion:Ke,MsgCheckResult:ot,NeedReadReceipt:at,IsPlaceMsg:kt,RevokerInfo:Vt,GroupAtInfo:Ui,OnlineOnlyFlag:ao,InnerSdkCustomData:Zi}=p;let Ei,Po=Vr.MSG_PRIORITY_NORMAL;if(Object.keys(bE).includes(String(p.MsgPriority))&&(Po=bE[p.MsgPriority]),Vt){const{Reason:pi,Revoker_Account:ji,Revoker_FromUin:Ws}=Vt;Ei={reason:pi,revoker:ji,revokerFromUin:Ws,userID:ji}}const As=function(pi){const ji=[];return Array.isArray(pi)&&pi.forEach(Ws=>{Ws.GroupAtAllFlag===hC?ji.push(Ws.GroupAt_Account):Ws.GroupAtAllFlag===ch&&ji.push(hs.MSG_AT_ALL)}),ji}(Ui);return{clientSequence:B,from:v,groupProfile:N,clientTime:z,priority:Po,random:X,sequence:rA,time:DA,messageControlInfo:{excludedFromLastMessage:GA?.NoLastMsg===1,excludedFromUnreadCount:GA?.NoUnread===1},isSupportExtension:VA,tinyID:te,cloudCustomData:Ce,messageVersion:Ke,checkResult:ot,needReadReceipt:at,isPlaceMessage:kt,revokerInfo:Ei,atUserList:As,elements:$a(O),to:UE(p),onlineOnlyFlag:ao===1,quoteInfo:Fu(Zi)}}function UE(p){const{utils:{isEmpty:B},constants:{IS_TOPIC_MESSAGE:v}}=De,{ToGroupId:N,GroupInfo:{MillionGroupFlag:O=0,TopicId:z}={}}=p;return O!==v||B(z)?N:z}function $a(p){if(!p)return null;if(Array.isArray(p))return p.map(v=>{const N=De.message.messageFactory.getElementClass(v.MsgType);return N?.parseServerPushElement(v)});const B=De.message.messageFactory.getElementClass(p.MsgType);return B?.parseServerPushElement(p)}function Au(p){const{From_Account:B,MsgBody:v,MsgClientTime:N,MsgRandom:O,MsgSeq:z,MsgTimeStamp:X,GroupId:rA,TopicId:DA,MsgVersion:GA,CloudCustomData:VA,MsgCheckResult:te}=p;return{from:B,clientTime:N,random:O,sequence:z,time:X,groupID:rA,topicID:DA,elements:$a(v),messageVersion:GA,cloudCustomData:VA,checkResult:te}}function Fu(p){const{utils:{isString:B,safeStringify:v},ssoLog:N}=De;if(!B(p))return null;try{const{messageID:O,messageTime:z,messageSequence:X}=JSON.parse(p).businessQuote;return{msgID:O,messageTime:z,messageSequence:X}}catch(O){return N.debug("_parseServerQuoteInfo",v(O)),null}}function Gc({conversationUpdateFields:p,message:B}){const{conversationID:v,conversationType:N,conversationSubType:O,flow:z,_isExcludedFromUnreadCount:X,_isExcludedFromLastMessage:rA}=B,DA=rA?"":ol(B),GA=!X&&z===ro.IN;p.has(v)?(p.get(v).lastMessage=DA,GA&&p.get(v).unreadCount++):p.set(v,{conversationID:v,type:N,subType:O,unreadCount:GA?1:0,lastMessage:DA})}function pI(p){return p.filter(B=>{const v=!Rs(B?._elements),N=B?.isPlaceMessage===1;return v||De.ssoLog.error("emptyMessageBody",`from:${B.from} to:${B.to} sequence:${B.sequence}`),v&&!N})}function sl(p){const{messageDataHandler:B}=De.message;return!B.isInMessageList(p)&&!B.isMessageSentByCurrentInstance(p)}var nl=Object.freeze({__proto__:null,autoIncrementIndex:BC,createAndroidPushInfo:ec,createApnsPushInfo:md,createOfflinePushInfo:LE,filterValidMessages:pI,getAndroidSoundName:Ug,parseServerGroupMessage:lo,parseServerPushC2CModifyMessage:$I,parseServerPushGroupModifyMessage:Au,parseServerPushMessage:Nc,parseServerPushMessageElement:$a,shouldStoreMessage:sl,updateConversationFields:Gc});const{isPlainObject:xa}=De.utils;function FE(p,B={}){const{onlineUserOnly:v,messageControlInfo:N}=B;let{offlinePushInfo:O}=B;p.conversationType===dr.CONV_C2C&&v===!0&&(O?O.disablePush=!0:O={disablePush:!0});let z="";typeof p.cloudCustomData=="string"&&p.cloudCustomData.length>0&&(z=p.cloudCustomData);const X=[];if(N&&xa(N)){const{excludedFromUnreadCount:rA,excludedFromLastMessage:DA,excludedFromContentModeration:GA}=N;rA===!0&&X.push("NoUnread"),DA===!0&&X.push("NoLastMsg"),GA===!0&&X.push("NoMsgCheck")}return{onlineUserOnly:v,cloudCustomData:z,messageControlInfo:X,offlinePushInfo:O}}function ra(p){const{webhookInfo:{disableCloudMessagePreHook:B=!1,disableCloudMessagePostHook:v=!1}={}}=p||{};if(!B&&!v)return;const N=[];return B&&N.push("ForbidBeforeSendMsgCallback"),v&&N.push("ForbidAfterSendMsgCallback"),N}function Mn(p,B){return pA(this,void 0,void 0,function*(){const v=p.conversationType===dr.CONV_GROUP?function(O,z){var X;const rA=FE(O,z),{onlineUserOnly:DA,cloudCustomData:GA,messageControlInfo:VA,offlinePushInfo:te}=rA,Ce=JSON.parse(JSON.stringify(O.transformElementsToServerFormat()));let Ke;return h(O._receiverList)&&O._receiverList.length>0&&(Ke=O._receiverList,O._receiverList.length>50&&(Ke=O._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:(X=De.store.get("login"))===null||X===void 0?void 0:X.userId,GroupId:O.to,MsgBody:Ce,CloudCustomData:GA,Random:O.random,MsgPriority:O.priority,ClientSeq:O.clientSequence,GroupAtInfo:O._groupAtInfoList,OnlineOnlyFlag:DA?1:0,MsgClientTime:O.clientTime,OfflinePushInfo:LE(te),SendMsgControl:DA?void 0:VA,NeedReadReceipt:O.needReadReceipt===!0?1:0,To_Account:Ke,SupportMessageExtension:O.isSupportExtension===!0?1:0,IsRelayMsg:O._relayFlag===!0?1:0,CustomModerationConfigID:O._cmConfigID,ForbidCallbackControl:ra(z),InnerSdkCustomData:OE(O)}}}(p,B):function(O,z){var X;const rA=FE(O,z),{onlineUserOnly:DA,cloudCustomData:GA,messageControlInfo:VA,offlinePushInfo:te}=rA,Ce=DA===!0?0:void 0,Ke=JSON.parse(JSON.stringify(O.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:(X=De.store.get("login"))===null||X===void 0?void 0:X.userId,To_Account:O.to,MsgBody:Ke,CloudCustomData:GA,MsgSeq:O.sequence,MsgRandom:O.random,MsgLifeTime:Ce,From_AccountNick:O.nick,From_AccountHeadurl:O.avatar,SendMsgControl:Ce!==0?VA:void 0,MsgClientTime:O.clientTime,IsNeedReadReceipt:O.needReadReceipt===!0?1:0,SupportMessageExtension:O.isSupportExtension===!0?1:0,IsRelayMsg:O._relayFlag===!0?1:0,CustomModerationConfigID:O._cmConfigID,OfflinePushInfo:LE(te),ForbidCallbackControl:ra(z),InnerSdkCustomData:OE(O)}}}(p,B),N=yield Zg(v);return N?{time:N.MsgTime,messageDropReason:N.MsgDropReason,sequence:N.MsgSeq}:null})}function kr(p){return pA(this,void 0,void 0,function*(){const{from:B,to:v,version:N=0,sequence:O,random:z,time:X,type:rA,cloudCustomData:DA}=p,GA={From_Account:B,To_Account:v,MsgVersion:N,MsgSeq:O,MsgRandom:z,MsgTime:X,MsgType:rA,MsgBody:p.transformElementsToServerFormat(),CloudCustomData:DA},VA=yield Zg({servcmd:"openim.modify_c2c_msg",data:GA});if(VA){const{MsgBody:te,MsgVersion:Ce,CloudCustomData:Ke}=VA;return{elements:$a(te),messageVersion:Ce,cloudCustomData:Ke}}})}function rl(p){return pA(this,void 0,void 0,function*(){const{to:B,version:v=0,sequence:N,cloudCustomData:O}=p,z={GroupId:B,MsgVersion:v,MsgSeq:N,MsgBody:p.transformElementsToServerFormat(),CloudCustomData:O},X=yield Zg({servcmd:"openim.modify_group_msg",data:z});if(X){const{MsgBody:rA,MsgVersion:DA,CloudCustomData:GA}=X;return{elements:$a(rA),messageVersion:DA,cloudCustomData:GA}}})}function Ul(p){return pA(this,void 0,void 0,function*(){const{groupID:B,count:v,messageSequence:N,messageSequenceList:O,getType:z}=p,X={GroupId:B,ReqMsgNumber:v,WithRecalledMsg:1,Version:1,GetType:z};return N&&(X.ReqMsgSeq=N),h(O)&&O.length>0&&(X.ReqMsgSeqList=O),yield Zg({servcmd:"group_open_http_svc.group_msg_get",data:X})})}function bc(p){return pA(this,void 0,void 0,function*(){const{peerAccount:B,count:v,lastMessageTime:N,messageKey:O,direction:z}=p;return Zg({servcmd:"openim.getroammsg",data:{Peer_Account:B,MaxCnt:v,WithRecalledMsg:1,LastMsgTime:N,MsgKey:O,GetDirection:z}})})}function OE(p){if(De.utils.isObject(p.quoteInfo)){const{msgID:B,messageSequence:v,messageTime:N}=p.quoteInfo;return JSON.stringify({businessQuote:{messageID:B,messageSequence:v,messageTime:N}})}}var kc=Object.freeze({__proto__:null,createMessagePackOptions:FE,generateForbidCallbackControl:ra,getC2CRoamingMessagesByAnchor:bc,getGroupRoamingMessagesByAnchor:Ul,getRoamingMessages:function(p){return pA(this,void 0,void 0,function*(){const{peerAccount:B,count:v,lastMessageTime:N,messageKey:O}=p;return(yield Zg({servcmd:"openim.getroammsg",data:{Peer_Account:B,MaxCnt:v||15,LastMsgTime:N||0,MsgKey:O,GetDirection:0,WithRecalledMsg:1}}))||[]})},modifyC2CMessage:kr,modifyGroupMessage:rl,sendMessage:Mn});const{isPlainObject:Ou}=De.utils,{MSG_AUDIO:pC,MSG_FILE:eu,MSG_IMAGE:lh,MSG_VIDEO:Pu,MSG_MERGER:mI}=hs;class al{constructor(){this._sendProtocolMap=new Map}init(){js.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:B=>![pC,eu,lh,Pu,mI].includes(B[0].type)})}registerSendProtocol(B,v,N){this._sendProtocolMap.set(B,v.bind(N))}sendMessage(B,v){return pA(this,void 0,void 0,function*(){const{TOTAL_COUNT:N,SEND_COST:O,SUCCESS_COUNT:z,FAILED_COUNT:X}=cI;if(!(B instanceof QC))throw new rs({code:Lo.MSG_INSTANCE_REQUIRED});const rA=B.validateBeforeSend();if(!rA.isValid){const{code:VA,message:te=""}=rA.error||{};throw new rs({code:VA,message:te})}this._reportMessageSendQuality({name:N,message:B});let DA=!1;const{messageDataHandler:GA}=De.message||{};try{const{messageControlInfo:VA}=v||{};let te=null;GA.addRandomOfSentMessage(B.random);const Ce=Date.now(),Ke=this._getSendProtocol(B);if(B.conversationType===dr.CONV_C2C?(DA=v?.onlineUserOnly===!0,te=yield Ke(B,v)):B.conversationType===dr.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(B),te=yield Ke(B,v)),te){const{messageDropReason:ot,sequence:at,time:kt}=te;if(this._updateNickAndAvatarOfSentMessageByMe(B),ot&&this._logRateLimitInfo(B,at,ot),this._reportMessageSendQuality({name:z,message:B}),this._reportMessageSendQuality({name:O,message:B,startTs:Ce}),B.isResend===!0){const Vt=GA.findMessage(B.ID);Vt&&(De.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${Vt.ID}`),GA.deleteConversationMessage(Vt))}return B.status=wg.SUCCESS,B.time=kt,B.conversationType===dr.CONV_GROUP&&(B.sequence=at),DA?B._onlineOnlyFlag=!0:(GA.storeConversationMessage(B),this._applySentMessageControlInfo(B,VA),this._emitOnlineMessageSent(B)),B.type===zg.MSG_STREAM?{code:0,data:{message:B,streamMessageID:te.streamMessageID}}:{code:0,data:{message:B}}}}catch(VA){B.status=wg.FAIL,GA.removeRandomOfSentMessage(B.random);let{errorCode:te}=VA||{},Ce=VA?.errorInfo||VA?.message||"";throw this._hasRiskContent(te)&&(B.hasRiskContent=!0),DA||this._isRejectedByRestApi(te)||GA.storeConversationMessage(B),this._reportMessageSendQuality({name:X,message:B,error:VA}),new rs({code:te,message:Ce,data:{message:B},moreMessage:`type:${B.type} from:${B.from} to:${B.to}`})}})}_hasRiskContent(B){return B===80001||B===80004}_isRejectedByRestApi(B){return B>=10100&&B<=10200||B>=120001&&B<=13e4}_emitOnlineMessageSent(B){const v=B._isExcludedFromLastMessage?"":B,{conversationID:N,conversationType:O}=B,z=Xr(N)?ui.TOPIC_NEW_MESSAGE:ui.NEW_MESSAGE;De.notificationCenter.emitInnerEvent(z,{result:{conversationUpdateFieldList:[{conversationID:N,type:O,message:B,lastMessage:v,unreadCount:0}]}})}_applySentMessageControlInfo(B,v){v&&Ou(v)&&(v.excludedFromLastMessage===!0&&(B._isExcludedFromLastMessage=!0),v.excludedFromUnreadCount===!0&&(B._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(B,v,N){const O=`from:${B.from} to:${B.to} sequence:${v} messageDropReason:${N}`;De.ssoLog.warn("messageDropReason",O)}_updateNickAndAvatarOfSentMessageByMe(B){const{messageDataHandler:v}=De.message||{};let N=!1;const{conversationID:O}=B,z=v.getLatestMsgSentByMe(O);if(z){const{nick:X,avatar:rA}=z;X===B.nick&&rA===B.avatar||(N=!0),N&&v.updateNickAndAvatarOfSentMessage({conversationID:O,latestNick:B.nick,latestAvatar:B.avatar,isSentByMe:!0})}}_validateBeforeSendGroupMessage(B){return pA(this,void 0,void 0,function*(){var v,N,O;const{to:z,from:X}=B;let rA=z,DA=Za.getGroup(rA);if(Ca({groupID:rA})&&DA?.isSupportTopic)throw new rs({code:Lo.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(Xr(z)&&([rA]=z.split(La.TOPIC),DA=Za.getGroup(rA)),!DA&&typeof((v=js.getInstance().getApiMap())===null||v===void 0?void 0:v.getGroupProfile)=="function"){const GA=yield js.getInstance().getApiMap().getGroupProfile({groupID:rA});if(((O=(N=GA?.data)===null||N===void 0?void 0:N.group)===null||O===void 0?void 0:O.type)===hs.GRP_AVCHATROOM){const VA=wl({code:Lo.MSG_SEND_FAIL_NOT_IN_AV,replacement1:X,replacement2:rA});throw new rs({code:Lo.MSG_SEND_FAIL_NOT_IN_AV,message:VA})}}return!0})}_reportMessageSendQuality(B){De.notificationCenter.emitInnerEvent(ui.QUALITY_STAT,{label:Ng.MESSAGE_SEND_SUCCESS_RATE,data:B})}_getSendProtocol(B){return this._sendProtocolMap.get(B.type)||Mn}}var mC=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){De.notificationCenter.subscribeInnerEvent(ui.LOGOUT,this._reset,this),De.notificationCenter.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}get _messagesByConversation(){return Nl.getMessages()}storeConversationMessage(p,B=!1){if(an)return!0;const{conversationID:v}=p;if(!v||(this._messagesByConversation.has(v)||this._messagesByConversation.set(v,new Map),this._shouldSkipStoreMessage(p,B)))return!1;const N=this._getUniqueIdOfMessage(p);return this._messagesByConversation.get(v).set(N,p),this._updateLatestMessageMap(p),!0}_updateLatestMessageMap(p){const{conversationID:B}=p;p.flow==="out"?this._setLatestMsgSentByMe(B,p):B.startsWith("C2C")&&this._setLatestMsgSentByPeer(B,p)}_shouldSkipStoreMessage(p,B){const v=this._getUniqueIdOfMessage(p),N=this._messagesByConversation.get(p.conversationID);if(N?.has(v)){const O=N?.get(v);if(!B||O?.isModified===!0)return!0}return!1}deleteConversationMessage(p){var B;const{conversationID:v=""}=p,N=this._getUniqueIdOfMessage(p);this._messagesByConversation.has(v)&&((B=this._messagesByConversation.get(v))===null||B===void 0||B.delete(N))}modifyConversationMessage(p,B){var v;if(!this._messagesByConversation.has(p)&&!this._sparseMessagesByConversation.has(p))return{isUpdated:!1,message:null};const N=this._getUniqueIdOfMessage(B),O=this._getMessageFromLocalMessage(p,N);if(O){const{messageVersion:z,elements:X,cloudCustomData:rA,checkResult:DA=0}=B,GA=DA>1;if(De.ssoLog.debug("modifyConversationMessage",`conversationToMessageMap modifyConversationMessage localVersion:${O.version} remoteVersion:${z}`),O.version<z){const VA=this._getUniqueIdOfMessage(O),te=or(X);return!((v=this._messagesByConversation.get(p))===null||v===void 0)&&v.has(VA)?Nl.updateMessage(p,[VA],{isModified:!0,version:z,_elements:te,payload:te[0].content,type:te[0].type,cloudCustomData:rA,hasRiskContent:GA,operation:Yr.modify}):(O.version=z,O._elements=te,O.payload=O._elements[0].content,O.type=O._elements[0].type,O.cloudCustomData=rA,O.isModified=!0,O.hasRiskContent=GA),{isUpdated:!0,message:O}}return{isUpdated:!1,message:O}}return{isUpdated:!1,message:null}}_getMessageFromLocalMessage(p,B){var v;if(this._messagesByConversation.has(p))return(v=this._messagesByConversation.get(p))===null||v===void 0?void 0:v.get(B);if(this._sparseMessagesByConversation.has(p)){const N=[...this._sparseMessagesByConversation.get(p).values()];for(let O=0;O<N.length;O++)if(this._getUniqueIdOfMessage(N[O])===B)return N[O]}return null}findMessage(p){let B=null;const v=Array.from(this._messagesByConversation.values());for(const N of v)if(B=Array.from(N.values()).find(O=>O.ID===p)||null,B)break;if(!B){const N=Array.from(this._sparseMessagesByConversation.values());for(const O of N)if(B=O.get(p)||null,B)break}return B}deleteConversationMessageList(p){this._messagesByConversation.has(p)&&(this._messagesByConversation.delete(p),this._latestMessageSentByMeMap.delete(p),this._latestMessageSentByPeerMap.delete(p)),this._sparseMessagesByConversation.has(p)&&this._sparseMessagesByConversation.delete(p)}revokeMessage({conversationID:p,sequence:B,random:v,revoker:N}){const O=this._messagesByConversation.get(p);let z=null;if(O){const X=Array.from(O.values());if(z=this._findMessageBySequenceAndRandom({messageList:X,random:v,sequence:B}),z){const rA=this._getUniqueIdOfMessage(z);return Nl.updateMessage(p,[rA],{isRevoked:!0,revoker:N,operation:Yr.revoke}),z}}if(this._sparseMessagesByConversation.has(p)){const X=Array.from(this._sparseMessagesByConversation.get(p).values());if(z=this._findMessageBySequenceAndRandom({messageList:X,random:v,sequence:B}),z)return z.isRevoked=!0,z.revoker=N,z}}_findMessageBySequenceAndRandom({messageList:p,sequence:B,random:v}){for(let N=0;N<p.length;N+=1){const O=p[N];if(O.sequence===B&&(r(v)||O.random===v))return O}return null}prependLocalMessageList(p){const{messageList:B,conversationID:v}=p;if(B.length===0)return[];if(an)return B;const N=[],O=[],z=this._messagesByConversation.get(v)||new Map;for(const X of B){const rA=this._getUniqueIdOfMessage(X);z.has(rA)||(N.push(X),O.push([rA,X]))}if(O.length>0){const X=new Map([...O,...z.entries()]);this._messagesByConversation.set(v,X),this._updateLatestMessageSentByMe(v),this._updateLatestMessageSentByPeer(v)}return N}storeSparseMessageList(p){if(p.length===0)return;const{conversationID:B}=p[0],v=p.length;this._sparseMessagesByConversation.has(B)||this._sparseMessagesByConversation.set(B,new Map);const N=this._sparseMessagesByConversation.get(B);for(let O=0;O<v;O++){const z=p[O];N.has(z.ID)||N.set(z.ID,z)}}_updateLatestMessageSentByMe(p){var B;const v=Array.from(((B=this._messagesByConversation.get(p))===null||B===void 0?void 0:B.values())||[]);if(v.length!==0){for(let N=v.length-1;N>=0;N--)if(v[N].flow==="out"){this._setLatestMsgSentByMe(p,v[N]);break}}}_updateLatestMessageSentByPeer(p){var B;const v=Array.from(((B=this._messagesByConversation.get(p))===null||B===void 0?void 0:B.values())||[]);if(v.length!==0&&p.startsWith("C2C")){for(let N=v.length-1;N>=0;N--)if(v[N].flow==="in"){this._setLatestMsgSentByPeer(p,v[N]);break}}}_getUniqueIdOfMessage(p){const{from:B,to:v,random:N,sequence:O,time:z}=p;return`${B}-${v}-${N}-${O}-${z}`}_setLatestMsgSentByPeer(p,B){this._latestMessageSentByPeerMap.set(p,B)}_setLatestMsgSentByMe(p,B){this._latestMessageSentByMeMap.set(p,B)}getLatestMsgSentByPeer(p){return this._latestMessageSentByPeerMap.get(p)}getLatestMsgSentByMe(p){return this._latestMessageSentByMeMap.get(p)}addRandomOfSentMessage(p){this._randomOfSentMessageList.add(p)}removeRandomOfSentMessage(p){this._randomOfSentMessageList.delete(p)}updateNickAndAvatarOfSentMessage(p){const{conversationID:B="",latestAvatar:v,latestNick:N,isSentByMe:O=!0}=p,z=this._messagesByConversation.get(B);if(!z)return;const X=Array.from(z.values()),rA=O?"out":"in";X.forEach(DA=>{const{nick:GA,avatar:VA,flow:te}=DA;te===rA&&(GA!==N&&(DA.nick=N),VA!==v&&(DA.avatar=v))})}isInMessageList(p){var B;const{conversationID:v}=p;if(!v||!this._messagesByConversation.has(v))return!1;const N=this._getUniqueIdOfMessage(p);return(B=this._messagesByConversation.get(v))===null||B===void 0?void 0:B.has(N)}isMessageSentByCurrentInstance(p){const{random:B}=p;return this._randomOfSentMessageList.has(B)}getContinuousMessagesByConversation(){return this._messagesByConversation}getLocalMessageList(p){const B=this._messagesByConversation.get(p);return B?[...B.values()]:[]}getSparseMessageList(p){const B=this._sparseMessagesByConversation.get(p);return B?[...B.values()]:[]}_reset(){this._messagesByConversation.clear(),this._latestMessageSentByPeerMap.clear(),this._latestMessageSentByMeMap.clear(),this._randomOfSentMessageList.clear()}_dispose(){this._reset(),De.notificationCenter.unSubscribeInnerEvent(ui.LOGOUT,this._reset,this),De.notificationCenter.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}};function aa(p,B){const v=$g.getConversation(p);if(v?.lastMessage){const{lastMessage:N}=v,{lastTime:O,lastSequence:z,version:X}=N,{time:rA,sequence:DA,messageVersion:GA,elements:VA,cloudCustomData:te}=B;O===rA&&z===DA&&X!==GA&&(N.type=VA[0].type,N.payload=VA[0].content,N.messageForShow=KI(N.type,N.payload),N.cloudCustomData=te,N.version=GA,$g.updateConversation(p,{lastMessage:N}))}}class tc{init(){js.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(B){return pA(this,void 0,void 0,function*(){const{to:v,payload:N,sequence:O,conversationType:z,random:X,time:rA,from:DA,type:GA}=B;if(this._canModifyMessageElement(GA)){const VA=B?._elements||[];VA.length>=1&&(VA[0].type=GA,VA[0].content=N)}try{let VA=null,te=null;if(z===dr.CONV_C2C?VA=yield kr(B):z===dr.CONV_GROUP&&(VA=yield rl(B)),VA){let Ce=`${z}${v}`;return v===qn()&&z===dr.CONV_C2C&&(Ce=`${z}${DA}`),te={conversationType:z,from:DA,to:v,time:rA,random:X,sequence:O,elements:VA?.elements,cloudCustomData:VA?.cloudCustomData,messageVersion:VA?.messageVersion,conversationID:Ce},this._handleModifyMessageSuccess(te),{code:0,data:{message:B},successLog:{message:`to:${v}`}}}}catch(VA){const{errorCode:te}=VA||{};throw new rs({functionName:"modifyMessage",code:te,moreMessage:`to:${v}`})}})}_handleModifyMessageSuccess(B){const{conversationID:v}=B,{isUpdated:N,message:O}=De.message.messageDataHandler.modifyConversationMessage(v,B);N===!0&&De.notificationCenter.emitOuterEvent(Dn.MESSAGE_MODIFIED,{name:Dn.MESSAGE_MODIFIED,data:[O]}),De.notificationCenter.emitInnerEvent(ui.MESSAGE_MODIFIED,{conversationID:v,message:O}),aa(v,B)}_canModifyMessageElement(B){return[Xa.MSG_TEXT,Xa.MSG_CUSTOM,Xa.MSG_LOCATION,Xa.MSG_FACE].includes(B)}}class lg{init(){const{notificationCenter:B}=De,{InnerEventSubType:v}=B;tn.getInstance().registerWorkflowStep(nr.RECEIVE_C2C_NEW_MESSAGE,Yt.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),tn.getInstance().registerWorkflowStep(nr.RECEIVE_C2C_NEW_MESSAGE,Yt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),tn.getInstance().registerWorkflowStep(nr.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Yt.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,v.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,v.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),B.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(B){tn.getInstance().executeWorkflow(nr.RECEIVE_C2C_NEW_MESSAGE,B)}_handleC2CMessagePush(B){const v=B.data||{},{messageDataHandler:N}=De.message||{},O=[],z=new Map;return v.C2cMsgArray.forEach(X=>{const rA=this._generateC2CMessage(X);this._updateMessageProfile(rA);let DA=rA.isModified===1;N.isMessageSentByCurrentInstance(rA)?rA.isModified=DA:DA=!1,rA._onlineOnlyFlag?N.isMessageSentByCurrentInstance(rA)||O.push(rA):sl(rA)&&(N.storeConversationMessage(rA)&&Gc({conversationUpdateFields:z,message:rA}),N.isMessageSentByCurrentInstance(rA)&&!DA||O.push(rA))}),{conversationUpdateFieldList:[...z.values()],messages:O}}_emitMessageEventsAfterReceiveNewMessage(B){var v;const{messages:N=[]}=((v=B.result)===null||v===void 0?void 0:v[Yt.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(N)}_emitMessageEventsAfterSyncUnreadMessage(B){var v;const{messages:N=[]}=((v=B.result)===null||v===void 0?void 0:v[Yt.UNREAD_MESSAGE_SYNC])||{};this._emitMessageEvents(N)}_emitMessageEvents(B){const v=B?.filter(O=>O?.isModified===!0)||[];v.length>0&&De.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:v});const N=B?.filter(O=>!O?.isModified);N.length>0&&De.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:N})}_generateC2CMessage(B){const v=dr.CONV_C2C,N=Nc(B),O=De.message.messageFactory.createMessage(Object.assign(Object.assign({},N),{conversationType:v,flow:ro.IN})),{elements:z}=N;return O.setElement(z),O}_updateMessageProfile(B){var v;const{messageDataHandler:N}=De.message||{},O=(v=De.store.get("login"))===null||v===void 0?void 0:v.userId,{from:z,nick:X,avatar:rA,conversationID:DA=""}=B;if(z!==O){const GA=N.getLatestMsgSentByPeer(DA);if(GA){const{nick:VA,avatar:te}=GA;r(X)||r(rA)?(B.nick=l(VA)?VA:B.nick,B.avatar=l(te)?te:B.avatar):X===VA&&rA===te||(N.updateNickAndAvatarOfSentMessage({conversationID:DA,latestNick:X,latestAvatar:rA,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:DA,nick:X,avatar:rA}))}}else{const GA=N.getLatestMsgSentByMe(DA);!GA||X===GA.nick&&rA===GA.avatar||N.updateNickAndAvatarOfSentMessage({conversationID:DA,latestNick:X,latestAvatar:rA,isSentByMe:!0})}}_updateConversationUserProfile(B){const{conversationID:v,nick:N,avatar:O}=B,z=$g.getConversation(v),{userProfile:X={}}=z||{};X.avatar===O&&X.nick===N||$g.updateConversation(v,{userProfile:Object.assign(Object.assign({},X),{nick:N,avatar:O})})}_updateMessageListDueToModify(B){const{conversationID:v}=B,{isUpdated:N,message:O}=De.message.messageDataHandler.modifyConversationMessage(v,B);N===!0&&De.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[O]}),De.notificationCenter.emitInnerEvent("ModifyMessageSuccess",B),aa(v,B)}_handleC2CMessageModify(B){B.C2cMsgModNotifys.forEach(v=>{var N;const O=dr.CONV_C2C;let z=$I(v);const{to:X,from:rA}=z;let DA=`${O}${X}`;X===((N=De.store.get("login"))===null||N===void 0?void 0:N.userId)&&(DA=`${O}${rA}`),z=Object.assign({conversationType:O,conversationID:DA},z),this._updateMessageListDueToModify(z)})}_dispose(){const{notificationCenter:B}=De,{InnerEventSubType:v}=B;De.notificationCenter.unSubscribeInnerEvent(ui.MESSAGE_PUSH,v.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),De.notificationCenter.unSubscribeInnerEvent(ui.MESSAGE_PUSH,v.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),De.notificationCenter.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}}class fI{init(){const{notificationCenter:B}=De,{InnerEventSubType:v}=B;tn.getInstance().registerWorkflowStep(nr.RECEIVE_GROUP_NEW_MESSAGE,Yt.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),tn.getInstance().registerWorkflowStep(nr.RECEIVE_GROUP_NEW_MESSAGE,Yt.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,v.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,v.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),B.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(B){this._canExecuteReceiverNewMessageWorkFlow(B)&&tn.getInstance().executeWorkflow(nr.RECEIVE_GROUP_NEW_MESSAGE,B)}_handleGroupMessagePush(B){const v=B.data||{},{messageDataHandler:N}=De.message,O=[],z=new Map,X=v?.GroupMsgArray;return X?.forEach(rA=>{if(rA.GroupInfo.NotVisible===1)return;const DA=this._generateGroupMessage(rA);this.updateMessageProfile(DA);let GA=DA.isModified===1;N.isMessageSentByCurrentInstance(DA)?DA.isModified=GA:GA=!1,DA._onlineOnlyFlag?N.isMessageSentByCurrentInstance(DA)||O.push(DA):sl(DA)&&N.storeConversationMessage(DA)&&(O.push(DA),Gc({conversationUpdateFields:z,message:DA}))}),{conversationUpdateFieldList:[...z.values()],messages:O}}_emitMessageEvents(B){var v;const{messages:N}=((v=B.result)===null||v===void 0?void 0:v[Yt.HANDLE_GROUP_NEW_MESSAGE])||{},O=N?.filter(X=>X?.isModified===!0)||[];O.length>0&&De.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:O});const z=N?.filter(X=>!X?.isModified)||[];z.length>0&&De.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:z})}_generateGroupMessage(B){const v=dr.CONV_GROUP,N=lo(B),O=De.message.messageFactory.createMessage(Object.assign(Object.assign({},N),{conversationType:v,flow:ro.IN})),{elements:z}=N;return O.setElement(z),O}updateMessageProfile(B){var v;const{messageDataHandler:N}=De.message||{},O=(v=De.store.get("login"))===null||v===void 0?void 0:v.userId,{from:z,nick:X,avatar:rA,conversationID:DA="",_elements:GA}=B;if(z===O){const VA=N.getLatestMsgSentByMe(DA);!VA||X===VA.nick&&rA===VA.avatar||N.updateNickAndAvatarOfSentMessage({conversationID:DA,latestNick:X,latestAvatar:rA,isSentByMe:!0})}else if(z===hs.CONV_SYSTEM){const{operationType:VA,memberInfoList:te,operatorInfo:Ce}=GA;let Ke={};if(Rs(te)?Rs(Ce)||(Ke=Ce):[sa.JOINED,sa.KICKED,sa.ADMIN_SET,sa.ADMIN_CANCELED].includes(VA)&&(Ke=Object.assign({},te[0])),!Rs(Ke)){const{nick:ot="",avatar:at=""}=Ke;B.nick=ot,B.avatar=at}}}_updateMessageListDueToModify(B){const{conversationID:v}=B,{isUpdated:N,message:O}=De.message.messageDataHandler.modifyConversationMessage(v,B);N===!0&&De.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[O]}),aa(v,B)}_handleGroupMessageModify(B){B.GroupMsgModNotifys.forEach(v=>{const N=dr.CONV_GROUP;let O=Au(v);const{topicID:z,groupID:X}=O,rA=z||X,DA=`${N}${rA}`;O=Object.assign({conversationType:N,conversationID:DA,to:rA},O),this._updateMessageListDueToModify(O)})}_dispose(){const{notificationCenter:B}=De,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:v,GROUP_MESSAGE_MODIFIED:N}}=B;B.unSubscribeInnerEvent(ui.MESSAGE_PUSH,v,this._handleGroupMessagePush,this),B.unSubscribeInnerEvent(ui.MESSAGE_PUSH,N,this._handleGroupMessageModify,this),B.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(B){var v,N;const{GroupId:O,GroupType:z}=((N=(v=B?.GroupMsgArray)===null||v===void 0?void 0:v[0])===null||N===void 0?void 0:N.GroupInfo)||{},X=z===ME.GRP_AVCHATROOM;return!(!Za.getGroup(O)&&X)}}var PE=new class{constructor(){this.c2cMessageReceiver=new lg,this.groupMessageReceiver=new fI}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const xu={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:p=>!(!p.startsWith("C2C")&&!p.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:p=>function(B){var v;return typeof B?.text!="string"||typeof B.text=="string"&&((v=B?.text)===null||v===void 0?void 0:v.length)===0?"payload.text must be a string":!0}(p)}}},Yu={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var yI=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(p){return pA(this,void 0,void 0,function*(){try{const{conversationID:B,count:v,direction:N,sequence:O,messageSequenceList:z,shouldMarkCompleted:X=!1,getType:rA}=p,DA=B.replace(_g.CONV_GROUP,""),GA=[];let VA=O;if(N===yc.BACKWARD){if(typeof O!="number")return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};VA=O+v-1}const te=yield Ul({groupID:DA,count:v,messageSequence:VA,messageSequenceList:z,getType:rA});if(te){const{RspMsgList:Ce=[],NextReqMsgSeq:Ke=0,IsFinished:ot,InvisibleMsgSeq:at}=te,kt=`groupID:${DA} sequence:${O} reqSeq:${VA} direction:${N} complete:${ot} nextSequence:${Ke} remoteMsgCount:${Ce.length} invisibleSequenceList:${at}`,Vt=[];for(let Zi=0;Zi<Ce.length;Zi++){const Ei=Ce[Zi];Ei.From_Account===hs.CONV_SYSTEM&&GA.push(Ei);const Po=this._parseMessage(Ei);Vt.push(Po)}Vt.reverse();let Ui=ot===Tc;N===yc.BACKWARD&&(Ui=Vt[Vt.length-1].sequence>=O),Ui&&X&&this.completedHistoryConversations.add(B);const ao=pI(Vt);return De.ssoLog.info("getGroupRoamingMessagesByAnchor",kt),{messageList:ao,invisibleSequenceList:at,nextReqMessageIDFromServer:Ke,hasNoMoreHistoryMessage:Ui,serverGroupTipList:GA}}}catch(B){const{errorCode:v,errorInfo:N}=B||{};throw new rs({code:v,message:N})}})}clearHistoryMessageListFetchAnchors(p){this._historyMessageListFetchAnchors.delete(p)}isHistoryMessageFetchCompleted(p){return this.completedHistoryConversations.has(p)}_parseMessage(p){var B;const v=_g.CONV_GROUP;p.Event===4&&(p.MsgBody.MsgType=hs.MSG_GRP_TIP);const N=lo(p),O=BI.createMessage(Object.assign(Object.assign({},N),{conversationType:v,flow:"in"}));return wc(((B=N.elements)===null||B===void 0?void 0:B.content)||{},O),O.setElement(N.elements),O}getC2CRoamingMessagesByAnchor(p){return pA(this,void 0,void 0,function*(){var B;try{const{conversationID:v,count:N,messageID:O,time:z,direction:X,shouldMarkCompleted:rA=!1}=p;let DA=z,GA="";if(!z){const Ce=O?De.message.messageDataHandler.findMessage(O):null;if(DA=Ce?.time||0,O&&this._historyMessageListFetchAnchors.has(v)){const Ke=this._historyMessageListFetchAnchors.get(v);DA=Ke.lastMessageTime,GA=Ke.messageKey}}const VA=v.replace(_g.CONV_C2C,""),te=yield bc({count:N,lastMessageTime:DA,messageKey:GA,peerAccount:VA,direction:X});if(te){const{MsgList:Ce=[],Complete:Ke,MsgKey:ot,LastMsgTime:at}=te;this._historyMessageListFetchAnchors.set(v,{messageKey:ot,lastMessageTime:at});const kt=[];for(let Zi=0;Zi<Ce.length;Zi++){const Ei=Ce[Zi],Po=this._parseC2CMessage(Ei);kt.push(Po)}const Vt=pI(kt),Ui=(B=Vt[0])===null||B===void 0?void 0:B.ID,ao=Ke===1;return ao&&rA&&this.completedHistoryConversations.add(v),{messageList:Vt,nextReqMessageIDFromServer:Ui,lastMessageTime:at,hasNoMoreHistoryMessage:ao}}}catch(v){throw De.ssoLog.debug("getC2CRoamingMessagesByAnchor",en(v)),v}})}_parseC2CMessage(p){const B=_g.CONV_C2C,v=Nc(p),N=BI.createMessage(Object.assign(Object.assign({},v),{conversationType:B,flow:"in"}));return N.setElement(v.elements),N}reset(){this._historyMessageListFetchAnchors.clear(),this.completedHistoryConversations.clear()}};class gl{constructor(){this.messageHelper=nl,this.messageDataProtocol=kc,this.messageFactory=BI,this.messageSender=new al,this.messageAction=new tc,this.messageReceiver=PE,this.messageDataHandler=mC,this.messageHistory=yI,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),this.messageDataHandler.init(),Mc({auth:Yu,params:xu}),De.notificationCenter.subscribeInnerEvent(ui.LOGOUT,this._reset,this),De.notificationCenter.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}_reset(){this.messageHistory.reset()}_dispose(){this._reset(),De.notificationCenter.unSubscribeInnerEvent(ui.LOGOUT,this._reset,this),De.notificationCenter.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}}const Lr="Tag_Profile_IM_",Ur={NICK:`${Lr}Nick`,GENDER:`${Lr}Gender`,BIRTHDAY:`${Lr}BirthDay`,LOCATION:`${Lr}Location`,SELFSIGNATURE:`${Lr}SelfSignature`,ALLOWTYPE:`${Lr}AllowType`,LANGUAGE:`${Lr}Language`,AVATAR:`${Lr}Image`,MESSAGESETTINGS:`${Lr}MsgSettings`,ADMINFORBIDTYPE:`${Lr}AdminForbidType`,LEVEL:`${Lr}Level`,ROLE:`${Lr}Role`},Ig="Tag_Profile_Custom",ar="profileCustomField",wr="USER_STATUS",ic=1,Fg=1e3,Ya={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:[]},Fl=new Map([[Ur.NICK,"nick"],[Ur.GENDER,"gender"],[Ur.BIRTHDAY,"birthday"],[Ur.LOCATION,"location"],[Ur.SELFSIGNATURE,"selfSignature"],[Ur.ALLOWTYPE,"allowType"],[Ur.LANGUAGE,"language"],[Ur.AVATAR,"avatar"],[Ur.MESSAGESETTINGS,"messageSettings"],[Ur.ADMINFORBIDTYPE,"adminForbidType"],[Ur.LEVEL,"level"],[Ur.ROLE,"role"]]);var ha=new class{createProfile(p,B){const v={userID:p,profileCustomField:[]};return B.forEach(N=>{const{tag:O,value:z}=N;O&&O.indexOf(Ig)>-1?v.profileCustomField.push({key:O,value:z}):Fl.has(O)&&(v[Fl.get(O)]=z)}),Object.assign(Object.assign({},Ya),v)}parseProfileItem(p=[]){const B=[];return p.forEach(v=>{B.push({tag:v.Tag,value:v.Value})}),B}parseProfileList(p=[]){const B=[];return p.forEach(v=>{B.push({tag:v.Tag,value:v.ValueBytes})}),B}convertParamsToProfile(p){const B=[];return Object.keys(p).forEach(v=>{v!==ar&&B.push({tag:Ur[v.toUpperCase()],value:p[v]})}),p.profileCustomField&&h(p.profileCustomField)&&p.profileCustomField.forEach(v=>{B.push({tag:v.key,value:v.value})}),B}normalizeProfileFields(p){const B={},v=[];return p.forEach(N=>{const{tag:O,value:z}=N;if(O&&O.indexOf(Ig)>-1&&v.push({key:O,value:z}),Fl.has(O)&&z!==void 0){const X=Fl.get(O);B[X]=z}}),v.length>0&&(B.profileCustomField=v),B}};const{generateProtocolData:DI}=De.common;function tu(p){return pA(this,void 0,void 0,function*(){const B="profile.portrait_get_all",v={From_Account:qn(),UserItem:[]};p.forEach(X=>{v.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:X})});const N=DI({servcmd:B,data:v}),O=`${N.head.seq}${B}`,z=yield De.channel.sendPacket(N,{requestId:O});if(z)return function(X){const{ActionStatus:rA,ErrorCode:DA,ErrorDisplay:GA,ErrorInfo:VA,UserProfileItem:te}=X,Ce=[];return te.map(Ke=>{const{To_Account:ot,CustomSequence:at,ResultCode:kt,ResultInfo:Vt,StandardSequence:Ui,ProfileItem:ao}=Ke,Zi=ha.parseProfileItem(ao);Ce.push({userId:ot,customSequence:at,resultCode:kt,resultInfo:Vt,standardSequence:Ui,profileItem:Zi})}),{actionStatus:rA,errorCode:DA,errorDisplay:GA,errorInfo:VA,userProfile:Ce}}(z)})}function Ba(p){return Aa.getFriendMap().has(p)}const{isEmpty:cl}=De.utils;class xE{constructor(){this._strangerProfileMap=new Map}init(){js.getInstance().registerApi({apiName:"getMyProfile",context:this}),js.getInstance().registerApi({apiName:"getUserProfile",context:this}),js.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=ha.createProfile.bind(ha);const{notificationCenter:B}=De;tn.getInstance().registerWorkflowStep(nr.SYNC_SERVER_INFO_AFTER_LOGIN,Yt.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,B.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),B.subscribeInnerEvent(ui.LOGOUT,this._reset,this),B.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}getMyProfile(){return pA(this,void 0,void 0,function*(){try{const B=qn(),v=yield tu([B]);if(v){const N=this._handleProfileFormResponse(v)[0];return Aa.getUserProfileMap().set(B,N),{code:0,data:N}}}catch(B){const{errorCode:v,errorInfo:N}=B;throw new rs({functionName:"getMyProfile",code:v,message:N})}})}getUserProfile(B){return pA(this,void 0,void 0,function*(){try{let{userIDList:v}=B;const{userIdListToRequest:N,profileFromCache:O}=this._filterRequestAndCacheUsers(v);if(N.length===0)return{code:0,data:O,successLog:{message:`userIDList.length:${v.length}`}};N.length>Fg&&(De.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),N.length=Fg);const{data:z,error:X}=yield this._batchFetchUserProfiles(N),rA=N.length,DA=z.length,GA=rA-DA;if(O.length===0&&rA===GA&&!cl(X))throw X;if(h(z))return z.forEach(te=>{Ba(te.userID)?Aa.getUserProfileMap().set(te.userID,te):this._strangerProfileMap.set(te.userID,te)}),{code:0,data:z.concat(O),successLog:{message:`getUserProfile query:${rA} success:${DA} fail:${GA} from cache:${O.length}`}}}catch(v){throw new rs(v)}})}getMyProfileCacheThenServer(){return pA(this,void 0,void 0,function*(){const B=qn(),v=Aa.getUserProfileMap().has(B);return v?{code:0,data:v}:this.getMyProfile()})}updateMyProfile(B){return pA(this,void 0,void 0,function*(){const v=qn(),N={};for(const z in B)B[z]!==void 0&&(N[z]=B[z]);const O=ha.convertParamsToProfile(N);try{yield function(GA){return pA(this,void 0,void 0,function*(){const VA="profile.portrait_set",te=DI({servcmd:VA,data:GA}),Ce=`${te.head.seq}${VA}`,Ke=yield De.channel.sendPacket(te,{requestId:Ce});if(Ke){const{ActionStatus:ot,ErrorCode:at,ErrorDisplay:kt,ErrorInfo:Vt}=Ke;return{actionStatus:ot,errorCode:at,errorDisplay:kt,errorInfo:Vt}}})}({From_Account:v,ProfileItem:O});const X=Aa.getUserProfile(v);let rA;rA=X?Object.assign(Object.assign({},X),N):ha.createProfile(v,O);const DA=!vg(X,rA,["lastUpdatedTime"]);return rA.lastUpdatedTime=Date.now(),Aa.getUserProfileMap().set(v,rA),DA&&this._emitProfileUpdated(rA),{code:0,data:rA,successLog:{message:`profileArray: ${De.utils.safeStringify(O)}`}}}catch(z){const{errorCode:X,errorInfo:rA}=z;throw new rs({functionName:"updateMyProfile",code:X,message:rA,moreMessage:`params: ${De.utils.safeStringify(B)}`})}})}updateMyNickAndAvatar(B){return pA(this,void 0,void 0,function*(){const v=qn(),N=Date.now(),O=Aa.getUserProfile(v);let z={};z=O?Object.assign(O,B):ha.createProfile(v,B),z.lastUpdatedTime=N,Aa.getUserProfileMap().set(v,z)})}_onProfileDataModify(B){const v=function(z){const{Profile_Account:X,PushType:rA,ProfileList:DA}=z;return{userId:X,pushType:rA,profileList:ha.parseProfileList(DA)}}(B.ProfileDataMod[0]);if(cl(v))return;const{isProfileUpdated:N,profile:O}=this._handleProfileModified(v);N&&this._emitProfileUpdated(O)}_emitProfileUpdated(B){De.notificationCenter.emitInnerEvent(ui.PROFILE_UPDATE,{name:ui.PROFILE_UPDATE,data:[B]}),De.notificationCenter.emitOuterEvent(Dn.PROFILE_UPDATED,{name:Dn.PROFILE_UPDATED,data:[B]}),$g.updateConversation(`C2C${B?.userID}`,{userProfile:B})}_dispose(){const{notificationCenter:B}=De;B.unSubscribeInnerEvent(ui.LOGOUT,this._reset,this),B.unSubscribeInnerEvent(ui.MESSAGE_PUSH,B.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),B.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(B){const{userId:v,profileList:N}=B,O=Aa.getUserProfile(v);if(!(qn()===v||Ba(v)&&O))return{isProfileUpdated:!1,profile:null};const z=ha.normalizeProfileFields(N),X=Object.keys(z).some(VA=>VA===ar?this._isCustomFieldChanged(O.profileCustomField,z.profileCustomField):O[VA]!==z[VA]);if(!X)return{isProfileUpdated:!1,profile:O};const rA=Date.now(),DA=Object.prototype.hasOwnProperty.call(z,ar)?this._mergeProfileCustomField(O.profileCustomField,z.profileCustomField):O.profileCustomField,GA=Object.assign(Object.assign(Object.assign({},O),z),{profileCustomField:DA,lastUpdatedTime:rA});return Aa.getUserProfileMap().set(v,GA),{isProfileUpdated:X,profile:GA}}_filterRequestAndCacheUsers(B){const v=[],N=[];return B.forEach(O=>{const z=Aa.getUserProfileMap().has(O);Ba(O)&&z?N.push(Aa.getUserProfile(O)):this._isStrangerAndProfileValid(O)?N.push(this._strangerProfileMap.get(O)):v.push(O)}),{userIdListToRequest:v,profileFromCache:N}}_handleProfileFormResponse(B){const{userProfile:v}=B;if(!Array.isArray(v))return[];const N=v.filter(z=>z.userId!=="@TLS#NOT_FOUND"&&z.userId!==""&&!cl(z.profileItem)),O=Date.now();return N.map(z=>{const X=ha.createProfile(z.userId,z.profileItem);return X.lastUpdatedTime=O,X})}_isStrangerAndProfileValid(B){var v;if(!Ba(B)){const{lastUpdatedTime:N=0}=this._strangerProfileMap.get(B)||{},O=((v=De.store.get("cloudConfig"))===null||v===void 0?void 0:v.stranger_profile_expiration_time)||6e5;return Date.now()-N<=O}return!1}_chunkUserIDList(B,v){return Array.from({length:Math.ceil(B.length/v)},(N,O)=>B.slice(O*v,(O+1)*v))}_batchFetchUserProfiles(B){return pA(this,void 0,void 0,function*(){const v=[],N=[];let O={};return this._chunkUserIDList(B,100).forEach(z=>{v.push(tu(z))}),(yield Promise.allSettled(v)).forEach(z=>{if(z.status==="fulfilled"){const X=z.value,rA=this._handleProfileFormResponse(X);h(rA)&&N.push(...rA)}else if(z.status==="rejected"){const{code:X,message:rA}=z.reason||{};O={errorCode:X,message:rA}}}),{data:N,error:O}})}_isCustomFieldChanged(B=[],v=[]){if(!h(v)||v.length===0)return!1;if(!h(B)||B.length===0)return!0;const N=new Map(B.map(O=>[O.key,O.value]));return v.some(O=>N.get(O.key)!==O.value)}_mergeProfileCustomField(B=[],v=[]){const N=h(B)?B.map(O=>Object.assign({},O)):[];return h(v)&&v.length!==0&&v.forEach(({key:O,value:z})=>{const X=N.find(rA=>rA.key===O);X?X.value=z:N.push({key:O,value:z})}),N}_reset(){Aa.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const iu=new Map,YE=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let p=0,B=YE.length;p<B;p++)iu.set(p,YE[p]);function Jr(p){if(!p)return"";const B=String(p).replace(/[=]+$/,"");let v="";if(B.length%4==1)return"";for(let N,O,z=0,X=0;O=B.charAt(X++);~O&&(N=z%4?64*N+O:O,z++%4)?v+=String.fromCharCode(255&N>>(-2*z&6)):0)O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(O);try{return decodeURIComponent(escape(v))}catch(N){return console.warn(N),""}}const{isEmpty:ou}=De.utils,{generateProtocolData:Ot}=De.common;function Vu(p){return pA(this,void 0,void 0,function*(){const B="im_open_status.ws_get_user_status",v=Ot({servcmd:B,data:{To_Account:p}}),N=`${v.head.seq}${B}`,O=yield De.channel.sendPacket(v,{requestId:N});if(O)return function(z){const{ErrorCode:X,ErrorInfo:rA,ErrorList:DA=[],UserStatusList:GA=[]}=z,VA=GA.map(Ce=>{const{To_Account:Ke,Status:ot,CustomStatus:at,Detail:kt=[]}=Ce;return{userID:Ke,statusType:ot,customStatus:Jr(at),onlineDevices:Ju(kt)}}),te=DA.map(Ce=>{const{To_Account:Ke,Invalid_Account:ot,ErrorCode:at,ErrorInfo:kt}=Ce;return{userID:ou(ot)?Ke:ot,code:at,message:kt}});return{errorCode:X,errorInfo:rA,successUserList:VA,failureUserList:te}}(O)})}function Ju(p){const B=[];return p?.forEach(v=>{const{Platform:N,Status:O}=v;O==="Online"&&B.push(N)}),B}class fC{constructor(){this._customStatus=""}init(){const{notificationCenter:B}=De;js.getInstance().registerApi({apiName:"getUserStatus",context:this}),js.getInstance().registerApi({apiName:"setSelfStatus",context:this}),js.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),js.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),tn.getInstance().registerWorkflowStep(nr.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Yt.USER_STATUS_UPDATE,this._onReOnline,this),B.subscribeInnerEvent(ui.MESSAGE_PUSH,B.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),B.subscribeInnerEvent(ui.LOGOUT,this._reset,this),B.subscribeInnerEvent(ui.DESTROY,this._dispose,this)}setSelfStatus(B){return pA(this,void 0,void 0,function*(){const v=qn(),{customStatus:N}=B;try{return yield function(O){return pA(this,void 0,void 0,function*(){const z="im_open_status.ws_set_custom_status",X=Ot({servcmd:z,data:{CustomStatus:O}}),rA=`${X.head.seq}${z}`,DA=yield De.channel.sendPacket(X,{requestId:rA});if(DA){const{ErrorCode:GA,ErrorInfo:VA}=DA;return{errorCode:GA,errorInfo:VA}}})}(N),this._customStatus=N,{code:0,data:{userID:v,statusType:ic,customStatus:N},successLog:{message:`customStatus: ${N}`}}}catch(O){const{errorCode:z,errorInfo:X}=O;throw new rs({functionName:"setSelfStatus",code:z,message:X})}})}getUserStatus(B){return pA(this,void 0,void 0,function*(){const{userIDList:v=[]}=B;if(this._isOnlyMeInArray(v))return this._getMyStatus();const N=yield this._getUserStatus(v);return Object.assign(Object.assign({},N),{successLog:{message:`userIDList length: ${v.length}`}})})}setCustomStatus(B){const v=Jr(B);this._customStatus=v}subscribeUserStatus(B){return pA(this,void 0,void 0,function*(){try{const{userIDList:v=[]}=B;this._checkBusinessCapabilityBits("subscribeUserStatus");const N=this._getMaxUserCount("subscribe"),O=this._sliceUserIDList(v,N),z=yield function(rA){return pA(this,void 0,void 0,function*(){const{channel:DA}=De,GA="im_open_status.ws_status_subscribe",VA=Ot({servcmd:GA,data:{To_Account:rA}}),te=`${VA.head.seq}${GA}`;return yield DA.sendPacket(VA,{requestId:te})})}(O),X=this._parseResponse(z);return{code:0,data:{failureUserList:X},successLog:{message:`userID length:${v.length} failCount: ${X.length}`}}}catch(v){const{errorCode:N}=v;throw new rs({functionName:"subscribeUserStatus",code:N})}})}unsubscribeUserStatus(B){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:v=[]}=B,N=this._getMaxUserCount("unsubscribe"),O=this._sliceUserIDList(v,N),z=yield function(rA){return pA(this,void 0,void 0,function*(){const{channel:DA}=De,GA="im_open_status.ws_status_unsubscribe";let VA={};VA=rA.length===0?{UnsubscribeAll:1}:{To_Account:rA};const te=Ot({servcmd:GA,data:VA}),Ce=`${te.head.seq}${GA}`;return yield DA.sendPacket(te,{requestId:Ce})})}(O),X=this._parseResponse(z);return{code:0,data:{failureUserList:X},successLog:{message:`userID length:${v.length} failCount: ${X.length}`}}}catch(v){const{errorCode:N}=v;throw new rs({functionName:"unsubscribeUserStatus",code:N})}})}_onUserStatusUpdate(B){const{UserStatusList:v=[]}=B||{},N=v.map(O=>{const{To_Account:z,Status:X,CustomStatus:rA,Platform:DA}=O,GA={userID:z,statusType:X,customStatus:Jr(rA)};return DA&&(GA.onlineDevices=DA),GA});this._emitUserStatusUpdatedEvent(N)}_onReOnline(B){const v=Jr(B.data.customStatus);if(this._customStatus===v)return;this._customStatus=v;const N={userID:qn(),statusType:ic,customStatus:v};this._emitUserStatusUpdatedEvent(N)}_emitUserStatusUpdatedEvent(B){De.notificationCenter.emitOuterEvent(Dn.USER_STATUS_UPDATED,{name:Dn.USER_STATUS_UPDATED,data:B})}_sliceUserIDList(B,v){return B.slice(0,v)}_parseResponse(B){const{ErrorList:v=[]}=B;return v.map(N=>{const{To_Account:O,Invalid_Account:z,ErrorCode:X,ErrorInfo:rA}=N;return{userID:De.utils.isEmpty(z)?O:z,code:X,message:rA}})}_checkBusinessCapabilityBits(B){if(!De.store.get("commercialConfig").get(wr))throw new rs({functionName:B,code:Lo.NO_USE,replacement1:B})}_getMaxUserCount(B){const v=De.store.get("cloudConfig")||{},N={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:O,default:z}=N[B],X=v[O]||z;return parseInt(X,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:qn(),statusType:ic,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(B){return pA(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const v=this._getMaxUserCount("query"),N=this._sliceUserIDList(B,v),O=yield Vu(N),{successUserList:z,failureUserList:X}=O||{};return{code:0,data:{successUserList:z,failureUserList:X}}}catch(v){const{errorCode:N}=v;throw new rs({functionName:"getUserStatus",code:N})}})}_isOnlyMeInArray(B){const v=qn();return B.length===1&&B.indexOf(v)>-1}_dispose(){const{notificationCenter:B}=De;B.unSubscribeInnerEvent(ui.MESSAGE_PUSH,B.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),B.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this),B.unSubscribeInnerEvent(ui.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const q={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(p){for(const B of p){if(typeof B!="object")return"Each item in profileCustomField must be an object";if(typeof B?.key!="string")return"Each item.key in profileCustomField must be a string";if(!B?.key.startsWith(Ig))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}}},L={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class oA{constructor(){this.userProfile=new xE,this.userStatus=new fC,this.userProfile.init(),this.userStatus.init(),Mc({auth:L,params:q})}}function G(p){const B=[];if(!l(p))return B;const v=p.length;if(v===0)return B;for(let N=v-1;N>=0;N--)p[N]==="1"&&B.push(2**(v-N-1));return B}var x,tA,uA;(function(p){p.NOT_START="notStart",p.PENDING="pending",p.RESOLVED="resolved",p.REJECTED="rejected"})(x||(x={})),function(p){p[p.C2C=1]="C2C",p[p.GROUP=2]="GROUP"}(tA||(tA={})),function(p){p[p.C2C=8]="C2C",p[p.GROUP=2]="GROUP"}(uA||(uA={}));class wA{constructor(){this._name="SyncConversationHandler",this._pagingStatus=x.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:B}=De;tn.getInstance().registerWorkflowStep(nr.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Yt.CONVERSATION_RECOVER,this._syncConversationList,this),tn.getInstance().registerWorkflowStep(nr.SYNC_SERVER_INFO_AFTER_LOGIN,Yt.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),B.subscribeInnerEvent(ui.LOGOUT,this._reset,this),B.subscribeInnerEvent(ui.DESTROY,this._dispose,this),De.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===x.RESOLVED}_syncConversationListAfterLogin(){return pA(this,void 0,void 0,function*(){return this._pagingStatus=x.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return pA(this,void 0,void 0,function*(){const{ssoLog:B,utils:{safeStringify:v}}=De;B.debug("_syncConversationList","start");try{const N=yield this._pagingGetConversationList(!0);this._pagingStatus=x.RESOLVED;const{conversationList:O=[]}=N||{};return B.info("_syncConversationList",`success count:${O.length}`),N}catch(N){const O=new rs(N);B.error("_syncConversationList",`fail ${v(N)}`,{error:O})}})}_pagingGetConversationList(B){return pA(this,void 0,void 0,function*(){try{const v=[];this._pagingStatus=x.PENDING;const N=yield function(te){return pA(this,void 0,void 0,function*(){const{fromAccount:Ce,pagingTimeStamp:Ke,pagingStartIndex:ot,pagingPinnedTimeStamp:at,pagingPinnedStartIndex:kt}=te;return Zg({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:Ce,StartIndex:ot,TimeStamp:Ke,TopStartIndex:kt,TopTimeStamp:at}})})}({fromAccount:qn(),pagingTimeStamp:B?this._pagingTimeStamp:0,pagingStartIndex:B?this._pagingStartIndex:0,pagingPinnedTimeStamp:B?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:B?this._pagingPinnedStartIndex:0}),{CompleteFlag:O,SessionItem:z=[],TimeStamp:X,StartIndex:rA,TopTimeStamp:DA,TopStartIndex:GA}=N||{};let VA=[];if(O===1&&(this._pagingStatus=x.RESOLVED),z.length>0&&(VA=this._getConversationOptions(z),v.push(...VA)),De.notificationCenter.emitInnerEvent(ui.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:VA}),this._pagingTimeStamp=X,this._pagingStartIndex=rA,this._pagingPinnedTimeStamp=DA,this._pagingPinnedStartIndex=GA,O!==1){const{conversationList:te}=yield this._pagingGetConversationList(B);v.push(...te)}return{conversationList:v}}catch(v){throw v}})}_getConversationOptions(B){const{utils:{isUndefined:v}}=De,N=this._convertConversationKey(B);return this._filterValidConversations(N).map(O=>(v(O.lastMsg)&&(O.lastMsg={elements:[]}),O.type===tA.C2C?this._assembleC2COption(O):this._assembleGroupOption(O)))}_filterValidConversations(B){return B.filter(({type:v,userID:N})=>v===tA.C2C&&!function(O){let z;return O.startsWith(hs.CONV_C2C)&&(z=O.replace(hs.CONV_C2C,"")),z==="@TLS#ERROR"||z==="@TLS#NOT_FOUND"}(N)||v===2)}_assembleC2COption(B){var v,N,O,z,X,rA,DA,GA;const VA=this._createUserprofile(B);return{conversationID:`${hs.CONV_C2C}${B.userID}`,type:hs.CONV_C2C,lastMessage:{lastTime:B.time,lastSequence:B.sequence,fromAccount:B.lastC2CMsgFromAccount,type:!((v=B.lastMsg)===null||v===void 0)&&v.elements[0]?(N=B.lastMsg)===null||N===void 0?void 0:N.elements[0].type:null,payload:!((O=B.lastMsg)===null||O===void 0)&&O.elements[0]?this._amendLayersOverLimitProp(B.lastMsg.elements[0].content):null,cloudCustomData:((rA=(X=(z=B.lastMsg)===null||z===void 0?void 0:z.elements)===null||X===void 0?void 0:X[0])===null||rA===void 0?void 0:rA.cloudCustomData)||"",isRevoked:B.lastMessageFlag===uA.C2C,onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:this._computeIsPeerRead(B),revoker:((GA=(DA=B.lastMsg)===null||DA===void 0?void 0:DA.revokerInfo)===null||GA===void 0?void 0:GA.revoker)||null},unreadCount:0,userProfile:VA,peerReadTime:B.peerReadTime,isPinned:B.isPinned===1,customData:B.customMark||"",markList:G(B.standardMark),conversationGroupList:[],remark:B.friendRemark||"",messageRemindType:this._transMsgRemindType(B.messageRemindType)}}_createUserprofile(B){var v;const{userID:N,nick:O,peerAvatar:z}=B,X=[{tag:"Tag_Profile_IM_Nick",value:O},{tag:"Tag_Profile_IM_Image",value:z}];return(v=De.user.userProfile)===null||v===void 0?void 0:v.createProfile(N,X)}_computeIsPeerRead(B){const v=qn(),{lastC2CMsgFromAccount:N,time:O,c2cPeerReadTime:z}=B;return N===v&&O<=z}_assembleGroupOption(B){var v,N,O,z,X;return{conversationID:`${hs.CONV_GROUP}${B.groupID}`,type:hs.CONV_GROUP,lastMessage:Object.assign(Object.assign({lastTime:B.time,lastSequence:B.sequence,fromAccount:B.msgGroupFromAccount},this._patchTypeAndPayload(B)),{cloudCustomData:((O=(N=(v=B.lastMsg)===null||v===void 0?void 0:v.elements)===null||N===void 0?void 0:N[0])===null||O===void 0?void 0:O.cloudCustomData)||"",isRevoked:B.lastMessageFlag===uA.GROUP,onlineOnlyFlag:!1,nick:B.msgGroupFromNickName||"",nameCard:B.msgGroupFromCardName||"",revoker:((X=(z=B.lastMsg)===null||z===void 0?void 0:z.revokerInfo)===null||X===void 0?void 0:X.revoker)||null}),groupProfile:{groupID:B.groupID,name:B.groupNick,avatar:B.groupImage,type:B.groupType,nextMessageSeq:B.nextMessageSeq},unreadCount:this._computeGroupUnreadCount(B),peerReadTime:0,isPinned:B.isPinned===1,version:0,customData:B.customMark||"",markList:G(B.standardMark),conversationGroupList:[],messageRemindType:this._transMsgRemindType(B.messageRemindType),subType:B.groupType}}_convertConversationKey(B){return B.map(v=>({type:v.Type,userID:v.To_Account,nick:v.C2cNick,peerAvatar:v.C2cImage,time:v.MsgTimeStamp,sequence:v.MsgSeq,lastC2CMsgFromAccount:v.LastC2cMsgFrom_Account,lastMsg:this._convertLastMsgKey(v.LastMsg),lastMessageFlag:v.LastMsgFlags,c2cPeerReadTime:v.C2cPeerReadTime,peerReadTime:v.C2cPeerReadTime,friendRemark:v.C2cRemark,isPinned:v.TopFlags,standardMark:v.StandardMark,customMark:v.CustomMark,messageRemindType:v.MsgRecvOption,groupID:v.ToAccount,groupNick:v.GroupNick,groupImage:v.GroupImage,groupType:v.GroupType,nextMessageSeq:v.GroupNextMsgSeq,msgGroupFromAccount:v.MsgGroupFrom_Account,msgGroupFromNickName:v.MsgGroupFromNickName,msgGroupFromCardName:v.MsgGroupFromCardName,unreadCount:v.UnreadMsgCount,noUnreadCount:v.GroupIgnoredUnreadSeqCount}))}_convertLastMsgKey(B){var v,N,O;const{utils:{isEmpty:z}}=De;if(z(B))return null;let X="",rA=null;if(!z(B.GroupTips)){const{From_Account:DA,GroupName:GA}=((v=B.GroupTips)===null||v===void 0?void 0:v.GroupInfo)||{};X=hs.MSG_GRP_TIP,rA=Object.assign(Object.assign({},this._parseContent(X,B.GroupTips.MsgBody)),{groupProfile:{from:DA,groupName:GA}})}return B.MsgBody&&(X=(N=B.MsgBody[0])===null||N===void 0?void 0:N.MsgType,rA=this._parseContent(X,B.MsgBody[0])),{event:B.Event,elements:[{type:X,content:rA,cloudCustomData:B.CloudCustomData}],revokerInfo:{revoker:(O=B.RevokerInfo)===null||O===void 0?void 0:O.Revoker_Account}}}_parseContent(B,v){var N;if(!v)return v;const O=De.message.messageFactory.getElementClass(B);return O?(N=O.parseServerPushElement(v))===null||N===void 0?void 0:N.content:v}_amendLayersOverLimitProp(B){const{LayersOverLimit:v}=B;return Do(B,["LayersOverLimit"]).layersOverLimit=v===1,B}_transMsgRemindType(B){let v="";return B===0?v=hs.MSG_REMIND_ACPT_AND_NOTE:B===1?v=hs.MSG_REMIND_DISCARD:B===2?v=hs.MSG_REMIND_ACPT_NOT_NOTE:B===3&&(v=hs.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),v}_patchTypeAndPayload(B){var v;const{utils:{isUndefined:N}}=De,{event:O,elements:z=[]}=B.lastMsg||{};return N(O)?{type:z[0]?z[0].type:null,payload:z[0]?this._amendLayersOverLimitProp(z[0].content):null}:{type:hs.MSG_GRP_TIP,payload:((v=z?.[0])===null||v===void 0?void 0:v.content)||{}}}_computeGroupUnreadCount(B){const{unreadCount:v=0,noUnreadCount:N=0}=B,O=v-N;return O>0?O:0}_reset(){this._pagingStatus=x.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:B}=De;B.unSubscribeInnerEvent(ui.LOGOUT,this._reset,this),B.unSubscribeInnerEvent(ui.DESTROY,this._dispose,this)}}class $A{constructor(){this.syncConversationHandler=new wA,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Zr}`);var me={create:function(p){var B,v;const{SDKAppID:N,testEnv:O=!1,devMode:z=!1,unlimitedAVChatRoom:X=!1,scene:rA="",oversea:DA=!1,instance:GA,disableIndependentDomain:VA=!1,proxyServer:te=""}=p;let Ce=N;if(!function(ot){if(typeof ot=="number")return!0;const at=Number(ot);return!Number.isNaN(at)}(Ce))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(Ce=Number(Ce),ws.has(Ce))return ws.get(Ce);let Ke=null;if(GA)Ke=GA,Ke._workflowManager&&tn.setInstance(Ke._workflowManager),Ke._pluginManager&&Ke._pluginManager.installBuiltInPlugin(Er),GA.isReady()&&((v=(B=tn.getInstance()).executeWorkflow)===null||v===void 0||v.call(B,nr.SYNC_SERVER_INFO_AFTER_LOGIN));else{const ot=function(){function Zi(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${Zi()+Zi()}${Zi()}${Zi()}${Zi()}${Zi()}${Zi()}${Zi()}`}();De.init({sdkAppId:Ce,instanceId:ot,testEnv:O,devMode:z,unlimitedAVChatRoom:X,disableIndependentDomain:VA,scene:rA,oversea:DA,sdkEdition:Uu,version:Zr,proxyServer:te}),tn.getInstance().init(),De.message=new gl,De.user=new oA,De.login=new Ac,De.conversation=new $A,Oo.getInstance().installBuiltInPlugin(Er),Ke=js.getInstance().exposeApiForClient(),Ke._workflowManager=tn.getInstance(),Ke._pluginManager=Oo.getInstance();const{utils:{IS_WORKER_AVAILABLE:at,USER_AGENT:kt,getPlatformType:Vt,isIOSWebView:Ui}}=De,ao=`instanceID:${ot} SDKAppID:${N} platform:${HA} host:${Vt()} isIOSWebView:${Ui} workerAvailable:${at} UserAgent:${kt}`;De.ssoLog.info("sdkConstruct",ao)}return ws.set(Ce,Ke),Ke},TSignaling:so,EVENT:Dn,VERSION:Zr,TYPES:hs};return me})}(AY)),AY.exports}var RL={exports:{}},eY={exports:{}},RrA=eY.exports,J8;function wrA(){return J8||(J8=1,function(t,i){(function(r,l){t.exports=l()})(RrA,function(){function r(A,e){return e.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(a){if(a!=="default"&&!(a in A)){var c=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(A,a,c.get?c:{enumerable:!0,get:function(){return o[a]}})}})}),Object.freeze(A)}var l=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof mg<"u"?mg:typeof self<"u"?self:{};function I(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var h=function(A){return A&&A.Math===Math&&A},f=h(typeof globalThis=="object"&&globalThis)||h(typeof window=="object"&&window)||h(typeof self=="object"&&self)||h(typeof l=="object"&&l)||h(typeof l=="object"&&l)||function(){return this}()||Function("return this")(),w={},_=function(A){try{return!!A()}catch{return!0}},b=!_(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),U=!_(function(){var A=function(){}.bind();return typeof A!="function"||A.hasOwnProperty("prototype")}),j=U,IA=Function.prototype.call,nA=j?IA.bind(IA):function(){return IA.apply(IA,arguments)},mA={},lA={}.propertyIsEnumerable,cA=Object.getOwnPropertyDescriptor,TA=cA&&!lA.call({1:2},1);mA.f=TA?function(A){var e=cA(this,A);return!!e&&e.enumerable}:lA;var WA,Ee,de=function(A,e){return{enumerable:!(1&A),configurable:!(2&A),writable:!(4&A),value:e}},Pe=U,pe=Function.prototype,gt=pe.call,pt=Pe&&pe.bind.bind(gt,gt),We=Pe?pt:function(A){return function(){return gt.apply(A,arguments)}},Dt=We,Kt=Dt({}.toString),ut=Dt("".slice),ge=function(A){return ut(Kt(A),8,-1)},XA=_,_e=ge,je=Object,Ut=We("".split),gi=XA(function(){return!je("z").propertyIsEnumerable(0)})?function(A){return _e(A)==="String"?Ut(A,""):je(A)}:je,Fi=function(A){return A==null},To=Fi,to=TypeError,Eo=function(A){if(To(A))throw new to("Can't call method on "+A);return A},Vs=gi,ki=Eo,ns=function(A){return Vs(ki(A))},jo=typeof document=="object"&&document.all,$i=jo===void 0&&jo!==void 0?function(A){return typeof A=="function"||A===jo}:function(A){return typeof A=="function"},Wt=$i,io=function(A){return typeof A=="object"?A!==null:Wt(A)},bi=f,vs=$i,HA=function(A,e){return arguments.length<2?(o=bi[A],vs(o)?o:void 0):bi[A]&&bi[A][e];var o},le=We({}.isPrototypeOf),Ve=f.navigator,Ft=Ve&&Ve.userAgent,nt=Ft?String(Ft):"",It=f,Ai=nt,ei=It.process,ke=It.Deno,Ze=ei&&ei.versions||ke&&ke.version,vt=Ze&&Ze.v8;vt&&(Ee=(WA=vt.split("."))[0]>0&&WA[0]<4?1:+(WA[0]+WA[1])),!Ee&&Ai&&(!(WA=Ai.match(/Edge\/(\d+)/))||WA[1]>=74)&&(WA=Ai.match(/Chrome\/(\d+)/))&&(Ee=+WA[1]);var _t=Ee,Oi=_t,po=_,No=f.String,oo=!!Object.getOwnPropertySymbols&&!po(function(){var A=Symbol("symbol detection");return!No(A)||!(Object(A)instanceof Symbol)||!Symbol.sham&&Oi&&Oi<41}),Go=oo&&!Symbol.sham&&typeof Symbol.iterator=="symbol",An=HA,rn=$i,Es=le,an=Object,Do=Go?function(A){return typeof A=="symbol"}:function(A){var e=An("Symbol");return rn(e)&&Es(e.prototype,an(A))},pA=String,Jn=function(A){try{return pA(A)}catch{return"Object"}},Qr=$i,ds=Jn,zr=TypeError,Pi=function(A){if(Qr(A))return A;throw new zr(ds(A)+" is not a function")},Rs=Pi,or=Fi,en=function(A,e){var o=A[e];return or(o)?void 0:Rs(o)},wn=nA,Ht=$i,yg=io,On=TypeError,Gn={exports:{}},Js=f,pr=Object.defineProperty,Pn=function(A,e){try{pr(Js,A,{value:e,configurable:!0,writable:!0})}catch{Js[A]=e}return e},mr=f,mo=Pn,gn="__core-js_shared__",Sl=Gn.exports=mr[gn]||mo(gn,{});(Sl.versions||(Sl.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 cn=Gn.exports,fr=cn,Ls=function(A,e){return fr[A]||(fr[A]=e||{})},Jc=Eo,ms=Object,as=function(A){return ms(Jc(A))},Mu=as,Wa=We({}.hasOwnProperty),Cs=Object.hasOwn||function(A,e){return Wa(Mu(A),e)},sg=We,JI=0,$o=Math.random(),Xi=sg(1.1.toString),pc=function(A){return"Symbol("+(A===void 0?"":A)+")_"+Xi(++JI+$o,36)},ng=Ls,Dg=Cs,ua=pc,bo=oo,Zr=Go,_o=f.Symbol,Hc=ng("wks"),Hn=Zr?_o.for||_o:_o&&_o.withoutSetter||ua,Hs=function(A){return Dg(Hc,A)||(Hc[A]=bo&&Dg(_o,A)?_o[A]:Hn("Symbol."+A)),Hc[A]},Sg=nA,mc=io,fn=Do,Ga=en,In=function(A,e){var o,a;if(e==="string"&&Ht(o=A.toString)&&!yg(a=wn(o,A))||Ht(o=A.valueOf)&&!yg(a=wn(o,A))||e!=="string"&&Ht(o=A.toString)&&!yg(a=wn(o,A)))return a;throw new On("Can't convert object to primitive value")},fs=TypeError,Ea=Hs("toPrimitive"),yn=function(A,e){if(!mc(A)||fn(A))return A;var o,a=Ga(A,Ea);if(a){if(e===void 0&&(e="default"),o=Sg(a,A,e),!mc(o)||fn(o))return o;throw new fs("Can't convert object to primitive value")}return e===void 0&&(e="number"),In(A,e)},ba=yn,Sa=Do,$=function(A){var e=ba(A,"string");return Sa(e)?e:e+""},K=io,vA=f.document,qA=K(vA)&&K(vA.createElement),ee=function(A){return qA?vA.createElement(A):{}},fe=ee,xe=!b&&!_(function(){return Object.defineProperty(fe("div"),"a",{get:function(){return 7}}).a!==7}),Oe=b,rt=nA,dt=mA,Mt=de,xt=ns,Ii=$,ct=Cs,Pt=xe,Ji=Object.getOwnPropertyDescriptor;w.f=Oe?Ji:function(A,e){if(A=xt(A),e=Ii(e),Pt)try{return Ji(A,e)}catch{}if(ct(A,e))return Mt(!rt(dt.f,A,e),A[e])};var Ki={},qs=b&&_(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Mi=io,zo=String,Mg=TypeError,sr=function(A){if(Mi(A))return A;throw new Mg(zo(A)+" is not an object")},yr=b,xn=xe,Ml=qs,Ks=sr,aI=$,Wg=TypeError,fc=Object.defineProperty,vu=Object.getOwnPropertyDescriptor,Ma="enumerable",vl="configurable",De="writable";Ki.f=yr?Ml?function(A,e,o){if(Ks(A),e=aI(e),Ks(o),typeof A=="function"&&e==="prototype"&&"value"in o&&De in o&&!o[De]){var a=vu(A,e);a&&a[De]&&(A[e]=o.value,o={configurable:vl in o?o[vl]:a[vl],enumerable:Ma in o?o[Ma]:a[Ma],writable:!1})}return fc(A,e,o)}:fc:function(A,e,o){if(Ks(A),e=aI(e),Ks(o),xn)try{return fc(A,e,o)}catch{}if("get"in o||"set"in o)throw new Wg("Accessors not supported");return"value"in o&&(A[e]=o.value),A};var ye=Ki,vg=de,rg=b?function(A,e,o){return ye.f(A,e,vg(1,o))}:function(A,e,o){return A[e]=o,A},Rg={exports:{}},Dn=b,Dr=Cs,ui=Function.prototype,so=Dn&&Object.getOwnPropertyDescriptor,qc=Dr(ui,"name"),zg={PROPER:qc&&function(){}.name==="something",CONFIGURABLE:qc&&(!Dn||Dn&&so(ui,"name").configurable)},wg=$i,Yr=cn,yc=We(Function.toString);wg(Yr.inspectSource)||(Yr.inspectSource=function(A){return yc(A)});var Kc,ag,Ru,SE=Yr.inspectSource,_g=$i,ka=f.WeakMap,Dc=_g(ka)&&/native code/.test(String(ka)),ME=pc,La=Ls("keys"),sa=function(A){return La[A]||(La[A]=ME(A))},Tg={},gI=Dc,hs=f,Lo=io,da=rg,nr=Cs,Yt=cn,qt=sa,Ng=Tg,cI="Object already initialized",rr=hs.TypeError,HI=hs.WeakMap;if(gI||Yt.state){var za=Yt.state||(Yt.state=new HI);za.get=za.get,za.has=za.has,za.set=za.set,Kc=function(A,e){if(za.has(A))throw new rr(cI);return e.facade=A,za.set(A,e),e},ag=function(A){return za.get(A)||{}},Ru=function(A){return za.has(A)}}else{var na=qt("state");Ng[na]=!0,Kc=function(A,e){if(nr(A,na))throw new rr(cI);return e.facade=A,da(A,na,e),e},ag=function(A){return nr(A,na)?A[na]:{}},Ru=function(A){return nr(A,na)}}var un={set:Kc,get:ag,has:Ru,enforce:function(A){return Ru(A)?ag(A):Kc(A,{})},getterFor:function(A){return function(e){var o;if(!Lo(e)||(o=ag(e)).type!==A)throw new rr("Incompatible receiver, "+A+" required");return o}}},Sn=We,wu=_,Gg=$i,Ua=Cs,jc=b,qI=zg.CONFIGURABLE,vE=SE,lI=un.enforce,_u=un.get,Rl=String,Sc=Object.defineProperty,Tu=Sn("".slice),Nu=Sn("".replace),wl=Sn([].join),rs=jc&&!wu(function(){return Sc(function(){},"length",{value:8}).length!==8}),gs=String(String).split("String"),ud=Rg.exports=function(A,e,o){Tu(Rl(e),0,7)==="Symbol("&&(e="["+Nu(Rl(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),o&&o.getter&&(e="get "+e),o&&o.setter&&(e="set "+e),(!Ua(A,"name")||qI&&A.name!==e)&&(jc?Sc(A,"name",{value:e,configurable:!0}):A.name=e),rs&&o&&Ua(o,"arity")&&A.length!==o.arity&&Sc(A,"length",{value:o.arity});try{o&&Ua(o,"constructor")&&o.constructor?jc&&Sc(A,"prototype",{writable:!1}):A.prototype&&(A.prototype=void 0)}catch{}var a=lI(A);return Ua(a,"source")||(a.source=wl(gs,typeof e=="string"?e:"")),A};Function.prototype.toString=ud(function(){return Gg(this)&&_u(this).source||vE(this)},"toString");var II=Rg.exports,uI=$i,RE=Ki,Ed=II,_l=Pn,Sr=function(A,e,o,a){a||(a={});var c=a.enumerable,d=a.name!==void 0?a.name:e;if(uI(o)&&Ed(o,d,a),a.global)c?A[e]=o:_l(e,o);else{try{a.unsafe?A[e]&&(c=!0):delete A[e]}catch{}c?A[e]=o:RE.f(A,e,{value:o,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return A},Mc={},Wc=Math.ceil,tn=Math.floor,ws=Math.trunc||function(A){var e=+A;return(e>0?tn:Wc)(e)},Ca=ws,Xr=function(A){var e=+A;return e!=e||e===0?0:Ca(e)},zc=Xr,dd=Math.max,Zg=Math.min,gg=function(A,e){var o=zc(A);return o<0?dd(o+e,0):Zg(o,e)},wE=Xr,Xg=Math.min,qn=function(A){var e=wE(A);return e>0?Xg(e,9007199254740991):0},Ar=qn,Fa=function(A){return Ar(A.length)},Cd=ns,lC=gg,Gu=Fa,KI=function(A){return function(e,o,a){var c=Cd(e),d=Gu(c);if(d===0)return!A&&-1;var C,y=lC(a,d);if(A&&o!=o){for(;d>y;)if((C=c[y++])!=C)return!0}else for(;d>y;y++)if((A||y in c)&&c[y]===o)return A||y||0;return!A&&-1}},Zc={includes:KI(!0),indexOf:KI(!1)},Xc=Cs,jI=ns,EI=Zc.indexOf,$c=Tg,Al=We([].push),va=function(A,e){var o,a=jI(A),c=0,d=[];for(o in a)!Xc($c,o)&&Xc(a,o)&&Al(d,o);for(;e.length>c;)Xc(a,o=e[c++])&&(~EI(d,o)||Al(d,o));return d},bg=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],ys=va,Kn=bg.concat("length","prototype");Mc.f=Object.getOwnPropertyNames||function(A){return ys(A,Kn)};var vc={};vc.f=Object.getOwnPropertySymbols;var WI=HA,zI=Mc,_E=vc,rh=sr,IC=We([].concat),ah=WI("Reflect","ownKeys")||function(A){var e=zI.f(rh(A)),o=_E.f;return o?IC(e,o(A)):e},el=Cs,kg=ah,no=w,uC=Ki,TE=function(A,e,o){for(var a=kg(e),c=uC.f,d=no.f,C=0;C<a.length;C++){var y=a[C];el(A,y)||o&&el(o,y)||c(A,y,d(e,y))}},NE=_,hd=$i,GE=/#|\.prototype\./,tl=function(A,e){var o=bu[dI(A)];return o===EC||o!==ku&&(hd(e)?NE(e):!!e)},dI=tl.normalize=function(A){return String(A).replace(GE,".").toLowerCase()},bu=tl.data={},ku=tl.NATIVE="N",EC=tl.POLYFILL="P",Rr=tl,cg=f,Rc=w.f,Lu=rg,Tl=Sr,Bd=Pn,$r=TE,CI=Rr,_n=function(A,e){var o,a,c,d,C,y=A.target,S=A.global,k=A.stat;if(o=S?cg:k?cg[y]||Bd(y,{}):cg[y]&&cg[y].prototype)for(a in e){if(d=e[a],c=A.dontCallGetSet?(C=Rc(o,a))&&C.value:o[a],!CI(S?a:y+(k?".":"#")+a,A.forced)&&c!==void 0){if(typeof d==typeof c)continue;$r(d,c)}(A.sham||c&&c.sham)&&Lu(d,"sham",!0),Tl(o,a,d,A)}},dC={};dC[Hs("toStringTag")]="z";var il=String(dC)==="[object z]",Qd=$i,hI=ge,Oa=Hs("toStringTag"),CC=Object,Pa=hI(function(){return arguments}())==="Arguments",ur=il?hI:function(A){var e,o,a;return A===void 0?"Undefined":A===null?"Null":typeof(o=function(c,d){try{return c[d]}catch{}}(e=CC(A),Oa))=="string"?o:Pa?hI(e):(a=hI(e))==="Object"&&Qd(e.callee)?"Arguments":a},pd=ur,Uu=String,Er=function(A){if(pd(A)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return Uu(A)},wc=II,ol=Ki,Lg=function(A,e,o){return o.get&&wc(o.get,e,{getter:!0}),o.set&&wc(o.set,e,{setter:!0}),ol.f(A,e,o)},Oo=_n,$g=b,Za=We,Nl=Cs,Aa=$i,gh=le,js=Er,ZI=Lg,Us=TE,_c=f.Symbol,Ac=_c&&_c.prototype;if($g&&Aa(_c)&&(!("description"in Ac)||_c().description!==void 0)){var dr={},Vr=function(){var A=arguments.length<1||arguments[0]===void 0?void 0:js(arguments[0]),e=gh(Ac,this)?new _c(A):A===void 0?_c():_c(A);return A===""&&(dr[e]=!0),e};Us(Vr,_c),Vr.prototype=Ac,Ac.constructor=Vr;var Xa=String(_c("description detection"))==="Symbol(description detection)",bE=Za(Ac.valueOf),hC=Za(Ac.toString),ch=/^Symbol\((.*)\)[^)]+$/,ro=Za("".replace),Tc=Za("".slice);ZI(Ac,"description",{configurable:!0,get:function(){var A=bE(this);if(Nl(dr,A))return"";var e=hC(A),o=Xa?Tc(e,7,-1):ro(e,ch,"$1");return o===""?void 0:o}}),Oo({global:!0,constructor:!0,forced:!0},{Symbol:Vr})}var Gl={},BC=va,QC=bg,bl=Object.keys||function(A){return BC(A,QC)},XI=b,BI=qs,QI=Ki,kE=sr,kl=ns,Ll=bl;Gl.f=XI&&!BI?Object.defineProperties:function(A,e){kE(A);for(var o,a=kl(e),c=Ll(e),d=c.length,C=0;d>C;)QI.f(A,o=c[C++],a[o]);return A};var Ug,ec=HA("document","documentElement"),md=sr,LE=Gl,Nc=bg,$I=Tg,lo=ec,UE=ee,$a="prototype",Au="script",Fu=sa("IE_PROTO"),Gc=function(){},pI=function(A){return"<"+Au+">"+A+"</"+Au+">"},sl=function(A){A.write(pI("")),A.close();var e=A.parentWindow.Object;return A=null,e},nl=function(){try{Ug=new ActiveXObject("htmlfile")}catch{}nl=typeof document<"u"?document.domain&&Ug?sl(Ug):function(){var e,o=UE("iframe"),a="java"+Au+":";return o.style.display="none",lo.appendChild(o),o.src=String(a),(e=o.contentWindow.document).open(),e.write(pI("document.F=Object")),e.close(),e.F}():sl(Ug);for(var A=Nc.length;A--;)delete nl[$a][Nc[A]];return nl()};$I[Fu]=!0;var xa=Object.create||function(A,e){var o;return A!==null?(Gc[$a]=md(A),o=new Gc,Gc[$a]=null,o[Fu]=A):o=nl(),e===void 0?o:LE.f(o,e)},FE=Hs,ra=xa,Mn=Ki.f,kr=FE("unscopables"),rl=Array.prototype;rl[kr]===void 0&&Mn(rl,kr,{configurable:!0,value:ra(null)});var Ul=function(A){rl[kr][A]=!0},bc=Zc.includes,OE=Ul;_n({target:"Array",proto:!0,forced:_(function(){return!Array(1).includes()})},{includes:function(A){return bc(this,A,arguments.length>1?arguments[1]:void 0)}}),OE("includes");var kc,Ou,pC,eu={},lh=!_(function(){function A(){}return A.prototype.constructor=null,Object.getPrototypeOf(new A)!==A.prototype}),Pu=Cs,mI=$i,al=as,mC=lh,aa=sa("IE_PROTO"),tc=Object,lg=tc.prototype,fI=mC?tc.getPrototypeOf:function(A){var e=al(A);if(Pu(e,aa))return e[aa];var o=e.constructor;return mI(o)&&e instanceof o?o.prototype:e instanceof tc?lg:null},PE=_,xu=$i,Yu=io,yI=fI,gl=Sr,Lr=Hs("iterator"),Ur=!1;[].keys&&("next"in(pC=[].keys())?(Ou=yI(yI(pC)))!==Object.prototype&&(kc=Ou):Ur=!0);var Ig=!Yu(kc)||PE(function(){var A={};return kc[Lr].call(A)!==A});Ig&&(kc={}),xu(kc[Lr])||gl(kc,Lr,function(){return this});var ar={IteratorPrototype:kc,BUGGY_SAFARI_ITERATORS:Ur},wr=Ki.f,ic=Cs,Fg=Hs("toStringTag"),Ya=function(A,e,o){A&&!o&&(A=A.prototype),A&&!ic(A,Fg)&&wr(A,Fg,{configurable:!0,value:e})},Fl=ar.IteratorPrototype,ha=xa,DI=de,tu=Ya,Ba=eu,cl=function(){return this},xE=function(A,e,o,a){var c=e+" Iterator";return A.prototype=ha(Fl,{next:DI(+!a,o)}),tu(A,c,!1),Ba[c]=cl,A},iu=We,YE=Pi,Jr=io,ou=function(A){return Jr(A)||A===null},Ot=String,Vu=TypeError,Ju=function(A,e,o){try{return iu(YE(Object.getOwnPropertyDescriptor(A,e)[o]))}catch{}},fC=io,q=Eo,L=function(A){if(ou(A))return A;throw new Vu("Can't set "+Ot(A)+" as a prototype")},oA=Object.setPrototypeOf||("__proto__"in{}?function(){var A,e=!1,o={};try{(A=Ju(Object.prototype,"__proto__","set"))(o,[]),e=o instanceof Array}catch{}return function(a,c){return q(a),L(c),fC(a)&&(e?A(a,c):a.__proto__=c),a}}():void 0),G=_n,x=nA,tA=$i,uA=xE,wA=fI,$A=oA,me=Ya,p=rg,B=Sr,v=eu,N=zg.PROPER,O=zg.CONFIGURABLE,z=ar.IteratorPrototype,X=ar.BUGGY_SAFARI_ITERATORS,rA=Hs("iterator"),DA="keys",GA="values",VA="entries",te=function(){return this},Ce=function(A,e,o,a,c,d,C){uA(o,e,a);var y,S,k,V=function(Ye){if(Ye===c&&Ae)return Ae;if(!X&&Ye&&Ye in CA)return CA[Ye];switch(Ye){case DA:case GA:case VA:return function(){return new o(this,Ye)}}return function(){return new o(this)}},J=e+" Iterator",gA=!1,CA=A.prototype,MA=CA[rA]||CA["@@iterator"]||c&&CA[c],Ae=!X&&MA||V(c),Qe=e==="Array"&&CA.entries||MA;if(Qe&&(y=wA(Qe.call(new A)))!==Object.prototype&&y.next&&(wA(y)!==z&&($A?$A(y,z):tA(y[rA])||B(y,rA,te)),me(y,J,!0)),N&&c===GA&&MA&&MA.name!==GA&&(O?p(CA,"name",GA):(gA=!0,Ae=function(){return x(MA,this)})),c)if(S={values:V(GA),keys:d?Ae:V(DA),entries:V(VA)},C)for(k in S)(X||gA||!(k in CA))&&B(CA,k,S[k]);else G({target:e,proto:!0,forced:X||gA},S);return CA[rA]!==Ae&&B(CA,rA,Ae,{name:c}),v[e]=Ae,S},Ke=function(A,e){return{value:A,done:e}},ot=ns,at=Ul,kt=eu,Vt=un,Ui=Ki.f,ao=Ce,Zi=Ke,Ei=b,Po="Array Iterator",As=Vt.set,pi=Vt.getterFor(Po),ji=ao(Array,"Array",function(A,e){As(this,{type:Po,target:ot(A),index:0,kind:e})},function(){var A=pi(this),e=A.target,o=A.index++;if(!e||o>=e.length)return A.target=null,Zi(void 0,!0);switch(A.kind){case"keys":return Zi(o,!1);case"values":return Zi(e[o],!1)}return Zi([o,e[o]],!1)},"values"),Ws=kt.Arguments=kt.Array;if(at("keys"),at("values"),at("entries"),Ei&&Ws.name!=="values")try{Ui(Ws,"name",{value:"values"})}catch{}var Te=Pi,Rt=as,FA=gi,zt=Fa,En=TypeError,Xt="Reduce of empty array with no initial value",us=function(A){return function(e,o,a,c){var d=Rt(e),C=FA(d),y=zt(d);if(Te(o),y===0&&a<2)throw new En(Xt);var S=A?y-1:0,k=A?-1:1;if(a<2)for(;;){if(S in C){c=C[S],S+=k;break}if(S+=k,A?S<0:y<=S)throw new En(Xt)}for(;A?S>=0:y>S;S+=k)S in C&&(c=o(c,C[S],S,d));return c}},vi={left:us(!1),right:us(!0)},ho=_,Ct=function(A,e){var o=[][A];return!!o&&ho(function(){o.call(null,e||function(){return 1},1)})},Bt=f,ug=nt,ks=ge,Wi=function(A){return ug.slice(0,A.length)===A},Hr=Wi("Bun/")?"BUN":Wi("Cloudflare-Workers")?"CLOUDFLARE":Wi("Deno/")?"DENO":Wi("Node.js/")?"NODE":Bt.Bun&&typeof Bun.version=="string"?"BUN":Bt.Deno&&typeof Deno.version=="object"?"DENO":ks(Bt.process)==="process"?"NODE":Bt.window&&Bt.document?"BROWSER":"REST",oc=Hr==="NODE",is=vi.left;_n({target:"Array",proto:!0,forced:!oc&&_t>79&&_t<83||!Ct("reduce")},{reduce:function(A){var e=arguments.length;return is(this,A,e,e>1?arguments[1]:void 0)}});var ga=vi.right;_n({target:"Array",proto:!0,forced:!oc&&_t>79&&_t<83||!Ct("reduceRight")},{reduceRight:function(A){return ga(this,A,arguments.length,arguments.length>1?arguments[1]:void 0)}});var Qa=ge,ea=Array.isArray||function(A){return Qa(A)==="Array"},H=_n,BA=ea,yA=We([].reverse),NA=[1,2];H({target:"Array",proto:!0,forced:String(NA)===String(NA.reverse())},{reverse:function(){return BA(this)&&(this.length=this.length),yA(this)}});var zA=Jn,we=TypeError,Ie=We([].slice),Ge=Ie,ce=Math.floor,Fe=function(A,e){var o=A.length;if(o<8)for(var a,c,d=1;d<o;){for(c=d,a=A[d];c&&e(A[c-1],a)>0;)A[c]=A[--c];c!==d++&&(A[c]=a)}else for(var C=ce(o/2),y=Fe(Ge(A,0,C),e),S=Fe(Ge(A,C),e),k=y.length,V=S.length,J=0,gA=0;J<k||gA<V;)A[J+gA]=J<k&&gA<V?e(y[J],S[gA])<=0?y[J++]:S[gA++]:J<k?y[J++]:S[gA++];return A},St=Fe,jt=nt.match(/firefox\/(\d+)/i),ci=!!jt&&+jt[1],ft=/MSIE|Trident/.test(nt),Bi=nt.match(/AppleWebKit\/(\d+)\./),Ao=!!Bi&&+Bi[1],Is=_n,Uo=We,ii=Pi,Fr=as,Zo=Fa,jn=function(A,e){if(!delete A[e])throw new we("Cannot delete property "+zA(e)+" of "+zA(A))},Wn=Er,ta=_,qr=St,sc=Ct,Hu=ci,mm=ft,Ri=_t,oi=Ao,yo=[],on=Uo(yo.sort),os=Uo(yo.push),Eg=ta(function(){yo.sort(void 0)}),Ol=ta(function(){yo.sort(null)}),fd=sc("sort"),Lc=!ta(function(){if(Ri)return Ri<70;if(!(Hu&&Hu>3)){if(mm)return!0;if(oi)return oi<603;var A,e,o,a,c="";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(a=0;a<47;a++)yo.push({k:e+a,v:o})}for(yo.sort(function(d,C){return C.v-d.v}),a=0;a<yo.length;a++)e=yo[a].k.charAt(0),c.charAt(c.length-1)!==e&&(c+=e);return c!=="DGBEFHACIJK"}});Is({target:"Array",proto:!0,forced:Eg||!Ol||!fd||!Lc},{sort:function(A){A!==void 0&&ii(A);var e=Fr(this);if(Lc)return A===void 0?on(e):on(e,A);var o,a,c=[],d=Zo(e);for(a=0;a<d;a++)a in e&&os(c,e[a]);for(qr(c,function(C){return function(y,S){return S===void 0?-1:y===void 0?1:C!==void 0?+C(y,S)||0:Wn(y)>Wn(S)?1:-1}}(A)),o=Zo(c),a=0;a<o;)e[a]=c[a++];for(;a<d;)jn(e,a++);return e}});var Mr=typeof ArrayBuffer<"u"&&typeof DataView<"u",SI=Sr,su=function(A,e,o){for(var a in e)SI(A,a,e[a],o);return A},Og=le,nu=TypeError,MI=function(A,e){if(Og(e,A))return A;throw new nu("Incorrect invocation")},Uc=Xr,qu=qn,fm=RangeError,ym=function(A){if(A===void 0)return 0;var e=Uc(A),o=qu(e);if(e!==o)throw new fm("Wrong length or index");return o},Dm=Math.sign||function(A){var e=+A;return e===0||e!=e?e:e<0?-1:1},Sm=4503599627370496,gD=Dm,cD=function(A){return A+Sm-Sm},kv=Math.abs,lD=function(A,e,o,a){var c=+A,d=kv(c),C=gD(c);if(d<a)return C*cD(d/a/e)*a*e;var y=(1+e/2220446049250313e-31)*d,S=y-(y-d);return S>o||S!=S?1/0*C:C*S},ID=Math.fround||function(A){return lD(A,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},Lv=Array,dT=Math.abs,yd=Math.pow,CT=Math.floor,uD=Math.log,hT=Math.LN2,ED={pack:function(A,e,o){var a,c,d,C=Lv(o),y=8*o-e-1,S=(1<<y)-1,k=S>>1,V=e===23?yd(2,-24)-yd(2,-77):0,J=A<0||A===0&&1/A<0?1:0,gA=0;for((A=dT(A))!=A||A===1/0?(c=A!=A?1:0,a=S):(a=CT(uD(A)/hT),A*(d=yd(2,-a))<1&&(a--,d*=2),(A+=a+k>=1?V/d:V*yd(2,1-k))*d>=2&&(a++,d/=2),a+k>=S?(c=0,a=S):a+k>=1?(c=(A*d-1)*yd(2,e),a+=k):(c=A*yd(2,k-1)*yd(2,e),a=0));e>=8;)C[gA++]=255&c,c/=256,e-=8;for(a=a<<e|c,y+=e;y>0;)C[gA++]=255&a,a/=256,y-=8;return C[gA-1]|=128*J,C},unpack:function(A,e){var o,a=A.length,c=8*a-e-1,d=(1<<c)-1,C=d>>1,y=c-7,S=a-1,k=A[S--],V=127&k;for(k>>=7;y>0;)V=256*V+A[S--],y-=8;for(o=V&(1<<-y)-1,V>>=-y,y+=e;y>0;)o=256*o+A[S--],y-=8;if(V===0)V=1-C;else{if(V===d)return o?NaN:k?-1/0:1/0;o+=yd(2,e),V-=C}return(k?-1:1)*o*yd(2,V-e)}},BT=as,Uv=gg,QT=Fa,Fv=function(A){for(var e=BT(this),o=QT(e),a=arguments.length,c=Uv(a>1?arguments[1]:void 0,o),d=a>2?arguments[2]:void 0,C=d===void 0?o:Uv(d,o);C>c;)e[c++]=A;return e},pT=$i,mT=io,dD=oA,CD=function(A,e,o){var a,c;return dD&&pT(a=e.constructor)&&a!==o&&mT(c=a.prototype)&&c!==o.prototype&&dD(A,c),A},TQ=f,Mm=We,vm=b,Dd=Mr,fT=rg,yT=Lg,Rm=su,hD=_,Ih=MI,DT=Xr,ST=qn,wm=ym,Ov=ID,BD=ED,_m=fI,Pv=oA,MT=Fv,vT=Ie,xv=CD,Sd=TE,Tm=Ya,Md=un,VE=zg.PROPER,Nm=zg.CONFIGURABLE,yC="ArrayBuffer",uh="DataView",Ku="prototype",Yi="Wrong index",Gm=Md.getterFor(yC),dn=Md.getterFor(uh),Yv=Md.set,ju=TQ[yC],zs=ju,Eh=zs&&zs[Ku],Pl=TQ[uh],nc=Pl&&Pl[Ku],JE=Object.prototype,NQ=TQ.Array,cB=TQ.RangeError,RT=Mm(MT),wT=Mm([].reverse),GQ=BD.pack,bQ=BD.unpack,Vv=function(A){return[255&A]},Jv=function(A){return[255&A,A>>8&255]},QD=function(A){return[255&A,A>>8&255,A>>16&255,A>>24&255]},DC=function(A){return A[3]<<24|A[2]<<16|A[1]<<8|A[0]},lB=function(A){return GQ(Ov(A),23,4)},pD=function(A){return GQ(A,52,8)},kQ=function(A,e,o){yT(A[Ku],e,{configurable:!0,get:function(){return o(this)[e]}})},vd=function(A,e,o,a){var c=dn(A),d=wm(o),C=!!a;if(d+e>c.byteLength)throw new cB(Yi);var y=c.bytes,S=d+c.byteOffset,k=vT(y,S,S+e);return C?k:wT(k)},Rd=function(A,e,o,a,c,d){var C=dn(A),y=wm(o),S=a(+c),k=!!d;if(y+e>C.byteLength)throw new cB(Yi);for(var V=C.bytes,J=y+C.byteOffset,gA=0;gA<e;gA++)V[J+gA]=S[k?gA:e-gA-1]};if(Dd){var Hv=VE&&ju.name!==yC;hD(function(){ju(1)})&&hD(function(){new ju(-1)})&&!hD(function(){return new ju,new ju(1.5),new ju(NaN),ju.length!==1||Hv&&!Nm})?Hv&&Nm&&fT(ju,"name",yC):((zs=function(A){return Ih(this,Eh),xv(new ju(wm(A)),this,zs)})[Ku]=Eh,Eh.constructor=zs,Sd(zs,ju)),Pv&&_m(nc)!==JE&&Pv(nc,JE);var LQ=new Pl(new zs(2)),mD=Mm(nc.setInt8);LQ.setInt8(0,2147483648),LQ.setInt8(1,2147483649),!LQ.getInt8(0)&&LQ.getInt8(1)||Rm(nc,{setInt8:function(A,e){mD(this,A,e<<24>>24)},setUint8:function(A,e){mD(this,A,e<<24>>24)}},{unsafe:!0})}else Eh=(zs=function(A){Ih(this,Eh);var e=wm(A);Yv(this,{type:yC,bytes:RT(NQ(e),0),byteLength:e}),vm||(this.byteLength=e,this.detached=!1)})[Ku],nc=(Pl=function(A,e,o){Ih(this,nc),Ih(A,Eh);var a=Gm(A),c=a.byteLength,d=DT(e);if(d<0||d>c)throw new cB("Wrong offset");if(d+(o=o===void 0?c-d:ST(o))>c)throw new cB("Wrong length");Yv(this,{type:uh,buffer:A,byteLength:o,byteOffset:d,bytes:a.bytes}),vm||(this.buffer=A,this.byteLength=o,this.byteOffset=d)})[Ku],vm&&(kQ(zs,"byteLength",Gm),kQ(Pl,"buffer",dn),kQ(Pl,"byteLength",dn),kQ(Pl,"byteOffset",dn)),Rm(nc,{getInt8:function(A){return vd(this,1,A)[0]<<24>>24},getUint8:function(A){return vd(this,1,A)[0]},getInt16:function(A){var e=vd(this,2,A,arguments.length>1&&arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(A){var e=vd(this,2,A,arguments.length>1&&arguments[1]);return e[1]<<8|e[0]},getInt32:function(A){return DC(vd(this,4,A,arguments.length>1&&arguments[1]))},getUint32:function(A){return DC(vd(this,4,A,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(A){return bQ(vd(this,4,A,arguments.length>1&&arguments[1]),23)},getFloat64:function(A){return bQ(vd(this,8,A,arguments.length>1&&arguments[1]),52)},setInt8:function(A,e){Rd(this,1,A,Vv,e)},setUint8:function(A,e){Rd(this,1,A,Vv,e)},setInt16:function(A,e){Rd(this,2,A,Jv,e,arguments.length>2&&arguments[2])},setUint16:function(A,e){Rd(this,2,A,Jv,e,arguments.length>2&&arguments[2])},setInt32:function(A,e){Rd(this,4,A,QD,e,arguments.length>2&&arguments[2])},setUint32:function(A,e){Rd(this,4,A,QD,e,arguments.length>2&&arguments[2])},setFloat32:function(A,e){Rd(this,4,A,lB,e,arguments.length>2&&arguments[2])},setFloat64:function(A,e){Rd(this,8,A,pD,e,arguments.length>2&&arguments[2])}});Tm(zs,yC),Tm(Pl,uh);var bm={ArrayBuffer:zs,DataView:Pl},qv=HA,_T=Lg,km=b,IB=Hs("species"),Lm=function(A){var e=qv(A);km&&e&&!e[IB]&&_T(e,IB,{configurable:!0,get:function(){return this}})},TT=Lm,fD="ArrayBuffer",yD=bm[fD];_n({global:!0,constructor:!0,forced:f[fD]!==yD},{ArrayBuffer:yD}),TT(fD);var UQ=ge,HE=We,Wu=function(A){if(UQ(A)==="Function")return HE(A)},DD=_n,dh=Wu,Um=_,Kv=sr,FQ=gg,jv=qn,SD=bm.ArrayBuffer,vn=bm.DataView,OQ=vn.prototype,wd=dh(SD.prototype.slice),MD=dh(OQ.getUint8),NT=dh(OQ.setUint8);DD({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:Um(function(){return!new SD(2).slice(1,void 0).byteLength})},{slice:function(A,e){if(wd&&e===void 0)return wd(Kv(this),A);for(var o=Kv(this).byteLength,a=FQ(A,o),c=FQ(e===void 0?o:e,o),d=new SD(jv(c-a)),C=new vn(this),y=new vn(d),S=0;a<c;)NT(y,S++,MD(C,a++));return d}});var GT=f,bT=We,uB=_,Wv=$i,kT=ur,qE=SE,Ch=function(){},vD=HA("Reflect","construct"),RD=/^\s*(?:class|function)\b/,LT=bT(RD.exec),UT=!RD.test(Ch),PQ=function(A){if(!Wv(A))return!1;try{return vD(Ch,[],A),!0}catch{return!1}},zv=function(A){if(!Wv(A))return!1;switch(kT(A)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return UT||!!LT(RD,qE(A))}catch{return!0}};zv.sham=!0;var hh,zu,xQ,Fm,wD=!vD||uB(function(){var A;return PQ(PQ.call)||!PQ(Object)||!PQ(function(){A=!0})||A})?zv:PQ,FT=wD,Bh=Jn,EB=TypeError,Qh=function(A){if(FT(A))return A;throw new EB(Bh(A)+" is not a constructor")},YQ=sr,dB=Qh,Zv=Fi,Pg=Hs("species"),Xv=function(A,e){var o,a=YQ(A).constructor;return a===void 0||Zv(o=YQ(a)[Pg])?e:dB(o)},OT=U,$v=Function.prototype,Om=$v.apply,Pm=$v.call,_d=typeof Reflect=="object"&&Reflect.apply||(OT?Pm.bind(Om):function(){return Pm.apply(Om,arguments)}),AR=Pi,eR=U,xm=Wu(Wu.bind),Ag=function(A,e){return AR(A),e===void 0?A:eR?xm(A,e):function(){return A.apply(e,arguments)}},Ym=TypeError,CB=function(A,e){if(A<e)throw new Ym("Not enough arguments");return A},hB=/(?:ipad|iphone|ipod).*applewebkit/i.test(nt),vI=f,PT=_d,tR=Ag,ph=$i,Vm=Cs,SC=_,VQ=ec,iR=Ie,oR=ee,sR=CB,Jm=hB,_D=oc,Hm=vI.setImmediate,TD=vI.clearImmediate,ND=vI.process,mh=vI.Dispatch,nR=vI.Function,GD=vI.MessageChannel,bD=vI.String,qm=0,fh={},BB="onreadystatechange";SC(function(){hh=vI.location});var yh=function(A){if(Vm(fh,A)){var e=fh[A];delete fh[A],e()}},Dh=function(A){return function(){yh(A)}},QB=function(A){yh(A.data)},pB=function(A){vI.postMessage(bD(A),hh.protocol+"//"+hh.host)};Hm&&TD||(Hm=function(A){sR(arguments.length,1);var e=ph(A)?A:nR(A),o=iR(arguments,1);return fh[++qm]=function(){PT(e,void 0,o)},zu(qm),qm},TD=function(A){delete fh[A]},_D?zu=function(A){ND.nextTick(Dh(A))}:mh&&mh.now?zu=function(A){mh.now(Dh(A))}:GD&&!Jm?(Fm=(xQ=new GD).port2,xQ.port1.onmessage=QB,zu=tR(Fm.postMessage,Fm)):vI.addEventListener&&ph(vI.postMessage)&&!vI.importScripts&&hh&&hh.protocol!=="file:"&&!SC(pB)?(zu=pB,vI.addEventListener("message",QB,!1)):zu=BB in oR("script")?function(A){VQ.appendChild(oR("script"))[BB]=function(){VQ.removeChild(this),yh(A)}}:function(A){setTimeout(Dh(A),0)});var MC={set:Hm,clear:TD},JQ=f,HQ=b,xT=Object.getOwnPropertyDescriptor,rR=function(A){if(!HQ)return JQ[A];var e=xT(JQ,A);return e&&e.value},Sh=function(){this.head=null,this.tail=null};Sh.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 mB,kD,Km,qQ,KQ,jQ=Sh,aR=/ipad|iphone|ipod/i.test(nt)&&typeof Pebble<"u",YT=/web0s(?!.*chrome)/i.test(nt),ll=f,gR=rR,cR=Ag,LD=MC.set,lR=jQ,Mh=hB,WQ=aR,IR=YT,vh=oc,zQ=ll.MutationObserver||ll.WebKitMutationObserver,uR=ll.document,fB=ll.process,yB=ll.Promise,UD=gR("queueMicrotask");if(!UD){var vC=new lR,ZQ=function(){var A,e;for(vh&&(A=fB.domain)&&A.exit();e=vC.get();)try{e()}catch(o){throw vC.head&&mB(),o}A&&A.enter()};Mh||vh||IR||!zQ||!uR?!WQ&&yB&&yB.resolve?((qQ=yB.resolve(void 0)).constructor=yB,KQ=cR(qQ.then,qQ),mB=function(){KQ(ZQ)}):vh?mB=function(){fB.nextTick(ZQ)}:(LD=cR(LD,ll),mB=function(){LD(ZQ)}):(kD=!0,Km=uR.createTextNode(""),new zQ(ZQ).observe(Km,{characterData:!0}),mB=function(){Km.data=kD=!kD}),UD=function(A){vC.head||mB(),vC.add(A)}}var jm=UD,DB=function(A){try{return{error:!1,value:A()}}catch(e){return{error:!0,value:e}}},SB=f.Promise,XQ=f,$Q=SB,ru=$i,MB=Rr,Ap=SE,ep=Hs,rc=Hr,FD=_t;$Q&&$Q.prototype;var Cr=ep("species"),ER=!1,dR=ru(XQ.PromiseRejectionEvent),VT=MB("Promise",function(){var A=Ap($Q),e=A!==String($Q);if(!e&&FD===66)return!0;if(!FD||FD<51||!/native code/.test(A)){var o=new $Q(function(c){c(1)}),a=function(c){c(function(){},function(){})};if((o.constructor={})[Cr]=a,!(ER=o.then(function(){})instanceof a))return!0}return!(e||rc!=="BROWSER"&&rc!=="DENO"||dR)}),Rh={CONSTRUCTOR:VT,REJECTION_EVENT:dR,SUBCLASSING:ER},Kr={},Zu=Pi,KE=TypeError,OD=function(A){var e,o;this.promise=new A(function(a,c){if(e!==void 0||o!==void 0)throw new KE("Bad Promise constructor");e=a,o=c}),this.resolve=Zu(e),this.reject=Zu(o)};Kr.f=function(A){return new OD(A)};var PD,CR,Xu,hR,tp=_n,au=oc,jE=f,Td=GT,Nd=nA,Wm=Sr,BR=oA,Gd=Ya,xD=Lm,QR=Pi,ip=$i,pR=io,mR=MI,YD=Xv,zm=MC.set,Zm=jm,VD=function(A,e){try{arguments.length===1?console.error(A):console.error(A,e)}catch{}},JT=DB,RC=jQ,JD=un,op=SB,sp=Kr,vB="Promise",RB=Rh.CONSTRUCTOR,fR=Rh.REJECTION_EVENT,yR=Rh.SUBCLASSING,np=JD.getterFor(vB),HD=JD.set,wh=op&&op.prototype,_h=op,wB=wh,Th=jE.TypeError,Xm=jE.document,_B=jE.process,qD=sp.f,HT=qD,KD=!!(Xm&&Xm.createEvent&&jE.dispatchEvent),jD="unhandledrejection",DR=function(A){var e;return!(!pR(A)||!ip(e=A.then))&&e},SR=function(A,e){var o,a,c,d=e.value,C=e.state===1,y=C?A.ok:A.fail,S=A.resolve,k=A.reject,V=A.domain;try{y?(C||(e.rejection===2&&vR(e),e.rejection=1),y===!0?o=d:(V&&V.enter(),o=y(d),V&&(V.exit(),c=!0)),o===A.promise?k(new Th("Promise-chain cycle")):(a=DR(o))?Nd(a,o,S,k):S(o)):k(d)}catch(J){V&&!c&&V.exit(),k(J)}},MR=function(A,e){A.notified||(A.notified=!0,Zm(function(){for(var o,a=A.reactions;o=a.get();)SR(o,A);A.notified=!1,e&&!A.rejection&&qT(A)}))},$m=function(A,e,o){var a,c;KD?((a=Xm.createEvent("Event")).promise=e,a.reason=o,a.initEvent(A,!1,!0),jE.dispatchEvent(a)):a={promise:e,reason:o},!fR&&(c=jE["on"+A])?c(a):A===jD&&VD("Unhandled promise rejection",o)},qT=function(A){Nd(zm,jE,function(){var e,o=A.facade,a=A.value;if(Af(A)&&(e=JT(function(){au?_B.emit("unhandledRejection",a,o):$m(jD,o,a)}),A.rejection=au||Af(A)?2:1,e.error))throw e.value})},Af=function(A){return A.rejection!==1&&!A.parent},vR=function(A){Nd(zm,jE,function(){var e=A.facade;au?_B.emit("rejectionHandled",e):$m("rejectionhandled",e,A.value)})},Nh=function(A,e,o){return function(a){A(e,a,o)}},Gh=function(A,e,o){A.done||(A.done=!0,o&&(A=o),A.value=e,A.state=2,MR(A,!0))},WD=function(A,e,o){if(!A.done){A.done=!0,o&&(A=o);try{if(A.facade===e)throw new Th("Promise can't be resolved itself");var a=DR(e);a?Zm(function(){var c={done:!1};try{Nd(a,e,Nh(WD,c,A),Nh(Gh,c,A))}catch(d){Gh(c,d,A)}}):(A.value=e,A.state=1,MR(A,!1))}catch(c){Gh({done:!1},c,A)}}};if(RB&&(wB=(_h=function(A){mR(this,wB),QR(A),Nd(PD,this);var e=np(this);try{A(Nh(WD,e),Nh(Gh,e))}catch(o){Gh(e,o)}}).prototype,(PD=function(A){HD(this,{type:vB,done:!1,notified:!1,parent:!1,reactions:new RC,rejection:!1,state:0,value:null})}).prototype=Wm(wB,"then",function(A,e){var o=np(this),a=qD(YD(this,_h));return o.parent=!0,a.ok=!ip(A)||A,a.fail=ip(e)&&e,a.domain=au?_B.domain:void 0,o.state===0?o.reactions.add(a):Zm(function(){SR(a,o)}),a.promise}),CR=function(){var A=new PD,e=np(A);this.promise=A,this.resolve=Nh(WD,e),this.reject=Nh(Gh,e)},sp.f=qD=function(A){return A===_h||A===Xu?new CR(A):HT(A)},ip(op)&&wh!==Object.prototype)){hR=wh.then,yR||Wm(wh,"then",function(A,e){var o=this;return new _h(function(a,c){Nd(hR,o,a,c)}).then(A,e)},{unsafe:!0});try{delete wh.constructor}catch{}BR&&BR(wh,wB)}tp({global:!0,constructor:!0,wrap:!0,forced:RB},{Promise:_h}),Xu=Td.Promise,Gd(_h,vB,!1),xD(vB);var RR=eu,KT=Hs("iterator"),jT=Array.prototype,zD=function(A){return A!==void 0&&(RR.Array===A||jT[KT]===A)},RI=ur,xl=en,ZD=Fi,XD=eu,WT=Hs("iterator"),bh=function(A){if(!ZD(A))return xl(A,WT)||xl(A,"@@iterator")||XD[RI(A)]},wR=nA,ef=Pi,bd=sr,$u=Jn,_R=bh,TR=TypeError,WE=function(A,e){var o=arguments.length<2?_R(A):e;if(ef(o))return bd(wR(o,A));throw new TR($u(A)+" is not iterable")},$D=nA,tf=sr,of=en,AS=function(A,e,o){var a,c;tf(A);try{if(!(a=of(A,"return"))){if(e==="throw")throw o;return o}a=$D(a,A)}catch(d){c=!0,a=d}if(e==="throw")throw o;if(c)throw a;return tf(a),o},rp=Ag,zT=nA,sf=sr,NR=Jn,ZT=zD,XT=Fa,eS=le,$T=WE,AN=bh,tS=AS,kd=TypeError,wC=function(A,e){this.stopped=A,this.result=e},Ld=wC.prototype,iS=function(A,e,o){var a,c,d,C,y,S,k,V=o&&o.that,J=!(!o||!o.AS_ENTRIES),gA=!(!o||!o.IS_RECORD),CA=!(!o||!o.IS_ITERATOR),MA=!(!o||!o.INTERRUPTED),Ae=rp(e,V),Qe=function(ve){return a&&tS(a,"normal"),new wC(!0,ve)},Ye=function(ve){return J?(sf(ve),MA?Ae(ve[0],ve[1],Qe):Ae(ve[0],ve[1])):MA?Ae(ve,Qe):Ae(ve)};if(gA)a=A.iterator;else if(CA)a=A;else{if(!(c=AN(A)))throw new kd(NR(A)+" is not iterable");if(ZT(c)){for(d=0,C=XT(A);C>d;d++)if((y=Ye(A[d]))&&eS(Ld,y))return y;return new wC(!1)}a=$T(A,c)}for(S=gA?A.next:a.next;!(k=zT(S,a)).done;){try{y=Ye(k.value)}catch(ve){tS(a,"throw",ve)}if(typeof y=="object"&&y&&eS(Ld,y))return y}return new wC(!1)},oS=Hs("iterator"),sS=!1;try{var s=0,n={next:function(){return{done:!!s++}},return:function(){sS=!0}};n[oS]=function(){return this},Array.from(n,function(){throw 2})}catch{}var g=function(A,e){try{if(!e&&!sS)return!1}catch{return!1}var o=!1;try{var a={};a[oS]=function(){return{next:function(){return{done:o=!0}}}},A(a)}catch{}return o},u=SB,E=Rh.CONSTRUCTOR||!g(function(A){u.all(A).then(void 0,function(){})}),m=nA,D=Pi,M=Kr,T=DB,P=iS;_n({target:"Promise",stat:!0,forced:E},{all:function(A){var e=this,o=M.f(e),a=o.resolve,c=o.reject,d=T(function(){var C=D(e.resolve),y=[],S=0,k=1;P(A,function(V){var J=S++,gA=!1;k++,m(C,e,V).then(function(CA){gA||(gA=!0,y[J]=CA,--k||a(y))},c)}),--k||a(y)});return d.error&&c(d.value),o.promise}});var W=_n,iA=Rh.CONSTRUCTOR,EA=SB,RA=HA,kA=$i,xA=Sr,LA=EA&&EA.prototype;if(W({target:"Promise",proto:!0,forced:iA,real:!0},{catch:function(A){return this.then(void 0,A)}}),kA(EA)){var SA=RA("Promise").prototype.catch;LA.catch!==SA&&xA(LA,"catch",SA,{unsafe:!0})}var OA=nA,JA=Pi,ae=Kr,re=DB,_i=iS;_n({target:"Promise",stat:!0,forced:E},{race:function(A){var e=this,o=ae.f(e),a=o.reject,c=re(function(){var d=JA(e.resolve);_i(A,function(C){OA(d,e,C).then(o.resolve,a)})});return c.error&&a(c.value),o.promise}});var Ti=Kr;_n({target:"Promise",stat:!0,forced:Rh.CONSTRUCTOR},{reject:function(A){var e=Ti.f(this);return(0,e.reject)(A),e.promise}});var Lt=sr,Ni=io,cs=Kr,Me=function(A,e){if(Lt(A),Ni(e)&&e.constructor===A)return e;var o=cs.f(A);return(0,o.resolve)(e),o.promise},mt=_n,UA=Rh.CONSTRUCTOR,si=Me;HA("Promise"),mt({target:"Promise",stat:!0,forced:UA},{resolve:function(A){return si(this,A)}});var _s=_n,Gi=SB,Or=_,xi=HA,gr=$i,Tt=Xv,Nt=Me,AE=Sr,ln=Gi&&Gi.prototype;if(_s({target:"Promise",proto:!0,real:!0,forced:!!Gi&&Or(function(){ln.finally.call({then:function(){}},function(){})})},{finally:function(A){var e=Tt(this,xi("Promise")),o=gr(A);return this.then(o?function(a){return Nt(e,A()).then(function(){return a})}:A,o?function(a){return Nt(e,A()).then(function(){throw a})}:A)}}),gr(Gi)){var Bo=xi("Promise").prototype.finally;ln.finally!==Bo&&AE(ln,"finally",Bo,{unsafe:!0})}var Il=io,_C=ge,_r=Hs("match"),xg=function(A){var e;return Il(A)&&((e=A[_r])!==void 0?!!e:_C(A)==="RegExp")},wI=_,ac=f.RegExp,nf=!wI(function(){var A=!0;try{ac(".","d")}catch{A=!1}var e={},o="",a=A?"dgimsy":"gimsy",c=function(y,S){Object.defineProperty(e,y,{get:function(){return o+=S,!0}})},d={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var C in A&&(d.hasIndices="d"),d)c(C,d[C]);return Object.getOwnPropertyDescriptor(ac.prototype,"flags").get.call(e)!==a||o!==a}),ap=sr,Va=function(){var A=ap(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},Yl=nA,_I=Cs,eE=le,Yg={correct:nf},dg=Va,nS=RegExp.prototype,GR=Yg.correct?function(A){return A.flags}:function(A){return Yg.correct||!eE(nS,A)||_I(A,"flags")?A.flags:Yl(dg,A)},bR=_,kR=f.RegExp,eN=bR(function(){var A=kR("a","y");return A.lastIndex=2,A.exec("abcd")!==null}),_V=eN||bR(function(){return!kR("a","y").sticky}),ZU=eN||bR(function(){var A=kR("^r","gy");return A.lastIndex=2,A.exec("str")!==null}),gp={BROKEN_CARET:ZU,MISSED_STICKY:_V,UNSUPPORTED_Y:eN},tN=Ki.f,iN=_,oN=f.RegExp,sN=iN(function(){var A=oN(".","s");return!(A.dotAll&&A.test(`
|
||
`)&&A.flags==="s")}),XU=_,TV=f.RegExp,$U=XU(function(){var A=TV("(?<a>b)","g");return A.exec("b").groups.a!=="b"||"b".replace(A,"$<a>c")!=="bc"}),rf=b,nN=f,af=We,rN=Rr,NV=CD,GV=rg,bV=xa,kV=Mc.f,LR=le,AF=xg,aN=Er,eF=GR,rS=gp,gN=function(A,e,o){o in A||tN(A,o,{configurable:!0,get:function(){return e[o]},set:function(a){e[o]=a}})},UR=Sr,FR=_,LV=Cs,cN=un.enforce,OR=Lm,tF=sN,gf=$U,UV=Hs("match"),TB=nN.RegExp,cf=TB.prototype,FV=nN.SyntaxError,iF=af(cf.exec),lf=af("".charAt),oF=af("".replace),lN=af("".indexOf),IN=af("".slice),OV=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,tE=/a/g,NB=/a/g,sF=new TB(tE)!==tE,nF=rS.MISSED_STICKY,PV=rS.UNSUPPORTED_Y,uN=rf&&(!sF||nF||tF||gf||FR(function(){return NB[UV]=!1,TB(tE)!==tE||TB(NB)===NB||String(TB(tE,"i"))!=="/a/i"}));if(rN("RegExp",uN)){for(var GB=function(A,e){var o,a,c,d,C,y,S=LR(cf,this),k=AF(A),V=e===void 0,J=[],gA=A;if(!S&&k&&V&&A.constructor===GB)return A;if((k||LR(cf,A))&&(A=A.source,V&&(e=eF(gA))),A=A===void 0?"":aN(A),e=e===void 0?"":aN(e),gA=A,tF&&"dotAll"in tE&&(a=!!e&&lN(e,"s")>-1)&&(e=oF(e,/s/g,"")),o=e,nF&&"sticky"in tE&&(c=!!e&&lN(e,"y")>-1)&&PV&&(e=oF(e,/y/g,"")),gf&&(d=function(CA){for(var MA,Ae=CA.length,Qe=0,Ye="",ve=[],yi=bV(null),be=!1,ht=!1,hi=0,Di="";Qe<=Ae;Qe++){if((MA=lf(CA,Qe))==="\\")MA+=lf(CA,++Qe);else if(MA==="]")be=!1;else if(!be)switch(!0){case MA==="[":be=!0;break;case MA==="(":if(Ye+=MA,IN(CA,Qe+1,Qe+3)==="?:")continue;iF(OV,IN(CA,Qe+1))&&(Qe+=2,ht=!0),hi++;continue;case(MA===">"&&ht):if(Di===""||LV(yi,Di))throw new FV("Invalid capture group name");yi[Di]=!0,ve[ve.length]=[Di,hi],ht=!1,Di="";continue}ht?Di+=MA:Ye+=MA}return[Ye,ve]}(A),A=d[0],J=d[1]),C=NV(TB(A,e),S?this:cf,GB),(a||c||J.length)&&(y=cN(C),a&&(y.dotAll=!0,y.raw=GB(function(CA){for(var MA,Ae=CA.length,Qe=0,Ye="",ve=!1;Qe<=Ae;Qe++)(MA=lf(CA,Qe))!=="\\"?ve||MA!=="."?(MA==="["?ve=!0:MA==="]"&&(ve=!1),Ye+=MA):Ye+="[\\s\\S]":Ye+=MA+lf(CA,++Qe);return Ye}(A),o)),c&&(y.sticky=!0),J.length&&(y.groups=J)),A!==gA)try{GV(C,"source",gA===""?"(?:)":gA)}catch{}return C},EN=kV(TB),dN=0;EN.length>dN;)gN(GB,TB,EN[dN++]);cf.constructor=GB,GB.prototype=cf,UR(nN,"RegExp",GB,{constructor:!0})}OR("RegExp");var If=nA,cp=We,bB=Er,xV=Va,uf=gp,rF=xa,aF=un.get,YV=sN,VV=$U,JV=Ls("native-string-replace",String.prototype.replace),lp=RegExp.prototype.exec,CN=lp,HV=cp("".charAt),qV=cp("".indexOf),gF=cp("".replace),aS=cp("".slice),hN=function(){var A=/a/,e=/b*/g;return If(lp,A,"a"),If(lp,e,"a"),A.lastIndex!==0||e.lastIndex!==0}(),cF=uf.BROKEN_CARET,BN=/()??/.exec("")[1]!==void 0;(hN||BN||cF||YV||VV)&&(CN=function(A){var e,o,a,c,d,C,y,S=this,k=aF(S),V=bB(A),J=k.raw;if(J)return J.lastIndex=S.lastIndex,e=If(CN,J,V),S.lastIndex=J.lastIndex,e;var gA=k.groups,CA=cF&&S.sticky,MA=If(xV,S),Ae=S.source,Qe=0,Ye=V;if(CA&&(MA=gF(MA,"y",""),qV(MA,"g")===-1&&(MA+="g"),Ye=aS(V,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&HV(V,S.lastIndex-1)!==`
|
||
`)&&(Ae="(?: "+Ae+")",Ye=" "+Ye,Qe++),o=new RegExp("^(?:"+Ae+")",MA)),BN&&(o=new RegExp("^"+Ae+"$(?!\\s)",MA)),hN&&(a=S.lastIndex),c=If(lp,CA?o:S,Ye),CA?c?(c.input=aS(c.input,Qe),c[0]=aS(c[0],Qe),c.index=S.lastIndex,S.lastIndex+=c[0].length):S.lastIndex=0:hN&&c&&(S.lastIndex=S.global?c.index+c[0].length:a),BN&&c&&c.length>1&&If(JV,c[0],o,function(){for(d=1;d<arguments.length-2;d++)arguments[d]===void 0&&(c[d]=void 0)}),c&&gA)for(c.groups=C=rF(null),d=0;d<gA.length;d++)C[(y=gA[d])[0]]=c[y[1]];return c});var gS=CN;_n({target:"RegExp",proto:!0,forced:/./.exec!==gS},{exec:gS});var PR=Xr,lF=Er,xR=Eo,IF=RangeError,uF=We,KV=qn,YR=Er,jV=function(A){var e=lF(xR(this)),o="",a=PR(A);if(a<0||a===1/0)throw new IF("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(e+=e))1&a&&(o+=e);return o},Ef=Eo,df=uF(jV),VR=uF("".slice),EF=Math.ceil,QN=function(A){return function(e,o,a){var c,d,C=YR(Ef(e)),y=KV(o),S=C.length,k=a===void 0?" ":YR(a);return y<=S||k===""?C:((d=df(k,EF((c=y-S)/k.length))).length>c&&(d=VR(d,0,c)),A?C+d:d+C)}},pN={start:QN(!1)},mN=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(nt),WV=pN.start;_n({target:"String",proto:!0,forced:mN},{padStart:function(A){return WV(this,A,arguments.length>1?arguments[1]:void 0)}});var dF=nA,fN=Sr,CF=gS,yN=_,DN=Hs,zV=DN("species"),hF=RegExp.prototype,JR=We,ZV=Xr,Cf=Er,hf=Eo,SN=JR("".charAt),BF=JR("".charCodeAt),XV=JR("".slice),QF=function(A){return function(e,o){var a,c,d=Cf(hf(e)),C=ZV(o),y=d.length;return C<0||C>=y?A?"":void 0:(a=BF(d,C))<55296||a>56319||C+1===y||(c=BF(d,C+1))<56320||c>57343?A?SN(d,C):a:A?XV(d,C,C+2):c-56320+(a-55296<<10)+65536}},HR={codeAt:QF(!1),charAt:QF(!0)},$V=HR.charAt,qR=We,AJ=as,eJ=Math.floor,MN=qR("".charAt),vN=qR("".replace),RN=qR("".slice),tJ=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,iJ=/\$([$&'`]|\d{1,2})/g,pF=function(A,e,o,a,c,d){var C=o+A.length,y=a.length,S=iJ;return c!==void 0&&(c=AJ(c),S=tJ),vN(d,S,function(k,V){var J;switch(MN(V,0)){case"$":return"$";case"&":return A;case"`":return RN(e,0,o);case"'":return RN(e,C);case"<":J=c[RN(V,1,-1)];break;default:var gA=+V;if(gA===0)return k;if(gA>y){var CA=eJ(gA/10);return CA===0?k:CA<=y?a[CA-1]===void 0?MN(V,1):a[CA-1]+MN(V,1):k}J=a[gA-1]}return J===void 0?"":J})},mF=nA,oJ=sr,fF=$i,sJ=ge,yF=gS,nJ=TypeError,rJ=_d,DF=nA,KR=We,aJ=function(A,e,o,a){var c=DN(A),d=!yN(function(){var k={};return k[c]=function(){return 7},""[A](k)!==7}),C=d&&!yN(function(){var k=!1,V=/a/,J;return V.exec=function(){return k=!0,null},V[c](""),!k});if(!d||!C||o){var y=/./[c],S=e(c,""[A],function(k,V,J,gA,CA){var MA=V.exec;return MA===CF||MA===hF.exec?d&&!CA?{done:!0,value:dF(y,V,J,gA)}:{done:!0,value:dF(k,J,V,gA)}:{done:!1}});fN(String.prototype,A,S[0]),fN(hF,c,S[1])}},gJ=_,cJ=sr,SF=$i,lJ=io,IJ=Xr,MF=qn,Ip=Er,jR=Eo,vF=function(A,e,o){return e+(o?$V(A,e).length:1)},WR=en,RF=pF,wF=GR,uJ=function(A,e){var o=A.exec;if(fF(o)){var a=mF(o,A,e);return a!==null&&oJ(a),a}if(sJ(A)==="RegExp")return mF(yF,A,e);throw new nJ("RegExp#exec called on incompatible receiver")},zR=Hs("replace"),wN=Math.max,EJ=Math.min,_F=KR([].concat),_N=KR([].push),ZR=KR("".indexOf),TF=KR("".slice),dJ=function(A){return A===void 0?A:String(A)},CJ="a".replace(/./,"$0")==="$0",NF=!!/./[zR]&&/./[zR]("a","$0")==="",hJ=!gJ(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 a=NF?"$":"$0";return[function(c,d){var C=jR(this),y=lJ(c)?WR(c,zR):void 0;return y?DF(y,c,C,d):DF(e,Ip(C),c,d)},function(c,d){var C=cJ(this),y=Ip(c);if(typeof d=="string"&&ZR(d,a)===-1&&ZR(d,"$<")===-1){var S=o(e,C,y,d);if(S.done)return S.value}var k=SF(d);k||(d=Ip(d));var V,J=Ip(wF(C)),gA=ZR(J,"g")!==-1;gA&&(V=ZR(J,"u")!==-1,C.lastIndex=0);for(var CA,MA=[];(CA=uJ(C,y))!==null&&(_N(MA,CA),gA);)Ip(CA[0])===""&&(C.lastIndex=vF(y,MF(C.lastIndex),V));for(var Ae="",Qe=0,Ye=0;Ye<MA.length;Ye++){for(var ve,yi=Ip((CA=MA[Ye])[0]),be=wN(EJ(IJ(CA.index),y.length),0),ht=[],hi=1;hi<CA.length;hi++)_N(ht,dJ(CA[hi]));var Di=CA.groups;if(k){var Vo=_F([yi],ht,be,y);Di!==void 0&&_N(Vo,Di),ve=Ip(rJ(d,void 0,Vo))}else ve=RF(yi,y,be,ht,Di,d);be>=Qe&&(Ae+=TF(y,Qe,be)+ve,Qe=be+yi.length)}return Ae+TF(y,Qe)}]},!hJ||!CJ||NF);var XR=`
|
||
\v\f\r \u2028\u2029\uFEFF`,BJ=Eo,QJ=Er,TN=XR,NN=We("".replace),GF=RegExp("^["+TN+"]+"),pJ=RegExp("(^|[^"+TN+"])["+TN+"]+$"),mJ=function(A){return function(e){var o=QJ(BJ(e));return 1&A&&(o=NN(o,GF,"")),2&A&&(o=NN(o,pJ,"$1")),o}},fJ={trim:mJ(3)},yJ=zg.PROPER,DJ=_,bF=XR,SJ=fJ.trim;_n({target:"String",proto:!0,forced:function(A){return DJ(function(){return!!bF[A]()||"
"[A]()!=="
"||yJ&&bF[A].name!==A})}("trim")},{trim:function(){return SJ(this)}});var gu,Bf,$R,GN={exports:{}},MJ=Mr,bN=b,TI=f,kF=$i,LF=io,Qf=Cs,Aw=ur,kN=Jn,LN=rg,UN=Sr,UF=Lg,vJ=le,FN=fI,up=oA,RJ=Hs,wJ=pc,ON=un.enforce,kh=TI.Int8Array,pf=kh&&kh.prototype,FF=TI.Uint8ClampedArray,OF=FF&&FF.prototype,TC=kh&&FN(kh),Ud=pf&&FN(pf),_J=Object.prototype,PN=TI.TypeError,PF=RJ("toStringTag"),xN=wJ("TYPED_ARRAY_TAG"),cS="TypedArrayConstructor",Fd=MJ&&!!up&&Aw(TI.opera)!=="Opera",xF=!1,kB={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},YF={BigInt64Array:8,BigUint64Array:8},ew=function(A){if(!LF(A))return!1;var e=Aw(A);return Qf(kB,e)||Qf(YF,e)};for(gu in kB)($R=(Bf=TI[gu])&&Bf.prototype)?ON($R)[cS]=Bf:Fd=!1;for(gu in YF)($R=(Bf=TI[gu])&&Bf.prototype)&&(ON($R)[cS]=Bf);if((!Fd||!kF(TC)||TC===Function.prototype)&&(TC=function(){throw new PN("Incorrect invocation")},Fd))for(gu in kB)TI[gu]&&up(TI[gu],TC);if((!Fd||!Ud||Ud===_J)&&(Ud=TC.prototype,Fd))for(gu in kB)TI[gu]&&up(TI[gu].prototype,Ud);if(Fd&&FN(OF)!==Ud&&up(OF,Ud),bN&&!Qf(Ud,PF))for(gu in xF=!0,UF(Ud,PF,{configurable:!0,get:function(){return LF(this)?this[xN]:void 0}}),kB)TI[gu]&&LN(TI[gu],xN,gu);var Od={NATIVE_ARRAY_BUFFER_VIEWS:Fd,TYPED_ARRAY_TAG:xF&&xN,aTypedArray:function(A){if(ew(A))return A;throw new PN("Target is not a typed array")},aTypedArrayConstructor:function(A){if(kF(A)&&(!up||vJ(TC,A)))return A;throw new PN(kN(A)+" is not a typed array constructor")},exportTypedArrayMethod:function(A,e,o,a){if(bN){if(o)for(var c in kB){var d=TI[c];if(d&&Qf(d.prototype,A))try{delete d.prototype[A]}catch{try{d.prototype[A]=e}catch{}}}Ud[A]&&!o||UN(Ud,A,o?e:Fd&&pf[A]||e,a)}},exportTypedArrayStaticMethod:function(A,e,o){var a,c;if(bN){if(up){if(o){for(a in kB)if((c=TI[a])&&Qf(c,A))try{delete c[A]}catch{}}if(TC[A]&&!o)return;try{return UN(TC,A,o?e:Fd&&TC[A]||e)}catch{}}for(a in kB)!(c=TI[a])||c[A]&&!o||UN(c,A,e)}},isTypedArray:ew,TypedArray:TC,TypedArrayPrototype:Ud},YN=f,lS=_,tw=g,TJ=Od.NATIVE_ARRAY_BUFFER_VIEWS,VF=YN.ArrayBuffer,Ep=YN.Int8Array,JF=!TJ||!lS(function(){Ep(1)})||!lS(function(){new Ep(-1)})||!tw(function(A){new Ep,new Ep(null),new Ep(1.5),new Ep(A)},!0)||lS(function(){return new Ep(new VF(2),1,void 0).length!==1}),NJ=io,GJ=Math.floor,HF=Number.isInteger||function(A){return!NJ(A)&&isFinite(A)&&GJ(A)===A},bJ=Xr,kJ=RangeError,iw=function(A){var e=bJ(A);if(e<0)throw new kJ("The argument can't be less than 0");return e},LJ=RangeError,qF=function(A,e){var o=iw(A);if(o%e)throw new LJ("Wrong offset");return o},UJ=Math.round,KF=ur,FJ=yn,OJ=TypeError,ow=function(A){var e=FJ(A,"number");if(typeof e=="number")throw new OJ("Can't convert number to bigint");return BigInt(e)},jF=Ag,WF=nA,PJ=Qh,xJ=as,zF=Fa,ZF=WE,YJ=bh,XF=zD,$F=function(A){var e=KF(A);return e==="BigInt64Array"||e==="BigUint64Array"},VJ=Od.aTypedArrayConstructor,JJ=ow,sw=function(A){var e,o,a,c,d,C,y,S,k=PJ(this),V=xJ(A),J=arguments.length,gA=J>1?arguments[1]:void 0,CA=gA!==void 0,MA=YJ(V);if(MA&&!XF(MA))for(S=(y=ZF(V,MA)).next,V=[];!(C=WF(S,y)).done;)V.push(C.value);for(CA&&J>2&&(gA=jF(gA,arguments[2])),o=zF(V),a=new(VJ(k))(o),c=$F(a),e=0;o>e;e++)d=CA?gA(V[e],e):V[e],a[e]=c?JJ(d):+d;return a},VN=ea,JN=wD,HJ=io,qJ=Hs("species"),AO=Array,KJ=function(A){var e;return VN(A)&&(e=A.constructor,(JN(e)&&(e===AO||VN(e.prototype))||HJ(e)&&(e=e[qJ])===null)&&(e=void 0)),e===void 0?AO:e},eO=Ag,jJ=gi,WJ=as,tO=Fa,zJ=function(A,e){return new(KJ(A))(e===0?0:e)},HN=We([].push),iO=function(A){var e=A===1,o=A===2,a=A===3,c=A===4,d=A===6,C=A===7,y=A===5||d;return function(S,k,V,J){for(var gA,CA,MA=WJ(S),Ae=jJ(MA),Qe=tO(Ae),Ye=eO(k,V),ve=0,yi=J||zJ,be=e?yi(S,Qe):o||C?yi(S,0):void 0;Qe>ve;ve++)if((y||ve in Ae)&&(CA=Ye(gA=Ae[ve],ve,MA),A))if(e)be[ve]=CA;else if(CA)switch(A){case 3:return!0;case 5:return gA;case 6:return ve;case 2:HN(be,gA)}else switch(A){case 4:return!1;case 7:HN(be,gA)}return d?-1:a||c?c:be}},oO={forEach:iO(0)},ZJ=Fa,sO=_n,nO=f,rO=nA,aO=b,XJ=JF,IS=Od,gO=bm,cO=MI,$J=de,LB=rg,AH=HF,eH=qn,lO=ym,qN=qF,IO=function(A){var e=UJ(A);return e<0?0:e>255?255:255&e},KN=$,dp=Cs,tH=ur,jN=io,WN=Do,iH=xa,zN=le,nw=oA,oH=Mc.f,uO=sw,EO=oO.forEach,rw=Lm,sH=Lg,dO=Ki,CO=w,hO=function(A,e,o){for(var a=0,c=arguments.length>2?o:ZJ(e),d=new A(c);c>a;)d[a]=e[a++];return d},nH=CD,ZN=un.get,rH=un.set,Cp=un.enforce,BO=dO.f,aH=CO.f,XN=nO.RangeError,QO=gO.ArrayBuffer,gH=QO.prototype,cH=gO.DataView,mf=IS.NATIVE_ARRAY_BUFFER_VIEWS,pO=IS.TYPED_ARRAY_TAG,mO=IS.TypedArray,uS=IS.TypedArrayPrototype,ES=IS.isTypedArray,hp="BYTES_PER_ELEMENT",aw="Wrong length",gw=function(A,e){sH(A,e,{configurable:!0,get:function(){return ZN(this)[e]}})},fO=function(A){var e;return zN(gH,A)||(e=tH(A))==="ArrayBuffer"||e==="SharedArrayBuffer"},$N=function(A,e){return ES(A)&&!WN(e)&&e in A&&AH(+e)&&e>=0},cw=function(A,e){return e=KN(e),$N(A,e)?$J(2,A[e]):aH(A,e)},yO=function(A,e,o){return e=KN(e),!($N(A,e)&&jN(o)&&dp(o,"value"))||dp(o,"get")||dp(o,"set")||o.configurable||dp(o,"writable")&&!o.writable||dp(o,"enumerable")&&!o.enumerable?BO(A,e,o):(A[e]=o.value,A)};aO?(mf||(CO.f=cw,dO.f=yO,gw(uS,"buffer"),gw(uS,"byteOffset"),gw(uS,"byteLength"),gw(uS,"length")),sO({target:"Object",stat:!0,forced:!mf},{getOwnPropertyDescriptor:cw,defineProperty:yO}),GN.exports=function(A,e,o){var a=A.match(/\d+/)[0]/8,c=A+(o?"Clamped":"")+"Array",d="get"+A,C="set"+A,y=nO[c],S=y,k=S&&S.prototype,V={},J=function(CA,MA){BO(CA,MA,{get:function(){return function(Ae,Qe){var Ye=ZN(Ae);return Ye.view[d](Qe*a+Ye.byteOffset,!0)}(this,MA)},set:function(Ae){return function(Qe,Ye,ve){var yi=ZN(Qe);yi.view[C](Ye*a+yi.byteOffset,o?IO(ve):ve,!0)}(this,MA,Ae)},enumerable:!0})};mf?XJ&&(S=e(function(CA,MA,Ae,Qe){return cO(CA,k),nH(jN(MA)?fO(MA)?Qe!==void 0?new y(MA,qN(Ae,a),Qe):Ae!==void 0?new y(MA,qN(Ae,a)):new y(MA):ES(MA)?hO(S,MA):rO(uO,S,MA):new y(lO(MA)),CA,S)}),nw&&nw(S,mO),EO(oH(y),function(CA){CA in S||LB(S,CA,y[CA])}),S.prototype=k):(S=e(function(CA,MA,Ae,Qe){cO(CA,k);var Ye,ve,yi,be=0,ht=0;if(jN(MA)){if(!fO(MA))return ES(MA)?hO(S,MA):rO(uO,S,MA);Ye=MA,ht=qN(Ae,a);var hi=MA.byteLength;if(Qe===void 0){if(hi%a)throw new XN(aw);if((ve=hi-ht)<0)throw new XN(aw)}else if((ve=eH(Qe)*a)+ht>hi)throw new XN(aw);yi=ve/a}else yi=lO(MA),Ye=new QO(ve=yi*a);for(rH(CA,{buffer:Ye,byteOffset:ht,byteLength:ve,length:yi,view:new cH(Ye)});be<yi;)J(CA,be++)}),nw&&nw(S,mO),k=S.prototype=iH(uS)),k.constructor!==S&&LB(k,"constructor",S),Cp(k).TypedArrayConstructor=S,pO&&LB(k,pO,c);var gA=S!==y;V[c]=S,sO({global:!0,constructor:!0,forced:gA,sham:!mf},V),hp in S||LB(S,hp,a),hp in k||LB(k,hp,a),rw(c)}):GN.exports=function(){};var DO=GN.exports;DO("Float32",function(A){return function(e,o,a){return A(this,e,o,a)}}),DO("Uint8",function(A){return function(e,o,a){return A(this,e,o,a)}});var lH=Fv,SO=ow,IH=ur,uH=nA,AG=_,EH=Od.aTypedArray,eG=Od.exportTypedArrayMethod,dH=We("".slice);eG("fill",function(A){var e=arguments.length;EH(this);var o=dH(IH(this),0,3)==="Big"?SO(A):+A;return uH(lH,this,o,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)},AG(function(){var A=0;return new Int8Array(2).fill({valueOf:function(){return A++}}),A!==1})),(0,Od.exportTypedArrayStaticMethod)("from",sw,JF);var MO=f,vO=nA,tG=Od,RO=Fa,CH=qF,hH=as,wO=_,BH=MO.RangeError,iG=MO.Int8Array,oG=iG&&iG.prototype,sG=oG&&oG.set,nG=tG.aTypedArray,_O=tG.exportTypedArrayMethod,lw=!wO(function(){var A=new Uint8ClampedArray(2);return vO(sG,A,{length:1,0:3},1),A[1]!==3}),TO=lw&&tG.NATIVE_ARRAY_BUFFER_VIEWS&&wO(function(){var A=new iG(2);return A.set(1),A.set("2",1),A[0]!==0||A[1]!==2});_O("set",function(A){nG(this);var e=CH(arguments.length>1?arguments[1]:void 0,1),o=hH(A);if(lw)return vO(sG,this,o,e);var a=this.length,c=RO(o),d=0;if(c+e>a)throw new BH("Wrong length");for(;d<c;)this[e+d]=o[d++]},!lw||TO);var NO=Wu,rG=_,aG=Pi,QH=St,gG=ci,cG=ft,lG=_t,IG=Ao,pH=Od.aTypedArray,dS=Od.exportTypedArrayMethod,ff=f.Uint16Array,yf=ff&&NO(ff.prototype.sort),uG=!(!yf||rG(function(){yf(new ff(2),null)})&&rG(function(){yf(new ff(2),{})})),Iw=!!yf&&!rG(function(){if(lG)return lG<74;if(gG)return gG<67;if(cG)return!0;if(IG)return IG<602;var A,e,o=new ff(516),a=Array(516);for(A=0;A<516;A++)e=A%4,o[A]=515-A,a[A]=A-2*e+3;for(yf(o,function(c,d){return(c/4|0)-(d/4|0)}),A=0;A<516;A++)if(o[A]!==a[A])return!0});dS("sort",function(A){return A!==void 0&&aG(A),Iw?yf(this,A):QH(pH(this),function(e){return function(o,a){return e!==void 0?+e(o,a)||0:a!=a?-1:o!=o?1:o===0&&a===0?1/o>0&&1/a<0?1:-1:o>a}}(A))},!Iw||uG);var GO=_n,EG=nA,CS=We,dG=Eo,CG=$i,mH=io,bO=xg,hS=Er,fH=en,BS=GR,kO=pF,yH=Hs("replace"),LO=TypeError,Pd=CS("".indexOf);CS("".replace);var QS=CS("".slice),DH=Math.max;GO({target:"String",proto:!0},{replaceAll:function(A,e){var o,a,c,d,C,y,S,k,V,J=dG(this),gA=0,CA="";if(mH(A)){if(bO(A)&&(o=hS(dG(BS(A))),!~Pd(o,"g")))throw new LO("`.replaceAll` does not allow non-global regexes");if(a=fH(A,yH))return EG(a,A,J,e)}for(c=hS(J),d=hS(A),(C=CG(e))||(e=hS(e)),y=d.length,S=DH(1,y),k=Pd(c,d);k!==-1;)V=C?hS(e(d,k,c)):kO(d,c,k,[],void 0,e),CA+=QS(c,gA,k)+V,gA=k+y,k=k+S>c.length?-1:Pd(c,d,k+S);return gA<c.length&&(CA+=QS(c,gA)),CA}});var hG={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},uw=ee("span").classList,UO=uw&&uw.constructor&&uw.constructor.prototype,BG=UO===Object.prototype?void 0:UO,SH=oO.forEach,MH=Ct("forEach")?[].forEach:function(A){return SH(this,A,arguments.length>1?arguments[1]:void 0)},FO=f,OO=hG,vH=BG,Ew=MH,RH=rg,PO=function(A){if(A&&A.forEach!==Ew)try{RH(A,"forEach",Ew)}catch{A.forEach=Ew}};for(var QG in OO)OO[QG]&&PO(FO[QG]&&FO[QG].prototype);PO(vH);var dw=f,xO=hG,wH=BG,pS=ji,mS=rg,_H=Ya,pG=Hs("iterator"),mG=pS.values,YO=function(A,e){if(A){if(A[pG]!==mG)try{mS(A,pG,mG)}catch{A[pG]=mG}if(_H(A,e,!0),xO[e]){for(var o in pS)if(A[o]!==pS[o])try{mS(A,o,pS[o])}catch{A[o]=pS[o]}}}};for(var fG in xO)YO(dw[fG]&&dw[fG].prototype,fG);YO(wH,"DOMTokenList");var yG=MC.clear;_n({global:!0,bind:!0,enumerable:!0,forced:f.clearImmediate!==yG},{clearImmediate:yG});var fS=f,TH=_d,NH=$i,GH=Hr,bH=nt,kH=Ie,LH=CB,DG=fS.Function,UH=/MSIE .\./.test(bH)||GH==="BUN"&&function(){var A=fS.Bun.version.split(".");return A.length<3||A[0]==="0"&&(A[1]<3||A[1]==="3"&&A[2]==="0")}(),VO=_n,JO=f,Cw=MC.set,FH=function(A,e){var o=1;return UH?function(a,c){var d=LH(arguments.length,1)>o,C=NH(a)?a:DG(a),y=d?kH(arguments,o):[],S=d?function(){TH(C,this,y)}:C;return A(S)}:A},SG=JO.setImmediate?FH(Cw):Cw;VO({global:!0,bind:!0,enumerable:!0,forced:JO.setImmediate!==SG},{setImmediate:SG});var Lh=HR.charAt,OH=Er,hw=un,PH=Ce,HO=Ke,qO="String Iterator",xH=hw.set,KO=hw.getterFor(qO);PH(String,"String",function(A){xH(this,{type:qO,string:OH(A),index:0})},function(){var A,e=KO(this),o=e.string,a=e.index;return a>=o.length?HO(void 0,!0):(A=Lh(o,a),e.index+=A.length,HO(A,!1))});var YH=_,VH=b,JH=Hs("iterator"),jO=!YH(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"),a="";return A.pathname="c%20d",e.forEach(function(c,d){e.delete("b"),a+=d+c}),o.delete("a",2),o.delete("b",void 0),!e.size&&!VH||!e.sort||A.href!=="https://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[JH]||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"||a!=="a1c3"||new URL("https://x",void 0).host!=="x"}),WO=b,HH=We,MG=nA,vG=_,RG=bl,qH=vc,KH=mA,jH=as,zO=gi,Bp=Object.assign,ZO=Object.defineProperty,XO=HH([].concat),WH=!Bp||vG(function(){if(WO&&Bp({b:1},Bp(ZO({},"a",{enumerable:!0,get:function(){ZO(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var A={},e={},o=Symbol("assign detection"),a="abcdefghijklmnopqrst";return A[o]=7,a.split("").forEach(function(c){e[c]=c}),Bp({},A)[o]!==7||RG(Bp({},e)).join("")!==a})?function(A,e){for(var o=jH(A),a=arguments.length,c=1,d=qH.f,C=KH.f;a>c;)for(var y,S=zO(arguments[c++]),k=d?XO(RG(S),d(S)):RG(S),V=k.length,J=0;V>J;)y=k[J++],WO&&!MG(C,S,y)||(o[y]=S[y]);return o}:Bp,zH=sr,ZH=AS,XH=b,$H=Ki,$O=de,Aq=Ag,yS=nA,AP=as,eP=function(A,e,o,a){try{return a?e(zH(o)[0],o[1]):e(o)}catch(c){ZH(A,"throw",c)}},wG=zD,eq=wD,tq=Fa,DS=function(A,e,o){XH?$H.f(A,e,$O(0,o)):A[e]=o},_G=WE,iq=bh,tP=Array,UB=We,TG=2147483647,iP=/[^\0-\u007E]/,NG=/[.\u3002\uFF0E\uFF61]/g,oP="Overflow: input needs wider integers to process",sP=RangeError,oq=UB(NG.exec),FB=Math.floor,Bw=String.fromCharCode,Qw=UB("".charCodeAt),iE=UB([].join),OB=UB([].push),pa=UB("".replace),nP=UB("".split),sq=UB("".toLowerCase),rP=function(A){return A+22+75*(A<26)},GG=function(A,e,o){var a=0;for(A=o?FB(A/700):A>>1,A+=FB(A/e);A>455;)A=FB(A/35),a+=36;return FB(a+36*A/(A+38))},nq=function(A){var e=[];A=function(Ye){for(var ve=[],yi=0,be=Ye.length;yi<be;){var ht=Qw(Ye,yi++);if(ht>=55296&&ht<=56319&&yi<be){var hi=Qw(Ye,yi++);(64512&hi)==56320?OB(ve,((1023&ht)<<10)+(1023&hi)+65536):(OB(ve,ht),yi--)}else OB(ve,ht)}return ve}(A);var o,a,c=A.length,d=128,C=0,y=72;for(o=0;o<A.length;o++)(a=A[o])<128&&OB(e,Bw(a));var S=e.length,k=S;for(S&&OB(e,"-");k<c;){var V=TG;for(o=0;o<A.length;o++)(a=A[o])>=d&&a<V&&(V=a);var J=k+1;if(V-d>FB((TG-C)/J))throw new sP(oP);for(C+=(V-d)*J,d=V,o=0;o<A.length;o++){if((a=A[o])<d&&++C>TG)throw new sP(oP);if(a===d){for(var gA=C,CA=36;;){var MA=CA<=y?1:CA>=y+26?26:CA-y;if(gA<MA)break;var Ae=gA-MA,Qe=36-MA;OB(e,Bw(rP(MA+Ae%Qe))),gA=FB(Ae/Qe),CA+=36}OB(e,Bw(rP(gA))),y=GG(C,J,k===S),C=0,k++}}C++,d++}return iE(e,"")},J4=_n,aP=We,rq=gg,aq=RangeError,Uh=String.fromCharCode,SS=String.fromCodePoint,MS=aP([].join);J4({target:"String",stat:!0,arity:1,forced:!!SS&&SS.length!==1},{fromCodePoint:function(A){for(var e,o=[],a=arguments.length,c=0;a>c;){if(e=+arguments[c++],rq(e,1114111)!==e)throw new aq(e+" is not a valid code point");o[c]=e<65536?Uh(e):Uh(55296+((e-=65536)>>10),e%1024+56320)}return MS(o,"")}});var Qp=_n,Df=f,pp=rR,bG=HA,Fs=nA,oE=We,Sf=b,kG=jO,gP=Sr,gq=Lg,cq=su,lq=Ya,Iq=xE,vS=un,cP=MI,LG=$i,uq=Cs,Eq=Ag,dq=ur,Cq=sr,lP=io,Vl=Er,hq=xa,IP=de,uP=WE,Bq=bh,pw=Ke,Mf=CB,Qq=St,pq=Hs("iterator"),mp="URLSearchParams",UG=mp+"Iterator",EP=vS.set,ul=vS.getterFor(mp),Fh=vS.getterFor(UG),dP=pp("fetch"),vf=pp("Request"),RS=pp("Headers"),FG=vf&&vf.prototype,CP=RS&&RS.prototype,hP=Df.TypeError,mq=Df.encodeURIComponent,fq=String.fromCharCode,yq=bG("String","fromCodePoint"),Dq=parseInt,mw=oE("".charAt),fw=oE([].join),Oh=oE([].push),BP=oE("".replace),Sq=oE([].shift),QP=oE([].splice),pP=oE("".split),mP=oE("".slice),OG=oE(/./.exec),fP=/\+/g,Mq=/^[0-9a-f]+$/i,yP=function(A,e){var o=mP(A,e,e+2);return OG(Mq,o)?Dq(o,16):NaN},vq=function(A){for(var e=0,o=128;o>0&&A&o;o>>=1)e++;return e},Rq=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},DP=function(A){for(var e=(A=BP(A,fP," ")).length,o="",a=0;a<e;){var c=mw(A,a);if(c==="%"){if(mw(A,a+1)==="%"||a+3>e){o+="%",a++;continue}var d=yP(A,a+1);if(d!=d){o+=c,a++;continue}a+=2;var C=vq(d);if(C===0)c=fq(d);else{if(C===1||C>4){o+="�",a++;continue}for(var y=[d],S=1;S<C&&!(++a+3>e||mw(A,a)!=="%");){var k=yP(A,a+1);if(k!=k){a+=3;break}if(k>191||k<128)break;Oh(y,k),a+=2,S++}if(y.length!==C){o+="�";continue}var V=Rq(y);V===null?o+="�":c=yq(V)}}o+=c,a++}return o},wq=/[!'()~]|%20/g,_q={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},Tq=function(A){return _q[A]},SP=function(A){return BP(mq(A),wq,Tq)},PG=Iq(function(A,e){EP(this,{type:UG,target:ul(A).entries,index:0,kind:e})},mp,function(){var A=Fh(this),e=A.target,o=A.index++;if(!e||o>=e.length)return A.target=null,pw(void 0,!0);var a=e[o];switch(A.kind){case"keys":return pw(a.key,!1);case"values":return pw(a.value,!1)}return pw([a.key,a.value],!1)},!0),MP=function(A){this.entries=[],this.url=null,A!==void 0&&(lP(A)?this.parseObject(A):this.parseQuery(typeof A=="string"?mw(A,0)==="?"?mP(A,1):A:Vl(A)))};MP.prototype={type:mp,bindURL:function(A){this.url=A,this.update()},parseObject:function(A){var e,o,a,c,d,C,y,S=this.entries,k=Bq(A);if(k)for(o=(e=uP(A,k)).next;!(a=Fs(o,e)).done;){if(d=(c=uP(Cq(a.value))).next,(C=Fs(d,c)).done||(y=Fs(d,c)).done||!Fs(d,c).done)throw new hP("Expected sequence with length 2");Oh(S,{key:Vl(C.value),value:Vl(y.value)})}else for(var V in A)uq(A,V)&&Oh(S,{key:V,value:Vl(A[V])})},parseQuery:function(A){if(A)for(var e,o,a=this.entries,c=pP(A,"&"),d=0;d<c.length;)(e=c[d++]).length&&(o=pP(e,"="),Oh(a,{key:DP(Sq(o)),value:DP(fw(o,"="))}))},serialize:function(){for(var A,e=this.entries,o=[],a=0;a<e.length;)A=e[a++],Oh(o,SP(A.key)+"="+SP(A.value));return fw(o,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Rf=function(){cP(this,fp);var A=EP(this,new MP(arguments.length>0?arguments[0]:void 0));Sf||(this.size=A.entries.length)},fp=Rf.prototype;if(cq(fp,{append:function(A,e){var o=ul(this);Mf(arguments.length,2),Oh(o.entries,{key:Vl(A),value:Vl(e)}),Sf||this.size++,o.updateURL()},delete:function(A){for(var e=ul(this),o=Mf(arguments.length,1),a=e.entries,c=Vl(A),d=o<2?void 0:arguments[1],C=d===void 0?d:Vl(d),y=0;y<a.length;){var S=a[y];if(S.key!==c||C!==void 0&&S.value!==C)y++;else if(QP(a,y,1),C!==void 0)break}Sf||(this.size=a.length),e.updateURL()},get:function(A){var e=ul(this).entries;Mf(arguments.length,1);for(var o=Vl(A),a=0;a<e.length;a++)if(e[a].key===o)return e[a].value;return null},getAll:function(A){var e=ul(this).entries;Mf(arguments.length,1);for(var o=Vl(A),a=[],c=0;c<e.length;c++)e[c].key===o&&Oh(a,e[c].value);return a},has:function(A){for(var e=ul(this).entries,o=Mf(arguments.length,1),a=Vl(A),c=o<2?void 0:arguments[1],d=c===void 0?c:Vl(c),C=0;C<e.length;){var y=e[C++];if(y.key===a&&(d===void 0||y.value===d))return!0}return!1},set:function(A,e){var o=ul(this);Mf(arguments.length,1);for(var a,c=o.entries,d=!1,C=Vl(A),y=Vl(e),S=0;S<c.length;S++)(a=c[S]).key===C&&(d?QP(c,S--,1):(d=!0,a.value=y));d||Oh(c,{key:C,value:y}),Sf||(this.size=c.length),o.updateURL()},sort:function(){var A=ul(this);Qq(A.entries,function(e,o){return e.key>o.key?1:-1}),A.updateURL()},forEach:function(A){for(var e,o=ul(this).entries,a=Eq(A,arguments.length>1?arguments[1]:void 0),c=0;c<o.length;)a((e=o[c++]).value,e.key,this)},keys:function(){return new PG(this,"keys")},values:function(){return new PG(this,"values")},entries:function(){return new PG(this,"entries")}},{enumerable:!0}),gP(fp,pq,fp.entries,{name:"entries"}),gP(fp,"toString",function(){return ul(this).serialize()},{enumerable:!0}),Sf&&gq(fp,"size",{get:function(){return ul(this).entries.length},configurable:!0,enumerable:!0}),lq(Rf,mp),Qp({global:!0,constructor:!0,forced:!kG},{URLSearchParams:Rf}),!kG&&LG(RS)){var Nq=oE(CP.has),xG=oE(CP.set),vP=function(A){if(lP(A)){var e,o=A.body;if(dq(o)===mp)return e=A.headers?new RS(A.headers):new RS,Nq(e,"content-type")||xG(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),hq(A,{body:IP(0,Vl(o)),headers:IP(0,e)})}return A};if(LG(dP)&&Qp({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(A){return dP(A,arguments.length>1?vP(arguments[1]):{})}}),LG(vf)){var YG=function(A){return cP(this,FG),new vf(A,arguments.length>1?vP(arguments[1]):{})};FG.constructor=YG,YG.prototype=FG,Qp({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:YG})}}var sE,Gq=_n,VG=b,RP=jO,JG=f,wP=Ag,zE=We,yw=Sr,ZE=Lg,bq=MI,HG=Cs,qG=WH,PB=function(A){var e=AP(A),o=eq(this),a=arguments.length,c=a>1?arguments[1]:void 0,d=c!==void 0;d&&(c=Aq(c,a>2?arguments[2]:void 0));var C,y,S,k,V,J,gA=iq(e),CA=0;if(!gA||this===tP&&wG(gA))for(C=tq(e),y=o?new this(C):tP(C);C>CA;CA++)J=d?c(e[CA],CA):e[CA],DS(y,CA,J);else for(y=o?new this:[],V=(k=_G(e,gA)).next;!(S=yS(V,k)).done;CA++)J=d?eP(k,c,[S.value,CA],!0):S.value,DS(y,CA,J);return y.length=CA,y},xd=Ie,KG=HR.codeAt,kq=function(A){var e,o,a=[],c=nP(pa(sq(A),NG,"."),".");for(e=0;e<c.length;e++)o=c[e],OB(a,oq(iP,o)?"xn--"+nq(o):o);return iE(a,".")},Ph=Er,Lq=Ya,_P=CB,TP={URLSearchParams:Rf,getState:ul},jG=un,Uq=jG.set,Dw=jG.getterFor("URL"),Fq=TP.URLSearchParams,Oq=TP.getState,wf=JG.URL,WG=JG.TypeError,Sw=JG.parseInt,xh=Math.floor,NP=Math.pow,XE=zE("".charAt),Yd=zE(/./.exec),wS=zE([].join),Pq=zE(1.1.toString),GP=zE([].pop),_f=zE([].push),Mw=zE("".replace),vw=zE([].shift),zG=zE("".split),yp=zE("".slice),Rw=zE("".toLowerCase),xq=zE([].unshift),ZG="Invalid scheme",xB="Invalid host",ww="Invalid port",_S=/[a-z]/i,Yq=/[\d+-.a-z]/i,XG=/\d/,_w=/^0x/i,Vq=/^[0-7]+$/,bP=/^\d+$/,kP=/^[\da-f]+$/i,LP=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Jq=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hq=/^[\u0000-\u0020]+/,Kq=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,jq=/[\t\n\r]/g,Tf=function(A){var e,o,a,c;if(typeof A=="number"){for(e=[],o=0;o<4;o++)xq(e,A%256),A=xh(A/256);return wS(e,".")}if(typeof A=="object"){for(e="",a=function(d){for(var C=null,y=1,S=null,k=0,V=0;V<8;V++)d[V]!==0?(k>y&&(C=S,y=k),S=null,k=0):(S===null&&(S=V),++k);return k>y?S:C}(A),o=0;o<8;o++)c&&A[o]===0||(c&&(c=!1),a===o?(e+=o?":":"::",c=!0):(e+=Pq(A[o],16),o<7&&(e+=":")));return"["+e+"]"}return A},Nf={},UP=qG({},Nf,{" ":1,'"':1,"<":1,">":1,"`":1}),$G=qG({},UP,{"#":1,"?":1,"{":1,"}":1}),YB=qG({},$G,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Vd=function(A,e){var o=KG(A,0);return o>32&&o<127&&!HG(e,A)?A:encodeURIComponent(A)},Yh={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Gf=function(A,e){var o;return A.length===2&&Yd(_S,XE(A,0))&&((o=XE(A,1))===":"||!e&&o==="|")},Ab=function(A){var e;return A.length>1&&Gf(yp(A,0,2))&&(A.length===2||(e=XE(A,2))==="/"||e==="\\"||e==="?"||e==="#")},TS=function(A){return A==="."||Rw(A)==="%2e"},FP=function(A){return(A=Rw(A))===".."||A==="%2e."||A===".%2e"||A==="%2e%2e"},nE={},cu={},VB={},NC={},JB={},Tw={},OP={},NS={},Nw={},Gw={},bw={},kw={},Lw={},Uw={},eb={},Fw={},bf={},GC={},GS={},lu={},Jl={},Ow=function(A,e,o){var a,c,d,C=Ph(A);if(e){if(c=this.parse(C))throw new WG(c);this.searchParams=null}else{if(o!==void 0&&(a=new Ow(o,!0)),c=this.parse(C,null,a))throw new WG(c);(d=Oq(new Fq)).bindURL(this),this.searchParams=d}};Ow.prototype={type:"URL",parse:function(A,e,o){var a,c,d,C,y=this,S=e||nE,k=0,V="",J=!1,gA=!1,CA=!1;for(A=Ph(A),e||(y.scheme="",y.username="",y.password="",y.host=null,y.port=null,y.path=[],y.query=null,y.fragment=null,y.cannotBeABaseURL=!1,A=Mw(A,Hq,""),A=Mw(A,Kq,"$1")),A=Mw(A,jq,""),a=PB(A);k<=a.length;){switch(c=a[k],S){case nE:if(!c||!Yd(_S,c)){if(e)return ZG;S=VB;continue}V+=Rw(c),S=cu;break;case cu:if(c&&(Yd(Yq,c)||c==="+"||c==="-"||c==="."))V+=Rw(c);else{if(c!==":"){if(e)return ZG;V="",S=VB,k=0;continue}if(e&&(y.isSpecial()!==HG(Yh,V)||V==="file"&&(y.includesCredentials()||y.port!==null)||y.scheme==="file"&&!y.host))return;if(y.scheme=V,e)return void(y.isSpecial()&&Yh[y.scheme]===y.port&&(y.port=null));V="",y.scheme==="file"?S=Uw:y.isSpecial()&&o&&o.scheme===y.scheme?S=NC:y.isSpecial()?S=NS:a[k+1]==="/"?(S=JB,k++):(y.cannotBeABaseURL=!0,_f(y.path,""),S=GS)}break;case VB:if(!o||o.cannotBeABaseURL&&c!=="#")return ZG;if(o.cannotBeABaseURL&&c==="#"){y.scheme=o.scheme,y.path=xd(o.path),y.query=o.query,y.fragment="",y.cannotBeABaseURL=!0,S=Jl;break}S=o.scheme==="file"?Uw:Tw;continue;case NC:if(c!=="/"||a[k+1]!=="/"){S=Tw;continue}S=Nw,k++;break;case JB:if(c==="/"){S=Gw;break}S=GC;continue;case Tw:if(y.scheme=o.scheme,c===sE)y.username=o.username,y.password=o.password,y.host=o.host,y.port=o.port,y.path=xd(o.path),y.query=o.query;else if(c==="/"||c==="\\"&&y.isSpecial())S=OP;else if(c==="?")y.username=o.username,y.password=o.password,y.host=o.host,y.port=o.port,y.path=xd(o.path),y.query="",S=lu;else{if(c!=="#"){y.username=o.username,y.password=o.password,y.host=o.host,y.port=o.port,y.path=xd(o.path),y.path.length--,S=GC;continue}y.username=o.username,y.password=o.password,y.host=o.host,y.port=o.port,y.path=xd(o.path),y.query=o.query,y.fragment="",S=Jl}break;case OP:if(!y.isSpecial()||c!=="/"&&c!=="\\"){if(c!=="/"){y.username=o.username,y.password=o.password,y.host=o.host,y.port=o.port,S=GC;continue}S=Gw}else S=Nw;break;case NS:if(S=Nw,c!=="/"||XE(V,k+1)!=="/")continue;k++;break;case Nw:if(c!=="/"&&c!=="\\"){S=Gw;continue}break;case Gw:if(c==="@"){J&&(V="%40"+V),J=!0,d=PB(V);for(var MA=0;MA<d.length;MA++){var Ae=d[MA];if(Ae!==":"||CA){var Qe=Vd(Ae,YB);CA?y.password+=Qe:y.username+=Qe}else CA=!0}V=""}else if(c===sE||c==="/"||c==="?"||c==="#"||c==="\\"&&y.isSpecial()){if(J&&V==="")return"Invalid authority";k-=PB(V).length+1,V="",S=bw}else V+=c;break;case bw:case kw:if(e&&y.scheme==="file"){S=Fw;continue}if(c!==":"||gA){if(c===sE||c==="/"||c==="?"||c==="#"||c==="\\"&&y.isSpecial()){if(y.isSpecial()&&V==="")return xB;if(e&&V===""&&(y.includesCredentials()||y.port!==null))return;if(C=y.parseHost(V))return C;if(V="",S=bf,e)return;continue}c==="["?gA=!0:c==="]"&&(gA=!1),V+=c}else{if(V==="")return xB;if(C=y.parseHost(V))return C;if(V="",S=Lw,e===kw)return}break;case Lw:if(!Yd(XG,c)){if(c===sE||c==="/"||c==="?"||c==="#"||c==="\\"&&y.isSpecial()||e){if(V!==""){var Ye=Sw(V,10);if(Ye>65535)return ww;y.port=y.isSpecial()&&Ye===Yh[y.scheme]?null:Ye,V=""}if(e)return;S=bf;continue}return ww}V+=c;break;case Uw:if(y.scheme="file",c==="/"||c==="\\")S=eb;else{if(!o||o.scheme!=="file"){S=GC;continue}switch(c){case sE:y.host=o.host,y.path=xd(o.path),y.query=o.query;break;case"?":y.host=o.host,y.path=xd(o.path),y.query="",S=lu;break;case"#":y.host=o.host,y.path=xd(o.path),y.query=o.query,y.fragment="",S=Jl;break;default:Ab(wS(xd(a,k),""))||(y.host=o.host,y.path=xd(o.path),y.shortenPath()),S=GC;continue}}break;case eb:if(c==="/"||c==="\\"){S=Fw;break}o&&o.scheme==="file"&&!Ab(wS(xd(a,k),""))&&(Gf(o.path[0],!0)?_f(y.path,o.path[0]):y.host=o.host),S=GC;continue;case Fw:if(c===sE||c==="/"||c==="\\"||c==="?"||c==="#"){if(!e&&Gf(V))S=GC;else if(V===""){if(y.host="",e)return;S=bf}else{if(C=y.parseHost(V))return C;if(y.host==="localhost"&&(y.host=""),e)return;V="",S=bf}continue}V+=c;break;case bf:if(y.isSpecial()){if(S=GC,c!=="/"&&c!=="\\")continue}else if(e||c!=="?")if(e||c!=="#"){if(c!==sE&&(S=GC,c!=="/"))continue}else y.fragment="",S=Jl;else y.query="",S=lu;break;case GC:if(c===sE||c==="/"||c==="\\"&&y.isSpecial()||!e&&(c==="?"||c==="#")){if(FP(V)?(y.shortenPath(),c==="/"||c==="\\"&&y.isSpecial()||_f(y.path,"")):TS(V)?c==="/"||c==="\\"&&y.isSpecial()||_f(y.path,""):(y.scheme==="file"&&!y.path.length&&Gf(V)&&(y.host&&(y.host=""),V=XE(V,0)+":"),_f(y.path,V)),V="",y.scheme==="file"&&(c===sE||c==="?"||c==="#"))for(;y.path.length>1&&y.path[0]==="";)vw(y.path);c==="?"?(y.query="",S=lu):c==="#"&&(y.fragment="",S=Jl)}else V+=Vd(c,$G);break;case GS:c==="?"?(y.query="",S=lu):c==="#"?(y.fragment="",S=Jl):c!==sE&&(y.path[0]+=Vd(c,Nf));break;case lu:e||c!=="#"?c!==sE&&(c==="'"&&y.isSpecial()?y.query+="%27":y.query+=c==="#"?"%23":Vd(c,Nf)):(y.fragment="",S=Jl);break;case Jl:c!==sE&&(y.fragment+=Vd(c,UP))}k++}},parseHost:function(A){var e,o,a;if(XE(A,0)==="["){if(XE(A,A.length-1)!=="]"||(e=function(c){var d,C,y,S,k,V,J,gA=[0,0,0,0,0,0,0,0],CA=0,MA=null,Ae=0,Qe=function(){return XE(c,Ae)};if(Qe()===":"){if(XE(c,1)!==":")return;Ae+=2,MA=++CA}for(;Qe();){if(CA===8)return;if(Qe()!==":"){for(d=C=0;C<4&&Yd(kP,Qe());)d=16*d+Sw(Qe(),16),Ae++,C++;if(Qe()==="."){if(C===0||(Ae-=C,CA>6))return;for(y=0;Qe();){if(S=null,y>0){if(!(Qe()==="."&&y<4))return;Ae++}if(!Yd(XG,Qe()))return;for(;Yd(XG,Qe());){if(k=Sw(Qe(),10),S===null)S=k;else{if(S===0)return;S=10*S+k}if(S>255)return;Ae++}gA[CA]=256*gA[CA]+S,++y!==2&&y!==4||CA++}if(y!==4)return;break}if(Qe()===":"){if(Ae++,!Qe())return}else if(Qe())return;gA[CA++]=d}else{if(MA!==null)return;Ae++,MA=++CA}}if(MA!==null)for(V=CA-MA,CA=7;CA!==0&&V>0;)J=gA[CA],gA[CA--]=gA[MA+V-1],gA[MA+--V]=J;else if(CA!==8)return;return gA}(yp(A,1,-1)),!e))return xB;this.host=e}else if(this.isSpecial()){if(A=kq(A),Yd(LP,A)||(e=function(c){var d,C,y,S,k,V,J,gA=zG(c,".");if(gA.length&&gA[gA.length-1]===""&&gA.length--,(d=gA.length)>4)return c;for(C=[],y=0;y<d;y++){if((S=gA[y])==="")return c;if(k=10,S.length>1&&XE(S,0)==="0"&&(k=Yd(_w,S)?16:8,S=yp(S,k===8?1:2)),S==="")V=0;else{if(!Yd(k===10?bP:k===8?Vq:kP,S))return c;V=Sw(S,k)}_f(C,V)}for(y=0;y<d;y++)if(V=C[y],y===d-1){if(V>=NP(256,5-d))return null}else if(V>255)return null;for(J=GP(C),y=0;y<C.length;y++)J+=C[y]*NP(256,3-y);return J}(A),e===null))return xB;this.host=e}else{if(Yd(Jq,A))return xB;for(e="",o=PB(A),a=0;a<o.length;a++)e+=Vd(o[a],Nf);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return HG(Yh,this.scheme)},shortenPath:function(){var A=this.path,e=A.length;!e||this.scheme==="file"&&e===1&&Gf(A[0],!0)||A.length--},serialize:function(){var A=this,e=A.scheme,o=A.username,a=A.password,c=A.host,d=A.port,C=A.path,y=A.query,S=A.fragment,k=e+":";return c!==null?(k+="//",A.includesCredentials()&&(k+=o+(a?":"+a:"")+"@"),k+=Tf(c),d!==null&&(k+=":"+d)):e==="file"&&(k+="//"),k+=A.cannotBeABaseURL?C[0]:C.length?"/"+wS(C,"/"):"",y!==null&&(k+="?"+y),S!==null&&(k+="#"+S),k},setHref:function(A){var e=this.parse(A);if(e)throw new WG(e);this.searchParams.update()},getOrigin:function(){var A=this.scheme,e=this.port;if(A==="blob")try{return new Vh(A.path[0]).origin}catch{return"null"}return A!=="file"&&this.isSpecial()?A+"://"+Tf(this.host)+(e!==null?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(A){this.parse(Ph(A)+":",nE)},getUsername:function(){return this.username},setUsername:function(A){var e=PB(Ph(A));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var o=0;o<e.length;o++)this.username+=Vd(e[o],YB)}},getPassword:function(){return this.password},setPassword:function(A){var e=PB(Ph(A));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var o=0;o<e.length;o++)this.password+=Vd(e[o],YB)}},getHost:function(){var A=this.host,e=this.port;return A===null?"":e===null?Tf(A):Tf(A)+":"+e},setHost:function(A){this.cannotBeABaseURL||this.parse(A,bw)},getHostname:function(){var A=this.host;return A===null?"":Tf(A)},setHostname:function(A){this.cannotBeABaseURL||this.parse(A,kw)},getPort:function(){var A=this.port;return A===null?"":Ph(A)},setPort:function(A){this.cannotHaveUsernamePasswordPort()||((A=Ph(A))===""?this.port=null:this.parse(A,Lw))},getPathname:function(){var A=this.path;return this.cannotBeABaseURL?A[0]:A.length?"/"+wS(A,"/"):""},setPathname:function(A){this.cannotBeABaseURL||(this.path=[],this.parse(A,bf))},getSearch:function(){var A=this.query;return A?"?"+A:""},setSearch:function(A){(A=Ph(A))===""?this.query=null:(XE(A,0)==="?"&&(A=yp(A,1)),this.query="",this.parse(A,lu)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var A=this.fragment;return A?"#"+A:""},setHash:function(A){(A=Ph(A))!==""?(XE(A,0)==="#"&&(A=yp(A,1)),this.fragment="",this.parse(A,Jl)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Vh=function(A){var e=bq(this,Hl),o=_P(arguments.length,1)>1?arguments[1]:void 0,a=Uq(e,new Ow(A,!1,o));VG||(e.href=a.serialize(),e.origin=a.getOrigin(),e.protocol=a.getProtocol(),e.username=a.getUsername(),e.password=a.getPassword(),e.host=a.getHost(),e.hostname=a.getHostname(),e.port=a.getPort(),e.pathname=a.getPathname(),e.search=a.getSearch(),e.searchParams=a.getSearchParams(),e.hash=a.getHash())},Hl=Vh.prototype,ql=function(A,e){return{get:function(){return Dw(this)[A]()},set:e&&function(o){return Dw(this)[e](o)},configurable:!0,enumerable:!0}};if(VG&&(ZE(Hl,"href",ql("serialize","setHref")),ZE(Hl,"origin",ql("getOrigin")),ZE(Hl,"protocol",ql("getProtocol","setProtocol")),ZE(Hl,"username",ql("getUsername","setUsername")),ZE(Hl,"password",ql("getPassword","setPassword")),ZE(Hl,"host",ql("getHost","setHost")),ZE(Hl,"hostname",ql("getHostname","setHostname")),ZE(Hl,"port",ql("getPort","setPort")),ZE(Hl,"pathname",ql("getPathname","setPathname")),ZE(Hl,"search",ql("getSearch","setSearch")),ZE(Hl,"searchParams",ql("getSearchParams")),ZE(Hl,"hash",ql("getHash","setHash"))),yw(Hl,"toJSON",function(){return Dw(this).serialize()},{enumerable:!0}),yw(Hl,"toString",function(){return Dw(this).serialize()},{enumerable:!0}),wf){var PP=wf.createObjectURL,Pw=wf.revokeObjectURL;PP&&yw(Vh,"createObjectURL",wP(PP,wf)),Pw&&yw(Vh,"revokeObjectURL",wP(Pw,wf))}Lq(Vh,"URL"),Gq({global:!0,constructor:!0,forced:!RP,sham:!VG},{URL:Vh});var xP=nA;_n({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return xP(URL.prototype.toString,this)}});let YP=!0,xw=!0;function bS(A,e,o){const a=A.match(e);return a&&a.length>=o&&parseFloat(a[o],10)}function HB(A,e,o){if(!A.RTCPeerConnection)return;const a=A.RTCPeerConnection.prototype,c=a.addEventListener;a.addEventListener=function(C,y){if(C!==e)return c.apply(this,arguments);const S=k=>{const V=o(k);V&&(y.handleEvent?y.handleEvent(V):y(V))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(y,S),c.apply(this,[C,S])};const d=a.removeEventListener;a.removeEventListener=function(C,y){if(C!==e||!this._eventMap||!this._eventMap[e])return d.apply(this,arguments);if(!this._eventMap[e].has(y))return d.apply(this,arguments);const S=this._eventMap[e].get(y);return this._eventMap[e].delete(y),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,d.apply(this,[C,S])},Object.defineProperty(a,"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 VP(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(YP=A,A?"adapter.js logging disabled":"adapter.js logging enabled")}function Wq(A){return typeof A!="boolean"?new Error("Argument type: "+typeof A+". Please use a boolean."):(xw=!A,"adapter.js deprecation warnings "+(A?"disabled":"enabled"))}function Yw(){if(typeof window=="object"){if(YP)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function kS(A,e){xw&&console.warn(A+" is deprecated, please use "+e+" instead.")}function tb(A){return Object.prototype.toString.call(A)==="[object Object]"}function ib(A){return tb(A)?Object.keys(A).reduce(function(e,o){const a=tb(A[o]),c=a?ib(A[o]):A[o],d=a&&!Object.keys(c).length;return c===void 0||d?e:Object.assign(e,{[o]:c})},{}):A}function ob(A,e,o){e&&!o.has(e.id)&&(o.set(e.id,e),Object.keys(e).forEach(a=>{a.endsWith("Id")?ob(A,A.get(e[a]),o):a.endsWith("Ids")&&e[a].forEach(c=>{ob(A,A.get(c),o)})}))}function JP(A,e,o){const a=o?"outbound-rtp":"inbound-rtp",c=new Map;if(e===null)return c;const d=[];return A.forEach(C=>{C.type==="track"&&C.trackIdentifier===e.id&&d.push(C)}),d.forEach(C=>{A.forEach(y=>{y.type===a&&y.trackId===C.id&&ob(A,y,c)})}),c}const sb=Yw;function HP(A,e){const o=A&&A.navigator;if(!o.mediaDevices)return;const a=function(C){if(typeof C!="object"||C.mandatory||C.optional)return C;const y={};return Object.keys(C).forEach(S=>{if(S==="require"||S==="advanced"||S==="mediaSource")return;const k=typeof C[S]=="object"?C[S]:{ideal:C[S]};k.exact!==void 0&&typeof k.exact=="number"&&(k.min=k.max=k.exact);const V=function(J,gA){return J?J+gA.charAt(0).toUpperCase()+gA.slice(1):gA==="deviceId"?"sourceId":gA};if(k.ideal!==void 0){y.optional=y.optional||[];let J={};typeof k.ideal=="number"?(J[V("min",S)]=k.ideal,y.optional.push(J),J={},J[V("max",S)]=k.ideal,y.optional.push(J)):(J[V("",S)]=k.ideal,y.optional.push(J))}k.exact!==void 0&&typeof k.exact!="number"?(y.mandatory=y.mandatory||{},y.mandatory[V("",S)]=k.exact):["min","max"].forEach(J=>{k[J]!==void 0&&(y.mandatory=y.mandatory||{},y.mandatory[V(J,S)]=k[J])})}),C.advanced&&(y.optional=(y.optional||[]).concat(C.advanced)),y},c=function(C,y){if(e.version>=61)return y(C);if((C=JSON.parse(JSON.stringify(C)))&&typeof C.audio=="object"){const S=function(k,V,J){V in k&&!(J in k)&&(k[J]=k[V],delete k[V])};S((C=JSON.parse(JSON.stringify(C))).audio,"autoGainControl","googAutoGainControl"),S(C.audio,"noiseSuppression","googNoiseSuppression"),C.audio=a(C.audio)}if(C&&typeof C.video=="object"){let S=C.video.facingMode;S=S&&(typeof S=="object"?S:{ideal:S});const k=e.version<66;if(S&&(S.exact==="user"||S.exact==="environment"||S.ideal==="user"||S.ideal==="environment")&&(!o.mediaDevices.getSupportedConstraints||!o.mediaDevices.getSupportedConstraints().facingMode||k)){let V;if(delete C.video.facingMode,S.exact==="environment"||S.ideal==="environment"?V=["back","rear"]:S.exact!=="user"&&S.ideal!=="user"||(V=["front"]),V)return o.mediaDevices.enumerateDevices().then(J=>{J=J.filter(CA=>CA.kind==="videoinput");let gA=J.find(CA=>V.some(MA=>CA.label.toLowerCase().includes(MA)));return!gA&&J.length&&V.includes("back")&&(gA=J[J.length-1]),gA&&(C.video.deviceId=S.exact?{exact:gA.deviceId}:{ideal:gA.deviceId}),C.video=a(C.video),sb("chrome: "+JSON.stringify(C)),y(C)})}C.video=a(C.video)}return sb("chrome: "+JSON.stringify(C)),y(C)},d=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,y,S){c(C,k=>{o.webkitGetUserMedia(k,y,V=>{S&&S(d(V))})})}.bind(o),o.mediaDevices.getUserMedia){const C=o.mediaDevices.getUserMedia.bind(o.mediaDevices);o.mediaDevices.getUserMedia=function(y){return c(y,S=>C(S).then(k=>{if(S.audio&&!k.getAudioTracks().length||S.video&&!k.getVideoTracks().length)throw k.getTracks().forEach(V=>{V.stop()}),new DOMException("","NotFoundError");return k},k=>Promise.reject(d(k))))}}}function qP(A){A.MediaStream=A.MediaStream||A.webkitMediaStream}function KP(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",a=>{let c;c=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(C=>C.track&&C.track.id===a.track.id):{track:a.track};const d=new Event("track");d.track=a.track,d.receiver=c,d.transceiver={receiver:c},d.streams=[o.stream],this.dispatchEvent(d)}),o.stream.getTracks().forEach(a=>{let c;c=A.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(C=>C.track&&C.track.id===a.id):{track:a};const d=new Event("track");d.track=a,d.receiver=c,d.transceiver={receiver:c},d.streams=[o.stream],this.dispatchEvent(d)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else HB(A,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function nb(A){if(typeof A=="object"&&A.RTCPeerConnection&&!("getSenders"in A.RTCPeerConnection.prototype)&&"createDTMFSender"in A.RTCPeerConnection.prototype){const e=function(c,d){return{track:d,get dtmf(){return this._dtmf===void 0&&(d.kind==="audio"?this._dtmf=c.createDTMFSender(d):this._dtmf=null),this._dtmf},_pc:c}};if(!A.RTCPeerConnection.prototype.getSenders){A.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const c=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(C,y){let S=c.apply(this,arguments);return S||(S=e(this,C),this._senders.push(S)),S};const d=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(C){d.apply(this,arguments);const y=this._senders.indexOf(C);y!==-1&&this._senders.splice(y,1)}}const o=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(c){this._senders=this._senders||[],o.apply(this,[c]),c.getTracks().forEach(d=>{this._senders.push(e(this,d))})};const a=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(c){this._senders=this._senders||[],a.apply(this,[c]),c.getTracks().forEach(d=>{const C=this._senders.find(y=>y.track===d);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(a=>a._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 jP(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[o,a,c]=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 d=function(y){const S={};return y.result().forEach(k=>{const V={id:k.id,timestamp:k.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[k.type]||k.type};k.names().forEach(J=>{V[J]=k.stat(J)}),S[V.id]=V}),S},C=function(y){return new Map(Object.keys(y).map(S=>[S,y[S]]))};if(arguments.length>=2){const y=function(S){a(C(d(S)))};return e.apply(this,[y,o])}return new Promise((y,S)=>{e.apply(this,[function(k){y(C(d(k)))},S])}).then(a,c)}}function rb(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 c=o.apply(this,[]);return c.forEach(d=>d._pc=this),c});const a=A.RTCPeerConnection.prototype.addTrack;a&&(A.RTCPeerConnection.prototype.addTrack=function(){const c=a.apply(this,arguments);return c._pc=this,c}),A.RTCRtpSender.prototype.getStats=function(){const c=this;return this._pc.getStats().then(d=>JP(d,c.track,!0))}}if(!("getStats"in A.RTCRtpReceiver.prototype)){const o=A.RTCPeerConnection.prototype.getReceivers;o&&(A.RTCPeerConnection.prototype.getReceivers=function(){const a=o.apply(this,[]);return a.forEach(c=>c._pc=this),a}),HB(A,"track",a=>(a.receiver._pc=a.srcElement,a)),A.RTCRtpReceiver.prototype.getStats=function(){const a=this;return this._pc.getStats().then(c=>JP(c,a.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 a,c,d;return this.getSenders().forEach(C=>{C.track===o&&(a?d=!0:a=C)}),this.getReceivers().forEach(C=>(C.track===o&&(c?d=!0:c=C),C.track===o)),d||a&&c?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):a?a.getStats():c?c.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function WP(A){A.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(d=>this._shimmedLocalStreams[d][0])};const e=A.RTCPeerConnection.prototype.addTrack;A.RTCPeerConnection.prototype.addTrack=function(d,C){if(!C)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const y=e.apply(this,arguments);return this._shimmedLocalStreams[C.id]?this._shimmedLocalStreams[C.id].indexOf(y)===-1&&this._shimmedLocalStreams[C.id].push(y):this._shimmedLocalStreams[C.id]=[C,y],y};const o=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(d){this._shimmedLocalStreams=this._shimmedLocalStreams||{},d.getTracks().forEach(S=>{if(this.getSenders().find(k=>k.track===S))throw new DOMException("Track already exists.","InvalidAccessError")});const C=this.getSenders();o.apply(this,arguments);const y=this.getSenders().filter(S=>C.indexOf(S)===-1);this._shimmedLocalStreams[d.id]=[d].concat(y)};const a=A.RTCPeerConnection.prototype.removeStream;A.RTCPeerConnection.prototype.removeStream=function(d){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[d.id],a.apply(this,arguments)};const c=A.RTCPeerConnection.prototype.removeTrack;A.RTCPeerConnection.prototype.removeTrack=function(d){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},d&&Object.keys(this._shimmedLocalStreams).forEach(C=>{const y=this._shimmedLocalStreams[C].indexOf(d);y!==-1&&this._shimmedLocalStreams[C].splice(y,1),this._shimmedLocalStreams[C].length===1&&delete this._shimmedLocalStreams[C]}),c.apply(this,arguments)}}function zP(A,e){if(!A.RTCPeerConnection)return;if(A.RTCPeerConnection.prototype.addTrack&&e.version>=65)return WP(A);const o=A.RTCPeerConnection.prototype.getLocalStreams;A.RTCPeerConnection.prototype.getLocalStreams=function(){const S=o.apply(this);return this._reverseStreams=this._reverseStreams||{},S.map(k=>this._reverseStreams[k.id])};const a=A.RTCPeerConnection.prototype.addStream;A.RTCPeerConnection.prototype.addStream=function(S){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},S.getTracks().forEach(k=>{if(this.getSenders().find(V=>V.track===k))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[S.id]){const k=new A.MediaStream(S.getTracks());this._streams[S.id]=k,this._reverseStreams[k.id]=S,S=k}a.apply(this,[S])};const c=A.RTCPeerConnection.prototype.removeStream;function d(S,k){let V=k.sdp;return Object.keys(S._reverseStreams||[]).forEach(J=>{const gA=S._reverseStreams[J],CA=S._streams[gA.id];V=V.replace(new RegExp(CA.id,"g"),gA.id)}),new RTCSessionDescription({type:k.type,sdp:V})}A.RTCPeerConnection.prototype.removeStream=function(S){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},c.apply(this,[this._streams[S.id]||S]),delete this._reverseStreams[this._streams[S.id]?this._streams[S.id].id:S.id],delete this._streams[S.id]},A.RTCPeerConnection.prototype.addTrack=function(S,k){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const V=[].slice.call(arguments,1);if(V.length!==1||!V[0].getTracks().find(gA=>gA===S))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(gA=>gA.track===S))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const J=this._streams[k.id];if(J)J.addTrack(S),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const gA=new A.MediaStream([S]);this._streams[k.id]=gA,this._reverseStreams[gA.id]=k,this.addStream(gA)}return this.getSenders().find(gA=>gA.track===S)},["createOffer","createAnswer"].forEach(function(S){const k=A.RTCPeerConnection.prototype[S],V={[S](){const J=arguments;return arguments.length&&typeof arguments[0]=="function"?k.apply(this,[gA=>{const CA=d(this,gA);J[0].apply(null,[CA])},gA=>{J[1]&&J[1].apply(null,gA)},arguments[2]]):k.apply(this,arguments).then(gA=>d(this,gA))}};A.RTCPeerConnection.prototype[S]=V[S]});const C=A.RTCPeerConnection.prototype.setLocalDescription;A.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(S,k){let V=k.sdp;return Object.keys(S._reverseStreams||[]).forEach(J=>{const gA=S._reverseStreams[J],CA=S._streams[gA.id];V=V.replace(new RegExp(gA.id,"g"),CA.id)}),new RTCSessionDescription({type:k.type,sdp:V})}(this,arguments[0]),C.apply(this,arguments)):C.apply(this,arguments)};const y=Object.getOwnPropertyDescriptor(A.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(A.RTCPeerConnection.prototype,"localDescription",{get(){const S=y.get.apply(this);return S.type===""?S:d(this,S)}}),A.RTCPeerConnection.prototype.removeTrack=function(S){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!S._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(S._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let k;this._streams=this._streams||{},Object.keys(this._streams).forEach(V=>{this._streams[V].getTracks().find(J=>S.track===J)&&(k=this._streams[V])}),k&&(k.getTracks().length===1?this.removeStream(this._reverseStreams[k.id]):k.removeTrack(S.track),this.dispatchEvent(new Event("negotiationneeded")))}}function LS(A,e){!A.RTCPeerConnection&&A.webkitRTCPeerConnection&&(A.RTCPeerConnection=A.webkitRTCPeerConnection),A.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(o){const a=A.RTCPeerConnection.prototype[o],c={[o](){return arguments[0]=new(o==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),a.apply(this,arguments)}};A.RTCPeerConnection.prototype[o]=c[o]})}function ZP(A,e){HB(A,"negotiationneeded",o=>{const a=o.target;if(!(e.version<72||a.getConfiguration&&a.getConfiguration().sdpSemantics==="plan-b")||a.signalingState==="stable")return o})}var ab=Object.freeze({__proto__:null,shimMediaStream:qP,shimOnTrack:KP,shimGetSendersWithDtmf:nb,shimGetStats:jP,shimSenderReceiverGetStats:rb,shimAddTrackRemoveTrackWithNative:WP,shimAddTrackRemoveTrack:zP,shimPeerConnection:LS,fixNegotiationNeeded:ZP,shimGetUserMedia:HP,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(a=>{const c=o.video&&o.video.width,d=o.video&&o.video.height,C=o.video&&o.video.frameRate;return o.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:a,maxFrameRate:C||3}},c&&(o.video.mandatory.maxWidth=c),d&&(o.video.mandatory.maxHeight=d),A.navigator.mediaDevices.getUserMedia(o)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}});function XP(A,e){const o=A&&A.navigator,a=A&&A.MediaStreamTrack;if(o.getUserMedia=function(c,d,C){kS("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),o.mediaDevices.getUserMedia(c).then(d,C)},!(e.version>55&&"autoGainControl"in o.mediaDevices.getSupportedConstraints())){const c=function(C,y,S){y in C&&!(S in C)&&(C[S]=C[y],delete C[y])},d=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)),c(C.audio,"autoGainControl","mozAutoGainControl"),c(C.audio,"noiseSuppression","mozNoiseSuppression")),d(C)},a&&a.prototype.getSettings){const C=a.prototype.getSettings;a.prototype.getSettings=function(){const y=C.apply(this,arguments);return c(y,"mozAutoGainControl","autoGainControl"),c(y,"mozNoiseSuppression","noiseSuppression"),y}}if(a&&a.prototype.applyConstraints){const C=a.prototype.applyConstraints;a.prototype.applyConstraints=function(y){return this.kind==="audio"&&typeof y=="object"&&(y=JSON.parse(JSON.stringify(y)),c(y,"autoGainControl","mozAutoGainControl"),c(y,"noiseSuppression","mozNoiseSuppression")),C.apply(this,[y])}}}}function $P(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 Vw(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(c){const d=A.RTCPeerConnection.prototype[c],C={[c](){return arguments[0]=new(c==="addIceCandidate"?A.RTCIceCandidate:A.RTCSessionDescription)(arguments[0]),d.apply(this,arguments)}};A.RTCPeerConnection.prototype[c]=C[c]});const o={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},a=A.RTCPeerConnection.prototype.getStats;A.RTCPeerConnection.prototype.getStats=function(){const[c,d,C]=arguments;return a.apply(this,[c||null]).then(y=>{if(e.version<53&&!d)try{y.forEach(S=>{S.type=o[S.type]||S.type})}catch(S){if(S.name!=="TypeError")throw S;y.forEach((k,V)=>{y.set(V,Object.assign({},k,{type:o[k.type]||k.type}))})}return y}).then(d,C)}}function Ax(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 a=e.apply(this,[]);return a.forEach(c=>c._pc=this),a});const o=A.RTCPeerConnection.prototype.addTrack;o&&(A.RTCPeerConnection.prototype.addTrack=function(){const a=o.apply(this,arguments);return a._pc=this,a}),A.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function gb(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(a=>a._pc=this),o}),HB(A,"track",o=>(o.receiver._pc=o.srcElement,o)),A.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function ex(A){A.RTCPeerConnection&&!("removeStream"in A.RTCPeerConnection.prototype)&&(A.RTCPeerConnection.prototype.removeStream=function(e){kS("removeStream","removeTrack"),this.getSenders().forEach(o=>{o.track&&e.getTracks().includes(o.track)&&this.removeTrack(o)})})}function cb(A){A.DataChannel&&!A.RTCDataChannel&&(A.RTCDataChannel=A.DataChannel)}function tx(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 a=o.length>0;a&&o.forEach(d=>{if("rid"in d&&!/^[a-z0-9]{0,16}$/i.test(d.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in d&&!(parseFloat(d.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in d&&!(parseFloat(d.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const c=e.apply(this,arguments);if(a){const{sender:d}=c,C=d.getParameters();(!("encodings"in C)||C.encodings.length===1&&Object.keys(C.encodings[0]).length===0)&&(C.encodings=o,d.sendEncodings=o,this.setParametersPromises.push(d.setParameters(C).then(()=>{delete d.sendEncodings}).catch(()=>{delete d.sendEncodings})))}return c})}function ix(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 ox(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 sx(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 nx=Object.freeze({__proto__:null,shimOnTrack:$P,shimPeerConnection:Vw,shimSenderGetStats:Ax,shimReceiverGetStats:gb,shimRemoveStream:ex,shimRTCDataChannel:cb,shimAddTransceiver:tx,shimGetParameters:ix,shimCreateOffer:ox,shimCreateAnswer:sx,shimGetUserMedia:XP,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 a=new DOMException("getDisplayMedia without video constraints is undefined");return a.name="NotFoundError",a.code=8,Promise.reject(a)}return o.video===!0?o.video={mediaSource:e}:o.video.mediaSource=e,A.navigator.mediaDevices.getUserMedia(o)})}});function rx(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(a=>e.call(this,a,o)),o.getVideoTracks().forEach(a=>e.call(this,a,o))},A.RTCPeerConnection.prototype.addTrack=function(o,...a){return a&&a.forEach(c=>{this._localStreams?this._localStreams.includes(c)||this._localStreams.push(c):this._localStreams=[c]}),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 a=e.getTracks();this.getSenders().forEach(c=>{a.includes(c.track)&&this.removeTrack(c)})})}}function ax(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=a=>{a.streams.forEach(c=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(c))return;this._remoteStreams.push(c);const d=new Event("addstream");d.stream=c,this.dispatchEvent(d)})})}});const e=A.RTCPeerConnection.prototype.setRemoteDescription;A.RTCPeerConnection.prototype.setRemoteDescription=function(){const o=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(a){a.streams.forEach(c=>{if(o._remoteStreams||(o._remoteStreams=[]),o._remoteStreams.indexOf(c)>=0)return;o._remoteStreams.push(c);const d=new Event("addstream");d.stream=c,o.dispatchEvent(d)})}),e.apply(o,arguments)}}}function lb(A){if(typeof A!="object"||!A.RTCPeerConnection)return;const e=A.RTCPeerConnection.prototype,o=e.createOffer,a=e.createAnswer,c=e.setLocalDescription,d=e.setRemoteDescription,C=e.addIceCandidate;e.createOffer=function(S,k){const V=arguments.length>=2?arguments[2]:arguments[0],J=o.apply(this,[V]);return k?(J.then(S,k),Promise.resolve()):J},e.createAnswer=function(S,k){const V=arguments.length>=2?arguments[2]:arguments[0],J=a.apply(this,[V]);return k?(J.then(S,k),Promise.resolve()):J};let y=function(S,k,V){const J=c.apply(this,[S]);return V?(J.then(k,V),Promise.resolve()):J};e.setLocalDescription=y,y=function(S,k,V){const J=d.apply(this,[S]);return V?(J.then(k,V),Promise.resolve()):J},e.setRemoteDescription=y,y=function(S,k,V){const J=C.apply(this,[S]);return V?(J.then(k,V),Promise.resolve()):J},e.addIceCandidate=y}function Ib(A){const e=A&&A.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const o=e.mediaDevices,a=o.getUserMedia.bind(o);e.mediaDevices.getUserMedia=c=>a(gx(c))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=function(o,a,c){e.mediaDevices.getUserMedia(o).then(a,c)}.bind(e))}function gx(A){return A&&A.video!==void 0?Object.assign({},A,{video:ib(A.video)}):A}function cx(A){if(!A.RTCPeerConnection)return;const e=A.RTCPeerConnection;A.RTCPeerConnection=function(o,a){if(o&&o.iceServers){const c=[];for(let d=0;d<o.iceServers.length;d++){let C=o.iceServers[d];C.urls===void 0&&C.url?(kS("RTCIceServer.url","RTCIceServer.urls"),C=JSON.parse(JSON.stringify(C)),C.urls=C.url,delete C.url,c.push(C)):c.push(o.iceServers[d])}o.iceServers=c}return new e(o,a)},A.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(A.RTCPeerConnection,"generateCertificate",{get:()=>e.generateCertificate})}function lx(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 Jw(A){const e=A.RTCPeerConnection.prototype.createOffer;A.RTCPeerConnection.prototype.createOffer=function(o){if(o){o.offerToReceiveAudio!==void 0&&(o.offerToReceiveAudio=!!o.offerToReceiveAudio);const a=this.getTransceivers().find(d=>d.receiver.track.kind==="audio");o.offerToReceiveAudio===!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.offerToReceiveAudio!==!0||a||this.addTransceiver("audio",{direction:"recvonly"}),o.offerToReceiveVideo!==void 0&&(o.offerToReceiveVideo=!!o.offerToReceiveVideo);const c=this.getTransceivers().find(d=>d.receiver.track.kind==="video");o.offerToReceiveVideo===!1&&c?c.direction==="sendrecv"?c.setDirection?c.setDirection("sendonly"):c.direction="sendonly":c.direction==="recvonly"&&(c.setDirection?c.setDirection("inactive"):c.direction="inactive"):o.offerToReceiveVideo!==!0||c||this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Ix(A){typeof A!="object"||A.AudioContext||(A.AudioContext=A.webkitAudioContext)}var ux=Object.freeze({__proto__:null,shimLocalStreamsAPI:rx,shimRemoteStreamsAPI:ax,shimCallbacksAPI:lb,shimGetUserMedia:Ib,shimConstraints:gx,shimRTCIceServerUrls:cx,shimTrackEventTransceiver:lx,shimCreateOfferLegacy:Jw,shimAudioContext:Ix}),Ex={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(a=>a.trim())},e.splitSections=function(o){return o.split(`
|
||
m=`).map((a,c)=>(c>0?"m="+a:a).trim()+`\r
|
||
`)},e.getDescription=function(o){const a=e.splitSections(o);return a&&a[0]},e.getMediaSections=function(o){const a=e.splitSections(o);return a.shift(),a},e.matchPrefix=function(o,a){return e.splitLines(o).filter(c=>c.indexOf(a)===0)},e.parseCandidate=function(o){let a;a=o.indexOf("a=candidate:")===0?o.substring(12).split(" "):o.substring(10).split(" ");const c={foundation:a[0],component:{1:"rtp",2:"rtcp"}[a[1]]||a[1],protocol:a[2].toLowerCase(),priority:parseInt(a[3],10),ip:a[4],address:a[4],port:parseInt(a[5],10),type:a[7]};for(let d=8;d<a.length;d+=2)switch(a[d]){case"raddr":c.relatedAddress=a[d+1];break;case"rport":c.relatedPort=parseInt(a[d+1],10);break;case"tcptype":c.tcpType=a[d+1];break;case"ufrag":c.ufrag=a[d+1],c.usernameFragment=a[d+1];break;default:c[a[d]]===void 0&&(c[a[d]]=a[d+1])}return c},e.writeCandidate=function(o){const a=[];a.push(o.foundation);const c=o.component;c==="rtp"?a.push(1):c==="rtcp"?a.push(2):a.push(c),a.push(o.protocol.toUpperCase()),a.push(o.priority),a.push(o.address||o.ip),a.push(o.port);const d=o.type;return a.push("typ"),a.push(d),d!=="host"&&o.relatedAddress&&o.relatedPort&&(a.push("raddr"),a.push(o.relatedAddress),a.push("rport"),a.push(o.relatedPort)),o.tcpType&&o.protocol.toLowerCase()==="tcp"&&(a.push("tcptype"),a.push(o.tcpType)),(o.usernameFragment||o.ufrag)&&(a.push("ufrag"),a.push(o.usernameFragment||o.ufrag)),"candidate:"+a.join(" ")},e.parseIceOptions=function(o){return o.substring(14).split(" ")},e.parseRtpMap=function(o){let a=o.substring(9).split(" ");const c={payloadType:parseInt(a.shift(),10)};return a=a[0].split("/"),c.name=a[0],c.clockRate=parseInt(a[1],10),c.channels=a.length===3?parseInt(a[2],10):1,c.numChannels=c.channels,c},e.writeRtpMap=function(o){let a=o.payloadType;o.preferredPayloadType!==void 0&&(a=o.preferredPayloadType);const c=o.channels||o.numChannels||1;return"a=rtpmap:"+a+" "+o.name+"/"+o.clockRate+(c!==1?"/"+c:"")+`\r
|
||
`},e.parseExtmap=function(o){const a=o.substring(9).split(" ");return{id:parseInt(a[0],10),direction:a[0].indexOf("/")>0?a[0].split("/")[1]:"sendrecv",uri:a[1],attributes:a.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 a={};let c;const d=o.substring(o.indexOf(" ")+1).split(";");for(let C=0;C<d.length;C++)c=d[C].trim().split("="),a[c[0].trim()]=c[1];return a},e.writeFmtp=function(o){let a="",c=o.payloadType;if(o.preferredPayloadType!==void 0&&(c=o.preferredPayloadType),o.parameters&&Object.keys(o.parameters).length){const d=[];Object.keys(o.parameters).forEach(C=>{o.parameters[C]!==void 0?d.push(C+"="+o.parameters[C]):d.push(C)}),a+="a=fmtp:"+c+" "+d.join(";")+`\r
|
||
`}return a},e.parseRtcpFb=function(o){const a=o.substring(o.indexOf(" ")+1).split(" ");return{type:a.shift(),parameter:a.join(" ")}},e.writeRtcpFb=function(o){let a="",c=o.payloadType;return o.preferredPayloadType!==void 0&&(c=o.preferredPayloadType),o.rtcpFeedback&&o.rtcpFeedback.length&&o.rtcpFeedback.forEach(d=>{a+="a=rtcp-fb:"+c+" "+d.type+(d.parameter&&d.parameter.length?" "+d.parameter:"")+`\r
|
||
`}),a},e.parseSsrcMedia=function(o){const a=o.indexOf(" "),c={ssrc:parseInt(o.substring(7,a),10)},d=o.indexOf(":",a);return d>-1?(c.attribute=o.substring(a+1,d),c.value=o.substring(d+1)):c.attribute=o.substring(a+1),c},e.parseSsrcGroup=function(o){const a=o.substring(13).split(" ");return{semantics:a.shift(),ssrcs:a.map(c=>parseInt(c,10))}},e.getMid=function(o){const a=e.matchPrefix(o,"a=mid:")[0];if(a)return a.substring(6)},e.parseFingerprint=function(o){const a=o.substring(14).split(" ");return{algorithm:a[0].toLowerCase(),value:a[1].toUpperCase()}},e.getDtlsParameters=function(o,a){return{role:"auto",fingerprints:e.matchPrefix(o+a,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(o,a){let c="a=setup:"+a+`\r
|
||
`;return o.fingerprints.forEach(d=>{c+="a=fingerprint:"+d.algorithm+" "+d.value+`\r
|
||
`}),c},e.parseCryptoLine=function(o){const a=o.substring(9).split(" ");return{tag:parseInt(a[0],10),cryptoSuite:a[1],keyParams:a[2],sessionParams:a.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 a=o.substring(7).split("|");return{keyMethod:"inline",keySalt:a[0],lifeTime:a[1],mkiValue:a[2]?a[2].split(":")[0]:void 0,mkiLength:a[2]?a[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,a){return e.matchPrefix(o+a,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(o,a){const c=e.matchPrefix(o+a,"a=ice-ufrag:")[0],d=e.matchPrefix(o+a,"a=ice-pwd:")[0];return c&&d?{usernameFragment:c.substring(12),password:d.substring(10)}:null},e.writeIceParameters=function(o){let a="a=ice-ufrag:"+o.usernameFragment+`\r
|
||
a=ice-pwd:`+o.password+`\r
|
||
`;return o.iceLite&&(a+=`a=ice-lite\r
|
||
`),a},e.parseRtpParameters=function(o){const a={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},c=e.splitLines(o)[0].split(" ");a.profile=c[2];for(let C=3;C<c.length;C++){const y=c[C],S=e.matchPrefix(o,"a=rtpmap:"+y+" ")[0];if(S){const k=e.parseRtpMap(S),V=e.matchPrefix(o,"a=fmtp:"+y+" ");switch(k.parameters=V.length?e.parseFmtp(V[0]):{},k.rtcpFeedback=e.matchPrefix(o,"a=rtcp-fb:"+y+" ").map(e.parseRtcpFb),a.codecs.push(k),k.name.toUpperCase()){case"RED":case"ULPFEC":a.fecMechanisms.push(k.name.toUpperCase())}}}e.matchPrefix(o,"a=extmap:").forEach(C=>{a.headerExtensions.push(e.parseExtmap(C))});const d=e.matchPrefix(o,"a=rtcp-fb:* ").map(e.parseRtcpFb);return a.codecs.forEach(C=>{d.forEach(y=>{C.rtcpFeedback.find(S=>S.type===y.type&&S.parameter===y.parameter)||C.rtcpFeedback.push(y)})}),a},e.writeRtpDescription=function(o,a){let c="";c+="m="+o+" ",c+=a.codecs.length>0?"9":"0",c+=" "+(a.profile||"UDP/TLS/RTP/SAVPF")+" ",c+=a.codecs.map(C=>C.preferredPayloadType!==void 0?C.preferredPayloadType:C.payloadType).join(" ")+`\r
|
||
`,c+=`c=IN IP4 0.0.0.0\r
|
||
`,c+=`a=rtcp:9 IN IP4 0.0.0.0\r
|
||
`,a.codecs.forEach(C=>{c+=e.writeRtpMap(C),c+=e.writeFmtp(C),c+=e.writeRtcpFb(C)});let d=0;return a.codecs.forEach(C=>{C.maxptime>d&&(d=C.maxptime)}),d>0&&(c+="a=maxptime:"+d+`\r
|
||
`),a.headerExtensions&&a.headerExtensions.forEach(C=>{c+=e.writeExtmap(C)}),c},e.parseRtpEncodingParameters=function(o){const a=[],c=e.parseRtpParameters(o),d=c.fecMechanisms.indexOf("RED")!==-1,C=c.fecMechanisms.indexOf("ULPFEC")!==-1,y=e.matchPrefix(o,"a=ssrc:").map(gA=>e.parseSsrcMedia(gA)).filter(gA=>gA.attribute==="cname"),S=y.length>0&&y[0].ssrc;let k;const V=e.matchPrefix(o,"a=ssrc-group:FID").map(gA=>gA.substring(17).split(" ").map(CA=>parseInt(CA,10)));V.length>0&&V[0].length>1&&V[0][0]===S&&(k=V[0][1]),c.codecs.forEach(gA=>{if(gA.name.toUpperCase()==="RTX"&&gA.parameters.apt){let CA={ssrc:S,codecPayloadType:parseInt(gA.parameters.apt,10)};S&&k&&(CA.rtx={ssrc:k}),a.push(CA),d&&(CA=JSON.parse(JSON.stringify(CA)),CA.fec={ssrc:S,mechanism:C?"red+ulpfec":"red"},a.push(CA))}}),a.length===0&&S&&a.push({ssrc:S});let J=e.matchPrefix(o,"b=");return J.length&&(J=J[0].indexOf("b=TIAS:")===0?parseInt(J[0].substring(7),10):J[0].indexOf("b=AS:")===0?1e3*parseInt(J[0].substring(5),10)*.95-16e3:void 0,a.forEach(gA=>{gA.maxBitrate=J})),a},e.parseRtcpParameters=function(o){const a={},c=e.matchPrefix(o,"a=ssrc:").map(y=>e.parseSsrcMedia(y)).filter(y=>y.attribute==="cname")[0];c&&(a.cname=c.value,a.ssrc=c.ssrc);const d=e.matchPrefix(o,"a=rtcp-rsize");a.reducedSize=d.length>0,a.compound=d.length===0;const C=e.matchPrefix(o,"a=rtcp-mux");return a.mux=C.length>0,a},e.writeRtcpParameters=function(o){let a="";return o.reducedSize&&(a+=`a=rtcp-rsize\r
|
||
`),o.mux&&(a+=`a=rtcp-mux\r
|
||
`),o.ssrc!==void 0&&o.cname&&(a+="a=ssrc:"+o.ssrc+" cname:"+o.cname+`\r
|
||
`),a},e.parseMsid=function(o){let a;const c=e.matchPrefix(o,"a=msid:");if(c.length===1)return a=c[0].substring(7).split(" "),{stream:a[0],track:a[1]};const d=e.matchPrefix(o,"a=ssrc:").map(C=>e.parseSsrcMedia(C)).filter(C=>C.attribute==="msid");return d.length>0?(a=d[0].value.split(" "),{stream:a[0],track:a[1]}):void 0},e.parseSctpDescription=function(o){const a=e.parseMLine(o),c=e.matchPrefix(o,"a=max-message-size:");let d;c.length>0&&(d=parseInt(c[0].substring(19),10)),isNaN(d)&&(d=65536);const C=e.matchPrefix(o,"a=sctp-port:");if(C.length>0)return{port:parseInt(C[0].substring(12),10),protocol:a.fmt,maxMessageSize:d};const y=e.matchPrefix(o,"a=sctpmap:");if(y.length>0){const S=y[0].substring(10).split(" ");return{port:parseInt(S[0],10),protocol:S[1],maxMessageSize:d}}},e.writeSctpDescription=function(o,a){let c=[];return c=o.protocol!=="DTLS/SCTP"?["m="+o.kind+" 9 "+o.protocol+" "+a.protocol+`\r
|
||
`,`c=IN IP4 0.0.0.0\r
|
||
`,"a=sctp-port:"+a.port+`\r
|
||
`]:["m="+o.kind+" 9 "+o.protocol+" "+a.port+`\r
|
||
`,`c=IN IP4 0.0.0.0\r
|
||
`,"a=sctpmap:"+a.port+" "+a.protocol+` 65535\r
|
||
`],a.maxMessageSize!==void 0&&c.push("a=max-message-size:"+a.maxMessageSize+`\r
|
||
`),c.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(o,a,c){let d;const C=a!==void 0?a:2;return d=o||e.generateSessionId(),`v=0\r
|
||
o=`+(c||"thisisadapterortc")+" "+d+" "+C+` IN IP4 127.0.0.1\r
|
||
s=-\r
|
||
t=0 0\r
|
||
`},e.getDirection=function(o,a){const c=e.splitLines(o);for(let d=0;d<c.length;d++)switch(c[d]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return c[d].substring(2)}return a?e.getDirection(a):"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 a=e.splitLines(o)[0].substring(2).split(" ");return{kind:a[0],port:parseInt(a[1],10),protocol:a[2],fmt:a.slice(3).join(" ")}},e.parseOLine=function(o){const a=e.matchPrefix(o,"o=")[0].substring(2).split(" ");return{username:a[0],sessionId:a[1],sessionVersion:parseInt(a[2],10),netType:a[3],addressType:a[4],address:a[5]}},e.isValidSDP=function(o){if(typeof o!="string"||o.length===0)return!1;const a=e.splitLines(o);for(let c=0;c<a.length;c++)if(a[c].length<2||a[c].charAt(1)!=="=")return!1;return!0},A.exports=e})(Ex);var dx=Ex.exports,Jd=I(dx),Cx=r({__proto__:null,default:Jd},[dx]);function Hw(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 a=new e(o),c=Jd.parseCandidate(o.candidate);for(const d in c)d in a||Object.defineProperty(a,d,{value:c[d]});return a.toJSON=function(){return{candidate:a.candidate,sdpMid:a.sdpMid,sdpMLineIndex:a.sdpMLineIndex,usernameFragment:a.usernameFragment}},a}return new e(o)},A.RTCIceCandidate.prototype=e.prototype,HB(A,"icecandidate",o=>(o.candidate&&Object.defineProperty(o,"candidate",{value:new A.RTCIceCandidate(o.candidate),writable:"false"}),o))}function ub(A){!A.RTCIceCandidate||A.RTCIceCandidate&&"relayProtocol"in A.RTCIceCandidate.prototype||HB(A,"icecandidate",e=>{if(e.candidate){const o=Jd.parseCandidate(e.candidate.candidate);o.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[o.priority>>24])}return e})}function US(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:a}=this.getConfiguration();a==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if(function(a){if(!a||!a.sdp)return!1;const c=Jd.splitSections(a.sdp);return c.shift(),c.some(d=>{const C=Jd.parseMLine(d);return C&&C.kind==="application"&&C.protocol.indexOf("SCTP")!==-1})}(arguments[0])){const a=function(S){const k=S.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(k===null||k.length<2)return-1;const V=parseInt(k[1],10);return V!=V?-1:V}(arguments[0]),c=function(S){let k=65536;return e.browser==="firefox"&&(k=e.version<57?S===-1?16384:2147483637:e.version<60?e.version===57?65535:65536:2147483637),k}(a),d=function(S,k){let V=65536;e.browser==="firefox"&&e.version===57&&(V=65535);const J=Jd.matchPrefix(S.sdp,"a=max-message-size:");return J.length>0?V=parseInt(J[0].substring(19),10):e.browser==="firefox"&&k!==-1&&(V=2147483637),V}(arguments[0],a);let C;C=c===0&&d===0?Number.POSITIVE_INFINITY:c===0||d===0?Math.max(c,d):Math.min(c,d);const y={};Object.defineProperty(y,"maxMessageSize",{get:()=>C}),this._sctp=y}return o.apply(this,arguments)}}function qw(A){if(!A.RTCPeerConnection||!("createDataChannel"in A.RTCPeerConnection.prototype))return;function e(a,c){const d=a.send;a.send=function(){const C=arguments[0],y=C.length||C.size||C.byteLength;if(a.readyState==="open"&&c.sctp&&y>c.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+c.sctp.maxMessageSize+" bytes)");return d.apply(a,arguments)}}const o=A.RTCPeerConnection.prototype.createDataChannel;A.RTCPeerConnection.prototype.createDataChannel=function(){const a=o.apply(this,arguments);return e(a,this),a},HB(A,"datachannel",a=>(e(a.channel,a.target),a))}function Eb(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 a=e[o];e[o]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=c=>{const d=c.target;if(d._lastConnectionState!==d.connectionState){d._lastConnectionState=d.connectionState;const C=new Event("connectionstatechange",c);d.dispatchEvent(C)}return c},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),a.apply(this,arguments)}})}function Kw(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(a){if(a&&a.sdp&&a.sdp.indexOf(`
|
||
a=extmap-allow-mixed`)!==-1){const c=a.sdp.split(`
|
||
`).filter(d=>d.trim()!=="a=extmap-allow-mixed").join(`
|
||
`);A.RTCSessionDescription&&a instanceof A.RTCSessionDescription?arguments[0]=new A.RTCSessionDescription({type:a.type,sdp:c}):a.sdp=c}return o.apply(this,arguments)}}function jw(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 Ww(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 a=arguments[0]||{};if(typeof a!="object"||a.type&&a.sdp)return o.apply(this,arguments);if(a={type:a.type,sdp:a.sdp},!a.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":a.type="offer";break;default:a.type="answer"}return a.sdp||a.type!=="offer"&&a.type!=="answer"?o.apply(this,[a]):(a.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(c=>o.apply(this,[c]))})}var zq=Object.freeze({__proto__:null,shimRTCIceCandidate:Hw,shimRTCIceCandidateRelayProtocol:ub,shimMaxMessageSize:US,shimSendThrowTypeError:qw,shimConnectionState:Eb,removeExtmapAllowMixed:Kw,shimAddIceCandidateNullOrEmpty:jw,shimParameterlessSetLocalDescription:Ww});(function({window:A}={},e={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const o=Yw,a=function(d){const C={browser:null,version:null};if(d===void 0||!d.navigator||!d.navigator.userAgent)return C.browser="Not a browser.",C;const{navigator:y}=d;if(y.mozGetUserMedia)C.browser="firefox",C.version=parseInt(bS(y.userAgent,/Firefox\/(\d+)\./,1));else if(y.webkitGetUserMedia||d.isSecureContext===!1&&d.webkitRTCPeerConnection)C.browser="chrome",C.version=parseInt(bS(y.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else{if(!d.RTCPeerConnection||!y.userAgent.match(/AppleWebKit\/(\d+)\./))return C.browser="Not a supported browser.",C;C.browser="safari",C.version=parseInt(bS(y.userAgent,/AppleWebKit\/(\d+)\./,1)),C.supportsUnifiedPlan=d.RTCRtpTransceiver&&"currentDirection"in d.RTCRtpTransceiver.prototype,C._safariVersion=bS(y.userAgent,/Version\/(\d+(\.?\d+))/,1)}return C}(A),c={browserDetails:a,commonShim:zq,extractVersion:bS,disableLog:VP,disableWarnings:Wq,sdp:Cx};switch(a.browser){case"chrome":if(!ab||!LS||!e.shimChrome)return o("Chrome shim is not included in this adapter release."),c;if(a.version===null)return o("Chrome shim can not determine version, not shimming."),c;o("adapter.js shimming chrome."),c.browserShim=ab,jw(A,a),Ww(A),HP(A,a),qP(A),LS(A,a),KP(A),zP(A,a),nb(A),jP(A),rb(A),ZP(A,a),Hw(A),ub(A),Eb(A),US(A,a),qw(A),Kw(A,a);break;case"firefox":if(!nx||!Vw||!e.shimFirefox)return o("Firefox shim is not included in this adapter release."),c;o("adapter.js shimming firefox."),c.browserShim=nx,jw(A,a),Ww(A),XP(A,a),Vw(A,a),$P(A),ex(A),Ax(A),gb(A),cb(A),tx(A),ix(A),ox(A),sx(A),Hw(A),Eb(A),US(A,a),qw(A);break;case"safari":if(!ux||!e.shimSafari)return o("Safari shim is not included in this adapter release."),c;o("adapter.js shimming safari."),c.browserShim=ux,jw(A,a),Ww(A),cx(A),Jw(A),lb(A),rx(A),ax(A),lx(A),Ib(A),Ix(A),Hw(A),ub(A),US(A,a),qw(A),Kw(A,a);break;default:o("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var go,hx=Object.create,FS=Object.defineProperty,Zq=Object.defineProperties,zw=Object.getOwnPropertyDescriptor,OS=Object.getOwnPropertyDescriptors,Xq=Object.getOwnPropertyNames,Zw=Object.getOwnPropertySymbols,Bx=Object.getPrototypeOf,db=Object.prototype.hasOwnProperty,Qx=Object.prototype.propertyIsEnumerable,px=Reflect.get,PS=Math.pow,Xw=(A,e,o)=>e in A?FS(A,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):A[e]=o,mi=(A,e)=>{for(var o in e||(e={}))db.call(e,o)&&Xw(A,o,e[o]);if(Zw)for(var o of Zw(e))Qx.call(e,o)&&Xw(A,o,e[o]);return A},Qo=(A,e)=>Zq(A,OS(e)),mx=(A,e)=>{var o={};for(var a in A)db.call(A,a)&&e.indexOf(a)<0&&(o[a]=A[a]);if(A!=null&&Zw)for(var a of Zw(A))e.indexOf(a)<0&&Qx.call(A,a)&&(o[a]=A[a]);return o},Jh=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports),Hh=(A,e)=>{for(var o in e)FS(A,o,{get:e[o],enumerable:!0})},gc=(A,e,o)=>(o=A!=null?hx(Bx(A)):{},((a,c,d,C)=>{if(c&&typeof c=="object"||typeof c=="function")for(let y of Xq(c))!db.call(a,y)&&y!==d&&FS(a,y,{get:()=>c[y],enumerable:!(C=zw(c,y))||C.enumerable});return a})(!e&&A&&A.__esModule?o:FS(o,"default",{value:A,enumerable:!0}),A)),Ci=(A,e,o,a)=>{for(var c,d=zw(e,o),C=A.length-1;C>=0;C--)(c=A[C])&&(d=c(e,o,d)||d);return d&&FS(e,o,d),d},Y=(A,e,o)=>Xw(A,typeof e!="symbol"?e+"":e,o),NI=(A,e,o)=>px(Bx(A),o,e),KA=(A,e,o)=>new Promise((a,c)=>{var d=S=>{try{y(o.next(S))}catch(k){c(k)}},C=S=>{try{y(o.throw(S))}catch(k){c(k)}},y=S=>S.done?a(S.value):Promise.resolve(S.value).then(d,C);y((o=o.apply(A,e)).next())}),Kl=Jh((A,e)=>{var o=Object.prototype.hasOwnProperty,a="~";function c(){}function d(k,V,J){this.fn=k,this.context=V,this.once=J||!1}function C(k,V,J,gA,CA){if(typeof J!="function")throw new TypeError("The listener must be a function");var MA=new d(J,gA||k,CA),Ae=a?a+V:V;return k._events[Ae]?k._events[Ae].fn?k._events[Ae]=[k._events[Ae],MA]:k._events[Ae].push(MA):(k._events[Ae]=MA,k._eventsCount++),k}function y(k,V){--k._eventsCount===0?k._events=new c:delete k._events[V]}function S(){this._events=new c,this._eventsCount=0}Object.create&&(c.prototype=Object.create(null),new c().__proto__||(a=!1)),S.prototype.eventNames=function(){var k,V,J=[];if(this._eventsCount===0)return J;for(V in k=this._events)o.call(k,V)&&J.push(a?V.slice(1):V);return Object.getOwnPropertySymbols?J.concat(Object.getOwnPropertySymbols(k)):J},S.prototype.listeners=function(k){var V=a?a+k:k,J=this._events[V];if(!J)return[];if(J.fn)return[J.fn];for(var gA=0,CA=J.length,MA=new Array(CA);gA<CA;gA++)MA[gA]=J[gA].fn;return MA},S.prototype.listenerCount=function(k){var V=a?a+k:k,J=this._events[V];return J?J.fn?1:J.length:0},S.prototype.emit=function(k,V,J,gA,CA,MA){var Ae=a?a+k:k;if(!this._events[Ae])return!1;var Qe,Ye,ve=this._events[Ae],yi=arguments.length;if(ve.fn){switch(ve.once&&this.removeListener(k,ve.fn,void 0,!0),yi){case 1:return ve.fn.call(ve.context),!0;case 2:return ve.fn.call(ve.context,V),!0;case 3:return ve.fn.call(ve.context,V,J),!0;case 4:return ve.fn.call(ve.context,V,J,gA),!0;case 5:return ve.fn.call(ve.context,V,J,gA,CA),!0;case 6:return ve.fn.call(ve.context,V,J,gA,CA,MA),!0}for(Ye=1,Qe=new Array(yi-1);Ye<yi;Ye++)Qe[Ye-1]=arguments[Ye];ve.fn.apply(ve.context,Qe)}else{var be,ht=ve.length;for(Ye=0;Ye<ht;Ye++)switch(ve[Ye].once&&this.removeListener(k,ve[Ye].fn,void 0,!0),yi){case 1:ve[Ye].fn.call(ve[Ye].context);break;case 2:ve[Ye].fn.call(ve[Ye].context,V);break;case 3:ve[Ye].fn.call(ve[Ye].context,V,J);break;case 4:ve[Ye].fn.call(ve[Ye].context,V,J,gA);break;default:if(!Qe)for(be=1,Qe=new Array(yi-1);be<yi;be++)Qe[be-1]=arguments[be];ve[Ye].fn.apply(ve[Ye].context,Qe)}}return!0},S.prototype.on=function(k,V,J){return C(this,k,V,J,!1)},S.prototype.once=function(k,V,J){return C(this,k,V,J,!0)},S.prototype.removeListener=function(k,V,J,gA){var CA=a?a+k:k;if(!this._events[CA])return this;if(!V)return y(this,CA),this;var MA=this._events[CA];if(MA.fn)MA.fn===V&&(!gA||MA.once)&&(!J||MA.context===J)&&y(this,CA);else{for(var Ae=0,Qe=[],Ye=MA.length;Ae<Ye;Ae++)(MA[Ae].fn!==V||gA&&!MA[Ae].once||J&&MA[Ae].context!==J)&&Qe.push(MA[Ae]);Qe.length?this._events[CA]=Qe.length===1?Qe[0]:Qe:y(this,CA)}return this},S.prototype.removeAllListeners=function(k){var V;return k?(V=a?a+k:k,this._events[V]&&y(this,V)):(this._events=new c,this._eventsCount=0),this},S.prototype.off=S.prototype.removeListener,S.prototype.addListener=S.prototype.on,S.prefixed=a,S.EventEmitter=S,e!==void 0&&(e.exports=S)}),bC=Jh((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(a){return a.encoding?"rtpmap:%d %s/%s/%s":a.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(a){return a.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(a){return a.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(a){return"extmap:%d"+(a.direction?"/%s":"%v")+(a["encrypt-uri"]?" %s":"%v")+" %s"+(a.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(a){return a.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(a){var c="candidate:%s %d %s %d %s %d typ %s";return c+=a.raddr!=null?" raddr %s rport %d":"%v%v",c+=a.tcptype!=null?" tcptype %s":"%v",a.generation!=null&&(c+=" generation %d"),c+=a["network-id"]!=null?" network-id %d":"%v",c+=a["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(a){var c="ssrc:%d";return a.attribute!=null&&(c+=" %s",a.value!=null&&(c+=":%s")),c}},{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(a){return a.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(a){return a.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(a){return"imageattr:%s %s %s"+(a.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(a){return"simulcast:%s %s"+(a.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(a){return"ts-refclk:%s"+(a.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(a){var c="mediaclk:";return c+=a.id!=null?"id=%s %s":"%v%s",c+=a.mediaClockValue!=null?"=%s":"",c+=a.rateNumerator!=null?" rate=%s":"",c+=a.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(a){o[a].forEach(function(c){c.reg||(c.reg=/(.*)/),c.format||(c.format="%s")})})}),kf=Jh(A=>{var e=function(C){return String(Number(C))===C?Number(C):C},o=function(C,y,S){var k=C.name&&C.names;C.push&&!y[C.push]?y[C.push]=[]:k&&!y[C.name]&&(y[C.name]={});var V=C.push?{}:k?y[C.name]:y;(function(J,gA,CA,MA){if(MA&&!CA)gA[MA]=e(J[1]);else for(var Ae=0;Ae<CA.length;Ae+=1)J[Ae+1]!=null&&(gA[CA[Ae]]=e(J[Ae+1]))})(S.match(C.reg),V,C.names,C.name),C.push&&y[C.push].push(V)},a=bC(),c=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(C){var y={},S=[],k=y;return C.split(/(\r\n|\r|\n)/).filter(c).forEach(function(V){var J=V[0],gA=V.slice(2);J==="m"&&(S.push({rtp:[],fmtp:[]}),k=S[S.length-1]);for(var CA=0;CA<(a[J]||[]).length;CA+=1){var MA=a[J][CA];if(MA.reg.test(gA))return o(MA,k,gA)}}),y.media=S,y};var d=function(C,y){var S=y.split(/=(.+)/,2);return S.length===2?C[S[0]]=e(S[1]):S.length===1&&y.length>1&&(C[S[0]]=void 0),C};A.parseParams=function(C){return C.split(/;\s?/).reduce(d,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(C){return C.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(C){for(var y=[],S=C.split(" ").map(e),k=0;k<S.length;k+=3)y.push({component:S[k],ip:S[k+1],port:S[k+2]});return y},A.parseImageAttributes=function(C){return C.split(" ").map(function(y){return y.substring(1,y.length-1).split(",").reduce(d,{})})},A.parseSimulcastStreamList=function(C){return C.split(";").map(function(y){return y.split(",").map(function(S){var k,V=!1;return S[0]!=="~"?k=e(S):(k=e(S.substring(1,S.length)),V=!0),{scid:k,paused:V}})})}}),$q=Jh((A,e)=>{var o=bC(),a=/%[sdv%]/g,c=function(S){var k=1,V=arguments,J=V.length;return S.replace(a,function(gA){if(k>=J)return gA;var CA=V[k];switch(k+=1,gA){case"%%":return"%";case"%s":return String(CA);case"%d":return Number(CA);case"%v":return""}})},d=function(S,k,V){var J=[S+"="+(k.format instanceof Function?k.format(k.push?V:V[k.name]):k.format)];if(k.names)for(var gA=0;gA<k.names.length;gA+=1){var CA=k.names[gA];k.name?J.push(V[k.name][CA]):J.push(V[k.names[gA]])}else J.push(V[k.name]);return c.apply(null,J)},C=["v","o","s","i","u","e","p","c","b","t","r","z","a"],y=["i","c","b","a"];e.exports=function(S,k){k=k||{},S.version==null&&(S.version=0),S.name==null&&(S.name=" "),S.media.forEach(function(CA){CA.payloads==null&&(CA.payloads="")});var V=k.outerOrder||C,J=k.innerOrder||y,gA=[];return V.forEach(function(CA){o[CA].forEach(function(MA){MA.name in S&&S[MA.name]!=null?gA.push(d(CA,MA,S)):MA.push in S&&S[MA.push]!=null&&S[MA.push].forEach(function(Ae){gA.push(d(CA,MA,Ae))})})}),S.media.forEach(function(CA){gA.push(d("m",o.m[0],CA)),J.forEach(function(MA){o[MA].forEach(function(Ae){Ae.name in CA&&CA[Ae.name]!=null?gA.push(d(MA,Ae,CA)):Ae.push in CA&&CA[Ae.push]!=null&&CA[Ae.push].forEach(function(Qe){gA.push(d(MA,Ae,Qe))})})})}),gA.join(`\r
|
||
`)+`\r
|
||
`}}),AK=Jh(A=>{var e=kf(),o=$q(),a=bC();A.grammar=a,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}),xS=Jh((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(a){return a.encoding?"rtpmap:%d %s/%s/%s":a.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(a){return a.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(a){return a.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(a){return"extmap:%d"+(a.direction?"/%s":"%v")+(a["encrypt-uri"]?" %s":"%v")+" %s"+(a.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(a){return a.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(a){var c="candidate:%s %d %s %d %s %d typ %s";return c+=a.raddr!=null?" raddr %s rport %d":"%v%v",c+=a.tcptype!=null?" tcptype %s":"%v",a.generation!=null&&(c+=" generation %d"),c+=a["network-id"]!=null?" network-id %d":"%v",c+=a["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(a){var c="ssrc:%d";return a.attribute!=null&&(c+=" %s",a.value!=null&&(c+=":%s")),c}},{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(a){return a.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(a){return a.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(a){return"imageattr:%s %s %s"+(a.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(a){return"simulcast:%s %s"+(a.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(a){return"ts-refclk:%s"+(a.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(a){var c="mediaclk:";return c+=a.id!=null?"id=%s %s":"%v%s",c+=a.mediaClockValue!=null?"=%s":"",c+=a.rateNumerator!=null?" rate=%s":"",c+=a.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(a){o[a].forEach(function(c){c.reg||(c.reg=/(.*)/),c.format||(c.format="%s")})})}),fx=Jh(A=>{var e=function(C){return String(Number(C))===C?Number(C):C},o=function(C,y,S){var k=C.name&&C.names;C.push&&!y[C.push]?y[C.push]=[]:k&&!y[C.name]&&(y[C.name]={});var V=C.push?{}:k?y[C.name]:y;(function(J,gA,CA,MA){if(MA&&!CA)gA[MA]=e(J[1]);else for(var Ae=0;Ae<CA.length;Ae+=1)J[Ae+1]!=null&&(gA[CA[Ae]]=e(J[Ae+1]))})(S.match(C.reg),V,C.names,C.name),C.push&&y[C.push].push(V)},a=xS(),c=RegExp.prototype.test.bind(/^([a-z])=(.*)/);A.parse=function(C){var y={},S=[],k=y;return C.split(/(\r\n|\r|\n)/).filter(c).forEach(function(V){var J=V[0],gA=V.slice(2);J==="m"&&(S.push({rtp:[],fmtp:[]}),k=S[S.length-1]);for(var CA=0;CA<(a[J]||[]).length;CA+=1){var MA=a[J][CA];if(MA.reg.test(gA))return o(MA,k,gA)}}),y.media=S,y};var d=function(C,y){var S=y.split(/=(.+)/,2);return S.length===2?C[S[0]]=e(S[1]):S.length===1&&y.length>1&&(C[S[0]]=void 0),C};A.parseParams=function(C){return C.split(/;\s?/).reduce(d,{})},A.parseFmtpConfig=A.parseParams,A.parsePayloads=function(C){return C.toString().split(" ").map(Number)},A.parseRemoteCandidates=function(C){for(var y=[],S=C.split(" ").map(e),k=0;k<S.length;k+=3)y.push({component:S[k],ip:S[k+1],port:S[k+2]});return y},A.parseImageAttributes=function(C){return C.split(" ").map(function(y){return y.substring(1,y.length-1).split(",").reduce(d,{})})},A.parseSimulcastStreamList=function(C){return C.split(";").map(function(y){return y.split(",").map(function(S){var k,V=!1;return S[0]!=="~"?k=e(S):(k=e(S.substring(1,S.length)),V=!0),{scid:k,paused:V}})})}}),yx=Jh((A,e)=>{var o=xS(),a=/%[sdv%]/g,c=function(S){var k=1,V=arguments,J=V.length;return S.replace(a,function(gA){if(k>=J)return gA;var CA=V[k];switch(k+=1,gA){case"%%":return"%";case"%s":return String(CA);case"%d":return Number(CA);case"%v":return""}})},d=function(S,k,V){var J=[S+"="+(k.format instanceof Function?k.format(k.push?V:V[k.name]):k.format)];if(k.names)for(var gA=0;gA<k.names.length;gA+=1){var CA=k.names[gA];k.name?J.push(V[k.name][CA]):J.push(V[k.names[gA]])}else J.push(V[k.name]);return c.apply(null,J)},C=["v","o","s","i","u","e","p","c","b","t","r","z","a"],y=["i","c","b","a"];e.exports=function(S,k){k=k||{},S.version==null&&(S.version=0),S.name==null&&(S.name=" "),S.media.forEach(function(CA){CA.payloads==null&&(CA.payloads="")});var V=k.outerOrder||C,J=k.innerOrder||y,gA=[];return V.forEach(function(CA){o[CA].forEach(function(MA){MA.name in S&&S[MA.name]!=null?gA.push(d(CA,MA,S)):MA.push in S&&S[MA.push]!=null&&S[MA.push].forEach(function(Ae){gA.push(d(CA,MA,Ae))})})}),S.media.forEach(function(CA){gA.push(d("m",o.m[0],CA)),J.forEach(function(MA){o[MA].forEach(function(Ae){Ae.name in CA&&CA[Ae.name]!=null?gA.push(d(MA,Ae,CA)):Ae.push in CA&&CA[Ae.push]!=null&&CA[Ae.push].forEach(function(Qe){gA.push(d(MA,Ae,Qe))})})})}),gA.join(`\r
|
||
`)+`\r
|
||
`}}),Cb=Jh(A=>{var e=fx(),o=yx();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}),eK=gc(Kl()),qB=((go=qB||{})[go.INVALID_PARAMETER=4096]="INVALID_PARAMETER",go[go.INVALID_OPERATION=4097]="INVALID_OPERATION",go[go.NOT_SUPPORTED=4098]="NOT_SUPPORTED",go[go.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",go[go.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",go[go.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",go[go.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",go[go.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",go[go.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",go[go.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",go[go.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",go[go.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",go[go.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",go[go.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",go[go.CLIENT_BANNED=16448]="CLIENT_BANNED",go[go.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",go[go.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",go[go.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",go[go.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",go[go.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",go[go.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",go[go.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",go[go.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",go[go.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",go[go.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",go[go.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",go[go.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",go[go.API_CALL_ABORTED=16461]="API_CALL_ABORTED",go[go.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",go[go.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",go[go.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",go[go.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",go[go.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",go[go.UNKNOWN=65535]="UNKNOWN",go),Et=qB,Dx=class extends Error{constructor(A){let{name:e="RtcError",message:o,code:a=Et.UNKNOWN,extraCode:c=0,constraint:d}=A,C="<".concat(function(S){for(let k in Et)if(Et[k]===S)return k;return"UNKNOWN"}(a)," 0x").concat(a.toString(16),">"),y="".concat(o).concat(d?" constraint: ".concat(d):"").concat(o!=null&&o.includes(C)?"":" ".concat(C));super(y),Y(this,"code"),Y(this,"extraCode"),Y(this,"message"),Y(this,"originMessage"),Y(this,"name"),Y(this,"constraint"),this.code=a,this.extraCode=c,this.name=e,this.message=y,this.constraint=d,this.originMessage=o}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ri=Dx,hb=0,Sx=!0,KB=function(A){hb=A;let e=new Date;e.setTime(e.getTime()+A),QA[Sx?"info":"debug"]("baseTime from server: ".concat(e," offset: ").concat(A)),Sx=!1},Mx=function(){return hb},Lf=function(){return Date.now()+hb},vx=function(){let A=new Date;return A.setTime(Lf()),A.toLocaleString()},Bb=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)},Hd={};Hh(Hd,{REPORT_TYPE:()=>v0,buildSSOPackage:()=>AQ,bytes2ms:()=>p0,calculateScaleResolutionDownNumber:()=>M0,concatArrayBuffers:()=>rM,convertObjectNumberToInt:()=>S0,copyProperties:()=>Xx,deepClone:()=>zf,deepCloneBasic:()=>Zf,deepMerge:()=>Wh,delay:()=>LC,fibonacci:()=>Kf,formatedTime:()=>n2,getConstructorName:()=>tM,getContainerFromElement:()=>xb,getEnv:()=>Wx,getFirst16Bits:()=>a2,getInternalVersion:()=>o2,getLast16Bits:()=>R0,getLoggerUrl:()=>Hf,getMediaStreamTrackInfo:()=>qb,getMuteStateFromFlag:()=>wp,getNetworkType:()=>B0,getNumNetworkType:()=>qf,getReconnectionTimeout:()=>Rp,getStringByteLength:()=>D0,getTestSignalDomain:()=>zx,getTurnServer:()=>s2,getUint32Version:()=>Vb,getValueType:()=>Cg,getViewListFromView:()=>sM,glog:()=>A2,ipv4ToUint32:()=>oM,isArray:()=>wa,isAudioWorkletSupported:()=>e2,isBoolean:()=>Tr,isConstructor:()=>Wf,isEmpty:()=>f0,isFunction:()=>Ra,isLangChinese:()=>Wd,isMediaStreamTrack:()=>Ob,isNumber:()=>bn,isObject:()=>$E,isOverseaSdkAppId:()=>Kd,isPlainObject:()=>gE,isPortrait:()=>Yb,isPromise:()=>jf,isRemoteTrack:()=>Pb,isRotate90Or270:()=>$B,isSetSinkIdSupported:()=>t2,isString:()=>Yn,isUndefined:()=>Je,isVideoMixerOutputTrack:()=>_p,loadImage:()=>nM,loadVideo:()=>r2,ms2bytes:()=>$x,ms2samples:()=>m0,normalizeUrl:()=>Hb,performanceNow:()=>ko,promiseAny:()=>iM,samples2ms:()=>Fb,setNetworkTypeFromWebRTC:()=>Q0,stringify:()=>zd,stringifyIncludeValue:()=>y0,throttlePromise:()=>Jb});var Rx={};Hh(Rx,{ASR_ROBOT_FROM_TYPE:()=>I0,AUDIO_MUTE_BIT:()=>Of,AUDIO_STAT_BIT:()=>KS,AUX_STAT_BIT:()=>qS,AUX_STREAM_MSID:()=>Lx,BACKEND_ENV:()=>Uf,BASE_DOC_URL:()=>qh,BASE_HOST:()=>Tx,CAPABILITIES_KEYS:()=>_b,CLASS_NAME:()=>cK,CLOUD_CONSOLE_URL:()=>oK,CROSS_ROOM_BIT:()=>Db,DATA_CHANNEL_FROM_TYPE_BIT:()=>zB,DATA_FREEZE_TIMING:()=>Rb,DOC_BILLING_CN:()=>t0,DOC_BILLING_OVERSEA:()=>mb,DOC_URL:()=>sK,DTLS_STATE_UNKNOWN:()=>Kh,ENV_NAME:()=>jB,EXCHANGE_SDP_TIMEOUT:()=>xx,IS_WORKER:()=>A0,IS_WORKLET:()=>e0,KIBANA_EVENT:()=>Ja,LOCAL_STREAM_PUBLISH_STATE:()=>Yx,LOGGER_CMD_TYPE:()=>bI,LOGGER_DOMAIN:()=>GI,LOGGER_DOMAIN_OVERSEA:()=>Dp,LOG_LEVEL:()=>WB,LOG_LEVEL_NAME:()=>IK,MAIN_STREAM_MSID:()=>Iu,MAX_RTT:()=>l0,MICROPHONE_COMMUNICATIONS:()=>lK,MICROPHONE_DEFAULT:()=>zS,MUTE_ALL_BIT:()=>kx,NAME:()=>YA,NETWORK_TYPE:()=>i0,NOT_SUPPORTED_H264:()=>g0,PAUSED_RETRY_COUNT:()=>vp,PEERCONNECTION_CONNECTING_TIMEOUT:()=>wb,PEER_CONNECTION_STATE:()=>Co,PEER_LEAVE_REASON:()=>Hx,RECOVER_CAPTURE_INTERVAL:()=>XS,REMOTE_STREAM_TYPE_AUX:()=>Sb,REMOTE_STREAM_TYPE_MAIN:()=>s0,RENDER_FREEZE_TIMING:()=>Vx,SCHEDULE_DOMAIN:()=>XB,SCHEDULE_TIMEOUT:()=>Jx,SDP_SEMANTICS_PLAN_B:()=>a0,SDP_SEMANTICS_UNIFIED_PLAN:()=>WS,SECOND_HOST:()=>Nx,SIGNAL_PING_PONG_INTERVAL:()=>aE,SIGNAL_PING_TIMEOUT:()=>Gx,SIGNAL_RECONNECTION_COUNT:()=>nK,SMALL_STAT_BIT:()=>yb,SPEAKER_DEFAULT:()=>c0,STORAGE_EXPIRES_TIME:()=>o0,STREAM_TYPE_BIG:()=>aK,STREAM_TYPE_SMALL:()=>gK,SUBSCRIBE_SMALL_RETRY_COUNT:()=>ZS,SYNC_USER_LIST_INTERVAL:()=>rK,Scene:()=>Ff,THIRD_HOST:()=>iK,TRANSPORT_DIRECTION:()=>zn,TRTC_ERROR_ASSISTANCE:()=>VS,TRTC_QUALITY_BAD:()=>Pf,TRTC_QUALITY_DISCONNECTED:()=>Ox,TRTC_QUALITY_EXCELLENT:()=>n0,TRTC_QUALITY_GOOD:()=>ZB,TRTC_QUALITY_POOR:()=>Ux,TRTC_QUALITY_UNKNOWN:()=>Mb,TRTC_QUALITY_VERY_BAD:()=>Fx,UPDATE_OFFER_TIMEOUT:()=>Px,VIDEO_MUTE_BIT:()=>jS,VIDEO_STAT_BIT:()=>HS,WEBGL_ATTRIBUTES:()=>Tb,audioProfileMap:()=>Sp,defaultBigVideoProfile:()=>JS,defaultSmallVideoProfile:()=>bx,getRetryCount:()=>xf,getScriptDir:()=>tK,innerVersion:()=>$w,loggerProxy:()=>pb,screenProfileMap:()=>fb,setLoggerProxy:()=>YS,setRetryCount:()=>r0,setVersion:()=>_x,version:()=>qd,videoProfileMap:()=>kC});var $w="4.15.00.1600",qd="5.0.0";function _x(A){qd=A;let[e,o,a]=A.split(".").map(c=>parseInt(c,10));$w="".concat(e,".").concat(Math.min(15,o),".").concat(Math.min(15,a),".").concat(o.toString().padStart(2,"0")).concat(a.toString().padStart(2,"0"))}var Qb,rE,A0=typeof importScripts<"u",e0=typeof registerProcessor<"u",tK=()=>{let A=A0?self.location.href:document.currentScript.src;return A.substring(0,A.lastIndexOf("/")+1)},pb="",YS=A=>pb=A,Tx="web.sdk.qcloud.com",Nx="web.sdk.tencent.cn",iK="web.sdk.cloud.tencent.cn",oK="https://console.cloud.tencent.com/trtc",qh="https://".concat(Tx,"/trtc/webrtc/doc"),sK="".concat(qh,"/zh-cn/"),t0="https://cloud.tencent.com/document/product/647/85386",mb="https://trtc.io/document/56025",GI="https://yun.tim.qq.com",Dp="https://apisgp.my-imcloud.com",VS="trtc_error_assistance",bI={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},jB={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},WB=((rE=WB||{})[rE.TRACE=0]="TRACE",rE[rE.DEBUG=1]="DEBUG",rE[rE.INFO=2]="INFO",rE[rE.WARN=3]="WARN",rE[rE.ERROR=4]="ERROR",rE[rE.NONE=5]="NONE",rE),Gx=18e3,aE=2e3,i0={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},o0=6048e5,Sp={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}},kC={"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}},JS=kC["480p_2"],bx=kC["120p_2"],fb={"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}},YA={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"},zn={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Uf={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Ff=((Qb=Ff||{}).LIVE="live",Qb.RTC="rtc",Qb),HS=1,yb=2,qS=4,KS=8,Of=64,jS=16,kx=112,Db=128,zB=256,Iu="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",Lx="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",s0=YA.MAIN,Sb=YA.AUXILIARY,Mb=0,n0=1,ZB=2,Ux=3,Pf=4,Fx=5,Ox=6,Kh="unknown",Co={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},vb=1/0;function r0(A){vb=A}function xf(){return vb}var Mp,nK=30,Ja={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"},rK=1e4,Px=1e4,xx=1e4,WS="unified-plan",a0="plan-b",g0=1028,Yx=((Mp=Yx||{})[Mp.UNPUBLISH=-1]="UNPUBLISH",Mp[Mp.PUBLISHING=0]="PUBLISHING",Mp[Mp.PUBLISHED=1]="PUBLISHED",Mp),Rb=500,Vx=1e3,aK=YA.BIG,gK=YA.SMALL,wb=1e4,XB={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"},Jx=2e3,cK={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},vp=5,zS="default",c0=zS,lK="communications",IK=Object.keys(WB),Hx=["normal leave","timeout leave","kick","role change"],ZS=10,XS=2e3,_b=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],l0=1e4,I0=14,Tb={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},qx=function(A,e,o,a){return new(o||(o=Promise))(function(c,d){function C(k){try{S(a.next(k))}catch(V){d(V)}}function y(k){try{S(a.throw(k))}catch(V){d(V)}}function S(k){k.done?c(k.value):function(V){return V instanceof o?V:new o(function(J){J(V)})}(k.value).then(C,y)}S((a=a.apply(A,[])).next())})},u0=Symbol(32),E0=Symbol(16),Nb=Symbol(8),Yf=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 qx(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,o)=>{var a;this.reject=o,this.resolve=c=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(c)},this.demand(A,!0)||(a=this.pull)===null||a===void 0||a.call(this,A)})})}readU32(){return this.read(u0)}readU16(){return this.read(E0)}readU8(){return this.read(Nb)}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,a=c=>e.length<(o=c);if(typeof this.need=="number"){if(a(this.need))return;A=e.subarray(0,o)}else if(this.need===u0){if(a(4))return;A=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===E0){if(a(2))return;A=e[0]<<8|e[1]}else if(this.need===Nb){if(a(1))return;A=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(a(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(a(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 a=new Uint8Array(o);a.set(this.buffer),this.buffer=a}return this.buffer.subarray(e,o)}return this.buffer=new Uint8Array(A),this.buffer}};Yf.U32=u0,Yf.U16=E0,Yf.U8=Nb;var $S=128;function d0(A){let e=new Yf;for(;A>=128;)e.malloc(1)[0]=255&A|$S,A>>>=7;return e.malloc(1)[0]=255&A,e.buffer||new Uint8Array(0)}function C0(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=new Yf,a=e<<3;switch(typeof A){case"boolean":let c=o.malloc(2);c[0]=a,c[1]=A?1:0;break;case"number":o.malloc(1)[0]=a,o.write(d0(A));break;case"string":o.malloc(1)[0]=2|a;let d=new TextEncoder().encode(A);o.write(d0(d.length));let C=o.malloc(d.length);for(let S=0;S<d.length;S++)C[S]=d[S];break;case"object":let y=new Yf;if(Array.isArray(A))for(let S=0;S<A.length;S++){let k=C0(A[S],S+1);k&&y.write(k)}else{let S=1;for(let k in A){let V=C0(A[k],S++);V&&y.write(V)}}e===0?y.buffer&&o.write(y.buffer):(o.malloc(1)[0]=2|a,y.buffer&&(o.write(d0(y.buffer.length)),o.write(y.buffer)))}return o.buffer||new Uint8Array(0)}var Kx=class{constructor(){Y(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 Vf(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 uu(A,e){return A[e]<<24|A[e+1]<<16|A[e+2]<<8|A[e+3]}function jx(A,e){return A[e]}function Jf(A,e,o){return new TextDecoder().decode(function(a,c,d){return a.slice(c,c+d)}(A,e,o))}var AM=0,Gb=2654435769,h0=16,jh=2,eM=7;function bb(A,e){let o=new Kx,a=function(ve,yi,be){let ht=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:be,appId:ve,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:ht,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:yi}}(e,A,AM);AM=AM+1&2147483647,o.writeInt32(0),o.writeInt32(a.version),o.writeByte(a.encryption);let c=new TextEncoder().encode(a.d2);o.writeInt32(c.length+4),c&&o.writeBytes(c),o.writeByte(a.uinType);let d=new TextEncoder().encode(a.uin);o.writeInt32(d.length+4),d.length&&o.writeBytes(d);let C=new Kx;C.writeInt32(0),C.writeInt32(a.reqHead.seqNumber),C.writeInt32(a.reqHead.appId),C.writeByte(a.reqHead.appId>>>24&255),C.writeByte(a.reqHead.appId>>>16&255),C.writeByte(a.reqHead.appId>>>8&255),C.writeByte(255&a.reqHead.appId);for(let ve=4;ve<16;ve++)C.writeByte(0);let y=new TextEncoder().encode(a.reqHead.a2);C.writeInt32(y.length+4),y.length&&C.writeBytes(y);let S=new TextEncoder().encode(a.reqHead.serviceCmd);C.writeInt32(S.length+4),S.length&&C.writeBytes(S);let k=new TextEncoder().encode(a.reqHead.cookie);C.writeInt32(k.length+4),k.length&&C.writeBytes(k);let V=new TextEncoder().encode(a.reqHead.imei);C.writeInt32(V.length+4),V.length&&C.writeBytes(V);let J=new TextEncoder().encode(a.reqHead.ksid);C.writeInt32(J.length+4),J.length&&C.writeBytes(J);let gA=new TextEncoder().encode(a.reqHead.clientVersionInfo);C.writeInt16(gA.length+2),gA.length&&C.writeBytes(gA);let CA=C.length;C.data[0]=CA>>>24&255,C.data[1]=CA>>>16&255,C.data[2]=CA>>>8&255,C.data[3]=255&CA,Yn(A)&&(A=new TextEncoder().encode(A)),C.writeInt32(A.length+4),A.length&&C.writeBytes(A);let MA=new Uint8Array(C.data),Ae=null;a.encryption===1?Ae=new TextEncoder().encode(a.uin):a.encryption===2&&(Ae=new Uint8Array(16)),Ae&&(MA=function(ve,yi){let be=ve.length,ht=(be+1+jh+eM)%8;ht&&(ht=8-ht);let hi=be+1+jh+eM+ht,Di=new Uint8Array(hi),Vo=0,Jo=new Uint8Array(8),Qn=new Uint8Array(8),Ho=new Uint8Array(8),Ns=0;Jo[0]=248&Math.floor(256*Math.random())|ht,Ns=1;for(let ya=0;ya<ht;ya++)Jo[Ns]=255&Math.floor(256*Math.random()),Ns+=1;for(let ya=0;ya<jh;)if(Ns<8&&(Jo[Ns]=255&Math.floor(256*Math.random()),Ns+=1,ya+=1),Ns===8){kb(Jo,yi,Qn,Ho,Di,Vo),Vo+=8,Ns=0;for(let hu=0;hu<8;hu++)Ho[hu]=Di[Vo-8+hu]}let pg=0;for(;pg<be;)if(Ns<8&&(Jo[Ns]=ve[pg],Ns+=1,pg+=1),Ns===8){kb(Jo,yi,Qn,Ho,Di,Vo),Vo+=8,Ns=0;for(let ya=0;ya<8;ya++)Ho[ya]=Di[Vo-8+ya]}for(let ya=0;ya<eM;)if(Ns<8&&(Jo[Ns]=0,Ns+=1,ya+=1),Ns===8){kb(Jo,yi,Qn,Ho,Di,Vo),Vo+=8,Ns=0;for(let hu=0;hu<8;hu++)Ho[hu]=Di[Vo-8+hu]}return Di}(MA,Ae)),o.writeBytes(MA);let Qe=new Uint8Array(o.data),Ye=Qe.length;return Qe[0]=Ye>>>24&255,Qe[1]=Ye>>>16&255,Qe[2]=Ye>>>8&255,Qe[3]=255&Ye,Qe}function kb(A,e,o,a,c,d){for(let C=0;C<8;C++)A[C]^=a[C];(function(C,y,S,k){let V=uu(C,0),J=uu(C,4),gA=[];for(let MA=0;MA<4;MA++)gA[MA]=uu(y,4*MA);let CA=0;for(let MA=0;MA<h0;MA++)CA+=Gb,CA>>>=0,V+=(J<<4)+gA[0]^J+CA^(J>>>5)+gA[1],V>>>=0,J+=(V<<4)+gA[2]^V+CA^(V>>>5)+gA[3],J>>>=0;Vf(S,V,k),Vf(S,J,k+4)})(A,e,c,d);for(let C=0;C<8;C++)c[d+C]^=o[C];for(let C=0;C<8;C++)o[C]=A[C]}var Wx=function(){return new URLSearchParams(location.search).get("trtc_env")||""},zx=function(A){return A.includes(".")?A:"".concat(A).concat(".rtc.qq.com")},Kd=A=>Number(A)<14e8,Hf=function(A,e){let o;o=pb||(Kd(A)?Dp:GI);let a=Math.floor(Math.random()*PS(2,31));return"".concat(o,"/v5/AVQualityReportSvc/C2S?random=").concat(a,"&sdkappid=").concat(A,"&cmdtype=").concat(e)},Lb="unknown";function B0(){(function(){var d;Zx||(Zx=!0,(d=navigator.connection)==null||d.addEventListener("typechange",uK))})();let{userAgent:A,connection:e}=navigator,o=(A.match(/NetType\/\S+/)||[])[0]||"";o=o.toLowerCase().replace("nettype/",""),o==="3gnet"&&(o="3g");let a=e&&e.type&&e.type.toLowerCase(),c=e&&e.effectiveType&&e.effectiveType.toLowerCase();return c==="slow-2"&&(c="2g"),a?Ub(a,c):Lb}function uK(){QA.warn("netType changed",B0())}var Zx=!1;function Ub(A,e){if(i0[A])return A;switch(A){case"cellular":case"wimax":return e||"unknown";case"ethernet":return"wired";default:return"unknown"}}function Q0(A){Lb=Ub(A)}function qf(){return i0[B0()]}function Xx(A,e){for(let o of Reflect.ownKeys(e))if(o!=="constructor"&&o!=="prototype"&&o!=="name"){let a=Object.getOwnPropertyDescriptor(e,o)||"";Object.defineProperty(A,o,a)}return A}function p0(A){return Fb(A/4,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function Fb(A){return 1e3*A/(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function $x(A){return 4*m0(A,arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)}function m0(A){return A*(arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3)/1e3}var A2=typeof window<"u"&&typeof window.glog=="function"?window.glog:()=>{},Wd=()=>{let A=navigator.language;return A=A.substring(0,2),A==="zh"},gE=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 Kf(A){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return A<=1?e:Kf(A-1,e,(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)+e)}function Rp(A){return A>8?3e4:1e3*Kf(A)}function Cg(A){return Reflect.apply(Object.prototype.toString,A,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Ra=A=>typeof A=="function",Je=A=>A===void 0,Yn=A=>typeof A=="string",bn=A=>typeof A=="number",Tr=A=>typeof A=="boolean",$E=A=>Cg(A)==="object",wa=A=>Cg(A)==="array",Ob=A=>Cg(A)==="MediaStreamTrack".toLowerCase(),Pb=A=>A.isRemote,jf=A=>Cg(A)==="promise",Wf=A=>Ra(A)&&A.prototype.constructor===A,tM=A=>Wf(A)?A.prototype.constructor.name:"",e2=typeof AudioWorkletNode<"u",t2=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype;function iM(A){return new Promise((e,o)=>{let a=[];A.forEach(c=>{c.then(e).catch(d=>{a.push(d),a.length===A.length&&o(a)})})})}function ko(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var i2=A=>+A<10?"0".concat(A):A,o2=A=>{let e=A.match(/^\d+\.\d+\.\d+/)[0];if(!e)return A;let o=e.split("."),a=i2(o[1])+i2(o[2]);return o[1]-15>0&&(o[1]="15"),o[2]-15>0&&(o[2]="15"),"".concat(o.join("."),".").concat(a)},EK=Object.prototype.hasOwnProperty;function f0(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(gE(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(EK.call(A,e))return!1;return!0}return!1}function wp(A,e){return{userId:e,hasAudio:!!(A&KS),hasVideo:!!(A&HS),hasAuxiliary:!!(A&qS),hasSmall:!!(A&yb),audioMuted:!!(A&Of),videoMuted:!!(A&jS),audioAvailable:!(!(A&KS)||A&Of),videoAvailable:!(!(A&HS)||A&jS),hasDatachannel:!!(A&zB)}}function s2(A){let e={urls:A.url.startsWith("turn:")||A.url.startsWith("turns:")?A.url:"turn:".concat(A.url)};return!Je(A.username)&&!Je(A.credential)&&(e.username=A.username,e.credential=A.credential,e.credentialType="password",Je(A.credentialType)||(e.credentialType=A.credentialType)),e}function oM(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Yn(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 Wh=function(A,e,o,a){if(!$E(A)||!$E(e))return 0;let c,d=0,C=Object.keys(e);for(let y=0,S=C.length;y<S;y++)if(c=C[y],!(Je(e[c])||o&&o.includes(c)))if($E(A[c])&&$E(e[c]))d+=Wh(A[c],e[c],o,a);else{if(a&&a.includes(e[c]))continue;A[c]!==e[c]&&(A[c]=zf(e[c]),d+=1)}return d};function zf(A){if(wa(A)){let e=[];return A.forEach((o,a)=>{e[a]=zf(o)}),e}if($E(A)){let e={};return Object.keys(A).forEach(o=>{e[o]=zf(A[o])}),e}return A}var sM=A=>{let e=[];if(wa(A))e=[...A];else if(Yn(A)){let o=document.getElementById(A);o&&e.push(o)}else A&&e.push(A);return e},xb=A=>Yn(A)?document.getElementById(A):A,n2=()=>(A=>{let e=S=>S<10?"0".concat(S):"".concat(S),o=A.getFullYear(),a=A.getMonth()+1,c=A.getDate(),d=e(A.getHours()),C=e(A.getMinutes()),y=e(A.getSeconds());return"".concat(o,"/").concat(a,"/").concat(c," ").concat(d,":").concat(C,":").concat(y)})(new Date);function zd(A,e){let{keysToInclude:o,keysToExclude:a}=e;try{if(wa(A))return"[".concat(A.map(y=>zd(y,{keysToInclude:o,keysToExclude:a})).join(","),"]");if(!gE(A)||!wa(o)&&!wa(a))return JSON.stringify(A);let c={},d=new Set(o),C=new Set(a);return Object.keys(A).forEach(y=>{(C.size===0&&d.has(y)||d.size===0&&!C.has(y))&&(c[y]=gE(A[y])||wa(A[y])?JSON.parse(zd(A[y],{keysToExclude:a,keysToInclude:o})):A[y])}),JSON.stringify(c)}catch{return"{}"}}function y0(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=[];return Object.keys(A).forEach(a=>{e===A[a]&&o.push(a)}),zd(A,{keysToInclude:o})}function D0(A){return A.replace(/[\u4e00-\u9fa5]/g,"aa").length}var Yb=()=>{var A,e,o,a;return(A=window.screen)!=null&&A.orientation?!((a=(o=(e=window.screen)==null?void 0:e.orientation)==null?void 0:o.type)==null||!a.includes("portrait")):window.orientation===0||window.orientation===180},nM=A=>KA(null,null,function*(){return new Promise((e,o)=>{let a;if(Yn(A))a=new Image,a.crossOrigin="anonymous",a.src=A;else if(a=A,a.complete)return void e(a);a.onload=()=>e(a),a.onerror=()=>{o(new ri({code:Et.INVALID_PARAMETER,message:"load image failed, url: ".concat(A)}))}})}),Vb=A=>{let e=A.split(".");return+e[0]<<24|+e[1]<<16|+e[2]<<8|+e[3]},S0=A=>(Object.keys(A).forEach(e=>{bn(A[e])&&(e.startsWith("uint")||e.startsWith("int"))?A[e]=Math.floor(A[e]):(gE(A[e])||wa(A[e]))&&S0(A[e])}),A);function LC(A,e){return new Promise(o=>{let a=setTimeout(o,A);e&&e(a)})}function Jb(A,e){let o=null;return function(){for(var a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];return o||(o=A.apply(e||this,c),o.finally(()=>o=null),o)}}function Hb(A){return A.replace(/(^|[^:])\/{2,}/g,"$1/")}function qb(A){var e;try{let{width:o,height:a,frameRate:c,sampleRate:d,sampleSize:C,channelCount:y}=(e=A.getSettings)==null?void 0:e.call(A),S=A.kind===YA.AUDIO?"".concat(d,"x").concat(C,"@").concat(y):"".concat(o,"x").concat(a,"@").concat(c),k=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(S).concat(k)}catch{return""}}function M0(A,e){return A.width*A.height===e.width*e.height?1:Yb()&&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 $B(A){return A===90||A===270}function r2(A){return KA(this,null,function*(){return new Promise((e,o)=>{let a=document.createElement("video");a.crossOrigin="anonymous",a.src=A,a.muted=!0,a.loop=!0,a.playsInline=!0,a.play().then(()=>e(a)),a.onerror=()=>{o(a.error)}})})}function Zf(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((a,c)=>{o[c]=Zf(a,e)}),o}if(Object.prototype.toString.call(A)==="[object Object]"){let o={};return e.set(A,o),Reflect.ownKeys(A).forEach(a=>{o[a]=Zf(A[a],e)}),o}return A}var v0=(A=>(A[A.END_REPORT=2001]="END_REPORT",A[A.LOG=2002]="LOG",A[A.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",A))(v0||{});function AQ(A,e,o,a){try{let c=function(d,C,y,S){let k={data:d,random:Math.floor(2147483648*Math.random()),sdkAppId:y};return Je(S)||(k=Qo(mi({},k),{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:C,bytes_report_data:JSON.stringify(k)}}}(A,e,o,a);return bb(C0(c),o)}catch{return JSON.stringify(A)}}function rM(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 R0(A){return(65535&A)>>>0}function a2(A){return(4294901760&A)>>>0}function _p(A){return!!(A&&A instanceof CanvasCaptureMediaStreamTrack&&A.canvas.id.includes("trtc_mix"))}function dK(A){let e=function(o){try{let a={},c=0;a.totalLength=uu(o,c),c+=4,a.version=uu(o,c),c+=4,a.encryption=jx(o,c),c+=1,a.uinType=jx(o,c),c+=1,a.uinLength=uu(o,c),c+=4,a.uin=a.uinLength>4?Jf(o,c,a.uinLength-4):"",c+=a.uinLength-4;let d=o.slice(c);return a.encryption===2?(o=function(C,y){let S=0,k=new Uint8Array(8).fill(0),V=new Uint8Array(C.slice(0,8)),J=w0(V,y),gA=7&J[0],CA=C.length-1-gA-jh-eM,MA=new Uint8Array(CA),Ae=0,Qe=k,Ye=C.slice(0,8);S=8;let ve=1;ve+=gA;for(let be=1;be<=jh;)if(ve<8)ve++,be++;else if(ve===8){let ht=Xf(C,S,Qe,Ye,J,y);Qe=ht.ivPreCrypt,Ye=ht.ivCurCrypt,J=ht.debiBuf,S=ht.bufPos,ve=0}let yi=CA;for(;yi>0;)if(ve<8)MA[Ae++]=J[ve]^Qe[ve],ve++,yi--;else if(ve===8){let be=Xf(C,S,Qe,Ye,J,y);Qe=be.ivPreCrypt,Ye=be.ivCurCrypt,J=be.debiBuf,S=be.bufPos,ve=0}for(let be=1;be<=eM;)if(ve<8)J[ve],Qe[ve],ve++,be++;else if(ve===8){if(S>=C.length)break;let ht=Xf(C,S,Qe,Ye,J,y);if(!ht.success)break;Qe=ht.ivPreCrypt,Ye=ht.ivCurCrypt,J=ht.debiBuf,S=ht.bufPos,ve=0}return MA}(d,new Uint8Array(16).fill(0)),a.decrypted=!0,c=0):(o=d,c=0),a.rspHeadLength=uu(o,c),c+=4,a.seqNo=uu(o,c),c+=4,a.retCode=uu(o,c),c+=4,a.retStrLength=uu(o,c),c+=4,a.retStr=a.retStrLength?Jf(o,c,a.retStrLength-4):"",c+=a.retStrLength-4,a.serviceCmdLength=uu(o,c),c+=4,a.serviceCmd=a.serviceCmdLength?Jf(o,c,a.serviceCmdLength-4):"",c+=a.serviceCmdLength-4,a.cookieLength=uu(o,c),c+=4,a.cookie=a.cookieLength?Jf(o,c,a.cookieLength-4):"",c+=a.cookieLength-4,a.flag=uu(o,c),c+=4,a.busiBuffLength=uu(o,c),c+=4,a.busiBuff=a.busiBuffLength?Jf(o,c,a.busiBuffLength-4):"",c+=a.busiBuffLength-4,a}catch{}}(A);return e?.busiBuff}function w0(A,e){let o=A[0]<<24|A[1]<<16|A[2]<<8|A[3],a=A[4]<<24|A[5]<<16|A[6]<<8|A[7];o>>>=0,a>>>=0;let c=Gb*h0>>>0;for(let d=0;d<h0;d++)a-=(o<<4)+e[2]^o+c^(o>>>5)+e[3],a>>>=0,o-=(a<<4)+e[0]^a+c^(a>>>5)+e[1],o>>>=0,c-=Gb,c>>>=0;return new Uint8Array([o>>>24&255,o>>>16&255,o>>>8&255,255&o,a>>>24&255,a>>>16&255,a>>>8&255,255&a])}function Xf(A,e,o,a,c,d){if(e+8>A.length)return{success:!1};let C=new Uint8Array(a),y=A.slice(e,e+8),S=new Uint8Array(8);for(let k=0;k<8;k++)S[k]=c[k]^y[k];return{success:!0,ivPreCrypt:C,ivCurCrypt:y,debiBuf:w0(S,d),bufPos:e+8}}var Tp=typeof TextDecoder<"u"?new TextDecoder:void 0;function eQ(A){let{url:e,body:o,method:a="POST",timeout:c,priority:d}=A;return new Promise((C,y)=>{if("fetch"in window)return fetch(e,{method:a,body:o,priority:d}).then(k=>k.clone().json().then(V=>({data:V}),()=>k.arrayBuffer().then(V=>({data:dK(new Uint8Array(V))||(Tp?Tp.decode(V):V)})))).then(C,y);let S=new XMLHttpRequest;S.onreadystatechange=()=>{if(S.readyState===4)if(S.status>=200&&S.status<300)try{let k=JSON.parse(S.response);C({data:k})}catch{C({data:S.response})}else y({status:S.status,statusText:S.statusText||"request failed!"})},S.timeout=c||5e3,S.open(a,e,!0),S.send(o)})}function Kb(A){return KA(this,null,function*(){let e=ko(),o=JSON.stringify(A);try{if(!CompressionStream||o.length<=2800)return o;let a=new Blob([o],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),c=yield(yield(yield new Response(a)).blob()).arrayBuffer();return QA.debug("compressJSON ".concat(o.length," -> ").concat(c.byteLength," ").concat(ko()-e,"ms")),c}catch{return o}})}var g2=Object.prototype.hasOwnProperty,Np=A=>typeof A=="function",Ad=A=>A===void 0,jb=A=>typeof A=="string",c2=A=>typeof A=="boolean",Wb=A=>A.isRemote,l2=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)},aM=function(A){let{retryFunction:e,settings:o,onError:a,onRetrying:c,onRetryFailed:d,onRetrySuccess:C,context:y}=A;return function(){for(var S=arguments.length,k=new Array(S),V=0;V<S;V++)k[V]=arguments[V];let{retries:J=5,timeout:gA=1e3}=o,CA=0,MA=-1,Ae=0,Qe=(Ye,ve)=>KA(this,null,function*(){let yi=y||this;try{let be=yield e.apply(yi,k);CA>0&&C&&C.call(this,CA),CA=0,Ye(be)}catch(be){let ht=()=>{clearTimeout(MA),CA=0,Ae=2,ve(be)},hi=()=>{Ae!==2&&CA<(Np(J)?J():J)?(CA++,Ae=1,Np(c)&&c.call(this,CA,ht),MA=window.setTimeout(()=>{MA=-1,Qe(Ye,ve)},Np(gA)?gA(CA):gA)):(ht(),Np(d)&&d.call(this,be))};Np(a)?a.call(this,{error:be,retry:hi,reject:ve,retryFuncArgs:k,retriedCount:CA}):hi()}});return new Promise(Qe)}},zb=class M9{constructor(e){Y(this,"_parentPath"),Y(this,"userId"),Y(this,"remoteUserId"),Y(this,"id"),Y(this,"sdkAppId"),Y(this,"type"),Y(this,"isLocal"),this.id=e.id,this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.remoteUserId=e.remoteUserId,this.isLocal=!c2(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 M9({id:e.id,userId:Ad(e.userId)?this.userId:e.userId,sdkAppId:Ad(e.sdkAppId)?this.sdkAppId:e.sdkAppId,type:Ad(e.type)?this.type:e.type,isLocal:Ad(e.isLocal)?this.isLocal:e.isLocal,remoteUserId:Ad(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 a=this.isLocal?this.userId:this.remoteUserId,c=this.getFullId();o.unshift("[".concat(this.isLocal?"↑":"↓").concat(this.type&&this.type!=="main"?"*":"").concat(c).concat(a?"|".concat(a):"","]")),QA.log(e,o,Ad(this.userId)||function(d){if(d==null)return!0;if(typeof d=="boolean")return!1;if(typeof d=="number")return d===0;if(typeof d=="string"||typeof d=="function"||Array.isArray(d))return d.length===0;if(d instanceof Error)return d.message==="";if(l2(d))switch(Object.prototype.toString.call(d)){case"[object File]":case"[object Map]":case"[object Set]":return d.size===0;case"[object Object]":for(let C in d)if(g2.call(d,C))return!1;return!0}return!1}(this.userId),this.userId,this.sdkAppId)}info(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(2,o)}debug(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(1,o)}warn(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(3,o)}error(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(4,o)}},I2={};Hh(I2,{ANDROID_VERSION:()=>N0,CHROME_MAJOR_VERSION:()=>id,CHROME_VERSION:()=>Y0,EDGE_VERSION:()=>Xb,EDG_MAJOR_VERSION:()=>b0,EDG_VERSION:()=>$b,ELECTRON_MAJOR_VERSION:()=>Q2,FIREFOX_MAJOR_VERSION:()=>G0,FIREFOX_VERSION:()=>cM,HUAWEI_VERSION:()=>ck,IE_VERSION:()=>BK,IOS_MAIN_VERSION:()=>Zd,IOS_VERSION:()=>kI,IPADQQB_VERSION:()=>EM,IS_ANDROID:()=>Ha,IS_ANDROID_WEBVIEW:()=>uk,IS_ANY_SAFARI:()=>Fp,IS_CHROME:()=>x0,IS_CHROME_OS:()=>nk,IS_CHROMIUM_128_TO_143:()=>sy,IS_CHROMIUM_BASE:()=>cE,IS_DESKTOP_IOS_CHROME:()=>f2,IS_EDG:()=>Ay,IS_EDGE:()=>$f,IS_ELECTRON:()=>QK,IS_FIREFOX:()=>er,IS_HEADLESS_CHROME:()=>B2,IS_HONOR:()=>gk,IS_HUAWEI:()=>ak,IS_HUAWEIBROWSER:()=>zh,IS_IE:()=>C2,IS_IE8:()=>hK,IS_IOS:()=>eg,IS_IOS_13_OR_14:()=>m2,IS_IOS_15_1:()=>p2,IS_IOS_CHROME:()=>pM,IS_IPAD:()=>Gp,IS_IPADQQB:()=>F0,IS_IPAD_PRO:()=>T0,IS_IPHONE:()=>bp,IS_IPOD:()=>E2,IS_LINUX:()=>iy,IS_LOCAL:()=>Op,IS_MAC:()=>iQ,IS_MACQQB:()=>uM,IS_MIBROWSER:()=>O0,IS_MQQB:()=>IM,IS_NATIVE_ANDROID:()=>d2,IS_OLD_ANDROID:()=>CK,IS_OPENHARMONY:()=>oy,IS_OPPOBROWSER:()=>CM,IS_SAFARI:()=>Bg,IS_SAFARI_15_1:()=>pK,IS_SAMSUNGBROWSER:()=>dM,IS_SOGOU:()=>L0,IS_SOGOUM:()=>lM,IS_TBS:()=>td,IS_UCBROWSER:()=>rk,IS_VIVOBROWSER:()=>hM,IS_WECHAT:()=>tQ,IS_WIN:()=>ty,IS_WQQB:()=>U0,IS_WX:()=>h2,IS_X5MQQB:()=>Lp,IS_XWEB:()=>kp,MACQQB_VERSION:()=>sk,MI_VERSION:()=>Up,MQQB_VERSION:()=>ey,OPENHARMONY_VERSION:()=>P0,OPPO_VERSION:()=>Ik,SAFARI_VERSION:()=>oQ,SAMSUNG_VERSION:()=>lk,SOGOUM_VERSION:()=>k0,SOGOU_VERSION:()=>Ak,TBS_VERSION:()=>ek,UA_DATA_STRING:()=>UC,USER_AGENT:()=>ed,VIVO_VERSION:()=>BM,WECHAT_VERSION:()=>ik,WQQB_VERSION:()=>ok,XWEB_VERSION:()=>tk,browserInfo:()=>nQ,getBrowserCoreNumber:()=>jl,getBrowserInfo:()=>dk,getChromeMajorVersion:()=>QM,getDeviceModel:()=>rQ,getDeviceModelFromUA:()=>Ck,getGPUInfo:()=>Pp,getOSName:()=>El,getOSNumber:()=>xp,getOSString:()=>Yp,getOSType:()=>Q,getTerminalType:()=>Cn,getUserAgentData:()=>mM,isAMDGPU:()=>ry,isAppleSiliconGPU:()=>mK,isLocalStorageEnabled:()=>sQ,isMobile:()=>V0,isNvidiaGPU:()=>y2,isRealIOS:()=>gM,isVersionLargerThan:()=>ny,isVersionSmallerThan:()=>Ek});var ed=typeof navigator>"u"?"":navigator.userAgent,Ts=A=>new RegExp(A,"i").test(ed),hg=A=>{if(Ts(A)){let e=new RegExp("".concat(A,"\\/([\\d.]+)")),o=ed.match(e);if(o&&o[1])return o[1]}return""},_0=A=>{if(Ts(A)){let e=new RegExp("".concat(A,"\\/(\\d+)")),o=ed.match(e);if(o&&o[1])return parseFloat(o[1])}return NaN},Zb=/AppleWebKit\/([\d.]+)/i.exec(ed),u2=Zb?parseFloat(Zb[1]):NaN,Gp=Ts("iPad"),T0=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ts("Macintosh"),bp=Ts("iPhone")&&!Gp,E2=Ts("iPod"),eg=bp||Gp||E2||T0,gM=()=>{try{return eg&&navigator.maxTouchPoints>1&&navigator.vendor.includes("Apple")}catch{return eg}},Ha=Ts("Android"),N0=function(){if(Ha){let A=ed.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}(),CK=Ha&&Ts("webkit")&&N0<2.3,d2=Ha&&N0<5&&u2<537,er=Ts("Firefox"),cM=hg("Firefox"),G0=_0("Firefox"),$f=Ts("Edge"),Xb=hg("Edge"),Ay=Ts("Edg"),$b=hg("Edg"),b0=_0("Edg"),lM=Ts("SogouMobileBrowser"),k0=hg("SogouMobileBrowser"),L0=Ts("MetaSr\\s"),Ak=hg("MetaSr\\s"),td=Ts("TBS"),ek=hg("TBS"),kp=Ts("XWEB"),tk=hg("XWEB"),hK=Ts("MSIE\\s8\\.0"),C2=Ts("MSIE\\/\\d+"),BK=function(){if(C2){let A=/MSIE\s(\d+)\.\d/.exec(ed),e=A&&parseFloat(A[1]);return!e&&/Trident\/7.0/i.test(ed)&&/rv:11.0/.test(ed)&&(e=11),e}return NaN}(),tQ=Ts("(micromessenger|webbrowser)"),ik=hg("MicroMessenger"),Lp=!td&&Ts("MQQBrowser")&&Ts("COVC"),IM=!td&&Ts("MQQBrowser")&&!Ts("COVC"),ey=IM||Lp?hg("MQQBrowser"):"",U0=!td&&Ts(" QQBrowser"),ok=hg(" QQBrowser"),uM=!td&&Ts("QQBrowserLite"),sk=hg("QQBrowserLite"),F0=!td&&Ts("MQBHD"),EM=hg("MQBHD"),ty=Ts("Windows"),iQ=!eg&&Ts("MAC OS X"),iy=!Ha&&Ts("Linux"),nk=Ts("CrOS"),h2=Ts("MicroMessenger"),rk=Ts("UCBrowser"),QK=Ts("Electron"),O0=Ts("MiuiBrowser"),Up=hg("MiuiBrowser"),zh=Ts("HuaweiBrowser"),ak=Ts("Huawei")||Ts("HUAWEI"),gk=Ts("Honor")||Ts("HONOR"),ck=hg("HuaweiBrowser"),dM=Ts("SamsungBrowser"),lk=hg("SamsungBrowser"),CM=Ts("HeyTapBrowser"),Ik=hg("HeyTapBrowser"),hM=Ts("VivoBrowser"),BM=hg("VivoBrowser"),oy=Ts("OpenHarmony"),P0=hg("OpenHarmony"),QM=()=>_0("Chrome"),pM=Ts("CriOS"),cE=Ts("Chrome"),x0=!$f&&!L0&&!lM&&!td&&!kp&&!Ay&&!U0&&!O0&&!zh&&!dM&&!CM&&!hM&&cE,B2=Ts("HeadlessChrome"),id=QM(),sy=cE&&id>=128&&id<=143,Y0=hg("Chrome"),Q2=_0("Electron"),Bg=!cE&&!IM&&!Lp&&!uM&&!F0&&Ts("Safari"),Fp=Bg||eg,oQ=hg("Version"),uk=/Android.*(wv|.0.0.0)/.test(ed),kI=(()=>{if(T0)return oQ;if(eg){let A=ed.match(/OS (\d+)_(\d+)/i);if(A&&A[1]){let e=A[1];return A[2]&&(e+=".".concat(A[2])),e}}return""})();function Ek(A,e){let o=A.split(".").map(c=>Number(c)),a=e.split(".").map(c=>Number(c));for(let c=0;c<Math.max(o.length,a.length);c++){let d=o[c]||0,C=a[c]||0;if(d<C)return!0;if(d>C)return!1}return!1}function ny(A,e){let o=arguments.length>2&&arguments[2]!==void 0&&arguments[2],a=A.split(".").map(d=>Number(d)),c=e.split(".").map(d=>Number(d));for(let d=0;d<Math.max(a.length,c.length);d++){let C=a[d]||0,y=c[d]||0;if(C>y)return!0;if(C<y)return!1}return o}var Zd=Number(kI.split(".")[0]),pK=oQ==="15.1",p2=kI==="15.1",m2=(()=>{let A=Number(kI.split(".")[0]);return A===14||A===13})(),f2=pM&&oQ==="11.1.1",Op=typeof location<"u"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),sQ=(()=>{let A;return()=>{if(A===void 0)try{A=!!window.localStorage}catch{A=!1}return A}})(),nQ=dk();function dk(){let A=new Map([[er,["Firefox",cM]],[Ay,["Edg",$b]],[x0,["Chrome",Y0]],[pM,["ChiOS",hg("CriOS")]],[Bg&&!pM,["Safari",oQ]],[td,["TBS",ek]],[kp,["XWEB",tk]],[tQ&&bp,["WeChat",ik]],[U0,["QQ(Win)",ok]],[IM,["QQ(Mobile)",ey]],[Lp,["QQ(Mobile X5)",ey]],[uM,["QQ(Mac)",sk]],[F0,["QQ(iPad)",EM]],[O0,["MI",Up]],[zh,["HW",ck]],[dM,["Samsung",lk]],[CM,["OPPO",Ik]],[hM,["VIVO",BM]],[$f,["EDGE",Xb]],[lM,["SogouMobile",k0]],[L0,["Sogou",Ak]]]),e="unknown",o="unknown";return A.has(!0)&&([e,o]=A.get(!0)),{name:e,version:o}}var Pr=null;function V0(){return Pr&&typeof Pr.mobile=="boolean"?Pr.mobile:Ha||eg||bp||Gp||oy}var UC="";function mM(){return KA(this,null,function*(){if(Pr)return Pr;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return(Pr=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]))&&!UC&&(UC="UAData: ".concat(Pr.platform,"/").concat(Pr.platformVersion),Pr.architecture&&Pr.bitness&&(UC+=" ".concat(Pr.architecture,"/").concat(Pr.bitness)),Pr.mobile&&(UC+=" mobile"),Pr.model&&(UC+=" model: ".concat(Pr.model.replace(/\s+/g,"/"))),Pr.fullVersionList&&(UC+=" ".concat(Pr.fullVersionList.filter(A=>A.brand!=="Not/A)Brand").map(A=>"".concat(A.brand,"/").concat(A.version)).join(",")))),Pr}catch{return null}})}var fM="";function Pp(){try{if(fM)return fM;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 a=e.getParameter(o.UNMASKED_VENDOR_WEBGL),c=e.getParameter(o.UNMASKED_RENDERER_WEBGL);return fM="".concat(a," ").concat(c)}return""}catch{return""}}function ry(){try{let A=Pp();return A.includes("AMD")||A.includes("ATI")}catch{return!1}}function y2(){try{let A=Pp();return A.includes("NVIDIA")||A.includes("GeForce")}catch{return!1}}function mK(){try{return Pp().includes("Apple M")}catch{return!1}}function rQ(){return Pr?.model||Ck()||""}function Ck(){let A=ed.match(/;\s*([^;)]+)\s+Build\//);return A!=null&&A[1]?A[1].trim():null}var D2=new Map([[Ha,"Android"],[eg,"iOS"],[ty,"Windows"],[iQ,"MacOS"],[iy,"Linux"],[nk,"ChromeOS"]]),El=function(){return D2.get(!0)?D2.get(!0):Pr?Pr.platform:"unknown"};function xp(){return ty?1:Ha?2:iQ?3:eg?4:iy?5:nk?6:oy?7:0}function jl(){return tQ||kp?4:cE?1:Bg?2:er?3:0}var Yp=()=>{let A=El();return Pr!=null&&Pr.platformVersion?A+="/".concat(Pr.platformVersion):eg?A+="/".concat(kI):Ha&&(A+="/".concat(N0)),A+="/".concat(nQ.name,"/").concat(Bg&&!pM?nQ.version:nQ.version.split(".")[0]),Pr!=null&&Pr.architecture&&(A+="/".concat(Pr.architecture)),A};function Cn(){return Ha?4:bp?2:Gp?3:iQ?12:ty?5:iy?13:oy?22:1}function Q(){return Ha?"Android":bp?"iPhone":Gp?"iPad":iQ?"Mac":ty?"Windows":iy?"Linux":"unknown"}var R,F=new(gc(Kl(),1)).default,eA=((R=eA||{}).ROOM_DESTROY="1",R.JOIN_START="21",R.JOIN_SCHEDULE_SUCCESS="22",R.JOIN_SIGNAL_CONNECTION_START="23",R.JOIN_SIGNAL_CONNECTION_END="24",R.JOIN_SEND_CMD="25",R.JOIN_RECEIVED_CMD_RES="26",R.JOIN_SUCCESS="27",R.JOIN_FAILED="28",R.LEAVE_START="51",R.LEAVE_SEND_CMD="52",R.LEAVE_SUCCESS="53",R.PUBLISH_START="61",R.SEND_FIRST_VIDEO_FRAME="62",R.PUBLISH_FAILED="63",R.SUBSCRIBE_START="81",R.SUBSCRIBE_SUCCESS="82",R.SUBSCRIBE_FAILED="84",R.UNSUBSCRIBE_SUCCESS="83",R.LOCAL_TRACK_CAPTURE_START="101",R.LOCAL_TRACK_CAPTURE_SUCCESS="102",R.LOCAL_TRACK_CAPTURE_FAILED="103",R.LOCAL_TRACK_PUBLISHED="104",R.LOCAL_TRACK_UNPUBLISHED="105",R.LOCAL_TRACK_REPLACED="106",R.SWITCH_DEVICE_SUCCESS="107",R.TRACK_MUTED="108",R.TRACK_UNMUTED="109",R.REMOTE_TRACK_SUBSCRIBED="110",R.REMOTE_TRACK_UNSUBSCRIBED="111",R.LOCAL_TRACK_RECAPTURE="112",R.LOCAL_AUDIO_STARTED="113",R.LOCAL_AUDIO_STOPPED="114",R.REMOTE_AUDIO_STARTED="115",R.REMOTE_AUDIO_STOPPED="116",R.LOCAL_TRACK_STOPPED="117",R.LOCAL_VIDEO_TRACK_PREPROCESSED="118",R.PLAY_TRACK_START="151",R.PLAYER_STATE_CHANGED="152",R.VIDEO_LOADED_DATA="153",R.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",R.AUDIO_CONTEXT_LONG_SUSPENDED="155",R.REMOTE_VIDEO_PLAY_START="156",R.REMOTE_VIDEO_PLAY_FINISH="157",R.SIGNAL_CONNECTION_STATE_CHANGED="201",R.PEER_CONNECTION_STATE_CHANGED="202",R.SINGLE_CONNECTION_STAT="203",R.SPC_RECONNECTED="204",R.HEARTBEAT_REPORT="251",R.RECEIVED_PUBLISHED_USER_LIST="252",R.REMOTE_PUBLISH_STATE_CHANGED="253",R.AUDIO_LEVEL_INTERVAL="260",R.NETWORK_QUALITY="261",R.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",R.QUALITY_LIMITATION_CHANGED="263",R.LOG="264",R.AUDIO_PROCESSOR_DEBUG="265",R.SSO_SWITCH="266",R.SEI_MESSAGE="267",R.USER_PAUSE_IN_PIP="268",R.USER_RESUME_IN_PIP="269",R.ENTER_PICTURE_IN_PICTURE="270",R.LEAVE_PICTURE_IN_PICTURE="271",R.SWITCH_ROOM_START="401",R.SWITCH_ROOM_SUCCESS="407",R.SWITCH_ROOM_FAILED="408",R),sA=eA,_A=new class{constructor(){Y(this,"enable",!1),Y(this,"ssoFailCount",0),F.on("22",A=>{let{schedule:e}=A;var o;(o=e?.config)!=null&&o.sso&&F.emit("266",{enable:!0})}),F.on("266",A=>{let{enable:e}=A;this.enable=e})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&F.emit("266",{enable:!1})}},ZA=class v9{constructor(){Y(this,"_isEnableUploadLog",!0),Y(this,"_localJoinedUser",new Map),Y(this,"_queue",[]),Y(this,"_timeoutId",-1),Y(this,"_logLevel",1),Y(this,"_logLevelToUpload",2),!A0&&!e0&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){F.on(sA.JOIN_SCHEDULE_SUCCESS,e=>{let{schedule:o}=e;var a;(a=o?.config)!=null&&a.logLevelToUpload&&WB[o.config.logLevelToUpload]&&(this._logLevelToUpload=o.config.logLevelToUpload)}),F.on(sA.JOIN_START,e=>{let{params:o}=e;this.addJoinedUser({userId:o.userId,sdkAppId:o.sdkAppId}),this.startUpload()}),F.on(sA.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 a=this._queue[o];if(a.forAllJoinedClients)this._localJoinedUser.forEach(c=>{let{userId:d,sdkAppId:C}=c;e.map.has(d)?e.map.get(d).logs.push(a):e.map.set(d,{userId:d,sdkAppId:C,logs:[a]})});else if(Yn(a.userId)&&bn(a.sdkAppId)){let{userId:c,sdkAppId:d}=a;e.map.has(c)?e.map.get(c).logs.push(a):e.map.set(c,{userId:c,sdkAppId:d,logs:[a]})}}return e.map.size>0&&(e.splicedQueue=this._queue.splice(0,o)),e}upload(){return KA(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 c=[...e.values()];for(let d=0;d<c.length;d++){let{userId:C,sdkAppId:y,logs:S}=c[d],k={timestamp:vx(),sdkAppId:String(y),userId:C,version:qd,log:S.map(gA=>gA.log).join(`
|
||
`)},V=JSON.stringify(k),J=_A.enable?AQ(k,2002,y):V;yield this.uploadLogWithRetry(J,y,J instanceof Uint8Array,V),S.forEach(gA=>gA.uploaded=!0)}}catch{}let a=o.filter(c=>!c.uploaded);a.length>0&&(this._queue=a.concat(this._queue))})}uploadLogWithRetry(e,o,a,c){return aM({retryFunction:()=>eQ({url:Hf(o,bI.LOG),body:e,timeout:5e3,priority:"low"}).then(d=>{a&&d.data!=="ok"&&(_A.handleUploadFailed(),this.uploadLogWithRetry(c,o,!1,c))}),settings:{retries:3,timeout:2e3},onError:d=>{let{retry:C}=d;C()}})()}getPrefix(e){let o=new Date;return o.setTime(Lf()),"[".concat(Bb(o),"] <").concat(WB[e],">")}getLogLevel(){return this._logLevel}setLogLevel(e){Je(WB[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(Yn(e))return e;try{return e instanceof Error?e.toString():JSON.stringify(e)}catch{return""}}addLogToQueue(e,o){let a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],c=arguments.length>3?arguments[3]:void 0,d=arguments.length>4?arguments[4]:void 0,C={log:o.reduce((y,S)=>"".concat(y," ").concat(this.logChunkToString(S)).trim(),""),level:e,userId:c,sdkAppId:d,forAllJoinedClients:a};F.emit(sA.LOG,{log:C}),this._isEnableUploadLog&&e>=this._logLevelToUpload&&this._queue.push(C)}log(e,o){let a=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2],c=arguments.length>3?arguments[3]:void 0,d=arguments.length>4?arguments[4]:void 0;var C;if(o.unshift(this.getPrefix(e)),this.addLogToQueue(e,o,a,c,d),e<this._logLevel)return;let y=((C=WB[e])==null?void 0:C.toLowerCase())||"info";v9.PRINT_LOG_TAG?console[y]("%cTRTC%c%s","padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;","display: inline",...o):console[y](...o)}debug(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(1,o)}info(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(2,o)}warn(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(3,o)}error(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];this.log(4,o)}createLogger(e){if(e.parent instanceof zb){let o=e,{parent:a}=o,c=mx(o,["parent"]),d=new zb(c);return d.bindParent(a),d}return new zb(e)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),o=e?Number(e):-1;WB[o]&&(this._logLevelToUpload=o)}getQueue(){return this._queue}};Y(ZA,"PRINT_LOG_TAG",!(eg||Ha||B2));var QA=new ZA,PA=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)})},jA=new class{constructor(){Y(this,"_prefix","TRTC"),Y(this,"_queue",new Map)}getRealKey(A){return"".concat(this._prefix,"_").concat(A)}checkStorage(){sQ()&&(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(sQ())try{for(let[A,e]of this._queue)localStorage.setItem(A,JSON.stringify(e))}catch(A){QA.warn(A)}}getItem(A){if(!sQ())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){QA.warn(e)}}setItem(A,e){if(sQ())try{let o={expiresIn:Date.now()+o0,value:e};this._queue.set(this.getRealKey(A),o)}catch(o){QA.warn(o)}}deleteItem(A){if(!sQ())return!1;try{return A=this.getRealKey(A),this._queue.delete(A),localStorage.removeItem(A),!0}catch(e){return QA.warn(e),!1}}clear(){if(sQ())try{localStorage.clear()}catch(A){QA.warn(A)}}},ie={};Hh(ie,{HTTPS_API:()=>Tk,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>b2,IS_GET_CAPABILITIES_SUPPORTED:()=>G2,IS_GET_SETTINGS_SUPPORTED:()=>Cy,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>Uk,IS_INSERTABLE_STREAM_SUPPORTED:()=>Kp,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>uQ,IS_RTC_RTP_SENDER_SUPPORTED:()=>FC,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>X0,IS_SEI_SUPPORTED:()=>Fk,IS_SPC_SUPPORTED:()=>NM,basis:()=>L2,capabilityCheck:()=>xk,checkSystemRequirementsInternal:()=>wk,decodeSupportStatus:()=>Rk,detectH264SupportedByFakeStreaming:()=>T2,detectVideoCodecCapabilities:()=>bM,detectVideoDecoderCapabilities:()=>Vk,detectVideoEncoderCapabilities:()=>Yk,encodeSupportStatus:()=>RM,getBrowserInfo:()=>MM,getDisplayResolution:()=>nd,getH264ProfileLevelIds:()=>O2,isAddTransceiverSupported:()=>Xd,isBrowserSupported:()=>Mk,isCanvasCaptureStreamAPISupported:()=>_M,isCanvasSmallStreamSupported:()=>Z0,isGetReceiversSupported:()=>dy,isGetSendersSupported:()=>LI,isGetTransceiversSupported:()=>IQ,isGetUserMediaSupported:()=>Nk,isMediaDevicesSupported:()=>vk,isMediaSessionSupported:()=>k2,isMediaStreamTrackGeneratorSupported:()=>DK,isMediaStreamTrackProcessorSupported:()=>vM,isReplaceTrackSupported:()=>N2,isRequestVideoFrameCallbackSupported:()=>jp,isSIMDSupported:()=>GM,isScaleResolutionDownBySupported:()=>bk,isScreenCaptureApiAvailable:()=>qp,isSelectedCandidatePair:()=>wM,isSetParametersSupported:()=>Lk,isSetSinkIdSupported:()=>MK,isSmallStreamSupported:()=>TM,isStopTransceiverSupported:()=>ia,isTRTCSupported:()=>SK,isUnifiedPlanDefault:()=>kk,isUsedInHttpProtocol:()=>Eu,isWebAudioSupported:()=>Gk,isWebCodecSupported:()=>$0,isWebCodecsSupported:()=>z0,isWebRTCSupported:()=>hy,isWebTransportSupported:()=>By});var Le={};Hh(Le,{AUDIO_LEVEL_SCALE:()=>od,AlphaStitchingType:()=>Iy,AudioCodecPipelineType:()=>lQ,AudioDecoderDowngradeState:()=>yM,AudioPlayerMode:()=>q0,AudioType:()=>S2,BASIC_TYPE:()=>mk,BannedReason:()=>Qg,CONNECTION_CLOSED_REASON:()=>Jt,CheckPermissionType:()=>cr,ClientEvent:()=>Xe,CodecType:()=>DM,ConnectionEvent:()=>xo,ConnectionState:()=>ay,DECODE_FAILED_ERROR_CODE:()=>SM,DenoiserMode:()=>Vp,DeviceType:()=>fk,FacingMode:()=>Bk,FrameWorkType:()=>eo,LeaveReason:()=>Qk,LocalTrackEvent:()=>So,MULTI_VIDEO_DATA_TYPE:()=>ly,MediaType:()=>J0,MediaTypeLabel:()=>fK,MonitorEventId:()=>dl,MutedFlag:()=>Zn,NetworkQualityValue:()=>lE,PlayerState:()=>uo,ReceiveMode:()=>Wl,RemoteStreamType:()=>cy,RemoteTrackEvent:()=>hn,RoomEvent:()=>Io,SMALL_MODE:()=>Hp,SceneNumber:()=>qa,StreamEvent:()=>Si,StreamType:()=>cQ,SubscribeMediaType:()=>pk,TIMER_TYPE:()=>j0,TRACK_ACTION:()=>hk,TRACK_KIND:()=>aQ,TrackEvent:()=>Yo,UserRole:()=>Fc,UserRoleNumber:()=>es,VideoCodec:()=>Cl,VideoCodecPipelineType:()=>Jp,VideoContentHint:()=>K0,VideoDecoderDowngradeState:()=>gy,VideoPlayerMode:()=>H0,VideoType:()=>gQ});var Ne,Be,lt,ai,et,qe,dA,Qt,$e,Vi,li,eo=(A=>(A[A.WEBRTC=30]="WEBRTC",A[A.WASM=37]="WASM",A))(eo||{}),xo=((li=xo||{}).TRACK_ADDED="track-added",li.TRACK_UPDATED="track-updated",li.TRACK_SUBSCRIBED="track-subscribed",li.STREAM_ADDED="stream-added",li.STREAM_REMOVED="stream-removed",li.STREAM_UPDATED="stream-updated",li.STREAM_PUBLISHED="stream-published",li.STREAM_SUBSCRIBED="stream-subscribed",li.STREAM_UNSUBSCRIBED="stream-unsubscribed",li.STATE_CHANGED="state-changed",li.ERROR="error",li.CONNECTION_STATE_CHANGED="connection-state-changed",li.FIREWALL_RESTRICTION="firewall-restriction",li.SEI_MESSAGE="sei-message",li.CLOSED="closed",li),Jt=(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))(Jt||{}),Xe=((Vi=Xe||{}).STREAM_ADDED="stream-added",Vi.STREAM_REMOVED="stream-removed",Vi.STREAM_UPDATED="stream-updated",Vi.STREAM_SUBSCRIBED="stream-subscribed",Vi.CONNECTION_STATE_CHANGED="connection-state-changed",Vi.PEER_JOIN="peer-join",Vi.PEER_LEAVE="peer-leave",Vi.MUTE_AUDIO="mute-audio",Vi.MUTE_VIDEO="mute-video",Vi.UNMUTE_AUDIO="unmute-audio",Vi.UNMUTE_VIDEO="unmute-video",Vi.CLIENT_BANNED="client-banned",Vi.NETWORK_QUALITY="network-quality",Vi.AUDIO_VOLUME="audio-volume",Vi.SEI_MESSAGE="sei-message",Vi.ERROR="error",Vi),Si=(($e=Si||{}).PLAYER_STATE_CHANGED="player-state-changed",$e.SCREEN_SHARING_STOPPED="screen-sharing-stopped",$e.CONNECTION_STATE_CHANGED="connection-state-changed",$e.DEVICE_AUTO_RECOVERED="device-auto-recovered",$e.ERROR="error",$e),So=((Qt=So||{}).DEVICE_AUTO_RECOVERED="1",Qt.DEVICE_RECOVER_FAILED="5",Qt.DEVICE_CHANGED="2",Qt.ERROR="3",Qt.PUBLISH_STATE_CHANGED="4",Qt.ENCODE_FAILED="6",Qt.TRACK_ENDED="7",Qt.RENDER="render",Qt),uo=(A=>(A.PAUSED="PAUSED",A.PLAYING="PLAYING",A.STOPPED="STOPPED",A))(uo||{}),Io=((dA=Io||{}).PEER_JOIN="peer-join",dA.PEER_LEAVE="peer-leave",dA.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",dA.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",dA.BANNED="banned",dA.NETWORK_QUALITY="network-quality",dA.AUDIO_VOLUME="audio-volume",dA.SEI_MESSAGE="sei-message",dA.ERROR="error",dA.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",dA.REMOTE_PUBLISHED="remote-published",dA.REMOTE_UNPUBLISHED="remote-unpublished",dA.FIREWALL_RESTRICTION="firewall-restriction",dA.HEARTBEAT_REPORT="heartbeat-report",dA.CUSTOM_MESSAGE="custom-message",dA.LAYER_DATA="layerData",dA.FIRST_VIDEO_FRAME="first-video-frame",dA.FIRST_FRAME_RENDER="first-frame-render",dA.DUMP="dump",dA.AUDIO_FRAME="audio-frame",dA.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",dA.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",dA.NTP_TIME_UPDATED="ntp-time-updated",dA.DATA_CHANNEL_MESSAGE="data-channel-message",dA.ASR_ROBOT_PEER_JOIN="asr-robot-peer-join",dA.ASR_ROBOT_PEER_LEAVE="asr-robot-peer-leave",dA),Yo=((qe=Yo||{}).PLAYER_STATE_CHANGED="player-state-changed",qe.MUTE="mute",qe.UNMUTE="unmute",qe.ERROR="error",qe.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",qe.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",qe.FIRST_VIDEO_FRAME="first-video-frame",qe.FIRST_FRAME_RENDER="first-frame-render",qe.VIDEO_SIZE_CHANGED="video-size-changed",qe),hn=(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))(hn||{}),Zn=((et=Zn||{})[et.VIDEO=1]="VIDEO",et[et.SMALL=2]="SMALL",et[et.AUX=4]="AUX",et[et.AUDIO=8]="AUDIO",et[et.VIDEO_MUTE=16]="VIDEO_MUTE",et[et.AUX_MUTE=32]="AUX_MUTE",et[et.AUDIO_MUTE=64]="AUDIO_MUTE",et),qa=(A=>(A[A.RTC=1]="RTC",A[A.LIVE=2]="LIVE",A))(qa||{}),es=(A=>(A[A.ANCHOR=20]="ANCHOR",A[A.AUDIENCE=21]="AUDIENCE",A))(es||{}),Fc=(A=>(A.ANCHOR="anchor",A.AUDIENCE="audience",A))(Fc||{}),ay=(A=>(A.CONNECTED="CONNECTED",A.DISCONNECTED="DISCONNECTED",A.CONNECTING="CONNECTING",A.RECONNECTED="RECONNECTED",A.RECONNECTING="RECONNECTING",A))(ay||{}),yM=((ai=yM||{}).INITIALIZED="INITIALIZED",ai.STARTING="STARTING",ai.STARTED="STARTED",ai.FAILED="FAILED",ai),gy=(A=>(A.INITIALIZED="INITIALIZED",A.STARTING="STARTING",A.STARTED="STARTED",A.FAILED="FAILED",A))(gy||{}),aQ=(A=>(A.AUDIO="audio",A.VIDEO="video",A.AUXILIARY="auxVideo",A))(aQ||{}),hk=(A=>(A.ADD="add",A.REMOVE="remove",A))(hk||{}),J0=(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))(J0||{}),fK={1:"audio",2:"auxVideo",4:"video"},S2=((lt=S2||{})[lt.opus=111]="opus",lt),gQ=(A=>(A[A.h264=100]="h264",A[A.vp8=101]="vp8",A))(gQ||{}),cQ=(A=>(A.Big="big",A.Small="small",A))(cQ||{}),cy=(A=>(A.Main="main",A.Aux="auxiliary",A))(cy||{}),ly=(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))(ly||{}),dl=((Be=dl||{})[Be.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",Be[Be.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",Be[Be.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",Be[Be.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",Be[Be.MUTE_AUDIO=32772]="MUTE_AUDIO",Be[Be.MUTE_VIDEO=32773]="MUTE_VIDEO",Be[Be.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",Be[Be.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",Be[Be.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",Be[Be.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",Be[Be.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",Be[Be.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",Be[Be.SWITCH_CAMERA=32780]="SWITCH_CAMERA",Be[Be.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",Be[Be.REPLACE_VIDEO=32782]="REPLACE_VIDEO",Be[Be.REPLACE_AUDIO=32783]="REPLACE_AUDIO",Be[Be.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",Be[Be.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",Be[Be.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",Be[Be.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",Be[Be.JOIN=32788]="JOIN",Be[Be.LEAVE=32789]="LEAVE",Be[Be.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",Be[Be.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",Be[Be.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",Be[Be.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",Be[Be.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",Be[Be.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",Be[Be.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",Be[Be.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",Be[Be.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",Be[Be.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",Be[Be.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",Be[Be.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",Be[Be.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",Be[Be.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",Be[Be.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",Be[Be.PUBLISH_AUX=32805]="PUBLISH_AUX",Be[Be.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",Be[Be.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",Be[Be.VIDEO_ENCODER=4004]="VIDEO_ENCODER",Be[Be.VIDEO_DECODER=4005]="VIDEO_DECODER",Be),lE=(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))(lE||{}),Wl=(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))(Wl||{}),Bk=(A=>(A.user="user",A.environment="environment",A))(Bk||{}),H0=(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))(H0||{}),q0=(A=>(A[A.ELEMENT=0]="ELEMENT",A[A.CONTEXT=1]="CONTEXT",A))(q0||{}),Qg=(A=>(A.BANNED="banned",A.KICK="kick",A.USER_TIME_OUT="user_time_out",A.ROOM_DISBAND="room_disband",A))(Qg||{}),Qk=(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))(Qk||{}),od=1e8,Vp=(A=>(A[A.NORMAL=0]="NORMAL",A[A.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",A))(Vp||{}),pk=class{constructor(){Y(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)}},mk=(A=>(A.String="string",A.Number="number",A.Boolean="boolean",A.Array="array",A.Object="object",A))(mk||{}),Cl=(A=>(A.H264="h264",A.H265="h265",A.VP8="vp8",A.VP9="vp9",A.AV1="av1",A))(Cl||{}),Jp=(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))(Jp||{}),lQ=(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))(lQ||{}),DM=(A=>(A.WebRTC="webrtc",A.WebCodecs="webcodecs",A.WebAssembly="webassembly",A))(DM||{}),SM=((Ne=SM||{})[Ne.SUCCESS=0]="SUCCESS",Ne[Ne.FAILED=1]="FAILED",Ne[Ne.WEBCODEC_INIT=2]="WEBCODEC_INIT",Ne[Ne.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",Ne[Ne.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",Ne[Ne.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",Ne[Ne.WASM_INIT=6]="WASM_INIT",Ne[Ne.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",Ne[Ne.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",Ne[Ne.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",Ne[Ne.TEST=10]="TEST",Ne[Ne.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",Ne),K0=(A=>(A.NONE="",A.DETAIL="detail",A.MOTION="motion",A.TEXT="text",A))(K0||{}),j0=(A=>(A.INTERVAL="interval",A.TIMEOUT="timeout",A.RAF="raf",A.RIC="ric",A.INTERVAL_IN_WORKER="intervalInWorker",A))(j0||{}),Hp=(A=>(A.CANVAS="canvas",A.API="api",A))(Hp||{}),cr=(A=>(A[A.NONE=0]="NONE",A[A.MICROPHONE=1]="MICROPHONE",A[A.CAMERA=2]="CAMERA",A[A.BOTH=3]="BOTH",A))(cr||{}),fk=(A=>(A.CAMERA="camera",A.MICROPHONE="microphone",A))(fk||{}),Iy=(A=>(A[A.none=0]="none",A[A.horizontal=1]="horizontal",A[A.vertical=2]="vertical",A))(Iy||{}),Mo={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"},cc={AVOID_REPEATED_CALL:A=>"previous ".concat(A.name,"() is ongoing, please avoid repeated calls."),INVALID_PARAMETER_REQUIRED(A){let{key:e,rule:o,fnName:a,value:c}=A;return"'".concat(e||o.name,"' is a required param when calling ").concat(a,"(), received: ").concat(c,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:o,fnName:a,value:c}=A,d="".concat(e||o.name),C="";return C=Array.isArray(o.type)?o.type.join("|"):o.type,"'".concat(d,"' must be type of ").concat(C," when calling ").concat(a,"(), received type: ").concat(Cg(c),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:o,fnName:a,value:c}=A;return"'".concat(e||o.name,"' cannot be '").concat(c,"' when calling ").concat(a,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:o,fnName:a,value:c}=A,d="".concat(e||o.name),C="".concat(o.instanceOf.name||o.instanceOf);return"'".concat(d,"' must be instanceof ").concat(C," when calling ").concat(a,"(), received type: ").concat(Cg(c),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:o,fnName:a,value:c}=A;return"'".concat(e||o.name,"' must be one of ").concat(o.values.join("|")," when calling ").concat(a,"(), received: ").concat(c,".")},INVALID_PARAMETER_MIN(A){let{key:e,rule:o,fnName:a,value:c}=A;return"the min value of ".concat(e||o.name," is ").concat(o.min,", received: ").concat(c,".")},INVALID_PARAMETER_MAX(A){let{key:e,rule:o,fnName:a,value:c}=A;return"the max value of ".concat(e||o.name," is ").concat(o.max,", received: ").concat(c,".")},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:a}=A;return"failed to subscribe ".concat(o," ").concat(a," 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:a,value:c}=A;return"'".concat(e||o.name,"' cannot be less than 0 when calling ").concat(a,"().")},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:a}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(o,"(), received: ").concat(a,".")},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:a,maxSizeInSecond:c}=A;return"api ".concat(o," call ").concat(e?"size":"times"," is over ").concat(e?"".concat(c," bytes"):a," 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,".")},M2=(A,e)=>e?"".concat(qh,"/").concat(A,"/").concat(e):"".concat(qh,"/").concat(A,"/index.html"),yk=()=>{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(VS);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,a=window.TRTC_ERROR_LINK;return document.body.removeChild(e),{TRTC_ERROR_INFO:o,TRTC_ERROR_LINK:a}}return{}};function Xo(A){let{key:e,data:o,link:a,addDocLink:c=!0}=A,d="",C="",y="";Ra(cc[e])?d=cc[e](o):Yn(cc[e])&&(d=cc[e]);let{TRTC_ERROR_INFO:S,TRTC_ERROR_LINK:k}=yk();a?y="".concat(a.className,".html#").concat(a.fnName):k&&k[e]&&(Ra(k[e])?y=k[e](o):Yn(k[e])&&(y=k[e]));let V=d;return Wd()&&(S&&S[e]&&(Ra(S[e])?C=S[e](o):Yn(S[e])&&(C=S[e])),C&&(V=c?"".concat(C,`
|
||
请查看文档: `).concat(M2("zh-cn",y),`
|
||
|
||
`):"".concat(C,`
|
||
|
||
`),V+=d)),c&&(V+=`
|
||
Refer to: `.concat(M2("en",y),`
|
||
`)),V}var Bs,Bn,Dk=gc(AK(),1),Sk=class{constructor(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];Y(this,"countMap",new Map),Y(this,"distributionMap",new Map),Y(this,"version"),Y(this,"log",QA.createLogger({id:"kv"})),A&&(F.on("102",e=>{let{track:o,cost:a}=e;this.addSuccessEvent({key:o.kind===YA.AUDIO?501700:511700,cost:a})}),F.on("103",e=>{let{track:o,error:a}=e;this.addFailedEvent({key:o.kind===YA.AUDIO?501700:511700,error:a})}),F.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:Vb(this.version||qd),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(a=>{let[c,d]=a;return{uint32_key:c,uint32_count:d}}),stats_distribution:[...this.distributionMap.entries()].map(a=>{let[c,d]=a;return{uint32_key:c,distribution_items:[...d.entries()].map(C=>{let[y,S]=C;return{uint32_item_key:y,uint32_item_value:S}})}}),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:a=!0}=A;var c;if(!this.isEnumKey(e))return this.log.debug("".concat(e," is not enum key, last 3 number should be 700~799"));if(a&&this.countMap.has(e))return;this.countMap.set(e,(this.countMap.get(e)||0)+1);let d=((c=this.distributionMap)==null?void 0:c.get(e))||new Map;d.set(o,(d.get(o)||0)+1),this.distributionMap.set(e,d)}addNumber(A){let{key:e,value:o,split:a=100,useUV:c=!1,max:d=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(c&&this.countMap.has(e))return;o>d&&(o=d),this.countMap.set(e,(this.countMap.get(e)||0)+1);let y=((C=this.distributionMap)==null?void 0:C.get(e))||new Map,S=0;if(bn(a))S=Math.floor(o/a);else for(let k=a.length-1;k>0;k--)if(o>a[k]){S=k;break}y.set(S,(y.get(S)||0)+1),this.distributionMap.set(e,y)}addSuccessEvent(A){let{key:e,cost:o,timeKey:a,split:c}=A;if(e&&(this.addEnum({key:e,value:1,useUV:!1}),o)){let d=+String(e).slice(-3);d<800&&d>=700?this.addNumber({key:a||e+100,value:o,split:c}):a||this.log.debug("time stat ignored, ".concat(e))}}addFailedEvent(A){let{key:e,error:o}=A;if(!e)return;let a=Et.UNKNOWN;o&&(bn(o)?a=o:(!Je(o.extraCode)||!Je(o.code))&&(a=o.extraCode||o.code)),this.addEnum({key:e,value:0,useUV:!1}),this.addEnum({key:e,value:Math.abs(a),useUV:!1})}},v2=((Bs=v2||{})[Bs.enterRoom=500700]="enterRoom",Bs[Bs.exitRoom=500701]="exitRoom",Bs[Bs.switchRole=500702]="switchRole",Bs[Bs.destroy=500703]="destroy",Bs[Bs.startLocalAudio=500704]="startLocalAudio",Bs[Bs.updateLocalAudio=500705]="updateLocalAudio",Bs[Bs.stopLocalAudio=500706]="stopLocalAudio",Bs[Bs.startLocalVideo=500707]="startLocalVideo",Bs[Bs.updateLocalVideo=500708]="updateLocalVideo",Bs[Bs.stopLocalVideo=500709]="stopLocalVideo",Bs[Bs.startScreenShare=500710]="startScreenShare",Bs[Bs.updateScreenShare=500711]="updateScreenShare",Bs[Bs.stopScreenShare=500712]="stopScreenShare",Bs[Bs.startRemoteVideo=500713]="startRemoteVideo",Bs[Bs.updateRemoteVideo=500714]="updateRemoteVideo",Bs[Bs.stopRemoteVideo=500715]="stopRemoteVideo",Bs[Bs.muteRemoteAudio=500716]="muteRemoteAudio",Bs[Bs.setRemoteAudioVolume=500717]="setRemoteAudioVolume",Bs[Bs.use=500718]="use",Bs[Bs.switchRoom=500719]="switchRoom",Bs[Bs.getPermissions=500720]="getPermissions",Bs[Bs.sendSEIMessage=5e5]="sendSEIMessage",Bs[Bs.sendCustomMessage=500001]="sendCustomMessage",Bs),R2=(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))(R2||{}),uy=(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))(uy||{}),W0=(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))(W0||{}),Ey=((Bn=Ey||{})[Bn.DECODER_TYPE=514700]="DECODER_TYPE",Bn[Bn.DECODER_HW_SW=514701]="DECODER_HW_SW",Bn[Bn.DECODE_RESULT=514702]="DECODE_RESULT",Bn[Bn.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",Bn[Bn.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",Bn[Bn.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",Bn[Bn.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",Bn[Bn.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",Bn[Bn.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",Bn[Bn.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",Bn[Bn.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",Bn[Bn.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",Bn[Bn.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",Bn[Bn.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",Bn[Bn.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",Bn[Bn.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",Bn[Bn.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",Bn[Bn.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",Bn[Bn.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",Bn),yK=new Sk(!0),Zh=new Sk(!1),ti=yK,Qs={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}},w2=new Map([[er,["Firefox",cM]],[Ay,["Edg",$b]],[x0,["Chrome",Y0]],[Bg,["Safari",oQ]],[td,["TBS",ek]],[kp,["XWEB",tk]],[tQ&&bp,["WeChat",ik]],[U0,["QQ(Win)",ok]],[IM,["QQ(Mobile)",ey]],[Lp,["QQ(Mobile X5)",ey]],[uM,["QQ(Mac)",sk]],[F0,["QQ(iPad)",EM]],[O0,["MI",Up]],[zh,["HW",ck]],[dM,["Samsung",lk]],[CM,["OPPO",Ik]],[hM,["VIVO",BM]],[$f,["EDGE",Xb]],[lM,["SogouMobile",k0]],[L0,["Sogou",Ak]]]);function MM(){let A=w2.get(!0);return{browserName:A?A[0]:"unknown",browserVersion:A?A[1]:"unknown"}}var Mk=function(){return!(rk||$f||Ay&&b0<80||er&&G0<56)},z0=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(A=>A in window)},vk=function(){if(!navigator.mediaDevices)return Eu()||QA.error(cc.NOT_SUPPORTED_MEDIA),!1;let A=["getUserMedia","enumerateDevices"];return A.filter(e=>e in navigator.mediaDevices).length===A.length},_2=!1;function Eu(){return location.protocol==="http:"&&!Op&&(_2||QA.error(Xo({key:Mo.NOT_SUPPORTED_HTTP})),_2=!0,!0)}var vM=function(){return window?.OffscreenCanvas&&window?.MediaStreamTrackProcessor&&window?.MediaStreamTrackGenerator},DK=function(){return!(window==null||!window.MediaStreamTrackGenerator)},RM=function(){return KA(this,null,function*(){var A,e,o;if(Qs.detail.isH264EncodeSupported&&Qs.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Qs.detail.isH264EncodeSupported,isVp8EncodeSupported:Qs.detail.isVp8EncodeSupported,isH265EncodeSupported:Qs.detail.isH265EncodeSupported};let a,c=!1,d=!1,C=!1;try{let y=new RTCPeerConnection,S=document.createElement(YA.CANVAS);S.getContext("2d");let k=S.captureStream(0);return y.addTrack(k.getVideoTracks()[0],k),a=yield y.createOffer(),c=((A=a.sdp)==null?void 0:A.toLowerCase().indexOf("h264"))!==-1,d=((e=a.sdp)==null?void 0:e.toLowerCase().indexOf("vp8"))!==-1,C=((o=a.sdp)==null?void 0:o.toLowerCase().indexOf("h265"))!==-1,y.close(),{isH264EncodeSupported:c,isVp8EncodeSupported:d,isH265EncodeSupported:C}}catch{return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},Rk=function(){return KA(this,null,function*(){var A;if(Qs.detail.isH264DecodeSupported&&Qs.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Qs.detail.isH264DecodeSupported,isVp8DecodeSupported:Qs.detail.isVp8DecodeSupported,isH265DecodeSupported:Qs.detail.isH265DecodeSupported};let e,o=!1,a=!1;try{let c=new RTCPeerConnection;Xd()?(c.addTransceiver(YA.VIDEO,{direction:"recvonly"}),e=yield c.createOffer()):e=yield c.createOffer({offerToReceiveVideo:!0}),e.sdp.toLowerCase().indexOf("h264")!==-1&&(o=!0),e.sdp.toLowerCase().indexOf("vp8")!==-1&&(a=!0);let d=((A=e.sdp)==null?void 0:A.toLowerCase().indexOf("h265"))!==-1;return c.close(),{isH264DecodeSupported:o,isVp8DecodeSupported:a,isH265DecodeSupported:d}}catch{return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})},wk=Jb(A=>KA(null,null,function*(){let e=Date.now(),o=hy(),a=vk(),c=z0();if(Qs.detail.isWebRTCSupported=o,Qs.detail.isMediaDevicesSupported=a,Qs.detail.isWebCodecsSupported=c,Qs.detail.isScreenShareSupported=qp(),Qs.detail.isSmallStreamSupported=TM(),A===37)return Object.assign(Qs.detail,yield function(){return KA(this,null,function*(){return sd||(sd=new Promise(MA=>KA(null,null,function*(){let Ae={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!z0())return void MA(Ae);let Qe=null,Ye=null,ve=null,yi=()=>{ve&&clearTimeout(ve),Qe=null,Ye=null};try{Qe=document.createElement("canvas"),Ye=Qe.getContext("2d"),Qe.width=320,Qe.height=240;let be=0,ht=()=>{!Ye||!Qe||(Ye.fillStyle="hsl(".concat(be%360,", 50%, 50%)"),Ye.fillRect(0,0,Qe.width,Qe.height),Ye.fillStyle="white",Ye.font="20px Arial",Ye.fillText("Frame ".concat(be),10,30),be++)};ve=setTimeout(()=>{yi(),MA(Ae)},5e3);let hi=[{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(hi.map(Di=>KA(null,null,function*(){let Vo,Jo={type:Di.type,encodeSupported:!1,decodeSupported:!1};try{Vo=yield new Promise((Qn,Ho)=>KA(null,null,function*(){try{let Ns=new VideoEncoder({output:ya=>{Qn(ya),Jo.encodeSupported=!0},error:Ho});Ns.configure(Di.encodeConfig),ht();let pg=new VideoFrame(Qe,{timestamp:0});Ns.encode(pg,{keyFrame:!0}),pg.close(),yield Ns.flush(),Ns.close()}catch(Ns){Ho(Ns)}}))}catch(Qn){return QA.warn("".concat(Di.type," encoder error:"),Qn),Jo}try{yield new Promise((Qn,Ho)=>KA(null,null,function*(){try{let Ns=new VideoDecoder({output:pg=>{Jo.decodeSupported=!0,Qn(0),pg.close()},error:Ho});Ns.configure(Di.decodeConfig),Ns.decode(Vo),yield Ns.flush(),Ns.close()}catch(Ns){Ho(Ns)}}))}catch(Qn){QA.warn("".concat(Di.type," decoder error:"),Qn)}return Jo})))).forEach(Di=>{Di.type==="h264"?(Ae.isH264EncodeSupported=Di.encodeSupported,Ae.isH264DecodeSupported=Di.decodeSupported):Di.type==="vp8"&&(Ae.isVp8EncodeSupported=Di.encodeSupported,Ae.isVp8DecodeSupported=Di.decodeSupported)}),yi(),MA(Ae)}catch(be){yi(),QA.warn("detectWebCodecsSupported failed:",be),MA(Ae)}})),sd)})}()),Qs.detail.isBrowserSupported=c,Qs.result=a&&c,Qs.result||QA.error("".concat(navigator.userAgent," ").concat(y0(Qs.detail,!1))),Pk(A),ti.addNumber({key:523800,value:Date.now()-e}),Qs;if(Qs.result&&Qs.detail.isH264EncodeSupported&&Qs.detail.isVp8EncodeSupported&&Qs.detail.isH265EncodeSupported&&Qs.detail.isH264DecodeSupported&&Qs.detail.isVp8DecodeSupported&&Qs.detail.isH265DecodeSupported)return Qs;let d=Mk(),{encode:C,decode:y}=yield function(){return KA(this,null,function*(){let[MA,Ae]=yield Promise.all([RM(),Rk()]);return{encode:{h264:MA.isH264EncodeSupported,vp8:MA.isVp8EncodeSupported,h265:MA.isH265EncodeSupported},decode:{h264:Ae.isH264DecodeSupported,vp8:Ae.isVp8DecodeSupported,h265:Ae.isH265DecodeSupported}}})}(),{h264:S,vp8:k}=C,{h264:V}=y,{h265:J}=C,{vp8:gA,h265:CA}=y;if(!S||!k){let MA=yield RM();QA.warn("detect encode again h264:".concat(S," vp8:").concat(k," result: ").concat(JSON.stringify(MA))),S=MA.isH264EncodeSupported,k=MA.isVp8EncodeSupported}if(S&&V&&Ha&&cE&&!kp&&!td&&(!CM||id!==115)){let{encode:MA,decode:Ae}=yield T2();S=MA,V=Ae}return Qs.result=d&&o&&a&&(S||k)&&(V||gA),Qs.detail.isBrowserSupported=d,Qs.detail.isWebRTCSupported=o,Qs.detail.isH264EncodeSupported=S,Qs.detail.isVp8EncodeSupported=k,Qs.detail.isH265EncodeSupported=J,Qs.detail.isH264DecodeSupported=V,Qs.detail.isVp8DecodeSupported=gA,Qs.detail.isH265DecodeSupported=CA,Qs.result||QA.error("".concat(navigator.userAgent," ").concat(y0(Qs.detail,!1))),Pk(),ti.addNumber({key:523800,value:Date.now()-e}),Qs})),SK=function(){return Qs.result},qp=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},MK=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype,_k=null;function T2(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:2e3;return KA(this,null,function*(){return _k||(_k=new Promise(e=>KA(null,null,function*(){let o={encode:!1,decode:!1},a=()=>{};try{let c=document.createElement("canvas"),d=c.getContext("2d");c.width=640,c.height=480;let C=setInterval(()=>{d.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},66),y=-1,S=-1;a=()=>{clearInterval(y),clearInterval(C),clearTimeout(S),V.close(),J.close(),k.getTracks().forEach(Qe=>Qe.stop())},S=setTimeout(()=>{a(),e(o)},A);let k=c.captureStream(),V=new RTCPeerConnection({}),J=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});V.addEventListener("icecandidate",Qe=>J.addIceCandidate(Qe.candidate)),J.addEventListener("icecandidate",Qe=>V.addIceCandidate(Qe.candidate)),V.addTrack(k.getVideoTracks()[0],k);let gA=yield V.createOffer();yield V.setLocalDescription(gA),yield J.setRemoteDescription(gA);let CA=yield J.createAnswer(),MA=Dk.default.parse(CA.sdp),Ae=MA.media[0].rtp.findIndex(Qe=>Qe.codec==="H264");MA.media[0].rtp=[MA.media[0].rtp[Ae]],MA.media[0].fmtp=MA.media[0].fmtp.filter(Qe=>Qe.payload===MA.media[0].rtp[0].payload),MA.media[0].rtcpFb&&(MA.media[0].rtcpFb=MA.media[0].rtcpFb.filter(Qe=>Qe.payload===MA.media[0].rtp[0].payload)),CA.sdp=Dk.default.write(MA),yield J.setLocalDescription(CA),yield V.setRemoteDescription(CA),y=setInterval(()=>KA(null,null,function*(){o.encode&&o.decode&&(a(),e(o));let[Qe,Ye]=yield Promise.all([V.getSenders()[0].getStats(),J.getReceivers()[0].getStats()]);o.encode||Qe.forEach(ve=>{ve.type==="outbound-rtp"&&(ve.mediaType===YA.VIDEO||ve.kind===YA.VIDEO)&&ve.bytesSent>0&&(o.encode=!0)}),o.decode||Ye.forEach(ve=>{ve.type==="inbound-rtp"&&(ve.mediaType===YA.VIDEO||ve.kind===YA.VIDEO)&&ve.bytesReceived>0&&(o.decode=!0)})}),100)}catch(c){a(),QA.warn("detectH264Supported failed",c),e({encode:!0,decode:!0})}})).then(e=>(e.encode||(e.decode=!0),(!e.encode||!e.decode)&&QA.warn("detectH264Supported encode: ".concat(e.encode," decode: ").concat(e.decode," ").concat(UC)),e)),_k)})}var sd=null,Tk=(A,e,o)=>{location.protocol==="http:"&&!Op&&(A[e]=()=>{throw new ri({code:Et.INVALID_OPERATION,message:cc.NOT_SUPPORTED_HTTP})})},wM=function(A){return!(A.type!=="candidate-pair"||!A.nominated||A.state!=="in-progress"&&A.state!=="succeeded")&&!(Tr(A.selected)&&!A.selected)};function nd(){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 Nk(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Gk(){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 _M(){return"captureStream"in HTMLCanvasElement.prototype}function Z0(){return!(tQ||eg||id&&id<63)&&!(!Mk()||!_M())}function bk(){return!(id<74||$f||Zd<11||G0<46)}function TM(){return Z0()||bk()}var kk=function(){if(Je(window.RTCRtpTransceiver)||!Xd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let A=null,e=!1;try{A=new RTCPeerConnection({sdpSemantics:WS}),A.addTransceiver(YA.AUDIO),e=!0}catch{}return A?.close(),e};function dy(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function LI(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function IQ(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Xd(){return!(Zd===11&&!f2)&&"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var NM=!(!Xd()||cE&&id<86);function ia(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var FC="RTCRtpSender"in window;function N2(){return FC&&"replaceTrack"in window.RTCRtpSender.prototype}function Lk(){return FC&&"setParameters"in window.RTCRtpSender.prototype&&LI()}var Uk="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Cy=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,G2=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,b2=typeof InputDeviceInfo<"u"&&"getCapabilities"in InputDeviceInfo.prototype,Kp=FC&&"createEncodedStreams"in window.RTCRtpSender.prototype&&QM()>=86,X0="RTCRtpScriptTransform"in window,Fk=FC&&(Kp||X0),hy=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(A=>A in window).length>0};function $0(){let A={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return Je(window.AudioDecoder)||(A.AudioDecoder=!0),Je(window.AudioEncoder)||(A.AudioEncoder=!0),Je(window.VideoDecoder)||(A.VideoDecoder=!0),Je(window.VideoEncoder)||(A.VideoEncoder=!0),Je(window.ImageDecoder)||(A.ImageDecoder=!0),A}function k2(){return"mediaSession"in navigator&&!Je(navigator.mediaSession.setActionHandler)}function By(){return!Je(window.WebTransport)}function GM(){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 L2(){let A={browser:"".concat(nQ.name,"/").concat(nQ.version),os:El(),displayResolution:nd(),isScreenShareSupported:qp(),isWebRTCSupported:hy(),isGetUserMediaSupported:Nk(),isWebAudioSupported:Gk(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:$0(),isMediaSessionSupported:k2(),isWebTransportSupported:By()};return navigator.userAgent.includes("miniProgram")&&(A.browser="mini/".concat(A.browser)),A}var Ok="checkResult";function Pk(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30;jA.setItem(Ok+A,{ua:navigator.userAgent,checkResult:Qs})}function xk(A){Eu();let e=jA.getItem(Ok+A);e&&e.ua===navigator.userAgent&&e.checkResult&&function(o,a){return!!$E(o)&&Object.keys(a).every(c=>c in o)}(e.checkResult.detail,Qs.detail)&&(Qs=e.checkResult),wk(A)}function jp(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var uQ="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function U2(A){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[A]}var F2=!1;function bM(){return KA(this,null,function*(){var A;try{if(F2||(A=navigator?.mediaCapabilities)==null||!A.encodingInfo)return;let e=xp(),o=jl();if(e===0||o===0)return;F2=!0;let a=["H264","VP8","VP9","AV1","H265"],[c,d]=yield Promise.all([Yk(a),Vk(a)]);c&&Object.keys(c).forEach(S=>{let k=U2(S.toLowerCase());ti.addEnum({key:513707,value:+"".concat(k).concat(+c[S].supported).concat(+c[S].powerEfficient).concat(e).concat(o),useUV:!1})}),d&&Object.keys(d).forEach(S=>{let k=U2(S.toLowerCase());ti.addEnum({key:514713,value:+"".concat(k).concat(+d[S].supported).concat(+d[S].powerEfficient).concat(e).concat(o),useUV:!1})});let{sender:C,receiver:y}=O2();ti.addEnum({key:513708,value:+"".concat(e).concat(o).concat(+C.high),useUV:!1}),ti.addEnum({key:513709,value:+"".concat(e).concat(o).concat(+C.main),useUV:!1}),ti.addEnum({key:514714,value:+"".concat(e).concat(o).concat(+y.high),useUV:!1}),ti.addEnum({key:514715,value:+"".concat(e).concat(o).concat(+y.main),useUV:!1})}catch(e){QA.info("detectVideoCodecCapabilities failed",e)}})}function Yk(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return KA(this,null,function*(){let d={};try{for(let C of A){let y=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:"video/".concat(C),width:e,height:o,bitrate:c,framerate:a}});d[C]=y}}catch{}return d})}function Vk(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1920,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1080,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:30,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:3e3;return KA(this,null,function*(){let d={};try{for(let C of A){let y=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:"video/".concat(C),width:e,height:o,bitrate:c,framerate:a}});d[C]=y}}catch{}return d})}function O2(){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 a=o.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(a&&a[1])switch(a[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 a=o.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(a&&a[1])switch(a[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){QA.warn("get H264 profile levelId failed",e)}return A}var vK=gc(Kl(),1),kM=Symbol("instance"),LM=Symbol("cacheResult"),OC=class{constructor(A,e,o){this.oldState=A,this.newState=e,this.action=o,this.aborted=!1}abort(A){this.aborted=!0,Wp.call(A,this.oldState,new Error("action '".concat(this.action,"' aborted")))}toString(){return"".concat(this.action,"ing")}},A_=class extends Error{constructor(A,e,o){super(e),this.state=A,this.message=e,this.cause=o}},UM=new Map;function lc(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return(a,c,d)=>{let C=o.action||c;if(!o.context){let S=UM.get(a)||[];UM.has(a)||UM.set(a,S),S.push({from:A,to:e,action:C})}let y=d.value;d.value=function(){let S=this;for(var k=arguments.length,V=new Array(k),J=0;J<k;J++)V[J]=arguments[J];if(o.context&&(S=Zs.get(typeof o.context=="function"?o.context.call(this,...V):o.context)),S.state===e)return o.sync?S[LM]:Promise.resolve(S[LM]);S.state instanceof OC&&S.state.action==o.abortAction&&S.state.abort(S);let gA=null;Array.isArray(A)?A.length==0?S.state instanceof OC&&S.state.abort(S):(typeof S.state!="string"||!A.includes(S.state))&&(gA=new A_(S._state,"".concat(S.name," ").concat(C," to ").concat(e," failed: current state ").concat(S._state," not from ").concat(A.join("|")))):A!==S.state&&(gA=new A_(S._state,"".concat(S.name," ").concat(C," to ").concat(e," failed: current state ").concat(S._state," not from ").concat(A)));let CA=ve=>{if(o.fail&&o.fail.call(this,ve),o.sync){if(o.ignoreError)return ve;throw ve}return o.ignoreError?Promise.resolve(ve):Promise.reject(ve)};if(gA)return CA(gA);let MA=S.state,Ae=new OC(MA,e,C);Wp.call(S,Ae);let Qe=ve=>{var yi;return S[LM]=ve,Ae.aborted||(Wp.call(S,e),(yi=o.success)===null||yi===void 0||yi.call(this,S[LM])),ve},Ye=ve=>(Wp.call(S,MA,ve),CA(ve));try{let ve=y.apply(this,V);return function(yi){return typeof yi=="object"&&yi&&"then"in yi}(ve)?ve.then(Qe).catch(Ye):o.sync?Qe(ve):Promise.resolve(Qe(ve))}catch(ve){return Ye(new A_(S._state,"".concat(S.name," ").concat(C," from ").concat(A," to ").concat(e," failed: ").concat(ve),ve instanceof Error?ve:new Error(String(ve))))}}}}var e_=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 Wp(A,e){let o=this._state;this._state=A;let a=A.toString();A&&this.emit(a,o),this.emit(Zs.STATECHANGED,A,o,e),this.updateDevTools({value:A,old:o,err:e instanceof Error?e.message:String(e)})}var Zs=class KC extends vK.default{constructor(e,o,a){super(),this.name=e,this.groupName=o,this._state=KC.INIT,e||(e=Date.now().toString(36)),a?Object.setPrototypeOf(this,a):a=Object.getPrototypeOf(this),o||(this.groupName=this.constructor.name);let c=a[kM];c?this.name=c.name+"-"+c.count++:a[kM]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let e=Object.getPrototypeOf(this),o=UM.get(e)||[],a=new Set,c=[],d=[],C=new Set,y=Object.getPrototypeOf(e);UM.has(y)&&(y.stateDiagram.forEach(k=>a.add(k)),y.allStates.forEach(k=>C.add(k))),o.forEach(k=>{let{from:V,to:J,action:gA}=k;typeof V=="string"?c.push({from:V,to:J,action:gA}):V.length?V.forEach(CA=>{c.push({from:CA,to:J,action:gA})}):d.push({to:J,action:gA})}),c.forEach(k=>{let{from:V,to:J,action:gA}=k;C.add(V),C.add(J),C.add(gA+"ing"),a.add("".concat(V," --> ").concat(gA,"ing : ").concat(gA)),a.add("".concat(gA,"ing --> ").concat(J," : ").concat(gA," 🟢")),a.add("".concat(gA,"ing --> ").concat(V," : ").concat(gA," 🔴"))}),d.forEach(k=>{let{to:V,action:J}=k;a.add("".concat(J,"ing --> ").concat(V," : ").concat(J," 🟢")),C.forEach(gA=>{gA!==V&&a.add("".concat(gA," --> ").concat(J,"ing : ").concat(J))})});let S=[...a];return Object.defineProperties(e,{stateDiagram:{value:S},allStates:{value:C}}),S}static get(e){let o;return typeof e=="string"?(o=KC.instances.get(e),o||KC.instances.set(e,o=new KC(e,void 0,Object.create(KC.prototype)))):(o=KC.instances2.get(e),o||KC.instances2.set(e,o=new KC(e.constructor.name,void 0,Object.create(KC.prototype)))),o}static getState(e){var o;return(o=KC.get(e))===null||o===void 0?void 0:o.state}updateDevTools(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e_(KC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},e))}get state(){return this._state}set state(e){Wp.call(this,e)}};Zs.STATECHANGED="stateChanged",Zs.UPDATEAFSM="updateAFSM",Zs.INIT="[*]",Zs.ON="on",Zs.OFF="off",Zs.instances=new Map,Zs.instances2=new WeakMap;var t_=typeof window<"u",Jk=t_&&window.requestIdleCallback||function(A){let e=Date.now();return setTimeout(()=>{A({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-e))})},1e3)},hl=t_&&window.cancelIdleCallback||function(A){clearTimeout(A)},zp=t_&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),Qy=class EE{static generateTaskID(){return this.currentTaskID++}static run(e,o,a){a!=null&&a.fps&&(a.delay=a.delay||Number((1e3/a.fps).toFixed(2))),a=mi(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},a);let c=Qo(mi({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:e,callback:o},a),{delay:a.delay});return this.taskMap.set(c.taskID,c),this[e](c),c.taskID}static interval(e){return e.intervalID=setInterval(()=>{e.callback(),e.loopCount+=1,EE.isBreakLoop(e)},e.delay)}static intervalInWorker(e){EE.sharedWorker||(EE.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"}))),EE.sharedWorker.onmessage=o=>{var a;if(o.data.type==="tick"){let c=EE.workerTasks.get(o.data.taskId);c&&(EE.isBreakLoop(c)?((a=EE.sharedWorker)==null||a.postMessage({type:"stop",taskId:c.taskID}),EE.workerTasks.delete(c.taskID)):(c.callback(),c.loopCount+=1))}}),EE.workerTasks.set(e.taskID,e),EE.sharedWorker.postMessage({taskId:e.taskID,delay:e.delay,type:"start"})}static timeout(e){let o=()=>{if(e.callback(),e.loopCount+=1,!EE.isBreakLoop(e))return e.timeoutID=setTimeout(o,e.delay)};return e.timeoutID=setTimeout(o,e.delay)}static ric(e){let o,a=ko(),c=()=>{if(o=ko()-a,o>=e.delay&&(a=ko()-Math.floor(o%e.delay),e.callback(),e.loopCount+=1),!EE.isBreakLoop(e))return e.ricID=Jk(c,{timeout:e.delay})};return e.ricID=Jk(c,{timeout:e.delay})}static raf(e){let o,a=ko(),c=()=>document.hidden&&e.backgroundTask?(o=ko()-a,a=ko(),e.callback(),e.loopCount+=1,EE.isBreakLoop(e)?void 0:e.timeoutID=setTimeout(c,e.delay-Math.floor(o%e.delay))):(o=ko()-a,o>=e.delay&&(a=ko()-Math.floor(o%e.delay),e.callback(),e.loopCount+=1),EE.isBreakLoop(e)?void 0:e.rafID=requestAnimationFrame(c));if(e.rafID=requestAnimationFrame(c),e.backgroundTask){let d=()=>{if(document.hidden){let C=ko()-a;C>=e.delay?c():e.timeoutID=setTimeout(c,e.delay-C)}};document.addEventListener("visibilitychange",d),e.onVisibilitychange=d,document.hidden&&d()}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:a,rafID:c,ricID:d,onVisibilitychange:C}=this.taskMap.get(e);return o&&clearInterval(o),a&&clearTimeout(a),c&&zp&&zp(c),d&&hl(d),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)}};Y(Qy,"taskMap",new Map),Y(Qy,"currentTaskID",1),Y(Qy,"sharedWorker",null),Y(Qy,"workerTasks",new Map);var Nr=Qy,fo={LOAD_START:YA.LOADSTART,LOADED_DATA:YA.LOADEDDATA,LOADED_META_DATA:YA.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",RESIZE:YA.RESIZE,TIME_UPDATE:"time-update",LEAVE_PICTURE_IN_PICTURE:YA.LEAVE_PICTURE_IN_PICTURE,ENTER_PICTURE_IN_PICTURE:YA.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"},Hk={};Hh(Hk,{create:()=>rd,remove:()=>kn});var Xh=new WeakMap;function rd(A,e){Xh.has(A)||Xh.set(A,[]);let o=Xh.get(A),a={add:(c,d)=>("addEventListener"in e?(o.push(e.removeEventListener.bind(e,c,d)),e.addEventListener(c,d)):(o.push(e.off.bind(e,c,d)),e.on(c,d)),a)};return a}function kn(A){let e=Xh.get(A);e&&(e.forEach(o=>o()),Xh.delete(A))}var sn=new class{constructor(){Y(this,"_roomIdMap",new Map),Y(this,"_configs"),typeof registerProcessor>"u"&&(this._configs={sdkAppId:"",userId:"",version:qd,env:jB.QCLOUD,browserVersion:nQ.name+nQ.version,ua:navigator.userAgent})}setConfig(A){let{sdkAppId:e,env:o,userId:a,roomId:c}=A;e!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(e)),this._configs.env=o,this._configs.userId=a,this._roomIdMap.set(a,String(c))}logSuccessEvent(A){Op||!QA.isAbleToUpload||this._configs.env===jB.QCLOUD&&this.uploadEventToKibana(Qo(mi({},A),{result:"success"}))}logFailedEvent(A){if(Op||!QA.isAbleToUpload)return;let{eventType:e,code:o,error:a,userId:c}=A,d={roomId:this._roomIdMap.get(c||this._configs.userId),userId:c,eventType:e,result:"failed",code:o||a?.extraCode||a?.code||Et.UNKNOWN};this._configs.env===jB.QCLOUD&&this.uploadEventToKibana(Qo(mi({},d),{error:a}))}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:a}=A,c={timestamp:vx(),sdkAppId:this._configs.sdkAppId,userId:o||this._configs.userId,version:qd,log:e};a&&(c.errorInfo=a.message,a.stack&&(c.errorInfo+=`
|
||
`.concat(a.stack)));let d=_A.enable?AQ(c,2002,Number(this._configs.sdkAppId)):JSON.stringify(c);this.sendRequest(Hf(this._configs.sdkAppId,bI.LOG),d)}sendRequest(A,e){setTimeout(()=>eQ({url:A,body:e,priority:"low"}).catch(()=>{}),2e3)}},PC=new WeakMap;function $h(A){let{settings:e={retries:5,timeout:2e3},onError:o,onRetrying:a,onRetryFailed:c}=A;return function(d,C,y){let S=aM({retryFunction:y.value,settings:e,onError(k){let{error:V,retry:J,reject:gA,retryFuncArgs:CA}=k;var MA;o?o.call(this,V,()=>{var Ae;(Ae=PC.get(d))!=null&&Ae.has(C)?J():gA(V)},gA,CA):(MA=PC.get(d))!=null&&MA.has(C)?J():gA(V)},onRetrying(k,V){var J;Np(a)&&a.call(this,k,V),(J=PC.get(d))!=null&&J.has(C)&&(PC.get(d).get(C).stopRetry=V)},onRetryFailed:c});return y.value=function(){let k=PC.get(d);for(var V=arguments.length,J=new Array(V),gA=0;gA<V;gA++)J[gA]=arguments[gA];return k?k.set(C,{args:J}):PC.set(d,new Map([[C,{args:J}]])),S.apply(this,J).finally(()=>{var CA;return(CA=PC.get(d))==null?void 0:CA.delete(C)})},y}}function i_(A){let{fnName:e,callback:o,validateArgs:a=!0}=A;return function(c,d,C){let y=C.value;return C.value=function(){for(var S,k,V=arguments.length,J=new Array(V),gA=0;gA<V;gA++)J[gA]=arguments[gA];if((S=PC.get(c))!=null&&S.has(e)){let{stopRetry:CA,args:MA}=PC.get(c).get(e),Ae=!0;if(a){for(let Qe of MA)if(!J.find(Ye=>Ye===Qe)){Ae=!1;break}}Ae&&(o&&o.apply(this,J),CA&&CA(),(k=PC.get(c))==null||k.delete(e))}return y.apply(this,J)},C}}var xC=class extends Zs{constructor(A,e){super(A.id,"".concat(e,"-player")),this.options=A,this.kind=e,Y(this,"id"),Y(this,"element",null),Y(this,"track"),Y(this,"url"),Y(this,"attr"),Y(this,"mode"),Y(this,"muted"),Y(this,"_log"),Y(this,"isPausedByUserCall",!1),Y(this,"_pausedRetryCount"),Y(this,"_isElementPlayingFired",!1),Y(this,"_interval"),Y(this,"_delayDestroyTimeoutId",0),Y(this,"_playSuccessResolve"),Y(this,"_isReplayByRecreateMediaStreamCalled",!1),Y(this,"isPlayCalled",!1),Y(this,"isInAutoPlayFailedState",!1),Y(this,"isBindAutoPlayEvent",!1),this.id=A.id,this._log=A.log,this.track=A.track,this.muted=A.muted,this._pausedRetryCount=vp,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 KA(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=Xo({key:Mo.PLAY_FAILED,data:{media:this.kind,error:A}});if(this._log.warn(A),e.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ri({code:Et.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&&!Fp?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(YA.ENDED),this._interval>0&&Nr.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():p2?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 rd(this.element,this.element).add(YA.PLAYING,A).add(YA.ENDED,A).add(YA.PAUSE,A).add(YA.ERROR,A).add(YA.LOADSTART,A).add(YA.LOADEDDATA,A).add(YA.LOADEDMETADATA,A)}}bindTrackEvents(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.track;if(A){let e=this.handleTrackEvent.bind(this);Hk?.create(A,A).add(YA.ENDED,e).add(YA.MUTE,e).add(YA.UNMUTE,e),A.readyState===YA.ENDED&&this.handleTrackEvent({type:YA.ENDED}),A.muted&&this.handleTrackEvent({type:YA.MUTE})}}bindAutoPlayEvent(){this.isBindAutoPlayEvent||(this._log.warn("bindAutoPlayEvent"),F.on(sA.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&&kn(A)}unbindEvents(){this.element&&kn(this.element),this.unbindTrackEvents(),F.off(sA.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!1}handleElementEvent(A){switch(A.type){case YA.PLAYING:fi()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info("".concat(this.kind," player is playing")),this.handlePlaying(YA.PLAYING),this._interval&&(Nr.clearTask(this._interval),this._interval=-1);break;case YA.ENDED:this._log.info("".concat(this.kind," player is ended")),this.handleStopped(YA.ENDED);break;case YA.PAUSE:this._log.info("".concat(this.kind," player is paused")),this.handlePaused(YA.PAUSE);break;case YA.ERROR:if(this.element&&this.element.error){this.handlePaused(YA.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)),sn.uploadEvent({log:"stat-".concat(this.kind,"-").concat(Ja.PLAYER_ERROR,"-").concat(e,"-").concat(navigator.userAgent),error:this.element.error}),gk||ak?this.emit(fo.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case YA.LOADEDDATA:this.kind===YA.VIDEO&&this.emit(fo.LOADED_DATA);break;case YA.LOADEDMETADATA:this.kind===YA.VIDEO&&this.emit(fo.LOADED_META_DATA);break;case YA.LOADSTART:this.emit(fo.LOAD_START)}}replayByRecreateMediaStream(A){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),sn.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),ti.addSuccessEvent({key:this.kind===YA.AUDIO?506700:516700})}).catch(()=>{var e;this._log.error("replayByRecreateMediaStream failed"),sn.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),ti.addFailedEvent({key:this.kind===YA.AUDIO?506700:516700,error:(e=this.element)==null?void 0:e.error}),this.emit(fo.ERROR,A)})}doReplayByRecreateMediaStream(A){return this._log.warn("delay ".concat(A,"ms to recreate mediaStream")),new Promise((e,o)=>{LC(A).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var a,c,d;this._log.warn("element onerror ".concat((c=(a=this.element)==null?void 0:a.error)==null?void 0:c.code," fired after recreated mediaStream")),o((d=this.element)==null?void 0:d.error)}),LC(5e3).then(()=>{var a,c;(!this.isPlaying||(a=this.element)!=null&&a.error)&&o((c=this.element)==null?void 0:c.error),e()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(A){return KA(this,null,function*(){let e=A.type;switch(this.options.enableLogTrackState&&this._log[e===YA.UNMUTE?"info":"warn"]("track ".concat(e)),e){case YA.ENDED:this.handleStopped(YA.ENDED);break;case YA.MUTE:this.handlePaused(YA.MUTE);break;case YA.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(YA.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}};Y(xC,"PlayerEvent",fo),Ci([$h({settings:{retries:2,timeout:0},onError(A,e,o,a){a[0]=(a[0]||1e3)+1e3,e()}})],xC.prototype,"doReplayByRecreateMediaStream"),Ci([lc([],"PLAYING",{sync:!0,success(A){this.emit(fo.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:A})}})],xC.prototype,"handlePlaying"),Ci([lc("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(A){this.emit(fo.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:A})}})],xC.prototype,"handlePaused"),Ci([lc([],"STOPPED",{sync:!0,success(A){this.emit(fo.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:A})}})],xC.prototype,"handleStopped");var AB="trtc_autoplay",qk="".concat(AB,"_mask"),FM="".concat(AB,"_wrapper"),OM="".concat(AB,"_header"),PM="".concat(AB,"_content"),o_="".concat(AB,"_action_wrapper"),AA="".concat(AB,"_question"),Z="".concat(AB,"_collapse"),hA="".concat(AB,"_action_confirm"),bA="".concat(AB,"_detail"),ue="#2473E8",Se="dialog",Re="".concat(Se,"-show"),Ue="".concat(Se,"-1"),st="".concat(Se,"-2"),He=!1,Gt=!1,fi=()=>Gt,wi="".concat(qh,"/").concat(Wd()?"zh-cn":"en","/tutorial-21-advanced-auto-play-policy.html"),Ds="<br><a href='".concat(wi,"' target='_blank'>").concat(Wd()?"其他方案?":"Any other solution?","</a>"),Tn="".concat(Wd()?"浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。".concat(Ds):"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(Ds)),oa=class{constructor(){if(Y(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),Y(this,"_dialogNode",null),Y(this,"_bodyPosition",""),Y(this,"_showDetail",!1),Y(this,"_isCollapseClicked",!1),Y(this,"_isQuestionClicked",!1),Wd()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!He){let A=document.createElement("style");A.innerHTML=".".concat(qk,"{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(qk," div:not(.").concat(o_,"){display:block !important;}.").concat(FM,"{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.").concat(FM," a{color:").concat(ue,";}.").concat(OM,"{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.").concat(PM,"{margin:8px 0;}.").concat(o_,"{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.").concat(Z,"{margin-right:auto;cursor:pointer}.").concat(AA,"{height:100%;line-height:16px;cursor:pointer;}.").concat(hA,"{margin-left:8px;color:#fff;background:").concat(ue,";padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.").concat(hA,":hover{opacity:0.9;}.").concat(Z,",.").concat(hA,",.").concat(PM,",.").concat(AA,"{font-size:14px;}@media screen and (max-width:750px){.").concat(FM,"{width:80vw;}}"),document.head.appendChild(A),He=!0}this.addDiaLog()}createDiaLog(){let A=document.createElement("template");A.innerHTML='<div class="'.concat(qk,`"><div class='`).concat(FM,"'><div class='").concat(OM,"'>").concat(location.host,"</div><div class='").concat(PM,"'>").concat(this.content,"</div><div class='").concat(bA,`' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">`).concat(Tn,"</div><div class='").concat(o_,"'></div></div></div>").trim();let e=document.createElement("button");e.className=hA,e.innerText=Wd()?"恢复播放":"Resume",e.onclick=this.onConfirm.bind(this);let o=document.createElement("div");o.className=AA,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 a=document.createElement("div");a.className=Z,a.innerText="".concat(Wd()?"详情 >":"Detail >"),a.onclick=this.onCollapseClick.bind(this);let c=A.content.firstChild,d=c.querySelector(".".concat(o_));return d.appendChild(a),d.appendChild(o),d.appendChild(e),c}addDiaLog(){fi()||(Gt=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(".".concat(FM)).onclick=A=>A.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",QA.info("show autoplay dialog"),sn.uploadEvent({log:Re}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,Gt=!1),Oc=null}onConfirm(){QA.warn("confirm clicked, try resume stream"),F.emit(sA.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let A=this._dialogNode.querySelector(".".concat(bA));A.style.visibility="".concat(this._showDetail?"hidden":"visible"),A.style.height="".concat(this._showDetail?0:"fit-content"),this._showDetail=!this._showDetail,this._isCollapseClicked||sn.uploadEvent({log:Ue}),this._isCollapseClicked=!0}onQuestionClick(){window.open(wi,"_blank"),this._isQuestionClicked||sn.uploadEvent({log:st}),this._isQuestionClicked=!0}},Oc=null;function YC(){Oc||(Oc=new oa)}var di,vo=class R9 extends xC{constructor(e){super(e,YA.VIDEO),Y(this,"stat",{}),Y(this,"_calculateTimeout",-1),Y(this,"viewMirror",!1),Y(this,"objectFit","cover"),Y(this,"container"),Y(this,"canvas"),Y(this,"shouldRenderAlpha",!1),Y(this,"_preSize",{width:0,height:0}),Y(this,"posterImg"),Y(this,"pipWindow"),Y(this,"enterPIPPromise"),Y(this,"_originContainerPosition"),Y(this,"_isResettingSrcObject",!1),Y(this,"_wrapper",null),Y(this,"_useWrapper",!1),Y(this,"_isFirstFrameRenderEmitted",!1),this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,Je(e.viewMirror)||(this.viewMirror=e.viewMirror),Je(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(YA.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,Ha&&(e.poster="data:,"),this._appendToWrapper(),this.bindElementEvents(),this.calculateStat(),this._bindFirstFrameRenderEvent(e)}_bindFirstFrameRenderEvent(e){let o=()=>{if(this._isFirstFrameRenderEmitted)return;this._isFirstFrameRenderEmitted=!0;let a=e.videoWidth||0,c=e.videoHeight||0;this._log.info("first frame render: ".concat(a,"x").concat(c)),this.emit(fo.FIRST_FRAME_RENDER,{width:a,height:c})};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,a=this.container;this.container=e,this._pausedRetryCount=vp,this.track&&this.elementToRender&&this._appendToWrapper(),o&&a&&a!==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 a=this._getOrCreateWrapper();a.insertBefore(o,a.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(YA.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(YA.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(YA.RESIZE,this.handleElementEvent),this.element&&(this.element.addEventListener(YA.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===YA.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(fo.ENTER_FULL_SCREEN)):(this._log.info("leave fullscreen"),this.emit(fo.LEAVE_FULL_SCREEN))}handleVolumeChange(){var e;(this.isPictureInPicture()||this.isFullscreen())&&this.emit(fo.VOLUME_CHANGE,{muted:(e=this.element)==null?void 0:e.muted})}handleElementEvent(e){var o,a,c,d,C,y;if(this.mode===2)return;super.handleElementEvent(e);let S=e.type,k=this.isPictureInPicture(),V=this.isFullscreen(),J=e.isTrusted&&(k&&Bg||V);if(S===YA.PLAYING&&J&&!this._isResettingSrcObject&&(this._log.warn("user resume in ".concat(V?"fullscreen":"pip")),this.emit(fo.USER_RESUME_IN_PIP_OR_FULL_SCREEN)),S===YA.PAUSE&&(J&&(this._log.warn("user pause in ".concat(V?"fullscreen":"pip")),this.emit(fo.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)),LC(500).then(()=>{var gA;(gA=this.container)!=null&&gA.isConnected&&(this._pausedRetryCount=vp,this._log.info("view container ".concat(this.container.id," is in dom, reset pausedRetryCount")))})),this._pausedRetryCount>0&&!fi()&&!this.isPausedByUserCall&&!J&&(this._log.info("[".concat(vp-this._pausedRetryCount+1,"/").concat(vp,"] ").concat(this.kind," player auto resume when paused")),this.doResume(),this._pausedRetryCount--),eg&&!J&&(this._interval=Nr.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 gA=this.element.style.transform;S===YA.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=gA.replace("scaleX(-1)",""):S===YA.LEAVE_PICTURE_IN_PICTURE&&!gA.includes("scaleX")&&(this.element.style.transform="".concat(gA," scaleX(-1)"))}S===YA.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((a=this.element)==null?void 0:a.videoWidth))&&(this._log.info("video size changed to ".concat((c=this.element)==null?void 0:c.videoWidth,"x").concat((d=this.element)==null?void 0:d.videoHeight)),this._preSize.height=((C=this.element)==null?void 0:C.videoHeight)||0,this._preSize.width=((y=this.element)==null?void 0:y.videoWidth)||0,this.emit(fo.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height})),S===YA.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(fo.LEAVE_PICTURE_IN_PICTURE)),S===YA.ENTER_PICTURE_IN_PICTURE&&this.emit(fo.ENTER_PICTURE_IN_PICTURE)}resetSrcObjectToReplay(){Ha&&sy&&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 a,c;this.canvas!==e&&((a=this.canvas)==null||a.remove(),e?.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?o:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((c=this.element)==null||c.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(a=>{if(!this.element||(this._log.info("setPoster",e.slice(0,10)),e===""?this.element.removeAttribute("poster"):this.element.poster=e,!o||!Bg&&!er))return a();if(e==="")return this.removePosterImg(),a();if(this.posterImg)return a();let c=document.createElement("img");c.src=e;let d=window.getComputedStyle(this.element),C=d.objectFit||this.objectFit,y=1;if(this._useWrapper){let S=parseInt(d.zIndex,10);isNaN(S)||(y=S+1)}c.style.cssText=this._useWrapper?"grid-area:1/1;z-index:".concat(y,";width:100%;height:100%;object-fit:").concat(C,";"):"position:absolute;top:0;left:0;width:100%;height:100%;object-fit:".concat(C,";"),c.onload=()=>KA(this,null,function*(){try{c.decode&&(yield c.decode()),this.container&&!this._useWrapper&&window.getComputedStyle(this.container).position==="static"&&(this._originContainerPosition=this.container.style.position,this.container.style.position="relative"),this.posterImg=c;let S=this._useWrapper?this._wrapper:this.container;S?.appendChild(c),gM()&&Zd<=17&&this.elementToRender&&(this.elementToRender.style.visibility="hidden")}catch(S){this._log.warn("decode poster image error",S)}return a()}),c.onerror=()=>(this._log.warn("load poster image error"),a())})}removePosterImg(){this.posterImg&&(gM()&&Zd<=17&&this.elementToRender&&(this.elementToRender.style.visibility=""),this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),!this._useWrapper&&this.container&&!Je(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 KA(this,null,function*(){NI(R9.prototype,this,"pause").call(this),!this.isPictureInPicture()&&!this.hasPoster&&(sy||e&&(er||Bg))&&(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&&sy&&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(a=>{}),this.isFullscreen()&&this.exitFullscreen().catch(a=>{}),this.element&&(this.element.removeEventListener(YA.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(Je(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(fo.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(jp()&&this.element&&this._calculateTimeout<0){let e=0,o=null,a=(c,d)=>{this.stat.width=d.width,this.stat.height=d.height,o&&(this.stat.fps=Math.round((d.presentedFrames-o.presentedFrames)/(c-e)*1e3)),e=c,o=d,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var C;return(C=this.element)==null?void 0:C.requestVideoFrameCallback(a)},2e3))};this.element.requestVideoFrameCallback(a)}}catch(e){this._log.warn("init stat failed",e)}}enterFullscreen(){return KA(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(eg&&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 KA(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 KA(this,null,function*(){this.isFullscreen()?yield this.exitFullscreen():yield this.enterFullscreen()})}enterPictureInPicture(){return KA(this,null,function*(){this.enterPIPPromise=this._enterPictureInPicture();try{return yield this.enterPIPPromise}finally{delete this.enterPIPPromise}})}_enterPictureInPicture(){return KA(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 KA(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=vp,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 KA(this,null,function*(){this.isPictureInPicture()?yield this.exitPictureInPicture():yield this.enterPictureInPicture()})}};function Vg(A,e){return KA(this,null,function*(){if(!A.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield A.audioWorklet.addModule(e),QA.info("worklet addModule success")}catch(o){throw QA.info("worklet addModule catch error. ".concat(o.message)),o}})}typeof AudioContext<"u"?di=AudioContext:typeof webkitAudioContext<"u"?di=webkitAudioContext:typeof mozAudioContext<"u"&&(di=mozAudioContext);var Ln,du=1500,$d=-1,Zp=0,ad=-1,UI=!1,P2=0,s_=-1,Kk=-1;(function A(){try{if(Ln)return;(Ln=new di({sampleRate:48e3})).onstatechange=()=>{QA.info("context state: ".concat(Ln.state).concat(Ln.state!=="running"?" visibilityState: ".concat(document.visibilityState):"")),n_()},clearTimeout($d)}catch(e){QA.error("initAudioContext failed: ".concat(e," typeof AudioContextClass: ").concat(typeof di)),$d=setTimeout(A,1e3)}})();var n_=()=>{Ln.state==="suspended"?(Zp=ko(),ad===-1&&(ad=setTimeout(()=>{Ln.state==="suspended"&&(UI=!0,F.emit("155",{isSuspended:!0}))},du)),jk(),document.addEventListener("click",n_)):Ln.state==="interrupted"?jk():(Zp&&(ti.addNumber({key:507800,value:ko()-Zp,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Zp=0),ad!==-1&&(clearTimeout(ad),ad=-1,UI&&(UI=!1,F.emit("155",{isSuspended:!1}))),document.removeEventListener("visibilitychange",n_),document.removeEventListener("click",n_))},RK=0,wK=-1;function jk(){return new Promise((A,e)=>{if(Ln.state==="running")return A();Date.now()-RK<1e3?(clearTimeout(wK),wK=setTimeout(()=>{RK=Date.now(),Ln.resume().then(A,e)},1e3)):(clearTimeout(wK),RK=Date.now(),Ln.resume().then(A,e))}).catch(A=>{QA.warn("context resume failed: ".concat(A)),document.addEventListener("visibilitychange",n_)})}document.addEventListener("click",n_);var FI=A=>Ln,OI=class{constructor(A){this.name=A,Y(this,"node"),Y(this,"node2"),Y(this,"pre",new Set),Y(this,"next",new Set),Y(this,"context"),Y(this,"connectedNodes",new Set),Y(this,"nextInputChannelMap",new Map),Y(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){QA.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(),ti.addSuccessEvent({key:502701})}catch(a){QA.error(a),ti.addFailedEvent({key:502701,error:a})}}deleteNode(){var A;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(A=this.context)==null||A.reduceMixWeight(),this.preNodeReconnect(),ti.addSuccessEvent({key:502702})}catch(e){QA.error(e),ti.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}},IeA=class extends OI{constructor(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:256;super(),this.fftSize=A,Y(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,a="M".concat(e,",").concat(o);for(let c=0;c<A.length;c++)o=A[c]/128*100/2,a+="L".concat(e,",").concat(o),e+=1;return a}},H4=class{constructor(){Y(this,"source",new OI),Y(this,"gain",new OI),Y(this,"destination",new OI)}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(FI().createGain()),this.gain.node.gain.value=A):this.gain.node&&this.gain.deleteNode()}replaceSource(A){let e=x2(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}},q4=class extends H4{constructor(A){super(),this.context=A,Y(this,"aec",new OI("aec")),Y(this,"mixNode",new OI("mixNode")),Y(this,"silentNode",new OI("silentNode")),Y(this,"denoiser",new OI("denoiser")),Y(this,"voiceChanger",new OI("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()}},ueA=class{constructor(){Y(this,"audioContext",FI()),Y(this,"destination",this.audioContext.createMediaStreamDestination()),Y(this,"inputs",new Set),Y(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]}},K4=new WeakMap;function x2(A){try{let e=K4.get(A);if(e)return e;let o=FI();if(A instanceof HTMLAudioElement)e=o.createMediaElementSource(A);else{if(!(A instanceof MediaStreamTrack))return A;e=o.createMediaStreamSource(new MediaStream([A]))}return K4.set(A,e),e}catch(e){if(!(er&&e instanceof Error&&e.name==="NotSupportedError"))throw e;QA.warn(e)}}var Y2=class sm{constructor(e){Y(this,"_volume",0),Y(this,"_volumeDb",0),Y(this,"_log"),Y(this,"_scriptProcessorNode",null),Y(this,"_audioWorkletNode",null),Y(this,"_interval",200),Y(this,"ready",this.preload());let{log:o}=e;this._log=o,F.on(sA.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-sm.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!sm.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);';sm.workletReady=Vg(sm.audioContext,URL.createObjectURL(new Blob([e],{type:"application/javascript"})))}return sm.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(sm.audioContext,"volume-meter");let e=!1;this._audioWorkletNode.port.onmessage=o=>{sm.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)),sn.logFailedEvent({userId:this._log.userId,eventType:Ja.LOAD_WORKLET,error:e}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=FI().createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=e=>{sm.lastMessageTime=Date.now();let o=e.inputBuffer.getChannelData(0),a=0;for(let c=0;c<o.length;++c)a+=o[c]*o[c];this._volume=Math.sqrt(a/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,F.off(sA.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:a}=e;this._interval=a,(o=this._audioWorkletNode)==null||o.port.postMessage({name:"setIntervalTime",intervalTime:a})}};Y(Y2,"lastMessageTime",0),Y(Y2,"audioContext",FI()),Y(Y2,"workletReady");var j4=Y2,W4=class extends OI{constructor(A){super(),Y(this,"_volumeMeter"),this._volumeMeter=new j4(A)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return KA(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()}}},V2=j4,EeA=gc(Kl(),1),z4=A=>e=>e.deviceId===A,_K=class{constructor(A,e){Y(this,"kind"),Y(this,"type"),Y(this,"devices",[]),this.kind=A,this.type=e}update(A,e){let o=A.filter(a=>a.kind==="".concat(this.kind).concat(this.type.toLocaleLowerCase()));this.devices.length===1&&Wk(this.devices[0])||e&&(o.forEach(a=>{if(a.deviceId&&!this.devices.find(z4(a.deviceId))){let c="".concat(this.kind).concat(this.type,"Added");QA.warn("".concat(c,": ").concat(JSON.stringify(a))),e.emit(c,a)}}),this.devices.forEach(a=>{if(a.deviceId&&!o.find(z4(a.deviceId))){let c="".concat(this.kind).concat(this.type,"Removed");QA.warn("".concat(c,": ").concat(JSON.stringify(a))),e.emit(c,a)}})),this.devices=o}hasDevice(A){return!!this.devices.find(e=>e.deviceId===A)}},deA=class extends EeA.EventEmitter{constructor(){super(),Y(this,"audioInputs",new _K(YA.AUDIO,"Input")),Y(this,"videoInputs",new _K(YA.VIDEO,"Input")),Y(this,"audioOutputs",new _K(YA.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||Nr.run("interval",()=>{this.update()},{delay:1e4}))}init(){J2().then(A=>{this.audioInputs.update(A),this.videoInputs.update(A),this.audioOutputs.update(A)})}update(){return KA(this,arguments,function(){var A=this;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function*(){let o=yield J2(e);return A.audioInputs.update(o,A),A.videoInputs.update(o,A),A.audioOutputs.update(o,A),A}()})}hasBlueTooth(){var A;if(1e3*((A=FI())==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(a=>o.label.toLowerCase().includes(a)))||this.audioInputs.devices.some(o=>e.some(a=>o.label.toLowerCase().includes(a)))}},Pc=e0||A0?null:new deA;function Wk(A){return A.deviceId===A.groupId&&A.groupId===""}function J2(){return KA(this,arguments,function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function*(){if(Eu()||!vk())return[];let e=yield navigator.mediaDevices.enumerateDevices();if(A!==0){let o={audio:!1,video:!1};if(e.forEach(a=>{Wk(a)&&(a.kind===YA.AUDIO_INPUT?o.audio=!0:a.kind===YA.VIDEO_INPUT&&(o.video=!0))}),A===2&&(o.audio=!1),A===1&&(o.video=!1),o.audio||o.video){let a;try{a=yield navigator.mediaDevices.getUserMedia(o),o.audio&&jk()}catch(c){QA.debug("capture before getDevices failed: ",c)}e=yield navigator.mediaDevices.enumerateDevices(),a?.getTracks().forEach(c=>c.stop())}}return e.map((o,a)=>{let c={kind:o.kind,deviceId:o.deviceId,groupId:o.groupId,label:o.label||"".concat(o.kind,"_").concat(a)};return o.deviceId.length>0&&TK.add("".concat(o.deviceId,"_").concat(o.kind)),o.getCapabilities&&(c.getCapabilities=()=>o.getCapabilities()),c})}()})}function Xp(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return Pc.update(A?1:0).then(e=>e.audioInputs.devices)}function $p(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return Pc.update(A?2:0).then(e=>e.videoInputs.devices)}var Z4=!1;function xM(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return KA(this,null,function*(){return(eg||Bg)&&(A=!1),Pc.update(A?1:0).then(e=>e.audioOutputs.devices)})}var TK=new Set;function X4(A,e){return KA(this,null,function*(){let o=(yield Xp()).find(a=>a.deviceId===zS);return!e&&o?.groupId===A||o?.groupId===A&&o.label===e})}var H2,CeA=class extends H4{constructor(A){super(),this.log=A,Y(this,"volumeMeter"),Y(this,"volumeMeterAfter3A"),Y(this,"volumeDestination"),Y(this,"analyser",new IeA),this.volumeMeter=new W4({log:this.log}),this.volumeMeterAfter3A=new W4({log:this.log}),this.volumeDestination=new OI,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},NK=class w9 extends xC{constructor(e){super(e,YA.AUDIO),Y(this,"_outputDeviceId"),Y(this,"_floatVolume",1),Y(this,"_destination"),Y(this,"pipeline"),Y(this,"volumeMeterMode","worklet"),Y(this,"enableVolumeControlInIOS"),this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new CeA(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((kI==="15.2"||kI==="15.3"||kI==="15.4")&&this.muted)return void this._log.info("audioElement is muted.");this._log.info("audio player initializeElement");let o=H2||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(bn(e)?e/100:this._floatVolume),o===H2&&(H2=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(fo.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return KA(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(FI().createAnalyser()),function(){KA(this,null,function*(){try{Z4||(Z4=!0,QA.info("speakers:".concat((yield xM()).map(o=>" ".concat(o.deviceId.slice(0,8),": ").concat(o.label)))))}catch{}})}()}catch(o){throw this._log.warn("audio play error: ".concat(o)),ny(kI,"18.7",!0)&&this.bindAutoPlayEvent(),o}return NI(w9.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 KA(this,null,function*(){var o,a;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(a=(o=this.element).setSinkId)==null?void 0:a.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()}},heA=class extends NK{setTrack(A){this.track!==A&&(this.unbindTrackEvents(),this.track=A,this.emit(fo.MEDIA_TRACK_CHANGED,A),A&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([A]))))}},$4=class extends NK{constructor(A){super(A),Y(this,"_sourceElement"),Y(this,"_output",new OI),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(FI().destination)}write(A){this.pipeline.volumeMeter.write(A)}setTrack(A){var e,o,a;((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(fo.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=((a=A.getSettings())==null?void 0:a.channelCount)||1,this.pipeline.replaceSource(A)):this.pipeline.source.deleteNode())}setVolume(A){var e;let o=A<=1&&!gM();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(gM()){if(!this.enableVolumeControlInIOS)return;(function(){if(!eg||Kk!==-1)return;let a=()=>{ko()-P2<500||(Ln&&Ln.state==="running"&&Ln.currentTime===s_&&(QA.warn("context is fake running, auto resume"),Ln.suspend().catch(c=>{QA.warn("context suspend failed: ".concat(c))})),s_=Ln.currentTime,P2=ko())};Kk=setInterval(()=>{a()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&a()})})()}if(er&&!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=FI().createMediaStreamDestination()),this.pipeline.destination.setNode(this._destination),kn(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play().catch(a=>{this.emit(fo.AUTOPLAY_FAILED,a)}))}}stop(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.pipeline.destroy();let e=this._sourceElement||this.element;e&&Fp&&(H2=e),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(A)}},GK=class extends Zs{constructor(A){let{userId:e,sdkAppId:o,mediaType:a,room:c,PlayerClass:d=a===1?$4:vo}=A;var C;super(),Y(this,"id",PA()),Y(this,"userId",""),Y(this,"isRemote"),Y(this,"mediaType"),Y(this,"room"),Y(this,"user"),Y(this,"_log"),Y(this,"_inputTrack"),Y(this,"_outputTrack"),Y(this,"isPlayCalled"),Y(this,"container",null),Y(this,"player"),Y(this,"subVideoPlayerMap"),Y(this,"muted",!1),Y(this,"abortCtrl"),Y(this,"objectFit","cover"),Y(this,"mirror"),Y(this,"rotation"),Y(this,"isScreen",!1),Y(this,"manager"),Y(this,"trackSettings"),Y(this,"isFirstVideoFrameEmitted",!1),this.userId=e||"",this.mediaType=a,this._log=QA.createLogger({parent:c?.getLogger(),id:"".concat(this.kind[0],"t"),userId:(C=c||this.room)==null?void 0:C.userId,remoteUserId:this instanceof tL?void 0:this.userId,sdkAppId:o,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof tL}),this.player=new d({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:c?.enableVolumeControlInIOS}),this.player.on(fo.PLAYER_STATE_CHANGED,y=>{if(F.emit(sA.PLAYER_STATE_CHANGED,mi({track:this},y)),this.emit("player-state-changed",y),y.state==="PLAYING"&&this.room){let S=!0;for(let{remoteAudioTrack:k,remoteVideoTrack:V,remoteAuxiliaryTrack:J}of[...this.room.remotePublishedUserMap.values()])if(k.isAvailable&&!k.player.isPlaying||V.isAvailable&&!V.player.isPlaying||J.isAvailable&&!J.player.isPlaying){S=!1;break}S&&fi()&&Oc&&Oc.deleteDialog()}}),this.kind===YA.VIDEO&&(this.player.on(fo.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(fo.LOADED_DATA),F.emit(sA.VIDEO_LOADED_DATA,{track:this})}),this.player.on(fo.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(fo.LOADED_META_DATA)}),this.player.on(fo.MEDIA_TRACK_CHANGED,y=>{var S;(S=this.subVideoPlayerMap)==null||S.forEach(k=>k.setTrack(y))}),this.player.on(fo.RESIZE,y=>{this.emitFirstVideoFrameEvent(fo.RESIZE),this.emit("video-size-changed",mi({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},y))}),this.player.on(fo.FIRST_FRAME_RENDER,y=>{this.emit("first-frame-render",Qo(mi({},y),{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(fo.ERROR,this.onPlayerError.bind(this)),this.player.on(fo.AUTOPLAY_FAILED,this.handleAutoPlayFailed,this)}get log(){return this._log||QA}get kind(){return this.mediaType===1?YA.AUDIO:YA.VIDEO}get isAudio(){return this.kind===YA.AUDIO}get strMediaType(){return this.mediaType===4?YA.VIDEO:this.mediaType===2?YA.SCREEN:YA.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 KA(this,null,function*(){let o=wa(A)?A[0]:A;if(this.isPlayCalled)return this.log.info("play update options: ".concat(JSON.stringify(e))),e&&!Je(e.muted)&&this.setPlayerMute(e.muted),e&&!Je(e.objectFit)&&(this.objectFit=e.objectFit),void(this.player instanceof vo&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(wa(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))),wa(A)&&A.length>=1&&(yield this.playSubContainer(A.slice(1),e))));if(e&&!Je(e.muted)?this.setPlayerMute(e.muted):(!this.isRemote||this.kind===YA.VIDEO)&&this.setPlayerMute(!0),e&&!Je(e.objectFit)&&(this.objectFit=e.objectFit),this.player instanceof vo&&(Je(e?.isLiveStream)||this.player.setLiveMode(e.isLiveStream),this.player.setObjectFit(this.objectFit),e&&!Je(e.poster)&&this.player.setPoster(e.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof vo&&this.player.setContainer(o)),F.emit(sA.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),wa(A)&&A.length>1&&(yield this.playSubContainer(A.slice(1),e))}catch(a){throw this.handleAutoPlayFailed(a),a}}else this.log.info("play has not mediaTrack, abort")})}setMirror(A,e){if(this.isScreen||this.kind!==YA.VIDEO||Je(A)||A===this.mirror)return;this.mirror=A;let o=this.player;e&&(o=e);let a=this.manager;if(Tr(this.mirror))return o.setViewMirror(this.mirror),void(!this.isRemote&&a&&(a.mirror=!1));switch(this.mirror){case"view":a&&(a.mirror=!1),o.setViewMirror(!0);break;case"publish":a&&(a.mirror=!0),o.setViewMirror(!0);break;case"both":a&&(a.mirror=!0),o.setViewMirror(!1)}}playSubContainer(A,e){return KA(this,null,function*(){if(!this._outputTrack||this.kind===YA.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((a,c)=>{var d;A.find(C=>c===C)||(a.stop(),(d=this.subVideoPlayerMap)==null||d.delete(c))});for(let[a,c]of A.entries()){let d=this.subVideoPlayerMap.get(c);d?e&&(Je(e.objectFit)||d.setObjectFit(e.objectFit)):this.subVideoPlayerMap.set(c,new vo({id:this.userId||this.id,track:this.playerMediaTrack,container:c,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:"vp-sub".concat(a+1)})}))}let o=[...this.subVideoPlayerMap.values()];for(let a of o)a.setViewMirror(this.player.mirror),yield a.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(Wb(this)&&!A?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(e=>{e.stop()}),this.container=null)}resume(){return KA(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),F.emit(A?sA.TRACK_MUTED:sA.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){rd(A,A).add(YA.MUTE,this.onTrackMuted).add(YA.UNMUTE,this.onTrackUnmuted).add(YA.ENDED,this.onTrackEnded),A.muted&&this.onTrackMuted(),A.readyState===YA.ENDED&&this.onTrackEnded()}uninstallTrackEvent(A){kn(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 dQ&&_p(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(a=>this.handleAutoPlayFailed(a)),void this.log.info("playing state updated, play ".concat(this.kind))}else if(!this.player.isStopped)return Wb(this)&&this.isAudio&&(e=this.user)!=null&&e.muteState.hasAudio&&(o=this.user)!=null&&o.muteState.audioMuted?void 0:(this.player.stop(Wb(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 KA(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((kp||tQ)&&(yield LC(100),(e=this.player)!=null&&e.isPlaying))return;YC()}else document.addEventListener("click",o,!0);F.once(sA.LOCAL_TRACK_CAPTURE_SUCCESS,a=>{let{track:c}=a;c.kind==="audio"&&fi()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&o()}),this.emit("error",A)})}getVideoFrame(){return this.player instanceof vo?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(A){var e,o,a;if(this.isFirstVideoFrameEmitted)return;let c=(e=this.mediaTrack)==null?void 0:e.getSettings(),d=c?.width||((o=this.player.element)==null?void 0:o.videoWidth)||0,C=c?.height||((a=this.player.element)==null?void 0:a.videoHeight)||0;A===fo.RESIZE&&!d&&!C||A===fo.LOADED_META_DATA&&!d&&!C||(A===fo.LOADED_DATA&&!d&&!C&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,$B(this.rotation)&&([d,C]=[C,d]),this.emit("first-video-frame",{width:d,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"))}};Ci([lc([],Zs.INIT,{sync:!0})],GK.prototype,"_toInitState");var BeA=Object.prototype.hasOwnProperty,Am=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(gE(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(BeA.call(A,e))return!1;return!0}return!1},QeA=aM({retryFunction:function(A){return KA(this,null,function*(){let e=function(d){return{audio:peA(d),video:meA(d)}}(A);QA.info("getUserMedia with constraints: ".concat(JSON.stringify(e)));let o=[],a=[],c=["label","deviceId","groupId"];if(e.audio&&(o=yield Xp(),QA.info("microphones: ".concat(zd(o.map(d=>Qo(mi({},d),{groupId:d.groupId.substring(0,8)})),{keysToInclude:c})))),e.video&&(a=yield $p(),QA.info("cameras: ".concat(zd(a,{keysToInclude:c}))),!Tr(e.video)&&e.video.facingMode==="user"&&!e.video.deviceId)){let d=a.filter(C=>!C.label.includes("infrared")).find(C=>C.label.includes("facing front"));d&&(e.video.deviceId=d.deviceId,QA.info("exclude infrared camera: ".concat(JSON.stringify(e))))}try{let d=yield navigator.mediaDevices.getUserMedia(e);return G2&&d.getTracks().forEach(C=>{var y;let S=C.getCapabilities();QA.info("".concat(C.kind," capabilities: ").concat(zd(S,{keysToInclude:_b}))),!Je(A.echoCancellation)&&((y=S.echoCancellation)==null?void 0:y.indexOf(A.echoCancellation))===-1&&QA.warn("Invalid argument for 'echoCancellation'. Expected one of [".concat(JSON.stringify(S.echoCancellation),"], but received '").concat(A.echoCancellation,"'"))}),e.audio&&jk(),d}catch(d){let{message:C}=d;throw d.name==="NotFoundError"&&(A.video&&a&&a.length===0&&(C=Xo({key:Mo.CAMERA_NOT_FOUND})),A.audio&&o&&o.length===0&&(C=Xo({key:Mo.MICROPHONE_NOT_FOUND}))),new ri({code:Et.INITIALIZE_FAILED,name:d.name,message:C,constraint:d.constraint})}})},settings:{retries:3,timeout:500},onError:A=>{let{error:e,retry:o,reject:a,retryFuncArgs:c,retriedCount:d}=A,C=d+1;e.name==="NotReadableError"||e.name==="OverconstrainedError"||e.name==="AbortError"?(C===1?(c[0].video&&(c[0].maxResolution=!1,(!Bg||c[0].width*c[0].height<=2073600)&&c[0].frameRate&&(c[0].frameRate=c[0].frameRate>10?10:5)),c[0].retryWhenExactFailed&&c[0].useExactDeviceId&&(c[0].useExactDeviceId=!1)):C===2?c[0].useDeviceIdOnly=!0:C===3&&!c[0].useExactDeviceId&&(c[0].useTrueAsConstraint=!0),o()):a(e),c[0].microphoneId&&A5(c[0].microphoneId,!1),c[0].cameraId&&A5(c[0].cameraId,!0)},onRetrying:A=>{QA.warn("getUserMedia NotReadableError observed, retrying [".concat(A,"/3]"))},onRetryFailed:A=>{sn.logFailedEvent({eventType:Ja.GET_USER_MEDIA_RETRY,error:A})},onRetrySuccess:A=>{sn.logSuccessEvent({eventType:Ja.GET_USER_MEDIA_RETRY}),sn.uploadEvent({log:"stat-".concat(Ja.GET_USER_MEDIA_RETRY,"-success-").concat(A)})}});function A5(A,e){return KA(this,null,function*(){let o=(e?yield $p():yield Xp()).find(a=>a.deviceId===A);o&&Ra(o.getCapabilities)&&QA.warn(zd(o.getCapabilities(),{keysToInclude:_b}))})}function peA(A){if(!A.audio)return!1;if(A.useTrueAsConstraint)return!0;let e={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:A.sampleRate};return!Am(A.microphoneId)&&(e.deviceId=A.useExactDeviceId?{exact:A.microphoneId}:A.microphoneId,A.useDeviceIdOnly)?e:(bn(A.channelCount)&&(e.channelCount=A.channelCount),(Tr(A.echoCancellation)||A.echoCancellation==="remote-only"||A.echoCancellation==="all")&&(e.echoCancellation=A.echoCancellation),Tr(A.noiseSuppression)&&!A.noiseSuppression&&(e.noiseSuppression=!1),Tr(A.autoGainControl)&&!A.autoGainControl&&(e.autoGainControl=!1),!!Am(e)||e)}function meA(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&&!Am(o)?o:(A.width&&(o.width={ideal:A.width},e&&!er&&(o.width.max=A.width)),A.height&&(o.height={ideal:A.height},e&&!er&&(o.height.max=A.height)),er&&iQ&&A.width&&A.height&&A.width*A.height<101376&&(o.width=A.width,o.height=A.height),A.frameRate&&(o.frameRate=A.frameRate),!!Am(o)||o)}var feA=QeA;function e5(A){return jr((e,o)=>function(){for(var a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];return KA(this,null,function*(){return yield A.apply(this,c),e.apply(this,c)})})}function YM(A){return jr((e,o)=>function(){for(var a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];return KA(this,null,function*(){let C=yield e.apply(this,c);return yield A.call(this,...c),C})})}function t5(A){return jr((e,o)=>function(){for(var a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];return KA(this,null,function*(){try{return yield e.apply(this,c)}catch(C){A.call(this,C)}})})}function jr(A){return function(e,o,a){return a.value=A(a.value,o),a}}var yeA=(()=>{let A=!1,e=document.visibilityState;return()=>{document.visibilityState!==e&&QA.info("visibility change: ".concat(document.visibilityState)),!A&&(document.addEventListener("visibilitychange",()=>{QA.info("visibility change: ".concat(document.visibilityState)),e=document.visibilityState}),A=!0)}})(),DeA=0,i5=class{constructor(A){Y(this,"log"),Y(this,"isRunning",!1),Y(this,"queue",[]);let e="fq".concat(++DeA);A&&(e+="|".concat(A)),this.log=QA.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,a;let c=mi({},A),d=new Promise((C,y)=>{c.resolve=C,c.reject=y});return c.promise=d,e?this.length<=1?this.queue.push(c):(a=(o=this.lastQueueItem)==null?void 0:o.promise)==null||a.then(c.resolve,c.reject):this.queue.push(c),this.log.debug("push ".concat(this.length),A.funcName,A.args),this.isRunning||this.callNext(),d}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:a,reject:c,funcName:d}=this.queue[0];this.log.debug("callNext",this.length,d,e),this.isRunning=!0,A.apply(o,e).then(a,c).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},q2=new WeakMap,K2=new WeakMap;function zk(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return function(e,o,a){let c=a.value;return a.value=function(){let d=q2.get(this)||new i5;for(var C=arguments.length,y=new Array(C),S=0;S<C;S++)y[S]=arguments[S];return q2.set(this,d),d.push({fn:c,args:y,context:this,funcName:o},A)},a}}function o5(A){return function(e,o,a){let c=a.value;return a.value=function(){var d,C,y;let S=[];for(var k=arguments.length,V=new Array(k),J=0;J<k;J++)V[J]=arguments[J];return(C=(d=q2.get(this))==null?void 0:d.queue)==null||C.forEach(gA=>S.push(gA)),(y=K2.get(this))==null||y.forEach(gA=>gA?.queue.forEach(CA=>S.push(CA))),S.forEach(gA=>{gA.reject(new ri({code:Et.API_CALL_ABORTED,message:A}))}),q2.delete(this),K2.delete(this),c.apply(this,V)},a}}function py(A,e){return function(o,a,c){let d=c.value,C=y=>A(...y);return c.value=function(){for(var y=arguments.length,S=new Array(y),k=0;k<y;k++)S[k]=arguments[k];let V=K2.get(this)||new Map,J=V.get(C(S))||new i5(e?.(...S));return V.set(C(S),J),K2.set(this,V),J.push({fn:d,args:S,context:this,funcName:a})},c}}function fy(A,e){return jr((o,a)=>function(){let c=A;try{for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];let S=o.apply(this,C),k=ko();return jf(S)?S.then(V=>(e?ti.addSuccessEvent({key:c,cost:ko()-k}):ti.addSuccessEvent({key:c}),V)).catch(V=>{throw ti.addFailedEvent({key:c,error:V}),V}):(ti.addSuccessEvent({key:c}),S)}catch(S){throw ti.addFailedEvent({key:c,error:S}),S}})}var s5={};function tg(){}Hh(s5,{Events:()=>Ic,Inspect:()=>yy,LastSink:()=>j2,Sink:()=>Os,Subscribe:()=>W2,TimeoutError:()=>a5,audit:()=>gtA,bindCallback:()=>qeA,bindNodeCallback:()=>KeA,buffer:()=>beA,bufferCount:()=>GeA,bufferTime:()=>NtA,call:()=>n5,catchError:()=>v5,combineLatest:()=>l5,concat:()=>ReA,concatMap:()=>ftA,concatMapTo:()=>ytA,count:()=>zeA,create:()=>lr,debounce:()=>ltA,debounceTime:()=>ItA,defer:()=>I5,delay:()=>GtA,deliver:()=>Ps,dispose:()=>bK,elementAt:()=>utA,empty:()=>OK,every:()=>BtA,exhaustMap:()=>RtA,exhaustMapTo:()=>wtA,expand:()=>ktA,filter:()=>VM,find:()=>EtA,findIndex:()=>dtA,first:()=>CtA,fromAnimationFrame:()=>JeA,fromArray:()=>FeA,fromEvent:()=>ca,fromEventPattern:()=>OeA,fromFetch:()=>PeA,fromIterable:()=>xeA,fromPromise:()=>C5,fromReadableStream:()=>VeA,fromReader:()=>YeA,groupBy:()=>_tA,identity:()=>SeA,ignoreElements:()=>AtA,iif:()=>_eA,inspect:()=>r5,interval:()=>d5,last:()=>htA,map:()=>xK,mapTo:()=>ptA,max:()=>ZeA,merge:()=>kK,mergeMap:()=>StA,mergeMapTo:()=>MtA,min:()=>XeA,never:()=>jeA,nothing:()=>tg,of:()=>UeA,pairwise:()=>QtA,pipe:()=>ma,race:()=>c5,range:()=>HeA,reduce:()=>h5,retry:()=>OtA,scan:()=>p5,setAsapScheduler:()=>LeA,share:()=>Zk,shareReplay:()=>weA,skip:()=>itA,skipUntil:()=>otA,skipWhile:()=>PK,startWith:()=>LK,subject:()=>EQ,subscribe:()=>Bl,sum:()=>$eA,switchMap:()=>Z2,switchMapTo:()=>$2,take:()=>a_,takeLast:()=>ttA,takeUntil:()=>IE,takeWhile:()=>etA,tap:()=>YK,throttle:()=>rtA,throwError:()=>WeA,timeInterval:()=>TtA,timeout:()=>FtA,timer:()=>FK,toPromise:()=>LtA,toReadableStream:()=>UtA,withLatestFrom:()=>NeA,zip:()=>TeA});var n5=A=>A(),SeA=A=>A;function bK(){this.dispose()}var r5=()=>typeof __FASTRX_DEVTOOLS__<"u",MeA=1,yy=class extends Function{toString(){return"".concat(this.name,"(").concat(this.args.length?[...this.args].join(", "):"",")")}subscribe(A){let e=new veA(A,this,this.streamId++);return Ic.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},j2=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=tg,this.error=tg,this.next=tg,this.dispose=tg,this.subscribe=tg,this.doDefer()}subscribe(A){return A instanceof yy?A.subscribe(this):A(this),this}get bindSubscribe(){return A=>this.subscribe(A)}doDefer(){this.defers.forEach(n5),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}},Os=class extends j2{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)}},W2=class extends j2{constructor(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:tg,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:tg,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tg;if(super(),this._next=e,this._error=o,this._complete=a,this.then=tg,A instanceof yy){let c={toString:()=>"subscribe",id:0,source:A};this.defer(()=>{Ic.defer(c,0)}),Ic.create(c),Ic.pipe(c),this.sourceId=c.id,this.subscribe(A),Ic.subscribe({id:c.id,end:!0}),e==tg?this._next=d=>Ic.next(c,0,d):this.next=d=>{Ic.next(c,0,d),e(d)},a==tg?this._complete=()=>Ic.complete(c,0):this.complete=()=>{this.dispose(),Ic.complete(c,0),a()},o==tg?this._error=d=>Ic.complete(c,0,d):this.error=d=>{this.dispose(),Ic.complete(c,0,d),o(d)}}else this.subscribe(A)}next(A){this._next(A)}complete(){this.dispose(),this._complete()}error(A){this.dispose(),this._error(A)}};function ma(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),a=1;a<e;a++)o[a-1]=arguments[a];return o.reduce((c,d)=>d(c),A)}function lr(A,e,o){if(r5()){let a=Object.defineProperties(Object.setPrototypeOf(A,yy.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}});Ic.create(a);for(let c=0;c<o.length;c++){let d=o[c];typeof d=="function"&&d instanceof yy&&Ic.addSource(a,d)}return a}return A}function Ps(A,e){return function(){for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];return d=>{if(d instanceof yy){let C=lr(y=>{let S=new A(y,...a);S.sourceId=C.id,S.subscribe(d)},e,arguments);return C.source=d,Ic.pipe(C),C}return C=>d(new A(C,...a))}}}function Dy(A,e){window.postMessage({source:"fastrx-devtools-backend",payload:{event:A,payload:e}})}var veA=class extends Os{constructor(A,e,o){super(A),this.source=e,this.id=o,this.sourceId=A.sourceId,this.defer(()=>{Ic.defer(this.source,this.id)})}next(A){Ic.next(this.source,this.id,A),this.sink.next(A)}complete(){Ic.complete(this.source,this.id),this.sink.complete()}error(A){Ic.complete(this.source,this.id,A),this.sink.error(A)}},Ic={addSource(A,e){Dy("addSource",{id:A.id,name:A.toString(),source:{id:e.id,name:e.toString()}})},next(A,e,o){Dy("next",{id:A.id,streamId:e,data:o&&o.toString()})},subscribe(A,e){let{id:o,end:a}=A;Dy("subscribe",{id:o,end:a,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(A,e,o){Dy("complete",{id:A.id,streamId:e,err:o?o.toString():null})},defer(A,e){Dy("defer",{id:A.id,streamId:e})},pipe(A){Dy("pipe",{name:A.toString(),id:A.id,source:{id:A.source.id,name:A.source.toString()}})},update(A){Dy("update",{id:A.id,name:A.toString()})},create(A){A.id||(A.id=MeA++),Dy("create",{name:A.toString(),id:A.id})}},a5=class extends Error{constructor(A){super("timeout after ".concat(A,"ms")),this.timeout=A}},g5=class extends j2{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 Zk(){return A=>{let e=new g5(A);if(A instanceof yy){let o=lr(a=>{e.add(a)},"share",arguments);return e.sourceId=o.id,o.source=A,Ic.pipe(o),o}return lr(e.add.bind(e),"share",arguments)}}function kK(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(a=>{let c=new Os(a),d=e.length;c.complete=()=>{--d===0&&a.complete()},e.forEach(c.bindSubscribe)},"merge",arguments)}function c5(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(a=>{let c=new Map;e.forEach(d=>{let C=new Os(a);c.set(d,C),C.complete=()=>{c.delete(d),c.size===0?a.complete():C.dispose()},C.next=y=>{c.delete(d),c.forEach(S=>S.dispose()),C.resetNext(),C.resetComplete(),C.next(y)}}),e.forEach(d=>c.get(d).subscribe(d))},"race",arguments)}function ReA(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(a=>{let c=0,d=e.length,C=new Os(a);C.complete=()=>{c<d&&!C.disposed?(C.doDefer(),C.subscribe(e[c++])):a.complete()},C.complete()},"concat",arguments)}function weA(A){return e=>{let o=new g5(e),a=[];return o.next=function(c){a.push(c),a.length>A&&a.shift(),this.sinks.forEach(d=>d.next(c))},lr(c=>{c.defer(()=>o.remove(c)),a.forEach(d=>c.next(d)),o.add(c)},"shareReplay",arguments)}}function _eA(A,e,o){return lr(a=>A()?e(a):o(a),"iif",arguments)}function l5(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(a=>{let c=e.length,d=c,C=c,y=new Array(c),S=()=>{--C===0&&a.complete()};e.forEach((k,V)=>{let J=new Os(a);J.next=gA=>{d--,J.next=CA=>{y[V]=CA,d===0&&a.next(y)},J.next(gA)},J.complete=S,J.subscribe(k)})},"combineLatest",arguments)}function TeA(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(a=>{let c=e.length,d=c,C=new Array(c),y=()=>{--d===0&&a.complete()};e.forEach((S,k)=>{let V=new Os(a),J=[];C[k]=J,V.next=gA=>{J.push(gA),C.every(CA=>CA.length)&&a.next(C.map(CA=>CA.shift()))},V.complete=y,V.subscribe(S)})},"zip",arguments)}function LK(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return a=>lr(function(c){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length;for(;d<C&&!c.disposed;)c.next(e[d++]);c.disposed||c.subscribe(a)},"startWith",arguments)}var NeA=Ps(class extends Os{constructor(A){super(A);let e=new Os(this.sink);for(var o=arguments.length,a=new Array(o>1?o-1:0),c=1;c<o;c++)a[c-1]=arguments[c];e.next=d=>this.buffer=d,e.complete=tg,e.subscribe(l5(...a))}next(A){this.buffer&&this.sink.next([A,...this.buffer])}},"withLatestFrom"),GeA=Ps(class extends Os{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"),beA=Ps(class extends Os{constructor(A,e){super(A),this.buffer=[];let o=new Os(A);o.next=a=>{A.next(this.buffer),this.buffer=[]},o.complete=tg,o.subscribe(e)}next(A){this.buffer.push(A)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},"buffer"),keA=function(A,e,o,a){return new(o||(o=Promise))(function(c,d){function C(k){try{S(a.next(k))}catch(V){d(V)}}function y(k){try{S(a.throw(k))}catch(V){d(V)}}function S(k){k.done?c(k.value):function(V){return V instanceof o?V:new o(function(J){J(V)})}(k.value).then(C,y)}S((a=a.apply(A,[])).next())})};function EQ(A){let e=arguments,o=Zk()(lr(a=>{o.next=c=>a.next(c),o.complete=()=>a.complete(),o.error=c=>a.error(c),A&&a.subscribe(A)},"subject",e));return o.next=tg,o.complete=tg,o.error=tg,o}function I5(A){return lr(e=>e.subscribe(A()),"defer",arguments)}var r_={promise:A=>{Promise.resolve().then(A)},setImmediate:typeof setImmediate<"u"?A=>setImmediate(A):null,setTimeout:A=>setTimeout(A,0)},UK=typeof Promise<"u"?r_.promise:r_.setImmediate?r_.setImmediate:r_.setTimeout,u5=A=>e=>{UK(()=>A(e))},LeA=A=>{typeof A=="function"?UK=A:r_[A]&&(UK=r_[A])},E5=A=>u5(e=>{for(let o=0;!e.disposed&&o<A.length;o++)e.next(A[o]);e.complete()});function UeA(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return lr(E5(e),"of",arguments)}function FeA(A){return lr(E5(A),"fromArray",arguments)}function d5(A){return lr(e=>{let o=0,a=setInterval(()=>e.next(o++),A);return e.defer(()=>{clearInterval(a)}),"interval"},"interval",arguments)}function FK(A,e){return lr(o=>{let a=0,c=setTimeout(()=>{if(o.removeDefer(d),o.next(a++),e){let C=setInterval(()=>o.next(a++),e);o.defer(()=>{clearInterval(C)})}else o.complete()},A),d=()=>clearTimeout(c);o.defer(d)},"timer",arguments)}function z2(A,e){return o=>{let a=c=>o.next(c);o.defer(()=>e(a)),A(a)}}function OeA(A,e){return lr(z2(A,e),"fromEventPattern",arguments)}function ca(A,e){if("on"in A&&"off"in A)return lr(z2(o=>A.on(e,o),o=>A.off(e,o)),"fromEvent",arguments);if("addListener"in A&&"removeListener"in A)return lr(z2(o=>A.addListener(e,o),o=>A.removeListener(e,o)),"fromEvent",arguments);if("addEventListener"in A)return lr(z2(o=>A.addEventListener(e,o),o=>A.removeEventListener(e,o)),"fromEvent",arguments);throw"target is not a EventDispachter"}function C5(A){return lr(e=>{A.then(o=>{e.next(o),e.complete()},e.error.bind(e))},"fromPromise",arguments)}function PeA(A,e){return lr(I5(()=>C5(fetch(A,e))),"fromFetch",arguments)}function xeA(A){return lr(u5(e=>{try{for(let o of A){if(e.disposed)return;e.next(o)}e.complete()}catch(o){e.error(o)}}),"fromIterable",arguments)}function YeA(A){let e=o=>keA(this,void 0,void 0,function*(){try{if(o.disposed)return;let{done:a,value:c}=yield A.read();if(a)return void o.complete();o.next(c),e(o)}catch(a){o.error(a)}});return lr(o=>{e(o)},"fromReader",arguments)}function VeA(A){return lr(e=>{let o=new AbortController,a=o.signal;e.defer(()=>o.abort("cancelled")),A.pipeTo(new WritableStream({write(c){e.next(c)},close(){e.complete()},abort(c){e.error(c)}}),{signal:a}).then(()=>e.complete(),c=>e.error(c))},"fromReadableStream",arguments)}function JeA(){return lr(A=>{let e=requestAnimationFrame(function o(a){A.disposed||(A.next(a),e=requestAnimationFrame(o))});A.defer(()=>cancelAnimationFrame(e))},"fromAnimationFrame",arguments)}function HeA(A,e){return lr(function(o){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e+A;for(;a<c&&!o.disposed;)o.next(a++);return o.complete(),"range"},"range",arguments)}function qeA(A,e){for(var o=arguments.length,a=new Array(o>2?o-2:0),c=2;c<o;c++)a[c-2]=arguments[c];return lr(d=>{let C=a.concat(y=>(d.next(y),d.complete()));A.apply(e,C)},"bindCallback",arguments)}function KeA(A,e){for(var o=arguments.length,a=new Array(o>2?o-2:0),c=2;c<o;c++)a[c-2]=arguments[c];return lr(d=>{let C=a.concat((y,S)=>y?d.error(y):(d.next(S),d.complete()));A.apply(e,C)},"bindNodeCallback",arguments)}function jeA(){return lr(()=>{},"never",arguments)}function WeA(A){return lr(e=>e.error(A),"throwError",arguments)}function OK(){return lr(A=>A.complete(),"empty",arguments)}var Xk=class extends Os{constructor(A,e,o){super(A),this.f=e;let a=()=>{this.sink.next(this.acc),this.sink.complete()};o===void 0?this.next=c=>{this.acc=c,this.complete=a,this.resetNext()}:(this.acc=o,this.complete=a)}next(A){this.acc=this.f(this.acc,A)}},h5=Ps(Xk,"reduce"),zeA=A=>Ps(Xk,"count")((e,o)=>A(o)?e+1:e,0),ZeA=()=>Ps(Xk,"max")(Math.max),XeA=()=>Ps(Xk,"min")(Math.min),$eA=()=>Ps(Xk,"sum")((A,e)=>A+e,0),VM=Ps(class extends Os{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"),AtA=Ps(class extends Os{next(A){}},"ignoreElements"),a_=Ps(class extends Os{constructor(A,e){super(A),this.count=e}next(A){this.sink.next(A),--this.count===0&&(this.doDefer(),this.complete())}},"take"),IE=Ps(class extends Os{constructor(A,e){super(A);let o=new Os(A);o.next=()=>{o.doDefer(),A.complete()},o.complete=bK,o.subscribe(e)}},"takeUntil"),etA=Ps(class extends Os{constructor(A,e){super(A),this.f=e}next(A){this.f(A)?this.sink.next(A):(this.doDefer(),this.complete())}},"takeWhile"),ttA=A=>h5((e,o)=>(e.push(o),e.length>A&&e.shift(),e),[]),itA=Ps(class extends Os{constructor(A,e){super(A),this.count=e}next(A){--this.count===0&&(this.next=super.next)}},"skip"),otA=Ps(class extends Os{constructor(A,e){super(A),A.next=tg;let o=new Os(A);o.next=()=>{o.doDefer(),A.resetNext()},o.complete=bK,o.subscribe(e)}},"skipUntil"),PK=Ps(class extends Os{constructor(A,e){super(A),this.f=e}next(A){this.f(A)||(this.next=super.next,this.next(A))}},"skipWhile"),stA={leading:!0,trailing:!1},ntA=class extends Os{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)}},B5=class extends Os{constructor(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:stA;super(A),this.durationSelector=e,this.config=o,this._throttle=new ntA(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=tg,this._throttle.complete(),super.complete()}},rtA=Ps(B5,"throttle"),atA={leading:!1,trailing:!0},gtA=A=>Ps(B5,"audit")(A,atA),ctA=class extends Os{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Q5=class extends Os{constructor(A,e){super(A),this.durationSelector=e,this._debounce=new ctA(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()}},ltA=Ps(Q5,"debounce"),ItA=A=>Ps(Q5,"debounceTime")(e=>FK(A)),utA=Ps(class extends Os{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"),EtA=A=>e=>a_(1)(PK(o=>!A(o))(e)),dtA=Ps(class extends Os{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"),CtA=Ps(class extends Os{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"),htA=Ps(class extends Os{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"),BtA=Ps(class extends Os{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"),p5=Ps(class extends Os{constructor(A,e,o){super(A),this.f=e,o===void 0?this.next=a=>{this.acc=a,this.resetNext(),this.sink.next(this.acc)}:this.acc=o}next(A){this.sink.next(this.acc=this.f(this.acc,A))}},"scan"),QtA=Ps(class extends Os{constructor(){super(...arguments),this.hasLast=!1}next(A){this.hasLast?this.sink.next([this.last,A]):this.hasLast=!0,this.last=A}},"pairwise"),m5=class extends Os{constructor(A,e,o){super(A),this.mapper=e,this.thisArg=o}next(A){super.next(this.mapper.call(this.thisArg,A))}},xK=Ps(m5,"map"),ptA=A=>Ps(m5,"mapTo")(e=>A),$k=class extends Os{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()}},AL=class _9 extends Os{constructor(e,o,a){super(e),this.makeSource=o,this.combineResults=a,this.index=0}subInner(e,o){let a=this.currentSink=new o(this.sink,e,this);this.complete===_9.prototype.complete&&(this.complete=this.tryComplete),a.complete=a.tryComplete,a.subscribe(this.makeSource(e,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},f5=class extends $k{},y5=class extends AL{next(A){this.subInner(A,f5),this.next=e=>{this.currentSink.dispose(),this.subInner(e,f5)}}},Z2=Ps(y5,"switchMap");function X2(A){return(e,o)=>A(()=>e,o)}var $2=X2(Ps(y5,"switchMapTo")),mtA=class extends $k{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},D5=class extends AL{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(),mtA),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},ftA=Ps(D5,"concatMap"),ytA=X2(Ps(D5,"concatMapTo")),DtA=class extends $k{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},S5=class extends AL{constructor(){super(...arguments),this.inners=new Set}next(A){this.subInner(A,DtA),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(A=>A.resetComplete()):this.dispose()}},StA=Ps(S5,"mergeMap"),MtA=X2(Ps(S5,"mergeMapTo")),vtA=class extends $k{dispose(){this.context.resetNext(),super.dispose()}},M5=class extends AL{next(A){this.next=tg,this.subInner(A,vtA)}},RtA=Ps(M5,"exhaustMap"),wtA=X2(Ps(M5,"exhaustMapTo")),_tA=Ps(class extends Os{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=EQ(),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"),TtA=Ps(class extends Os{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"),NtA=Ps(class extends Os{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"),GtA=Ps(class extends Os{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:a}=e;super.next(a),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"),v5=Ps(class extends Os{constructor(A,e){super(A),this.selector=e}error(A){this.dispose(),this.selector(A)(this.sink)}},"catchError"),btA=class extends $k{tryComplete(){let A=this.context.inners.delete(this);super.dispose(),A&&this.context.checkComplete()}next(A){this.sink.next(A),this.context.expandValue(A)}},ktA=Ps(class extends AL{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 btA(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"),LtA=()=>A=>new Promise((e,o)=>{let a;new W2(A,c=>a=c,o,()=>e(a))}),UtA=()=>A=>{let e;return new ReadableStream({start(o){e=new W2(A,o.enqueue.bind(o),o.error.bind(o),o.close.bind(o))},cancel(){e.dispose()}})},Bl=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:tg,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:tg,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:tg;return a=>new W2(a,A,e,o)},YK=Ps(class extends Os{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"),FtA=Ps(class extends Os{constructor(A,e){super(A),this.timeout=e,this.id=setTimeout(()=>this.error(new a5(this.timeout)),this.timeout)}next(A){super.next(A),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},"timeout"),OtA=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1/0;return e=>{if(e instanceof yy){let o=lr(a=>{let c=A,d=new Os(a);d.error=C=>{c-- >0?d.subscribe(e):a.error(C)},d.sourceId=o.id,d.subscribe(e)},"retry",[A]);return o.source=e,Ic.pipe(o),o}return o=>{let a=A,c=new Os(o);c.error=d=>{a-- >0?e(c):o.error(d)},e(c)}}},VK=(A=>(A[A.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",A[A.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",A))(VK||{}),eL=class T9 extends GK{constructor(e,o){super({mediaType:e,PlayerClass:o}),Y(this,"isRemote",!1),Y(this,"deviceId"),Y(this,"groupId",""),Y(this,"label",""),Y(this,"sourceTrack"),Y(this,"enableAutoSwitchWhenRecapturing",!0),Y(this,"_isRecapturing",!1),Y(this,"_lastRecaptureTime",0),Y(this,"_onMuteTimeoutId",-1),Y(this,"_encodeCheckTimeoutId",-1),Y(this,"recaptureMode",0),Y(this,"profile"),Y(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(YA.MUTE,this.onTrackMuted),e.addEventListener(YA.UNMUTE,this.onTrackUnmuted),e.addEventListener(YA.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===YA.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(YA.MUTE,this.onTrackMuted),e.removeEventListener(YA.UNMUTE,this.onTrackUnmuted),e.removeEventListener(YA.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return KA(this,null,function*(){var a,c;let d=this.sourceTrack;try{let C,y=ko();F.emit(sA.LOCAL_TRACK_CAPTURE_START,{track:this}),e.customSource?(C=new MediaStream,C.addTrack(e.customSource)):(o||(a=this.sourceTrack)==null||a.stop(),C=yield feA(e));let S=C.getTracks()[0];return yield this.setInputMediaStreamTrack(S),e.customSource||(this.sourceTrack=S,this.updateDeviceIdInUse(),this.listenDeviceChange()),F.emit(sA.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:ko()-y,profile:this.profile,room:(c=this.manager)==null?void 0:c.room}),C}catch(C){throw F.emit(sA.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:C}),this.log.error("getUserMedia error observed ".concat(C)),C}finally{o&&d?.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 a=wp(((e=this.room)==null?void 0:e.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&a.hasVideo||this.mediaType===1&&a.hasAudio||this.mediaType===2&&a.hasAuxiliary}publish(e,o){return KA(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,a)=>KA(this,null,function*(){var c,d,C,y,S;let k=()=>a(new ri({code:Et.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?o():((this.state===Zs.INIT||this.state==="ready")&&k(),ma(ca(e,"local-publish-flag-changed"),VM(()=>this.hasFlag),IE(kK(ca(this,Zs.INIT),ca(this,"ready"))),Bl(o,a,k))),(C=(d=(c=this.room)==null?void 0:c.networkQuality)==null?void 0:d.hadRecentBadUplink)!=null&&C.call(d,2))return o();let V=e.heartbeatCount,J=((S=(y=this.mediaTrack)==null?void 0:y.stats)==null?void 0:S.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>KA(this,null,function*(){var gA,CA,MA,Ae,Qe,Ye,ve,yi;if((MA=(CA=(gA=this.room)==null?void 0:gA.networkQuality)==null?void 0:CA.hadRecentBadUplink)!=null&&MA.call(CA,2)||e.heartbeatCount-V<3)return o();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((Ae=this.mediaTrack)!=null&&Ae.stats){let hi=this.mediaTrack.stats.totalFrames||0;hi-J===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",hi)}let be=this.kind===YA.AUDIO,ht=this.stat.bytesSent>0;if(ti[ht?"addSuccessEvent":"addFailedEvent"]({key:be?503700:513702}),!be){let hi={H264:513704,H265:513705,VP8:513706}[((Ye=(Qe=this.room)==null?void 0:Qe.videoCodec)==null?void 0:Ye.toUpperCase())||"H264"];hi&&ti[ht?"addSuccessEvent":"addFailedEvent"]({key:hi})}if(!ht){if(ti.addEnum({key:be?503701:513703,value:xp()}),sn.uploadEvent({log:"stat-encode-failed-".concat(this.kind,"-").concat(rQ()||Yp()),userId:this.userId}),this.log.warn(be?"encode failed":"".concat((yi=(ve=this.room)==null?void 0:ve.videoCodec)==null?void 0:yi.toUpperCase()," encode failed")),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield LC(5e3),this.stat.bytesSent>0||this.hasFlag)))return o();this.emit("6",this),a(new ri({message:"".concat(this.strMediaType," encode failed"),code:be?Et.AUDIO_ENCODE_FAILED:Et.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),F.emit(sA.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return KA(this,null,function*(){if(this.sourceTrack&&Cy){let{deviceId:e,groupId:o}=this.sourceTrack.getSettings(),{label:a}=this.sourceTrack;(yield function(c){return KA(this,arguments,function(d){let{newDeviceId:C,oldDeviceId:y,oldGroupId:S,oldLabel:k,kind:V}=d;return function*(){return C===y&&(V!==YA.AUDIO||C!==zS||(yield X4(S,k)))}()})}({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=a,o&&(this.groupId=o),J2().then(c=>{let d=c.find(C=>{let y=C.deviceId===e;return o&&(y=y&&C.groupId===o),y});d&&this.emit("2",d)}))}})}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===YA.AUDIO&&!function(o){if(o instanceof CanvasCaptureMediaStreamTrack||!(o instanceof MediaStreamTrack))return!1;let a=o.label.toLocaleLowerCase();if(a.includes("mic")||a.includes("麦克风"))return!0;let c="".concat((o?.getSettings()||{}).deviceId,"_").concat(YA.AUDIO_INPUT);return!!TK.has(c)}(this.sourceTrack)||this.kind===YA.VIDEO&&!function(o){if(o instanceof CanvasCaptureMediaStreamTrack||!(o instanceof MediaStreamTrack))return!1;let a=o.label.toLocaleLowerCase();if(a.includes("camera")||a.includes("webcam"))return!0;let c="".concat((o?.getSettings()||{}).deviceId,"_").concat(YA.VIDEO_INPUT);return!!TK.has(c)}(this.sourceTrack)||this._isRecapturing||e&&iQ&&Bg)}onTrackMuted(){if(super.onTrackMuted(),yeA(),this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<XS)return void setTimeout(()=>this.onTrackMuted(),XS);this._onMuteTimeoutId=setTimeout(()=>KA(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((eg||Ha)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return KA(this,null,function*(){if(NI(T9.prototype,this,"onTrackEnded").call(this),this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<XS)return void setTimeout(()=>this.onTrackEnded(),XS);this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return KA(this,null,function*(){var a;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let c=this.sourceTrack;o||(a=this.sourceTrack)==null||a.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let d={useExactDeviceId:!0};if(e==="user"||e==="environment")d.facingMode=e;else{let C;(this.kind==="audio"?yield Xp():yield $p()).find(y=>y.deviceId===e)&&(C=e),d.deviceId=C}return this.capture(d,o).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),F.emit(sA.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(C=>{this._isRecapturing=!1,this.log.warn("recapture failed ".concat(C.message)),this.emit("5",C),F.emit(sA.LOCAL_TRACK_RECAPTURE,{track:this,error:C})}).finally(()=>{o&&c?.stop()})})}getRecoverCaptureDeviceId(){return KA(this,null,function*(){let e=this instanceof dQ;if(e&&this.facingMode)return this.facingMode;let{deviceId:o}=this;if(o){let a=(iL.get(o)||0)+1;if(iL.set(o,a),a>=3&&this.enableAutoSwitchWhenRecapturing){let c=e?(yield $p()).find(d=>!iL.has(d.deviceId)):(yield Xp()).find(d=>!iL.has(d.deviceId));c&&(this.log.warn("".concat(o," capture fail ").concat(a," times, change new ").concat(c.deviceId)),o=c.deviceId)}}return o})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),F.emit(sA.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()}};Ci([lc(Zs.INIT,"ready",{ignoreError:!0,sync:!0})],eL.prototype,"setStateToReady"),Ci([zk()],eL.prototype,"capture"),Ci([lc("ready","publish",{ignoreError:!0,success(){F.emit(sA.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",a=A instanceof ri?A:A.cause instanceof ri?A.cause:A,c=!1;a instanceof ri&&(a.message.includes("timeout")?o="timeout":a.code===Et.API_CALL_ABORTED&&(c=!0,o="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:o,error:a}),this.log[c?"info":"error"]("publish failed",a)}}),fy(521714,!1)],eL.prototype,"publish"),Ci([jr(A=>function(){return KA(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)})}),lc([],"ready",{sync:!0})],eL.prototype,"unpublish");var tL=eL,iL=new Map;F.on(sA.SWITCH_DEVICE_SUCCESS,A=>{A.track.deviceId&&iL.delete(A.track.deviceId)});var JM=class wL extends tL{constructor(e){super(1,heA),Y(this,"mediaType",1),Y(this,"volume",0),Y(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40}),Y(this,"playerMuted",!0),Y(this,"pipeline"),Y(this,"earMonitorGainNode",new OI),Y(this,"_output",new OI),Y(this,"codecPipeline",[]),Y(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0}),Y(this,"mixedAudioReferenceMap",new Map),Y(this,"isAudioContextLongSuspended",!1),Y(this,"after3aSilenceStartTime",0),Y(this,"_micMuted",!1),Y(this,"_volumeDetectionTrack",null),Y(this,"_volumeDetectionSource",new OI),this.manager=e,this.pipeline=new q4(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),F.on(sA.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return V2.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){Je(e)||(e!==0||this.after3aSilenceStartTime?e>0&&(this.after3aSilenceStartTime=0):this.after3aSilenceStartTime=ko())}setInputMediaStreamTrack(e){return KA(this,null,function*(){let o=this.trackSettings||{};ti.addEnum({key:501701,value:o.channelCount||0,useUV:!1}),ti.addEnum({key:501702,value:o.sampleRate||0,useUV:!1}),ti.addEnum({key:502700,value:0});let{sampleRate:a,channelCount:c}=o;this._log.info("local audio track input ".concat(JSON.stringify({sampleRate:a,channelCount:c}))),this.pipeline.source.channelCount=c||1,this.pipeline.replaceSource(e),yield NI(wL.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(e){return KA(this,arguments,function(o){var a=this;let{deviceId:c,customSource:d,useExactDeviceId:C=!0,retryWhenExactFailed:y}=o,S=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return function*(){let k=yield NI(wL.prototype,a,"capture").call(a,{video:!1,audio:!0,microphoneId:c,echoCancellation:a.profile.echoCancellation,autoGainControl:a.profile.autoGainControl,noiseSuppression:a.profile.noiseSuppression,sampleRate:a.profile.sampleRate,channelCount:a.profile.channelCount,useExactDeviceId:C,retryWhenExactFailed:y,customSource:d},S);return jk(),k}()})}switchDevice(e){return KA(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource&&(e!==zS||(yield X4(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}),F.emit(sA.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(){Pc&&!Pc.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&Pc.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return KA(this,null,function*(){if(e.deviceId===this.deviceId){let o=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(VK[this.recaptureMode],". Current microphone is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){Jg(this.userId,{eventId:2003,param1:6,streamType:1});let a=yield Xp();a[0]?this.recapture(a[0].deviceId):o=!0}o&&Pc.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(Pc.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn("microphone added: ".concat(JSON.stringify(e))),this.recapture(e.deviceId))}update3A(e){return KA(this,arguments,function(o){var a=this;let{echoCancellation:c,noiseSuppression:d,autoGainControl:C}=o;return function*(){let y=a.sourceTrack||a.mediaTrack;if(!y)return;let S=y.getConstraints(),k=!1;!Je(c)&&c!==a.profile.echoCancellation&&(a.profile.echoCancellation=c,S.echoCancellation=c,k=!0),!Je(d)&&d!==a.profile.noiseSuppression&&(a.profile.noiseSuppression=d,S.noiseSuppression=d,k=!0),!Je(C)&&C!==a.profile.autoGainControl&&(a.profile.autoGainControl=C,S.autoGainControl=C,k=!0),k&&(er||Bg?yield y.applyConstraints(S).catch(V=>a._log.warn("update3A failed: ",V)):a.deviceId&&(yield a.recapture(a.deviceId,!0)))}()})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&ti.addEnum({key:502700,value:2})}setMute(e,o){var a;this._cleanupVolumeDetectionTrack(),e==="microphone"?(this._micMuted=!0,this.sourceTrack&&(this.sourceTrack.enabled=!1),o&&this._setupVolumeDetectionTrack(),((a=this.manager)==null?void 0:a.mixWeight)<=1?(this.muted=!0,this._inputTrack&&(this._inputTrack.enabled=!1),this._outputTrack&&(this._outputTrack.enabled=!1),this.emit("mute",this),F.emit(sA.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),F.emit(sA.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),F.emit(sA.TRACK_UNMUTED,{track:this}))}_setupVolumeDetectionTrack(){let e=this.sourceTrack||this.mediaTrack;if(!e)return;this._volumeDetectionTrack=e.clone(),this._volumeDetectionTrack.enabled=!0;let o=x2(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),eg&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(FI().createGain()),this._output.setNode(FI().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!Bg&&!eg)return this.update3A({echoCancellation:e})}addDenoiser(e){var o;id<=92&&((o=this.trackSettings)==null?void 0:o.sampleRate)!==48e3?this._log.warn("denoiser only support sampleRate 48000 before chrome 93"):(ti.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 a=x2(e);if(!a)return;let c=new OI,d=FI().createGain();d.gain.value=1;let C=new OI;c.pipeTo(C).pipeTo(this.pipeline.mixNode),c.setNode(a),C.setNode(d),this.mixedAudioReferenceMap.set(o,[c,C])}unMixAudioReference(e){let[o,a]=this.mixedAudioReferenceMap.get(e)||[];o&&(this.log.info("unMixAudioReference() => ".concat(e)),o.deleteNode(),a?.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,o){let[a,c]=this.mixedAudioReferenceMap.get(e)||[];c!=null&&c.node&&(c.node.gain.value=o/100,this.log.info("setAudioReferenceVolume() => ".concat(e," ").concat(c.node.gain.value)))}addAudioProcessor(e,o,a){this.pipeline.silentNode.setNode(a),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,a]=e;o.deleteNode(),a.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),Pc.off("audioInputAdded",this.handleMicrophoneAdded,this),Pc.off("audioInputRemoved",this.handleMicrophoneRemoved,this),F.off(sA.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return KA(this,null,function*(){try{yield NI(wL.prototype,this,"recapture").call(this,e,o)}catch(a){let c=(yield Xp()).find(d=>d.deviceId!==e);if(!c)throw a;yield NI(wL.prototype,this,"recapture").call(this,c.deviceId)}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((o,a)=>a?a({frame:o,ntp:Lf()}):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(Fp?"":", non-Safari"));let a=this.sourceTrack||this.mediaTrack;a&&this.setOutputMediaStreamTrack(a)}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 A1(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 R5(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1],o=new DataView(A),a=[],c=0;for(;c<o.byteLength;){let d=A1(o,c);if(d===0){c+=1;continue}let C=-1;for(let J=c+d;J<o.byteLength;J+=1)if(A1(o,J)>0){C=J;break}let y=C===-1?o.byteLength:C,S=y-c,k=new ArrayBuffer(S),V=new DataView(k);for(let J=0;J<S;J+=1)V.setUint8(J,o.getUint8(c+J));a.push(new e1(V,e)),c=y}return a}var e1=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=[],a=0;for(let d=A;d<=e;d++){let C=this.dataView.getInt8(d);switch(C){case 0:case 1:case 2:case 3:a===2&&(o.push(3),a=0),C===0?a+=1:a=0,o.push(C);break;default:a=0,o.push(C)}}o.push(this.dataView.getInt8(this.dataView.byteLength-1));let c=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...o]).buffer);this.dataView=c}removePreventionByte(){let{seiPayloadStartIndex:A}=this,e=this.dataView.byteLength-1,o=[],a=0;for(let d=A;d<=e;d++)switch(this.dataView.getInt8(d)){case 0:a++,o.push(this.dataView.getInt8(d));break;case 3:a!==2&&o.push(this.dataView.getInt8(d)),a=0;break;default:o.push(this.dataView.getInt8(d)),a=0}let c=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,A),...o]).buffer);this.dataView=c}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 d=6;d<this.dataView.buffer.byteLength;d+=1){let C=this.dataView.getUint8(d);if(e+=1,C!==255){A+=C;break}A+=255}let o=new ArrayBuffer(A),a=new DataView(o),c=e;for(let d=0;d<o.byteLength;d+=1)a.setInt8(d,this.dataView.getInt8(c+d));return a}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}},PtA=class{constructor(){Y(this,"_seiMessageList",[]),Y(this,"_smallSeiMessageList",[]),Y(this,"_seiPayloadType",243)}encodeSEINalu(A){let e=A.byteLength,o=parseInt(String(e/255),10),a=e%255,c=[];c.push(0,0,0,1,6,this._seiPayloadType);for(let C=0;C<o;C++)c.push(255);c.push(a);let d=new DataView(A);return c.push(...new Uint8Array(d.buffer)),c.push(128),new e1(new DataView(new Uint8Array(c).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,a=new DataView(A);for(let c=0;c<A.byteLength;c++)switch(a.getUint8(c)){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 a=9-this.getNaluCount(A.data);if(a<=0)return 0;let c=o.splice(0,a).reverse().map(this.encodeSEINalu.bind(this)),d=c.reduce((V,J)=>V+J.dataView.byteLength,0),C=new ArrayBuffer(d+A.data.byteLength),y=new DataView(C),S=new DataView(A.data),k=0;for(let V=0;V<c.length;V++)for(let J=0;J<c[V].dataView.byteLength;J++)y.setInt8(k++,c[V].dataView.getInt8(J));for(let V=0;V<A.data.byteLength;V++)y.setInt8(k++,S.getInt8(V));return A.data=C,c.length}return 0}},w5=class M_ extends tL{constructor(e){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,vo),Y(this,"profile",mi({},JS)),Y(this,"avoidCropping",!1),Y(this,"_scaleResolutionDownBy"),Y(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0}),Y(this,"small"),Y(this,"isNeedToSetBandwidth"),Y(this,"muteImage"),Y(this,"manager"),Y(this,"_seiCodec",new PtA),this.manager=e;let o=()=>{var a;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let c=Kd(((a=this.room)==null?void 0:a.sdkAppId)||0)?mb:t0;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(c)),this.setProfile(Qo(mi({},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(Cy&&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 KA(this,null,function*(){var o,a,c;if(Yn(e)){if(this.muteImage===e)return;yield(o=this.manager)==null?void 0:o.deleteWatermark("mute"),yield(a=this.manager)==null?void 0:a.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,NI(M_.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(c=this.manager)==null?void 0:c.deleteWatermark("mute"),this.muteImage=void 0),NI(M_.prototype,this,"setMute").call(this,e)})}capture(e){return KA(this,arguments,function(o){var a=this;let{deviceId:c,facingMode:d,useExactDeviceId:C=!0,customSource:y,retryWhenExactFailed:S=!0}=o;return function*(){let k={audio:!1,video:!0,facingMode:d||a.facingMode,cameraId:c,width:a.profile.width,height:a.profile.height,frameRate:a.profile.frameRate,useExactDeviceId:C,retryWhenExactFailed:S,customSource:y};if(k.facingMode==="environment"){let V=yield a.getDeviceIdWhenUsingBackCamera();V&&(k.cameraId=V)}return NI(M_.prototype,a,"capture").call(a,k)}()})}setProfile(e){var o;let a=this.fallbackProfile(e);if(a.bitrate&&(this.isNeedToSetBandwidth=a.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(a);else{let c=Kd(((o=this.room)==null?void 0:o.sdkAppId)||0)?mb:t0;this.log.warn("Resolution is reset to 1080p, need to upgrade ability here ".concat(c)),super.setProfile(Qo(mi({},this.profile),{width:1920,height:1080}))}}applyProfile(){return KA(this,null,function*(){var e,o;if(!this.mediaTrack)return;let{width:a=0,height:c=0}=(this.sourceTrack||this.mediaTrack).getSettings(),d=a*c,C=this.settings,y=C.height!==this.profile.height||C.width!==this.profile.width||C.frameRate!==this.profile.frameRate;if(y&&(Zd===16&&this.deviceId?yield this.recapture(this.deviceId):(_p(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:S=0,height:k=0}=(this.sourceTrack||this.mediaTrack).getSettings(),V=S*k;return y&&V&&d&&V===d?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:YA.VIDEO,videoType:YA.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},o=this.sourceTrack||this.mediaTrack;return Cy&&o&&Object.assign(e,o.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:M0(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 KA(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),F.emit(sA.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 KA(this,null,function*(){let e;try{if(ak&&!oy&&b2){let o=(yield $p(!0)).map(c=>{var d;return Qo(mi({},c),{capabilities:(d=c.getCapabilities)==null?void 0:d.call(c)})}).filter(c=>{var d,C;return(C=(d=c.capabilities)==null?void 0:d.facingMode)==null?void 0:C.includes("environment")}),a=o[0];o.forEach(c=>{var d,C,y,S;let{capabilities:k}=c;((d=k.width)!=null&&d.max&&(C=k.height)!=null&&C.max?k.width.max*k.height.max:0)>((y=a.capabilities.width)!=null&&y.max&&(S=a.capabilities.height)!=null&&S.max?a.capabilities.width.max*a.capabilities.height.max:0)&&(a=c)}),a!=null&&a.capabilities&&(this._log.info("use max resolution back camera",a),e=a.deviceId)}}catch(o){this._log.warn("get max res camera failed",o)}return e})}updateSmallConfig(e){return KA(this,null,function*(){var o,a;this._log.info("update small stream config: ".concat(JSON.stringify(e)));let c=!this.small;this.small=this.fallbackProfile(e,!0),yield(o=this.manager)==null?void 0:o.update(),c&&(yield(a=this.room)==null?void 0:a.enableSmall(!0)),this.log.info("update small stream config success")})}fallbackProfile(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1],a=e.width>e.height,c=mi({},e);return e.width*e.height<=19200&&Ha&&cE&&(this.log.warn("".concat(o?"small ":"","resolution is ").concat(e.width,"*").concat(e.height,", fallback to 240*180 for android chrome")),c.width=a?240:180,c.height=a?180:240,c.bitrate=Math.max(e.bitrate,150)),e.width*e.height>921600&&m2&&(c.width=a?1280:720,c.height=a?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),Ek(kI,"14.3")&&ny(kI,"14.0",!0)&&this.on("7",()=>{let d=this.profile.width>this.profile.height;this.profile.width*this.profile.height>307200?(this.profile.width=d?640:480,this.profile.height=d?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=d?640:360,this.profile.height=d?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!o&&this.avoidCropping&&(cE||er)&&!V0()&&e.width*e.height<=230400&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,c.width=1280,c.height=720,this.log.warn("capture 720p, scale: ".concat(this._scaleResolutionDownBy))),c}stopSmall(){var e,o;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(o=this.room)==null||o.enableSmall(!1))}listenDeviceChange(){Pc&&!Pc.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&Pc.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return KA(this,null,function*(){if(e.deviceId===this.deviceId){let o=this.recaptureMode===1;if(this.log.warn("RecaptureMode: ".concat(VK[this.recaptureMode],". Current camera is lost: ").concat(JSON.stringify(e))),this.recaptureMode===0){Jg(this.userId,{eventId:2003,param1:7,streamType:2});let a=yield $p();a[0]?this.recapture(a[0].deviceId):o=!0}o&&Pc.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return KA(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(Pc.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 a=o?8:this.mediaType;return this.manager.encodePipeline.reduceRight((c,d)=>d?d({frame:c,mediaType:a}):c,e)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(e=>e)}play(e,o){return Je(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,o)}close(){Pc.off("videoInputAdded",this.handleCameraAdded,this),Pc.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return KA(this,null,function*(){try{yield NI(M_.prototype,this,"recapture").call(this,e)}catch(o){let a=(yield $p()).find(c=>c.deviceId!==e);if(!a)throw o;yield NI(M_.prototype,this,"recapture").call(this,a.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||Je(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Ci([YM(function(A){this.setContentHint(A.contentHint||"motion")})],w5.prototype,"capture");var dQ=w5,_5={};Hh(_5,{REPORT_TYPE:()=>v0,buildSSOPackage:()=>AQ,bytes2ms:()=>p0,calculateScaleResolutionDownNumber:()=>M0,concatArrayBuffers:()=>rM,convertObjectNumberToInt:()=>S0,copyProperties:()=>Xx,deepClone:()=>zf,deepCloneBasic:()=>Zf,deepMerge:()=>Wh,delay:()=>LC,fibonacci:()=>Kf,formatedTime:()=>n2,getConstructorName:()=>tM,getContainerFromElement:()=>xb,getEnv:()=>Wx,getFirst16Bits:()=>a2,getInternalVersion:()=>o2,getLast16Bits:()=>R0,getLoggerUrl:()=>Hf,getMediaStreamTrackInfo:()=>qb,getMuteStateFromFlag:()=>wp,getNetworkType:()=>B0,getNumNetworkType:()=>qf,getReconnectionTimeout:()=>Rp,getStringByteLength:()=>D0,getTestSignalDomain:()=>zx,getTurnServer:()=>s2,getUint32Version:()=>Vb,getValueType:()=>Cg,getViewListFromView:()=>sM,glog:()=>A2,ipv4ToUint32:()=>oM,isArray:()=>wa,isAudioWorkletSupported:()=>e2,isBoolean:()=>Tr,isConstructor:()=>Wf,isEmpty:()=>f0,isFunction:()=>Ra,isLangChinese:()=>Wd,isMediaStreamTrack:()=>Ob,isNumber:()=>bn,isObject:()=>$E,isOverseaSdkAppId:()=>Kd,isPlainObject:()=>gE,isPortrait:()=>Yb,isPromise:()=>jf,isRemoteTrack:()=>Pb,isRotate90Or270:()=>$B,isSetSinkIdSupported:()=>t2,isString:()=>Yn,isUndefined:()=>Je,isVideoMixerOutputTrack:()=>_p,loadImage:()=>nM,loadVideo:()=>r2,ms2bytes:()=>$x,ms2samples:()=>m0,normalizeUrl:()=>Hb,performanceNow:()=>ko,promiseAny:()=>iM,samples2ms:()=>Fb,setNetworkTypeFromWebRTC:()=>Q0,stringify:()=>zd,stringifyIncludeValue:()=>y0,throttlePromise:()=>Jb});var xtA=[-1,-1,1,-1,-1,1,1,1],YtA=[0,0,1,0,0,1,1,1],oL=class G3 extends Zs{constructor(e,o){if(super(),this.context=e,Y(this,"name"),Y(this,"input"),Y(this,"output"),Y(this,"texture"),Y(this,"ctx2d",null),Y(this,"fbo"),Y(this,"width",0),Y(this,"height",0),Y(this,"x",0),Y(this,"y",0),Y(this,"program"),Y(this,"vertexShader"),Y(this,"fragmentShader"),Y(this,"totalFrames",0),Y(this,"dropFrames",0),Y(this,"matchInputSize",!0),Y(this,"texCoordBuffer"),Y(this,"positionBuffer"),Y(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),Y(this,"cost",0),Y(this,"_canvas",null),Y(this,"_image"),Y(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 CQ)e.ctx&&o.create2d&&(typeof OffscreenCanvas=="function"&&Zd!==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 a=e.ctx;this.texCoordBuffer=this.createBuffer(YtA),this.positionBuffer=this.createBuffer(xtA),o.createTexture!==!1&&(this.texture=a.createTexture(),this.useTexture(),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.pixelStorei(a.UNPACK_ALIGNMENT,1)),o.useFbo&&(this.fbo=a.createFramebuffer(),this.useBufferFrame(),this.useTexture(),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,this.width,this.height,0,a.RGBA,a.UNSIGNED_BYTE,null),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,this.texture,0)),o.useDefaultProgram?this.program=e.defaultProgam:(o.vertexShaderSource||o.fragmentShaderSource)&&(this.vertexShader=o.vertexShaderSource?e.createShader(a.VERTEX_SHADER,o.vertexShaderSource):e.defaultVShader,this.fragmentShader=o.fragmentShaderSource?e.createShader(a.FRAGMENT_SHADER,o.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(a){this.context.destroy(new ri({code:Et.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(a.message||a)}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let o=this.context.ctx,a=o.createFramebuffer();return o.bindFramebuffer(o.FRAMEBUFFER,a),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,e,0),a}connect(e){for(var o=arguments.length,a=new Array(o>1?o-1:0),c=1;c<o;c++)a[c-1]=arguments[c];return e.addInput(this,...a),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 VC&&this.render(e)||this.context instanceof CQ&&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,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];(e=this.output)==null||e.removeInput(this,...a),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 VC){let a=this.context.ctx;a.deleteBuffer(this.texCoordBuffer),a.deleteBuffer(this.positionBuffer),this.fbo&&a.deleteFramebuffer(this.fbo),this.texture&&a.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&a.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&a.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&a.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,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];a.forEach((d,C)=>{d&&(e.activeTexture(e.TEXTURE0+C),e.bindTexture(e.TEXTURE_2D,d))})}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,a=o.createBuffer();return o.bindBuffer(o.ARRAY_BUFFER,a),o.bufferData(o.ARRAY_BUFFER,new Float32Array(e),o.STATIC_DRAW),a}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 a=this.context.ctx;a.bindBuffer(a.ARRAY_BUFFER,e),a.bufferData(a.ARRAY_BUFFER,new Float32Array(o),a.STATIC_DRAW)}setAttributes(){let e=this.context.ctx;for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];a.forEach((d,C)=>{e.enableVertexAttribArray(C),e.bindBuffer(e.ARRAY_BUFFER,d),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 a=this.context.ctx;a.texImage2D(a.TEXTURE_2D,0,a.RGBA,e,o,0,a.RGBA,a.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 a=this.context.ctx;a.drawArrays(a.TRIANGLE_STRIP,0,4)}draw2d(e,o,a,c,d,C,y,S,k){let V=!(Je(C)||Je(y)||Je(S)||Je(k));return!(!this.ctx2d||!e)&&(e instanceof ImageData?(V?this.ctx2d.putImageData(e,o,a,C,y,S,k):this.ctx2d.putImageData(e,o,a),this.emit(G3.RENDER,this.ctx2d.canvas)):(V?this.ctx2d.drawImage(e,C,y,S,k,o,a,c,d):this.ctx2d.drawImage(e,o,a,c,d),this.emit(G3.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:a,y:c,width:d,height:C,name:y,cost:S}=this,k=Date.now(),V=(o-this.lastInfo.totalFrames)/((k-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:o,x:a,y:c,width:d,height:C,timestamp:k,fps:V,name:y,cost:S},mi({parent:(e=this.input)==null?void 0:e.getInfo()},this.lastInfo)}createTexture(e){let o=this.context.ctx,a=o.createTexture();return this.useTextures(a),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),a}};Y(oL,"RENDER","render"),Ci([lc(Zs.INIT,"connected",{sync:!0})],oL.prototype,"connect"),Ci([lc("connected",Zs.INIT,{ignoreError:!0,sync:!0})],oL.prototype,"disconnect"),Ci([lc([],"closed",{sync:!0})],oL.prototype,"close");var AC=oL,VtA=ma(d5(250),xK(()=>performance.now()),Zk()),JtA=[0,1,1,1,0,0,1,0],JK=class extends AC{constructor(A,e){super(A,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},e)),Y(this,"_intervalId",0),Y(this,"_sequence",0),Y(this,"checkGLError",!1),Y(this,"checkVisibilityChange"),A instanceof CQ?this.ctx2d=A.ctx||null:A.available&&e!=null&&e.mirrorUpAndDown&&this.setTexBuffer(JtA)}start(A){this.log.info("".concat(this.name," start render ").concat(A," fps")),Nr.clearTask(this._intervalId),this._intervalId=Nr.run("intervalInWorker",()=>{if(A!==this.context.frameRate&&(Nr.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof VC){let e=this.context.ctx.getError();e&&this.context.destroy(new ri({code:Et.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(AC.RENDER,this.context._canvas),!0)}addInput(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),a=1;a<e;a++)o[a-1]=arguments[a];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&&(Nr.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),Nr.clearTask(this._intervalId)}resize(A,e){super.resize(A,e),this.context.setSize(A,e)}close(){super.close(),Nr.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},HK=class extends JK{constructor(A,e){super(A,e),Y(this,"_videoTrack"),Y(this,"_muteOb"),Y(this,"_closedOb",ca(this,"closed")),Y(this,"_subscription"),Y(this,"_canvasContainer"),Number(oQ)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=A.canvas.captureStream().getVideoTracks(),this._muteOb=ca(this._videoTrack,"mute"),ma(ca(this._videoTrack,"ended"),IE(this._closedOb),Bl(()=>{this.context.destroy(new ri({code:Et.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){var A;this._subscription=ma(this._muteOb,IE(this._closedOb),$2((A=5e3,e=>{let o=performance.now();ma(VtA,PK(a=>a-o<A),a_(1))(e)})),VM(()=>{var e;return!((e=this._videoTrack)==null||!e.muted||document.hidden)}),Bl(()=>{this.context.destroy(new ri({code:Et.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()}},HtA=class extends HK{render(A){var e;let o=!((e=this.input)==null||!e.requestFrame(A));if(this.context._canvas2d){let a=this.context._canvas2d.getContext("2d");a.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),a.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height),this.emit(AC.RENDER,this.context._canvas2d)}else this.emit(AC.RENDER,this.context._canvas);return o}},qtA=class extends HK{constructor(A,e,o){super(A,{name:"smallDestination",logger:o}),this.resolution=e}resize(A,e){let o,a=A*e,c=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," ")),a>c?o=a/c:(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=a/19200),super.resize(A/Math.sqrt(o),e/Math.sqrt(o))}},T5=class extends AC{constructor(A,e){super(A,mi({name:"imageSource"},e)),Y(this,"_lastImage"),Y(this,"_totalFrames",0),Y(this,"_autoResize",!1),Y(this,"_canvasRendered"),Y(this,"videoCallbackId",0),Y(this,"waitingFirstFrame",!0),Y(this,"shouldUpdate",!0),this._autoResize=e?.autoResize!==!1,Zd===16&&(this._canvasRendered=EQ(),ma(this._canvasRendered,LK(this._image),Z2(o=>o instanceof HTMLCanvasElement?ca(o,"rendered"):OK()),IE(ca(this,"closed")),Bl(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let A=this.image;this.videoCallbackId&&A.cancelVideoFrameCallback(this.videoCallbackId),jp()&&!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:a,height:c}=this,{image:d}=this;if(d instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:a,videoHeight:c}=d,!a||!c)return!1;d.width=a,d.height=c}else if(d instanceof HTMLImageElement||d instanceof ImageData||d instanceof ImageBitmap){if({width:a,height:c}=d,d!==this._lastImage)this._lastImage=d;else if(a===this.width&&c===this.height)return!0}else d instanceof HTMLCanvasElement||d instanceof OffscreenCanvas?({width:a,height:c}=d,this._lastImage=d):typeof VideoFrame<"u"&&d instanceof VideoFrame&&({displayWidth:a,displayHeight:c}=d,(o=this._lastImage)==null||o.close(),this._lastImage=d);if(!this._autoResize)return!0;if(this.width===a&&this.height===c&&this.totalFrames){if(e){this.useTexture();let C=this.context.ctx;C.texSubImage2D(C.TEXTURE_2D,0,0,0,C.RGBA,C.UNSIGNED_BYTE,d)}}else{if(e){this.useTexture();let C=this.context.ctx;C.texImage2D(C.TEXTURE_2D,0,C.RGBA,C.RGBA,C.UNSIGNED_BYTE,d)}this.resize(a,c)}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)}},N5=class extends T5{constructor(A,e,o){super(A,o),this._player=e,this.name="videoPlayerSource",ma(ca(this._player,fo.PLAYER_STATE_CHANGED),IE(ca(this,"closed")),VM(a=>{let{state:c}=a;return c==="PLAYING"}),Bl(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},g_=class extends N5{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(A,e,o){super(A,new vo({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()}},KtA=class extends AC{constructor(A,e,o){super(A,Qo(mi({name:"textSource"},o),{create2d:!0})),Y(this,"hasChange",!0),Y(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:a}=this;super.resize(A,e),this.color=o,this.font=a}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 a=this.ctx2d.measureText(this.content);e+=a.fontBoundingBoxAscent||a.actualBoundingBoxAscent||0;let c=this.font.match(/(\d+)px/),d=(c?parseInt(c[1],10):16)*o,C=this.content.split(`
|
||
`);for(let y=0;y<C.length;y++)this.ctx2d.fillText(C[y],A,e+y*d)}},sL=class extends Zs{constructor(A){super(),Y(this,"frameRate"),Y(this,"_canvas"),Y(this,"log"),Y(this,"hasAlpha",!1),Y(this,"name"),Y(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 g_(this,A,{logger:this.log,name:e})}createVideoTrackDestination(A){return new HK(this,A)}createVideoImageSource(A,e){return new T5(this,e?Object.assign(e,{logger:this.log,image:A}):{logger:this.log,image:A})}createVideoPlayerSource(A,e){return new N5(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}createTextSource(A,e){return new KtA(this,A,e?Object.assign(e,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};Y(sL,"_ids",0);var nL=class extends sL{constructor(){super(...arguments),Y(this,"defaultProgam"),Y(this,"defaultVShader"),Y(this,"defaultFShader"),Y(this,"ctx"),Y(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(sL._ids++)),A&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",Tb),!this.ctx)throw new ri({code:Et.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 ri({code:Et.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(A){let e="";return A&&(e=A.message,this.error=A,ti.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,a=o.createShader(A);return o.shaderSource(a,e),o.compileShader(a),a}createProgram(A,e){let o=this.ctx,a=o.createProgram();return o.attachShader(a,A),o.attachShader(a,e),o.linkProgram(a),o.getProgramParameter(a,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(a)),a}};Y(nL,"UNAVAILABLE","unavailable"),Ci([lc(Zs.INIT,"created",{sync:!0,fail(A){this.log.error("video gl context create failed",A.cause),ti.addFailedEvent({key:512700,error:A.cause||A})},success(){this.log.info("video context created use webgl"),ti.addSuccessEvent({key:512700})}})],nL.prototype,"create"),Ci([lc("created",Zs.INIT,{ignoreError:!0,sync:!0,success(A){A&&this.emit(nL.UNAVAILABLE,A),this.removeAllListeners()}})],nL.prototype,"destroy");var VC=nL,CQ=class extends sL{constructor(){super(...arguments),Y(this,"ctx")}create(A){if(this.hasAlpha=A.alpha,this._canvas=document.createElement("canvas"),this._canvas.id="trtc_".concat(this.name,"_").concat(sL._ids++),this.ctx=this._canvas.getContext("2d",{alpha:A.alpha,willReadFrequently:A.willReadFrequently}),!this.ctx)throw new ri({code:Et.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,ti.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(),ti.addSuccessEvent({key:512703})}};function jtA(A,e,o,a,c){arguments.length>5&&arguments[5]!==void 0&&arguments[5]&&([o,a]=[a,o]);let d={sWidth:A,sHeight:e,dWidth:o,dHeight:a,sx:0,sy:0,dx:0,dy:0};if(A===0||e===0)return d;switch(c){case void 0:case"fill":break;case"contain":{let C=Math.min(o/A,a/e);d.dWidth=A*C,d.dHeight=e*C,d.dx=(o-d.dWidth)/2,d.dy=(a-d.dHeight)/2;break}case"cover":{let C=Math.max(o/A,a/e),y=o/C,S=a/C;d.sx=(A-y)/2,d.sy=(e-S)/2,d.sWidth=y,d.sHeight=S;break}}return d}Ci([lc(Zs.INIT,"created",{sync:!0,fail(A){this.log.error("video 2d context create failed",A.cause),ti.addFailedEvent({key:512701,error:A.cause||A})},success(){this.log.info("video context created use 2d"),ti.addSuccessEvent({key:512701})}})],CQ.prototype,"create"),Ci([lc("created",Zs.INIT,{ignoreError:!0,sync:!0})],CQ.prototype,"destroy");var WtA=class{constructor(A,e){this.node=A,this.layout=e,Y(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}},G5=class extends AC{constructor(A,e){super(A,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:e}),Y(this,"inputs",[]),Y(this,"backgroundColor","black")}addInput(A,e){let o=0,a=this.inputs.length;for(;o<a;){let d=Math.floor((o+a)/2);if(this.inputs[d].layout.zIndex<e.zIndex)o=d+1;else{if(!(this.inputs[d].layout.zIndex>e.zIndex))throw new Error("input already exists at zIndex ".concat(e.zIndex));a=d}}let c=new WtA(A,e);this.inputs.splice(o,0,c)}changeInputLayout(A,e){let o=this.inputs.findIndex(gA=>gA.node===A);if(o<0)return;let{x:a,y:c,width:d,height:C,zIndex:y,fillMode:S,rotation:k,hidden:V}=e;if(!Je(y)&&this.inputs.some(gA=>gA.layout.zIndex===y&&gA.node!==A))throw new Error("input already exists at zIndex ".concat(e.zIndex));let J=this.inputs[o];Je(a)||(J.layout.x=a),Je(c)||(J.layout.y=c),Je(d)||(J.layout.width=d),Je(C)||(J.layout.height=C),Je(k)||(J.layout.rotation=k),Je(V)||(J.layout.hidden=V),S&&(J.layout.fillMode=S),!Je(y)&&y!==J.layout.zIndex&&(J.layout.zIndex=y,this.inputs.sort((gA,CA)=>gA.layout.zIndex-CA.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((a,c)=>c?Object.assign(a,{width:Math.max(a.width,c.right),height:Math.max(a.height,c.bottom)}):a,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof VC&&this.inputs.forEach(a=>{if(a){let c=this.layout2texCoords(a);a.positionBuffer?this.changeBufferData(a.positionBuffer,c):a.positionBuffer=this.createBuffer(c)}})}connect(A){for(var e=arguments.length,o=new Array(e>1?e-1:0),a=1;a<e;a++)o[a-1]=arguments[a];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,a)=>a.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 a=this.inputs[o];a&&(a.node.useTexture(),this.draw(a.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 a=jtA(o.node.width,o.node.height,o.width,o.height,o.fillMode,$B(o.rotation));this.draw2d(o.node.image,o.x+a.dx,o.y+a.dy,a.dWidth,a.dHeight,a.sx,a.sy,a.sWidth,a.sHeight)}return!0}return!1}debugLayout(A,e,o,a){let c=arguments.length>4&&arguments[4]!==void 0&&arguments[4];this.ctx2d&&(c&&([o,a]=[a,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(A,e,o,a),this.ctx2d.restore())}getInfo(){let{totalFrames:A,x:e,y:o,width:a,height:c,name:d}=this,C=Date.now(),y=(A-this.lastInfo.totalFrames)/((C-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:A,x:e,y:o,width:a,height:c,timestamp:C,fps:y,name:d},mi({parent:this.inputs.filter(S=>S).map(S=>S.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(A=>{var e;if(A.node.disconnect(),A.positionBuffer&&this.context instanceof VC)try{(e=this.context.ctx)==null||e.deleteBuffer(A.positionBuffer)}catch{}})}close(){super.close(),this.removeAllInputs()}},ztA=[1,0,0,0,1,1,0,1],Sy=class extends AC{constructor(A,e,o,a){if(super(A,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:e}),Y(this,"mirror",!1),Y(this,"rotation",0),o&&(this.mirror=o),a&&(this.rotation=a),A instanceof VC)try{this.setTexBuffer(ztA)}catch(c){A.destroy(new ri({code:Et.VIDEO_MANAGER_ERROR,extraCode:3,message:"create video node ".concat(this.name," error ").concat(c.message||c)}))}}draw2d(A,e,o,a,c){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(a,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(c/a,a/c)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,c),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(c/a,a/c));let d=super.draw2d(A,e,o,a,c);return this.ctx2d.restore(),d}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){$B(this.rotation)&&([A,e]=[e,A]),super.resize(A,e)}},qK=class extends tL{constructor(A){super(arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,vo),Y(this,"inputLocalVideoTracks",new Map),Y(this,"inputLocalScreenTracks",new Map),Y(this,"cameraNodeMap",new Map),Y(this,"screenNodeMap",new Map),Y(this,"textNodeMap",new Map),Y(this,"imageNodeMap",new Map),Y(this,"videoNodeMap",new Map),Y(this,"endedIds",new Set),Y(this,"videoContext"),Y(this,"mixNode"),Y(this,"destination"),Y(this,"manager"),Y(this,"stat"),Y(this,"_checkId",0),Y(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(AC.RENDER,e=>{this.emit("render",e)}),this.mixNode=new G5(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=Nr.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:A})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new CQ({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 c of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])c.shouldUpdate=!1;let e=null,o=0,a=!0;for(let[c,d]of this.inputLocalVideoTracks)if(d.profile.frameRate>o){if(this.endedIds.has(c)){let C=this.cameraNodeMap.get(c);C&&C.image.cancelVideoFrameCallback(C.videoCallbackId);continue}o=d.profile.frameRate,e=c}for(let[c,d]of this.inputLocalScreenTracks)if(d.profile.frameRate>o){if(this.endedIds.has(c)){let C=this.screenNodeMap.get(c);C&&C.image.cancelVideoFrameCallback(C.videoCallbackId);continue}o=d.profile.frameRate,e=c,a=!1}if(e!==null){let c=a?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);c&&(c.shouldUpdate=!0,c.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 KA(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),Fp&&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 a,{mediaTrack:c}=e;if(!c)throw new Error("no mediaTrack, add cameraSource failed");e.recaptureMode=1,rd(this,Pc).add("videoInputRemoved",d=>{d.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)}),a=Zd===16&&c instanceof CanvasCaptureMediaStreamTrack?this.videoContext.createVideoImageSource(c.canvas,{name:"cameraCanvasSource",logger:this.log}):this.videoContext.createVideoTrackSource(c,"cameraNodeSource"),a.resize(e.settings.width,e.settings.height),a.shouldUpdate=!1,this._connectMix(a,o,"cover"),this.inputLocalVideoTracks.set(A,e),this.cameraNodeMap.set(A,a),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:a}=e;if(!a)throw new Error("no mediaTrack, add screenSource failed");e.on("output-media-track-changed",()=>{this.updateScreenSource(A,o,e.mediaTrack)});let c=this.videoContext.createVideoTrackSource(a,"screenNodeSource");c.resize(e.settings.width,e.settings.height),c.shouldUpdate=!1,this._connectMix(c,o),this.inputLocalScreenTracks.set(A,e),this.screenNodeMap.set(A,c),this.setFpsAuto()}addTextSource(A){let{id:e,content:o="",font:a,color:c,layout:d}=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:a,color:c});C.resize(d.width,d.height),this._connectMix(C,d),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 a=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});a.resize(e.width,e.height),this._connectMix(a,o),this.imageNodeMap.set(A,a)}addVideoSource(A,e,o){if(this.videoNodeMap.has(A))throw new Error("There is already a videoSource with the same ID: ".concat(A));let a=this.videoContext.createVideoImageSource(e,{autoResize:!1,logger:this.log});a.resize(e.videoWidth,e.videoHeight),a.shouldUpdate=!1,this._connectMix(a,o),this.videoNodeMap.set(A,a)}updateCameraSource(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=arguments.length>3?arguments[3]:void 0,c=this.inputLocalVideoTracks.get(A);c&&o&&o!==c.mediaTrack&&(this.log.debug("updateCameraSource mixerLocalVideoTrack newTrack:",o,"oldTrack:",c.mediaTrack),c.setInputMediaStreamTrack(o));let d=this.cameraNodeMap.get(A);if(d){if(o){if(Zd===16&&o instanceof CanvasCaptureMediaStreamTrack)if(d instanceof g_){let S=d.output;d.close(),d=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),d.connect(S),this.cameraNodeMap.set(A,d)}else d.image=o.canvas;else if(d instanceof g_)d.replaceTrack(o);else{let S=d.output;d.close(),d=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),d.connect(S),this.cameraNodeMap.set(A,d)}let{width:C,height:y}=o.getSettings();C&&y&&d.resize(C,y)}a&&d.resize(a.width,a.height),(a||o)&&this.setFpsAuto(),this._changeMixLayout(d,e)}}updateScreenSource(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,a=this.inputLocalScreenTracks.get(A);this.log.debug("updateScreenSource mixerLocalScreenTrack",a,o),a&&o&&o!==a.mediaTrack&&a.setInputMediaStreamTrack(o);let c=this.screenNodeMap.get(A);c&&(o&&c.replaceTrack(o),this._changeMixLayout(c,e))}updateTextSource(A){let{id:e,content:o,font:a,color:c,layout:d}=A,C=this.textNodeMap.get(e);C&&(Je(o)||(C.content=o),Je(a)||(C.font=a),Je(c)||(C.color=c),C.resize(d.width,d.height),this._changeMixLayout(C,d))}updateImageSource(A,e,o){let a=this.imageNodeMap.get(A);a&&(o&&(a.image=o,a.resize(o.width,o.height)),this._changeMixLayout(a,e))}updateVideoSource(A,e,o){let a=this.videoNodeMap.get(A);if(a){if(o){let c=a.image;c instanceof HTMLVideoElement&&this.stopVideoElement(c),a.image=o,a.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(a,e)}}_connectMix(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"contain";if(!this.mixNode)return;let{mirror:a,rotation:c}=e;A.disconnect();let d=new Sy(this.videoContext,this.log,a,c);d=A.connect(d),e.fillMode||(e.fillMode=o),d.connect(this.mixNode,e)}_changeMixLayout(A,e){if(!this.mixNode)return;let{mirror:o,rotation:a}=e,c=A.output||A;c instanceof Sy&&(Je(o)||(c.mirror=o),Je(a)||(c.rotation=a),c.resize(A.width,A.height)),this.mixNode.changeInputLayout(c,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 Sy&&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 Sy&&o.output.close(),o.close(),this.screenNodeMap.delete(A)),this.checkAfterRemove(!0)}removeTextSource(A){let e=this.textNodeMap.get(A);e&&(e.output instanceof Sy&&e.output.close(),e.close(),this.textNodeMap.delete(A)),this.checkAfterRemove()}removeImageSource(A){let e=this.imageNodeMap.get(A);e&&(e.output instanceof Sy&&e.output.close(),e.close(),this.imageNodeMap.delete(A)),this.checkAfterRemove()}removeVideoSource(A){let e=this.videoNodeMap.get(A);e&&(e.output instanceof Sy&&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(),Nr.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(),kn(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")}},KK=PA();if(typeof navigator<"u"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:KK,exposeOrigin:!0,permittedOrigins:["*"]})}catch{}var ZtA=function(A){return KA(this,null,function*(){let e=null,o=function(d){let C={preferCurrentTab:d.preferDisplaySurface==="current-tab"||!!d.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},y={width:Bg?{max:d.width}:{ideal:d.width,max:d.width},height:Bg?{max:d.height}:{ideal:d.height,max:d.height},frameRate:d.frameRate,displaySurface:d.preferDisplaySurface||"monitor"};if(C.video=y,d.systemAudio){let{echoCancellation:S=!0,noiseSuppression:k=!1,autoGainControl:V=!1}=d;C.audio={echoCancellation:S,noiseSuppression:k,autoGainControl:V,sampleRate:48e3}}return C}(A);QA.info("getDisplayMedia with constraints: ".concat(JSON.stringify(o)));let a=yield navigator.mediaDevices.getDisplayMedia(o);A.systemAudio&&a.getAudioTracks().length===0&&(x0&&id<74||Bg||er)&&QA.warn("Your browser not support capture system audio");let c=a.getVideoTracks()[0];if(c){if(A.frameRate)try{yield c.applyConstraints({frameRate:{min:A.frameRate,ideal:A.frameRate},width:A.width,height:A.height})}catch(d){QA.warn("screen applyConstraints failed: ".concat(d))}A.captureElement&&(yield function(d,C){return KA(this,null,function*(){var y;if("CropTarget"in window&&"fromElement"in CropTarget&&Ra(d.cropTo))try{if(((y=d.getCaptureHandle())==null?void 0:y.handle)!==KK)return;let S=yield CropTarget.fromElement(C);yield d.cropTo(S)}catch(S){QA.warn("cropTo target failed ".concat(S))}})}(c,A.captureElement))}if(A.audio){let d=function(C){let y={echoCancellation:C.echoCancellation,autoGainControl:C.autoGainControl,noiseSuppression:C.noiseSuppression,sampleRate:C.sampleRate,channelCount:C.channelCount};return Je(C.microphoneId)||(y.deviceId=C.microphoneId),{audio:y,video:!1}}(A);QA.info("getUserMedia with constraints: ".concat(JSON.stringify(d))),e=yield navigator.mediaDevices.getUserMedia(d),a.addTrack(e.getAudioTracks()[0])}return a})},HM=class extends dQ{constructor(A){super(A,2),Y(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),Y(this,"objectFit","contain"),Y(this,"isScreen",!0),this._log.id="s-".concat(this._log.id)}get isShareCurrentTab(){var A,e;try{return KK===((e=(A=this.mediaTrack)==null?void 0:A.getCaptureHandle())==null?void 0:e.handle)}catch{return}}capture(A){return KA(this,arguments,function(e){var o=this;let{systemAudio:a=!1,autoGainControl:c,echoCancellation:d,noiseSuppression:C,audioTrack:y,videoTrack:S,captureElement:k,preferDisplaySurface:V}=e;return function*(){var J;try{let gA,CA=ko();return S||y?(gA=new MediaStream,S&&gA.addTrack(S),y&&gA.addTrack(y)):(gA=yield ZtA({audio:!1,systemAudio:a,width:o.profile.width,height:o.profile.height,frameRate:o.profile.frameRate,autoGainControl:c,echoCancellation:d,noiseSuppression:C,captureElement:k,preferDisplaySurface:V}),o.sourceTrack=gA.getVideoTracks()[0]),yield o.setInputMediaStreamTrack(gA.getVideoTracks()[0]),F.emit(sA.LOCAL_TRACK_CAPTURE_SUCCESS,{track:o,cost:ko()-CA,profile:o.profile,room:(J=o.manager)==null?void 0:J.room}),gA}catch(gA){throw o.log.error("getDisplayMedia error observed ".concat(gA)),gA instanceof ri?gA:new ri({code:Et.INITIALIZE_FAILED,name:gA.name,message:gA.message})}}()})}switchDevice(A){return KA(this,null,function*(){throw new Error("Method not implemented.")})}};Ci([YM(function(A){this.setContentHint(A.contentHint||"detail")})],HM.prototype,"capture");var jK,WK=class extends JM{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 zK(A){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:48e3,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,a=arguments.length>3?arguments[3]:void 0;return KA(this,null,function*(){let c=FI();jK||(jK=Vg(c,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 jK;let d=c.sampleRate,C=new AudioWorkletNode(c,"dumper",{numberOfInputs:A.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:d,targetSampleRate:e}});return C.channelCountMode="explicit",C.channelCount=o,a&&C.port.postMessage({port:a},[a]),A.forEach((y,S)=>y.connect(C,0,S)),new ReadableStream({start(y){C.port.onmessage=S=>{y.enqueue(S.data)}},cancel(){A.forEach(y=>y.disconnect(C)),C.port.close()}})})}var XtA=class extends ueA{constructor(A){super(),this.room=A,Y(this,"_localAudioTrack"),Y(this,"_localScreenAudioTrack"),Y(this,"log"),Y(this,"denoiser"),Y(this,"voiceChanger"),Y(this,"mixChangedDebounce"),Y(this,"audioProcessor"),Y(this,"encodePipeline",[]),Y(this,"decodePipeline",[]),Y(this,"getPCMAbortCtrlMap",new Map),Y(this,"audioFrameEventConfigMap",new Map),Y(this,"audioReferenceMap",new Map),Y(this,"isLocalAudioNeedAudioProcess",!1),Y(this,"isScreenAudioNeedAudioProcess",!1),this.log=QA.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 a=[],c=[];(e=this._localAudioPipline)!=null&&e.source.node&&(a.push(this._localAudioPipline.source.node),c.push("mic")),(o=this._localAudioPipline)!=null&&o.denoiser.node&&(a.push(this._localAudioPipline.denoiser.node),c.push("mic-processed")),this.mixWeight>1&&(a.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),c.push("mix")),this.log.info("dump audio track ".concat(c,", duration: ").concat(A));let d=new AbortController,C=[],y=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),d.abort("timeout")},1e3*A),S=()=>{for(let V=0;V<c.length;V++){let J=URL.createObjectURL(new Blob(C[V])),gA=document.createElement("a");gA.href=J,gA.download="".concat(c[V],".pcm"),gA.style.display="none",document.body.appendChild(gA),gA.click(),URL.revokeObjectURL(J),gA.remove()}clearTimeout(y),d.abort("download")},k=zK(a).then(V=>V.pipeTo(new WritableStream({write(J){J.forEach((gA,CA)=>C[CA]=C[CA]?C[CA].concat(gA[0]):[gA[0]])}}),d).catch(J=>S));return{then:k.then.bind(k),download:S}}getPCM(A,e){var o,a,c;if(typeof WritableStream>"u")return void this.log.warn("getPCM failed: browser not support WritableStream");let{enable:d,sampleRate:C=48e3,channelCount:y=1,port:S}=(e===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(e)||this.audioFrameEventConfigMap.get("*"))||{};if(!d)return;this.log.info("getPCM ".concat(e||"local"));let k,V,J=Math.floor(.04*C),gA=new Float32Array(J),CA=new Float32Array(J),MA=0,Ae=new AbortController,Qe=e===""?(o=this._localAudioTrack)==null?void 0:o.mediaTrack:(c=(a=this.room)==null?void 0:a.remotePublishedUserMap.get(e))==null?void 0:c.remoteAudioTrack.mediaTrack;if(Qe)return zK([FI().createMediaStreamSource(new MediaStream([Qe]))],C,y,S).then(Ye=>Ye.pipeTo(new WritableStream({write(ve){ve[0][0]&&(MA+ve[0][0].length>J?(gA.set(ve[0][0].subarray(0,J-MA),MA),k=ve[0][0].subarray(J-MA),ve[0][1]&&(CA.set(ve[0][1].subarray(0,J-MA),MA),V=ve[0][1].subarray(J-MA)),MA+=J-MA):(k&&(gA.set(k,MA),MA+=k.length,k=void 0),V&&(CA.set(V,MA),V=void 0),gA.set(ve[0][0],MA),ve[0][1]&&CA.set(ve[0][1],MA),MA+=ve[0][0].length),MA>=J&&(MA=0,A({userId:e,sampleRate:C,channelCount:y,data:y===1?gA:[gA,CA]}),gA=new Float32Array(J),CA=new Float32Array(J)))}}),Ae).catch(ve=>this.log.warn("stop getPCM reason:".concat(ve)))),Ae;this.log.info("getPCM failed: ".concat(e||"local"," has no audio track"))}get hasScreenAudioTrack(){return!Je(this._localScreenAudioTrack)}get hasAudioTrack(){return!Je(this._localAudioTrack)}changeInput(A){var e,o;return A instanceof WK?(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((a,c)=>{A.mixAudioReference(a,c)})),A.pipeline.connect(),this.mixOnChange()):A instanceof JM?(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((a,c)=>{A.mixAudioReference(a,c)})),A.pipeline.connect(),this.mixOnChange()):A instanceof i1?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 WK?delete this._localScreenAudioTrack:A instanceof JM&&delete this._localAudioTrack}addDenoiser(A){var e;this.denoiser=A,(e=this._localAudioTrack)==null||e.addDenoiser(A)}addAudioProcessor(A,e,o,a){var c;this.audioProcessor={localAudioWorkletNode:o,mixNode:A,silentNode:e,screenAudioWorkletNode:a},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,A,e),this.audioReferenceMap.forEach((d,C)=>{var y;(y=this._localAudioTrack)==null||y.mixAudioReference(d,C)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&a&&((c=this._localScreenAudioTrack)==null||c.addAudioProcessor(a,A,e),this.audioReferenceMap.forEach((d,C)=>{var y;(y=this._localScreenAudioTrack)==null||y.mixAudioReference(d,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,a;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(A),(a=this._localScreenAudioTrack)==null||a.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 a;this.encodePipeline.includes(e)||(this.encodePipeline[o]=e,(a=this.room)==null||a.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:o}=A;var a;this.decodePipeline.includes(e)||(this.decodePipeline[o]=e,(a=this.room)==null||a.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 a;if(e!==this.room||this.getPCMAbortCtrlMap.get(o))return;let c=this.getPCM(d=>{var C;(C=this.room)==null||C.emit("audio-frame",d)},"");this.getPCMAbortCtrlMap.set(o,c),this.getPCMAbortCtrlMap.get(o)&&((a=this._localAudioTrack)==null||a.on("input-media-track-changed",()=>{let d=this.getPCMAbortCtrlMap.get(o);d&&(d.abort("inputMediaTrackChanged"),d=this.getPCM(C=>{var y;(y=this.room)==null||y.emit("audio-frame",C)},""),this.getPCMAbortCtrlMap.set(o,d))}))}handleLocalTrackStopped(A){let{room:e,userId:o}=A;if(e!==this.room)return;let a=this.getPCMAbortCtrlMap.get(o);a&&(a.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(o))}handleRemoteTrackStarted(A){let{room:e,userId:o}=A;if(e===this.room&&!this.getPCMAbortCtrlMap.get(o)){let a=this.room.audioManager.getPCM(c=>{var d;(d=this.room)==null||d.emit("audio-frame",c)},o);this.getPCMAbortCtrlMap.set(o,a)}}handleRemoteTrackStopped(A){let{room:e,userId:o}=A;if(e!==this.room)return;let a=this.getPCMAbortCtrlMap.get(o);a&&(a.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(o))}installEvent(){F.on("113",this.handleLocalTrackStarted,this),F.on("114",this.handleLocalTrackStopped,this),F.on("115",this.handleRemoteTrackStarted,this),F.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){F.off("113",this.handleLocalTrackStarted),F.off("114",this.handleLocalTrackStopped),F.off("115",this.handleRemoteTrackStarted),F.off("116",this.handleRemoteTrackStopped)}updateAudioReference(A){let{type:e,audioReference:o,refId:a,volume:c}=A;if(e==="add"){if(this.audioReferenceMap.get(a)||!o||(this.audioReferenceMap.set(a,o),!this.audioProcessor))return;this.mixAudioReference(o,a)}else if(e==="remove")this.audioReferenceMap.get(a)&&(this.audioReferenceMap.delete(a),this.unMixAudioReference(a));else if(e==="updateVolume"){if(!this.audioProcessor||Je(c))return;this.setAudioReferenceVolume(a,c)}}};function t1(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:30,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return jr((o,a)=>function(){for(var c=arguments.length,d=new Array(c),C=0;C<c;C++)d[C]=arguments[C];return new Promise((y,S)=>{let k=setTimeout(()=>{let V=new ri({code:Et.API_CALL_TIMEOUT,message:"checkPendingPromise ".concat(a,"() timeout ").concat(A,"s")});(this.log||this._log||QA).warn(V),e===2?S(V):e===1&&y()},1e3*A);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(k),o.apply(this,d).then(y,S).finally(()=>{clearTimeout(k),this._checkPendingPromiseSet&&k&&this._checkPendingPromiseSet.delete(k)})})})}var qM=class b3 extends GK{constructor(e,o,a){super({userId:o.userId,sdkAppId:e.sdkAppId,mediaType:a,room:e}),this.room=e,this.user=o,Y(this,"tinyId"),Y(this,"isRemote",!0),Y(this,"jitterBufferDelay",0),Y(this,"availableState"),Y(this,"remotePublishState"),Y(this,"_triggerCheckDecodeSubject",EQ(ca(this,b3.STATE_SUBSCRIBE))),Y(this,"ignoreUpdatePlayingState"),this.tinyId=o.tinyId,this.availableState=new Zs("".concat(o.userId,"-").concat(this.mediaType,"-available"),"remote-track-available"),this.remotePublishState=new Zs("".concat(o.userId,"-").concat(this.mediaType,"-remote-publish"),"remote-track-publish"),ma(kK(ca(this,Zs.STATECHANGED),ca(this.remotePublishState,Zs.STATECHANGED)),xK(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Bl(y=>{this.availableState.state!==(y?Zs.ON:Zs.OFF)&&(this.availableState.state=y?Zs.ON:Zs.OFF),(!this.isRemotePublished||!this.ignoreUpdatePlayingState)&&this.updatePlayingState(y)}));let c=ma(ca(this.player,fo.ERROR),VM(y=>y.code===MediaError.MEDIA_ERR_DECODE)),d=ma(FK(5e3),VM(()=>!!(!this.ignoreDecodeError&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived&&this.isRemotePublished)&&(!this.player.isPlaying&&!(this.kind===YA.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)||(this.reportDecodeResult(!0),!1)))),C=ma(c5(c,d),IE(ca(this,Zs.INIT)));ma(this._triggerCheckDecodeSubject,VM(()=>!this.ignoreDecodeError),$2(C),Bl(y=>{this.reportDecodeResult(!1,y)}))}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,a,c;return(c=(a=(o=(e=this.room)==null?void 0:e.networkQuality)==null?void 0:o.hadRecentBadDownlink)==null?void 0:a.call(o,2))!=null&&c||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===b3.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Zs.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 a,c;let d=this.kind===YA.AUDIO;if(ti[e?"addSuccessEvent":"addFailedEvent"]({key:d?504700:514702}),!d){let C=((a=this.room)==null?void 0:a.downlinkVideoCodec.toUpperCase())||"H264";ti[e?"addSuccessEvent":"addFailedEvent"]({key:Ey["DECODE_".concat(C,"_RESULT")]}),e||this.log.warn("".concat((c=this.room)==null?void 0:c.downlinkVideoCodec," decode failed"))}e||(ti.addEnum({key:d?504701:514703,value:xp()}),sn.uploadEvent({log:"stat-decode-failed-".concat(this.kind,"-").concat(rQ()||Yp()),userId:this.room.userId}),this._log.warn("decode failed: isPlaying: ".concat(this.player.isPlaying," ").concat(this.kind===YA.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?Zs.ON:Zs.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};Y(qM,"STATE_SUBSCRIBE","subscribe"),Ci([t1(5,1)],qM.prototype,"waitHasMediaTrack"),Ci([lc(Zs.INIT,qM.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),F.emit(sA.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),fy(521716,!1)],qM.prototype,"subscribe"),Ci([lc(qM.STATE_SUBSCRIBE,Zs.INIT,{sync:!0,success(){this.log.info("unsubscribed"),F.emit(sA.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],qM.prototype,"unsubscribe");var b5=qM,i1=class extends b5{constructor(A,e){super(A,e,1),Y(this,"volume",0),Y(this,"mediaType",1),Y(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0}),this.manager=A.audioManager}get dbVolume(){return V2.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&&$0().AudioDecoder&&Kp)}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(A){if(!this.manager)return A;let e=A;for(let[o,a]of this.manager.decodePipeline.entries()){if(!a)continue;let c={frame:A,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(c.onAudioFrameNTPTime=d=>{let{ntp:C,frame:y,hasLeavingTag:S}=d;this.emit("audio-frame-with-ntp",{ntp:C,frame:y,hasLeavingTag:S})}),e=a(c),!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}},$tA=class extends AC{constructor(A,e,o,a,c){super(A,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:e}),this.setContainer=a,Y(this,"initStat",{alphaStitchingType:1}),Y(this,"end",EQ()),Y(this,"minSize",320),Y(this,"maxSize",1280),Y(this,"draggable",!1),Y(this,"startDragX",0),Y(this,"startDragY",0),Y(this,"left",0),Y(this,"top",0),Y(this,"baseWidth",320),Y(this,"baseRatio"),Y(this,"container"),this.initStat=c,this.draggable=o,this.bindDragEvents(),ti.addEnum({key:515700,value:1}),this.draggable&&ti.addEnum({key:515700,value:11})}bindDragEvents(){let A=this.context._canvas;if(A)if(this.draggable){let e=IE(this.end);ma(ca(A,"mousedown"),YK(this.startDrag.bind(this)),Z2(()=>ma(ca(window,"mousemove"),IE(ca(window,"mouseup")))),e,Bl(this.doDrag.bind(this))),ma(ca(A,"dblclick"),e,Bl(this.resetPosition.bind(this))),ma(ca(A,"wheel"),e,Bl(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,a,c){var d;let{ctx2d:C}=this,y=this.context._canvas;if(!C||!y)return!1;let S=super.draw2d(A,e,o,a,c),k=C.getImageData(0,0,a,c),{data:V}=k,J=!1;if(this.initStat.alphaStitchingType===1){let gA=Math.floor(a/2);for(let CA=0;CA<c;CA++)for(let MA=0;MA<gA;MA++){let Ae=4*(CA*a+MA),Qe=4*(CA*a+(MA+gA)),Ye=V[Qe];V[Qe+3]=0;let ve=Ye>=100;V[Ae+3]=ve?255:0}J=super.draw2d(k,0,0,0,0,gA,c),y.width=gA}else if(this.initStat.alphaStitchingType===2){let gA=Math.floor(c/2);for(let CA=0;CA<gA;CA++)for(let MA=0;MA<a;MA++){let Ae=4*(CA*a+MA),Qe=4*((CA+gA)*a+MA),Ye=V[Qe];V[Qe+3]=0;let ve=Ye>=100;V[Ae+3]=ve?255:0}J=super.draw2d(k,0,0,0,0,a,gA),y.height=gA}return(d=this.context.ctx)==null||d.clearRect(0,0,a,c),S&&J}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}},rL=class extends b5{constructor(A,e){super(A,e,arguments.length>2&&arguments[2]!==void 0?arguments[2]:4),Y(this,"mediaType",4),Y(this,"source"),Y(this,"shouldRenderAlpha",!1),Y(this,"alphaNode"),Y(this,"shouldBeDraggable",!0),Y(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0,keyFramesDecoded:0}),Y(this,"_keyFrameCountLogged",!1),Y(this,"_keyFrameStartTimestamp",0),Y(this,"_keyFrameStartCount",0),Y(this,"_keyFrameIntervals",[]),Y(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(),F.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 a=this.player.getElement();if(a){let c=a.videoWidth/a.videoHeight;c&&(this.alphaNode.baseRatio=c*(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=Iy[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 CQ({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 JK(e,{name:"remotePlayer",logger:this.log});if(this.source=e.createVideoPlayerSource(this.player),this.player.setCanvas(e._canvas),this.shouldRenderAlpha&&A){let a=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},c=new $tA(e,this.log,this.shouldBeDraggable,a,{alphaStitchingType:A});this.source.connect(c),c.connect(o),this.alphaNode=c}else this.source.connect(o);jp()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(A){let e=this.decodeFPS,o=(a=e,[15,30,45,60].reduce((c,d)=>Math.abs(d-a)<Math.abs(c-a)?d:c));var a;!bn(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(c=>c.msg_user_info.str_identifier===this.userId))||{},o=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let a=e.find(c=>c.uint32_video_stream_type===o);return a?.uint32_video_dec_fps||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),F.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 c=A-e,d=(o-this._prevKeyFrameTimestamp)/1e3/c;this._keyFrameIntervals.push(d)}this._prevKeyFrameTimestamp=o;let a=o-this._keyFrameStartTimestamp;if(a>=16e3){let c=A-this._keyFrameStartCount,d=c>0?a/1e3/c:0,C="".concat(c," keyframes in 16s ").concat(d," [").concat(this._keyFrameIntervals.map(S=>S.toFixed(1)).join(","),"] keyFramesDecoded ").concat(A),y=d<=2.5?"debug":"info";this.log[y](C),this._keyFrameCountLogged=!0}}},k5=class extends rL{constructor(A,e){super(A,e,2),Y(this,"mediaType",2),Y(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}},c_=new Map;function Jg(A,e){let o=Qo(mi({},e),{timestamp:Lf()});c_.has(A)?c_.get(A).push(o):c_.set(A,[o])}function L5(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return jr((a,c)=>function(){for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];return AiA.call(this,e,C,c,this._name),a.apply(this,C)})}function AiA(A,e,o,a){try{if(wa(A))for(let c=0;c<A.length;c++)o1.call(this,{rule:A[c],value:e[c],key:A[c].name,fnName:o,className:a});else o1.call(this,{rule:A,value:e[0],key:A.name,fnName:o,className:a})}catch(c){throw QA.error(c),c}}function o1(A){let{rule:e,value:o,key:a,fnName:c,className:d}=A;if(Je(o)){if(e.required)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_REQUIRED,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(Je(e.defaultValue))return;o=e.defaultValue}if(Array.isArray(e.type)){let S=!1;for(let k=0;k<e.type.length;k++)e.type[k]===null&&o===null&&(S=!0),Ra(e.type[k])&&o instanceof e.type[k]&&(S=!0),Yn(e.type[k])&&Cg(o)===e.type[k].toLowerCase()&&(S=!0);if(!S)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_TYPE,data:{key:a,rule:{type:e.type.map(k=>Wf(k)?tM(k):Yn(k)?k:Cg(k))},fnName:c,value:o},link:{className:d,fnName:c}})})}else if(!Je(e.type)&&Cg(o)!==e.type)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_TYPE,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(e.allowEmpty===!1){let S=bn(o)&&(o===0||Number.isNaN(o)),k=Yn(o)&&o.trim()==="";if(S||k)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_EMPTY,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})})}if(e.notLessThanZero&&bn(o)&&o<0)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.CANNOT_LESS_THAN_ZERO,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(!Je(e.min)&&bn(o)&&o<e.min)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_MIN,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(!Je(e.max)&&bn(o)&&o>e.max)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_MAX,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(Yn(e.instanceOf)){if(!o||o._name!==e.instanceOf)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_INSTANCE,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})})}else if(Ra(e.instanceOf)&&!(o instanceof e.instanceOf))throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_INSTANCE,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});if(e.values&&!e.values.includes(o))throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_PARAMETER_RANGE,data:{key:a,rule:e,fnName:c,value:o},link:{className:d,fnName:c}})});let{properties:C}=e;gE(C)&&$E(o)&&Object.keys(C).forEach(S=>{o1.call(this,{rule:C[S],value:o&&o[S],key:"".concat(a,".").concat(S),fnName:c,className:d})});let{arrayItem:y}=e;gE(y)&&wa(o)&&o.forEach((S,k)=>{o1.call(this,{rule:y,value:S,key:"".concat(a,"[").concat(k,"]"),fnName:c,className:d})}),Ra(e.validate)&&e.validate.call(this,o,a,c,d,this)}F.on(sA.JOIN_SUCCESS,A=>{let{room:e}=A;Jg(e.userId,{eventId:32788})}),F.on(sA.LEAVE_START,A=>{let{room:e}=A;Jg(e.userId,{eventId:32789})}),F.on(sA.LOCAL_TRACK_PUBLISHED,A=>{let{track:e}=A;if(e.room){let o=32769;e.mediaType===4?o=32768:e.mediaType===2&&(o=32805),Jg(e.room.userId,{eventId:o})}}),F.on(sA.LOCAL_TRACK_UNPUBLISHED,A=>{let{track:e}=A;if(e.room){let o=32771;e.mediaType===4?o=32770:e.mediaType===2&&(o=32806),Jg(e.room.userId,{eventId:o})}}),F.on(sA.TRACK_MUTED,A=>{let{track:e}=A;e.room&&(e.kind===YA.AUDIO?Jg(e.room.userId,{eventId:e.isRemote?32785:32772,remoteUserId:e.isRemote?e.userId:void 0}):Jg(e.room.userId,{eventId:e.isRemote?32784:32773,remoteUserId:e.isRemote?e.userId:void 0}))}),F.on(sA.TRACK_UNMUTED,A=>{let{track:e}=A;e.room&&(e.kind===YA.AUDIO?Jg(e.room.userId,{eventId:e.isRemote?32787:32774,remoteUserId:e.isRemote?e.userId:void 0}):Jg(e.room.userId,{eventId:e.isRemote?32786:32775,remoteUserId:e.isRemote?e.userId:void 0}))}),F.on(sA.REMOTE_TRACK_SUBSCRIBED,A=>{let{track:e}=A;e.room&&(e.mediaType===1&&Jg(e.room.userId,{eventId:32777,remoteUserId:e.userId}),e.mediaType===4&&Jg(e.room.userId,{eventId:32776,remoteUserId:e.userId}),e.mediaType===8&&Jg(e.room.userId,{eventId:32803,remoteUserId:e.userId}))}),F.on(sA.REMOTE_TRACK_UNSUBSCRIBED,A=>{let{track:e}=A;e.room&&(e.mediaType===1&&Jg(e.room.userId,{eventId:32779,remoteUserId:e.userId}),e.mediaType===4&&Jg(e.room.userId,{eventId:32778,remoteUserId:e.userId}),e.mediaType===8&&Jg(e.room.userId,{eventId:32804,remoteUserId:e.userId}))}),F.on(sA.SWITCH_DEVICE_SUCCESS,A=>{let{track:e}=A;e.room&&Jg(e.room.userId,{eventId:e.kind===YA.VIDEO?32780:32781})}),F.on(sA.LOCAL_TRACK_REPLACED,A=>{let{track:e}=A;e.room&&Jg(e.room.userId,{eventId:e.kind===YA.VIDEO?32782:32783})}),F.on(sA.SIGNAL_CONNECTION_STATE_CHANGED,A=>{let e,{room:o,prevState:a,state:c}=A;switch(c){case"CONNECTED":e=a==="RECONNECTING"?32795:32791;break;case"DISCONNECTED":e=a==="RECONNECTING"?32796:32790;break;case"RECONNECTING":e=32794}e&&Jg(o.userId,{eventId:e})}),F.on(sA.PEER_CONNECTION_STATE_CHANGED,A=>{let e,{room:o,prevState:a,state:c,remoteUserId:d}=A,C=!!d;switch(c){case"CONNECTED":e=a==="RECONNECTING"?C?32801:32798:C?32793:32792;break;case"DISCONNECTED":a==="RECONNECTING"&&(e=C?32802:32799);break;case"RECONNECTING":e=C?32800:32797}e&&Jg(o.userId,{eventId:e,remoteUserId:d})}),F.on(sA.VIDEO_CODEC_IMPLEMENTATION_CHANGED,A=>{let{implementation:e,userId:o,remoteUserId:a,codec:c,isHWCodec:d,prevImplementation:C,streamType:y}=A,S=d?1:0;C||(S=d?3:2);let k={H264:0,H265:1,VP8:2}[c.toUpperCase()],V={eventId:4004,param1:S,param2:k,streamType:y||2};a&&(V.remoteUserId=a,V.eventId=4005),Jg(o,V),ti.addEnum({key:a?514701:513701,value:S}),ti.addEnum({key:a?514700:513700,value:k})}),F.on(sA.LOCAL_TRACK_RECAPTURE,A=>{let{track:e,error:o}=A;if(e.userId){let a={eventId:2003,param1:0};e.kind===YA.AUDIO?(a.streamType=1,o&&(a.param1=2)):(a.streamType=e.streamType==="auxiliary"?7:2,o&&(a.param1=8)),Jg(e.userId,a)}});var eiA=gc(Kl(),1),tiA=class extends eiA.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,Y(this,"userMap",new Map),Y(this,"remotePublishedUserMap",new Map),Y(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:a,role:c,fromType:d}=A;if(d===I0)return void this.addAsrRobotUser(A);if(this.userMap.has(e))return;let C={userId:o,tinyId:a,role:c===20?"anchor":"audience"};this.userMap.set(e,C),this.emit("1",C)}addAsrRobotUser(A){let e=A[this.key],{userId:o,tinyId:a,role:c}=A;if(this.asrRobotUserMap.has(e))return;let d={userId:o,tinyId:a,role:c===20?"anchor":"audience"};this.asrRobotUserMap.set(e,d),this.emit("8",d)}deleteUser(A,e){let o=this.userMap.get(A);if(!o)return;if(this.asrRobotUserMap.has(A))return void this.deleteAsrRobotUser(A);let a="peer leave [".concat(A,"]");Je(e)||(a+=":".concat(Hx[e])),this._log.info(a);let c=this.remotePublishedUserMap.get(A);if(c){let d=c.muteState;c.flag=0,this.emit("5",c.userId),this.deleteRemotePublishedUser(A),this.emit("6",{prevMuteState:d,muteState:c.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(a=>a[this.key]===e[this.key])<0){this._log.info("remote [".concat(o,"] unpublish"));let a=e.muteState;e.flag=0,this.emit("5",e.userId),this.deleteRemotePublishedUser(o),this.emit("6",{prevMuteState:a,muteState:e.muteState,flag:0})}}),A.forEach(e=>{var o;let a=e[this.key];if(a===this.mySelfId)return void this.emit("7",e);let{flag:c,userId:d,tinyId:C,fromType:y}=e,S=wp(c,d),k=(o=this.remotePublishedUserMap.get(a))==null?void 0:o.muteState;if(k){let V=this.remotePublishedUserMap.get(a);V&&V.flag!==c&&(V.flag=c,this._log.info("remote publish updated: ".concat(JSON.stringify(V.muteState))),this.emit("6",{prevMuteState:k,muteState:S,flag:c}))}else this._log.info("remote publish. state: ".concat(JSON.stringify(S))),this.addUser({userId:d,tinyId:C,role:20,fromType:y}),this.emit("3",e),this.emit("6",{prevMuteState:wp(0,d),muteState:S,flag:c})})}clear(){this.userMap.clear(),this.remotePublishedUserMap.clear()}},iiA=gc(Kl(),1),oiA=class extends iiA.default{constructor(){super(...arguments),Y(this,"_connectionTimeoutCount",0),Y(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 U5(A){let{timesInSecond:e,maxSizeInSecond:o,getSize:a}=A;return jr((c,d)=>{let C=new WeakMap;return F.on(sA.ROOM_DESTROY,y=>{let{room:S}=y;return C.delete(S)}),function(){let y=C.get(this);for(var S=arguments.length,k=new Array(S),V=0;V<S;V++)k[V]=arguments[V];if(y||(y={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},C.set(this,y)),y.timestamp===0?y.timestamp=Date.now():Date.now()-y.timestamp>1e3&&(y.timestamp=Date.now(),y.callCountInSecond=0,y.totalSizeInSecond=0),a&&(y.totalSizeInSecond+=a(...k)),y.timestamp!==0&&Date.now()-y.timestamp<1e3&&(y.callCountInSecond>=e||y.totalSizeInSecond>o))throw new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.CALL_FREQUENCY_LIMIT,data:{isTimes:y.callCountInSecond>=e,isSize:y.totalSizeInSecond>o,name:d,timesInSecond:e,maxSizeInSecond:o}})});y.callCountInSecond++,c.call(this,...k)}})}var yt,F5=!0,aL={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"},Ro={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},s1=((yt=s1||{})[yt.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",yt[yt.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",yt[yt.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",yt[yt.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",yt[yt.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",yt[yt.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",yt[yt.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",yt[yt.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",yt[yt.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",yt[yt.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",yt[yt.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",yt[yt.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",yt[yt.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",yt[yt.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",yt[yt.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",yt[yt.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",yt[yt.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",yt[yt.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",yt[yt.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",yt[yt.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",yt[yt.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",yt[yt.INVALID_OPERATION=5100]="INVALID_OPERATION",yt[yt.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",yt[yt.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",yt[yt.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",yt[yt.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",yt[yt.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",yt[yt.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",yt[yt.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",yt[yt.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",yt[yt.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",yt[yt.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",yt[yt.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",yt[yt.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",yt[yt.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",yt[yt.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",yt[yt.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",yt[yt.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",yt[yt.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",yt[yt.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",yt[yt.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",yt[yt.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",yt[yt.DEVICE_ERROR=5300]="DEVICE_ERROR",yt[yt.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",yt[yt.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",yt[yt.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",yt[yt.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",yt[yt.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",yt[yt.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",yt[yt.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",yt[yt.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",yt[yt.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",yt[yt.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",yt[yt.SERVER_ERROR=5400]="SERVER_ERROR",yt[yt.NEED_TO_BUY=5401]="NEED_TO_BUY",yt[yt.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",yt[yt.OPERATION_FAILED=5500]="OPERATION_FAILED",yt[yt.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",yt[yt.REJOIN_FAILED=5502]="REJOIN_FAILED",yt[yt.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",yt[yt.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",yt[yt.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",yt[yt.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",yt[yt.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",yt[yt.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",yt[yt.OPERATION_ABORT=5998]="OPERATION_ABORT",yt[yt.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",yt),O5=Qo(mi({},cc),{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:a,value:c}=A;return"'".concat(e||o.name,"' is a required param when calling ").concat(a,"(), received: ").concat(c,".")},INVALID_PARAMETER_TYPE(A){let{key:e,rule:o,fnName:a,value:c}=A,d="".concat(e||o.name),C="";return C=Array.isArray(o.type)?o.type.join("|"):o.type,"'".concat(d,"' must be type of ").concat(C," when calling ").concat(a,"(), received type: ").concat(Cg(c),".")},INVALID_PARAMETER_EMPTY(A){let{key:e,rule:o,fnName:a,value:c}=A;return"'".concat(e||o.name,"' cannot be '").concat(c,"' when calling ").concat(a,"().")},INVALID_PARAMETER_INSTANCE(A){let{key:e,rule:o,fnName:a,value:c}=A,d="".concat(e||o.name),C="".concat(o.instanceOf.name||o.instanceOf);return"'".concat(d,"' must be instanceof ").concat(C," when calling ").concat(a,"(), received type: ").concat(Cg(c),".")},INVALID_PARAMETER_RANGE(A){let{key:e,rule:o,fnName:a,value:c}=A;return"'".concat(e||o.name,"' must be one of ").concat(o.values.join("|")," when calling ").concat(a,"(), received: ").concat(c,".")},INVALID_PARAMETER_LESS_THAN_ZERO(A){let{key:e,rule:o,fnName:a}=A;return"'".concat(e||o.name,"' cannot be less than 0 when calling ").concat(a,"().")},INVALID_PARAMETER_MIN(A){let{key:e,rule:o,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,value:a}=A;return"the max value of ".concat(e||o.name," is ").concat(o.max,", received: ").concat(a,".")},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:a}=A;return"the element corresponding to '".concat(e,"' must be instanceof HTMLElement when calling ").concat(o,"(), received: ").concat(a,".")},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=KM(e),error:a}=A;return"NotFoundError, no ".concat(o," detected, please check your device and the configuration on '").concat(e,"'").concat(a?", error: ".concat(a.toString(),"."):".")},DEVICE_NOT_ALLOWED_ERROR(A){let{fnName:e,deviceType:o=KM(e),error:a}=A;return"NotAllowedError, you have disabled ".concat(o," access, please allow the current application to use the ").concat(o).concat(a?", error: ".concat(a.toString(),"."):".")},DEVICE_NOT_READABLE_ERROR(A){let{fnName:e,deviceType:o=KM(e),error:a}=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=KM(e),error:a}=A;return"OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct".concat(a?", error: ".concat(a.toString(),"."):".")},DEVICE_INVALID_STATE_ERROR(A){let{fnName:e,deviceType:o=KM(e),error:a}=A;return"InvalidStateError, after the user clicks and interacts with the page, turn on the ".concat(o).concat(a?", error: ".concat(a.toString(),"."):".")},DEVICE_SECURITY_ERROR(A){let{fnName:e,deviceType:o=KM(e),error:a}=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(a?", error: ".concat(a.toString(),"."):".")},DEVICE_ABORT_ERROR(A){let{fnName:e,deviceType:o=KM(e),error:a}=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(a?" error: ".concat(a.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 KM(A){if(!A)return"camera";let e=A.toLowerCase();return e.includes("screen")?"screen share":e.includes("audio")?"microphone":"camera"}var siA=class tY extends Error{constructor(e){let{code:o,extraCode:a,message:c="",messageParams:d,fnName:C="",originError:y,data:S}=e;var k;let V;V=c||function(J){let gA,{code:CA,params:MA,enableDocLink:Ae=!1}=J,Qe="",Ye=s1[CA];try{gA=O5[Ye]}catch{gA=O5.UNKNOWN_ERROR}return Ra(gA)?Qe=gA(MA):Yn(gA)&&(Qe=gA),MA.fnName&&!Qe.includes(MA.fnName)&&(Qe[Qe.length-1]!=="."&&(Qe+="."),Qe+=" thrown from ".concat(MA.fnName,"()")),Ae&&(Qe+=" doc:"),Qe}({code:o===Ro.SERVER_ERROR?o:a||o,params:mi({fnName:C,error:y},d)}),super(V),Y(this,"name","RtcError"),Y(this,"code"),Y(this,"extraCode"),Y(this,"functionName"),Y(this,"message"),Y(this,"data"),Y(this,"handler"),Y(this,"originError"),this.name=s1[o],this.code=o,this.extraCode=a,this.functionName=C,this.originError=y,this.message=V,this.data=S,this.extraCode===5302&&(k=this.originError)!=null&&k.message.includes("system")&&(this.handler=()=>{let J=document.createElement("a");ty?J.href="ms-settings:privacy-".concat({startLocalVideo:"webcam",startLocalAudio:"microphone"}[this.functionName]):iQ&&(J.href="x-apple.systempreferences:com.apple.preference.security?Privacy_".concat({startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"}[this.functionName])),J.href.length>0&&J.click()})}static convertFrom(e,o,a){let c=e;if(e instanceof ri){let{stack:d}=e,C={code:Ro.UNKNOWN_ERROR,fnName:o,originError:e};switch(e.getCode()){case Et.INVALID_PARAMETER:C.code=Ro.INVALID_PARAMETER,C.message=e.message;break;case Et.INVALID_OPERATION:C.code=Ro.INVALID_OPERATION,C.message=e.message;break;case Et.NOT_SUPPORTED:case Et.NOT_SUPPORTED_H264:C.code=Ro.ENV_NOT_SUPPORTED,e.getCode()===Et.NOT_SUPPORTED_H264&&(C.extraCode=e.message.includes(cc.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Et.JOIN_ROOM_FAILED:C.messageParams={fnParams:a};case Et.SERVER_TIMEOUT:case Et.SWITCH_ROLE_FAILED:case Et.SWITCH_ROOM_FAILED:C.code=Ro.SERVER_ERROR,C.extraCode=e.getExtraCode();break;case Et.API_CALL_ABORTED:C.code=Ro.OPERATION_ABORT;break;case Et.DEVICE_NOT_FOUND:case Et.DEVICE_AUTO_RECOVER_FAILED:case Et.INITIALIZE_FAILED:C.code=5300,e.name&&(C.extraCode=function(y){let S;switch(y){case"NotFoundError":S=5301;break;case"NotAllowedError":S=5302;break;case"NotReadableError":S=5303;break;case"OverconstrainedError":S=5304;break;case"InvalidStateError":S=5305;break;case"SecurityError":S=5306;break;case"AbortError":S=5307;break;default:S=5300}return S}(e.name));break;case Et.VIDEO_ENCODE_FAILED:C.extraCode=5505;case Et.AUDIO_ENCODE_FAILED:C.extraCode=5506,C.code=Ro.OPERATION_FAILED;break;case Et.UNKNOWN:break;default:C.code=Ro.OPERATION_FAILED}c=new tY(C),d&&(c.stack+=d.substr(d.indexOf(`
|
||
`)))}else{if(e instanceof tY)return e;c=new tY({code:Ro.UNKNOWN_ERROR,fnName:o,originError:e})}return c}},wo=siA;function eC(A){return A==="sub"?"auxiliary":A==="auxiliary"?"sub":"main"}function n1(A){return A===aL.QOS_PREFERENCE_CLEAR?"detail":A===aL.QOS_PREFERENCE_SMOOTH?"motion":""}function r1(A,e){let o=e?bx:JS;return l2(A)?mi(mi({},o),A):kC[A]?kC[A]:o}var P5={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}}},x5={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}}},l_={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(A,e,o){if(Yn(A)&&!document.getElementById(A))throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5009,fnName:o,messageParams:{key:e}})}},Y5={name:"userId",required:!0,type:"string"},V5={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 I_(A,e){if(!A)throw new wo({code:Ro.INVALID_OPERATION,extraCode:5101,fnName:e})}function J5(A,e,o){if(!A)throw new wo({code:Ro.INVALID_OPERATION,extraCode:5102,fnName:e,messageParams:{value:o}})}function H5(A,e,o){if(!(/^[1-9]\d*$/.test(String(A))&&A<4294967295))throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:o}})}function q5(A,e,o){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(A))throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:o}})}function K5(A){var e;if((e=A?.option)==null||!e.small)return;if(!TM())return QA.warn("small stream is not supported"),void delete A.option.small;let o=r1(A.option.profile),a=r1(A.option.small,!0);return((c,d)=>c.width*c.height>=d.width*d.height&&c.frameRate>=d.frameRate&&c.bitrate>=d.bitrate)(o,a)?void 0:(QA.warn("small stream profile must be less than big stream profile. Big: ".concat(JSON.stringify(o),", Small: ").concat(JSON.stringify(a))),void delete A.option.small)}var niA={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 wo({code:Ro.INVALID_OPERATION,extraCode:5104,fnName:o});if(A.roomId){if(Yn(A.roomId))throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5016,fnName:o,messageParams:{key:e}});H5(A.roomId,o,e)}else{if(!A.strRoomId)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5015,fnName:o});q5(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:l_,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:P5},validate(A){var e,o;if(((e=A?.option)==null||!e.videoTrack)&&Eu())throw new wo({code:Ro.ENV_NOT_SUPPORTED,extraCode:5201});(o=A?.option)!=null&&o.small&&K5(A)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Qo(mi({},l_),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:P5},validate(A){var e;(e=A?.option)!=null&&e.small&&K5(A)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},mute:{type:["boolean","string"],values:[!0,!1,"microphone"]},muteKeepVolumeDetection:{type:"boolean"},option:V5},validate(A){var e;if(((e=A?.option)==null||!e.audioTrack)&&Eu())throw new wo({code:Ro.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:V5}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:l_,publish:{type:"boolean"},option:x5},validate(A,e,o,a,c){var d;if((d=A?.option)==null||!d.videoTrack){if(Eu())throw new wo({code:Ro.ENV_NOT_SUPPORTED,extraCode:5201});if(!qp())throw new wo({code:Ro.ENV_NOT_SUPPORTED,fnName:o,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:l_,publish:{type:"boolean"},option:x5}},muteRemoteAudio:[Y5,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[Y5,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:l_,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){I_(this._room.isJoined,o);let a=this._room.remotePublishedUserMap.get(A.userId);if(J5(!!a,o,A),a&&(A.streamType==="main"&&!a.muteState.videoAvailable||A.streamType==="sub"&&!a.muteState.hasAuxiliary))throw new wo({code:Ro.INVALID_OPERATION,extraCode:5103,fnName:o,messageParams:{value:A}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Qo(mi({},l_),{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){I_(this._room.isJoined,o);let a=this._room.remotePublishedUserMap.get(A.userId);if(J5(!!a,o,A),a){if(A.streamType==="main"&&!a.muteState.videoAvailable||A.streamType==="sub"&&!a.muteState.hasAuxiliary)throw new wo({code:Ro.INVALID_OPERATION,extraCode:5103,fnName:o,messageParams:{value:A}});if(A.option){let c=A.streamType==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack;if((A.option.pictureInPicture||A.option.fullScreen||A.option.fullScreen)&&(!c.isSubscribed||!c.player.isPlaying))throw new wo({code:Ro.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!=="*"&&Je(A.streamType))throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5014,fnName:o})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(A,e,o){I_(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,a){if(!Fk)throw new wo({code:Ro.ENV_NOT_SUPPORTED,fnName:o,extraCode:5207});if(!this._room.enableSEI)throw new wo({code:Ro.INVALID_OPERATION,fnName:o,extraCode:5108});if(A.byteLength>1e3)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5018,fnName:o});if(A.byteLength===0)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5017,messageParams:{key:e},fnName:o});I_(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 wo({code:Ro.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,a){if(A.byteLength>1e3)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5018,fnName:o});if(A.byteLength===0)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5017,fnName:o,messageParams:{key:e}})}}},validate(A,e,o){if(I_(this._room.isJoined,o),this._room.scene==="live"&&this._room.role==="audience")throw new wo({code:Ro.INVALID_OPERATION,extraCode:5107,fnName:o,messageParams:{key:e}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(A,e,o){if(I_(this._room.isJoined,o),this._room.useStringRoomId&&A.strRoomId===this._room.roomId||!this._room.useStringRoomId&&A.roomId===Number(this._room.roomId))throw new wo({code:Ro.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 wo({code:Ro.INVALID_PARAMETER,extraCode:5019,fnName:o,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(A.roomId)H5(A.roomId,o,e);else{if(!A.strRoomId)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5015,fnName:o});q5(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}}}},zl={TRTC:niA},tC=class extends Error{};function riA(A,e){let o=zf(A);for(let a=0;a<e.length;a++)Wh(o[a],e[a]);return o}function aiA(A){this._resolve=Promise.resolve(A)}function giA(A){this._reject=Promise.reject(A)}var j5=class v_{constructor(e,o){this.instance=e,this.group=o,Y(this,"started",!1),Y(this,"ops",[]),Y(this,"startSame",()=>!0),Y(this,"mergeUpdate",riA);let a=v_.instances.get(e);a?a.set(o,this):v_.instances.set(e,new Map([[o,this]]))}static get(e,o){if(!o)return;let a=v_.instances.get(e);return a&&a.get(o)||new v_(e,o)}static gets(e,o){let a=v_.instances.get(e),c=[];return a&&a.forEach((d,C)=>{o.test(C)&&c.push(d)}),c}action(e,o,a){let c=y=>{var S;return e===0?this.started=!0:e===3&&(this.started=!1),this.ops.shift(),(S=this.currentOp)==null||S.action(),y},d=y=>{var S,k;throw this.ops.shift(),e===0&&((S=this.currentOp)==null?void 0:S.type)===2&&this.ops.shift().reject(new tC("start failed")),(k=this.currentOp)==null||k.action(),y},C={type:e,action:()=>o(...C.args).then(c,d),args:a,resolve:aiA,reject:giA};try{switch(this.state){case 1:if(e===0)throw new tC("already started");break;case 4:if(e===2)throw new tC("not started");break;default:return this.cacheOp(C)}}catch(y){return Promise.reject(y)}return this.ops.push(C),C.promise=o(...C.args).then(c,d)}cacheOp(e){if(this.ops.length===1)switch(this.state){case 0:case 2:if(e.type===0)throw new tC("already start");break;case 3:switch(e.type){case 2:throw new tC("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new tC("unknown state")}else switch(e.type){case 3:if(this.lastOpType===3)return this.lastOp.promise;{let a=new tC("keep stop");if(this.ops.slice(1).forEach(c=>c.reject(a)),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 tC("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new tC("start not allowed after update");case 0:throw new tC("duplicate start");case 3:if(this.startSame(this.currentOp.args,e.args))throw this.ops.pop().reject(new tC("keep start")),new tC("already start")}}e.promise=new Promise((a,c)=>{e._resolve?e._resolve.then(a):e.resolve=a,e._reject?e._reject.catch(c):e.reject=c});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}};Y(j5,"instances",new WeakMap);var gL=j5,a1=new WeakMap,g1=(A,e)=>{if(e instanceof tC){let{stack:o}=e;e=new wo({code:Ro.OPERATION_ABORT,message:"".concat(A," abort: ").concat(e.message),fnName:A}),o&&(e.stack+=o.substr(o.indexOf(`
|
||
`)))}throw e};function jM(A,e){return jr((o,a)=>function(){for(var c=arguments.length,d=new Array(c),C=0;C<c;C++)d[C]=arguments[C];let y=gL.get(this,typeof A=="string"?A:A.call(this,...d));return y?(e&&(y.startSame=e.bind(this)),y.action(0,o.bind(this),d).catch(g1.bind(null,a))):o.apply(this,d)})}function u_(A,e){let{merge:o,debounce:a}=e||{};return jr((c,d)=>function(){for(var C=arguments.length,y=new Array(C),S=0;S<C;S++)y[S]=arguments[S];let k=gL.get(this,typeof A=="string"?A:A.call(this,...y));if(!k)return c.apply(this,y);if(o&&(k.mergeUpdate=o.bind(this)),a&&a.isNeedToDebounce.apply(this,y)){let{delay:V,getKey:J}=a;return new Promise((gA,CA)=>{var MA,Ae;let Qe=(MA=a1.get(this))==null?void 0:MA.get(J(...y));if(Qe){let{timeoutId:ve,resolve:yi}=Qe;clearTimeout(ve),yi()}let Ye=setTimeout(()=>{if(k.state===3||k.state===4)return gA();k.action(2,c.bind(this),y).catch(g1.bind(null,d)).then(gA,CA)},V);a1.has(this)?(Ae=a1.get(this))==null||Ae.set(J(...y),{timeoutId:Ye,resolve:gA}):a1.set(this,new Map([[J(...y),{timeoutId:Ye,resolve:gA}]]))})}return k.action(2,c.bind(this),y).catch(g1.bind(null,d))})}function WM(A){return jr((e,o)=>function(){for(var a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];let C=typeof A=="function"?A.call(this,...c):A;if(C instanceof RegExp)return Promise.all(gL.gets(this,C).map(S=>S.action(3,()=>Promise.resolve(),c))).then(()=>e.call(this,...c));let y=gL.get(this,C);return y?y.action(3,e.bind(this),c).catch(g1.bind(null,o)):e.apply(this,c)})}function zM(){return function(A,e,o){return A.prototype[e]=function(){let a=this._log||console,c='"'.concat(e,'" is a static method. Use TRTC.').concat(e,"() instead. See: ").concat(qh,"/en/TRTC.html#.").concat(e);a.warn(c)},o}}var Hi={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"},ciA=new Set([Hi.AUDIO_VOLUME,Hi.AUDIO_FRAME,Hi.NETWORK_QUALITY,Hi.STATISTICS,Hi.SEI_MESSAGE,Hi.CUSTOM_MESSAGE,Hi.LAYER_DATA]),W5={};Hh(W5,{ScheduleRequestType:()=>X5,getAbilityConfig:()=>liA,getScheduleDomain:()=>XK,isNeedToSchedule:()=>cL,scheduleProxy:()=>em,sendScheduleRequest:()=>Z5,setIsNeedToSchedule:()=>hQ,setScheduleProxy:()=>ZK});var c1=null,l1=0,z5=72e5,I1="trtc_schedule_cache",cL=!0;function hQ(A){Tr(A)&&A!==cL&&(cL=A,QA.info("setIsNeedToSchedule ".concat(A)),A?function(){if(typeof window<"u"&&typeof localStorage<"u")try{localStorage.removeItem(I1)}catch(e){QA.error("clearScheduleCache error",e)}}():l1=Date.now()+z5)}function Z5(A){return KA(this,arguments,function(e){let{userId:o,sdkAppId:a,useStringRoomId:c,roomId:d,userSig:C,version:y,frameWorkType:S,role:k,latencyLevel:V}=e;return function*(){var J;if(!cL&&c1&&l1>Date.now())return{isCached:!0,result:c1};let gA={delta:0,count:[1,1],msg:[],detail:[]};try{let CA=new FormData;CA.append("userId",String(o)),CA.append("sdkAppId",String(a)),CA.append("isStrGroupId",String(c)),CA.append("groupId",String(d)),CA.append("sdkVersion",y),CA.append("userSig",String(C));let MA=((J=yield mM())==null?void 0:J.model)||Ck();MA&&CA.append("model",MA);let Ae=Yp();Ae&&CA.append("osString",Ae);let Qe=Pp();Qe&&CA.append("gpu",Qe),k&&CA.append("role",String(k)),V&&CA.append("latencyLevel",String(V)),S&&CA.append("frameWorkType",String(S));let Ye=ko(),ve=yield function(be,ht,hi){return new Promise((Di,Vo)=>{let Jo=null;iM([$5(Qn=>ht.count[0]=Qn+1,Qn=>{let{error:Ho,retry:Ns,retriedCount:pg,retryFuncArgs:ya}=Qn;ht.msg[0]=Ho.message,Jo||(pg>=1&&(ya[0]=My(hi,"config",YA.MAIN,!0)),Ns())})(My(hi,"config",YA.MAIN),be,{get timeout(){return 1e3*Kf(2+ht.count[0])}}),$5(Qn=>ht.count[1]=Qn+1,Qn=>{let{error:Ho,retry:Ns,retriedCount:pg,retryFuncArgs:ya}=Qn;ht.msg[1]=Ho.message,Jo||(pg>=2&&(ya[0]=My(hi,"config",YA.BACKUP,!0)),Ns())})(My(hi,"config",YA.BACKUP),be,{get timeout(){return 1e3*Kf(2+ht.count[1])}})]).then(Qn=>{Jo=Qn,Di(Jo)}).catch(Vo)})}(CA,gA,a);ve.config&&(ve.config.loggerDomain&&YS(ve.config.loggerDomain),Tr(ve.config.scheduleCache)&&hQ(!ve.config.scheduleCache)),gA.delta=ko()-Ye;let yi=function(be,ht,hi){let Di={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let Vo=performance.getEntriesByType("resource"),Jo=My(be,"config",YA.MAIN),Qn=My(be,"config",YA.BACKUP);for(let Ho of Vo)if(Ho.startTime>=hi&&(Ho.name===Jo||Ho.name===Qn)&&Ho.transferSize>0){let Ns=Ho.name===Jo?YA.MAIN:YA.BACKUP,pg=Math.round(Ho.duration),ya=Math.round(Ho.domainLookupStart-Ho.startTime),hu=Ho.redirectStart>0?Math.round(Ho.redirectEnd-Ho.redirectStart):0,dL=Ho.fetchStart>0?Math.round(Ho.domainLookupStart-Ho.fetchStart):0,B_=Math.round(Ho.domainLookupEnd-Ho.domainLookupStart),Xz=Math.round(Ho.requestStart-Ho.secureConnectionStart),$z=Math.round(Ho.secureConnectionStart-Ho.connectStart),A8=Math.round(Ho.responseStart-Ho.requestStart),e8=Math.round(Ho.responseEnd-Ho.responseStart),FoA=[B_,Xz,$z,A8,e8];sn.uploadEvent({log:"stat-schedule-net:".concat(pg,"(").concat(ya,"(").concat(hu,"->").concat(dL,")->").concat(FoA.join("->"),") ").concat(Ns),userId:ht}),Di=Qo(mi({},Di),{totalCost:pg,local:ya,dns:B_,tcp:$z,tls:Xz,request:A8,response:e8});break}}catch(Vo){QA.error("getScheduleDetailCost error",Vo)}return Di}(Number(a),o,Ye);return c1=ve,function(be){if(typeof window<"u"&&typeof localStorage<"u")try{let ht=Date.now()+z5;localStorage.setItem(I1,JSON.stringify({result:be,expireIn:ht})),l1=ht}catch(ht){QA.error("saveScheduleToLocalStorage error",ht)}}(ve),{isCached:!1,result:ve,detailCost:yi}}catch(CA){let MA=wa(CA)?CA[0]:CA,Ae=bn(MA.code)?MA.code:0,Qe="schedule failed".concat(MA.message?": ".concat(MA.message):""),Ye=new ri({code:Et.SCHEDULE_FAILED,extraCode:Ae,message:Xo({key:Mo.JOIN_ROOM_FAILED,data:{error:Qe,code:Ae}})});throw QA.error(Qe,Ae),Ye}}()})}typeof document<"u"&&document.head.insertAdjacentHTML("beforeend",Object.values(XB).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(I1);if(A){let{result:e,expireIn:o}=JSON.parse(A);o>Date.now()?(c1=e,l1=o,cL=!1):localStorage.removeItem(I1)}}catch(A){QA.error("loadScheduleFromLocalStorage error",A)}}(),F.on("28",()=>hQ(!0)),F.on("63",()=>hQ(!0)),F.on("84",()=>hQ(!0)),F.on("201",A=>{A.state==="RECONNECTING"&&hQ(!0)}),F.on("202",A=>{A.state==="RECONNECTING"&&hQ(!0)});var em={main:"",backup:""};function ZK(A){wa(A)?(em.main=A[0],em.backup=A[1]):(em.main=A,em.backup=A)}var X5=(A=>(A.CONFIG="config",A.TRTC_AUTO_CONF="trtcAutoConf",A.AUDIO_AI_AUTH="audioAiAuth",A))(X5||{});function My(A,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:YA.MAIN,a=arguments.length>3&&arguments[3]!==void 0&&arguments[3];return"https://".concat(em[o]||XK(A,o,a),"/api/v1/").concat(e)}function liA(A,e,o){let a=My(A,e),c=My(A,e,YA.BACKUP),d=new URLSearchParams(o).toString(),C=fetch("".concat(a,"?").concat(d)).then(S=>S.json()),y=fetch("".concat(c,"?").concat(d)).then(S=>S.json());return iM([C,y])}function XK(A){let e,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:YA.MAIN,a=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return e=Kd(A)?a?o===YA.MAIN?XB.MAIN_OVERSEA_BACKUP:XB.BACKUP_OVERSEA:o===YA.MAIN?XB.MAIN_OVERSEA:XB.BACKUP_OVERSEA:o===YA.MAIN?XB.MAIN:XB.BACKUP,e}function IiA(A,e,o){return new Promise((a,c)=>{eQ({url:A,body:e,timeout:o.timeout,priority:"high"}).then(d=>{d.data.code===0?a(d.data.data):c({code:d.data.code,message:d.data.msg})}).catch(c)})}var $5=(A,e)=>aM({retryFunction:IiA,settings:{retries:3,timeout:0},onError:e,onRetrying:A}),$K=class{constructor(){Y(this,"_log"),this._log=QA.createLogger({id:"fd"})}download(A,e){return KA(this,null,function*(){let{type:o="blob"}=e||{};A=Hb(A);try{let a,c=ko();if(a=Ra(fetch)?yield this.downloadWithFetch(A,o):yield this.downloadWithXHR(A,o),!a||!a.data)throw new Error("data is empty");let d=ko()-c;return this._log.info("downloaded: ".concat(A,", return type: ").concat(o,", cost: ").concat(d,"ms")),ti.addSuccessEvent({key:522700,cost:ko()-c}),a.data}catch(a){throw this._log.error("failed to download: ".concat(A,", error: ").concat(a)),ti.addFailedEvent({key:522700,error:a}),a}})}downloadWithFetch(A,e){return KA(this,null,function*(){this._log.info("download with fetch: ".concat(A,", return type: ").concat(e));try{let o,a=yield fetch(A);if(!a.ok){let c=new Error("network response was not ok: ".concat(a.status));throw c.status=a.status,c}return o=e==="arraybuffer"?yield a.arrayBuffer():yield a.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,a)=>{let c=new XMLHttpRequest;c.open("GET",A,!0),c.responseType=e,c.onload=()=>{if(c.status===200||c.status===0&&c.response)o({data:c.response});else{let d=new Error("XHR failed, status: ".concat(c.status));d.status=c.status,a(d)}},c.onerror=a,c.send(null)})}loadWasm(A,e){return KA(this,null,function*(){this._log.info("loadWasm ".concat(A,", importObject: ").concat(JSON.stringify(e)));let o=ko(),a=null,c=null;if(Ra(WebAssembly.instantiateStreaming)&&!A.startsWith("data:application/octet-stream;base64,")&&!(d=>d.startsWith("file://"))(A)&&Ra(fetch))try{let d=fetch(A);a=(yield WebAssembly.instantiateStreaming(d,e)).instance}catch(d){c=d}if(!a)try{let d=yield this.download(A,{type:"arraybuffer"});a=(yield WebAssembly.instantiate(d,e)).instance}catch(d){c=d}if(a){let d=ko()-o;return this._log.info("loadedWasm ".concat(A,", cost: ").concat(d,"ms")),ti.addSuccessEvent({key:522701,cost:d}),a}throw this._log.error("failed to loadWasm ".concat(A,", error: ").concat(c)),ti.addFailedEvent({key:522701,error:c}),c})}loadScript(A){this._log.info("loadScript ".concat(A));let e=ko();return new Promise((o,a)=>{let c=document.createElement("script");c.type="text/javascript",c.onload=()=>{this._log.info("loadedScript ".concat(A,", cost: ").concat(ko()-e,"ms")),ti.addSuccessEvent({key:522702,cost:ko()-e,split:1e3}),o(c)},c.onerror=d=>{this._log.error("failed to loadScript ".concat(A,", error: ").concat(d?.message||JSON.stringify(d))),ti.addFailedEvent({key:522702}),a(d)},c.crossOrigin="anonymous",c.src=A,document.head.append?document.head.append(c):document.getElementsByTagName("head")[0].appendChild(c)})}};Ci([$h({settings:{timeout:0,retries:3},onError(A,e,o){var a;A?.status===404||(a=A?.message)!=null&&a.includes("404")?(this._log.warn("download 404, stop retry"),o(A)):e()},onRetrying(A){this._log.warn("download retrying: ".concat(A))}})],$K.prototype,"download"),Ci([$h({settings:{timeout:3e3,retries:3},onRetrying(A){this._log.warn("loadScript retrying: ".concat(A))}})],$K.prototype,"loadScript");var Aj=new $K;function Az(A){let[e,o]=A,a=o.byteLength,c=parseInt(String(a/255),10),d=a%255,C=[];C.push(0,0,0,1,6,e);for(let S=0;S<c;S++)C.push(255);C.push(d);let y=new DataView(o);return C.push(...new Uint8Array(y.buffer)),C.push(128),new e1(new DataView(new Uint8Array(C).buffer),!0)}function ez(A){return A.type==="empty"||A.data.byteLength===0}function tz(A){let e=new DataView(A),o=0;for(;o<e.byteLength;){let a=A1(e,o);if(a===0){o+=1;continue}let c=o+a;if(c<e.byteLength&&(31&e.getUint8(c))==6)return!0;o+=a+1}return!1}function iz(A){let e=0,o=0,a=new DataView(A);for(let c=0;c<A.byteLength;c++)switch(a.getUint8(c)){case 0:e++;break;case 1:(e===2||e===3)&&o++,e=0;break;default:e=0}return o}function oz(A){let{frame:e,seiMessageList:o}=A;if(!o||o.length===0||e.data.byteLength===0)return e;let a=9-iz(e.data);if(a<=0)return e;let c=o.splice(0,a).reverse().map(Az),d=c.reduce((V,J)=>V+J.dataView.byteLength,0),C=new ArrayBuffer(d+e.data.byteLength),y=new DataView(C),S=new DataView(e.data),k=0;for(let V=0;V<c.length;V++)for(let J=0;J<c[V].dataView.byteLength;J++)y.setInt8(k++,c[V].dataView.getInt8(J));for(let V=0;V<e.data.byteLength;V++)y.setInt8(k++,S.getInt8(V));return e.data=C,e}function sz(A){let{frame:e,onSEI:o}=A;try{if(ez(e)||!tz(e.data))return e;let a=R5(e.data,!1).filter(c=>c.isSEI);o?.(a.reverse())}catch{}return e}function nz(A){let{seiMessageList:e,isAudio:o,getNtpTime:a,isMain:c}=A;return new TransformStream({transform(d,C){let y=d;o?audioEncodePipeline.forEach(S=>{y=S({frame:y,ntp:a(),onDump:()=>{self.postMessage({type:"dump",isAudio:o,data:y.data,userId:""})}})}):videoEncodePipeline.forEach(S=>{y=S({frame:y,seiMessageList:e,onDump:()=>{self.postMessage({type:"dump",isAudio:o,data:y.data,userId:"",streamType:c?"main":"auxiliary"})}})}),C.enqueue(y)}})}function rz(A){let{userId:e,streamType:o,isAudio:a}=A;return new TransformStream({transform(c,d){let C=c;a?(audioDecodePipeline.forEach(y=>{C=y({frame:C,onAudioFrameNTPTime:S=>{self.postMessage({type:"audio-ntp",data:S,userId:e,streamType:o})},onDump:()=>{self.postMessage({type:"dump",isAudio:a,data:C.data,userId:e})}})}),d.enqueue(C)):videoDecodePipeline.forEach(y=>{C=y({frame:C,onSEI:S=>{S.forEach(k=>{self.postMessage({type:"sei",seiPayloadType:k.seiPayloadType,data:k.seiPayload.buffer,userId:e,streamType:o})})},onDump:()=>{self.postMessage({type:"dump",isAudio:a,data:C.data,userId:e,streamType:o})}})}),d.enqueue(C)}})}function az(A){let e=[e1],o=[iz,ez,R5,tz,Az,nz,rz,R0,rM,A1],a="const videoEncodePipeline=[".concat(A.videoEncodePipeline.toString(),`];
|
||
const videoDecodePipeline=[`).concat(A.videoDecodePipeline.toString(),`];
|
||
const audioEncodePipeline = [`).concat(A.audioEncodePipeline.toString(),`];
|
||
const audioDecodePipeline = [`).concat(A.audioDecodePipeline.toString(),"];"),c="(()=>{".concat(e.map(S=>"const ".concat(S.name,"=(()=>").concat(S.toString(),")()")).join(`
|
||
`),`
|
||
`).concat(o.map(S=>S.toString()).join(`
|
||
`),";(").concat(()=>{let S=[],k=[],V=[],J=0;self.onmessage=gA=>{switch(gA.data.type){case"sei":gA.data.isMain?(S.push(gA.data.data),gA.data.small&&V.push(gA.data.data)):k.push(gA.data.data);break;case"ntp-offset":J=gA.data.data}},self.onrtctransform=gA=>{let{options:CA}=gA.transformer,MA=CA.isReceiver?rz({userId:CA.userId,streamType:CA.streamType,isAudio:CA.isAudio}):nz({getNtpTime:()=>Date.now()+J,isAudio:CA.isAudio,isMain:CA.isMain,seiMessageList:CA.isMain?CA.small?V:S:k});gA.transformer.readable.pipeThrough(MA).pipeTo(gA.transformer.writable)}},")();").concat(a,"})()"),d=new Blob([c],{type:"text/javascript"}),C=URL.createObjectURL(d),y=new Worker(C);return URL.revokeObjectURL(C),y}var gz,ej=class{constructor(A){Y(this,"audioPlayer"),Y(this,"videoPlayer"),Y(this,"log"),this.audioPlayer=A.audioPlayer,this.videoPlayer=A.videoPlayer,this.log=A.log.createChild({id:"pip"}),this.videoPlayer.on(fo.USER_RESUME_IN_PIP_OR_FULL_SCREEN,this.handleUserResumeInPIPOrFullScreen,this),this.videoPlayer.on(fo.USER_PAUSE_IN_PIP_OR_FULL_SCREEN,this.handleUserPauseInPIPOrFullScreen,this),this.videoPlayer.on(fo.ENTER_PICTURE_IN_PICTURE,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.on(fo.ENTER_FULL_SCREEN,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.on(fo.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this),this.videoPlayer.on(fo.LEAVE_FULL_SCREEN,this.handleLeaveFullScreen,this),this.videoPlayer.on(fo.VOLUME_CHANGE,this.handleVolumeChange,this)}handleUserResumeInPIPOrFullScreen(){this.audioPlayer.isPaused&&(this.log.warn("resume audio in ".concat(this.videoPlayer.isPictureInPicture()?"pip":"fullscreen")),this.audioPlayer.doResume()),Ha&&sy&&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"),Ha&&sy?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(fo.USER_RESUME_IN_PIP_OR_FULL_SCREEN,this.handleUserResumeInPIPOrFullScreen,this),this.videoPlayer.off(fo.USER_PAUSE_IN_PIP_OR_FULL_SCREEN,this.handleUserPauseInPIPOrFullScreen,this),this.videoPlayer.off(fo.ENTER_PICTURE_IN_PICTURE,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.off(fo.ENTER_FULL_SCREEN,this.handleEnterPIPOrFullScreen,this),this.videoPlayer.off(fo.LEAVE_PICTURE_IN_PICTURE,this.handleLeavePIP,this),this.videoPlayer.off(fo.LEAVE_FULL_SCREEN,this.handleLeaveFullScreen,this),this.videoPlayer.off(fo.VOLUME_CHANGE,this.handleVolumeChange,this)}},cz=!1;function uiA(A){var e=this;let{TRTC:o,room:a,errorModule:c,assetsPath:d}=A;return{TRTC:o,LocalMixVideoTrack:qK,LocalVideoTrack:dQ,LocalScreenTrack:HM,room:a,assetsPath:d,fileDownloader:Aj,innerEmitter:F,INNER_EVENT:sA,constants:Rx,environment:I2,utils:_5,eventLogger:sn,log:this.room.getLogger(),loggerManager:QA,errorModule:c,kvStatManager:ti,rtcDectection:ie,trtc:this,rx:s5,enums:Le,schedule:W5,getDevices:J2,initVisionTaskRegistry:function(C,y){let S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"/mediapipe/vision.js";return KA(e,null,function*(){!window.VisionTaskRegistry&&!cz&&(cz=!0,gz=Aj.loadScript("".concat(C,"/").concat(S).replace(/([^:]\/)\/+/g,"$1"))),yield gz,yield(yield window.VisionTaskRegistry.getInstance(C)).preloadModels(y)})},audioContext:FI(),deviceDetector:Pc,AudioPlayer:NK,RemoteAudioPlayer:$4,VideoPlayer:vo,showAutoPlayDialog:YC,Timer:Nr,clearStarted:(C,y)=>{let S=C.getAlias(),k=gL.instances.get(this);if(k)if(y){let V=k.get(S+y);if(!V)return;V.started=!1}else k.forEach((V,J)=>{J.startsWith(S)&&(V.started=!1)})},startGetPCM:zK,createAudioNode:x2,getNetworkTimeOffset:Mx,validateSourceNode:()=>{var C;if(er&&((C=this.room.audioManager._localAudioPipline)==null||!C.source.node))throw new wo({code:Ro.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:az,AVPlayerStateSyncManager:ej,PlayerEvent:fo}}var E_=new WeakMap,lz="5.15.3-beta.12";function Cu(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return jr((a,c)=>function(){for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];try{tj.call(this,e,C,c,this._name)}catch(S){return Promise.reject(S)}return a.apply(this,C)})}function Iz(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return jr((a,c)=>function(){for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];try{tj.call(this,e,C,c,this._name)}catch(S){throw S}return a.apply(this,C)})}function tj(A,e,o,a){if(wa(A))for(let c=0;c<A.length;c++)u1.call(this,{rule:A[c],value:e[c],key:A[c].name,fnName:o,className:a});else u1.call(this,{rule:A,value:e[0],key:A.name,fnName:o,className:a})}function u1(A){let{rule:e,value:o,key:a,fnName:c,className:d}=A;function C(k){return{code:Ro.INVALID_PARAMETER,extraCode:k,fnName:c,messageParams:{key:a,rule:e,value:o}}}if(Je(o)){if(e.required)throw new wo(C(5001));if(Je(e.defaultValue))return void(Ra(e.validate)&&e.validate.call(this,o,a,c,d,this));o=e.defaultValue}if(Array.isArray(e.type)){let k=!1;for(let V=0;V<e.type.length;V++)e.type[V]===null&&o===null&&(k=!0),Ra(e.type[V])&&o instanceof e.type[V]&&(k=!0),Yn(e.type[V])&&Cg(o)===e.type[V].toLowerCase()&&(k=!0);if(!k)throw new wo({code:Ro.INVALID_PARAMETER,extraCode:5002,fnName:c,messageParams:{key:a,rule:{type:e.type.map(V=>Wf(V)?tM(V):Yn(V)?V:Cg(V))},value:o}})}else if(!Je(e.type)&&Cg(o)!==e.type)throw new wo(C(5002));if(e.allowEmpty===!1){let k=bn(o)&&(o===0||Number.isNaN(o)),V=Yn(o)&&o.trim()==="";if(k||V)throw new wo(C(5003))}if(e.notLessThanZero&&bn(o)&&o<0)throw new wo(C(5006));if(!Je(e.min)&&bn(o)&&o<e.min)throw new wo(C(5007));if(!Je(e.max)&&bn(o)&&o>e.max)throw new wo(C(5008));if(Yn(e.instanceOf)){if(!o||o._name!==e.instanceOf)throw new wo(C(5004))}else if(Ra(e.instanceOf)&&!(o instanceof e.instanceOf))throw new wo(C(5004));if(Array.isArray(e.values)&&!e.values.includes(o))throw new wo(C(5005));let{properties:y}=e;gE(y)&&$E(o)&&Object.keys(y).forEach(k=>{u1.call(this,{rule:y[k],value:o&&o[k],key:"".concat(k),fnName:c,className:d})});let{arrayItem:S}=e;gE(S)&&wa(o)&&o.forEach((k,V)=>{u1.call(this,{rule:S,value:k,key:"".concat(a,"[").concat(V,"]"),fnName:c,className:d})}),Ra(e.validate)&&e.validate.call(this,o,a,c,d,this)}var EiA=0;function fa(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{getRemoteId:e=()=>"",replaceArg:o,getKVReportKey:a,ignoreLog:c,ignoreErrorLog:d}=A;return jr((C,y)=>function(){for(var S=arguments.length,k=new Array(S),V=0;V<S;V++)k[V]=arguments[V];var J,gA,CA;function MA(yi,be,ht){if(ht&&ht.includes(yi))return"hided";if(o){let hi=o(...k);if(k[hi.argIndex]===be)return hi.value}if(be===k||yi in k)return be;try{return be instanceof HTMLElement?"id: ".concat(be.id," type:").concat(Cg(be)):be instanceof MediaStreamTrack?qb(be):(JSON.stringify(be),be)}catch{return"type:".concat(Cg(be))}}let Ae=(this==null?void 0:this._log)||QA,Qe=++EiA;if(c!=null&&c(...k))return C.apply(this,k);k.length>0?Ae.info("".concat(y,"() ").concat(Qe," ").concat(JSON.stringify(k,(yi,be)=>MA(yi,be,["userSig","privateMapKey"])))):Ae.info("".concat(y,"() ").concat(Qe));let Ye=a?a(...k):v2[y],ve=d?.(...k)||!1;try{let yi=C.apply(this,k),be=ko();if(jf(yi)){let ht="".concat(y.includes("Plugin")?"".concat(((gA=(J=k[0]).getName)==null?void 0:gA.call(J))||""," "):" ");return yi.then(hi=>(Ae.info("".concat(y,"() success ").concat(Qe," ").concat(ht).concat(e.call(this,...k))),ti.addSuccessEvent({key:Ye,cost:ko()-be}),hi)).catch(hi=>{var Di;let Vo=(hi=wo.convertFrom.call(this,hi,y,k.length===1?k[0]:k)).extraCode||hi.code,Jo=(Di=hi.message)!=null&&Di.includes(Vo)?"":" code:".concat(Vo),Qn=hi?.code===Ro.OPERATION_ABORT;throw ve||Ae[Qn?"warn":"error"]("".concat(y,"() failed ").concat(Qe," ").concat(ht).concat(e.call(this,...k)," ").concat(hi).concat(Jo," params: ").concat(JSON.stringify(k,MA))),ti.addFailedEvent({key:Ye,error:hi}),hi})}return ti.addSuccessEvent({key:Ye}),yi}catch(yi){let be=(yi=wo.convertFrom.call(this,yi,y)).extraCode||yi.code,ht=(CA=yi.message)!=null&&CA.includes(be)?"":" code:".concat(be),hi=yi?.code===Ro.OPERATION_ABORT;throw ve||Ae[hi?"warn":"error"]("".concat(y,"() failed ").concat(Qe," ").concat(yi).concat(ht," params: ").concat(JSON.stringify(k,MA))),ti.addFailedEvent({key:Ye,error:yi}),yi}})}var ij,oj=A=>jr((e,o)=>function(a,c){return KA(this,null,function*(){let d=this._plugins.get(a);if(!d)throw this._log.error("plugin ".concat(String(a)," is not found")),new wo({code:Ro.OPERATION_ABORT,message:"plugin ".concat(String(a)," is not found"),fnName:o});if(Ra(d.constructor.isSupported)&&!d.constructor.isSupported())throw this._log.error("plugin ".concat(String(a)," is not supported")),new wo({code:Ro.ENV_NOT_SUPPORTED,message:"plugin ".concat(String(a)," is not supported"),extraCode:5210,fnName:o});return tj.call(this,d.getValidateRule(A),[c],o,"TRTC"),e.call(this,d,c)})}),sj=0,E1=class _L{constructor(e){this.core=e,Y(this,"log"),Y(this,"customAudioReferenceMap",new Map),Y(this,"audioRefId",0),Y(this,"audioContext",FI()),Y(this,"localAudioWorkletNode"),Y(this,"screenAudioWorkletNode"),Y(this,"mixNode"),Y(this,"silentNode"),sj+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(sj)}),this.log.info("created id=".concat(this.getAlias()).concat(sj)),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,a,c,d){if(!e.room.audioManager.hasAudioTrack&&!e.room.audioManager.hasScreenAudioTrack)throw new wo({code:Ro.INVALID_OPERATION,extraCode:5106,fnName:c})}}}preload(e){return ij||(ij=this.doPreload(e)),ij}doPreload(e){return KA(this,null,function*(){let o=yield this.core.fileDownloader.download(e,{type:"blob"}),a=URL.createObjectURL(o);try{yield Vg(this.audioContext,a)}catch(c){this.log.error("preload audioProcessor failed. ".concat(c))}finally{URL.revokeObjectURL(a)}})}getName(){return _L.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(e){switch(e){case"start":return _L.getStartValidateRule(this.core);case"update":return _L.updateValidateRule;case"stop":return _L.stopValidateRule}}start(e){return KA(this,null,function*(){var o,a,c,d;let{room:C}=this.core,{sdkAppId:y,userId:S,userSig:k,assetsPath:V=this.core.assetsPath,audioReference:J,processLevel:gA,enableDump:CA,isLocalAudioNeedAudioProcess:MA=!0,isScreenAudioNeedAudioProcess:Ae=!1}=e;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=MA,this.core.room.audioManager.isScreenAudioNeedAudioProcess=Ae,!V)throw new wo({code:Ro.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(V,"/audioProcessor-wasm.js")),MA&&!this.localAudioWorkletNode){let{sign:Qe,status:Ye,timestamp:ve}=yield this.getAuthData(y,S,k);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",y,S,ve,Qe,Ye,C)}if(Ae&&!this.screenAudioWorkletNode){let{sign:Qe,status:Ye,timestamp:ve}=yield this.getAuthData(y,S,k);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",y,S,ve,Qe,Ye,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"}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"enable"}),C.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),Je(J)||J.forEach(Qe=>{this.customAudioReferenceMap.set(Qe,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:Qe,refId:"o-".concat(this.audioRefId++)})}),Je(gA)||(c=this.localAudioWorkletNode)==null||c.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:gA}}),Je(CA)||(d=this.localAudioWorkletNode)==null||d.port.postMessage({type:"dump",data:{enable:CA}})})}update(e){return KA(this,null,function*(){var o,a,c;let{audioReference:d,enableDump:C,processLevel:y}=e;Je(d)||(this.customAudioReferenceMap.forEach((S,k)=>{this.customAudioReferenceMap.delete(k),this.core.room.audioManager.updateAudioReference({type:"remove",refId:S})}),d.forEach(S=>{this.customAudioReferenceMap.set(S,"o-".concat(this.audioRefId++)),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:S,refId:"o-".concat(this.audioRefId++)})})),Je(y)||(o=this.localAudioWorkletNode)==null||o.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:y}}),Je(C)||((a=this.localAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:C}}),(c=this.screenAudioWorkletNode)==null||c.port.postMessage({type:"dump",data:{enable:C}}))})}stop(){return KA(this,null,function*(){var e,o;let{room:a}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(o=this.screenAudioWorkletNode)==null||o.port.postMessage({type:"disable"}),yield a.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,a){return KA(this,null,function*(){let c=String(Date.now()).slice(0,-3),{auth:d,sign:C,status:y,message:S}=yield function(k){return KA(this,arguments,function(V){let{sdkAppId:J,userId:gA,userSig:CA,timestamp:MA}=V;return function*(){let Ae="".concat(function(Vo){let Jo=arguments.length>1&&arguments[1]!==void 0?arguments[1]:YA.MAIN;return"https://".concat(em[Jo]||XK(Vo,Jo),"/api/v1/audioAiAuth")}(J),"?sdkAppId=").concat(J,"&userId=").concat(gA,"&userSig=").concat(CA,"×tamp=").concat(MA),Qe=yield fetch(Ae),{data:{errCode:Ye,errMsg:ve,sign:yi,status:be}}=yield Qe.json();if(be==="1")return{auth:!0,sign:yi,status:be,message:ve};let ht=Kd(J)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",hi="Init RTCAudioProcessor failed.",Di="";switch(Ye){case 1:Di="Please check your params.";break;case 2:Di="You need to buy packages. Refer to: ".concat(ht);break;case 3:Di="Server is invalid. Please contact our engineer. ";break;case 4:Di="Your packages is not active. Refer to: ".concat(ht);break;case 5:Di="Your packages is expired. Refer to: ".concat(ht);break;case 6:Di="Your version is not supported."}return{auth:!1,status:be,message:ve?"".concat(hi," Reason: ").concat(ve,". ").concat(Di):"".concat(hi,", ").concat(Di)}}()})}({sdkAppId:e,userSig:a,userId:o,timestamp:c});if(!d)throw this.log.info("audioProcessor: ".concat(o," auth result: ").concat(d,". Message: ").concat(S)),new wo({code:Ro.INVALID_PARAMETER,message:S});return{sign:C,status:y,timestamp:c}})}initWorkletNode(e,o,a,c,d,C,y,S){e.port.postMessage({type:"init",data:{sdkAppId:String(a),userId:c,timestamp:d,sign:C,status:y}}),e.port.onmessage=k=>{var V;let{data:J}=k;switch(J.type){case"cost":let gA=J?.value>10?"info":"debug";return void this.log[gA]("".concat(o==="localAudio"?"":"[".concat(o,"] "),"avg cost: ").concat(J.value," max: ").concat(J?.max,"(").concat(Bb(new Date(J?.maxCostTimestamp)),") hist: ").concat((V=J?.hist)==null?void 0:V.join(" ")));case"log":return void this.log[J.logLevel]("".concat(o==="localAudio"?"":"[".concat(o,"] ")).concat(J.value));case"dump":return void F.emit("265",{room:S,data:J.value,type:o==="localAudio"?"dump":"dump-screen-audio"});case"detectEcho":return void this.log.warn("".concat(o==="localAudio"?"":"[".concat(o,"] "),"detect echo: ").concat(V0()?rQ():Yp()))}}}handleLocalAudioStarted(e){return KA(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(a){this.log.warn("audio processor auto start failed, error: ".concat(a))}})}handleLocalAudioStopped(e){return KA(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}};Y(E1,"updateValidateRule",{type:"object"}),Y(E1,"stopValidateRule",{type:"object"}),Y(E1,"Name","AudioProcessor");var diA=E1,nj=0,CiA=class{constructor(A,e){Y(this,"audioObjectURL"),Y(this,"player"),Y(this,"publisher"),Y(this,"mixInput"),this.mixInput=new q4(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&&(Je(A.volume)||(this.volume=A.volume),Je(A.loop)||(this.loop=A.loop),Je(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 KA(this,null,function*(){if(A.url){let e=yield Aj.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 d_(A,e){if(e&&typeof e!="function")throw new wo({code:Ro.INVALID_PARAMETER,message:"start audioMixer plugin: param ".concat(A," should be a function.")})}var lL=class TL{constructor(e){this.core=e,Y(this,"log"),Y(this,"mixedMusicMap",new Map),Y(this,"cacheMusicMap",new Map),nj+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(nj)}),this.log.info("created id=".concat(this.getAlias()).concat(nj))}getName(){return TL.Name}getAlias(){return"ax"}getGroup(e){return e?.id}getValidateRule(e){switch(e){case"start":return TL.startValidateRule;case"update":return TL.updateValidateRule;case"stop":return TL.stopValidateRule}}start(e){return KA(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:a,url:c}=e;if(this.mixedMusicMap.has(a))return;let d=this.cacheMusicMap.get(a);d?e.url?d.reset():(d.mixInput.replaceSource(e.track),d.mixInput.connect()):(d=new CiA(e,o.audioManager),this.cacheMusicMap.set(a,d)),d.updateListener(e),d.updateSettings(e);try{yield d.play()}catch(C){yield this.handleAutoPlayFailed(d,e,C)}this.mixedMusicMap.set(a,d),d.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d.mixInput.source.node,refId:"ax-".concat(a)}),this.log.info("start mix audio track ".concat(a," success.")),ti.addEnum({key:502700,value:3}),this.kvUpload(e)})}handleAutoPlayFailed(e,o,a){return KA(this,null,function*(){if(a.name==="NotSupportedError")this.log.error("play failed, try to reload source. error: ".concat(a)),yield e.reload(o),yield e.play();else{if(a.name!=="NotAllowedError")throw a;if(this.core.room.enableAutoPlayDialog){let c=()=>{var d;(d=e.play())==null||d.finally(()=>{F.off("154",c,this)})};F.on("154",c,this),YC()}else this.core.trtc.emit(Hi.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>KA(this,null,function*(){return e.play()})})}})}update(e){return KA(this,null,function*(){let{id:o,operation:a,seekFrom:c,playbackRate:d}=e;this.log.info("update music source, ".concat(JSON.stringify(e)));let C=this.mixedMusicMap.get(o);C?(C.updateSettings(e),C.updateListener(e),Je(a)||C.setOperation(a),Je(c)||C.seek(c),this.kvUpload(e)):this.log.warn("update music source failed, music id: ".concat(o," not found."))})}stop(e){return KA(this,arguments,function(o){var a=this;let{id:c}=o;return function*(){if(a.mixedMusicMap.has(c)){a.log.info("remove music source, music id: ".concat(c));let d=a.mixedMusicMap.get(c);d!=null&&d.mixInput.source.node&&a.core.room.audioManager.updateAudioReference({type:"remove",audioReference:d.mixInput.source.node,refId:"ax-".concat(c)}),d?.stop(),a.mixedMusicMap.delete(c)}c==="*"&&a.destroyAllMusic()}()})}kvUpload(e){let{track:o,loop:a,volume:c,playbackRate:d,operation:C,seekFrom:y,onTimeUpdate:S,onDurationChange:k,onEnded:V}=e;o&&ti.addCount({key:502009}),a&&ti.addCount({key:502001}),c&&ti.addCount({key:502002}),d&&ti.addCount({key:502003}),C&&ti.addCount({key:502004}),y&&ti.addCount({key:502005}),typeof S!="function"&&ti.addCount({key:502007}),typeof V!="function"&&ti.addCount({key:502008}),typeof k!="function"&&ti.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()}};Y(lL,"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 a=A.url.split("?")[0],c=["mp3","ogg","wav","flac"],d=a.split(".").pop(),C=c.indexOf(d)>=0,y=a.startsWith("blob"),S=a.startsWith("data");if(!(C||y||S))throw new wo({code:Ro.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:o})}if(!A.url&&!A.track)throw new wo({code:Ro.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:o});d_("onTimeUpdate",A.onTimeUpdate),d_("onEnded",A.onEnded),d_("onDurationChange",A.onDurationChange)}}),Y(lL,"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){d_("onTimeUpdate",A.onTimeUpdate),d_("onEnded",A.onEnded),d_("onDurationChange",A.onDurationChange)}}),Y(lL,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),Y(lL,"Name","AudioMixer");var rj,hiA=lL,aj=0,d1=class NL{constructor(e){this.core=e,Y(this,"log"),Y(this,"audioContext",FI()),Y(this,"workletNode"),Y(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5}),aj+=1,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(aj)}),this.log.info("created id=".concat(this.getAlias()).concat(aj))}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,a,c,d){if(!e.room.audioManager.hasAudioTrack)throw new wo({code:Ro.INVALID_OPERATION,extraCode:5106,fnName:c})}}}preload(e){return rj||(rj=this.doPreload(e)),rj}doPreload(e){return KA(this,null,function*(){let o=yield this.core.fileDownloader.download(e,{type:"blob"}),a=URL.createObjectURL(o);try{yield Vg(this.audioContext,a)}catch(c){throw this.log.error("load worklet failed",c),c}finally{URL.revokeObjectURL(a)}})}getName(){return NL.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(e){switch(e){case"start":return NL.startValidateRule(this.core);case"update":return NL.updateValidateRule;case"stop":return NL.stopValidateRule}}start(e){return KA(this,null,function*(){let{room:o,schedule:a}=this.core,{assetsPath:c=this.core.assetsPath}=e;if(!c)throw new wo({code:Ro.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(c,"/denoiser-wasm").concat(GM()?"":"-nosimd",".js")),!this.workletNode){let d=String(Date.now()).slice(0,-3),{auth:C,sign:y,status:S,message:k}=yield function(V,J){return KA(this,arguments,function(gA,CA){let{sdkAppId:MA,userId:Ae,userSig:Qe,timestamp:Ye}=CA;return function*(){try{let{data:{errCode:ve,errMsg:yi,sign:be,status:ht}}=yield gA.getAbilityConfig(MA,gA.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:MA,userId:Ae,userSig:Qe,timestamp:Ye});if(ht==="1")return{auth:!0,sign:be,status:ht,message:yi};let hi=Kd(MA)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",Di="Init RTCAIDenoiser failed.",Vo="";switch(ve){case 1:Vo="Please check your params.";break;case 2:Vo="You need to buy packages. Refer to: ".concat(hi);break;case 3:Vo="Server is invalid. Please contact our engineer. ";break;case 4:Vo="Your packages is not active. Refer to: ".concat(hi);break;case 5:Vo="Your packages is expired. Refer to: ".concat(hi);break;case 6:Vo="Your version is not supported."}return{auth:!1,status:ht,message:yi?"".concat(Di," Reason: ").concat(yi,". ").concat(Vo):"".concat(Di,", ").concat(Vo)}}catch(ve){return{auth:!1,status:"0",message:"Init RTCAIDenoiser failed. All requests failed. ".concat(ve)}}}()})}(a,Qo(mi({},e),{timestamp:d}));if(!C)throw this.log.info("RTCAIDenoiser: ".concat(e.userId," auth result: ").concat(C,". Message: ").concat(k)),new wo({code:Ro.INVALID_PARAMETER,message:k});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:d,sign:y,status:S}}),this.workletNode.port.onmessage=V=>{var J;let{data:gA}=V;if(gA.type==="cost"){let CA=gA?.max>20?"warn":gA?.max>10?"info":"debug";this.log[CA]("avg cost: ".concat(gA.value," max: ").concat(gA?.max,"(").concat(Bb(new Date(gA?.maxCostTimestamp)),") hist: ").concat((J=gA?.hist)==null?void 0:J.join(" ")))}else gA.type==="log"&&this.log[gA.logLevel]("".concat(gA.value))}}this.updateConfig(e),this.workletNode.port.postMessage({type:"enable"}),o.audioManager.addDenoiser(this.workletNode),o.sendAbilityStatus({ai_denoise:1})})}update(e){return KA(this,null,function*(){this.updateConfig(e)})}stop(){return KA(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;Je(e.mode)||(e.mode===0?this.config.enableFarFieldReduce=!1:e.mode===1&&(this.config.enableFarFieldReduce=!0),o=!0),Je(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)}};Y(d1,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),Y(d1,"stopValidateRule",{type:"object"}),Y(d1,"Name","AIDenoiser");var BiA=d1,QiA=gc(Kl(),1),piA=class extends QiA.EventEmitter{constructor(){super(),Y(this,"observer"),Y(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 KA(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!Ha&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(A){sn.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)&&QA.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){sn.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:e})}}},uz=new piA,gj=0,cj=class N9{constructor(e){this.core=e,Y(this,"log"),Y(this,"_seiMessageList",[]),Y(this,"_smallSeiMessageList",[]),Y(this,"_subStreamSeiMessageList",[]),gj++,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(gj)}),this.log.info("[sei] created id=".concat(this.getAlias()).concat(gj)),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode(e){let{frame:o,mediaType:a}=e;try{return oz({frame:o,seiMessageList:a===8?this._smallSeiMessageList:a===2?this._subStreamSeiMessageList:this._seiMessageList})}catch(c){this.log.warn(c)}return o}decode(e){let{frame:o,track:a}=e;return sz({frame:o,onSEI:c=>{c.forEach(d=>{a!=null&&a.userId?this.core.trtc.emit(Hi.SEI_MESSAGE,{seiPayloadType:d.seiPayloadType,data:d.seiPayload.buffer,userId:a.userId,streamType:a.mediaType===2?"sub":"main"}):this.core.innerEmitter.emit(this.core.INNER_EVENT.SEI_MESSAGE,{room:this.core.room,nalu:d})})}})}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:Kp?this.encode:oz,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Kp?this.decode:sz,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update(e){let{buffer:o,options:a}=e;var c;let d=[a.seiPayloadType,o],C=!!a.small;a.toSubStream?this._subStreamSeiMessageList.push(d):(this._seiMessageList.push(d),C&&this._smallSeiMessageList.push(d)),(c=this.core.room.scriptTransformWorker)==null||c.postMessage({type:"sei",data:d,isMain:!a.toSubStream,small:C})}getName(){return N9.Name}getAlias(){return"sei"}getGroup(){return"sei"}};Y(cj,"autoStart",!0),Y(cj,"Name","SEI");var C1,miA=cj,fiA=0,lj=class G9{constructor(e){this.core=e,Y(this,"_core"),Y(this,"log"),Y(this,"dialog"),this._core=e,this.log=e.log.createChild({id:"".concat(this.getAlias()).concat(++fiA)}),this.log.info("created")}getName(){return G9.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 KA(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 KA(this,arguments,function(o){var a=this;let{visible:c}=o;return function*(){c?yield a.openDebugDiaLog():a.closeDebugDiaLog()}()})}stop(){this.closeDebugDiaLog()}destroy(){this.stop()}openDebugDiaLog(){return KA(this,null,function*(){var e;if(!this.dialog)try{if(C1)yield C1;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(qd,"/assets/debug-dialog.js");C1=this._core.fileDownloader.loadScript(o),yield C1}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)}};Y(lj,"Name","Debug"),Y(lj,"autoStart",!0);var yiA=lj,Ez=A=>{switch(A){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},dz=class{constructor(A,e,o){Y(this,"trackDoneOB"),Y(this,"startOB"),Y(this,"stopOB"),Y(this,"inputFrameCount",0),Y(this,"decodedFrameCount",0),Y(this,"type","auto"),Y(this,"config"),Y(this,"decoder"),Y(this,"_decodeSink");let{kvStatManager:a,trtc:c}=A;this.config=o.config,this.trackDoneOB=ca(e,Zs.INIT),this.stopOB=EQ(),this.startOB=EQ(),o.type==="auto"?this.type="webCodecs":this.type=o.type;let d=EQ();ma(this.startOB,LK(0),Z2(C=>{let y=this.pipe(e);return d.next("STARTING"),e.log.info("decoder type: ".concat(this.type)),ma(y,IE(this.stopOB),Bl(()=>{},S=>{e.log.error(S),a.addFailedEvent({key:Ez(this.type),error:S}),C>4?this.startOB.error(S):this.startOB.next(C+1)})),ma(y,a_(1),v5(OK))}),IE(this.stopOB),Bl(()=>{e.player.setOutput(),d.next("STARTED")},C=>{d.next("FAILED")},()=>{a.addSuccessEvent({key:Ez(this.type)}),a.addSuccessEvent({key:504702})}))}mock(A){this._decodeSink?this._decodeSink.error(A):this.startOB.next(0)}close(A){this.stopOB.next(A)}pipe(A){return Zk()(e=>KA(this,null,function*(){this._decodeSink=e,e.defer(()=>{var a;(a=this.decoder)==null||a.close()});let{type:o}=this;try{o==="webCodecs"&&(this.decoder=new AudioDecoder({error:a=>{A.log.error(a),e.error(4)},output:a=>{this.decodedFrameCount++,e.next(a),A.player.write(a)}})),this.decoder.configure(this.config)}catch(a){A.log.error(a),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"}))}},DiA={type:"object"},Cz=class k3{constructor(e){this.core=e,Y(this,"log"),Y(this,"contextMap",new Map),Y(this,"decodeProcessorMap",new WeakMap),this.log=e.log.createChild({id:"".concat(this.getAlias())})}getAlias(){return k3.Name}getGroup(e){return e.track.userId+e.track.streamType}getName(){return k3.Name}getValidateRule(e){return DiA}start(e){let{track:o}=e;this.decodeProcessorMap.set(o,this.decode(e)),this.core.room.audioManager.addDecodeProcessor({processor:a=>{let{frame:c,track:d}=a;return this.decodeProcessorMap.has(d)?this.decodeProcessorMap.get(d)({frame:c,track:d}):c},type:3})}decode(e){return o=>{let{frame:a,track:c}=o;if(c!==e.track)return a;if(this.contextMap.has(c))return this.contextMap.get(c).decodeFrame(a);let d=new dz(this.core,c,e);return ma(d.trackDoneOB,a_(1),Bl(()=>{this.core.clearStarted(this,this.getGroup(e)),this.stop({track:c})})),this.contextMap.set(c,d),d.decodeFrame(a)}}stop(e){let{track:o}=e,a=this.contextMap.get(o);a&&(a.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 dz(this.core,e.track,e))}}};Y(Cz,"Name","TRTCAudioDecoder");var hz=Cz,SiA={rttPoorLimit:150,lossPoorLimit:20,rttGoodLimit:100,lossGoodLimit:10,fpsPoorLimit:5,cooldownTime:1e4,poorCount:3,goodCount:5,maxUpgradeFailCount:3},MiA=class{constructor(){Y(this,"log"),Y(this,"autoMode",{enabled:!1,instance:null,config:SiA,sortedStreamList:[],currentQualityIndex:0}),Y(this,"switchControl",{isInternal:!1,isSwitching:!1,lastSwitchTime:0,boundOnStatistics:null}),Y(this,"networkMetrics",{frameRate:0,rtt:0,loss:0}),Y(this,"counters",{rttUnder:0,lossUnder:0,downgradeCondition:0,upgradeFail:0}),Y(this,"onStatistics",A=>{var e,o;if(!this.autoMode.instance)return;let{config:a}=this.autoMode;if(this.networkMetrics.rtt=A.rtt,this.networkMetrics.loss=A.downLoss,this.counters.rttUnder=A.rtt<a.rttGoodLimit?this.counters.rttUnder+1:0,this.counters.lossUnder=A.downLoss<a.lossGoodLimit?this.counters.lossUnder+1:0,(e=A?.remoteStatistics)==null||!e.length)return;let c=this.getCurrentPlayingStream(this.autoMode.instance);if(!c)return;let{userId:d,streamType:C}=c,y=A.remoteStatistics.find(V=>V.userId===d);if((o=y?.video)==null||!o.length)return;let S=C==="sub"?"sub":"big",k=y.video.find(V=>V.videoType===S);k?(this.networkMetrics.frameRate=k.frameRate||0,this.checkAndSwitchQuality()):this.log.warn("onStatistics: videoStat not found for userId=".concat(d,", streamType=").concat(C))}),this.log=QA.createLogger({id:"pqs"})}getCurrentPlayingStream(A){var e,o;let a=A,c=a._playbackQualityList;if(!c||c.length===0)return this.log.warn("getCurrentPlayingStream: streamList is empty"),null;for(let d of c){let C=A.room.remotePublishedUserMap.get(d.userId);if(!C)continue;let y=(e=d.streamType)!=null?e:"main";if((y==="sub"?C.remoteAuxiliaryTrack:C.remoteVideoTrack).isPlayCalled){let S=(o=a._remoteVideoConfigMap.get("".concat(d.userId,"_").concat(y)))==null?void 0:o.config;if(S)return{userId:d.userId,streamType:y,config:S}}}return null}switchPlaybackQuality(A){return KA(this,null,function*(){var e;let{trtcInstance:o,streamList:a,quality:c}=A;this.log.info("switchPlaybackQuality quality: ".concat(c,", streamList: ").concat(JSON.stringify(a)));let d=o;if(a&&a.length>0&&(d._playbackQualityList=a.map(MA=>{var Ae;return Qo(mi({},MA),{streamType:(Ae=MA.streamType)!=null?Ae:"main"})})),c==="auto")return void(yield this.startAutoMode(o));if(this.autoMode.enabled&&c&&!this.switchControl.isInternal&&this.stopAutoMode(),!c)return;if(!d._playbackQualityList||d._playbackQualityList.length<=0)return void this.log.warn("switchPlaybackQuality: streamList is empty, please call with streamList first");let C=d._playbackQualityList.find(MA=>MA.name===c);if(!C)return void this.log.warn('switchPlaybackQuality: quality "'.concat(c,'" not found in streamList'));let y=this.getCurrentPlayingStream(o);if(this.log.info("currentPlaying userId: ".concat(y?.userId,", streamType: ").concat(y?.streamType)),!y)return;let S=(e=C.streamType)!=null?e:"main";if(y.userId===C.userId&&y.streamType===S)return void this.log.info("switchPlaybackQuality: already playing target stream");let k=mi({},y.config);k.streamType==="main"&&S==="main"&&(yield o.muteRemoteAudio(k.userId,!0));let V,J=new Promise(MA=>{V=MA}),gA=MA=>{MA.userId===C.userId&&MA.streamType===S&&MA.state==="PLAYING"&&MA.reason==="playing"&&V("success")};o.on(Hi.VIDEO_PLAY_STATE_CHANGED,gA);let CA=new Promise(MA=>setTimeout(()=>MA("timeout"),1e4));try{if(yield o.startRemoteVideo(Qo(mi({},y.config),{userId:C.userId,streamType:S,option:Qo(mi({},y.config.option),{isLiveStream:!0})})),(yield Promise.race([J,CA]))==="timeout"){this.log.error("switchPlaybackQuality: VIDEO_PLAY_STATE_CHANGED timeout, rollback");try{yield o.stopRemoteVideo({userId:C.userId,streamType:S})}catch(Ae){this.log.warn("switchPlaybackQuality: rollback stopRemoteVideo failed",Ae)}throw k.streamType==="main"&&S==="main"&&(yield o.muteRemoteAudio(k.userId,!1).catch(Ae=>{this.log.warn("switchPlaybackQuality: rollback muteRemoteAudio failed",Ae)})),new ri({code:Et.SUBSCRIPTION_TIMEOUT,message:Xo({key:Mo.SWITCH_PLAYBACK_QUALITY_TIMEOUT,data:{userId:C.userId}})})}let MA=o.stopRemoteVideo(k);k.streamType==="main"&&S==="main"?yield Promise.all([o.muteRemoteAudio(C.userId,!1).catch(Ae=>{this.log.warn("muteRemoteAudio(new, false) failed",Ae)}),MA]):yield MA,d._currentLiveUserId=C.userId,d._currentLiveStreamType=S}finally{o.off(Hi.VIDEO_PLAY_STATE_CHANGED,gA)}})}startAutoMode(A){return KA(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((c,d)=>d.bitrate-c.bitrate),this.log.info("auto mode streams: ".concat(this.autoMode.sortedStreamList.map(c=>"".concat(c.name,"(").concat(c.bitrate,"kbps)")).join(" > ")));let a=this.getCurrentPlayingStream(A);if(a){let{userId:c,streamType:d}=a,C=this.autoMode.sortedStreamList.findIndex(y=>{var S;return y.userId===c&&((S=y.streamType)!=null?S:"main")===d});this.autoMode.currentQualityIndex=C>=0?C:0}else this.autoMode.currentQualityIndex=0;this.switchControl.boundOnStatistics=this.onStatistics,A.on(Hi.STATISTICS,this.switchControl.boundOnStatistics),this.log.info("auto mode started")})}stopAutoMode(){this.autoMode.enabled&&(this.autoMode.instance&&this.switchControl.boundOnStatistics&&this.autoMode.instance.off(Hi.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,a=((A=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex])==null?void 0:A.name)||"unknown",c=this.autoMode.currentQualityIndex<this.autoMode.sortedStreamList.length-1,d=this.autoMode.currentQualityIndex>0,C=this.networkMetrics.frameRate<=e.fpsPoorLimit,y=this.networkMetrics.loss>=e.lossPoorLimit||this.networkMetrics.rtt>=e.rttPoorLimit,S=C&&y;this.counters.downgradeCondition=S?this.counters.downgradeCondition+1:0;let k=this.counters.rttUnder>=e.goodCount&&this.counters.lossUnder>=e.goodCount,V=this.counters.upgradeFail<e.maxUpgradeFailCount;if(this.log.debug("[check] stream=".concat(a,", fps=").concat(this.networkMetrics.frameRate,", rtt=").concat(this.networkMetrics.rtt,", loss=").concat(this.networkMetrics.loss,", fpsLow=").concat(C,", networkPoor=").concat(y,", downgradeCount=").concat(this.counters.downgradeCondition,"/").concat(e.poorCount,", rttUnder=").concat(this.counters.rttUnder,", lossUnder=").concat(this.counters.lossUnder,", goodCondition=").concat(k,", canDowngrade=").concat(c,", canUpgrade=").concat(d&&V,", inCooldown=").concat(o)),!o){if(this.counters.downgradeCondition>=e.poorCount&&c){let J=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex+1];return this.log.info("auto mode downgrade: ".concat(a," → ").concat(J?.name,", fps=").concat(this.networkMetrics.frameRate,", rtt=").concat(this.networkMetrics.rtt,", loss=").concat(this.networkMetrics.loss)),void this.switchToQualityIndex(this.autoMode.currentQualityIndex+1)}if(k&&d&&V){let J=this.autoMode.sortedStreamList[this.autoMode.currentQualityIndex-1];this.log.info("auto mode upgrade: ".concat(a," → ").concat(J?.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 KA(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(a){this.log.warn("auto mode switch failed: ".concat(o.name),a),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}})}},Ij=class{constructor(){Y(this,"log"),this.log=QA.createLogger({id:"exp"})}call(A,e){return KA(this,null,function*(){return Ra(this[A])?this[A](e):Promise.reject(new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.API_NOT_EXIST,data:{name:A}})}))})}enableAudioFrameEvent(A){return KA(this,null,function*(){let{trtcInstance:e,enable:o,userId:a,sampleRate:c=48e3,channelCount:d=1,port:C}=A,{audioManager:y}=e.room,{getPCMAbortCtrlMap:S,audioFrameEventConfigMap:k}=y;if(k.set(a,{enable:o,sampleRate:c,channelCount:d,port:C}),o)if(a==="*")e.room.remotePublishedUserMap.forEach(V=>{if(V.remoteAudioTrack.isAvailable){if(S.get(V.userId))return;let J=y.getPCM(gA=>{e.emit(Hi.AUDIO_FRAME,gA)},V.userId);S.set(V.userId,J)}});else{if(S.get(a))return;let V=y.getPCM(J=>{e.emit(Hi.AUDIO_FRAME,J)},a);S.set(a,V)}else if(a==="*")e.room.remotePublishedUserMap.forEach(V=>{if(V.remoteAudioTrack.isSubscribed){let{userId:J}=V,gA=S.get(J);gA?.abort("disable"),S.delete(J)}});else{let V=S.get(a);V?.abort("disable"),S.delete(a)}})}resumeRemotePlayer(A){return KA(this,null,function*(){if(A.userId==="*"){let o=[];return A.trtcInstance.room.remotePublishedUserMap.forEach(a=>{let{remoteAudioTrack:c,remoteVideoTrack:d,remoteAuxiliaryTrack:C}=a;A.streamType?A.streamType==="main"?(c.isAvailable&&o.push(c.player.resume()),d.isAvailable&&o.push(d.player.resume())):C.isAvailable&&o.push(C.player.resume()):(c.isAvailable&&o.push(c.player.resume()),d.isAvailable&&o.push(d.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:a,remoteAuxiliaryTrack:c}=e;A.streamType?A.streamType==="main"?(o.isAvailable&&o.player.pause(),a.isAvailable&&a.player.pause(!1)):c.isAvailable&&c.player.pause(!1):(o.isAvailable&&o.player.pause(),a.isAvailable&&a.player.pause(!1),c.isAvailable&&c.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 ri({code:Et.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 ri({code:Et.INVALID_OPERATION,message:"no available remote video"}))}switchPlaybackQuality(A){return KA(this,null,function*(){let e=A.trtcInstance;return e._playbackQualitySwitcher||(e._playbackQualitySwitcher=new MiA),e._playbackQualitySwitcher.switchPlaybackQuality(A)})}prelink(A){return KA(this,null,function*(){let{trtcInstance:e}=A;return A.enable?e.room.prelink(A.sdkAppId,A.userId,A.userSig,uL.frameWorkType,A.roomId,A.strRoomId):e.room.closePrelink()})}};Ci([L5({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"}}})],Ij.prototype,"enableAudioFrameEvent"),Ci([L5({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"}}})],Ij.prototype,"prelink");var viA=new Ij,RiA=gc(Kl(),1),wiA=class extends RiA.EventEmitter{constructor(){super(),Y(this,"states",{}),Y(this,"permissionChangeHandler"),Y(this,"log"),this.log=QA.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 KA(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 KA(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={}}},h1=new wiA,Bz=0,IL=new Set,Zl=null;_x(lz),jA.checkStorage();var Ss=class nm extends eK.EventEmitter{constructor(e,o){super(),Y(this,"_room"),Y(this,"_eventListened",new Set),Y(this,"_localVideoTrack",null),Y(this,"_localAudioTrack",null),Y(this,"_localScreenTrack",null),Y(this,"_localScreenAudioTrack",null),Y(this,"_localVideoConfig",null),Y(this,"_localScreenConfig",null),Y(this,"_localAudioConfig",null),Y(this,"_remoteVideoConfigMap",new Map),Y(this,"_remoteAudioConfigMap",new Map),Y(this,"_remoteAudioVolumeMap",new Map),Y(this,"_remoteAudioMuteMap",new Map),Y(this,"_mediaTrackMap",new WeakMap),Y(this,"_log",QA.createLogger({id:"t".concat(++Bz)})),Y(this,"_plugins",new Map),Y(this,"_networkQuality",null),Y(this,"_speakerId"),Y(this,"enterRoomParams"),Y(this,"_enableAutoSwitchWhenRecapturing",!0),Y(this,"_autoSubscribeDataChannel",!1),Y(this,"_playbackQualityList",[]),this._room=new e(mi({logger:this._log,frameWorkType:nm.frameWorkType},o)),this._room.videoDecodeFallbackType=o.videoDecodeFallback,Tr(o.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=o.enableAutoSwitchWhenRecapturing),this._log.info("create() ".concat(JSON.stringify(o,(a,c)=>a==="plugins"?c.map(d=>d.Name):c))),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(a){return this._room.audioManager.dump(a)}}}),o.plugins&&o.plugins.forEach(a=>{this._use(a,o.assetsPath)}),this._use(hiA,o.assetsPath),this._use(diA,o.assetsPath),this._use(BiA,o.assetsPath),this._use(hz,o.assetsPath),this._use(yiA),o.enableSEI&&Fk&&this._use(miA),this._room.on("audio-volume",a=>{var c,d;!a.find(C=>C.userId==="")&&this._localAudioTrack&&a.push({userId:"",volume:Math.floor(100*((c=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?c:this._localAudioTrack.getAudioLevel())),floatVolume:(d=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?d:this._localAudioTrack.getInternalAudioLevel()}),o.volumeType===1&&a.forEach(C=>{var y;let S=C.userId===""?this._localAudioTrack:(y=this.room.remotePublishedUserMap.get(C.userId))==null?void 0:y.remoteAudioTrack;S&&(C.volume=S.dbVolume)}),o.enableDbVolume&&a.forEach(C=>{var y;let S=C.userId===""?this._localAudioTrack:(y=this.room.remotePublishedUserMap.get(C.userId))==null?void 0:y.remoteAudioTrack;S&&(C.volume=S.dbVolume)}),this.emit(Hi.AUDIO_VOLUME,{result:a.sort((C,y)=>y.volume-C.volume)})}),this._room.videoManager.on("error",a=>{this._log.error(new wo({code:Ro.OPERATION_FAILED,extraCode:5504,message:a.message,originError:a}))}),this._listenEvents(),this._initActiveSpeaker(),((a,c)=>{let{emit:d}=a;a.emit=function(){for(var C=arguments.length,y=new Array(C),S=0;S<C;S++)y[S]=arguments[S];try{return d.apply(a,y)}catch(k){let V=Xo({key:Mo.CATCH_HANDLER_ERROR,data:{name:c,event:y[0]},addDocLink:!1});return QA.warn("".concat(V,`
|
||
|
||
`).concat(k.stack)),!1}}})(this,"trtc")}static create(e){}static _create(e,o){(function(){var c;if(F5){F5=!1,QA.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info("* API Document: ".concat(qh,"/en/index.html")),console.info("* Changelog: ".concat(qh,"/en/tutorial-01-info-changelog.html")),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),QA.info("TRTC Web SDK Version:",qd),Op||QA.debug("Build Time:","2026-02-28 12:18:13");let d="UA: ".concat(navigator.userAgent,`
|
||
CPU core: `).concat(navigator.hardwareConcurrency,", GPU: ").concat(Pp());if(eg&&window.screen&&(window.screen.width||window.screen.height)){let y="".concat(window.screen.width,"x").concat(window.screen.height,"@").concat(window.devicePixelRatio);d+=", screen: ".concat(y)}let C=navigator.deviceMemory;C&&(d+=", minRAM: ".concat(C,"GB")),QA.info(d),QA.info("URL: ".concat(location.href).concat(((c=self.frameElement)==null?void 0:c.tagName)==="IFRAME"?" in iframe":"")),mM().then(y=>{y&&QA.info(UC)})}})();let a=new nm(e,o||{});return IL.add(a),a.__v_skip=!0,a}get room(){return this._room}_listenEvents(){rd(this,this._room).add("peer-join",e=>{let{userId:o}=e;this.emit(Hi.REMOTE_USER_ENTER,{userId:o})}).add("peer-leave",e=>{let{userId:o,reason:a}=e;this.emit(Hi.REMOTE_USER_EXIT,{userId:o,reason:a})}).add("banned",e=>{hQ(!0),this._exitRoom().finally(()=>{this.emit(Hi.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(Hi.ERROR,wo.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(Hi.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let o=Qo(mi({},e),{uplinkRTT:Math.min(e.uplinkRTT,l0),downlinkRTT:Math.min(e.downlinkRTT,l0)});this.emit(Hi.NETWORK_QUALITY,o)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{rd(o,o).add("player-state-changed",a=>{let c=Qo(mi({},a),{userId:e.userId});o.kind===YA.VIDEO&&(c.streamType=eC(o.streamType)),this.emit(o.kind===YA.AUDIO?Hi.AUDIO_PLAY_STATE_CHANGED:Hi.VIDEO_PLAY_STATE_CHANGED,c)}).add("error",a=>{a.getCode()===Et.PLAY_NOT_ALLOWED&&this.emit(Hi.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{kn(o)})}).add("remote-publish-state-changed",e=>{let{prevMuteState:o,muteState:a}=e,{userId:c}=a,d=o.audioAvailable,C=o.videoAvailable,{audioAvailable:y,videoAvailable:S}=a;y||this._remoteAudioConfigMap.delete(c),S||this._removeRemoteVideoConfig(c,"main"),a.hasAuxiliary||this._removeRemoteVideoConfig(c,"sub"),C!==S&&(S?this._onVideoAvailable({userId:c,streamType:"main"}):this._onVideoUnavailable({userId:c,streamType:"main"}),this.emit(S?Hi.REMOTE_VIDEO_AVAILABLE:Hi.REMOTE_VIDEO_UNAVAILABLE,{userId:c,streamType:"main"})),d!==y&&(y?this._onAudioAvailable({userId:c}):this._onAudioUnavailable({userId:c,muteState:a}),this.emit(y?Hi.REMOTE_AUDIO_AVAILABLE:Hi.REMOTE_AUDIO_UNAVAILABLE,{userId:c})),o.hasAuxiliary!==a.hasAuxiliary&&(a.hasAuxiliary?this._onVideoAvailable({userId:c,streamType:"sub"}):this._onVideoUnavailable({userId:c,streamType:"sub"}),this.emit(a.hasAuxiliary?Hi.REMOTE_VIDEO_AVAILABLE:Hi.REMOTE_VIDEO_UNAVAILABLE,{userId:c,streamType:"sub"})),o.hasDatachannel!==a.hasDatachannel&&a.hasDatachannel&&this._onDataChannelAvailable()}).add("sei-message",e=>{this.emit(Hi.SEI_MESSAGE,Qo(mi({},e),{streamType:eC(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(Hi.ERROR,new wo({code:Ro.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var o,a,c,d,C,y,S;let k={2:"big",3:"small",7:"sub"},V={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)||((a=this._networkQuality)==null?void 0:a.uplinkRTT)||((c=this._networkQuality)==null?void 0:c.downlinkRTT)||0,l0),upLoss:((d=this._networkQuality)==null?void 0:d.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:(((y=e.msg_up_stream_info.msg_audio_status)==null?void 0:y.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((S=e.msg_up_stream_info.msg_audio_status)==null?void 0:S.uint32_audio_level)||0)/od},video:e.msg_up_stream_info.msg_video_status.filter(J=>k[J.uint32_video_stream_type]).map(J=>({bitrate:(J.uint32_video_codec_bitrate||0)/1e3,width:J.uint32_video_width,height:J.uint32_video_height,frameRate:J.uint32_video_enc_fps,videoType:k[J.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(J=>({userId:J.msg_user_info.str_identifier,audio:{bitrate:(J.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(J.msg_audio_status.uint32_audio_level||0)/od,point2pointDelay:(J.msg_audio_status.uint32_audio_p2p_delay||0)+(J.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:J.msg_audio_status.uint32_audio_cache_ms||0},video:J.msg_video_status.map(gA=>({bitrate:(gA.uint32_video_codec_bitrate||0)/1e3,width:gA.uint32_video_width,height:gA.uint32_video_height,frameRate:gA.uint32_video_dec_fps,videoType:k[gA.uint32_video_stream_type],point2pointDelay:(gA.uint32_video_p2p_delay||0)+(gA.uint32_video_cache_ms||0),jitterBufferDelay:gA.uint32_video_cache_ms||0,codec:gA.uint32_video_codec}))}))};this.emit(Hi.STATISTICS,V)}).add("custom-message",e=>{this.emit(Hi.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(Hi.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(Hi.FIRST_VIDEO_FRAME,Qo(mi({},e),{streamType:eC(e.streamType)}))}).add("audio-frame",e=>{this.emit(Hi.AUDIO_FRAME,e)}).add("data-channel-message",e=>{var o,a,c,d,C;let{data:y}=e;if(y.sender==="")return;let S={segmentId:(o=y.payload)==null?void 0:o.roundid,speakerUserId:y.sender,sourceText:(a=y.payload)==null?void 0:a.text,translationTexts:(c=y.payload)==null?void 0:c.translate_msg,timestamp:(d=y.payload)==null?void 0:d.start_utc_ms,isCompleted:(C=y.payload)==null?void 0:C.end,robotId:y.robotid};S.sourceText!==""&&this.emit(Hi.REALTIME_TRANSCRIBER_MESSAGE,S)}).add("asr-robot-peer-join",e=>{this.emit(Hi.REALTIME_TRANSCRIBER_STATE_CHANGED,{state:"started",roomId:this.room.roomId,transcriberRobotId:e.userId})}).add("asr-robot-peer-leave",e=>{this.emit(Hi.REALTIME_TRANSCRIBER_STATE_CHANGED,{state:"stopped",roomId:this.room.roomId,transcriberRobotId:e.userId})}),rd(this,Pc).add("audioInputAdded",e=>{this.emit(Hi.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(Hi.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(Hi.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(Hi.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>KA(this,null,function*(){if(this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Zl&&Zl.deviceId===c0){let o=(yield xM()).find(a=>a.deviceId===c0);o&&Zl.groupId!==o.groupId&&(Zl=o,this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}))}})).add("audioOutputRemoved",e=>KA(this,null,function*(){this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let o=(yield xM())[0];if(!o||!Zl||Zl.groupId===o.groupId)return;let a=Zl.deviceId===e.deviceId,c=Zl.deviceId===c0&&Zl.deviceId===o.deviceId;(a||c)&&(Zl=o,this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}))})),rd(this,h1).add("permission-state-change",e=>{this.emit(Hi.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(Hi.SEI_MESSAGE,e=>{var o;let a=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;a&&a.updateAlphaRenderInfo(e)})}getNetworkTime(){return Lf()}use(e){let o,a;return"plugin"in e?(o=e.plugin,a=e.assetsPath):o=e,o.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(o,a)}_use(e,o){let a=this._plugins.get(e.Name);if(a)return this._log.warn("duplicate install plugin",e.Name),a;let c=new e(uiA.call(this,{TRTC:nm,room:this._room,assetsPath:o,errorModule:{RtcError:wo,ErrorCode:Ro,CoreErrorCode:Et,ErrorCodeDictionary:s1}}));return this._plugins.set(e.Name,c),c.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),c}enterRoom(e){return KA(this,null,function*(){var o,a;this.enterRoomParams=e;let{scene:c="rtc",enableAutoPlayDialog:d=!0,autoReceiveAudio:C=!0,autoReceiveVideo:y=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Yn(e.proxy)&&e.proxy.turnServer&&((a=(o=this._room).setTurnServer)==null||a.call(o,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=d,this._room.autoReceiveAudio=C,this._room.autoReceiveVideo=y,Tr(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let S={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(S,c,nm.frameWorkType),this._checkTrackToPublish(),uz.start()})}exitRoom(){return KA(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return KA(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(o){if(!(o instanceof Dx)||o.code!==Et.API_CALL_TIMEOUT&&o.code!==Et.SWITCH_ROOM_FAILED)throw o;this._log.warn("switchRoom ".concat(o.code===Et.API_CALL_TIMEOUT?"timeout":"failed",", fallback to exitRoom() and enterRoom()")),yield this._rejoinRoom(e)}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return KA(this,null,function*(){yield this.exitRoom();let o=mi(mi({},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",a=e.split("_".concat(o))[0];a&&this._stopRemoteVideo({userId:a,streamType:o}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),function(e){let o=E_.get(e);o&&(o.forEach(a=>clearTimeout(a)),E_.delete(e))}(this),this._room.remotePublishedUserMap.forEach(e=>{kn(e.remoteAudioTrack),kn(e.remoteVideoTrack),kn(e.remoteAuxiliaryTrack)})}switchRole(e,o){return KA(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(),kn(this),this.removeAllListeners(),this._room.destroy(),IL.delete(this),IL.size===0&&uz.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),F.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return KA(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:a=!0,mute:c,muteKeepVolumeDetection:d,option:C}=o,y=new JM(e._room.audioManager),S={},k={muted:!0};C&&(Je(C.microphoneId)?Je(C.audioTrack)||(S.customSource=C.audioTrack):S.deviceId=C.microphoneId,C&&bn(C.captureVolume)&&y.setCaptureVolume(C.captureVolume),Je(C.profile)||(Yn(C.profile)?Sp[C.profile]&&y.setProfile(Sp[C.profile]):y.setProfile(C.profile)),bn(C.earMonitorVolume)&&(k.muted=!(C.earMonitorVolume>0),k.volume=C.earMonitorVolume),Je(C.echoCancellation)||(y.profile.echoCancellation=C.echoCancellation),Je(C.noiseSuppression)||(y.profile.noiseSuppression=C.noiseSuppression),Je(C.autoGainControl)||(y.profile.autoGainControl=C.autoGainControl),Tr(e._enableAutoSwitchWhenRecapturing)&&(y.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),y.on("5",V=>{e.emit(Hi.ERROR,new wo({code:Ro.DEVICE_ERROR,extraCode:5309,messageParams:{error:V}}))}),y.on("2",V=>{e.emit(Hi.DEVICE_CHANGED,{type:"microphone",action:"active",device:V})}),y.on("4",V=>{let J;V.error&&(J=wo.convertFrom(V.error)),e.emit(Hi.PUBLISH_STATE_CHANGED,Qo(mi({},V),{error:J}))}),y.on("6",()=>{}),e._listenOutputTrackChanged(y),e._speakerId&&y.setAudioOutput(e._speakerId),yield y.capture(S),Je(c)||y.setMute(c,d),rd(y,y).add("player-state-changed",V=>{e.emit(Hi.AUDIO_PLAY_STATE_CHANGED,Qo(mi({},V),{userId:""}))}),a&&e._room.isJoined&&e._room.publish(y).catch(()=>{}),e._localAudioTrack=y,e._room.capturedLocalMainAudioTrack=y,e._localAudioConfig=Qo(mi({},o),{publish:a}),yield e._updateAudioPlayOption({playOption:k,track:y}),F.emit("113",{userId:"",room:e.room})}()})}updateLocalAudio(e){return KA(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:o,mute:a,muteKeepVolumeDetection:c,option:d}=e,C={};d&&(d.microphoneId?yield this._localAudioTrack.switchDevice(d.microphoneId):Je(d.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(d.audioTrack)),Je(d.captureVolume)||this._localAudioTrack.setCaptureVolume(d.captureVolume),Je(d.earMonitorVolume)||(C.muted=!(d.earMonitorVolume>0),C.volume=d.earMonitorVolume),yield this._localAudioTrack.update3A(d)),this._room.isJoined&&!Je(o)&&(o&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!o&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),Je(a)||this._localAudioTrack.setMute(a,c),yield this._updateAudioPlayOption({playOption:C,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Wh(this._localAudioConfig,e)})}stopLocalAudio(){return KA(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),F.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),kn(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,delete this._room.capturedLocalMainAudioTrack)})}startLocalVideo(){return KA(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 a,c,d;if(e._localVideoTrack)return void e._log.warn("local video is already started");let{view:C,publish:y=!0,capture:S=!0,mute:k,option:V,forcePublish:J=!1}=o,gA=y||J,CA=S,MA=new dQ(e._room.videoManager),Ae={},Qe={};if(V&&(Tr(V.avoidCropping)&&(MA.avoidCropping=V.avoidCropping),V.cameraId?Ae.deviceId=V.cameraId:Je(V.useFrontCamera)?Je(V.videoTrack)||(Ae.customSource=V.videoTrack):Ae.facingMode=V.useFrontCamera?YA.FACING_MODE_USER:YA.FACING_MODE_ENVIRONMENT,Je(V.retryWhenExactFailed)||(Ae.retryWhenExactFailed=V.retryWhenExactFailed),V.qosPreference&&(Ae.contentHint=n1(V.qosPreference)),Je(V.profile)||(Yn(V.profile)?kC[V.profile]&&MA.setProfile(kC[V.profile]):MA.setProfile(V.profile)),Je(V.fillMode)||(Qe.objectFit=V.fillMode),Je(V.mirror)||(Qe.mirror=V.mirror),Je(V.small)||(Je(V.smallMode)||(e._room.smallMode=V.smallMode),Tr(V.small)&&V.small===!1?MA.stopSmall():MA.updateSmallConfig(r1(V.small,!0))),Je(V.rotation)||MA.setRotation(V.rotation),Tr(e._enableAutoSwitchWhenRecapturing)&&(MA.enableAutoSwitchWhenRecapturing=e._enableAutoSwitchWhenRecapturing)),MA.once("first-video-frame",Ye=>{e.emit(Hi.FIRST_VIDEO_FRAME,Qo(mi({},Ye),{streamType:eC(Ye.streamType)}))}),MA.on("5",Ye=>{e.emit(Hi.ERROR,new wo({code:Ro.DEVICE_ERROR,extraCode:5308,messageParams:{error:Ye}}))}),MA.on("2",Ye=>{e.emit(Hi.DEVICE_CHANGED,{type:"camera",action:"active",device:Ye})}),MA.on("4",Ye=>{let ve;Ye.error&&(ve=wo.convertFrom(Ye.error)),e.emit(Hi.PUBLISH_STATE_CHANGED,Qo(mi({},Ye),{error:ve}))}),MA.on("6",()=>{}),e._listenOutputTrackChanged(MA),Ae.customSource&&_p(Ae.customSource)?(MA.setOutputMediaStreamTrack(Ae.customSource),CA=!1):CA?yield MA.capture(Ae):(a=MA.manager)==null||a.changeInput(MA),Je(k)||(yield MA.setMute(k)),rd(MA,MA).add("player-state-changed",Ye=>{e.emit(Hi.VIDEO_PLAY_STATE_CHANGED,Qo(mi({},Ye),{userId:"",streamType:"main"}))}).add("video-size-changed",Ye=>{e.emit(Hi.VIDEO_SIZE_CHANGED,Qo(mi({},Ye),{streamType:eC(Ye.streamType)}))}),gA){let Ye=e._localScreenTrack&&((c=e._localScreenConfig)==null?void 0:c.publish)&&e._localScreenConfig.streamType==="main";e._room.isJoined?!Ye||J?(e._room.publish(MA).catch(()=>{}),((d=e._localScreenConfig)==null?void 0:d.streamType)==="main"&&e._localScreenConfig&&(e._localScreenConfig.publish=!1)):(gA=!1,e._log.warn("main stream is already published, local video track will not publish")):Ye&&(gA=!1)}e._localVideoTrack=MA,e._room.capturedLocalMainVideoTrack=MA,e._localVideoConfig=Qo(mi({},o),{view:C,publish:gA,capture:CA}),yield e._updateVideoPlayOption({view:C,playOption:Qe,track:MA})}()})}updateLocalVideo(e){return KA(this,null,function*(){var o,a,c,d,C,y,S;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:k,publish:V=!0,mute:J,capture:gA,option:CA,forcePublish:MA=!1}=e,Ae=V||MA,Qe=gA,Ye={};if(!this._localVideoConfig.capture&&_p((o=this.localVideoTrack)==null?void 0:o.outMediaTrack)&&(CA!=null&&CA.cameraId||CA!=null&&CA.videoTrack)&&this._localVideoTrack.outMediaTrack!==CA?.videoTrack&&(Qe=!0),this._localVideoConfig.capture)Qe!==!1?CA!=null&&CA.cameraId?yield this._localVideoTrack.switchDevice(CA?.cameraId):Je(CA?.useFrontCamera)?Je(CA?.videoTrack)||(_p(CA?.videoTrack)?CA?.videoTrack!==((a=this.localVideoTrack)==null?void 0:a.outMediaTrack)&&(yield this._localVideoTrack.setOutputMediaStreamTrack(CA?.videoTrack)):yield this._localVideoTrack.setInputMediaStreamTrack(CA?.videoTrack)):yield this._localVideoTrack.switchDevice(CA!=null&&CA.useFrontCamera?YA.FACING_MODE_USER:YA.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(Qe){let ve={};ve.deviceId=CA?.cameraId||((c=this._localVideoConfig.option)==null?void 0:c.cameraId),ve.facingMode=CA!=null&&CA.useFrontCamera||(d=this._localVideoConfig.option)!=null&&d.useFrontCamera?YA.FACING_MODE_USER:YA.FACING_MODE_ENVIRONMENT,ve.customSource=CA!=null&&CA.videoTrack||!ve.deviceId?(C=this._localVideoConfig.option)==null?void 0:C.videoTrack:void 0,yield this._localVideoTrack.capture(ve)}CA&&(Je(CA.profile)||(Yn(CA.profile)?kC[CA.profile]&&this._localVideoTrack.setProfile(kC[CA.profile]):this._localVideoTrack.setProfile(CA.profile),(!CA.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(CA.cameraId||CA.useFrontCamera?YA.FACING_MODE_USER:YA.FACING_MODE_ENVIRONMENT))&&(yield this._localVideoTrack.applyProfile())),Je(CA.fillMode)||(Ye.objectFit=CA.fillMode),Je(CA.mirror)||(Ye.mirror=CA.mirror),Je(CA.rotation)||this._localVideoTrack.setRotation(CA.rotation),CA.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(n1(CA.qosPreference)),Je(CA.small)||(Tr(CA.small)&&!CA.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(r1(CA.small,!0)))),this._room.isJoined&&Je(Ae)&&this._localVideoConfig.publish&&Qe&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((Ae??this._localVideoConfig.publish)||MA?this._localScreenTrack&&((y=this._localScreenConfig)!=null&&y.publish)&&this._localScreenConfig.streamType==="main"&&!MA?(Ae=!1,this._log.warn("main stream is already published, local video track will not publish")):(this._room.publish(this._localVideoTrack).catch(()=>{}),((S=this._localScreenConfig)==null?void 0:S.streamType)==="main"&&this._localScreenConfig&&(this._localScreenConfig.publish=!1)):this._room.unpublish(this._localVideoTrack).catch(()=>{})),Je(J)||(yield this._localVideoTrack.setMute(J)),yield this._updateVideoPlayOption({view:k,playOption:Ye,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Wh(this._localVideoConfig,Qo(mi({},e),{publish:Ae,capture:Qe}))})}stopLocalVideo(){return KA(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(),kn(this._localVideoTrack),this._localVideoTrack=null,delete this._room.capturedLocalMainVideoTrack,this._localVideoConfig=null)})}startScreenShare(){return KA(this,arguments,function(){var e=this;let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{publish:!0,view:null};return function*(){var a,c,d;if(e._localScreenTrack)return void e._log.warn("screen share is already started");let{view:C=null,publish:y=!0,muteSystemAudio:S,option:k}=o,V=y,J=new HM(e._room.videoManager);J.on("4",Qe=>{let Ye;Qe.error&&(Ye=wo.convertFrom(Qe.error)),e.emit(Hi.PUBLISH_STATE_CHANGED,Qo(mi({},Qe),{error:Ye}))}),J.once("first-video-frame",Qe=>{e.emit(Hi.FIRST_VIDEO_FRAME,Qo(mi({},Qe),{streamType:eC(Qe.streamType)}))}),e._listenOutputTrackChanged(J),o.streamType==="main"&&(J.mediaType=4);let gA=null,CA={},MA={};k&&(Je(k.profile)||(Yn(k.profile)?fb[k.profile]&&J.setProfile(fb[k.profile]):J.setProfile(k.profile)),k.systemAudio&&(CA.systemAudio=!0,CA.echoCancellation=k.echoCancellation,CA.noiseSuppression=k.noiseSuppression,CA.autoGainControl=k.autoGainControl),Je(k.fillMode)||(MA.objectFit=k.fillMode),k.videoTrack&&(CA.videoTrack=k.videoTrack),k.audioTrack&&(CA.audioTrack=k.audioTrack),k.captureElement&&(CA.captureElement=k.captureElement),k.preferDisplaySurface&&(CA.preferDisplaySurface=k.preferDisplaySurface),k.qosPreference&&(CA.contentHint=n1(k.qosPreference)));let Ae=yield J.capture(CA);if(J.mediaTrack.addEventListener(YA.ENDED,()=>{e._stopScreenShare(),e.emit(Hi.SCREEN_SHARE_STOPPED)}),Ae.getAudioTracks()[0]){gA=new WK(e._room.audioManager);let Qe=Ae.getAudioTracks()[0];(a=o.option)!=null&&a.systemAudio&&!((c=o.option)!=null&&c.audioTrack)&&(gA.sourceTrack=Qe),yield gA.setInputMediaStreamTrack(Qe),Tr(S)&&gA.mediaTrack&&(gA.mediaTrack.enabled=!S),e._speakerId&&gA.setAudioOutput(e._speakerId)}if(rd(J,J).add("player-state-changed",Qe=>{e.emit(Hi.VIDEO_PLAY_STATE_CHANGED,Qo(mi({},Qe),{userId:"",streamType:"sub"}))}),V){let Qe=e._localVideoTrack&&((d=e._localVideoConfig)==null?void 0:d.publish),Ye=!(o.streamType==="main"&&Qe);e._room.isJoined?(Ye?e._room.publish(J).catch(()=>{}):(V=!1,e._log.warn("main stream is already published, screen share main will not publish")),gA&&(e._checkScreenAudioEchoCancellation(J,gA),e._room.publish(gA).catch(()=>{}))):Ye||(V=!1)}e._localScreenTrack=J,e._room.capturedLocalAuxVideoTrack=J,e._localScreenAudioTrack=gA,e._localScreenConfig=Qo(mi({},o),{view:C,publish:V}),yield e._updateVideoPlayOption({view:C,playOption:MA,track:J})}()})}updateScreenShare(e){return KA(this,null,function*(){var o,a;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:c,publish:d,muteSystemAudio:C,option:y}=e,S=d,k={};if(y){if(Je(y.fillMode)||(k.objectFit=y.fillMode),y.qosPreference){let V=n1(y.qosPreference);this._localScreenTrack.setContentHint(V)}y.videoTrack&&this._localScreenTrack.setInputMediaStreamTrack(y.videoTrack),y.audioTrack&&this._localScreenAudioTrack&&this._localScreenAudioTrack.setInputMediaStreamTrack(y.audioTrack)}if(this._room.isJoined&&!Je(S)){if(S&&!this._localScreenConfig.publish){let V=this._localVideoTrack&&((o=this._localVideoConfig)==null?void 0:o.publish);this._localScreenConfig.streamType==="main"&&V?(S=!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&&!S){let V=[this._localScreenTrack];this._localScreenAudioTrack&&V.push(this._localScreenAudioTrack),V.forEach(J=>this._room.unpublish(J).catch(()=>{}))}}(a=this._localScreenAudioTrack)!=null&&a.mediaTrack&&Tr(C)&&(this._localScreenAudioTrack.mediaTrack.enabled=!C),yield this._updateVideoPlayOption({view:c,playOption:k,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Wh(this._localScreenConfig,Qo(mi({},e),{publish:S}))})}stopScreenShare(){return KA(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return KA(this,null,function*(){let{view:o,userId:a,streamType:c,option:d}=e,C="".concat(a,"_").concat(c);if(this._remoteVideoConfigMap.has(C))return void this._log.warn("remote video has already started. userId:".concat(a,", streamType:").concat(c));let y=this._room.remotePublishedUserMap.get(a);if(!y)return;let S={},k=c==="main"?y.remoteVideoTrack:y.remoteAuxiliaryTrack,V=this._bindRemoteVideoTrackEvents(k);this._listenOutputTrackChanged(k),d&&(Je(d.fillMode)||(S.objectFit=d.fillMode),Je(d.mirror)||(S.mirror=d.mirror),Je(d.poster)||(S.poster=d.poster),S.canvasRender=d.canvasRender,c==="main"&&!Je(d.small)&&(!y.remoteVideoTrack.isSubscribing&&!y.remoteVideoTrack.isSubscribed&&y.remoteVideoTrack.setMediaType(d.small?8:4),this._room.changeType(d.small,k.user)),Je(d.draggable)||k.setDraggable(d.draggable)),S.isLiveStream=!!this._playbackQualityList.find(J=>J.userId===a&&J.streamType===c),yield this._room.subscribe(k),yield this._enableVideoDecodeFallback(k,c),yield this._updateVideoPlayOption({view:o,playOption:S,track:k}),this._emitTrackEvent(k),this._remoteVideoConfigMap.set(C,{config:e,handlers:V}),d&&!Je(d.receiveWhenViewVisible)&&this._observeView({remoteTrack:k,view:o,receiveWhenViewVisible:d.receiveWhenViewVisible,viewRoot:d?.viewRoot})})}updateRemoteVideo(e){return KA(this,null,function*(){var o,a;let{view:c,userId:d,streamType:C,option:y,mute:S}=e,k="".concat(d,"_").concat(C),V=this._remoteVideoConfigMap.get(k);if(!V||!this._room.remotePublishedUserMap.has(d))return;let J={};y&&(Je(y.fillMode)||(J.objectFit=y.fillMode),Je(y.mirror)||(J.mirror=y.mirror));let gA=null,CA=this._room.remotePublishedUserMap.get(d);if(C==="main"&&CA!=null&&CA.muteState.hasVideo&&(gA=CA.remoteVideoTrack),C==="sub"&&CA!=null&&CA.muteState.hasAuxiliary&&(gA=CA.remoteAuxiliaryTrack),!gA)return;let{config:MA}=V;C==="main"&&y&&!Je(y.small)&&this._room.changeType(y.small,gA.user),y&&!Je(y.draggable)&&gA.setDraggable(y.draggable),y&&(Tr(y.pictureInPicture)&&(y.pictureInPicture?yield gA.player.enterPictureInPicture():yield gA.player.exitPictureInPicture()),Tr(y.fullScreen)&&(y.fullScreen?yield gA.player.enterFullscreen():yield gA.player.exitFullscreen())),Tr(S)&&(gA.ignoreUpdatePlayingState=!0,S?(yield gA.player.pause(),yield this.room.unsubscribe(gA)):(yield this.room.subscribe(gA),yield gA.player.resume(!0))),yield this._updateVideoPlayOption({view:c,playOption:J,track:gA,prevConfig:MA}),Wh(MA,e);let Ae=Je(y?.receiveWhenViewVisible)?(o=MA.option)==null?void 0:o.receiveWhenViewVisible:y.receiveWhenViewVisible,Qe=Je(c)?MA.view:c,Ye=Je(y?.viewRoot)?(a=MA.option)==null?void 0:a.viewRoot:y.viewRoot;this._observeView({remoteTrack:gA,view:Qe,receiveWhenViewVisible:Ae,viewRoot:Ye})})}stopRemoteVideo(e){return KA(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return KA(this,null,function*(){let a=[],c=this._room.remotePublishedUserMap.get(e.userId);if(c){let{muteState:d,remoteVideoTrack:C,remoteAuxiliaryTrack:y}=c;e.streamType==="main"&&(C.stop(),d.hasVideo&&a.push(C)),e.streamType==="sub"&&(y.stop(),d.hasAuxiliary&&a.push(y))}for(let d of a)o&&(delete d.ignoreUpdatePlayingState,yield this._room.unsubscribe(d),this._mediaTrackMap.delete(d.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,o){let a="".concat(e,"_").concat(o),c=this._remoteVideoConfigMap.get(a);if(c&&(c.observer&&c.observer.disconnect(),c.handlers)){let d=this._room.remotePublishedUserMap.get(e);if(d){let C=o==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;this._unbindRemoteVideoTrackEvents(C,c.handlers)}}this._remoteVideoConfigMap.delete(a)}_bindRemoteVideoTrackEvents(e){let o={onEnterPIP:()=>KA(this,null,function*(){yield e.player.enterPIPPromise,this.emit(Hi.PICTURE_IN_PICTURE_STATE_CHANGED,{streamType:eC(e.streamType),userId:e.userId,isPictureInPicture:!0,pictureInPictureWindow:e.player.pipWindow})}),onLeavePIP:()=>{this.emit(Hi.PICTURE_IN_PICTURE_STATE_CHANGED,{streamType:eC(e.streamType),userId:e.userId,isPictureInPicture:!1})},onEnterFullScreen:()=>{this.emit(Hi.FULL_SCREEN_STATE_CHANGED,{streamType:eC(e.streamType),userId:e.userId,isFullScreen:!0})},onLeaveFullScreen:()=>{this.emit(Hi.FULL_SCREEN_STATE_CHANGED,{streamType:eC(e.streamType),userId:e.userId,isFullScreen:!1})},onDecodeFailed:()=>{this.emit(Hi.ERROR,new wo({code:Ro.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))},onVideoSizeChanged:a=>{this.emit(Hi.VIDEO_SIZE_CHANGED,Qo(mi({},a),{streamType:eC(a.streamType)}))}};return e.player.on(fo.ENTER_PICTURE_IN_PICTURE,o.onEnterPIP),e.player.on(fo.LEAVE_PICTURE_IN_PICTURE,o.onLeavePIP),e.player.on(fo.ENTER_FULL_SCREEN,o.onEnterFullScreen),e.player.on(fo.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(fo.ENTER_PICTURE_IN_PICTURE,o.onEnterPIP),e.player.off(fo.LEAVE_PICTURE_IN_PICTURE,o.onLeavePIP),e.player.off(fo.ENTER_FULL_SCREEN,o.onEnterFullScreen),e.player.off(fo.LEAVE_FULL_SCREEN,o.onLeaveFullScreen),e.off("decode-failed",o.onDecodeFailed),e.off("video-size-changed",o.onVideoSizeChanged)}muteRemoteAudio(e,o){return KA(this,null,function*(){this._remoteAudioMuteMap.set(e,o);try{if(e==="*")if(o)yield this._stopRemoteAudio({userId:e});else{let a=[...this._room.remotePublishedUserMap.values()];for(let c of a)c.muteState.hasAudio&&!this._remoteAudioConfigMap.has(c.userId)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:c.userId}))}else o?yield this._stopRemoteAudio({userId:e}):!this._remoteAudioConfigMap.has(e)&&this.room.isJoined&&(yield this._startRemoteAudio({userId:e}))}catch(a){throw a.code!==Ro.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),a}})}setRemoteAudioVolume(e,o){if(e==="*"){this._remoteAudioVolumeMap.set("*",o),this._remoteAudioVolumeMap.forEach((c,d)=>this._remoteAudioVolumeMap.set(d,o));let a=[...this._room.remotePublishedUserMap.values()];for(let c of a)this._remoteAudioVolumeMap.set(c.userId,o),c.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:o},track:c.remoteAudioTrack})}else if(e){let a=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,o),a&&a.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:o},track:a.remoteAudioTrack})}}startPlugin(e,o){return KA(this,null,function*(){return e.start(o)})}updatePlugin(e,o){return KA(this,null,function*(){return e.update(o)})}stopPlugin(e,o){return KA(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,a){if(this.listeners(e).includes(o))return this;if(this._log.debug("on",e),super.on(e,o,a),this._eventListened.add(e),this.listeners(Hi.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:c}=this.room.audioManager;c.get("")||c.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,a=new Array(o>1?o-1:0),c=1;c<o;c++)a[c-1]=arguments[c];try{ciA.has(e)||this._log.debug("emit ".concat(e," ").concat(JSON.stringify(a)))}catch{}return super.emit(e,...a)}off(e,o,a){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,o,a),(e==="realtime-transcriber-message"||e==="*")&&this.listeners("realtime-transcriber-message").length===0&&this._room.unsubscribeDataChannel(),(e===nm.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(nm.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:c}=this.room.audioManager;c.forEach(d=>{d?.abort("off")}),c.clear()}return this}getAudioTrack(){let e,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},a=null,c="main",d=!1;if(Yn(o)?e=o:(e=o.userId,d=o.processed===!0,o.streamType&&(c=o.streamType)),e){let C=this._room.remotePublishedUserMap.get(e);C&&(a=C.remoteAudioTrack)}else a=c==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return a?d&&a.outMediaTrack&&a.outMediaTrack!==a.mediaTrack?a.outMediaTrack.clone():a.mediaTrack:null}getVideoTrack(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{userId:"",streamType:"main"},{userId:o="",streamType:a="main",processed:c=!1}=e,d=null;if(o==="")a==="main"&&this._localVideoTrack&&(d=this._localVideoTrack),a==="sub"&&this._localScreenTrack&&(d=this._localScreenTrack);else{let C=this._room.remotePublishedUserMap.get(o);C&&(d=a==="main"?C.remoteVideoTrack:C.remoteAuxiliaryTrack)}return d?c&&d.outMediaTrack&&d.outMediaTrack!==d.mediaTrack?d.outMediaTrack.clone():d.mediaTrack:null}getVideoSnapshot(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{userId:o,streamType:a="main"}=e;if(o){let c=this._room.remotePublishedUserMap.get(o);if(a==="main"&&c!=null&&c.muteState.hasVideo)return c.remoteVideoTrack.getVideoFrame();if(a==="sub"&&c!=null&&c.muteState.hasAuxiliary)return c.remoteAuxiliaryTrack.getVideoFrame()}else{if(a==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(a==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var o,a;this._speakerId=e,(o=this._localAudioTrack)==null||o.setAudioOutput(e),(a=this._localScreenAudioTrack)==null||a.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(c=>c.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return KA(this,null,function*(){(yield xM()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Zl=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(qh,"/en/TRTC.html#.setCurrentSpeaker"))})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return KA(this,null,function*(){var o;let{userId:a}=e;if(this._remoteAudioConfigMap.has(a))return void this._log.warn("remote audio has already started. userId:".concat(a));let c=this._room.remotePublishedUserMap.get(a);if(!c)return;let d={},C=c.remoteAudioTrack;C.on("decode-failed",y=>{this.emit(Hi.ERROR,new wo({code:Ro.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(C),this._speakerId&&C.setAudioOutput(this._speakerId);try{let y=(o=this._remoteAudioVolumeMap.get(a))!=null?o:this._remoteAudioVolumeMap.get("*"),S=bn(y)?y:100;d.volume=S,this._remoteAudioConfigMap.set(a,e),yield this._room.subscribe(C),ma(ca(C,"decode-failed"),IE(ca(C,Zs.INIT)),Bl(()=>{this.startPlugin(hz.Name,{track:C,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:d,track:C}),F.emit("115",{userId:a,room:this.room}),C.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:C.outMediaTrack,refId:"ra-".concat(a)})}catch(y){throw this._remoteAudioConfigMap.delete(a),y}this._emitTrackEvent(C)})}_stopRemoteAudio(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return KA(this,null,function*(){let a=this._room.remotePublishedUserMap.get(e.userId);a&&(a.remoteAudioTrack.stop(),a.muteState.hasAudio&&o&&(yield this._room.unsubscribe(a.remoteAudioTrack)),this._mediaTrackMap.delete(a.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete("".concat(e.userId)),F.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:"ra-".concat(e.userId)})})}_enableVideoDecodeFallback(e,o){let a,c=this._room.videoDecodeFallbackType;c&&this._plugins.has("TRTCVideoDecoder")&&(e.log.debug("remote video will fall back when decode failed",e.id),ma(ca(e,"decode-failed"),IE(ca(e,Zs.INIT)),YK(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:c})}),$2(ca(e,"decode-downgrade-state-changed")),Bl(d=>{a=d.state,this.emit(Hi.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Qo(mi({},d),{streamType:o,userId:e.userId}))},d=>{e.log.error("fallback",d)},()=>{a==="STARTED"&&e.log.info("fallback complete")})))}_updateVideoPlayOption(e){return KA(this,arguments,function(o){let{view:a,playOption:c,track:d,prevConfig:C}=o;return function*(){if(d.setMirror(c.mirror),Je(a)&&C&&C.view&&!f0(c)){let y=sM(C.view);y.length>0&&(yield d.play(y,c))}if(!Je(a)){let y=sM(a);y.length>0?yield d.play(y,c):d.stop()}}()})}_updateAudioPlayOption(e){return KA(this,arguments,function(o){var a=this;let{playOption:c={},track:d,prevConfig:C}=o;return function*(){if(!d.isPlayCalled)try{yield d.play(null,c)}catch{}if(Je(c.muted)||d.setPlayerMute(c.muted),Je(c.volume)||d.setAudioVolume(c.volume/100),d instanceof JM&&d.mediaTrack){let y=c.muted===!1&&!Je(c.volume)&&c.volume>0?"add":"remove";a.room.audioManager.updateAudioReference({type:y,audioReference:d.mediaTrack,refId:"em"})}else if(d instanceof i1){let y=c.muted?0:c.volume;if(Je(y))return;a.room.audioManager.updateAudioReference({type:"updateVolume",refId:"ra-".concat(d.userId),volume:c.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],a=e.isRemote?e.userId:"";e.outMediaTrack&&(o&&this._mediaTrackMap.get(e.outMediaTrack)===a||(this._mediaTrackMap.set(e.outMediaTrack,a),this.emit(Hi.TRACK,{userId:a,streamType:eC(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var e,o,a;let c=[];if((e=this._localAudioConfig)!=null&&e.publish&&this._localAudioTrack&&c.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&c.push(this._localVideoTrack),(a=this._localScreenConfig)!=null&&a.publish&&(this._localScreenTrack&&c.push(this._localScreenTrack),this._localScreenAudioTrack&&c.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),c.length!==0)return Promise.all(c.map(d=>this._room.publish(d).catch(()=>{})))}_observeView(e){let{remoteTrack:o,view:a,receiveWhenViewVisible:c,viewRoot:d}=e;if(Je(a)||Je(c))return;let C=this._remoteVideoConfigMap.get("".concat(o.userId,"_").concat(eC(o.streamType)));if(!C)return;let y=C.observer||void 0;if(a===null||wa(a)&&a.length===0||!c)return y?.disconnect(),void(o.isSubscribed||(this._log.info("_observeView observer disconnect, resubscribe",o.userId,o.strMediaType),this._room.subscribe(o).catch(()=>{})));let S=C.visibleViewMap||new Map,k=-1;(!y||y.root!==d)&&(y?.disconnect(),S.clear(),y=new IntersectionObserver(J=>{J.forEach(gA=>{S.set(gA.target,gA.isIntersecting),o.log.info("view ".concat(gA.target.id," is").concat(gA.isIntersecting?"":" not"," visible"))}),clearTimeout(k),k=window.setTimeout(()=>{[...S.values()].find(gA=>gA)?o.isSubscribed||this._room.subscribe(o).catch(()=>{}):o.isSubscribed&&this._room.unsubscribe(o).catch(()=>{})},200)},{root:d}));let V=new Set(sM(a));S.forEach((J,gA)=>{V.has(gA)||(y.unobserve(gA),S.delete(gA))}),V.forEach(J=>{S.set(J,!0),y.observe(J)}),y.takeRecords().forEach(J=>{S.set(J.target,J.isIntersecting)}),C.visibleViewMap=S,C.observer=y}_exitRoom(){return KA(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return KA(this,null,function*(){var e,o;if(this._localScreenTrack){if(this._room.isJoined){let a=[];(e=this._localScreenConfig)!=null&&e.publish&&a.push(this._localScreenTrack),this._localScreenAudioTrack&&a.push(this._localScreenAudioTrack),yield Promise.all(a.map(c=>this._room.unpublish(c).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),kn(this._localScreenTrack),this._localScreenTrack=null,delete this._room.capturedLocalAuxVideoTrack,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,o){return KA(this,null,function*(){var a,c;if(!e||!o)return;let d=(a=e.trackSettings)==null?void 0:a.displaySurface;if(((c=o.trackSettings)==null?void 0:c.echoCancellation)===!1&&(d==="monitor"||d==="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"&&(!Zl||Wk(Zl))&&(this._initActiveSpeaker(),F.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return KA(this,null,function*(){if(Zl&&!Wk(Zl))this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:Zl});else{let e=yield xM();e[0]&&!Wk(e[0])?(Zl=e[0],this.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):F.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable(e){let{userId:o}=e,a=this._remoteAudioMuteMap.has(o)?this._remoteAudioMuteMap.get(o):this._remoteAudioMuteMap.get("*");(a===!1||this._room.autoReceiveAudio&&!a)&&this._doStartRemoteAudio({userId:o}).catch(()=>{})}_onVideoAvailable(e){let{userId:o,streamType:a}=e;if(!this._room.autoReceiveVideo)return;let c=this._room.remotePublishedUserMap.get(o);if(c){let d=a==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack,C=[d];this._room.autoReceiveAudio&&c.remoteAudioTrack.isAvailable&&C.push(c.remoteAudioTrack),this._room.subscribe(...C).then(()=>{this._emitTrackEvent(d)}).catch(()=>{})}}_onAudioUnavailable(e){let{userId:o,muteState:a}=e;a.hasAudio&&a.audioMuted||this._stopRemoteAudio({userId:o},!1).catch(()=>{})}_onVideoUnavailable(e){let{userId:o,streamType:a}=e;this._stopRemoteVideo({userId:o,streamType:a},!1).catch(()=>{})}_onDataChannelAvailable(){if(this.listeners("realtime-transcriber-message").length>0)return this._room.subscribeDataChannel()}sendSEIMessage(e,o){var a;let c=this._plugins.get("SEI");c&&(c.update({buffer:e,options:Qo(mi({seiPayloadType:243},o),{small:!((a=this._localVideoTrack)==null||!a.small)})}),ti.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var o,a;(a=(o=this._room).sendCustomMessage)==null||a.call(o,e),ti.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,o){return KA(this,null,function*(){return this._log.info("callExperimentalAPI(".concat(e,", ").concat(JSON.stringify(o),")")),viA.call(e,mi({trtcInstance:this},o))})}static setLogLevel(e,o){QA.setLogLevel(e),Je(o)||(o?QA.enableUploadLog():QA.disableUploadLog())}static isSupported(){return wk(nm.frameWorkType)}static getPermissions(e){return KA(this,arguments,function(o){let{request:a=!0,types:c=["camera","microphone"]}=o;return function*(){a&&(yield h1.request(c).catch(y=>{var S;return QA.error("getPermissions request failed, error: ".concat((S=y?.message)!=null?S:y))}));let[d,C]=yield Promise.all([h1.get("camera"),h1.get("microphone")]);return{camera:d,microphone:C}}()})}static getCameraList(){return $p(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getMicrophoneList(){return Xp(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static getSpeakerList(){return xM(!(arguments.length>0&&arguments[0]!==void 0)||arguments[0])}static setCurrentSpeaker(e){return KA(this,null,function*(){if(Ha&&(e===aL.SPEAKER||e===aL.HEADSET)){let o=yield nm.getMicrophoneList(),a="";return o.forEach(c=>{c.label===e&&(a=c.deviceId)}),a?void IL.forEach(c=>KA(null,null,function*(){c._localAudioTrack&&(yield c.updateLocalAudio({option:{microphoneId:a}}))})):void 0}(yield xM()).forEach(o=>{o.deviceId===e&&(IL.forEach(a=>{a._setCurrentSpeaker(e),a.emit(Hi.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Zl=o)})})}static _addKVStat(e){let{type:o,key:a,value:c,base:d,useUV:C,version:y,max:S}=e;switch(y&&(Zh.version=y),o){case"count":Zh.addCount({key:a,useUV:C});break;case"enum":Zh.addEnum({key:a,value:c,useUV:C});break;case"number":Zh.addNumber({key:a,value:c,split:d,max:S})}}get localVideoTrack(){return this._localVideoTrack}get localScreenTrack(){return this._localScreenTrack}get localScreenAudioTrack(){return this._localScreenAudioTrack}};Y(Ss,"VERSION",lz),Y(Ss,"_loggerManager",QA),Y(Ss,"EVENT",Hi),Y(Ss,"ERROR_CODE",Ro),Y(Ss,"TYPE",aL),Y(Ss,"frameWorkType",30),Ci([fa({replaceArg:A=>({argIndex:0,value:{name:"plugin"in A?A.plugin.Name:A.Name,assetsPath:"assetsPath"in A?A?.assetsPath:"default"}})})],Ss.prototype,"use"),Ci([Cu(zl.TRTC.enterRoom),jM("room",(A,e)=>{let[o]=A,[a]=e;return(o.roomId||o.strRoomId)===(a.roomId||a.strRoomId)&&o.userId===a.userId&&o.sdkAppId===a.sdkAppId}),jr(A=>function(e){return this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),A.call(this,e)}),fa()],Ss.prototype,"enterRoom"),Ci([fa()],Ss.prototype,"exitRoom"),Ci([Cu(zl.TRTC.switchRoom),fa(),zk()],Ss.prototype,"switchRoom"),Ci([Cu(zl.TRTC.switchRole),u_("room",{merge:(A,e)=>e}),fa()],Ss.prototype,"switchRole"),Ci([fa()],Ss.prototype,"destroy"),Ci([Cu(zl.TRTC.startLocalAudio),jM("audio",(A,e)=>{let[o]=A,[a]=e;var c,d;return((c=o?.option)==null?void 0:c.microphoneId)===((d=a?.option)==null?void 0:d.microphoneId)}),fa()],Ss.prototype,"startLocalAudio"),Ci([Cu(zl.TRTC.updateLocalAudio),u_("audio",{debounce:{delay:200,getKey:()=>"".concat(Bz,"-localAudio"),isNeedToDebounce:A=>{var e;return!Je((e=A.option)==null?void 0:e.captureVolume)}}}),fa()],Ss.prototype,"updateLocalAudio"),Ci([WM("audio"),fa()],Ss.prototype,"stopLocalAudio"),Ci([Cu(zl.TRTC.startLocalVideo),jM("video",(A,e)=>{let[o]=A,[a]=e;var c,d;return((c=o?.option)==null?void 0:c.cameraId)===((d=a?.option)==null?void 0:d.cameraId)}),fa()],Ss.prototype,"startLocalVideo"),Ci([Cu(zl.TRTC.updateLocalVideo),u_("video"),fa()],Ss.prototype,"updateLocalVideo"),Ci([WM("video"),fa()],Ss.prototype,"stopLocalVideo"),Ci([Cu(zl.TRTC.startScreenShare),jM("screen",()=>!0),fa()],Ss.prototype,"startScreenShare"),Ci([Cu(zl.TRTC.updateScreenShare),u_("screen"),fa()],Ss.prototype,"updateScreenShare"),Ci([fa()],Ss.prototype,"stopScreenShare"),Ci([Cu(zl.TRTC.startRemoteVideo),jM(A=>"v".concat(A.userId).concat(A.streamType),()=>!0),fa({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Ss.prototype,"startRemoteVideo"),Ci([Cu(zl.TRTC.updateRemoteVideo),u_(A=>"v".concat(A.userId).concat(A.streamType)),fa({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Ss.prototype,"updateRemoteVideo"),Ci([Cu(zl.TRTC.stopRemoteVideo),jr(A=>function(e){return KA(this,null,function*(){if(e.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(a=>{this._remoteVideoConfigMap.has("".concat(a.userId,"_main"))&&o.push(this.stopRemoteVideo({streamType:"main",userId:a.userId}).catch(()=>{})),this._remoteVideoConfigMap.has("".concat(a.userId,"_sub"))&&o.push(this.stopRemoteVideo({streamType:"sub",userId:a.userId}).catch(()=>{}))}),Promise.all(o)}return A.call(this,e)})}),fa({getRemoteId:A=>"".concat(A.userId,"_").concat(A.streamType)})],Ss.prototype,"stopRemoteVideo"),Ci([WM(A=>"v".concat(A.userId).concat(A.streamType))],Ss.prototype,"_stopRemoteVideo"),Ci([Cu(...zl.TRTC.muteRemoteAudio),fa({getRemoteId:A=>A})],Ss.prototype,"muteRemoteAudio"),Ci([Iz(...zl.TRTC.setRemoteAudioVolume),function(A,e){return jr((o,a)=>function(){for(var c=arguments.length,d=new Array(c),C=0;C<c;C++)d[C]=arguments[C];let y=E_.get(this);y||(y=new Map,E_.set(this,y));let S=e(...d),k=y.get(S);if(!k||k<=0){o.apply(this,d);let V=setTimeout(()=>{var J;(J=E_.get(this))==null||J.delete(S)},A);y.set(S,V)}else{clearTimeout(k);let V=window.setTimeout(()=>{var J;o.apply(this,d),(J=E_.get(this))==null||J.delete(S)},A);y.set(S,V)}})}(200,A=>A),fa({getRemoteId:A=>A})],Ss.prototype,"setRemoteAudioVolume"),Ci([oj("start"),YM(A=>{var e;return(e=A.afterStart)==null?void 0:e.call(A)}),jM((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e)),fa({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>R2[A.getName()],ignoreLog:A=>A.getName()==="Debug",ignoreErrorLog:A=>A.getName()==="AudioProcessor"})],Ss.prototype,"startPlugin"),Ci([oj("update"),u_((A,e)=>A.disableRandomCall?null:A.getAlias()+A.getGroup(e),{merge:(A,e)=>(Wh(A[1],e[1]),A)}),fa({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>uy[A.getName()]})],Ss.prototype,"updatePlugin"),Ci([oj("stop"),WM((A,e)=>{if(A.disableRandomCall)return null;let o=A.getGroup(e),a=A.getAlias();return o==="*"?new RegExp("".concat(a,".*")):a+o}),fa({replaceArg:A=>({argIndex:0,value:A.getName()}),getKVReportKey:A=>W0[A.getName()]})],Ss.prototype,"stopPlugin"),Ci([Iz(...zl.TRTC.enableAudioVolumeEvaluation)],Ss.prototype,"enableAudioVolumeEvaluation"),Ci([fa()],Ss.prototype,"getVideoSnapshot"),Ci([fa()],Ss.prototype,"_setCurrentSpeaker"),Ci([jM(A=>"a".concat(A.userId),()=>!0)],Ss.prototype,"_startRemoteAudio"),Ci([jr(A=>function(e){return KA(this,null,function*(){return e.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(Qo(mi({},e),{userId:o.userId})).catch(()=>{}))):A.call(this,e)})}),WM(A=>"a".concat(A.userId))],Ss.prototype,"_stopRemoteAudio"),Ci([WM("room")],Ss.prototype,"_exitRoom"),Ci([WM("screen")],Ss.prototype,"_stopScreenShare"),Ci([Cu(...zl.TRTC.sendSEIMessage),U5({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}})],Ss.prototype,"sendSEIMessage"),Ci([Cu(zl.TRTC.sendCustomMessage),U5({timesInSecond:30,maxSizeInSecond:8e3,getSize:A=>A.data.byteLength})],Ss.prototype,"sendCustomMessage"),Ci([fa()],Ss.prototype,"callExperimentalAPI"),Ci([zM()],Ss,"create"),Ci([Cu(zl.TRTC.create)],Ss,"_create"),Ci([zM()],Ss,"setLogLevel"),Ci([zM()],Ss,"isSupported"),Ci([zM(),fa()],Ss,"getPermissions"),Ci([zM()],Ss,"getCameraList"),Ci([zM()],Ss,"getMicrophoneList"),Ci([zM()],Ss,"getSpeakerList");var uL=Ss,_iA=class{constructor(){Y(this,"_set",new Set),F.on(sA.LEAVE_SUCCESS,this.delete,this),F.on(sA.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add(A){let{room:e,roomId:o}=A;if(e.scene==="rtc")return;let a=this.getKey(e.userId,o||e.roomId,e.sdkAppId,e.useStringRoomId);this._set.add(a)}delete(A){let{room:e,roomId:o}=A;if(e.scene==="rtc")return;let a=this.getKey(e.userId,e.roomId||o,e.sdkAppId,e.useStringRoomId);this._set.delete(a)}getKey(A,e,o,a){return"".concat(o,"_").concat(e,"_").concat(A,"_").concat(a)}isJoined(A){let{userId:e,roomId:o,sdkAppId:a,room:c}=A;return c.scene!=="rtc"&&this._set.has(this.getKey(e,o,a,c.useStringRoomId))}handleSwitchRoomSuccess(A){let{room:e,currentRoomId:o,targetRoomId:a}=A;e.scene!=="rtc"&&(this._set.delete(this.getKey(e.userId,o,e.sdkAppId,e.useStringRoomId)),this._set.add(this.getKey(e.userId,a,e.sdkAppId,e.useStringRoomId)))}};function TiA(){return KA(this,null,function*(){let A,e;try{let CA=yield Xp();A=CA&&CA.length}catch{}try{let CA=yield $p();e=CA&&CA.length}catch{}let o={microphone:A,camera:e},{isH264EncodeSupported:a,isVp8EncodeSupported:c,isH264DecodeSupported:d,isVp8DecodeSupported:C,isH265EncodeSupported:y,isH265DecodeSupported:S}=this.checkSystemResult.detail,k=ie.basis(),V={webRTC:k.isWebRTCSupported,getUserMedia:k.isGetUserMediaSupported,webSocket:k.isWebSocketsSupported,screenShare:k.isScreenShareSupported,webAudio:k.isWebAudioSupported,h264Encode:a,h264Decode:d,vp8Encode:c,vp8Decode:C,h265Encode:y,h265Decode:S},J={browser:k.browser,os:k.os,trtc:V,devices:o},gA={isWebCodecSupported:k.isWebCodecSupported,isMediaSessionSupported:k.isMediaSessionSupported,isWebTransportSupported:k.isWebTransportSupported};sn.uploadEvent({log:"trtcstats-".concat(JSON.stringify(J)),userId:this.userId}),this._log.info("TrtcStats-".concat(JSON.stringify(J))),sn.uploadEvent({log:"trtcadvancedstats-".concat(JSON.stringify(gA)),userId:this.userId}),bM()})}var NiA=gc(Kl()),Qz="1",uj="2",EL="3",GiA="4",B1="5",biA="6",Q1="7",pz="8",eB={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},kiA=[eB.UPDATE_REMOTE_MUTE_STAT,eB.UPLINK_NETWORK_STATS,eB.USER_LIST_RES,eB.MUTE_RESULT,eB.SERVER_FIRST_PACKAGE_RECEIVED,eB.RECEIVE_CUSTOM_MSG,eB.UPDATE_NETWORK_TIME_RESULT],ls={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"},mz="publish_change",LiA="join",UiA="leave",FiA="quality_report",fz="mute_uplink",yz="publish",Ej="publish_state_change",p1="unpublish",Dz="subscribe",dj="unsubscribe",Cj="subscribe_change",OiA="start_publishing",PiA="stop_publishing",xiA="start_push_user_cdn",YiA="stop_push_user_cdn",ViA="start_mcu_mix",JiA="stop_mcu_mix",HiA="start_publish_cdn_stream",qiA="update_publish_cdn_stream",KiA="stop_publish_cdn_stream",jiA="get_user_list",WiA="change_role",hj="update_constraint_config",ziA="rebuild_pc",ZiA="join/v2",Sz="publish/v2",Mz="subscribe/v3",XiA="ability_status_report",$iA="reconnect",AoA="channel_msg",eoA="switch_room",toA="update_network_time",ioA=new Set([yz,mz,Ej,p1,Dz,Cj,dj,Sz,Mz]),m1=new Set,ooA=["autoTest","relayInnerIp","relayOuterIp","mcd","newRelay","clientIp"],soA=0,vz=class extends NiA.default{constructor(A){var e,o,a;super(),Y(this,"room"),Y(this,"sdkAppId"),Y(this,"userId"),Y(this,"userSig"),Y(this,"url"),Y(this,"backupUrl"),Y(this,"destroyed",!1),Y(this,"_socketInUse"),Y(this,"_socket"),Y(this,"_backupSocket"),Y(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,bakRelayIps:[],reportToken:void 0}),Y(this,"_currentState","DISCONNECTED"),Y(this,"_isReconnecting",!1),Y(this,"_seq",0),Y(this,"_log"),Y(this,"_lastMessageTime",-1),Y(this,"_connectStartTime",-1),Y(this,"_stopConnectRetry"),Y(this,"_isFirstConnect",!0),Y(this,"bytesSent",0),Y(this,"bytesReceived",0),Y(this,"keepAlive",!1),Y(this,"signalDomainWhenUnifiedProxy"),Y(this,"stopKeepAliveTimeout"),Y(this,"stopPrelinkTimeout"),Y(this,"rtt",0),Y(this,"prelink",!1),Y(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 c=((o=(e=this.room.scheduleResult)==null?void 0:e.config)==null?void 0:o.keepAliveClient)||0;(a=this.room.joinParams)!=null&&a.keepAlive&&!c&&(c=1),c-m1.size>0&&this.room.enableSPC&&(this.keepAlive=!0,m1.add(this)),this.url=A.url,this.backupUrl=A.backupUrl,this._seq=0,this._log=QA.createLogger({parent:this.room.getLogger(),id:"ws".concat(++soA),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 ooA.forEach(o=>{let a=e.get("trtc_".concat(o));a&&(A+="&".concat(o,"=").concat(encodeURIComponent(a)))}),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 KA(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=ko();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 iM(o),A.unbindAndCloseSocket(A._socketInUse===A._socket?YA.BACKUP:YA.MAIN),A._isFirstConnect&&(ti.addSuccessEvent({key:521720}),A._isFirstConnect=!1),A.emitConnectionStateChanged("CONNECTED")}()})}connectWS(A){let{url:e,timeout:o,isMain:a}=A,c=new WebSocket(e);this.bindSocket(c),a?this._socket=c:this._backupSocket=c;let d=-1;return new Promise((C,y)=>{c.onclose=y,c.onerror=y,c.onopen=()=>C(c),o&&(d=setTimeout(()=>{this.unbindAndCloseSocket(a?YA.MAIN:YA.BACKUP),y(new ri({code:Et.SIGNAL_CHANNEL_SETUP_FAILED,message:"ws connect timeout"}))},o))}).finally(()=>{c.onclose=null,c.onerror=null,c.onopen=null,clearTimeout(d)})}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===YA.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(B1,new ri({code:Et.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(YA.MAIN),this.unbindAndCloseSocket(YA.BACKUP),this._socketInUse=null,this.reconnect()),this.room.isJoining&&this.emit(B1,new ri({code:Et.SIGNAL_CHANNEL_SETUP_FAILED,message:"websocket onerror"}))}onmessage(A){if(!this.isConnected)return;let{isOnline:e}=this;this._lastMessageTime=Date.now(),e||this.emit(pz),this.bytesReceived+=D0(A.data);let o=JSON.parse(A.data),{cmd:a,data:c}=o,d=Object.values(eB),C=Object.keys(eB)[d.indexOf(a)],y=ls[C]||a;switch(kiA.includes(a)||(this._log.debug("received ".concat(a," msg: ").concat(A.data)),y&&this._log.info("Received event: [ ".concat(y," ]"))),a){case eB.CHANNEL_SETUP_RESULT:if(o.code===0)this._signalInfo.clientIp=c.clientIp,this._signalInfo.signalIp=c.signalInnerIp,c.svrTime&&KB(c.svrTime-new Date().getTime()),this._log.info("ChannelSetup Success ".concat(ko()-this._connectStartTime)),ti.addSuccessEvent({key:521701,cost:ko()-this._connectStartTime}),this._connectStartTime=-1,this.room.firewallDetector.resetTimeoutCount(),this.emit(Qz,{signalInfo:this._signalInfo});else{let S=new ri({code:Et.SIGNAL_CHANNEL_SETUP_FAILED,extraCode:o.code,message:Xo({key:Mo.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:o.code,errorMsg:o.message}})});this._log.error("".concat(o.code,", ").concat(o.message)),this.close(),ti.addFailedEvent({key:521701,error:S}),this.emit(B1,S)}break;case eB.JOIN_ROOM_RESULT:o.code===0&&(this._signalInfo.relayIp=c.relayOuterIp,this._signalInfo.relayInnerIp=c.relayInnerIp,this._signalInfo.bakRelayIps=c.bakRelayIps,this._signalInfo.relayPort=c.relayPort,this._signalInfo.tinyId=o.tinyId,this._signalInfo.endReportExtend=c.endReportExtend,this._signalInfo.reportToken=c.reportToken,this._log.info("signalIp:".concat(this._signalInfo.signalIp," clientIp:").concat(this._signalInfo.clientIp," relayIp: ").concat(this._signalInfo.relayIp))),this.emit(y,{data:o});break;default:this.emit(String(y),{data:o})}}reGetSignalChannelUrl(){return KA(this,null,function*(){try{if(!this.room.joinParams)return;hQ(!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?YA.MAIN:YA.BACKUP),this._socketInUse=null,this.emitConnectionStateChanged("DISCONNECTED"),this.reconnect()}reconnect(){return KA(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:a,relayPort:c}=this._signalInfo,{data:d}=yield this.sendWaitForResponse({command:$iA,data:{roomId:A,useStringRoomId:e,relayInnerIp:a,relayOuterIp:o,relayPort:c},responseCommand:ls.CHANNEL_RECONNECT_RESULT});d.code===0?(this._log.warn("reconnect success"),this.stopReconnection(),ti.addSuccessEvent({key:521702,cost:ko()-this._connectStartTime}),this._connectStartTime=-1,this.room.syncUserList(),this.room.checkConnectionsToReconnect()):(ti.addFailedEvent({key:521702,error:d.code}),this._log.warn("reconnect failed, ".concat(d.code," ").concat(d.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},a=JSON.stringify(o);return this._socketInUse.send(a),ioA.has(A)&&this._log.info("send",A,e),this.bytesSent+=D0(a),o.seq}}sendWaitForResponse(A){let{command:e,data:o,timeout:a=5e3,responseCommand:c,commandDesc:d,enableLog:C=!0,addReceiveTime:y=!1}=A;return new Promise((S,k)=>{let V=()=>{clearTimeout(J),k(new ri({code:Et.API_CALL_ABORTED,message:"".concat(e," aborted due to connection closed")}))};this.once(Q1,V);let J=setTimeout(()=>{this.off(c,gA),this.off(Q1,V);let MA=new ri({code:Et.API_CALL_TIMEOUT,message:Xo({key:Mo.API_CALL_TIMEOUT,data:{commandDesc:d,command:e}})});C&&this._log.warn(MA),k(MA)},a),gA=MA=>{MA.data.seq===CA&&(clearTimeout(J),this.off(c,gA),this.off(Q1,V),y&&(MA.data.receiveTime=Date.now()),S(MA))};this.on(c,gA);let CA=this.send(e,o)})}sendWaitForResponseWithRetry(A){let{commandDesc:e,command:o,retries:a=0,retryTimeout:c=0}=A;return aM({retryFunction:this.sendWaitForResponse,onError:d=>{let{retry:C,reject:y,error:S}=d;!this.room.isJoined||this.destroyed||S.code===Et.API_CALL_ABORTED?y(S):this.isOnline?C():(this._log.warn("retry ".concat(o," when connected")),this.once(pz,C))},onRetrying:d=>{this._log.warn("".concat(e||o," timeout observed, retrying [").concat(d,"/").concat(a,"]"))},settings:{retries:a,timeout:c},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),m1.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(YA.MAIN),this.unbindAndCloseSocket(YA.BACKUP),this.emitConnectionStateChanged("DISCONNECTED"),this.emit(Q1)}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(ls.JOIN_ROOM_RESULT,e)},1e3*A);let e=o=>{o.data.code===0&&(this._log.info("stopKeepAlive clear timeout"),clearTimeout(this.stopKeepAliveTimeout),this.off(ls.JOIN_ROOM_RESULT,e))};this.on(ls.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(ls.JOIN_ROOM_RESULT,e)},1e3*A);let e=o=>{o.data.code===0&&(this._log.info("stopPrelink clear timeout"),clearTimeout(this.stopPrelinkTimeout),this.off(ls.JOIN_ROOM_RESULT,e))};this.on(ls.JOIN_ROOM_RESULT,e)}markPrelinkConnected(A){this._prelinkConfig=Qo(mi({},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(uj,e),this._currentState=A,A==="CONNECTED"?this.emit(EL):A==="DISCONNECTED"&&this.emit(biA)}};Ci([$h({settings:{retries:1/0,timeout:2e3},onError(A,e){!this.room.isDestroyed&&!this.destroyed&&(this._isFirstConnect&&(ti.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())}})],vz.prototype,"connect");var noA=gc(Kl()),Rz=!1,tm=class{constructor(A){Y(this,"userId"),Y(this,"tinyId"),Y(this,"_sdpSemantics"),Y(this,"_isUplink"),Y(this,"_room"),Y(this,"_log"),Y(this,"_signalChannel"),Y(this,"_isErrorObserved",!1),Y(this,"_waitForPeerConnectionConnectedPromise"),Y(this,"_waitForPeerConnectionConnectedPromiseReject",null),Y(this,"_peerConnection",null),Y(this,"_emitter",new noA.default),Y(this,"_currentState","DISCONNECTED"),Y(this,"_isReconnecting",!1),Y(this,"_reconnectionCount",0),Y(this,"_reconnectionTimer",-1),Y(this,"_isFirstConnection",!0),Y(this,"_prevTime",-1),Y(this,"_localAddress"),Y(this,"_remoteAddress"),Y(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=ko())}afterConnect(){try{this._isFirstConnection?(this._isFirstConnection=!1,ti.addSuccessEvent({key:521705,cost:Math.min(ko()-this._prevTime,3e4)})):this._isReconnecting&&ti.addSuccessEvent({key:521706,cost:ko()-this._prevTime}),this._prevTime=-1}catch(A){throw this._isFirstConnection?(this._isFirstConnection=!1,ti.addFailedEvent({key:521705,error:A})):this._isReconnecting&&this._reconnectionCount>=3&&ti.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 ri({code:Et.API_CALL_ABORTED,message:"connection closed"}))}getDTLSTransportState(){if(!this._peerConnection)return Kh;let A=null;if(this._isUplink){if(!LI()||this._peerConnection.getSenders().length===0)return Kh;A=this._peerConnection.getSenders()[0].transport}else{if(!dy()||this._peerConnection.getReceivers().length===0)return Kh;A=this._peerConnection.getReceivers()[0].transport}return A?A.state:Kh}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===Co.CONNECTING&&this.emitConnectionStateChangedEvent("CONNECTING"),A.target.connectionState===Co.FAILED||A.target.connectionState===Co.CLOSED){let a="connection ".concat(A.target.connectionState,". ICE Transport state: ").concat(e,", DTLS Transport state: ").concat(o),c=new ri({message:a,code:Et.ICE_TRANSPORT_ERROR});this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection(),this._isErrorObserved||this._emitter.emit("error",c)}(A.target.connectionState===Co.CONNECTED||A.target.connectionState===Co.COMPLETED)&&(this.logSelectedCandidate(),sn.logSuccessEvent({userId:this._room.userId,eventType:Ja.ICE_CONNECTION_STATE}),this.emitConnectionStateChangedEvent("CONNECTED"))}emitConnectionStateChangedEvent(A){return A!==this._currentState&&(A==="CONNECTED"&&(this._room.firewallDetector.resetTimeoutCount(),Rz=!0),F.emit(sA.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 KA(this,null,function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[,e]of A)if(wM(e)){let o=A.get(e.localCandidateId),a=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)),a&&(this._log.info("remote candidate: ".concat(a.candidateType," ").concat(a.protocol,":").concat(a.ip||a.address,":").concat(a.port)),this._remoteAddress="".concat(a.protocol,":").concat(a.ip||a.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(d),c(),A())},a=C=>{let{room:y}=C;y===this._room&&(clearTimeout(d),c(),e(new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.CONNECTION_ABORTED,data:"leave room"})})))},c=()=>{F.off(sA.LEAVE_SUCCESS,a,this),this._emitter.off("connection-state-changed",o,this)},d=setTimeout(()=>{c();let C=new ri({code:Et.API_CALL_TIMEOUT,message:"connection timeout"});this._room.firewallDetector.increaseTimeoutCount(),e(C)},wb);F.on(sA.LEAVE_SUCCESS,a,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(EL,this.reconnect,this)}beforeReconnect(){if(this._reconnectionTimer!==-1)return this._log.warn("reconnect() is reconnecting, ignore"),-1;if(this._reconnectionCount>=xf()){this._log.warn("SDK has tried reconnect for ".concat(this._reconnectionCount," times, but all failed, please check your network")),this.stopReconnection();let A=new ri({code:this._isUplink?Et.UPLINK_RECONNECTION_FAILED:Et.DOWNLINK_RECONNECTION_FAILED,message:Xo({key:this._isUplink?Mo.UPLINK_RECONNECTION_FAILED:Mo.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(EL,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)}};Ci([fy(521712,!1)],tm.prototype,"setOffer"),Ci([fy(521713,!1)],tm.prototype,"setAnswer");var wz=gc(Cb()),uc=function(A){return wz.default.parse(A)},vy=function(A){return wz.default.write(A)};function Bj(A){return Object.keys(A).filter(e=>A[e])}var f1=class b9 extends tm{constructor(e){super(Qo(mi({},e),{isUplink:!1})),Y(this,"_flag",0),Y(this,"isRobot",!1),Y(this,"role","anchor"),Y(this,"remoteAudioTrack"),Y(this,"remoteVideoTrack"),Y(this,"remoteAuxiliaryTrack"),Y(this,"avPlayerStateSyncManager"),Y(this,"ssrc",{audio:0,video:0,auxiliary:0}),Y(this,"_isSDPExchanging",!1),Y(this,"_videoCodec"),Y(this,"fromType"),this.flag=e.flag,this.isRobot=e.isRobot||!1,this.remoteAudioTrack=e.remoteAudioTrack||new i1(this._room,this),this.remoteVideoTrack=e.remoteVideoTrack||new rL(this._room,this),this.remoteAuxiliaryTrack=e.remoteAuxiliaryTrack||new k5(this._room,this),this.avPlayerStateSyncManager=new ej({log:this._log,audioPlayer:this.remoteAudioTrack.player,videoPlayer:this.remoteVideoTrack.player})}get videoCodec(){var e,o;let a=(o=(e=this._peerConnection)==null?void 0:e.remoteDescription)==null?void 0:o.sdp;return a?a.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 wp(this.flag,this.userId)}get flag(){return this._flag}set flag(e){var o,a,c;e!==this._flag&&(this._flag=e,(o=this.remoteAudioTrack)==null||o.onFlagChanged(),(a=this.remoteVideoTrack)==null||a.onFlagChanged(),(c=this.remoteAuxiliaryTrack)==null||c.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===YA.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,a;let c=this._currentState,d=super.emitConnectionStateChangedEvent(e);return d&&c!==e&&((o=this.remoteVideoTrack)==null||o.emit("connection-state-changed",{prevState:c,state:e}),(a=this.remoteAuxiliaryTrack)==null||a.emit("connection-state-changed",{prevState:c,state:e})),d}onTrack(e){let o=e.streams[0],{track:a}=e,c=o.id===Iu?YA.MAIN:YA.AUXILIARY;this._log.debug("ontrack ".concat(c," ").concat(a.kind));let d=YA.AUDIO;a.kind===YA.VIDEO&&(d=c===YA.MAIN?YA.VIDEO:YA.AUXILIARY);let C=this.remoteAudioTrack;d===YA.VIDEO?C=this.remoteVideoTrack:d===YA.AUXILIARY&&(C=this.remoteAuxiliaryTrack),C.setInputMediaStreamTrack(a)}addRRTRLine(e){let o=e.split(`\r
|
||
`),a=new Map;o.forEach((d,C)=>{/^a=rtcp-fb:/.test(d)&&o[C+1]&&!/^a=rtcp-fb:/.test(o[C+1])&&a.set(C+1,"".concat(d.match(/^a=rtcp-fb:\d+/)[0]," rrtr"))});let c=[...a];for(let d=0;d<c.length;d++){let[C,y]=c[d];o.splice(C+d,0,y)}return o.join(`\r
|
||
`)}addSPSDescription(e){let o=uc(e);return o.media.forEach(a=>{a.type===YA.VIDEO&&a.fmtp.forEach(c=>{c.config+=";sps-pps-idr-in-keyframe=1"})}),vy(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"],a=uc(e);return a.media.forEach(c=>{c.ext&&(c.ext=c.ext.filter(d=>!o.includes(d.uri)))}),vy(a)}isSubscriptionStateNotChanged(e){return JSON.stringify(e)===JSON.stringify(this.subscribeState)}subscribe(e,o){return KA(this,null,function*(){var a,c;try{if((((a=this._peerConnection)==null?void 0:a.connectionState)===Co.NEW||((c=this._peerConnection)==null?void 0:c.connectionState)===Co.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 d="subscribe_change";Object.values(e).find(C=>C===!0)||(d="unsubscribe"),yield this.sendSubscription(d,e)}else this.initialize(),yield this.connect(e)}catch(d){throw this._room.isJoined&&this.isStreamUnpublished(o)?(this._log.warn("".concat(d.message," ").concat(JSON.stringify(this.muteState))),new ri({code:Et.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):d}})}unsubscribe(e){return KA(this,arguments,function(o){var a=this;let{remoteTracks:c,streamType:d}=o;return function*(){if(a._currentState==="CONNECTED"&&(d==="main"&&!a.isMainStreamSubscribed||d==="auxiliary"&&!a.isAuxStreamSubscribed))return void a._log.info("".concat(d," stream already unsubscribed"));let C=mi({},a.subscribeState);c.forEach(S=>{switch(S.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 y="subscribe_change";Object.values(C).find(S=>S===!0)||(y="unsubscribe"),a._log.info("".concat(y==="unsubscribe"?y:"subscribe"," ").concat(d," [").concat(Bj(C),"]")),yield a.sendSubscription(y,C),y==="unsubscribe"&&(a.closePeerConnection(),a.emitConnectionStateChangedEvent("DISCONNECTED"))}()})}unsubscribeDataChannel(){return KA(this,null,function*(){})}sendSubscription(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscribeState,a={srcTinyId:this.tinyId,srcUserId:this.userId},c=dj,d=ls.UNSUBSCRIBE_RESULT;return e==="subscribe_change"&&(a={audio:o.audio,bigVideo:o.video,auxVideo:o.auxiliary,smallVideo:o.smallVideo,srcTinyId:this.tinyId},c=Cj,d=ls.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponse({command:c,data:a,responseCommand:d,timeout:1e4}).then(C=>{let{data:y}=C;if(y.code!==0){let S=new ri({code:y.code,message:Xo({key:Mo.ERROR_MESSAGE,data:{type:e,message:y.message}})});throw this._log.error(S),S}})}connect(){return KA(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(a){throw e.closePeerConnection(!0),a}}()})}exchangeSDP(e){return KA(this,null,function*(){try{this._isSDPExchanging=!0,yield this.createOffer(),this._log.info("createOffer success, sending offer");let{type:o,sdp:a}=this._peerConnection.localDescription,c={type:o,sdp:a,srcUserId:this.userId,srcTinyId:this.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo},d=yield this._signalChannel.sendWaitForResponse({command:Dz,commandDesc:"exchange sdp",data:c,responseCommand:ls.SUBSCRIBE_RESULT,timeout:xx});if(!this._peerConnection){let C=new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.CONNECTION_CLOSED})});throw this._log.warn(C),C}yield this.onSubscribeResult(d),this._isSDPExchanging=!1}catch(o){throw this._isSDPExchanging=!1,o}})}createOffer(){return KA(this,null,function*(){let e={voiceActivityDetection:!1};Xd()&&this._sdpSemantics===WS?(this._peerConnection.addTransceiver(YA.AUDIO,{direction:zn.RECVONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:zn.RECVONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:zn.RECVONLY})):(e.offerToReceiveAudio=!0,e.offerToReceiveVideo=!0);let o=yield this._peerConnection.createOffer(e);if(o.sdp){let{isH264DecodeSupported:a}=yield Rk();a||(this._log.warn("remove h264 desc from sdp"),o.sdp=function(c){let d=uc(c);return d.media.forEach(C=>{var y,S;if(C.type===YA.VIDEO){let k=new Set;C.rtp.forEach(J=>{let{payload:gA,codec:CA}=J;return CA==="H264"&&k.add(gA)}),C.fmtp.forEach(J=>{let{payload:gA,config:CA}=J,MA=CA.match(/apt=(\d+)/);MA&&MA[1]&&k.has(Number(MA[1]))&&k.add(gA)});let V=J=>{let{payload:gA}=J;return!k.has(gA)};C.rtp=C.rtp.filter(V),C.rtcpFb=(y=C.rtcpFb)==null?void 0:y.filter(V),C.fmtp=C.fmtp.filter(V),C.payloads=(S=C.payloads)==null?void 0:S.split(" ").filter(J=>!k.has(Number(J))).join(" ")}}),vy(d)}(o.sdp)),o.sdp=this.addRRTRLine(o.sdp),o.sdp=this.addSPSDescription(o.sdp),o.sdp=function(c){let d=uc(c);return d.media.forEach(C=>{C.type===YA.AUDIO&&C.fmtp.forEach(y=>{y.config+=";sprop-stereo=1;stereo=1"})}),vy(d)}(o.sdp),this._sdpSemantics===WS&&(o.sdp=this.removeSDESDescription(o.sdp))}yield this.setOffer(o)})}onSubscribeResult(e){return KA(this,null,function*(){let{code:o,message:a=""}=e&&e.data||{},{type:c,sdp:d}=e&&e.data&&e.data.data||{};if(o===g0)throw new ri({code:Et.NOT_SUPPORTED_H264,message:Xo({key:Mo.NOT_SUPPORTED_H264DECODE})});try{if(o!==0)throw new ri({code:o,message:Xo({key:Mo.EXCHANGE_SDP_FAILED,data:{errMsg:a}})});this._log.debug("accept remote answer: ".concat(d)),yield this.setAnswer({type:c,sdp:d}),this.updateSSRC(d)}catch(C){throw this._log.error(C),C}})}updateSSRC(e){try{uc(e).media.forEach(o=>{if(o.ssrcs)if(o.type===YA.AUDIO){let a=o.ssrcs.find(c=>{var d;return(d=c.value)==null?void 0:d.includes(Iu)});a&&(this.ssrc.audio=Number(a.id))}else{let a=o.ssrcs.find(d=>{var C;return(C=d.value)==null?void 0:C.includes(Iu)}),c=o.ssrcs.find(d=>{var C;return(C=d.value)==null?void 0:C.includes(Lx)});a&&(this.ssrc.video=Number(a.id)),c&&(this.ssrc.auxiliary=Number(c.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 KA(this,null,function*(){if(!(NI(b9.prototype,this,"beforeReconnect").call(this)<0))try{this.closePeerConnection(),this.initialize(),yield this.connect(),this.stopReconnection(),this._log.warn("reconnect() success")}catch{let o=Rp(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:a}=e;this.remoteAudioTrack.stat.end2EndDelay=o,this.remoteVideoTrack.stat.end2EndDelay=a}get audioReceiver(){var e;return((e=this._peerConnection)==null?void 0:e.getReceivers()[0])||null}};Ci([jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return new Promise((c,d)=>{let C=y=>{this._emitter.off("closed",C),d(new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.CONNECTION_ABORTED,data:y})}))};this._emitter.on("closed",C),A.apply(this,o).then(c,d).finally(()=>{this._emitter.off("closed",C)})})})],f1.prototype,"subscribe"),Ci([fy(521717,!1)],f1.prototype,"unsubscribe"),Ci([YM(tm.prototype.afterConnect),e5(tm.prototype.beforeConnect)],f1.prototype,"connect");var _z=f1,Tz={voiceActivityDetection:!1},y1=class k9 extends tm{constructor(e){super(Qo(mi({},e),{isUplink:!0})),Y(this,"localMainAudioTrack",null),Y(this,"localMainVideoTrack",null),Y(this,"localAuxAudioTrack",null),Y(this,"localAuxVideoTrack",null),Y(this,"ssrc",{audio:0,video:0,small:0,auxiliary:0}),Y(this,"_isPublishingAux",!1),Y(this,"_publishingLocalAudioTrack"),Y(this,"_publishingLocalVideoTrack"),Y(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}),Y(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 a,c,d;let C=this._currentState,y=super.emitConnectionStateChangedEvent(e);return y&&C!==e&&(o?o.emit("connection-state-changed",{prevState:C,state:e}):((a=this.localMainVideoTrack)==null||a.emit("connection-state-changed",{prevState:C,state:e}),(c=this.localAuxVideoTrack)==null||c.emit("connection-state-changed",{prevState:C,state:e}),(d=this._publishingLocalVideoTrack)==null||d.emit("connection-state-changed",{prevState:C,state:e}))),y}publish(e){return KA(this,arguments,function(o){var a=this;let{localAudioTrack:c,localVideoTrack:d,isAuxiliary:C}=o;return function*(){let y;a._peerConnection||a.initialize(),c&&(a._publishingLocalAudioTrack=c),d&&(a._publishingLocalVideoTrack=d),a._isPublishingAux=C,d&&!C&&d.small&&(y=a._room.videoManager.smallTrack),a.sendMediaSettings(),Xd()?yield a.publishByTransceiver({localAudioTrack:c,localVideoTrack:d,smallTrack:y,isAuxiliary:C}):yield a.publishByAddTrack({localAudioTrack:c,localVideoTrack:d,smallTrack:y}),a._publishingLocalAudioTrack=null,a._publishingLocalVideoTrack=null,a._isPublishingAux=!1,C?(d&&(a.localAuxVideoTrack=d),c&&(a.localAuxAudioTrack=c)):(d&&(a.localMainVideoTrack=d),c&&(a.localMainAudioTrack=c)),a.installTrackMuteEvents(c,d),a.sendMutedFlag()}()})}publishByTransceiver(e){return KA(this,arguments,function(o){var a=this;let{localAudioTrack:c,localVideoTrack:d,smallTrack:C,isAuxiliary:y}=o;return function*(){a._log.info("publish by transceiver");let S=new MediaStream,k=d?.outMediaTrack,V=c?.outMediaTrack;V&&S.addTrack(V),k&&S.addTrack(k);let J=a._peerConnection.getTransceivers();if(J.length===0)a._peerConnection.addTransceiver(V||YA.AUDIO,{direction:zn.SENDONLY,streams:[S]}),a._peerConnection.addTransceiver(y?YA.VIDEO:k||YA.VIDEO,{direction:zn.SENDONLY,streams:[S]}),a._peerConnection.addTransceiver(C||YA.VIDEO,{direction:zn.SENDONLY,streams:[S]}),a._peerConnection.addTransceiver(y&&k||YA.VIDEO,{direction:zn.SENDONLY,streams:[S]}),yield a.connect();else{let gA=[];if(V&&(J[0].sender.track||gA.push(0),yield J[0].sender.replaceTrack(V),yield a.setBandwidth({bandwidth:c?.profile.bitrate||40,type:YA.AUDIO})),k){let CA=y?3:1;yield J[CA].sender.replaceTrack(k),yield a.setBandwidth({bandwidth:d.profile.bitrate,type:YA.VIDEO,videoType:y?YA.AUXILIARY:YA.BIG}),gA.push(CA),C&&(yield J[2].sender.replaceTrack(C),yield a.setBandwidth({bandwidth:d.small.bitrate,type:YA.VIDEO,videoType:YA.SMALL}),gA.push(2))}yield a.setTransceiverDirection(zn.SENDONLY,gA),yield a.doPublishChange(),d?.emit("connection-state-changed",{prevState:"DISCONNECTED",state:"CONNECTING"}),d?.emit("connection-state-changed",{prevState:"CONNECTING",state:"CONNECTED"})}}()})}publishByAddTrack(e){return KA(this,arguments,function(o){var a=this;let{localAudioTrack:c,localVideoTrack:d,smallTrack:C}=o;return function*(){a._log.info("publish by addtrack");let y=d?.outMediaTrack,S=c?.outMediaTrack;if(a._peerConnection&&a._peerConnection.connectionState!=="new")return c&&S&&(yield a.addTrack(c)),void(y&&(yield a.addTrack(d)));let k=new MediaStream;if(S&&k.addTrack(S),y&&k.addTrack(y),S&&a._peerConnection.addTrack(S,k),y&&(a._peerConnection.addTrack(y,k),C)){let V=new MediaStream;V.addTrack(C),a._peerConnection.addTrack(C,V)}yield a.connect()}()})}enableSmall(e){return KA(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(zn.SENDONLY,[2])):(yield o[2].sender.replaceTrack(null),yield this.setTransceiverDirection(zn.INACTIVE,[2])),this.updateMediaSettings(),yield this.doPublishChange()})}installTrackMuteEvents(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];o.forEach(c=>{c&&(c?.on("mute",this.sendMutedFlag,this),c?.on("unmute",this.sendMutedFlag,this))})}uninstallTrackMuteEvents(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];o.forEach(c=>{c&&(c?.off("mute",this.sendMutedFlag,this),c?.off("unmute",this.sendMutedFlag,this))})}unpublish(e){return KA(this,arguments,function(o){var a=this;let{localAudioTrack:c,localVideoTrack:d}=o;return function*(){if(!IQ())return c&&c.outMediaTrack&&!d&&a.localMainVideoTrack?(yield a.removeTrack(c),void(a.localMainAudioTrack=null)):d&&d.outMediaTrack&&!c&&a.localMainAudioTrack?(yield a.removeTrack(d),void(a.localMainVideoTrack=null)):(yield a.doUnpublish(),a.uninstallTrackMuteEvents(c,d),void a.emitConnectionStateChangedEvent("DISCONNECTED",d));let C=d&&d===a.localAuxVideoTrack,y=d?.outMediaTrack,S=a._peerConnection.getSenders(),k=[];c&&(C?a.localAuxAudioTrack=null:a.localMainAudioTrack=null,!a.localAuxAudioTrack&&!a.localMainAudioTrack&&(yield S[0].replaceTrack(null),k.push(0))),y&&(C?(yield S[3].replaceTrack(null),a.localAuxVideoTrack=null,a._mediaSettings=Qo(mi({},a._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),k.push(3)):(yield S[1].replaceTrack(null),yield S[2].replaceTrack(null),a.localMainVideoTrack=null,a._mediaSettings=Qo(mi({},a._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),k.push(1,2))),a.isMainStreamPublished||a.isAuxStreamPublished?(yield a.setTransceiverDirection(zn.INACTIVE,k),yield a.doPublishChange(!1)):yield a.doUnpublish(),a.uninstallTrackMuteEvents(c,d),d?.emit("connection-state-changed",{prevState:a._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return KA(this,null,function*(){let o={state:this._room.publishState,constraintConfig:this._mediaSettings},a=yield this._signalChannel.sendWaitForResponse({command:Ej,data:o,responseCommand:ls.PUBLISH_STATE_CHANGE_RESULT,enableLog:e});this.checkPublishResultCode(a.data.code,a.data.message)})}doUnpublish(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return this._signalChannel.sendWaitForResponse({command:p1,commandDesc:"unpublish",responseCommand:ls.UNPUBLISH_RESULT,enableLog:e}).catch(o=>{if(o.getCode()===Et.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 a=this._publishingLocalAudioTrack||this.localMainAudioTrack||this.localAuxAudioTrack,{localMainVideoTrack:c,localAuxVideoTrack:d}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?d=this._publishingLocalVideoTrack:c=this._publishingLocalVideoTrack),Cy){if(a&&a.outMediaTrack){let C=a.outMediaTrack.getSettings();this._mediaSettings.audioChannel=C.channelCount||1,this._mediaSettings.audioBps=1e3*a.profile.bitrate,this._mediaSettings.audioFs=C.sampleRate||0}if(c&&c.outMediaTrack){let C=c.outMediaTrack.getSettings();this._mediaSettings.videoWidth=C.width||0,this._mediaSettings.videoHeight=C.height||0,this._mediaSettings.videoFps=C.frameRate||0,this._mediaSettings.videoBps=1e3*c.profile.bitrate,c.small&&(this._mediaSettings.smallVideoWidth=c.small.width,this._mediaSettings.smallVideoHeight=c.small.height,this._mediaSettings.smallVideoFps=c.small.frameRate,this._mediaSettings.smallVideoBps=1e3*c.small.bitrate)}if(d&&d.outMediaTrack){let C=d.outMediaTrack.getSettings();this._mediaSettings.auxVideoWidth=C.width||0,this._mediaSettings.auxVideoHeight=C.height||0,this._mediaSettings.auxVideoFps=C.frameRate||0,this._mediaSettings.auxVideoBps=1e3*d.profile.bitrate}}else a&&a.outMediaTrack&&(this._mediaSettings.audioChannel=a.profile.channelCount,this._mediaSettings.audioBps=1e3*a.profile.bitrate,this._mediaSettings.audioFs=a.profile.sampleRate),c&&c.outMediaTrack&&(this._mediaSettings.videoWidth=c.profile.width,this._mediaSettings.videoHeight=c.profile.height,this._mediaSettings.videoFps=c.profile.frameRate,this._mediaSettings.videoBps=1e3*c.profile.bitrate);this._log.info("updateMediaSettings: ".concat(JSON.stringify(this._mediaSettings)))}sendMediaSettings(){this.updateMediaSettings(),this._signalChannel.sendWaitForResponse({command:hj,data:this._mediaSettings,responseCommand:ls.UPDATE_CONSTRAINT_CONFIG_RES}).then(e=>{e.data.code!==0&&this._log.warn(e.data.message)}).catch(()=>{})}addTrack(e){return KA(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?YA.AUXILIARY:YA.MAIN," stream")),Xd()?yield this.addTrackByTransceiver(e,o):yield this.addTrackBySender(e)})}addTrackByTransceiver(e,o){return KA(this,null,function*(){var a;if(!e.mediaTrack)return;let c=this._peerConnection.getTransceivers();if(e.kind===YA.AUDIO)yield c[0].sender.replaceTrack(e.outMediaTrack);else{let d=o?3:1;yield c[d].sender.replaceTrack(e.outMediaTrack),d===1&&(a=this.localMainVideoTrack)!=null&&a.small&&(yield c[2].sender.replaceTrack(this._room.videoManager.smallTrack)),c[d].direction===zn.INACTIVE&&(yield this.setTransceiverDirection(zn.SENDONLY,[d]))}this.updateMediaSettings(),yield this.doPublishChange()})}addTrackBySender(e){return KA(this,null,function*(){if(!e.outMediaTrack)return;let o=e.outMediaTrack;IQ()&&this._peerConnection.getTransceivers().findIndex(c=>c.direction==="stopped")>=0&&(this._log.warn("transceiver is stopping, negotiate sdp first"),yield this.updateOffer("remove",o));let a=this._peerConnection.getSenders().find(c=>c.track&&c.track.kind===o.kind);if(a&&a.track){this._log.warn("sender already exists, remove sender first");let c=a.track;this.removeSender(a),yield this.updateOffer("remove",c)}if(o&&this._peerConnection.addTrack(o,new MediaStream([o])),o.kind===YA.VIDEO&&e instanceof dQ&&e.small){let c=new MediaStream,{smallTrack:d}=this._room.videoManager;c.addTrack(d),this._peerConnection.addTrack(d,c)}yield this.updateOffer("add",o)})}isNeedToResetOfferOrder(){if(this._sdpSemantics===a0||!this._peerConnection||!this._peerConnection.localDescription)return!1;let{sdp:e}=this._peerConnection.localDescription,o=uc(e);for(let a=0;a<o.media.length;a++)if(Number(o.media[a].mid)===0&&o.media[a].type===YA.VIDEO)return!0;return!1}removeSender(e){let o=null;IQ()&&(o=this._peerConnection.getTransceivers().find(a=>a.sender&&a.sender.track===e.track)),this._peerConnection.removeTrack(e),o&&Ra(o.stop)&&(this._log.info("stop transceiver"),o.stop())}removeTrack(e){return KA(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?YA.AUXILIARY:YA.MAIN," stream")),Xd()?yield this.removeTrackByTransceiver(e,o):yield this.removeTrackBySender(e)})}removeTrackByTransceiver(e,o){return KA(this,null,function*(){if(!e.outMediaTrack)return;let a=this._peerConnection.getTransceivers();if(e.kind===YA.AUDIO)yield a[0].sender.replaceTrack(null);else{let c=o?3:1;yield a[c].sender.replaceTrack(null),c===1&&e.small&&(yield a[2].sender.replaceTrack(null)),yield this.setTransceiverDirection(zn.INACTIVE,[c])}this.updateMediaSettings(),yield this.doPublishChange()})}setTransceiverDirection(e,o){return KA(this,null,function*(){if(!er)return;let a=!1,c=!1;this._log.info("setting transceiver ".concat(o.join(",")," direction to ").concat(e));let d=this._peerConnection.getTransceivers();if(o.forEach(S=>{d[S].direction!==e&&(d[S].direction=e,a=!0)}),a){this._log.info("updating offer");let S=yield this._peerConnection.createOffer();yield this.setOffer(S)}let C=-1,y=this._peerConnection.remoteDescription.sdp.split(`\r
|
||
`).map(S=>{if(S.match(new RegExp("a=(".concat(zn.INACTIVE,"|").concat(zn.RECVONLY,"|").concat(zn.SENDONLY,")")))&&C++,o.includes(C)){if(e===zn.INACTIVE&&S.includes("a=".concat(zn.RECVONLY)))return c=!0,"a=".concat(e);if(e===zn.SENDONLY&&S.includes("a=".concat(zn.INACTIVE)))return c=!0,"a=".concat(zn.RECVONLY)}return S}).join(`\r
|
||
`);c&&(this._log.info("updating answer"),yield this.setAnswer({type:"answer",sdp:y}))})}removeTrackBySender(e){return KA(this,null,function*(){if(!e.outMediaTrack)return;if(e.kind===YA.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(a=>a.track===e.outMediaTrack);o&&(this.removeSender(o),e.kind===YA.VIDEO&&e.small&&this._peerConnection.getSenders().forEach(a=>{a.track&&a.track.kind===YA.VIDEO&&this.removeSender(a)})),yield this.updateOffer("remove",e.outMediaTrack)})}replaceTrack(e){return KA(this,null,function*(){var o;let a,c=(o=this._peerConnection)==null?void 0:o.getSenders();if(!c||c.length===0||!e.mediaTrack||(a=Xd()?e.kind===YA.AUDIO?c[0]:c[1]:c.find(C=>C.track&&C.track.kind===e.kind),!a))return!1;let d=e===this.localAuxAudioTrack||e===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(e.kind," track on ").concat(d?YA.AUXILIARY:YA.MAIN," stream")),e.kind===YA.AUDIO?yield a.replaceTrack(e.outMediaTrack):e.kind===YA.VIDEO&&(d?c[3]&&(yield c[3].replaceTrack(e.outMediaTrack)):yield a.replaceTrack(e.outMediaTrack)),!0})}updateOffer(e,o){return KA(this,null,function*(){try{let a=yield this._peerConnection.createOffer(Tz);er&&a.sdp&&(a.sdp=this.setSDPDirection(a.sdp,"sendrecv")),yield this.setOffer(a);let c=this.updateMediaSettings(),d={action:e,trackId:o.id,kind:o.kind===YA.VIDEO?"bigVideo":o.kind,type:"offer",sdp:this._peerConnection.localDescription.sdp,constraintConfig:c,state:this._room.publishState};this._log.info("createOffer success, sending updated offer to remote server"),this._log.debug("updatedOffer: ".concat(d.sdp));let C=yield this._signalChannel.sendWaitForResponse({command:mz,data:d,responseCommand:ls.UPDATE_OFFER_RESULT,timeout:Px,commandDesc:"update offer"}),{code:y,message:S}=C.data;y!==0&&this.checkPublishResultCode(y,S),yield this.acceptAnswer(C.data.data),a.sdp&&this.updateSSRC(a.sdp)}catch(a){throw this._log.error(a),a}})}setBandwidth(e){return KA(this,arguments,function(o){var a=this;let{bandwidth:c,type:d,videoType:C,sdp:y}=o;return function*(){if(!Lk())return y?d===YA.VIDEO?a.updateVideoBandwidthRestriction(y,c,C):a.updateAudioBandwidthRestriction(y,c):void 0;let S,k=a._peerConnection.getSenders();if(Xd()){let V=0;d===YA.VIDEO&&(V=C===YA.SMALL?2:C===YA.AUXILIARY?3:1),S=k[V]}else S=k.find(V=>V.track&&V.track.kind===d);if(S){let V=S.getParameters();(!V.encodings||V.encodings.length===0)&&(V.encodings=[{}]),V.encodings[0].maxBitrate=1e3*c;try{return yield S.setParameters(V),a._log.info("".concat(C||"").concat(d," bandwidth ").concat(c," kbps")),y}catch(J){if(a._log.info("failed to set bandwidth by setting maxBitrate: ".concat(J)),y)return d===YA.VIDEO?a.updateVideoBandwidthRestriction(y,c,C):a.updateAudioBandwidthRestriction(y,c)}}return y}()})}updateVideoBandwidthRestriction(e,o,a){let c="AS";er&&(c="TIAS",o*=1e3);let d=0,C=-1;return a===YA.SMALL?d=1:a===YA.AUXILIARY&&(d=2),e=e.replace(/m=video (.*)\r\nc=IN (.*)\r\n/g,y=>(C+=1,C===d?"".concat(y,"b=").concat(c,":").concat(o,`\r
|
||
`):y)),e}updateAudioBandwidthRestriction(e,o){let a="AS";return er&&(a="TIAS",o*=1e3),e=e.replace(/m=audio (.*)\r\nc=IN (.*)\r\n/,`m=audio $1\r
|
||
c=IN $2\r
|
||
b=`.concat(a,":").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 KA(this,null,function*(){try{yield this.exchangeSDP(),yield this.waitForPeerConnectionConnected()}catch(e){throw this.closePeerConnection(!0),this.uninstallEvents(),e}})}exchangeSDP(){return KA(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 KA(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:yz,responseCommand:ls.PUBLISH_RESULT,data:{type:this._peerConnection.localDescription.type,sdp:this.removeVideoOrientation(this._peerConnection.localDescription.sdp),screen:this.localMainVideoTrack instanceof HM||this.localAuxVideoTrack instanceof HM,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:a,message:c,data:d}=o.data;return a===0?this.acceptAnswer(d):this.checkPublishResultCode(a,c)})}setSDPDirection(e,o){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"all",c=uc(e);return c.media.forEach(d=>{(a==="all"||d.type===a)&&(d.direction=o)}),vy(c)}acceptAnswer(e){return KA(this,null,function*(){var o,a,c,d,C;try{let y;if(this._publishingLocalAudioTrack||this._publishingLocalVideoTrack||this.isMainStreamPublished){let k=((o=this._publishingLocalVideoTrack)==null?void 0:o.profile.bitrate)||((a=this.localMainVideoTrack)==null?void 0:a.profile.bitrate),V=((c=this._publishingLocalAudioTrack)==null?void 0:c.profile.bitrate)||((d=this.localMainAudioTrack)==null?void 0:d.profile.bitrate);if(k){let J=this._isPublishingAux?YA.AUXILIARY:YA.BIG;y=yield this.setBandwidth({bandwidth:k,type:YA.VIDEO,sdp:y,videoType:J})}V&&(y=yield this.setBandwidth({bandwidth:V,type:YA.AUDIO,sdp:y}))}if(y=this.removeVideoOrientation(e.sdp),(C=this._publishingLocalVideoTrack)!=null&&C.small){let{smallStreamConfig:k}=this._room;y=yield this.setBandwidth({bandwidth:this._publishingLocalVideoTrack.small.bitrate||k.bitrate,type:YA.VIDEO,videoType:YA.SMALL,sdp:y})}let S={type:e.type,sdp:y};yield this.setAnswer(S),this._log.debug("accepted answer: ".concat(y))}catch(y){throw this._log.error("failed to accept remote answer ".concat(y)),y}})}sendMutedFlag(e){e===this.localAuxAudioTrack||e===this.localAuxVideoTrack||(this._log.info("send muted state: ".concat(JSON.stringify(this._room.muteState))),this._signalChannel.send(fz,this._room.muteState))}getIsReconnecting(){return this._isReconnecting}reconnect(){return KA(this,null,function*(){if(!(NI(k9.prototype,this,"beforeReconnect").call(this)<0))try{yield this._signalChannel.sendWaitForResponse({command:p1,responseCommand:ls.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=Rp(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)&&F.emit(sA.SEND_FIRST_VIDEO_FRAME,{room:this._room})}updateSSRC(e){try{uc(e).media.forEach((o,a)=>{if(o.type===YA.AUDIO){let c=o.ssrcs&&o.ssrcs[0];c&&(this.ssrc.audio=Number(c.id))}else{if(this._sdpSemantics===a0&&o.ssrcGroups)return void o.ssrcGroups.forEach((d,C)=>{let y=Number(d.ssrcs.split(" ")[0]);C===0?this.ssrc.video=y:C===1&&(this.ssrc.small=y)});let c=o.ssrcs&&o.ssrcs[0];if(!c)return;switch(a){case 1:this.ssrc.video=Number(c.id);break;case 2:this.ssrc.small=Number(c.id);break;case 3:this.ssrc.auxiliary=Number(c.id)}}})}catch{}}getVideoTrackId(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:YA.VIDEO;if(this._peerConnection){let o=this._peerConnection.getSenders();if(e===YA.AUXILIARY&&o[3]&&o[3].track)return o[3].track.id;if(e===YA.VIDEO&&o[1]&&o[1].track)return o[1].track.id}if(this.localMainVideoTrack&&e===YA.VIDEO){let o=this.localMainVideoTrack.mediaTrack;if(o)return o.id}if(this.localAuxVideoTrack&&e===YA.AUXILIARY){let o=this.localAuxVideoTrack.mediaTrack;if(o)return o.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(e,o){if(e!==0)throw e===g0?(this._log.error(cc.NOT_SUPPORTED_H264ENCODE),new ri({code:Et.NOT_SUPPORTED_H264,message:Xo({key:Mo.NOT_SUPPORTED_H264ENCODE})})):new ri({code:Et.UNKNOWN,message:Xo({key:Mo.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ls.PUBLISH_RESULT,code:e,message:o}})})}};Ci([jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return new Promise((c,d)=>{let C=y=>{this._emitter.off("closed",C),d(new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.CONNECTION_ABORTED,data:y})}))};this._emitter.on("closed",C),A.apply(this,o).then(c,d).finally(()=>{this._emitter.off("closed",C)})})})],y1.prototype,"publish"),Ci([fy(521715,!1)],y1.prototype,"unpublish"),Ci([YM(tm.prototype.afterConnect),e5(tm.prototype.beforeConnect)],y1.prototype,"connect");var D1=y1,roA=class{constructor(A,e){this.room=A,Y(this,"_log"),Y(this,"_prevReportTime",0),Y(this,"_prevReport",{}),Y(this,"_prevStats",null),Y(this,"_prevEncoderImplementation",""),Y(this,"_prevAuxEncoderImpl",""),Y(this,"_prevQualityLimitationReason",""),Y(this,"_prevAuxQualityLimitationReason",""),Y(this,"_prevDecoderImplementationMap",new Map),Y(this,"_decodeMap",new Map),Y(this,"_prevQpSum",0),Y(this,"_prevAuxQpSum",0),Y(this,"totalBytesSent",0),Y(this,"totalBytesReceived",0),Y(this,"_spcStats",null),this._log=e}get statInterval(){return this._prevReportTime===0?2:(Date.now()-this._prevReportTime)/1e3}getSenderStats(A){return KA(this,null,function*(){var e,o,a,c,d,C,y;let S={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},k=A.getPeerConnection(),V=A.getSSRC();if(k)try{if((this._spcStats||(yield k.getStats())).forEach(J=>{var gA,CA,MA,Ae,Qe,Ye,ve,yi,be,ht,hi,Di,Vo;let Jo,Qn;if(J.type==="outbound-rtp")if((J.mediaType||J.kind)===YA.VIDEO){if(J.ssrc===V.video?(Jo=YA.VIDEO,Qn=A.localMainVideoTrack):J.ssrc===V.small?Jo=YA.SMALL:J.ssrc===V.auxiliary&&(Qn=A.localAuxVideoTrack,Jo=YA.AUXILIARY),!Jo)return;S[Jo].bytesSent=J.bytesSent,S[Jo].packetsSent=J.packetsSent,S[Jo].framesEncoded=J.framesEncoded,Je(J.keyFramesEncoded)||(S[Jo].keyFramesEncoded=J.keyFramesEncoded),Je(J.nackCount)||(S[Jo].nackCount=J.nackCount),Je(J.pliCount)||(S[Jo].pliCount=J.pliCount),Je(J.retransmittedPacketsSent)||(S[Jo].retransmittedPacketsSent=J.retransmittedPacketsSent),Je(J.totalEncodeTime)||(S[Jo].totalEncodeTime=J.totalEncodeTime),Je(J.totalPacketSendDelay)||(S[Jo].totalPacketSendDelay=J.totalPacketSendDelay);let Ho=0;if(!Je(J.qpSum)&&!Je(J.framesEncoded)&&J.framesEncoded>0){let Ns=J.qpSum,pg=J.framesEncoded,ya=Jo===YA.VIDEO?this._prevQpSum:this._prevAuxQpSum,hu=Jo===YA.VIDEO?((CA=(gA=A.localMainVideoTrack)==null?void 0:gA.stat)==null?void 0:CA.framesEncoded)||0:((Ae=(MA=A.localAuxVideoTrack)==null?void 0:MA.stat)==null?void 0:Ae.framesEncoded)||0;if(pg>hu&&Ns>ya){let dL=Ns-ya,B_=pg-hu;Ho=Math.round(dL/B_),Ho>35&&A.videoCodec==="h264"&&this._log.warn("".concat(Jo===YA.AUXILIARY?"aux ":"","video encoder QP is high: ").concat(Ho,", resolution: ").concat(J.frameWidth,"x").concat(J.frameHeight,", codec: ").concat(A.videoCodec,", "))}Jo===YA.VIDEO?this._prevQpSum=Ns:Jo===YA.AUXILIARY&&(this._prevAuxQpSum=Ns)}if(!Je(J.encoderImplementation)&&(Jo===YA.VIDEO&&this._prevEncoderImplementation!==J.encoderImplementation||Jo===YA.AUXILIARY&&this._prevAuxEncoderImpl!==J.encoderImplementation)){let Ns=2,pg=this._prevEncoderImplementation;Jo===YA.AUXILIARY&&(Ns=7,pg=this._prevAuxEncoderImpl),F.emit("262",{userId:A.userId,streamType:Ns,prevImplementation:pg,implementation:J.encoderImplementation,codec:A.videoCodec,isHWCodec:J.powerEfficientEncoder}),this[Jo===YA.VIDEO?"_prevEncoderImplementation":"_prevAuxEncoderImpl"]=J.encoderImplementation,Qn?.log.info("encoderImplementation change to ".concat(J.encoderImplementation,"(").concat(A.videoCodec,") HWEncoder: ").concat(J.powerEfficientEncoder))}J.ssrc===V.video?!Je(J.qualityLimitationReason)&&J.bytesSent!==0&&this._prevQualityLimitationReason!==J.qualityLimitationReason&&(Qn?.log.info("qualityLimitationReason change to ".concat(J.qualityLimitationReason)),F.emit("263",{userId:A.userId,reason:J.qualityLimitationReason,prevReason:this._prevQualityLimitationReason,streamType:2,isQosClearFirst:(Qe=A.localMainVideoTrack)==null?void 0:Qe.isQosClearFirst}),this._prevQualityLimitationReason=J.qualityLimitationReason):J.ssrc===V.auxiliary&&!Je(J.qualityLimitationReason)&&J.bytesSent!==0&&this._prevAuxQualityLimitationReason!==J.qualityLimitationReason&&(this._log.info("aux qualityLimitationReason change to ".concat(J.qualityLimitationReason)),F.emit("263",{userId:A.userId,reason:J.qualityLimitationReason,prevReason:this._prevAuxQualityLimitationReason,streamType:7,isQosClearFirst:(Ye=A.localAuxVideoTrack)==null?void 0:Ye.isQosClearFirst}),this._prevAuxQualityLimitationReason=J.qualityLimitationReason)}else S.audio.bytesSent=J.bytesSent,S.audio.packetsSent=J.packetsSent;else if(J.type==="candidate-pair")wM(J)&&(this.totalBytesSent=J.bytesSent,bn(J.currentRoundTripTime)&&(S.rtt=Math.floor(1e3*J.currentRoundTripTime)));else if(J.type==="media-source"){if(J.kind===YA.AUDIO)S.audio.audioLevel=J.audioLevel||0,S.audio.totalAudioEnergy=J.totalAudioEnergy||0,J.echoReturnLoss,Je((be=(yi=(ve=A.localMainAudioTrack)==null?void 0:ve.sourceTrack)==null?void 0:yi.stats)==null?void 0:be.deliveredFramesDuration)?J.totalSamplesDuration&&(S.audio.totalSamplesDuration=J.totalSamplesDuration):S.audio.totalSamplesDuration=A.localMainAudioTrack.sourceTrack.stats.deliveredFramesDuration/1e3;else if(J.kind===YA.VIDEO)if(J.trackIdentifier===A.getVideoTrackId(YA.VIDEO))if((Di=(hi=(ht=A.localMainVideoTrack)==null?void 0:ht.sourceTrack)==null?void 0:hi.stats)!=null&&Di.deliveredFrames){let{deliveredFrames:Ho}=A.localMainVideoTrack.sourceTrack.stats;S.video.framesCaptured=Ho,A.localMainVideoTrack.stat.framesCaptured&&A.localMainVideoTrack.stat.framesCaptured>0&&Ho>=A.localMainVideoTrack.stat.framesCaptured?S.video.fpsCapture=Math.floor((Ho-A.localMainVideoTrack.stat.framesCaptured)/this.statInterval):S.video.fpsCapture=J.framesPerSecond}else S.video.fpsCapture=J.framesPerSecond;else J.trackIdentifier===A.getVideoTrackId(YA.AUXILIARY)?S.auxiliary.fpsCapture=J.framesPerSecond:S.small.fpsCapture=J.framesPerSecond}if(!Je(J.audioLevel)&&(Vo=A.localMainAudioTrack)!=null&&Vo.mediaTrack&&J.trackIdentifier===A.localMainAudioTrack.mediaTrack.id&&(S.audio.audioLevel=J.audioLevel||0),!Je(J.frameWidth)){let Ho=YA.SMALL;J.trackIdentifier===A.getVideoTrackId(YA.VIDEO)||J.ssrc===V.video?Ho=YA.VIDEO:(J.trackIdentifier===A.getVideoTrackId(YA.AUXILIARY)||J.ssrc===V.auxiliary)&&(Ho=YA.AUXILIARY),S[Ho].frameWidth=J.frameWidth,S[Ho].frameHeight=J.frameHeight,S[Ho].framesSent=J.framesSent}}),A.localMainAudioTrack||A.getRoom().capturedLocalMainAudioTrack){let J=A.localMainAudioTrack||A.getRoom().capturedLocalMainAudioTrack;if(J){let gA=J.getInternalAudioLevel(),CA=J.getInternalAudioLevelAfter3A();S.audio.audioCaptureEnergyAfter3a=CA,S.audio.micAudioLevel=gA,S.audio.audioLevel===0&&A.localMainAudioTrack&&(S.audio.audioLevel=CA??gA),!A.localMainAudioTrack&&!Je((o=(e=J.sourceTrack)==null?void 0:e.stats)==null?void 0:o.deliveredFramesDuration)&&(S.audio.totalSamplesDuration=J.sourceTrack.stats.deliveredFramesDuration/1e3)}}if(!A.localMainVideoTrack&&A.getRoom().capturedLocalMainVideoTrack){let J=A.getRoom().capturedLocalMainVideoTrack;if((c=(a=J?.sourceTrack)==null?void 0:a.stats)!=null&&c.deliveredFrames){let{deliveredFrames:gA}=J.sourceTrack.stats;S.video.framesCaptured=gA,J.stat.framesCaptured&&J.stat.framesCaptured>0&&gA>=J.stat.framesCaptured&&(S.video.fpsCapture=Math.floor((gA-J.stat.framesCaptured)/this.statInterval)),J.stat.framesCaptured=gA}}if(!A.localAuxVideoTrack&&A.getRoom().capturedLocalAuxVideoTrack){let J=A.getRoom().capturedLocalAuxVideoTrack;if((C=(d=J?.sourceTrack)==null?void 0:d.stats)!=null&&C.deliveredFrames){let{deliveredFrames:gA}=J.sourceTrack.stats;S.auxiliary.framesCaptured=gA,J.stat.framesCaptured&&J.stat.framesCaptured>0&&gA>=J.stat.framesCaptured&&(S.auxiliary.fpsCapture=Math.floor((gA-J.stat.framesCaptured)/this.statInterval)),J.stat.framesCaptured=gA}}this.totalBytesSent||(this.totalBytesSent+=S.audio.bytesSent+S.video.bytesSent+S.auxiliary.bytesSent),Object.keys(S).forEach(J=>{J===YA.AUDIO?(A.localMainAudioTrack&&(A.localMainAudioTrack.stat=S[J]),A.localAuxAudioTrack&&(A.localAuxAudioTrack.stat=S[J])):J===YA.VIDEO?A.localMainVideoTrack&&(A.localMainVideoTrack.stat=S[J]):J===YA.AUXILIARY&&A.localAuxVideoTrack&&(A.localAuxVideoTrack.stat=S[J])})}catch(J){this._log.warn("failed to getStats on sender connection ".concat(J))}return S.rtt===0&&(S.rtt=((y=this.room.networkQuality)==null?void 0:y.uplinkRTT)||0),S})}getReceiverStats(A){return KA(this,null,function*(){var e,o,a;let c={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:""}},d=A.getPeerConnection();if(d)try{let{ssrc:C}=A,{muteState:y,subscribeState:S}=A;(this._spcStats||(yield d.getStats())).forEach(J=>{var gA,CA;if(J.type==="codec"&&this._decodeMap.set(J.id,J),J.type==="inbound-rtp"){let MA=(J.mediaType||J.kind)===YA.AUDIO;if(MA){if(J.ssrc!==C.audio||!y.hasAudio)return;c.audio.packetsReceived=J.packetsReceived,c.audio.bytesReceived=J.bytesReceived,c.audio.packetsLost=J.packetsLost,J.insertedSamplesForDeceleration&&(c.audio.insertedSamplesForDeceleration=J.insertedSamplesForDeceleration),J.removedSamplesForAcceleration&&(c.audio.removedSamplesForAcceleration=J.removedSamplesForAcceleration),J.totalSamplesDuration&&(c.audio.totalSamplesDuration=J.totalSamplesDuration),J.totalSamplesReceived&&(c.audio.totalSamplesReceived=J.totalSamplesReceived),J.concealedSamples&&(c.audio.concealedSamples=J.concealedSamples),J.silentConcealedSamples&&(c.audio.silentConcealedSamples=J.silentConcealedSamples);let{remoteAudioTrack:Ae}=A;Ae.stat.packetsReceived=J.packetsReceived,Ae.stat.bytesReceived=J.bytesReceived,Ae.stat.packetsLost=J.packetsLost,c.audio.p2pDelay=Ae.stat.end2EndDelay,c.hasAudio=!0}else{if(er&&J.bytesReceived===0)return;let Ae;J.ssrc===C.video&&y.hasVideo&&(c.video.packetsReceived=J.packetsReceived,c.video.bytesReceived=J.bytesReceived,c.video.packetsLost=J.packetsLost,c.video.framesReceived=J.framesReceived,c.video.framesDecoded=J.framesDecoded,c.video.fpsDecoded=J.framesPerSecond,c.hasVideo=!0,A.videoCodec=Cl[(gA=this._decodeMap.get(J.codecId))==null?void 0:gA.mimeType.split("/")[1]]||"h264",c.video.codec=A.videoCodec,Ae=A.remoteVideoTrack,y.hasSmall&&S.smallVideo&&(c.isSmallSubscribed=!0),J.decoderImplementation&&(!this._prevDecoderImplementationMap.has(c.userId)||this._prevDecoderImplementationMap.get(c.userId)!==J.decoderImplementation)&&(Ae.log.info("decoderImplementation change to ".concat(J.decoderImplementation,"(").concat(A.videoCodec,") HWDecoder: ").concat(J.powerEfficientDecoder)),F.emit("262",{userId:this.room.userId,remoteUserId:c.userId,prevImplementation:this._prevDecoderImplementationMap.get(c.userId),implementation:J.decoderImplementation,codec:A.videoCodec,isHWCodec:J.powerEfficientDecoder}),this._prevDecoderImplementationMap.set(c.userId,J.decoderImplementation)),Je(J.keyFramesDecoded)||Ae.updateKeyFramesDecoded(J.keyFramesDecoded)),J.ssrc===C.auxiliary&&y.hasAuxiliary&&(c.auxiliary.packetsReceived=J.packetsReceived,c.auxiliary.bytesReceived=J.bytesReceived,c.auxiliary.packetsLost=J.packetsLost,c.auxiliary.framesReceived=J.framesReceived,c.auxiliary.framesDecoded=J.framesDecoded,c.auxiliary.fpsDecoded=J.framesPerSecond,Ae=A.remoteAuxiliaryTrack,c.auxiliary.p2pDelay=Ae.stat.end2EndDelay,c.hasAuxiliary=!0,c.video.codec=((CA=this._decodeMap.get(J.codecId))==null?void 0:CA.mimeType.split("/")[1].toLowerCase())||"h264",Je(J.keyFramesDecoded)||Ae.updateKeyFramesDecoded(J.keyFramesDecoded)),Ae&&(Ae.stat.packetsReceived=J.packetsReceived,Ae.stat.bytesReceived=J.bytesReceived,Ae.stat.packetsLost=J.packetsLost,Ae.stat.framesReceived=J.framesReceived,Ae.stat.framesDecoded=J.framesDecoded,J.jitterBufferDelay&&(Ae.stat.jitterBufferDelay=Math.floor(J.jitterBufferDelay/J.jitterBufferEmittedCount*1e3)),c.video.p2pDelay=Ae.stat.end2EndDelay)}J.jitterBufferDelay&&(MA?(c.audio.totalJitter=J.jitterBufferDelay,c.audio.totalJitterCount=J.jitterBufferEmittedCount,c.audio.estimatedPlayoutTimestamp=J.estimatedPlayoutTimestamp):J.ssrc===C.video&&y.hasVideo?(c.video.totalJitter=J.jitterBufferDelay,c.video.totalJitterCount=J.jitterBufferEmittedCount,c.video.estimatedPlayoutTimestamp=J.estimatedPlayoutTimestamp):J.ssrc===C.auxiliary&&y.hasAuxiliary&&(c.auxiliary.totalJitter=J.jitterBufferDelay,c.auxiliary.totalJitterCount=J.jitterBufferEmittedCount))}else J.type==="candidate-pair"&&wM(J)&&(this.totalBytesReceived=J.bytesReceived,bn(J.currentRoundTripTime)&&(c.rtt=Math.floor(1e3*J.currentRoundTripTime)));Je(J.frameWidth)||((J.trackIdentifier===A.getMainStreamVideoTrackId()||J.ssrc===C.video)&&(c.video.frameWidth=J.frameWidth,c.video.frameHeight=J.frameHeight,A.remoteVideoTrack.stat.frameWidth=J.frameWidth,A.remoteVideoTrack.stat.frameHeight=J.frameHeight),(J.trackIdentifier===A.getAuxStreamVideoTrackId()||J.ssrc===C.auxiliary)&&(c.auxiliary.frameWidth=J.frameWidth,c.auxiliary.frameHeight=J.frameHeight,A.remoteAuxiliaryTrack.stat.frameWidth=J.frameWidth,A.remoteAuxiliaryTrack.stat.frameHeight=J.frameHeight)),!Je(J.audioLevel)&&A.muteState.audioAvailable&&A.remoteAudioTrack.mediaTrack&&J.trackIdentifier===A.remoteAudioTrack.mediaTrack.id&&(c.audio.audioLevel=J.audioLevel||0,c.audio.totalAudioEnergy=J.totalAudioEnergy||0)}),c.audio.audioLevel===0&&A.muteState.audioAvailable&&(c.audio.audioLevel=A.remoteAudioTrack.getInternalAudioLevel()||0),this.totalBytesReceived||(this.totalBytesReceived+=c.audio.bytesReceived+c.video.bytesReceived+c.auxiliary.bytesReceived),Je((e=A.remoteVideoTrack.player.stat)==null?void 0:e.fps)||(c.video.fpsRender=A.remoteVideoTrack.player.stat.fps),Je((o=A.remoteAuxiliaryTrack.player.stat)==null?void 0:o.fps)||(c.auxiliary.fpsRender=A.remoteAuxiliaryTrack.player.stat.fps);let k=c.audio.estimatedPlayoutTimestamp,V=c.video.estimatedPlayoutTimestamp;if(k&&V&&A.remoteAudioTrack.isAvailable&&A.remoteVideoTrack.isAvailable){let J=V-k;Math.abs(J)<=1e4&&(c.avSyncDelay=J,Math.abs(J)>150&&this._log.warn("av sync delay",J))}}catch(C){this._log.warn("failed to getStats on receiver connection ".concat(C))}return c.rtt===0&&(c.rtt=((a=this.room.networkQuality)==null?void 0:a.uplinkRTT)||0),c})}getStats(A,e){return KA(this,null,function*(){let o,a={},c=[];if(this.room.singlePC){let d=this.room.singlePC.getPeerConnection();if(!d)return{senderStats:a,receiverStats:c};let C=ko(),y=yield d.getStats(),S=ko();S-C>2e3&&this._log.warn("getStats cost ".concat(S-C,"ms"));let k=[],V=new Set(["inbound-rtp","outbound-rtp","track","candidate-pair","media-source","codec","media-playout"]);y.forEach(J=>V.has(J.type)&&k.push(J)),this._spcStats=k}A&&(a=yield this.getSenderStats(A));for(let[d,C]of e){let y=yield this.getReceiverStats(C);y&&c.push(y)}return e.size&&(o=this.getMediaPlayoutStats(this._spcStats)),{senderStats:a,receiverStats:c,mediaPlayoutStats:o}})}getDifferenceValue(A,e){if(Am(A))return e;let o=e-A;return o<0?0:o}prepareReport(A){let{stats:e,report:o,freezeMap:a,uplinkConnection:c}=A;var d,C,y,S,k,V,J,gA,CA;if(!Am(e.senderStats)){let be={uint32_audio_level:e.senderStats.audio.audioLevel*od,uint32_audio_energy:1e6*(e.senderStats.audio.totalAudioEnergy||0),uint32_audio_codec_bitrate:e.senderStats.audio.bytesSent};e.senderStats.audio.micAudioLevel&&(be.uint32_mic_audio_level=e.senderStats.audio.micAudioLevel*od),Je(e.senderStats.audio.audioCaptureEnergyAfter3a)||(be.uint32_audio_capture_energy_after3a=e.senderStats.audio.audioCaptureEnergyAfter3a*od),e.senderStats.audio.totalSamplesDuration&&(o.msg_device_info.uint32_audio_capture_cost=e.senderStats.audio.totalSamplesDuration);let ht=[];if(e.senderStats.video.bytesSent){let Di={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};ht.push(Di)}if(e.senderStats.small.bytesSent){let Di={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};ht.push(Di)}if(e.senderStats.auxiliary.bytesSent){let Di={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};ht.push(Di)}let hi={uint32_bitrate:0,uint32_lost:0,uint32_rtt:e.senderStats.rtt};o.msg_up_stream_info={msg_audio_status:be,msg_video_status:ht,msg_network_status:hi}}let{statInterval:MA}=this;o.msg_down_stream_info=[],e.receiverStats.forEach(be=>{let ht={msg_user_info:{str_identifier:be.userId,uint64_tinyid:be.tinyId},msg_network_status:{uint32_rtt:be.rtt,uint32_bitrate:0,uint32_lost:0},msg_audio_status:{},msg_video_status:[]};if(be.hasAudio){let hi={uint32_audio_p2p_delay:be.audio.p2pDelay,uint32_audio_cache_ms:be.audio.totalJitter,uint32_audio_cache_ms_count:be.audio.totalJitterCount,uint32_audio_codec_bitrate:be.audio.bytesReceived,uint32_audio_total_bitrate:be.audio.bytesReceived,uint32_audio_level:1e8*be.audio.audioLevel,uint32_audio_energy:1e6*be.audio.totalAudioEnergy,uint32_audio_receive:be.audio.packetsReceived,uint32_audio_origin_lost:be.audio.packetsLost};ht.msg_audio_status=hi}if(be.hasVideo){let hi=a.get("".concat(be.userId,"_").concat(s0)),Di=hi?hi.duration:0,Vo={uint32_video_stream_type:be.isSmallSubscribed?3:2,uint32_video_receive_fps:be.video.framesReceived,uint32_video_width:be.video.frameWidth,uint32_video_height:be.video.frameHeight,uint32_video_codec_bitrate:be.video.bytesReceived,uint32_video_receive:be.video.packetsReceived,uint32_video_origin_lost:be.video.packetsLost,uint32_video_block_time:Di,uint32_video_dec_fps:be.video.framesDecoded,uint32_video_codec_fps:be.video.fpsRender,uint32_video_cache_ms:be.video.totalJitter,uint32_video_cache_ms_count:be.video.totalJitterCount,uint32_video_p2p_delay:be.video.p2pDelay,uint32_video_codec:be.video.codec,int32_video_audio_relative_delay:be.avSyncDelay+5e3};ht.msg_video_status.push(Vo)}if(be.hasAuxiliary){let hi=a.get("".concat(be.userId,"_").concat(Sb)),Di=hi?hi.duration:0,Vo={uint32_video_stream_type:7,uint32_video_receive_fps:be.auxiliary.framesReceived,uint32_video_width:be.auxiliary.frameWidth,uint32_video_height:be.auxiliary.frameHeight,uint32_video_codec_bitrate:be.auxiliary.bytesReceived,uint32_video_receive:be.auxiliary.packetsReceived+be.auxiliary.packetsLost,uint32_video_origin_lost:be.auxiliary.packetsLost,uint32_video_block_time:Di,uint32_video_dec_fps:be.auxiliary.framesDecoded,uint32_video_codec_fps:be.video.fpsRender,uint32_video_cache_ms:be.auxiliary.totalJitter,uint32_video_cache_ms_count:be.auxiliary.totalJitterCount,uint32_video_p2p_delay:be.auxiliary.p2pDelay,uint32_video_codec:be.video.codec};ht.msg_video_status.push(Vo)}o.msg_down_stream_info.push(ht)}),e.mediaPlayoutStats&&!Am(e.mediaPlayoutStats)&&(e.mediaPlayoutStats.synthesizedSamplesDuration*=1e3,e.mediaPlayoutStats.totalSamplesDuration*=1e3);let Ae=this._prevReport,Qe=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&&Ae.msg_up_stream_info.msg_audio_status){let be=Ae.msg_up_stream_info.msg_audio_status,ht=o.msg_up_stream_info.msg_audio_status;if(be.uint32_audio_codec_bitrate===0)ht.uint32_audio_codec_bitrate=0;else{let hi=this.getDifferenceValue(be.uint32_audio_codec_bitrate,ht.uint32_audio_codec_bitrate);ht.uint32_audio_codec_bitrate=Math.round(8*hi/MA),o.msg_up_stream_info.msg_network_status.uint32_bitrate+=ht.uint32_audio_codec_bitrate}(d=Ae.msg_device_info)!=null&&d.uint32_audio_capture_cost?(o.msg_device_info.uint32_audio_capture_cost=2*Math.floor(1e3*this.getDifferenceValue(Ae.msg_device_info.uint32_audio_capture_cost,o.msg_device_info.uint32_audio_capture_cost)/MA),o.msg_device_info.uint32_audio_capture_cost>0&&((y=c?.localMainAudioTrack)==null||y.updateAfter3aSilenceStartTime((C=e.senderStats.audio.audioCaptureEnergyAfter3a)!=null?C:e.senderStats.audio.micAudioLevel))):delete o.msg_device_info.uint32_audio_capture_cost}let Ye=Ae.msg_up_stream_info.msg_video_status;o.msg_up_stream_info.msg_video_status.forEach(be=>{let ht=Ye.find(Qn=>Qn.uint32_video_stream_type===be.uint32_video_stream_type);if(!ht||ht.uint32_video_codec_bitrate===0)return be.uint32_video_codec_bitrate=0,be.uint32_video_enc_fps=0,void(be.uint32_video_codec_fps=0);let hi=0,Di=0,Vo=0;ht&&be.uint32_video_codec_bitrate>=ht.uint32_video_codec_bitrate&&(hi=ht.uint32_video_codec_bitrate,Di=ht.uint32_video_enc_fps,Vo=ht.uint32_video_codec_fps);let Jo=this.getDifferenceValue(hi,be.uint32_video_codec_bitrate);be.uint32_video_codec_bitrate=Math.round(8*Jo/MA),o.msg_up_stream_info.msg_network_status.uint32_bitrate+=be.uint32_video_codec_bitrate,be.uint32_video_enc_fps=Math.round(this.getDifferenceValue(Di,be.uint32_video_enc_fps)/MA),be.uint32_video_codec_fps=Math.round(this.getDifferenceValue(Vo,be.uint32_video_codec_fps)/MA),ht.uint32_video_width===0&&ht.uint32_video_height===0&&ht.uint32_video_codec_fps===0&&(be.uint32_video_codec_fps=be.uint32_video_enc_fps),Je(ht.uint32_key_frame_count)||(be.uint32_key_frame_count=Math.round(this.getDifferenceValue(ht.uint32_key_frame_count,be.uint32_key_frame_count))),Je(ht.uint32_nack_count)||(be.uint32_nack_count=Math.round(this.getDifferenceValue(ht.uint32_nack_count,be.uint32_nack_count))),Je(ht.uint32_pli_count)||(be.uint32_pli_count=Math.round(this.getDifferenceValue(ht.uint32_pli_count,be.uint32_pli_count))),Je(ht.uint32_video_arq_packets)||(be.uint32_video_arq_packets=Math.round(this.getDifferenceValue(ht.uint32_video_arq_packets,be.uint32_video_arq_packets))),Je(ht.uint32_encode_cost)||(be.uint32_encode_cost=Math.round(this.getDifferenceValue(ht.uint32_encode_cost,be.uint32_encode_cost)/MA)),Je(ht.uint32_send_packet_cost)||(be.uint32_send_packet_cost=Math.round(this.getDifferenceValue(ht.uint32_send_packet_cost,be.uint32_send_packet_cost)/MA))});let ve=Ae.msg_down_stream_info;o.msg_down_stream_info=o.msg_down_stream_info.filter(be=>ve.find(ht=>ht.msg_user_info.uint64_tinyid===be.msg_user_info.uint64_tinyid));let yi=o.msg_down_stream_info;if(yi.forEach(be=>{let ht=ve.find(hi=>hi.msg_user_info.uint64_tinyid===be.msg_user_info.uint64_tinyid);if(Am(be.msg_audio_status)||Am(ht.msg_audio_status))be.msg_audio_status={};else{let hi=be.msg_audio_status,Di=ht.msg_audio_status,Vo=this.getDifferenceValue(Di.uint32_audio_cache_ms_count,hi.uint32_audio_cache_ms_count);delete hi.uint32_audio_cache_ms_count,hi.uint32_audio_cache_ms=Math.floor(1e3*this.getDifferenceValue(Di.uint32_audio_cache_ms,hi.uint32_audio_cache_ms)/Vo)||0;let Jo=this.room.remotePublishedUserMap.get(be.msg_user_info.str_identifier);Jo&&(Jo.remoteAudioTrack.stat.jitterBufferDelay=hi.uint32_audio_cache_ms),hi.uint32_audio_origin_lost=this.getDifferenceValue(Di.uint32_audio_origin_lost,hi.uint32_audio_origin_lost),hi.uint32_audio_receive=this.getDifferenceValue(Di.uint32_audio_receive,hi.uint32_audio_receive),hi.uint32_audio_receive+=hi.uint32_audio_origin_lost;let Qn=this.getDifferenceValue(Di.uint32_audio_codec_bitrate,hi.uint32_audio_codec_bitrate);hi.uint32_audio_codec_bitrate=Math.round(8*Qn/MA),hi.uint32_audio_total_bitrate=Math.round(8*Qn/MA)}if(be.msg_video_status&&ht.msg_video_status){let hi=ht.msg_video_status;be.msg_video_status=be.msg_video_status.filter(Di=>hi.find(Vo=>Vo.uint32_video_stream_type===Di.uint32_video_stream_type)),be.msg_video_status.forEach(Di=>{let Vo=hi.find(B_=>B_.uint32_video_stream_type===Di.uint32_video_stream_type),Jo=Vo.uint32_video_receive,Qn=Vo.uint32_video_origin_lost,Ho=Vo.uint32_video_codec_bitrate,Ns=Vo.uint32_video_receive_fps,pg=Vo.uint32_video_dec_fps;Di.uint32_video_origin_lost=this.getDifferenceValue(Qn,Di.uint32_video_origin_lost),Di.uint32_video_receive=this.getDifferenceValue(Jo,Di.uint32_video_receive)+Di.uint32_video_origin_lost;let ya=this.getDifferenceValue(Ho,Di.uint32_video_codec_bitrate);Di.uint32_video_codec_bitrate=Math.round(8*ya/MA);let hu=this.getDifferenceValue(Ns,Di.uint32_video_receive_fps);Di.uint32_video_receive_fps=Math.round(hu/MA),Di.uint32_video_dec_fps=Math.round(this.getDifferenceValue(pg,Di.uint32_video_dec_fps)/MA);let dL=this.getDifferenceValue(Vo.uint32_video_cache_ms_count,Di.uint32_video_cache_ms_count);delete Di.uint32_video_cache_ms_count,Di.uint32_video_cache_ms=Math.floor(1e3*this.getDifferenceValue(Vo.uint32_video_cache_ms,Di.uint32_video_cache_ms)/dL)||0})}}),!Je((S=Qe?.mediaPlayoutStats)==null?void 0:S.totalSamplesDuration)&&!Je((k=e.mediaPlayoutStats)==null?void 0:k.totalSamplesDuration)){let be=2*Math.floor(this.getDifferenceValue((V=Qe?.mediaPlayoutStats)==null?void 0:V.synthesizedSamplesDuration,(J=e.mediaPlayoutStats)==null?void 0:J.synthesizedSamplesDuration)/MA),ht=2*Math.floor(this.getDifferenceValue((gA=Qe?.mediaPlayoutStats)==null?void 0:gA.totalSamplesDuration,(CA=e.mediaPlayoutStats)==null?void 0:CA.totalSamplesDuration)/MA);o.msg_device_info.uint32_audio_play_cost=ht-be}return Qe&&e.receiverStats.forEach(be=>{if(be.audio.concealedSamples&&be.audio.totalSamplesReceived){let ht=Qe.receiverStats.find(hi=>hi.userId===be.userId);if(ht&&ht.audio.concealedSamples&&ht.audio.totalSamplesReceived){let hi=(be.audio.silentConcealedSamples||0)-(ht.audio.silentConcealedSamples||0),Di=be.audio.concealedSamples-ht.audio.concealedSamples,Vo=be.audio.totalSamplesReceived-ht.audio.totalSamplesReceived,Jo=Math.floor((Di-hi)/Vo*1e3*MA);if(Jo>1e3*MA/5){let Qn=yi.find(Ho=>Ho.msg_user_info.str_identifier===be.userId);Qn&&(Qn.msg_audio_status.uint32_audio_block_time=Jo)}}}}),o.msg_down_stream_info.forEach(be=>{be.msg_video_status.forEach(ht=>{ht.uint32_video_codec_bitrate===0&&ht.uint32_video_receive_fps===0&&(ht.uint32_video_width=0,ht.uint32_video_height=0)})}),o}getStatsReport(A){return KA(this,arguments,function(e){var o=this;let{uplinkConnection:a,downlinkConnections:c,freezeMap:d}=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}}]},y=yield o.getStats(a,c);return JSON.stringify(o._prevReport)==="{}"&&(o._prevReport=JSON.parse(JSON.stringify(C))),o.prepareReport({stats:y,report:C,freezeMap:d,uplinkConnection:a}),o._prevReportTime=Date.now(),C}()})}getMediaPlayoutStats(A){let e;if(wa(A)){for(let o of A)if(o.type==="media-playout"){let{synthesizedSamplesDuration:a,totalSamplesDuration:c}=o;e={synthesizedSamplesDuration:a,totalSamplesDuration:c};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)})}},aoA=gc(Kl());function goA(A){return new Promise(e=>KA(null,null,function*(){let o=setTimeout(()=>{e({totalCost:1e4,local:0,dns:0,tcp:0,tls:0,request:0,response:0})},1e4),a=Date.now(),c="https://".concat(A,"/?t=").concat(a);try{yield fetch(c)}catch{}clearTimeout(o);let d=function(C){let y={totalCost:0,local:0,redirect:0,httpCache:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let S=performance.getEntriesByType("resource").reverse();for(let k of S)if(k.name===C){let V=Math.round(k.duration),J=Math.max(Math.round(k.domainLookupStart-k.startTime),0),gA=k.redirectStart>0?Math.max(Math.round(k.redirectEnd-k.redirectStart),0):0,CA=k.fetchStart>0?Math.max(Math.round(k.domainLookupStart-k.fetchStart),0):0,MA=Math.round(k.domainLookupEnd-k.domainLookupStart),Ae=Math.round(k.requestStart-k.secureConnectionStart),Qe=Math.round(k.secureConnectionStart-k.connectStart),Ye=Math.round(k.responseStart-k.requestStart),ve=Math.round(k.responseEnd-(k.responseStart||k.startTime));y=Qo(mi({},y),{totalCost:V,local:J,redirect:gA,httpCache:CA,dns:MA,tcp:Qe,tls:Ae,request:Ye,response:ve});break}}catch{}return y}(c);d.totalCost===0&&(d.totalCost=Date.now()-a),e(d)}))}var S1=class R_ extends aoA.default{constructor(e){let{signalChannel:o,room:a}=e;super(),Y(this,"_room"),Y(this,"_signalChannel"),Y(this,"_log"),Y(this,"uplinkRTT",0),Y(this,"uplinkLoss",0),Y(this,"downlinkRTT",0),Y(this,"downlinkLoss",0),Y(this,"pingResults",{}),Y(this,"_downlinkPrevStatMap",new Map),Y(this,"_downlinkLossAndRTTMap",new Map),Y(this,"_interval",-1),Y(this,"_uplinkNetworkQuality",0),Y(this,"_downlinkNetworkQuality",0),Y(this,"_uplinkQualityHistory",[]),Y(this,"_downlinkQualityHistory",[]),this._room=a,this._signalChannel=o,this._log=QA.createLogger({parent:a.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>R_.HISTORY_SIZE&&this._uplinkQualityHistory.shift()}get downlinkNetworkQuality(){return this._downlinkNetworkQuality}set downlinkNetworkQuality(e){if(e!==this._downlinkNetworkQuality){let{rtt:o,loss:a}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this._log.info("downlink ".concat(this.downlinkNetworkQuality," -> ").concat(e,", rtt: ").concat(o,", loss: ").concat(a," ws-rtt: ").concat(this._signalChannel.rtt))}this._downlinkNetworkQuality=e,this._downlinkQualityHistory.push(e),this._downlinkQualityHistory.length>R_.HISTORY_SIZE&&this._downlinkQualityHistory.shift()}initialize(){this._signalChannel.on(ls.UPLINK_NETWORK_STATS,e=>{this.handleUplinkNetworkQuality(e)}),this._signalChannel.on(uj,this.handleSignalConnectionStateChange.bind(this)),this.start()}handleUplinkNetworkQuality(e){var o,a;if(e.data.code!==0)return;let c=e.data.data;if(c.delay&&this.updateDelay(c.delay),this._room.signalChannel&&c.wsRtt&&(this._room.signalChannel.rtt=c.wsRtt),!this._room.uplinkConnection)return this.uplinkNetworkQuality=0,this.uplinkLoss=0,void(this.uplinkRTT=0);let d=(a=(o=this._room)==null?void 0:o.uplinkConnection)==null?void 0:a.getPeerConnection();if(d&&this.isPeerConnectionDisconnected(d))return this.uplinkNetworkQuality=6,this.uplinkLoss=0,void(this.uplinkRTT=0);let C=c.expectAudPkg+c.expectVidPkg,y=c.recvAudPkg+c.recvVidPkg,S=C-y;C===0&&y===0||(this.uplinkLoss=S<=0?0:Math.round(S/C*100),this.uplinkRTT=c.rtt,this.uplinkNetworkQuality=this.getNetworkQuality(this.uplinkLoss,this.uplinkRTT))}handleDownlinkNetworkQuality(){return KA(this,null,function*(){if(this._room.remotePublishedUserMap.size===0)return void(this.downlinkNetworkQuality=0);let e=[...this._room.remotePublishedUserMap.values()],o=new Set,a=e.filter(y=>{let S=y.getPeerConnection();return!(!S||o.has(S))&&(o.add(S),!0)}),c=a.filter(y=>{var S;return((S=y.getPeerConnection())==null?void 0:S.connectionState)===Co.CONNECTED});if(a.filter(y=>this.isPeerConnectionDisconnected(y.getPeerConnection())).length===e.length)return void(this.downlinkNetworkQuality=6);for(let y=0;y<c.length;y++){let S=c[y].getPeerConnection();if(!S)return;let{rtt:k,totalPacketsLost:V,totalPacketsReceived:J}=yield this.getStat(S);if(!this._downlinkPrevStatMap.has(S)){this._downlinkPrevStatMap.set(S,{totalPacketsLost:V,totalPacketsReceived:J});continue}let gA=0,CA=this._downlinkPrevStatMap.get(S),MA=V-CA.totalPacketsLost,Ae=J-CA.totalPacketsReceived;gA=MA<=0||Ae<0?0:Math.round(MA/(MA+Ae)*100),this._downlinkPrevStatMap.set(S,{totalPacketsLost:V,totalPacketsReceived:J}),this._downlinkLossAndRTTMap.set(S,{rtt:k,loss:gA,userId:c[y].getUserId(),audioDelay:c[y].remoteAudioTrack.stat.end2EndDelay,videoDelay:c[y].remoteVideoTrack.stat.end2EndDelay})}if([...this._downlinkPrevStatMap.keys()].forEach(y=>{this.isPeerConnectionDisconnected(y)&&(this._downlinkPrevStatMap.delete(y),this._downlinkLossAndRTTMap.delete(y))}),this._downlinkLossAndRTTMap.size===0)return this.downlinkRTT=0,this.downlinkLoss=0,void(this.downlinkNetworkQuality=0);let{rtt:d,loss:C}=this.getAverageLossAndRTT([...this._downlinkLossAndRTTMap.values()]);this.downlinkRTT=d,this.downlinkLoss=C,this.downlinkNetworkQuality=this.getNetworkQuality(C,d)})}getStat(e){return KA(this,null,function*(){let o={rtt:0,totalPacketsLost:0,totalPacketsReceived:0};if(!e||!dy())return o;let a=e.getReceivers();try{for(let c=0;c<a.length;c++)(yield a[c].getStats()).forEach(d=>{d.type==="candidate-pair"&&bn(d.currentRoundTripTime)&&(o.rtt=Math.round(1e3*d.currentRoundTripTime)),d.type==="inbound-rtp"&&(d.mediaType===YA.AUDIO||d.mediaType===YA.VIDEO)&&(o.totalPacketsLost+=d.packetsLost,o.totalPacketsReceived+=d.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(a=>{o.rtt+=a.rtt,o.loss+=a.loss}),Object.keys(o).forEach(a=>{o[a]=Math.round(o[a]/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!==Co.DISCONNECTED&&e.connectionState!==Co.FAILED&&e.connectionState!==Co.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=Nr.run("ric",()=>{var e;this.handleDownlinkNetworkQuality();let o=[...this._downlinkLossAndRTTMap.values()];F.emit(sA.NETWORK_QUALITY,{room:this._room,uplink:{rtt:this.uplinkRTT,loss:this.uplinkLoss},downlinks:o});let a=(e=this._room.scheduleResult.config)==null?void 0:e.pingDomainInfo,c={uplinkNetworkQuality:this.uplinkNetworkQuality,downlinkNetworkQuality:this.downlinkNetworkQuality,uplinkRTT:this.uplinkRTT,uplinkLoss:this.uplinkLoss,downlinkRTT:this.downlinkRTT,downlinkLoss:this.downlinkLoss};a&&(c=Qo(mi({},c),{pingResults:this.uplinkRTT>a.rttThreshold||this.downlinkRTT>a.rttThreshold?this.pingResults:{}})),this.emit(R_.EVENT_NETWORK_QUALITY,c);let d=Date.now();if(a&&(this.uplinkRTT>a.rttThreshold||this.downlinkRTT>a.rttThreshold)&&d-R_.lastPingTime>1e3*a.interval){R_.lastPingTime=Date.now();let C=a.domain.map(y=>goA(y).then(S=>({domain:y,cost:S.totalCost})));Promise.all(C).then(y=>{this.pingResults.isPoorNetwork=y.some(S=>S.cost>700),this.pingResults.timestamp=d,this.pingResults.data=y,y.forEach(S=>{ti.addSuccessEvent({key:521718,cost:S.cost})}),this._log.warn("All ping results: ".concat(JSON.stringify(y)))}).catch(y=>{this._log.warn("Error during pinging domains: ".concat(y))})}},{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&&(Nr.clearTask(this._interval),this._interval=-1),this._downlinkLossAndRTTMap.clear(),this._downlinkPrevStatMap.clear()}updateDelay(e){let{tinyIdToUserIdMap:o}=this._room;e.forEach(a=>{let{srcTinyId:c,videoDelay:d,audioDelay:C}=a,y=o.get(c);if(y){let S=this._room.remotePublishedUserMap.get(y);S?.setDelay({videoDelay:d,audioDelay:C})}})}};Y(S1,"HISTORY_SIZE",10),Y(S1,"EVENT_NETWORK_QUALITY","0"),Y(S1,"lastPingTime",0);var Nz=S1,Gz=class{constructor(A){Y(this,"_frameWorkType"),Y(this,"_component"),Y(this,"_language"),Y(this,"connectionType"),Y(this,"_room"),Y(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0}),Y(this,"_keyPrefix"),Y(this,"_log"),Y(this,"_intervalId"),Y(this,"_firstPublishedUserList"),Y(this,"_networkQuality"),Y(this,"_basicInfo"),Y(this,"_pathJoinRoom"),Y(this,"_pathLeaveRoom"),Y(this,"_pathMainVideoMap"),Y(this,"_pathMainAudioMap"),Y(this,"_pathAuxiliaryMap"),Y(this,"_remoteStreamStatMap"),Y(this,"_localStreamStat"),Y(this,"_eventMap",new Map),Y(this,"_captureCostSum",0),Y(this,"_captureCostCount",0),Y(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=QA.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Ra(this[e])&&(this[e]=function(o){let{fn:a,context:c}=o;return function(){try{for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];let S=a.apply(c,C);return jf(S)?S.catch(k=>QA.error("".concat(a.name,"() error observed ").concat(k))):S}catch(S){QA.error("".concat(a.name,"() error observed ").concat(S))}}}({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:qd,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,mM().then(()=>{this._basicInfo.string_os_version=Yp(),this._basicInfo.string_device_name=rQ()||this._basicInfo.string_os_version})}addEvent(A,e){return this._eventMap.set(A,e),F.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(sA.JOIN_START,this.handleJoinStart).addEvent(sA.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(sA.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(sA.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(sA.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(sA.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(sA.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(sA.JOIN_FAILED,this.handleJoinFailed).addEvent(sA.LEAVE_START,this.handleLeaveStart).addEvent(sA.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(sA.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(sA.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(sA.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(sA.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(sA.PUBLISH_START,this.handlePublishStart).addEvent(sA.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(sA.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(sA.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(sA.PLAY_TRACK_START,this.handlePlayStart).addEvent(sA.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(sA.PLAYER_STATE_CHANGED,A=>{let{track:e,state:o,type:a}=A;!e.isRemote||!this.hitTest(e.room)||o==="PLAYING"&&(a===YA.AUDIO?this.handleAudioPlaying(e):this.handleVideoPlaying(e))}).addEvent(sA.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(sA.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(sA.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(sA.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(sA.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(sA.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(sA.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:a}=A;if(!this.hitTest(e))return;let c=o.hasAudio||o.hasVideo||o.hasSmall,d=o.hasAuxiliary,C=a.hasAudio||a.hasVideo||a.hasSmall,y=a.hasAuxiliary;!c&&C&&this.handleRemoteStreamAdded(a.userId,"main"),!d&&y&&this.handleRemoteStreamAdded(a.userId,"auxiliary")}).addEvent(sA.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)=>F.off(e,A)),this._eventMap.clear()}destroy(){this.uninstallEvents(),Nr.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&&(Je(A.params.frameWorkType)||(this._frameWorkType=A.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),Je(A.params.component)||(this._component=A.params.component,this._basicInfo.uint32_component=this._component),Je(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:a,local:c,dns:d,tcp:C,tls:y,request:S,response:k}=o;this._pathJoinRoom.int32_schedule_cost=a,this._pathJoinRoom.int32_schedule_local=c,this._pathJoinRoom.int32_schedule_dns=d,this._pathJoinRoom.int32_schedule_tcp=C,this._pathJoinRoom.int32_schedule_tls=y,this._pathJoinRoom.int32_schedule_request=S,this._pathJoinRoom.int32_schedule_response=k}}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 ri?Number(o.getExtraCode()||o.getCode()):Et.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=ko()-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 a=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=a,this._pathJoinRoom.uint64_end_time=a,o&&(this._pathJoinRoom.int32_end_ret=o instanceof ri?Number(o.getExtraCode()||o.getCode()):Et.UNKNOWN)}}handleRemoteStreamAdded(A,e){var o;let a="".concat(A,"_").concat(e);if(!this._remoteStreamStatMap.has(a)){let c={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:Qo(mi({},coA),{msg_user_info:new Qj({userId:A,tinyId:(o=this._room.remotePublishedUserMap.get(A))==null?void 0:o.tinyId,role:20})})};c.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(a,c)}}handleSubscribeStart(A){let{room:e,remotePublishedUser:o,streamType:a,subscribeState:c}=A;if(!this.hitTest(e))return;let{userId:d,tinyId:C,role:y}=o,S=new Qj({userId:d,tinyId:C,role:y==="anchor"?20:21}),k=Date.now(),V="".concat(d,"_").concat(a),J=this._remoteStreamStatMap.get(V);J&&J.subscribeStartTime===0&&(J.subscribeStartTime=k),a==="main"?(o.muteState.hasVideo&&(c.video||c.smallVideo)&&!this._pathMainVideoMap.has(V)&&this._pathMainVideoMap.set(V,{statsToReport:{msg_user_info:S,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:d,sendSubscribeCMDTime:k}),o.muteState.hasAudio&&c.audio&&!this._pathMainAudioMap.has(V)&&this._pathMainAudioMap.set(V,{statsToReport:{msg_user_info:S,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:d,sendSubscribeCMDTime:k})):o.muteState.hasAuxiliary&&c.auxiliary&&!this._pathAuxiliaryMap.has(V)&&this._pathAuxiliaryMap.set(V,{sendSubscribeCMDTime:k})}handleSubscribed(A){let{room:e,remotePublishedUser:o,streamType:a}=A;if(this.hitTest(e)){let c="".concat(o.userId,"_").concat(a),d=this._remoteStreamStatMap.get(c);d&&d.subscribedTime===0&&(d.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),a=this._remoteStreamStatMap.get(o);a?.playStreamTime===0&&(a.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),a=this._pathMainVideoMap.get(o);a&&a.statsToReport.uint64_combine_first_frame_time===0&&(a.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(A){let e="".concat(A.userId,"_").concat(A.streamType),o=Date.now(),a=this._pathMainVideoMap.get(e),c=this._remoteStreamStatMap.get(e);if(c){let{statsToReport:d}=c;if(d.uint32_video_render_first||A.streamType!=="main"?this.hasAuxFlag(A.userId):this.hasVideoFlag(A.userId)){let C=o-this._pathJoinRoom.uint64_start_time;d.uint32_video_render_first=C,ti.addNumber({key:516820,value:C})}}a?.statsToReport.uint64_render_first_frame_time===0&&(a.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:a,userId:c,videoDelay:d,audioDelay:C}=e,y=this._networkQuality.totalDownlinkRTTAndLossMap.get(c);if(y)y.totalRTT+=o,y.totalLoss+=a,d&&(y.totalVideoDelay=(y.totalVideoDelay||0)+d,y.videoDelayCount=(y.videoDelayCount||0)+1),C&&(y.totalAudioDelay=(y.totalAudioDelay||0)+C,y.audioDelayCount=(y.audioDelayCount||0)+1),y.count++;else{let S,k,V,J;d&&(k=d,V=1),C&&(S=C,J=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(c,{totalRTT:o,totalLoss:a,count:1,totalAudioDelay:S,totalVideoDelay:k,audioDelayCount:J,videoDelayCount:V})}}))}handleHeartbeatStats(A){var e;if(this.hitTest(A.room)){let{msg_device_info:o,msg_up_stream_info:a,msg_down_stream_info:c}=A.report;if(a.msg_video_status[0]){let{uint32_video_codec_bitrate:d,uint32_video_enc_fps:C,uint32_video_width:y,uint32_video_height:S}=a.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=d,this._localStreamStat.totalVideoFPS+=C,this._localStreamStat.totalVideoWidth+=y,this._localStreamStat.totalVideoHeight+=S,this._localStreamStat.videoCount++}if(a.msg_audio_status){let{uint32_audio_level:d}=a.msg_audio_status;Math.floor(d/od*100)>0&&(this._localStreamStat.totalAudioLevel+=d/od,this._localStreamStat.audioLevelCount++)}c.forEach(d=>{let{msg_user_info:C,msg_audio_status:y,msg_video_status:S}=d,k=C.str_identifier,V=this._room.remotePublishedUserMap.get(k);if(S.forEach(J=>{let gA=J.uint32_video_stream_type===2,CA=J.uint32_video_stream_type===7,MA="".concat(k,"_").concat(gA?"main":"auxiliary"),Ae=this._remoteStreamStatMap.get(MA);if(Ae&&(gA&&V!=null&&V.remoteVideoTrack.isSubscribed||CA&&V!=null&&V.remoteAuxiliaryTrack)){Ae.totalVideoFPS+=J.uint32_video_receive_fps,Ae.totalVideoBitrate+=J.uint32_video_codec_bitrate,Ae.videoCount++,Ae.statsToReport.uint32_video_width===0&&(Ae.statsToReport.uint32_video_width=J.uint32_video_width),Ae.statsToReport.uint32_video_height===0&&(Ae.statsToReport.uint32_video_height=J.uint32_video_height);let Qe=gA?V.remoteVideoTrack:V.remoteAuxiliaryTrack;Qe.stat.jitterBufferDelay&&(Ae.videoJitterBufferDelay=Qe.stat.jitterBufferDelay),Qe.stat.framesReceived&&(Ae.statsToReport.uint32_video_consume_render_rate=Math.floor(Qe.stat.framesDecoded/Qe.stat.framesReceived*PS(10,6)))}}),!f0(y)){let J="".concat(k,"_main"),gA=this._remoteStreamStatMap.get(J);this._remoteStreamStatMap.has(J)&&gA&&V!=null&&V.remoteAudioTrack.isSubscribed&&(gA.totalAudioBitrate+=y.uint32_audio_codec_bitrate,gA.audioCount++,V.remoteAudioTrack.stat.jitterBufferDelay&&(gA.audioJitterBufferDelay=V.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(y.uint32_audio_level/od*100)>0&&(gA.totalAudioLevel+=y.uint32_audio_level/od,gA.audioLevelCount++),y.uint32_audio_block_time&&(gA.statsToReport.uint32_audio_block_time+=y.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,a={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[o.name]||(o instanceof ri?o.getExtraCode()||o.getCode():Et.UNKNOWN);e.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=a,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=a,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&HS)>=0}hasAudioFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&KS)>=0}hasAuxFlag(A){return this._firstPublishedUserList.findIndex(e=>e.userId===A&&e.flag&qS)>=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,a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a){let{totalLoss:k,count:V,audioDelayCount:J,videoDelayCount:gA,totalAudioDelay:CA,totalVideoDelay:MA}=a;A.statsToReport.uint32_avg_down_loss=Math.floor(k/V),J&&CA&&(A.statsToReport.uint32_audio_network_p2p_delay=Math.floor(CA/J),A.audioJitterBufferDelay&&(A.statsToReport.uint32_p2p_delay=Math.floor(A.statsToReport.uint32_audio_network_p2p_delay+A.audioJitterBufferDelay))),gA&&MA&&(A.statsToReport.uint32_video_network_p2p_delay=Math.floor(MA/gA))}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:c}=this._room;c&&(A.statsToReport.uint32_audio_play_time=c.getDuration(e,YA.AUDIO),A.statsToReport.uint32_video_play_time=c.getDuration(e,YA.VIDEO)),A.statsToReport.uint32_video_render_first&&(A.statsToReport.uint32_video_render_first=Math.min(A.statsToReport.uint32_video_render_first,ZM));let{badCaseDetector:d}=this._room,{dataFreeze:C,count:y}=d.getDataFreezeDuration(e),{renderFreeze:S}=d.getRenderFreezeDuration(e);A.statsToReport.uint32_video_block_count=y,A.statsToReport.uint32_video_block_time=Math.min(C,A.statsToReport.uint32_video_play_time),A.statsToReport.uint32_video_external_block_time=Math.min(S,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),d.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>ZM&&(A.statsToReport.uint64_play_first_frame_time=A.statsToReport.uint64_start_enter_time+ZM):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>ZM&&(A.statsToReport.uint64_render_first_frame_time=A.statsToReport.uint64_start_enter_time+ZM):this._pathMainVideoMap.delete(e)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>ZM&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+ZM)}getReportData(){this._basicInfo.uint32_networkType=qf();let A={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Qj({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:oM(this._signalInfo.relayIp),uint32_client_ip:oM(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*PS(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:oM(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 S0(A),A}report(){return KA(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 KA(this,null,function*(){if(A.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),o=_A.enable?AQ(A,2001,e):yield Kb(A),a=o instanceof ArrayBuffer,c="".concat(Hf(e,bI.KEY_POINT),"&gzip=").concat(+a),d=!1;navigator.sendBeacon&&(d=navigator.sendBeacon(c,o));let C=[this.uploadKVStat(ti),this.uploadKVStat(Zh)];d||C.push(eQ({url:c,body:o,priority:"low"})),yield Promise.all(C)})}setConnectionType(A){this.connectionType=A,this._basicInfo.uint32_connection_type=A}uploadKVStat(A){return KA(this,arguments,function(e){var o=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._room.sdkAppId;return function*(){var c,d;let C=e.getReportData((c=o._room)==null?void 0:c.userSig,(d=o._signalInfo)==null?void 0:d.reportToken);if(C.stats_count.length===0&&C.stats_distribution.length===0)return;C.msg_sdk_basic_info=Qo(mi({},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 y=_A.enable?AQ(C,2003,a):yield Kb(C),S=y instanceof ArrayBuffer,k="".concat(Hf(+a,bI.KV_STAT),"&gzip=").concat(+S),V=!1;navigator.sendBeacon&&(V=navigator.sendBeacon(k,y)),V||eQ({url:k,body:y})}()})}};Ci([$h({settings:{timeout:500,retries:3}})],Gz.prototype,"upload");var ZM=5e3,coA={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},Qj=class{constructor(A){Y(this,"str_identifier"),Y(this,"str_tinyid"),Y(this,"uint32_role"),this.str_identifier=String(A.userId),this.str_tinyid=String(A.tinyId||0),this.uint32_role=A.role}},loA=Gz,bz=class{constructor(){Y(this,"_startTime"),Y(this,"_endTime"),this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=ko())}stop(){this._endTime===0&&(this._endTime=ko())}getDuration(){return this._endTime===0?ko()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},IoA=class{constructor(A){Y(this,"_room",null),Y(this,"_durationMap"),Y(this,"_eventMap",new Map),this._room=A.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(sA.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(sA.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(sA.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:a}=A;var c;let{userId:d}=a;if(!this.hitTest(e))return;o.hasAudio&&!a.hasAudio&&this.stopDurationItem("".concat(d,"_main"),YA.AUDIO),o.hasVideo&&!a.hasVideo&&this.stopDurationItem("".concat(d,"_main"),YA.VIDEO),o.hasAuxiliary&&!a.hasAuxiliary&&this.stopDurationItem("".concat(d,"_auxiliary"),YA.VIDEO);let C=(c=this._room)==null?void 0:c.remotePublishedUserMap.get(d);C&&(!o.hasAudio&&a.hasAudio&&C.remoteAudioTrack.isSubscribed&&this.addDuractionItem(d,YA.AUDIO,"main"),!o.hasVideo&&a.hasVideo&&C.remoteVideoTrack.isSubscribed&&this.addDuractionItem(d,YA.VIDEO,"main"),!o.hasAuxiliary&&a.hasAuxiliary&&C.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(d,YA.VIDEO,"auxiliary"))}),this._eventMap.forEach((A,e)=>F.on(e,A,this))}uninstallEvents(){this._eventMap.forEach((A,e)=>F.off(e,A,this)),this._eventMap.clear()}handleSubscribed(A){let{track:e}=A;if(!this.hitTest(e.room))return;let{userId:o,streamType:a,kind:c}=e;e.isSubscribed?this.addDuractionItem(o,c,a):this.stopDurationItem("".concat(o,"_").concat(a),c)}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 a="".concat(A,"_").concat(o),c=new bz,d=this._durationMap.get(a);d?this.isRecording(d[e])||d[e].push(c):this._durationMap.set(a,{userId:A,type:o,audio:e===YA.AUDIO?[c]:[],video:e===YA.AUDIO?[]:[c]})}stopDurationItem(A,e){if(this._durationMap.has(A)){let o=this._durationMap.get(A)[e].find(a=>a.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,a)=>o+a.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},uoA=class{constructor(){Y(this,"renderFreezeMap",new Map),Y(this,"dataFreezeMap",new Map)}get(A,e){let o=this.renderFreezeMap.get(A),a=this.dataFreezeMap.get(A);return e?e==="data"?a:o:(Bg||er)&&o&&a&&o.duration>a.duration?o:a}set(A,e,o){o==="data"?this.dataFreezeMap.set(A,e):this.renderFreezeMap.set(A,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},EoA=class{constructor(A){Y(this,"_room"),Y(this,"_renderFreezeMap",new Map),Y(this,"_isVideoPlayingEventFiredMap",new Map),Y(this,"_dataFreezeMap",new Map),Y(this,"_monitorFreezeData",new uoA),Y(this,"_eventMap",new Map),Y(this,"_videoEncodeFailedCount",0),Y(this,"_audioEncodeFailedCount",0),Y(this,"_encodeFailedThreshold",3),Y(this,"ABNORMAL_TIME_LOWER_LIMIT",3e3),Y(this,"ABNORMAL_TIME_UPPER_LIMIT",5e3),Y(this,"_videoAbnormalTimestampMap",new Map),Y(this,"_remoteVideoAbnormalTimestampMap",new Map),Y(this,"_audioAbnormalTimestampMap",new Map),Y(this,"eventListenerMap",new Map),this._room=A.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(sA.LEAVE_SUCCESS,A=>{let{room:e}=A;this.hitTest(e)&&this.stop()}).set(sA.PLAY_TRACK_START,this.onPlayTrackStart).set(sA.UNSUBSCRIBE_SUCCESS,A=>{let{room:e,streamType:o,remotePublishedUser:a}=A;if(!this.hitTest(e))return;let{userId:c}=a,d="".concat(c,"_").concat(o);this.stopDataFreeze({key:d,userId:c,type:o})}).set(sA.REMOTE_PUBLISH_STATE_CHANGED,A=>{let{room:e,prevMuteState:o,muteState:a}=A;if(!this.hitTest(e))return;let{userId:c}=a;if(o.hasVideo&&!a.hasVideo){let d="main",C="".concat(a.userId,"_").concat(d);this.stopDataFreeze({key:C,userId:c,type:d})}if(o.hasAuxiliary&&!a.hasAuxiliary){let d="auxiliary",C="".concat(a.userId,"_").concat(d);this.stopDataFreeze({key:C,userId:c,type:d})}}).set(sA.PLAYER_STATE_CHANGED,A=>{let{track:e,state:o,reason:a,type:c}=A;if(e.isRemote&&e.room&&this.hitTest(e.room)&&c===YA.VIDEO){if(o==="PLAYING"){let d="".concat(e.userId,"_").concat(e.streamType);this._isVideoPlayingEventFiredMap.set(d,!0)}a===YA.MUTE?this.onVideoTrackMuted(e):a===YA.UNMUTE&&this.onVideoTrackUnmuted(e)}}).set(sA.HEARTBEAT_REPORT,this.onHearBeatReport).set(sA.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(sA.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((A,e)=>F.on(e,A,this))}uninstallEvents(){this._eventMap.forEach((A,e)=>F.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,a="".concat(e,"_").concat(o),c=this._dataFreezeMap.get(a),d=new bz;c?c.durationItemList.push(d):this._dataFreezeMap.set(a,{userId:e,type:o,durationItemList:[d],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,a="".concat(e,"_").concat(o);this.stopDataFreeze({key:a,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 a=e.msg_user_info.str_identifier,c=(o=this._room.remotePublishedUserMap.get(a))==null?void 0:o.remoteVideoTrack;e.msg_video_status.forEach(d=>{let C=ko();if(d.uint32_video_codec_bitrate!==void 0&&d.uint32_video_codec_bitrate>0&&d.uint32_video_receive_fps===0&&c!=null&&c.muted)if(this._remoteVideoAbnormalTimestampMap.has("".concat(a,"-decode"))){let y=this._remoteVideoAbnormalTimestampMap.get("".concat(a,"-decode"));y&&C-y>this.ABNORMAL_TIME_LOWER_LIMIT&&C-y<this.ABNORMAL_TIME_UPPER_LIMIT&&sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.VIDEO_DECODE_FAILED_DURING_CALL)})}else this._remoteVideoAbnormalTimestampMap.set("".concat(a,"-decode"),C);else{let y=this._remoteVideoAbnormalTimestampMap.get("".concat(a,"-decode"));y&&C-y>=this.ABNORMAL_TIME_UPPER_LIMIT&&(sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.VIDEO_DECODE_RESUME_DURING_CALL)}),this._remoteVideoAbnormalTimestampMap.delete("".concat(a,"-decode")))}if(d.uint32_video_codec_bitrate!==void 0&&d.uint32_video_codec_bitrate>5e5&&d.uint32_video_dec_fps!==void 0&&d.uint32_video_dec_fps<=5)if(this._remoteVideoAbnormalTimestampMap.has("".concat(a,"-hardware"))){let y=this._remoteVideoAbnormalTimestampMap.get("".concat(a,"-hardware"));if(y&&C-y>this.ABNORMAL_TIME_LOWER_LIMIT/2&&C-y<2*this.ABNORMAL_TIME_UPPER_LIMIT){sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.VIDEO_HARDWARE_DECODE_FAILED)});let S=this._room.remotePublishedUserMap.get(a);if(S){let k=d.uint32_video_stream_type===2?S.remoteVideoTrack:S.remoteAuxiliaryTrack;k&&(k.log.warn("decode failed during call"),k.emit("decode-failed-during-call"))}}}else this._remoteVideoAbnormalTimestampMap.set("".concat(a,"-hardware"),C);else{let y=this._remoteVideoAbnormalTimestampMap.get("".concat(a,"-hardware"));y&&C-y>=2*this.ABNORMAL_TIME_UPPER_LIMIT&&(sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.VIDEO_HARDWARE_DECODE_RESUME)}),this._remoteVideoAbnormalTimestampMap.delete("".concat(a,"-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(c=>c.kind==="video"&&!c.isScreen),a=o?.stat.bytesSent||0;if(o?.isMediaTrackActive===!1||a<=0||o!=null&&o.isUseCustomSource)return;e.forEach(c=>{let d=ko();if(c.uint32_video_stream_type===2)if(c.uint32_video_capture_fps!==0&&c.uint32_video_codec_bitrate===0&&c.uint32_video_enc_fps===0&&o!=null&&o.isPublished)if(this._videoAbnormalTimestampMap.has("local-encode")){let C=this._videoAbnormalTimestampMap.get("local-encode");C&&d-C>this.ABNORMAL_TIME_LOWER_LIMIT&&d-C<this.ABNORMAL_TIME_UPPER_LIMIT&&sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.VIDEO_ENCODE_FAILED_DURING_CALL)})}else this._videoAbnormalTimestampMap.set("local-encode",d);else{let C=this._videoAbnormalTimestampMap.get("local-encode");C&&d-C>=this.ABNORMAL_TIME_UPPER_LIMIT&&sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.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(d=>d.kind==="audio"),a=o?.stat.bytesSent||0;if(o?.isMediaTrackActive===!1||a<=0||o!=null&&o.isUseCustomSource)return;let c=ko();if(e.uint32_audio_codec_bitrate===0&&o!=null&&o.isPublished)if(this._audioAbnormalTimestampMap.has("local-encode")){let d=this._audioAbnormalTimestampMap.get("local-encode");d&&c-d>this.ABNORMAL_TIME_LOWER_LIMIT&&c-d<this.ABNORMAL_TIME_UPPER_LIMIT&&sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.AUDIO_ENCODE_FAILED_DURING_CALL)})}else this._audioAbnormalTimestampMap.set("local-encode",c);else{let d=this._audioAbnormalTimestampMap.get("local-encode");d&&c-d>=this.ABNORMAL_TIME_UPPER_LIMIT&&sn.uploadEvent({userId:this._room.userId,log:"stat-".concat(Ja.AUDIO_ENCODE_RESUME_DURING_CALL)}),this._audioAbnormalTimestampMap.delete("local-encode")}}}stopDataFreeze(A){let{key:e,userId:o,type:a}=A,c=this._dataFreezeMap.get(e);if(!c||!c.isFreezing())return;let d=c.durationItemList[c.durationItemList.length-1];d.stop();let C=d.getDuration();if(C>Rb){let y=this._monitorFreezeData.get(e,"data");this._monitorFreezeData.set(e,{userId:o,type:a,duration:y?y.duration+C:C},"data")}else c.durationItemList.pop()}getTotalDuration(A){return A.reduce((e,o)=>{let a=o.getDuration();return e+Math.min(a,5e3)},0)}onPlayTrackStart(A){let{track:e}=A;if(!e.isRemote||!this.hitTest(e.room)||e.kind!==YA.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 a=o.durationItemList[o.durationItemList.length-1];a.stop(),a.getDuration()<Rb&&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 a;if(!jp())return;let c=0,d=()=>{document.hidden||(c=0)};document.addEventListener("visibilitychange",d);let C=(y,S)=>{var k;if(c){let V=e.decodeFPS,J=V>0&&V<=5?600+1e3/V:600,gA=S.presentationTime-c;if(gA>J){gA=Math.min(gA,5e3);let CA="".concat(e.userId,"_").concat(e.streamType),MA=this._monitorFreezeData.get(CA,"render");MA?MA.duration+=gA:this._monitorFreezeData.set(CA,{userId:e.userId,type:e.streamType,duration:gA},"render");let Ae=this._renderFreezeMap.get(CA);Ae?(Ae.totalDuration+=gA,Ae.count+=1):this._renderFreezeMap.set(CA,{userId:e.userId,type:e.streamType,totalDuration:gA,count:1})}}c=S.presentationTime,(k=o.element)==null||k.requestVideoFrameCallback(C)};(a=o.element)==null||a.requestVideoFrameCallback(C),this.eventListenerMap.set("".concat(e.userId,"_").concat(e.streamType),{onVisibilityChange:d})}onRemoteVideoPlayEnd(A){let{track:e,player:o}=A,a="".concat(e.userId,"_").concat(e.streamType),c=this.eventListenerMap.get(a);c&&document.removeEventListener("visibilitychange",c.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(A){return A===this._room}destroy(){this.uninstallEvents()}},doA=gc(Kl(),1),CoA=class{constructor(A,e,o,a,c){let d=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1.3333333333333333;this.vbMode=A,this.faceDetectorHash=o,this.visionTaskRegistry=a,this.logger=c,Y(this,"animationState"),Y(this,"originalAspect"),Y(this,"totalOffsetX",0),Y(this,"totalOffsetY",0),Y(this,"defaultScaleRatio",.1),Y(this,"isRecovering",!1),Y(this,"boundaryY",280),Y(this,"lastActionTime",0),Y(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=d||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(A,e,o){let a=[{key:570704,error:o??(e?void 0:11)},{key:570705,error:o??(e?void 0:22)}][A-1];a&&(e?ti.addSuccessEvent({key:a.key}):ti.addFailedEvent({key:a.key,error:a.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:a}=A;this.animationState.debounceThreshold=o/30,this.animationState.movementThreshold=o/20,this.boundaryY=.6*a;try{let c=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(c.detections.length<=0)return void(this.vbMode===1&&this.recoverOriginal(o,a));let d=c.detections[0].boundingBox,C=d.originX,y=d.originY,S=d.width,k=d.height;this.vbMode===1?this.dualStageCropping(o,a,C,y,S,k):this.vbMode===2&&this.movingPortrait(o,a,C,y,S,k)}catch(c){this.logger.error(c)}this.lastActionTime=e}calculateBoundary(A,e,o,a){let c,d;return A>e/2?(c=e-o-a,d=o-c):(c=o,d=0),{min:c,offset:d}}calculateTargetPosition(A,e,o,a,c,d){let C,y,S=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.4,k=A+o/2,V=e+a/2,{min:J,offset:gA}=this.calculateBoundary(k,c,A,o),{min:CA,offset:MA}=this.calculateBoundary(V,d,e,a);return C=2*J+o,y=2*CA+a,C/y>this.originalAspect?(C=y*this.originalAspect,gA=k-C/2):(y=C/this.originalAspect,MA=V-y/2),o/c>S&&(gA=0,MA=0,C=c,y=d),gA=Math.max(0,Math.min(gA,c-C)),MA=Math.max(0,Math.min(MA,d-y)),{sx:gA,sy:MA,cropWidth:C,cropHeight:y,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 a=this.positionDistance(this.animationState.target,A),c=this.positionDistance(this.animationState.current,A),d=this.animationState.current.cropWidth/e;a>this.animationState.debounceThreshold*d&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&c>this.animationState.movementThreshold*d&&(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=mi({},A),void(this.animationState.target=mi({},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=a=>a<.5?2*a*a:(4-2*a)*a-1;if(this.animationState.current&&this.animationState.target){let a=(this.animationState.target.sx-this.animationState.current.sx)*o(e);this.animationState.current.sx+=a,this.totalOffsetX+=a;let c=(this.animationState.target.sy-this.animationState.current.sy)*o(e);if(this.animationState.current.sy+=c,this.totalOffsetY+=c,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)),bn(this.animationState.current.scaleOffsetX)&&bn(this.animationState.target.scaleOffsetX)&&bn(this.animationState.current.scaleOffsetY)&&bn(this.animationState.target.scaleOffsetY)){let d=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*o(e);this.animationState.current.scaleOffsetX+=d;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(PS(A.sx-e.sx,2)+PS(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,a,c,d){let C=arguments.length>6&&arguments[6]!==void 0?arguments[6]:.3;if(this.isRecovering)return;let y=this.calculateTargetPosition(o,a,c,d,A,e);this.processFacePositionCrop(y,A,e),c*d/y.cropWidth/y.cropHeight>C&&this.recoverOriginal(A,e)}movingPortrait(A,e,o,a,c,d){var C,y,S,k,V,J,gA,CA,MA,Ae,Qe,Ye;let ve={sx:o+c/2+this.totalOffsetX,sy:a+d/2+this.totalOffsetY,cropWidth:A,cropHeight:e,scaleRatio:(y=(C=this.animationState.current)==null?void 0:C.scaleRatio)!=null?y:1,scaleOffsetX:(k=(S=this.animationState.current)==null?void 0:S.scaleOffsetX)!=null?k:0,scaleOffsetY:(J=(V=this.animationState.current)==null?void 0:V.scaleOffsetY)!=null?J:0,timestamp:Date.now()};this.animationState.target={sx:A/2,sy:a+d/2,cropWidth:A,cropHeight:e,scaleRatio:(CA=(gA=this.animationState.target)==null?void 0:gA.scaleRatio)!=null?CA:1,scaleOffsetX:(Ae=(MA=this.animationState.target)==null?void 0:MA.scaleOffsetX)!=null?Ae:0,scaleOffsetY:(Ye=(Qe=this.animationState.target)==null?void 0:Qe.scaleOffsetY)!=null?Ye:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(c*d/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(ve)}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}},hoA=class extends g_{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}),Y(this,"_bgTexture"),Y(this,"_waterMarkTexture"),Y(this,"_lastMaskTexture"),Y(this,"_lastMaskFbo"),Y(this,"_textureValid",!1),Y(this,"_selfieTextureValid",!1),Y(this,"_selfieSegmentationHash"),Y(this,"wasm"),Y(this,"predictReady"),Y(this,"_color"),Y(this,"_prePrograme"),Y(this,"_segmentationMask"),Y(this,"_weixin",!1),Y(this,"_centerFace"),Y(this,"_textureMatrixLocation"),Y(this,"_offsetMatrixLocation"),Y(this,"_colorLocation"),Y(this,"_enableFaceCentering",!1),Y(this,"_enableEffectOptimization",!1),Y(this,"_mat4"),Y(this,"_postProcessing"),Y(this,"_onAbort"),Y(this,"_visionTaskRegistry"),Y(this,"resolvePreditReady"),this.init(e).catch(o=>{A.log.error(o),A.destroy(new ri({code:Et.VIDEO_MANAGER_ERROR,extraCode:6,message:"init vb node error ".concat(o.message||o)})),this.resolvePreditReady()})}init(A){return KA(this,null,function*(){var e,o,a;this.predictReady=new Promise(y=>{this.resolvePreditReady=y});let c=A.Wasm,d=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 c.AllIn1(d),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:y,y:S,width:k,height:V}=A.waterMark;this.wasm.setWaterMark(y,S,k,V)}if(A.beautyParams){let{beauty:y,brightness:S,ruddy:k}=A.beautyParams;this.wasm.setBeauty(y,S,k,A?.width,A?.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),d.uniform1i(d.getUniformLocation(this.program,"mask"),1),A.bg instanceof HTMLImageElement&&(d.uniform1i(d.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(A.bg)),A.waterMark&&(d.uniform1i(d.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=d.getUniformLocation(this.program,"u_textureMatrix"),d.uniformMatrix4fv(this._textureMatrixLocation,!1,C),this._offsetMatrixLocation=d.getUniformLocation(this.program,"u_offsetMatrix"),d.uniformMatrix4fv(this._offsetMatrixLocation,!1,C),this._colorLocation=d.getUniformLocation(this.program,"u_color"),d.uniform1i(d.getUniformLocation(this.program,"lastMask"),4),this._weixin){let y=this.context.createShader(d.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);
|
||
}`),S=this.context.createShader(d.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(S,y),d.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),d.uniform1i(d.getUniformLocation(this._prePrograme,"mask"),1)}!this._enableEffectOptimization||this.wasm.vbMode!==2&&this.wasm.vbMode!==3?this._postProcessing=void 0:V0()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(a=this._postProcessing)==null||a.init(d,this.positionBuffer,this.texCoordBuffer,4/3),yield this.initVisionTasks(A)})}initVisionTasks(A){return KA(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 CoA(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 a=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,a=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,a||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(),$B(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:a,videoHeight:c}=o;if($B(this.wasm.rotation)&&!this._visionTaskRegistry&&([a,c]=[c,a]),a===0||c===0||!this.available)return!1;o.width=a,o.height=c;let d=!1;if(this.totalFrames)this.useTexture(),d=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(!this.program)return!1;this.useTexture(),d=this._textureValid,this._textureValid=!0}if(this.width===a&&this.height===c&&d?e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,o):(this.resize(a,c),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,a,c):e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,a,c,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 a=this._mat4.create(),{scaleRatio:c=1,scaleOffsetX:d=0,scaleOffsetY:C=0}=e;this._mat4.fromTranslation(a,[-o.offsetX/A.canvas.width+d,C,0]),this._mat4.scale(a,a,[c,c,1]),A.uniformMatrix4fv(this._offsetMatrixLocation,!1,a)}}drawImage(A,e,o,a){let c=this.context.ctx;if(!this._mat4)return;let{width:d,height:C}=c.canvas,y=this._mat4.create();this._mat4.fromTranslation(y,[A/d,1-(e+a)/C,0]),this._mat4.scale(y,y,[o/d,a/C,1]),c.uniformMatrix4fv(this._textureMatrixLocation,!1,y)}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()}},BoA=class extends AC{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;
|
||
}`}),Y(this,"yTextureRef"),Y(this,"uTextureRef"),Y(this,"vTextureRef"),Y(this,"Y"),Y(this,"U"),Y(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,a=o.createTexture();return o.bindTexture(o.TEXTURE_2D,a),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),a}render(A){let e=this.context.ctx,o=this.width,a=this.height;return this.useProgram(),e.viewport(0,0,o,a),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.yTextureRef),e.texSubImage2D(e.TEXTURE_2D,0,0,0,o,a,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,a/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,a/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)}},kz=(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")},QoA=0,poA=class{constructor(A){Y(this,"id",QoA++),Y(this,"trackDoneOB"),Y(this,"startOB"),Y(this,"stopOB"),Y(this,"decoder"),Y(this,"videoContext"),Y(this,"gop",0),Y(this,"gop_helper",0),Y(this,"waitFirstKeyFrame",!0),Y(this,"startTimestamp",0),Y(this,"startTime",0),Y(this,"startPerformanceTime",0),Y(this,"inputFrameCount",0),Y(this,"decodedFrameCount",0),Y(this,"decodeFrameCount",0),Y(this,"downgradeLevel",0),Y(this,"lastDowngradeTime",0),Y(this,"lastFrameDiff",0),Y(this,"lastDecodeFrameTimestamp",0),Y(this,"config"),Y(this,"gop_before_configure",[]),Y(this,"videoElement"),Y(this,"type","wasm"),Y(this,"goodType"),Y(this,"renderer","2d"),Y(this,"wasmOption"),Y(this,"createDecoder"),Y(this,"_decodeSink"),Y(this,"isReported",!1),Y(this,"track"),Y(this,"stateChangeOB"),Y(this,"failedReason");let{track:e,createDecoder:o}=A;if(this.stateChangeOB=EQ(),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=ca(e.availableState,Zs.OFF),this.stopOB=EQ(),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),ma(this.stateChangeOB,p5((a,c)=>(a!==c&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:a,state:c}),c),"INITIALIZED"),IE(this.stopOB),Bl()),this.start()}start(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=ma(this.pipe(this.track),IE(this.stopOB),Zk());ma(e,Bl(()=>{this.track.stat.framesDecoded++},o=>{if(this.track.log.error("".concat(this.id," play failed: ").concat(o," retryCount: ").concat(A)),ti.addFailedEvent({key:kz(this.type,this.renderer),error:o}),A>4)this.failedReason=o,this.stateChangeOB.next("FAILED"),ti.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")),ti.addSuccessEvent({key:kz(this.type,this.renderer)}),ti.addSuccessEvent({key:514704})})),ma(e,a_(1),Bl(()=>{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"&&!vM()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var o,a;if(this.failedReason)return;this.inputFrameCount++;let c=new Uint8Array(A.data);if((d=c)[0]!==0||d[1]!==0||d[2]!==0||d[3]!==1||c.length<5)return this.stateChangeOB.next("FAILED"),this.close("not h26x frame ".concat(c.subarray(0,5))),A;var d;let C=!1;switch(31&c[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(S=>this.decode(S,!0)),this.gop_before_configure=[]);let{timestamp:y}=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(c.subarray(0,5).join(" ")));this.waitFirstKeyFrame=!1,this.startTimestamp=y,this.startTime=Date.now(),this.startPerformanceTime=ko()}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(y," ").concat((a=A.getMetadata)==null?void 0:a.call(A).rtpTimestamp)),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=y,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=>KA(this,null,function*(){this._decodeSink=e;let o,a=A.mediaTrack;e.defer(()=>{var C;a&&(A.player.setCanvas(),A.setInputMediaStreamTrack(a)),o?.close(),(C=this.videoContext)==null||C.destroy(),delete this._decodeSink});let{renderer:c,type:d}=this;A.log.info("decoder type: ".concat(this.type," renderer: ").concat(this.renderer));try{switch(d){case"wasm":o=this.createDecoder(d,this.wasmOption);break;case"webCodecs":o=this.createDecoder(d);break;default:throw new Error("not supported yet")}let C=0;if(o.on("videoFrame",y=>{this.decodedFrameCount++,C++,(C<=10||C%500==0)&&A.log.debug("frame ".concat(C," ").concat(this.decodedFrameCount,"/").concat(this.decodeFrameCount," decoded ").concat(y.timestamp)),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(y.timestamp)),e.next(y)}),o.on("error",y=>{A.log.error(y),e.error(d==="webCodecs"?4:8)}),yield o.initialize(this.videoElement),!this._decodeSink)return;if(o.configure(this.config),d==="wasm"&&c==="webgl"){this.videoContext=new VC({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create(),this.videoContext.on(VC.UNAVAILABLE,S=>{A.log.error(S),e.error(7)});let y=new BoA(this.videoContext);o.on("videoCodecInfo",S=>y.resize(S.width,S.height)),o.on("videoFrame",S=>{({y:y.Y,u:y.U,v:y.V}=S),this.downgradeLevel===1?this.decodedFrameCount%2==0&&y.render(this.decodedFrameCount):y.render(this.decodedFrameCount)}),A.source=y,A.player.setCanvas(this.videoContext._canvas,2)}else if(c==="videoFrame"){A.player.setCanvas();let y=new MediaStreamTrackGenerator({kind:"video"}),S=y.writable.getWriter();A.setInputMediaStreamTrack(y),o.on("videoFrame",k=>S.write(k))}else{this.videoContext=new CQ({frameRate:15,logger:A.log,name:A.userId}),this.videoContext.create({alpha:!1});let y=this.videoContext.createVideoImageSource();o.on("videoFrame",k=>{try{y.image=k,y.update()}catch(V){delete this.goodType,A.log.error(V),e.error(11)}});let S=new JK(this.videoContext,{name:"remotePlayer",logger:A.log});y.connect(S),A.source=y,A.player.setCanvas(this.videoContext._canvas,2)}this.decoder=o}catch(C){A.log.error(C),e.error(d==="webCodecs"?2:6)}})}},Lz=Promise.resolve(),Uz=class extends doA.EventEmitter{constructor(A){super(),this.room=A,Y(this,"videoContext"),Y(this,"_glVideoContext"),Y(this,"_2dVideoContext"),Y(this,"destination"),Y(this,"smallVideoContext"),Y(this,"smallDestination"),Y(this,"smallTrackSource"),Y(this,"smallImageSource"),Y(this,"_isMirror",!1),Y(this,"_rotation",0),Y(this,"cameraTrack"),Y(this,"cameraNode"),Y(this,"transformNode"),Y(this,"mixNode"),Y(this,"screenTrack"),Y(this,"screenNode"),Y(this,"selfModel",!1),Y(this,"blurRadius",3),Y(this,"arTrack"),Y(this,"_enableFaceCentering",!1),Y(this,"_enableEffectOptimization",!1),Y(this,"onAbort"),Y(this,"_color"),Y(this,"Wasm"),Y(this,"waterMarkNode"),Y(this,"_waterMarkOption"),Y(this,"watermarkImageList",[]),Y(this,"_beautyParams"),Y(this,"isUsingArTrack",!1),Y(this,"mixTrack"),Y(this,"_isMixScreen",!1),Y(this,"_virtualBackground"),Y(this,"_virtualBackgroundAbortCallback"),Y(this,"virtualBackgroundInstance"),Y(this,"_bgAssetPath"),Y(this,"log"),Y(this,"_mat4"),Y(this,"_postProcessing"),Y(this,"_checkId",0),Y(this,"_use2d",!1),Y(this,"_autoSwitchRenderMode",!0),Y(this,"encodePipeline",[]),Y(this,"decodePipeline",[]),Y(this,"updated",Lz),Y(this,"_updateFlag",!1),this.log=QA.createLogger({parent:A?.getLogger(),id:"vm",userId:A?.userId,sdkAppId:A?.sdkAppId}),this.smallVideoContext=new CQ({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 $B(this._rotation)?{width:o,height:e}:{width:e,height:o}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new CQ({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 VC({frameRate:15,logger:this.log,name:"m"});return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(Q2<=22),this._glVideoContext.on(VC.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=Nr.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(),Nr.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Fp||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?ti.addFailedEvent({key:e,error:A}):ti.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 VC({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 qtA(this.smallVideoContext,A,this.log),this.smallVideoContext.on(VC.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:a}=this.cameraTrack.settings;this.smallTrackSource.resize(o,a),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 a=this.cameraTrack,{small:c,player:d}=a;Fp&&d.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(c,A),F.emit(sA.LOCAL_VIDEO_TRACK_PREPROCESSED,{mediaTrack:C,profile:(o=this.cameraTrack)==null?void 0:o.profile,room:this.room}),a.setOutputMediaStreamTrack(C)}catch(a){this.log.error("set main output failed",a)}}update(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return KA(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:a}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(AC.RENDER,c=>{var d;(d=this.cameraTrack)==null||d.emit("render",c)})),Zd===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof g_?(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 g_?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 HtA(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(AC.RENDER,y=>{var S;(S=this.cameraTrack)==null||S.emit("render",y)}));let{width:c,height:d}=this.cameraResolution,C=yield this.getWatermarkImage(c,d);this._waterMarkOption={x:0,y:0,width:C.width,height:C.height,image:C},this.cameraNode=new hoA(this.videoContext,{input:this.initialTrack,width:c,height:d,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=a.frameRate,this._use2d){let c=this.cameraNode;if(c.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new Sy(this.videoContext,this.log,this._isMirror,this._rotation),c=c.connect(this.transformNode),c.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 G5(this.videoContext,this.log),c.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:d,height:C}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(d,C),d&&C&&this.waterMarkNode.resize(d,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})),c=this.mixNode,this.log.info("start mix","".concat(this.mixNode.width,"x").concat(this.mixNode.height))}c.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,a,c,d;if(A instanceof HM)return this.log.info("change screen input",(e=A.mediaTrack)==null?void 0:e.label),this.setScreenTrack(A);if(A instanceof dQ)return this.log.info("change video input",(o=A.mediaTrack)==null?void 0:o.label),this.setCameraTrack(A);if(A instanceof rL){this.log.info("change remote input",(a=A.mediaTrack)==null?void 0:a.label);let C=A.mediaTrack;return A.setOutputMediaStreamTrack(C)}if(A instanceof qK)return this.log.info("change mix input",(c=A.outMediaTrack)==null?void 0:c.label),this.setMixTrack(A);this.log.warn("change unknown input",(d=A.mediaTrack)==null?void 0:d.label)}removeInput(A){var e;A instanceof HM?((e=this.screenNode)==null||e.close(),delete this.screenNode,delete this.screenTrack,this.update()):A instanceof dQ?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 rL?A.source&&A.source.context.destroy():A instanceof qK&&(delete this.mixTrack,this.update())}setMixTrack(A){this.mixTrack=A}setCameraTrack(A){return this.cameraTrack=A,this.update(!0)}setScreenTrack(A){return KA(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 KA(this,null,function*(){let o=document.createElement("canvas");e&&A&&(o.height=e,o.width=A);let a=o.getContext("2d");if(!a)throw new ri({code:Et.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((c,d)=>c.zIndex-d.zIndex),this.watermarkImageList.forEach(c=>{let{image:d,x:C,y,width:S,height:k,fillVideo:V}=c,J=V&&A||S,gA=V&&e||k,CA=V?0:C,MA=V?0:y;a.drawImage(d,CA,MA,J,gA)}),nM(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 KA(this,null,function*(){this._beautyParams=A,this.update()})}stopBeauty(){return KA(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(A){return KA(this,null,function*(){let e;try{e=yield nM(A?.imageElement||A.imageUrl)}catch{throw new ri({code:Et.INVALID_PARAMETER,message:"load image failed, url: ".concat(A.imageUrl)})}let{x:o=0,y:a=0,width:c=e.width,height:d=e.height,type:C="watermark",zIndex:y=2,fillVideo:S=!1}=A;this.watermarkImageList.some(k=>k.type===C)?(this.watermarkImageList=this.watermarkImageList.filter(k=>k.type!==C),this.pushWaterMarkImageList({x:o,y:a,width:c,height:d,image:e,zIndex:y,type:C,imageUrl:A.imageUrl,fillVideo:S}),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:a,width:c,height:d,image:e,zIndex:y,type:C,imageUrl:A.imageUrl,fillVideo:S}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(k,V)=>k==="imageUrl"?void 0:V))})}deleteWatermark(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"watermark";return KA(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 KA(this,null,function*(){var A;(A=this.waterMarkNode)==null||A.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:o}=this.cameraResolution,a=yield this.getWatermarkImage(e,o);this._waterMarkOption={x:0,y:0,width:a.width,height:a.height,image:a},this.update()})}setVirtualBackground(A){return KA(this,null,function*(){var e,o,a;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 nM(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=(a=A.color)!=null?a:[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 ri({code:Et.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 KA(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 poA(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 a;this.encodePipeline.includes(e)||(this.encodePipeline[o]=e,(a=this.room)==null||a.enableInsertableStreams())}addDecodeProcessor(A){let{processor:e,type:o}=A;var a;this.decodePipeline.includes(e)||(this.decodePipeline[o]=e,(a=this.room)==null||a.enableInsertableStreams())}removeEncodeProcessor(A){let{type:e}=A;this.encodePipeline[e]=void 0}removeDecodeProcessor(A){let{type:e}=A;this.decodePipeline[e]=void 0}};Ci([t5(function(A){this.log.error("update failed",A)}),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return KA(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield Lz,this.updated=new Promise((c,d)=>{A.apply(this,o).then(c,d),setTimeout(d,5e3,new ri({code:Et.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],Uz.prototype,"update");var moA=0,foA=class extends Zs{constructor(A){super("room"),Y(this,"seq",++moA),Y(this,"sdkAppId"),Y(this,"userId"),Y(this,"userSig"),Y(this,"privateMapKey"),Y(this,"latencyLevel"),Y(this,"tinyId"),Y(this,"scene"),Y(this,"roomId"),Y(this,"useStringRoomId"),Y(this,"role","anchor"),Y(this,"joinParams",null),Y(this,"localPublishFlag",0),Y(this,"localTracks",new Set),Y(this,"enableAutoPlayDialog",!0),Y(this,"autoReceiveAudio",!0),Y(this,"autoReceiveVideo",!0),Y(this,"proxy_ws"),Y(this,"proxy_wt"),Y(this,"proxy_unified"),Y(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}}),Y(this,"keyPointManager"),Y(this,"audioManager"),Y(this,"videoManager"),Y(this,"callDurationCalculator"),Y(this,"badCaseDetector"),Y(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null}),Y(this,"videoDecodeFallbackType"),Y(this,"smallMode","canvas"),Y(this,"prelinkPromise",null),Y(this,"enableChorus",!1),Y(this,"_isUsingCachedSchedule",!1),Y(this,"_log"),Y(this,"_joinedTimestamp",0),Y(this,"_sdkType"),Y(this,"heartbeatReport"),Y(this,"heartbeatCount",0),Y(this,"quality"),Y(this,"enableSEI"),Y(this,"isDestroyed",!1),this._log=QA.createLogger({parent:A.logger,id:"r".concat(this.seq)}),this.useStringRoomId=!!A.useStringRoomId,Tr(A.autoReceiveAudio)&&(this.autoReceiveAudio=A.autoReceiveAudio),Tr(A.autoReceiveVideo)&&(this.autoReceiveVideo=A.autoReceiveVideo),Tr(A.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=A.enableAutoPlayDialog),this._sdkType=A.sdkType,this.keyPointManager=new loA({room:this,frameWorkType:A.frameWorkType,component:A.component,language:A.language}),this.callDurationCalculator=new IoA({room:this}),this.badCaseDetector=new EoA({room:this}),this.audioManager=new XtA(this),this.videoManager=new Uz(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 KA(this,null,function*(){return this.publish(A)})}removeTrack(A){return KA(this,null,function*(){return this.unpublish(A)})}replaceTrack(A){return KA(this,null,function*(){})}setEncodedDataProcessingListener(A){throw new Error("Method not implemented.")}enableAIVoice(A){throw new Error("Method not implemented.")}setProxyServer(A){if(Yn(A))/^wss?:\/\//i.test(A)?this.proxy_ws=A:/^https?:\/\//i.test(A)&&(this.proxy_wt=A);else if(gE(A)){let{websocketProxy:e,webtransportProxy:o,loggerProxy:a,scheduleProxy:c,unifiedProxy:d}=A;this.proxy_ws=e,this.proxy_wt=o,this.proxy_unified=d,d?(ZK([d,d]),YS("https://".concat(d))):(a&&YS(a),c&&ZK(c))}F.once(sA.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:em.main,sched_back_domain:em.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return KA(this,null,function*(){let A={};return this.remotePublishedUserMap.forEach(e=>{A[e.userId]=e.remoteAudioTrack.stat}),A})}getTransportStats(){return KA(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 KA(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(a=>{let c=e==="auxiliary"?a.remoteAuxiliaryTrack:a.remoteVideoTrack;o[a.userId]=c.stat}),o}()})}checkDestroy(){if(this.isDestroyed)throw new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(cc.INVALID_DESTROY),new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.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,F.emit(sA.ROOM_DESTROY,{room:this})}schedule(A,e){return KA(this,null,function*(){var o,a,c,d;let C=ko();try{let{isCached:y,result:S,detailCost:k}=yield Z5({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?A.strRoomId:A.roomId,useStringRoomId:this.useStringRoomId,version:qd,userSig:this.userSig,role:this.scene==="live"?A.role:void 0,frameWorkType:e,latencyLevel:A.latencyLevel});this._isUsingCachedSchedule=y,this._log.info("schedule cache:".concat(+y," ").concat(zd(S,{keysToExclude:["username","credential"]}))),y&&F.once(sA.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=mi(mi({},this.scheduleResult),S),bn((o=S.config)==null?void 0:o.retryCount)&&r0(S.config.retryCount),Yn((a=S.config)==null?void 0:a.loggerDomain)&&YS(S.config.loggerDomain),this.videoDecodeFallbackType=((c=S.config)==null?void 0:c.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((d=S.config)==null?void 0:d.smallMode)||this.smallMode,F.emit(sA.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:k}),ti.addSuccessEvent({key:521700,cost:ko()-C})}catch(y){throw ti.addFailedEvent({key:521700,error:y}),y}})}sendAbilityStatus(A){}enableInsertableStreams(){return Promise.resolve()}switchRoom(A){return Promise.reject()}isSwitchRoomSupported(){return!1}prelink(A,e,o,a,c,d){return KA(this,null,function*(){return Promise.resolve()})}closePrelink(){return KA(this,null,function*(){return Promise.resolve()})}},yoA=gc(Kl()),Fz=gc(Cb());function Oz(A){var e;let o=[];for(let a=0;a<A.rtp.length;a++){if(["rtx","red","ulpfec"].includes(A.rtp[a].codec))continue;let c=A.fmtp.filter(d=>d.payload===A.rtp[a].payload)[0];o.push({payload:A.rtp[a].payload,codec:A.rtp[a].codec,fmtp:c?c.config:"",rate:A.rtp[a].rate,rtx:((e=A.rtp[a+1])==null?void 0:e.codec)==="rtx"?A.rtp[a+1].payload:0,rtcpfb:(A?.rtcpFb||[]).filter(d=>d.payload===A.rtp[a].payload).map(d=>{let{type:C,subtype:y}=d;return{id:C,params:y?[y]:[]}})})}return o}var DoA=(A,e,o)=>KA(null,null,function*(){var a;let c=uc(A),d={ice:{ufrag:"",password:""},dtls:{hash:"",fingerprint:"",setup:""},audio:{codecs:[],extensions:[]},video:{codecs:[],decoders:[],extensions:[]},useDataChannel:o};d.ice.ufrag=String(c.media[0].iceUfrag),d.ice.password=c.media[0].icePwd||"",c.fingerprint&&(d.dtls.hash=c.fingerprint.type,d.dtls.fingerprint=c.fingerprint.hash,d.dtls.setup=c.setup||""),c.media[0].fingerprint&&(d.dtls.hash=c.media[0].fingerprint.type,d.dtls.fingerprint=c.media[0].fingerprint.hash),d.dtls.setup=c.media[0].setup||"";let C=c.media[0],y=c.media[1];C.ext&&(d.audio.extensions=C.ext.map(k=>({id:k.value,uri:k.uri}))),y.ext&&(d.video.extensions=y.ext.map(k=>({id:k.value,uri:k.uri})));for(let k of C.rtp){if(k.codec!=="opus")continue;let V=C.fmtp.find(gA=>gA.payload===k.payload);if(!V)continue;let J={codec:k.codec,fmtp:V.config,payload:V.payload,rate:k.rate,channels:k.encoding,rtcpfb:[],rtx:0};(a=C.rtcpFb)==null||a.forEach(gA=>{let{payload:CA,type:MA,subtype:Ae}=gA;if(CA===J.payload){let Qe={id:MA,params:[]};Ae&&Qe.params.push(Ae),J.rtcpfb.push(Qe)}}),d.audio.codecs.push(J);break}let S=["h264","vp8","h265"];return e&&S.shift(),d.video.codecs=[...Oz(y)].filter(k=>S.includes(k.codec.toLocaleLowerCase())),d.video.decoders=(yield function(){return KA(this,null,function*(){let k=new RTCPeerConnection;k.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_RECVONLY});let V=yield k.createOffer();if(!V.sdp)return[];let J=Oz(uc(V.sdp).media[0]);return k.close(),J})}()).filter(k=>["h264","vp8","h265"].includes(k.codec.toLocaleLowerCase())),d}),Pz=(A,e)=>{let o=(A||"").trim(),a=(e||"").trim(),c="profile-level-id",d="".concat(c,"=[0-9a-fA-F]{6}");if(new RegExp(d).test(o)){let y=new RegExp(d,"g");return o.replace(y,"".concat(c,"=").concat(a))}if(!o)return"".concat(c,"=").concat(a);let C=o.endsWith(";")?"":";";return"".concat(o).concat(C).concat(c,"=").concat(a)},SoA=A=>{let{serverAbility:e,clientAbility:o,offerSDP:a,enableCustomMessage:c,profileLevelIdConfig:d}=A,C=uc(a),y={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},S={candidates:e.candidates.map(V=>({component:1,foundation:"1",generation:0,ip:V.ip,port:V.port,priority:V.priority,transport:V.foundation,type:V.type})),connection:{version:4,ip:"0.0.0.0"},direction:YA.TRANSCEIVER_DIRECTION_RECVONLY,ext:e.audio.extensions.map(V=>({value:V.id,uri:V.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:YA.AUDIO,setup:e.dtls.setup,rtcpFb:e.audio.codecs[0].rtcpfb.map(V=>({payload:e.audio.codecs[0].payload,type:V.id,subtype:V.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}]};y.media.push(S);let k=[d?.big,d?.small,d?.aux];return[1,2,3].forEach((V,J)=>{y.media.push(xz({mid:V,serverAbility:e,clientAbility:o,parsedOffer:C,profileLevelId:k[J]}))}),c&&y.media.push(C.media.find(V=>V.mid==="dc")),vy(y)},xz=A=>{let{mid:e,serverAbility:o,clientAbility:a,parsedOffer:c,isDownlink:d=!1,profileLevelId:C}=A,y={candidates:o.candidates.map(S=>({component:1,foundation:"1",generation:0,ip:S.ip,port:S.port,priority:S.priority,transport:S.foundation,type:S.type})),connection:{version:4,ip:"0.0.0.0"},direction:YA.TRANSCEIVER_DIRECTION_RECVONLY,ext:o.video.extensions.map(S=>({value:S.id,uri:S.uri})),fingerprint:{type:o.dtls.hash,hash:o.dtls.fingerprint},fmtp:[],icePwd:o.ice.password,iceUfrag:o.ice.ufrag,mid:String(e),payloads:"",port:c.media[0].port,protocol:c.media[0].protocol,type:YA.VIDEO,setup:o.dtls.setup,rtcpFb:[],rtcpMux:"rtcp-mux",rtcpRsize:"rtcp-rsize",rtp:[]};if(d){let S=o.video.decoders;(!S||S.length===0)&&(S=o.video.codecs),(!S||S.length===0)&&(S=a.video.decoders),S.forEach(k=>{C_(y,k)})}else{let S;S=o.useH265?o.video.codecs.findIndex(V=>V.codec.toLowerCase()==="h265"):o.video.codecs.findIndex(V=>V.codec.toLowerCase()===(o.useVp8?"vp8":"h264"));let k=o.video.codecs[S]||a.video.codecs[0];C_(y,k)}if(!d&&C){let S=y.fmtp,k=y.rtp.find(V=>{var J;return((J=V.codec)==null?void 0:J.toLowerCase())==="h264"});if(k){let V=S.find(J=>String(J.payload)===String(k.payload));V&&(V.config=Pz(V.config,C))}}return y},C_=(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}))},MoA=(A,e,o)=>{let a=Fz.default.parse(A);return a.media.forEach((c,d)=>{var C;if((c.type===YA.AUDIO||c.type===YA.VIDEO)&&(function(y){if(!y.rtcpFb)return;let S=[];y.rtcpFb.forEach((k,V)=>{var J;S.push(k),y.rtcpFb&&((J=y.rtcpFb[V+1])==null?void 0:J.payload)!==k.payload&&k.type!=="rrtr"&&S.push({payload:k.payload,type:"rrtr"})}),y.rtcpFb=S}(c),function(y){y.type===YA.VIDEO&&y.fmtp&&y.fmtp.forEach(S=>{S.config.includes("apt")||(S.config+=";sps-pps-idr-in-keyframe=1")})}(c),function(y){y.type===YA.AUDIO&&y.fmtp&&y.fmtp.forEach(S=>{S.config+=";sprop-stereo=1;stereo=1"})}(c),function(y){let S=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"]);y.ext&&(y.ext=y.ext.filter(k=>!S.has(k.uri)))}(c),c.type===YA.VIDEO)){if(d<4)c.payloads="",c.fmtp=[],c.rtp=[],c.rtcpFb=[],e.video.codecs.forEach(y=>C_(c,y));else if(o){c.payloads="",c.fmtp=[],c.rtp=[],c.rtcpFb=[];let y=o.video.decoders;(!y||y.length===0)&&(y=o.video.codecs),(!y||y.length===0)&&(y=e.video.decoders),y.forEach(S=>C_(c,S))}}(C=c.payloads)!=null&&C.includes("datachannel")&&a.groups&&c.mid&&(a.groups[0].mids=a.groups[0].mids.replace(c.mid,"dc"),c.mid="dc")}),Fz.default.write(a)};function pj(A){var e,o;let a=/profile-level-id=([0-9a-fA-F]{6})/.exec(A);return(o=(e=a?.[1])==null?void 0:e.toLowerCase())!=null?o:null}function mj(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 Yz(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 a of e.video.codecs){let c=pj(a.fmtp);if(c&&mj(c)===o)return c}return""}var voA=gc(Kl()),Vz=class extends voA.EventEmitter{constructor(A){super(),this.room=A,Y(this,"mainFpsHealth",1),Y(this,"mainBitrateHealth",1),Y(this,"badMainBitrateHealthCount",0),Y(this,"lastEmitBadHealthTime",0),Y(this,"log"),!Ha&&cE&&F.on("262",this.onVideoCodecChanged,this),this.log=A.getLogger().createChild({id:"h-d"})}onVideoCodecChanged(A){let{remoteUserId:e,streamType:o,isHWCodec:a,codec:c}=A;if(!e&&o!==7&&c==="h264"){if(!a)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(){F.off("262",this.onVideoCodecChanged,this),this.room.off("heartbeat-report",this.onHeartbeatReport,this)}};Y(Vz,"EVENT_BAD_HEALTH","bad_health");var RoA=Vz,h_=(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))(h_||{}),woA=1,Ry=class extends yoA.default{constructor(A){let{signalChannel:e,room:o,enableDataChannel:a}=A;super(),Y(this,"stat",{iceStartTime:0,iceEndTime:0,dtlsStartTime:0,dtlsEndTime:0,peerConnectionStartTime:0,peerConnectionEndTime:0}),Y(this,"isDestroyed",!1),Y(this,"currentState","DISCONNECTED"),Y(this,"_room"),Y(this,"_signalChannel"),Y(this,"_peerConnection",null),Y(this,"_datachannel",null),Y(this,"_enableDataChannel"),Y(this,"_log"),Y(this,"_downlinkMIDMap",new Map),Y(this,"_downlinkMIDUserIDMap",new Map),Y(this,"_reconnectionTimer",-1),Y(this,"reconnectionCount",0),Y(this,"clientAbility"),Y(this,"_serverAbility",null),Y(this,"addDownlinkQueue",new Set),Y(this,"removeDownlinkQueue",new Set),Y(this,"_parsedAnswer",null),Y(this,"_updateSDPPromise",null),Y(this,"_waitForPCConnectedPromise"),Y(this,"clearWaitForConnectedPromise"),Y(this,"clearConnectTimeout"),Y(this,"_isSDPLogged",!1),Y(this,"enableInsertableStreams",!1),Y(this,"insertableStreamsAbortMap",new Map),Y(this,"receiverRemoteTrackMap",new WeakMap),Y(this,"scriptTransformWorker"),Y(this,"_isRelayTried",!1),Y(this,"_rttOverCount",0),Y(this,"originOffer",null),Y(this,"autoSubscribedSsrcGroups",new Map),Y(this,"autoSubscribedUserMap",new Map),Y(this,"_h265DecodeFailed",!1),this._room=o,this._enableDataChannel=a,this._signalChannel=e,this._log=QA.createLogger({parent:this._room.getLogger(),id:"spc".concat(woA++),userId:this._room.userId,sdkAppId:this._room.sdkAppId}),this._room.enableCodecPipeline&&(Kp?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 a=(A=this._parsedAnswer)==null?void 0:A.media[1].rtp.find(c=>["h264","vp8","h265"].includes(c.codec.toLowerCase()));return a?a.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(a=>a.codec.toLowerCase()==="h265")&&!this._h265DecodeFailed?"h265":(o=this._serverAbility)!=null&&o.video.decoders.find(a=>a.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=uc(A),o={audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0};return e.media.forEach((a,c)=>{var d;if(a.ssrcs&&!Je(a.ssrcs[0].id)){let C=Number(a.ssrcs[0].id),y=Number((d=a.ssrcs.filter(S=>S.attribute==="cname")[1])==null?void 0:d.id);switch(c){case 0:o.audioSsrc=C;break;case 1:o.bigVideoSsrc=C,o.bigVideoRtxSsrc=y;break;case 2:o.smallVideoSsrc=C,o.smallVideoRtxSsrc=y;break;case 3:o.auxVideoSsrc=C,o.auxVideoRtxSsrc=y}}}),o})(this._peerConnection.localDescription.sdp):{audioSsrc:0,audioRtxSsrc:0,bigVideoSsrc:0,bigVideoRtxSsrc:0,smallVideoSsrc:0,smallVideoRtxSsrc:0,auxVideoSsrc:0,auxVideoRtxSsrc:0}}onBadHealth(A){}initScriptTransformWorker(){X0&&(this.scriptTransformWorker=az({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"},a=(e=this._peerConnection)==null?void 0:e.getConfiguration().encodedInsertableStreams;return c2(a)&&(o.encodedInsertableStreams=a),this._log.debug("getPeerConnectionConfig",JSON.stringify(o)),o}initialize(A){return KA(this,null,function*(){var e;let o;try{return this._peerConnection=new RTCPeerConnection(this.getPeerConnectionConfig(A)),this._peerConnection.oniceconnectionstatechange=()=>{if(!this._peerConnection)return;let a=this._peerConnection.iceConnectionState;this._log.debug("ice state: ".concat(a)),a==="checking"&&this.stat.iceStartTime===0?this.stat.iceStartTime=Date.now():a==="connected"&&this.stat.iceEndTime===0?(this.stat.iceEndTime=Date.now(),this._signalChannel.clearBakRelayIps(),ti.addSuccessEvent({key:521711,cost:this.stat.iceEndTime-this.stat.iceStartTime})):a==="failed"&&ti.addFailedEvent({key:521711})},this._peerConnection.onsignalingstatechange=()=>{var a;let c=((a=this._peerConnection)==null?void 0:a.signalingState)||"";this._log[c==="closed"?"debug":"info"]("signaling state: ".concat(c))},this._peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this._peerConnection.ontrack=a=>this.emit("track",a),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=a=>{let c=new ToA(a.data);this.emit("data_channel_msg",{data:c})},this._datachannel.onerror=a=>{this._log.warn("datachannel error",a)}),this._peerConnection.addTransceiver(YA.AUDIO,{direction:YA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_SENDONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_SENDONLY}),o=yield this._peerConnection.createOffer(),this.clientAbility=yield DoA(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:a}=this;a&&(this._log.debug("dtls state: ".concat(a.state)),a.state==="connecting"&&this.stat.dtlsStartTime===0?this.stat.dtlsStartTime=Date.now():a.state==="connected"&&this.stat.dtlsEndTime===0&&(this.stat.dtlsEndTime=Date.now()))}),ti.addSuccessEvent({key:521707}),this.clientAbility}catch(a){throw ti.addFailedEvent({key:521707,error:a}),this._log.error("initialize failed ".concat(a,`
|
||
offer: `).concat(o?.sdp)),a}})}setIceServers(A){return KA(this,null,function*(){var e;if(this._peerConnection&&A.length!==0)try{if(this._log.info("setIceServers",JSON.stringify(A,(o,a)=>o==="username"||o==="credential"?"hided":a)),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(a=>{this._log.warn("setPriority error ",a)}))})}catch(e){this._log.warn("setPriority error ",e)}}connect(A){let e=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return KA(this,null,function*(){var o,a,c;try{if(this.currentState==="CONNECTED")return;((o=this._peerConnection)==null||!o.localDescription)&&this.originOffer&&(yield this.setOffer(this.originOffer));let d=ko(),C=this.getProfileLevelIdConfig(),y={type:"answer",sdp:SoA({serverAbility:A,clientAbility:this.clientAbility,offerSDP:this._peerConnection.localDescription.sdp,enableCustomMessage:this._enableDataChannel,profileLevelIdConfig:C})};this._serverAbility=A,yield this.setAnswer(y),yield this.waitForPeerConnectionConnected(),this._room.firewallDetector.resetTimeoutCount();let S=((a=this._room.scheduleResult.config)==null?void 0:a.priority)||((c=this._room.joinParams)==null?void 0:c.priority)||new URLSearchParams(location.search).get("priority");S&&this.setPriority(S),e||ti.addSuccessEvent({key:521703,cost:ko()-d})}catch(d){let C=d instanceof ri&&d.code===Et.API_CALL_ABORTED;throw C||this._log.error("connect failed: ".concat(d),A),this.reset(),!C&&!this.isReconnecting&&!this.isDestroyed&&(ti.addFailedEvent({key:521703,error:d}),this.emitConnectionStateChangedEvent("DISCONNECTED"),this.startReconnection()),d}})}reconnect(){return KA(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(EL,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=mi({ability:e},A),a=yield this._signalChannel.sendWaitForResponse({command:ziA,responseCommand:ls.REBUILD_PEER_CONNECTION_RES,data:o,enableLog:!1});if(a.data.code!==0)throw new ri({code:a.data.code,message:a.data.message});yield this.connect(a.data.data.ability,!0),ti.addSuccessEvent({key:521704}),this._log.warn("reconnect() success"),this.stopReconnection(),F.emit(sA.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=Rp(this.reconnectionCount);this._log.warn("reconnect() timeout, try again after ".concat(e/1e3,"s")),yield LC(e,o=>{this._reconnectionTimer=o}),this.clearReconnectionTimer(),yield this.reconnect()}else this._log.error("reconnect() failed ".concat(A?.code," ").concat(A)),ti.addFailedEvent({key:521704,error:A}),this.reconnectionCount>=xf()&&this._log.warn("SDK has tried reconnect for ".concat(xf()," 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 KA(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(EL,this.reconnect,this),this.currentState==="RECONNECTING"&&this.emitConnectionStateChangedEvent("DISCONNECTED"))}checkPeerConnectionToReconnect(){var A;!this.isReconnecting&&((A=this._peerConnection)==null?void 0:A.connectionState)===Co.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",a=this.getDTLSTransportState();this._log.info("connectionState: ".concat(A.target.connectionState," ICE: ").concat(o," DTLS: ").concat(a)),A.target.connectionState===Co.CONNECTING&&(this.stat.peerConnectionStartTime===0&&(this.stat.peerConnectionStartTime=Date.now()),this.emitConnectionStateChangedEvent("CONNECTING")),(A.target.connectionState===Co.FAILED||A.target.connectionState===Co.CLOSED)&&(this.emitConnectionStateChangedEvent("DISCONNECTED"),this._room.forceRelay?this.switchRelay(!1):this.startReconnection()),(A.target.connectionState===Co.CONNECTED||A.target.connectionState===Co.COMPLETED)&&(this.stat.peerConnectionEndTime===0&&(this.stat.peerConnectionEndTime=Date.now()),F.emit(sA.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 Kh;let A=null;return LI()&&this._peerConnection.getSenders().length!==0?(A=this._peerConnection.getSenders()[0].transport,dy()&&this._peerConnection.getReceivers().length!==0&&A?A.state:Kh):Kh}emitConnectionStateChangedEvent(A){A!==this.currentState&&(this.currentState==="RECONNECTING"&&A==="CONNECTING"||(this.emit(h_.CONNECTION_STATE_CHANGED,{prevState:this.currentState,state:A}),this.currentState=A))}logSelectedCandidate(){return KA(this,null,function*(){if(!this._peerConnection)return;let A=yield this._peerConnection.getStats();for(let[e,o]of A)if(wM(o)){let a=A.get(o.localCandidateId),c=A.get(o.remoteCandidateId);a&&(this._log.info("local candidate: ".concat(a.candidateType," ").concat(a.protocol,":").concat(a.ip||a.address,":").concat(a.port," ").concat(a.networkType||""," ").concat(a.relayProtocol?"relayProtocol:".concat(a.relayProtocol," url: ").concat(a.url):"")),a.networkType&&Q0(a.networkType)),c&&this._log.info("remote candidate: ".concat(c.candidateType," ").concat(c.protocol,":").concat(c.ip||c.address,":").concat(c.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(d),c(),A())},a=C=>{let{room:y}=C;y===this._room&&(clearTimeout(d),c(),e(new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.CONNECTION_ABORTED,data:"leave room"})})))},c=()=>{F.off(sA.LEAVE_SUCCESS,a,this),this.off(h_.CONNECTION_STATE_CHANGED,o,this)},d=setTimeout(()=>{c();let C=new ri({code:Et.API_CALL_TIMEOUT,message:"connection timeout"});this._room.firewallDetector.increaseTimeoutCount(),e(C)},wb);this.clearConnectTimeout=()=>{c(),clearTimeout(d),delete this.clearConnectTimeout},this.clearWaitForConnectedPromise=()=>{this._waitForPCConnectedPromise=null,e(new ri({code:Et.API_CALL_TIMEOUT,message:"connection timeout"}))},F.on(sA.LEAVE_SUCCESS,a,this),this.on(h_.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 KA(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:a,prevMids:c}=A;if(!this._peerConnection)return;this._log.info("updateLocalAndRemoteSDPConfig ".concat(o," ").concat(JSON.stringify(e))),this._parsedAnswer||(this._parsedAnswer=uc(this._peerConnection.remoteDescription.sdp));let d,C,y,S=this._parsedAnswer.media.filter(J=>{var gA;return(gA=J.ssrcs)==null?void 0:gA.find(CA=>{var MA;return(MA=CA.value)==null?void 0:MA.includes(a)})});if(S.length===3)d=S[0],C=S[1],y=S[2];else{let J,gA=this._peerConnection.getTransceivers().slice(4);if(c?.length===3&&c.every(MA=>{var Ae;return((Ae=gA.find(Qe=>Number(Qe.mid)===MA))==null?void 0:Ae.direction)==="inactive"})?(J=c,this._log.info("reusing previous mids for ".concat(o,": ").concat(J.join(","))),gA.forEach(MA=>{J.includes(Number(MA.mid))&&(MA.direction=YA.TRANSCEIVER_DIRECTION_RECVONLY)})):J=gA.filter(MA=>MA.direction==="inactive").slice(0,3).map(MA=>(MA.direction=YA.TRANSCEIVER_DIRECTION_RECVONLY,Number(MA.mid))),J.length===3)d=this._parsedAnswer.media.find(MA=>Number(MA.mid)===Number(J[0])),C=this._parsedAnswer.media.find(MA=>Number(MA.mid)===Number(J[1])),y=this._parsedAnswer.media.find(MA=>Number(MA.mid)===Number(J[2]));else if(J.length===0){this._peerConnection.addTransceiver(YA.AUDIO,{direction:YA.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_RECVONLY}),this._peerConnection.addTransceiver(YA.VIDEO,{direction:YA.TRANSCEIVER_DIRECTION_RECVONLY}),d=JSON.parse(JSON.stringify(this._parsedAnswer.media[0]));let MA=xz({mid:1,serverAbility:this._serverAbility,clientAbility:this.clientAbility,parsedOffer:uc(this._peerConnection.localDescription.sdp),isDownlink:!0});C=JSON.parse(JSON.stringify(MA)),y=JSON.parse(JSON.stringify(MA)),d.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(d),C.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(C),y.mid=this._parsedAnswer.media.length,this._parsedAnswer.media.push(y)}}d.direction=YA.TRANSCEIVER_DIRECTION_SENDONLY;let k="".concat(a,"-").concat(e.audio);d.ssrcs=[{id:e.audio,attribute:"cname",value:"".concat(k)},{id:e.audio,attribute:"msid",value:"".concat(k,"-").concat(YA.MAIN," ").concat(k,"-audio")}],C.direction=YA.TRANSCEIVER_DIRECTION_SENDONLY,C.ssrcs=[{id:e.video,attribute:"cname",value:"".concat(k)},{id:e.video,attribute:"msid",value:"".concat(k,"-").concat(YA.MAIN," ").concat(k,"-bigvideo")},{id:e.videoRtx,attribute:"cname",value:"".concat(k)},{id:e.videoRtx,attribute:"msid",value:"".concat(k,"-").concat(YA.MAIN," ").concat(k,"-bigvideo")}],C.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.video," ").concat(e.videoRtx)}],y.direction=YA.TRANSCEIVER_DIRECTION_SENDONLY;let V="".concat(k,"-aux");y.ssrcs=[{id:e.auxiliary,attribute:"cname",value:V},{id:e.auxiliary,attribute:"msid",value:"".concat(V," ").concat(k,"-aux").concat(YA.VIDEO)},{id:e.auxiliaryRtx,attribute:"cname",value:"".concat(V," ").concat(k,"-aux").concat(YA.VIDEO)},{id:e.auxiliaryRtx,attribute:"msid",value:"".concat(V," ").concat(k,"-aux").concat(YA.VIDEO)}],y.ssrcGroups=[{semantics:"FID",ssrcs:"".concat(e.auxiliary," ").concat(e.auxiliaryRtx)}],this._parsedAnswer.groups&&(this._parsedAnswer.groups[0].mids=this._parsedAnswer.media.map(J=>J.mid).join(" ")),this._downlinkMIDMap.set(o,[d.mid,C.mid,y.mid]),this._downlinkMIDUserIDMap.set(d.mid,o),this._downlinkMIDUserIDMap.set(C.mid,o),this._downlinkMIDUserIDMap.set(y.mid,o)}removeDownlink(A){return KA(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(a=>{e!=null&&e.includes(Number(a.mid))&&(o=!0,a.direction="inactive")}),this._parsedAnswer||(this._parsedAnswer=uc(this._peerConnection.remoteDescription.sdp)),this._parsedAnswer.media.forEach(a=>{e!=null&&e.includes(Number(a.mid))&&(o=!0,a.direction="inactive",a.ssrcs=[],a.ssrcGroups=[])}),this.removeDownlinkQueue.size===0&&o&&(yield this.updateSDP()),this._downlinkMIDMap.delete(A),e?.forEach(a=>this._downlinkMIDUserIDMap.delete(a)),this._log.info("removeDownlink(".concat(A,") done")),e})}setBandwidth(A){return KA(this,null,function*(){if(!this._peerConnection)return;let{audio:e,bigVideo:o,smallVideo:a,auxVideo:c}=A;try{if(Lk()){let d=this._peerConnection.getSenders().slice(0,4);for(let y=0;y<d.length;y++){let S,k=d[y];y===0&&e?S=e:y===1&&o?S=o:y===2&&a?S=a:y===3&&c&&(S=c),S&&(yield this.setSenderMaxBitrate(k,S))}let C=!1;o&&d[1].track&&(C=this.setStartBitrate(1,o)),c&&d[3].track&&(C=this.setStartBitrate(3,c)||C),C&&(yield this.updateSDP())}else yield this.setBandwidthBySDP(A);this._log.info("setBandwidth ".concat(JSON.stringify(A)))}catch(d){this._log.error("failed to set bandwidth: ".concat(d))}})}setStartBitrate(A,e){var o,a;return!((o=this._peerConnection)==null||!o.remoteDescription||(this._parsedAnswer||(this._parsedAnswer=uc(this._peerConnection.remoteDescription.sdp)),(a=this._parsedAnswer.media[A])==null||!a.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:a,auxVideo:c}=A;if(!this._peerConnection||!this._peerConnection.localDescription)return;let d=uc(this._peerConnection.localDescription.sdp);this._parsedAnswer||(this._parsedAnswer=uc(this._peerConnection.remoteDescription.sdp));let C=er?"TIAS":"AS";e&&(d.media[0].bandwidth=[{type:C,limit:er?1e3*e:e}],this._parsedAnswer.media[0].bandwidth=[{type:C,limit:er?1e3*e:e}]),o&&(d.media[1].bandwidth=[{type:C,limit:er?1e3*o:o}],this._parsedAnswer.media[1].bandwidth=[{type:C,limit:er?1e3*o:o}]),a&&(d.media[2].bandwidth=[{type:C,limit:er?1e3*a:a}],this._parsedAnswer.media[2].bandwidth=[{type:C,limit:er?1e3*a:a}]),c&&(d.media[3].bandwidth=[{type:C,limit:er?1e3*c:c}],this._parsedAnswer.media[3].bandwidth=[{type:C,limit:er?1e3*c:c}]);let y={type:"offer",sdp:vy(d)};return this.updateSDP({localDescription:y})}setScaleResolutionDownBy(A,e,o){let a=A.getParameters();(!a.encodings||a.encodings.length===0)&&(a.encodings=[{}]);let c=a.encodings[0].scaleResolutionDownBy;if(Je(c)?e===1:e===c)return;let d="setScaleResolutionDownBy ".concat(o," ").concat(e);return c&&(d+=" prevScale: ".concat(c)),this._log.warn(d),a.encodings[0].scaleResolutionDownBy=e,A.setParameters(a)}setDegradationPreference(A,e,o){if(cE&&id<83||eg&&Ek(kI,"12.1")||er&&G0<138)return;let a=A.getParameters(),c="balanced";if(e==="motion"?c="maintain-framerate":e==="detail"&&(c="maintain-resolution"),a.degradationPreference===c)return;let d="setDegradationPreference ".concat(o," ").concat(c);return this._log.info(d),a.degradationPreference=c,A.setParameters(a).catch(C=>this._log.warn("".concat(d," failed: ").concat(C)))}updateSDP(){let{localDescription:A}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this._parsedAnswer)return Promise.resolve();let e=vy(this._parsedAnswer);return this._updateSDPPromise=new Promise((o,a)=>KA(this,null,function*(){var c,d;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((c=this._peerConnection.localDescription)==null?void 0:c.sdp),`
|
||
next offer: `).concat(this.filterSDPDirection(A?.sdp))),this._log.warn("current answer: ".concat(this.filterSDPDirection((d=this._peerConnection.remoteDescription)==null?void 0:d.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(y=>{let{mid:S,currentDirection:k,direction:V,stopped:J}=y;return{mid:S,currentDirection:k,direction:V,stopped:J}})))),this._log.warn("parsedAnswer: ".concat(JSON.stringify(this._parsedAnswer))),this._isSDPLogged=!0),this._updateSDPPromise=null,a(C)}})),this._updateSDPPromise}setTransceiverDirection(A,e){return KA(this,null,function*(){if(!er||!this._peerConnection||!this._parsedAnswer)return;this._log.info("setting transceiver ".concat(e.join(",")," direction to ").concat(A));let o=this._peerConnection.getTransceivers();e.forEach(a=>{o[a].direction!==A&&(o[a].direction=A)});for(let a of e){let c=this._parsedAnswer.media[a].direction;A===zn.INACTIVE&&c===zn.RECVONLY&&(this._parsedAnswer.media[a].direction=A),A===zn.SENDONLY&&c===zn.INACTIVE&&(this._parsedAnswer.media[a].direction=zn.RECVONLY)}yield this.updateSDP()})}filterSDPDirection(){return uc(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").media.map(A=>A.direction)}setOffer(A){this._log.info("setting offer");let e=MoA(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 KA(this,null,function*(){if(this._parsedAnswer||(this._parsedAnswer=uc(this._peerConnection.remoteDescription.sdp)),!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let e=!1;this._parsedAnswer.media.forEach(o=>{var a;if(o.type===YA.VIDEO){let c=this._serverAbility.video.codecs.find(d=>d.codec.toLowerCase()===A);c&&((a=o.payloads)==null||!a.includes(String(c.payload)))&&(o.fmtp=[],o.payloads="",o.rtp=[],o.rtcpFb=[],C_(o,c),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,a="";if(A===2?a=jb(o?.big)?o.big:"":A===3?a=jb(o?.small)?o.small:"":A===7&&(a=jb(o?.aux)?o.aux:""),!a)return"";let c=Yz(a,this.clientAbility);return c?this._log.info("use schedule profile level id: streamType=".concat(A,", raw=").concat(a,", resolved=").concat(c)):this._log.warn("schedule profile level id not resolved: streamType=".concat(A,", raw=").concat(a)),c}catch(o){return this._log.warn("getScheduleProfileLevelId error: ".concat(o)),""}}getProfileLevelIdConfig(){try{let A=new URLSearchParams(location.search).get("profileLevelId")||"",e=Yz(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),a=this.getScheduleProfileLevelId(3),c=this.getScheduleProfileLevelId(7);if(!o&&!a&&!c)return;let d={};return o&&(d.big=o),a&&(d.small=a),c&&(d.aux=c),d}catch(A){return void this._log.warn("getProfileLevelIdConfig error: ".concat(A))}}setH264ProfileLevelId(A,e){return KA(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=uc(this._peerConnection.remoteDescription.sdp));let o=A==="main"?1:3,a=this._parsedAnswer.media[o];if(!a||a.type!==YA.VIDEO)return;let c=a.rtp||[],d=a.fmtp||[],C=c.find(gA=>{var CA;return((CA=gA.codec)==null?void 0:CA.toLowerCase())==="h264"});if(!C)return;let y=d.find(gA=>String(gA.payload)===String(C.payload));if(!y)return;let S=pj(y.config);if(!S)return;let k=mj(S)==="high";if(e&&k||!e&&!k)return;let V=this._serverAbility.video.codecs.map(gA=>pj(gA.fmtp)).filter(Boolean).find(gA=>{let CA=mj(gA);return e?CA==="high":CA!=="high"});if(!V)return;let J=y.config;y.config=Pz(y.config,V),y.config!==J&&(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 KA(this,null,function*(){if(!this._peerConnection||!this._parsedAnswer||!this._serverAbility)return;let o=!1,a=[];Je(e)?a=this._parsedAnswer.media.slice(1,4):e===2?a.push(this._parsedAnswer.media[1]):e===3?a.push(this._parsedAnswer.media[2]):e===7&&a.push(this._parsedAnswer.media[3]),a.forEach(c=>{var d;if(c.type===YA.VIDEO){let C;A&&this.is42001fSupported?C=this.clientAbility.video.codecs.find(y=>y.fmtp.includes("42001f")):A||(C=this._serverAbility.video.codecs.find(y=>y.codec.toLowerCase()===(this._serverAbility.useVp8?"vp8":"h264"))),C&&((d=c.payloads)==null||!d.includes(String(C.payload)))&&(c.fmtp=[],c.payloads="",c.rtp=[],c.rtcpFb=[],C_(c,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=>Np(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 a;if(this.currentState!=="CONNECTED"||this._isRelayTried&&!this._room.forceRelay||this._room.getIceServers().length===0)return;let c=this._signalChannel.rtt,d=Math.max(e,o),{rttRatioThreshold:C,rttThreshold:y}=((a=this._room.scheduleResult.config)==null?void 0:a.useTurnTcpInfo)||{};if(!(C&&y&&c&&d))return;let S=Math.floor(d/c),k=(this._isRelayTried||S>C)&&d>y;k?++this._rttOverCount<5||(this._log.warn("detectTCPAndUDP ws-rtt: ".concat(c," upRTT: ").concat(e," downRTT: ").concat(o," ratio: ").concat(S," over-count: ").concat(this._rttOverCount," isOver: ").concat(k," 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 KA(this,null,function*(){if(this.isUsingRelay===A)return;let o=A?"relay":"udp",a=A?521709:521710;try{this._room.forceRelay=A,this._log.warn("switchRelay ".concat(o));let c=Date.now();yield this.doSwitchRelay(o),this._log.warn("switchRelay ".concat(o," success")),ti.addSuccessEvent({key:a,cost:Date.now()-c})}catch(c){this._log.warn("switchRelay ".concat(o," failed"),c),ti.addFailedEvent({key:a,error:c}),e?this._room.reJoin():yield this.switchRelay(!A,!0)}})}doSwitchRelay(A){return new Promise((e,o)=>{let a=setTimeout(()=>{this.stopReconnection(),o(new Error("switch ".concat(A," timeout")))},1e4);this.startReconnection().then(e,o).finally(()=>clearTimeout(a))})}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:hj,data:{videoDecCodec:"h264"},responseCommand:ls.UPDATE_CONSTRAINT_CONFIG_RES}).then(A=>{A.data.code!==0&&this._log.warn(A.data.message)})}};Ci([o5("reconnect")],Ry.prototype,"startReconnection"),Ci([py(A=>A.userId)],Ry.prototype,"addDownlink"),Ci([py(A=>A)],Ry.prototype,"removeDownlink"),Ci([zk(!0)],Ry.prototype,"updateSDP"),Ci([fy(521712,!1),t1(10,0)],Ry.prototype,"setOffer"),Ci([fy(521713,!1),t1(10,0)],Ry.prototype,"setAnswer"),Ci([jr((A,e)=>function(){for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];return this._checkPendingPromiseSet&&(this._checkPendingPromiseSet.forEach(d=>clearTimeout(d)),this._checkPendingPromiseSet.clear()),A.apply(this,a)})],Ry.prototype,"close");var _oA=class{constructor(A){Y(this,"tag"),Y(this,"len"),Y(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}},ToA=class{constructor(A){Y(this,"tinyId"),Y(this,"data");let e=new DataView(A),o=0,a=[];for(;o<e.byteLength;){let S=e.getUint16(o+2),k=new _oA(new Uint8Array(A).slice(o,o+2+2+S).buffer);a.push(k),o+=4+S}let c=[];a.forEach(S=>{S.tag===1?this.tinyId=new TextDecoder().decode(S.data):S.tag===2&&c.push(S.data)});let d=c.reduce((S,k)=>S+k.byteLength,0),C=new Uint8Array(d),y=0;c.forEach(S=>{C.set(new Uint8Array(S),y),y+=S.byteLength}),this.data=C.buffer}},Jz=new Set;function tB(){let A=Math.floor(4294967296*Math.random());return Jz.has(A)?tB():(Jz.add(A),A)}var NoA=gc(Kl()),Hz=class extends NoA.default{constructor(A){super(),Y(this,"userId"),Y(this,"tinyId"),Y(this,"_sdpSemantics"),Y(this,"_isUplink"),Y(this,"_room"),Y(this,"_log"),Y(this,"_currentState","DISCONNECTED"),Y(this,"_prevTime",-1),Y(this,"_blackSmallVideoDetectionId"),Y(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=QA.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&&(F.emit(sA.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 jr((a,c)=>function(){for(var d=arguments.length,C=new Array(d),y=0;y<d;y++)C[y]=arguments[y];return KA(this,null,function*(){if(!e.apply(this,C))return a.apply(this,C);o?.call(this,c,...C)})})}var XM=new class{constructor(){Y(this,"worker"),Y(this,"callbacks",new Map),Y(this,"_log"),Y(this,"sleep",{}),Y(this,"heartbeatListenerCleaner",new Map),Y(this,"userIdMap",new Map),this._log=QA.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 a;let{type:c,trackId:d,message:C,count:y}=o.data;if(c==="black")(a=this.callbacks.get(d))==null||a();else if(c==="log")this._log.warn(C);else if(c==="blackCount"){let S=this.userIdMap.get(d);this._log.warn("".concat(S||d," black count: ").concat(y))}}}return this.worker}start(A){let{track:e,isUplink:o,room:a,userId:c,onBlack:d}=A;if(this._log.debug("start detect black video",e.id),!vM()||!d||!e||typeof Worker>"u")return void this._log.warn("black video detector not supported");let C=y=>{var S,k,V,J;let gA;if(o)gA=(k=(S=y.msg_up_stream_info)==null?void 0:S.msg_video_status)==null?void 0:k.filter(CA=>CA.uint32_video_stream_type===3)[0];else{let CA=(V=y.msg_down_stream_info)==null?void 0:V.filter(MA=>{var Ae;return((Ae=MA.msg_user_info)==null?void 0:Ae.str_identifier)===c})[0];gA=(J=CA?.msg_video_status)==null?void 0:J.filter(MA=>MA.uint32_video_stream_type===3)[0]}if(gA){let CA=(gA.uint32_video_codec_bitrate||0)/1e3;if(this.sleep[e.id]&&this.sleep[e.id]>0)return void(this.sleep[e.id]-=1);CA>0&&CA<10&&(this.sleep[e.id]=30,this._log.info("track bitrate",CA,"start check"),this.checkOnce(e,3e4))}};return a.on("heartbeat-report",C),this.heartbeatListenerCleaner.set(e.id,()=>a.off("heartbeat-report",C)),this.callbacks.set(e.id,d),this.userIdMap.set(e.id,c),e.id}checkOnce(A,e){try{let o=this.getWorker();if(!o)throw new Error("Worker not available");let a=new MediaStreamTrackProcessor({track:A});o.postMessage({type:"addTrack",trackId:A.id,timeout:e,readable:a.readable},[a.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)}},M1=class extends Hz{constructor(A){super(Qo(mi({},A),{isUplink:!0})),Y(this,"localMainAudioTrack",null),Y(this,"localMainVideoTrack",null),Y(this,"localAuxAudioTrack",null),Y(this,"localAuxVideoTrack",null),Y(this,"_isPublishingAux",!1),Y(this,"_publishingLocalAudioTrack"),Y(this,"_publishingLocalVideoTrack"),Y(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}),Y(this,"_flag",0),Y(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:a,smallVideoRtxSsrc:c,auxVideoSsrc:d,auxVideoRtxSsrc:C}=this.singlePC.uplinkSSRC;return{audio:A||0,video:e||0,videoRtx:o||0,small:a||0,smallRtx:c||0,auxiliary:d||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,a=Object.keys(o).filter(c=>{if(o[c]!==e[c]&&o[c])switch(c){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(a.length>0){if(!A)return void(this._checkPublishStateTimeoutId=Nr.run("timeout",()=>this.checkPublishState(!0),{delay:1e4,count:1}));ti.addCount({key:521e3}),a.forEach(c=>{this._log.warn("".concat(c," publish failed during call ").concat(Yp()," ").concat(rQ())),ti.addEnum({key:521719,value:Kz[c]})}),Nr.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&KS),bigVideo:!!(this.flag&HS),smallVideo:!!(this.flag&yb),auxVideo:!!(this.flag&qS)}}initialize(){this.installEvents()}close(A){var e;let o=((e=this._peerConnection)==null?void 0:e.getSenders())||[];for(let a of o)a.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,a,c;let d=this._currentState,C=super.emitConnectionStateChangedEvent(A);return C&&d!==A&&(e?e.emit("connection-state-changed",{prevState:d,state:A}):((o=this.localMainVideoTrack)==null||o.emit("connection-state-changed",{prevState:d,state:A}),(a=this.localAuxVideoTrack)==null||a.emit("connection-state-changed",{prevState:d,state:A}),(c=this._publishingLocalVideoTrack)==null||c.emit("connection-state-changed",{prevState:d,state:A}))),C}onVideoEncodeFailed(A){return KA(this,null,function*(){if(!A||!A.isMediaTrackActive)return;let{videoCodec:e,singlePC:o}=this;if(!o)return;let a={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 c=a[e];this._log.warn(c.log),c!=null&&c.supported&&(yield o.switchVideoEncoder(c.target))})}publish(A){return KA(this,arguments,function(e){var o=this;let{localAudioTrack:a,localVideoTrack:c,isAuxiliary:d}=e;return function*(){var C,y,S,k,V,J,gA;if(!o.singlePC)return;if(o.installEvents(),o.installTrackMuteEvents(a,c),c&&(c.retryEncodeFailed=o.onVideoEncodeFailed.bind(o),eg&&(ny(kI,"26.2",!0)||ny(oQ,"26.2",!0)||tQ&&ny(kI,"18.7",!0)))){o._log.warn("detectH264Supported for fallback 26.2 video encode issue");try{yield ie.detectH264SupportedByFakeStreaming(500)}catch{}}if(yield o.singlePC.waitForPeerConnectionConnected(),a&&(o._publishingLocalAudioTrack=a),c){if(!o.singlePC.isH264EncodeSupported&&!o.singlePC.isVP8EncodeSupported)throw new ri({code:Et.NOT_SUPPORTED_H264,message:Xo({key:Mo.NOT_SUPPORTED_H264ENCODE})});o.singlePC.isUsingH264&&!o.singlePC.isH264EncodeSupported&&o.singlePC.isVP8EncodeSupported&&(o._log.warn("h264 encoder not supported"),yield o.singlePC.switchVideoEncoder("vp8")),Ha&&QM()===115&&c.profile.width*c.profile.height<=230400&&(o._log.warn("fallback video to defaultBigVideoProfile: ".concat(JSON.stringify(JS))),c.setProfile(JS),yield c.applyProfile()),o._publishingLocalVideoTrack=c}let CA;if(o._isPublishingAux=d,c&&!d&&c.small&&(CA=o._room.videoManager.smallTrack),yield o._signalChannel.sendWaitForResponseWithRetry({command:Sz,responseCommand:ls.SPC_PUBLISH_RESULT,data:Qo(mi({},o.singlePC.uplinkSSRC),{state:o._room.publishState,muteState:o._room.muteState}),retries:3}),c&&(yield o.checkHighProfile({streamType:c.streamType,newWidth:c.settings.width,newHeight:c.settings.height})),yield o.publishByTransceiver({localAudioTrack:a,localVideoTrack:c,smallTrack:CA,isAuxiliary:d}),o._publishingLocalAudioTrack=null,o._publishingLocalVideoTrack=null,o._isPublishingAux=!1,c){o[d?"localAuxVideoTrack":"localMainVideoTrack"]=c,yield o.singlePC.setDegradationPreference(o._peerConnection.getSenders()[d?3:1],c.contentHint,c.streamType);let{scaleResolutionDownBy:Ae}=c;yield o.singlePC.setScaleResolutionDownBy(o._peerConnection.getSenders()[d?3:1],Ae,c.streamType)}a&&(o[d?"localAuxAudioTrack":"localMainAudioTrack"]=a),yield o.singlePC.setBandwidth({audio:((C=o.localMainAudioTrack)==null?void 0:C.profile.bitrate)||((y=o.localAuxAudioTrack)==null?void 0:y.profile.bitrate),bigVideo:(S=o.localMainVideoTrack)==null?void 0:S.profile.bitrate,smallVideo:(V=(k=o.localMainVideoTrack)==null?void 0:k.small)==null?void 0:V.bitrate,auxVideo:(J=o.localAuxVideoTrack)==null?void 0:J.profile.bitrate}),o.sendMediaSettings();let MA=d?7:2;(o._room.preferHW||(gA=o._room.scheduleResult.config)!=null&&gA.preferHW)&&c&&c.profile.width*c.profile.height>=921600&&o.singlePC.useHWEncoder(!0,MA)}()})}publishByTransceiver(A){let{localAudioTrack:e,localVideoTrack:o,smallTrack:a,isAuxiliary:c}=A;if(!Xd())return;this._log.info("publish by transceiver");let d=o?.outMediaTrack,C=e?.outMediaTrack,y=this._peerConnection.getTransceivers(),S=[],k=[],V=(gA,CA,MA)=>{var Ae;let Qe=y[CA].sender.replaceTrack(MA);k.push(CA),(Ae=this.singlePC)!=null&&Ae.enableInsertableStreams&&Qe.then(()=>this.createEncodedStreams(y[CA].sender,gA)),this.initSenderTransform(y[CA].sender,gA),S.push(Qe)};C&&V(e.mediaType,0,C),d&&V(o.mediaType,c?3:1,d),o!=null&&o.small&&S.push(this.publishSmall(this._room.videoManager.smallMode,o));let J=this.singlePC.setTransceiverDirection(zn.SENDONLY,k);return S.push(J),Promise.all(S)}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,a;if(this.singlePC.insertableStreamsAbortMap.has(A))return;let c=A.createEncodedStreams(),d=new AbortController;(o=this.singlePC)==null||o.addAbortController(A,d),((a=this.getTrackByMediaType(e))!=null&&a.enableEncodeFrame?c.readable.pipeThrough(new TransformStream({transform:(C,y)=>{var S,k;let V=this.getTrackByMediaType(e);if(!V||!V.encodeFrame)return y.enqueue(C);V.isAudio?y.enqueue(V.enableEncodeFrame?V.encodeFrame(C):C):y.enqueue((S=this.singlePC)!=null&&S.isUsingH264||(k=this.singlePC)!=null&&k.isUsingH265?V.encodeFrame(C,e===8):C)}}),d):c.readable).pipeTo(c.writable,d).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&&X0))return;let o=e!==2,a=e===8;A.transform||(A.transform=new RTCRtpScriptTransform(this.singlePC.scriptTransformWorker,{isReceiver:!1,isAudio:e===1,isMain:o,isSmall:a}))}enableSmall(A){return KA(this,null,function*(){A?yield this.publishSmall(this._room.videoManager.smallMode):yield this.unpublishSmall()})}publishSmall(A){return KA(this,arguments,function(e){var o=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.localMainVideoTrack;return function*(){var c;if(!o.singlePC)return;if(e==="canvas"&&!Z0())return void o._log.warn("canvas mode small stream is not supported");let d=o._peerConnection.getTransceivers(),{sender:C}=d[2],y=yield o.doPublishSmall(e,a),S=e==="canvas"?524700:524701;ti.addSuccessEvent({key:S}),y?((c=o.singlePC)!=null&&c.enableInsertableStreams&&o.createEncodedStreams(C,8),o.initSenderTransform(C,8),yield o.singlePC.setTransceiverDirection(zn.SENDONLY,[2]),o.updateMediaSettings(),yield o.doPublishChange(),C.track&&(o._blackSmallVideoDetectionId=XM.start({track:C.track,room:o._room,isUplink:!0,userId:o.userId,onBlack:()=>{o._log.warn("small video is black");let k=e==="canvas"?524700:524701;ti.addFailedEvent({key:k,error:10002}),XM.stop(o._blackSmallVideoDetectionId),o._blackSmallVideoDetectionId=void 0}}))):ti.addFailedEvent({key:S,error:10001})}()})}doPublishSmall(A){return KA(this,arguments,function(e){var o=this;let a=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 c=o._peerConnection.getTransceivers(),{sender:d}=c[2];if(e==="canvas"&&o._room.videoManager.smallTrack)return yield d.replaceTrack(o._room.videoManager.smallTrack),"canvas";if(e==="api"&&a!=null&&a.outMediaTrack&&a!=null&&a.small){yield d.replaceTrack(a?.outMediaTrack);let C=d.getParameters(),y=M0(a?.profile,a?.small);return o._log.info("small scaleResolutionDownBy",y),C.encodings[0].scaleResolutionDownBy=y,d.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(!(a==null||!a.outMediaTrack))),null}()})}unpublishSmall(){return KA(this,null,function*(){this.singlePC&&(this._log.info("unpublish small"),yield this._peerConnection.getTransceivers()[2].sender.replaceTrack(null),yield this.singlePC.setTransceiverDirection(zn.INACTIVE,[2]),this.updateMediaSettings(),yield this.doPublishChange(),XM.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)})}checkHighProfile(A){return KA(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 a=A.newWidth*A.newHeight>=921600&&!ry();try{yield(o=this.singlePC)==null?void 0:o.setH264ProfileLevelId(A.streamType,a)}catch(c){this._log.warn("setH264ProfileLevelId failed, ignore",c)}})}installTrackMuteEvents(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];e.forEach(a=>{a&&(a?.on("mute",this.sendMutedFlag,this),a?.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(a=>{a&&(a?.off("mute",this.sendMutedFlag,this),a?.off("unmute",this.sendMutedFlag,this))})}unpublish(A){return KA(this,arguments,function(e){var o=this;let{localAudioTrack:a,localVideoTrack:c}=e;return function*(){var d;yield(d=o.singlePC)==null?void 0:d.waitForPeerConnectionConnected();let C=c&&c===o.localAuxVideoTrack||a&&a===o.localAuxAudioTrack,y=c?.outMediaTrack,S=o._peerConnection.getSenders(),k=[];a&&(C?o.localAuxAudioTrack=null:o.localMainAudioTrack=null,!o.localMainAudioTrack&&!o.localAuxAudioTrack&&(yield S[0].replaceTrack(null),k.push(0))),y&&(C?(yield S[3].replaceTrack(null),o.localAuxVideoTrack=null,o._mediaSettings=Qo(mi({},o._mediaSettings),{auxVideoBps:0,auxVideoFps:0,auxVideoWidth:0,auxVideoHeight:0}),k.push(3)):(yield S[1].replaceTrack(null),yield S[2].replaceTrack(null),o.localMainVideoTrack=null,o._mediaSettings=Qo(mi({},o._mediaSettings),{videoWidth:0,videoHeight:0,videoBps:0,videoFps:0,audioFs:0,audioChannel:0,audioBps:0,smallVideoWidth:0,smallVideoHeight:0,smallVideoFps:0,smallVideoBps:0}),k.push(1,2))),o.isMainStreamPublished||o.isAuxStreamPublished?(yield o.singlePC.setTransceiverDirection(zn.INACTIVE,k),yield o.doPublishChange(!1)):yield o.doUnpublish(),o.uninstallTrackMuteEvents(a,c),c?.emit("connection-state-changed",{prevState:o._currentState,state:"DISCONNECTED"})}()})}doPublishChange(){let A=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];return KA(this,null,function*(){let e={state:this._room.publishState,constraintConfig:this._mediaSettings},o=yield this._signalChannel.sendWaitForResponseWithRetry({command:Ej,data:e,responseCommand:ls.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:p1,commandDesc:"unpublish",responseCommand:ls.UNPUBLISH_RESULT,enableLog:A}).catch(e=>{if(e.getCode()===Et.API_CALL_TIMEOUT||e.getCode()===Et.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:a,localAuxVideoTrack:c}=this;if(this._publishingLocalVideoTrack&&(this._isPublishingAux?c=this._publishingLocalVideoTrack:a=this._publishingLocalVideoTrack),Cy){if(o&&o.outMediaTrack){let d=o.outMediaTrack.getSettings();this._mediaSettings.audioChannel=d.channelCount||1,this._mediaSettings.audioBps=1e3*o.profile.bitrate,this._mediaSettings.audioFs=d.sampleRate||0}if(a&&a.outMediaTrack){let d=a.outMediaTrack.getSettings(),{scaleResolutionDownBy:C}=a;this._mediaSettings.videoWidth=(d.width||0)/C||0,this._mediaSettings.videoHeight=(d.height||0)/C||0,this._mediaSettings.videoFps=d.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(c&&c.outMediaTrack){let d=c.outMediaTrack.getSettings(),{scaleResolutionDownBy:C}=c;this._mediaSettings.auxVideoWidth=(d.width||0)/C||0,this._mediaSettings.auxVideoHeight=(d.height||0)/C||0,this._mediaSettings.auxVideoFps=d.frameRate||0,this._mediaSettings.auxVideoBps=1e3*c.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),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:hj,data:this._mediaSettings,responseCommand:ls.UPDATE_CONSTRAINT_CONFIG_RES}).then(A=>{A.data.code!==0&&this._log.warn(A.data.message)}).catch(()=>{})}addTrack(A){return KA(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?YA.AUXILIARY:YA.MAIN," stream")),IQ()&&(yield this.addTrackByTransceiver(A,e))})}addTrackByTransceiver(A,e){return KA(this,null,function*(){var o;if(!A.mediaTrack)return;let a=this._peerConnection.getTransceivers();if(A.kind===YA.AUDIO)yield a[0].sender.replaceTrack(A.outMediaTrack);else{let c=e?3:1;yield a[c].sender.replaceTrack(A.outMediaTrack),c===1&&(o=this.localMainVideoTrack)!=null&&o.small&&this._room.videoManager.smallTrack&&(yield a[2].sender.replaceTrack(this._room.videoManager.smallTrack)),a[c].direction===zn.INACTIVE&&(yield this.singlePC.setTransceiverDirection(zn.SENDONLY,[c]))}this.updateMediaSettings(),yield this.doPublishChange()})}removeTrack(A){return KA(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?YA.AUXILIARY:YA.MAIN," stream")),IQ()&&(yield this.removeTrackByTransceiver(A,e))})}removeTrackByTransceiver(A,e){return KA(this,null,function*(){if(!A.mediaTrack)return;let o=this._peerConnection.getTransceivers();if(A.kind===YA.AUDIO)yield o[0].sender.replaceTrack(null);else{let a=e?3:1;yield o[a].sender.replaceTrack(null),a===1&&this._room.videoManager.hasSmall&&(yield o[2].sender.replaceTrack(null)),yield this.singlePC.setTransceiverDirection(zn.INACTIVE,[a])}this.updateMediaSettings(),yield this.doPublishChange()})}replaceTrack(A){return KA(this,null,function*(){var e;let o=(e=this._peerConnection)==null?void 0:e.getSenders(),a=A.outMediaTrack||A.mediaTrack;if(!o||o.length===0||!a||o.find(d=>d.track===a))return!1;let c=A.mediaType===2||A===this.localAuxAudioTrack||A===this.localAuxVideoTrack;return this._log.info("is replacing ".concat(a.kind," track ").concat(a.id," ").concat(a.label," on ").concat(c?YA.AUXILIARY:YA.MAIN," stream")),a.kind===YA.AUDIO&&o[0]&&(yield o[0].replaceTrack(a)),a.kind===YA.VIDEO&&(!c&&o[1]&&(yield o[1].replaceTrack(a)),c&&o[3]&&(yield o[3].replaceTrack(a))),!0})}setBandwidth(A){return KA(this,arguments,function(e){var o=this;let{bandwidth:a,type:c,videoType:d}=e;return function*(){if(o.singlePC){let C={};c===YA.AUDIO?C.audio=a:d==="big"?C.bigVideo=a:d==="small"?C.smallVideo=a:C.auxVideo=a,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:fz,responseCommand:ls.MUTE_RESULT,data:this._room.muteState,retries:3}).catch(()=>{}))}handleConnectionStateChange(A){A.state==="CONNECTED"&&(this.localMainVideoTrack||this._publishingLocalVideoTrack&&!this._isPublishingAux)&&F.emit(sA.SEND_FIRST_VIDEO_FRAME,{room:this._room})}getVideoTrackId(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:YA.VIDEO;if(this._peerConnection){let e=this._peerConnection.getSenders();if(A===YA.AUXILIARY&&e[3]&&e[3].track)return e[3].track.id;if(A===YA.VIDEO&&e[1]&&e[1].track)return e[1].track.id}if(this.localMainVideoTrack&&A===YA.VIDEO){let e=this.localMainVideoTrack.mediaTrack;if(e)return e.id}if(this.localAuxVideoTrack&&A===YA.AUXILIARY){let e=this.localAuxVideoTrack.mediaTrack;if(e)return e.id}return""}getSSRC(){return this.ssrc}checkPublishResultCode(A,e){if(A!==0)throw A===g0?(this._log.error(cc.NOT_SUPPORTED_H264ENCODE),new ri({code:Et.NOT_SUPPORTED_H264,message:Xo({key:Mo.NOT_SUPPORTED_H264ENCODE})})):new ri({code:Et.UNKNOWN,message:Xo({key:Mo.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ls.PUBLISH_RESULT,code:A,message:e}})})}onSinglePCReconnected(){return KA(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}))})}};Ci([YM(A=>{let{localVideoTrack:e}=A;e==null||delete e.retryEncodeFailed})],M1.prototype,"unpublish"),Ci([qz({when(){return this.isDestroyed}})],M1.prototype,"doPublishChange"),Ci([qz({when(){return this.isDestroyed}})],M1.prototype,"doUnpublish");var Kz=(A=>(A[A.audio=1]="audio",A[A.bigVideo=2]="bigVideo",A[A.smallVideo=3]="smallVideo",A[A.auxVideo=4]="auxVideo",A))(Kz||{}),jz=M1;function Wz(A){return Object.keys(A).filter(e=>A[e])}var v1=class extends Hz{constructor(A){super(Qo(mi({},A),{isUplink:!1})),Y(this,"_flag",0),Y(this,"isRobot",!1),Y(this,"role","anchor"),Y(this,"fromType"),Y(this,"remoteAudioTrack"),Y(this,"remoteVideoTrack"),Y(this,"remoteAuxiliaryTrack"),Y(this,"ssrc",{audio:0,video:0,videoRtx:0,auxiliary:0,auxiliaryRtx:0}),Y(this,"_prevMids"),Y(this,"jitterBufferTimeoutId",-1),Y(this,"_jitterBufferResolve"),Y(this,"_videoCodec"),Y(this,"avPlayerStateSyncManager"),Y(this,"isDataChannelSubscribed",!1),this.flag=A.flag,this.isRobot=A.isRobot||!1,this.fromType=A.fromType,this.remoteAudioTrack=new i1(this._room,this),this.remoteVideoTrack=new rL(this._room,this),this.remoteAuxiliaryTrack=new k5(this._room,this),this.avPlayerStateSyncManager=new ej({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 wp(this.flag,this.userId)}get flag(){return this._flag}set flag(A){var e,o,a;A!==this._flag&&(this._flag=A,(e=this.remoteAudioTrack)==null||e.onFlagChanged(),(o=this.remoteVideoTrack)==null||o.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(A){return A===YA.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 a=this._currentState,c=super.emitConnectionStateChangedEvent(A);return c&&a!==A&&((e=this.remoteVideoTrack)==null||e.emit("connection-state-changed",{prevState:a,state:A}),(o=this.remoteAuxiliaryTrack)==null||o.emit("connection-state-changed",{prevState:a,state:A})),c}onTrack(A){var e,o;let a=A.streams[0],{track:c,receiver:d}=A;if(!a.id.includes(this.tinyId))return;let C=a.id.includes("aux")?"auxiliary":"main";this._log.debug("ontrack ".concat(C," ").concat(c.kind));let y=YA.AUDIO;c.kind===YA.VIDEO&&(y=C===YA.MAIN?YA.VIDEO:YA.AUXILIARY);let S=this.remoteAudioTrack;y===YA.VIDEO?S=this.remoteVideoTrack:y===YA.AUXILIARY&&(S=this.remoteAuxiliaryTrack),(e=this.singlePC)==null||e.receiverRemoteTrackMap.set(d,S),(o=this.singlePC)!=null&&o.scriptTransformWorker&&this.initReceiverTransform(d,C,c.kind===YA.AUDIO),this.singlePC.enableInsertableStreams&&this.createEncodedStreams(d),S.setInputMediaStreamTrack(c)}createEncodedStreams(A){if(!this.singlePC.insertableStreamsAbortMap.has(A)){let e=A.createEncodedStreams(),o=new AbortController,a={abortController:o,enqueue:c=>{var d,C,y;let S=(d=this.singlePC)==null?void 0:d.receiverRemoteTrackMap.get(A);return S&&(S.kind!=="video"||(C=this.singlePC)!=null&&C.isUsingH264||(y=this.singlePC)!=null&&y.isUsingH265)?S.decodeFrame(c):c}};e.readable.pipeThrough(new TransformStream({transform:(c,d)=>{let C=a.enqueue(c);C&&d.enqueue(C)}})).pipeTo(e.writable,o).catch(c=>{c!=="destroy"&&this._log.warn(c)}),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 KA(this,null,function*(){var o,a;try{let c=!0;if(this._log.info("subscribe ".concat(e," ").concat(Wz(A))),this.hasSSRC){let y="subscribe_change";Object.values(A).find(S=>S===!0)||(y="unsubscribe"),yield this.sendSubscription(y,A)}else{if(yield this._room.switchRoomSubedReq,(o=this.singlePC)!=null&&o.autoSubscribedUserMap.size){let y=this.singlePC.autoSubscribedUserMap.get(this.userId);if(y){this.singlePC.autoSubscribedUserMap.delete(this.userId);let S=(a=this.singlePC.autoSubscribedSsrcGroups.get(this._room.roomId))==null?void 0:a[y.groupIndex];S&&(this.ssrc={audio:S.audioSsrc,video:S.bigVideoSsrc,videoRtx:S.bigVideoRtxSsrc,auxiliary:S.auxVideoSsrc,auxiliaryRtx:S.auxVideoRtxSsrc},c=!1)}}yield this.doSubscribe(A,c),this.checkTrackEnded(A)}let{user:d,mediaTrack:C}=this.remoteVideoTrack;A.smallVideo&&C?(ti.addSuccessEvent({key:524702}),this._blackSmallVideoDetectionId=XM.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,d),ti.addFailedEvent({key:524702}),XM.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0}})):(XM.stop(this._blackSmallVideoDetectionId),this._blackSmallVideoDetectionId=void 0)}catch(c){throw this._room.isJoined&&this.isStreamUnpublished(e)?(this._log.warn("".concat(c.message," ").concat(JSON.stringify(this.muteState))),new ri({code:Et.REMOTE_STREAM_NOT_EXIST,message:"remote user ".concat(this.userId," unpublished stream")})):c}})}checkTrackEnded(A){var e,o,a;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&&((a=this.remoteAuxiliaryTrack.mediaTrack)==null?void 0:a.readyState)==="ended")&&this.singlePC&&!this.singlePC.isReconnecting){if(this._log.warn("remote track ended start spc reconnect"),cE&&id<92)return;this.singlePC.startReconnection()}}unsubscribe(A){return KA(this,arguments,function(e){var o=this;let{remoteTracks:a,streamType:c}=e;return function*(){var d;if(c==="main"&&!o.isMainStreamSubscribed||c==="auxiliary"&&!o.isAuxStreamSubscribed)return void o._log.info("".concat(c," stream already unsubscribed"));let C=mi({},o.subscribeState);a.forEach(S=>{switch(S.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 y="subscribe_change";Object.values(C).find(S=>S===!0)||(y="unsubscribe"),o._log.info("".concat(y==="unsubscribe"?y:"subscribe"," ").concat(c," [").concat(Wz(C),"]")),y==="unsubscribe"&&((d=o.singlePC)==null||d.removeDownlinkQueue.add(o.tinyId)),yield o.sendSubscription(y,C),c==="main"&&(XM.stop(o._blackSmallVideoDetectionId),o._blackSmallVideoDetectionId=void 0),y==="unsubscribe"&&(yield o.removeDownlink())}()})}subscribeDataChannel(){return KA(this,null,function*(){if(!this.singlePC)return;yield this.singlePC.waitForPeerConnectionConnected();let A=Qo(mi({},this.subscribeState),{datachannel:!0});yield this.doSubscribe(A)})}unsubscribeDataChannel(){return KA(this,null,function*(){let A=Qo(mi({},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},a=dj,c=ls.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},a=Cj,c=ls.SUBSCRIBE_CHANGE_RESULT),this._signalChannel.sendWaitForResponseWithRetry({command:a,data:o,responseCommand:c,timeout:1e4,retries:3}).then(d=>{let{data:C}=d;if(C.code!==0){let y=new ri({code:C.code,message:Xo({key:Mo.ERROR_MESSAGE,data:{type:A,message:C.message}})});throw this._log.error(y),y}})}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 KA(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 KA(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 a,c;if(A.singlePC){A.singlePC.addDownlinkQueue.add(A.tinyId),yield A.singlePC.waitForPeerConnectionConnected();try{if(o||!A.hasSSRC){let d={audioSsrc:tB(),bigVideoSsrc:tB(),bigVideoRtxSsrc:tB(),auxVideoSsrc:tB(),auxVideoRtxSsrc:tB()},{audioSsrc:C,bigVideoSsrc:y,bigVideoRtxSsrc:S,auxVideoSsrc:k,auxVideoRtxSsrc:V}=d;A.ssrc={audio:C,video:y,videoRtx:S,auxiliary:k,auxiliaryRtx:V},A.singlePC.addDownlinkQueue.delete(A.tinyId),yield A.singlePC.addDownlink({userId:A.userId,tinyId:A.tinyId,ssrc:A.ssrc,prevMids:A._prevMids});try{let J=yield A._signalChannel.sendWaitForResponseWithRetry({command:Mz,responseCommand:ls.SPC_SUBSCRIBE_RESULT,data:{srcUserId:A.userId,srcTinyId:A.tinyId,audio:e.audio,bigVideo:e.video,auxVideo:e.auxiliary,smallVideo:e.smallVideo,customData:(a=e.datachannel)!=null&&a,ssrc:d},retries:3,retryTimeout:0});if(J.data.code!==0&&J.data.code!==-10036)throw new ri({code:J.data.code,message:J.data.message});A.isDataChannelSubscribed=(c=e.datachannel)!=null&&c}catch(J){throw yield A.removeDownlink(),J}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)&&uQ){let{main:d,aux:C}=A._room.jitterBufferDelay||{},{jitterDelay:y=d,jitterDelayAux:S=C}=A._room.scheduleResult.config||{};(bn(y)||bn(S))&&A.setJitterBufferDelay({mainDelay:y,auxDelay:S})}}}}()})}removeDownlink(){return KA(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(!uQ||!this.singlePC||!this._peerConnection||Ad(e)&&Ad(o))return Promise.resolve();this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(o));let a=this.singlePC.getReceiversByUserId(this.userId);return bn(e)&&(this.remoteAudioTrack.jitterBufferDelay=e,this.remoteVideoTrack.jitterBufferDelay=e),bn(o)&&(this.remoteAuxiliaryTrack.jitterBufferDelay=o,Ad(e)&&(this.remoteAudioTrack.jitterBufferDelay=o)),new Promise(c=>{this._jitterBufferResolve=c,this.doSetJitterBufferDelay({mainDelay:e,auxDelay:o,receivers:a,resolve:c})})}doSetJitterBufferDelay(A){let{mainDelay:e,auxDelay:o,receivers:a,resolve:c}=A;try{if(e===0&&o===0)return a.forEach(d=>d.jitterBufferTarget=0),this._jitterBufferResolve=void 0,c();if(a.forEach(d=>{var C;let y=d.track===this.remoteAuxiliaryTrack.outMediaTrack||Ad(e)&&d.track===this.remoteAudioTrack.outMediaTrack;if(y&&Ad(o)||!y&&Ad(e))return;let S=y?o||0:e,k=(d.jitterBufferTarget||0)+100;k>S||(d.jitterBufferTarget=k,this._log.debug("set ".concat(y?"aux ":"").concat((C=d?.track)==null?void 0:C.kind," jitterBuffer delay ").concat(k," -> ").concat(S)))}),!a.find(d=>{let C=d.track===this.remoteAuxiliaryTrack.outMediaTrack?o||0:e;return d.jitterBufferTarget<C}))return this._log.info("set jitterBuffer main: ".concat(e," aux: ").concat(o," done")),this._jitterBufferResolve=void 0,c();this.jitterBufferTimeoutId=setTimeout(()=>{this.doSetJitterBufferDelay({mainDelay:e,auxDelay:o,receivers:a,resolve:c})},1e3)}catch(d){this._log.warn("set jitterBuffer delay error: ".concat(d)),clearTimeout(this.jitterBufferTimeoutId),this._jitterBufferResolve=void 0,c()}}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()}};Ci([zk(),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return new Promise((c,d)=>{let C=y=>{this.off("closed",C),d(new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.CONNECTION_ABORTED,data:y})}))};this.on("closed",C),A.apply(this,o).then(c,d).finally(()=>{this.off("closed",C)})})})],v1.prototype,"subscribe"),Ci([zk()],v1.prototype,"unsubscribe"),Ci([py(()=>"jitter")],v1.prototype,"setJitterBufferDelay");var GoA=v1,boA=gc(Kl()),zz=class L9 extends boA.EventEmitter{constructor(e,o){super(),this.room=e,this.signalChannel=o,Y(this,"log"),Y(this,"cmdIdSeqMap",new Map),Y(this,"messageMap",new Map),this.log=QA.createLogger({parent:e.getLogger(),id:"cmm",userId:e.userId}),this.onReceiveMsg=this.onReceiveMsg.bind(this),o.on(ls.RECEIVE_CUSTOM_MSG,this.onReceiveMsg),this.room.on("peer-leave",a=>{let{userId:c}=a;[...this.messageMap.keys()].forEach(d=>{d.split("_").slice(0,-1).join("_")===c&&this.messageMap.delete(d)})})}send(e){let{cmdId:o,data:a}=e,c=this.cmdIdSeqMap.get(o)||Math.floor(16383*Math.random()),d={cmdId:o,msg:btoa(String.fromCharCode(...new Uint8Array(a))),ordered:!0,reliable:!0,streamSeq:c};this.cmdIdSeqMap.set(o,c+1),this.signalChannel.send(AoA,d),this.log.debug("send custom msg: ".concat(JSON.stringify(d)))}onReceiveMsg(e){let{data:o}=e.data,a=this.room.tinyIdToUserIdMap.get(o.srcTinyId);if(a){let c={userId:a,cmdId:o.cmdId,seq:o.streamSeq,data:Uint8Array.from(atob(o.msg),d=>d.charCodeAt(0)).buffer};if(o.ordered){let d="".concat(a,"_").concat(c.cmdId),C=this.messageMap.get(d);if(C&&C.lastSeq!==0)if(Math.abs(C.lastSeq-c.seq)>L9.SEQ_INTERVAL)this.messageMap.set(d,{lastSeq:c.seq,cachedMessageMap:new Map}),this.emitMessage(c);else if(c.seq>C.lastSeq){if(c.seq===C.lastSeq+1)this.emitMessage(c);else if(!C.cachedMessageMap.has(c.seq)){let y=setTimeout(()=>this.emitMessage(c,!0),5e3);C.cachedMessageMap.set(c.seq,{message:c,timeoutId:y})}}else this.log.debug("drop message ".concat(c.userId,"-").concat(c.cmdId,"-").concat(c.seq));else C||(C={lastSeq:0,cachedMessageMap:new Map},this.messageMap.set(d,C),setTimeout(()=>this.emitMessage(c,!0),100)),C.cachedMessageMap.set(c.seq,{message:c})}else this.emit("message",c)}else{this.log.warn("receive msg from unknown user, wait peer-join tinyId: ".concat(o.srcTinyId));let c=d=>{d.tinyId===o.srcTinyId&&(this.room.off("peer-join",c),this.onReceiveMsg(e))};this.room.on("peer-join",c),LC(2e3).then(()=>this.room.off("peer-join",c))}}emitMessage(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];var a;let c=this.messageMap.get("".concat(e.userId,"_").concat(e.cmdId)),d=e;if(c){if(o){let y=[...c.cachedMessageMap.values()].sort((S,k)=>S.message.seq-k.message.seq);y[0]&&(d=y[0].message)}c.lastSeq!==0&&d.seq-c.lastSeq>1&&this.log.debug("msg lost userId: ".concat(d.userId," seq: ").concat(c.lastSeq," -> ").concat(d.seq)),c.lastSeq=d.seq,clearTimeout((a=c.cachedMessageMap.get(d.seq))==null?void 0:a.timeoutId),c.cachedMessageMap.delete(d.seq)}this.log.debug("receive custom msg: ".concat(JSON.stringify(d))),this.emit("message",d);let C=c?.cachedMessageMap.get(d.seq+1);C&&this.emitMessage(C.message)}};Y(zz,"SEQ_INTERVAL",300);var koA=zz,{isString:Zz,isUndefined:$M,getNetworkType:LoA,isEmpty:UoA}=Hd,wy=class extends foA{constructor(A){super(A),Y(this,"_businessInfo"),Y(this,"userManager"),Y(this,"_version"),Y(this,"_heartbeat",-1),Y(this,"_lastHeartBeatTime",-1),Y(this,"_stats"),Y(this,"_joinTimeout",-1),Y(this,"_firstPublishedList",null),Y(this,"_joinReject",null),Y(this,"_isRelayChanged",!1),Y(this,"sdpSemantics"),Y(this,"signalChannel",null),Y(this,"uplinkConnection",null),Y(this,"singlePC",null),Y(this,"enableSPC",NM),Y(this,"_changeBigSmallRecords",new Map),Y(this,"networkQuality"),Y(this,"_iceTransportPolicy"),Y(this,"forceRelay",!1),Y(this,"_turnServers",[]),Y(this,"_iceServersFromJoin"),Y(this,"_syncUserListInterval",-1),Y(this,"_smallStreamConfig",{bitrate:100,frameRate:15,height:120,width:160}),Y(this,"enableSEI",!1),Y(this,"_enableAudioVolumeEvaluation",!1),Y(this,"_audioVolumeIntervalId",0),Y(this,"_enableMultiAuxStream",!1),Y(this,"_pureAudioPushMode",!1),Y(this,"_customMessageManager"),Y(this,"_enableDataChannel",!1),Y(this,"preferHW",!1),Y(this,"healthDetector"),Y(this,"playoutDelay"),Y(this,"jitterBufferDelay"),Y(this,"_updateAudioLevelTaskId",-1),Y(this,"switchRoomSubedReq"),Y(this,"resolveSwitchRoomSubedReq"),Y(this,"enableVolumeControlInIOS"),Y(this,"capturedLocalMainAudioTrack"),Y(this,"capturedLocalMainVideoTrack"),Y(this,"capturedLocalAuxVideoTrack"),Y(this,"PRELINK_EXPIRED_TIME",3e5),Y(this,"PRELINK_TIMEOUT",1e4),Y(this,"prelinkTimeoutId",null),Y(this,"firewallDetector"),this.firewallDetector=new oiA,this.firewallDetector.on("firewall-restriction",()=>{this._log.warn("firewall restriction"),this.emit("firewall-restriction")}),this._stats=new roA(this,this._log),this.userManager=new tiA(this.userId,this._log),this._version=qd,this.sdpSemantics=a0,$M(A.sdpSemantics)?ie.isUnifiedPlanDefault()&&(this.sdpSemantics=WS):this.sdpSemantics=A.sdpSemantics,this._log.info("sdpSemantics: ".concat(this.sdpSemantics,", netType: ").concat(LoA())),A.iceTransportPolicy&&(this._iceTransportPolicy=A.iceTransportPolicy),this._enableMultiAuxStream=!$M(A.enableMultiAuxStream)&&A.enableMultiAuxStream,this.enableSEI=A.enableSEI&&NM,!$M(A.enableSPC)&&NM&&(this.enableSPC=A.enableSPC),this.preferHW=!!A.preferHW,this.enableVolumeControlInIOS=A.enableVolumeControlInIOS,this._initBusinessInfo(A),this.healthDetector=new RoA(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 KA(this,null,function*(){return this.userManager.mySelfId=this.userId,this.userManager.on("1",a=>{this.emit("peer-join",a)}),this.userManager.on("8",a=>{this.emit("asr-robot-peer-join",a)}),this.userManager.on("9",a=>{this.emit("asr-robot-peer-leave",a)}),this.userManager.on("2",a=>{let{userId:c,reason:d}=a;this.closeDownLinkConnection(c,"remote user exitRoom"),this.emit("peer-leave",{userId:c,reason:d})}),this.userManager.on("3",this.createDownlinkConnection,this),this.userManager.on("5",this.closeDownLinkConnection,this),this.userManager.on("6",a=>{var c=mx(a,[]);F.emit(sA.REMOTE_PUBLISH_STATE_CHANGED,mi({room:this},c)),this.emit("remote-publish-state-changed",mi({},c))}),this.joinParams=A,Tr(A.enableDataChannel)&&(this._enableDataChannel=A.enableDataChannel),new Promise((a,c)=>KA(this,null,function*(){var d,C;this._joinReject=c;try{this.checkDestroy();try{yield Promise.all([this.initialize(),this.initSinglePC()])}catch(S){if(!(S instanceof ri&&S.code===Et.SPC_INITIALIZED_FAILED))return c(S);(d=this.signalChannel)==null||d.destroy(),yield this.initialize()}let y=ko();yield this.doJoin(A,(C=this.singlePC)==null?void 0:C.clientAbility),ti.addSuccessEvent({key:521708,cost:ko()-y}),a(),this._firstPublishedList&&this.onPublishedUserList({data:{userList:this._firstPublishedList}})}catch(y){ti.addFailedEvent({key:521708,error:y}),c(y)}this._joinReject=null}))})}initSinglePC(){return KA(this,null,function*(){if(this.enableSPC&&!this.singlePC){this.singlePC=new Ry({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 ri({code:Et.SPC_INITIALIZED_FAILED,message:A?.message})}}})}doJoin(A,e){return new Promise((o,a)=>KA(this,null,function*(){var c,d,C,y,S,k,V,J;A.privateMapKey&&(this.privateMapKey=A.privateMapKey),A.latencyLevel&&(this.latencyLevel=A.latencyLevel),this.signalChannel.once(B1,MA=>{this.clearJoinTimeout(),F.emit(sA.JOIN_SIGNAL_CONNECTION_END,{room:this,error:MA}),a(MA)}),Tr((d=(c=this.scheduleResult)==null?void 0:c.config)==null?void 0:d.singlePC)&&NM&&(this.enableSPC=this.scheduleResult.config.singlePC),this.keyPointManager.setConnectionType(this.singlePC?1:2),(!((y=(C=this.scheduleResult)==null?void 0:C.config)!=null&&y.jitterDelay)&&!((k=(S=this.scheduleResult)==null?void 0:S.config)!=null&&k.jitterDelayAux)||!uQ)&&e&&this.playoutDelay&&(this._log.info("set playoutDelay",JSON.stringify(this.playoutDelay)),e.playoutDelay=this.playoutDelay);let gA={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:Cn(),netType:qf(),bussinessInfo:this._businessInfo,ability:e,sdkType:this._sdkType,userSig:this.userSig,receiveMix:!0,isChorus:!!this.enableChorus,enableNtpAudioFrame:!!this.enableChorus&&z0(),transcription:this._enableDataChannel,downUseVp8:((V=this.scheduleResult.config)==null?void 0:V.downUseVp8)||!1};this._log.debug("join room signal data: ".concat(JSON.stringify(gA)));let CA=5e3;(J=this.scheduleResult.config)!=null&&J.enterRoomTimeout&&this.scheduleResult.config.enterRoomTimeout>=1&&(CA=1e3*this.scheduleResult.config.enterRoomTimeout),this._joinTimeout=window.setTimeout(()=>{a(new ri({code:Et.JOIN_ROOM_FAILED,message:Xo({key:Mo.JOIN_ROOM_TIMEOUT})}))},CA),F.emit(sA.JOIN_SEND_CMD,{room:this}),this.signalChannel.send(this.singlePC?ZiA:LiA,gA),this.signalChannel.once(ls.JOIN_ROOM_RESULT,MA=>KA(this,null,function*(){this.clearJoinTimeout();let{code:Ae,message:Qe,data:Ye,tinyId:ve}=MA.data;F.emit(sA.JOIN_RECEIVED_CMD_RES,{room:this,code:Ae}),Ae===0?(this._log.info("Join room success, start heartbeat"),ve&&(this.tinyId=ve),this.startHeartbeat(),this.syncUserList(),this.startSyncUserListInterval(),this._firstPublishedList=Ye.publishers,this._iceServersFromJoin=Ye.iceServer?[Ye.iceServer]:[],this.singlePC&&this.singlePC.setIceServers(this.getIceServers()).then(()=>{var yi;(yi=this.singlePC)==null||yi.connect(Qo(mi({},Ye.ability),{useVp8:Ye.ability.useVp8||!!A.useVp8,useH265:Ye.ability.useH265&&!!A.useH265})).catch(()=>{})}),o()):(this._log.error("Join room failed result: ".concat(Ae," error: ").concat(Qe)),a(new ri({code:Et.JOIN_ROOM_FAILED,extraCode:Ae,message:Xo({key:Mo.JOIN_ROOM_FAILED,data:{error:Qe,code:Ae}})})))}))}))}reJoin(){return KA(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(Qo(mi({},this.joinParams),{role:this.role==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel}),A),this._log.warn("reJoin success"),sn.logSuccessEvent({userId:this.userId,eventType:Ja.REJOIN}),this.singlePC){let o=a=>{var c;a.state==="CONNECTED"&&((c=this.singlePC)==null||c.off(h_.CONNECTION_STATE_CHANGED,o),this.uplinkConnection instanceof jz&&(this.uplinkConnection.installEvents(),this.uplinkConnection.onSinglePCReconnected()),this.remotePublishedUserMap.forEach(d=>{d.installEvents(),d.onSinglePCReconnected()}))};this.singlePC.on(h_.CONNECTION_STATE_CHANGED,o),this.checkConnectionsToReconnect(),this.uplinkConnection instanceof D1&&!this.uplinkConnection.getIsReconnecting()&&this.uplinkConnection.startReconnection()}}catch(A){this._log.warn("reJoin fail ".concat(A)),this.reset(),sn.logFailedEvent({userId:this.userId,eventType:Ja.REJOIN,error:A}),this.emit("error",new ri({code:Et.JOIN_ROOM_FAILED,message:Xo({key:Mo.REJOIN_ROOM_FAILED,data:{roomId:this.joinParams.roomId}})}))}else this._log.warn("reJoin abort")})}initialize(A){return KA(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 a,{mainUrl:c,backupUrl:d}=this.getSignalChannelUrl(),C=this.signalChannel||function(S){return[...m1.values()].find(V=>V.room.userId===S&&!V.room.isJoined)||null}(this.userId),y=!!(C&&C.isConnected&&C.keepAlive&&C.userId===this.userId);return Array.isArray(this.scheduleResult.domains)&&this.scheduleResult.domains.length>0&&(a=this.scheduleResult.domains[0]),this._log.info("".concat(y?"reuse":"setup"," signal channel")),y?(C.url=c,C.backupUrl=d,C.room.setSignalChannel(null),C.room=this,this.signalChannel=C):(C&&C.close(),this.signalChannel=new vz({sdkAppId:this.sdkAppId,userId:this.userId,userSig:this.userSig,url:c,backupUrl:d,room:this,signalDomainWhenUnifiedProxy:this.proxy_unified?a:void 0,prelink:A?.isPrelink}),this._customMessageManager=new koA(this,this.signalChannel),this._customMessageManager.on("message",S=>{this.emit("custom-message",S)})),this.networkQuality||(this.networkQuality=new Nz({signalChannel:this.signalChannel,room:this}),this.networkQuality.on(Nz.EVENT_NETWORK_QUALITY,S=>{var k;this.emit("network-quality",S),(k=this.singlePC)==null||k.detectTCPAndUDP(S)})),rd(this,this.signalChannel).add(uj,S=>{F.emit(sA.SIGNAL_CONNECTION_STATE_CHANGED,mi({room:this},S)),this.emit("signal-connection-state-changed",S)}).add(GiA,S=>{this.reset(),this.emit("error",S)}).add(ls.PEER_JOIN,S=>{let{srcTinyId:k,userId:V,role:J,fromType:gA}=S.data.data;this.userManager.addUser({userId:V,tinyId:k,role:J,fromType:gA})}).add(ls.PEER_LEAVE,S=>{let{userId:k,reason:V=0}=S.data.data;this.userManager.deleteUser(k,V)}).add(ls.UPDATE_REMOTE_MUTE_STAT,S=>{this._lastHeartBeatTime>0&&Date.now()-this._lastHeartBeatTime>=1e4&&this.doHeartbeat(),this.onPublishedUserList(S.data)}).add(ls.CLIENT_BANNED,S=>{let k=S.data.data,{reason:V}=k;if(sn.uploadEvent({log:"stat-banned:".concat(V),userId:this.userId}),V==="user_time_out")return this._log.warn("".concat(V," last heart beat time: ").concat(this._lastHeartBeatTime," interval: ").concat(Date.now()-this._lastHeartBeatTime,", visibility: ").concat(document.visibilityState)),void this.reJoin();this._log[V==="kick"?"error":"info"]("user was banned because of [".concat(V,"]")),this.reset(),this.emit("banned",{reason:V})}).add(ls.SEND_SWITCH_ROOM_SUBED_REQ,S=>{if(!this.singlePC)return;let{subList:k}=S.data.data;this._log.info("auto subscribe ".concat(zd(k,{keysToInclude:["userId"]}))),k.forEach(V=>{this.singlePC.autoSubscribedUserMap.set(V.userId,V)}),this.resolveSwitchRoomSubedReq()}).add(ls.FALLBACK_CODEC,S=>KA(this,null,function*(){var k,V,J,gA,CA;let MA=S.data.data;((k=MA.videoControlInfo)==null?void 0:k.enableH265Enc)===0&&((V=this.singlePC)==null?void 0:V.videoCodec)==="h265"&&(this._log.warn("fallback codec enableH265Enc: ".concat((J=MA.videoControlInfo)==null?void 0:J.enableH265Enc)),ti.addCount({key:513e3}),yield(gA=this.singlePC)==null?void 0:gA.switchVideoEncoder("h264"),yield(CA=this.uplinkConnection)==null?void 0:CA.sendMediaSettings())})),this.signalChannel.once(Qz,S=>{this.tinyId=S.signalInfo.tinyId,F.emit(sA.JOIN_SIGNAL_CONNECTION_END,{room:this})}),F.emit(sA.JOIN_SIGNAL_CONNECTION_START,{room:this}),yield this.signalChannel.connect(),y&&F.emit(sA.JOIN_SIGNAL_CONNECTION_END,{room:this}),y})}setSignalChannel(A){this.signalChannel=A,A||kn(this)}leave(){return KA(this,null,function*(){var A;try{yield this.doHeartbeat()}catch{}this._log.info("leave() => leaving room"),F.emit(sA.LEAVE_SEND_CMD,{room:this}),(A=this.signalChannel)==null||A.send(UiA),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=Nr.run("ric",this.doHeartbeat.bind(this),{delay:2e3}),this.enableChorus&&this.startUpdateNTPTime())}stopHeartbeat(){this._heartbeat!==-1&&(this._log.info("stopHeartbeat"),Nr.clearTask(this._heartbeat),this._heartbeat=-1,this._lastHeartBeatTime=-1)}doHeartbeat(){return KA(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 a=(A=this.signalChannel)!=null&&A.isConnected?function(d){if(c_.has(d)){let C=c_.get(d).map(y=>({uint32_event_id:y.eventId,uint64_date:y.timestamp,str_userid:y.remoteUserId,uint32_param1:y.param1,uint32_param2:y.param2,uint32_video_stream_type:y.streamType}));return c_.delete(d),C}return[]}(this.userId):[],c=Qo(mi({str_sdk_version:$w,uint64_datetime:new Date().getTime(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyId},msg_event_msg:a,str_acc_ip:this.getSignalInfo().relayIp,str_client_ip:this.getSignalInfo().clientIp},o),{msg_device_info:mi({uint32_terminal_type:15,str_device_name:rQ(),str_os_version:"",uint32_net_type:qf()},o.msg_device_info)});if(this.heartbeatReport=c,this.heartbeatCount++,F.emit(sA.HEARTBEAT_REPORT,{room:this,report:c}),this.signalChannel){if(this.signalChannel.isConnected){this.signalChannel.send(FiA,c);let d=Date.now();this._lastHeartBeatTime>0&&d-this._lastHeartBeatTime>1e4&&this._log.warn("heartbeat took ".concat(d-this._lastHeartBeatTime)),this._lastHeartBeatTime=d,this.signalChannel.isOnline||(this._log.warn("signal channel is not online"),this.signalChannel.startReconnection())}this.emit("heartbeat-report",Qo(mi({},c),{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||[],a=A.data.mixRobotList||[],c=[];for(let C of o){if(C.flag===Db)continue;let{userId:y,srcTinyId:S,flag:k,fromType:V}=C;y===this.userId&&(e=!0,this.uplinkConnection&&(this.uplinkConnection.flag=k),this.localPublishFlag!==k&&(this.localPublishFlag=k,this.emit("local-publish-flag-changed",k))),c.push({userId:y,tinyId:S,flag:k,fromType:V})}let d=[...a.map(C=>{let{userId:y,srcTinyId:S,flag:k,mixUserList:V,fromType:J}=C;return{userId:y,tinyId:S,flag:k,isRobot:!0,mixUserList:V,fromType:J}}),...c];d.forEach(C=>{let{userId:y}=C,S=this.remotePublishedUserMap.get(y);S&&this.checkSubscribeBigSmallVideo(S)}),A.data.fakeMixUser&&(A.data.fakeMixUser.tinyId=A.data.fakeMixUser.srcTinyId,d.push(A.data.fakeMixUser)),F.emit(sA.RECEIVED_PUBLISHED_USER_LIST,{room:this,publishedUserList:d}),e||(this.localPublishFlag=0,this.emit("local-publish-flag-changed",0)),this.userManager.setRemotePublishedUserList(d)}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 D1&&(this.uplinkConnection=null)),this.localTracks.forEach(e=>e.unpublish()),this.localTracks.clear()}createDownlinkConnection(A){let{userId:e,tinyId:o,flag:a,isRobot:c,fromType:d}=A,C=new(this.singlePC?GoA:_z)({userId:e,tinyId:o,room:this,signalChannel:this.signalChannel,enableSEI:this.enableSEI,flag:a,isRobot:c,fromType:d});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 a=o.getCode();a!==Et.ICE_TRANSPORT_ERROR&&(a===Et.DOWNLINK_RECONNECTION_FAILED&&this.closeDownLinkConnection(e),this.emit("error",o))}),A.on("connection-state-changed",o=>{this.emit("media-connection-state-changed",Qo(mi({},o),{userId:A.userId}))})}startSyncUserListInterval(){this._syncUserListInterval===-1&&(this._syncUserListInterval=Nr.run("ric",this.syncUserList.bind(this)))}stopSyncUserListInterval(){Nr.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:jiA,responseCommand:ls.USER_LIST_RES,enableLog:!1,timeout:2e3}).then(e=>{let{data:o}=e,{code:a,message:c}=o;if(a===0)return(o.data&&o.data.userList||[]).map(d=>{let{userId:C,srcTinyId:y,role:S,fromType:k}=d;return{userId:C,tinyId:y,role:S,fromType:k}});throw Xo({key:Mo.SIGNAL_RESPONSE_FAILED,data:{signalResponse:ls.USER_LIST_RES,code:a,message:c}})}):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||!Rz)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)===Co.CLOSED&&!this.singlePC.isReconnecting&&(this._log.warn("spc pc is closed but not reconnect"),this.singlePC.startReconnection()):this.getAllConnections().forEach(e=>{if(e instanceof tm&&!e.getIsReconnecting()){let o=e.getPeerConnection();o&&o.connectionState===Co.CLOSED&&(this._log.warn("[".concat(e.getUserId(),"] pc is closed but not reconnect")),e.startReconnection())}})}fallbackToMPC(){return KA(this,null,function*(){var A;if(this._log.warn("fallback to multi pc"),sn.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 D1({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 _z({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 ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.CLIENT_DESTROYED,data:{funName:"join"}})})),this.clearJoinTimeout(),this.reset()),this.firewallDetector.destroy(),this.removeAllListeners(),this.healthDetector.destroy(),Nr.clearTask(this._audioVolumeIntervalId))}switchRole(A){return KA(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:WiA,data:{role:A==="anchor"?20:21,privateMapKey:this.privateMapKey,latencyLevel:this.latencyLevel},responseCommand:ls.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:a,message:c}=o.data;if(a!==0)throw new ri({code:Et.SWITCH_ROLE_FAILED,message:Xo({key:Mo.SWITCH_ROLE_FAILED,data:{message:c,code:a}})});this.role=A}).catch(o=>{throw o instanceof ri&&o.getCode()===Et.API_CALL_TIMEOUT&&(o=new ri({code:Et.SWITCH_ROLE_FAILED,message:Xo({key:Mo.SWITCH_ROLE_TIMEOUT})})),this._log.error(o),o})}subscribeDataChannel(){return KA(this,null,function*(){if(this.remotePublishedUserMap.size===0)return;let A=[...this.remotePublishedUserMap.values()].filter(e=>e.fromType===I0);this._log.info("subscribeDataChannel",A.map(e=>e.userId)),yield Promise.all(A.map(e=>KA(this,null,function*(){try{yield e.subscribe(Qo(mi({},e.subscribeState),{datachannel:!0}),"main")}catch(o){this._log.error("subscribeDataChannel failed:",e.userId,o)}})))})}unsubscribeDataChannel(){return KA(this,null,function*(){if(this.remotePublishedUserMap.size===0)return;let A=[...this.remotePublishedUserMap.values()].filter(e=>e.fromType===I0);this._log.info("unsubscribeDataChannel",A.map(e=>e.userId)),yield Promise.all(A.map(e=>e.unsubscribeDataChannel()))})}_initUplinkConnection(){this.uplinkConnection=this.singlePC?new jz({userId:this.userId,tinyId:this.tinyId,room:this}):new D1({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",Qo(mi({},A),{userId:this.userId}))}),this.uplinkConnection.on("error",A=>{let e=A.getCode();e!==Et.ICE_TRANSPORT_ERROR&&(e===Et.UPLINK_RECONNECTION_FAILED&&this.closeUplink(),this.emit("error",A))})}publish(A){return KA(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 JM?A:null,localVideoTrack:A instanceof dQ?A:null,isAuxiliary:A.streamType==="auxiliary"})})}unpublish(A){return KA(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 JM?A:null,localVideoTrack:A instanceof dQ?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&&N2()?this.uplinkConnection.replaceTrack(A).then(e=>{e&&F.emit(sA.LOCAL_TRACK_REPLACED,{track:A})}):Promise.resolve()}setBandWidth(A){return KA(this,null,function*(){this.uplinkConnection&&(yield this.uplinkConnection.setBandwidth(A),yield this.uplinkConnection.sendMediaSettings())})}enableSmall(A){return KA(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainVideoTrack)return Promise.resolve();A&&this.uplinkConnection.localMainVideoTrack.small&&(yield this.setBandWidth({type:YA.VIDEO,videoType:YA.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 KA(this,null,function*(){if(e=e.filter(C=>!C.isSubscribed),e.length===0)return;let{userId:a}=e[0],c=this.remotePublishedUserMap.get(a);if(!c)return;let d=e.find(C=>C.mediaType===2)?"auxiliary":"main";try{let C=mi({},c.subscribeState);e.forEach(S=>{switch(S.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 y=this._changeBigSmallRecords.get(a);y&&y.options.smallVideo&&c.muteState.hasSmall&&C.video&&(C.video=!1,C.smallVideo=!0),F.emit(sA.SUBSCRIBE_START,{room:this,streamType:d,remotePublishedUser:c,subscribeState:C}),this._log.info("subscribe() => ".concat(a," ").concat(d," ").concat(e.map(S=>S.strMediaType).join(",")," [").concat(Bj(C),"] prev: [").concat(Bj(c.subscribeState),"]")),yield c.subscribe(C,d),this._log.info("subscribe ".concat(a," ").concat(d," done"));for(let S of e)S.mediaTrack||(yield S.waitHasMediaTrack());F.emit(sA.SUBSCRIBE_SUCCESS,{room:this,streamType:d,remotePublishedUser:c})}catch(C){let y=C instanceof ri?C.getCode():Et.UNKNOWN,S=C;throw C instanceof ri?y===Et.REMOTE_STREAM_NOT_EXIST&&(S=new ri({code:Et.API_CALL_ABORTED,message:Xo({key:Mo.API_CALL_ABORTED,data:{message:C.message,userId:a,streamType:d}})}),this._log.warn(S)):(S=new ri({code:y,message:Xo({key:Mo.SUBSCRIBE_FAILED,data:{message:C.message,userId:a,streamType:d}})}),this._log.error(S)),S}})}unsubscribe(){for(var A=arguments.length,e=new Array(A),o=0;o<A;o++)e[o]=arguments[o];return KA(this,null,function*(){let{userId:a}=e[0],c=this.remotePublishedUserMap.get(a);if(!c)return;let d=e.find(C=>C.mediaType===2)?"auxiliary":"main";this._log.info("unsubscribe() => ".concat(a," ").concat(d," ").concat(e.map(C=>C.strMediaType).join(",")));try{yield c.unsubscribe({remoteTracks:e,streamType:d})}catch(C){this._log.warn("unsubscribe() => failed ".concat(C))}e.forEach(C=>{C.unsubscribe(),C.mediaType===8&&C.setMediaType(4)}),F.emit(sA.UNSUBSCRIBE_SUCCESS,{room:this,streamType:d,remotePublishedUser:c})})}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 Nr.clearTask(this._audioVolumeIntervalId);A=Math.floor(Math.max(A,100)),F.emit(sA.AUDIO_LEVEL_INTERVAL,{interval:A}),this._audioVolumeIntervalId&&Nr.clearTask(this._audioVolumeIntervalId),this._enableAudioVolumeEvaluation=!0,this._audioVolumeIntervalId=Nr.run("intervalInWorker",()=>{var o;V2.isRunning?this.stopUpdateAudioLevelFromSenderStat():this.updateAudioLevelFromSenderStat(A,e);let a=[];(o=this.remotePublishedUserMap)==null||o.forEach(c=>{if(c.muteState.hasAudio){!V2.isRunning&&c.muteState.audioAvailable&&c.remoteAudioTrack.isSubscribed?this.updateDownlinkAudioLevelFromReceiver(c):c.remoteAudioTrack.volume=0;let d=Math.floor(100*c.remoteAudioTrack.getAudioLevel());a.push({userId:c.userId,volume:d,floatVolume:c.remoteAudioTrack.getInternalAudioLevel()})}}),this.emit("audio-volume",a)},{delay:A,backgroundTask:e})}updateAudioLevelFromSenderStat(A,e){return KA(this,null,function*(){var o;if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack||this._updateAudioLevelTaskId!==-1)return;let a=(o=this.uplinkConnection.getPeerConnection())==null?void 0:o.getSenders()[0];if(!a)return;let c=Math.max(A,500);this._log.warn("updateAudioLevelFromSenderStat ".concat(c)),this._updateAudioLevelTaskId=Nr.run("intervalInWorker",()=>KA(this,null,function*(){if(!this.uplinkConnection||!this.uplinkConnection.localMainAudioTrack)return void this.stopUpdateAudioLevelFromSenderStat();let d=yield a.getStats();if(this._updateAudioLevelTaskId<0)return;let{localMainAudioTrack:C}=this.uplinkConnection;d.forEach(y=>{y.type==="media-source"&&y.audioLevel&&(C.volume=y.audioLevel)})}),{delay:c,backgroundTask:e})})}stopUpdateAudioLevelFromSenderStat(){var A;this._updateAudioLevelTaskId!==-1&&(this._log.warn("stopUpdateAudioLevelFromSenderStat"),Nr.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(!Uk||!o)return;let a=(e=o.getSynchronizationSources()[0])==null?void 0:e.audioLevel;bn(a)?A.remoteAudioTrack.volume=Math.min(2*a,1):o.getStats().then(c=>{c.forEach(d=>{d.type==="inbound-rtp"&&bn(d.audioLevel)&&(A.remoteAudioTrack.volume=d.audioLevel)})})}getLocalAudioStats(){return KA(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 KA(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 KA(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 KA(this,null,function*(){let e={};for(let[o,a]of this.remotePublishedUserMap)A==="main"&&a.muteState.hasVideo&&(e[o]=a.remoteVideoTrack.stat),A==="auxiliary"&&a.muteState.hasAuxiliary&&(e[o]=a.remoteAuxiliaryTrack.stat);return e})}getRemoteAudioStats(){return KA(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(a=>o.push(Hd.getTurnServer(a))):Hd.isPlainObject(A)&&o.push(Hd.getTurnServer(A)),this._turnServers=o,e&&(this._iceTransportPolicy=e)}sendStartMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:ViA,data:A,timeout:5e3,responseCommand:ls.START_MIX_TRANSCODE_RES,commandDesc:"startMixTranscode"}).catch(e=>{if(e.code!==Et.API_CALL_ABORTED)throw e})}sendStopMixTranscode(A){return this.signalChannel.sendWaitForResponse({command:JiA,data:A,timeout:5e3,responseCommand:ls.STOP_MIX_TRANSCODE_RES,commandDesc:"stopMixTranscode"}).catch(e=>{if(e.code!==Et.API_CALL_ABORTED)throw e})}sendStartPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?OiA:xiA,data:A,timeout:5e3,responseCommand:e?ls.START_PUBLISH_TENCENT_CDN_RES:ls.START_PUBLISH_GIVEN_CDN_RES,commandDesc:"startPublishCDN"}).catch(o=>{if(o.code!==Et.API_CALL_ABORTED)throw o})}sendStopPublishCDN(A){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.signalChannel.sendWaitForResponse({command:e?PiA:YiA,data:A,timeout:5e3,responseCommand:e?ls.STOP_PUBLISH_TENCENT_CDN_RES:ls.STOP_PUBLISH_GIVEN_CDN_RES,commandDesc:"stopPublishCDN"}).catch(o=>{if(o.code!==Et.API_CALL_ABORTED)throw o})}sendStartPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:HiA,data:A,timeout:5e3,responseCommand:ls.START_PUBLISH_CDN_STREAM_RES,commandDesc:"startPublishCDNStream"}).catch(e=>{if(e.code!==Et.API_CALL_ABORTED)throw e})}sendUpdatePushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:qiA,data:A,timeout:5e3,responseCommand:ls.UPDATE_PUBLISH_CDN_STREAM_RES,commandDesc:"updatePublishCDNStream"}).catch(e=>{if(e.code!==Et.API_CALL_ABORTED)throw e})}sendStopPushStreamToRoom(A){return this.signalChannel.sendWaitForResponse({command:KiA,data:A,timeout:5e3,responseCommand:ls.STOP_PUBLISH_CDN_STREAM_RES,commandDesc:"stopPublishCDNStream"}).catch(e=>{if(e.code!==Et.API_CALL_ABORTED)throw e})}sendAbilityStatus(A){var e;(e=this.signalChannel)==null||e.sendWaitForResponse({command:XiA,data:A,timeout:5e3,responseCommand:ls.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=Hd.getEnv();return e?(A.mainUrl="wss://".concat(Hd.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,a,c,d){return KA(this,null,function*(){var C;if(this.isJoined)throw new ri({code:Et.INVALID_OPERATION,message:"already joined room"});if(!c&&!d)throw new ri({code:Et.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(c||d),this.useStringRoomId=!(!d||c),this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.prelinkPromise=Promise.race([this.doPrelink(A,e,o,a,c,d),new Promise((y,S)=>{this.prelinkTimeoutId=setTimeout(()=>{S(new ri({code:Et.INVALID_OPERATION,message:"prelink timeout after ".concat(this.PRELINK_TIMEOUT,"ms")}))},this.PRELINK_TIMEOUT)})]).then(()=>{this.clearPrelinkTimeout()}).catch(y=>{throw this.clearPrelinkTimeout(),this.closePrelink().catch(()=>{}),y}),this.prelinkPromise})}doPrelink(A,e,o,a,c,d){return KA(this,null,function*(){var C,y,S;try{if(!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Hd.getEnv()&&(yield this.schedule({sdkAppId:A,userId:e,userSig:o,roomId:c,strRoomId:d,role:20,privateMapKey:null,businessInfo:null,streamId:null,userDefineRecordId:null},a)),(C=this.scheduleResult.config)==null||!C.prelink)throw new ri({code:Et.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}),(y=this.signalChannel)==null||y.markPrelinkConnected({sdkAppId:A,userId:e,userSig:o}),(S=this.signalChannel)==null||S.stopPrelinkIn(this.PRELINK_EXPIRED_TIME/1e3),this._log.info("prelink success")}catch(k){throw this._log.error("prelink failed",k),k}})}clearPrelinkTimeout(){this.prelinkTimeoutId&&(clearTimeout(this.prelinkTimeoutId),this.prelinkTimeoutId=null)}closePrelink(){return KA(this,null,function*(){var A;if(this.isJoined)throw new ri({code:Et.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 KA(this,null,function*(){let{subscribeState:e,userId:o,muteState:{hasSmall:a,hasVideo:c}}=A;if(!a&&!c||!e.video&&!e.smallVideo)return;let d=this._changeBigSmallRecords.get(o);if(!d||d.isSubscribing||d.reSubscribeCount<=0)return;let{options:C,reSubscribeCount:y}=d;if(C.video&&e.video||C.smallVideo&&e.smallVideo&&a)return;let S={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(!a&&S.smallVideo&&(S.video=!0,S.smallVideo=!1),S.smallVideo===e.smallVideo&&S.video===e.video)return;d.isSubscribing=!0,d.reSubscribeCount=y-1,yield A.subscribe(S,"main"),A.remoteVideoTrack.setMediaType(S.smallVideo?8:4),this._log.info("change [".concat(o,"] to ").concat(S.smallVideo?"small":"big"," video successfully. count ").concat(ZS-d.reSubscribeCount,".")),d.isSubscribing=!1,d.reSubscribeCount=ZS}catch(k){this._log.info("change [".concat(o,"] to ").concat(S.smallVideo?"small":"big"," video failed. count ").concat(ZS-d.reSubscribeCount,". reason: ").concat(k)),d.isSubscribing=!1,d.reSubscribeCount===0&&this._changeBigSmallRecords.delete(o)}})}changeType(A,e){let o={options:{video:!A,smallVideo:A},isSubscribing:!1,reSubscribeCount:ZS};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 a=this.remotePublishedUserMap.get(e.userId);a&&this.checkSubscribeBigSmallVideo(a)}get smallStreamConfig(){return this._smallStreamConfig}_initBusinessInfo(A){this._businessInfo=A.businessInfo;let e={};if(Zz(A.businessInfo)&&(e=JSON.parse(A.businessInfo)),!$M(A.pureAudioPushMode)){if(!Number.isInteger(Number(A.pureAudioPushMode)))throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.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(!$M(A.userDefineRecordId)){let o=/^[A-Za-z0-9_-]{1,64}$/gi;if(A.userDefineRecordId.match(o)===null)throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_USER_DEFINE_RECORDID})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_record_id=A.userDefineRecordId}if(!$M(A.userDefinePushArgs)){if(!(Zz(A.userDefinePushArgs)&&String(A.userDefinePushArgs)&&String(A.userDefinePushArgs).length<=256))throw new ri({code:Et.INVALID_PARAMETER,message:Xo({key:Mo.INVALID_USER_DEFINE_PUSH_ARGS})});e.Str_uc_params||(e.Str_uc_params={}),e.Str_uc_params.userdefine_push_args=A.userDefinePushArgs}UoA(e)||(this._businessInfo=JSON.stringify(e))}sendCustomMessage(A){var e;(e=this._customMessageManager)==null||e.send(A)}enableInsertableStreams(){return KA(this,null,function*(){if(this.singlePC&&!this.singlePC.enableInsertableStreams&&Kp)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 ri({code:Et.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 KA(this,null,function*(){var e;if(!this.signalChannel||!this.singlePC)return;let{roomId:o,strRoomId:a,userSig:c,privateMapKey:d}=A,C=((e=this.scheduleResult.config)==null?void 0:e.autoSubscribeCount)||A?.autoSubscribeCount||1,y=String(this.useStringRoomId?a:o),S=[];for(let gA=0;gA<C;gA++)S.push({audioSsrc:tB(),bigVideoSsrc:tB(),bigVideoRtxSsrc:tB(),auxVideoSsrc:tB(),auxVideoRtxSsrc:tB()});let k={currRoomId:this.roomId,targetRoomId:y,useStringRoomId:this.useStringRoomId,ability:this.singlePC.clientAbility,userSig:c,privateMapKey:d??this.privateMapKey,subscribe:S};this.singlePC.autoSubscribedUserMap.clear(),this.singlePC.autoSubscribedSsrcGroups.clear(),this.singlePC.autoSubscribedSsrcGroups.set(y,S);let V,J=this.roomId;this.roomId=this.useStringRoomId?a:String(o),this.switchRoomSubedReq=new Promise(gA=>{this.resolveSwitchRoomSubedReq=gA,LC(5e3).then(gA)}),F.emit(sA.SWITCH_ROOM_START,{room:this}),yield this.singlePC.waitForPeerConnectionConnected();try{this.userManager.clear(),V=yield this.signalChannel.sendWaitForResponse({command:eoA,responseCommand:ls.SEND_SWITCH_ROOM_RES,data:k});let{code:gA,message:CA}=V.data;if(gA!==0){this._log.error("switch room failed. result: ".concat(gA," error: ").concat(CA));let MA=new ri({code:Et.SWITCH_ROOM_FAILED,extraCode:gA,message:CA});throw F.emit(sA.SWITCH_ROOM_FAILED,{room:this,error:MA}),MA}this.userSig=c,$M(d)||(this.privateMapKey=d),F.emit(sA.SWITCH_ROOM_SUCCESS,{room:this,currentRoomId:J,targetRoomId:y})}catch(gA){throw this.singlePC.autoSubscribedSsrcGroups.clear(),this.roomId=J,this.resolveSwitchRoomSubedReq(),gA}})}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 a=e[0].offset,c=e[0].offset;e.forEach(y=>{a=Math.min(y.offset,a),c=Math.max(y.offset,c)});let d=Math.floor(e.reduce((y,S)=>y+S.rtt,0)/e.length),C=Math.floor(e.reduce((y,S)=>y+S.offset,0)/e.length);(c-a>30||d>50)&&setTimeout(()=>this.startUpdateNTPTime(),5e3),KB(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:toA,responseCommand:ls.UPDATE_NETWORK_TIME_RESULT,addReceiveTime:!0,data:{clientSendTime:String(A)},enableLog:!1}).then(e=>{let o=Number(e.data.data.serverSendTime),a=Number(e.data.data.serverRecvTime),c=e.data.receiveTime||Date.now();return{rtt:c-A-(a-o),offset:(a-A+(o-c))/2}})}};return Ci([lc(["left",Zs.INIT],"joined"),$h({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"),hQ(!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())}}),jr(A=>{let e=new _iA;return function(o,a,c){return KA(this,null,function*(){let d=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=a,o.privateMapKey=o.privateMapKey||"",this.isJoined)throw new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.INVALID_JOIN})});if(this.checkDestroy(),e.isJoined({userId:this.userId,roomId:d,sdkAppId:this.sdkAppId,room:this}))throw new ri({code:Et.INVALID_OPERATION,message:Xo({key:Mo.REPEAT_JOIN,data:this.userId})});e.add({room:this,roomId:d}),this.role=o.role===21?"audience":"anchor",this._log.info("Join() => joining room: ".concat(d," useStringRoomId: ").concat(this.useStringRoomId," scene: ").concat(this.scene," role: ").concat(this.role)),F.emit(sA.JOIN_START,{room:this,roomId:d,params:o});let C=Hd.getEnv();C||(C=jB.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Uf.OLD_CLOUD_LADDER)?C=jB.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Uf.WEBRTC)&&(C=jB.WEBRTC))),sn.setConfig({env:C,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:d}),ie.checkSystemRequirementsInternal(c).then(y=>{this.checkSystemResult=y,TiA.call(this)});try{!this.prelinkPromise&&!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Hd.getEnv()&&(yield this.schedule(o,c));let y=yield A.call(this,o,a,c);return this.roomId=d,this._joinedTimestamp=Hd.performanceNow(),F.emit(sA.JOIN_SUCCESS,{room:this}),c===30&&!o.component&&sn.uploadEvent({log:"stat-conv-".concat(Number(Op),"-").concat(location.hostname),userId:this.userId}),y}catch(y){throw e.delete({room:this,roomId:d}),F.emit(sA.JOIN_FAILED,{room:this,error:y}),y}})}})],wy.prototype,"join"),Ci([lc("joined","left",{ignoreError:!0,success(){this.reset(!0)}}),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return KA(this,null,function*(){F.emit(sA.LEAVE_START,{room:this}),yield A.call(this,...o),F.emit(sA.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})}),o5("leave room"),i_({fnName:"publish",validateArgs:!1}),i_({fnName:"unsubscribe",validateArgs:!1})],wy.prototype,"leave"),Ci([py(A=>A.mediaType),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];return KA(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(o=o.filter(d=>d.outMediaTrack&&d.state==="ready"),!o.length))return;F.emit("61",{room:this});let c=A.apply(this,o);return Promise.all(o.map(d=>d.publish(this,c)))})}),$h({settings:{retries:xf,timeout:A=>Rp(A)},onError(A,e,o,a){let[c]=a;var d;(d=A.message)!=null&&d.includes("timeout")?(this._log.warn("publish ".concat(c.strMediaType," timeout"),A),e()):(this._log.error("publish ".concat(c.strMediaType," failed: ").concat(A)),o(A),F.emit(sA.PUBLISH_FAILED,{room:this}))}})],wy.prototype,"publish"),Ci([i_({fnName:"publish"}),py(A=>A.mediaType),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];let c=A.apply(this,o);return o.forEach(d=>d.unpublish()),c}),YM(function(){var A,e;this.localTracks.size===0&&LI()&&((e=(A=this.singlePC)==null?void 0:A.getPeerConnection())==null||e.getSenders().forEach(o=>o.track&&o.replaceTrack(null)))})],wy.prototype,"unpublish"),Ci([t5(A=>{if(A.code!==Et.API_CALL_ABORTED)throw A}),py(A=>A.userId)],wy.prototype,"replaceTrack"),Ci([py(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")}),t1(),jr(A=>function(){for(var e=arguments.length,o=new Array(e),a=0;a<e;a++)o[a]=arguments[a];let c=A.apply(this,o);return o.forEach(d=>!d.isSubscribed&&d.subscribe(c)),c}),$h({settings:{retries:xf,timeout:A=>Rp(A)},onError(A,e,o,a){if(A.message.includes("timeout"))this._log.warn("subscribe timeout"),e();else{let c=A?.code===Et.API_CALL_ABORTED;this._log[c?"warn":"error"]("subscribe failed ".concat(a.map(d=>d.strMediaType).join(","),": ").concat(A)),o(A),F.emit(sA.SUBSCRIBE_FAILED,{room:this,remoteTracks:a})}}})],wy.prototype,"subscribe"),Ci([i_({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(a=>{let c=this.remotePublishedUserMap.get(a.userId);c&&!c.isMainStreamSubscribed&&!c.isAuxStreamSubscribed&&c.close("you unsubscribed")})}}),py(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")})],wy.prototype,"unsubscribe"),uL.create=uL._create.bind(uL,wy),xk(30),uL})}(eY)),eY.exports}var _rA=Object.create,cV=Object.defineProperty,U9=Object.getOwnPropertyDescriptor,F9=Object.getOwnPropertyNames,H8=Object.getOwnPropertySymbols,TrA=Object.getPrototypeOf,O9=Object.prototype.hasOwnProperty,NrA=Object.prototype.propertyIsEnumerable,L3=(t,i,r)=>i in t?cV(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,GrA=(t,i)=>{for(var r in i||(i={}))O9.call(i,r)&&L3(t,r,i[r]);if(H8)for(var r of H8(i))NrA.call(i,r)&&L3(t,r,i[r]);return t},brA=(t,i)=>function(){return i||(0,t[F9(t)[0]])((i={exports:{}}).exports,i),i.exports},krA=(t,i,r,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let I of F9(i))O9.call(t,I)||I===r||cV(t,I,{get:()=>i[I],enumerable:!(l=U9(i,I))||l.enumerable});return t},LrA=(t,i,r)=>(r=t!=null?_rA(TrA(t)):{},krA(cV(r,"default",{value:t,enumerable:!0}),t)),U_=(t,i,r,l)=>{for(var I,h=U9(i,r),f=t.length-1;f>=0;f--)(I=t[f])&&(h=I(i,r,h)||h);return h&&cV(i,r,h),h},pn=(t,i,r)=>L3(t,typeof i!="symbol"?i+"":i,r),UrA=brA({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(t,i){var r=Object.prototype.hasOwnProperty,l="~";function I(){}function h(b,U,j){this.fn=b,this.context=U,this.once=j||!1}function f(b,U,j,IA,nA){if(typeof j!="function")throw new TypeError("The listener must be a function");var mA=new h(j,IA||b,nA),lA=l?l+U:U;return b._events[lA]?b._events[lA].fn?b._events[lA]=[b._events[lA],mA]:b._events[lA].push(mA):(b._events[lA]=mA,b._eventsCount++),b}function w(b,U){--b._eventsCount===0?b._events=new I:delete b._events[U]}function _(){this._events=new I,this._eventsCount=0}Object.create&&(I.prototype=Object.create(null),new I().__proto__||(l=!1)),_.prototype.eventNames=function(){var b,U,j=[];if(this._eventsCount===0)return j;for(U in b=this._events)r.call(b,U)&&j.push(l?U.slice(1):U);return Object.getOwnPropertySymbols?j.concat(Object.getOwnPropertySymbols(b)):j},_.prototype.listeners=function(b){var U=l?l+b:b,j=this._events[U];if(!j)return[];if(j.fn)return[j.fn];for(var IA=0,nA=j.length,mA=new Array(nA);IA<nA;IA++)mA[IA]=j[IA].fn;return mA},_.prototype.listenerCount=function(b){var U=l?l+b:b,j=this._events[U];return j?j.fn?1:j.length:0},_.prototype.emit=function(b,U,j,IA,nA,mA){var lA=l?l+b:b;if(!this._events[lA])return!1;var cA,TA,WA=this._events[lA],Ee=arguments.length;if(WA.fn){switch(WA.once&&this.removeListener(b,WA.fn,void 0,!0),Ee){case 1:return WA.fn.call(WA.context),!0;case 2:return WA.fn.call(WA.context,U),!0;case 3:return WA.fn.call(WA.context,U,j),!0;case 4:return WA.fn.call(WA.context,U,j,IA),!0;case 5:return WA.fn.call(WA.context,U,j,IA,nA),!0;case 6:return WA.fn.call(WA.context,U,j,IA,nA,mA),!0}for(TA=1,cA=new Array(Ee-1);TA<Ee;TA++)cA[TA-1]=arguments[TA];WA.fn.apply(WA.context,cA)}else{var de,Pe=WA.length;for(TA=0;TA<Pe;TA++)switch(WA[TA].once&&this.removeListener(b,WA[TA].fn,void 0,!0),Ee){case 1:WA[TA].fn.call(WA[TA].context);break;case 2:WA[TA].fn.call(WA[TA].context,U);break;case 3:WA[TA].fn.call(WA[TA].context,U,j);break;case 4:WA[TA].fn.call(WA[TA].context,U,j,IA);break;default:if(!cA)for(de=1,cA=new Array(Ee-1);de<Ee;de++)cA[de-1]=arguments[de];WA[TA].fn.apply(WA[TA].context,cA)}}return!0},_.prototype.on=function(b,U,j){return f(this,b,U,j,!1)},_.prototype.once=function(b,U,j){return f(this,b,U,j,!0)},_.prototype.removeListener=function(b,U,j,IA){var nA=l?l+b:b;if(!this._events[nA])return this;if(!U)return w(this,nA),this;var mA=this._events[nA];if(mA.fn)mA.fn!==U||IA&&!mA.once||j&&mA.context!==j||w(this,nA);else{for(var lA=0,cA=[],TA=mA.length;lA<TA;lA++)(mA[lA].fn!==U||IA&&!mA[lA].once||j&&mA[lA].context!==j)&&cA.push(mA[lA]);cA.length?this._events[nA]=cA.length===1?cA[0]:cA:w(this,nA)}return this},_.prototype.removeAllListeners=function(b){var U;return b?(U=l?l+b:b,this._events[U]&&w(this,U)):(this._events=new I,this._eventsCount=0),this},_.prototype.off=_.prototype.removeListener,_.prototype.addListener=_.prototype.on,_.prefixed=l,_.EventEmitter=_,i!==void 0&&(i.exports=_)}}),FrA={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=[],l=[];i.forEach(f=>{const w=f.toLowerCase();w.includes("a=rtpmap")&&w.includes("h264")&&r.push(f)}),r.length>1&&l.push(...r.slice(1));const I=l.map(f=>{const w=/a=rtpmap:(\d+)\s/.exec(f);return w&&w.length>1?w[1]:null}).filter(f=>f!==null),h=[];return i.forEach(f=>{let w=f;if(f.includes("a=setup")&&(w="a=setup:passive"),(f.includes("m=audio")||f.includes("m=video"))&&(w=f.split(" ").filter((_,b)=>b<3||!I.includes(_)).join(" ")),f.includes("a=fmtp")||f.includes("a=rtcp-fb")||f.includes("a=rtpmap")){const _=/a=(?:fmtp|rtcp-fb|rtpmap):(\d+)\s/.exec(f);if(_&&_.length>1&&I.includes(_[1]))return}h.push(w)}),h.join(`\r
|
||
`)},q8=t=>{const i=t.split(`\r
|
||
`),r=[];i.forEach(f=>{const w=f.toLowerCase();w.includes("a=rtpmap")&&w.includes("h264")&&r.push(f)});const l=r.map(f=>{const w=/a=rtpmap:(\d+)\s/.exec(f);return w&&w.length>1?w[1]:null}).filter(f=>f!==null),I=[];i.forEach(f=>{let w=f;if(f.includes("a=fmtp:111")&&(w=`${f};stereo=1`),f.includes("a=fmtp")){const _=/a=fmtp:(\d+)\s/.exec(f);_&&_.length>1&&l.includes(_[1])&&(w=`${f};sps-pps-idr-in-keyframe=1`)}I.push(w)});const h=I.join(`\r
|
||
`);return OrA(h)},PrA="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Lj=(t=21)=>{let i="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)i+=PrA[63&r[t]];return i},w_=t=>typeof t=="function",xrA=0,YrA=1,K8=2;function VrA({retryFunction:t,settings:i,onError:r,onRetrying:l,onRetryFailed:I,onRetrySuccess:h,context:f}){return function(...w){const{retries:_=5,timeout:b=1e3}=i;let U=0,j=-1,IA=xrA;const nA=async(mA,lA)=>{const cA=f||this;try{const TA=await t.apply(cA,w);U>0&&h&&h.call(this,U),U=0,mA(TA)}catch(TA){const WA=()=>{clearTimeout(j),U=0,IA=K8,lA(TA)},Ee=()=>{IA!==K8&&U<(w_(_)?_():_)?(U++,IA=YrA,w_(l)&&l.call(this,U,WA),j=window.setTimeout(()=>{j=-1,nA(mA,lA)},w_(b)?b(U):b)):(WA(),w_(I)&&I.call(this,TA))};w_(r)?r.call(this,{error:TA,retry:Ee,reject:lA,retryFuncArgs:w,retriedCount:U}):Ee()}};return new Promise(nA)}}var JrA=VrA,pQ=new WeakMap;function HrA({settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:l}){return function(I,h,f){const w=JrA({retryFunction:f.value,settings:t,onError({error:_,retry:b,reject:U,retryFuncArgs:j}){var IA;i?i.call(this,_,()=>{var nA;(nA=pQ.get(I))!=null&&nA.has(h)?b():U(_)},U,j):(IA=pQ.get(I))!=null&&IA.has(h)?b():U(_)},onRetrying(_,b){var U;w_(r)&&r.call(this,_,b),(U=pQ.get(I))!=null&&U.has(h)&&(pQ.get(I).get(h).stopRetry=b)},onRetryFailed:l});return f.value=function(..._){const b=pQ.get(I);return b?b.set(h,{args:_}):pQ.set(I,new Map([[h,{args:_}]])),w.apply(this,_).finally(()=>{var U;return(U=pQ.get(I))==null?void 0:U.delete(h)})},f}}function qrA({fnName:t,callback:i,validateArgs:r=!0}){return function(l,I,h){const f=h.value;return h.value=function(...w){var _,b;if((_=pQ.get(l))!=null&&_.has(t)){const{stopRetry:U,args:j}=pQ.get(l).get(t);let IA=!0;if(r){for(const nA of j)if(!w.find(mA=>mA===nA)){IA=!1;break}}IA&&(i&&i.apply(this,w),U&&U(),(b=pQ.get(l))==null||b.delete(t))}return f.apply(this,w)},h}}var KrA=class{constructor(t,i){this.core=i,pn(this,"peerConnection"),pn(this,"audioTransceiver",null),pn(this,"videoTransceiver",null),pn(this,"timerId",null),pn(this,"callback",null),pn(this,"previousRawStats",null),pn(this,"_prevReportTime",0),pn(this,"_prevDecoderImplementation",""),pn(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(w=>i.has(w.type)&&r.push(w));const l=Date.now(),I=this.parseAudioStats(r),h=this.parseVideoStats(r),f=this.parseNetworkStats(r);this._prevReportTime=l,this.callback({audio:I,video:h,network:f})}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,l,I;const h={bitrate:0,volume:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0};for(const f of t){if(f.type==="inbound-rtp"&&(f.mediaType==="audio"||f.kind==="audio")){if(h.bytesReceived=f.bytesReceived||0,h.packetsReceived=f.packetsReceived||0,h.packetsLost=f.packetsLost||0,this.previousRawStats&&this.previousRawStats.audio){const b=this.getDifferenceValue(this.previousRawStats.audio.bytesReceived,h.bytesReceived);h.bitrate=Math.round(8*b/this.statInterval/1e3)}const w=this.getDifferenceValue((i=this.previousRawStats)==null?void 0:i.audio.packetsLost,h.packetsLost),_=this.getDifferenceValue((r=this.previousRawStats)==null?void 0:r.audio.packetsReceived,h.packetsReceived)+w;if(_>0&&(h.packetLossRate=Math.round(w/_*100)),this.core.utils.isUndefined(f.audioLevel)||(h.volume=f.audioLevel||0),f.jitterBufferDelay&&f.jitterBufferEmittedCount){let{jitterBufferEmittedCount:b}=f,{jitterBufferDelay:U}=f;(l=this.previousRawStats)!=null&&l.audio&&(b=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferEmittedCount,f.jitterBufferEmittedCount),U=this.getDifferenceValue(this.previousRawStats.audio.jitterBufferDelay,f.jitterBufferDelay)),b>0&&(h.jitterBufferDelay=Math.floor(U/b*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.jitterBufferDelay=f.jitterBufferDelay,this.previousRawStats.audio.jitterBufferEmittedCount=f.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.audio.bytesReceived=h.bytesReceived,this.previousRawStats.audio.packetsReceived=h.packetsReceived,this.previousRawStats.audio.packetsLost=h.packetsLost}!this.core.utils.isUndefined(f.audioLevel)&&((I=this.audioTransceiver)!=null&&I.receiver.track)&&f.trackIdentifier===this.audioTransceiver.receiver.track.id&&(h.volume=f.audioLevel||0)}return h}parseVideoStats(t){var i,r,l,I,h;const f={bitrate:0,frameRate:0,width:0,height:0,packetLossRate:0,jitterBufferDelay:0,bytesReceived:0,packetsReceived:0,packetsLost:0,framesDecoded:0};for(const w of t){if(w.type==="codec"&&this._decodeMap.set(w.id,w),w.type==="inbound-rtp"&&(w.mediaType==="video"||w.kind==="video")){if(f.bytesReceived=w.bytesReceived||0,f.packetsReceived=w.packetsReceived||0,f.packetsLost=w.packetsLost||0,f.framesDecoded=w.framesDecoded||0,this.core.utils.isUndefined(w.framesPerSecond)||(f.frameRate=Math.round(w.framesPerSecond)),w.decoderImplementation&&this._prevDecoderImplementation!==w.decoderImplementation){const U=this._decodeMap.get(w.codecId),j=((i=U?.mimeType)==null?void 0:i.split("/")[1])||"unknown",IA=w.powerEfficientDecoder;this.core.log.info(`decoderImplementation change to ${w.decoderImplementation}(${j}) HWDecoder: ${IA}`),this._prevDecoderImplementation=w.decoderImplementation}if(this.previousRawStats&&this.previousRawStats.video){const U=this.getDifferenceValue(this.previousRawStats.video.bytesReceived,f.bytesReceived);f.bitrate=Math.round(8*U/this.statInterval/1e3)}const _=this.getDifferenceValue((r=this.previousRawStats)==null?void 0:r.video.packetsLost,f.packetsLost),b=this.getDifferenceValue((l=this.previousRawStats)==null?void 0:l.video.packetsReceived,f.packetsReceived)+_;if(b>0&&(f.packetLossRate=Math.round(_/b*100)),w.jitterBufferDelay&&w.jitterBufferEmittedCount){let{jitterBufferEmittedCount:U}=w,{jitterBufferDelay:j}=w;(I=this.previousRawStats)!=null&&I.video&&(U=this.getDifferenceValue(this.previousRawStats.video.jitterBufferEmittedCount,w.jitterBufferEmittedCount),j=this.getDifferenceValue(this.previousRawStats.video.jitterBufferDelay,w.jitterBufferDelay)),U>0&&(f.jitterBufferDelay=Math.floor(j/U*1e3)),this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.jitterBufferDelay=w.jitterBufferDelay,this.previousRawStats.video.jitterBufferEmittedCount=w.jitterBufferEmittedCount}this.previousRawStats||this.initPreviousRawStats(),this.previousRawStats.video.bytesReceived=f.bytesReceived,this.previousRawStats.video.packetsReceived=f.packetsReceived,this.previousRawStats.video.packetsLost=f.packetsLost}!this.core.utils.isUndefined(w.frameWidth)&&((h=this.videoTransceiver)!=null&&h.receiver.track)&&w.trackIdentifier===this.videoTransceiver.receiver.track.id&&(f.width=w.frameWidth,f.height=w.frameHeight)}return f}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(UrA()),j8=Symbol("instance"),G1=Symbol("cacheResult"),Uj=class{constructor(i,r,l){this.oldState=i,this.newState=r,this.action=l,this.aborted=!1}abort(i){this.aborted=!0,XL.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Fj=class extends Error{constructor(i,r,l){super(r),this.state=i,this.message=r,this.cause=l}};function WrA(t){return typeof t=="object"&&t&&"then"in t}var ZL=new Map;function b1(t,i,r={}){return(l,I,h)=>{const f=r.action||I;if(!r.context){const _=ZL.get(l)||[];ZL.has(l)||ZL.set(l,_),_.push({from:t,to:i,action:f})}const w=h.value;h.value=function(..._){let b=this;if(r.context&&(b=XC.get(typeof r.context=="function"?r.context.call(this,..._):r.context)),b.state===i)return r.sync?b[G1]:Promise.resolve(b[G1]);b.state instanceof Uj&&b.state.action==r.abortAction&&b.state.abort(b);let U=null;Array.isArray(t)?t.length==0?b.state instanceof Uj&&b.state.abort(b):typeof b.state=="string"&&t.includes(b.state)||(U=new Fj(b._state,`${b.name} ${f} to ${i} failed: current state ${b._state} not from ${t.join("|")}`)):t!==b.state&&(U=new Fj(b._state,`${b.name} ${f} to ${i} failed: current state ${b._state} not from ${t}`));const j=cA=>{if(r.fail&&r.fail.call(this,cA),r.sync){if(r.ignoreError)return cA;throw cA}return r.ignoreError?Promise.resolve(cA):Promise.reject(cA)};if(U)return j(U);const IA=b.state,nA=new Uj(IA,i,f);XL.call(b,nA);const mA=cA=>{var TA;return b[G1]=cA,nA.aborted||(XL.call(b,i),(TA=r.success)===null||TA===void 0||TA.call(this,b[G1])),cA},lA=cA=>(XL.call(b,IA,cA),j(cA));try{const cA=w.apply(this,_);return WrA(cA)?cA.then(mA).catch(lA):r.sync?mA(cA):Promise.resolve(mA(cA))}catch(cA){return lA(new Fj(b._state,`${b.name} ${f} from ${t} to ${i} failed: ${cA}`,cA instanceof Error?cA:new Error(String(cA))))}}}}var zrA=typeof window<"u"&&window.__AFSM__?(r,l)=>{window.dispatchEvent(new CustomEvent(r,{detail:l}))}:typeof importScripts<"u"?(r,l)=>{postMessage({type:r,payload:l})}:()=>{};function XL(t,i){const r=this._state;this._state=t;const l=t.toString();t&&this.emit(l,r),this.emit(XC.STATECHANGED,t,r,i),this.updateDevTools({value:t,old:r,err:i instanceof Error?i.message:String(i)})}var XC=class jC extends jrA.default{constructor(i,r,l){super(),this.name=i,this.groupName=r,this._state=jC.INIT,i||(i=Date.now().toString(36)),l?Object.setPrototypeOf(this,l):l=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);const I=l[j8];I?this.name=I.name+"-"+I.count++:l[j8]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const i=Object.getPrototypeOf(this),r=ZL.get(i)||[];let l=new Set,I=[],h=[];const f=new Set,w=Object.getPrototypeOf(i);ZL.has(w)&&(w.stateDiagram.forEach(b=>l.add(b)),w.allStates.forEach(b=>f.add(b))),r.forEach(({from:b,to:U,action:j})=>{typeof b=="string"?I.push({from:b,to:U,action:j}):b.length?b.forEach(IA=>{I.push({from:IA,to:U,action:j})}):h.push({to:U,action:j})}),I.forEach(({from:b,to:U,action:j})=>{f.add(b),f.add(U),f.add(j+"ing"),l.add(`${b} --> ${j}ing : ${j}`),l.add(`${j}ing --> ${U} : ${j} 🟢`),l.add(`${j}ing --> ${b} : ${j} 🔴`)}),h.forEach(({to:b,action:U})=>{l.add(`${U}ing --> ${b} : ${U} 🟢`),f.forEach(j=>{j!==b&&l.add(`${j} --> ${U}ing : ${U}`)})});const _=[...l];return Object.defineProperties(i,{stateDiagram:{value:_},allStates:{value:f}}),_}static get(i){let r;return typeof i=="string"?(r=jC.instances.get(i),r||jC.instances.set(i,r=new jC(i,void 0,Object.create(jC.prototype)))):(r=jC.instances2.get(i),r||jC.instances2.set(i,r=new jC(i.constructor.name,void 0,Object.create(jC.prototype)))),r}static getState(i){var r;return(r=jC.get(i))===null||r===void 0?void 0:r.state}updateDevTools(i={}){zrA(jC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},i))}get state(){return this._state}set state(i){XL.call(this,i)}};XC.STATECHANGED="stateChanged",XC.UPDATEAFSM="updateAFSM",XC.INIT="[*]",XC.ON="on",XC.OFF="off",XC.instances=new Map,XC.instances2=new WeakMap;var GL=class extends XC{constructor(i,r){super(),this.core=i,pn(this,"audioPlayer"),pn(this,"videoPlayer"),pn(this,"callback"),pn(this,"avPlayerStateSyncManager"),pn(this,"_log"),pn(this,"_videoPlayerLog"),pn(this,"_audioPlayerLog"),pn(this,"lastPausedReason"),pn(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,l=>this.handleAutoPlayFailed(this.audioPlayer,l)),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(l=>{this.handleAutoPlayFailed(this.videoPlayer,l,"video")}),r=this.audioPlayer.play().catch(l=>{this.handleAutoPlayFailed(this.audioPlayer,l)});await Promise.all([i,r])}handleAutoPlayFailed(i,r,l="audio"){var I,h;this._log.warn("handleAutoPlayFailed",r);const f=()=>{this.audioPlayer.resume().then(()=>{document.removeEventListener("click",f,!0)})};document.addEventListener("click",f,!0),(h=(I=this.callback)==null?void 0:I.onAutoPlayFailed)==null||h.call(I,{type:l,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))}};U_([b1([XC.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)}})],GL.prototype,"onLoadStart"),U_([b1(["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)}})],GL.prototype,"onPlaying"),U_([b1("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)}})],GL.prototype,"onPaused"),U_([b1([],XC.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)}})],GL.prototype,"onStopped");var W8=GL,ZrA=["overseas-webrtc.tlivewebrtc.com","oswebrtc-lint.tliveplay.com"],iY=class P9{constructor(i){this.core=i,pn(this,"_sdkAppId"),pn(this,"_userId"),pn(this,"connectedRoomIdSet",new Set),pn(this,"updateSeq",0),pn(this,"_log"),pn(this,"player"),pn(this,"peerConnection"),pn(this,"svrSig"),pn(this,"streamURL"),pn(this,"signalURL"),pn(this,"insertableStreamsAbortMap",new Map),pn(this,"scriptTransformWorker"),pn(this,"connectionState","disconnected"),pn(this,"isStarted",!1),pn(this,"isStopped",!0),pn(this,"isReconnecting",!1),pn(this,"callback"),pn(this,"isFireWallErrorEmitted",!1),pn(this,"stat"),pn(this,"isH264DecodeSupported"),pn(this,"connectionTimeoutId"),pn(this,"streamHealthCheckTimeoutId"),pn(this,"streamHealthCheckReject"),i.loggerManager.startUpload(),this._log=this.core.log.createChild({id:`${this.getAlias()}`}),this.player=new W8(i,this._log),i.innerEmitter.on(i.INNER_EVENT.SEI_MESSAGE,this.onSEIMessage,this)}getName(){return P9.Name}getAlias(){return"LEB"}getGroup(){return""}getValidateRule(i){switch(i){case"start":return FrA;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={},l=["onStats","onSEIMessage"];for(const I of Object.keys(i)){const h=i[I];typeof h=="function"&&(l.includes(I)?r[I]=h:r[I]=(...f)=>(this._log.debug(`callback ${I} called`,f.length>0?f[0]:""),h(...f)))}return r}async start(i){var r;this.isStopped=!1;const{view:l,url:I,volume:h,muted:f,fillMode:w,loggerConfig:_,callback:b}=i;this.callback=this.wrapCallback(b),this.player.setCallback(this.callback);const{errorModule:{RtcError:U,ErrorCode:j,ErrorCodeDictionary:IA},loggerManager:nA,rtcDectection:mA}=this.core;if(this._sdkAppId=_.sdkAppId,this._userId=_.userId,this._log.setSdkAppId(_.sdkAppId),this._log.setUserId(_.userId),this.player.updateLogConfig(_),nA.addJoinedUser(_),!mA.isWebRTCSupported()||!mA.isAddTransceiverSupported())throw new U({code:j.ENV_NOT_SUPPORTED,extraCode:IA.NOT_SUPPORTED_WEBRTC,message:"webrtc not supported"});if(!(await mA.decodeSupportStatus()).isH264DecodeSupported||this.isH264DecodeSupported===!1)throw this.isH264DecodeSupported=!1,new U({code:j.ENV_NOT_SUPPORTED,extraCode:IA.NOT_SUPPORTED_H264_DECODE,message:"h264 not supported"});!mA.IS_SEI_SUPPORTED&&b?.onSEIMessage&&((r=b.onError)==null||r.call(b,new U({code:j.ENV_NOT_SUPPORTED,extraCode:IA.NOT_SUPPORTED_SEI,message:"sei not supported"}))),this.player.setVideoContainer(l),this.player.setMuted(f),this.player.setFillMode(w);try{await this.connect(I),this.stat=new KrA(this.peerConnection,this.core),this.stat.start(TA=>{var WA,Ee;return(Ee=(WA=this.callback)==null?void 0:WA.onStats)==null?void 0:Ee.call(WA,TA)});const lA=this.player.play();this.player.setVolume(h);const cA=this.createStreamHealthCheckPromise();await Promise.race([lA,cA]),this.clearStreamHealthCheck(),this.isStarted=!0}catch(lA){throw this.stop(),lA}}async update(i){const{view:r,url:l,volume:I,muted:h,fillMode:f,action:w,fullScreen:_,pictureInPicture:b}=i;l&&l!==this.streamURL&&await this.switchStream(l),this.player.setMuted(h),this.player.setVolume(I),this.player.setFillMode(f),r&&this.player.videoPlayer.setContainer(this.core.utils.isString(r)?document.getElementById(r):r),w==="pause"?this.player.pause():w==="resume"&&this.player.resume(),this.core.utils.isBoolean(_)&&(_?await this.player.enterFullscreen():await this.player.exitFullscreen()),this.core.utils.isBoolean(b)&&(b?await this.player.enterPictureInPicture():await this.player.exitPictureInPicture())}async switchStream(i){this._log.info("switchStream",i);const r=this.peerConnection,l=this.streamURL,I=this.signalURL,h=this.svrSig,f=new Map(this.insertableStreamsAbortMap),w=this.player;delete this.peerConnection,delete this.streamURL,delete this.signalURL,delete this.svrSig,this.insertableStreamsAbortMap.clear();const _=new W8(this.core,this._log);_.setVideoContainer(w.videoPlayer.container),_.setFillMode(w.videoPlayer.objectFit),_.setMuted(w.muted),_.setCallback(this.callback);const b=U=>{const{track:j}=U;this.createEncodedStreams(U.receiver),this.initReceiverTransform(U.receiver,j.kind==="audio"),j.kind==="audio"?_.setAudioTrack(j):_.setVideoTrack(j)};try{await this.connectForSwitch(i,b),this._log.info("switchStream: new connection established"),await this.waitForNewPlayerFirstFrame(_),this._log.info("switchStream: new stream first frame received"),w.audioPlayer.setMuted(!0),w.stop(),this.player=_,r&&(clearTimeout(this.connectionTimeoutId),r.close(),r.getReceivers().forEach(U=>f.delete(U)),l&&h&&I&&this.fetchStopStreamWithParams(l,I,h).catch(U=>{this._log.warn("switchStream: stop old stream failed",U)})),this._log.info("switchStream: switch completed successfully")}catch(U){this._log.error("switchStream failed",U),_.stop();const j=this.peerConnection;throw j&&(j.close(),j.getReceivers().forEach(IA=>this.insertableStreamsAbortMap.delete(IA))),this.peerConnection=r,this.streamURL=l,this.signalURL=I,this.svrSig=h,this.insertableStreamsAbortMap=f,this.player=w,w.audioPlayer.setMuted(w.muted),U}}waitForNewPlayerFirstFrame(i){return new Promise((r,l)=>{let I=0,h=!1;const f=i.videoPlayer.getElement();if(!f)return void l(new Error("VideoPlayer has no video element"));const w=()=>{h=!0,clearInterval(U),f.removeEventListener("loadeddata",_),f.removeEventListener("playing",b)},_=()=>{h||(this._log.info("waitForNewPlayerFirstFrame: loadeddata event fired"),w(),r())},b=()=>{h||(this._log.info("waitForNewPlayerFirstFrame: playing event fired"),w(),r())};f.addEventListener("loadeddata",_,{once:!0}),f.addEventListener("playing",b,{once:!0}),i.play().catch(j=>{this._log.warn("waitForNewPlayerFirstFrame: play failed",j)});const U=setInterval(()=>{if(!h){if(I+=100,f.videoWidth>0&&f.videoHeight>0)return this._log.info(`waitForNewPlayerFirstFrame: video has valid dimensions ${f.videoWidth}x${f.videoHeight}`),w(),void r();I>=1e4&&(w(),l(new Error("waitForNewPlayerFirstFrame timeout")))}},100)})}connectForSwitch(i,r){return new Promise((l,I)=>{try{this.initScriptTransformWorker();const h={encodedInsertableStreams:this.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},f=new RTCPeerConnection(h);this.peerConnection=f,f.onconnectionstatechange=()=>{this.connectionState=f.connectionState,this._log.info("connectForSwitch connectionState",f.connectionState),f.connectionState!=="failed"&&f.connectionState!=="closed"||I(new Error(`connection is ${f.connectionState}`)),f.connectionState==="connected"&&(this.logSelectedCandidate(),l())},f.ontrack=r,f.addTransceiver("audio",{direction:"recvonly"}),f.addTransceiver("video",{direction:"recvonly"}),this._log.info("connectForSwitch createOffer"),f.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(w=>(w.sdp=q8(w.sdp),this._log.info("connectForSwitch setOffer"),f.setLocalDescription(w))).then(()=>{const w={sessionId:Lj(),streamurl:i,clientinfo:this.core.environment.getOSString(),localsdp:f.localDescription};return this.exchangeSDP(i,w)}).then(w=>(this._log.info("connectForSwitch setAnswer"),f.setRemoteDescription(w))).catch(I)}catch(h){I(h)}this.connectionTimeoutId=setTimeout(()=>I(new Error("connection timeout")),1e4)})}async fetchStopStreamWithParams(i,r,l){try{const I=`${r}/webrtc/v1/stopstream`,h=await k1(I,{streamurl:i,svrsig:l},{timeout:3}),{errcode:f,errmsg:w}=h;if(f!==0)throw new Error(`errCode:${f}, errmsg:${w}`);return h}catch(I){this._log.error("fetchStopStreamWithParams error",I)}}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(j=>{var IA;return((IA=j.track)==null?void 0:IA.kind)==="video"});if(!r)return void this._log.warn("checkStreamHealth: no video receiver found");const l=await r.getStats();let I=0,h=0;l.forEach(j=>{j.type==="inbound-rtp"&&(j.mediaType==="video"||j.kind==="video")&&(I=j.bytesReceived||0,h=j.framesDecoded||0)});const{isPlaying:f}=this.player,w=f||h>0;this._log.info(`checkStreamHealth: bytesReceived=${I}, framesDecoded=${h}, isPlaying=${f}`);const{RtcError:_,ErrorCode:b,ErrorCodeDictionary:U}=this.core.errorModule;I===0?(this._log.warn("checkStreamHealth: no stream data received after 5s"),i(new _({code:b.OPERATION_FAILED,message:"no stream data received"}))):w||(this._log.warn("checkStreamHealth: decode failed"),this.isH264DecodeSupported=!1,i(new _({code:b.ENV_NOT_SUPPORTED,extraCode:U.NOT_SUPPORTED_H264_DECODE,message:"h264 decode failed"})))}catch(r){this._log.warn("checkStreamHealth error",r)}}connect(i){return new Promise((r,l)=>{try{this.initScriptTransformWorker();const I={encodedInsertableStreams:this.enableSEI,iceServers:[],sdpSemantics:"unified-plan",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",tcpCandidatePolicy:"disable",IceTransportsType:"nohost"},h=new RTCPeerConnection(I);this.peerConnection=h,h.onconnectionstatechange=()=>{this.connectionState=h.connectionState,this._log.info("connectionState",h.connectionState),h.connectionState!=="failed"&&h.connectionState!=="closed"||(this.isStarted?this.reconnect(i):l(new Error(`connection is ${h.connectionState}`))),h.connectionState==="connected"&&(this.logSelectedCandidate(),r())},h.ontrack=f=>this.onTrack(f),h.addTransceiver("audio",{direction:"recvonly"}),h.addTransceiver("video",{direction:"recvonly"}),this._log.info("createOffer"),h.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0,voiceActivityDetection:!1}).then(f=>(f.sdp=q8(f.sdp),this._log.info("setOffer"),h.setLocalDescription(f))).then(()=>{const f={sessionId:Lj(),streamurl:i,clientinfo:this.core.environment.getOSString(),localsdp:h.localDescription};return this.exchangeSDP(i,f)}).then(f=>(this._log.info("setAnswer"),h.setRemoteDescription(f))).catch(l)}catch(I){l(I)}this.connectionTimeoutId=setTimeout(()=>l(new Error("connection timeout")),1e4)})}async exchangeSDP(i,r){let l,I,h;try{this._log.info("exchangeSDP");const f=XrA(i);if(!f)throw new Error("streamDomain is empty");const{signalDomain:w,cached:_}=await this.fetchSignalDomain(f);if(!w)throw new Error("signalDomain is empty");{this._log.info("try exchangeSDP signalDomain:",w,_);const b=await this.doExchangeSDP(`https://${w}`,r,3);l=b.url,I=b.remoteSdp,h=b.svrSig}}catch(f){this._log.warn("exchangeSDP failed, fallback",f);try{const w=await this.core.utils.promiseAny(ZrA.map(_=>this.doExchangeSDP(`https://${_}`,r,3)));l=w.url,I=w.remoteSdp,h=w.svrSig}catch(w){throw this._log.error("exchangeSDP failed",w),w[0]||w}}return this.streamURL=i,this.signalURL=l,this.svrSig=h,I}async reconnect(i){var r,l;if(!this.isReconnecting){this.isReconnecting=!0;try{this._log.warn("start reconnect"),await this.connect(i),this._log.warn("reconnect success")}catch(I){this._log.error("reconnect error",I);const{RtcError:h,ErrorCode:f}=this.core.errorModule;(l=(r=this.callback)==null?void 0:r.onError)==null||l.call(r,new h({code:f.OPERATION_FAILED,message:"reconnect failed"}))}finally{this.isReconnecting=!1}}}async logSelectedCandidate(){if(!this.peerConnection)return;const i=await this.peerConnection.getStats();for(const[r,l]of i)if(this.core.rtcDectection.isSelectedCandidatePair(l)){const I=i.get(l.localCandidateId),h=i.get(l.remoteCandidateId);I&&this._log.info(`local candidate: ${I.candidateType} ${I.protocol}:${I.ip||I.address}:${I.port} ${I.networkType||""} ${I.relayProtocol?`relayProtocol:${I.relayProtocol} url: ${I.url}`:""}`),h&&this._log.info(`remote candidate: ${h.candidateType} ${h.protocol}:${h.ip||h.address}:${h.port}`);break}}async doExchangeSDP(i,r,l){const I=`${i}/webrtc/v1/pullstream`,h=await k1(I,r,{timeout:l}),{errcode:f,errmsg:w,remotesdp:_,svrsig:b}=h;if(f!==0){const U=new Error(`errCode:${f}, errMsg:${w}`);throw U.name="RequestSignalError",U}return{url:i,remoteSdp:_,svrSig:b}}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 l=i.createEncodedStreams(),I=new AbortController,h={abortController:I,enqueue:f=>i.track.kind==="audio"?f:this.decodeVideoFrame(f)};l.readable.pipeThrough(new TransformStream({transform:(f,w)=>{const _=h.enqueue(f);_&&w.enqueue(_)}})).pipeTo(l.writable,I).catch(f=>{f!=="destroy"&&this._log.warn(f)}),(r=this.insertableStreamsAbortMap.get(i))==null||r.abort("destroy"),this.insertableStreamsAbortMap.set(i,I)}}catch(l){this._log.warn(`createEncodedStreams ${i.track.kind} failed`,l)}}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:l,trtc:I,TRTC:h}=this.core;!this.enableSEI||r.IS_INSERTABLE_STREAM_SUPPORTED||this.scriptTransformWorker||r.IS_SCRIPT_TRANSFORM_SUPPORTED&&(this._log.info("initScriptTransformWorker"),this.scriptTransformWorker=l({videoEncodePipeline:i.videoManager.encodePipeline,videoDecodePipeline:i.videoManager.decodePipeline,audioEncodePipeline:i.audioManager.encodePipeline,audioDecodePipeline:i.audioManager.decodePipeline}),this.scriptTransformWorker.onmessage=f=>{var w,_;f.data.type==="sei"&&((_=(w=this.callback)==null?void 0:w.onSEIMessage)==null||_.call(w,{data:f.data.data,seiPayloadType:f.data.seiPayloadType}))},this.scriptTransformWorker.onerror=f=>{this._log.error("scriptTransformWorker error: ",f.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 k1(i,{streamurl:this.streamURL,svrsig:this.svrSig},{timeout:3}),{errcode:l,errmsg:I}=r;if(l!==0)throw new Error(`errCode:${l}, errmsg:${I}`);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 l,I;i===this.core.room&&((I=(l=this.callback)==null?void 0:l.onSEIMessage)==null||I.call(l,{data:r.seiPayload.buffer,seiPayloadType:r.seiPayloadType}))}async fetchSignalDomain(i,r=L1[0]){var l;const I=`https://${r}/signal_query`;try{const h=window.localStorage.getItem(Oj);if(h){const U=JSON.parse(h);if(((l=U[i])==null?void 0:l.expire)-new Date().getTime()>0)return{signalDomain:U[i].signal,cached:!0}}const f=await k1(I,{domain:i,requestid:Lj(16),client_type:"Web",client_info:window.navigator.userAgent}),{errcode:w,errmsg:_,data:b}=f;if(w===0){const{signal_domain:U,cache_time:j}=b;let IA={};const nA=window.localStorage.getItem(Oj);nA&&(IA=JSON.parse(nA)),IA[i]={signal:U,expire:new Date().getTime()+1e3*j};try{window.localStorage.setItem(Oj,JSON.stringify(IA))}catch{}return{signalDomain:U,cached:!1}}throw new Error(`errCode:${w} errmsg:${_}`)}catch(h){return this._log.error("fetchSignalDomain error",h),L1[1]&&r!==L1[1]?this.fetchSignalDomain(i,L1[1]):{signalDomain:"",cached:!1}}}};pn(iY,"Name","LEBPlayer"),U_([qrA({fnName:"connect"})],iY.prototype,"stop"),U_([HrA({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:l,ErrorCodeDictionary:I}=this.core.errorModule;this.isFireWallErrorEmitted=!0,this.callback.onError(new r({code:l.OPERATION_FAILED,extraCode:I.FIREWALL_RESTRICTION,message:"firewall restriction"}))}},onError(t,i,r,l){var I;if(this._log.warn("connect failed",t),this.peerConnection&&(this.peerConnection.close(),delete this.peerConnection),!this.isStopped&&((I=t.message||t)==null?void 0:I.includes("connection")))i();else{const{RtcError:h,ErrorCode:f}=this.core.errorModule;r(new h({code:f.UNKNOWN_ERROR,message:t.message}))}}})],iY.prototype,"connect");var x9=iY,k1=async(t,i,r={})=>{const{timeout:l=10}=r;let I,h=0,f={};window.AbortController&&(I=new window.AbortController,f={signal:I.signal},h=window.setTimeout(()=>I.abort(),1e3*l));const w=await fetch(t,GrA({body:JSON.stringify(i),cache:"no-cache",credentials:"same-origin",headers:{"content-type":"text/plain;charset=utf-8"},method:"POST",mode:"cors"},f));if(h&&window.clearTimeout(h),w.status!==200)throw new Error(`Network Error, status code:${w.status}`);return w.json()},L1=["webrtc-signal-scheduler.tlivesource.com","bak-webrtc-signal-scheduler.tlivesource.com"],Oj="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=x9;const AaA=Object.freeze(Object.defineProperty({__proto__:null,LEBPlayer:x9,default:$rA},Symbol.toStringTag,{value:"Module"})),eaA=GU(AaA);var Y9=Object.defineProperty,taA=Object.defineProperties,iaA=Object.getOwnPropertyDescriptors,z8=Object.getOwnPropertySymbols,oaA=Object.prototype.hasOwnProperty,saA=Object.prototype.propertyIsEnumerable,U3=(t,i,r)=>i in t?Y9(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,naA=(t,i)=>{for(var r in i||(i={}))oaA.call(i,r)&&U3(t,r,i[r]);if(z8)for(var r of z8(i))saA.call(i,r)&&U3(t,r,i[r]);return t},raA=(t,i)=>taA(t,iaA(i)),aaA=(t,i)=>{for(var r in i)Y9(t,r,{get:i[r],enumerable:!0})},Hg=(t,i,r)=>U3(t,typeof i!="symbol"?i+"":i,r);async function gaA({sdkAppId:t,userId:i,userSig:r,core:l}){var I;const h=Math.round(new Date().getTime()/1e3);try{const f=await l.schedule.getAbilityConfig(t,l.schedule.ScheduleRequestType.TRTC_AUTO_CONF,{sdkAppId:t,userId:i,userSig:r,timestamp:h});l.log.info(`virtual background ability response: ${JSON.stringify(f)}`);const{data:w}=f;return(I=w?.trtcAutoConf)!=null&&I.web_ar?{auth:!0,timestamp:h}:{auth:!1}}catch(f){return l.log.error("virtual background fetch error",f),{auth:!1}}}var caA={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function laA(t){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:raA(naA({},caA),{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,l,I){var h;const{RtcError:f,ErrorCode:w,ErrorCodeDictionary:_}=t.errorModule;if(!i)return;const{type:b,src:U,onAbort:j}=i;if(b==="image"&&!U)throw new f({code:w.INVALID_PARAMETER,extraCode:_.INVALID_PARAMETER_REQUIRED,fnName:l,messageParams:{key:"src"}});if(j&&!t.utils.isFunction(j))throw new f({code:w.INVALID_PARAMETER,extraCode:_.INVALID_PARAMETER_TYPE,fnName:l,messageParams:{key:"onAbort",value:typeof j,rule:{type:"Function"}}});if(!((h=t.room.videoManager.cameraTrack)!=null&&h.mediaTrack))throw new f({code:w.INVALID_OPERATION,extraCode:_.INVALID_OPERATION_NEED_VIDEO,fnName:l})}}}function IaA(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,l,I){if(!i)return;const{RtcError:h,ErrorCode:f,ErrorCodeDictionary:w}=t.errorModule,{type:_,src:b}=i;if(_==="image"&&!b)throw new h({code:f.INVALID_PARAMETER,extraCode:w.INVALID_PARAMETER_REQUIRED,fnName:l,messageParams:{key:"src"}})}}}function uaA(t){return{name:"StopVirtualBackgroundOptions",required:!1}}var EaA=(()=>{var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var r,l,I=i;I.ready=new Promise(($,K)=>{r=$,l=K});var h=Object.assign({},I),f="";typeof document<"u"&&document.currentScript&&(f=document.currentScript.src),t&&(f=t),f=f.indexOf("blob:")!==0?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var w,_,b=I.print||console.log.bind(console),U=I.printErr||console.error.bind(console);function j($){if(je($))return function(K){for(var vA=atob(K),qA=new Uint8Array(vA.length),ee=0;ee<vA.length;++ee)qA[ee]=vA.charCodeAt(ee);return qA}($.slice(_e.length))}Object.assign(I,h),h=null,I.arguments&&I.arguments,I.thisProgram&&I.thisProgram,I.quit&&I.quit,I.wasmBinary&&(w=I.wasmBinary),typeof WebAssembly!="object"&&ut("no native wasm support detected");var IA,nA,mA,lA,cA,TA,WA,Ee,de=!1,Pe=[],pe=[],gt=[];function pt($){Pe.unshift($)}function We($){gt.unshift($)}var Dt=0,Kt=null;function ut($){I.onAbort&&I.onAbort($),U($="Aborted("+$+")"),de=!0,$+=". Build with -sASSERTIONS for more info.";var K=new WebAssembly.RuntimeError($);throw l(K),K}var ge,XA,_e="data:application/octet-stream;base64,",je=$=>$.startsWith(_e);function Ut($){return Promise.resolve().then(()=>function(K){if(K==ge&&w)return new Uint8Array(w);var vA=j(K);if(vA)return vA;throw"both async and sync fetching of the wasm failed"}($))}function gi($,K,vA,qA){return function(ee,fe,xe){return Ut(ee).then(Oe=>WebAssembly.instantiate(Oe,fe)).then(Oe=>Oe).then(xe,Oe=>{U(`failed to asynchronously prepare wasm: ${Oe}`),ut(Oe)})}(K,vA,qA)}je(ge="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/Mi4wKmEyKmEyOjEuMC0yLjAqKDEuMC1hMikqKDEuMC1hMik7CiAgICAgIC8vIGZsb2F0IGRlbHRhID0gYSAtIGEyOwogICAgICAvLyBpZiAoZGVsdGEgPCAwLjI1ICYmIGRlbHRhID4gLTAuMjUpCiAgICAgIC8vIHsKICAgICAgLy8gICAgIGEgPSBhICsgMC41KmRlbHRhOwogICAgICAvLyB9CiAgICAgIAogICAgICB2ZWMyIG8gPSAxLjAgLyB2ZWMyKHRleHR1cmVTaXplKGZyYW1lLCAwKSk7CiAgICAACiAgICAgIG91dENvbG9yID0gZzsKICAAI3ZlcnNpb24gMzAwIGVzCmluIHZlYzIgYV9wb3NpdGlvbjsKaW4gdmVjMiBhX3RleENvb3JkOwoKdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZU1hdHJpeDsKCm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSh1X3RleHR1cmVNYXRyaXggKiB2ZWM0KGFfdGV4Q29vcmQsIDAsIDEpKS54eTsKfQoAc2V0QmVhdXR5ICVmICVmICVmICVmICVmCgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHZlYzQodV9jb2xvciwxLjApLHNyY19jb2xvcixhKTsKADZBbGxJbjEAAIAoAABfFgAAUDZBbGxJbjEAAAAABCkAAHAWAAAAAAAAaBYAAFBLNkFsbEluMQAAAAQpAACMFgAAAQAAAGgWAABpaQB2AHZpAHwWAADMFgAATjEwZW1zY3JpcHRlbjN2YWxFAACAKAAAuBYAAGlpaQB2aWlpAAAAALwnAAB8FgAAcCgAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkZABBkC4LyAi8JwAAfBYAAHAoAABwKAAAcCgAAHAoAAB2aWlkZGRkALwnAAB8FgAAdmlpALwnAADMFgAAzBYAAHwWAADMFgAAHCgAALwnAADMFgAAoBcAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACAKAAAYBcAAMwWAAC8JwAAzBYAAMwWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAgCgAALgXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAgCgAAAAYAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAIAoAABIGAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFj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")||(XA=ge,ge=I.locateFile?I.locateFile(XA,f):f+XA);var Fi=$=>{for(;$.length>0;)$.shift()(I)};I.noExitRuntime;function To($){this.excPtr=$,this.ptr=$-24,this.set_type=function(K){TA[this.ptr+4>>2]=K},this.get_type=function(){return TA[this.ptr+4>>2]},this.set_destructor=function(K){TA[this.ptr+8>>2]=K},this.get_destructor=function(){return TA[this.ptr+8>>2]},this.set_caught=function(K){K=K?1:0,IA[this.ptr+12|0]=K},this.get_caught=function(){return IA[this.ptr+12|0]!=0},this.set_rethrown=function(K){K=K?1:0,IA[this.ptr+13|0]=K},this.get_rethrown=function(){return IA[this.ptr+13|0]!=0},this.init=function(K,vA){this.set_adjusted_ptr(0),this.set_type(K),this.set_destructor(vA)},this.set_adjusted_ptr=function(K){TA[this.ptr+16>>2]=K},this.get_adjusted_ptr=function(){return TA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ba(this.get_type()))return TA[this.excPtr>>2];var K=this.get_adjusted_ptr();return K!==0?K:this.excPtr}}var to,Eo,Vs,ki=$=>{for(var K="",vA=$;nA[vA];)K+=to[nA[vA++]];return K},ns={},jo={},$i={},Wt=$=>{throw new Eo($)},io=$=>{throw new Vs($)},bi=($,K,vA)=>{function qA(Oe){var rt=vA(Oe);rt.length!==$.length&&io("Mismatched type converter count");for(var dt=0;dt<$.length;++dt)vs($[dt],rt[dt])}$.forEach(function(Oe){$i[Oe]=K});var ee=new Array(K.length),fe=[],xe=0;K.forEach((Oe,rt)=>{jo.hasOwnProperty(Oe)?ee[rt]=jo[Oe]:(fe.push(Oe),ns.hasOwnProperty(Oe)||(ns[Oe]=[]),ns[Oe].push(()=>{ee[rt]=jo[Oe],++xe===fe.length&&qA(ee)}))}),fe.length===0&&qA(ee)};function vs($,K,vA={}){if(!("argPackAdvance"in K))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(qA,ee,fe={}){var xe=ee.name;if(qA||Wt(`type "${xe}" must have a positive integer typeid pointer`),jo.hasOwnProperty(qA)){if(fe.ignoreDuplicateRegistrations)return;Wt(`Cannot register type '${xe}' twice`)}if(jo[qA]=ee,delete $i[qA],ns.hasOwnProperty(qA)){var Oe=ns[qA];delete ns[qA],Oe.forEach(rt=>rt())}}($,K,vA)}var HA,le=$=>{Wt($.$$.ptrType.registeredClass.name+" instance already deleted")},Ve=!1,Ft=$=>{},nt=$=>{$.count.value-=1,$.count.value===0&&(K=>{K.smartPtr?K.smartPtrType.rawDestructor(K.smartPtr):K.ptrType.registeredClass.rawDestructor(K.ptr)})($)},It=($,K,vA)=>{if(K===vA)return $;if(vA.baseClass===void 0)return null;var qA=It($,K,vA.baseClass);return qA===null?null:vA.downcast(qA)},Ai={},ei=()=>Object.keys(Oi).length,ke=()=>{var $=[];for(var K in Oi)Oi.hasOwnProperty(K)&&$.push(Oi[K]);return $},Ze=[],vt=()=>{for(;Ze.length;){var $=Ze.pop();$.$$.deleteScheduled=!1,$.delete()}},_t=$=>{HA=$,Ze.length&&HA&&HA(vt)},Oi={},po=($,K)=>(K=((vA,qA)=>{for(qA===void 0&&Wt("ptr should not be undefined");vA.baseClass;)qA=vA.upcast(qA),vA=vA.baseClass;return qA})($,K),Oi[K]),No=($,K)=>(K.ptrType&&K.ptr||io("makeClassHandle requires ptr and ptrType"),!!K.smartPtrType!=!!K.smartPtr&&io("Both smartPtrType and smartPtr must be specified"),K.count={value:1},Go(Object.create($,{$$:{value:K}})));function oo($){var K=this.getPointee($);if(!K)return this.destructor($),null;var vA=po(this.registeredClass,K);if(vA!==void 0){if(vA.$$.count.value===0)return vA.$$.ptr=K,vA.$$.smartPtr=$,vA.clone();var qA=vA.clone();return this.destructor($),qA}function ee(){return this.isSmartPointer?No(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:K,smartPtrType:this,smartPtr:$}):No(this.registeredClass.instancePrototype,{ptrType:this,ptr:$})}var fe,xe=this.registeredClass.getActualType(K),Oe=Ai[xe];if(!Oe)return ee.call(this);fe=this.isConst?Oe.constPointerType:Oe.pointerType;var rt=It(K,this.registeredClass,fe.registeredClass);return rt===null?ee.call(this):this.isSmartPointer?No(fe.registeredClass.instancePrototype,{ptrType:fe,ptr:rt,smartPtrType:this,smartPtr:$}):No(fe.registeredClass.instancePrototype,{ptrType:fe,ptr:rt})}var Go=$=>typeof FinalizationRegistry>"u"?(Go=K=>K,$):(Ve=new FinalizationRegistry(K=>{nt(K.$$)}),Ft=K=>Ve.unregister(K),(Go=K=>{var vA=K.$$;if(vA.smartPtr){var qA={$$:vA};Ve.register(K,qA,K)}return K})($));function An(){}var rn=($,K)=>Object.defineProperty(K,"name",{value:$}),Es=($,K,vA)=>{if($[K].overloadTable===void 0){var qA=$[K];$[K]=function(){return $[K].overloadTable.hasOwnProperty(arguments.length)||Wt(`Function '${vA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${$[K].overloadTable})!`),$[K].overloadTable[arguments.length].apply(this,arguments)},$[K].overloadTable=[],$[K].overloadTable[qA.argCount]=qA}};function an($,K,vA,qA,ee,fe,xe,Oe){this.name=$,this.constructor=K,this.instancePrototype=vA,this.rawDestructor=qA,this.baseClass=ee,this.getActualType=fe,this.upcast=xe,this.downcast=Oe,this.pureVirtualFunctions=[]}var Do=($,K,vA)=>{for(;K!==vA;)K.upcast||Wt(`Expected null or instance of ${vA.name}, got an instance of ${K.name}`),$=K.upcast($),K=K.baseClass;return $};function pA($,K){if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`);var vA=K.$$.ptrType.registeredClass;return Do(K.$$.ptr,vA,this.registeredClass)}function Jn($,K){var vA;if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),this.isSmartPointer?(vA=this.rawConstructor(),$!==null&&$.push(this.rawDestructor,vA),vA):0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&K.$$.ptrType.isConst&&Wt(`Cannot convert argument of type ${K.$$.smartPtrType?K.$$.smartPtrType.name:K.$$.ptrType.name} to parameter type ${this.name}`);var qA=K.$$.ptrType.registeredClass;if(vA=Do(K.$$.ptr,qA,this.registeredClass),this.isSmartPointer)switch(K.$$.smartPtr===void 0&&Wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:K.$$.smartPtrType===this?vA=K.$$.smartPtr:Wt(`Cannot convert argument of type ${K.$$.smartPtrType?K.$$.smartPtrType.name:K.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:vA=K.$$.smartPtr;break;case 2:if(K.$$.smartPtrType===this)vA=K.$$.smartPtr;else{var ee=K.clone();vA=this.rawShare(vA,cn.toHandle(()=>ee.delete())),$!==null&&$.push(this.rawDestructor,vA)}break;default:Wt("Unsupporting sharing policy")}return vA}function Qr($,K){if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`),K.$$.ptrType.isConst&&Wt(`Cannot convert argument of type ${K.$$.ptrType.name} to parameter type ${this.name}`);var vA=K.$$.ptrType.registeredClass;return Do(K.$$.ptr,vA,this.registeredClass)}function ds($){return this.fromWireType(TA[$>>2])}function zr($,K,vA,qA,ee,fe,xe,Oe,rt,dt,Mt){this.name=$,this.registeredClass=K,this.isReference=vA,this.isConst=qA,this.isSmartPointer=ee,this.pointeeType=fe,this.sharingPolicy=xe,this.rawGetPointee=Oe,this.rawConstructor=rt,this.rawShare=dt,this.rawDestructor=Mt,ee||K.baseClass!==void 0?this.toWireType=Jn:qA?(this.toWireType=pA,this.destructorFunction=null):(this.toWireType=Qr,this.destructorFunction=null)}var Pi,Rs,or=[],en=$=>{var K=or[$];return K||($>=or.length&&(or.length=$+1),or[$]=K=Pi.get($)),K},wn=($,K,vA)=>$.includes("j")?((qA,ee,fe)=>{var xe=I["dynCall_"+qA];return fe&&fe.length?xe.apply(null,[ee].concat(fe)):xe.call(null,ee)})($,K,vA):en(K).apply(null,vA),Ht=($,K)=>{var vA,qA,ee,fe=($=ki($)).includes("j")?(vA=$,qA=K,ee=[],function(){return ee.length=0,Object.assign(ee,arguments),wn(vA,qA,ee)}):en(K);return typeof fe!="function"&&Wt(`unknown function pointer with signature ${$}: ${K}`),fe},yg=$=>{var K=Ea($),vA=ki(K);return yn(K),vA},On=($,K)=>{var vA=[],qA={};throw K.forEach(function ee(fe){qA[fe]||jo[fe]||($i[fe]?$i[fe].forEach(ee):(vA.push(fe),qA[fe]=!0))}),new Rs(`${$}: `+vA.map(yg).join([", "]))},Gn=($,K)=>{for(var vA=[],qA=0;qA<$;qA++)vA.push(TA[K+4*qA>>2]);return vA},Js=$=>{for(;$.length;){var K=$.pop();$.pop()(K)}};function pr($,K,vA,qA,ee,fe){var xe=K.length;xe<2&&Wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Oe=K[1]!==null&&vA!==null,rt=!1,dt=1;dt<K.length;++dt)if(K[dt]!==null&&K[dt].destructorFunction===void 0){rt=!0;break}var Mt=K[0].name!=="void",xt=xe-2,Ii=new Array(xt),ct=[],Pt=[];return rn($,function(){var Ji;arguments.length!==xt&&Wt(`function ${$} called with ${arguments.length} arguments, expected ${xt}`),Pt.length=0,ct.length=Oe?2:1,ct[0]=ee,Oe&&(Ji=K[1].toWireType(Pt,this),ct[1]=Ji);for(var Ki=0;Ki<xt;++Ki)Ii[Ki]=K[Ki+2].toWireType(Pt,arguments[Ki]),ct.push(Ii[Ki]);return function(qs){if(rt)Js(Pt);else for(var Mi=Oe?1:2;Mi<K.length;Mi++){var zo=Mi===1?Ji:Ii[Mi-2];K[Mi].destructorFunction!==null&&K[Mi].destructorFunction(zo)}if(Mt)return K[0].fromWireType(qs)}(qA.apply(null,ct))})}var Pn=($,K,vA)=>($ instanceof Object||Wt(`${vA} with invalid "this": ${$}`),$ instanceof K.registeredClass.constructor||Wt(`${vA} incompatible with "this" of type ${$.constructor.name}`),$.$$.ptr||Wt(`cannot call emscripten binding method ${vA} on deleted object`),Do($.$$.ptr,$.$$.ptrType.registeredClass,K.registeredClass));function mr(){this.allocated=[void 0],this.freelist=[]}var mo=new mr,gn=$=>{$>=mo.reserved&&--mo.get($).refcount===0&&mo.free($)},Sl=()=>{for(var $=0,K=mo.reserved;K<mo.allocated.length;++K)mo.allocated[K]!==void 0&&++$;return $},cn={toValue:$=>($||Wt("Cannot use deleted val. handle = "+$),mo.get($).value),toHandle:$=>{switch($){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return mo.allocate({refcount:1,value:$})}}};function fr($){return this.fromWireType(cA[$>>2])}var Ls,Jc,ms,as=$=>{if($===null)return"null";var K=typeof $;return K==="object"||K==="array"||K==="function"?$.toString():""+$},Mu=($,K)=>{switch(K){case 4:return function(vA){return this.fromWireType(WA[vA>>2])};case 8:return function(vA){return this.fromWireType(Ee[vA>>3])};default:throw new TypeError(`invalid float width (${K}): ${$}`)}},Wa=($,K,vA)=>{switch(K){case 1:return vA?qA=>IA[qA|0]:qA=>nA[qA|0];case 2:return vA?qA=>mA[qA>>1]:qA=>lA[qA>>1];case 4:return vA?qA=>cA[qA>>2]:qA=>TA[qA>>2];default:throw new TypeError(`invalid integer width (${K}): ${$}`)}},Cs=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,sg=($,K,vA)=>{for(var qA=K+vA,ee=K;$[ee]&&!(ee>=qA);)++ee;if(ee-K>16&&$.buffer&&Cs)return Cs.decode($.subarray(K,ee));for(var fe="";K<ee;){var xe=$[K++];if(128&xe){var Oe=63&$[K++];if((224&xe)!=192){var rt=63&$[K++];if((xe=(240&xe)==224?(15&xe)<<12|Oe<<6|rt:(7&xe)<<18|Oe<<12|rt<<6|63&$[K++])<65536)fe+=String.fromCharCode(xe);else{var dt=xe-65536;fe+=String.fromCharCode(55296|dt>>10,56320|1023&dt)}}else fe+=String.fromCharCode((31&xe)<<6|Oe)}else fe+=String.fromCharCode(xe)}return fe},JI=($,K)=>$?sg(nA,$,K):"",$o=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Xi=($,K)=>{for(var vA=$,qA=vA>>1,ee=qA+K/2;!(qA>=ee)&&lA[qA];)++qA;if((vA=qA<<1)-$>32&&$o)return $o.decode(nA.subarray($,vA));for(var fe="",xe=0;!(xe>=K/2);++xe){var Oe=mA[$+2*xe>>1];if(Oe==0)break;fe+=String.fromCharCode(Oe)}return fe},pc=($,K,vA)=>{if(vA===void 0&&(vA=2147483647),vA<2)return 0;for(var qA=K,ee=(vA-=2)<2*$.length?vA/2:$.length,fe=0;fe<ee;++fe){var xe=$.charCodeAt(fe);mA[K>>1]=xe,K+=2}return mA[K>>1]=0,K-qA},ng=$=>2*$.length,Dg=($,K)=>{for(var vA=0,qA="";!(vA>=K/4);){var ee=cA[$+4*vA>>2];if(ee==0)break;if(++vA,ee>=65536){var fe=ee-65536;qA+=String.fromCharCode(55296|fe>>10,56320|1023&fe)}else qA+=String.fromCharCode(ee)}return qA},ua=($,K,vA)=>{if(vA===void 0&&(vA=2147483647),vA<4)return 0;for(var qA=K,ee=qA+vA-4,fe=0;fe<$.length;++fe){var xe=$.charCodeAt(fe);if(xe>=55296&&xe<=57343&&(xe=65536+((1023&xe)<<10)|1023&$.charCodeAt(++fe)),cA[K>>2]=xe,(K+=4)+4>ee)break}return cA[K>>2]=0,K-qA},bo=$=>{for(var K=0,vA=0;vA<$.length;++vA){var qA=$.charCodeAt(vA);qA>=55296&&qA<=57343&&++vA,K+=4}return K},Zr=($,K)=>{var vA=jo[$];return vA===void 0&&Wt(K+" has unknown type "+yg($)),vA},_o=($,K,vA)=>{var qA=[],ee=$.toWireType(qA,vA);return qA.length&&(TA[K>>2]=cn.toHandle(qA)),ee},Hc={},Hn=[],Hs=Reflect.construct,Sg=[null,[],[]],mc=($,K)=>{var vA=Sg[$];K===0||K===10?(($===1?b:U)(sg(vA,0)),vA.length=0):vA.push(K)};(()=>{for(var $=new Array(256),K=0;K<256;++K)$[K]=String.fromCharCode(K);to=$})(),Eo=I.BindingError=class extends Error{constructor($){super($),this.name="BindingError"}},Vs=I.InternalError=class extends Error{constructor($){super($),this.name="InternalError"}},Object.assign(An.prototype,{isAliasOf($){if(!(this instanceof An)||!($ instanceof An))return!1;var K=this.$$.ptrType.registeredClass,vA=this.$$.ptr;$.$$=$.$$;for(var qA=$.$$.ptrType.registeredClass,ee=$.$$.ptr;K.baseClass;)vA=K.upcast(vA),K=K.baseClass;for(;qA.baseClass;)ee=qA.upcast(ee),qA=qA.baseClass;return K===qA&&vA===ee},clone(){if(this.$$.ptr||le(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var $,K=Go(Object.create(Object.getPrototypeOf(this),{$$:{value:($=this.$$,{count:$.count,deleteScheduled:$.deleteScheduled,preservePointerOnDelete:$.preservePointerOnDelete,ptr:$.ptr,ptrType:$.ptrType,smartPtr:$.smartPtr,smartPtrType:$.smartPtrType})}}));return K.$$.count.value+=1,K.$$.deleteScheduled=!1,K},delete(){this.$$.ptr||le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Wt("Object already scheduled for deletion"),Ft(this),nt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Wt("Object already scheduled for deletion"),Ze.push(this),Ze.length===1&&HA&&HA(vt),this.$$.deleteScheduled=!0,this}}),I.getInheritedInstanceCount=ei,I.getLiveInheritedInstances=ke,I.flushPendingDeletes=vt,I.setDelayFunction=_t,Object.assign(zr.prototype,{getPointee($){return this.rawGetPointee&&($=this.rawGetPointee($)),$},destructor($){this.rawDestructor&&this.rawDestructor($)},argPackAdvance:8,readValueFromPointer:ds,deleteObject($){$!==null&&$.delete()},fromWireType:oo}),Rs=I.UnboundTypeError=(Ls=Error,(ms=rn(Jc="UnboundTypeError",function($){this.name=Jc,this.message=$;var K=new Error($).stack;K!==void 0&&(this.stack=this.toString()+`
|
||
`+K.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Ls.prototype),ms.prototype.constructor=ms,ms.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},ms),Object.assign(mr.prototype,{get($){return this.allocated[$]},has($){return this.allocated[$]!==void 0},allocate($){var K=this.freelist.pop()||this.allocated.length;return this.allocated[K]=$,K},free($){this.allocated[$]=void 0,this.freelist.push($)}}),mo.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),mo.reserved=mo.allocated.length,I.count_emval_handles=Sl;var fn,Ga={w:($,K,vA)=>{throw new To($).init(K,vA),$},q:($,K,vA,qA,ee)=>{},u:($,K,vA,qA)=>{vs($,{name:K=ki(K),fromWireType:function(ee){return!!ee},toWireType:function(ee,fe){return fe?vA:qA},argPackAdvance:8,readValueFromPointer:function(ee){return this.fromWireType(nA[ee])},destructorFunction:null})},y:($,K,vA,qA,ee,fe,xe,Oe,rt,dt,Mt,xt,Ii)=>{Mt=ki(Mt),fe=Ht(ee,fe),Oe&&(Oe=Ht(xe,Oe)),dt&&(dt=Ht(rt,dt)),Ii=Ht(xt,Ii);var ct=(Pt=>{if(Pt===void 0)return"_unknown";var Ji=(Pt=Pt.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return Ji>=48&&Ji<=57?`_${Pt}`:Pt})(Mt);((Pt,Ji,Ki)=>{I.hasOwnProperty(Pt)?(Wt(`Cannot register public name '${Pt}' twice`),Es(I,Pt,Pt),I.hasOwnProperty(Ki)&&Wt(`Cannot register multiple overloads of a function with the same number of arguments (${Ki})!`),I[Pt].overloadTable[Ki]=Ji):I[Pt]=Ji})(ct,function(){On(`Cannot construct ${Mt} due to unbound types`,[qA])}),bi([$,K,vA],qA?[qA]:[],function(Pt){var Ji,Ki;Pt=Pt[0],Ki=qA?(Ji=Pt.registeredClass).instancePrototype:An.prototype;var qs=rn(Mt,function(){if(Object.getPrototypeOf(this)!==Mi)throw new Eo("Use 'new' to construct "+Mt);if(zo.constructor_body===void 0)throw new Eo(Mt+" has no accessible constructor");var xn=zo.constructor_body[arguments.length];if(xn===void 0)throw new Eo(`Tried to invoke ctor of ${Mt} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(zo.constructor_body).toString()}) parameters instead!`);return xn.apply(this,arguments)}),Mi=Object.create(Ki,{constructor:{value:qs}});qs.prototype=Mi;var zo=new an(Mt,qs,Mi,Ii,Ji,fe,Oe,dt);zo.baseClass&&(zo.baseClass.__derivedClasses===void 0&&(zo.baseClass.__derivedClasses=[]),zo.baseClass.__derivedClasses.push(zo));var Mg=new zr(Mt,zo,!0,!1,!1),sr=new zr(Mt+"*",zo,!1,!1,!1),yr=new zr(Mt+" const*",zo,!1,!0,!1);return Ai[$]={pointerType:sr,constPointerType:yr},((xn,Ml,Ks)=>{I.hasOwnProperty(xn)||io("Replacing nonexistant public symbol"),I[xn].overloadTable!==void 0&&Ks!==void 0?I[xn].overloadTable[Ks]=Ml:(I[xn]=Ml,I[xn].argCount=Ks)})(ct,qs),[Mg,sr,yr]})},x:($,K,vA,qA,ee,fe)=>{var xe=Gn(K,vA);ee=Ht(qA,ee),bi([],[$],function(Oe){var rt=`constructor ${(Oe=Oe[0]).name}`;if(Oe.registeredClass.constructor_body===void 0&&(Oe.registeredClass.constructor_body=[]),Oe.registeredClass.constructor_body[K-1]!==void 0)throw new Eo(`Cannot register multiple constructors with identical number of parameters (${K-1}) for class '${Oe.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Oe.registeredClass.constructor_body[K-1]=()=>{On(`Cannot construct ${Oe.name} due to unbound types`,xe)},bi([],xe,dt=>(dt.splice(1,0,null),Oe.registeredClass.constructor_body[K-1]=pr(rt,dt,null,ee,fe),[])),[]})},i:($,K,vA,qA,ee,fe,xe,Oe,rt)=>{var dt=Gn(vA,qA);K=(Mt=>{const xt=(Mt=Mt.trim()).indexOf("(");return xt!==-1?Mt.substr(0,xt):Mt})(K=ki(K)),fe=Ht(ee,fe),bi([],[$],function(Mt){var xt=`${(Mt=Mt[0]).name}.${K}`;function Ii(){On(`Cannot call ${xt} due to unbound types`,dt)}K.startsWith("@@")&&(K=Symbol[K.substring(2)]),Oe&&Mt.registeredClass.pureVirtualFunctions.push(K);var ct=Mt.registeredClass.instancePrototype,Pt=ct[K];return Pt===void 0||Pt.overloadTable===void 0&&Pt.className!==Mt.name&&Pt.argCount===vA-2?(Ii.argCount=vA-2,Ii.className=Mt.name,ct[K]=Ii):(Es(ct,K,xt),ct[K].overloadTable[vA-2]=Ii),bi([],dt,function(Ji){var Ki=pr(xt,Ji,Mt,fe,xe);return ct[K].overloadTable===void 0?(Ki.argCount=vA-2,ct[K]=Ki):ct[K].overloadTable[vA-2]=Ki,[]}),[]})},k:($,K,vA,qA,ee,fe,xe,Oe,rt,dt)=>{K=ki(K),ee=Ht(qA,ee),bi([],[$],function(Mt){var xt=`${(Mt=Mt[0]).name}.${K}`,Ii={get(){On(`Cannot access ${xt} due to unbound types`,[vA,xe])},enumerable:!0,configurable:!0};return Ii.set=rt?()=>On(`Cannot access ${xt} due to unbound types`,[vA,xe]):ct=>Wt(xt+" is a read-only property"),Object.defineProperty(Mt.registeredClass.instancePrototype,K,Ii),bi([],rt?[vA,xe]:[vA],function(ct){var Pt=ct[0],Ji={get(){var qs=Pn(this,Mt,xt+" getter");return Pt.fromWireType(ee(fe,qs))},enumerable:!0};if(rt){rt=Ht(Oe,rt);var Ki=ct[1];Ji.set=function(qs){var Mi=Pn(this,Mt,xt+" setter"),zo=[];rt(dt,Mi,Ki.toWireType(zo,qs)),Js(zo)}}return Object.defineProperty(Mt.registeredClass.instancePrototype,K,Ji),[]}),[]})},t:($,K)=>{vs($,{name:K=ki(K),fromWireType:vA=>{var qA=cn.toValue(vA);return gn(vA),qA},toWireType:(vA,qA)=>cn.toHandle(qA),argPackAdvance:8,readValueFromPointer:fr,destructorFunction:null})},p:($,K,vA)=>{vs($,{name:K=ki(K),fromWireType:qA=>qA,toWireType:(qA,ee)=>ee,argPackAdvance:8,readValueFromPointer:Mu(K,vA),destructorFunction:null})},g:($,K,vA,qA,ee)=>{K=ki(K);var fe=rt=>rt;if(qA===0){var xe=32-8*vA;fe=rt=>rt<<xe>>>xe}var Oe=K.includes("unsigned");vs($,{name:K,fromWireType:fe,toWireType:Oe?function(rt,dt){return this.name,dt>>>0}:function(rt,dt){return this.name,dt},argPackAdvance:8,readValueFromPointer:Wa(K,vA,qA!==0),destructorFunction:null})},a:($,K,vA)=>{var qA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][K];function ee(fe){var xe=TA[fe>>2],Oe=TA[fe+4>>2];return new qA(IA.buffer,Oe,xe)}vs($,{name:vA=ki(vA),fromWireType:ee,argPackAdvance:8,readValueFromPointer:ee},{ignoreDuplicateRegistrations:!0})},o:($,K)=>{var vA=(K=ki(K))==="std::string";vs($,{name:K,fromWireType(qA){var ee,fe=TA[qA>>2],xe=qA+4;if(vA)for(var Oe=xe,rt=0;rt<=fe;++rt){var dt=xe+rt;if(rt==fe||nA[dt]==0){var Mt=JI(Oe,dt-Oe);ee===void 0?ee=Mt:(ee+="\0",ee+=Mt),Oe=dt+1}}else{var xt=new Array(fe);for(rt=0;rt<fe;++rt)xt[rt]=String.fromCharCode(nA[xe+rt]);ee=xt.join("")}return yn(qA),ee},toWireType(qA,ee){var fe;ee instanceof ArrayBuffer&&(ee=new Uint8Array(ee));var xe=typeof ee=="string";xe||ee instanceof Uint8Array||ee instanceof Uint8ClampedArray||ee instanceof Int8Array||Wt("Cannot pass non-string to std::string"),fe=vA&&xe?(xt=>{for(var Ii=0,ct=0;ct<xt.length;++ct){var Pt=xt.charCodeAt(ct);Pt<=127?Ii++:Pt<=2047?Ii+=2:Pt>=55296&&Pt<=57343?(Ii+=4,++ct):Ii+=3}return Ii})(ee):ee.length;var Oe=fs(4+fe+1),rt=Oe+4;if(TA[Oe>>2]=fe,vA&&xe)((xt,Ii,ct,Pt)=>{if(!(Pt>0))return 0;for(var Ji=ct,Ki=ct+Pt-1,qs=0;qs<xt.length;++qs){var Mi=xt.charCodeAt(qs);if(Mi>=55296&&Mi<=57343&&(Mi=65536+((1023&Mi)<<10)|1023&xt.charCodeAt(++qs)),Mi<=127){if(ct>=Ki)break;Ii[ct++]=Mi}else if(Mi<=2047){if(ct+1>=Ki)break;Ii[ct++]=192|Mi>>6,Ii[ct++]=128|63&Mi}else if(Mi<=65535){if(ct+2>=Ki)break;Ii[ct++]=224|Mi>>12,Ii[ct++]=128|Mi>>6&63,Ii[ct++]=128|63&Mi}else{if(ct+3>=Ki)break;Ii[ct++]=240|Mi>>18,Ii[ct++]=128|Mi>>12&63,Ii[ct++]=128|Mi>>6&63,Ii[ct++]=128|63&Mi}}Ii[ct]=0})(ee,nA,rt,fe+1);else if(xe)for(var dt=0;dt<fe;++dt){var Mt=ee.charCodeAt(dt);Mt>255&&(yn(rt),Wt("String has UTF-16 code units that do not fit in 8 bits")),nA[rt+dt]=Mt}else for(dt=0;dt<fe;++dt)nA[rt+dt]=ee[dt];return qA!==null&&qA.push(yn,Oe),Oe},argPackAdvance:8,readValueFromPointer:ds,destructorFunction(qA){yn(qA)}})},l:($,K,vA)=>{var qA,ee,fe,xe,Oe;vA=ki(vA),K===2?(qA=Xi,ee=pc,xe=ng,fe=()=>lA,Oe=1):K===4&&(qA=Dg,ee=ua,xe=bo,fe=()=>TA,Oe=2),vs($,{name:vA,fromWireType:rt=>{for(var dt,Mt=TA[rt>>2],xt=fe(),Ii=rt+4,ct=0;ct<=Mt;++ct){var Pt=rt+4+ct*K;if(ct==Mt||xt[Pt>>Oe]==0){var Ji=qA(Ii,Pt-Ii);dt===void 0?dt=Ji:(dt+="\0",dt+=Ji),Ii=Pt+K}}return yn(rt),dt},toWireType:(rt,dt)=>{typeof dt!="string"&&Wt(`Cannot pass non-string to C++ string type ${vA}`);var Mt=xe(dt),xt=fs(4+Mt+K);return TA[xt>>2]=Mt>>Oe,ee(dt,xt+4,Mt+K),rt!==null&&rt.push(yn,xt),xt},argPackAdvance:8,readValueFromPointer:fr,destructorFunction(rt){yn(rt)}})},v:($,K)=>{vs($,{isVoid:!0,name:K=ki(K),argPackAdvance:0,fromWireType:()=>{},toWireType:(vA,qA)=>{}})},j:($,K,vA)=>($=cn.toValue($),K=Zr(K,"emval::as"),_o(K,vA,$)),e:($,K,vA,qA,ee)=>{var fe,xe;return($=Hn[$])(K=cn.toValue(K),K[vA=(xe=Hc[fe=vA])===void 0?ki(fe):xe],qA,ee)},d:gn,f:($,K,vA)=>{var qA=((dt,Mt)=>{for(var xt=new Array(dt),Ii=0;Ii<dt;++Ii)xt[Ii]=Zr(TA[Mt+4*Ii>>2],"parameter "+Ii);return xt})($,K),ee=qA.shift();$--;var fe,xe,Oe=new Array($),rt=`methodCaller<(${qA.map(dt=>dt.name).join(", ")}) => ${ee.name}>`;return fe=rn(rt,(dt,Mt,xt,Ii)=>{for(var ct=0,Pt=0;Pt<$;++Pt)Oe[Pt]=qA[Pt].readValueFromPointer(Ii+ct),ct+=qA[Pt].argPackAdvance;var Ji=vA===1?Hs(Mt,Oe):Mt.apply(dt,Oe);for(Pt=0;Pt<$;++Pt)qA[Pt].deleteObject&&qA[Pt].deleteObject(Oe[Pt]);return _o(ee,xt,Ji)}),xe=Hn.length,Hn.push(fe),xe},c:$=>{$>4&&(mo.get($).refcount+=1)},b:$=>{var K=cn.toValue($);Js(K),gn($)},h:($,K)=>{var vA=($=Zr($,"_emval_take_value")).readValueFromPointer(K);return cn.toHandle(vA)},m:()=>{ut("")},s:($,K,vA)=>nA.copyWithin($,K,K+vA),r:$=>{nA.length,ut("OOM")},n:($,K,vA,qA)=>{for(var ee=0,fe=0;fe<vA;fe++){var xe=TA[K>>2],Oe=TA[K+4>>2];K+=8;for(var rt=0;rt<Oe;rt++)mc($,nA[xe+rt]);ee+=Oe}return TA[qA>>2]=ee,0}},In=function(){var $={a:Ga};function K(vA,qA){var ee,fe;return In=vA.exports,_=In.z,ee=_.buffer,I.HEAP8=IA=new Int8Array(ee),I.HEAP16=mA=new Int16Array(ee),I.HEAPU8=nA=new Uint8Array(ee),I.HEAPU16=lA=new Uint16Array(ee),I.HEAP32=cA=new Int32Array(ee),I.HEAPU32=TA=new Uint32Array(ee),I.HEAPF32=WA=new Float32Array(ee),I.HEAPF64=Ee=new Float64Array(ee),Pi=In.C,fe=In.A,pe.unshift(fe),function(){if(Dt--,I.monitorRunDependencies&&I.monitorRunDependencies(Dt),Dt==0&&Kt){var xe=Kt;Kt=null,xe()}}(),In}if(Dt++,I.monitorRunDependencies&&I.monitorRunDependencies(Dt),I.instantiateWasm)try{return I.instantiateWasm($,K)}catch(vA){U(`Module.instantiateWasm callback failed with error: ${vA}`),l(vA)}return gi(0,ge,$,function(vA){K(vA.instance)}).catch(l),{}}(),fs=$=>(fs=In.B)($),Ea=$=>(Ea=In.D)($),yn=$=>(yn=In.E)($),ba=$=>(ba=In.F)($);I.dynCall_jiji=($,K,vA,qA,ee)=>(I.dynCall_jiji=In.G)($,K,vA,qA,ee),I._vertexShaderSource=10688;function Sa(){function $(){fn||(fn=!0,I.calledRun=!0,de||(Fi(pe),r(I),I.onRuntimeInitialized&&I.onRuntimeInitialized(),function(){if(I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;)We(I.postRun.shift());Fi(gt)}()))}Dt>0||(function(){if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)pt(I.preRun.shift());Fi(Pe)}(),Dt>0||(I.setStatus?(I.setStatus("Running..."),setTimeout(function(){setTimeout(function(){I.setStatus("")},1),$()},1)):$()))}if(Kt=function $(){fn||Sa(),fn||(Kt=$)},I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();return Sa(),i.ready}})(),daA=EaA,um=typeof navigator>"u"?"":navigator.userAgent,xs=t=>new RegExp(t,"i").test(um),Bc=t=>{if(xs(t)){const i=new RegExp(`${t}\\/([\\d.]+)`),r=um.match(i);if(r&&r[1])return r[1]}return""},lV=t=>{if(xs(t)){const i=new RegExp(`${t}\\/(\\d+)`),r=um.match(i);if(r&&r[1])return parseFloat(r[1])}return NaN},Z8=/AppleWebKit\/([\d.]+)/i.exec(um);Z8&&parseFloat(Z8[1]);var V9=xs("iPad"),J9=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&xs("Macintosh"),H9=xs("iPhone")&&!V9,CaA=xs("iPod"),q9=H9||V9||CaA||J9,LW=xs("Android"),haA=function(){if(LW){const t=um.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}();LW&&xs("webkit")&&haA<2.3;var BaA=xs("Firefox"),QaA=Bc("Firefox");lV("Firefox");var K9=xs("Edge"),paA=Bc("Edge"),j9=xs("Edg"),maA=Bc("Edg");lV("Edg");var W9=xs("SogouMobileBrowser"),faA=Bc("SogouMobileBrowser"),z9=xs("MetaSr\\s"),yaA=Bc("MetaSr\\s"),Gv=xs("TBS"),DaA=Bc("TBS"),Z9=xs("XWEB"),SaA=Bc("XWEB");xs("MSIE\\s8\\.0");var MaA=xs("MSIE\\/\\d+");(function(){if(MaA){const t=/MSIE\s(\d+)\.\d/.exec(um);let i=t&&parseFloat(t[1]);return!i&&/Trident\/7.0/i.test(um)&&/rv:11.0/.test(um)&&(i=11),i}return NaN})();var vaA=xs("(micromessenger|webbrowser)"),RaA=Bc("MicroMessenger"),UW=!Gv&&xs("MQQBrowser")&&xs("COVC"),FW=!Gv&&xs("MQQBrowser")&&!xs("COVC"),X8=FW||UW?Bc("MQQBrowser"):"",X9=!Gv&&xs(" QQBrowser"),waA=Bc(" QQBrowser"),$9=!Gv&&xs("QQBrowserLite"),_aA=Bc("QQBrowserLite"),AX=!Gv&&xs("MQBHD"),TaA=Bc("MQBHD");xs("Windows");!q9&&xs("MAC OS X");!LW&&xs("Linux");xs("CrOS");xs("MicroMessenger");xs("UCBrowser");xs("Electron");var eX=xs("MiuiBrowser"),NaA=Bc("MiuiBrowser"),tX=xs("HuaweiBrowser");xs("Huawei")||xs("HUAWEI");xs("Honor")||xs("HONOR");var GaA=Bc("HuaweiBrowser"),iX=xs("SamsungBrowser"),baA=Bc("SamsungBrowser"),oX=xs("HeyTapBrowser"),kaA=Bc("HeyTapBrowser"),sX=xs("VivoBrowser"),LaA=Bc("VivoBrowser");xs("OpenHarmony");Bc("OpenHarmony");var UaA=()=>lV("Chrome"),$8=xs("CriOS"),nX=xs("Chrome"),FaA=!K9&&!z9&&!W9&&!Gv&&!Z9&&!j9&&!X9&&!eX&&!tX&&!iX&&!oX&&!sX&&nX;xs("HeadlessChrome");var OaA=UaA(),PaA=Bc("Chrome");lV("Electron");var xaA=!nX&&!FW&&!UW&&!$9&&!AX&&xs("Safari"),rX=Bc("Version"),aX=(()=>{if(J9)return rX;if(q9){const t=um.match(/OS (\d+)_(\d+)/i);if(t&&t[1]){let i=t[1];return t[2]&&(i+=`.${t[2]}`),i}}return""})();Number(aX.split(".")[0]);(()=>{const t=Number(aX.split(".")[0]);return t===14||t===13})();YaA();function YaA(){const t=new Map([[BaA,["Firefox",QaA]],[j9,["Edg",maA]],[FaA,["Chrome",PaA]],[$8,["ChiOS",Bc("CriOS")]],[xaA&&!$8,["Safari",rX]],[Gv,["TBS",DaA]],[Z9,["XWEB",SaA]],[vaA&&H9,["WeChat",RaA]],[X9,["QQ(Win)",waA]],[FW,["QQ(Mobile)",X8]],[UW,["QQ(Mobile X5)",X8]],[$9,["QQ(Mac)",_aA]],[AX,["QQ(iPad)",TaA]],[eX,["MI",NaA]],[tX,["HW",GaA]],[iX,["Samsung",baA]],[oX,["OPPO",kaA]],[sX,["VIVO",LaA]],[K9,["EDGE",paA]],[W9,["SogouMobile",faA]],[z9,["Sogou",yaA]]]);let i="unknown",r="unknown";return t.has(!0)&&([i,r]=t.get(!0)),{name:i,version:r}}var dc=1e-6,tT=typeof Float32Array<"u"?Float32Array:Array,gX={};function VaA(){var t=new tT(16);return tT!=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 JaA(t){var i=new tT(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 HaA(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 qaA(t,i,r,l,I,h,f,w,_,b,U,j,IA,nA,mA,lA){var cA=new tT(16);return cA[0]=t,cA[1]=i,cA[2]=r,cA[3]=l,cA[4]=I,cA[5]=h,cA[6]=f,cA[7]=w,cA[8]=_,cA[9]=b,cA[10]=U,cA[11]=j,cA[12]=IA,cA[13]=nA,cA[14]=mA,cA[15]=lA,cA}function KaA(t,i,r,l,I,h,f,w,_,b,U,j,IA,nA,mA,lA,cA){return t[0]=i,t[1]=r,t[2]=l,t[3]=I,t[4]=h,t[5]=f,t[6]=w,t[7]=_,t[8]=b,t[9]=U,t[10]=j,t[11]=IA,t[12]=nA,t[13]=mA,t[14]=lA,t[15]=cA,t}function cX(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 jaA(t,i){if(t===i){var r=i[1],l=i[2],I=i[3],h=i[6],f=i[7],w=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]=l,t[9]=h,t[11]=i[14],t[12]=I,t[13]=f,t[14]=w}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 WaA(t,i){var r=i[0],l=i[1],I=i[2],h=i[3],f=i[4],w=i[5],_=i[6],b=i[7],U=i[8],j=i[9],IA=i[10],nA=i[11],mA=i[12],lA=i[13],cA=i[14],TA=i[15],WA=r*w-l*f,Ee=r*_-I*f,de=r*b-h*f,Pe=l*_-I*w,pe=l*b-h*w,gt=I*b-h*_,pt=U*lA-j*mA,We=U*cA-IA*mA,Dt=U*TA-nA*mA,Kt=j*cA-IA*lA,ut=j*TA-nA*lA,ge=IA*TA-nA*cA,XA=WA*ge-Ee*ut+de*Kt+Pe*Dt-pe*We+gt*pt;return XA?(XA=1/XA,t[0]=(w*ge-_*ut+b*Kt)*XA,t[1]=(I*ut-l*ge-h*Kt)*XA,t[2]=(lA*gt-cA*pe+TA*Pe)*XA,t[3]=(IA*pe-j*gt-nA*Pe)*XA,t[4]=(_*Dt-f*ge-b*We)*XA,t[5]=(r*ge-I*Dt+h*We)*XA,t[6]=(cA*de-mA*gt-TA*Ee)*XA,t[7]=(U*gt-IA*de+nA*Ee)*XA,t[8]=(f*ut-w*Dt+b*pt)*XA,t[9]=(l*Dt-r*ut-h*pt)*XA,t[10]=(mA*pe-lA*de+TA*WA)*XA,t[11]=(j*de-U*pe-nA*WA)*XA,t[12]=(w*We-f*Kt-_*pt)*XA,t[13]=(r*Kt-l*We+I*pt)*XA,t[14]=(lA*Ee-mA*Pe-cA*WA)*XA,t[15]=(U*Pe-j*Ee+IA*WA)*XA,t):null}function zaA(t,i){var r=i[0],l=i[1],I=i[2],h=i[3],f=i[4],w=i[5],_=i[6],b=i[7],U=i[8],j=i[9],IA=i[10],nA=i[11],mA=i[12],lA=i[13],cA=i[14],TA=i[15],WA=r*w-l*f,Ee=r*_-I*f,de=r*b-h*f,Pe=l*_-I*w,pe=l*b-h*w,gt=I*b-h*_,pt=U*lA-j*mA,We=U*cA-IA*mA,Dt=U*TA-nA*mA,Kt=j*cA-IA*lA,ut=j*TA-nA*lA,ge=IA*TA-nA*cA;return t[0]=w*ge-_*ut+b*Kt,t[1]=I*ut-l*ge-h*Kt,t[2]=lA*gt-cA*pe+TA*Pe,t[3]=IA*pe-j*gt-nA*Pe,t[4]=_*Dt-f*ge-b*We,t[5]=r*ge-I*Dt+h*We,t[6]=cA*de-mA*gt-TA*Ee,t[7]=U*gt-IA*de+nA*Ee,t[8]=f*ut-w*Dt+b*pt,t[9]=l*Dt-r*ut-h*pt,t[10]=mA*pe-lA*de+TA*WA,t[11]=j*de-U*pe-nA*WA,t[12]=w*We-f*Kt-_*pt,t[13]=r*Kt-l*We+I*pt,t[14]=lA*Ee-mA*Pe-cA*WA,t[15]=U*Pe-j*Ee+IA*WA,t}function ZaA(t){var i=t[0],r=t[1],l=t[2],I=t[3],h=t[4],f=t[5],w=t[6],_=t[7],b=t[8],U=t[9],j=t[10],IA=t[11],nA=t[12],mA=t[13],lA=t[14],cA=i*f-r*h,TA=i*w-l*h,WA=r*w-l*f,Ee=b*mA-U*nA,de=b*lA-j*nA,Pe=U*lA-j*mA;return _*(i*Pe-r*de+l*Ee)-I*(h*Pe-f*de+w*Ee)+t[15]*(b*WA-U*TA+j*cA)-IA*(nA*WA-mA*TA+lA*cA)}function lX(t,i,r){var l=i[0],I=i[1],h=i[2],f=i[3],w=i[4],_=i[5],b=i[6],U=i[7],j=i[8],IA=i[9],nA=i[10],mA=i[11],lA=i[12],cA=i[13],TA=i[14],WA=i[15],Ee=r[0],de=r[1],Pe=r[2],pe=r[3];return t[0]=Ee*l+de*w+Pe*j+pe*lA,t[1]=Ee*I+de*_+Pe*IA+pe*cA,t[2]=Ee*h+de*b+Pe*nA+pe*TA,t[3]=Ee*f+de*U+Pe*mA+pe*WA,Ee=r[4],de=r[5],Pe=r[6],pe=r[7],t[4]=Ee*l+de*w+Pe*j+pe*lA,t[5]=Ee*I+de*_+Pe*IA+pe*cA,t[6]=Ee*h+de*b+Pe*nA+pe*TA,t[7]=Ee*f+de*U+Pe*mA+pe*WA,Ee=r[8],de=r[9],Pe=r[10],pe=r[11],t[8]=Ee*l+de*w+Pe*j+pe*lA,t[9]=Ee*I+de*_+Pe*IA+pe*cA,t[10]=Ee*h+de*b+Pe*nA+pe*TA,t[11]=Ee*f+de*U+Pe*mA+pe*WA,Ee=r[12],de=r[13],Pe=r[14],pe=r[15],t[12]=Ee*l+de*w+Pe*j+pe*lA,t[13]=Ee*I+de*_+Pe*IA+pe*cA,t[14]=Ee*h+de*b+Pe*nA+pe*TA,t[15]=Ee*f+de*U+Pe*mA+pe*WA,t}function XaA(t,i,r){var l,I,h,f,w,_,b,U,j,IA,nA,mA,lA=r[0],cA=r[1],TA=r[2];return i===t?(t[12]=i[0]*lA+i[4]*cA+i[8]*TA+i[12],t[13]=i[1]*lA+i[5]*cA+i[9]*TA+i[13],t[14]=i[2]*lA+i[6]*cA+i[10]*TA+i[14],t[15]=i[3]*lA+i[7]*cA+i[11]*TA+i[15]):(l=i[0],I=i[1],h=i[2],f=i[3],w=i[4],_=i[5],b=i[6],U=i[7],j=i[8],IA=i[9],nA=i[10],mA=i[11],t[0]=l,t[1]=I,t[2]=h,t[3]=f,t[4]=w,t[5]=_,t[6]=b,t[7]=U,t[8]=j,t[9]=IA,t[10]=nA,t[11]=mA,t[12]=l*lA+w*cA+j*TA+i[12],t[13]=I*lA+_*cA+IA*TA+i[13],t[14]=h*lA+b*cA+nA*TA+i[14],t[15]=f*lA+U*cA+mA*TA+i[15]),t}function $aA(t,i,r){var l=r[0],I=r[1],h=r[2];return t[0]=i[0]*l,t[1]=i[1]*l,t[2]=i[2]*l,t[3]=i[3]*l,t[4]=i[4]*I,t[5]=i[5]*I,t[6]=i[6]*I,t[7]=i[7]*I,t[8]=i[8]*h,t[9]=i[9]*h,t[10]=i[10]*h,t[11]=i[11]*h,t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],t}function AgA(t,i,r,l){var I,h,f,w,_,b,U,j,IA,nA,mA,lA,cA,TA,WA,Ee,de,Pe,pe,gt,pt,We,Dt,Kt,ut=l[0],ge=l[1],XA=l[2],_e=Math.sqrt(ut*ut+ge*ge+XA*XA);return _e<dc?null:(ut*=_e=1/_e,ge*=_e,XA*=_e,I=Math.sin(r),f=1-(h=Math.cos(r)),w=i[0],_=i[1],b=i[2],U=i[3],j=i[4],IA=i[5],nA=i[6],mA=i[7],lA=i[8],cA=i[9],TA=i[10],WA=i[11],Ee=ut*ut*f+h,de=ge*ut*f+XA*I,Pe=XA*ut*f-ge*I,pe=ut*ge*f-XA*I,gt=ge*ge*f+h,pt=XA*ge*f+ut*I,We=ut*XA*f+ge*I,Dt=ge*XA*f-ut*I,Kt=XA*XA*f+h,t[0]=w*Ee+j*de+lA*Pe,t[1]=_*Ee+IA*de+cA*Pe,t[2]=b*Ee+nA*de+TA*Pe,t[3]=U*Ee+mA*de+WA*Pe,t[4]=w*pe+j*gt+lA*pt,t[5]=_*pe+IA*gt+cA*pt,t[6]=b*pe+nA*gt+TA*pt,t[7]=U*pe+mA*gt+WA*pt,t[8]=w*We+j*Dt+lA*Kt,t[9]=_*We+IA*Dt+cA*Kt,t[10]=b*We+nA*Dt+TA*Kt,t[11]=U*We+mA*Dt+WA*Kt,i!==t&&(t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15]),t)}function egA(t,i,r){var l=Math.sin(r),I=Math.cos(r),h=i[4],f=i[5],w=i[6],_=i[7],b=i[8],U=i[9],j=i[10],IA=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]=h*I+b*l,t[5]=f*I+U*l,t[6]=w*I+j*l,t[7]=_*I+IA*l,t[8]=b*I-h*l,t[9]=U*I-f*l,t[10]=j*I-w*l,t[11]=IA*I-_*l,t}function tgA(t,i,r){var l=Math.sin(r),I=Math.cos(r),h=i[0],f=i[1],w=i[2],_=i[3],b=i[8],U=i[9],j=i[10],IA=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]=h*I-b*l,t[1]=f*I-U*l,t[2]=w*I-j*l,t[3]=_*I-IA*l,t[8]=h*l+b*I,t[9]=f*l+U*I,t[10]=w*l+j*I,t[11]=_*l+IA*I,t}function igA(t,i,r){var l=Math.sin(r),I=Math.cos(r),h=i[0],f=i[1],w=i[2],_=i[3],b=i[4],U=i[5],j=i[6],IA=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]=h*I+b*l,t[1]=f*I+U*l,t[2]=w*I+j*l,t[3]=_*I+IA*l,t[4]=b*I-h*l,t[5]=U*I-f*l,t[6]=j*I-w*l,t[7]=IA*I-_*l,t}function ogA(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 sgA(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 ngA(t,i,r){var l,I,h,f=r[0],w=r[1],_=r[2],b=Math.sqrt(f*f+w*w+_*_);return b<dc?null:(f*=b=1/b,w*=b,_*=b,l=Math.sin(i),h=1-(I=Math.cos(i)),t[0]=f*f*h+I,t[1]=w*f*h+_*l,t[2]=_*f*h-w*l,t[3]=0,t[4]=f*w*h-_*l,t[5]=w*w*h+I,t[6]=_*w*h+f*l,t[7]=0,t[8]=f*_*h+w*l,t[9]=w*_*h-f*l,t[10]=_*_*h+I,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function rgA(t,i){var r=Math.sin(i),l=Math.cos(i);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function agA(t,i){var r=Math.sin(i),l=Math.cos(i);return t[0]=l,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]=l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ggA(t,i){var r=Math.sin(i),l=Math.cos(i);return t[0]=l,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=l,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 IX(t,i,r){var l=i[0],I=i[1],h=i[2],f=i[3],w=l+l,_=I+I,b=h+h,U=l*w,j=l*_,IA=l*b,nA=I*_,mA=I*b,lA=h*b,cA=f*w,TA=f*_,WA=f*b;return t[0]=1-(nA+lA),t[1]=j+WA,t[2]=IA-TA,t[3]=0,t[4]=j-WA,t[5]=1-(U+lA),t[6]=mA+cA,t[7]=0,t[8]=IA+TA,t[9]=mA-cA,t[10]=1-(U+nA),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function cgA(t,i){var r=new tT(3),l=-i[0],I=-i[1],h=-i[2],f=i[3],w=i[4],_=i[5],b=i[6],U=i[7],j=l*l+I*I+h*h+f*f;return j>0?(r[0]=2*(w*f+U*l+_*h-b*I)/j,r[1]=2*(_*f+U*I+b*l-w*h)/j,r[2]=2*(b*f+U*h+w*I-_*l)/j):(r[0]=2*(w*f+U*l+_*h-b*I),r[1]=2*(_*f+U*I+b*l-w*h),r[2]=2*(b*f+U*h+w*I-_*l)),IX(t,i,r),t}function lgA(t,i){return t[0]=i[12],t[1]=i[13],t[2]=i[14],t}function uX(t,i){var r=i[0],l=i[1],I=i[2],h=i[4],f=i[5],w=i[6],_=i[8],b=i[9],U=i[10];return t[0]=Math.sqrt(r*r+l*l+I*I),t[1]=Math.sqrt(h*h+f*f+w*w),t[2]=Math.sqrt(_*_+b*b+U*U),t}function IgA(t,i){var r=new tT(3);uX(r,i);var l=1/r[0],I=1/r[1],h=1/r[2],f=i[0]*l,w=i[1]*I,_=i[2]*h,b=i[4]*l,U=i[5]*I,j=i[6]*h,IA=i[8]*l,nA=i[9]*I,mA=i[10]*h,lA=f+U+mA,cA=0;return lA>0?(cA=2*Math.sqrt(lA+1),t[3]=.25*cA,t[0]=(j-nA)/cA,t[1]=(IA-_)/cA,t[2]=(w-b)/cA):f>U&&f>mA?(cA=2*Math.sqrt(1+f-U-mA),t[3]=(j-nA)/cA,t[0]=.25*cA,t[1]=(w+b)/cA,t[2]=(IA+_)/cA):U>mA?(cA=2*Math.sqrt(1+U-f-mA),t[3]=(IA-_)/cA,t[0]=(w+b)/cA,t[1]=.25*cA,t[2]=(j+nA)/cA):(cA=2*Math.sqrt(1+mA-f-U),t[3]=(w-b)/cA,t[0]=(IA+_)/cA,t[1]=(j+nA)/cA,t[2]=.25*cA),t}function ugA(t,i,r,l){i[0]=l[12],i[1]=l[13],i[2]=l[14];var I=l[0],h=l[1],f=l[2],w=l[4],_=l[5],b=l[6],U=l[8],j=l[9],IA=l[10];r[0]=Math.sqrt(I*I+h*h+f*f),r[1]=Math.sqrt(w*w+_*_+b*b),r[2]=Math.sqrt(U*U+j*j+IA*IA);var nA=1/r[0],mA=1/r[1],lA=1/r[2],cA=I*nA,TA=h*mA,WA=f*lA,Ee=w*nA,de=_*mA,Pe=b*lA,pe=U*nA,gt=j*mA,pt=IA*lA,We=cA+de+pt,Dt=0;return We>0?(Dt=2*Math.sqrt(We+1),t[3]=.25*Dt,t[0]=(Pe-gt)/Dt,t[1]=(pe-WA)/Dt,t[2]=(TA-Ee)/Dt):cA>de&&cA>pt?(Dt=2*Math.sqrt(1+cA-de-pt),t[3]=(Pe-gt)/Dt,t[0]=.25*Dt,t[1]=(TA+Ee)/Dt,t[2]=(pe+WA)/Dt):de>pt?(Dt=2*Math.sqrt(1+de-cA-pt),t[3]=(pe-WA)/Dt,t[0]=(TA+Ee)/Dt,t[1]=.25*Dt,t[2]=(Pe+gt)/Dt):(Dt=2*Math.sqrt(1+pt-cA-de),t[3]=(TA-Ee)/Dt,t[0]=(pe+WA)/Dt,t[1]=(Pe+gt)/Dt,t[2]=.25*Dt),t}function EgA(t,i,r,l){var I=i[0],h=i[1],f=i[2],w=i[3],_=I+I,b=h+h,U=f+f,j=I*_,IA=I*b,nA=I*U,mA=h*b,lA=h*U,cA=f*U,TA=w*_,WA=w*b,Ee=w*U,de=l[0],Pe=l[1],pe=l[2];return t[0]=(1-(mA+cA))*de,t[1]=(IA+Ee)*de,t[2]=(nA-WA)*de,t[3]=0,t[4]=(IA-Ee)*Pe,t[5]=(1-(j+cA))*Pe,t[6]=(lA+TA)*Pe,t[7]=0,t[8]=(nA+WA)*pe,t[9]=(lA-TA)*pe,t[10]=(1-(j+mA))*pe,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function dgA(t,i,r,l,I){var h=i[0],f=i[1],w=i[2],_=i[3],b=h+h,U=f+f,j=w+w,IA=h*b,nA=h*U,mA=h*j,lA=f*U,cA=f*j,TA=w*j,WA=_*b,Ee=_*U,de=_*j,Pe=l[0],pe=l[1],gt=l[2],pt=I[0],We=I[1],Dt=I[2],Kt=(1-(lA+TA))*Pe,ut=(nA+de)*Pe,ge=(mA-Ee)*Pe,XA=(nA-de)*pe,_e=(1-(IA+TA))*pe,je=(cA+WA)*pe,Ut=(mA+Ee)*gt,gi=(cA-WA)*gt,Fi=(1-(IA+lA))*gt;return t[0]=Kt,t[1]=ut,t[2]=ge,t[3]=0,t[4]=XA,t[5]=_e,t[6]=je,t[7]=0,t[8]=Ut,t[9]=gi,t[10]=Fi,t[11]=0,t[12]=r[0]+pt-(Kt*pt+XA*We+Ut*Dt),t[13]=r[1]+We-(ut*pt+_e*We+gi*Dt),t[14]=r[2]+Dt-(ge*pt+je*We+Fi*Dt),t[15]=1,t}function CgA(t,i){var r=i[0],l=i[1],I=i[2],h=i[3],f=r+r,w=l+l,_=I+I,b=r*f,U=l*f,j=l*w,IA=I*f,nA=I*w,mA=I*_,lA=h*f,cA=h*w,TA=h*_;return t[0]=1-j-mA,t[1]=U+TA,t[2]=IA-cA,t[3]=0,t[4]=U-TA,t[5]=1-b-mA,t[6]=nA+lA,t[7]=0,t[8]=IA+cA,t[9]=nA-lA,t[10]=1-b-j,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function hgA(t,i,r,l,I,h,f){var w=1/(r-i),_=1/(I-l),b=1/(h-f);return t[0]=2*h*w,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*h*_,t[6]=0,t[7]=0,t[8]=(r+i)*w,t[9]=(I+l)*_,t[10]=(f+h)*b,t[11]=-1,t[12]=0,t[13]=0,t[14]=f*h*2*b,t[15]=0,t}function EX(t,i,r,l,I){var h=1/Math.tan(i/2);if(t[0]=h/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,I!=null&&I!==1/0){var f=1/(l-I);t[10]=(I+l)*f,t[14]=2*I*l*f}else t[10]=-1,t[14]=-2*l;return t}aaA(gX,{add:()=>vgA,adjoint:()=>zaA,clone:()=>JaA,copy:()=>HaA,create:()=>VaA,decompose:()=>ugA,determinant:()=>ZaA,equals:()=>TgA,exactEquals:()=>_gA,frob:()=>MgA,fromQuat:()=>CgA,fromQuat2:()=>cgA,fromRotation:()=>ngA,fromRotationTranslation:()=>IX,fromRotationTranslationScale:()=>EgA,fromRotationTranslationScaleOrigin:()=>dgA,fromScaling:()=>sgA,fromTranslation:()=>ogA,fromValues:()=>qaA,fromXRotation:()=>rgA,fromYRotation:()=>agA,fromZRotation:()=>ggA,frustum:()=>hgA,getRotation:()=>IgA,getScaling:()=>uX,getTranslation:()=>lgA,identity:()=>cX,invert:()=>WaA,lookAt:()=>ygA,mul:()=>NgA,multiply:()=>lX,multiplyScalar:()=>RgA,multiplyScalarAndAdd:()=>wgA,ortho:()=>mgA,orthoNO:()=>dX,orthoZO:()=>fgA,perspective:()=>BgA,perspectiveFromFieldOfView:()=>pgA,perspectiveNO:()=>EX,perspectiveZO:()=>QgA,rotate:()=>AgA,rotateX:()=>egA,rotateY:()=>tgA,rotateZ:()=>igA,scale:()=>$aA,set:()=>KaA,str:()=>SgA,sub:()=>GgA,subtract:()=>CX,targetTo:()=>DgA,translate:()=>XaA,transpose:()=>jaA});var BgA=EX;function QgA(t,i,r,l,I){var h=1/Math.tan(i/2);if(t[0]=h/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,I!=null&&I!==1/0){var f=1/(l-I);t[10]=I*f,t[14]=I*l*f}else t[10]=-1,t[14]=-l;return t}function pgA(t,i,r,l){var I=Math.tan(i.upDegrees*Math.PI/180),h=Math.tan(i.downDegrees*Math.PI/180),f=Math.tan(i.leftDegrees*Math.PI/180),w=Math.tan(i.rightDegrees*Math.PI/180),_=2/(f+w),b=2/(I+h);return t[0]=_,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=b,t[6]=0,t[7]=0,t[8]=-(f-w)*_*.5,t[9]=(I-h)*b*.5,t[10]=l/(r-l),t[11]=-1,t[12]=0,t[13]=0,t[14]=l*r/(r-l),t[15]=0,t}function dX(t,i,r,l,I,h,f){var w=1/(i-r),_=1/(l-I),b=1/(h-f);return t[0]=-2*w,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*_,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*b,t[11]=0,t[12]=(i+r)*w,t[13]=(I+l)*_,t[14]=(f+h)*b,t[15]=1,t}var mgA=dX;function fgA(t,i,r,l,I,h,f){var w=1/(i-r),_=1/(l-I),b=1/(h-f);return t[0]=-2*w,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*_,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=b,t[11]=0,t[12]=(i+r)*w,t[13]=(I+l)*_,t[14]=h*b,t[15]=1,t}function ygA(t,i,r,l){var I,h,f,w,_,b,U,j,IA,nA,mA=i[0],lA=i[1],cA=i[2],TA=l[0],WA=l[1],Ee=l[2],de=r[0],Pe=r[1],pe=r[2];return Math.abs(mA-de)<dc&&Math.abs(lA-Pe)<dc&&Math.abs(cA-pe)<dc?cX(t):(U=mA-de,j=lA-Pe,IA=cA-pe,I=WA*(IA*=nA=1/Math.sqrt(U*U+j*j+IA*IA))-Ee*(j*=nA),h=Ee*(U*=nA)-TA*IA,f=TA*j-WA*U,(nA=Math.sqrt(I*I+h*h+f*f))?(I*=nA=1/nA,h*=nA,f*=nA):(I=0,h=0,f=0),w=j*f-IA*h,_=IA*I-U*f,b=U*h-j*I,(nA=Math.sqrt(w*w+_*_+b*b))?(w*=nA=1/nA,_*=nA,b*=nA):(w=0,_=0,b=0),t[0]=I,t[1]=w,t[2]=U,t[3]=0,t[4]=h,t[5]=_,t[6]=j,t[7]=0,t[8]=f,t[9]=b,t[10]=IA,t[11]=0,t[12]=-(I*mA+h*lA+f*cA),t[13]=-(w*mA+_*lA+b*cA),t[14]=-(U*mA+j*lA+IA*cA),t[15]=1,t)}function DgA(t,i,r,l){var I=i[0],h=i[1],f=i[2],w=l[0],_=l[1],b=l[2],U=I-r[0],j=h-r[1],IA=f-r[2],nA=U*U+j*j+IA*IA;nA>0&&(U*=nA=1/Math.sqrt(nA),j*=nA,IA*=nA);var mA=_*IA-b*j,lA=b*U-w*IA,cA=w*j-_*U;return(nA=mA*mA+lA*lA+cA*cA)>0&&(mA*=nA=1/Math.sqrt(nA),lA*=nA,cA*=nA),t[0]=mA,t[1]=lA,t[2]=cA,t[3]=0,t[4]=j*cA-IA*lA,t[5]=IA*mA-U*cA,t[6]=U*lA-j*mA,t[7]=0,t[8]=U,t[9]=j,t[10]=IA,t[11]=0,t[12]=I,t[13]=h,t[14]=f,t[15]=1,t}function SgA(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 MgA(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 vgA(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 CX(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 RgA(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 wgA(t,i,r,l){return t[0]=i[0]+r[0]*l,t[1]=i[1]+r[1]*l,t[2]=i[2]+r[2]*l,t[3]=i[3]+r[3]*l,t[4]=i[4]+r[4]*l,t[5]=i[5]+r[5]*l,t[6]=i[6]+r[6]*l,t[7]=i[7]+r[7]*l,t[8]=i[8]+r[8]*l,t[9]=i[9]+r[9]*l,t[10]=i[10]+r[10]*l,t[11]=i[11]+r[11]*l,t[12]=i[12]+r[12]*l,t[13]=i[13]+r[13]*l,t[14]=i[14]+r[14]*l,t[15]=i[15]+r[15]*l,t}function _gA(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 TgA(t,i){var r=t[0],l=t[1],I=t[2],h=t[3],f=t[4],w=t[5],_=t[6],b=t[7],U=t[8],j=t[9],IA=t[10],nA=t[11],mA=t[12],lA=t[13],cA=t[14],TA=t[15],WA=i[0],Ee=i[1],de=i[2],Pe=i[3],pe=i[4],gt=i[5],pt=i[6],We=i[7],Dt=i[8],Kt=i[9],ut=i[10],ge=i[11],XA=i[12],_e=i[13],je=i[14],Ut=i[15];return Math.abs(r-WA)<=dc*Math.max(1,Math.abs(r),Math.abs(WA))&&Math.abs(l-Ee)<=dc*Math.max(1,Math.abs(l),Math.abs(Ee))&&Math.abs(I-de)<=dc*Math.max(1,Math.abs(I),Math.abs(de))&&Math.abs(h-Pe)<=dc*Math.max(1,Math.abs(h),Math.abs(Pe))&&Math.abs(f-pe)<=dc*Math.max(1,Math.abs(f),Math.abs(pe))&&Math.abs(w-gt)<=dc*Math.max(1,Math.abs(w),Math.abs(gt))&&Math.abs(_-pt)<=dc*Math.max(1,Math.abs(_),Math.abs(pt))&&Math.abs(b-We)<=dc*Math.max(1,Math.abs(b),Math.abs(We))&&Math.abs(U-Dt)<=dc*Math.max(1,Math.abs(U),Math.abs(Dt))&&Math.abs(j-Kt)<=dc*Math.max(1,Math.abs(j),Math.abs(Kt))&&Math.abs(IA-ut)<=dc*Math.max(1,Math.abs(IA),Math.abs(ut))&&Math.abs(nA-ge)<=dc*Math.max(1,Math.abs(nA),Math.abs(ge))&&Math.abs(mA-XA)<=dc*Math.max(1,Math.abs(mA),Math.abs(XA))&&Math.abs(lA-_e)<=dc*Math.max(1,Math.abs(lA),Math.abs(_e))&&Math.abs(cA-je)<=dc*Math.max(1,Math.abs(cA),Math.abs(je))&&Math.abs(TA-Ut)<=dc*Math.max(1,Math.abs(TA),Math.abs(Ut))}var NgA=lX,GgA=CX,QL=`#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;
|
||
}`,OW=t=>`precision highp float;
|
||
uniform sampler2D mask;in vec2 v_texCoord;
|
||
out vec4 outColor;
|
||
void main() {${t}}`,bgA=`#version 300 es
|
||
uniform sampler2D lastMask;
|
||
${OW(`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);`)}
|
||
`,kgA=`#version 300 es
|
||
${OW(` 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);`)}
|
||
`,LgA=`#version 300 es
|
||
${OW(` 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);`)}
|
||
`,UgA=`#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);
|
||
}
|
||
`,FgA=`#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);
|
||
}
|
||
`,OgA=class{constructor(){Hg(this,"gl"),Hg(this,"positionBuffer"),Hg(this,"texCoordBuffer"),Hg(this,"ratio"),Hg(this,"_tdProgram"),Hg(this,"_kcProgram"),Hg(this,"_mdProgram"),Hg(this,"_edgeProgram"),Hg(this,"_borderProgram"),Hg(this,"_lastMaskTexture")}init(t,i,r,l){this.initParams(t,i,r,l),this.initPrograms()}initParams(t,i,r,l){this.gl=t,this.positionBuffer=i,this.texCoordBuffer=r,this.ratio=l}initPrograms(){this._tdProgram=this.createProgram(QL,bgA,["mask","lastMask"]),this._mdProgram=this.createProgram(QL,kgA,["mask"]),this._kcProgram=this.createProgram(QL,LgA,["mask"]),this._borderProgram=this.createProgram(QL,UgA,["mask","maskEdge","originalMask"]),this._edgeProgram=this.createProgram(QL,FgA,["mask"])}setAttributes(...t){const{gl:i}=this;t.forEach((r,l)=>{i.enableVertexAttribArray(l),i.bindBuffer(i.ARRAY_BUFFER,r),i.vertexAttribPointer(l,2,i.FLOAT,!1,0,0)})}createShader(t,i){const{gl:r}=this,l=r.createShader(t);return r.shaderSource(l,i),r.compileShader(l),l}createProgram(t,i,r){const{gl:l}=this,I=this.createShader(l.FRAGMENT_SHADER,i),h=this.createShader(l.VERTEX_SHADER,t),f=l.createProgram();if(l.attachShader(f,h),l.attachShader(f,I),l.linkProgram(f),!l.getProgramParameter(f,l.LINK_STATUS))throw new Error(`${l.getProgramInfoLog(f)}`);return l.useProgram(f),this.setAttributes(this.positionBuffer,this.texCoordBuffer),r.forEach((w,_)=>{l.uniform1i(l.getUniformLocation(f,w),1+_)}),f}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,l){const{gl:I}=this;let h,f;I.useProgram(t),this.ratio===16/9?(h=640,f=360):(h=640,f=480);const w=I.createTexture();I.activeTexture(I.TEXTURE0),I.bindTexture(I.TEXTURE_2D,w),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_MIN_FILTER,I.LINEAR),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_MAG_FILTER,I.LINEAR),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_WRAP_S,I.CLAMP_TO_EDGE),I.texParameteri(I.TEXTURE_2D,I.TEXTURE_WRAP_T,I.CLAMP_TO_EDGE),I.pixelStorei(I.PACK_ALIGNMENT,1),I.pixelStorei(I.UNPACK_ALIGNMENT,1),I.texImage2D(I.TEXTURE_2D,0,I.RGBA,h,f,0,I.RGBA,I.UNSIGNED_BYTE,null);const _=this.createFramebuffer(w);return i.forEach((b,U)=>{b&&(I.activeTexture(I.TEXTURE1+U),I.bindTexture(I.TEXTURE_2D,b||null))}),this.setAttributes(this.positionBuffer,this.texCoordBuffer),I.viewport(0,0,h,f),I.drawArrays(I.TRIANGLE_STRIP,0,4),r&&i.forEach((b,U)=>{b&&l!==U&&I.deleteTexture(b)}),I.deleteFramebuffer(_),w}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 l=this.getTempTexture(this._edgeProgram,[i],!1);i=this.getTempTexture(this._borderProgram,[i,l,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)}},PgA=new OgA,xgA=(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))(xgA||{}),YgA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},p_=570703,Pj=0,hX=class BX{constructor(i){this.core=i,Hg(this,"seq"),Hg(this,"_core"),Hg(this,"log"),Hg(this,"preLoadPromise"),Hg(this,"startResolve"),Hg(this,"startReject"),Hg(this,"mediaPipeSolutions"),Hg(this,"assetsPath"),Hg(this,"currentType"),Hg(this,"onAbort"),Hg(this,"isAborted",!1),Pj+=1,this.seq=Pj,this._core=i,this.log=i.log.createChild({id:`${this.getAlias()}${Pj}`}),this.log.info("created"),i.assetsPath&&(this.preLoadPromise=this.preload(i.assetsPath))}static isSupported(){if(OaA<90)return!1;const i=document.createElement("canvas").getContext("webgl2",YgA);return!!(i&&i instanceof WebGL2RenderingContext)}async preload(i){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await daA());const r=l=>{var I;this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",l),this.core.clearStarted(this,this.getGroup()),this.stop(),(I=this.onAbort)==null||I.call(this,l)};this._core.room.videoManager.initVirtualBackground(r,gX,PgA),await this._core.initVisionTaskRegistry(i,["ImageSegmenter"])}catch(r){const{RtcError:l,ErrorCode:I}=this._core.errorModule;throw new l({code:I.INVALID_OPERATION,message:`VirtualBackground preload error, please redeploy the assets of the npm package. detail: ${r}`})}}getName(){return BX.Name}getAlias(){return"vb"}getValidateRule(i){switch(i){case"start":return laA(this._core);case"update":return IaA(this._core);case"stop":return uaA(this._core)}}getGroup(){return"vb"}getKVTypeValue(i=!1,r=!1,l="NONE"){let I=0;switch(this.currentType){case"blur":I|=0;break;case"image":I|=1;break;case"color":I|=2}switch(i&&(I|=256),r&&(I|=512),l){case"ABORT_IN_INFERENCE":I|=4096;break;case"ABORT_IN_VIDEO_MANAGER":I|=8192;break;case"OTHER":I|=61440}return I}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:l,blurLevel:I=3,onAbort:h}=i;this.currentType=r,this.onAbort=h,r==="color"&&typeof i.color=="string"&&(i.color=this.hexToRgb(i.color));const{auth:f}=await gaA({sdkAppId:i.sdkAppId,userId:i.userId,userSig:i.userSig,core:this._core}),{RtcError:w,ErrorCodeDictionary:_,ErrorCode:b}=this._core.errorModule;if(!f){const U=this._core.utils.isOverseaSdkAppId(i.sdkAppId)?"https://trtc.io/document/56025":"https://cloud.tencent.com/document/product/647/85386";throw new w({code:_.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:U}})}if(!this.preLoadPromise){if(!this._core.assetsPath)throw new w({code:b.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:l,blurLevel:I,enableFaceCentering:i.enableFaceCentering,enableEffectOptimization:i.enableEffectOptimization,color:i.color,onAbort:U=>{var j;this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(j=this.onAbort)==null||j.call(this,U)}}).then(()=>{this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})}).catch(U=>{throw this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")}),U})}async update(i){const{type:r,src:l}=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:l,blurLevel:i.blurLevel,enableFaceCentering:i.enableFaceCentering,enableEffectOptimization:i.enableEffectOptimization,color:i.color}).then(()=>{this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!1,!1,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:p_,value:this.getKVTypeValue(!0,!1,"OTHER")})})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Hg(hX,"Name","VirtualBackground");var QX=hX,VgA=QX;const JgA=Object.freeze(Object.defineProperty({__proto__:null,VirtualBackground:QX,default:VgA},Symbol.toStringTag,{value:"Module"})),HgA=GU(JgA);var qgA=Object.defineProperty,KgA=(t,i,r)=>i in t?qgA(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,bL=(t,i,r)=>KgA(t,typeof i!="symbol"?i+"":i,r);function jgA(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,l,I){const{RtcError:h,ErrorCode:f,ErrorCodeDictionary:w}=t.errorModule;if(t.utils.isOverseaSdkAppId(i.sdkAppId))throw new h({code:f.INVALID_OPERATION,extraCode:w.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 WgA(t){return{name:"StopBasicBeautyOptions",required:!1}}var zgA=(()=>{var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var r,l,I=i;I.ready=new Promise(($,K)=>{r=$,l=K});var h=Object.assign({},I),f="";typeof document<"u"&&document.currentScript&&(f=document.currentScript.src),t&&(f=t),f=f.indexOf("blob:")!==0?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var w,_,b=I.print||console.log.bind(console),U=I.printErr||console.error.bind(console);function j($){if(je($))return function(K){for(var vA=atob(K),qA=new Uint8Array(vA.length),ee=0;ee<vA.length;++ee)qA[ee]=vA.charCodeAt(ee);return qA}($.slice(_e.length))}Object.assign(I,h),h=null,I.arguments&&I.arguments,I.thisProgram&&I.thisProgram,I.quit&&I.quit,I.wasmBinary&&(w=I.wasmBinary),typeof WebAssembly!="object"&&ut("no native wasm support detected");var IA,nA,mA,lA,cA,TA,WA,Ee,de=!1,Pe=[],pe=[],gt=[];function pt($){Pe.unshift($)}function We($){gt.unshift($)}var Dt=0,Kt=null;function ut($){I.onAbort&&I.onAbort($),U($="Aborted("+$+")"),de=!0,$+=". Build with -sASSERTIONS for more info.";var K=new WebAssembly.RuntimeError($);throw l(K),K}var ge,XA,_e="data:application/octet-stream;base64,",je=$=>$.startsWith(_e);function Ut($){return Promise.resolve().then(()=>function(K){if(K==ge&&w)return new Uint8Array(w);var vA=j(K);if(vA)return vA;throw"both async and sync fetching of the wasm failed"}($))}function gi($,K,vA,qA){return function(ee,fe,xe){return Ut(ee).then(Oe=>WebAssembly.instantiate(Oe,fe)).then(Oe=>Oe).then(xe,Oe=>{U(`failed to asynchronously prepare wasm: ${Oe}`),ut(Oe)})}(K,vA,qA)}je(ge="data:application/octet-stream;base64,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IAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAACwsAIAEgAiAAEEIaCxIAIAFBAXRB8MoAakECIAAQQgv5AQEEfwJ/IAEQKiECIwBBEGsiBSQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgRBAE8EQAJAIAIgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyIDIARrTQRAIAJFDQECfyAALQALQQd2BEAgACgCAAwBCyAACyIDIAQEfyACIANqIAMgBBBFIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEEUgACACIARqIgEQMSAFQQA6AA8gASADaiAFLQAPOgAADAELIAAgAyACIARqIANrIARBACACIAEQRAsgBUEQaiQAIAAMAQsQJwALC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAACwUAEAwAC1IBAn9B2NQAKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQEUUNAQtB2NQAIAA2AgAgAQ8LQejeAEEwNgIAQX8LgwECBX8BfgJAIABCgICAgBBUBEAgACEHDAELA0AgAUEBayIBIAAgAEIKgCIHQgp+fadBMHI6AAAgAEL/////nwFWIQUgByEAIAUNAAsLIAenIgIEQANAIAFBAWsiASACIAJBCm4iA0EKbGtBMHI6AAAgAkEJSyEGIAMhAiAGDQALCyABC3oBA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrC78EAQl/AkACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiAiABSQRAIwBBEGsiBiQAIAEgAmsiBQRAIAUgAC0AC0EHdgR/IAAoAghB/////wdxQQFrBUEKCyICAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIgFrSwRAIwBBEGsiBCQAAkAgBSACayABaiIDQe////8HIAJrTQRAAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAshByAEQQRqIgggACACQef///8DSQR/IAQgAkEBdDYCDCAEIAIgA2o2AgQjAEEQayIDJAAgCCgCACAEQQxqIgkoAgBJIQogA0EQaiQAIAkgCCAKGygCACIDQQtPBH8gA0EQakFwcSIDIANBAWsiAyADQQtGGwVBCgtBAWoFQe////8HCxAwIAQoAgQhAyAEKAIIGiABBEAgAyAHIAEQIwsgAkEKRwRAIAcQGQsgACADNgIAIAAgACgCCEGAgICAeHEgBCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggBEEQaiQADAELECcACyAAIAE2AgQLIAECfyAALQALQQd2BEAgACgCAAwBCyAACyICaiAFEEAgACABIAVqIgAQMSAGQQA6AA8gACACaiAGLQAPOgAACyAGQRBqJAAMAQsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAIAAgARAxIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACwsGACAAEBkL0igBDH8jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHs3gAoAgAiBkEQIABBC2pBeHEgAEELSRsiBUEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUGU3wBqIgAgAUGc3wBqKAIAIgEoAggiA0YEQEHs3gAgBkF+IAJ3cTYCAAwBCyADIAA2AgwgACADNgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMCgsgBUH03gAoAgAiB00NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEGU3wBqIgIgAEGc3wBqKAIAIgAoAggiA0YEQEHs3gAgBkF+IAF3cSIGNgIADAELIAMgAjYCDCACIAM2AggLIAAgBUEDcjYCBCAAIAVqIgQgAUEDdCIBIAVrIgNBAXI2AgQgACABaiADNgIAIAcEQCAHQXhxQZTfAGohAUGA3wAoAgAhAgJ/IAZBASAHQQN2dCIFcUUEQEHs3gAgBSAGcjYCACABDAELIAEoAggLIQUgASACNgIIIAUgAjYCDCACIAE2AgwgAiAFNgIICyAAQQhqIQBBgN8AIAQ2AgBB9N4AIAM2AgAMCgtB8N4AKAIAIgtFDQEgC2hBAnRBnOEAaigCACICKAIEQXhxIAVrIQQgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAVrIgEgBCABIARJIgEbIQQgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgNHBEBB/N4AKAIAGiACKAIIIgAgAzYCDCADIAA2AggMCQsgAkEUaiIBKAIAIgBFBEAgAigCECIARQ0DIAJBEGohAQsDQCABIQggACIDQRRqIgEoAgAiAA0AIANBEGohASADKAIQIgANAAsgCEEANgIADAgLQX8hBSAAQb9/Sw0AIABBC2oiAEF4cSEFQfDeACgCACIIRQ0AQQAgBWshBAJAAkACQAJ/QQAgBUGAAkkNABpBHyAFQf///wdLDQAaIAVBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgdBAnRBnOEAaigCACIBRQRAQQAhAAwBC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQIDQAJAIAEoAgRBeHEgBWsiBiAETw0AIAEhAyAGIgQNAEEAIQQgASEADAMLIAAgASgCFCIGIAYgASACQR12QQRxaigCECIBRhsgACAGGyEAIAJBAXQhAiABDQALCyAAIANyRQRAQQAhA0ECIAd0IgBBACAAa3IgCHEiAEUNAyAAaEECdEGc4QBqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayICIARJIQEgAiAEIAEbIQQgACADIAEbIQMgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgA0UNACAEQfTeACgCACAFa08NACADKAIYIQcgAyADKAIMIgJHBEBB/N4AKAIAGiADKAIIIgAgAjYCDCACIAA2AggMBwsgA0EUaiIBKAIAIgBFBEAgAygCECIARQ0DIANBEGohAQsDQCABIQYgACICQRRqIgEoAgAiAA0AIAJBEGohASACKAIQIgANAAsgBkEANgIADAYLIAVB9N4AKAIAIgNNBEBBgN8AKAIAIQACQCADIAVrIgFBEE8EQCAAIAVqIgIgAUEBcjYCBCAAIANqIAE2AgAgACAFQQNyNgIEDAELIAAgA0EDcjYCBCAAIANqIgEgASgCBEEBcjYCBEEAIQJBACEBC0H03gAgATYCAEGA3wAgAjYCACAAQQhqIQAMCAsgBUH43gAoAgAiAkkEQEH43gAgAiAFayIBNgIAQYTfAEGE3wAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAgLQQAhACAFQS9qIgQCf0HE4gAoAgAEQEHM4gAoAgAMAQtB0OIAQn83AgBByOIAQoCggICAgAQ3AgBBxOIAIApBDGpBcHFB2KrVqgVzNgIAQdjiAEEANgIAQajiAEEANgIAQYAgCyIBaiIGQQAgAWsiCHEiASAFTQ0HQaTiACgCACIDBEBBnOIAKAIAIgcgAWoiCSAHTQ0IIAMgCUkNCAsCQEGo4gAtAABBBHFFBEACQAJAAkACQEGE3wAoAgAiAwRAQaziACEAA0AgAyAAKAIAIgdPBEAgByAAKAIEaiADSw0DCyAAKAIIIgANAAsLQQAQKCICQX9GDQMgASEGQcjiACgCACIAQQFrIgMgAnEEQCABIAJrIAIgA2pBACAAa3FqIQYLIAUgBk8NA0Gk4gAoAgAiAARAQZziACgCACIDIAZqIgggA00NBCAAIAhJDQQLIAYQKCIAIAJHDQEMBQsgBiACayAIcSIGECgiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAVBMGogBk0EQCAAIQIMBAtBzOIAKAIAIgIgBCAGa2pBACACa3EiAhAoQX9GDQEgAiAGaiEGIAAhAgwDCyACQX9HDQILQajiAEGo4gAoAgBBBHI2AgALIAEQKCECQQAQKCEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0Gc4gBBnOIAKAIAIAZqIgA2AgBBoOIAKAIAIABJBEBBoOIAIAA2AgALAkBBhN8AKAIAIgQEQEGs4gAhAANAIAIgACgCACIBIAAoAgQiA2pGDQIgACgCCCIADQALDAQLQfzeACgCACIAQQAgACACTRtFBEBB/N4AIAI2AgALQQAhAEGw4gAgBjYCAEGs4gAgAjYCAEGM3wBBfzYCAEGQ3wBBxOIAKAIANgIAQbjiAEEANgIAA0AgAEEDdCIBQZzfAGogAUGU3wBqIgM2AgAgAUGg3wBqIAM2AgAgAEEBaiIAQSBHDQALQfjeACAGQShrIgBBeCACa0EHcSIBayIDNgIAQYTfACABIAJqIgE2AgAgASADQQFyNgIEIAAgAmpBKDYCBEGI3wBB1OIAKAIANgIADAQLIAIgBE0NAiABIARLDQIgACgCDEEIcQ0CIAAgAyAGajYCBEGE3wAgBEF4IARrQQdxIgBqIgE2AgBB+N4AQfjeACgCACAGaiICIABrIgA2AgAgASAAQQFyNgIEIAIgBGpBKDYCBEGI3wBB1OIAKAIANgIADAMLQQAhAwwFC0EAIQIMAwtB/N4AKAIAIAJLBEBB/N4AIAI2AgALIAIgBmohAUGs4gAhAAJAAkACQANAIAEgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtBrOIAIQADQAJAIAQgACgCACIBTwRAIAEgACgCBGoiAyAESw0BCyAAKAIIIQAMAQsLQfjeACAGQShrIgBBeCACa0EHcSIBayIINgIAQYTfACABIAJqIgE2AgAgASAIQQFyNgIEIAAgAmpBKDYCBEGI3wBB1OIAKAIANgIAIAQgA0EnIANrQQdxakEvayIAIAAgBEEQakkbIgFBGzYCBCABQbTiACkCADcCECABQaziACkCADcCCEG04gAgAUEIajYCAEGw4gAgBjYCAEGs4gAgAjYCAEG44gBBADYCACABQRhqIQADQCAAQQc2AgQgAEEIaiEMIABBBGohACAMIANJDQALIAEgBEYNAiABIAEoAgRBfnE2AgQgBCABIARrIgJBAXI2AgQgASACNgIAIAJB/wFNBEAgAkF4cUGU3wBqIQACf0Hs3gAoAgAiAUEBIAJBA3Z0IgJxRQRAQezeACABIAJyNgIAIAAMAQsgACgCCAshASAAIAQ2AgggASAENgIMIAQgADYCDCAEIAE2AggMAwtBHyEAIAJB////B00EQCACQSYgAkEIdmciAGt2QQFxIABBAXRrQT5qIQALIAQgADYCHCAEQgA3AhAgAEECdEGc4QBqIQECQEHw3gAoAgAiA0EBIAB0IgZxRQRAQfDeACADIAZyNgIAIAEgBDYCAAwBCyACQRkgAEEBdmtBACAAQR9HG3QhACABKAIAIQMDQCADIgEoAgRBeHEgAkYNAyAAQR12IQMgAEEBdCEAIAEgA0EEcWoiBigCECIDDQALIAYgBDYCEAsgBCABNgIYIAQgBDYCDCAEIAQ2AggMAgsgACACNgIAIAAgACgCBCAGajYCBCACQXggAmtBB3FqIgcgBUEDcjYCBCABQXggAWtBB3FqIgQgBSAHaiIFayEGAkBBhN8AKAIAIARGBEBBhN8AIAU2AgBB+N4AQfjeACgCACAGaiIANgIAIAUgAEEBcjYCBAwBC0GA3wAoAgAgBEYEQEGA3wAgBTYCAEH03gBB9N4AKAIAIAZqIgA2AgAgBSAAQQFyNgIEIAAgBWogADYCAAwBCyAEKAIEIgJBA3FBAUYEQCACQXhxIQkCQCACQf8BTQRAIAQoAgwiACAEKAIIIgFGBEBB7N4AQezeACgCAEF+IAJBA3Z3cTYCAAwCCyABIAA2AgwgACABNgIIDAELIAQoAhghCAJAIAQgBCgCDCIARwRAQfzeACgCABogBCgCCCIBIAA2AgwgACABNgIIDAELAkAgBEEUaiIBKAIAIgJFBEAgBCgCECICRQ0BIARBEGohAQsDQCABIQMgAiIAQRRqIgEoAgAiAg0AIABBEGohASAAKAIQIgINAAsgA0EANgIADAELQQAhAAsgCEUNAAJAIAQoAhwiAUECdEGc4QBqIgIoAgAgBEYEQCACIAA2AgAgAA0BQfDeAEHw3gAoAgBBfiABd3E2AgAMAgsgCEEQQRQgCCgCECAERhtqIAA2AgAgAEUNAQsgACAINgIYIAQoAhAiAQRAIAAgATYCECABIAA2AhgLIAQoAhQiAUUNACAAIAE2AhQgASAANgIYCyAGIAlqIQYgBCAJaiIEKAIEIQILIAQgAkF+cTYCBCAFIAZBAXI2AgQgBSAGaiAGNgIAIAZB/wFNBEAgBkF4cUGU3wBqIQACf0Hs3gAoAgAiAUEBIAZBA3Z0IgJxRQRAQezeACABIAJyNgIAIAAMAQsgACgCCAshASAAIAU2AgggASAFNgIMIAUgADYCDCAFIAE2AggMAQtBHyECIAZB////B00EQCAGQSYgBkEIdmciAGt2QQFxIABBAXRrQT5qIQILIAUgAjYCHCAFQgA3AhAgAkECdEGc4QBqIQECQAJAQfDeACgCACIAQQEgAnQiA3FFBEBB8N4AIAAgA3I2AgAgASAFNgIADAELIAZBGSACQQF2a0EAIAJBH0cbdCECIAEoAgAhAANAIAAiASgCBEF4cSAGRg0CIAJBHXYhACACQQF0IQIgASAAQQRxaiIDKAIQIgANAAsgAyAFNgIQCyAFIAE2AhggBSAFNgIMIAUgBTYCCAwBCyABKAIIIgAgBTYCDCABIAU2AgggBUEANgIYIAUgATYCDCAFIAA2AggLIAdBCGohAAwFCyABKAIIIgAgBDYCDCABIAQ2AgggBEEANgIYIAQgATYCDCAEIAA2AggLQfjeACgCACIAIAVNDQBB+N4AIAAgBWsiATYCAEGE3wBBhN8AKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwDC0Ho3gBBMDYCAEEAIQAMAgsCQCAHRQ0AAkAgAygCHCIAQQJ0QZzhAGoiASgCACADRgRAIAEgAjYCACACDQFB8N4AIAhBfiAAd3EiCDYCAAwCCyAHQRBBFCAHKAIQIANGG2ogAjYCACACRQ0BCyACIAc2AhggAygCECIABEAgAiAANgIQIAAgAjYCGAsgAygCFCIARQ0AIAIgADYCFCAAIAI2AhgLAkAgBEEPTQRAIAMgBCAFaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgBUEDcjYCBCADIAVqIgIgBEEBcjYCBCACIARqIAQ2AgAgBEH/AU0EQCAEQXhxQZTfAGohAAJ/QezeACgCACIBQQEgBEEDdnQiBXFFBEBB7N4AIAEgBXI2AgAgAAwBCyAAKAIICyEBIAAgAjYCCCABIAI2AgwgAiAANgIMIAIgATYCCAwBC0EfIQAgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgAiAANgIcIAJCADcCECAAQQJ0QZzhAGohAQJAAkAgCEEBIAB0IgVxRQRAQfDeACAFIAhyNgIAIAEgAjYCAAwBCyAEQRkgAEEBdmtBACAAQR9HG3QhACABKAIAIQUDQCAFIgEoAgRBeHEgBEYNAiAAQR12IQUgAEEBdCEAIAEgBUEEcWoiBigCECIFDQALIAYgAjYCEAsgAiABNgIYIAIgAjYCDCACIAI2AggMAQsgASgCCCIAIAI2AgwgASACNgIIIAJBADYCGCACIAE2AgwgAiAANgIICyADQQhqIQAMAQsCQCAJRQ0AAkAgAigCHCIAQQJ0QZzhAGoiASgCACACRgRAIAEgAzYCACADDQFB8N4AIAtBfiAAd3E2AgAMAgsgCUEQQRQgCSgCECACRhtqIAM2AgAgA0UNAQsgAyAJNgIYIAIoAhAiAARAIAMgADYCECAAIAM2AhgLIAIoAhQiAEUNACADIAA2AhQgACADNgIYCwJAIARBD00EQCACIAQgBWoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBCyACIAVBA3I2AgQgAiAFaiIDIARBAXI2AgQgAyAEaiAENgIAIAcEQCAHQXhxQZTfAGohAEGA3wAoAgAhAQJ/QQEgB0EDdnQiBSAGcUUEQEHs3gAgBSAGcjYCACAADAELIAAoAggLIQUgACABNgIIIAUgATYCDCABIAA2AgwgASAFNgIIC0GA3wAgAzYCAEH03gAgBDYCAAsgAkEIaiEACyAKQRBqJAAgAAvXAQIFfwF8IwBBEGsiBiQAIAZBBGoiAhA/IwBBEGsiBSQAIAG7IQcCfyACLQALQQd2BEAgAigCBAwBCyACLQALQf8AcQshBANAAkACfyACLQALQQd2BEAgAigCAAwBCyACCyEDIAUgBzkDACACAn8gAyAEQQFqIAUQRiIDQQBOBEAgAyAETQ0CIAMMAQsgBEEBdEEBcgsiBBArDAELCyACIAMQKyAAIAIpAgA3AgAgACACKAIINgIIIAJCADcCACACQQA2AgggBUEQaiQAIAIQQSAGQRBqJAAL9gUBCH8jAEEgayIHJAAgB0EMaiEEAkAgB0EVaiIGIgIgB0EgaiIJRg0AIAFBAE4NACACQS06AAAgAkEBaiECQQAgAWshAQsgBAJ/IAkiAyACayIFQQlMBEBBPSAFQSAgAUEBcmdrQdEJbEEMdSIIIAhBAnRBwMoAaigCACABTWpIDQEaCwJ/IAFBv4Q9TQRAIAFBj84ATQRAIAFB4wBNBEAgAUEJTQRAIAIgAUEwajoAACACQQFqDAQLIAIgARAkDAMLIAFB5wdNBEAgAiABQeQAbiIDQTBqOgAAIAJBAWogASADQeQAbGsQJAwDCyACIAEQNQwCCyABQZ+NBk0EQCACIAFBkM4AbiIDQTBqOgAAIAJBAWogASADQZDOAGxrEDUMAgsgAiABEDQMAQsgAUH/wdcvTQRAIAFB/6ziBE0EQCACIAFBwIQ9biIDQTBqOgAAIAJBAWogASADQcCEPWxrEDQMAgsgAiABEDMMAQsgAUH/k+vcA00EQCACIAFBgMLXL24iA0EwajoAACACQQFqIAEgA0GAwtcvbGsQMwwBCyACIAFBgMLXL24iAxAkIAEgA0GAwtcvbGsQMwshA0EACzYCBCAEIAM2AgAgBygCDCEIIwBBEGsiAyQAIwBBEGsiBSQAIAAhAQJAIAggBiIAayIGQe////8HTQRAAkAgBkELSQRAIAEgAS0AC0GAAXEgBkH/AHFyOgALIAEgAS0AC0H/AHE6AAsgASEEDAELIAVBCGogASAGQQtPBH8gBkEQakFwcSIEIARBAWsiBCAEQQtGGwVBCgtBAWoQMCAFKAIMGiABIAUoAggiBDYCACABIAEoAghBgICAgHhxIAUoAgxB/////wdxcjYCCCABIAEoAghBgICAgHhyNgIIIAEgBjYCBAsDQCAAIAhHBEAgBCAALQAAOgAAIARBAWohBCAAQQFqIQAMAQsLIAVBADoAByAEIAUtAAc6AAAgBUEQaiQADAELECcACyADQRBqJAAgCSQACxYAIAIQHCEBIAAgAjYCBCAAIAE2AgALOAAgAC0AC0EHdgRAIAAgATYCBA8LIAAgAC0AC0GAAXEgAUH/AHFyOgALIAAgAC0AC0H/AHE6AAsL1QIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQIhoPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADDQIgAEEDcUUNAQNAIAJFDQQgACABLQAAOgAAIAFBAWohASACQQFrIQIgAEEBaiIAQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCAAIAEoAgA2AgAgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQADQCAAIAEtAAA6AAAgAEEBaiEAIAFBAWohASACQQFrIgINAAsLCxsAIAAgAUHAhD1uIgAQJCABIABBwIQ9bGsQNAsbACAAIAFBkM4AbiIAECQgASAAQZDOAGxrEDULGQAgACABQeQAbiIAECQgASAAQeQAbGsQJAu9BAMDfAN/An4CfAJAIAC9QjSIp0H/D3EiBUHJB2tBP0kEQCAFIQQMAQsgBUHJB0kEQCAARAAAAAAAAPA/oA8LIAVBiQhJDQBEAAAAAAAAAAAgAL0iB0KAgICAgICAeFENARogBUH/D08EQCAARAAAAAAAAPA/oA8LIAdCAFMEQCMAQRBrIgREAAAAAAAAABA5AwggBCsDCEQAAAAAAAAAEKIPCyMAQRBrIgREAAAAAAAAAHA5AwggBCsDCEQAAAAAAAAAcKIPC0HoNSsDACAAokHwNSsDACIBoCICIAGhIgFBgDYrAwCiIAFB+DUrAwCiIACgoCIBIAGiIgAgAKIgAUGgNisDAKJBmDYrAwCgoiAAIAFBkDYrAwCiQYg2KwMAoKIgAr0iB6dBBHRB8A9xIgVB2DZqKwMAIAGgoKAhASAFQeA2aikDACAHQi2GfCEIIARFBEACfCAHQoCAgIAIg1AEQCAIQoCAgICAgICIP32/IgAgAaIgAKBEAAAAAAAAAH+iDAELIAhCgICAgICAgPA/fL8iAiABoiIBIAKgIgNEAAAAAAAA8D9jBHwjAEEQayIEIQYgBEKAgICAgICACDcDCCAGIAQrAwhEAAAAAAAAEACiOQMIRAAAAAAAAAAAIANEAAAAAAAA8D+gIgAgASACIAOhoCADRAAAAAAAAPA/IAChoKCgRAAAAAAAAPC/oCIAIABEAAAAAAAAAABhGwUgAwtEAAAAAAAAEACiCw8LIAi/IgAgAaIgAKALCwgAQcIKEFIAC3AAQeDUAEEZNgIAQeTUAEEANgIAEFVB5NQAQZDVACgCADYCAEGQ1QBB4NQANgIAQZTVAEEaNgIAQZjVAEEANgIAEFFBmNUAQZDVACgCADYCAEGQ1QBBlNUANgIAQbTWAEG81QA2AgBB7NUAQSo2AgALCwAgABA6GiAAEBkLMgECfyAAQczSADYCACAAKAIEQQxrIgEgASgCCEEBayICNgIIIAJBAEgEQCABEBkLIAALmgEAIABBAToANQJAIAAoAgQgAkcNACAAQQE6ADQCQCAAKAIQIgJFBEAgAEEBNgIkIAAgAzYCGCAAIAE2AhAgA0EBRw0CIAAoAjBBAUYNAQwCCyABIAJGBEAgACgCGCICQQJGBEAgACADNgIYIAMhAgsgACgCMEEBRw0CIAJBAUYNAQwCCyAAIAAoAiRBAWo2AiQLIABBAToANgsLTAEBfwJAIAFFDQAgAUHczgAQICIBRQ0AIAEoAgggACgCCEF/c3ENACAAKAIMIAEoAgxBABAeRQ0AIAAoAhAgASgCEEEAEB4hAgsgAgtdAQF/IAAoAhAiA0UEQCAAQQE2AiQgACACNgIYIAAgATYCEA8LAkAgASADRgRAIAAoAhhBAkcNASAAIAI2AhgPCyAAQQE6ADYgAEECNgIYIAAgACgCJEEBajYCJAsLYwECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAkEIaiABIANBAXEEfyABKAIAIABqKAIABSAACxEAACACKAIMIgAQAiACKAIMIgEEQCABEAMLIAJBEGokACAAC0MBAX8jAEEQayIBJAAgAEIANwIAIABBADYCCCABQRBqJAAgACAALQALQQd2BH8gACgCCEH/////B3FBAWsFQQoLECsLPQEBfyMAQRBrIgIkACACQQA6AA8DQCABBEAgACACLQAPOgAAIAFBAWshASAAQQFqIQAMAQsLIAJBEGokAAsaACAALQALQQd2BEAgACgCCBogACgCABAZCwvmAQEFfyMAQRBrIgUkACMAQSBrIgMkACMAQRBrIgQkACAEIAA2AgwgBCAAIAFqNgIIIAMgBCgCDDYCGCADIAQoAgg2AhwgBEEQaiQAIAMoAhghBCADKAIcIQYjAEEQayIBJAAgASAGNgIMIAIgBCAGIARrIgQQQyABIAIgBGo2AgggAyABKAIMNgIQIAMgASgCCDYCFCABQRBqJAAgAyAAIAMoAhAgAGtqNgIMIAMgAiADKAIUIAJrajYCCCAFIAMoAgw2AgggBSADKAIINgIMIANBIGokACAFKAIMIQcgBUEQaiQAIAcLDwAgAgRAIAAgASACEDILC/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/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=")||(XA=ge,ge=I.locateFile?I.locateFile(XA,f):f+XA);var Fi=$=>{for(;$.length>0;)$.shift()(I)};I.noExitRuntime;function To($){this.excPtr=$,this.ptr=$-24,this.set_type=function(K){TA[this.ptr+4>>2]=K},this.get_type=function(){return TA[this.ptr+4>>2]},this.set_destructor=function(K){TA[this.ptr+8>>2]=K},this.get_destructor=function(){return TA[this.ptr+8>>2]},this.set_caught=function(K){K=K?1:0,IA[this.ptr+12|0]=K},this.get_caught=function(){return IA[this.ptr+12|0]!=0},this.set_rethrown=function(K){K=K?1:0,IA[this.ptr+13|0]=K},this.get_rethrown=function(){return IA[this.ptr+13|0]!=0},this.init=function(K,vA){this.set_adjusted_ptr(0),this.set_type(K),this.set_destructor(vA)},this.set_adjusted_ptr=function(K){TA[this.ptr+16>>2]=K},this.get_adjusted_ptr=function(){return TA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ba(this.get_type()))return TA[this.excPtr>>2];var K=this.get_adjusted_ptr();return K!==0?K:this.excPtr}}var to,Eo,Vs,ki=$=>{for(var K="",vA=$;nA[vA];)K+=to[nA[vA++]];return K},ns={},jo={},$i={},Wt=$=>{throw new Eo($)},io=$=>{throw new Vs($)},bi=($,K,vA)=>{function qA(Oe){var rt=vA(Oe);rt.length!==$.length&&io("Mismatched type converter count");for(var dt=0;dt<$.length;++dt)vs($[dt],rt[dt])}$.forEach(function(Oe){$i[Oe]=K});var ee=new Array(K.length),fe=[],xe=0;K.forEach((Oe,rt)=>{jo.hasOwnProperty(Oe)?ee[rt]=jo[Oe]:(fe.push(Oe),ns.hasOwnProperty(Oe)||(ns[Oe]=[]),ns[Oe].push(()=>{ee[rt]=jo[Oe],++xe===fe.length&&qA(ee)}))}),fe.length===0&&qA(ee)};function vs($,K,vA={}){if(!("argPackAdvance"in K))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(qA,ee,fe={}){var xe=ee.name;if(qA||Wt(`type "${xe}" must have a positive integer typeid pointer`),jo.hasOwnProperty(qA)){if(fe.ignoreDuplicateRegistrations)return;Wt(`Cannot register type '${xe}' twice`)}if(jo[qA]=ee,delete $i[qA],ns.hasOwnProperty(qA)){var Oe=ns[qA];delete ns[qA],Oe.forEach(rt=>rt())}}($,K,vA)}var HA,le=$=>{Wt($.$$.ptrType.registeredClass.name+" instance already deleted")},Ve=!1,Ft=$=>{},nt=$=>{$.count.value-=1,$.count.value===0&&(K=>{K.smartPtr?K.smartPtrType.rawDestructor(K.smartPtr):K.ptrType.registeredClass.rawDestructor(K.ptr)})($)},It=($,K,vA)=>{if(K===vA)return $;if(vA.baseClass===void 0)return null;var qA=It($,K,vA.baseClass);return qA===null?null:vA.downcast(qA)},Ai={},ei=()=>Object.keys(Oi).length,ke=()=>{var $=[];for(var K in Oi)Oi.hasOwnProperty(K)&&$.push(Oi[K]);return $},Ze=[],vt=()=>{for(;Ze.length;){var $=Ze.pop();$.$$.deleteScheduled=!1,$.delete()}},_t=$=>{HA=$,Ze.length&&HA&&HA(vt)},Oi={},po=($,K)=>(K=((vA,qA)=>{for(qA===void 0&&Wt("ptr should not be undefined");vA.baseClass;)qA=vA.upcast(qA),vA=vA.baseClass;return qA})($,K),Oi[K]),No=($,K)=>(K.ptrType&&K.ptr||io("makeClassHandle requires ptr and ptrType"),!!K.smartPtrType!=!!K.smartPtr&&io("Both smartPtrType and smartPtr must be specified"),K.count={value:1},Go(Object.create($,{$$:{value:K}})));function oo($){var K=this.getPointee($);if(!K)return this.destructor($),null;var vA=po(this.registeredClass,K);if(vA!==void 0){if(vA.$$.count.value===0)return vA.$$.ptr=K,vA.$$.smartPtr=$,vA.clone();var qA=vA.clone();return this.destructor($),qA}function ee(){return this.isSmartPointer?No(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:K,smartPtrType:this,smartPtr:$}):No(this.registeredClass.instancePrototype,{ptrType:this,ptr:$})}var fe,xe=this.registeredClass.getActualType(K),Oe=Ai[xe];if(!Oe)return ee.call(this);fe=this.isConst?Oe.constPointerType:Oe.pointerType;var rt=It(K,this.registeredClass,fe.registeredClass);return rt===null?ee.call(this):this.isSmartPointer?No(fe.registeredClass.instancePrototype,{ptrType:fe,ptr:rt,smartPtrType:this,smartPtr:$}):No(fe.registeredClass.instancePrototype,{ptrType:fe,ptr:rt})}var Go=$=>typeof FinalizationRegistry>"u"?(Go=K=>K,$):(Ve=new FinalizationRegistry(K=>{nt(K.$$)}),Ft=K=>Ve.unregister(K),(Go=K=>{var vA=K.$$;if(vA.smartPtr){var qA={$$:vA};Ve.register(K,qA,K)}return K})($));function An(){}var rn=($,K)=>Object.defineProperty(K,"name",{value:$}),Es=($,K,vA)=>{if($[K].overloadTable===void 0){var qA=$[K];$[K]=function(){return $[K].overloadTable.hasOwnProperty(arguments.length)||Wt(`Function '${vA}' called with an invalid number of arguments (${arguments.length}) - expects one of (${$[K].overloadTable})!`),$[K].overloadTable[arguments.length].apply(this,arguments)},$[K].overloadTable=[],$[K].overloadTable[qA.argCount]=qA}};function an($,K,vA,qA,ee,fe,xe,Oe){this.name=$,this.constructor=K,this.instancePrototype=vA,this.rawDestructor=qA,this.baseClass=ee,this.getActualType=fe,this.upcast=xe,this.downcast=Oe,this.pureVirtualFunctions=[]}var Do=($,K,vA)=>{for(;K!==vA;)K.upcast||Wt(`Expected null or instance of ${vA.name}, got an instance of ${K.name}`),$=K.upcast($),K=K.baseClass;return $};function pA($,K){if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`);var vA=K.$$.ptrType.registeredClass;return Do(K.$$.ptr,vA,this.registeredClass)}function Jn($,K){var vA;if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),this.isSmartPointer?(vA=this.rawConstructor(),$!==null&&$.push(this.rawDestructor,vA),vA):0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&K.$$.ptrType.isConst&&Wt(`Cannot convert argument of type ${K.$$.smartPtrType?K.$$.smartPtrType.name:K.$$.ptrType.name} to parameter type ${this.name}`);var qA=K.$$.ptrType.registeredClass;if(vA=Do(K.$$.ptr,qA,this.registeredClass),this.isSmartPointer)switch(K.$$.smartPtr===void 0&&Wt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:K.$$.smartPtrType===this?vA=K.$$.smartPtr:Wt(`Cannot convert argument of type ${K.$$.smartPtrType?K.$$.smartPtrType.name:K.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:vA=K.$$.smartPtr;break;case 2:if(K.$$.smartPtrType===this)vA=K.$$.smartPtr;else{var ee=K.clone();vA=this.rawShare(vA,cn.toHandle(()=>ee.delete())),$!==null&&$.push(this.rawDestructor,vA)}break;default:Wt("Unsupporting sharing policy")}return vA}function Qr($,K){if(K===null)return this.isReference&&Wt(`null is not a valid ${this.name}`),0;K.$$||Wt(`Cannot pass "${as(K)}" as a ${this.name}`),K.$$.ptr||Wt(`Cannot pass deleted object as a pointer of type ${this.name}`),K.$$.ptrType.isConst&&Wt(`Cannot convert argument of type ${K.$$.ptrType.name} to parameter type ${this.name}`);var vA=K.$$.ptrType.registeredClass;return Do(K.$$.ptr,vA,this.registeredClass)}function ds($){return this.fromWireType(TA[$>>2])}function zr($,K,vA,qA,ee,fe,xe,Oe,rt,dt,Mt){this.name=$,this.registeredClass=K,this.isReference=vA,this.isConst=qA,this.isSmartPointer=ee,this.pointeeType=fe,this.sharingPolicy=xe,this.rawGetPointee=Oe,this.rawConstructor=rt,this.rawShare=dt,this.rawDestructor=Mt,ee||K.baseClass!==void 0?this.toWireType=Jn:qA?(this.toWireType=pA,this.destructorFunction=null):(this.toWireType=Qr,this.destructorFunction=null)}var Pi,Rs,or=[],en=$=>{var K=or[$];return K||($>=or.length&&(or.length=$+1),or[$]=K=Pi.get($)),K},wn=($,K,vA)=>$.includes("j")?((qA,ee,fe)=>{var xe=I["dynCall_"+qA];return fe&&fe.length?xe.apply(null,[ee].concat(fe)):xe.call(null,ee)})($,K,vA):en(K).apply(null,vA),Ht=($,K)=>{var vA,qA,ee,fe=($=ki($)).includes("j")?(vA=$,qA=K,ee=[],function(){return ee.length=0,Object.assign(ee,arguments),wn(vA,qA,ee)}):en(K);return typeof fe!="function"&&Wt(`unknown function pointer with signature ${$}: ${K}`),fe},yg=$=>{var K=Ea($),vA=ki(K);return yn(K),vA},On=($,K)=>{var vA=[],qA={};throw K.forEach(function ee(fe){qA[fe]||jo[fe]||($i[fe]?$i[fe].forEach(ee):(vA.push(fe),qA[fe]=!0))}),new Rs(`${$}: `+vA.map(yg).join([", "]))},Gn=($,K)=>{for(var vA=[],qA=0;qA<$;qA++)vA.push(TA[K+4*qA>>2]);return vA},Js=$=>{for(;$.length;){var K=$.pop();$.pop()(K)}};function pr($,K,vA,qA,ee,fe){var xe=K.length;xe<2&&Wt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Oe=K[1]!==null&&vA!==null,rt=!1,dt=1;dt<K.length;++dt)if(K[dt]!==null&&K[dt].destructorFunction===void 0){rt=!0;break}var Mt=K[0].name!=="void",xt=xe-2,Ii=new Array(xt),ct=[],Pt=[];return rn($,function(){var Ji;arguments.length!==xt&&Wt(`function ${$} called with ${arguments.length} arguments, expected ${xt}`),Pt.length=0,ct.length=Oe?2:1,ct[0]=ee,Oe&&(Ji=K[1].toWireType(Pt,this),ct[1]=Ji);for(var Ki=0;Ki<xt;++Ki)Ii[Ki]=K[Ki+2].toWireType(Pt,arguments[Ki]),ct.push(Ii[Ki]);return function(qs){if(rt)Js(Pt);else for(var Mi=Oe?1:2;Mi<K.length;Mi++){var zo=Mi===1?Ji:Ii[Mi-2];K[Mi].destructorFunction!==null&&K[Mi].destructorFunction(zo)}if(Mt)return K[0].fromWireType(qs)}(qA.apply(null,ct))})}var Pn=($,K,vA)=>($ instanceof Object||Wt(`${vA} with invalid "this": ${$}`),$ instanceof K.registeredClass.constructor||Wt(`${vA} incompatible with "this" of type ${$.constructor.name}`),$.$$.ptr||Wt(`cannot call emscripten binding method ${vA} on deleted object`),Do($.$$.ptr,$.$$.ptrType.registeredClass,K.registeredClass));function mr(){this.allocated=[void 0],this.freelist=[]}var mo=new mr,gn=$=>{$>=mo.reserved&&--mo.get($).refcount===0&&mo.free($)},Sl=()=>{for(var $=0,K=mo.reserved;K<mo.allocated.length;++K)mo.allocated[K]!==void 0&&++$;return $},cn={toValue:$=>($||Wt("Cannot use deleted val. handle = "+$),mo.get($).value),toHandle:$=>{switch($){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return mo.allocate({refcount:1,value:$})}}};function fr($){return this.fromWireType(cA[$>>2])}var Ls,Jc,ms,as=$=>{if($===null)return"null";var K=typeof $;return K==="object"||K==="array"||K==="function"?$.toString():""+$},Mu=($,K)=>{switch(K){case 4:return function(vA){return this.fromWireType(WA[vA>>2])};case 8:return function(vA){return this.fromWireType(Ee[vA>>3])};default:throw new TypeError(`invalid float width (${K}): ${$}`)}},Wa=($,K,vA)=>{switch(K){case 1:return vA?qA=>IA[qA|0]:qA=>nA[qA|0];case 2:return vA?qA=>mA[qA>>1]:qA=>lA[qA>>1];case 4:return vA?qA=>cA[qA>>2]:qA=>TA[qA>>2];default:throw new TypeError(`invalid integer width (${K}): ${$}`)}},Cs=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,sg=($,K,vA)=>{for(var qA=K+vA,ee=K;$[ee]&&!(ee>=qA);)++ee;if(ee-K>16&&$.buffer&&Cs)return Cs.decode($.subarray(K,ee));for(var fe="";K<ee;){var xe=$[K++];if(128&xe){var Oe=63&$[K++];if((224&xe)!=192){var rt=63&$[K++];if((xe=(240&xe)==224?(15&xe)<<12|Oe<<6|rt:(7&xe)<<18|Oe<<12|rt<<6|63&$[K++])<65536)fe+=String.fromCharCode(xe);else{var dt=xe-65536;fe+=String.fromCharCode(55296|dt>>10,56320|1023&dt)}}else fe+=String.fromCharCode((31&xe)<<6|Oe)}else fe+=String.fromCharCode(xe)}return fe},JI=($,K)=>$?sg(nA,$,K):"",$o=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Xi=($,K)=>{for(var vA=$,qA=vA>>1,ee=qA+K/2;!(qA>=ee)&&lA[qA];)++qA;if((vA=qA<<1)-$>32&&$o)return $o.decode(nA.subarray($,vA));for(var fe="",xe=0;!(xe>=K/2);++xe){var Oe=mA[$+2*xe>>1];if(Oe==0)break;fe+=String.fromCharCode(Oe)}return fe},pc=($,K,vA)=>{if(vA===void 0&&(vA=2147483647),vA<2)return 0;for(var qA=K,ee=(vA-=2)<2*$.length?vA/2:$.length,fe=0;fe<ee;++fe){var xe=$.charCodeAt(fe);mA[K>>1]=xe,K+=2}return mA[K>>1]=0,K-qA},ng=$=>2*$.length,Dg=($,K)=>{for(var vA=0,qA="";!(vA>=K/4);){var ee=cA[$+4*vA>>2];if(ee==0)break;if(++vA,ee>=65536){var fe=ee-65536;qA+=String.fromCharCode(55296|fe>>10,56320|1023&fe)}else qA+=String.fromCharCode(ee)}return qA},ua=($,K,vA)=>{if(vA===void 0&&(vA=2147483647),vA<4)return 0;for(var qA=K,ee=qA+vA-4,fe=0;fe<$.length;++fe){var xe=$.charCodeAt(fe);if(xe>=55296&&xe<=57343&&(xe=65536+((1023&xe)<<10)|1023&$.charCodeAt(++fe)),cA[K>>2]=xe,(K+=4)+4>ee)break}return cA[K>>2]=0,K-qA},bo=$=>{for(var K=0,vA=0;vA<$.length;++vA){var qA=$.charCodeAt(vA);qA>=55296&&qA<=57343&&++vA,K+=4}return K},Zr=($,K)=>{var vA=jo[$];return vA===void 0&&Wt(K+" has unknown type "+yg($)),vA},_o=($,K,vA)=>{var qA=[],ee=$.toWireType(qA,vA);return qA.length&&(TA[K>>2]=cn.toHandle(qA)),ee},Hc={},Hn=[],Hs=Reflect.construct,Sg=[null,[],[]],mc=($,K)=>{var vA=Sg[$];K===0||K===10?(($===1?b:U)(sg(vA,0)),vA.length=0):vA.push(K)};(()=>{for(var $=new Array(256),K=0;K<256;++K)$[K]=String.fromCharCode(K);to=$})(),Eo=I.BindingError=class extends Error{constructor($){super($),this.name="BindingError"}},Vs=I.InternalError=class extends Error{constructor($){super($),this.name="InternalError"}},Object.assign(An.prototype,{isAliasOf($){if(!(this instanceof An)||!($ instanceof An))return!1;var K=this.$$.ptrType.registeredClass,vA=this.$$.ptr;$.$$=$.$$;for(var qA=$.$$.ptrType.registeredClass,ee=$.$$.ptr;K.baseClass;)vA=K.upcast(vA),K=K.baseClass;for(;qA.baseClass;)ee=qA.upcast(ee),qA=qA.baseClass;return K===qA&&vA===ee},clone(){if(this.$$.ptr||le(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var $,K=Go(Object.create(Object.getPrototypeOf(this),{$$:{value:($=this.$$,{count:$.count,deleteScheduled:$.deleteScheduled,preservePointerOnDelete:$.preservePointerOnDelete,ptr:$.ptr,ptrType:$.ptrType,smartPtr:$.smartPtr,smartPtrType:$.smartPtrType})}}));return K.$$.count.value+=1,K.$$.deleteScheduled=!1,K},delete(){this.$$.ptr||le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Wt("Object already scheduled for deletion"),Ft(this),nt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||le(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Wt("Object already scheduled for deletion"),Ze.push(this),Ze.length===1&&HA&&HA(vt),this.$$.deleteScheduled=!0,this}}),I.getInheritedInstanceCount=ei,I.getLiveInheritedInstances=ke,I.flushPendingDeletes=vt,I.setDelayFunction=_t,Object.assign(zr.prototype,{getPointee($){return this.rawGetPointee&&($=this.rawGetPointee($)),$},destructor($){this.rawDestructor&&this.rawDestructor($)},argPackAdvance:8,readValueFromPointer:ds,deleteObject($){$!==null&&$.delete()},fromWireType:oo}),Rs=I.UnboundTypeError=(Ls=Error,(ms=rn(Jc="UnboundTypeError",function($){this.name=Jc,this.message=$;var K=new Error($).stack;K!==void 0&&(this.stack=this.toString()+`
|
||
`+K.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Ls.prototype),ms.prototype.constructor=ms,ms.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},ms),Object.assign(mr.prototype,{get($){return this.allocated[$]},has($){return this.allocated[$]!==void 0},allocate($){var K=this.freelist.pop()||this.allocated.length;return this.allocated[K]=$,K},free($){this.allocated[$]=void 0,this.freelist.push($)}}),mo.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),mo.reserved=mo.allocated.length,I.count_emval_handles=Sl;var fn,Ga={w:($,K,vA)=>{throw new To($).init(K,vA),$},q:($,K,vA,qA,ee)=>{},u:($,K,vA,qA)=>{vs($,{name:K=ki(K),fromWireType:function(ee){return!!ee},toWireType:function(ee,fe){return fe?vA:qA},argPackAdvance:8,readValueFromPointer:function(ee){return this.fromWireType(nA[ee])},destructorFunction:null})},y:($,K,vA,qA,ee,fe,xe,Oe,rt,dt,Mt,xt,Ii)=>{Mt=ki(Mt),fe=Ht(ee,fe),Oe&&(Oe=Ht(xe,Oe)),dt&&(dt=Ht(rt,dt)),Ii=Ht(xt,Ii);var ct=(Pt=>{if(Pt===void 0)return"_unknown";var Ji=(Pt=Pt.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return Ji>=48&&Ji<=57?`_${Pt}`:Pt})(Mt);((Pt,Ji,Ki)=>{I.hasOwnProperty(Pt)?(Wt(`Cannot register public name '${Pt}' twice`),Es(I,Pt,Pt),I.hasOwnProperty(Ki)&&Wt(`Cannot register multiple overloads of a function with the same number of arguments (${Ki})!`),I[Pt].overloadTable[Ki]=Ji):I[Pt]=Ji})(ct,function(){On(`Cannot construct ${Mt} due to unbound types`,[qA])}),bi([$,K,vA],qA?[qA]:[],function(Pt){var Ji,Ki;Pt=Pt[0],Ki=qA?(Ji=Pt.registeredClass).instancePrototype:An.prototype;var qs=rn(Mt,function(){if(Object.getPrototypeOf(this)!==Mi)throw new Eo("Use 'new' to construct "+Mt);if(zo.constructor_body===void 0)throw new Eo(Mt+" has no accessible constructor");var xn=zo.constructor_body[arguments.length];if(xn===void 0)throw new Eo(`Tried to invoke ctor of ${Mt} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(zo.constructor_body).toString()}) parameters instead!`);return xn.apply(this,arguments)}),Mi=Object.create(Ki,{constructor:{value:qs}});qs.prototype=Mi;var zo=new an(Mt,qs,Mi,Ii,Ji,fe,Oe,dt);zo.baseClass&&(zo.baseClass.__derivedClasses===void 0&&(zo.baseClass.__derivedClasses=[]),zo.baseClass.__derivedClasses.push(zo));var Mg=new zr(Mt,zo,!0,!1,!1),sr=new zr(Mt+"*",zo,!1,!1,!1),yr=new zr(Mt+" const*",zo,!1,!0,!1);return Ai[$]={pointerType:sr,constPointerType:yr},((xn,Ml,Ks)=>{I.hasOwnProperty(xn)||io("Replacing nonexistant public symbol"),I[xn].overloadTable!==void 0&&Ks!==void 0?I[xn].overloadTable[Ks]=Ml:(I[xn]=Ml,I[xn].argCount=Ks)})(ct,qs),[Mg,sr,yr]})},x:($,K,vA,qA,ee,fe)=>{var xe=Gn(K,vA);ee=Ht(qA,ee),bi([],[$],function(Oe){var rt=`constructor ${(Oe=Oe[0]).name}`;if(Oe.registeredClass.constructor_body===void 0&&(Oe.registeredClass.constructor_body=[]),Oe.registeredClass.constructor_body[K-1]!==void 0)throw new Eo(`Cannot register multiple constructors with identical number of parameters (${K-1}) for class '${Oe.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return Oe.registeredClass.constructor_body[K-1]=()=>{On(`Cannot construct ${Oe.name} due to unbound types`,xe)},bi([],xe,dt=>(dt.splice(1,0,null),Oe.registeredClass.constructor_body[K-1]=pr(rt,dt,null,ee,fe),[])),[]})},i:($,K,vA,qA,ee,fe,xe,Oe,rt)=>{var dt=Gn(vA,qA);K=(Mt=>{const xt=(Mt=Mt.trim()).indexOf("(");return xt!==-1?Mt.substr(0,xt):Mt})(K=ki(K)),fe=Ht(ee,fe),bi([],[$],function(Mt){var xt=`${(Mt=Mt[0]).name}.${K}`;function Ii(){On(`Cannot call ${xt} due to unbound types`,dt)}K.startsWith("@@")&&(K=Symbol[K.substring(2)]),Oe&&Mt.registeredClass.pureVirtualFunctions.push(K);var ct=Mt.registeredClass.instancePrototype,Pt=ct[K];return Pt===void 0||Pt.overloadTable===void 0&&Pt.className!==Mt.name&&Pt.argCount===vA-2?(Ii.argCount=vA-2,Ii.className=Mt.name,ct[K]=Ii):(Es(ct,K,xt),ct[K].overloadTable[vA-2]=Ii),bi([],dt,function(Ji){var Ki=pr(xt,Ji,Mt,fe,xe);return ct[K].overloadTable===void 0?(Ki.argCount=vA-2,ct[K]=Ki):ct[K].overloadTable[vA-2]=Ki,[]}),[]})},k:($,K,vA,qA,ee,fe,xe,Oe,rt,dt)=>{K=ki(K),ee=Ht(qA,ee),bi([],[$],function(Mt){var xt=`${(Mt=Mt[0]).name}.${K}`,Ii={get(){On(`Cannot access ${xt} due to unbound types`,[vA,xe])},enumerable:!0,configurable:!0};return Ii.set=rt?()=>On(`Cannot access ${xt} due to unbound types`,[vA,xe]):ct=>Wt(xt+" is a read-only property"),Object.defineProperty(Mt.registeredClass.instancePrototype,K,Ii),bi([],rt?[vA,xe]:[vA],function(ct){var Pt=ct[0],Ji={get(){var qs=Pn(this,Mt,xt+" getter");return Pt.fromWireType(ee(fe,qs))},enumerable:!0};if(rt){rt=Ht(Oe,rt);var Ki=ct[1];Ji.set=function(qs){var Mi=Pn(this,Mt,xt+" setter"),zo=[];rt(dt,Mi,Ki.toWireType(zo,qs)),Js(zo)}}return Object.defineProperty(Mt.registeredClass.instancePrototype,K,Ji),[]}),[]})},t:($,K)=>{vs($,{name:K=ki(K),fromWireType:vA=>{var qA=cn.toValue(vA);return gn(vA),qA},toWireType:(vA,qA)=>cn.toHandle(qA),argPackAdvance:8,readValueFromPointer:fr,destructorFunction:null})},p:($,K,vA)=>{vs($,{name:K=ki(K),fromWireType:qA=>qA,toWireType:(qA,ee)=>ee,argPackAdvance:8,readValueFromPointer:Mu(K,vA),destructorFunction:null})},g:($,K,vA,qA,ee)=>{K=ki(K);var fe=rt=>rt;if(qA===0){var xe=32-8*vA;fe=rt=>rt<<xe>>>xe}var Oe=K.includes("unsigned");vs($,{name:K,fromWireType:fe,toWireType:Oe?function(rt,dt){return this.name,dt>>>0}:function(rt,dt){return this.name,dt},argPackAdvance:8,readValueFromPointer:Wa(K,vA,qA!==0),destructorFunction:null})},a:($,K,vA)=>{var qA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][K];function ee(fe){var xe=TA[fe>>2],Oe=TA[fe+4>>2];return new qA(IA.buffer,Oe,xe)}vs($,{name:vA=ki(vA),fromWireType:ee,argPackAdvance:8,readValueFromPointer:ee},{ignoreDuplicateRegistrations:!0})},o:($,K)=>{var vA=(K=ki(K))==="std::string";vs($,{name:K,fromWireType(qA){var ee,fe=TA[qA>>2],xe=qA+4;if(vA)for(var Oe=xe,rt=0;rt<=fe;++rt){var dt=xe+rt;if(rt==fe||nA[dt]==0){var Mt=JI(Oe,dt-Oe);ee===void 0?ee=Mt:(ee+="\0",ee+=Mt),Oe=dt+1}}else{var xt=new Array(fe);for(rt=0;rt<fe;++rt)xt[rt]=String.fromCharCode(nA[xe+rt]);ee=xt.join("")}return yn(qA),ee},toWireType(qA,ee){var fe;ee instanceof ArrayBuffer&&(ee=new Uint8Array(ee));var xe=typeof ee=="string";xe||ee instanceof Uint8Array||ee instanceof Uint8ClampedArray||ee instanceof Int8Array||Wt("Cannot pass non-string to std::string"),fe=vA&&xe?(xt=>{for(var Ii=0,ct=0;ct<xt.length;++ct){var Pt=xt.charCodeAt(ct);Pt<=127?Ii++:Pt<=2047?Ii+=2:Pt>=55296&&Pt<=57343?(Ii+=4,++ct):Ii+=3}return Ii})(ee):ee.length;var Oe=fs(4+fe+1),rt=Oe+4;if(TA[Oe>>2]=fe,vA&&xe)((xt,Ii,ct,Pt)=>{if(!(Pt>0))return 0;for(var Ji=ct,Ki=ct+Pt-1,qs=0;qs<xt.length;++qs){var Mi=xt.charCodeAt(qs);if(Mi>=55296&&Mi<=57343&&(Mi=65536+((1023&Mi)<<10)|1023&xt.charCodeAt(++qs)),Mi<=127){if(ct>=Ki)break;Ii[ct++]=Mi}else if(Mi<=2047){if(ct+1>=Ki)break;Ii[ct++]=192|Mi>>6,Ii[ct++]=128|63&Mi}else if(Mi<=65535){if(ct+2>=Ki)break;Ii[ct++]=224|Mi>>12,Ii[ct++]=128|Mi>>6&63,Ii[ct++]=128|63&Mi}else{if(ct+3>=Ki)break;Ii[ct++]=240|Mi>>18,Ii[ct++]=128|Mi>>12&63,Ii[ct++]=128|Mi>>6&63,Ii[ct++]=128|63&Mi}}Ii[ct]=0})(ee,nA,rt,fe+1);else if(xe)for(var dt=0;dt<fe;++dt){var Mt=ee.charCodeAt(dt);Mt>255&&(yn(rt),Wt("String has UTF-16 code units that do not fit in 8 bits")),nA[rt+dt]=Mt}else for(dt=0;dt<fe;++dt)nA[rt+dt]=ee[dt];return qA!==null&&qA.push(yn,Oe),Oe},argPackAdvance:8,readValueFromPointer:ds,destructorFunction(qA){yn(qA)}})},l:($,K,vA)=>{var qA,ee,fe,xe,Oe;vA=ki(vA),K===2?(qA=Xi,ee=pc,xe=ng,fe=()=>lA,Oe=1):K===4&&(qA=Dg,ee=ua,xe=bo,fe=()=>TA,Oe=2),vs($,{name:vA,fromWireType:rt=>{for(var dt,Mt=TA[rt>>2],xt=fe(),Ii=rt+4,ct=0;ct<=Mt;++ct){var Pt=rt+4+ct*K;if(ct==Mt||xt[Pt>>Oe]==0){var Ji=qA(Ii,Pt-Ii);dt===void 0?dt=Ji:(dt+="\0",dt+=Ji),Ii=Pt+K}}return yn(rt),dt},toWireType:(rt,dt)=>{typeof dt!="string"&&Wt(`Cannot pass non-string to C++ string type ${vA}`);var Mt=xe(dt),xt=fs(4+Mt+K);return TA[xt>>2]=Mt>>Oe,ee(dt,xt+4,Mt+K),rt!==null&&rt.push(yn,xt),xt},argPackAdvance:8,readValueFromPointer:fr,destructorFunction(rt){yn(rt)}})},v:($,K)=>{vs($,{isVoid:!0,name:K=ki(K),argPackAdvance:0,fromWireType:()=>{},toWireType:(vA,qA)=>{}})},j:($,K,vA)=>($=cn.toValue($),K=Zr(K,"emval::as"),_o(K,vA,$)),e:($,K,vA,qA,ee)=>{var fe,xe;return($=Hn[$])(K=cn.toValue(K),K[vA=(xe=Hc[fe=vA])===void 0?ki(fe):xe],qA,ee)},d:gn,f:($,K,vA)=>{var qA=((dt,Mt)=>{for(var xt=new Array(dt),Ii=0;Ii<dt;++Ii)xt[Ii]=Zr(TA[Mt+4*Ii>>2],"parameter "+Ii);return xt})($,K),ee=qA.shift();$--;var fe,xe,Oe=new Array($),rt=`methodCaller<(${qA.map(dt=>dt.name).join(", ")}) => ${ee.name}>`;return fe=rn(rt,(dt,Mt,xt,Ii)=>{for(var ct=0,Pt=0;Pt<$;++Pt)Oe[Pt]=qA[Pt].readValueFromPointer(Ii+ct),ct+=qA[Pt].argPackAdvance;var Ji=vA===1?Hs(Mt,Oe):Mt.apply(dt,Oe);for(Pt=0;Pt<$;++Pt)qA[Pt].deleteObject&&qA[Pt].deleteObject(Oe[Pt]);return _o(ee,xt,Ji)}),xe=Hn.length,Hn.push(fe),xe},c:$=>{$>4&&(mo.get($).refcount+=1)},b:$=>{var K=cn.toValue($);Js(K),gn($)},h:($,K)=>{var vA=($=Zr($,"_emval_take_value")).readValueFromPointer(K);return cn.toHandle(vA)},m:()=>{ut("")},s:($,K,vA)=>nA.copyWithin($,K,K+vA),r:$=>{nA.length,ut("OOM")},n:($,K,vA,qA)=>{for(var ee=0,fe=0;fe<vA;fe++){var xe=TA[K>>2],Oe=TA[K+4>>2];K+=8;for(var rt=0;rt<Oe;rt++)mc($,nA[xe+rt]);ee+=Oe}return TA[qA>>2]=ee,0}},In=function(){var $={a:Ga};function K(vA,qA){var ee,fe;return In=vA.exports,_=In.z,ee=_.buffer,I.HEAP8=IA=new Int8Array(ee),I.HEAP16=mA=new Int16Array(ee),I.HEAPU8=nA=new Uint8Array(ee),I.HEAPU16=lA=new Uint16Array(ee),I.HEAP32=cA=new Int32Array(ee),I.HEAPU32=TA=new Uint32Array(ee),I.HEAPF32=WA=new Float32Array(ee),I.HEAPF64=Ee=new Float64Array(ee),Pi=In.C,fe=In.A,pe.unshift(fe),function(){if(Dt--,I.monitorRunDependencies&&I.monitorRunDependencies(Dt),Dt==0&&Kt){var xe=Kt;Kt=null,xe()}}(),In}if(Dt++,I.monitorRunDependencies&&I.monitorRunDependencies(Dt),I.instantiateWasm)try{return I.instantiateWasm($,K)}catch(vA){U(`Module.instantiateWasm callback failed with error: ${vA}`),l(vA)}return gi(0,ge,$,function(vA){K(vA.instance)}).catch(l),{}}(),fs=$=>(fs=In.B)($),Ea=$=>(Ea=In.D)($),yn=$=>(yn=In.E)($),ba=$=>(ba=In.F)($);I.dynCall_jiji=($,K,vA,qA,ee)=>(I.dynCall_jiji=In.G)($,K,vA,qA,ee),I._vertexShaderSource=10688;function Sa(){function $(){fn||(fn=!0,I.calledRun=!0,de||(Fi(pe),r(I),I.onRuntimeInitialized&&I.onRuntimeInitialized(),function(){if(I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;)We(I.postRun.shift());Fi(gt)}()))}Dt>0||(function(){if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)pt(I.preRun.shift());Fi(Pe)}(),Dt>0||(I.setStatus?(I.setStatus("Running..."),setTimeout(function(){setTimeout(function(){I.setStatus("")},1),$()},1)):$()))}if(Kt=function $(){fn||Sa(),fn||(Kt=$)},I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();return Sa(),i.ready}})(),ZgA=zgA,xj=0,pX=class mX{constructor(i){this.core=i,bL(this,"seq"),bL(this,"_core"),bL(this,"log"),bL(this,"beautyParams"),xj+=1,this.seq=xj,this._core=i,this.log=i.log.createChild({id:`${this.getAlias()}${xj}`}),this.log.info("created")}getName(){return mX.Name}getAlias(){return"bb"}getValidateRule(i){switch(i){case"start":case"update":return jgA(this._core);case"stop":return WgA(this._core)}}getGroup(){return"bb"}async start(i){this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await ZgA()),this._core.room.videoManager.renderMode="webgl";const r=this._core.utils.isUndefined(i.beauty)?.5:i.beauty,l=this._core.utils.isUndefined(i.brightness)?.5:i.brightness,I=this._core.utils.isUndefined(i.ruddy)?.5:i.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:r,brightness:l,ruddy:I})}async update(i){const r=this._core.utils.isUndefined(i.beauty)?.5:i.beauty,l=this._core.utils.isUndefined(i.brightness)?.5:i.brightness,I=this._core.utils.isUndefined(i.ruddy)?.5:i.ruddy;return this._core.room.videoManager.setBeautyParams({beauty:r,brightness:l,ruddy:I})}async stop(){return this._core.room.videoManager.renderMode="auto",this._core.room.videoManager.stopBeauty()}destroy(){this._core.room.videoManager.renderMode="auto"}};bL(pX,"Name","BasicBeauty");var fX=pX,XgA=fX;const $gA=Object.freeze(Object.defineProperty({__proto__:null,BasicBeauty:fX,default:XgA},Symbol.toStringTag,{value:"Module"})),AcA=GU($gA);var ecA=Object.defineProperty,tcA=(t,i,r)=>i in t?ecA(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,oY=(t,i,r)=>tcA(t,typeof i!="symbol"?i+"":i,r),icA={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}}},ocA={name:"option",required:!0,properties:{transcriberRobotId:{type:"string",required:!0}}},scA=new Set([2002,4003]),yX=class DX{constructor(i){this.core=i,oY(this,"disableRandomCall",!0),oY(this,"activeTranscriberMap",new Map),oY(this,"_log"),this._log=this.core.log.createChild({id:`${this.getAlias()}`})}getName(){return DX.Name}getAlias(){return"rt-trans"}getGroup(){return"*"}getValidateRule(i){switch(i){case"start":return icA;case"update":return{};case"stop":return ocA}}async start(i){var r;const{RtcError:l,ErrorCode:I}=this.core.errorModule;if(!this.core.room.sendSignalMessage)throw new l({code:I.ENV_NOT_SUPPORTED});const{sourceLanguage:h,translationLanguages:f,userIdsToTranscribe:w="all",transcriberRobotId:_}=i,b=_||`transcriber_${this.core.room.roomId}_robot_${this.core.room.userId}`,U={sdkappid:this.core.room.sdkAppId,roomid:String(this.core.room.roomId),roomType:this.core.room.useStringRoomId?1:0,agentParam:{cdnRobotUserid:b,lifecycleUserid:this.core.room.userId,maxIdletime:30},subscribeParams:{subUsers:[]},asrParams:{lang:h,vadSilenceTime:1e3},translationParams:{mode:1,targetLangs:[""]}};f&&f.length>0&&(U.translationParams.mode=1,U.translationParams.targetLangs=Array.isArray(f)?f:[f]),w==="all"?U.subscribeParams.subUsers=[]:Array.isArray(w)?U.subscribeParams.subUsers=w.map(j=>({userId:j,roomType:this.core.room.useStringRoomId?1:0,roomid:String(this.core.room.roomId)})):w&&(U.subscribeParams.subUsers=[{userId:w,roomType:this.core.room.useStringRoomId?1:0,roomid:String(this.core.room.roomId)}]);try{this._log.info(`start_cloud_transcription ${JSON.stringify(U)}`);const j=await this.core.room.sendSignalMessage({command:"start_cloud_transcription",responseCommand:String(8268),data:U,retries:0}),{code:IA,data:nA}=j.data;if(IA!==0){const lA=((r=j.data)==null?void 0:r.message)||"";throw this._log.error("start_cloud_transcription failed",{extraCode:IA,reason:lA,data:nA}),new l({code:I.SERVER_ERROR,extraCode:IA,message:lA})}const{taskId:mA}=nA;if(!mA)throw this._log.error("taskId is required",{data:j.data}),new l({code:I.SERVER_ERROR,message:"taskId is required"});return this.activeTranscriberMap.set(mA,i),this._log.info(`start_cloud_transcription success ${mA}, activeSize: ${this.activeTranscriberMap.size}`),mA}catch(j){throw this._log.error("start_cloud_transcription failed",{error:j}),j}}async update(){}async stop({transcriberRobotId:i}){var r;const{RtcError:l,ErrorCode:I}=this.core.errorModule;if(!this.core.room.sendSignalMessage)throw new l({code:I.ENV_NOT_SUPPORTED});try{const h=await this.core.room.sendSignalMessage({command:"stop_cloud_transcription",responseCommand:String(8270),data:{taskId:i},retries:3});if(h.data.code!==0){const f=h.data.code,w=((r=h.data)==null?void 0:r.message)||"";if(!scA.has(f))throw this._log.error("stop_cloud_transcription failed",{extraCode:f,reason:w,data:h.data.data}),new l({code:I.SERVER_ERROR,extraCode:f,message:w});this._log.warn("stop_cloud_transcription ignored error",{extraCode:f,reason:w,data:h.data.data})}this.activeTranscriberMap.delete(i)}catch(h){throw this._log.error("stop_cloud_transcription failed",{error:h}),h}}destroy(){this.activeTranscriberMap.clear()}};oY(yX,"Name","RealtimeTranscriber");var SX=yX,ncA=SX;const rcA=Object.freeze(Object.defineProperty({__proto__:null,RealtimeTranscriber:SX,default:ncA},Symbol.toStringTag,{value:"Module"})),acA=GU(rcA);var gcA=Object.create,LU=Object.defineProperty,ccA=Object.defineProperties,MX=Object.getOwnPropertyDescriptor,lcA=Object.getOwnPropertyDescriptors,vX=Object.getOwnPropertyNames,fY=Object.getOwnPropertySymbols,IcA=Object.getPrototypeOf,PW=Object.prototype.hasOwnProperty,RX=Object.prototype.propertyIsEnumerable,F3=(t,i,r)=>i in t?LU(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r,Rn=(t,i)=>{for(var r in i||(i={}))PW.call(i,r)&&F3(t,r,i[r]);if(fY)for(var r of fY(i))RX.call(i,r)&&F3(t,r,i[r]);return t},nB=(t,i)=>ccA(t,lcA(i)),ucA=(t,i)=>{var r={};for(var l in t)PW.call(t,l)&&i.indexOf(l)<0&&(r[l]=t[l]);if(t!=null&&fY)for(var l of fY(t))i.indexOf(l)<0&&RX.call(t,l)&&(r[l]=t[l]);return r},UU=(t,i)=>function(){return i||(0,t[vX(t)[0]])((i={exports:{}}).exports,i),i.exports},xW=(t,i)=>{for(var r in i)LU(t,r,{get:i[r],enumerable:!0})},EcA=(t,i,r,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let I of vX(i))PW.call(t,I)||I===r||LU(t,I,{get:()=>i[I],enumerable:!(l=MX(i,I))||l.enumerable});return t},IT=(t,i,r)=>(r=t!=null?gcA(IcA(t)):{},EcA(LU(r,"default",{value:t,enumerable:!0}),t)),Cc=(t,i,r,l)=>{for(var I,h=MX(i,r),f=t.length-1;f>=0;f--)(I=t[f])&&(h=I(i,r,h)||h);return h&&LU(i,r,h),h},he=(t,i,r)=>F3(t,typeof i!="symbol"?i+"":i,r),FU=UU({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(t,i){var r=Object.prototype.hasOwnProperty,l="~";function I(){}function h(b,U,j){this.fn=b,this.context=U,this.once=j||!1}function f(b,U,j,IA,nA){if(typeof j!="function")throw new TypeError("The listener must be a function");var mA=new h(j,IA||b,nA),lA=l?l+U:U;return b._events[lA]?b._events[lA].fn?b._events[lA]=[b._events[lA],mA]:b._events[lA].push(mA):(b._events[lA]=mA,b._eventsCount++),b}function w(b,U){--b._eventsCount===0?b._events=new I:delete b._events[U]}function _(){this._events=new I,this._eventsCount=0}Object.create&&(I.prototype=Object.create(null),new I().__proto__||(l=!1)),_.prototype.eventNames=function(){var b,U,j=[];if(this._eventsCount===0)return j;for(U in b=this._events)r.call(b,U)&&j.push(l?U.slice(1):U);return Object.getOwnPropertySymbols?j.concat(Object.getOwnPropertySymbols(b)):j},_.prototype.listeners=function(b){var U=l?l+b:b,j=this._events[U];if(!j)return[];if(j.fn)return[j.fn];for(var IA=0,nA=j.length,mA=new Array(nA);IA<nA;IA++)mA[IA]=j[IA].fn;return mA},_.prototype.listenerCount=function(b){var U=l?l+b:b,j=this._events[U];return j?j.fn?1:j.length:0},_.prototype.emit=function(b,U,j,IA,nA,mA){var lA=l?l+b:b;if(!this._events[lA])return!1;var cA,TA,WA=this._events[lA],Ee=arguments.length;if(WA.fn){switch(WA.once&&this.removeListener(b,WA.fn,void 0,!0),Ee){case 1:return WA.fn.call(WA.context),!0;case 2:return WA.fn.call(WA.context,U),!0;case 3:return WA.fn.call(WA.context,U,j),!0;case 4:return WA.fn.call(WA.context,U,j,IA),!0;case 5:return WA.fn.call(WA.context,U,j,IA,nA),!0;case 6:return WA.fn.call(WA.context,U,j,IA,nA,mA),!0}for(TA=1,cA=new Array(Ee-1);TA<Ee;TA++)cA[TA-1]=arguments[TA];WA.fn.apply(WA.context,cA)}else{var de,Pe=WA.length;for(TA=0;TA<Pe;TA++)switch(WA[TA].once&&this.removeListener(b,WA[TA].fn,void 0,!0),Ee){case 1:WA[TA].fn.call(WA[TA].context);break;case 2:WA[TA].fn.call(WA[TA].context,U);break;case 3:WA[TA].fn.call(WA[TA].context,U,j);break;case 4:WA[TA].fn.call(WA[TA].context,U,j,IA);break;default:if(!cA)for(de=1,cA=new Array(Ee-1);de<Ee;de++)cA[de-1]=arguments[de];WA[TA].fn.apply(WA[TA].context,cA)}}return!0},_.prototype.on=function(b,U,j){return f(this,b,U,j,!1)},_.prototype.once=function(b,U,j){return f(this,b,U,j,!0)},_.prototype.removeListener=function(b,U,j,IA){var nA=l?l+b:b;if(!this._events[nA])return this;if(!U)return w(this,nA),this;var mA=this._events[nA];if(mA.fn)mA.fn!==U||IA&&!mA.once||j&&mA.context!==j||w(this,nA);else{for(var lA=0,cA=[],TA=mA.length;lA<TA;lA++)(mA[lA].fn!==U||IA&&!mA[lA].once||j&&mA[lA].context!==j)&&cA.push(mA[lA]);cA.length?this._events[nA]=cA.length===1?cA[0]:cA:w(this,nA)}return this},_.prototype.removeAllListeners=function(b){var U;return b?(U=l?l+b:b,this._events[U]&&w(this,U)):(this._events=new I,this._eventsCount=0),this},_.prototype.off=_.prototype.removeListener,_.prototype.addListener=_.prototype.on,_.prefixed=l,_.EventEmitter=_,i!==void 0&&(i.exports=_)}}),YW=UU({"../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(l){return l.encoding?"rtpmap:%d %s/%s/%s":l.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(l){return l.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(l){return l.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(l){return"extmap:%d"+(l.direction?"/%s":"%v")+(l["encrypt-uri"]?" %s":"%v")+" %s"+(l.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(l){return l.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(l){var I="candidate:%s %d %s %d %s %d typ %s";return I+=l.raddr!=null?" raddr %s rport %d":"%v%v",I+=l.tcptype!=null?" tcptype %s":"%v",l.generation!=null&&(I+=" generation %d"),I+=l["network-id"]!=null?" network-id %d":"%v",I+=l["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(l){var I="ssrc:%d";return l.attribute!=null&&(I+=" %s",l.value!=null&&(I+=":%s")),I}},{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(l){return l.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(l){return l.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(l){return"imageattr:%s %s %s"+(l.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(l){return"simulcast:%s %s"+(l.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(l){return"ts-refclk:%s"+(l.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(l){var I="mediaclk:";return I+=l.id!=null?"id=%s %s":"%v%s",I+=l.mediaClockValue!=null?"=%s":"",I+=l.rateNumerator!=null?" rate=%s":"",I+=l.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(l){r[l].forEach(function(I){I.reg||(I.reg=/(.*)/),I.format||(I.format="%s")})})}}),dcA=UU({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/parser.js"(t){var i=function(f){return String(Number(f))===f?Number(f):f},r=function(f,w,_){var b=f.name&&f.names;f.push&&!w[f.push]?w[f.push]=[]:b&&!w[f.name]&&(w[f.name]={});var U=f.push?{}:b?w[f.name]:w;(function(j,IA,nA,mA){if(mA&&!nA)IA[mA]=i(j[1]);else for(var lA=0;lA<nA.length;lA+=1)j[lA+1]!=null&&(IA[nA[lA]]=i(j[lA+1]))})(_.match(f.reg),U,f.names,f.name),f.push&&w[f.push].push(U)},l=YW(),I=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(f){var w={},_=[],b=w;return f.split(/(\r\n|\r|\n)/).filter(I).forEach(function(U){var j=U[0],IA=U.slice(2);j==="m"&&(_.push({rtp:[],fmtp:[]}),b=_[_.length-1]);for(var nA=0;nA<(l[j]||[]).length;nA+=1){var mA=l[j][nA];if(mA.reg.test(IA))return r(mA,b,IA)}}),w.media=_,w};var h=function(f,w){var _=w.split(/=(.+)/,2);return _.length===2?f[_[0]]=i(_[1]):_.length===1&&w.length>1&&(f[_[0]]=void 0),f};t.parseParams=function(f){return f.split(/;\s?/).reduce(h,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(f){return f.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(f){for(var w=[],_=f.split(" ").map(i),b=0;b<_.length;b+=3)w.push({component:_[b],ip:_[b+1],port:_[b+2]});return w},t.parseImageAttributes=function(f){return f.split(" ").map(function(w){return w.substring(1,w.length-1).split(",").reduce(h,{})})},t.parseSimulcastStreamList=function(f){return f.split(";").map(function(w){return w.split(",").map(function(_){var b,U=!1;return _[0]!=="~"?b=i(_):(b=i(_.substring(1,_.length)),U=!0),{scid:b,paused:U}})})}}}),CcA=UU({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/writer.js"(t,i){var r=YW(),l=/%[sdv%]/g,I=function(_){var b=1,U=arguments,j=U.length;return _.replace(l,function(IA){if(b>=j)return IA;var nA=U[b];switch(b+=1,IA){case"%%":return"%";case"%s":return String(nA);case"%d":return Number(nA);case"%v":return""}})},h=function(_,b,U){var j=[_+"="+(b.format instanceof Function?b.format(b.push?U:U[b.name]):b.format)];if(b.names)for(var IA=0;IA<b.names.length;IA+=1){var nA=b.names[IA];b.name?j.push(U[b.name][nA]):j.push(U[b.names[IA]])}else j.push(U[b.name]);return I.apply(null,j)},f=["v","o","s","i","u","e","p","c","b","t","r","z","a"],w=["i","c","b","a"];i.exports=function(_,b){b=b||{},_.version==null&&(_.version=0),_.name==null&&(_.name=" "),_.media.forEach(function(nA){nA.payloads==null&&(nA.payloads="")});var U=b.outerOrder||f,j=b.innerOrder||w,IA=[];return U.forEach(function(nA){r[nA].forEach(function(mA){mA.name in _&&_[mA.name]!=null?IA.push(h(nA,mA,_)):mA.push in _&&_[mA.push]!=null&&_[mA.push].forEach(function(lA){IA.push(h(nA,mA,lA))})})}),_.media.forEach(function(nA){IA.push(h("m",r.m[0],nA)),j.forEach(function(mA){r[mA].forEach(function(lA){lA.name in nA&&nA[lA.name]!=null?IA.push(h(mA,lA,nA)):lA.push in nA&&nA[lA.push]!=null&&nA[lA.push].forEach(function(cA){IA.push(h(mA,lA,cA))})})})}),IA.join(`\r
|
||
`)+`\r
|
||
`}}}),hcA=UU({"../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/index.js"(t){var i=dcA(),r=CcA(),l=YW();t.grammar=l,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}}),BcA={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"}},wX=(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,l,I){const{RtcError:h,ErrorCode:f,ErrorCodeDictionary:w}=t.errorModule;if(!r)return;const{width:_,height:b}=r;if(_&&b&&_*b>8294400)throw new h({code:f.INVALID_PARAMETER,message:"The mix resolution cannot be set higher than 3840 * 2160."})}}),_X=t=>({required:!1,type:["string",HTMLElement,null],validate(i,r,l){const{RtcError:I,ErrorCode:h,ErrorCodeDictionary:f}=t.errorModule;if(t.utils.isString(i)&&!document.getElementById(i))throw new I({code:h.INVALID_PARAMETER,extraCode:f.INVALID_ELEMENT_ID,fnName:l,messageParams:{key:r}})}}),OU=(t,i=!0)=>({type:"object",required:i,properties:Rn({},BcA),validate(r,l,I){const{RtcError:h,ErrorCode:f,ErrorCodeDictionary:w}=t.errorModule;if(r){if(r.fillMode&&!["contain","cover","fill"].includes(r.fillMode))throw new h({code:f.INVALID_PARAMETER,extraCode:w.INVALID_PARAMETER_TYPE,message:"The fillMode parameter must be 'contain', 'cover' or 'fill'",fnName:I});if(r.rotation&&![0,90,180,270].includes(r.rotation))throw new h({code:f.INVALID_PARAMETER,extraCode:w.INVALID_PARAMETER_TYPE,message:"The rotation parameter must be 0, 90, 180 or 270",fnName:I})}}}),TX=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:Rn({},OU(t))}}}),NX=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:Rn({},OU(t))},validate(i,r,l){const{RtcError:I,ErrorCode:h,ErrorCodeDictionary:f}=t.errorModule;if(!t.rtcDectection.isScreenCaptureApiAvailable())throw new I({code:h.ENV_NOT_SUPPORTED,fnName:l,extraCode:f.NOT_SUPPORTED_SCREEN_SHARE})}}}),GX=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:Rn({},OU(t))}}}),bX=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:Rn({},OU(t))}}}),kX=t=>({type:"array",required:!1,arrayItem:{type:"object",properties:{id:{required:!0,type:"string"},url:{required:!0,type:"string"},layout:Rn({},OU(t))}}});function QcA(t){return{name:"VideoMixerOptions",type:"object",required:!0,allowEmpty:!1,properties:{view:Rn({},_X(t)),canvasInfo:Rn({},wX(t,!0)),camera:Rn({},TX(t)),screen:Rn({},NX(t)),text:Rn({},GX(t)),image:Rn({},bX(t)),video:Rn({},kX(t))},validate(i,r,l,I){const{RtcError:h,ErrorCode:f,ErrorCodeDictionary:w}=t.errorModule;if(t.environment.isMobile())throw new h({code:f.ENV_NOT_SUPPORTED,message:"VideoMixer is not supported on mobile devices currently"});const{onScreenShareStop:_}=i;if(_&&!t.utils.isFunction(_))throw new h({code:f.INVALID_PARAMETER,extraCode:w.INVALID_PARAMETER_TYPE,fnName:l,messageParams:{key:"onScreenShareStop",value:typeof _,rule:{type:"Function"}}})}}}function pcA(t){return{name:"VideoMixerOptions",type:"object",required:!1,allowEmpty:!1,properties:{view:Rn({},_X(t)),canvasInfo:Rn({},wX(t)),camera:Rn({},TX(t)),screen:Rn({},NX(t)),text:Rn({},GX(t)),image:Rn({},bX(t)),video:Rn({},kX(t))}}}function mcA(t){return{name:"StopVideoMixerOptions",required:!1}}var LX=(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))(LX||{}),qg=LX,fcA=function(t){for(const i in qg)if(qg[i]===t)return i;return"UNKNOWN"},ycA=class extends Error{constructor({name:t="RtcError",message:i,code:r=qg.UNKNOWN,extraCode:l=0,constraint:I}){const h=`<${fcA(r)} 0x${r.toString(16)}>`,f=`${i}${I?` constraint: ${I}`:""}${i?.includes(h)?"":` ${h}`}`;super(f),he(this,"code"),he(this,"extraCode"),he(this,"message"),he(this,"originMessage"),he(this,"name"),he(this,"constraint"),this.code=r,this.extraCode=l,this.name=t,this.message=f,this.constraint=I,this.originMessage=i}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ml=ycA,DcA=0,VW=function(){return Date.now()+DcA},UX=function(){const t=new Date;return t.setTime(VW()),t.toLocaleString()},ScA=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}`},McA={};xW(McA,{REPORT_TYPE:()=>o7,buildSSOPackage:()=>KW,bytes2ms:()=>AlA,calculateScaleResolutionDownNumber:()=>t7,concatArrayBuffers:()=>SlA,convertObjectNumberToInt:()=>A7,copyProperties:()=>$cA,deepClone:()=>SY,deepCloneBasic:()=>K3,deepMerge:()=>ZX,delay:()=>oT,fibonacci:()=>qW,formatedTime:()=>BlA,getConstructorName:()=>nlA,getContainerFromElement:()=>ClA,getEnv:()=>qcA,getFirst16Bits:()=>vlA,getInternalVersion:()=>clA,getLast16Bits:()=>MlA,getLoggerUrl:()=>JW,getMediaStreamTrackInfo:()=>flA,getMuteStateFromFlag:()=>zX,getNetworkType:()=>HW,getNumNetworkType:()=>XcA,getReconnectionTimeout:()=>ilA,getStringByteLength:()=>QlA,getTestSignalDomain:()=>jcA,getTurnServer:()=>ulA,getUint32Version:()=>$X,getValueType:()=>wv,getViewListFromView:()=>dlA,glog:()=>tlA,ipv4ToUint32:()=>ElA,isArray:()=>Ah,isAudioWorkletSupported:()=>rlA,isBoolean:()=>mv,isConstructor:()=>WX,isEmpty:()=>IlA,isFunction:()=>pv,isLangChinese:()=>Wy,isMediaStreamTrack:()=>olA,isNumber:()=>_v,isObject:()=>dv,isOverseaSdkAppId:()=>DY,isPlainObject:()=>iT,isPortrait:()=>XX,isPromise:()=>jX,isRemoteTrack:()=>slA,isRotate90Or270:()=>i7,isSetSinkIdSupported:()=>alA,isString:()=>ih,isUndefined:()=>$n,isVideoMixerOutputTrack:()=>jW,loadImage:()=>plA,loadVideo:()=>ylA,ms2bytes:()=>elA,ms2samples:()=>KX,normalizeUrl:()=>mlA,performanceNow:()=>Yc,promiseAny:()=>glA,samples2ms:()=>qX,setNetworkTypeFromWebRTC:()=>ZcA,stringify:()=>zy,stringifyIncludeValue:()=>q3,throttlePromise:()=>e7});var yY="5.0.0",FX=typeof importScripts<"u",OX=typeof registerProcessor<"u",vcA="web.sdk.qcloud.com",O3=`https://${vcA}/trtc/webrtc/doc`,AZ="https://cloud.tencent.com/document/product/647/85386",eZ="https://trtc.io/document/56025",RcA="https://yun.tim.qq.com",wcA="https://apisgp.my-imcloud.com",_cA="trtc_error_assistance",PX={LOG:"jssdk_log"},Yj={QCLOUD:"qcloud"},__=(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))(__||{}),xX={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},TcA=6048e5,NcA={"480p_2":{width:640,height:480,frameRate:15,bitrate:500}},GcA=NcA["480p_2"],Zt={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"},tZ=1,bcA=2,kcA=4,iZ=8,oZ=64,sZ=16,LcA=256,$L={PLAYER_ERROR:"player-error",LOAD_WORKLET:"load-worklet",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},UcA="unified-plan",T_=5,YX="default",U1=2e3,VX=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],FcA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},OcA=function(t,i,r,l){return new(r||(r=Promise))(function(I,h){function f(b){try{_(l.next(b))}catch(U){h(U)}}function w(b){try{_(l.throw(b))}catch(U){h(U)}}function _(b){var U;b.done?I(b.value):(U=b.value,U instanceof r?U:new r(function(j){j(U)})).then(f,w)}_((l=l.apply(t,[])).next())})},P3=Symbol(32),x3=Symbol(16),Y3=Symbol(8),j_=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 OcA(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((i,r)=>{var l;this.reject=r,this.resolve=I=>{delete this.lastReadPromise,delete this.resolve,delete this.need,i(I)},this.demand(t,!0)||(l=this.pull)===null||l===void 0||l.call(this,t)})})}readU32(){return this.read(P3)}readU16(){return this.read(x3)}readU8(){return this.read(Y3)}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 l=I=>i.length<(r=I);if(typeof this.need=="number"){if(l(this.need))return;t=i.subarray(0,r)}else if(this.need===P3){if(l(4))return;t=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===x3){if(l(2))return;t=i[0]<<8|i[1]}else if(this.need===Y3){if(l(1))return;t=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(l(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(l(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 l=new Uint8Array(r);l.set(this.buffer),this.buffer=l}return this.buffer.subarray(i,r)}return this.buffer=new Uint8Array(t),this.buffer}};j_.U32=P3,j_.U16=x3,j_.U8=Y3;var PcA=128;function Vj(t){const i=new j_;for(;t>=128;)i.malloc(1)[0]=255&t|PcA,t>>>=7;return i.malloc(1)[0]=255&t,i.buffer||new Uint8Array(0)}function V3(t,i=0){const r=new j_,l=i<<3;switch(typeof t){case"boolean":const I=r.malloc(2);I[0]=l,I[1]=t?1:0;break;case"number":r.malloc(1)[0]=l,r.write(Vj(t));break;case"string":r.malloc(1)[0]=2|l;const h=new TextEncoder().encode(t);r.write(Vj(h.length));const f=r.malloc(h.length);for(let _=0;_<h.length;_++)f[_]=h[_];break;case"object":const w=new j_;if(Array.isArray(t))for(let _=0;_<t.length;_++){const b=V3(t[_],_+1);b&&w.write(b)}else{let _=1;for(const b in t){const U=V3(t[b],_++);U&&w.write(U)}}i===0?w.buffer&&r.write(w.buffer):(r.malloc(1)[0]=2|l,w.buffer&&(r.write(Vj(w.buffer.length)),r.write(w.buffer)))}return r.buffer||new Uint8Array(0)}var nZ=class{constructor(){he(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 rZ(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 gd(t,i){return t[i]<<24|t[i+1]<<16|t[i+2]<<8|t[i+3]}function aZ(t,i){return t[i]}function pL(t,i,r){return new TextDecoder().decode(xcA(t,i,r))}function xcA(t,i,r){return t.slice(i,i+r)}var Jj=0,J3=2654435769,H3=16,gZ=4,AU=2,eU=7;function YcA(t,i,r,l="AVQualityReportSvc.C2S",I=2e3,h=2,f=30){return{version:I,encryption:h,d2:"",d2Len:0,uinType:f,uin:"",uinLen:0,reqHead:{seqNumber:r,appId:t,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:l,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:i}}function VcA(t,i){const r=new nZ,l=YcA(i,t,Jj);Jj=Jj+1&2147483647,r.writeInt32(0),r.writeInt32(l.version),r.writeByte(l.encryption);const I=new TextEncoder().encode(l.d2);r.writeInt32(I.length+4),I&&r.writeBytes(I),r.writeByte(l.uinType);const h=new TextEncoder().encode(l.uin);r.writeInt32(h.length+4),h.length&&r.writeBytes(h);const f=new nZ;f.writeInt32(0),f.writeInt32(l.reqHead.seqNumber),f.writeInt32(l.reqHead.appId),f.writeByte(l.reqHead.appId>>>24&255),f.writeByte(l.reqHead.appId>>>16&255),f.writeByte(l.reqHead.appId>>>8&255),f.writeByte(255&l.reqHead.appId);for(let WA=4;WA<16;WA++)f.writeByte(0);const w=new TextEncoder().encode(l.reqHead.a2);f.writeInt32(w.length+4),w.length&&f.writeBytes(w);const _=new TextEncoder().encode(l.reqHead.serviceCmd);f.writeInt32(_.length+4),_.length&&f.writeBytes(_);const b=new TextEncoder().encode(l.reqHead.cookie);f.writeInt32(b.length+4),b.length&&f.writeBytes(b);const U=new TextEncoder().encode(l.reqHead.imei);f.writeInt32(U.length+4),U.length&&f.writeBytes(U);const j=new TextEncoder().encode(l.reqHead.ksid);f.writeInt32(j.length+4),j.length&&f.writeBytes(j);const IA=new TextEncoder().encode(l.reqHead.clientVersionInfo);f.writeInt16(IA.length+2),IA.length&&f.writeBytes(IA);const nA=f.length;f.data[0]=nA>>>24&255,f.data[1]=nA>>>16&255,f.data[2]=nA>>>8&255,f.data[3]=255&nA,ih(t)&&(t=new TextEncoder().encode(t)),f.writeInt32(t.length+4),t.length&&f.writeBytes(t);let mA=new Uint8Array(f.data),lA=null;l.encryption===1?lA=new TextEncoder().encode(l.uin):l.encryption===2&&(lA=new Uint8Array(16)),lA&&(mA=JcA(mA,lA)),r.writeBytes(mA);const cA=new Uint8Array(r.data),TA=cA.length;return cA[0]=TA>>>24&255,cA[1]=TA>>>16&255,cA[2]=TA>>>8&255,cA[3]=255&TA,cA}function JcA(t,i){const r=t.length;let l=(r+1+AU+eU)%8;l&&(l=8-l);const I=new Uint8Array(r+1+AU+eU+l);let h=0;const f=new Uint8Array(8),w=new Uint8Array(8),_=new Uint8Array(8);let b=0;f[0]=248&Math.floor(256*Math.random())|l,b=1;for(let j=0;j<l;j++)f[b]=255&Math.floor(256*Math.random()),b+=1;for(let j=0;j<AU;)if(b<8&&(f[b]=255&Math.floor(256*Math.random()),b+=1,j+=1),b===8){Hj(f,i,w,_,I,h),h+=8,b=0;for(let IA=0;IA<8;IA++)_[IA]=I[h-8+IA]}let U=0;for(;U<r;)if(b<8&&(f[b]=t[U],b+=1,U+=1),b===8){Hj(f,i,w,_,I,h),h+=8,b=0;for(let j=0;j<8;j++)_[j]=I[h-8+j]}for(let j=0;j<eU;)if(b<8&&(f[b]=0,b+=1,j+=1),b===8){Hj(f,i,w,_,I,h),h+=8,b=0;for(let IA=0;IA<8;IA++)_[IA]=I[h-8+IA]}return I}function Hj(t,i,r,l,I,h){for(let f=0;f<8;f++)t[f]^=l[f];HcA(t,i,I,h);for(let f=0;f<8;f++)I[h+f]^=r[f];for(let f=0;f<8;f++)r[f]=t[f]}function HcA(t,i,r,l){let I=gd(t,0),h=gd(t,4);const f=[];for(let _=0;_<4;_++)f[_]=gd(i,4*_);let w=0;for(let _=0;_<H3;_++)w+=J3,w>>>=0,I+=(h<<4)+f[0]^h+w^(h>>>5)+f[1],I>>>=0,h+=(I<<4)+f[2]^I+w^(I>>>5)+f[3],h>>>=0;rZ(r,I,l),rZ(r,h,l+4)}var qcA=function(){return new URLSearchParams(location.search).get("trtc_env")||""},KcA=".rtc.qq.com",jcA=function(t){return t.includes(".")?t:`${t}${KcA}`},DY=t=>Number(t)<14e8,JW=function(t,i){let r;return r=DY(t)?wcA:RcA,`${r}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*2**31)}&sdkappid=${t}&cmdtype=${i}`},JX="unknown";function HW(){zcA();const{userAgent:t,connection:i}=navigator;let r=(t.match(/NetType\/\S+/)||[])[0]||"";r=r.toLowerCase().replace("nettype/",""),r==="3gnet"&&(r="3g");const l=i&&i.type&&i.type.toLowerCase();let I=i&&i.effectiveType&&i.effectiveType.toLowerCase();return I==="slow-2"&&(I="2g"),l?HX(l,I):JX}function WcA(){Wo.warn("netType changed",HW())}var cZ=!1;function zcA(){var t;cZ||(cZ=!0,(t=navigator.connection)==null||t.addEventListener("typechange",WcA))}function HX(t,i){if(xX[t])return t;switch(t){case"cellular":case"wimax":return i||"unknown";case"ethernet":return"wired";default:return"unknown"}}function ZcA(t){JX=HX(t)}function XcA(){return xX[HW()]}function $cA(t,i){for(const r of Reflect.ownKeys(i))if(r!=="constructor"&&r!=="prototype"&&r!=="name"){const l=Object.getOwnPropertyDescriptor(i,r)||"";Object.defineProperty(t,r,l)}return t}function AlA(t,i=48e3){return qX(t/4,i)}function qX(t,i=48e3){return 1e3*t/i}function elA(t,i=48e3){return 4*KX(t,i)}function KX(t,i=48e3){return t*i/1e3}var tlA=typeof window<"u"&&typeof window.glog=="function"?window.glog:()=>{},Wy=()=>{let t=navigator.language;return t=t.substring(0,2),t==="zh"},iT=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 qW(t,i=1,r=1){return t<=1?r:qW(t-1,r,i+r)}function ilA(t){return t>8?3e4:1e3*qW(t)}function wv(t){return Reflect.apply(Object.prototype.toString,t,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var pv=t=>typeof t=="function",$n=t=>t===void 0,ih=t=>typeof t=="string",_v=t=>typeof t=="number",mv=t=>typeof t=="boolean",dv=t=>wv(t)==="object",Ah=t=>wv(t)==="array",olA=t=>wv(t)==="MediaStreamTrack".toLowerCase(),slA=t=>t.isRemote,jX=t=>wv(t)==="promise",WX=t=>pv(t)&&t.prototype.constructor===t,nlA=t=>WX(t)?t.prototype.constructor.name:"",rlA=typeof AudioWorkletNode<"u",alA=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype;function glA(t){return new Promise((i,r)=>{const l=[];t.forEach(I=>{I.then(i).catch(h=>{l.push(h),l.length===t.length&&r(l)})})})}function Yc(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var lZ=t=>+t<10?`0${t}`:t,clA=t=>{const i=t.match(/^\d+\.\d+\.\d+/)[0];if(!i)return t;const r=i.split("."),l=lZ(r[1])+lZ(r[2]);return r[1]-15>0&&(r[1]="15"),r[2]-15>0&&(r[2]="15"),`${r.join(".")}.${l}`},llA=Object.prototype.hasOwnProperty;function IlA(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(iT(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(llA.call(t,i))return!1;return!0}return!1}function zX(t,i){return{userId:i,hasAudio:!!(t&iZ),hasVideo:!!(t&tZ),hasAuxiliary:!!(t&kcA),hasSmall:!!(t&bcA),audioMuted:!!(t&oZ),videoMuted:!!(t&sZ),audioAvailable:!(!(t&iZ)||t&oZ),videoAvailable:!(!(t&tZ)||t&sZ),hasDatachannel:!!(t&LcA)}}function ulA(t){const i={urls:t.url.startsWith("turn:")||t.url.startsWith("turns:")?t.url:`turn:${t.url}`};return $n(t.username)||$n(t.credential)||(i.username=t.username,i.credential=t.credential,i.credentialType="password",$n(t.credentialType)||(i.credentialType=t.credentialType)),i}function ElA(t,i=!0){if(!ih(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 ZX=function(t,i,r,l){if(!dv(t)||!dv(i))return 0;let I=0;const h=Object.keys(i);let f;for(let w=0,_=h.length;w<_;w++)if(f=h[w],!($n(i[f])||r&&r.includes(f)))if(dv(t[f])&&dv(i[f]))I+=ZX(t[f],i[f],r,l);else{if(l&&l.includes(i[f]))continue;t[f]!==i[f]&&(t[f]=SY(i[f]),I+=1)}return I};function SY(t){if(Ah(t)){const i=[];return t.forEach((r,l)=>{i[l]=SY(r)}),i}if(dv(t)){const i={};return Object.keys(t).forEach(r=>{i[r]=SY(t[r])}),i}return t}var dlA=t=>{let i=[];if(Ah(t))i=[...t];else if(ih(t)){const r=document.getElementById(t);r&&i.push(r)}else t&&i.push(t);return i},ClA=t=>ih(t)?document.getElementById(t):t,hlA=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())}`},BlA=()=>hlA(new Date);function zy(t,{keysToInclude:i,keysToExclude:r}){try{if(Ah(t))return`[${t.map(f=>zy(f,{keysToInclude:i,keysToExclude:r})).join(",")}]`;if(!iT(t)||!Ah(i)&&!Ah(r))return JSON.stringify(t);const l={},I=new Set(i),h=new Set(r);return Object.keys(t).forEach(f=>{(h.size===0&&I.has(f)||I.size===0&&!h.has(f))&&(l[f]=iT(t[f])||Ah(t[f])?JSON.parse(zy(t[f],{keysToExclude:r,keysToInclude:i})):t[f])}),JSON.stringify(l)}catch{return"{}"}}function q3(t,i=!1){const r=[];return Object.keys(t).forEach(l=>{i===t[l]&&r.push(l)}),zy(t,{keysToInclude:r})}function QlA(t){return t.replace(/[\u4e00-\u9fa5]/g,"aa").length}var XX=()=>{var t,i,r,l;return(t=window.screen)!=null&&t.orientation?!!((l=(r=(i=window.screen)==null?void 0:i.orientation)==null?void 0:r.type)!=null&&l.includes("portrait")):window.orientation===0||window.orientation===180},plA=async t=>new Promise((i,r)=>{let l;if(ih(t))l=new Image,l.crossOrigin="anonymous",l.src=t;else if(l=t,l.complete)return void i(l);l.onload=()=>i(l),l.onerror=()=>{r(new ml({code:qg.INVALID_PARAMETER,message:`load image failed, url: ${t}`}))}}),$X=t=>{const i=t.split(".");return+i[0]<<24|+i[1]<<16|+i[2]<<8|+i[3]},A7=t=>(Object.keys(t).forEach(i=>{_v(t[i])&&(i.startsWith("uint")||i.startsWith("int"))?t[i]=Math.floor(t[i]):(iT(t[i])||Ah(t[i]))&&A7(t[i])}),t);function oT(t,i){return new Promise(r=>{const l=setTimeout(r,t);i&&i(l)})}function e7(t,i){let r=null;return function(...l){return r||(r=t.apply(i||this,l),r.finally(()=>r=null),r)}}function mlA(t){return t.replace(/(^|[^:])\/{2,}/g,"$1/")}function flA(t){var i;try{const{width:r,height:l,frameRate:I,sampleRate:h,sampleSize:f,channelCount:w}=(i=t.getSettings)==null?void 0:i.call(t),_=t.kind===Zt.AUDIO?`${h}x${f}@${w}`:`${r}x${l}@${I}`,b=t.stats?` stats: ${JSON.stringify(t.stats).replaceAll('"',"")}`:"";return`${t.id} ${t.readyState} muted:${t.muted} ${t.kind} ${t.label} ${_}${b}`}catch{return""}}function t7(t,i){return t.width*t.height===i.width*i.height?1:XX()&&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 i7(t){return t===90||t===270}async function ylA(t){return new Promise((i,r)=>{const l=document.createElement("video");l.crossOrigin="anonymous",l.src=t,l.muted=!0,l.loop=!0,l.playsInline=!0,l.play().then(()=>i(l)),l.onerror=()=>{r(l.error)}})}function K3(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((l,I)=>{r[I]=K3(l,i)}),r}if(Object.prototype.toString.call(t)==="[object Object]"){const r={};return i.set(t,r),Reflect.ownKeys(t).forEach(l=>{r[l]=K3(t[l],i)}),r}return t}var o7=(t=>(t[t.END_REPORT=2001]="END_REPORT",t[t.LOG=2002]="LOG",t[t.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",t))(o7||{});function DlA(t,i,r,l){let I={data:t,random:Math.floor(Math.random()*2147483648),sdkAppId:r};return $n(l)||(I=nB(Rn({},I),{gzip:+l})),{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(I)}}}function KW(t,i,r,l){try{const I=DlA(t,i,r,l);return VcA(V3(I),r)}catch{return JSON.stringify(t)}}function SlA(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 MlA(t){return(65535&t)>>>0}function vlA(t){return(4294901760&t)>>>0}function jW(t){return!!(t&&t instanceof CanvasCaptureMediaStreamTrack&&t.canvas.id.includes("trtc_mix"))}function RlA(t){const i=wlA(t);return i?.busiBuff}function wlA(t){try{const i={};let r=0;i.totalLength=gd(t,r),r+=4,i.version=gd(t,r),r+=4,i.encryption=aZ(t,r),r+=1,i.uinType=aZ(t,r),r+=1,i.uinLength=gd(t,r),r+=4,i.uin=i.uinLength>4?pL(t,r,i.uinLength-4):"",r+=i.uinLength-4;const l=t.slice(r);if(i.encryption===2){const I=new Uint8Array(16).fill(0);t=_lA(l,I),i.decrypted=!0,r=0}else t=l,r=0;return i.rspHeadLength=gd(t,r),r+=4,i.seqNo=gd(t,r),r+=4,i.retCode=gd(t,r),r+=4,i.retStrLength=gd(t,r),r+=4,i.retStr=i.retStrLength?pL(t,r,i.retStrLength-4):"",r+=i.retStrLength-4,i.serviceCmdLength=gd(t,r),r+=4,i.serviceCmd=i.serviceCmdLength?pL(t,r,i.serviceCmdLength-4):"",r+=i.serviceCmdLength-4,i.cookieLength=gd(t,r),r+=4,i.cookie=i.cookieLength?pL(t,r,i.cookieLength-4):"",r+=i.cookieLength-4,i.flag=gd(t,r),r+=4,i.busiBuffLength=gd(t,r),r+=4,i.busiBuff=i.busiBuffLength?pL(t,r,i.busiBuffLength-4):"",r+=i.busiBuffLength-4,i}catch{}}function s7(t,i){let r=t[0]<<24|t[1]<<16|t[2]<<8|t[3],l=t[4]<<24|t[5]<<16|t[6]<<8|t[7];r>>>=0,l>>>=0;let I=J3*H3>>>0;for(let h=0;h<H3;h++)l-=(r<<gZ)+i[2]^r+I^(r>>>5)+i[3],l>>>=0,r-=(l<<gZ)+i[0]^l+I^(l>>>5)+i[1],r>>>=0,I-=J3,I>>>=0;return new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r,l>>>24&255,l>>>16&255,l>>>8&255,255&l])}function _lA(t,i){let r=0;const l=new Uint8Array(8).fill(0);let I=s7(new Uint8Array(t.slice(0,8)),i);const h=7&I[0],f=t.length-1-h-AU-eU,w=new Uint8Array(f);let _=0,b=l,U=t.slice(0,8);r=8;let j=1;j+=h;for(let nA=1;nA<=AU;)if(j<8)j++,nA++;else if(j===8){const mA=qj(t,r,b,U,I,i);b=mA.ivPreCrypt,U=mA.ivCurCrypt,I=mA.debiBuf,r=mA.bufPos,j=0}let IA=f;for(;IA>0;)if(j<8)w[_++]=I[j]^b[j],j++,IA--;else if(j===8){const nA=qj(t,r,b,U,I,i);b=nA.ivPreCrypt,U=nA.ivCurCrypt,I=nA.debiBuf,r=nA.bufPos,j=0}for(let nA=1;nA<=eU;)if(j<8)I[j],b[j],j++,nA++;else if(j===8){if(r>=t.length)break;const mA=qj(t,r,b,U,I,i);if(!mA.success)break;b=mA.ivPreCrypt,U=mA.ivCurCrypt,I=mA.debiBuf,r=mA.bufPos,j=0}return w}function qj(t,i,r,l,I,h){if(i+8>t.length)return{success:!1};const f=new Uint8Array(l),w=t.slice(i,i+8),_=new Uint8Array(8);for(let b=0;b<8;b++)_[b]=I[b]^w[b];return{success:!0,ivPreCrypt:f,ivCurCrypt:w,debiBuf:s7(_,h),bufPos:i+8}}var IZ=typeof TextDecoder<"u"?new TextDecoder:void 0;function n7({url:t,body:i,method:r="POST",timeout:l,priority:I}){return new Promise((h,f)=>{if("fetch"in window)return fetch(t,{method:r,body:i,priority:I}).then(_=>_.clone().json().then(b=>({data:b}),()=>_.arrayBuffer().then(b=>({data:RlA(new Uint8Array(b))||(IZ?IZ.decode(b):b)})))).then(h,f);const w=new XMLHttpRequest;w.onreadystatechange=()=>{if(w.readyState===4)if(w.status>=200&&w.status<300)try{const _=JSON.parse(w.response);h({data:_})}catch{h({data:w.response})}else f({status:w.status,statusText:w.statusText||"request failed!"})},w.timeout=l||5e3,w.open(r,t,!0),w.send(i)})}var TlA=Object.prototype.hasOwnProperty,N_=t=>typeof t=="function",m_=t=>t===void 0,NlA=t=>typeof t=="boolean",Kj=t=>t.isRemote,GlA=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 blA(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(GlA(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(TlA.call(t,i))return!1;return!0}return!1}var klA=0,LlA=1,uZ=2;function UlA({retryFunction:t,settings:i,onError:r,onRetrying:l,onRetryFailed:I,onRetrySuccess:h,context:f}){return function(...w){const{retries:_=5,timeout:b=1e3}=i;let U=0,j=-1,IA=klA;const nA=async(mA,lA)=>{const cA=f||this;try{const TA=await t.apply(cA,w);U>0&&h&&h.call(this,U),U=0,mA(TA)}catch(TA){const WA=()=>{clearTimeout(j),U=0,IA=uZ,lA(TA)},Ee=()=>{IA!==uZ&&U<(N_(_)?_():_)?(U++,IA=LlA,N_(l)&&l.call(this,U,WA),j=window.setTimeout(()=>{j=-1,nA(mA,lA)},N_(b)?b(U):b)):(WA(),N_(I)&&I.call(this,TA))};N_(r)?r.call(this,{error:TA,retry:Ee,reject:lA,retryFuncArgs:w,retriedCount:U}):Ee()}};return new Promise(nA)}}var WW=UlA,jj=class r7{constructor(i){he(this,"_parentPath"),he(this,"userId"),he(this,"remoteUserId"),he(this,"id"),he(this,"sdkAppId"),he(this,"type"),he(this,"isLocal"),this.id=i.id,this.userId=i.userId,this.sdkAppId=i.sdkAppId,this.remoteUserId=i.remoteUserId,this.isLocal=!NlA(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 r7({id:i.id,userId:m_(i.userId)?this.userId:i.userId,sdkAppId:m_(i.sdkAppId)?this.sdkAppId:i.sdkAppId,type:m_(i.type)?this.type:i.type,isLocal:m_(i.isLocal)?this.isLocal:i.isLocal,remoteUserId:m_(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 l=this.isLocal?this.userId:this.remoteUserId,I=this.getFullId();r.unshift(`[${this.isLocal?"↑":"↓"}${this.type&&this.type!=="main"?"*":""}${I}${l?`|${l}`:""}]`),Wo.log(i,r,m_(this.userId)||blA(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)}},wQ=typeof navigator>"u"?"":navigator.userAgent,Ys=t=>new RegExp(t,"i").test(wQ),Qc=t=>{if(Ys(t)){const i=new RegExp(`${t}\\/([\\d.]+)`),r=wQ.match(i);if(r&&r[1])return r[1]}return""},IV=t=>{if(Ys(t)){const i=new RegExp(`${t}\\/(\\d+)`),r=wQ.match(i);if(r&&r[1])return parseFloat(r[1])}return NaN},EZ=/AppleWebKit\/([\d.]+)/i.exec(wQ);EZ&&parseFloat(EZ[1]);var zW=Ys("iPad"),a7=typeof navigator<"u"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ys("Macintosh"),uV=Ys("iPhone")&&!zW,FlA=Ys("iPod"),Su=uV||zW||FlA||a7,MY=()=>{try{return Su&&navigator.maxTouchPoints>1&&navigator.vendor.includes("Apple")}catch{return Su}},aC=Ys("Android"),g7=function(){if(aC){const t=wQ.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}();aC&&Ys("webkit")&&g7<2.3;var sC=Ys("Firefox"),c7=Qc("Firefox"),l7=IV("Firefox"),PU=Ys("Edge"),I7=Qc("Edge"),EV=Ys("Edg"),u7=Qc("Edg"),OlA=IV("Edg"),ZW=Ys("SogouMobileBrowser"),E7=Qc("SogouMobileBrowser"),XW=Ys("MetaSr\\s"),d7=Qc("MetaSr\\s"),Bm=Ys("TBS"),C7=Qc("TBS"),uT=Ys("XWEB"),h7=Qc("XWEB");Ys("MSIE\\s8\\.0");var PlA=Ys("MSIE\\/\\d+");(function(){if(PlA){const t=/MSIE\s(\d+)\.\d/.exec(wQ);let i=t&&parseFloat(t[1]);return!i&&/Trident\/7.0/i.test(wQ)&&/rv:11.0/.test(wQ)&&(i=11),i}return NaN})();var xU=Ys("(micromessenger|webbrowser)"),B7=Qc("MicroMessenger"),dV=!Bm&&Ys("MQQBrowser")&&Ys("COVC"),CV=!Bm&&Ys("MQQBrowser")&&!Ys("COVC"),vY=CV||dV?Qc("MQQBrowser"):"",$W=!Bm&&Ys(" QQBrowser"),Q7=Qc(" QQBrowser"),A4=!Bm&&Ys("QQBrowserLite"),p7=Qc("QQBrowserLite"),e4=!Bm&&Ys("MQBHD"),m7=Qc("MQBHD"),f7=Ys("Windows"),hV=!Su&&Ys("MAC OS X"),y7=!aC&&Ys("Linux"),D7=Ys("CrOS");Ys("MicroMessenger");var xlA=Ys("UCBrowser");Ys("Electron");var t4=Ys("MiuiBrowser"),S7=Qc("MiuiBrowser"),i4=Ys("HuaweiBrowser"),M7=Ys("Huawei")||Ys("HUAWEI"),YlA=Ys("Honor")||Ys("HONOR"),v7=Qc("HuaweiBrowser"),o4=Ys("SamsungBrowser"),R7=Qc("SamsungBrowser"),BV=Ys("HeyTapBrowser"),w7=Qc("HeyTapBrowser"),s4=Ys("VivoBrowser"),_7=Qc("VivoBrowser"),n4=Ys("OpenHarmony");Qc("OpenHarmony");var T7=()=>IV("Chrome"),RY=Ys("CriOS"),eD=Ys("Chrome"),r4=!PU&&!XW&&!ZW&&!Bm&&!uT&&!EV&&!$W&&!t4&&!i4&&!o4&&!BV&&!s4&&eD,VlA=Ys("HeadlessChrome"),tD=T7(),Wj=eD&&tD>=128&&tD<=143,N7=Qc("Chrome");IV("Electron");var ld=!eD&&!CV&&!dV&&!A4&&!e4&&Ys("Safari"),G7=ld||Su,YU=Qc("Version"),MQ=(()=>{if(a7)return YU;if(Su){const t=wQ.match(/OS (\d+)_(\d+)/i);if(t&&t[1]){let i=t[1];return t[2]&&(i+=`.${t[2]}`),i}}return""})();function JlA(t,i){const r=t.split(".").map(I=>Number(I)),l=i.split(".").map(I=>Number(I));for(let I=0;I<Math.max(r.length,l.length);I++){const h=r[I]||0,f=l[I]||0;if(h<f)return!0;if(h>f)return!1}return!1}function b7(t,i,r=!1){const l=t.split(".").map(h=>Number(h)),I=i.split(".").map(h=>Number(h));for(let h=0;h<Math.max(l.length,I.length);h++){const f=l[h]||0,w=I[h]||0;if(f>w)return!0;if(f<w)return!1}return r}var Tv=Number(MQ.split(".")[0]),HlA=MQ==="15.1",qlA=(()=>{const t=Number(MQ.split(".")[0]);return t===14||t===13})(),KlA=RY&&YU==="11.1.1",wY=typeof location<"u"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),f_=(()=>{let t;return()=>{if(t===void 0)try{t=!!window.localStorage}catch{t=!1}return t}})(),fv=jlA();function jlA(){const t=new Map([[sC,["Firefox",c7]],[EV,["Edg",u7]],[r4,["Chrome",N7]],[RY,["ChiOS",Qc("CriOS")]],[ld&&!RY,["Safari",YU]],[Bm,["TBS",C7]],[uT,["XWEB",h7]],[xU&&uV,["WeChat",B7]],[$W,["QQ(Win)",Q7]],[CV,["QQ(Mobile)",vY]],[dV,["QQ(Mobile X5)",vY]],[A4,["QQ(Mac)",p7]],[e4,["QQ(iPad)",m7]],[t4,["MI",S7]],[i4,["HW",v7]],[o4,["Samsung",R7]],[BV,["OPPO",w7]],[s4,["VIVO",_7]],[PU,["EDGE",I7]],[ZW,["SogouMobile",E7]],[XW,["Sogou",d7]]]);let i="unknown",r="unknown";return t.has(!0)&&([i,r]=t.get(!0)),{name:i,version:r}}function WlA(){return aC||Su||uV||zW||n4}var zlA="";function k7(){return ZlA()||""}function ZlA(){const t=wQ.match(/;\s*([^;)]+)\s+Build\//);return t?.[1]?t[1].trim():null}var dZ=new Map([[aC,"Android"],[Su,"iOS"],[f7,"Windows"],[hV,"MacOS"],[y7,"Linux"],[D7,"ChromeOS"]]),L7=function(){return dZ.get(!0)?dZ.get(!0):"unknown"};function a4(){return f7?1:aC?2:hV?3:Su?4:y7?5:D7?6:n4?7:0}function XlA(){return xU||uT?4:eD?1:ld?2:sC?3:0}var U7=()=>{let t=L7();return Su?t+=`/${MQ}`:aC&&(t+=`/${g7}`),t+=`/${fv.name}/${ld&&!RY?fv.version:fv.version.split(".")[0]}`,t},$lA=IT(FU()),AIA=new $lA.default,ps=AIA,F7=(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))(F7||{}),mn=F7,eIA=class{constructor(){he(this,"enable",!1),he(this,"ssoFailCount",0),ps.on("22",({schedule:t})=>{var i;(i=t?.config)!=null&&i.sso&&ps.emit("266",{enable:!0})}),ps.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&ps.emit("266",{enable:!1})}},j3=new eIA,tIA="%cTRTC%c%s",iIA="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",oIA="display: inline",O7=class P7{constructor(){he(this,"_isEnableUploadLog",!0),he(this,"_localJoinedUser",new Map),he(this,"_queue",[]),he(this,"_timeoutId",-1),he(this,"_logLevel",1),he(this,"_logLevelToUpload",2),FX||OX||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){ps.on(mn.JOIN_SCHEDULE_SUCCESS,({schedule:i})=>{var r;(r=i?.config)!=null&&r.logLevelToUpload&&__[i.config.logLevelToUpload]&&(this._logLevelToUpload=i.config.logLevelToUpload)}),ps.on(mn.JOIN_START,({params:i})=>{this.addJoinedUser({userId:i.userId,sdkAppId:i.sdkAppId}),this.startUpload()}),ps.on(mn.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 l=this._queue[r];if(l.forAllJoinedClients)this._localJoinedUser.forEach(({userId:I,sdkAppId:h})=>{i.map.has(I)?i.map.get(I).logs.push(l):i.map.set(I,{userId:I,sdkAppId:h,logs:[l]})});else if(ih(l.userId)&&_v(l.sdkAppId)){const{userId:I,sdkAppId:h}=l;i.map.has(I)?i.map.get(I).logs.push(l):i.map.set(I,{userId:I,sdkAppId:h,logs:[l]})}}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 I=[...i.values()];for(let h=0;h<I.length;h++){const{userId:f,sdkAppId:w,logs:_}=I[h],b={timestamp:UX(),sdkAppId:String(w),userId:f,version:yY,log:_.map(IA=>IA.log).join(`
|
||
`)},U=JSON.stringify(b),j=j3.enable?KW(b,2002,w):U;await this.uploadLogWithRetry(j,w,j instanceof Uint8Array,U),_.forEach(IA=>IA.uploaded=!0)}}catch{}const l=r.filter(I=>!I.uploaded);l.length>0&&(this._queue=l.concat(this._queue))}uploadLogWithRetry(i,r,l,I){return WW({retryFunction:()=>n7({url:JW(r,PX.LOG),body:i,timeout:5e3,priority:"low"}).then(h=>{l&&h.data!=="ok"&&(j3.handleUploadFailed(),this.uploadLogWithRetry(I,r,!1,I))}),settings:{retries:3,timeout:2e3},onError:({retry:h})=>{h()}})()}getPrefix(i){const r=new Date;return r.setTime(VW()),`[${ScA(r)}] <${__[i]}>`}getLogLevel(){return this._logLevel}setLogLevel(i){$n(__[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(ih(i))return i;try{return i instanceof Error?i.toString():JSON.stringify(i)}catch{return""}}addLogToQueue(i,r,l=!0,I,h){const f={log:r.reduce((w,_)=>`${w} ${this.logChunkToString(_)}`.trim(),""),level:i,userId:I,sdkAppId:h,forAllJoinedClients:l};ps.emit(mn.LOG,{log:f}),this._isEnableUploadLog&&i>=this._logLevelToUpload&&this._queue.push(f)}log(i,r,l=!0,I,h){var f;if(r.unshift(this.getPrefix(i)),this.addLogToQueue(i,r,l,I,h),i<this._logLevel)return;const w=((f=__[i])==null?void 0:f.toLowerCase())||"info";P7.PRINT_LOG_TAG?console[w](tIA,iIA,oIA,...r):console[w](...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 jj){const r=i,{parent:l}=r,I=ucA(r,["parent"]),h=new jj(I);return h.bindParent(l),h}return new jj(i)}checkURLParam(){const i=new URLSearchParams(location.search).get("logLevelToUpload"),r=i?Number(i):-1;__[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};he(O7,"PRINT_LOG_TAG",!(Su||aC||VlA));var sIA=O7,Wo=new sIA,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)})},x7=nIA,rIA=class{constructor(){he(this,"_prefix","TRTC"),he(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){f_()&&(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(f_())try{for(const[t,i]of this._queue)localStorage.setItem(t,JSON.stringify(i))}catch(t){Wo.warn(t)}}getItem(t){if(!f_())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){Wo.warn(i)}}setItem(t,i){if(f_())try{const r={expiresIn:Date.now()+TcA,value:i};this._queue.set(this.getRealKey(t),r)}catch(r){Wo.warn(r)}}deleteItem(t){if(!f_())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(i){return Wo.warn(i),!1}}clear(){if(f_())try{localStorage.clear()}catch(t){Wo.warn(t)}}},Y7=new rIA,aIA={};xW(aIA,{HTTPS_API:()=>mIA,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>i$,IS_GET_CAPABILITIES_SUPPORTED:()=>t$,IS_GET_SETTINGS_SUPPORTED:()=>NY,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>_IA,IS_INSERTABLE_STREAM_SUPPORTED:()=>o$,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>LIA,IS_RTC_RTP_SENDER_SUPPORTED:()=>VU,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>s$,IS_SEI_SUPPORTED:()=>TIA,IS_SPC_SUPPORTED:()=>MIA,basis:()=>GIA,capabilityCheck:()=>bIA,checkSystemRequirementsInternal:()=>q7,decodeSupportStatus:()=>H7,detectH264SupportedByFakeStreaming:()=>K7,detectVideoCodecCapabilities:()=>UIA,detectVideoDecoderCapabilities:()=>l$,detectVideoEncoderCapabilities:()=>c$,encodeSupportStatus:()=>I4,getBrowserInfo:()=>EIA,getDisplayResolution:()=>j7,getH264ProfileLevelIds:()=>I$,isAddTransceiverSupported:()=>pV,isBrowserSupported:()=>g4,isCanvasCaptureStreamAPISupported:()=>Z7,isCanvasSmallStreamSupported:()=>X7,isGetReceiversSupported:()=>DIA,isGetSendersSupported:()=>e$,isGetTransceiversSupported:()=>SIA,isGetUserMediaSupported:()=>W7,isMediaDevicesSupported:()=>l4,isMediaSessionSupported:()=>r$,isMediaStreamTrackGeneratorSupported:()=>CIA,isMediaStreamTrackProcessorSupported:()=>dIA,isReplaceTrackSupported:()=>RIA,isRequestVideoFrameCallbackSupported:()=>d4,isSIMDSupported:()=>NIA,isScaleResolutionDownBySupported:()=>$7,isScreenCaptureApiAvailable:()=>u4,isSelectedCandidatePair:()=>fIA,isSetParametersSupported:()=>wIA,isSetSinkIdSupported:()=>QIA,isSmallStreamSupported:()=>A$,isStopTransceiverSupported:()=>vIA,isTRTCSupported:()=>BIA,isUnifiedPlanDefault:()=>yIA,isUsedInHttpProtocol:()=>QV,isWebAudioSupported:()=>z7,isWebCodecSupported:()=>n$,isWebCodecsSupported:()=>c4,isWebRTCSupported:()=>E4,isWebTransportSupported:()=>a$});var _Y={PLAY_FAILED:"PLAY_FAILED",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND"},F_={AVOID_REPEATED_CALL:t=>`previous ${t.name}() is ongoing, please avoid repeated calls.`,INVALID_PARAMETER_REQUIRED:({key:t,rule:i,fnName:r,value:l})=>`'${t||i.name}' is a required param when calling ${r}(), received: ${l}.`,INVALID_PARAMETER_TYPE({key:t,rule:i,fnName:r,value:l}){const I=`${t||i.name}`;let h="";return h=Array.isArray(i.type)?i.type.join("|"):i.type,`'${I}' must be type of ${h} when calling ${r}(), received type: ${wv(l)}.`},INVALID_PARAMETER_EMPTY:({key:t,rule:i,fnName:r,value:l})=>`'${t||i.name}' cannot be '${l}' when calling ${r}().`,INVALID_PARAMETER_INSTANCE:({key:t,rule:i,fnName:r,value:l})=>`'${`${t||i.name}`}' must be instanceof ${`${i.instanceOf.name||i.instanceOf}`} when calling ${r}(), received type: ${wv(l)}.`,INVALID_PARAMETER_RANGE:({key:t,rule:i,fnName:r,value:l})=>`'${t||i.name}' must be one of ${i.values.join("|")} when calling ${r}(), received: ${l}.`,INVALID_PARAMETER_MIN:({key:t,rule:i,fnName:r,value:l})=>`the min value of ${t||i.name} is ${i.min}, received: ${l}.`,INVALID_PARAMETER_MAX:({key:t,rule:i,fnName:r,value:l})=>`the max value of ${t||i.name} is ${i.max}, received: ${l}.`,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:l})=>`'${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:l})=>`api ${i} call ${t?"size":"times"} is over ${t?`${l} 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}.`},CZ=(t,i)=>i?`${O3}/${t}/${i}`:`${O3}/${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(_cA);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,l=window.TRTC_ERROR_LINK;return document.body.removeChild(i),{TRTC_ERROR_INFO:r,TRTC_ERROR_LINK:l}}return{}};function TY(t){const{key:i,data:r,link:l,addDocLink:I=!0}=t;let h="",f="",w="";pv(F_[i])?h=F_[i](r):ih(F_[i])&&(h=F_[i]);const{TRTC_ERROR_INFO:_,TRTC_ERROR_LINK:b}=gIA();l?w=`${l.className}.html#${l.fnName}`:b&&b[i]&&(pv(b[i])?w=b[i](r):ih(b[i])&&(w=b[i]));let U=h;return Wy()&&(_&&_[i]&&(pv(_[i])?f=_[i](r):ih(_[i])&&(f=_[i])),f&&(U=I?`${f}
|
||
请查看文档: ${CZ("zh-cn",w)}
|
||
|
||
`:`${f}
|
||
|
||
`,U+=h)),I&&(U+=`
|
||
Refer to: ${CZ("en",w)}
|
||
`),U}var hZ=IT(hcA()),cIA=1,lIA=0,V7=class{constructor(t=!0){he(this,"countMap",new Map),he(this,"distributionMap",new Map),he(this,"version"),he(this,"log",Wo.createLogger({id:"kv"})),t&&(ps.on("102",({track:i,cost:r})=>{this.addSuccessEvent({key:i.kind===Zt.AUDIO?501700:511700,cost:r})}),ps.on("103",({track:i,error:r})=>{this.addFailedEvent({key:i.kind===Zt.AUDIO?501700:511700,error:r})}),ps.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:$X(this.version||yY),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([l,I])=>({uint32_key:l,uint32_count:I})),stats_distribution:[...this.distributionMap.entries()].map(([l,I])=>({uint32_key:l,distribution_items:[...I.entries()].map(([h,f])=>({uint32_item_key:h,uint32_item_value:f}))})),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 l;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 I=((l=this.distributionMap)==null?void 0:l.get(t))||new Map;I.set(i,(I.get(i)||0)+1),this.distributionMap.set(t,I)}addNumber({key:t,value:i,split:r=100,useUV:l=!1,max:I=5e3}){var h;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(l&&this.countMap.has(t))return;i>I&&(i=I),this.countMap.set(t,(this.countMap.get(t)||0)+1);const f=((h=this.distributionMap)==null?void 0:h.get(t))||new Map;let w=0;if(_v(r))w=Math.floor(i/r);else for(let _=r.length-1;_>0;_--)if(i>r[_]){w=_;break}f.set(w,(f.get(w)||0)+1),this.distributionMap.set(t,f)}addSuccessEvent({key:t,cost:i,timeKey:r,split:l}){if(t&&(this.addEnum({key:t,value:cIA,useUV:!1}),i)){const I=+String(t).slice(-3);I<800&&I>=700?this.addNumber({key:r||t+100,value:i,split:l}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:i}){if(!t)return;let r=qg.UNKNOWN;i&&(_v(i)?r=i:$n(i.extraCode)&&$n(i.code)||(r=i.extraCode||i.code)),this.addEnum({key:t,value:lIA,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},J7=(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))(J7||{}),IIA=new V7(!0);new V7(!1);var Ir=IIA,Xs={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}},uIA=new Map([[sC,["Firefox",c7]],[EV,["Edg",u7]],[r4,["Chrome",N7]],[ld,["Safari",YU]],[Bm,["TBS",C7]],[uT,["XWEB",h7]],[xU&&uV,["WeChat",B7]],[$W,["QQ(Win)",Q7]],[CV,["QQ(Mobile)",vY]],[dV,["QQ(Mobile X5)",vY]],[A4,["QQ(Mac)",p7]],[e4,["QQ(iPad)",m7]],[t4,["MI",S7]],[i4,["HW",v7]],[o4,["Samsung",R7]],[BV,["OPPO",w7]],[s4,["VIVO",_7]],[PU,["EDGE",I7]],[ZW,["SogouMobile",E7]],[XW,["Sogou",d7]]]);function EIA(){const t=uIA.get(!0);return{browserName:t?t[0]:"unknown",browserVersion:t?t[1]:"unknown"}}var g4=function(){return!xlA&&!PU&&!(EV&&OlA<80)&&!(sC&&l7<56)},c4=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},l4=function(){if(!navigator.mediaDevices)return QV()||Wo.error(F_.NOT_SUPPORTED_MEDIA),!1;const t=["getUserMedia","enumerateDevices"];return t.filter(i=>i in navigator.mediaDevices).length===t.length},BZ=!1;function QV(){return location.protocol==="http:"&&!wY&&(BZ||Wo.error(TY({key:_Y.NOT_SUPPORTED_HTTP})),BZ=!0,!0)}var dIA=function(){return window?.OffscreenCanvas&&window?.MediaStreamTrackProcessor&&window?.MediaStreamTrackGenerator},CIA=function(){return!!window?.MediaStreamTrackGenerator},I4=async function(){var t,i,r;if(Xs.detail.isH264EncodeSupported&&Xs.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Xs.detail.isH264EncodeSupported,isVp8EncodeSupported:Xs.detail.isVp8EncodeSupported,isH265EncodeSupported:Xs.detail.isH265EncodeSupported};let l,I=!1,h=!1,f=!1;try{const w=new RTCPeerConnection,_=document.createElement(Zt.CANVAS);_.getContext("2d");const b=_.captureStream(0);return w.addTrack(b.getVideoTracks()[0],b),l=await w.createOffer(),I=((t=l.sdp)==null?void 0:t.toLowerCase().indexOf("h264"))!==-1,h=((i=l.sdp)==null?void 0:i.toLowerCase().indexOf("vp8"))!==-1,f=((r=l.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1,w.close(),{isH264EncodeSupported:I,isVp8EncodeSupported:h,isH265EncodeSupported:f}}catch{return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}},H7=async function(){var t;if(Xs.detail.isH264DecodeSupported&&Xs.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Xs.detail.isH264DecodeSupported,isVp8DecodeSupported:Xs.detail.isVp8DecodeSupported,isH265DecodeSupported:Xs.detail.isH265DecodeSupported};let i,r=!1,l=!1;try{const I=new RTCPeerConnection;pV()?(I.addTransceiver(Zt.VIDEO,{direction:"recvonly"}),i=await I.createOffer()):i=await I.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(r=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(l=!0);const h=((t=i.sdp)==null?void 0:t.toLowerCase().indexOf("h265"))!==-1;return I.close(),{isH264DecodeSupported:r,isVp8DecodeSupported:l,isH265DecodeSupported:h}}catch{return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}};async function hIA(){const[t,i]=await Promise.all([I4(),H7()]);return{encode:{h264:t.isH264EncodeSupported,vp8:t.isVp8EncodeSupported,h265:t.isH265EncodeSupported},decode:{h264:i.isH264DecodeSupported,vp8:i.isVp8DecodeSupported,h265:i.isH265DecodeSupported}}}var q7=e7(async t=>{const i=Date.now(),r=E4(),l=l4(),I=c4();if(Xs.detail.isWebRTCSupported=r,Xs.detail.isMediaDevicesSupported=l,Xs.detail.isWebCodecsSupported=I,Xs.detail.isScreenShareSupported=u4(),Xs.detail.isSmallStreamSupported=A$(),t===37)return Object.assign(Xs.detail,await pIA()),Xs.detail.isBrowserSupported=I,Xs.result=l&&I,Xs.result||Wo.error(`${navigator.userAgent} ${q3(Xs.detail,!1)}`),mZ(t),Ir.addNumber({key:523800,value:Date.now()-i}),Xs;if(Xs.result&&Xs.detail.isH264EncodeSupported&&Xs.detail.isVp8EncodeSupported&&Xs.detail.isH265EncodeSupported&&Xs.detail.isH264DecodeSupported&&Xs.detail.isVp8DecodeSupported&&Xs.detail.isH265DecodeSupported)return Xs;const h=g4(),{encode:f,decode:w}=await hIA();let{h264:_,vp8:b}=f,{h264:U}=w;const{h265:j}=f,{vp8:IA,h265:nA}=w;if(!_||!b){const mA=await I4();Wo.warn(`detect encode again h264:${_} vp8:${b} result: ${JSON.stringify(mA)}`),_=mA.isH264EncodeSupported,b=mA.isVp8EncodeSupported}if(_&&U&&aC&&eD&&!uT&&!Bm&&(!BV||tD!==115)){const{encode:mA,decode:lA}=await K7();_=mA,U=lA}return Xs.result=h&&r&&l&&(_||b)&&(U||IA),Xs.detail.isBrowserSupported=h,Xs.detail.isWebRTCSupported=r,Xs.detail.isH264EncodeSupported=_,Xs.detail.isVp8EncodeSupported=b,Xs.detail.isH265EncodeSupported=j,Xs.detail.isH264DecodeSupported=U,Xs.detail.isVp8DecodeSupported=IA,Xs.detail.isH265DecodeSupported=nA,Xs.result||Wo.error(`${navigator.userAgent} ${q3(Xs.detail,!1)}`),mZ(),Ir.addNumber({key:523800,value:Date.now()-i}),Xs}),BIA=function(){return Xs.result},u4=function(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getDisplayMedia)},QIA=typeof HTMLMediaElement<"u"&&"setSinkId"in HTMLMediaElement.prototype,QZ=null;async function K7(t=2e3){return QZ||(QZ=new Promise(async i=>{const r={encode:!1,decode:!1};let l=()=>{};try{const I=document.createElement("canvas"),h=I.getContext("2d");I.width=640,I.height=480;const f=setInterval(()=>{h.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},66);let w=-1,_=-1;l=()=>{clearInterval(w),clearInterval(f),clearTimeout(_),U.close(),j.close(),b.getTracks().forEach(cA=>cA.stop())},_=setTimeout(()=>{l(),i(r)},t);const b=I.captureStream(),U=new RTCPeerConnection({}),j=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});U.addEventListener("icecandidate",cA=>j.addIceCandidate(cA.candidate)),j.addEventListener("icecandidate",cA=>U.addIceCandidate(cA.candidate)),U.addTrack(b.getVideoTracks()[0],b);const IA=await U.createOffer();await U.setLocalDescription(IA),await j.setRemoteDescription(IA);const nA=await j.createAnswer(),mA=hZ.default.parse(nA.sdp),lA=mA.media[0].rtp.findIndex(cA=>cA.codec==="H264");mA.media[0].rtp=[mA.media[0].rtp[lA]],mA.media[0].fmtp=mA.media[0].fmtp.filter(cA=>cA.payload===mA.media[0].rtp[0].payload),mA.media[0].rtcpFb&&(mA.media[0].rtcpFb=mA.media[0].rtcpFb.filter(cA=>cA.payload===mA.media[0].rtp[0].payload)),nA.sdp=hZ.default.write(mA),await j.setLocalDescription(nA),await U.setRemoteDescription(nA),w=setInterval(async()=>{r.encode&&r.decode&&(l(),i(r));const[cA,TA]=await Promise.all([U.getSenders()[0].getStats(),j.getReceivers()[0].getStats()]);r.encode||cA.forEach(WA=>{WA.type==="outbound-rtp"&&(WA.mediaType===Zt.VIDEO||WA.kind===Zt.VIDEO)&&WA.bytesSent>0&&(r.encode=!0)}),r.decode||TA.forEach(WA=>{WA.type==="inbound-rtp"&&(WA.mediaType===Zt.VIDEO||WA.kind===Zt.VIDEO)&&WA.bytesReceived>0&&(r.decode=!0)})},100)}catch(I){l(),Wo.warn("detectH264Supported failed",I),i({encode:!0,decode:!0})}}).then(i=>(i.encode||(i.decode=!0),i.encode&&i.decode||Wo.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${zlA}`),i)))}var pZ=null;async function pIA(){return pZ||(pZ=new Promise(async t=>{const i={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!c4())return void t(i);let r=null,l=null,I=null;const h=()=>{I&&clearTimeout(I),r=null,l=null};try{r=document.createElement("canvas"),l=r.getContext("2d"),r.width=320,r.height=240;let f=0;const w=()=>{l&&r&&(l.fillStyle=`hsl(${f%360}, 50%, 50%)`,l.fillRect(0,0,r.width,r.height),l.fillStyle="white",l.font="20px Arial",l.fillText(`Frame ${f}`,10,30),f++)};I=setTimeout(()=>{h(),t(i)},5e3);const _=[{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(_.map(async b=>{const U={type:b.type,encodeSupported:!1,decodeSupported:!1};let j;try{j=await new Promise(async(IA,nA)=>{try{const mA=new VideoEncoder({output:cA=>{IA(cA),U.encodeSupported=!0},error:nA});mA.configure(b.encodeConfig),w();const lA=new VideoFrame(r,{timestamp:0});mA.encode(lA,{keyFrame:!0}),lA.close(),await mA.flush(),mA.close()}catch(mA){nA(mA)}})}catch(IA){return Wo.warn(`${b.type} encoder error:`,IA),U}try{await new Promise(async(IA,nA)=>{try{const mA=new VideoDecoder({output:lA=>{U.decodeSupported=!0,IA(0),lA.close()},error:nA});mA.configure(b.decodeConfig),mA.decode(j),await mA.flush(),mA.close()}catch(mA){nA(mA)}})}catch(IA){Wo.warn(`${b.type} decoder error:`,IA)}return U}))).forEach(b=>{b.type==="h264"?(i.isH264EncodeSupported=b.encodeSupported,i.isH264DecodeSupported=b.decodeSupported):b.type==="vp8"&&(i.isVp8EncodeSupported=b.encodeSupported,i.isVp8DecodeSupported=b.decodeSupported)}),h(),t(i)}catch(f){h(),Wo.warn("detectWebCodecsSupported failed:",f),t(i)}}))}var mIA=(t,i,r)=>{location.protocol!=="http:"||wY||(t[i]=()=>{throw new ml({code:qg.INVALID_OPERATION,message:F_.NOT_SUPPORTED_HTTP})})},fIA=function(t){return!(t.type!=="candidate-pair"||!t.nominated||t.state!=="in-progress"&&t.state!=="succeeded")&&!(mv(t.selected)&&!t.selected)};function j7(){let t="";return screen.width&&(t+=`${screen.width?screen.width*window.devicePixelRatio:""} * ${screen.height?screen.height*window.devicePixelRatio:""}`),t}function W7(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function z7(){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 Z7(){return"captureStream"in HTMLCanvasElement.prototype}function X7(){return!(xU||Su||tD&&tD<63)&&!(!g4()||!Z7())}function $7(){return!(tD<74||PU||Tv<11||l7<46)}function A$(){return X7()||$7()}var yIA=function(){if($n(window.RTCRtpTransceiver)||!pV()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let t=null,i=!1;try{t=new RTCPeerConnection({sdpSemantics:UcA}),t.addTransceiver(Zt.AUDIO),i=!0}catch{}return t?.close(),i};function DIA(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function e$(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function SIA(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function pV(){return!(Tv===11&&!KlA)&&"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var MIA=!(!pV()||eD&&tD<86);function vIA(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var VU="RTCRtpSender"in window;function RIA(){return VU&&"replaceTrack"in window.RTCRtpSender.prototype}function wIA(){return VU&&"setParameters"in window.RTCRtpSender.prototype&&e$()}var _IA="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,NY=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,t$=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,i$=typeof InputDeviceInfo<"u"&&"getCapabilities"in InputDeviceInfo.prototype,o$=VU&&"createEncodedStreams"in window.RTCRtpSender.prototype&&T7()>=86,s$="RTCRtpScriptTransform"in window,TIA=VU&&(o$||s$),E4=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function n$(){const t={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return $n(window.AudioDecoder)||(t.AudioDecoder=!0),$n(window.AudioEncoder)||(t.AudioEncoder=!0),$n(window.VideoDecoder)||(t.VideoDecoder=!0),$n(window.VideoEncoder)||(t.VideoEncoder=!0),$n(window.ImageDecoder)||(t.ImageDecoder=!0),t}function r$(){return"mediaSession"in navigator&&!$n(navigator.mediaSession.setActionHandler)}function a$(){return!$n(window.WebTransport)}function NIA(){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 GIA(){const t={browser:`${fv.name}/${fv.version}`,os:L7(),displayResolution:j7(),isScreenShareSupported:u4(),isWebRTCSupported:E4(),isGetUserMediaSupported:W7(),isWebAudioSupported:z7(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:n$(),isMediaSessionSupported:r$(),isWebTransportSupported:a$()};return navigator.userAgent.includes("miniProgram")&&(t.browser=`mini/${t.browser}`),t}var g$="checkResult";function mZ(t=30){Y7.setItem(g$+t,{ua:navigator.userAgent,checkResult:Xs})}function bIA(t){QV();const i=Y7.getItem(g$+t);i&&i.ua===navigator.userAgent&&i.checkResult&&kIA(i.checkResult.detail,Xs.detail)&&(Xs=i.checkResult),q7(t)}function kIA(t,i){return!!dv(t)&&Object.keys(i).every(r=>r in t)}function d4(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var LIA="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function fZ(t){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[t]}var yZ=!1;async function UIA(){var t;try{if(yZ||!((t=navigator?.mediaCapabilities)!=null&&t.encodingInfo))return;const i=a4(),r=XlA();if(i===0||r===0)return;yZ=!0;const l=["H264","VP8","VP9","AV1","H265"],[I,h]=await Promise.all([c$(l),l$(l)]);I&&Object.keys(I).forEach(_=>{const b=fZ(_.toLowerCase());Ir.addEnum({key:513707,value:+`${b}${+I[_].supported}${+I[_].powerEfficient}${i}${r}`,useUV:!1})}),h&&Object.keys(h).forEach(_=>{const b=fZ(_.toLowerCase());Ir.addEnum({key:514713,value:+`${b}${+h[_].supported}${+h[_].powerEfficient}${i}${r}`,useUV:!1})});const{sender:f,receiver:w}=I$();Ir.addEnum({key:513708,value:+`${i}${r}${+f.high}`,useUV:!1}),Ir.addEnum({key:513709,value:+`${i}${r}${+f.main}`,useUV:!1}),Ir.addEnum({key:514714,value:+`${i}${r}${+w.high}`,useUV:!1}),Ir.addEnum({key:514715,value:+`${i}${r}${+w.main}`,useUV:!1})}catch(i){Wo.info("detectVideoCodecCapabilities failed",i)}}async function c$(t,i=1920,r=1080,l=30,I=3e3){const h={};try{for(const f of t){const w=await navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${f}`,width:i,height:r,bitrate:I,framerate:l}});h[f]=w}}catch{}return h}async function l$(t,i=1920,r=1080,l=30,I=3e3){const h={};try{for(const f of t){const w=await navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${f}`,width:i,height:r,bitrate:I,framerate:l}});h[f]=w}}catch{}return h}function I$(){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 l=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(l&&l[1])switch(l[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 l=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(l&&l[1])switch(l[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){Wo.warn("get H264 profile levelId failed",i)}return t}var FIA=IT(FU()),DZ=Symbol("instance"),F1=Symbol("cacheResult"),zj=class{constructor(t,i,r){this.oldState=t,this.newState=i,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,iU.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Zj=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 tU=new Map;function yu(t,i,r={}){return(l,I,h)=>{const f=r.action||I;if(!r.context){const _=tU.get(l)||[];tU.has(l)||tU.set(l,_),_.push({from:t,to:i,action:f})}const w=h.value;h.value=function(..._){let b=this;if(r.context&&(b=Xn.get(typeof r.context=="function"?r.context.call(this,..._):r.context)),b.state===i)return r.sync?b[F1]:Promise.resolve(b[F1]);b.state instanceof zj&&b.state.action==r.abortAction&&b.state.abort(b);let U=null;Array.isArray(t)?t.length==0?b.state instanceof zj&&b.state.abort(b):typeof b.state=="string"&&t.includes(b.state)||(U=new Zj(b._state,`${b.name} ${f} to ${i} failed: current state ${b._state} not from ${t.join("|")}`)):t!==b.state&&(U=new Zj(b._state,`${b.name} ${f} to ${i} failed: current state ${b._state} not from ${t}`));const j=cA=>{if(r.fail&&r.fail.call(this,cA),r.sync){if(r.ignoreError)return cA;throw cA}return r.ignoreError?Promise.resolve(cA):Promise.reject(cA)};if(U)return j(U);const IA=b.state,nA=new zj(IA,i,f);iU.call(b,nA);const mA=cA=>{var TA;return b[F1]=cA,nA.aborted||(iU.call(b,i),(TA=r.success)===null||TA===void 0||TA.call(this,b[F1])),cA},lA=cA=>(iU.call(b,IA,cA),j(cA));try{const cA=w.apply(this,_);return OIA(cA)?cA.then(mA).catch(lA):r.sync?mA(cA):Promise.resolve(mA(cA))}catch(cA){return lA(new Zj(b._state,`${b.name} ${f} from ${t} to ${i} failed: ${cA}`,cA instanceof Error?cA:new Error(String(cA))))}}}}var PIA=typeof window<"u"&&window.__AFSM__?(r,l)=>{window.dispatchEvent(new CustomEvent(r,{detail:l}))}:typeof importScripts<"u"?(r,l)=>{postMessage({type:r,payload:l})}:()=>{};function iU(t,i){const r=this._state;this._state=t;const l=t.toString();t&&this.emit(l,r),this.emit(Xn.STATECHANGED,t,r,i),this.updateDevTools({value:t,old:r,err:i instanceof Error?i.message:String(i)})}var Xn=class WC extends FIA.default{constructor(i,r,l){super(),this.name=i,this.groupName=r,this._state=WC.INIT,i||(i=Date.now().toString(36)),l?Object.setPrototypeOf(this,l):l=Object.getPrototypeOf(this),r||(this.groupName=this.constructor.name);const I=l[DZ];I?this.name=I.name+"-"+I.count++:l[DZ]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){const i=Object.getPrototypeOf(this),r=tU.get(i)||[];let l=new Set,I=[],h=[];const f=new Set,w=Object.getPrototypeOf(i);tU.has(w)&&(w.stateDiagram.forEach(b=>l.add(b)),w.allStates.forEach(b=>f.add(b))),r.forEach(({from:b,to:U,action:j})=>{typeof b=="string"?I.push({from:b,to:U,action:j}):b.length?b.forEach(IA=>{I.push({from:IA,to:U,action:j})}):h.push({to:U,action:j})}),I.forEach(({from:b,to:U,action:j})=>{f.add(b),f.add(U),f.add(j+"ing"),l.add(`${b} --> ${j}ing : ${j}`),l.add(`${j}ing --> ${U} : ${j} 🟢`),l.add(`${j}ing --> ${b} : ${j} 🔴`)}),h.forEach(({to:b,action:U})=>{l.add(`${U}ing --> ${b} : ${U} 🟢`),f.forEach(j=>{j!==b&&l.add(`${j} --> ${U}ing : ${U}`)})});const _=[...l];return Object.defineProperties(i,{stateDiagram:{value:_},allStates:{value:f}}),_}static get(i){let r;return typeof i=="string"?(r=WC.instances.get(i),r||WC.instances.set(i,r=new WC(i,void 0,Object.create(WC.prototype)))):(r=WC.instances2.get(i),r||WC.instances2.set(i,r=new WC(i.constructor.name,void 0,Object.create(WC.prototype)))),r}static getState(i){var r;return(r=WC.get(i))===null||r===void 0?void 0:r.state}updateDevTools(i={}){PIA(WC.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},i))}get state(){return this._state}set state(i){iU.call(this,i)}};Xn.STATECHANGED="stateChanged",Xn.UPDATEAFSM="updateAFSM",Xn.INIT="[*]",Xn.ON="on",Xn.OFF="off",Xn.instances=new Map,Xn.instances2=new WeakMap;var C4=typeof window<"u",SZ=C4&&window.requestIdleCallback||function(t){const i=Date.now();return setTimeout(()=>{t({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-i))})},1e3)},xIA=C4&&window.cancelIdleCallback||function(t){clearTimeout(t)},MZ=C4&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),kL=class dE{static generateTaskID(){return this.currentTaskID++}static run(i,r,l){l?.fps&&(l.delay=l.delay||Number((1e3/l.fps).toFixed(2))),l=Rn(Rn({},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}),l);const I=nB(Rn({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:i,callback:r},l),{delay:l.delay});return this.taskMap.set(I.taskID,I),this[i](I),I.taskID}static interval(i){return i.intervalID=setInterval(()=>{i.callback(),i.loopCount+=1,dE.isBreakLoop(i)},i.delay)}static intervalInWorker(i){dE.sharedWorker||(dE.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"}))),dE.sharedWorker.onmessage=r=>{var l;if(r.data.type==="tick"){const I=dE.workerTasks.get(r.data.taskId);I&&(dE.isBreakLoop(I)?((l=dE.sharedWorker)==null||l.postMessage({type:"stop",taskId:I.taskID}),dE.workerTasks.delete(I.taskID)):(I.callback(),I.loopCount+=1))}}),dE.workerTasks.set(i.taskID,i),dE.sharedWorker.postMessage({taskId:i.taskID,delay:i.delay,type:"start"})}static timeout(i){const r=()=>{if(i.callback(),i.loopCount+=1,!dE.isBreakLoop(i))return i.timeoutID=setTimeout(r,i.delay)};return i.timeoutID=setTimeout(r,i.delay)}static ric(i){let r,l=Yc();const I=()=>{if(r=Yc()-l,r>=i.delay&&(l=Yc()-Math.floor(r%i.delay),i.callback(),i.loopCount+=1),!dE.isBreakLoop(i))return i.ricID=SZ(I,{timeout:i.delay})};return i.ricID=SZ(I,{timeout:i.delay})}static raf(i){let r,l=Yc();const I=()=>{if(document.hidden&&i.backgroundTask)return r=Yc()-l,l=Yc(),i.callback(),i.loopCount+=1,dE.isBreakLoop(i)?void 0:i.timeoutID=setTimeout(I,i.delay-Math.floor(r%i.delay));if(r=Yc()-l,r>=i.delay&&(l=Yc()-Math.floor(r%i.delay),i.callback(),i.loopCount+=1),!dE.isBreakLoop(i))return i.rafID=requestAnimationFrame(I)};if(i.rafID=requestAnimationFrame(I),i.backgroundTask){const h=()=>{if(document.hidden){const f=Yc()-l;f>=i.delay?I():i.timeoutID=setTimeout(I,i.delay-f)}};document.addEventListener("visibilitychange",h),i.onVisibilitychange=h,document.hidden&&h()}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:l,rafID:I,ricID:h,onVisibilitychange:f}=this.taskMap.get(i);return r&&clearInterval(r),l&&clearTimeout(l),I&&MZ&&MZ(I),h&&xIA(h),f&&document.removeEventListener("visibilitychange",f),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)}};he(kL,"taskMap",new Map),he(kL,"currentTaskID",1),he(kL,"sharedWorker",null),he(kL,"workerTasks",new Map);var YIA=kL,yQ=YIA,Vn={LOAD_START:Zt.LOADSTART,LOADED_DATA:Zt.LOADEDDATA,LOADED_META_DATA:Zt.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",RESIZE:Zt.RESIZE,TIME_UPDATE:"time-update",LEAVE_PICTURE_IN_PICTURE:Zt.LEAVE_PICTURE_IN_PICTURE,ENTER_PICTURE_IN_PICTURE:Zt.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"},W3={};xW(W3,{create:()=>h4,remove:()=>mU});var oU=new WeakMap;function h4(t,i){oU.has(t)||oU.set(t,[]);const r=oU.get(t),l={add:(I,h)=>("addEventListener"in i?(r.push(i.removeEventListener.bind(i,I,h)),i.addEventListener(I,h)):(r.push(i.off.bind(i,I,h)),i.on(I,h)),l)};return l}function mU(t){const i=oU.get(t);i&&(i.forEach(r=>r()),oU.delete(t))}var VIA=class{constructor(){he(this,"_roomIdMap",new Map),he(this,"_configs"),typeof registerProcessor>"u"&&(this._configs={sdkAppId:"",userId:"",version:yY,env:Yj.QCLOUD,browserVersion:fv.name+fv.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:i,userId:r,roomId:l}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=i,this._configs.userId=r,this._roomIdMap.set(r,String(l))}logSuccessEvent(t){!wY&&Wo.isAbleToUpload&&this._configs.env===Yj.QCLOUD&&this.uploadEventToKibana(nB(Rn({},t),{result:"success"}))}logFailedEvent(t){if(wY||!Wo.isAbleToUpload)return;const{eventType:i,code:r,error:l,userId:I}=t,h={roomId:this._roomIdMap.get(I||this._configs.userId),userId:I,eventType:i,result:"failed",code:r||l?.extraCode||l?.code||qg.UNKNOWN};this._configs.env===Yj.QCLOUD&&this.uploadEventToKibana(nB(Rn({},h),{error:l}))}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 l={timestamp:UX(),sdkAppId:this._configs.sdkAppId,userId:i||this._configs.userId,version:yY,log:t};r&&(l.errorInfo=r.message,r.stack&&(l.errorInfo+=`
|
||
${r.stack}`));const I=j3.enable?KW(l,2002,Number(this._configs.sdkAppId)):JSON.stringify(l);this.sendRequest(JW(this._configs.sdkAppId,PX.LOG),I)}sendRequest(t,i){setTimeout(()=>n7({url:t,body:i,priority:"low"}).catch(()=>{}),2e3)}},oh=new VIA,ov=new WeakMap;function JIA({settings:t={retries:5,timeout:2e3},onError:i,onRetrying:r,onRetryFailed:l}){return function(I,h,f){const w=WW({retryFunction:f.value,settings:t,onError({error:_,retry:b,reject:U,retryFuncArgs:j}){var IA;i?i.call(this,_,()=>{var nA;(nA=ov.get(I))!=null&&nA.has(h)?b():U(_)},U,j):(IA=ov.get(I))!=null&&IA.has(h)?b():U(_)},onRetrying(_,b){var U;N_(r)&&r.call(this,_,b),(U=ov.get(I))!=null&&U.has(h)&&(ov.get(I).get(h).stopRetry=b)},onRetryFailed:l});return f.value=function(..._){const b=ov.get(I);return b?b.set(h,{args:_}):ov.set(I,new Map([[h,{args:_}]])),w.apply(this,_).finally(()=>{var U;return(U=ov.get(I))==null?void 0:U.delete(h)})},f}}var cv=class extends Xn{constructor(t,i){super(t.id,`${i}-player`),this.options=t,this.kind=i,he(this,"id"),he(this,"element",null),he(this,"track"),he(this,"url"),he(this,"attr"),he(this,"mode"),he(this,"muted"),he(this,"_log"),he(this,"isPausedByUserCall",!1),he(this,"_pausedRetryCount"),he(this,"_isElementPlayingFired",!1),he(this,"_interval"),he(this,"_delayDestroyTimeoutId",0),he(this,"_playSuccessResolve"),he(this,"_isReplayByRecreateMediaStreamCalled",!1),he(this,"isPlayCalled",!1),he(this,"isInAutoPlayFailedState",!1),he(this,"isBindAutoPlayEvent",!1),this.id=t.id,this._log=t.log,this.track=t.track,this.muted=t.muted,this._pausedRetryCount=T_,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=TY({key:_Y.PLAY_FAILED,data:{media:this.kind,error:t}});if(this._log.warn(t),i.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ml({code:qg.PLAY_NOT_ALLOWED,message:i})}}stop(t=0){var i;this.isPlayCalled=!1,this.isPausedByUserCall=!1,this._isElementPlayingFired=!1,this.unbindEvents(),t>0&&!G7?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(Zt.ENDED),this._interval>0&&yQ.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():HlA?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 h4(this.element,this.element).add(Zt.PLAYING,t).add(Zt.ENDED,t).add(Zt.PAUSE,t).add(Zt.ERROR,t).add(Zt.LOADSTART,t).add(Zt.LOADEDDATA,t).add(Zt.LOADEDMETADATA,t)}}bindTrackEvents(t=this.track){if(t){const i=this.handleTrackEvent.bind(this);W3?.create(t,t).add(Zt.ENDED,i).add(Zt.MUTE,i).add(Zt.UNMUTE,i),t.readyState===Zt.ENDED&&this.handleTrackEvent({type:Zt.ENDED}),t.muted&&this.handleTrackEvent({type:Zt.MUTE})}}bindAutoPlayEvent(){this.isBindAutoPlayEvent||(this._log.warn("bindAutoPlayEvent"),ps.on(mn.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!0)}unbindTrackEvents(t=this.track){t&&mU(t)}unbindEvents(){this.element&&mU(this.element),this.unbindTrackEvents(),ps.off(mn.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this),this.isBindAutoPlayEvent=!1}handleElementEvent(t){switch(t.type){case Zt.PLAYING:fU()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(Zt.PLAYING),this._interval&&(yQ.clearTask(this._interval),this._interval=-1);break;case Zt.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(Zt.ENDED);break;case Zt.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(Zt.PAUSE);break;case Zt.ERROR:if(this.element&&this.element.error){this.handlePaused(Zt.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}`),oh.uploadEvent({log:`stat-${this.kind}-${$L.PLAYER_ERROR}-${i}-${navigator.userAgent}`,error:this.element.error}),YlA||M7?this.emit(Vn.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case Zt.LOADEDDATA:this.kind===Zt.VIDEO&&this.emit(Vn.LOADED_DATA);break;case Zt.LOADEDMETADATA:this.kind===Zt.VIDEO&&this.emit(Vn.LOADED_META_DATA);break;case Zt.LOADSTART:this.emit(Vn.LOAD_START)}}replayByRecreateMediaStream(t){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),oh.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Ir.addSuccessEvent({key:this.kind===Zt.AUDIO?506700:516700})}).catch(()=>{var i;this._log.error("replayByRecreateMediaStream failed"),oh.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Ir.addFailedEvent({key:this.kind===Zt.AUDIO?506700:516700,error:(i=this.element)==null?void 0:i.error}),this.emit(Vn.ERROR,t)})}doReplayByRecreateMediaStream(t){return this._log.warn(`delay ${t}ms to recreate mediaStream`),new Promise((i,r)=>{oT(t).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var l,I,h;this._log.warn(`element onerror ${(I=(l=this.element)==null?void 0:l.error)==null?void 0:I.code} fired after recreated mediaStream`),r((h=this.element)==null?void 0:h.error)}),oT(5e3).then(()=>{var l,I;this.isPlaying&&!((l=this.element)!=null&&l.error)||r((I=this.element)==null?void 0:I.error),i()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}async handleTrackEvent(t){const i=t.type;switch(this.options.enableLogTrackState&&this._log[i===Zt.UNMUTE?"info":"warn"](`track ${i}`),i){case Zt.ENDED:this.handleStopped(Zt.ENDED);break;case Zt.MUTE:this.handlePaused(Zt.MUTE);break;case Zt.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(Zt.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}};he(cv,"PlayerEvent",Vn),Cc([JIA({settings:{retries:2,timeout:0},onError(t,i,r,l){l[0]=(l[0]||1e3)+1e3,i()}})],cv.prototype,"doReplayByRecreateMediaStream"),Cc([yu([],"PLAYING",{sync:!0,success(t){this.emit(Vn.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:t})}})],cv.prototype,"handlePlaying"),Cc([yu("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(t){this.emit(Vn.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:t})}})],cv.prototype,"handlePaused"),Cc([yu([],"STOPPED",{sync:!0,success(t){this.emit(Vn.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:t})}})],cv.prototype,"handleStopped");var Qm="trtc_autoplay",Xj=`${Qm}_mask`,mL=`${Qm}_wrapper`,vZ=`${Qm}_header`,$j=`${Qm}_content`,O1=`${Qm}_action_wrapper`,A3=`${Qm}_question`,e3=`${Qm}_collapse`,P1=`${Qm}_action_confirm`,RZ=`${Qm}_detail`,wZ="#2473E8",B4="dialog",HIA=`${B4}-show`,qIA=`${B4}-1`,KIA=`${B4}-2`,_Z=!1,z3=!1,fU=()=>z3,u$=`${O3}/${Wy()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,TZ=`<br><a href='${u$}' target='_blank'>${Wy()?"其他方案?":"Any other solution?"}</a>`,jIA=Wy()?`浏览器自动播放策略:在用户与页面产生交互(点击、触摸)之前,浏览器禁止播放有声媒体。该弹窗用于帮助用户恢复音视频播放。${TZ}`:`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. ${TZ}`,WIA=class{constructor(){if(he(this,"content","音视频播放被浏览器拦截,请点击“恢复播放”。"),he(this,"_dialogNode",null),he(this,"_bodyPosition",""),he(this,"_showDetail",!1),he(this,"_isCollapseClicked",!1),he(this,"_isQuestionClicked",!1),Wy()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!_Z){const t=document.createElement("style");t.innerHTML=`.${Xj}{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;}.${Xj} div:not(.${O1}){display:block !important;}.${mL}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${mL} a{color:${wZ};}.${vZ}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${$j}{margin:8px 0;}.${O1}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${e3}{margin-right:auto;cursor:pointer}.${A3}{height:100%;line-height:16px;cursor:pointer;}.${P1}{margin-left:8px;color:#fff;background:${wZ};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${P1}:hover{opacity:0.9;}.${e3},.${P1},.${$j},.${A3}{font-size:14px;}@media screen and (max-width:750px){.${mL}{width:80vw;}}`,document.head.appendChild(t),_Z=!0}this.addDiaLog()}createDiaLog(){const t=document.createElement("template");t.innerHTML=`<div class="${Xj}"><div class='${mL}'><div class='${vZ}'>${location.host}</div><div class='${$j}'>${this.content}</div><div class='${RZ}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${jIA}</div><div class='${O1}'></div></div></div>`.trim();const i=document.createElement("button");i.className=P1,i.innerText=Wy()?"恢复播放":"Resume",i.onclick=this.onConfirm.bind(this);const r=document.createElement("div");r.className=A3,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 l=document.createElement("div");l.className=e3,l.innerText=Wy()?"详情 >":"Detail >",l.onclick=this.onCollapseClick.bind(this);const I=t.content.firstChild,h=I.querySelector(`.${O1}`);return h.appendChild(l),h.appendChild(r),h.appendChild(i),I}addDiaLog(){fU()||(z3=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${mL}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",Wo.info("show autoplay dialog"),oh.uploadEvent({log:HIA}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,z3=!1),yU=null}onConfirm(){Wo.warn("confirm clicked, try resume stream"),ps.emit(mn.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){const t=this._dialogNode.querySelector(`.${RZ}`);t.style.visibility=this._showDetail?"hidden":"visible",t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||oh.uploadEvent({log:qIA}),this._isCollapseClicked=!0}onQuestionClick(){window.open(u$,"_blank"),this._isQuestionClicked||oh.uploadEvent({log:KIA}),this._isQuestionClicked=!0}},yU=null;function zIA(){yU||(yU=new WIA)}function ZIA(){yU&&yU.deleteDialog()}var sU,Oy=class extends cv{constructor(t){super(t,Zt.VIDEO),he(this,"stat",{}),he(this,"_calculateTimeout",-1),he(this,"viewMirror",!1),he(this,"objectFit","cover"),he(this,"container"),he(this,"canvas"),he(this,"shouldRenderAlpha",!1),he(this,"_preSize",{width:0,height:0}),he(this,"posterImg"),he(this,"pipWindow"),he(this,"enterPIPPromise"),he(this,"_originContainerPosition"),he(this,"_isResettingSrcObject",!1),he(this,"_wrapper",null),he(this,"_useWrapper",!1),he(this,"_isFirstFrameRenderEmitted",!1),this.mode=t.canvas?1:0,this.container=t.container,this.canvas=t.canvas,$n(t.viewMirror)||(this.viewMirror=t.viewMirror),$n(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(Zt.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,aC&&(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,l=t.videoHeight||0;this._log.info(`first frame render: ${r}x${l}`),this.emit(Vn.FIRST_FRAME_RENDER,{width:r,height:l})};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=T_,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(Zt.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(Zt.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(Zt.RESIZE,this.handleElementEvent),this.element&&(this.element.addEventListener(Zt.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===Zt.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(Vn.ENTER_FULL_SCREEN)):(this._log.info("leave fullscreen"),this.emit(Vn.LEAVE_FULL_SCREEN))}handleVolumeChange(){var t;(this.isPictureInPicture()||this.isFullscreen())&&this.emit(Vn.VOLUME_CHANGE,{muted:(t=this.element)==null?void 0:t.muted})}handleElementEvent(t){var i,r,l,I,h,f;if(this.mode===2)return;super.handleElementEvent(t);const w=t.type,_=this.isPictureInPicture(),b=this.isFullscreen(),U=t.isTrusted&&(_&&ld||b);if(w===Zt.PLAYING&&U&&!this._isResettingSrcObject&&(this._log.warn("user resume in "+(b?"fullscreen":"pip")),this.emit(Vn.USER_RESUME_IN_PIP_OR_FULL_SCREEN)),w===Zt.PAUSE&&(U&&(this._log.warn("user pause in "+(b?"fullscreen":"pip")),this.emit(Vn.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}`),oT(500).then(()=>{var j;(j=this.container)!=null&&j.isConnected&&(this._pausedRetryCount=T_,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!fU()&&!this.isPausedByUserCall&&!U&&(this._log.info(`[${T_-this._pausedRetryCount+1}/${T_}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),Su&&!U&&(this._interval=yQ.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 j=this.element.style.transform;w===Zt.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=j.replace("scaleX(-1)",""):w!==Zt.LEAVE_PICTURE_IN_PICTURE||j.includes("scaleX")||(this.element.style.transform=`${j} scaleX(-1)`)}w===Zt.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 ${(l=this.element)==null?void 0:l.videoWidth}x${(I=this.element)==null?void 0:I.videoHeight}`),this._preSize.height=((h=this.element)==null?void 0:h.videoHeight)||0,this._preSize.width=((f=this.element)==null?void 0:f.videoWidth)||0,this.emit(Vn.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))),w===Zt.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(Vn.LEAVE_PICTURE_IN_PICTURE)),w===Zt.ENTER_PICTURE_IN_PICTURE&&this.emit(Vn.ENTER_PICTURE_IN_PICTURE)}resetSrcObjectToReplay(){aC&&Wj&&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,l;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?((l=this.element)==null||l.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&&(ld||sC))))return r();if(t==="")return this.removePosterImg(),r();if(this.posterImg)return r();const l=document.createElement("img");l.src=t;const I=window.getComputedStyle(this.element),h=I.objectFit||this.objectFit;let f=1;if(this._useWrapper){const w=parseInt(I.zIndex,10);isNaN(w)||(f=w+1)}l.style.cssText=this._useWrapper?`grid-area:1/1;z-index:${f};width:100%;height:100%;object-fit:${h};`:`position:absolute;top:0;left:0;width:100%;height:100%;object-fit:${h};`,l.onload=async()=>{try{l.decode&&await l.decode(),this.container&&!this._useWrapper&&window.getComputedStyle(this.container).position==="static"&&(this._originContainerPosition=this.container.style.position,this.container.style.position="relative"),this.posterImg=l;const w=this._useWrapper?this._wrapper:this.container;w?.appendChild(l),MY()&&Tv<=17&&this.elementToRender&&(this.elementToRender.style.visibility="hidden")}catch(w){this._log.warn("decode poster image error",w)}return r()},l.onerror=()=>(this._log.warn("load poster image error"),r())})}removePosterImg(){this.posterImg&&(MY()&&Tv<=17&&this.elementToRender&&(this.elementToRender.style.visibility=""),this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),this._useWrapper||!this.container||$n(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||!(Wj||t&&(sC||ld))||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&&Wj&&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(Zt.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($n(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(Vn.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(d4()&&this.element&&this._calculateTimeout<0){let t=0,i=null;const r=(l,I)=>{this.stat.width=I.width,this.stat.height=I.height,i&&(this.stat.fps=Math.round((I.presentedFrames-i.presentedFrames)/(l-t)*1e3)),t=l,i=I,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var h;return(h=this.element)==null?void 0:h.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(Su&&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=T_,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),Wo.info("worklet addModule success")}catch(r){throw Wo.info(`worklet addModule catch error. ${r.message}`),r}}typeof AudioContext<"u"?sU=AudioContext:typeof webkitAudioContext<"u"?sU=webkitAudioContext:typeof mozAudioContext<"u"&&(sU=mozAudioContext);var fu,$IA=1500,NZ=-1,x1=0,nU=-1,Z3=!1,GZ=0,bZ=-1,kZ=-1;function E$(){try{if(fu)return;(fu=new sU({sampleRate:48e3})).onstatechange=()=>{Wo.info(`context state: ${fu.state}${fu.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),W_()},clearTimeout(NZ)}catch(t){Wo.error(`initAudioContext failed: ${t} typeof AudioContextClass: ${typeof sU}`),NZ=setTimeout(E$,1e3)}}E$();var W_=()=>{fu.state==="suspended"?(x1=Yc(),AuA(),GY(),document.addEventListener("click",W_)):fu.state==="interrupted"?GY():(x1&&(Ir.addNumber({key:507800,value:Yc()-x1,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),x1=0),euA(),document.removeEventListener("visibilitychange",W_),document.removeEventListener("click",W_))},t3=0,i3=-1;function GY(){return new Promise((t,i)=>{if(fu.state==="running")return t();Date.now()-t3<1e3?(clearTimeout(i3),i3=setTimeout(()=>{t3=Date.now(),fu.resume().then(t,i)},1e3)):(clearTimeout(i3),t3=Date.now(),fu.resume().then(t,i))}).catch(t=>{Wo.warn(`context resume failed: ${t}`),document.addEventListener("visibilitychange",W_)})}function AuA(){nU===-1&&(nU=setTimeout(()=>{fu.state==="suspended"&&(Z3=!0,ps.emit("155",{isSuspended:!0}))},$IA))}function euA(){nU!==-1&&(clearTimeout(nU),nU=-1,Z3&&(Z3=!1,ps.emit("155",{isSuspended:!1})))}function tuA(){if(!Su||kZ!==-1)return;const t=()=>{Yc()-GZ<500||(fu&&fu.state==="running"&&fu.currentTime===bZ&&(Wo.warn("context is fake running, auto resume"),fu.suspend().catch(i=>{Wo.warn(`context suspend failed: ${i}`)})),bZ=fu.currentTime,GZ=Yc())};kZ=setInterval(()=>{t()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&t()})}document.addEventListener("click",W_);var iD=t=>fu,yv=class{constructor(t){this.name=t,he(this,"node"),he(this,"node2"),he(this,"pre",new Set),he(this,"next",new Set),he(this,"context"),he(this,"connectedNodes",new Set),he(this,"nextInputChannelMap",new Map),he(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){Wo.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(),Ir.addSuccessEvent({key:502701})}catch(l){Wo.error(l),Ir.addFailedEvent({key:502701,error:l})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Ir.addSuccessEvent({key:502702})}catch(i){Wo.error(i),Ir.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}},iuA=class extends yv{constructor(t=256){super(),this.fftSize=t,he(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,l=`M${i},${r}`;for(let I=0;I<t.length;I++)r=100*(t[I]/128)/2,l+=`L${i},${r}`,i+=1;return l}},ouA=class{constructor(){he(this,"source",new yv),he(this,"gain",new yv),he(this,"destination",new yv)}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(iD().createGain()),this.gain.node.gain.value=t):this.gain.node&&this.gain.deleteNode()}replaceSource(t){const i=suA(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}},LZ=new WeakMap;function suA(t){try{let i=LZ.get(t);if(i)return i;const r=iD();if(t instanceof HTMLAudioElement)i=r.createMediaElementSource(t);else{if(!(t instanceof MediaStreamTrack))return t;i=r.createMediaStreamSource(new MediaStream([t]))}return LZ.set(t,i),i}catch(i){if(!(sC&&i instanceof Error&&i.name==="NotSupportedError"))throw i;Wo.warn(i)}}var sY=class rm{constructor(i){he(this,"_volume",0),he(this,"_volumeDb",0),he(this,"_log"),he(this,"_scriptProcessorNode",null),he(this,"_audioWorkletNode",null),he(this,"_interval",200),he(this,"ready",this.preload());const{log:r}=i;this._log=r,ps.on(mn.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-rm.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!rm.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);';rm.workletReady=XIA(rm.audioContext,URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}return rm.workletReady.then(()=>this.initAudioWorklet()).catch(i=>(this._log.error(`volumeMeter preload error: ${i}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(rm.audioContext,"volume-meter");let i=!1;this._audioWorkletNode.port.onmessage=r=>{rm.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}`),oh.logFailedEvent({userId:this._log.userId,eventType:$L.LOAD_WORKLET,error:i}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=iD("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=i=>{rm.lastMessageTime=Date.now();const r=i.inputBuffer.getChannelData(0);let l=0;for(let I=0;I<r.length;++I)l+=r[I]*r[I];this._volume=Math.sqrt(l/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,ps.off(mn.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:l}=i;this._interval=l,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:l})}};he(sY,"lastMessageTime",0),he(sY,"audioContext",iD()),he(sY,"workletReady");var nuA=sY,UZ=class extends yv{constructor(t){super(),he(this,"_volumeMeter"),this._volumeMeter=new nuA(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()}}},ruA=IT(FU()),FZ=t=>i=>i.deviceId===t,o3=class{constructor(t,i){he(this,"kind"),he(this,"type"),he(this,"devices",[]),this.kind=t,this.type=i}update(t,i){const r=t.filter(l=>l.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);this.devices.length===1&&d$(this.devices[0])||i&&(r.forEach(l=>{if(l.deviceId&&!this.devices.find(FZ(l.deviceId))){const I=`${this.kind}${this.type}Added`;Wo.warn(`${I}: ${JSON.stringify(l)}`),i.emit(I,l)}}),this.devices.forEach(l=>{if(l.deviceId&&!r.find(FZ(l.deviceId))){const I=`${this.kind}${this.type}Removed`;Wo.warn(`${I}: ${JSON.stringify(l)}`),i.emit(I,l)}})),this.devices=r}hasDevice(t){return!!this.devices.find(i=>i.deviceId===t)}},auA=class extends ruA.EventEmitter{constructor(){super(),he(this,"audioInputs",new o3(Zt.AUDIO,"Input")),he(this,"videoInputs",new o3(Zt.VIDEO,"Input")),he(this,"audioOutputs",new o3(Zt.AUDIO,"Output")),this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||yQ.run("interval",()=>{this.update()},{delay:1e4}))}init(){X3().then(t=>{this.audioInputs.update(t),this.videoInputs.update(t),this.audioOutputs.update(t)})}async update(t=0){const i=await X3(t);return this.audioInputs.update(i,this),this.videoInputs.update(i,this),this.audioOutputs.update(i,this),this}hasBlueTooth(){var t;if(1e3*((t=iD())==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(l=>r.label.toLowerCase().includes(l)))||this.audioInputs.devices.some(r=>i.some(l=>r.label.toLowerCase().includes(l)))}},mQ=OX||FX?null:new auA;function d$(t){return t.deviceId===t.groupId&&t.groupId===""}async function X3(t=0){if(QV()||!l4())return[];let i=await navigator.mediaDevices.enumerateDevices();if(t!==0){const r={audio:!1,video:!1};if(i.forEach(l=>{d$(l)&&(l.kind===Zt.AUDIO_INPUT?r.audio=!0:l.kind===Zt.VIDEO_INPUT&&(r.video=!0))}),t===2&&(r.audio=!1),t===1&&(r.video=!1),r.audio||r.video){let l;try{l=await navigator.mediaDevices.getUserMedia(r),r.audio&&GY()}catch(I){Wo.debug("capture before getDevices failed: ",I)}i=await navigator.mediaDevices.enumerateDevices(),l?.getTracks().forEach(I=>I.stop())}}return i.map((r,l)=>{const I={kind:r.kind,deviceId:r.deviceId,groupId:r.groupId,label:r.label||`${r.kind}_${l}`};return r.deviceId.length>0&&Q4.add(`${r.deviceId}_${r.kind}`),r.getCapabilities&&(I.getCapabilities=()=>r.getCapabilities()),I})}function DU(t=!1){return mQ.update(t?1:0).then(i=>i.audioInputs.devices)}function Dv(t=!1){return mQ.update(t?2:0).then(i=>i.videoInputs.devices)}var OZ=!1;async function guA(){try{OZ||(OZ=!0,Wo.info(`speakers:${(await cuA()).map(t=>` ${t.deviceId.slice(0,8)}: ${t.label}`)}`))}catch{}}async function cuA(t=!1){return(Su||ld)&&(t=!1),mQ.update(t?1:0).then(i=>i.audioOutputs.devices)}var nY,Q4=new Set;function luA(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}_${Zt.VIDEO_INPUT}`;return!!Q4.has(r)}function IuA(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}_${Zt.AUDIO_INPUT}`;return!!Q4.has(r)}async function uuA(t,i){const r=(await DU()).find(l=>l.deviceId===YX);return!i&&r?.groupId===t||r?.groupId===t&&r.label===i}async function EuA({newDeviceId:t,oldDeviceId:i,oldGroupId:r,oldLabel:l,kind:I}){return t===i&&(I!==Zt.AUDIO||t!==YX||await uuA(r,l))}var duA=class extends ouA{constructor(t){super(),this.log=t,he(this,"volumeMeter"),he(this,"volumeMeterAfter3A"),he(this,"volumeDestination"),he(this,"analyser",new iuA),this.volumeMeter=new UZ({log:this.log}),this.volumeMeterAfter3A=new UZ({log:this.log}),this.volumeDestination=new yv,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},CuA=class extends cv{constructor(t){super(t,Zt.AUDIO),he(this,"_outputDeviceId"),he(this,"_floatVolume",1),he(this,"_destination"),he(this,"pipeline"),he(this,"volumeMeterMode","worklet"),he(this,"enableVolumeControlInIOS"),this.enableVolumeControlInIOS=t.enableVolumeControlInIOS,this.mode=0,t.url&&(this.url=t.url),this.pipeline=new duA(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((MQ==="15.2"||MQ==="15.3"||MQ==="15.4")&&this.muted)return void this._log.info("audioElement is muted.");this._log.info("audio player initializeElement");const i=nY||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(_v(t)?t/100:this._floatVolume),i===nY&&(nY=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(Vn.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(iD("player").createAnalyser()),guA()}catch(i){throw this._log.warn(`audio play error: ${i}`),b7(MQ,"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()}},huA=class extends CuA{constructor(t){super(t),he(this,"_sourceElement"),he(this,"_output",new yv),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(iD().destination)}write(t){this.pipeline.volumeMeter.write(t)}setTrack(t){var i,r,l;((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(Vn.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=((l=t.getSettings())==null?void 0:l.channelCount)||1,this.pipeline.replaceSource(t)):this.pipeline.source.deleteNode())}setVolume(t){var i;const r=t<=1&&!MY();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(MY()){if(!this.enableVolumeControlInIOS)return;tuA()}if(sC&&!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=iD().createMediaStreamDestination()),this.pipeline.destination.setNode(this._destination),mU(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play().catch(l=>{this.emit(Vn.AUTOPLAY_FAILED,l)}))}}stop(t=0){this.pipeline.destroy();const i=this._sourceElement||this.element;i&&G7&&(nY=i),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(t)}},p4=class extends Xn{constructor({userId:t,sdkAppId:i,mediaType:r,room:l,PlayerClass:I=r===1?huA:Oy}){var h;super(),he(this,"id",x7()),he(this,"userId",""),he(this,"isRemote"),he(this,"mediaType"),he(this,"room"),he(this,"user"),he(this,"_log"),he(this,"_inputTrack"),he(this,"_outputTrack"),he(this,"isPlayCalled"),he(this,"container",null),he(this,"player"),he(this,"subVideoPlayerMap"),he(this,"muted",!1),he(this,"abortCtrl"),he(this,"objectFit","cover"),he(this,"mirror"),he(this,"rotation"),he(this,"isScreen",!1),he(this,"manager"),he(this,"trackSettings"),he(this,"isFirstVideoFrameEmitted",!1),this.userId=t||"",this.mediaType=r,this._log=Wo.createLogger({parent:l?.getLogger(),id:`${this.kind[0]}t`,userId:(h=l||this.room)==null?void 0:h.userId,remoteUserId:this instanceof Cv?void 0:this.userId,sdkAppId:i,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Cv}),this.player=new I({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:l?.enableVolumeControlInIOS}),this.player.on(Vn.PLAYER_STATE_CHANGED,f=>{if(ps.emit(mn.PLAYER_STATE_CHANGED,Rn({track:this},f)),this.emit("player-state-changed",f),f.state==="PLAYING"&&this.room){let w=!0;for(const{remoteAudioTrack:_,remoteVideoTrack:b,remoteAuxiliaryTrack:U}of[...this.room.remotePublishedUserMap.values()])if(_.isAvailable&&!_.player.isPlaying||b.isAvailable&&!b.player.isPlaying||U.isAvailable&&!U.player.isPlaying){w=!1;break}w&&fU()&&ZIA()}}),this.kind===Zt.VIDEO&&(this.player.on(Vn.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(Vn.LOADED_DATA),ps.emit(mn.VIDEO_LOADED_DATA,{track:this})}),this.player.on(Vn.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(Vn.LOADED_META_DATA)}),this.player.on(Vn.MEDIA_TRACK_CHANGED,f=>{var w;(w=this.subVideoPlayerMap)==null||w.forEach(_=>_.setTrack(f))}),this.player.on(Vn.RESIZE,f=>{this.emitFirstVideoFrameEvent(Vn.RESIZE),this.emit("video-size-changed",Rn({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},f))}),this.player.on(Vn.FIRST_FRAME_RENDER,f=>{this.emit("first-frame-render",nB(Rn({},f),{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(Vn.ERROR,this.onPlayerError.bind(this)),this.player.on(Vn.AUTOPLAY_FAILED,this.handleAutoPlayFailed,this)}get log(){return this._log||Wo}get kind(){return this.mediaType===1?Zt.AUDIO:Zt.VIDEO}get isAudio(){return this.kind===Zt.AUDIO}get strMediaType(){return this.mediaType===4?Zt.VIDEO:this.mediaType===2?Zt.SCREEN:Zt.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=Ah(t)?t[0]:t;if(this.isPlayCalled)return this.log.info(`play update options: ${JSON.stringify(i)}`),i&&!$n(i.muted)&&this.setPlayerMute(i.muted),i&&!$n(i.objectFit)&&(this.objectFit=i.objectFit),void(this.player instanceof Oy&&(this.player.setObjectFit(this.objectFit),this.container!==r&&r&&(Ah(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))),Ah(t)&&t.length>=1&&await this.playSubContainer(t.slice(1),i)));if(i&&!$n(i.muted)?this.setPlayerMute(i.muted):this.isRemote&&this.kind!==Zt.VIDEO||this.setPlayerMute(!0),i&&!$n(i.objectFit)&&(this.objectFit=i.objectFit),this.player instanceof Oy&&($n(i?.isLiveStream)||this.player.setLiveMode(i.isLiveStream),this.player.setObjectFit(this.objectFit),i&&!$n(i.poster)&&this.player.setPoster(i.poster)),this.isPlayCalled=!0,r&&(this.container=r,this.player instanceof Oy&&this.player.setContainer(r)),ps.emit(mn.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),Ah(t)&&t.length>1&&await this.playSubContainer(t.slice(1),i)}catch(l){throw this.handleAutoPlayFailed(l),l}}else this.log.info("play has not mediaTrack, abort")}setMirror(t,i){if(this.isScreen||this.kind!==Zt.VIDEO||$n(t)||t===this.mirror)return;this.mirror=t;let r=this.player;i&&(r=i);const l=this.manager;if(mv(this.mirror))return r.setViewMirror(this.mirror),void(!this.isRemote&&l&&(l.mirror=!1));switch(this.mirror){case"view":l&&(l.mirror=!1),r.setViewMirror(!0);break;case"publish":l&&(l.mirror=!0),r.setViewMirror(!0);break;case"both":l&&(l.mirror=!0),r.setViewMirror(!1)}}async playSubContainer(t,i){if(!this._outputTrack||this.kind===Zt.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((l,I)=>{var h;t.find(f=>I===f)||(l.stop(),(h=this.subVideoPlayerMap)==null||h.delete(I))});for(const[l,I]of t.entries()){const h=this.subVideoPlayerMap.get(I);h?i&&($n(i.objectFit)||h.setObjectFit(i.objectFit)):this.subVideoPlayerMap.set(I,new Oy({id:this.userId||this.id,track:this.playerMediaTrack,container:I,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${l+1}`})}))}const r=[...this.subVideoPlayerMap.values()];for(const l of r)l.setViewMirror(this.player.mirror),await l.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(Kj(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),ps.emit(t?mn.TRACK_MUTED:mn.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){h4(t,t).add(Zt.MUTE,this.onTrackMuted).add(Zt.UNMUTE,this.onTrackUnmuted).add(Zt.ENDED,this.onTrackEnded),t.muted&&this.onTrackMuted(),t.readyState===Zt.ENDED&&this.onTrackEnded()}uninstallTrackEvent(t){mU(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 fV&&jW(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(l=>this.handleAutoPlayFailed(l)),void this.log.info(`playing state updated, play ${this.kind}`)}else if(!this.player.isStopped)return Kj(this)&&this.isAudio&&((i=this.user)!=null&&i.muteState.hasAudio)&&((r=this.user)!=null&&r.muteState.audioMuted)?void 0:(this.player.stop(Kj(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((uT||xU)&&(await oT(100),(i=this.player)==null?void 0:i.isPlaying))return;zIA()}else document.addEventListener("click",r,!0);ps.once(mn.LOCAL_TRACK_CAPTURE_SUCCESS,({track:l})=>{l.kind==="audio"&&fU()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",t)}getVideoFrame(){return this.player instanceof Oy?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(t){var i,r,l;if(this.isFirstVideoFrameEmitted)return;const I=(i=this.mediaTrack)==null?void 0:i.getSettings();let h=I?.width||((r=this.player.element)==null?void 0:r.videoWidth)||0,f=I?.height||((l=this.player.element)==null?void 0:l.videoHeight)||0;(t!==Vn.RESIZE||h||f)&&(t!==Vn.LOADED_META_DATA||h||f)&&(t!==Vn.LOADED_DATA||h||f||this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,i7(this.rotation)&&([h,f]=[f,h]),this.emit("first-video-frame",{width:h,height:f,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`)}};Cc([yu([],Xn.INIT,{sync:!0})],p4.prototype,"_toInitState");var BuA=Object.prototype.hasOwnProperty;function QuA(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(iT(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(BuA.call(t,i))return!1;return!0}return!1}var bY=QuA,puA=async function(t){const i=fuA(t);Wo.info(`getUserMedia with constraints: ${JSON.stringify(i)}`);let r=[],l=[];const I=["label","deviceId","groupId"];if(i.audio&&(r=await DU(),Wo.info(`microphones: ${zy(r.map(h=>nB(Rn({},h),{groupId:h.groupId.substring(0,8)})),{keysToInclude:I})}`)),i.video&&(l=await Dv(),Wo.info(`cameras: ${zy(l,{keysToInclude:I})}`),!mv(i.video)&&i.video.facingMode==="user"&&!i.video.deviceId)){const h=l.filter(f=>!f.label.includes("infrared")).find(f=>f.label.includes("facing front"));h&&(i.video.deviceId=h.deviceId,Wo.info(`exclude infrared camera: ${JSON.stringify(i)}`))}try{const h=await navigator.mediaDevices.getUserMedia(i);return t$&&h.getTracks().forEach(f=>{var w;const _=f.getCapabilities();Wo.info(`${f.kind} capabilities: ${zy(_,{keysToInclude:VX})}`),$n(t.echoCancellation)||((w=_.echoCancellation)==null?void 0:w.indexOf(t.echoCancellation))!==-1||Wo.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(_.echoCancellation)}], but received '${t.echoCancellation}'`)}),i.audio&&GY(),h}catch(h){let{message:f}=h;throw h.name==="NotFoundError"&&(t.video&&l&&l.length===0&&(f=TY({key:_Y.CAMERA_NOT_FOUND})),t.audio&&r&&r.length===0&&(f=TY({key:_Y.MICROPHONE_NOT_FOUND}))),new ml({code:qg.INITIALIZE_FAILED,name:h.name,message:f,constraint:h.constraint})}},muA=WW({retryFunction:puA,settings:{retries:3,timeout:500},onError:({error:t,retry:i,reject:r,retryFuncArgs:l,retriedCount:I})=>{const h=I+1;t.name==="NotReadableError"||t.name==="OverconstrainedError"||t.name==="AbortError"?(h===1?(l[0].video&&(l[0].maxResolution=!1,(!ld||l[0].width*l[0].height<=2073600)&&l[0].frameRate&&(l[0].frameRate=l[0].frameRate>10?10:5)),l[0].retryWhenExactFailed&&l[0].useExactDeviceId&&(l[0].useExactDeviceId=!1)):h===2?l[0].useDeviceIdOnly=!0:h!==3||l[0].useExactDeviceId||(l[0].useTrueAsConstraint=!0),i()):r(t),l[0].microphoneId&&PZ(l[0].microphoneId,!1),l[0].cameraId&&PZ(l[0].cameraId,!0)},onRetrying:t=>{Wo.warn(`getUserMedia NotReadableError observed, retrying [${t}/3]`)},onRetryFailed:t=>{oh.logFailedEvent({eventType:$L.GET_USER_MEDIA_RETRY,error:t})},onRetrySuccess:t=>{oh.logSuccessEvent({eventType:$L.GET_USER_MEDIA_RETRY}),oh.uploadEvent({log:`stat-${$L.GET_USER_MEDIA_RETRY}-success-${t}`})}});async function PZ(t,i){const r=(i?await Dv():await DU()).find(l=>l.deviceId===t);r&&pv(r.getCapabilities)&&Wo.warn(zy(r.getCapabilities(),{keysToInclude:VX}))}function fuA(t){return{audio:yuA(t),video:DuA(t)}}function yuA(t){if(!t.audio)return!1;if(t.useTrueAsConstraint)return!0;const i={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:t.sampleRate};return!bY(t.microphoneId)&&(i.deviceId=t.useExactDeviceId?{exact:t.microphoneId}:t.microphoneId,t.useDeviceIdOnly)?i:(_v(t.channelCount)&&(i.channelCount=t.channelCount),(mv(t.echoCancellation)||t.echoCancellation==="remote-only"||t.echoCancellation==="all")&&(i.echoCancellation=t.echoCancellation),mv(t.noiseSuppression)&&!t.noiseSuppression&&(i.noiseSuppression=!1),mv(t.autoGainControl)&&!t.autoGainControl&&(i.autoGainControl=!1),!!bY(i)||i)}function DuA(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&&!bY(r)?r:(t.width&&(r.width={ideal:t.width},i&&!sC&&(r.width.max=t.width)),t.height&&(r.height={ideal:t.height},i&&!sC&&(r.height.max=t.height)),sC&&hV&&t.width&&t.height&&t.width*t.height<101376&&(r.width=t.width,r.height=t.height),t.frameRate&&(r.frameRate=t.frameRate),!!bY(r)||r)}var SuA=muA;function C$(t){return mV((i,r)=>async function(...l){const I=await i.apply(this,l);return await t.call(this,...l),I})}function mV(t){return function(i,r,l){return l.value=t(l.value,r),l}}var MuA=(()=>{let t=!1,i=document.visibilityState;return()=>{document.visibilityState!==i&&Wo.info(`visibility change: ${document.visibilityState}`),t||(document.addEventListener("visibilitychange",()=>{Wo.info(`visibility change: ${document.visibilityState}`),i=document.visibilityState}),t=!0)}})(),vuA=0,RuA=class{constructor(t){he(this,"log"),he(this,"isRunning",!1),he(this,"queue",[]);let i="fq"+ ++vuA;t&&(i+=`|${t}`),this.log=Wo.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,l;const I=Rn({},t),h=new Promise((f,w)=>{I.resolve=f,I.reject=w});return I.promise=h,i?this.length<=1?this.queue.push(I):(l=(r=this.lastQueueItem)==null?void 0:r.promise)==null||l.then(I.resolve,I.reject):this.queue.push(I),this.log.debug(`push ${this.length}`,t.funcName,t.args),this.isRunning||this.callNext(),h}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:l,reject:I,funcName:h}=this.queue[0];this.log.debug("callNext",this.length,h,i),this.isRunning=!0,t.apply(r,i).then(l,I).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},xZ=new WeakMap;function wuA(t=!1){return function(i,r,l){const I=l.value;return l.value=function(...h){const f=xZ.get(this)||new RuA;return xZ.set(this,f),f.push({fn:I,args:h,context:this,funcName:r},t)},l}}function h$(t,i){return mV((r,l)=>function(...I){const h=t;try{const f=r.apply(this,I),w=Yc();return jX(f)?f.then(_=>(i?Ir.addSuccessEvent({key:h,cost:Yc()-w}):Ir.addSuccessEvent({key:h}),_)).catch(_=>{throw Ir.addFailedEvent({key:h,error:_}),_}):(Ir.addSuccessEvent({key:h}),f)}catch(f){throw Ir.addFailedEvent({key:h,error:f}),f}})}function $l(...t){}var _uA=t=>t();function TuA(){this.dispose()}var NuA=()=>typeof __FASTRX_DEVTOOLS__<"u",GuA=1,sT=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){const i=new kuA(t,this,this.streamId++);return Ql.subscribe({id:this.id,end:!1},{nodeId:i.sourceId,streamId:i.id}),this(i),i}},m4=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=$l,this.error=$l,this.next=$l,this.dispose=$l,this.subscribe=$l,this.doDefer()}subscribe(t){return t instanceof sT?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(_uA),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}},aB=class extends m4{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)}},buA=class extends m4{constructor(t,i=$l,r=$l,l=$l){if(super(),this._next=i,this._error=r,this._complete=l,this.then=$l,t instanceof sT){const I={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{Ql.defer(I,0)}),Ql.create(I),Ql.pipe(I),this.sourceId=I.id,this.subscribe(t),Ql.subscribe({id:I.id,end:!0}),i==$l?this._next=h=>Ql.next(I,0,h):this.next=h=>{Ql.next(I,0,h),i(h)},l==$l?this._complete=()=>Ql.complete(I,0):this.complete=()=>{this.dispose(),Ql.complete(I,0),l()},r==$l?this._error=h=>Ql.complete(I,0,h):this.error=h=>{this.dispose(),Ql.complete(I,0,h),r(h)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function $C(t,...i){return i.reduce((r,l)=>l(r),t)}function nC(t,i,r){if(NuA()){const l=Object.defineProperties(Object.setPrototypeOf(t,sT.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}});Ql.create(l);for(let I=0;I<r.length;I++){const h=r[I];typeof h=="function"&&h instanceof sT&&Ql.addSource(l,h)}return l}return t}function bv(t,i){return function(...r){return l=>{if(l instanceof sT){const I=nC(h=>{const f=new t(h,...r);f.sourceId=I.id,f.subscribe(l)},i,arguments);return I.source=l,Ql.pipe(I),I}return I=>l(new t(I,...r))}}}function Ty(t,i){window.postMessage({source:"fastrx-devtools-backend",payload:{event:t,payload:i}})}var kuA=class extends aB{constructor(t,i,r){super(t),this.source=i,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{Ql.defer(this.source,this.id)})}next(t){Ql.next(this.source,this.id,t),this.sink.next(t)}complete(){Ql.complete(this.source,this.id),this.sink.complete()}error(t){Ql.complete(this.source,this.id,t),this.sink.error(t)}},Ql={addSource(t,i){Ty("addSource",{id:t.id,name:t.toString(),source:{id:i.id,name:i.toString()}})},next(t,i,r){Ty("next",{id:t.id,streamId:i,data:r&&r.toString()})},subscribe({id:t,end:i},r){Ty("subscribe",{id:t,end:i,sink:{nodeId:r&&r.nodeId,streamId:r&&r.streamId}})},complete(t,i,r){Ty("complete",{id:t.id,streamId:i,err:r?r.toString():null})},defer(t,i){Ty("defer",{id:t.id,streamId:i})},pipe(t){Ty("pipe",{name:t.toString(),id:t.id,source:{id:t.source.id,name:t.source.toString()}})},update(t){Ty("update",{id:t.id,name:t.toString()})},create(t){t.id||(t.id=GuA++),Ty("create",{name:t.toString(),id:t.id})}},LuA=class extends m4{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 B$(){return t=>{const i=new LuA(t);if(t instanceof sT){const r=nC(l=>{i.add(l)},"share",arguments);return i.sourceId=r.id,r.source=t,Ql.pipe(r),r}return nC(i.add.bind(i),"share",arguments)}}function Q$(...t){return nC(i=>{const r=new aB(i);let l=t.length;r.complete=()=>{--l===0&&i.complete()},t.forEach(r.bindSubscribe)},"merge",arguments)}function UuA(...t){return nC(i=>{const r=new Map;t.forEach(l=>{const I=new aB(i);r.set(l,I),I.complete=()=>{r.delete(l),r.size===0?i.complete():I.dispose()},I.next=h=>{r.delete(l),r.forEach(f=>f.dispose()),I.resetNext(),I.resetComplete(),I.next(h)}}),t.forEach(l=>r.get(l).subscribe(l))},"race",arguments)}function FuA(...t){return i=>nC((r,l=0,I=t.length)=>{for(;l<I&&!r.disposed;)r.next(t[l++]);r.disposed||r.subscribe(i)},"startWith",arguments)}function p$(t){const i=arguments,r=B$()(nC(l=>{r.next=I=>l.next(I),r.complete=()=>l.complete(),r.error=I=>l.error(I),t&&l.subscribe(t)},"subject",i));return r.next=$l,r.complete=$l,r.error=$l,r}function OuA(t){return nC(i=>{let r=0;const l=setInterval(()=>i.next(r++),t);return i.defer(()=>{clearInterval(l)}),"interval"},"interval",arguments)}function PuA(t,i){return nC(r=>{let l=0;const I=setTimeout(()=>{r.removeDefer(h),r.next(l++),i||r.complete()},t),h=()=>clearTimeout(I);r.defer(h)},"timer",arguments)}function s3(t,i){return r=>{const l=I=>r.next(I);r.defer(()=>i(l)),t(l)}}function mE(t,i){if("on"in t&&"off"in t)return nC(s3(r=>t.on(i,r),r=>t.off(i,r)),"fromEvent",arguments);if("addListener"in t&&"removeListener"in t)return nC(s3(r=>t.addListener(i,r),r=>t.removeListener(i,r)),"fromEvent",arguments);if("addEventListener"in t)return nC(s3(r=>t.addEventListener(i,r),r=>t.removeEventListener(i,r)),"fromEvent",arguments);throw"target is not a EventDispachter"}function xuA(){return nC(t=>t.complete(),"empty",arguments)}var YuA=class extends aB{constructor(t,i,r){super(t),this.filter=i,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},z_=bv(YuA,"filter"),VuA=class extends aB{constructor(t,i){super(t),this.count=i}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},JuA=bv(VuA,"take"),HuA=class extends aB{constructor(t,i){super(t);const r=new aB(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=TuA,r.subscribe(i)}},nT=bv(HuA,"takeUntil"),quA=class extends aB{constructor(t,i){super(t),this.f=i}next(t){this.f(t)||(this.next=super.next,this.next(t))}},KuA=bv(quA,"skipWhile"),juA=class extends aB{constructor(t,i,r){super(t),this.mapper=i,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},m$=bv(juA,"map"),WuA=class extends aB{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()}},zuA=class f$ extends aB{constructor(i,r,l){super(i),this.makeSource=r,this.combineResults=l,this.index=0}subInner(i,r){const l=this.currentSink=new r(this.sink,i,this);this.complete===f$.prototype.complete&&(this.complete=this.tryComplete),l.complete=l.tryComplete,l.subscribe(this.makeSource(i,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},YZ=class extends WuA{},y$=class extends zuA{next(t){this.subInner(t,YZ),this.next=i=>{this.currentSink.dispose(),this.subInner(i,YZ)}}},ZuA=bv(y$,"switchMap");function XuA(t){return(i,r)=>t(()=>i,r)}var D$=XuA(bv(y$,"switchMapTo")),Nv=(t=$l,i=$l,r=$l)=>l=>new buA(l,t,i,r),S$=(t=>(t[t.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",t[t.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",t))(S$||{}),Cv=class extends p4{constructor(t,i){super({mediaType:t,PlayerClass:i}),he(this,"isRemote",!1),he(this,"deviceId"),he(this,"groupId",""),he(this,"label",""),he(this,"sourceTrack"),he(this,"enableAutoSwitchWhenRecapturing",!0),he(this,"_isRecapturing",!1),he(this,"_lastRecaptureTime",0),he(this,"_onMuteTimeoutId",-1),he(this,"_encodeCheckTimeoutId",-1),he(this,"recaptureMode",0),he(this,"profile"),he(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(Zt.MUTE,this.onTrackMuted),t.addEventListener(Zt.UNMUTE,this.onTrackUnmuted),t.addEventListener(Zt.ENDED,this.onTrackEnded),t.muted&&this.onTrackMuted(),t.readyState===Zt.ENDED&&this.onTrackEnded()}uninstallTrackEvent(t){t.removeEventListener(Zt.MUTE,this.onTrackMuted),t.removeEventListener(Zt.UNMUTE,this.onTrackUnmuted),t.removeEventListener(Zt.ENDED,this.onTrackEnded)}setStateToReady(){}async capture(t,i=!1){var r,l;const I=this.sourceTrack;try{const h=Yc();let f;ps.emit(mn.LOCAL_TRACK_CAPTURE_START,{track:this}),t.customSource?(f=new MediaStream,f.addTrack(t.customSource)):(i||(r=this.sourceTrack)==null||r.stop(),f=await SuA(t));const w=f.getTracks()[0];return await this.setInputMediaStreamTrack(w),t.customSource||(this.sourceTrack=w,this.updateDeviceIdInUse(),this.listenDeviceChange()),ps.emit(mn.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Yc()-h,profile:this.profile,room:(l=this.manager)==null?void 0:l.room}),f}catch(h){throw ps.emit(mn.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:h}),this.log.error(`getUserMedia error observed ${h}`),h}finally{i&&I?.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=zX(((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 l,I,h,f,w;const _=()=>r(new ml({code:qg.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?i():(this.state!==Xn.INIT&&this.state!=="ready"||_(),$C(mE(t,"local-publish-flag-changed"),z_(()=>this.hasFlag),nT(Q$(mE(this,Xn.INIT),mE(this,"ready"))),Nv(i,r,_))),(h=(I=(l=this.room)==null?void 0:l.networkQuality)==null?void 0:I.hadRecentBadUplink)==null?void 0:h.call(I,2))return i();const b=t.heartbeatCount,U=((w=(f=this.mediaTrack)==null?void 0:f.stats)==null?void 0:w.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(async()=>{var j,IA,nA,mA,lA,cA,TA,WA;if((nA=(IA=(j=this.room)==null?void 0:j.networkQuality)==null?void 0:IA.hadRecentBadUplink)!=null&&nA.call(IA,2)||t.heartbeatCount-b<3)return i();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((mA=this.mediaTrack)!=null&&mA.stats){const Pe=this.mediaTrack.stats.totalFrames||0;Pe-U===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",Pe)}const Ee=this.kind===Zt.AUDIO,de=this.stat.bytesSent>0;if(Ir[de?"addSuccessEvent":"addFailedEvent"]({key:Ee?503700:513702}),!Ee){const Pe={H264:513704,H265:513705,VP8:513706}[((cA=(lA=this.room)==null?void 0:lA.videoCodec)==null?void 0:cA.toUpperCase())||"H264"];Pe&&Ir[de?"addSuccessEvent":"addFailedEvent"]({key:Pe})}if(!de){if(Ir.addEnum({key:Ee?503701:513703,value:a4()}),oh.uploadEvent({log:`stat-encode-failed-${this.kind}-${k7()||U7()}`,userId:this.userId}),this.log.warn(Ee?"encode failed":`${(WA=(TA=this.room)==null?void 0:TA.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 oT(5e3),this.stat.bytesSent>0||this.hasFlag)))return i();this.emit("6",this),r(new ml({message:`${this.strMediaType} encode failed`,code:Ee?qg.AUDIO_ENCODE_FAILED:qg.VIDEO_ENCODE_FAILED}))}}},1e4)})}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),ps.emit(mn.LOCAL_TRACK_UNPUBLISHED,{track:this})}async updateDeviceIdInUse(){if(this.sourceTrack&&NY){const{deviceId:t,groupId:i}=this.sourceTrack.getSettings(),{label:r}=this.sourceTrack;await EuA({newDeviceId:t,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind})||(this.deviceId=t,this.label=r,i&&(this.groupId=i),X3().then(l=>{const I=l.find(h=>{let f=h.deviceId===t;return i&&(f=f&&h.groupId===i),f});I&&this.emit("2",I)}))}}setProfile(t){this.log.info("setProfile",t),Object.assign(this.profile,t)}isNeedToRecapture(t=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===Zt.AUDIO&&!IuA(this.sourceTrack)||this.kind===Zt.VIDEO&&!luA(this.sourceTrack)||this._isRecapturing||t&&hV&&ld)}onTrackMuted(){super.onTrackMuted(),MuA(),this.isNeedToRecapture(!0)&&(Date.now()-this._lastRecaptureTime<U1?setTimeout(()=>this.onTrackMuted(),U1):this._onMuteTimeoutId=setTimeout(async()=>{var t;if((t=this.sourceTrack)!=null&&t.muted){if((Su||aC)&&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<U1)return void setTimeout(()=>this.onTrackEnded(),U1);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 l=this.sourceTrack;i||(r=this.sourceTrack)==null||r.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();const I={useExactDeviceId:!0};if(t==="user"||t==="environment")I.facingMode=t;else{let h;(this.kind==="audio"?await DU():await Dv()).find(f=>f.deviceId===t)&&(h=t),I.deviceId=h}return this.capture(I,i).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),ps.emit(mn.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(h=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${h.message}`),this.emit("5",h),ps.emit(mn.LOCAL_TRACK_RECAPTURE,{track:this,error:h})}).finally(()=>{i&&l?.stop()})}async getRecoverCaptureDeviceId(){const t=this instanceof fV;if(t&&this.facingMode)return this.facingMode;let{deviceId:i}=this;if(i){const r=(LL.get(i)||0)+1;if(LL.set(i,r),r>=3&&this.enableAutoSwitchWhenRecapturing){const l=t?(await Dv()).find(I=>!LL.has(I.deviceId)):(await DU()).find(I=>!LL.has(I.deviceId));l&&(this.log.warn(`${i} capture fail ${r} times, change new ${l.deviceId}`),i=l.deviceId)}}return i}stopCapture(){var t;this.sourceTrack&&(this.sourceTrack.stop(),ps.emit(mn.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()}};Cc([yu(Xn.INIT,"ready",{ignoreError:!0,sync:!0})],Cv.prototype,"setStateToReady"),Cc([wuA()],Cv.prototype,"capture"),Cc([yu("ready","publish",{ignoreError:!0,success(){ps.emit(mn.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 l=t instanceof ml?t:t.cause instanceof ml?t.cause:t;let I=!1;l instanceof ml&&(l.message.includes("timeout")?r="timeout":l.code===qg.API_CALL_ABORTED&&(I=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:l}),this.log[I?"info":"error"]("publish failed",l)}}),h$(521714,!1)],Cv.prototype,"publish"),Cc([mV(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)}),yu([],"ready",{sync:!0})],Cv.prototype,"unpublish");var LL=new Map;ps.on(mn.SWITCH_DEVICE_SUCCESS,t=>{t.track.deviceId&&LL.delete(t.track.deviceId)});var $uA=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 l=0;for(let h=t;h<=i;h++){const f=this.dataView.getInt8(h);switch(f){case 0:case 1:case 2:case 3:l===2&&(r.push(3),l=0),f===0?l+=1:l=0,r.push(f);break;default:l=0,r.push(f)}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));const I=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=I}removePreventionByte(){const{seiPayloadStartIndex:t}=this,i=this.dataView.byteLength-1,r=[];let l=0;for(let h=t;h<=i;h++)switch(this.dataView.getInt8(h)){case 0:l++,r.push(this.dataView.getInt8(h));break;case 3:l!==2&&r.push(this.dataView.getInt8(h)),l=0;break;default:r.push(this.dataView.getInt8(h)),l=0}const I=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=I}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 h=6;h<this.dataView.buffer.byteLength;h+=1){const f=this.dataView.getUint8(h);if(i+=1,f!==255){t+=f;break}t+=255}const r=new ArrayBuffer(t),l=new DataView(r),I=i;for(let h=0;h<r.byteLength;h+=1)l.setInt8(h,this.dataView.getInt8(I+h));return l}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(){he(this,"_seiMessageList",[]),he(this,"_smallSeiMessageList",[]),he(this,"_seiPayloadType",243)}encodeSEINalu(t){const i=t.byteLength,r=parseInt(String(i/255),10),l=i%255,I=[];I.push(0,0,0,1,6,this._seiPayloadType);for(let f=0;f<r;f++)I.push(255);I.push(l);const h=new DataView(t);return I.push(...new Uint8Array(h.buffer)),I.push(128),new $uA(new DataView(new Uint8Array(I).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 l=new DataView(t);for(let I=0;I<t.byteLength;I++)switch(l.getUint8(I)){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 l=9-this.getNaluCount(t.data);if(l<=0)return 0;const I=r.splice(0,l).reverse().map(this.encodeSEINalu.bind(this)),h=I.reduce((U,j)=>U+j.dataView.byteLength,0),f=new ArrayBuffer(h+t.data.byteLength),w=new DataView(f),_=new DataView(t.data);let b=0;for(let U=0;U<I.length;U++)for(let j=0;j<I[U].dataView.byteLength;j++)w.setInt8(b++,I[U].dataView.getInt8(j));for(let U=0;U<t.data.byteLength;U++)w.setInt8(b++,_.getInt8(U));return t.data=f,I.length}return 0}},fV=class extends Cv{constructor(t,i=4){super(i,Oy),he(this,"profile",Rn({},GcA)),he(this,"avoidCropping",!1),he(this,"_scaleResolutionDownBy"),he(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0}),he(this,"small"),he(this,"isNeedToSetBandwidth"),he(this,"muteImage"),he(this,"manager"),he(this,"_seiCodec",new AEA),this.manager=t;const r=()=>{var l;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{const I=DY(((l=this.room)==null?void 0:l.sdkAppId)||0)?eZ:AZ;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${I}`),this.setProfile(nB(Rn({},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(NY&&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,l;if(ih(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((l=this.manager)==null?void 0:l.deleteWatermark("mute")),this.muteImage=void 0),super.setMute(t)}async capture({deviceId:t,facingMode:i,useExactDeviceId:r=!0,customSource:l,retryWhenExactFailed:I=!0}){const h={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:I,customSource:l};if(h.facingMode==="environment"){const f=await this.getDeviceIdWhenUsingBackCamera();f&&(h.cameraId=f)}return super.capture(h)}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 l=DY(((i=this.room)==null?void 0:i.sdkAppId)||0)?eZ:AZ;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${l}`),super.setProfile(nB(Rn({},this.profile),{width:1920,height:1080}))}}async applyProfile(){var t,i;if(!this.mediaTrack)return;const{width:r=0,height:l=0}=(this.sourceTrack||this.mediaTrack).getSettings(),I=r*l,h=this.settings,f=h.height!==this.profile.height||h.width!==this.profile.width||h.frameRate!==this.profile.frameRate;if(f&&(Tv===16&&this.deviceId?await this.recapture(this.deviceId):(jW(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:w=0,height:_=0}=(this.sourceTrack||this.mediaTrack).getSettings(),b=w*_;return f&&b&&I&&b===I?void this.log.warn("set bandwidth failed: resolution is not changed"):this.room.setBandWidth({bandwidth:this.profile.bitrate,type:Zt.VIDEO,videoType:Zt.BIG})}}get settings(){const t={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},i=this.sourceTrack||this.mediaTrack;return NY&&i&&Object.assign(t,i.getSettings()),t}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:t7(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),ps.emit(mn.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(M7&&!n4&&i$){const i=(await Dv(!0)).map(l=>{var I;return nB(Rn({},l),{capabilities:(I=l.getCapabilities)==null?void 0:I.call(l)})}).filter(l=>{var I,h;return(h=(I=l.capabilities)==null?void 0:I.facingMode)==null?void 0:h.includes("environment")});let r=i[0];i.forEach(l=>{var I,h,f,w;const{capabilities:_}=l;((I=_.width)!=null&&I.max&&((h=_.height)!=null&&h.max)?_.width.max*_.height.max:0)>((f=r.capabilities.width)!=null&&f.max&&((w=r.capabilities.height)!=null&&w.max)?r.capabilities.width.max*r.capabilities.height.max:0)&&(r=l)}),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 l=!this.small;this.small=this.fallbackProfile(t,!0),await((i=this.manager)==null?void 0:i.update()),l&&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,l=Rn({},t);return t.width*t.height<=19200&&aC&&eD&&(this.log.warn(`${i?"small ":""}resolution is ${t.width}*${t.height}, fallback to 240*180 for android chrome`),l.width=r?240:180,l.height=r?180:240,l.bitrate=Math.max(t.bitrate,150)),t.width*t.height>921600&&qlA&&(l.width=r?1280:720,l.height=r?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),JlA(MQ,"14.3")&&b7(MQ,"14.0",!0)&&this.on("7",()=>{const 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"))}),!i&&this.avoidCropping&&(eD||sC)&&!WlA()&&t.width*t.height<=230400&&t.width/t.height===16/9&&(this._scaleResolutionDownBy=1280/t.width,l.width=1280,l.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),l}stopSmall(){var t,i;this.small&&(delete this.small,(t=this.manager)==null||t.update(),(i=this.room)==null||i.enableSmall(!1))}listenDeviceChange(){mQ&&!mQ.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&mQ.on("videoInputRemoved",this.handleCameraRemoved,this)}async handleCameraRemoved(t){if(t.deviceId===this.deviceId){let i=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${S$[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(t)}`),this.recaptureMode===0){Ec(this.userId,{eventId:2003,param1:7,streamType:2});const r=await Dv();r[0]?this.recapture(r[0].deviceId):i=!0}i&&mQ.on("videoInputAdded",this.handleCameraAdded,this)}}async handleCameraAdded(t){this.recaptureMode===1&&t.deviceId!==this.deviceId||(mQ.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((l,I)=>I?I({frame:l,mediaType:r}):l,t)}get enableEncodeFrame(){return!!this.manager&&this.manager.encodePipeline.some(t=>t)}play(t,i){return $n(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(t,i)}close(){mQ.off("videoInputAdded",this.handleCameraAdded,this),mQ.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}async recapture(t){try{await super.recapture(t)}catch(i){const r=(await Dv()).find(l=>l.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||$n(t)||t!==this.rotation&&(this.rotation=t,this.manager.rotation=t))}};Cc([C$(function(t){this.setContentHint(t.contentHint||"motion")})],fV.prototype,"capture");var eEA=[-1,-1,1,-1,-1,1,1,1],tEA=[0,0,1,0,0,1,1,1],UL=class $3 extends Xn{constructor(i,r){if(super(),this.context=i,he(this,"name"),he(this,"input"),he(this,"output"),he(this,"texture"),he(this,"ctx2d",null),he(this,"fbo"),he(this,"width",0),he(this,"height",0),he(this,"x",0),he(this,"y",0),he(this,"program"),he(this,"vertexShader"),he(this,"fragmentShader"),he(this,"totalFrames",0),he(this,"dropFrames",0),he(this,"matchInputSize",!0),he(this,"texCoordBuffer"),he(this,"positionBuffer"),he(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0}),he(this,"cost",0),he(this,"_canvas",null),he(this,"_image"),he(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 MU)i.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Tv!==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 l=i.ctx;this.texCoordBuffer=this.createBuffer(tEA),this.positionBuffer=this.createBuffer(eEA),r.createTexture!==!1&&(this.texture=l.createTexture(),this.useTexture(),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.pixelStorei(l.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=l.createFramebuffer(),this.useBufferFrame(),this.useTexture(),l.texImage2D(l.TEXTURE_2D,0,l.RGBA,this.width,this.height,0,l.RGBA,l.UNSIGNED_BYTE,null),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=i.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?i.createShader(l.VERTEX_SHADER,r.vertexShaderSource):i.defaultVShader,this.fragmentShader=r.fragmentShaderSource?i.createShader(l.FRAGMENT_SHADER,r.fragmentShaderSource):i.defaultFShader,this.program=i.createProgram(this.vertexShader,this.fragmentShader))}catch(l){this.context.destroy(new ml({code:qg.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${l.message||l}`}))}}get image(){return this._image}set image(i){this._image=i}createFramebuffer(i){const r=this.context.ctx,l=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,l),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,i,0),l}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 AW&&this.render(i)||this.context instanceof MU&&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 AW){const l=this.context.ctx;l.deleteBuffer(this.texCoordBuffer),l.deleteBuffer(this.positionBuffer),this.fbo&&l.deleteFramebuffer(this.fbo),this.texture&&l.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&l.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&l.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&l.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((l,I)=>{l&&(r.activeTexture(r.TEXTURE0+I),r.bindTexture(r.TEXTURE_2D,l))})}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,l=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,l),r.bufferData(r.ARRAY_BUFFER,new Float32Array(i),r.STATIC_DRAW),l}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 l=this.context.ctx;l.bindBuffer(l.ARRAY_BUFFER,i),l.bufferData(l.ARRAY_BUFFER,new Float32Array(r),l.STATIC_DRAW)}setAttributes(...i){const r=this.context.ctx;i.forEach((l,I)=>{r.enableVertexAttribArray(I),r.bindBuffer(r.ARRAY_BUFFER,l),r.vertexAttribPointer(I,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 l=this.context.ctx;l.texImage2D(l.TEXTURE_2D,0,l.RGBA,i,r,0,l.RGBA,l.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 l=this.context.ctx;l.drawArrays(l.TRIANGLE_STRIP,0,4)}draw2d(i,r,l,I,h,f,w,_,b){const U=!($n(f)||$n(w)||$n(_)||$n(b));return!(!this.ctx2d||!i)&&(i instanceof ImageData?(U?this.ctx2d.putImageData(i,r,l,f,w,_,b):this.ctx2d.putImageData(i,r,l),this.emit($3.RENDER,this.ctx2d.canvas)):(U?this.ctx2d.drawImage(i,f,w,_,b,r,l,I,h):this.ctx2d.drawImage(i,r,l,I,h),this.emit($3.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:l,y:I,width:h,height:f,name:w,cost:_}=this,b=Date.now(),U=(r-this.lastInfo.totalFrames)/((b-this.lastInfo.timestamp)/1e3)|0;return this.lastInfo={totalFrames:r,x:l,y:I,width:h,height:f,timestamp:b,fps:U,name:w,cost:_},Rn({parent:(i=this.input)==null?void 0:i.getInfo()},this.lastInfo)}createTexture(i){const r=this.context.ctx,l=r.createTexture();return this.useTextures(l),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),l}};he(UL,"RENDER","render"),Cc([yu(Xn.INIT,"connected",{sync:!0})],UL.prototype,"connect"),Cc([yu("connected",Xn.INIT,{ignoreError:!0,sync:!0})],UL.prototype,"disconnect"),Cc([yu([],"closed",{sync:!0})],UL.prototype,"close");var kY=UL,iEA=$C(OuA(250),m$(()=>performance.now()),B$()),oEA=t=>i=>{const r=performance.now();$C(iEA,KuA(l=>l-r<t),JuA(1))(i)},sEA=[0,1,1,1,0,0,1,0],nEA=class extends kY{constructor(t,i){super(t,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},i)),he(this,"_intervalId",0),he(this,"_sequence",0),he(this,"checkGLError",!1),he(this,"checkVisibilityChange"),t instanceof MU?this.ctx2d=t.ctx||null:t.available&&i?.mirrorUpAndDown&&this.setTexBuffer(sEA)}start(t){this.log.info(`${this.name} start render ${t} fps`),yQ.clearTask(this._intervalId),this._intervalId=yQ.run("intervalInWorker",()=>{if(t!==this.context.frameRate&&(yQ.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof AW){const i=this.context.ctx.getError();i&&this.context.destroy(new ml({code:qg.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(kY.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&&(yQ.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),yQ.clearTask(this._intervalId)}resize(t,i){super.resize(t,i),this.context.setSize(t,i)}close(){super.close(),yQ.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},rEA=class extends nEA{constructor(t,i){super(t,i),he(this,"_videoTrack"),he(this,"_muteOb"),he(this,"_closedOb",mE(this,"closed")),he(this,"_subscription"),he(this,"_canvasContainer"),Number(YU)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=t.canvas.captureStream().getVideoTracks(),this._muteOb=mE(this._videoTrack,"mute"),$C(mE(this._videoTrack,"ended"),nT(this._closedOb),Nv(()=>{this.context.destroy(new ml({code:qg.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=$C(this._muteOb,nT(this._closedOb),D$(oEA(5e3)),z_(()=>{var t;return!!((t=this._videoTrack)!=null&&t.muted)&&!document.hidden}),Nv(()=>{this.context.destroy(new ml({code:qg.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()}},M$=class extends kY{constructor(t,i){super(t,Rn({name:"imageSource"},i)),he(this,"_lastImage"),he(this,"_totalFrames",0),he(this,"_autoResize",!1),he(this,"_canvasRendered"),he(this,"videoCallbackId",0),he(this,"waitingFirstFrame",!0),he(this,"shouldUpdate",!0),this._autoResize=i?.autoResize!==!1,Tv===16&&(this._canvasRendered=p$(),$C(this._canvasRendered,FuA(this._image),ZuA(r=>r instanceof HTMLCanvasElement?mE(r,"rendered"):xuA()),nT(mE(this,"closed")),Nv(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;const t=this.image;this.videoCallbackId&&t.cancelVideoFrameCallback(this.videoCallbackId),d4()&&!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:l,height:I}=this;const{image:h}=this;if(h instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:l,videoHeight:I}=h,!l||!I)return!1;h.width=l,h.height=I}else if(h instanceof HTMLImageElement||h instanceof ImageData||h instanceof ImageBitmap){if({width:l,height:I}=h,h!==this._lastImage)this._lastImage=h;else if(l===this.width&&I===this.height)return!0}else h instanceof HTMLCanvasElement||h instanceof OffscreenCanvas?({width:l,height:I}=h,this._lastImage=h):typeof VideoFrame<"u"&&h instanceof VideoFrame&&({displayWidth:l,displayHeight:I}=h,(r=this._lastImage)==null||r.close(),this._lastImage=h);if(!this._autoResize)return!0;if(this.width===l&&this.height===I&&this.totalFrames){if(i){this.useTexture();const f=this.context.ctx;f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,h)}}else{if(i){this.useTexture();const f=this.context.ctx;f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,h)}this.resize(l,I)}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)}},v$=class extends M${constructor(t,i,r){super(t,r),this._player=i,this.name="videoPlayerSource",$C(mE(this._player,Vn.PLAYER_STATE_CHANGED),nT(mE(this,"closed")),z_(({state:l})=>l==="PLAYING"),Nv(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},aEA=class extends v${get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,i,r){super(t,new Oy({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 kY{constructor(t,i,r){super(t,nB(Rn({name:"textSource"},r),{create2d:!0})),he(this,"hasChange",!0),he(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:l}=this;super.resize(t,i),this.color=r,this.font=l}drawMultilineText(t=0,i=0,r=1.2){if(!this.ctx2d)return;const l=this.ctx2d.measureText(this.content);i+=l.fontBoundingBoxAscent||l.actualBoundingBoxAscent||0;const I=this.font.match(/(\d+)px/),h=(I?parseInt(I[1],10):16)*r,f=this.content.split(`
|
||
`);for(let w=0;w<f.length;w++)this.ctx2d.fillText(f[w],t,i+w*h)}},cEA=`
|
||
// 顶点着色器
|
||
attribute vec4 a_position;
|
||
attribute vec2 a_texCoord;
|
||
varying vec2 v_texCoord;
|
||
|
||
void main() {
|
||
gl_Position = a_position;
|
||
v_texCoord = a_texCoord;
|
||
}
|
||
`,lEA=`
|
||
// 片元着色器
|
||
precision mediump float;
|
||
varying vec2 v_texCoord;
|
||
uniform sampler2D u_texture;
|
||
|
||
void main() {
|
||
gl_FragColor = texture2D(u_texture, v_texCoord);
|
||
} `,SU=class extends Xn{constructor(t){super(),he(this,"frameRate"),he(this,"_canvas"),he(this,"log"),he(this,"hasAlpha",!1),he(this,"name"),he(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 aEA(this,t,{logger:this.log,name:i})}createVideoTrackDestination(t){return new rEA(this,t)}createVideoImageSource(t,i){return new M$(this,i?Object.assign(i,{logger:this.log,image:t}):{logger:this.log,image:t})}createVideoPlayerSource(t,i){return new v$(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")}};he(SU,"_ids",0);var FL=class extends SU{constructor(){super(...arguments),he(this,"defaultProgam"),he(this,"defaultVShader"),he(this,"defaultFShader"),he(this,"ctx"),he(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}_${SU._ids++}`),t&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",FcA),!this.ctx)throw new ml({code:qg.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,cEA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,lEA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ml({code:qg.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(t){let i="";return t&&(i=t.message,this.error=t,Ir.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,l=r.createShader(t);return r.shaderSource(l,i),r.compileShader(l),l}createProgram(t,i){const r=this.ctx,l=r.createProgram();return r.attachShader(l,t),r.attachShader(l,i),r.linkProgram(l),r.getProgramParameter(l,r.LINK_STATUS)||this.log.error(r.getProgramInfoLog(l)),l}};he(FL,"UNAVAILABLE","unavailable"),Cc([yu(Xn.INIT,"created",{sync:!0,fail(t){this.log.error("video gl context create failed",t.cause),Ir.addFailedEvent({key:512700,error:t.cause||t})},success(){this.log.info("video context created use webgl"),Ir.addSuccessEvent({key:512700})}})],FL.prototype,"create"),Cc([yu("created",Xn.INIT,{ignoreError:!0,sync:!0,success(t){t&&this.emit(FL.UNAVAILABLE,t),this.removeAllListeners()}})],FL.prototype,"destroy");var AW=FL,MU=class extends SU{constructor(){super(...arguments),he(this,"ctx")}create(t){if(this.hasAlpha=t.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${SU._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:t.alpha,willReadFrequently:t.willReadFrequently}),!this.ctx)throw new ml({code:qg.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,Ir.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(),Ir.addSuccessEvent({key:512703})}};Cc([yu(Xn.INIT,"created",{sync:!0,fail(t){this.log.error("video 2d context create failed",t.cause),Ir.addFailedEvent({key:512701,error:t.cause||t})},success(){this.log.info("video context created use 2d"),Ir.addSuccessEvent({key:512701})}})],MU.prototype,"create"),Cc([yu("created",Xn.INIT,{ignoreError:!0,sync:!0})],MU.prototype,"destroy");var f4=x7();if(typeof navigator<"u"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:f4,exposeOrigin:!0,permittedOrigins:["*"]})}catch{}var IEA=async function(t){let i=null;const r=dEA(t);Wo.info(`getDisplayMedia with constraints: ${JSON.stringify(r)}`);const l=await navigator.mediaDevices.getDisplayMedia(r);t.systemAudio&&l.getAudioTracks().length===0&&(r4&&tD<74||ld||sC)&&Wo.warn("Your browser not support capture system audio");const I=l.getVideoTracks()[0];if(I){if(t.frameRate)try{await I.applyConstraints({frameRate:{min:t.frameRate,ideal:t.frameRate},width:t.width,height:t.height})}catch(h){Wo.warn(`screen applyConstraints failed: ${h}`)}t.captureElement&&await uEA(I,t.captureElement)}if(t.audio){const h=EEA(t);Wo.info(`getUserMedia with constraints: ${JSON.stringify(h)}`),i=await navigator.mediaDevices.getUserMedia(h),l.addTrack(i.getAudioTracks()[0])}return l};async function uEA(t,i){var r;if("CropTarget"in window&&"fromElement"in CropTarget&&pv(t.cropTo))try{if(((r=t.getCaptureHandle())==null?void 0:r.handle)!==f4)return;const l=await CropTarget.fromElement(i);await t.cropTo(l)}catch(l){Wo.warn(`cropTo target failed ${l}`)}}function EEA(t){const i={echoCancellation:t.echoCancellation,autoGainControl:t.autoGainControl,noiseSuppression:t.noiseSuppression,sampleRate:t.sampleRate,channelCount:t.channelCount};return $n(t.microphoneId)||(i.deviceId=t.microphoneId),{audio:i,video:!1}}function dEA(t){const i={preferCurrentTab:t.preferDisplaySurface==="current-tab"||!!t.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},r={width:ld?{max:t.width}:{ideal:t.width,max:t.width},height:ld?{max:t.height}:{ideal:t.height,max:t.height},frameRate:t.frameRate,displaySurface:t.preferDisplaySurface||"monitor"};if(i.video=r,t.systemAudio){const{echoCancellation:l=!0,noiseSuppression:I=!1,autoGainControl:h=!1}=t;i.audio={echoCancellation:l,noiseSuppression:I,autoGainControl:h,sampleRate:48e3}}return i}var CEA=IEA,hEA=class extends fV{constructor(t){super(t,2),he(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600}),he(this,"objectFit","contain"),he(this,"isScreen",!0),this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var t,i;try{return f4===((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:l,audioTrack:I,videoTrack:h,captureElement:f,preferDisplaySurface:w}){var _;try{const b=Yc();let U;return h||I?(U=new MediaStream,h&&U.addTrack(h),I&&U.addTrack(I)):(U=await CEA({audio:!1,systemAudio:t,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:i,echoCancellation:r,noiseSuppression:l,captureElement:f,preferDisplaySurface:w}),this.sourceTrack=U.getVideoTracks()[0]),await this.setInputMediaStreamTrack(U.getVideoTracks()[0]),ps.emit(mn.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Yc()-b,profile:this.profile,room:(_=this.manager)==null?void 0:_.room}),U}catch(b){throw this.log.error(`getDisplayMedia error observed ${b}`),b instanceof ml?b:new ml({code:qg.INITIALIZE_FAILED,name:b.name,message:b.message})}}async switchDevice(t){throw new Error("Method not implemented.")}};function BEA(t=30,i=2){return mV((r,l)=>function(...I){return new Promise((h,f)=>{const w=setTimeout(()=>{const _=new ml({code:qg.API_CALL_TIMEOUT,message:`checkPendingPromise ${l}() timeout ${t}s`});(this.log||this._log||Wo).warn(_),i===2?f(_):i===1&&h()},1e3*t);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(w),r.apply(this,I).then(h,f).finally(()=>{clearTimeout(w),this._checkPendingPromiseSet&&w&&this._checkPendingPromiseSet.delete(w)})})})}Cc([C$(function(t){this.setContentHint(t.contentHint||"detail")})],hEA.prototype,"capture");var y_=class eW extends p4{constructor(i,r,l){super({userId:r.userId,sdkAppId:i.sdkAppId,mediaType:l,room:i}),this.room=i,this.user=r,he(this,"tinyId"),he(this,"isRemote",!0),he(this,"jitterBufferDelay",0),he(this,"availableState"),he(this,"remotePublishState"),he(this,"_triggerCheckDecodeSubject",p$(mE(this,eW.STATE_SUBSCRIBE))),he(this,"ignoreUpdatePlayingState"),this.tinyId=r.tinyId,this.availableState=new Xn(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new Xn(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),$C(Q$(mE(this,Xn.STATECHANGED),mE(this.remotePublishState,Xn.STATECHANGED)),m$(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Nv(w=>{this.availableState.state!==(w?Xn.ON:Xn.OFF)&&(this.availableState.state=w?Xn.ON:Xn.OFF),this.isRemotePublished&&this.ignoreUpdatePlayingState||this.updatePlayingState(w)}));const I=$C(mE(this.player,Vn.ERROR),z_(w=>w.code===MediaError.MEDIA_ERR_DECODE)),h=$C(PuA(5e3),z_(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived||!this.isRemotePublished?!1:!(this.player.isPlaying||(this.kind===Zt.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0))||(this.reportDecodeResult(!0),!1))),f=$C(UuA(I,h),nT(mE(this,Xn.INIT)));$C(this._triggerCheckDecodeSubject,z_(()=>!this.ignoreDecodeError),D$(f),Nv(w=>{this.reportDecodeResult(!1,w)}))}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,l,I;return(I=(l=(r=(i=this.room)==null?void 0:i.networkQuality)==null?void 0:r.hadRecentBadDownlink)==null?void 0:l.call(r,2))!=null&&I||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===eW.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Xn.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 l,I;const h=this.kind===Zt.AUDIO;if(Ir[i?"addSuccessEvent":"addFailedEvent"]({key:h?504700:514702}),!h){const f=((l=this.room)==null?void 0:l.downlinkVideoCodec.toUpperCase())||"H264";Ir[i?"addSuccessEvent":"addFailedEvent"]({key:J7[`DECODE_${f}_RESULT`]}),i||this.log.warn(`${(I=this.room)==null?void 0:I.downlinkVideoCodec} decode failed`)}i||(Ir.addEnum({key:h?504701:514703,value:a4()}),oh.uploadEvent({log:`stat-decode-failed-${this.kind}-${k7()||U7()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===Zt.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?Xn.ON:Xn.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};he(y_,"STATE_SUBSCRIBE","subscribe"),Cc([BEA(5,1)],y_.prototype,"waitHasMediaTrack"),Cc([yu(Xn.INIT,y_.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),ps.emit(mn.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),h$(521716,!1)],y_.prototype,"subscribe"),Cc([yu(y_.STATE_SUBSCRIBE,Xn.INIT,{sync:!0,success(){this.log.info("unsubscribed"),ps.emit(mn.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],y_.prototype,"unsubscribe");var n3=new Map;function Ec(t,i){const r=nB(Rn({},i),{timestamp:VW()});n3.has(t)?n3.get(t).push(r):n3.set(t,[r])}ps.on(mn.JOIN_SUCCESS,({room:t})=>{Ec(t.userId,{eventId:32788})}),ps.on(mn.LEAVE_START,({room:t})=>{Ec(t.userId,{eventId:32789})}),ps.on(mn.LOCAL_TRACK_PUBLISHED,({track:t})=>{if(t.room){let i=32769;t.mediaType===4?i=32768:t.mediaType===2&&(i=32805),Ec(t.room.userId,{eventId:i})}}),ps.on(mn.LOCAL_TRACK_UNPUBLISHED,({track:t})=>{if(t.room){let i=32771;t.mediaType===4?i=32770:t.mediaType===2&&(i=32806),Ec(t.room.userId,{eventId:i})}}),ps.on(mn.TRACK_MUTED,({track:t})=>{t.room&&(t.kind===Zt.AUDIO?Ec(t.room.userId,{eventId:t.isRemote?32785:32772,remoteUserId:t.isRemote?t.userId:void 0}):Ec(t.room.userId,{eventId:t.isRemote?32784:32773,remoteUserId:t.isRemote?t.userId:void 0}))}),ps.on(mn.TRACK_UNMUTED,({track:t})=>{t.room&&(t.kind===Zt.AUDIO?Ec(t.room.userId,{eventId:t.isRemote?32787:32774,remoteUserId:t.isRemote?t.userId:void 0}):Ec(t.room.userId,{eventId:t.isRemote?32786:32775,remoteUserId:t.isRemote?t.userId:void 0}))}),ps.on(mn.REMOTE_TRACK_SUBSCRIBED,({track:t})=>{t.room&&(t.mediaType===1&&Ec(t.room.userId,{eventId:32777,remoteUserId:t.userId}),t.mediaType===4&&Ec(t.room.userId,{eventId:32776,remoteUserId:t.userId}),t.mediaType===8&&Ec(t.room.userId,{eventId:32803,remoteUserId:t.userId}))}),ps.on(mn.REMOTE_TRACK_UNSUBSCRIBED,({track:t})=>{t.room&&(t.mediaType===1&&Ec(t.room.userId,{eventId:32779,remoteUserId:t.userId}),t.mediaType===4&&Ec(t.room.userId,{eventId:32778,remoteUserId:t.userId}),t.mediaType===8&&Ec(t.room.userId,{eventId:32804,remoteUserId:t.userId}))}),ps.on(mn.SWITCH_DEVICE_SUCCESS,({track:t})=>{t.room&&Ec(t.room.userId,{eventId:t.kind===Zt.VIDEO?32780:32781})}),ps.on(mn.LOCAL_TRACK_REPLACED,({track:t})=>{t.room&&Ec(t.room.userId,{eventId:t.kind===Zt.VIDEO?32782:32783})}),ps.on(mn.SIGNAL_CONNECTION_STATE_CHANGED,({room:t,prevState:i,state:r})=>{let l;switch(r){case"CONNECTED":l=i==="RECONNECTING"?32795:32791;break;case"DISCONNECTED":l=i==="RECONNECTING"?32796:32790;break;case"RECONNECTING":l=32794}l&&Ec(t.userId,{eventId:l})}),ps.on(mn.PEER_CONNECTION_STATE_CHANGED,({room:t,prevState:i,state:r,remoteUserId:l})=>{const I=!!l;let h;switch(r){case"CONNECTED":h=i==="RECONNECTING"?I?32801:32798:I?32793:32792;break;case"DISCONNECTED":i==="RECONNECTING"&&(h=I?32802:32799);break;case"RECONNECTING":h=I?32800:32797}h&&Ec(t.userId,{eventId:h,remoteUserId:l})}),ps.on(mn.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:t,userId:i,remoteUserId:r,codec:l,isHWCodec:I,prevImplementation:h,streamType:f})=>{let w=I?1:0;h||(w=I?3:2);const _={H264:0,H265:1,VP8:2}[l.toUpperCase()],b={eventId:4004,param1:w,param2:_,streamType:f||2};r&&(b.remoteUserId=r,b.eventId=4005),Ec(i,b),Ir.addEnum({key:r?514701:513701,value:w}),Ir.addEnum({key:r?514700:513700,value:_})}),ps.on(mn.LOCAL_TRACK_RECAPTURE,({track:t,error:i})=>{if(t.userId){const r={eventId:2003,param1:0};t.kind===Zt.AUDIO?(r.streamType=1,i&&(r.param1=2)):(r.streamType=t.streamType==="auxiliary"?7:2,i&&(r.param1=8)),Ec(t.userId,r)}});IT(FU());IT(FU());var r3=0,R$=class w${constructor(i){this.core=i,he(this,"seq"),he(this,"log"),he(this,"localMixVideoTrack",null),he(this,"systemAudioTrackList",{}),he(this,"_mixVideoConfig"),he(this,"onScreenShareStop"),he(this,"eventListeners",new Map),r3+=1,this.seq=r3,this.log=i.log.createChild({id:`${this.getAlias()}${r3}`}),this.log.info("created")}getName(){return w$.Name}getAlias(){return"vmix"}getValidateRule(i){switch(i){case"start":return QcA(this.core);case"update":return pcA(this.core);case"stop":return mcA(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:l}=i,I=await this.parseMixOptions(i);return l&&(this.onScreenShareStop=l,this._mixVideoConfig.onScreenShareStop=l),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:I}}async update(i){const{RtcError:r,ErrorCode:l}=this.core.errorModule;if(!this.localMixVideoTrack)throw new r({code:l.INVALID_OPERATION,message:"mixTrack doesn't initialize!"});i=this.core.utils.deepCloneBasic(i);const{view:I}=i,h=await this.parseMixOptions(i);return await this._updatePreview({view:I,track:this.localMixVideoTrack,prevConfig:this._mixVideoConfig}),this.core.utils.isUndefined(I)||(this._mixVideoConfig.view=I),{track:this.localMixVideoTrack.outMediaTrack,systemAudioTrackList:this.systemAudioTrackList,result:h}}stop(){var i;this.eventListeners.forEach((r,l)=>{this.removeEventListeners(l)}),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:l}=this.core.errorModule;if(!this.localMixVideoTrack||!this._mixVideoConfig)return{successOptions:{},failedDetails:[]};const I=[],h=Rn({},i),{canvasInfo:f,camera:w,screen:_,text:b,image:U,video:j}=i;f&&this.parseCanvasOptions(f);let IA=0,nA=0;const mA=[{key:"camera",options:w,parser:this.parseCameraOptions.bind(this)},{key:"screen",options:_,parser:this.parseScreenOptions.bind(this)},{key:"text",options:b,parser:this.parseTextOptions.bind(this)},{key:"image",options:U,parser:this.parseImageOptions.bind(this)},{key:"video",options:j,parser:this.parseVideoOptions.bind(this)}];for(const{key:lA,options:cA,parser:TA}of mA)if(cA){IA++;const WA=await TA(this.localMixVideoTrack,cA,this._mixVideoConfig[lA]||[]);this._mixVideoConfig[lA]=WA.finalOptions,h[lA]=WA.finalOptions,WA.errors.length>0&&(I.push(...WA.errors),WA.errors.length===cA.length&&nA++)}if(nA>0&&nA===IA)throw new r({code:l.INVALID_PARAMETER,message:"all sources mix failed",data:{failedDetails:I}});return{successOptions:h,failedDetails:I}}parseCanvasOptions(i){if(!this.localMixVideoTrack||!this._mixVideoConfig)return;const{canvasColor:r,width:l,height:I,frameRate:h}=i;r&&this.localMixVideoTrack.setMixBackground(r),h&&this.localMixVideoTrack.setFps(h),this.localMixVideoTrack.resizeMixCanvas(l,I),this._mixVideoConfig.canvasInfo=i}prepareSourceOptions(i,r){const l=new Set(i.map(I=>I.id));return{removeIdList:r.filter(I=>!l.has(I.id)).map(I=>I.id),preOptionsMap:new Map(r.map(I=>[I.id,I]))}}recordSourceError(i,r,l,I,h){h.push({id:i,error:r}),l.has(i)&&I.push(l.get(i))}async parseCameraOptions(i,r,l=[]){const{removeIdList:I,preOptionsMap:h}=this.prepareSourceOptions(r,l);this.log.debug("videomixer removeIdList",r,I,h);for(const _ of I)i.removeCameraSource(_),this.removeEventListeners(_);const f=[],w=[];for(const _ of r)try{await this.processSingleCameraSource(i,_),f.push(_)}catch(b){this.recordSourceError(_.id,b,h,f,w)}return{finalOptions:f,errors:w}}async processSingleCameraSource(i,r){const{id:l}=r;this.resolveCameraInternalTrack(i,r),i.inputLocalVideoTracks.has(l)?await this.updateExistingCameraSource(i,r):await this.addNewCameraSource(i,r)}async updateExistingCameraSource(i,r){var l,I;const{id:h,layout:f,profile:w}=r,_=(l=i.inputLocalVideoTracks.get(h))==null?void 0:l.mediaTrack;await this.updateCameraProfile(r);const b=(I=i.inputLocalVideoTracks.get(h))==null?void 0:I.mediaTrack,U=this.resolveVideoProfile(w);b!==_?i.updateCameraSource(h,f,b,U):i.updateCameraSource(h,f,null,U)}resolveCameraInternalTrack(i,r){var l;const{id:I,layout:h,profile:f,useInternalTrack:w}=r;if(w){if(i.inputLocalVideoTracks.get(I))return r;this.log.debug("resolve camera internal track",r,r.id,r.videoTrack),(l=this.core.trtc.localVideoTrack)!=null&&l.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(I);const _=U=>{var j,IA;const nA=i.inputLocalVideoTracks.get(I);this.log.debug(`camera internal track preprocessed event from ${(j=U.room)==null?void 0:j.userId} to ${this.core.room.userId}, is same instance:${U.room===this.core.room} ,new track:`,U.mediaTrack,nA?.mediaTrack,i.outMediaTrack),((IA=U.mediaTrack)==null?void 0:IA.kind)!==Zt.AUDIO&&nA?.mediaTrack!==U.mediaTrack&&i.outMediaTrack!==U.mediaTrack&&U.room===this.core.room?nA&&U.mediaTrack&&i.updateCameraSource(I,h,U.mediaTrack):this.log.debug("camera internal track preprocessed event return")},b=U=>{var j,IA,nA,mA,lA,cA,TA,WA;const Ee=i.inputLocalVideoTracks.get(I);this.log.debug(`camera internal track stopped ${((j=U.track)==null?void 0:j.mediaTrack)===Ee?.mediaTrack||((IA=U.track)==null?void 0:IA.outMediaTrack)===Ee?.mediaTrack||((nA=U.track)==null?void 0:nA.outMediaTrack)===i.outMediaTrack}`,(mA=U.track)==null?void 0:mA.mediaTrack,(lA=U.track)==null?void 0:lA.outMediaTrack,Ee?.mediaTrack,i.outMediaTrack),!Ee||((cA=U.track)==null?void 0:cA.mediaTrack)!==Ee?.mediaTrack&&((TA=U.track)==null?void 0:TA.outMediaTrack)!==Ee?.mediaTrack&&((WA=U.track)==null?void 0:WA.outMediaTrack)!==i.outMediaTrack||i.updateCameraSource(I,h,this.createPlaceholderVideoTrack())};this.core.innerEmitter.on("118",_),this.core.innerEmitter.on("117",b),this.eventListeners.has(I)||this.eventListeners.set(I,{}),this.eventListeners.get(I).captureSuccess=()=>{this.core.innerEmitter.off("118",_)},this.eventListeners.get(I).trackStop=()=>{this.core.innerEmitter.off("117",b)}}return r}async addNewCameraSource(i,r){const{id:l,layout:I,useInternalTrack:h}=r,f=await this.captureCamera(r);try{i.addCameraSource(l,f,I)}catch(w){throw f.close(),w}}resolveVideoProfile(i){if(!this.core.utils.isUndefined(i))return this.core.utils.isString(i)?this.core.constants.videoProfileMap[i]:i}async parseScreenOptions(i,r,l=[]){const{removeIdList:I,preOptionsMap:h}=this.prepareSourceOptions(r,l);for(const _ of I)i.removeScreenSource(_),this.removeSystemAudioTrack(_),this.removeEventListeners(_);const f=[],w=[];for(const _ of r)try{await this.processSingleScreenSource(i,_,h),f.push(_)}catch(b){this.recordSourceError(_.id,b,h,f,w)}return{finalOptions:f,errors:w}}async processSingleScreenSource(i,r,l){const{id:I,layout:h,useInternalTrack:f}=r;this.resolveScreenInternalTrack(i,r);const w=l.get(I),_=i.inputLocalScreenTracks.has(I),b=!w?.systemAudio&&r.systemAudio;_&&!b?this.updateExistingScreenSource(i,I,h,w,r):await this.addNewScreenSource(i,r,w)}updateExistingScreenSource(i,r,l,I,h){i.updateScreenSource(r,l),I?.systemAudio&&!h.systemAudio&&this.removeSystemAudioTrack(r)}resolveScreenInternalTrack(i,r){var l,I;const{id:h,layout:f,useInternalTrack:w}=r;if(w){if(i.inputLocalScreenTracks.get(h))return r;this.log.debug("resolve screen internal track",r,r.id,r.videoTrack),(l=this.core.trtc.localScreenTrack)!=null&&l.sourceTrack?(r.videoTrack=this.core.trtc.localScreenTrack.sourceTrack,r.profile=this.core.trtc.localScreenTrack.profile,(I=this.core.trtc.localScreenAudioTrack)!=null&&I.mediaTrack&&(r.audioTrack=this.core.trtc.localScreenAudioTrack.mediaTrack),delete r.captureElement,delete r.preferDisplaySurface,delete r.systemAudio):r.videoTrack=this.createPlaceholderVideoTrack(),this.removeEventListeners(h);const _=U=>{var j,IA,nA,mA,lA,cA,TA;const WA=i.inputLocalScreenTracks.get(h);this.log.debug(`screen internal track capture success event from ${(j=U.room)==null?void 0:j.userId} to ${this.core.room.userId}, is same instance:${U.room===this.core.room}, isScreen:${(IA=U.track)==null?void 0:IA.isScreen} kind:${(nA=U.track)==null?void 0:nA.kind}`,WA,U.track.sourceTrack),(mA=U.track)!=null&&mA.isScreen&&((lA=U.track)==null?void 0:lA.kind)!==Zt.AUDIO&&WA&&(this.log.debug("screen internal track capture success event ",(cA=U.track)==null?void 0:cA.sourceTrack),(TA=U.track)!=null&&TA.sourceTrack&&i.updateScreenSource(h,f,U.track.sourceTrack))},b=U=>{var j,IA;const nA=i.inputLocalScreenTracks.get(h);this.log.debug(`screen internal track stopped, is same track:${((j=U.track)==null?void 0:j.sourceTrack)===nA?.mediaTrack}, isScreen:${U.track.isScreen}`),U.track.isScreen&&((IA=U.track)==null?void 0:IA.sourceTrack)===nA?.mediaTrack&&i.updateScreenSource(h,f,this.createPlaceholderVideoTrack())};this.core.innerEmitter.on("102",_),this.core.innerEmitter.on("117",b),this.eventListeners.has(h)||this.eventListeners.set(h,{}),this.eventListeners.get(h).captureSuccess=()=>{this.core.innerEmitter.off("102",_)},this.eventListeners.get(h).trackStop=()=>{this.core.innerEmitter.off("117",b)}}return r}async addNewScreenSource(i,r,l){const{id:I,layout:h}=r,f=await this.captureScreen(r);!l?.systemAudio&&r.systemAudio&&i.inputLocalScreenTracks.has(I)&&i.removeScreenSource(I);try{i.addScreenSource(I,f,h)}catch(w){throw f.close(),w}}async parseTextOptions(i,r,l=[]){const{removeIdList:I,preOptionsMap:h}=this.prepareSourceOptions(r,l);for(const _ of I)i.removeTextSource(_);const f=[],w=[];for(const _ of r)try{h.has(_.id)?i.updateTextSource(_):i.addTextSource(_),f.push(_)}catch(b){this.recordSourceError(_.id,b,h,f,w)}return{finalOptions:f,errors:w}}async parseImageOptions(i,r,l=[]){const{removeIdList:I,preOptionsMap:h}=this.prepareSourceOptions(r,l);for(const _ of I)i.removeImageSource(_);const f=[],w=[];for(const _ of r)try{await this.processSingleImageSource(i,_,h),f.push(_)}catch(b){this.recordSourceError(_.id,b,h,f,w)}return{finalOptions:f,errors:w}}async processSingleImageSource(i,r,l){const{id:I,url:h,layout:f}=r,w=l.get(I);if(w){let _;w.url!==h&&(_=await this.core.utils.loadImage(h)),i.updateImageSource(I,f,_)}else{const _=await this.core.utils.loadImage(h);i.addImageSource(I,_,f)}}async parseVideoOptions(i,r,l=[]){const{removeIdList:I,preOptionsMap:h}=this.prepareSourceOptions(r,l);for(const _ of I)i.removeVideoSource(_);const f=[],w=[];for(const _ of r)try{await this.processSingleVideoSource(i,_,h),f.push(_)}catch(b){this.recordSourceError(_.id,b,h,f,w)}return{finalOptions:f,errors:w}}async processSingleVideoSource(i,r,l){const{id:I,url:h,layout:f}=r,w=l.get(I);if(w){let _;w.url!==h&&(_=await this.core.utils.loadVideo(h)),i.updateVideoSource(I,f,_)}else{const _=await this.core.utils.loadVideo(h);i.addVideoSource(I,_,f)}}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 l=null;const I=1e3/30,h=i.captureStream(30).getVideoTracks()[0],f=()=>{r.fillStyle="rgba(255, 255, 255, 0)",r.fillRect(0,0,i.width,i.height),h.readyState==="live"&&(l=setTimeout(f,I))};f();const w=h.stop.bind(h);return h.stop=()=>{l&&(clearTimeout(l),l=null),w()},h}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:l,videoTrack:I,profile:h}=i,f=new this.core.LocalVideoTrack;f.log.id+=`-${r}`;const w={};if(l?w.deviceId=l:this.core.utils.isUndefined(I)||(w.customSource=I),!this.core.utils.isUndefined(h)){const _=this.resolveVideoProfile(h);_&&f.setProfile(_)}return await f.capture(w),f}async updateCameraProfile(i){var r;const{id:l,cameraId:I,videoTrack:h,profile:f}=i,w=(r=this.localMixVideoTrack)==null?void 0:r.inputLocalVideoTracks.get(l);if(w&&(I?await w.switchDevice(I):this.core.utils.isUndefined(h)||await w.setInputMediaStreamTrack(h),!this.core.utils.isUndefined(f))){const _=this.resolveVideoProfile(f);_&&w.setProfile(_),I&&w.isNeedToSwitchDevice(I)||await w.applyProfile()}}async captureScreen(i){const{id:r,profile:l,captureElement:I,preferDisplaySurface:h,systemAudio:f,videoTrack:w,audioTrack:_}=i,b=new this.core.LocalScreenTrack;b.log.id+=`-${r}`;const U={captureElement:I,preferDisplaySurface:h,systemAudio:f,videoTrack:w,audioTrack:_};if(!this.core.utils.isUndefined(l))if(this.core.utils.isString(l)){const IA=this.core.constants.screenProfileMap[l];IA&&b.setProfile(IA)}else b.setProfile(l);const j=await b.capture(U);return f&&j.getAudioTracks().length>0?(this.systemAudioTrackList[r]=j.getAudioTracks()[0],this.log.info(`${r} system audio track captured`)):this.removeSystemAudioTrack(r),b.mediaTrack.addEventListener(this.core.constants.NAME.ENDED,()=>{this.handleScreenShareEnded(r)}),b}handleScreenShareEnded(i){var r,l,I;(r=this.localMixVideoTrack)==null||r.removeScreenSource(i),(l=this._mixVideoConfig)!=null&&l.screen&&(this._mixVideoConfig.screen=this._mixVideoConfig.screen.filter(h=>h.id!==i)),(I=this.onScreenShareStop)==null||I.call(this,i)}async _updatePreview({view:i,track:r,prevConfig:l}){if(this.core.utils.isUndefined(i)&&l?.view){const I=this.core.utils.getViewListFromView(l.view);return void(I.length>0&&await r.play(I))}if(!this.core.utils.isUndefined(i)){const I=this.core.utils.getViewListFromView(i);I.length>0?await r.play(I):r.stop()}}removeSystemAudioTrack(i){const r=this.systemAudioTrackList[i];r&&(r.stop(),this.log.info(`${i} system audio track stop`),delete this.systemAudioTrackList[i])}};he(R$,"Name","VideoMixer");var _$=R$,QEA=_$;const pEA=Object.freeze(Object.defineProperty({__proto__:null,VideoMixer:_$,default:QEA},Symbol.toStringTag,{value:"Module"})),mEA=GU(pEA);var fEA=RL.exports,VZ;function yEA(){return VZ||(VZ=1,function(t,i){(function(r,l){l(i,wrA(),eaA,HgA,AcA,acA,mEA)})(fEA,function(r,l,I,h,f,w,_){function b(q){return q&&typeof q=="object"&&"default"in q?q:{default:q}}var U=b(l),j=b(_),IA=function(q,L){return IA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(oA,G){oA.__proto__=G}||function(oA,G){for(var x in G)Object.prototype.hasOwnProperty.call(G,x)&&(oA[x]=G[x])},IA(q,L)},nA=function(){return nA=Object.assign||function(q){for(var L,oA=1,G=arguments.length;oA<G;oA++)for(var x in L=arguments[oA])Object.prototype.hasOwnProperty.call(L,x)&&(q[x]=L[x]);return q},nA.apply(this,arguments)};function mA(q,L,oA,G){var x,tA=arguments.length,uA=tA<3?L:G===null?G=Object.getOwnPropertyDescriptor(L,oA):G;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")uA=Reflect.decorate(q,L,oA,G);else for(var wA=q.length-1;wA>=0;wA--)(x=q[wA])&&(uA=(tA<3?x(uA):tA>3?x(L,oA,uA):x(L,oA))||uA);return tA>3&&uA&&Object.defineProperty(L,oA,uA),uA}function lA(q,L,oA,G){return new(oA||(oA=Promise))(function(x,tA){function uA(me){try{$A(G.next(me))}catch(p){tA(p)}}function wA(me){try{$A(G.throw(me))}catch(p){tA(p)}}function $A(me){var p;me.done?x(me.value):(p=me.value,p instanceof oA?p:new oA(function(B){B(p)})).then(uA,wA)}$A((G=G.apply(q,[])).next())})}function cA(q,L){var oA,G,x,tA,uA={label:0,sent:function(){if(1&x[0])throw x[1];return x[1]},trys:[],ops:[]};return tA={next:wA(0),throw:wA(1),return:wA(2)},typeof Symbol=="function"&&(tA[Symbol.iterator]=function(){return this}),tA;function wA($A){return function(me){return function(p){if(oA)throw new TypeError("Generator is already executing.");for(;tA&&(tA=0,p[0]&&(uA=0)),uA;)try{if(oA=1,G&&(x=2&p[0]?G.return:p[0]?G.throw||((x=G.return)&&x.call(G),0):G.next)&&!(x=x.call(G,p[1])).done)return x;switch(G=0,x&&(p=[2&p[0],x.value]),p[0]){case 0:case 1:x=p;break;case 4:return uA.label++,{value:p[1],done:!1};case 5:uA.label++,G=p[1],p=[0];continue;case 7:p=uA.ops.pop(),uA.trys.pop();continue;default:if(x=uA.trys,!((x=x.length>0&&x[x.length-1])||p[0]!==6&&p[0]!==2)){uA=0;continue}if(p[0]===3&&(!x||p[1]>x[0]&&p[1]<x[3])){uA.label=p[1];break}if(p[0]===6&&uA.label<x[1]){uA.label=x[1],x=p;break}if(x&&uA.label<x[2]){uA.label=x[2],uA.ops.push(p);break}x[2]&&uA.ops.pop(),uA.trys.pop();continue}p=L.call(q,uA)}catch(B){p=[6,B],G=0}finally{oA=x=0}if(5&p[0])throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}([$A,me])}}}function TA(q){var L=typeof Symbol=="function"&&Symbol.iterator,oA=L&&q[L],G=0;if(oA)return oA.call(q);if(q&&typeof q.length=="number")return{next:function(){return q&&G>=q.length&&(q=void 0),{value:q&&q[G++],done:!q}}};throw new TypeError(L?"Object is not iterable.":"Symbol.iterator is not defined.")}function WA(q,L,oA){if(oA||arguments.length===2)for(var G,x=0,tA=L.length;x<tA;x++)!G&&x in L||(G||(G=Array.prototype.slice.call(L,0,x)),G[x]=L[x]);return q.concat(G||Array.prototype.slice.call(L))}function Ee(q){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var L,oA=q[Symbol.asyncIterator];return oA?oA.call(q):(q=TA(q),L={},G("next"),G("throw"),G("return"),L[Symbol.asyncIterator]=function(){return this},L);function G(x){L[x]=q[x]&&function(tA){return new Promise(function(uA,wA){(function($A,me,p,B){Promise.resolve(B).then(function(v){$A({value:v,done:p})},me)})(uA,wA,(tA=q[x](tA)).done,tA.value)})}}}var de=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof mg<"u"?mg:typeof self<"u"?self:{};function Pe(q,L){return q(L={exports:{}},L.exports),L.exports}var pe,gt,pt,We,Dt,Kt,ut,ge,XA=Pe(function(q){var L=Object.prototype.hasOwnProperty,oA="~";function G(){}function x($A,me,p){this.fn=$A,this.context=me,this.once=p||!1}function tA($A,me,p,B,v){if(typeof p!="function")throw new TypeError("The listener must be a function");var N=new x(p,B||$A,v),O=oA?oA+me:me;return $A._events[O]?$A._events[O].fn?$A._events[O]=[$A._events[O],N]:$A._events[O].push(N):($A._events[O]=N,$A._eventsCount++),$A}function uA($A,me){--$A._eventsCount==0?$A._events=new G:delete $A._events[me]}function wA(){this._events=new G,this._eventsCount=0}Object.create&&(G.prototype=Object.create(null),new G().__proto__||(oA=!1)),wA.prototype.eventNames=function(){var $A,me,p=[];if(this._eventsCount===0)return p;for(me in $A=this._events)L.call($A,me)&&p.push(oA?me.slice(1):me);return Object.getOwnPropertySymbols?p.concat(Object.getOwnPropertySymbols($A)):p},wA.prototype.listeners=function($A){var me=oA?oA+$A:$A,p=this._events[me];if(!p)return[];if(p.fn)return[p.fn];for(var B=0,v=p.length,N=new Array(v);B<v;B++)N[B]=p[B].fn;return N},wA.prototype.listenerCount=function($A){var me=oA?oA+$A:$A,p=this._events[me];return p?p.fn?1:p.length:0},wA.prototype.emit=function($A,me,p,B,v,N){var O=oA?oA+$A:$A;if(!this._events[O])return!1;var z,X,rA=this._events[O],DA=arguments.length;if(rA.fn){switch(rA.once&&this.removeListener($A,rA.fn,void 0,!0),DA){case 1:return rA.fn.call(rA.context),!0;case 2:return rA.fn.call(rA.context,me),!0;case 3:return rA.fn.call(rA.context,me,p),!0;case 4:return rA.fn.call(rA.context,me,p,B),!0;case 5:return rA.fn.call(rA.context,me,p,B,v),!0;case 6:return rA.fn.call(rA.context,me,p,B,v,N),!0}for(X=1,z=new Array(DA-1);X<DA;X++)z[X-1]=arguments[X];rA.fn.apply(rA.context,z)}else{var GA,VA=rA.length;for(X=0;X<VA;X++)switch(rA[X].once&&this.removeListener($A,rA[X].fn,void 0,!0),DA){case 1:rA[X].fn.call(rA[X].context);break;case 2:rA[X].fn.call(rA[X].context,me);break;case 3:rA[X].fn.call(rA[X].context,me,p);break;case 4:rA[X].fn.call(rA[X].context,me,p,B);break;default:if(!z)for(GA=1,z=new Array(DA-1);GA<DA;GA++)z[GA-1]=arguments[GA];rA[X].fn.apply(rA[X].context,z)}}return!0},wA.prototype.on=function($A,me,p){return tA(this,$A,me,p,!1)},wA.prototype.once=function($A,me,p){return tA(this,$A,me,p,!0)},wA.prototype.removeListener=function($A,me,p,B){var v=oA?oA+$A:$A;if(!this._events[v])return this;if(!me)return uA(this,v),this;var N=this._events[v];if(N.fn)N.fn!==me||B&&!N.once||p&&N.context!==p||uA(this,v);else{for(var O=0,z=[],X=N.length;O<X;O++)(N[O].fn!==me||B&&!N[O].once||p&&N[O].context!==p)&&z.push(N[O]);z.length?this._events[v]=z.length===1?z[0]:z:uA(this,v)}return this},wA.prototype.removeAllListeners=function($A){var me;return $A?(me=oA?oA+$A:$A,this._events[me]&&uA(this,me)):(this._events=new G,this._eventsCount=0),this},wA.prototype.off=wA.prototype.removeListener,wA.prototype.addListener=wA.prototype.on,wA.prefixed=oA,wA.EventEmitter=wA,q.exports=wA});r.TRTCVideoResolution=void 0,(pe=r.TRTCVideoResolution||(r.TRTCVideoResolution={}))[pe.TRTCVideoResolution_120_120=1]="TRTCVideoResolution_120_120",pe[pe.TRTCVideoResolution_160_160=3]="TRTCVideoResolution_160_160",pe[pe.TRTCVideoResolution_270_270=5]="TRTCVideoResolution_270_270",pe[pe.TRTCVideoResolution_480_480=7]="TRTCVideoResolution_480_480",pe[pe.TRTCVideoResolution_160_120=50]="TRTCVideoResolution_160_120",pe[pe.TRTCVideoResolution_240_180=52]="TRTCVideoResolution_240_180",pe[pe.TRTCVideoResolution_280_210=54]="TRTCVideoResolution_280_210",pe[pe.TRTCVideoResolution_320_240=56]="TRTCVideoResolution_320_240",pe[pe.TRTCVideoResolution_400_300=58]="TRTCVideoResolution_400_300",pe[pe.TRTCVideoResolution_480_360=60]="TRTCVideoResolution_480_360",pe[pe.TRTCVideoResolution_640_480=62]="TRTCVideoResolution_640_480",pe[pe.TRTCVideoResolution_960_720=64]="TRTCVideoResolution_960_720",pe[pe.TRTCVideoResolution_160_90=100]="TRTCVideoResolution_160_90",pe[pe.TRTCVideoResolution_256_144=102]="TRTCVideoResolution_256_144",pe[pe.TRTCVideoResolution_320_180=104]="TRTCVideoResolution_320_180",pe[pe.TRTCVideoResolution_480_270=106]="TRTCVideoResolution_480_270",pe[pe.TRTCVideoResolution_640_360=108]="TRTCVideoResolution_640_360",pe[pe.TRTCVideoResolution_960_540=110]="TRTCVideoResolution_960_540",pe[pe.TRTCVideoResolution_1280_720=112]="TRTCVideoResolution_1280_720",pe[pe.TRTCVideoResolution_1920_1080=114]="TRTCVideoResolution_1920_1080",r.TRTCVideoStreamType=void 0,(gt=r.TRTCVideoStreamType||(r.TRTCVideoStreamType={}))[gt.TRTCVideoStreamTypeBig=0]="TRTCVideoStreamTypeBig",gt[gt.TRTCVideoStreamTypeSmall=1]="TRTCVideoStreamTypeSmall",gt[gt.TRTCVideoStreamTypeSub=2]="TRTCVideoStreamTypeSub",r.TRTCVideoFillMode=void 0,(pt=r.TRTCVideoFillMode||(r.TRTCVideoFillMode={}))[pt.TRTCVideoFillMode_Fill=0]="TRTCVideoFillMode_Fill",pt[pt.TRTCVideoFillMode_Fit=1]="TRTCVideoFillMode_Fit",r.TRTCVideoMirrorType=void 0,(We=r.TRTCVideoMirrorType||(r.TRTCVideoMirrorType={}))[We.TRTCVideoMirrorType_Auto=0]="TRTCVideoMirrorType_Auto",We[We.TRTCVideoMirrorType_Enable=1]="TRTCVideoMirrorType_Enable",We[We.TRTCVideoMirrorType_Disable=2]="TRTCVideoMirrorType_Disable",r.TRTCBeautyStyle=void 0,(Dt=r.TRTCBeautyStyle||(r.TRTCBeautyStyle={}))[Dt.TRTCBeautyStyleSmooth=0]="TRTCBeautyStyleSmooth",Dt[Dt.TRTCBeautyStyleNature=1]="TRTCBeautyStyleNature",r.TRTCAppScene=void 0,(Kt=r.TRTCAppScene||(r.TRTCAppScene={}))[Kt.TRTCAppSceneVideoCall=0]="TRTCAppSceneVideoCall",Kt[Kt.TRTCAppSceneLIVE=1]="TRTCAppSceneLIVE",Kt[Kt.TRTCAppSceneAudioCall=2]="TRTCAppSceneAudioCall",Kt[Kt.TRTCAppSceneVoiceChatRoom=3]="TRTCAppSceneVoiceChatRoom",r.TRTCRoleType=void 0,(ut=r.TRTCRoleType||(r.TRTCRoleType={}))[ut.TRTCRoleAnchor=20]="TRTCRoleAnchor",ut[ut.TRTCRoleAudience=21]="TRTCRoleAudience",r.TRTCAudioQuality=void 0,(ge=r.TRTCAudioQuality||(r.TRTCAudioQuality={}))[ge.TRTCAudioQualitySpeech=1]="TRTCAudioQualitySpeech",ge[ge.TRTCAudioQualityDefault=2]="TRTCAudioQualityDefault",ge[ge.TRTCAudioQualityMusic=3]="TRTCAudioQualityMusic";var _e,je,Ut=function(q,L,oA,G,x){q===void 0&&(q=""),L===void 0&&(L=""),oA===void 0&&(oA=""),G===void 0&&(G=""),x===void 0&&(x=""),this.deviceId=q,this.deviceName=L,this.kind=oA,this.label=G,this.groupId=x};r.TRTCDeviceState=void 0,(_e=r.TRTCDeviceState||(r.TRTCDeviceState={}))[_e.TRTCDeviceStateAdd=0]="TRTCDeviceStateAdd",_e[_e.TRTCDeviceStateRemove=1]="TRTCDeviceStateRemove",_e[_e.TRTCDeviceStateActive=2]="TRTCDeviceStateActive",r.TRTCDeviceType=void 0,(je=r.TRTCDeviceType||(r.TRTCDeviceType={}))[je.TRTCDeviceTypeUnknow=-1]="TRTCDeviceTypeUnknow",je[je.TRTCDeviceTypeMic=0]="TRTCDeviceTypeMic",je[je.TRTCDeviceTypeSpeaker=1]="TRTCDeviceTypeSpeaker",je[je.TRTCDeviceTypeCamera=2]="TRTCDeviceTypeCamera";var gi,Fi=function(q,L,oA,G,x,tA,uA,wA,$A,me,p){q===void 0&&(q=0),L===void 0&&(L=""),oA===void 0&&(oA=""),G===void 0&&(G=0),x===void 0&&(x=""),tA===void 0&&(tA=r.TRTCRoleType.TRTCRoleAnchor),uA===void 0&&(uA=null),$A===void 0&&($A=null),me===void 0&&(me=null),p===void 0&&(p=30),this.sdkAppId=q,this.userId=L,this.userSig=oA,this.roomId=G,this.strRoomId=x,this.role=tA,this.privateMapKey=uA,this.streamId=$A,this.userDefineRecordId=me,this.frameWorkType=p},To=function(q,L,oA,G){q===void 0&&(q=r.TRTCVideoResolution.TRTCVideoResolution_640_360),L===void 0&&(L=r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape),oA===void 0&&(oA=15),G===void 0&&(G=550),this.videoResolution=q,this.resMode=L,this.videoFps=oA,this.videoBitrate=G};r.TRTCVideoRotation=void 0,(gi=r.TRTCVideoRotation||(r.TRTCVideoRotation={}))[gi.TRTCVideoRotation0=0]="TRTCVideoRotation0",gi[gi.TRTCVideoRotation90=1]="TRTCVideoRotation90",gi[gi.TRTCVideoRotation180=2]="TRTCVideoRotation180",gi[gi.TRTCVideoRotation270=3]="TRTCVideoRotation270";var to,Eo=function(q,L,oA){q===void 0&&(q=r.TRTCVideoRotation.TRTCVideoRotation0),L===void 0&&(L=r.TRTCVideoFillMode.TRTCVideoFillMode_Fit),oA===void 0&&(oA=r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),this.rotation=q,this.fillMode=L,this.mirrorType=oA};r.TRTCQuality=void 0,(to=r.TRTCQuality||(r.TRTCQuality={}))[to.TRTCQuality_Unknown=0]="TRTCQuality_Unknown",to[to.TRTCQuality_Excellent=1]="TRTCQuality_Excellent",to[to.TRTCQuality_Good=2]="TRTCQuality_Good",to[to.TRTCQuality_Poor=3]="TRTCQuality_Poor",to[to.TRTCQuality_Bad=4]="TRTCQuality_Bad",to[to.TRTCQuality_Vbad=5]="TRTCQuality_Vbad",to[to.TRTCQuality_Down=6]="TRTCQuality_Down";var Vs,ki,ns,jo=function(q,L){q===void 0&&(q=""),L===void 0&&(L=r.TRTCQuality.TRTCQuality_Unknown),this.userId=q,this.quality=L},$i=function(q,L){q===void 0&&(q=""),L===void 0&&(L=0),this.userId=q,this.volume=L},Wt=function(q,L,oA){q===void 0&&(q=0),L===void 0&&(L=0),oA===void 0&&(oA=null),this.appId=q,this.bizId=L,this.url=oA},io=function(q,L,oA,G,x,tA,uA){q===void 0&&(q=0),L===void 0&&(L=0),oA===void 0&&(oA=0),G===void 0&&(G=0),tA===void 0&&(tA=0),uA===void 0&&(uA=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.width=q,this.height=L,this.frameRate=oA,this.videoBitrate=G,this.audioBitrate=tA,this.streamType=uA},bi=function(q,L,oA,G,x,tA,uA,wA,$A,me,p,B,v,N){q===void 0&&(q=""),oA===void 0&&(oA=0),G===void 0&&(G=0),x===void 0&&(x=0),tA===void 0&&(tA=0),wA===void 0&&(wA=0),N===void 0&&(N=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),this.userId=q,this.width=oA,this.height=G,this.frameRate=x,this.videoBitrate=tA,this.audioBitrate=wA,this.streamType=N},vs=function(q,L,oA,G,x,tA,uA,wA,$A,me,p){q===void 0&&(q=0),L===void 0&&(L=0),x===void 0&&(x=0),tA===void 0&&(tA=0),uA===void 0&&(uA=0),wA===void 0&&(wA=[]),$A===void 0&&($A=0),me===void 0&&(me=[]),p===void 0&&(p=0),this.upLoss=q,this.downLoss=L,this.rtt=x,this.receivedBytes=tA,this.sentBytes=uA,this.localStatisticsArray=wA,this.localStatisticsArraySize=$A,this.remoteStatisticsArray=me,this.remoteStatisticsArraySize=p};r.TRTCVideoResolutionMode=void 0,(Vs=r.TRTCVideoResolutionMode||(r.TRTCVideoResolutionMode={}))[Vs.TRTCVideoResolutionModeLandscape=0]="TRTCVideoResolutionModeLandscape",Vs[Vs.TRTCVideoResolutionModePortrait=1]="TRTCVideoResolutionModePortrait",r.TRTCVideoQosPreference=void 0,(ki=r.TRTCVideoQosPreference||(r.TRTCVideoQosPreference={}))[ki.TRTCVideoQosPreferenceSmooth=1]="TRTCVideoQosPreferenceSmooth",ki[ki.TRTCVideoQosPreferenceClear=2]="TRTCVideoQosPreferenceClear",r.TRTCQosControlMode=void 0,(ns=r.TRTCQosControlMode||(r.TRTCQosControlMode={}))[ns.TRTCQosControlModeClient=0]="TRTCQosControlModeClient",ns[ns.TRTCQosControlModeServer=1]="TRTCQosControlModeServer";var HA,le,Ve=function(q,L){q===void 0&&(q=r.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear),L===void 0&&(L=r.TRTCQosControlMode.TRTCQosControlModeServer),this.preference=q,this.controlMode=L},Ft=function(q,L,oA,G){q===void 0&&(q=new ArrayBuffer(0)),L===void 0&&(L=0),oA===void 0&&(oA=0),G===void 0&&(G=0),this.buffer=q,this.length=L,this.width=oA,this.height=G};r.TRTCLogLevel=void 0,(HA=r.TRTCLogLevel||(r.TRTCLogLevel={}))[HA.TRTCLogLevelVerbose=0]="TRTCLogLevelVerbose",HA[HA.TRTCLogLevelDebug=1]="TRTCLogLevelDebug",HA[HA.TRTCLogLevelInfo=2]="TRTCLogLevelInfo",HA[HA.TRTCLogLevelWarn=3]="TRTCLogLevelWarn",HA[HA.TRTCLogLevelError=4]="TRTCLogLevelError",HA[HA.TRTCLogLevelFatal=5]="TRTCLogLevelFatal",HA[HA.TRTCLogLevelNone=6]="TRTCLogLevelNone",r.TRTCScreenCaptureSourceType=void 0,(le=r.TRTCScreenCaptureSourceType||(r.TRTCScreenCaptureSourceType={}))[le.TRTCScreenCaptureSourceTypeUnknown=-1]="TRTCScreenCaptureSourceTypeUnknown",le[le.TRTCScreenCaptureSourceTypeWindow=0]="TRTCScreenCaptureSourceTypeWindow",le[le.TRTCScreenCaptureSourceTypeScreen=1]="TRTCScreenCaptureSourceTypeScreen",le[le.TRTCScreenCaptureSourceTypeCustom=2]="TRTCScreenCaptureSourceTypeCustom";var nt,It=function(q,L,oA,G,x,tA){q===void 0&&(q=r.TRTCScreenCaptureSourceType.TRTCScreenCaptureSourceTypeUnknown),L===void 0&&(L=""),oA===void 0&&(oA=""),G===void 0&&(G=new Ft),x===void 0&&(x=new Ft),tA===void 0&&(tA=!1),this.type=q,this.sourceId=L,this.sourceName=oA,this.thumbBGRA=G,this.iconBGRA=x,this.isMinimizeWindow=tA},Ai=function(q,L,oA,G){q===void 0&&(q=0),L===void 0&&(L=0),oA===void 0&&(oA=0),G===void 0&&(G=0),this.left=q,this.top=L,this.right=oA,this.bottom=G},ei=function(q,L,oA,G,x,tA,uA,wA,$A,me,p,B,v,N,O){q===void 0&&(q=r.TRTCTranscodingConfigMode.TRTCTranscodingConfigMode_Unknown),L===void 0&&(L=0),oA===void 0&&(oA=0),G===void 0&&(G=0),x===void 0&&(x=0),tA===void 0&&(tA=0),uA===void 0&&(uA=15),wA===void 0&&(wA=2),$A===void 0&&($A=0),me===void 0&&(me=""),p===void 0&&(p=64),B===void 0&&(B=48e3),v===void 0&&(v=1),N===void 0&&(N=[]),O===void 0&&(O=""),this.mode=q,this.appId=L,this.bizId=oA,this.videoWidth=G,this.videoHeight=x,this.videoBitrate=tA,this.videoFramerate=uA,this.videoGOP=wA,this.backgroundColor=$A,this.backgroundImage=me,this.audioSampleRate=p,this.audioBitrate=B,this.audioChannels=v,this.mixUsersArray=N,this.mixUsersArraySize=N.length,this.streamId=O};r.TRTCTranscodingConfigMode=void 0,(nt=r.TRTCTranscodingConfigMode||(r.TRTCTranscodingConfigMode={}))[nt.TRTCTranscodingConfigMode_Unknown=0]="TRTCTranscodingConfigMode_Unknown",nt[nt.TRTCTranscodingConfigMode_Manual=1]="TRTCTranscodingConfigMode_Manual",nt[nt.TRTCTranscodingConfigMode_Template_PureAudio=2]="TRTCTranscodingConfigMode_Template_PureAudio",nt[nt.TRTCTranscodingConfigMode_Template_PresetLayout=3]="TRTCTranscodingConfigMode_Template_PresetLayout",nt[nt.TRTCTranscodingConfigMode_Template_ScreenSharing=4]="TRTCTranscodingConfigMode_Template_ScreenSharing",nt[nt.TRTC_TranscodingConfigMode_Unknown=5]="TRTC_TranscodingConfigMode_Unknown",nt[nt.TRTC_TranscodingConfigMode_Manual=6]="TRTC_TranscodingConfigMode_Manual",nt[nt.TRTC_TranscodingConfigMode_Template_PureAudio=7]="TRTC_TranscodingConfigMode_Template_PureAudio",nt[nt.TRTC_TranscodingConfigMode_Template_PresetLayout=8]="TRTC_TranscodingConfigMode_Template_PresetLayout",nt[nt.TRTC_TranscodingConfigMode_Template_ScreenSharing=9]="TRTC_TranscodingConfigMode_Template_ScreenSharing";var ke,Ze,vt=function(q,L,oA,G,x,tA,uA,wA){q===void 0&&(q=""),L===void 0&&(L=""),oA===void 0&&(oA=null),G===void 0&&(G=0),x===void 0&&(x=!1),tA===void 0&&(tA=r.TRTCVideoStreamType.TRTCVideoStreamTypeBig),uA===void 0&&(uA=r.TRTCMixInputType.TRTCMixInputTypeUndefined),wA===void 0&&(wA=0),this.userId=q,this.roomId=L,this.rect=oA,this.zOrder=G,this.pureAudio=x,this.streamType=tA,this.inputType=uA,this.renderMode=wA};r.TRTCMixInputType=void 0,(ke=r.TRTCMixInputType||(r.TRTCMixInputType={}))[ke.TRTCMixInputTypeUndefined=0]="TRTCMixInputTypeUndefined",ke[ke.TRTCMixInputTypeAudioVideo=1]="TRTCMixInputTypeAudioVideo",ke[ke.TRTCMixInputTypePureVideo=2]="TRTCMixInputTypePureVideo",ke[ke.TRTCMixInputTypePureAudio=3]="TRTCMixInputTypePureAudio",r.TRTCCameraCaptureMode=void 0,(Ze=r.TRTCCameraCaptureMode||(r.TRTCCameraCaptureMode={}))[Ze.TRTCCameraResolutionStrategyAuto=0]="TRTCCameraResolutionStrategyAuto",Ze[Ze.TRTCCameraResolutionStrategyPerformance=1]="TRTCCameraResolutionStrategyPerformance",Ze[Ze.TRTCCameraResolutionStrategyHighQuality=2]="TRTCCameraResolutionStrategyHighQuality",Ze[Ze.TRTCCameraCaptureManual=3]="TRTCCameraCaptureManual";var _t,Oi=function(q,L,oA,G,x,tA){q===void 0&&(q=!0),L===void 0&&(L=!0),oA===void 0&&(oA=!0),G===void 0&&(G=0),x===void 0&&(x=0),tA===void 0&&(tA=!1),this.enableCaptureMouse=q,this.enableHighLight=L,this.enableHighPerformance=oA,this.highLightColor=G,this.highLightWidth=x,this.enableCaptureChildWindow=tA},po="onError",No="onWarning",oo="rtc",Go="live",An="VirtualBackground",rn="BasicBeauty",Es="blur",an="image",Do={20:"anchor",21:"audience"},pA={0:oo,1:Go,2:oo,3:Go};(function(q){q[q.ActiveExitRoom=0]="ActiveExitRoom",q[q.KickedExitRoom=1]="KickedExitRoom"})(_t||(_t={}));var Jn="enum";function Qr(){return Math.floor(performance.now())}var ds=function(q){return q===void 0},zr=function(q){return typeof q=="number"},Pi=function(q){return typeof q=="boolean"};function Rs(q){if(typeof q!="string")return q;var L;try{var oA=JSON.parse(q);L=typeof oA=="object"&&oA?oA:q}catch{L=q}return L}function or(q){return q==null}function en(){for(var q=[],L=0;L<arguments.length;L++)q[L]=arguments[L];return q.reduce(function(oA,G){return Object.keys(G).forEach(function(x){oA[x]&&typeof oA[x]=="object"?oA[x]=en(oA[x],G[x]):oA[x]=G[x]}),oA},{})}function wn(q){var L=null;return q instanceof MediaStream||q instanceof MediaStreamTrack||q instanceof HTMLElement?q:([Date,RegExp,Set,WeakSet,Map,WeakMap,Error].includes(q?.constructor)?L=new q.constructor(q):Array.isArray(q)?(L=[],q.forEach(function(oA,G){L[G]=wn(oA)})):typeof q=="object"&&q!==null?(L={},Object.keys(q).forEach(function(oA){Object.hasOwnProperty.call(q,oA)&&(L[oA]=wn(q[oA]))})):L=q,L)}var Ht,yg,On=function(q){return q&&q.Math===Math&&q},Gn=On(typeof globalThis=="object"&&globalThis)||On(typeof window=="object"&&window)||On(typeof self=="object"&&self)||On(typeof de=="object"&&de)||function(){return this}()||de||Function("return this")(),Js=function(q){try{return!!q()}catch{return!0}},pr=!Js(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Pn=!Js(function(){var q=function(){}.bind();return typeof q!="function"||q.hasOwnProperty("prototype")}),mr=Function.prototype.call,mo=Pn?mr.bind(mr):function(){return mr.apply(mr,arguments)},gn={}.propertyIsEnumerable,Sl=Object.getOwnPropertyDescriptor,cn={f:Sl&&!gn.call({1:2},1)?function(q){var L=Sl(this,q);return!!L&&L.enumerable}:gn},fr=function(q,L){return{enumerable:!(1&q),configurable:!(2&q),writable:!(4&q),value:L}},Ls=Function.prototype,Jc=Ls.call,ms=Pn&&Ls.bind.bind(Jc,Jc),as=Pn?ms:function(q){return function(){return Jc.apply(q,arguments)}},Mu=as({}.toString),Wa=as("".slice),Cs=function(q){return Wa(Mu(q),8,-1)},sg=Object,JI=as("".split),$o=Js(function(){return!sg("z").propertyIsEnumerable(0)})?function(q){return Cs(q)==="String"?JI(q,""):sg(q)}:sg,Xi=function(q){return q==null},pc=TypeError,ng=function(q){if(Xi(q))throw pc("Can't call method on "+q);return q},Dg=function(q){return $o(ng(q))},ua=typeof document=="object"&&document.all,bo={all:ua,IS_HTMLDDA:ua===void 0&&ua!==void 0},Zr=bo.all,_o=bo.IS_HTMLDDA?function(q){return typeof q=="function"||q===Zr}:function(q){return typeof q=="function"},Hc=bo.all,Hn=bo.IS_HTMLDDA?function(q){return typeof q=="object"?q!==null:_o(q)||q===Hc}:function(q){return typeof q=="object"?q!==null:_o(q)},Hs=function(q,L){return arguments.length<2?(oA=Gn[q],_o(oA)?oA:void 0):Gn[q]&&Gn[q][L];var oA},Sg=as({}.isPrototypeOf),mc=typeof navigator<"u"&&String(navigator.userAgent)||"",fn=Gn.process,Ga=Gn.Deno,In=fn&&fn.versions||Ga&&Ga.version,fs=In&&In.v8;fs&&(yg=(Ht=fs.split("."))[0]>0&&Ht[0]<4?1:+(Ht[0]+Ht[1])),!yg&&mc&&(!(Ht=mc.match(/Edge\/(\d+)/))||Ht[1]>=74)&&(Ht=mc.match(/Chrome\/(\d+)/))&&(yg=+Ht[1]);var Ea=yg,yn=Gn.String,ba=!!Object.getOwnPropertySymbols&&!Js(function(){var q=Symbol("symbol detection");return!yn(q)||!(Object(q)instanceof Symbol)||!Symbol.sham&&Ea&&Ea<41}),Sa=ba&&!Symbol.sham&&typeof Symbol.iterator=="symbol",$=Object,K=Sa?function(q){return typeof q=="symbol"}:function(q){var L=Hs("Symbol");return _o(L)&&Sg(L.prototype,$(q))},vA=String,qA=TypeError,ee=function(q){if(_o(q))return q;throw qA(function(L){try{return vA(L)}catch{return"Object"}}(q)+" is not a function")},fe=function(q,L){var oA=q[L];return Xi(oA)?void 0:ee(oA)},xe=TypeError,Oe=Object.defineProperty,rt=function(q,L){try{Oe(Gn,q,{value:L,configurable:!0,writable:!0})}catch{Gn[q]=L}return L},dt="__core-js_shared__",Mt=Gn[dt]||rt(dt,{}),xt=Pe(function(q){(q.exports=function(L,oA){return Mt[L]||(Mt[L]=oA!==void 0?oA:{})})("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"})}),Ii=Object,ct=function(q){return Ii(ng(q))},Pt=as({}.hasOwnProperty),Ji=Object.hasOwn||function(q,L){return Pt(ct(q),L)},Ki=0,qs=Math.random(),Mi=as(1 .toString),zo=function(q){return"Symbol("+(q===void 0?"":q)+")_"+Mi(++Ki+qs,36)},Mg=Gn.Symbol,sr=xt("wks"),yr=Sa?Mg.for||Mg:Mg&&Mg.withoutSetter||zo,xn=function(q){return Ji(sr,q)||(sr[q]=ba&&Ji(Mg,q)?Mg[q]:yr("Symbol."+q)),sr[q]},Ml=TypeError,Ks=xn("toPrimitive"),aI=function(q,L){if(!Hn(q)||K(q))return q;var oA,G=fe(q,Ks);if(G){if(oA=mo(G,q,L),!Hn(oA)||K(oA))return oA;throw Ml("Can't convert object to primitive value")}return function(x,tA){var uA,wA;if(_o(uA=x.toString)&&!Hn(wA=mo(uA,x))||_o(uA=x.valueOf)&&!Hn(wA=mo(uA,x)))return wA;throw xe("Can't convert object to primitive value")}(q)},Wg=function(q){var L=aI(q,"string");return K(L)?L:L+""},fc=Gn.document,vu=Hn(fc)&&Hn(fc.createElement),Ma=function(q){return vu?fc.createElement(q):{}},vl=!pr&&!Js(function(){return Object.defineProperty(Ma("div"),"a",{get:function(){return 7}}).a!==7}),De=Object.getOwnPropertyDescriptor,ye={f:pr?De:function(q,L){if(q=Dg(q),L=Wg(L),vl)try{return De(q,L)}catch{}if(Ji(q,L))return fr(!mo(cn.f,q,L),q[L])}},vg=pr&&Js(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),rg=String,Rg=TypeError,Dn=function(q){if(Hn(q))return q;throw Rg(rg(q)+" is not an object")},Dr=TypeError,ui=Object.defineProperty,so=Object.getOwnPropertyDescriptor,qc="enumerable",zg="configurable",wg="writable",Yr={f:pr?vg?function(q,L,oA){if(Dn(q),L=Wg(L),Dn(oA),typeof q=="function"&&L==="prototype"&&"value"in oA&&wg in oA&&!oA[wg]){var G=so(q,L);G&&G[wg]&&(q[L]=oA.value,oA={configurable:zg in oA?oA[zg]:G[zg],enumerable:qc in oA?oA[qc]:G[qc],writable:!1})}return ui(q,L,oA)}:ui:function(q,L,oA){if(Dn(q),L=Wg(L),Dn(oA),vl)try{return ui(q,L,oA)}catch{}if("get"in oA||"set"in oA)throw Dr("Accessors not supported");return"value"in oA&&(q[L]=oA.value),q}},yc=pr?function(q,L,oA){return Yr.f(q,L,fr(1,oA))}:function(q,L,oA){return q[L]=oA,q},Kc=Function.prototype,ag=pr&&Object.getOwnPropertyDescriptor,Ru=Ji(Kc,"name"),SE={CONFIGURABLE:Ru&&(!pr||pr&&ag(Kc,"name").configurable)},_g=as(Function.toString);_o(Mt.inspectSource)||(Mt.inspectSource=function(q){return _g(q)});var ka,Dc,ME,La=Mt.inspectSource,sa=Gn.WeakMap,Tg=_o(sa)&&/native code/.test(String(sa)),gI=xt("keys"),hs=function(q){return gI[q]||(gI[q]=zo(q))},Lo={},da="Object already initialized",nr=Gn.TypeError,Yt=Gn.WeakMap;if(Tg||Mt.state){var qt=Mt.state||(Mt.state=new Yt);qt.get=qt.get,qt.has=qt.has,qt.set=qt.set,ka=function(q,L){if(qt.has(q))throw nr(da);return L.facade=q,qt.set(q,L),L},Dc=function(q){return qt.get(q)||{}},ME=function(q){return qt.has(q)}}else{var Ng=hs("state");Lo[Ng]=!0,ka=function(q,L){if(Ji(q,Ng))throw nr(da);return L.facade=q,yc(q,Ng,L),L},Dc=function(q){return Ji(q,Ng)?q[Ng]:{}},ME=function(q){return Ji(q,Ng)}}var cI={get:Dc,enforce:function(q){return ME(q)?Dc(q):ka(q,{})}},rr=Pe(function(q){var L=SE.CONFIGURABLE,oA=cI.enforce,G=cI.get,x=String,tA=Object.defineProperty,uA=as("".slice),wA=as("".replace),$A=as([].join),me=pr&&!Js(function(){return tA(function(){},"length",{value:8}).length!==8}),p=String(String).split("String"),B=q.exports=function(v,N,O){uA(x(N),0,7)==="Symbol("&&(N="["+wA(x(N),/^Symbol\(([^)]*)\)/,"$1")+"]"),O&&O.getter&&(N="get "+N),O&&O.setter&&(N="set "+N),(!Ji(v,"name")||L&&v.name!==N)&&(pr?tA(v,"name",{value:N,configurable:!0}):v.name=N),me&&O&&Ji(O,"arity")&&v.length!==O.arity&&tA(v,"length",{value:O.arity});try{O&&Ji(O,"constructor")&&O.constructor?pr&&tA(v,"prototype",{writable:!1}):v.prototype&&(v.prototype=void 0)}catch{}var z=oA(v);return Ji(z,"source")||(z.source=$A(p,typeof N=="string"?N:"")),v};Function.prototype.toString=B(function(){return _o(this)&&G(this).source||La(this)},"toString")}),HI=function(q,L,oA,G){G||(G={});var x=G.enumerable,tA=G.name!==void 0?G.name:L;if(_o(oA)&&rr(oA,tA,G),G.global)x?q[L]=oA:rt(L,oA);else{try{G.unsafe?q[L]&&(x=!0):delete q[L]}catch{}x?q[L]=oA:Yr.f(q,L,{value:oA,enumerable:!1,configurable:!G.nonConfigurable,writable:!G.nonWritable})}return q},za=Math.ceil,na=Math.floor,un=Math.trunc||function(q){var L=+q;return(L>0?na:za)(L)},Sn=function(q){var L=+q;return L!=L||L===0?0:un(L)},wu=Math.max,Gg=Math.min,Ua=Math.min,jc=function(q){return q>0?Ua(Sn(q),9007199254740991):0},qI=function(q){return jc(q.length)},vE=function(q){return function(L,oA,G){var x,tA=Dg(L),uA=qI(tA),wA=function($A,me){var p=Sn($A);return p<0?wu(p+me,0):Gg(p,me)}(G,uA);if(q&&oA!=oA){for(;uA>wA;)if((x=tA[wA++])!=x)return!0}else for(;uA>wA;wA++)if((q||wA in tA)&&tA[wA]===oA)return q||wA||0;return!q&&-1}},lI={indexOf:vE(!1)}.indexOf,_u=as([].push),Rl=function(q,L){var oA,G=Dg(q),x=0,tA=[];for(oA in G)!Ji(Lo,oA)&&Ji(G,oA)&&_u(tA,oA);for(;L.length>x;)Ji(G,oA=L[x++])&&(~lI(tA,oA)||_u(tA,oA));return tA},Sc=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Tu=Sc.concat("length","prototype"),Nu={f:Object.getOwnPropertyNames||function(q){return Rl(q,Tu)}},wl={f:Object.getOwnPropertySymbols},rs=as([].concat),gs=Hs("Reflect","ownKeys")||function(q){var L=Nu.f(Dn(q)),oA=wl.f;return oA?rs(L,oA(q)):L},ud=function(q,L,oA){for(var G=gs(L),x=Yr.f,tA=ye.f,uA=0;uA<G.length;uA++){var wA=G[uA];Ji(q,wA)||oA||x(q,wA,tA(L,wA))}},II=/#|\.prototype\./,uI=function(q,L){var oA=Ed[RE(q)];return oA===Sr||oA!==_l&&(_o(L)?Js(L):!!L)},RE=uI.normalize=function(q){return String(q).replace(II,".").toLowerCase()},Ed=uI.data={},_l=uI.NATIVE="N",Sr=uI.POLYFILL="P",Mc=uI,Wc=ye.f,tn=function(q,L){var oA,G,x,tA,uA,wA=q.target,$A=q.global,me=q.stat;if(oA=$A?Gn:me?Gn[wA]||rt(wA,{}):(Gn[wA]||{}).prototype)for(G in L){if(tA=L[G],x=q.dontCallGetSet?(uA=Wc(oA,G))&&uA.value:oA[G],!Mc($A?G:wA+(me?".":"#")+G,q.forced)&&x!==void 0){if(typeof tA==typeof x)continue;ud(tA,x)}(q.sham||x&&x.sham)&&yc(tA,"sham",!0),HI(oA,G,tA,q)}},ws={};ws[xn("toStringTag")]="z";var Ca,Xr=String(ws)==="[object z]",zc=xn("toStringTag"),dd=Object,Zg=Cs(function(){return arguments}())==="Arguments",gg=Xr?Cs:function(q){var L,oA,G;return q===void 0?"Undefined":q===null?"Null":typeof(oA=function(x,tA){try{return x[tA]}catch{}}(L=dd(q),zc))=="string"?oA:Zg?Cs(L):(G=Cs(L))==="Object"&&_o(L.callee)?"Arguments":G},wE=String,Xg=function(q){if(gg(q)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return wE(q)},qn=function(){var q=Dn(this),L="";return q.hasIndices&&(L+="d"),q.global&&(L+="g"),q.ignoreCase&&(L+="i"),q.multiline&&(L+="m"),q.dotAll&&(L+="s"),q.unicode&&(L+="u"),q.unicodeSets&&(L+="v"),q.sticky&&(L+="y"),L},Ar=Gn.RegExp,Fa=Js(function(){var q=Ar("a","y");return q.lastIndex=2,q.exec("abcd")!==null});Fa||Js(function(){return!Ar("a","y").sticky});var Cd={BROKEN_CARET:Fa||Js(function(){var q=Ar("^r","gy");return q.lastIndex=2,q.exec("str")!==null})},lC=Object.keys||function(q){return Rl(q,Sc)},Gu=pr&&!vg?Object.defineProperties:function(q,L){Dn(q);for(var oA,G=Dg(L),x=lC(L),tA=x.length,uA=0;tA>uA;)Yr.f(q,oA=x[uA++],G[oA]);return q},KI={f:Gu},Zc=Hs("document","documentElement"),Xc="prototype",jI="script",EI=hs("IE_PROTO"),$c=function(){},Al=function(q){return"<"+jI+">"+q+"</"+jI+">"},va=function(q){q.write(Al("")),q.close();var L=q.parentWindow.Object;return q=null,L},bg=function(){try{Ca=new ActiveXObject("htmlfile")}catch{}var q,L,oA;bg=typeof document<"u"?document.domain&&Ca?va(Ca):(L=Ma("iframe"),oA="java"+jI+":",L.style.display="none",Zc.appendChild(L),L.src=String(oA),(q=L.contentWindow.document).open(),q.write(Al("document.F=Object")),q.close(),q.F):va(Ca);for(var G=Sc.length;G--;)delete bg[Xc][Sc[G]];return bg()};Lo[EI]=!0;var ys,Kn,vc=Object.create||function(q,L){var oA;return q!==null?($c[Xc]=Dn(q),oA=new $c,$c[Xc]=null,oA[EI]=q):oA=bg(),L===void 0?oA:KI.f(oA,L)},WI=Gn.RegExp,zI=Js(function(){var q=WI(".","s");return!(q.dotAll&&q.exec(`
|
||
`)&&q.flags==="s")}),_E=Gn.RegExp,rh=Js(function(){var q=_E("(?<a>b)","g");return q.exec("b").groups.a!=="b"||"b".replace(q,"$<a>c")!=="bc"}),IC=cI.get,ah=xt("native-string-replace",String.prototype.replace),el=RegExp.prototype.exec,kg=el,no=as("".charAt),uC=as("".indexOf),TE=as("".replace),NE=as("".slice),hd=(Kn=/b*/g,mo(el,ys=/a/,"a"),mo(el,Kn,"a"),ys.lastIndex!==0||Kn.lastIndex!==0),GE=Cd.BROKEN_CARET,tl=/()??/.exec("")[1]!==void 0;(hd||tl||GE||zI||rh)&&(kg=function(q){var L,oA,G,x,tA,uA,wA,$A=this,me=IC($A),p=Xg(q),B=me.raw;if(B)return B.lastIndex=$A.lastIndex,L=mo(kg,B,p),$A.lastIndex=B.lastIndex,L;var v=me.groups,N=GE&&$A.sticky,O=mo(qn,$A),z=$A.source,X=0,rA=p;if(N&&(O=TE(O,"y",""),uC(O,"g")===-1&&(O+="g"),rA=NE(p,$A.lastIndex),$A.lastIndex>0&&(!$A.multiline||$A.multiline&&no(p,$A.lastIndex-1)!==`
|
||
`)&&(z="(?: "+z+")",rA=" "+rA,X++),oA=new RegExp("^(?:"+z+")",O)),tl&&(oA=new RegExp("^"+z+"$(?!\\s)",O)),hd&&(G=$A.lastIndex),x=mo(el,N?oA:$A,rA),N?x?(x.input=NE(x.input,X),x[0]=NE(x[0],X),x.index=$A.lastIndex,$A.lastIndex+=x[0].length):$A.lastIndex=0:hd&&x&&($A.lastIndex=$A.global?x.index+x[0].length:G),tl&&x&&x.length>1&&mo(ah,x[0],oA,function(){for(tA=1;tA<arguments.length-2;tA++)arguments[tA]===void 0&&(x[tA]=void 0)}),x&&v)for(x.groups=uA=vc(null),tA=0;tA<v.length;tA++)uA[(wA=v[tA])[0]]=x[wA[1]];return x});var dI=kg;tn({target:"RegExp",proto:!0,forced:/./.exec!==dI},{exec:dI});var bu=`
|
||
\v\f\r \u2028\u2029\uFEFF`,ku=as("".replace),EC=RegExp("^["+bu+"]+"),Rr=RegExp("(^|[^"+bu+"])["+bu+"]+$"),cg=function(q){return function(L){var oA=Xg(ng(L));return 1&q&&(oA=ku(oA,EC,"")),2&q&&(oA=ku(oA,Rr,"$1")),oA}},Rc={trim:cg(3)}.trim,Lu=as("".charAt),Tl=Gn.parseFloat,Bd=Gn.Symbol,$r=Bd&&Bd.iterator,CI=1/Tl(bu+"-0")!=-1/0||$r&&!Js(function(){Tl(Object($r))})?function(q){var L=Rc(Xg(q)),oA=Tl(L);return oA===0&&Lu(L,0)==="-"?-0:oA}:Tl;tn({global:!0,forced:parseFloat!==CI},{parseFloat:CI});var _n=function(q){if(Cs(q)==="Function")return as(q)},dC=xn("species"),il=RegExp.prototype,Qd=as("".charAt),hI=as("".charCodeAt),Oa=as("".slice),CC=function(q){return function(L,oA){var G,x,tA=Xg(ng(L)),uA=Sn(oA),wA=tA.length;return uA<0||uA>=wA?q?"":void 0:(G=hI(tA,uA))<55296||G>56319||uA+1===wA||(x=hI(tA,uA+1))<56320||x>57343?q?Qd(tA,uA):G:q?Oa(tA,uA,uA+2):x-56320+(G-55296<<10)+65536}},Pa={charAt:CC(!0)}.charAt,ur=function(q,L,oA){return L+(oA?Pa(q,L).length:1)},pd=TypeError,Uu=function(q,L){var oA=q.exec;if(_o(oA)){var G=mo(oA,q,L);return G!==null&&Dn(G),G}if(Cs(q)==="RegExp")return mo(dI,q,L);throw pd("RegExp#exec called on incompatible receiver")};(function(q,L,oA,G){var x=xn(q),tA=!Js(function(){var me={};return me[x]=function(){return 7},""[q](me)!==7}),uA=tA&&!Js(function(){var me=!1,p=/a/;return q==="split"&&((p={}).constructor={},p.constructor[dC]=function(){return p},p.flags="",p[x]=/./[x]),p.exec=function(){return me=!0,null},p[x](""),!me});if(!tA||!uA||oA){var wA=_n(/./[x]),$A=L(x,""[q],function(me,p,B,v,N){var O=_n(me),z=p.exec;return z===dI||z===il.exec?tA&&!N?{done:!0,value:wA(p,B,v)}:{done:!0,value:O(B,p,v)}:{done:!1}});HI(String.prototype,q,$A[0]),HI(il,x,$A[1])}})("match",function(q,L,oA){return[function(G){var x=ng(this),tA=Xi(G)?void 0:fe(G,q);return tA?mo(tA,G,x):new RegExp(G)[q](Xg(x))},function(G){var x=Dn(this),tA=Xg(G),uA=oA(L,x,tA);if(uA.done)return uA.value;if(!x.global)return Uu(x,tA);var wA=x.unicode;x.lastIndex=0;for(var $A,me=[],p=0;($A=Uu(x,tA))!==null;){var B=Xg($A[0]);me[p]=B,B===""&&(x.lastIndex=ur(tA,jc(x.lastIndex),wA)),p++}return p===0?null:me}]});var Er=Array.isArray||function(q){return Cs(q)==="Array"},wc=TypeError,ol=function(q){if(q>9007199254740991)throw wc("Maximum allowed index exceeded");return q},Lg=function(q,L,oA){var G=Wg(L);G in q?Yr.f(q,G,fr(0,oA)):q[G]=oA},Oo=function(){},$g=[],Za=Hs("Reflect","construct"),Nl=/^\s*(?:class|function)\b/,Aa=as(Nl.exec),gh=!Nl.exec(Oo),js=function(q){if(!_o(q))return!1;try{return Za(Oo,$g,q),!0}catch{return!1}},ZI=function(q){if(!_o(q))return!1;switch(gg(q)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return gh||!!Aa(Nl,La(q))}catch{return!0}};ZI.sham=!0;var Us,_c=!Za||Js(function(){var q;return js(js.call)||!js(Object)||!js(function(){q=!0})||q})?ZI:js,Ac=xn("species"),dr=Array,Vr=function(q,L){return new(function(oA){var G;return Er(oA)&&(G=oA.constructor,(_c(G)&&(G===dr||Er(G.prototype))||Hn(G)&&(G=G[Ac])===null)&&(G=void 0)),G===void 0?dr:G}(q))(0)},Xa=xn("species"),bE=xn("isConcatSpreadable"),hC=Ea>=51||!Js(function(){var q=[];return q[bE]=!1,q.concat()[0]!==q}),ch=function(q){if(!Hn(q))return!1;var L=q[bE];return L!==void 0?!!L:Er(q)};tn({target:"Array",proto:!0,arity:1,forced:!(hC&&(Us="concat",Ea>=51||!Js(function(){var q=[];return(q.constructor={})[Xa]=function(){return{foo:1}},q[Us](Boolean).foo!==1})))},{concat:function(q){var L,oA,G,x,tA,uA=ct(this),wA=Vr(uA),$A=0;for(L=-1,G=arguments.length;L<G;L++)if(ch(tA=L===-1?uA:arguments[L]))for(x=qI(tA),ol($A+x),oA=0;oA<x;oA++,$A++)oA in tA&&Lg(wA,$A,tA[oA]);else ol($A+1),Lg(wA,$A++,tA);return wA.length=$A,wA}});var ro=window.navigator&&window.navigator.userAgent||"",Tc=/AppleWebKit\/([\d.]+)/i.exec(ro);Tc&&parseFloat(Tc.pop());var Gl=/iPad/i.test(ro),BC=/iPhone/i.test(ro)&&!Gl,QC=/iPod/i.test(ro),bl=BC||Gl||QC,XI=/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(ro);bl&&function(){var q=ro.match(/OS (\d+)_/i);q&&q[1]&&q[1]}();var BI=/Android/i.test(ro);BI&&function(){var q=ro.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!q)return null;var L=q[1]&&parseFloat(q[1]),oA=q[2]&&parseFloat(q[2]);L&&oA&&parseFloat("".concat(q[1],".").concat(q[2]))}(),/Firefox/i.test(ro)&&function(){var q=ro.match(/Firefox\/(\d+)/);q&&q[1]&&parseFloat(q[1])}();var QI=/Edge\//i.test(ro);QI&&function(){var q=ro.match(/Edge\/(\d+)/i);q&&q[1]&&q[1]}();var kE=/Edg\//i.test(ro);kE&&function(){var q=ro.match(/Edg\/(\d+)/);q&&q[1]&&parseFloat(q[1])}();var kl=/SogouMobileBrowser\//i.test(ro);kl&&function(){var q=ro.match(/SogouMobileBrowser\/(\d+)/);q&&q[1]&&parseFloat(q[1])}();var Ll=/MetaSr\s/i.test(ro);Ll&&function(){var q=ro.match(/MetaSr(\s\d+(\.\d+)+)/);q&&q[1]&&parseFloat(q[1])}();var Ug=/TBS\/\d+/i.test(ro);Ug&&function(){var q=ro.match(/TBS\/(\d+)/i);q&&q[1]&&q[1]}();var ec=/XWEB\/\d+/i.test(ro);ec&&function(){var q=ro.match(/XWEB\/(\d+)/i);q&&q[1]&&q[1]}(),/MSIE\/\d+/i.test(ro)&&function(){var q=/MSIE\s(\d+)\.\d/.exec(ro);q&&parseFloat(q[1])}(),/(micromessenger|webbrowser)/i.test(ro)&&function(){var q=ro.match(/MicroMessenger\/(\d+)/i);q&&q[1]&&q[1]}();var md=!Ug&&/MQQBrowser\/\d+/i.test(ro)&&/COVC\/\d+/i.test(ro),LE=!Ug&&/MQQBrowser\/\d+/i.test(ro)&&!/COVC\/\d+/i.test(ro);(LE||md)&&function(){var q=ro.match(/ MQQBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var Nc=!Ug&&/ QQBrowser\/\d+/i.test(ro);Nc&&function(){var q=ro.match(/ QQBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var $I=!Ug&&/QQBrowserLite\/\d+/i.test(ro);$I&&function(){var q=ro.match(/QQBrowserLite\/([\d.]+)/);q&&q[1]&&q[1]}();var lo=!Ug&&/MQBHD\/\d+/i.test(ro);lo&&function(){var q=ro.match(/MQBHD\/([\d.]+)/);q&&q[1]&&q[1]}();var UE=/MiuiBrowser/i.test(ro);UE&&function(){var q=ro.match(/MiuiBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var $a=/HuaweiBrowser/i.test(ro);$a&&function(){var q=ro.match(/HuaweiBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var Au=/SamsungBrowser/i.test(ro);Au&&function(){var q=ro.match(/SamsungBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var Fu=/HeyTapBrowser/i.test(ro);Fu&&function(){var q=ro.match(/HeyTapBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var Gc=/VivoBrowser/i.test(ro);Gc&&function(){var q=ro.match(/VivoBrowser\/([\d.]+)/);q&&q[1]&&q[1]}();var pI,sl,nl,xa=/Chrome/i.test(ro),FE=!QI&&!Ll&&!kl&&!Ug&&!ec&&!kE&&!Nc&&!UE&&!$a&&!Au&&!Fu&&!Gc&&/Chrome/i.test(ro);FE&&function(){var q=ro.match(/Chrome\/(\d+)/);q&&q[1]&&parseFloat(q[1])}(),FE&&function(){var q=ro.match(/Chrome\/([\d.]+)/);q&&q[1]&&q[1]}(),!xa&&!LE&&!md&&!$I&&!lo&&/Safari/i.test(ro)&&function(){var q=ro.match(/Version\/([\d.]+)/);q&&q[1]&&q[1]}(),function(q){q.LIVE="live",q.RTC="rtc"}(pI||(pI={})),function(q){q.CONTAIN="contain",q.COVER="cover",q.FILL="fill"}(sl||(sl={})),function(q){q[q.exitRoom=0]="exitRoom",q[q.banned=1]="banned",q[q.roomDisband=2]="roomDisband"}(nl||(nl={}));var ra,Mn,kr,rl=-3340,Ul=-1301,bc=-1314,OE=-1315,kc=-1316,Ou=-1302,pC=-1317,eu=-1318,lh=-1319,Pu=-70252,mI={code:-1001,message:"参数错误, 请检查参数格式、是否非空等"},al={code:-1005,message:"not supported"},mC="2.10.19";r.TRTCMediaMixingErrorCode=void 0,(ra=r.TRTCMediaMixingErrorCode||(r.TRTCMediaMixingErrorCode={}))[ra.Success=0]="Success",ra[ra.Error=-1]="Error",ra[ra.InvalidParams=-2]="InvalidParams",ra[ra.NotFoundSource=-3]="NotFoundSource",ra[ra.ImageSourceLoadFailed=-4]="ImageSourceLoadFailed",ra[ra.CameraNotAuthorized=-5]="CameraNotAuthorized",ra[ra.CameraIsOccupied=-6]="CameraIsOccupied",ra[ra.CameraDisconnected=-7]="CameraDisconnected",r.TRTCMediaSourceType=void 0,(Mn=r.TRTCMediaSourceType||(r.TRTCMediaSourceType={}))[Mn.kCamera=0]="kCamera",Mn[Mn.kScreen=1]="kScreen",Mn[Mn.kImage=2]="kImage",Mn[Mn.kPhoneMirror=4]="kPhoneMirror",Mn[Mn.kText=5]="kText",Mn[Mn.kVideo=6]="kVideo",r.TRTCMediaMixingEvent=void 0,(kr=r.TRTCMediaMixingEvent||(r.TRTCMediaMixingEvent={})).onSourceSelected="onSourceSelected",kr.onSourceMoved="onSourceMoved",kr.onSourceResized="onSourceResized",kr.onRightButtonClicked="onRightButtonClicked",kr.onError="onError",kr.onSourcePlugged="onSourcePlugged",kr.onSourceConnected="onSourceConnected",kr.onSourceDisconnected="onSourceDisconnected",kr.onSourceUnplugged="onSourceUnplugged",kr.onMediaSourceSizeChanged="onMediaSourceSizeChanged";var aa,tc=function(){function q(L,oA){if(this.logRegion="tc",this.loggerManager=L,oA){var G=oA.sdkAppId,x=oA.userId,tA=oA.seq;this.seq=tA,L&&(this.logger=L.createLogger({id:"".concat(this.logRegion).concat(tA),userId:x,sdkAppId:G}))}else this.logger=L;this.logger||(this.logger={debug:function(uA){console.debug(uA)},info:function(uA){console.info(uA)},warn:function(uA){console.warn(uA)},error:function(uA){console.error(uA)}})}return q.prototype.getLogMessage=function(L){var oA=this;return L.map(function(G){return oA.getStringifyMessage(G)}).join(" ")},q.prototype.getStringifyMessage=function(L){var oA=this;if(typeof L!="object")return L;if(L instanceof HTMLElement)return"".concat(L.tagName.toLocaleLowerCase(),"#").concat(L.id);if(L instanceof Array){var G=[];return Object.keys(L).forEach(function(tA){return G[tA]=oA.getStringifyMessage(L[tA])}),JSON.stringify(G)}if(L instanceof Object){var x={};return Object.keys(L).forEach(function(tA){return x[tA]=oA.getStringifyMessage(L[tA])}),JSON.stringify(x)}return L},q.prototype.update=function(L){var oA=L.userId,G=L.sdkAppId;this.loggerManager&&this.loggerManager.createLogger&&(this.logger=this.loggerManager.createLogger({id:"".concat(this.logRegion).concat(this.seq),userId:oA,sdkAppId:G}))},q.prototype.log=function(){for(var L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];var G=this.getLogMessage(L);this.logger&&this.logger.info&&this.logger.info(G)},q.prototype.debug=function(){for(var L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];var G=this.getLogMessage(L);this.logger.debug(G)},q.prototype.info=function(){for(var L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];var G=this.getLogMessage(L);this.logger&&this.logger.info&&this.logger.info(G)},q.prototype.warn=function(){for(var L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];var G=this.getLogMessage(L);this.logger&&this.logger.warn&&this.logger.warn(G)},q.prototype.error=function(){for(var L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];var G=this.getLogMessage(L);this.logger&&this.logger.error&&this.logger.error(G)},q}(),lg=new tc(null),fI=function(){function q(L,oA,G){G===void 0&&(G={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=L,this.container=oA||document.body,this.options={calcPositionOnly:!!G.calcPositionOnly||!1,canExceedContainer:!!G.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 q.prototype.setStyle=function(){this.movable?(this.movable.style.position="absolute",this.movable.style.cursor="move"):lg.debug("".concat(this.logPrefix,"setStyle 'movable' is null"))},q.prototype.onMouseDown=function(L){if(this.enabled&&L.button===0){if(L.preventDefault(),document.defaultView&&this.movable){var oA=document.defaultView.getComputedStyle(this.movable);this.originLeft=window.parseInt(oA.left),this.originTop=window.parseInt(oA.top)}else lg.debug("".concat(this.logPrefix,"onMouseDown 'movable' is null"));this.moveStartOfLeft=L.screenX,this.moveStartOfTop=L.screenY,document.addEventListener("mousemove",this.onMouseMove5px,!1),document.addEventListener("mouseup",this.onMouseUp5px,!1)}},q.prototype.onMouseMove5px=function(L){var oA=L.screenX-(this.moveStartOfLeft||0),G=L.screenY-(this.moveStartOfTop||0);Math.abs(oA)>=5||Math.abs(G)>=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)):lg.debug("".concat(this.logPrefix,"on Movable mouse move less than 5px"))},q.prototype.onMouseUp5px=function(){document.removeEventListener("mousemove",this.onMouseMove5px,!1),document.removeEventListener("mouseup",this.onMouseUp5px,!1)},q.prototype.onMouseMove=function(L){if(this.movable&&this.container){var oA=L.screenX-this.moveStartOfLeft,G=L.screenY-this.moveStartOfTop,x=this.originLeft+oA,tA=this.originTop+G,uA=this.movable.offsetWidth,wA=this.movable.offsetHeight,$A=this.container.offsetWidth,me=this.container.offsetHeight;this.options.canExceedContainer||(x<0?x=0:x>$A-uA&&(x=$A-uA),tA<0?tA=0:tA>me-wA&&(tA=me-wA)),!this.options.calcPositionOnly&&this.movable&&(this.movable.style.left="".concat(x,"px"),this.movable.style.top="".concat(tA,"px")),this.emit("move",x,tA)}else lg.debug("".concat(this.logPrefix,"onMouseMove error:No 'movable' and 'container'."))},q.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},q.prototype.on=function(L,oA){var G=this.callbacksMap.get(L);G?G.push(oA):this.callbacksMap.set(L,[oA])},q.prototype.off=function(L,oA){var G=this.callbacksMap.get(L);G&&(G=G.filter(function(x){return x!=oA}),this.callbacksMap.set(L,G))},q.prototype.emit=function(L){for(var oA=[],G=1;G<arguments.length;G++)oA[G-1]=arguments[G];var x=this.callbacksMap.get(L);x&&x.forEach(function(tA){try{tA.apply(null,oA)}catch(uA){console.error("[Movable]emit error:",tA,uA)}})},q.prototype.destroy=function(){var L;(L=this.movable)===null||L===void 0||L.removeEventListener("mousedown",this.onMouseDown,!1),this.callbacksMap.clear(),this.movable=null,this.container=null},q.prototype.setEnabled=function(L){lg.debug("".concat(this.logPrefix,"setEnabled: ").concat(this.enabled," -> ").concat(L)),this.enabled=L,this.movable&&(this.movable.style.cursor=L?"move":"default",lg.debug("".concat(this.logPrefix,"setEnabled: cursor updated to '").concat(L?"move":"default","'")))},q.prototype.isEnabled=function(){return this.enabled},q}();(function(q){q[q.Both=0]="Both",q[q.Corner=1]="Corner",q[q.Edge=2]="Edge"})(aa||(aa={}));var PE="trtc-resizable-top-left-anchor",xu="trtc-resizable-top-anchor",Yu="trtc-resizable-top-right-anchor",yI="trtc-resizable-left-anchor",gl="trtc-resizable-right-anchor",Lr="trtc-resizable-bottom-left-anchor",Ur="trtc-resizable-bottom-anchor",Ig="trtc-resizable-bottom-right-anchor",ar={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 wr(q,L){for(var oA in L)q.style[oA]=L[oA]}var ic=function(){function q(L,oA,G){G===void 0&&(G={keepRatio:!1,stopPropagation:!1,anchorMode:aa.Both,canExceedContainer:!1}),this.logPrefix="[Resizable]",this.container=null,this.options={keepRatio:!1,stopPropagation:!1,anchorMode:aa.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=L,this.container=oA||document.body,this.options={keepRatio:!!G.keepRatio||!1,stopPropagation:!!G.stopPropagation||!1,anchorMode:G.anchorMode||aa.Both,canExceedContainer:!!G.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 q.prototype.createResizeAnchor=function(){var L,oA,G,x,tA,uA,wA,$A,me=document.createElement("div");me.className="trtc-resizable-resize-anchor ".concat(PE),wr(me,Object.assign({},ar.resizeAnchor,ar.topLeftAnchor)),this.topLeftAnchor=me;var p=document.createElement("div");p.className="trtc-resizable-resize-anchor ".concat(xu),wr(p,Object.assign({},ar.resizeAnchor,ar.topAnchor)),this.topAnchor=p;var B=document.createElement("div");B.className="trtc-resizable-resize-anchor ".concat(Yu),wr(B,Object.assign({},ar.resizeAnchor,ar.topRightAnchor)),this.topRightAnchor=B;var v=document.createElement("div");v.className="trtc-resizable-resize-anchor ".concat(yI),wr(v,Object.assign({},ar.resizeAnchor,ar.leftAnchor)),this.leftAnchor=v;var N=document.createElement("div");N.className="trtc-resizable-resize-anchor ".concat(gl),wr(N,Object.assign({},ar.resizeAnchor,ar.rightAnchor)),this.rightAnchor=N;var O=document.createElement("div");O.className="trtc-resizable-resize-anchor ".concat(Lr),wr(O,Object.assign({},ar.resizeAnchor,ar.bottomLeftAnchor)),this.bottomLeftAnchor=O;var z=document.createElement("div");z.className="trtc-resizable-resize-anchor ".concat(Ur),wr(z,Object.assign({},ar.resizeAnchor,ar.bottomAnchor)),this.bottomAnchor=z;var X=document.createElement("div");X.className="trtc-resizable-resize-anchor ".concat(Ig),wr(X,Object.assign({},ar.resizeAnchor,ar.bottomRightAnchor)),this.bottomRightAnchor=X,this.options.anchorMode!==aa.Both&&this.options.anchorMode!==aa.Edge||((L=this.resizeTarget)===null||L===void 0||L.appendChild(p),(oA=this.resizeTarget)===null||oA===void 0||oA.appendChild(v),(G=this.resizeTarget)===null||G===void 0||G.appendChild(N),(x=this.resizeTarget)===null||x===void 0||x.appendChild(z)),this.options.anchorMode!==aa.Both&&this.options.anchorMode!==aa.Corner||((tA=this.resizeTarget)===null||tA===void 0||tA.appendChild(me),(uA=this.resizeTarget)===null||uA===void 0||uA.appendChild(B),(wA=this.resizeTarget)===null||wA===void 0||wA.appendChild(O),($A=this.resizeTarget)===null||$A===void 0||$A.appendChild(X))},q.prototype.initResizeEvent=function(){var L,oA,G,x,tA,uA,wA,$A;(L=this.topLeftAnchor)===null||L===void 0||L.addEventListener("mousedown",this.mousedown,!1),(oA=this.topAnchor)===null||oA===void 0||oA.addEventListener("mousedown",this.mousedown,!1),(G=this.topRightAnchor)===null||G===void 0||G.addEventListener("mousedown",this.mousedown,!1),(x=this.leftAnchor)===null||x===void 0||x.addEventListener("mousedown",this.mousedown,!1),(tA=this.rightAnchor)===null||tA===void 0||tA.addEventListener("mousedown",this.mousedown,!1),(uA=this.bottomLeftAnchor)===null||uA===void 0||uA.addEventListener("mousedown",this.mousedown,!1),(wA=this.bottomAnchor)===null||wA===void 0||wA.addEventListener("mousedown",this.mousedown,!1),($A=this.bottomRightAnchor)===null||$A===void 0||$A.addEventListener("mousedown",this.mousedown,!1)},q.prototype.mousedown=function(L){if(L.button===0){if(L.preventDefault(),this.options.stopPropagation&&L.stopPropagation(),this.currentAnchor=L.target,this.resizeStartLeft=L.screenX,this.resizeStartTop=L.screenY,document.defaultView&&this.resizeTarget){var oA=document.defaultView.getComputedStyle(this.resizeTarget);this.originTop=window.parseInt(oA.top),this.originLeft=window.parseInt(oA.left),this.originWidth=this.resizeTarget.offsetWidth,this.originHeight=this.resizeTarget.offsetHeight,lg.debug("resize origin:",this.originTop,this.originLeft,this.originWidth,this.originHeight)}else lg.debug("".concat(this.logPrefix,"mouseDown 'resizeTarget' is null"));document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1)}},q.prototype.mousemove=function(L){if(this.container&&this.resizeTarget&&this.currentAnchor){var oA,G=this.currentAnchor.classList[1],x=this.originLeft,tA=this.originTop,uA=this.originWidth,wA=this.originHeight;switch(G){case PE:tA=(oA=this._resizeTop(L)).top,wA=oA.height,x=(oA=this._resizeLeft(L)).left,uA=oA.width,this.options.keepRatio&&(uA/this.originWidth<wA/this.originHeight?(wA=uA*this.originHeight/this.originWidth,tA=this.originTop+this.originHeight-wA):(uA=wA*this.originWidth/this.originHeight,x=this.originLeft+this.originWidth-uA));break;case xu:tA=(oA=this._resizeTop(L)).top,wA=oA.height,this.options.keepRatio&&((uA=this.originWidth*wA/this.originHeight)<20?(uA=20,wA=this.originHeight*uA/this.originWidth,tA=this.originTop+this.originHeight-wA):!this.options.canExceedContainer&&uA>this.container.offsetWidth-this.originLeft&&(uA=this.container.offsetWidth-this.originLeft,wA=this.originHeight*uA/this.originWidth,tA=this.originTop+this.originHeight-wA));break;case Yu:tA=(oA=this._resizeTop(L)).top,wA=oA.height,uA=this._resizeRight(L),this.options.keepRatio&&(uA/this.originWidth<wA/this.originHeight?(wA=uA*this.originHeight/this.originWidth,tA=this.originTop+this.originHeight-wA):uA=wA*this.originWidth/this.originHeight);break;case yI:x=(oA=this._resizeLeft(L)).left,uA=oA.width,this.options.keepRatio&&((wA=this.originHeight*uA/this.originWidth)<20?(wA=20,uA=this.originWidth*wA/this.originHeight,x=this.originLeft+this.originWidth-uA):!this.options.canExceedContainer&&wA>this.container.offsetHeight-this.originTop&&(wA=this.container.offsetHeight-this.originTop,uA=this.originWidth*wA/this.originHeight,x=this.originLeft+this.originWidth-uA));break;case gl:uA=this._resizeRight(L),this.options.keepRatio&&((wA=uA*this.originHeight/this.originWidth)<20?uA=(wA=20)*this.originWidth/this.originHeight:!this.options.canExceedContainer&&wA>this.container.offsetHeight-this.originTop&&(uA=(wA=this.container.offsetHeight-this.originTop)*this.originWidth/this.originHeight));break;case Lr:wA=this._resizeBottom(L),x=(oA=this._resizeLeft(L)).left,uA=oA.width,this.options.keepRatio&&(uA/this.originWidth<wA/this.originHeight?wA=uA*this.originHeight/this.originWidth:(uA=wA*this.originWidth/this.originHeight,x=this.originLeft+this.originWidth-uA));break;case Ur:wA=this._resizeBottom(L),this.options.keepRatio&&((uA=wA*this.originWidth/this.originHeight)<20?wA=(uA=20)*this.originHeight/this.originWidth:!this.options.canExceedContainer&&uA>this.container.offsetWidth-this.originLeft&&(wA=(uA=this.container.offsetWidth-this.originLeft)*this.originHeight/this.originWidth));break;case Ig:wA=this._resizeBottom(L),uA=this._resizeRight(L),this.options.keepRatio&&(uA/this.originWidth<wA/this.originHeight?wA=uA*this.originHeight/this.originWidth:uA=wA*this.originWidth/this.originHeight)}this.resizeTarget.style.left="".concat(x,"px"),this.resizeTarget.style.top="".concat(tA,"px"),this.resizeTarget.style.height="".concat(wA,"px"),this.resizeTarget.style.width="".concat(uA,"px"),this.emit("resize",x,tA,uA,wA)}else lg.debug("".concat(this.logPrefix,"mouseMove error. No valid inner info:"),this.container,this.resizeTarget,this.currentAnchor)},q.prototype._resizeLeft=function(L){var oA=L.screenX-this.resizeStartLeft,G=this.originLeft+oA,x=this.originWidth-oA;return!this.options.canExceedContainer&&G<0?(G=0,x=this.originWidth+this.originLeft):G>this.originLeft+this.originWidth-20&&(G=this.originLeft+this.originWidth-20,x=20),{left:G,width:x}},q.prototype._resizeTop=function(L){var oA=L.screenY-this.resizeStartTop,G=this.originTop+oA,x=this.originHeight-oA;return!this.options.canExceedContainer&&G<0?(G=0,x=this.originHeight+this.originTop):G>this.originTop+this.originHeight-20&&(G=this.originTop+this.originHeight-20,x=20),{top:G,height:x}},q.prototype._resizeRight=function(L){if(!this.container)return lg.debug("".concat(this.logPrefix,"_resizeRight error. No container:"),this.container),0;var oA=L.screenX-this.resizeStartLeft,G=this.originWidth+oA;return G<20?G=20:!this.options.canExceedContainer&&G>this.container.offsetWidth-this.originLeft&&(G=this.container.offsetWidth-this.originLeft),G},q.prototype._resizeBottom=function(L){if(!this.container)return lg.debug("".concat(this.logPrefix,"_resizeBottom error. No container:"),this.container),0;var oA=L.screenY-this.resizeStartTop,G=this.originHeight+oA;return G<20?G=20:!this.options.canExceedContainer&&G>this.container.offsetHeight-this.originTop&&(G=this.container.offsetHeight-this.originTop),G},q.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},q.prototype.on=function(L,oA){var G=this.callbacksMap.get(L);G?G.push(oA):this.callbacksMap.set(L,[oA])},q.prototype.off=function(L,oA){var G=this.callbacksMap.get(L);G&&(G=G.filter(function(x){return x!=oA}),this.callbacksMap.set(L,G))},q.prototype.emit=function(L){for(var oA=[],G=1;G<arguments.length;G++)oA[G-1]=arguments[G];var x=this.callbacksMap.get(L);x&&x.slice().forEach(function(tA){try{tA.apply(null,oA)}catch(uA){console.error("[Resizable]emit error:",tA,uA)}})},q.prototype.destroy=function(){var L,oA,G,x,tA,uA,wA,$A,me,p,B,v,N,O,z,X;(L=this.topLeftAnchor)===null||L===void 0||L.removeEventListener("mousedown",this.mousedown,!1),(oA=this.topAnchor)===null||oA===void 0||oA.removeEventListener("mousedown",this.mousedown,!1),(G=this.topRightAnchor)===null||G===void 0||G.removeEventListener("mousedown",this.mousedown,!1),(x=this.leftAnchor)===null||x===void 0||x.removeEventListener("mousedown",this.mousedown,!1),(tA=this.rightAnchor)===null||tA===void 0||tA.removeEventListener("mousedown",this.mousedown,!1),(uA=this.bottomLeftAnchor)===null||uA===void 0||uA.removeEventListener("mousedown",this.mousedown,!1),(wA=this.bottomAnchor)===null||wA===void 0||wA.removeEventListener("mousedown",this.mousedown,!1),($A=this.bottomRightAnchor)===null||$A===void 0||$A.removeEventListener("mousedown",this.mousedown,!1),this.callbacksMap.clear(),this.options.anchorMode!==aa.Both&&this.options.anchorMode!==aa.Edge||(this.topAnchor&&((me=this.resizeTarget)===null||me===void 0||me.removeChild(this.topAnchor)),this.leftAnchor&&((p=this.resizeTarget)===null||p===void 0||p.removeChild(this.leftAnchor)),this.rightAnchor&&((B=this.resizeTarget)===null||B===void 0||B.removeChild(this.rightAnchor)),this.bottomAnchor&&((v=this.resizeTarget)===null||v===void 0||v.removeChild(this.bottomAnchor))),this.options.anchorMode!==aa.Both&&this.options.anchorMode!==aa.Corner||(this.topLeftAnchor&&((N=this.resizeTarget)===null||N===void 0||N.removeChild(this.topLeftAnchor)),this.topRightAnchor&&((O=this.resizeTarget)===null||O===void 0||O.removeChild(this.topRightAnchor)),this.bottomLeftAnchor&&((z=this.resizeTarget)===null||z===void 0||z.removeChild(this.bottomLeftAnchor)),this.bottomRightAnchor&&((X=this.resizeTarget)===null||X===void 0||X.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},q.prototype.setVisible=function(L){var oA=L?"block":"none";this.topLeftAnchor&&(this.topLeftAnchor.style.display=oA),this.topAnchor&&(this.topAnchor.style.display=oA),this.topRightAnchor&&(this.topRightAnchor.style.display=oA),this.leftAnchor&&(this.leftAnchor.style.display=oA),this.rightAnchor&&(this.rightAnchor.style.display=oA),this.bottomLeftAnchor&&(this.bottomLeftAnchor.style.display=oA),this.bottomAnchor&&(this.bottomAnchor.style.display=oA),this.bottomRightAnchor&&(this.bottomRightAnchor.style.display=oA)},q}(),Fg=function(){var q=new Map;for(var L in r.TRTCVideoResolution)if(isNaN(Number(L))){var oA=r.TRTCVideoResolution[L],G=L.split("_");q.set(oA,{width:parseInt(G[1]),height:parseInt(G[2])})}return q}(),Ya=function(){function q(L){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=L.logger,this.container=L.view,this.container.style.position="relative",this.videoResolution=L.videoResolution,this.resMode=L.resMode,Fg.has(L.videoResolution)){var oA=Fg.get(L.videoResolution),G=oA.width,x=oA.height;this.resMode===r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=G,this.mixingVideoHeight=x):(this.mixingVideoWidth=x,this.mixingVideoHeight=G)}this.updatePreviewProperty(),this.canExceedContainer=L.canExceedContainer||!1,this.eventEmitter=new XA,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 q.prototype.updateOptions=function(L){if(!or(L.videoResolution)||!or(L.resMode)){if(this.resMode=or(L.resMode)?this.resMode:L.resMode,L.videoResolution&&Fg.has(L.videoResolution)){var oA=Fg.get(L.videoResolution),G=oA.width,x=oA.height;this.resMode===r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape?(this.mixingVideoWidth=G,this.mixingVideoHeight=x):(this.mixingVideoWidth=x,this.mixingVideoHeight=G)}this.updatePreviewProperty(),this.updateOverlay()}},q.prototype.addMedia=function(L){this.mediaList.unshift(L),L.isSelected&&(this.selectedMediaIndex=0,this.updateOverlay())},q.prototype.removeMedia=function(L){var oA=this.mediaList.findIndex(function(G){return G.id===L.id});oA!==-1&&(this.mediaList.splice(oA,1),(this.selectedMediaIndex===oA||L.isSelected)&&(this.selectedMediaIndex=-1,this.updateOverlay()))},q.prototype.updateMedia=function(L){var oA=this.mediaList.findIndex(function(G){return G.id===L.id});oA!==-1&&(this.mediaList[oA]=Object.assign({},this.mediaList[oA],L),L.isSelected&&(this.selectedMediaIndex=oA,this.updateOverlay()))},q.prototype.on=function(L,oA){var G;(G=this.eventEmitter)===null||G===void 0||G.on(L,oA)},q.prototype.off=function(L,oA){var G;(G=this.eventEmitter)===null||G===void 0||G.off(L,oA)},q.prototype.destroy=function(){var L,oA,G,x;this.resizeObserver&&(this.container&&this.resizeObserver.unobserve(this.container),this.resizeObserver.disconnect(),this.resizeObserver=null),(L=this.movableHandler)===null||L===void 0||L.destroy(),(oA=this.resizableHandler)===null||oA===void 0||oA.destroy(),this.movableHandler=null,this.resizableHandler=null,(G=this.container)===null||G===void 0||G.removeEventListener("contextmenu",this.onRightButtonClicked,!1),document.removeEventListener("mousedown",this.onContainerMousedown,!1),this.moveAndResizeOverlay&&((x=this.container)===null||x===void 0||x.removeChild(this.moveAndResizeOverlay),this.moveAndResizeOverlay=null),this.container=null,this.eventEmitter=null,this.mediaList=[]},q.prototype.initMediaMovable=function(){this.onMove=this.onMove.bind(this),this.movableHandler=new fI(this.moveAndResizeOverlay,this.container,{canExceedContainer:this.canExceedContainer,calcPositionOnly:!1}),this.movableHandler.on("move",this.onMove)},q.prototype.initMediaResizable=function(){this.onResize=this.onResize.bind(this),this.resizableHandler=new ic(this.moveAndResizeOverlay,this.container,{keepRatio:!0,stopPropagation:!0,canExceedContainer:this.canExceedContainer,anchorMode:0}),this.resizableHandler.on("resize",this.onResize)},q.prototype.updateCanExceedContainer=function(L){this.movableHandler&&(this.movableHandler.options.canExceedContainer=L),this.resizableHandler&&(this.resizableHandler.options.canExceedContainer=L)},q.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"))},q.prototype.initContainerResizeObserver=function(){this.container&&(this.onPreviewAreaResize=this.onPreviewAreaResize.bind(this),this.resizeObserver=new ResizeObserver(this.onPreviewAreaResize),this.resizeObserver.observe(this.container))},q.prototype.onPreviewAreaResize=function(L){for(var oA=0,G=L;oA<G.length;oA++)if(G[oA].target===this.container){this.updatePreviewProperty(),this.updateOverlay();break}},q.prototype.updatePreviewProperty=function(){if(this.container){var L=this.container.offsetWidth,oA=this.container.offsetHeight,G=L/this.mixingVideoWidth,x=oA/this.mixingVideoHeight;this.previewScale=G>x?G:x,this.previewWidth=this.mixingVideoWidth*this.previewScale,this.previewHeight=this.mixingVideoHeight*this.previewScale,this.previewLeft=(L-this.previewWidth)/2,this.previewTop=(oA-this.previewHeight)/2}else console.debug("".concat(this.logPrefix,"calcPreviewScale failed, no HTML element to display"))},q.prototype.updateOverlay=function(){if(this.moveAndResizeOverlay){var L=void 0,oA=void 0,G=void 0,x=void 0;if(this.selectedMediaIndex>=0){var tA=this.mediaList[this.selectedMediaIndex],uA={left:tA.rect.left*this.previewScale,top:tA.rect.top*this.previewScale,right:tA.rect.right*this.previewScale,bottom:tA.rect.bottom*this.previewScale};L="".concat(uA.left+this.previewLeft,"px"),oA="".concat(uA.top+this.previewTop,"px"),G="".concat(uA.right-uA.left,"px"),x="".concat(uA.bottom-uA.top,"px");var wA=tA.interaction||{},$A=wA.showBorder!==!1,me=wA.showResizeAnchors!==!1,p=wA.draggable!==!1,B=wA.canExceedCanvas!==!1;this.logger.debug("".concat(this.logPrefix,"updateOverlay: interaction config -"),{showBorder:$A,showResizeAnchors:me,draggable:p,canExceedCanvas:B}),this.updateCanExceedContainer(B),this.moveAndResizeOverlay.style.display="block",this.moveAndResizeOverlay.style.border=$A?"1px solid #3D7EFD":"none",this.resizableHandler&&this.resizableHandler.setVisible(me),this.movableHandler&&(this.logger.debug("".concat(this.logPrefix,"updateOverlay: setting movableHandler.setEnabled(").concat(p,")")),this.movableHandler.setEnabled(p))}else L="".concat(this.previewLeft,"px"),oA="".concat(this.previewTop,"px"),G="0px",x="0px",this.moveAndResizeOverlay.style.display="none";this.moveAndResizeOverlay.style.left=L,this.moveAndResizeOverlay.style.top=oA,this.moveAndResizeOverlay.style.width=G,this.moveAndResizeOverlay.style.height=x}},q.prototype.onMove=function(L,oA){var G;console.debug("".concat(this.logPrefix,"onMove: ").concat(L," ").concat(oA));var x=this.mediaList[this.selectedMediaIndex];if(x&&this.moveAndResizeOverlay){var tA={left:L-this.previewLeft,top:oA-this.previewTop,right:L-this.previewLeft+this.moveAndResizeOverlay.offsetWidth,bottom:oA-this.previewTop+this.moveAndResizeOverlay.offsetHeight};this.doAdsorption(tA);var uA={left:Math.round(tA.left/this.previewScale),top:Math.round(tA.top/this.previewScale),right:Math.round(tA.right/this.previewScale),bottom:Math.round(tA.bottom/this.previewScale)};(G=this.eventEmitter)===null||G===void 0||G.emit("onSourceMoved",nA({},x),uA)}else console.debug("".concat(this.logPrefix,"onMove no selected media"))},q.prototype.doAdsorption=function(L){var oA=this.BOUNDARY_ADSORPTION_THRESHOLD;Math.abs(L.left)<oA&&(L.right=L.right-L.left,L.left=0),Math.abs(L.top)<oA&&(L.bottom=L.bottom-L.top,L.top=0),Math.abs(L.right-this.previewWidth)<oA&&(L.left=L.left+this.previewWidth-L.right,L.right=this.previewWidth),Math.abs(L.bottom-this.previewHeight)<oA&&(L.top=L.top+this.previewHeight-L.bottom,L.bottom=this.previewHeight)},q.prototype.onResize=function(L,oA,G,x){var tA;console.debug("".concat(this.logPrefix,"onResize: ").concat(L," ").concat(oA," ").concat(G," ").concat(x));var uA=this.mediaList[this.selectedMediaIndex];if(uA){var wA=uA.interaction||{};if(!ds(wA.showResizeAnchors)&&!wA.showResizeAnchors)return;var $A={left:L-this.previewLeft,top:oA-this.previewTop,right:L-this.previewLeft+G,bottom:oA-this.previewTop+x},me={left:Math.round($A.left/this.previewScale),top:Math.round($A.top/this.previewScale),right:Math.round($A.right/this.previewScale),bottom:Math.round($A.bottom/this.previewScale)};(tA=this.eventEmitter)===null||tA===void 0||tA.emit("onSourceResized",nA({},uA),me)}else console.debug("".concat(this.logPrefix,"onResize no selected media"))},q.prototype.getMaxZOrderMedia=function(L){var oA,G,x,tA,uA,wA;if(L.length===0)return null;for(var $A=L[0],me=(x=(G=(oA=$A.origin)===null||oA===void 0?void 0:oA.layout)===null||G===void 0?void 0:G.zOrder)!==null&&x!==void 0?x:-1/0,p=1;p<L.length;p++){var B=(wA=(uA=(tA=L[p].origin)===null||tA===void 0?void 0:tA.layout)===null||uA===void 0?void 0:uA.zOrder)!==null&&wA!==void 0?wA:-1/0;B>me&&(me=B,$A=L[p])}return $A},q.prototype.emitOnSelect=function(L){var oA;if(L){for(var G=this.mediaList.length,x=0;x<G;x++)if(L.id===this.mediaList[x].id){this.selectedMediaIndex=x;break}}else this.selectedMediaIndex=-1;this.updateOverlay(),(oA=this.eventEmitter)===null||oA===void 0||oA.emit("onSourceSelected",L?nA({},L):null)},q.prototype.onContainerMousedown=function(L){var oA;console.debug("".concat(this.logPrefix,"onContainerMousedown event:"),L,L.target,L.currentTarget);var G=L.target;if(this.eventButton=L.button,G&&this.container){if(this.container.contains(G)){console.debug("".concat(this.logPrefix,"onContainerMousedown mix video image clicked"));var x=this.container.getBoundingClientRect(),tA=L.clientX-x.x-this.previewLeft,uA=L.clientY-x.y-this.previewTop,wA=tA/this.previewScale,$A=uA/this.previewScale;console.debug("".concat(this.logPrefix,"onContainerMousedown click point coordinates in mix video:"),tA,uA,wA,$A);for(var me=0;me<this.mediaList.length;me++){var p=this.mediaList[me];p.rect&&wA>=p.rect.left&&wA<=p.rect.right&&$A>=p.rect.top&&$A<=p.rect.bottom&&((oA=p.interaction)===null||oA===void 0?void 0:oA.selectable)!==!1&&(this.clickedMediaSources.push(p),this.mediaList[this.selectedMediaIndex]&&p.id===this.mediaList[this.selectedMediaIndex].id&&(this.oldSelectedIndex=this.clickedMediaSources.length-1))}this.mousedownLeft=L.screenX,this.mousedownTop=L.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)}},q.prototype.onContainerMousemove=function(L){var oA;if(L.target&&this.container&&this.mousedownLeft!==null&&this.mousedownTop!==null){var G=L.screenX-this.mousedownLeft,x=L.screenY-this.mousedownTop;(Math.abs(G)>=5||Math.abs(x)>=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),(oA=this.moveAndResizeOverlay)===null||oA===void 0||oA.dispatchEvent(new MouseEvent("mousedown",{screenX:this.mousedownLeft,screenY:this.mousedownTop,button:this.eventButton}))))}},q.prototype.onContainerMouseup=function(L){if(document.removeEventListener("mousemove",this.onContainerMousemove,!1),document.removeEventListener("mouseup",this.onContainerMouseup,!1),console.debug("".concat(this.logPrefix,"onContainerMouseup data:"),this.clickedMediaSources,this.oldSelectedIndex),L.target&&this.container){if(this.clickedMediaSources.length>0)if(this.oldSelectedIndex>=0){if(this.eventButton===0){var oA=(this.oldSelectedIndex+1)%this.clickedMediaSources.length;this.newSelected=this.clickedMediaSources[oA],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},q.prototype.onRightButtonClicked=function(L){var oA;console.debug("".concat(this.logPrefix,"onRightButtonClicked:"),L.target,L.currentTarget,L.buttons),L.preventDefault(),(oA=this.eventEmitter)===null||oA===void 0||oA.emit("onRightButtonClicked",nA({},this.mediaList[this.selectedMediaIndex]))},q}(),Fl=function(){function q(L){if(this.logPrefix="[TRTCMediaMixingManager]",this.eventEmitter=new XA,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,q.mediaMixingManager)return q.mediaMixingManager;q.mediaMixingManager=this,this.logger=L.logger,this.trtc=L.trtc,this.trtcCloud=L.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 q.prototype.destroy=function(){return lA(this,void 0,Promise,function(){var L,oA,G,x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.view=null,uA.label=1;case 1:return uA.trys.push([1,3,,4]),[4,this.trtc.stopPlugin("VideoMixer")];case 2:return uA.sent(),[3,4];case 3:return L=uA.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin error:"),L),[3,4];case 4:if(!(this.screensWithSystemAudio.size>0))return[3,12];uA.label=5;case 5:uA.trys.push([5,10,,11]),oA=0,G=Array.from(this.screensWithSystemAudio),uA.label=6;case 6:return oA<G.length?(x=G[oA],[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack_".concat(x)})]):[3,9];case 7:uA.sent(),uA.label=8;case 8:return oA++,[3,6];case 9:return[3,11];case 10:return tA=uA.sent(),this.logger.error("".concat(this.logPrefix," destroy and stopPlugin AudioMixer error:"),tA),[3,11];case 11:this.screensWithSystemAudio.clear(),uA.label=12;case 12:return this.destroyDesigner(),this.eventEmitter=null,q.mediaMixingManager=null,[2]}})})},q.prototype.bindPreviewArea=function(L){return lA(this,void 0,Promise,function(){var oA,G,x,tA,uA=this;return cA(this,function(wA){switch(wA.label){case 0:return this.logger.log("".concat(this.logPrefix," bindPreviewArea:"),L),this.view=L,oA=this._getCanvasSize(this.publishParams.videoEncoderParams.videoResolution,this.publishParams.videoEncoderParams.resMode),G=oA.width,x=oA.height,[4,this.trtc.startPlugin("VideoMixer",{view:L,canvasInfo:{width:G,height:x,canvasColor:String(this.publishParams.canvasColor)},onScreenShareStop:function($A){var me,p=uA.sourceList.find(function(B){return B.id===$A});uA.removeMediaSource(p),(me=uA.eventEmitter)===null||me===void 0||me.emit("onSourceDisconnected",p||null)}})];case 1:return tA=wA.sent(),console.log("startPlugin result",tA,tA.track),this.mixVideoTrack=tA.track,this.createDesigner(),[2]}})})},q.prototype._getTRTCSourceKey=function(L){var oA;return((oA={})[r.TRTCMediaSourceType.kCamera]="camera",oA[r.TRTCMediaSourceType.kScreen]="screen",oA[r.TRTCMediaSourceType.kText]="text",oA[r.TRTCMediaSourceType.kVideo]="video",oA[r.TRTCMediaSourceType.kImage]="image",oA)[L.type]},q.prototype._getTRTCFillMode=function(L){var oA;return((oA={})[r.TRTCVideoFillMode.TRTCVideoFillMode_Fill]="cover",oA[r.TRTCVideoFillMode.TRTCVideoFillMode_Fit]="contain",oA)[L]},q.prototype._getTRTCVideoProfile=function(L,oA){var G,x=((G={})[r.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},G[r.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},G[r.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},G[r.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},G[r.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},G);return{width:x[L].width,height:x[L].height,frameRate:oA,bitrate:1e3}},q.prototype._getTRTCLayout=function(L){var oA,G,x,tA,uA,wA,$A,me,p,B,v,N,O,z,X,rA,DA={zIndex:((x=L.layout)===null||x===void 0?void 0:x.zOrder)||0};if(ds((tA=L.layout)===null||tA===void 0?void 0:tA.rect)||(DA.x=(uA=L.layout)===null||uA===void 0?void 0:uA.rect.left,DA.y=(wA=L.layout)===null||wA===void 0?void 0:wA.rect.top,DA.width=(($A=L.layout)===null||$A===void 0?void 0:$A.rect.right)-((me=L.layout)===null||me===void 0?void 0:me.rect.left),DA.height=((p=L.layout)===null||p===void 0?void 0:p.rect.bottom)-((B=L.layout)===null||B===void 0?void 0:B.rect.top)),ds((v=L.layout)===null||v===void 0?void 0:v.fillMode)||(DA.fillMode=this._getTRTCFillMode((N=L.layout)===null||N===void 0?void 0:N.fillMode)),!ds((O=L.layout)===null||O===void 0?void 0:O.mirror)){var GA=((oA={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!0,oA[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,oA[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,oA);DA.mirror=GA[(z=L.layout)===null||z===void 0?void 0:z.mirror]}if(!ds((X=L.layout)===null||X===void 0?void 0:X.rotation)){var VA=((G={})[r.TRTCVideoRotation.TRTCVideoRotation0]=0,G[r.TRTCVideoRotation.TRTCVideoRotation90]=90,G[r.TRTCVideoRotation.TRTCVideoRotation180]=180,G[r.TRTCVideoRotation.TRTCVideoRotation270]=270,G);DA.rotation=VA[(rA=L.layout)===null||rA===void 0?void 0:rA.rotation]}return DA},q.prototype._getTRTCSourceItem=function(L){var oA,G,x,tA,uA,wA,$A,me,p,B;switch(L.type){case r.TRTCMediaSourceType.kScreen:return B=r.TRTCVideoResolution.TRTCVideoResolution_1920_1080,L?.useInternalTrack?{id:L.id,layout:this._getTRTCLayout(L),useInternalTrack:!0}:{id:L.id,profile:this._getTRTCVideoProfile(((oA=L.screen)===null||oA===void 0?void 0:oA.resolution)||B,((G=L.screen)===null||G===void 0?void 0:G.fps)||15),layout:this._getTRTCLayout(L),systemAudio:(x=L.screen)===null||x===void 0?void 0:x.systemAudio};case r.TRTCMediaSourceType.kCamera:return B=r.TRTCVideoResolution.TRTCVideoResolution_1280_720,L?.useInternalTrack?{id:L.id,layout:this._getTRTCLayout(L),useInternalTrack:!0}:{id:L.id,cameraId:(tA=L.camera)===null||tA===void 0?void 0:tA.cameraId,profile:this._getTRTCVideoProfile(((uA=L.camera)===null||uA===void 0?void 0:uA.resolution)||B,((wA=L.camera)===null||wA===void 0?void 0:wA.fps)||15),videoTrack:($A=L.camera)===null||$A===void 0?void 0:$A.videoTrack,layout:this._getTRTCLayout(L)};case r.TRTCMediaSourceType.kText:return nA(nA({id:L.id},L.text||{}),{layout:this._getTRTCLayout(L)});case r.TRTCMediaSourceType.kImage:return{id:L.id,url:(me=L.image)===null||me===void 0?void 0:me.url,layout:this._getTRTCLayout(L)};case r.TRTCMediaSourceType.kVideo:return{id:L.id,url:(p=L.video)===null||p===void 0?void 0:p.url,layout:this._getTRTCLayout(L)};default:return null}},q.prototype._getCanvasSize=function(L,oA){var G,x,tA=((G={})[r.TRTCVideoResolution.TRTCVideoResolution_480_270]={width:480,height:270},G[r.TRTCVideoResolution.TRTCVideoResolution_640_360]={width:640,height:360},G[r.TRTCVideoResolution.TRTCVideoResolution_960_540]={width:960,height:540},G[r.TRTCVideoResolution.TRTCVideoResolution_1280_720]={width:1280,height:720},G[r.TRTCVideoResolution.TRTCVideoResolution_1920_1080]={width:1920,height:1080},G)[L],uA=tA.width,wA=tA.height;return oA===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait&&(uA=(x=[wA,uA])[0],wA=x[1]),{width:uA,height:wA}},q.prototype.addMediaSource=function(L){var oA;return lA(this,void 0,Promise,function(){var G,x,tA,uA,wA,$A,me,p,B;return cA(this,function(v){switch(v.label){case 0:if(this.findMediaSourceIndex(L)!==-1)throw new Error("Media source already existed");if(G=wn(L),x=this._getTRTCSourceKey(G),!(tA=this._getTRTCSourceItem(G))||!x)throw new Error("Invalid media source");return(uA=wn(this.trtcSourceMap.get(x))||[]).push(tA),[4,this.trtc.updatePlugin("VideoMixer",(B={},B[x]=uA,B))];case 1:return wA=v.sent(),$A=wA.result,me=wA.systemAudioTrackList,L.type===r.TRTCMediaSourceType.kScreen&&me?.[L.id]?(this.screensWithSystemAudio.add(L.id),p=me?.[L.id],this.logger.log("".concat(this.logPrefix," startPlugin AudioMixer, track ID:"),p.id),[4,this.trtc.startPlugin("AudioMixer",{id:"systemAudioTrack_".concat(L.id),track:p})]):[3,3];case 2:v.sent(),v.label=3;case 3:if($A.failedDetails.find(function(N){return N.id===L.id}))throw new Error("Failed to add media source");return G.isSelected&&(this.unselectMediaSource(this.selectedSource),this.selectedSource=L),this.trtcSourceMap.set(x,uA),(oA=this.mediaMixingDesigner)===null||oA===void 0||oA.addMedia({id:G.id,rect:this._getDesignerMediaRect(L),isSelected:!!ds(G.isSelected)||G.isSelected,origin:G,interaction:G.interaction}),G.isSelected&&(this.selectedSource=G),this.sourceList.push(G),[2]}})})},q.prototype.removeMediaSource=function(L){var oA,G,x;return lA(this,void 0,Promise,function(){var tA,uA,wA,$A,me,p;return cA(this,function(B){switch(B.label){case 0:if(this.logger.log("".concat(this.logPrefix,"removeMediaSource:"),L),(tA=this.findMediaSourceIndex(L))===-1)throw new Error("Not existing media source to remove");return uA=this._getTRTCSourceKey(L),wA=wn(this.trtcSourceMap.get(uA))||[],$A=wA.findIndex(function(v){return v.id===L.id}),wA.splice($A,1),[4,this.trtc.updatePlugin("VideoMixer",(p={},p[uA]=wA,p))];case 1:return me=B.sent().result,L.type===r.TRTCMediaSourceType.kScreen&&this.screensWithSystemAudio.has(L.id)?(this.screensWithSystemAudio.delete(L.id),[4,this.trtc.stopPlugin("AudioMixer",{id:"systemAudioTrack_".concat(L.id)})]):[3,3];case 2:B.sent(),B.label=3;case 3:if(me.failedDetails.find(function(v){return v.id===L.id}))throw new Error("Failed to remove media source");return(oA=this.mediaMixingDesigner)===null||oA===void 0||oA.removeMedia({id:L.id,rect:(G=L.layout)===null||G===void 0?void 0:G.rect,isSelected:L.isSelected||!1,origin:wn(L)}),((x=this.selectedSource)===null||x===void 0?void 0:x.id)===L.id&&(this.selectedSource=null),this.trtcSourceMap.set(uA,wA),this.sourceList.splice(tA,1),[2]}})})},q.prototype._getDesignerMediaRect=function(L){var oA,G,x=((oA=L.layout)===null||oA===void 0?void 0:oA.rect)||{left:0,top:0,right:0,bottom:0},tA=x.left,uA=x.top,wA=x.right,$A=x.bottom,me=wA-tA,p=$A-uA;switch((G=L.layout)===null||G===void 0?void 0:G.rotation){case r.TRTCVideoRotation.TRTCVideoRotation0:case r.TRTCVideoRotation.TRTCVideoRotation180:return{left:tA,top:uA,right:wA,bottom:$A};case r.TRTCVideoRotation.TRTCVideoRotation90:case r.TRTCVideoRotation.TRTCVideoRotation270:return{left:tA,top:uA,right:tA+p,bottom:uA+me};default:return{left:tA,top:uA,right:wA,bottom:$A}}},q.prototype._getPluginMediaRect=function(L){var oA,G,x=((oA=L.layout)===null||oA===void 0?void 0:oA.rect)||{left:0,top:0,right:0,bottom:0},tA=x.left,uA=x.top,wA=x.right,$A=x.bottom;switch((G=L.layout)===null||G===void 0?void 0:G.rotation){case r.TRTCVideoRotation.TRTCVideoRotation0:case r.TRTCVideoRotation.TRTCVideoRotation180:return{left:tA,top:uA,right:wA,bottom:$A};case r.TRTCVideoRotation.TRTCVideoRotation90:case r.TRTCVideoRotation.TRTCVideoRotation270:return{left:tA,top:uA,right:tA+($A-uA),bottom:uA+(wA-tA)};default:return{left:tA,top:uA,right:wA,bottom:$A}}},q.prototype.updateMediaSource=function(L){var oA,G;return lA(this,void 0,Promise,function(){var x,tA,uA,wA,$A,me,p,B;return cA(this,function(v){switch(v.label){case 0:if(this.logger.log("".concat(this.logPrefix,"updateMediaSource:"),L),(x=this.findMediaSourceIndex(L))===-1)throw new Error("Not existing media source to update");return tA=nA(nA({},this.sourceList[x]),wn(L)),L.isSelected?(this.unselectMediaSource(this.selectedSource),this.selectedSource=L):((oA=this.selectedSource)===null||oA===void 0?void 0:oA.id)===L.id&&(this.selectedSource=null),uA=this._getTRTCSourceKey(tA),wA=this._getTRTCSourceItem(tA),$A=wn(this.trtcSourceMap.get(uA))||[],me=$A.findIndex(function(N){return N.id===L.id}),$A[me]=wA,[4,this.trtc.updatePlugin("VideoMixer",(B={},B[uA]=$A,B))];case 1:if(v.sent().result.failedDetails.find(function(N){return N.id===L.id}))throw new Error("Failed to update media source");return p={id:L.id,rect:this._getDesignerMediaRect(L),isSelected:L.isSelected||!1,origin:wn(L),interaction:tA.interaction},this.logger.log("".concat(this.logPrefix,"updateParams:"),JSON.stringify(p)),(G=this.mediaMixingDesigner)===null||G===void 0||G.updateMedia(p),this.trtcSourceMap.set(uA,$A),this.sourceList[x]=tA,[2]}})})},q.prototype.startPublish=function(){return lA(this,void 0,Promise,function(){return cA(this,function(L){switch(L.label){case 0:return this.logger.log("".concat(this.logPrefix," startPublish")),[4,this.trtcCloud._startPublishVideoTrack({videoTrack:this.mixVideoTrack})];case 1:return L.sent(),[2]}})})},q.prototype.stopPublish=function(){return lA(this,void 0,Promise,function(){return cA(this,function(L){switch(L.label){case 0:return this.logger.log("".concat(this.logPrefix," stopPublish")),[4,this.trtcCloud._stopPublishVideoTrack()];case 1:return L.sent(),[2]}})})},q.prototype.updatePublishParams=function(L){var oA,G,x,tA,uA;return lA(this,void 0,Promise,function(){var wA,$A,me,p,B,v,N,O,z,X,rA,DA,GA,VA,te,Ce,Ke,ot,at,kt,Vt,Ui,ao,Zi;return cA(this,function(Ei){switch(Ei.label){case 0:this.logger.log("".concat(this.logPrefix,"updatePublishParams:"),L),wA=this.publishParams,this.publishParams=L,$A=this._getCanvasSize(L.videoEncoderParams.videoResolution,L.videoEncoderParams.resMode),me=$A.width,p=$A.height,Ei.label=1;case 1:return Ei.trys.push([1,3,,4]),[4,this.trtc.updatePlugin("VideoMixer",{canvasInfo:{width:me,height:p,canvasColor:String(L.canvasColor)}})];case 2:return Ei.sent(),[3,4];case 3:if((B=Ei.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw B;return[3,4];case 4:(x=this.mediaMixingDesigner)===null||x===void 0||x.updateOptions({videoResolution:this.publishParams.videoEncoderParams.videoResolution,resMode:this.publishParams.videoEncoderParams.resMode}),Ei.label=5;case 5:Ei.trys.push([5,11,12,17]),v=Ee(this.sourceList),Ei.label=6;case 6:return[4,v.next()];case 7:return(N=Ei.sent()).done?[3,10]:(O=N.value).layout?(z=O.layout.rect||{left:0,top:0,right:0,bottom:0},X=z.left,rA=z.top,DA=z.right,GA=z.bottom,VA=this._getCanvasSize(wA.videoEncoderParams.videoResolution),te=VA.width,Ce=VA.height,Ke=this._getCanvasSize(L.videoEncoderParams.videoResolution),ot=Ke.width,at=Ke.height,kt=X*ot/te,Vt=rA*at/Ce,Ui=DA*ot/te,ao=GA*at/Ce,O.layout.rect={left:kt,top:Vt,right:Ui,bottom:ao},[4,this.updateMediaSource(O)]):[3,9];case 8:Ei.sent(),(tA=this.eventEmitter)===null||tA===void 0||tA.emit("onSourceResized",O,(uA=O.layout)===null||uA===void 0?void 0:uA.rect),Ei.label=9;case 9:return[3,6];case 10:return[3,17];case 11:return Zi=Ei.sent(),oA={error:Zi},[3,17];case 12:return Ei.trys.push([12,,15,16]),N&&!N.done&&(G=v.return)?[4,G.call(v)]:[3,14];case 13:Ei.sent(),Ei.label=14;case 14:return[3,16];case 15:if(oA)throw oA.error;return[7];case 16:return[7];case 17:return[4,this.trtcCloud.setVideoEncoderParam(L.videoEncoderParams)];case 18:return Ei.sent(),[2]}})})},q.prototype.on=function(L,oA){var G;(G=this.eventEmitter)===null||G===void 0||G.on(L,oA)},q.prototype.off=function(L,oA){var G;(G=this.eventEmitter)===null||G===void 0||G.off(L,oA)},q.prototype.onVisibilityChange=function(){this.logger.log("".concat(this.logPrefix,"onVisibilityChange document.hidden:").concat(document.hidden)),document.hidden?this.bindPreviewArea(null):this.bindPreviewArea(this.view)},q.prototype.createDesigner=function(){var L,oA;this.view&&(this.mediaMixingDesigner=new Ya({view:this.view,videoResolution:((L=this.publishParams)===null||L===void 0?void 0:L.videoEncoderParams.videoResolution)||r.TRTCVideoResolution.TRTCVideoResolution_1920_1080,resMode:((oA=this.publishParams)===null||oA===void 0?void 0:oA.videoEncoderParams.resMode)||r.TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape,canExceedContainer:!0,logger:this.logger}),this.listenDesignerEvent())},q.prototype.destroyDesigner=function(){var L;this.mediaMixingDesigner&&(this.unlistenDesignerEvent(),(L=this.mediaMixingDesigner)===null||L===void 0||L.destroy(),this.mediaMixingDesigner=null)},q.prototype.listenDesignerEvent=function(){var L,oA,G,x,tA;(L=this.mediaMixingDesigner)===null||L===void 0||L.on("onError",this.onError),(oA=this.mediaMixingDesigner)===null||oA===void 0||oA.on("onSourceSelected",this.onSourceSelected),(G=this.mediaMixingDesigner)===null||G===void 0||G.on("onSourceMoved",this.onSourceMoved),(x=this.mediaMixingDesigner)===null||x===void 0||x.on("onSourceResized",this.onSourceResized),(tA=this.mediaMixingDesigner)===null||tA===void 0||tA.on("onRightButtonClicked",this.onRightButtonClicked)},q.prototype.unlistenDesignerEvent=function(){var L,oA,G,x,tA;(L=this.mediaMixingDesigner)===null||L===void 0||L.off("onError",this.onError),(oA=this.mediaMixingDesigner)===null||oA===void 0||oA.off("onSourceSelected",this.onSourceSelected),(G=this.mediaMixingDesigner)===null||G===void 0||G.off("onSourceMoved",this.onSourceMoved),(x=this.mediaMixingDesigner)===null||x===void 0||x.off("onSourceResized",this.onSourceResized),(tA=this.mediaMixingDesigner)===null||tA===void 0||tA.off("onRightButtonClicked",this.onRightButtonClicked)},q.prototype.onError=function(L,oA){this.logger.log("".concat(this.logPrefix,"onError:"),L,oA)},q.prototype.onSourceSelected=function(L){var oA;return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this.logger.debug("".concat(this.logPrefix,"onSourceSelected: "),L,this.selectedSource),L&&this.selectedSource&&L.origin.id===this.selectedSource.id?[2]:L?.origin?(this.updateMediaSource(nA(nA({},L.origin),{isSelected:!0})),[3,3]):[3,1];case 1:return this.selectedSource?[4,this.updateMediaSource(nA(nA({},this.selectedSource),{isSelected:!1}))]:[3,3];case 2:G.sent(),this.selectedSource=null,G.label=3;case 3:return(oA=this.eventEmitter)===null||oA===void 0||oA.emit("onSourceSelected",L?L.origin:null),[2]}})})},q.prototype.onSourceMoved=function(L,oA){var G,x;if(this.logger.debug("".concat(this.logPrefix,"onSourceMoved:"),L,oA),L?.origin){var tA=nA(nA({},L.origin),{layout:nA(nA({},L.origin.layout),{rect:oA})});this.updateMediaSource(en(tA,{layout:{rect:this._getPluginMediaRect(tA)}})),((G=this.selectedSource)===null||G===void 0?void 0:G.id)===L.origin.id&&(this.selectedSource=this.sourceList.find(function(uA){return uA.id===L.origin.id})),(x=this.eventEmitter)===null||x===void 0||x.emit("onSourceMoved",L.origin,this._getPluginMediaRect(tA))}},q.prototype.onSourceResized=function(L,oA){var G,x;if(this.logger.debug("".concat(this.logPrefix,"onSourceResized:"),L,oA),L?.origin){var tA=nA(nA({},L.origin),{layout:nA(nA({},L.origin.layout),{rect:oA})});this.updateMediaSource(en(tA,{layout:{rect:this._getPluginMediaRect(tA)}})),((G=this.selectedSource)===null||G===void 0?void 0:G.id)===L.origin.id&&(this.selectedSource=this.sourceList.find(function(uA){return uA.id===L.origin.id}))}(x=this.eventEmitter)===null||x===void 0||x.emit("onSourceResized",L.origin,oA)},q.prototype.onRightButtonClicked=function(L){var oA;this.logger.debug("".concat(this.logPrefix,"onRightButtonClicked:"),L),(oA=this.eventEmitter)===null||oA===void 0||oA.emit("onRightButtonClicked",L.origin)},q.prototype.isSameMediaSource=function(L,oA){return L.id===oA.id},q.prototype.isMediaSourceExisted=function(L){var oA=this;return this.sourceList.some(function(G){return oA.isSameMediaSource(G,L)})},q.prototype.findMediaSourceIndex=function(L){return this.sourceList.findIndex(function(oA){return oA.id===L.id})},q.prototype.unselectMediaSource=function(L){var oA,G;return lA(this,void 0,Promise,function(){var x;return cA(this,function(tA){return L?((x=this.findMediaSourceIndex(L))!==-1&&(this.sourceList[x].isSelected=!1),(oA=this.mediaMixingDesigner)===null||oA===void 0||oA.updateMedia({id:L.id,rect:(G=L.layout)===null||G===void 0?void 0:G.rect,isSelected:!1,origin:wn(L)}),[2]):[2]})})},q.mediaMixingManager=null,q}(),ha=function(){function q(){this.isRunning=!1,this.queue=[]}return Object.defineProperty(q.prototype,"length",{get:function(){return this.queue.length},enumerable:!1,configurable:!0}),Object.defineProperty(q.prototype,"lastQueueItem",{get:function(){return this.length===0?null:this.queue[this.length-1]},enumerable:!1,configurable:!0}),q.prototype.push=function(L,oA,G,x){var tA,uA;oA===void 0&&(oA=!1),G===void 0&&(G=!1);var wA=nA(nA({},L),{functionName:x}),$A=new Promise(function(p,B){wA.resolve=p,wA.reject=B});if(wA.promise=$A,oA)this.length<=1?this.queue.push(wA):(uA=(tA=this.lastQueueItem)===null||tA===void 0?void 0:tA.promise)===null||uA===void 0||uA.then(wA.resolve,wA.reject);else{if(G&&x&&this.queue.length>1){var me=[];this.queue=this.queue.filter(function(p,B){return B===0||p.functionName!==x||(me.push(p),!1)}),me.forEach(function(p){p.reject(new Error("aborted by newer task"))})}this.queue.push(wA)}return this.isRunning||this.callNext(),$A},q.prototype.shift=function(){return this.queue.shift()},q.prototype.callNext=function(){var L=this;if(!this.isRunning&&this.length!==0){var oA=this.queue[0],G=oA.fn,x=oA.args,tA=oA.context,uA=oA.resolve,wA=oA.reject;this.isRunning=!0,G.apply(tA,x).then(uA,wA).finally(function(){L.isRunning=!1,L.shift(),L.callNext()})}},q}(),DI=new WeakMap,tu=new WeakMap,Ba=new WeakMap;function cl(q,L){return L===void 0&&(L={}),function(oA,G,x){var tA=x.value,uA=L.deduplicate,wA=uA!==void 0&&uA;return x.value=function(){for(var $A=[],me=0;me<arguments.length;me++)$A[me]=arguments[me];var p=q.apply(void 0,$A),B=Array.isArray(p)?p:[p],v=Ba.get(this)||new Map;Ba.set(this,v);for(var N=null,O=0,z=B;O<z.length;O++){var X=z[O],rA=v.get(X);if(rA){N=rA;break}}for(var DA=N||new ha,GA=0,VA=B;GA<VA.length;GA++)X=VA[GA],v.set(X,DA);var te=wA?G:void 0;return DA.push({fn:tA,args:$A,context:this},!1,wA,te)},x}}var xE=function(){function q(L){var oA=this;this.logPrefix="[AITranscriberManager]",this.listeners=new Set,this.isPaused=!1,this.isMessageListenerRegistered=!1,this.handleMessageEvent=function(G){var x=oA.createMessageFromEvent(G);oA._notifyListeners("onReceiveTranscriberMessage",G.roomId,x)},this.handleStateEvent=function(G){var x=G.transcriberRobotId,tA=G.state,uA=G.roomId,wA=G.sourceLanguage,$A=wA===void 0?"":wA,me=G.error,p=G.errorMessage,B=p===void 0?"":p;uA&&x&&(tA==="started"?oA._notifyListeners("onRealtimeTranscriberStarted",uA,x,$A):tA==="stopped"&&oA._notifyListeners("onRealtimeTranscriberStopped",uA,x,0),me!=null&&oA._notifyListeners("onRealtimeTranscriberError",uA,x,me,B))},this.logger=L.logger,this.trtc=L.trtc,this.registerStateListener()}return q.prototype.registerStateListener=function(){this.trtc.on(U.default.EVENT.REALTIME_TRANSCRIBER_STATE_CHANGED,this.handleStateEvent)},q.prototype.createMessageFromEvent=function(L){var oA,G,x,tA;return{segmentId:(oA=L?.segmentId)!==null&&oA!==void 0?oA:"",speakerUserId:(G=L?.speakerUserId)!==null&&G!==void 0?G:"",sourceText:(x=L?.sourceText)!==null&&x!==void 0?x:"",translationTexts:L?.translationTexts?new Map(Object.entries(L.translationTexts)):void 0,timestamp:(tA=L?.timestamp)!==null&&tA!==void 0?tA:Date.now(),isCompleted:!!L?.isCompleted}},q.prototype.updateMessageSubscription=function(){var L=!this.isPaused&&this.listeners.size>0;if(L&&!this.isMessageListenerRegistered)return this.trtc.on(U.default.EVENT.REALTIME_TRANSCRIBER_MESSAGE,this.handleMessageEvent),void(this.isMessageListenerRegistered=!0);!L&&this.isMessageListenerRegistered&&(this.trtc.off(U.default.EVENT.REALTIME_TRANSCRIBER_MESSAGE,this.handleMessageEvent),this.isMessageListenerRegistered=!1)},q.prototype.log=function(){for(var L,oA,G=[],x=0;x<arguments.length;x++)G[x]=arguments[x];(oA=(L=this.logger)===null||L===void 0?void 0:L.log)===null||oA===void 0||oA.call.apply(oA,WA([L,this.logPrefix],G,!1))},q.prototype.logError=function(){for(var L,oA,G=[],x=0;x<arguments.length;x++)G[x]=arguments[x];(oA=(L=this.logger)===null||L===void 0?void 0:L.error)===null||oA===void 0||oA.call.apply(oA,WA([L,this.logPrefix],G,!1))},q.prototype._notifyListeners=function(L){for(var oA=this,G=[],x=1;x<arguments.length;x++)G[x-1]=arguments[x];this.listeners.forEach(function(tA){var uA=tA[L];if(typeof uA=="function")try{uA.apply(tA,G)}catch(wA){oA.logError("Error notifying listener:",wA)}})},q.prototype.startRealtimeTranscriber=function(L){return lA(this,void 0,Promise,function(){var oA,G,x;return cA(this,function(tA){switch(tA.label){case 0:if(this.log("startRealtimeTranscriber:",L),!L?.sourceLanguage)throw new Error("sourceLanguage is required");oA={sourceLanguage:L.sourceLanguage},L.transcriberRobotId&&(oA.transcriberRobotId=L.transcriberRobotId),L.userIdsToTranscribe!==void 0&&(oA.userIdsToTranscribe=L.userIdsToTranscribe),L.translationLanguages!==void 0&&(oA.translationLanguages=L.translationLanguages),tA.label=1;case 1:return tA.trys.push([1,3,,4]),[4,this.trtc.startPlugin("RealtimeTranscriber",oA)];case 2:return G=tA.sent(),this.log("startRealtimeTranscriber success, robotId:",G),[2,G];case 3:throw x=tA.sent(),this.logError("startRealtimeTranscriber error:",x),x;case 4:return[2]}})})},q.prototype.stopRealtimeTranscriber=function(L){return lA(this,void 0,Promise,function(){var oA;return cA(this,function(G){switch(G.label){case 0:if(this.log("stopRealtimeTranscriber:",L),!L)throw new Error("transcriberRobotId is required");G.label=1;case 1:return G.trys.push([1,3,,4]),[4,this.trtc.stopPlugin("RealtimeTranscriber",{transcriberRobotId:L})];case 2:return G.sent(),this.log("stopRealtimeTranscriber success"),[3,4];case 3:throw oA=G.sent(),this.logError("stopRealtimeTranscriber error:",oA),oA;case 4:return[2]}})})},q.prototype.pauseReceivingMessage=function(){this.isPaused||(this.log("pauseReceivingMessage"),this.isPaused=!0,this.updateMessageSubscription())},q.prototype.resumeReceivingMessage=function(){this.isPaused&&(this.log("resumeReceivingMessage"),this.isPaused=!1,this.updateMessageSubscription())},q.prototype.addListener=function(L){this.listeners.add(L),this.updateMessageSubscription()},q.prototype.removeListener=function(L){this.log("removeListener"),this.listeners.delete(L),this.updateMessageSubscription()},q.prototype.destroy=function(){this.log("destroy"),this.listeners.clear(),this.isPaused=!0,this.updateMessageSubscription(),this.trtc.off(U.default.EVENT.REALTIME_TRANSCRIBER_STATE_CHANGED,this.handleStateEvent)},q}(),iu=U.default._loggerManager;iu.info("TRTCCloud Version: ".concat(mC));var YE,Jr,ou,Ot="trtcCloud",Vu=1;navigator&&navigator.mediaDevices&&navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",(YE=function(){Ju.size!==0&&Array.from(Ju.values()).forEach(function(q){q.fn()})},Jr=30,function(){for(var q=this,L=[],oA=0;oA<arguments.length;oA++)L[oA]=arguments[oA];ou>0&&clearTimeout(ou),ou=window.setTimeout(function(){YE.apply(q,L),ou=-1},Jr)}));var Ju=new Map,fC=function(q){function L(G){G===void 0&&(G={});var x=q.call(this)||this;x._version="",x._frameWorkType=30,x._component=0,x._language=0,x._networkProxy={},x._localView=null,x._autoRecvAudio=!0,x._autoRecvVideo=!1,x._localTestView=null,x._isVideoPublish=!0,x._localRenderParams={rotation:r.TRTCVideoRotation.TRTCVideoRotation0,fillMode:r.TRTCVideoFillMode.TRTCVideoFillMode_Fill,mirrorType:r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto},x._encoderMirror=void 0,x._videoProfile={},x._isAudioPublish=!0,x._audioMuteType=!1,x._audioProfile=U.default.TYPE.AUDIO_PROFILE_STANDARD,x._captureVolume=100,x._playoutVolume=100,x._isSharingScreen=!1,x._remoteStreamConfig=new Map,x._remoteStreamMap=new Map,x._cameraList=[],x._microphoneList=[],x._speakerList=[],x._currentCamera={},x._currentMicrophone={},x._currentSpeaker={},x._currentCameraId="",x._currentMicrophoneId="",x._currentSpeakerId="",x._screenShareParams={option:{}},x._isMobile=XI,x._isFrontCamera=!0,x._cameraVideoTrack=null,x._smallStreamVideoProfile=void 0,x._qosPreference=void 0,x._defaultVideoProfile={width:640,height:480,frameRate:15,bitrate:900},x._defaultScreenProfile={width:1920,height:1080,frameRate:15,bitrate:1500},x._defaultSmallVideoProfile={width:160,height:120,frameRate:15,bitrate:200},x._isVirtualBackground=!1,x._isTestVirtualBackground=!1,x._isBeautyEnabled=!1,x._isTestBeautyEnabled=!1,x._remoteStatisticsUserIdList=[],x._hasJoinedRoom=!1,x._isExitingRoom=!1,x._version=mC;var tA=G.frameWorkType,uA=tA===void 0?30:tA,wA=G.component,$A=wA===void 0?0:wA,me=G.language,p=me===void 0?0:me;return x._frameWorkType=uA,x._component=$A,x._language=p,x._trtc=U.default.create({enableSEI:L.enableSEI,assetsPath:L.assetsPath,enableVolumeControlInIOS:!0,plugins:[j.default,I.LEBPlayer,w.RealtimeTranscriber]}),x._testTrtc=U.default.create(),x._log=U.default._loggerManager,x.logger=new tc(iu,{seq:Vu++}),x._echoCancellation=void 0,x._noiseSuppression=void 0,x._autoGainControl=void 0,x._addTRTCEvents(),x.handleDeviceChange=x.handleDeviceChange.bind(x),Ju.set(x,{fn:x.handleDeviceChange,self:x}),x}var oA;return function(G,x){if(typeof x!="function"&&x!==null)throw new TypeError("Class extends value "+String(x)+" is not a constructor or null");function tA(){this.constructor=G}IA(G,x),G.prototype=x===null?Object.create(x):(tA.prototype=x.prototype,new tA)}(L,q),L.getPlugin=function(G){return G==="VirtualBackground"?h.VirtualBackground:G==="BasicBeauty"?f.BasicBeauty:G==="VideoMixer"?j.default:null},L.getTRTCShareInstance=function(G){return L.shareInstance||(L.shareInstance=new L(G)),L.shareInstance},L.setLogLevel=function(G,x){var tA,uA=((tA={})[r.TRTCLogLevel.TRTCLogLevelVerbose]=0,tA[r.TRTCLogLevel.TRTCLogLevelDebug]=1,tA[r.TRTCLogLevel.TRTCLogLevelInfo]=2,tA[r.TRTCLogLevel.TRTCLogLevelWarn]=3,tA[r.TRTCLogLevel.TRTCLogLevelError]=4,tA[r.TRTCLogLevel.TRTCLogLevelFatal]=4,tA[r.TRTCLogLevel.TRTCLogLevelNone]=5,tA),wA=uA[G];ds(wA)&&(wA=uA[r.TRTCLogLevel.TRTCLogLevelInfo]);var $A=!Pi(x)||x;U.default.setLogLevel(wA,$A)},L.destroyTRTCShareInstance=function(){L.shareInstance&&(L.shareInstance._destroy(),L.shareInstance=null),Array.from(L.subCloudMap.keys()).forEach(function(G){return G._destroy()})},L.callExperimentalAPI=function(G){console.log("static ".concat(Ot,".callExperimentalAPI"),G);var x=Rs(G);if(x!==G){var tA=x.api,uA=x.params;if(tA&&uA)try{switch(tA){case"enableSEI":L.enableSEI=uA.enable;break;case"setAssetsPath":L.assetsPath=uA.assetsPath}}catch(wA){throw wA}}},L.prototype.createSubCloud=function(){if(this!==L.shareInstance)return null;var G=new L;return this._inheritPropertiesToSubCloud(G),this._inheritEventsToSubCloud(G),L.subCloudMap.set(G,G),G},L.prototype.destroy=function(){this!==L.shareInstance?(L.subCloudMap.get(this)&&L.subCloudMap.delete(this),this._destroy()):L.destroyTRTCShareInstance()},L.prototype._destroy=function(){Ju.delete(this),this.removeAllListeners(),this._trtc.off("*"),this._trtc.destroy(),this._trtc=null,this._testTrtc.off("*"),this._testTrtc.destroy(),this._testTrtc=null},L.prototype.getSDKVersion=function(){return this._version||""},L.prototype.enterRoom=function(G,x){return lA(this,void 0,Promise,function(){var tA,uA,wA,$A,me,p,B,v,N,O,z,X,rA,DA,GA,VA,te,Ce;return cA(this,function(Ke){switch(Ke.label){case 0:if(tA=G.sdkAppId,uA=G.userId,wA=G.userSig,$A=G.roomId,me=G.strRoomId,p=G.role,B=G.privateMapKey,v=G.businessInfo,N=G.enableAutoPlayDialog,O=G.proxy,z=G.streamId,X=G.userDefineRecordId,this.logger.update({sdkAppId:tA,userId:uA}),this.logger.info("".concat(Ot,".enterRoom with params: "),G,x),O&&(this._networkProxy=O),!(tA&&uA&&wA))return[3,5];Ke.label=1;case 1:return Ke.trys.push([1,3,,4]),rA={sdkAppId:tA,userId:uA,userSig:wA,roomId:$A,strRoomId:me,role:Do[p],scene:pA[x],autoReceiveAudio:this._autoRecvAudio,autoReceiveVideo:this._autoRecvVideo,frameWorkType:this._frameWorkType,component:this._component,language:this._language},rA=B?nA(nA({},rA),{privateMapKey:B}):rA,rA=v?nA(nA({},rA),{businessInfo:v}):rA,DA=N||this._enableAutoPlayDialog,rA=Pi(DA)?nA(nA({},rA),{enableAutoPlayDialog:DA}):rA,rA=this._networkProxy?nA(nA({},rA),{proxy:this._networkProxy}):rA,rA=z?nA(nA({},rA),{streamId:z}):rA,rA=X?nA(nA({},rA),{userDefineRecordId:X}):rA,rA=this._latencyLevel!==void 0?nA(nA({},rA),{latencyLevel:this._latencyLevel}):rA,GA=Qr(),[4,this._trtc.enterRoom(rA)];case 2:return Ke.sent(),this._hasJoinedRoom=!0,VA=Qr()-GA,this.emit("onEnterRoom",VA),[3,4];case 3:return te=Ke.sent(),Ce=(Ce=this._transformTRTCErrorCode(te,"enterRoom"))<0?Ce:-1,this.emit("onEnterRoom",Ce),this._callFunctionErrorManage(te,"enterRoom"),[3,4];case 4:return[3,6];case 5:this._emitError(mI),Ke.label=6;case 6:return[2]}})})},L.prototype.exitRoom=function(){return lA(this,void 0,Promise,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),this.logger.info("".concat(Ot,".exitRoom")),this._isExitingRoom=!0,this._isSharingScreen&&this.stopScreenShare(),this.resetTRTCCloud(),this.stopLocalPreview(),this.stopLocalAudio(),[4,this._trtc.exitRoom()];case 1:return x.sent(),this._hasJoinedRoom=!1,this._isExitingRoom=!1,this._isVideoPublish=!0,this._isAudioPublish=!0,this.emit("onExitRoom",nl.exitRoom),[3,3];case 2:return G=x.sent(),this._callFunctionErrorManage(G,"exitRoom"),[3,3];case 3:return[2]}})})},L.prototype.switchRole=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".switchRole with param: "),G),tA.label=1;case 1:return tA.trys.push([1,3,,4]),[4,this._trtc.switchRole(Do[G])];case 2:return tA.sent(),this.emit("onSwitchRole",0,"switch role success, role = ".concat(G,", ").concat(Do[G])),[3,4];case 3:return x=tA.sent(),this.emit("onSwitchRole",x?.getCode(),x.message),[3,4];case 4:return[2]}})})},L.prototype.setDefaultStreamRecvMode=function(G,x){return lA(this,void 0,void 0,function(){return cA(this,function(tA){return this.logger.info("".concat(Ot,".setDefaultStreamRecvMode with param: "),{autoRecvAudio:G,autoRecvVideo:x}),Pi(G)&&(this._autoRecvAudio=G),Pi(x)&&(this._autoRecvVideo=x),[2]})})},L.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()},L.prototype._updateLocalVideo=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),[4,this._trtc.updateLocalVideo(this._generateLocalVideoData())];case 1:return x.sent(),[3,3];case 2:if((G=x.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw G;return[3,3];case 3:return[2]}})})},L.prototype._updateLocalTestVideo=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalVideo(this._generateLocalTestVideoData())];case 1:return x.sent(),[3,3];case 2:if((G=x.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw G;return[3,3];case 3:return[2]}})})},L.prototype._updateLocalScreen=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),[4,this._trtc.updateScreenShare(this._getScreenShareParams())];case 1:return x.sent(),[3,3];case 2:if((G=x.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw G;return[3,3];case 3:return[2]}})})},L.prototype._updateRemoteVideo=function(G,x){return lA(this,void 0,void 0,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:if(!this._hasJoinedRoom||this._isExitingRoom)return[2];uA.label=1;case 1:return uA.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo(this._generateRemoteVideoData(G,x))];case 2:return uA.sent(),[3,4];case 3:if((tA=uA.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw tA;return[3,4];case 4:return[2]}})})},L.prototype.startLocalPreview=function(){for(var G=[],x=0;x<arguments.length;x++)G[x]=arguments[x];return lA(this,void 0,Promise,function(){var tA,uA,wA,$A,me;return cA(this,function(p){switch(p.label){case 0:this.logger.info("".concat(Ot,".startLocalPreview with params: "),G),WA([],G,!0).length===1?uA=WA([],G,!0)[0]:WA([],G,!0).length===2&&(me=WA([],G,!0),tA=me[0],uA=me[1]),ds(tA)||(this._setIsMobile(!0),this._setIsFrontCamera(tA)),this._setLocalView(uA),p.label=1;case 1:p.trys.push([1,9,,10]),p.label=2;case 2:return p.trys.push([2,4,,8]),[4,this._trtc.startLocalVideo(this._generateLocalVideoData())];case 3:return p.sent(),[3,8];case 4:return(wA=p.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalVideo()];case 5:return p.sent(),[3,7];case 6:throw wA;case 7:return[3,8];case 8:return this.emit("onCameraDidReady"),[3,10];case 9:return $A=p.sent(),this._callFunctionErrorManage($A,"startLocalPreview"),[3,10];case 10:return[2]}})})},L.prototype.updateLocalView=function(G){return lA(this,void 0,void 0,function(){return cA(this,function(x){switch(x.label){case 0:return this.logger.info("".concat(Ot,".updateLocalView with param: "),G),this._setLocalView(G),[4,this._updateLocalVideo()];case 1:return x.sent(),[2]}})})},L.prototype.stopLocalPreview=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:this.logger.info("".concat(Ot,".stopLocalPreview")),x.label=1;case 1:return x.trys.push([1,3,,4]),this._setLocalView(null),[4,this._trtc.stopLocalVideo()];case 2:return x.sent(),this.emit("onCameraStopped"),[3,4];case 3:return G=x.sent(),console.warn("".concat(Ot," stopLocalPreview error: ").concat(G)),this._callFunctionErrorManage(G,"stopLocalPreview"),[3,4];case 4:return[2]}})})},L.prototype.muteLocalVideo=function(G){return G===void 0&&(G=!1),lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".muteLocalVideo with params: "),G),tA.label=1;case 1:return tA.trys.push([1,3,,4]),this._setIsVideoPublish(!G),[4,this._updateLocalVideo()];case 2:return tA.sent(),[3,4];case 3:return x=tA.sent(),this._callFunctionErrorManage(x,"muteLocalVideo"),[3,4];case 4:return[2]}})})},L.prototype.startRemoteView=function(G,x,tA){return lA(this,void 0,void 0,function(){var uA,wA;return cA(this,function($A){switch($A.label){case 0:this.logger.info("".concat(Ot,".startRemoteView with params: "),G,x,tA),$A.label=1;case 1:if($A.trys.push([1,9,,10]),this._setRemoteStreamConfig(G,tA,{view:x,small:tA===r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall}),!this._remoteStreamMap.get("".concat(G,"_").concat(this._getTRTCStreamType(tA))))return[2];$A.label=2;case 2:return $A.trys.push([2,4,,8]),[4,this._trtc.startRemoteVideo(this._generateRemoteVideoData(G,tA))];case 3:return $A.sent(),[3,8];case 4:return(uA=$A.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateRemoteVideo(G,tA)];case 5:return $A.sent(),[3,7];case 6:throw uA;case 7:return[3,8];case 8:return[3,10];case 9:return wA=$A.sent(),this._callFunctionErrorManage(wA,"startRemoteView"),[3,10];case 10:return[2]}})})},L.prototype.updateRemoteView=function(G,x,tA){return lA(this,void 0,void 0,function(){return cA(this,function(uA){switch(uA.label){case 0:return this.logger.info("".concat(Ot,".updateRemoteView with params: "),G,x,tA),this._setRemoteStreamConfig(G,tA,{view:x}),this._remoteStreamMap.get("".concat(G,"_").concat(this._getTRTCStreamType(tA)))?[4,this._updateRemoteVideo(G,tA)]:[2];case 1:return uA.sent(),[2]}})})},L.prototype.stopRemoteView=function(G,x){return lA(this,void 0,void 0,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".stopRemoteView with params: "),G,x),uA.label=1;case 1:return uA.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:G,streamType:this._getTRTCStreamType(x)})];case 2:return uA.sent(),[3,4];case 3:return tA=uA.sent(),this._callFunctionErrorManage(tA,"stopRemoteView"),[3,4];case 4:return[2]}})})},L.prototype.stopAllRemoteView=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:this.logger.info("".concat(Ot,".stopAllRemoteView")),x.label=1;case 1:return x.trys.push([1,3,,4]),[4,this._trtc.stopRemoteVideo({userId:"*"})];case 2:return x.sent(),[3,4];case 3:return G=x.sent(),this._callFunctionErrorManage(G,"stopAllRemoteView"),[3,4];case 4:return[2]}})})},L.prototype.setVideoEncoderParam=function(G){return lA(this,void 0,void 0,function(){var x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".setVideoEncoderParam with params: "),G),uA.label=1;case 1:return uA.trys.push([1,4,,5]),x=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeBig,G),this._setVideoProfile(x),[4,this._updateLocalVideo()];case 2:return uA.sent(),[4,this._updateLocalTestVideo()];case 3:return uA.sent(),[3,5];case 4:return tA=uA.sent(),this._callFunctionErrorManage(tA,"setVideoEncoderParam"),[3,5];case 5:return[2]}})})},L.prototype.setNetworkQosParam=function(G){return lA(this,void 0,void 0,function(){var x,tA,uA=this;return cA(this,function(wA){return this.logger.info("".concat(Ot,".setNetworkQosParam with params: "),G),x=G.preference,tA=this._getTRTCQosPreference(x),this._setQosPreference(tA),this._setScreenShareParams({qosPreference:tA}),[2,new Promise(function($A,me){Promise.all([uA._updateLocalVideo(),uA._updateLocalScreen()]).then(function(){$A(!0)}).catch(function(p){uA._callFunctionErrorManage(p,"setNetworkQosParam"),me(p)})})]})})},L.prototype.setLocalRenderParams=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".setLocalRenderParams with params: "),G),Object.assign(this._localRenderParams,G),tA.label=1;case 1:return tA.trys.push([1,4,,5]),[4,this._updateLocalVideo()];case 2:return tA.sent(),[4,this._updateLocalTestVideo()];case 3:return tA.sent(),[3,5];case 4:return x=tA.sent(),this._callFunctionErrorManage(x,"setLocalRenderParams"),[3,5];case 5:return[2]}})})},L.prototype.setVideoEncoderMirror=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".setVideoEncoderMirror with params: "),G),this._encoderMirror=G,tA.label=1;case 1:return tA.trys.push([1,3,,4]),[4,this._updateLocalVideo()];case 2:return tA.sent(),[3,4];case 3:return x=tA.sent(),this._callFunctionErrorManage(x,"setVideoEncoderMirror"),[3,4];case 4:return[2]}})})},L.prototype.setRemoteRenderParams=function(G,x,tA){return lA(this,void 0,void 0,function(){var uA;return cA(this,function(wA){switch(wA.label){case 0:this.logger.info("".concat(Ot,".setRemoteRenderParams with params: "),G,x,tA),wA.label=1;case 1:return wA.trys.push([1,3,,4]),this._setRemoteStreamConfig(G,x,tA),[4,this._updateRemoteVideo(G,x)];case 2:return wA.sent(),[3,4];case 3:return uA=wA.sent(),this._callFunctionErrorManage(uA,"setRemoteRenderParams"),[3,4];case 4:return[2]}})})},L.prototype._updateLocalAudio=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),[4,this._trtc.updateLocalAudio(this._generateLocalAudioData())];case 1:return x.sent(),[3,3];case 2:if((G=x.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw G;return[3,3];case 3:return[2]}})})},L.prototype._updateLocalTestAudio=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:return x.trys.push([0,2,,3]),[4,this._testTrtc.updateLocalAudio(this._generateLocalTestAudioData())];case 1:return x.sent(),[3,3];case 2:if((G=x.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw G;return[3,3];case 3:return[2]}})})},L.prototype.startLocalAudio=function(G){return G===void 0&&(G=r.TRTCAudioQuality.TRTCAudioQualityDefault),lA(this,void 0,void 0,function(){var x,tA,uA;return cA(this,function(wA){switch(wA.label){case 0:G===r.TRTCAudioQuality.TRTCAudioQualitySpeech?this.logger.warn("Web trtcCloud not support audioQuality of TRTCAudioQualitySpeech, and will use TRTCAudioQualityDefault"):this.logger.info("".concat(Ot,".startLocalAudio with params: "),G),x=this._getTRTCAudioQuality(G),wA.label=1;case 1:wA.trys.push([1,9,,10]),this._setAudioProfile(x),wA.label=2;case 2:return wA.trys.push([2,4,,8]),[4,this._trtc.startLocalAudio(this._generateLocalAudioData())];case 3:return wA.sent(),[3,8];case 4:return(tA=wA.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,6]:[4,this._updateLocalAudio()];case 5:return wA.sent(),[3,7];case 6:throw tA;case 7:return[3,8];case 8:return this.emit("onMicDidReady"),[3,10];case 9:return uA=wA.sent(),console.warn("".concat(Ot," startLocalAudio error: ").concat(uA)),this._callFunctionErrorManage(uA,"startLocalAudio"),[3,10];case 10:return[2]}})})},L.prototype.stopLocalAudio=function(){return lA(this,void 0,void 0,function(){var G;return cA(this,function(x){switch(x.label){case 0:this.logger.info("".concat(Ot,".stopLocalAudio")),x.label=1;case 1:return x.trys.push([1,3,,4]),[4,this._trtc.stopLocalAudio()];case 2:return x.sent(),[3,4];case 3:return G=x.sent(),this._callFunctionErrorManage(G,"stopLocalAudio"),[3,4];case 4:return[2]}})})},L.prototype.muteLocalAudio=function(G){return G===void 0&&(G=!1),lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".muteLocalAudio with params: "),G),tA.label=1;case 1:return tA.trys.push([1,3,,4]),this._setAudioMuteType(!!G&&"microphone"),[4,this._updateLocalAudio()];case 2:return tA.sent(),[3,4];case 3:return x=tA.sent(),this._callFunctionErrorManage(x,"muteLocalAudio"),[3,4];case 4:return[2]}})})},L.prototype.setAudioCaptureVolume=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".setAudioCaptureVolume with params: "),G),tA.label=1;case 1:return tA.trys.push([1,3,,4]),this._setCaptureVolume(G),[4,this._updateLocalAudio()];case 2:return tA.sent(),[3,4];case 3:return x=tA.sent(),this._callFunctionErrorManage(x,"setAudioCaptureVolume"),[3,4];case 4:return[2]}})})},L.prototype.getAudioCaptureVolume=function(){return this.logger.info("".concat(Ot,".getAudioCaptureVolume")),this._getCaptureVolume()},L.prototype.setAudioPlayoutVolume=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".setAudioPlayoutVolume with params: "),G),tA.label=1;case 1:return tA.trys.push([1,3,,4]),this._playoutVolume=G,[4,this._trtc.setRemoteAudioVolume("*",G)];case 2:return tA.sent(),[3,4];case 3:return x=tA.sent(),this._callFunctionErrorManage(x,"setAudioPlayoutVolume"),[3,4];case 4:return[2]}})})},L.prototype.getAudioPlayoutVolume=function(){return this.logger.info("".concat(Ot,".getAudioPlayoutVolume")),this._playoutVolume},L.prototype.muteRemoteAudio=function(G,x){return x===void 0&&(x=!1),lA(this,void 0,void 0,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".muteRemoteAudio with params: "),G,x),uA.label=1;case 1:return uA.trys.push([1,3,,4]),G?[4,this._trtc.muteRemoteAudio(G,x)]:(this._emitError(mI),[2]);case 2:return uA.sent(),[3,4];case 3:return tA=uA.sent(),this._callFunctionErrorManage(tA,"muteRemoteAudio"),[3,4];case 4:return[2]}})})},L.prototype.muteAllRemoteAudio=function(G){this.logger.info("".concat(Ot,".muteAllRemoteAudio with params: "),G);try{this._trtc.muteRemoteAudio("*",G)}catch(x){this._callFunctionErrorManage(x,"muteAllRemoteAudio")}},L.prototype.muteRemoteVideoStream=function(G,x,tA){return lA(this,void 0,void 0,function(){var uA;return cA(this,function(wA){switch(wA.label){case 0:this.logger.info("".concat(Ot,".muteRemoteVideoStream with params: "),G,x,tA),wA.label=1;case 1:return wA.trys.push([1,3,,4]),[4,this._trtc.updateRemoteVideo({userId:G,mute:x,streamType:this._getTRTCStreamType(tA)})];case 2:return wA.sent(),[3,4];case 3:return uA=wA.sent(),this._callFunctionErrorManage(uA,"muteRemoteVideoStream"),[3,4];case 4:return[2]}})})},L.prototype.muteAllRemoteVideoStreams=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".muteAllRemoteVideoStreams with params: "),G),tA.label=1;case 1:return tA.trys.push([1,6,,7]),G?[4,this._trtc.callExperimentalAPI("pauseRemotePlayer",{userId:"*"})]:[3,3];case 2:return tA.sent(),[3,5];case 3:return[4,this._trtc.callExperimentalAPI("resumeRemotePlayer",{userId:"*"})];case 4:tA.sent(),tA.label=5;case 5:return[3,7];case 6:return x=tA.sent(),this._callFunctionErrorManage(x,"muteAllRemoteVideoStreams"),[3,7];case 7:return[2]}})})},L.prototype.setRemoteAudioVolume=function(G,x){this.logger.info("".concat(Ot,".setRemoteAudioVolume with params: "),G,x);try{this._trtc.setRemoteAudioVolume(G,x)}catch(tA){this._callFunctionErrorManage(tA,"setRemoteAudioVolume")}},L.prototype.enableAudioVolumeEvaluation=function(G){this.logger.info("".concat(Ot,".enableAudioVolumeEvaluation with params: "),G);try{this._trtc.enableAudioVolumeEvaluation(G)}catch(x){this._callFunctionErrorManage(x,"enableAudioVolumeEvaluation")}},L.prototype.enableSmallVideoStream=function(G,x){return lA(this,void 0,Promise,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:return this.logger.info("".concat(Ot,".enableSmallVideoStream with params: "),G,x),G?(tA=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,x),this._setSmallStreamVideoProfile(tA)):this._setSmallStreamVideoProfile(void 0),[4,this._updateLocalVideo()];case 1:return uA.sent(),[2]}})})},L.prototype.snapshotVideo=function(G,x){var tA="";return tA=G===""&&x===r.TRTCVideoStreamType.TRTCVideoStreamTypeBig?this._trtc.getVideoSnapshot():G===""&&x===r.TRTCVideoStreamType.TRTCVideoStreamTypeSub?this._trtc.getVideoSnapshot({streamType:this._getTRTCStreamType(x)}):this._trtc.getVideoSnapshot({userId:G,streamType:this._getTRTCStreamType(x)}),this.emit("onSnapshotComplete",G,x,tA),tA},L.prototype.startScreenShare=function(G,x,tA){return lA(this,void 0,void 0,function(){var uA,wA,$A,me,p,B;return cA(this,function(v){switch(v.label){case 0:this.logger.info("".concat(Ot,".startScreenShare with params: "),G,x,tA),v.label=1;case 1:return v.trys.push([1,3,,4]),wA=(uA=tA||{}).screenAudio,$A=wA!==void 0&&wA,me=uA.videoTrack,p=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSub,tA),this._setScreenShareParams({view:G,profile:p,systemAudio:$A,videoTrack:me,streamType:x}),[4,this._trtc.startScreenShare(this._getScreenShareParams())];case 2:return v.sent(),this._isSharingScreen=!0,this.emit("onScreenCaptureStarted"),[3,4];case 3:if((B=v.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT)throw console.error("Start share screen error:",B,B.code,B.name,B.message),B;return[3,4];case 4:return[2]}})})},L.prototype.setSubStreamEncoderParam=function(G){return lA(this,void 0,void 0,function(){var x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".setSubStreamEncoderParam with params: "),G),x=this._getTRTCVideoProfile(r.TRTCVideoStreamType.TRTCVideoStreamTypeSub,G),this._setScreenShareParams({profile:x}),uA.label=1;case 1:return uA.trys.push([1,3,,4]),[4,this._updateLocalScreen()];case 2:return uA.sent(),[3,4];case 3:return tA=uA.sent(),this._callFunctionErrorManage(tA,"setSubStreamEncoderParam"),[3,4];case 4:return[2]}})})},L.prototype.stopScreenShare=function(){return lA(this,void 0,Promise,function(){var G;return cA(this,function(x){switch(x.label){case 0:this.logger.info("".concat(Ot,".stopScreenShare")),x.label=1;case 1:return x.trys.push([1,3,,4]),[4,this._trtc.stopScreenShare()];case 2:return x.sent(),this._clearScreenShareParams(),this._isSharingScreen=!1,this.emit("onScreenCaptureStopped",0),[3,4];case 3:return G=x.sent(),this._callFunctionErrorManage(G,"stopScreenShare"),[3,4];case 4:return[2]}})})},L.prototype._startPublishVideoTrack=function(G){var x=G.videoTrack;return lA(this,void 0,void 0,function(){var tA,uA;return cA(this,function(wA){switch(wA.label){case 0:wA.trys.push([0,7,,8]),wA.label=1;case 1:return wA.trys.push([1,3,,6]),[4,this._trtc.startLocalVideo({option:{videoTrack:x,profile:this._getVideoProfile()},forcePublish:!0})];case 2:return wA.sent(),[3,6];case 3:return(tA=wA.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._trtc.updateLocalVideo({option:{videoTrack:x,profile:this._getVideoProfile()},forcePublish:!0})];case 4:wA.sent(),wA.label=5;case 5:throw tA;case 6:return[3,8];case 7:return uA=wA.sent(),this._callFunctionErrorManage(uA,"startPublishVideoTrack"),[3,8];case 8:return[2]}})})},L.prototype._stopPublishVideoTrack=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this._cameraVideoTrack=null,[4,this._trtc.stopLocalVideo()];case 1:return G.sent(),[2]}})})},L.prototype.startScreenCapture=function(){this._emitError(al)},L.prototype.pauseScreenCapture=function(){this._emitError(al)},L.prototype.resumeScreenCapture=function(){this._emitError(al)},L.prototype.getScreenCaptureSources=function(){this._emitError(al)},L.prototype.selectScreenCaptureTarget=function(){this._emitError(al)},L.prototype.getCameraDevicesList=function(){return lA(this,void 0,Promise,function(){var G,x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".getCameraDevicesList")),uA.label=1;case 1:return uA.trys.push([1,5,,6]),[4,U.default.getCameraList()];case 2:return G=uA.sent(),x=G.map(function(wA){return nA(nA({},wA),{deviceName:wA.label})}),this._cameraList=G,JSON.stringify(this._currentCamera)!=="{}"?[3,4]:(this._currentCamera=this.getDefaultDeviceInfo(G),this._currentCameraId=this._currentCamera.deviceId,[4,this.setCurrentCameraDevice(this._currentCameraId)]);case 3:uA.sent(),uA.label=4;case 4:return[2,Promise.resolve(x)];case 5:return tA=uA.sent(),this._callFunctionErrorManage(tA,"getCameraDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},L.prototype.setCurrentCameraDevice=function(G){var x;return lA(this,void 0,Promise,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".setCurrentCameraDevice with params: "),{cameraId:G}),uA.label=1;case 1:return uA.trys.push([1,4,,5]),G?(this._currentCameraId=G,[4,this._updateLocalVideo()]):[2,!1];case 2:return uA.sent(),[4,this._updateLocalTestVideo()];case 3:return uA.sent(),this._currentCamera=this._cameraList.find(function(wA){return wA.deviceId===G})||{},[3,5];case 4:throw tA=uA.sent(),this._currentCameraId=(x=this._currentCamera)===null||x===void 0?void 0:x.cameraId,this._callFunctionErrorManage(tA,"setCurrentCameraDevice"),tA;case 5:return[2]}})})},L.prototype.getCurrentCameraDevice=function(){this.logger.info("".concat(Ot,".getCurrentCameraDevice"));var G=this._currentCamera,x=G.deviceId,tA=G.label,uA=G.kind,wA=G.groupId;return new Ut(x,tA,uA,tA,wA)},L.prototype.isFrontCamera=function(){return this._getIsFrontCamera()},L.prototype.switchCamera=function(G){return lA(this,void 0,void 0,function(){return cA(this,function(x){switch(x.label){case 0:return this.logger.info("".concat(Ot,".switchCamera with params: "),G),this._setIsFrontCamera(G),[4,this._updateLocalVideo()];case 1:return x.sent(),[4,this._updateLocalTestVideo()];case 2:return x.sent(),[2]}})})},L.prototype._onVirtualBackgroundError=function(G){this._emitError({code:-1006,message:G.message?G.message:"virtual background error"})},L.prototype.setVirtualBackground=function(G){return lA(this,void 0,void 0,function(){var x,tA,uA,wA,$A;return cA(this,function(me){switch(me.label){case 0:return me.trys.push([0,10,,11]),x=G.enable,tA=G.type,uA=G.blurLevel,wA=G.imagePath,x?this._isVirtualBackground?tA!==Es?[3,2]:[4,this._trtc.updatePlugin(An,{type:tA,blurLevel:uA})]:[3,5]:[3,8];case 1:me.sent(),me.label=2;case 2:return tA!==an?[3,4]:[4,this._trtc.updatePlugin(An,{type:tA,src:wA})];case 3:me.sent(),me.label=4;case 4:return[3,7];case 5:return[4,this._trtc.startPlugin(An,nA(nA({},G),{src:wA,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:me.sent(),this._isVirtualBackground=!0,me.label=7;case 7:return[3,9];case 8:this._trtc.stopPlugin(An),this._isVirtualBackground=!1,me.label=9;case 9:return[3,11];case 10:throw $A=me.sent(),this.logger.error("".concat(Ot,".setVirtualBackground fail: "),$A),$A;case 11:return[2]}})})},L.prototype.setTestVirtualBackground=function(G){return lA(this,void 0,void 0,function(){var x,tA,uA,wA,$A;return cA(this,function(me){switch(me.label){case 0:return me.trys.push([0,10,,11]),x=G.enable,tA=G.type,uA=G.blurLevel,wA=G.imagePath,x?this._isTestVirtualBackground?tA!==Es?[3,2]:[4,this._testTrtc.updatePlugin(An,{type:tA,blurLevel:uA})]:[3,5]:[3,8];case 1:me.sent(),me.label=2;case 2:return tA!==an?[3,4]:[4,this._testTrtc.updatePlugin(An,{type:tA,src:wA})];case 3:me.sent(),me.label=4;case 4:return[3,7];case 5:return[4,this._testTrtc.startPlugin(An,nA(nA({},G),{src:wA,onAbort:this._onVirtualBackgroundError.bind(this)}))];case 6:me.sent(),this._isTestVirtualBackground=!0,me.label=7;case 7:return[3,9];case 8:this._testTrtc.stopPlugin(An),this._isTestVirtualBackground=!1,me.label=9;case 9:return[3,11];case 10:throw $A=me.sent(),this.logger.error("".concat(Ot,".setTestVirtualBackground fail: "),$A),$A;case 11:return[2]}})})},L.prototype.useVirtualBackground=function(G){return lA(this,void 0,void 0,function(){return cA(this,function(x){switch(x.label){case 0:return this._trtc?[4,this._trtc.use({plugin:h.VirtualBackground,assetsPath:G})]:[3,2];case 1:x.sent(),x.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:h.VirtualBackground,assetsPath:G})]:[3,4];case 3:x.sent(),x.label=4;case 4:return[2]}})})},L.prototype.setBeautyStyle=function(G,x,tA,uA){return lA(this,void 0,void 0,function(){return cA(this,function(wA){switch(wA.label){case 0:return[4,this._handleBeautyStyleParam(this._trtc,this._isBeautyEnabled,G,x,tA,uA,!1)];case 1:return wA.sent(),[2]}})})},L.prototype.setTestBeautyStyle=function(G,x,tA,uA){return lA(this,void 0,void 0,function(){return cA(this,function(wA){switch(wA.label){case 0:return[4,this._handleBeautyStyleParam(this._testTrtc,this._isTestBeautyEnabled,G,x,tA,uA,!0)];case 1:return wA.sent(),[2]}})})},L.prototype.useBeautyStyle=function(G){return lA(this,void 0,void 0,function(){return cA(this,function(x){switch(x.label){case 0:return this._trtc?[4,this._trtc.use({plugin:f.BasicBeauty,assetsPath:G})]:[3,2];case 1:x.sent(),x.label=2;case 2:return this._testTrtc?[4,this._testTrtc.use({plugin:f.BasicBeauty,assetsPath:G})]:[3,4];case 3:x.sent(),x.label=4;case 4:return[2]}})})},L.prototype._handleBeautyStyleParam=function(G,x,tA,uA,wA,$A,me){return lA(this,void 0,void 0,function(){var p,B,v,N,O;return cA(this,function(z){switch(z.label){case 0:if(uA<0||uA>9)throw new Error("beautyLevel must be between 0 and 9");if(wA<0||wA>9)throw new Error("whitenessLevel must be between 0 and 9");if($A<0||$A>9)throw new Error("ruddinessLevel must be between 0 and 9");z.label=1;case 1:return z.trys.push([1,8,,9]),B=wA/9,v=$A/9,(p=uA/9)===0&&B===0&&v===0?[4,G.stopPlugin(rn)]:[3,3];case 2:return z.sent(),me?this._isTestBeautyEnabled=!1:this._isBeautyEnabled=!1,[3,7];case 3:return N={beauty:p,brightness:B,ruddy:v},x?[3,5]:[4,G.startPlugin(rn,N)];case 4:return z.sent(),me?this._isTestBeautyEnabled=!0:this._isBeautyEnabled=!0,[3,7];case 5:return[4,G.updatePlugin(rn,N)];case 6:z.sent(),z.label=7;case 7:return[3,9];case 8:throw O=z.sent(),me?this.logger.error("".concat(Ot,".").concat("setTestBeautyStyle"," fail: "),O):this.logger.error("".concat(Ot,".").concat("setBeautyStyle"," fail: "),O),O;case 9:return[2]}})})},L.prototype._resetBeautyStyle=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this._isBeautyEnabled?[4,this._trtc.stopPlugin(rn)]:[3,2];case 1:G.sent(),this._isBeautyEnabled=!1,G.label=2;case 2:return this._isTestBeautyEnabled?[4,this._testTrtc.stopPlugin(rn)]:[3,4];case 3:G.sent(),this._isTestBeautyEnabled=!1,G.label=4;case 4:return[2]}})})},L.prototype.getMicDevicesList=function(){return lA(this,void 0,Promise,function(){var G,x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".getMicDevicesList")),uA.label=1;case 1:return uA.trys.push([1,5,,6]),[4,U.default.getMicrophoneList()];case 2:return G=uA.sent(),x=G.map(function(wA){return nA(nA({},wA),{deviceName:wA.label})}),this._microphoneList=G,JSON.stringify(this._currentMicrophone)!=="{}"?[3,4]:(this._currentMicrophone=this.getDefaultDeviceInfo(G),this._currentMicrophoneId=this._currentMicrophone.deviceId,[4,this.setCurrentMicDevice(this._currentMicrophoneId)]);case 3:uA.sent(),uA.label=4;case 4:return[2,Promise.resolve(x)];case 5:return tA=uA.sent(),this._callFunctionErrorManage(tA,"getMicDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},L.prototype.setCurrentMicDevice=function(G){var x;return lA(this,void 0,Promise,function(){var tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".setCurrentMicDevice with params: "),{micId:G}),uA.label=1;case 1:return uA.trys.push([1,4,,5]),G?(this._setCurrentMicrophoneId(G),[4,this._updateLocalAudio()]):[2,!1];case 2:return uA.sent(),[4,this._updateLocalTestAudio()];case 3:return uA.sent(),this._currentMicrophone=this._microphoneList.find(function(wA){return wA.deviceId===G})||{},[3,5];case 4:throw tA=uA.sent(),this._setCurrentMicrophoneId((x=this._currentMicrophone)===null||x===void 0?void 0:x.deviceId),this._callFunctionErrorManage(tA,"setCurrentMicDevice"),tA;case 5:return[2]}})})},L.prototype.getCurrentMicDevice=function(){this.logger.info("".concat(Ot,".getCurrentMicDevice"));var G=this._currentMicrophone,x=G.deviceId,tA=G.label,uA=G.kind,wA=G.groupId;return new Ut(x,tA,uA,tA,wA)},L.prototype.getSpeakerDevicesList=function(){return lA(this,void 0,Promise,function(){var G,x,tA;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".getSpeakerDevicesList")),uA.label=1;case 1:return uA.trys.push([1,5,,6]),[4,U.default.getSpeakerList()];case 2:return G=uA.sent(),x=G.map(function(wA){return nA(nA({},wA),{deviceName:wA.label})}),this._speakerList=G,JSON.stringify(this._currentSpeaker)!=="{}"?[3,4]:(this._currentSpeaker=this.getDefaultDeviceInfo(G),this._currentSpeakerId=this._currentSpeaker.deviceId,[4,this.setCurrentSpeakerDevice(this._currentSpeakerId)]);case 3:uA.sent(),uA.label=4;case 4:return[2,Promise.resolve(x)];case 5:return tA=uA.sent(),this._callFunctionErrorManage(tA,"getSpeakerDevicesList"),[2,Promise.resolve([])];case 6:return[2]}})})},L.prototype.setCurrentSpeakerDevice=function(G){return lA(this,void 0,Promise,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:this.logger.info("".concat(Ot,".setCurrentSpeakerDevice with params: "),{speakerId:G}),tA.label=1;case 1:return tA.trys.push([1,3,,4]),G?[4,U.default.setCurrentSpeaker(G)]:[2,!1];case 2:return tA.sent(),this._setCurrentSpeakerId(G),this._currentSpeaker=this._speakerList.find(function(uA){return uA.deviceId===G})||{},[3,4];case 3:throw x=tA.sent(),this._callFunctionErrorManage(x,"setCurrentSpeakerDevice"),x;case 4:return[2]}})})},L.prototype.getCurrentSpeakerDevice=function(){this.logger.info("".concat(Ot,".getCurrentSpeakerDevice"));var G=this._currentSpeaker,x=G.deviceId,tA=G.label,uA=G.kind,wA=G.groupId;return new Ut(x,tA,uA,tA,wA)},L.prototype.startCameraDeviceTest=function(G){return lA(this,void 0,void 0,function(){var x;return cA(this,function(tA){switch(tA.label){case 0:if(this.logger.info("".concat(Ot,".startCameraDeviceTest with params: "),G),!G)return[2];this._setLocalTestView(G),tA.label=1;case 1:return tA.trys.push([1,3,,7]),[4,this._testTrtc.startLocalVideo(this._generateLocalTestVideoData())];case 2:return tA.sent(),[3,7];case 3:return(x=tA.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestVideo()];case 4:return tA.sent(),[3,6];case 5:throw this._callFunctionErrorManage(x,"startCameraDeviceTest"),x;case 6:return[3,7];case 7:return[2]}})})},L.prototype.stopCameraDeviceTest=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this.logger.info("".concat(Ot,".stopCameraDeviceTest")),this._setLocalTestView(null),[4,this._testTrtc.stopLocalVideo()];case 1:return G.sent(),[2]}})})},L.prototype.startMicDeviceTest=function(G){return lA(this,void 0,void 0,function(){var x,tA=this;return cA(this,function(uA){switch(uA.label){case 0:this.logger.info("".concat(Ot,".startMicDeviceTest with params: "),G),uA.label=1;case 1:return uA.trys.push([1,3,,7]),[4,this._testTrtc.startLocalAudio(this._generateLocalTestAudioData())];case 2:return uA.sent(),[3,7];case 3:return(x=uA.sent()).code!==U.default.ERROR_CODE.OPERATION_ABORT?[3,5]:[4,this._updateLocalTestAudio()];case 4:return uA.sent(),[3,6];case 5:throw this._callFunctionErrorManage(x,"startMicDeviceTest"),x;case 6:return[3,7];case 7:return this._testTrtc.on(U.default.EVENT.AUDIO_VOLUME,function(wA){wA?.result.forEach(function($A){var me=$A.userId,p=$A.volume;me===""&&tA.emit("onTestMicVolume",p)})}),[4,this._testTrtc.enableAudioVolumeEvaluation(G)];case 8:return uA.sent(),[2]}})})},L.prototype.stopMicDeviceTest=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this.logger.info("".concat(Ot,".stopMicDeviceTest")),[4,this._testTrtc.stopLocalAudio()];case 1:return G.sent(),[2]}})})},L.prototype.callExperimentalAPI=function(G){return lA(this,void 0,void 0,function(){var x,tA,uA;return cA(this,function(wA){switch(wA.label){case 0:if(this.logger.info("".concat(Ot,".callExperimentalAPI"),G),(x=Rs(G))===G)return[2];if(tA=x.api,uA=x.params,!tA||!uA)return[2];wA.label=1;case 1:switch(wA.trys.push([1,25,,26]),tA){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(uA),[3,24];case 3:return this._echoCancellation=!!uA.enable,[3,24];case 4:return this._noiseSuppression=!!uA.enable,[3,24];case 5:return this._autoGainControl=!!uA.enable,[3,24];case 6:return this._handleKeyMetricsStats(uA),[3,24];case 7:return this._networkProxy=uA,[3,24];case 8:return[4,this.setVirtualBackground(uA)];case 9:return wA.sent(),[3,24];case 10:return[4,this.setTestVirtualBackground(uA)];case 11:return wA.sent(),[3,24];case 12:return[4,this.setTestBeautyStyle(uA.style,uA.beautyLevel,uA.whitenessLevel,uA.ruddinessLevel)];case 13:return wA.sent(),[3,24];case 14:return this._setVideoEncodeParamEx(uA),[3,24];case 15:return this._enableAutoPlayDialog=!!uA.enable,[3,24];case 16:return this._latencyLevel=uA.latencyLevel,[3,24];case 17:return[4,this._switchPlaybackQuality(uA)];case 18:return wA.sent(),[3,24];case 19:return[4,this._requestPictureInPicture()];case 20:return wA.sent(),[3,24];case 21:return[4,this._exitPictureInPicture()];case 22:return wA.sent(),[3,24];case 23:return[3,24];case 24:return[3,26];case 25:throw wA.sent();case 26:return[2]}})})},L.prototype._handleSetFrameWork=function(G){var x=G.frameWork,tA=G.component,uA=G.language;zr(x)&&(this._frameWorkType=x),zr(tA)&&(this._component=tA),zr(uA)&&(this._language=uA)},L.prototype._handleKeyMetricsStats=function(G){var x=G.key,tA=G.opt,uA=G.value,wA=G.version,$A=tA===Jn;U.default._addKVStat({type:tA,key:x,value:uA,version:wA,useUV:$A,base:100})},L.prototype._setVideoEncodeParamEx=function(G){return lA(this,void 0,void 0,function(){return cA(this,function(x){switch(x.label){case 0:switch(G.streamType){case r.TRTCVideoStreamType.TRTCVideoStreamTypeBig:return[3,1];case r.TRTCVideoStreamType.TRTCVideoStreamTypeSub:return[3,3]}return[3,5];case 1:return[4,this.setVideoEncoderParam(G)];case 2:case 4:return x.sent(),[3,6];case 3:return[4,this.setSubStreamEncoderParam(G)];case 5:return[3,6];case 6:return[2]}})})},L.prototype._switchPlaybackQuality=function(G){return lA(this,void 0,void 0,function(){var x,tA,uA,wA,$A,me,p,B;return cA(this,function(v){switch(v.label){case 0:if(tA=(x=G||{}).quality,uA=x.stream_list,wA=uA===void 0?[]:uA,!tA||wA.length===0)return[2];for($A=null,me=0,p=wA;me<p.length;me++)(B=p[me]).name===tA&&($A=B),B.userId=B.user_id;return $A&&$A.user_id?[4,this._trtc.callExperimentalAPI("switchPlaybackQuality",{streamList:wA,quality:$A.name})]:[2];case 1:return v.sent(),[2]}})})},L.prototype._requestPictureInPicture=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this.logger.info("".concat(Ot,"._requestPictureInPicture")),[4,this._trtc.callExperimentalAPI("requestPictureInPicture",{enable:!0})];case 1:return G.sent(),[2]}})})},L.prototype._exitPictureInPicture=function(){return lA(this,void 0,void 0,function(){return cA(this,function(G){switch(G.label){case 0:return this.logger.info("".concat(Ot,"._exitPictureInPicture")),[4,this._trtc.callExperimentalAPI("requestPictureInPicture",{enable:!1})];case 1:return G.sent(),[2]}})})},L.prototype._emitError=function(G){G&&this.emit&&this.emit(po,G.code,G.message)},L.prototype._emitWarning=function(G){this.emit&&this.emit(No,G)},L.prototype._transformTRTCServerError=function(G){return G.extraCode===-8?Pu:String(G.extraCode).indexOf("70")===0?0-G.extraCode:void 0},L.prototype._transformTRTCInvalidOperationError=function(G,x){return x!=="enterRoom"||G.extraCode!==5104&&G.code!==5998?G.code:rl},L.prototype._isCameraError=function(G){return["startLocalPreview","updateLocalView","muteLocalVideo","setVideoEncoderParam","setCurrentCameraDevice","switchCamera","setLocalRenderParams","enableSmallVideoStream","startCameraDeviceTest"].includes(G)},L.prototype._isMicError=function(G){return["startLocalAudio","muteLocalAudio","setAudioCaptureVolume","setCurrentMicDevice","startMicDeviceTest"].includes(G)},L.prototype._transformTRTCDeviceError=function(G,x){var tA=this._isCameraError(x),uA=this._isMicError(x);switch(G.extraCode){case 5301:case 5305:case 5306:case 5307:case 5308:case 5309:if(tA)return Ul;if(uA)return Ou;break;case 5302:if(tA)return bc;if(uA)return pC;break;case 5303:if(tA)return kc;if(uA)return lh;break;case 5304:if(tA)return OE;if(uA)return eu}},L.prototype._transformTRTCUnKnowError=function(G,x){var tA=this._isCameraError(x),uA=this._isMicError(x);return tA?Ul:uA?Ou:G.code},L.prototype._transformTRTCErrorCode=function(G,x){var tA=G?.code;if(G&&G.code)switch(G.code){case U.default.ERROR_CODE.DEVICE_ERROR:tA=this._transformTRTCDeviceError(G,x);break;case U.default.ERROR_CODE.SERVER_ERROR:tA=this._transformTRTCServerError(G);break;case U.default.ERROR_CODE.INVALID_OPERATION:case U.default.ERROR_CODE.OPERATION_ABORT:tA=this._transformTRTCInvalidOperationError(G,x);break;case U.default.ERROR_CODE.UNKNOWN_ERROR:tA=this._transformTRTCUnKnowError(G,x)}return tA},L.prototype._callFunctionErrorManage=function(G,x){if(!G||G.code!==U.default.ERROR_CODE.OPERATION_ABORT){this.logger.warn("(".concat(x,") failed - ").concat(G.code," - ").concat(G.message));var tA=this._transformTRTCErrorCode(G,x);this.emit(po,tA,G.message)}},L.prototype._getTRTCResolution=function(G){var x=(r.TRTCVideoResolution[G]||"").split("_");return{width:+(x.length>1&&x[1]),height:+(x.length>2&&x[2])}},L.prototype._getTRTCVideoProfile=function(G,x){x===void 0&&(x={});var tA=x.videoWidth,uA=x.videoHeight,wA=x.videoResolution,$A=x.videoFps,me=x.videoBitrate,p=x.resMode,B=x.resolutionMode,v={};switch(G){case r.TRTCVideoStreamType.TRTCVideoStreamTypeSub:v=this._defaultScreenProfile;break;case r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall:v=this._defaultSmallVideoProfile;break;case r.TRTCVideoStreamType.TRTCVideoStreamTypeBig:default:v=this._defaultVideoProfile}if(ds(wA))ds(tA)||(v.width=tA),ds(uA)||(v.height=uA);else{var N=this._getTRTCResolution(wA);v.width=N.width,v.height=N.height}if(!ds(p)&&p===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait||!ds(B)&&B===r.TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait){var O=v.height,z=v.width;v.width=O,v.height=z}return $A&&(v.frameRate=$A),me&&(v.bitrate=me),v},L.prototype._getTRTCStreamType=function(G){var x;return((x={})[r.TRTCVideoStreamType.TRTCVideoStreamTypeBig]=U.default.TYPE.STREAM_TYPE_MAIN,x[r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall]=U.default.TYPE.STREAM_TYPE_MAIN,x[r.TRTCVideoStreamType.TRTCVideoStreamTypeSub]=U.default.TYPE.STREAM_TYPE_SUB,x)[G]},L.prototype._getTRTCFillMode=function(G){var x;return((x={})[r.TRTCVideoFillMode.TRTCVideoFillMode_Fill]=sl.COVER,x[r.TRTCVideoFillMode.TRTCVideoFillMode_Fit]=sl.CONTAIN,x)[G]},L.prototype._getTRTCCloudVideoFillMode=function(G){var x;return((x={})[sl.COVER]=r.TRTCVideoFillMode.TRTCVideoFillMode_Fill,x[sl.CONTAIN]=r.TRTCVideoFillMode.TRTCVideoFillMode_Fit,x)[G]},L.prototype._getTRTCCloudMirrorType=function(G){return G===!0?r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable},L.prototype._getLocalRenderMirror=function(G){var x;return G===r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto?!this._getIsMobile()||this._getIsFrontCamera():((x={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,x[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,x)[G]},L.prototype._getTRTCLocalMirror=function(G,x){var tA=this._getLocalRenderMirror(G);return ds(x)?!!tA&&"both":tA&&x?"both":tA&&!x?"view":!tA&&x?"publish":!(!tA&&!x)&&"view"},L.prototype._getTRTCRemoteMirror=function(G){var x;return((x={})[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto]=!1,x[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable]=!0,x[r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable]=!1,x)[G]},L.prototype._getTRTCQosPreference=function(G){var x;return((x={})[r.TRTCVideoQosPreference.TRTCVideoQosPreferenceSmooth]=U.default.TYPE.QOS_PREFERENCE_SMOOTH,x[r.TRTCVideoQosPreference.TRTCVideoQosPreferenceClear]=U.default.TYPE.QOS_PREFERENCE_CLEAR,x)[G]},L.prototype._getTRTCAudioQuality=function(G){var x;return((x={})[r.TRTCAudioQuality.TRTCAudioQualitySpeech]=U.default.TYPE.AUDIO_PROFILE_STANDARD,x[r.TRTCAudioQuality.TRTCAudioQualityDefault]=U.default.TYPE.AUDIO_PROFILE_STANDARD,x[r.TRTCAudioQuality.TRTCAudioQualityMusic]=U.default.TYPE.AUDIO_PROFILE_HIGH_STEREO,x)[G]},L.prototype._getTRTCCloudDeviceType=function(G){return{camera:r.TRTCDeviceType.TRTCDeviceTypeCamera,microphone:r.TRTCDeviceType.TRTCDeviceTypeMic,speaker:r.TRTCDeviceType.TRTCDeviceTypeSpeaker}[G]},L.prototype._getTRTCCloudDeviceState=function(G){return{add:r.TRTCDeviceState.TRTCDeviceStateAdd,remove:r.TRTCDeviceState.TRTCDeviceStateRemove,active:r.TRTCDeviceState.TRTCDeviceStateActive}[G]},L.prototype._getTRTCCloudQuality=function(G){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][G]},L.prototype._generateLocalVideoData=function(){var G={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?G&&Object.assign(G.option,{videoTrack:this._cameraVideoTrack}):this._getIsMobile()?G&&Object.assign(G.option,{useFrontCamera:this._getIsFrontCamera()}):G&&Object.assign(G.option,{cameraId:this._getCurrentCameraId()}),this._getQosPreference()&&G&&Object.assign(G.option,{qosPreference:this._getQosPreference()}),G},L.prototype._generateLocalTestVideoData=function(){var G={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()?G&&Object.assign(G.option,{useFrontCamera:this._getIsFrontCamera()}):G&&Object.assign(G.option,{cameraId:this._getCurrentCameraId()}),G},L.prototype._generateLocalAudioData=function(){var G={publish:this._getIsAudioPublish(),mute:this._getAudioMuteType(),muteKeepVolumeDetection:!0,option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile(),captureVolume:this._getCaptureVolume()}};return Pi(this._echoCancellation)&&(G.option.echoCancellation=this._echoCancellation),Pi(this._autoGainControl)&&(G.option.autoGainControl=this._autoGainControl),Pi(this._noiseSuppression)&&(G.option.noiseSuppression=this._noiseSuppression),G},L.prototype._generateLocalTestAudioData=function(){return{publish:!1,option:{microphoneId:this._getCurrentMicrophoneId(),profile:this._getAudioProfile()}}},L.prototype._generateRemoteVideoData=function(G,x){return wn(this._remoteStreamConfig.get("".concat(G,"_").concat(this._getTRTCStreamType(x))))},L.prototype._addTRTCEvents=function(){var G=this;this._trtc.on(U.default.EVENT.ERROR,function(x){x&&G.emit("onError",x.code,x.message)}),this._trtc.on(U.default.EVENT.REMOTE_USER_ENTER,function(x){x?.userId&&G.emit("onRemoteUserEnterRoom",x.userId)}),this._trtc.on(U.default.EVENT.REMOTE_USER_EXIT,function(x){x?.userId&&G.emit("onRemoteUserLeaveRoom",x.userId)}),this._trtc.on(U.default.EVENT.REMOTE_AUDIO_AVAILABLE,function(x){x?.userId&&G.emit("onUserAudioAvailable",x.userId,!0)}),this._trtc.on(U.default.EVENT.REMOTE_AUDIO_UNAVAILABLE,function(x){x?.userId&&G.emit("onUserAudioAvailable",x.userId,!1)}),this._trtc.on(U.default.EVENT.REMOTE_VIDEO_AVAILABLE,function(x){G._emitVideoAvailable(x,!0)}),this._trtc.on(U.default.EVENT.REMOTE_VIDEO_UNAVAILABLE,function(x){G._emitVideoAvailable(x,!1)}),this._trtc.on(U.default.EVENT.AUDIO_VOLUME,function(x){x?.result&&G.emit("onUserVoiceVolume",x?.result,(x?.result||[]).length)}),this._trtc.on(U.default.EVENT.KICKED_OUT,function(x){var tA={banned:nl.banned,room_disband:nl.roomDisband};zr(tA[x.reason])&&G.emit("onExitRoom",tA[x.reason])}),this._trtc.on(U.default.EVENT.NETWORK_QUALITY,function(x){var tA=x.uplinkNetworkQuality,uA=x.downlinkNetworkQuality,wA=new jo("",G._getTRTCCloudQuality(tA)),$A=[];G._remoteStatisticsUserIdList.length>0&&($A=G._remoteStatisticsUserIdList.map(function(me){return new jo(me,G._getTRTCCloudQuality(uA))})),G.emit("onNetworkQuality",wA,$A)}),this._trtc.on(U.default.EVENT.AUTOPLAY_FAILED,function(x){G.emit("onAutoPlayFailed",x)}),this._trtc.on(U.default.EVENT.SEI_MESSAGE,function(x){if(x.data&&typeof x.data=="object"&&x.data instanceof ArrayBuffer){for(var tA=new Uint8Array(x.data),uA="",wA=0;wA<tA.length;wA++)uA+=String.fromCharCode(tA[wA]);x.stringData=uA}G.emit("onRecvSEIMsg",x.userId,JSON.stringify(x))}),this._trtc.on(U.default.EVENT.STATISTICS,function(x){var tA,uA=x.rtt,wA=x.upLoss,$A=x.downLoss,me=x.bytesSent,p=x.bytesReceived,B=x.localStatistics,v=x.remoteStatistics;G._remoteStatisticsUserIdList=v.map(function(DA){return DA.userId});var N={big:r.TRTCVideoStreamType.TRTCVideoStreamTypeBig,small:r.TRTCVideoStreamType.TRTCVideoStreamTypeSmall,sub:r.TRTCVideoStreamType.TRTCVideoStreamTypeSub},O=((tA=B.video)===null||tA===void 0?void 0:tA.length)>0?B.video.map(function(DA){var GA=new io;return GA.width=DA.width,GA.height=DA.height,GA.frameRate=DA.frameRate,GA.videoBitrate=DA.bitrate,GA.audioBitrate=B.audio.bitrate||0,GA.streamType=N[DA.videoType],GA}):[];if(O.length===0&&B.audio.bitrate>0){var z=new io;z.audioBitrate=B.audio.bitrate||0,O.push(z)}var X=[];v.forEach(function(DA){var GA=[],VA=DA.userId,te=DA.audio.bitrate;if(DA.video&&DA.video.forEach(function(Ke){var ot=new bi;ot.userId=VA,ot.width=Ke.width,ot.height=Ke.height,ot.frameRate=Ke.frameRate,ot.videoBitrate=Ke.bitrate,ot.audioBitrate=te||0,ot.streamType=N[Ke.videoType],GA.push(ot)}),GA.length===0){var Ce=new bi;Ce.userId=VA,Ce.audioBitrate=te||0,GA.push(Ce)}X.push.apply(X,GA)});var rA=new vs;rA.upLoss=wA,rA.downLoss=$A,rA.rtt=uA,rA.sentBytes=me,rA.receivedBytes=p,rA.localStatisticsArray=O,rA.localStatisticsArraySize=O.length,rA.remoteStatisticsArray=X,rA.remoteStatisticsArraySize=X.length,G.emit("onStatistics",rA)}),this._trtc.on(U.default.EVENT.SCREEN_SHARE_STOPPED,function(){G.emit("onScreenCaptureStopped",0),G._clearScreenShareParams(),G._isSharingScreen=!1}),this._trtc.on(U.default.EVENT.PUBLISH_STATE_CHANGED,function(x){var tA=x.mediaType;x.state==="started"&&(tA==="audio"?G.emit("onSendFirstLocalAudioFrame"):tA==="video"?G.emit("onSendFirstLocalVideoFrame",r.TRTCVideoStreamType.TRTCVideoStreamTypeBig):tA==="screen"&&G.emit("onSendFirstLocalVideoFrame",r.TRTCVideoStreamType.TRTCVideoStreamTypeSub))}),this._trtc.on(U.default.EVENT.FIRST_VIDEO_FRAME,function(x){var tA=x.userId,uA=x.streamType,wA=x.width,$A=x.height;G.emit("onFirstVideoFrame",tA,uA,wA,$A)}),this._trtc.on(U.default.EVENT.AUDIO_PLAY_STATE_CHANGED,function(x){var tA=x.userId;x.state==="PLAYING"&&G.emit("onFirstAudioFrame",tA)}),this._trtc.on(U.default.EVENT.DEVICE_CHANGED,function(x){var tA=x.type,uA=x.device,wA=x.action,$A=uA.deviceId;if(wA==="active"){switch(tA){case"camera":G._currentCameraId=$A,G._currentCamera=uA;break;case"microphone":G._currentMicrophoneId=$A,G._currentMicrophone=uA;break;case"speaker":G._currentSpeakerId=$A,G._currentSpeaker=uA}G.emitOnDeviceChange($A,G._getTRTCCloudDeviceType(tA),G._getTRTCCloudDeviceState(wA))}}),this._trtc.on(U.default.EVENT.CUSTOM_MESSAGE,function(x){x&&G.emit("onRecvCustomCmdMsg",x.userId,x.cmdId,x.seq,x?.data)}),this._trtc.on(U.default.EVENT.CONNECTION_STATE_CHANGED,function(x){G._hasJoinedRoom&&!G._isExitingRoom&&(x.prevState==="CONNECTED"&&x.state==="DISCONNECTED"?G.emit("onConnectionLost"):x.prevState==="DISCONNECTED"&&x.state==="CONNECTING"?G.emit("onTryToReconnect"):x.prevState==="CONNECTING"&&x.state==="CONNECTED"&&G.emit("onConnectionRecovery"))}),this._trtc.on(U.default.EVENT.PICTURE_IN_PICTURE_STATE_CHANGED,function(x){G.emit("onPictureInPictureStateChanged",x)})},L.prototype._removeTRTCEvents=function(){this._trtc.off("*")},L.prototype._emitVideoAvailable=function(G,x){var tA=G.userId,uA=G.streamType;x?this._remoteStreamMap.set("".concat(tA,"_").concat(uA),!0):this._remoteStreamMap.delete("".concat(tA,"_").concat(uA)),uA===U.default.TYPE.STREAM_TYPE_SUB?tA&&this.emit("onUserSubStreamAvailable",tA,x):tA&&this.emit("onUserVideoAvailable",tA,x)},L.prototype._setLocalView=function(G){this._localView=G},L.prototype._getLocalView=function(){return this._localView},L.prototype._setIsMobile=function(G){this._isMobile=G},L.prototype._getIsMobile=function(){return this._isMobile},L.prototype._setIsFrontCamera=function(G){this._isFrontCamera=G},L.prototype._getIsFrontCamera=function(){return this._isFrontCamera},L.prototype._getSmallStreamVideoProfile=function(){return this._smallStreamVideoProfile},L.prototype._setSmallStreamVideoProfile=function(G){this._smallStreamVideoProfile=G},L.prototype._setIsVideoPublish=function(G){this._isVideoPublish=G},L.prototype._getIsVideoPublish=function(){return this._isVideoPublish},L.prototype._setVideoProfile=function(G){this._videoProfile=G},L.prototype._getVideoProfile=function(){return this._videoProfile},L.prototype._setQosPreference=function(G){this._qosPreference=G},L.prototype._getQosPreference=function(){return this._qosPreference},L.prototype._setLocalTestView=function(G){this._localTestView=G},L.prototype._getLocalTestView=function(){return this._localTestView},L.prototype._setScreenShareParams=function(G){var x=G.view,tA=G.systemAudio,uA=G.fillMode,wA=G.profile,$A=G.videoTrack,me=G.qosPreference;ds(x)||(this._screenShareParams.view=x),ds(tA)||(this._screenShareParams.option.systemAudio=tA),ds(uA)||(this._screenShareParams.option.fillMode=uA),ds(wA)||(this._screenShareParams.option.profile=wA),ds($A)||(this._screenShareParams.option.videoTrack=$A),ds(me)||(this._screenShareParams.option.qosPreference=me),ds(G.streamType)||(this._screenShareParams.streamType=this._getTRTCStreamType(G.streamType))},L.prototype._clearScreenShareParams=function(){var G,x,tA,uA,wA;!((G=this._screenShareParams)===null||G===void 0)&&G.view&&delete this._screenShareParams.view,!((tA=(x=this._screenShareParams)===null||x===void 0?void 0:x.option)===null||tA===void 0)&&tA.systemAudio&&delete this._screenShareParams.option.systemAudio,!((wA=(uA=this._screenShareParams)===null||uA===void 0?void 0:uA.option)===null||wA===void 0)&&wA.videoTrack&&delete this._screenShareParams.option.videoTrack},L.prototype._getScreenShareParams=function(){return this._screenShareParams},L.prototype._setIsAudioPublish=function(G){this._isAudioPublish=G},L.prototype._getIsAudioPublish=function(){return this._isAudioPublish},L.prototype._setAudioMuteType=function(G){this._audioMuteType=G},L.prototype._getAudioMuteType=function(){return this._audioMuteType},L.prototype._setAudioProfile=function(G){this._audioProfile=G},L.prototype._getAudioProfile=function(){return this._audioProfile},L.prototype._getCaptureVolume=function(){return this._captureVolume},L.prototype._setCaptureVolume=function(G){this._captureVolume=G},L.prototype._setCurrentCameraId=function(G){this._currentCameraId=G},L.prototype._getCurrentCameraId=function(){return this._currentCameraId},L.prototype._setCurrentMicrophoneId=function(G){this._currentMicrophoneId=G},L.prototype._getCurrentMicrophoneId=function(){return this._currentMicrophoneId},L.prototype._setCurrentSpeakerId=function(G){this._currentSpeakerId=G},L.prototype._getCurrentSpeakerId=function(){return this._currentSpeakerId},L.prototype._setRemoteStreamConfig=function(G,x,tA){var uA=this._remoteStreamConfig.get("".concat(G,"_").concat(this._getTRTCStreamType(x)));uA||(uA={userId:G,streamType:this._getTRTCStreamType(x),option:{mirror:this._getTRTCRemoteMirror(r.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),fillMode:this._getTRTCFillMode(r.TRTCVideoFillMode.TRTCVideoFillMode_Fit)}});var wA=tA.view,$A=tA.mirrorType,me=tA.fillMode,p=tA.small;ds(wA)||(uA.view=wA),ds($A)||(uA.option.mirror=this._getTRTCRemoteMirror($A)),ds(me)||(uA.option.fillMode=this._getTRTCFillMode(me)),ds(p)||(uA.option.small=p),this._remoteStreamConfig.set("".concat(G,"_").concat(this._getTRTCStreamType(x)),uA)},L.prototype._inheritPropertiesToSubCloud=function(G){G._frameWorkType=this._frameWorkType,G._component=this._component,G._language=this._language,G._networkProxy=nA({},this._networkProxy),G._latencyLevel=this._latencyLevel,G._enableAutoPlayDialog=this._enableAutoPlayDialog},L.prototype._inheritEventsToSubCloud=function(G){var x=this;G._trtc.on(U.default.EVENT.AUTOPLAY_FAILED,function(tA){x.emit("onAutoPlayFailed",tA)}),G._trtc.on(U.default.EVENT.PICTURE_IN_PICTURE_STATE_CHANGED,function(tA){x.emit("onPictureInPictureStateChanged",tA)})},L.prototype.handleDeviceChange=function(){return lA(this,void 0,void 0,function(){var G=this;return cA(this,function(x){return U.default.getCameraList().then(function(tA){return lA(G,void 0,void 0,function(){return cA(this,function(uA){switch(uA.label){case 0:return this._cameraList.length===tA.length?[2]:[4,this.deviceChangeManage(this._cameraList,tA,r.TRTCDeviceType.TRTCDeviceTypeCamera)];case 1:return uA.sent(),this._cameraList=tA,[2]}})})}),U.default.getMicrophoneList().then(function(tA){return lA(G,void 0,void 0,function(){return cA(this,function(uA){switch(uA.label){case 0:return[4,this.deviceChangeManage(this._microphoneList,tA,r.TRTCDeviceType.TRTCDeviceTypeMic)];case 1:return uA.sent(),this._microphoneList=tA,[2]}})})}),U.default.getSpeakerList().then(function(tA){return lA(G,void 0,void 0,function(){return cA(this,function(uA){switch(uA.label){case 0:return[4,this.deviceChangeManage(this._speakerList,tA,r.TRTCDeviceType.TRTCDeviceTypeSpeaker)];case 1:return uA.sent(),this._speakerList=tA,[2]}})})}),[2]})})},L.prototype.isSameDevice=function(G,x){var tA=G&&G.deviceId&&G.groupId&&G.label,uA=x&&x.deviceId&&x.groupId&&x.label;return!(!tA||!uA)&&G.deviceId===x.deviceId&&G.groupId===x.groupId&&G.label===x.label},L.prototype.deviceChangeManage=function(G,x,tA){return lA(this,void 0,void 0,function(){var uA,wA,$A,me,p;return cA(this,function(B){switch(B.label){case 0:return uA=void 0,G.length!==x.length&&(wA=(x||[]).map(function(v){return v.deviceId}),$A=new Ut,G.length>x.length?($A=G.filter(function(v){return!wA.includes(v.deviceId)})[0]||{},uA=r.TRTCDeviceState.TRTCDeviceStateRemove):(wA=(G||[]).map(function(v){return v.deviceId}),$A=x.filter(function(v){return!wA.includes(v.deviceId)})[0]||{},uA=r.TRTCDeviceState.TRTCDeviceStateAdd),me=$A.deviceId,this.emitOnDeviceChange(me,tA,uA)),p=this.getDefaultDeviceInfo(x),tA!==r.TRTCDeviceType.TRTCDeviceTypeCamera||uA!==r.TRTCDeviceState.TRTCDeviceStateRemove?[3,3]:this.isSameDevice(this._currentCamera,p)?[2]:p.deviceId?[4,this.autoChangeDevice(tA,p)]:[3,2];case 1:B.sent(),B.label=2;case 2:B.label=3;case 3:return tA!==r.TRTCDeviceType.TRTCDeviceTypeMic?[3,6]:this.isSameDevice(this._currentMicrophone,p)?[2]:p.deviceId?[4,this.autoChangeDevice(tA,p)]:[3,5];case 4:B.sent(),B.label=5;case 5:B.label=6;case 6:return tA!==r.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,9]:this.isSameDevice(this._currentSpeaker,p)?[2]:p.deviceId?[4,this.autoChangeDevice(tA,p)]:[3,8];case 7:B.sent(),B.label=8;case 8:B.label=9;case 9:return[2]}})})},L.prototype.getDefaultDeviceInfo=function(G){var x=new Ut;if(G.length===0)return x;var tA=G.filter(function(uA){return uA.deviceId==="default"});return x=tA.length>0?tA[0]:G[0]},L.prototype.autoChangeDevice=function(G,x){return lA(this,void 0,void 0,function(){var tA,uA,wA;return cA(this,function($A){switch($A.label){case 0:return tA=x.deviceId,G!==r.TRTCDeviceType.TRTCDeviceTypeCamera?[3,6]:(this._setCurrentCameraId(tA),[4,this._updateLocalVideo()]);case 1:$A.sent(),$A.label=2;case 2:return $A.trys.push([2,4,,5]),[4,this._testTrtc.updateLocalVideo({option:{cameraId:tA}})];case 3:return $A.sent(),[3,5];case 4:return uA=$A.sent(),console.log("testTRTC error",JSON.stringify(uA)),uA.code,U.default.ERROR_CODE.OPERATION_ABORT,[3,5];case 5:this._currentCameraId=tA,this._currentCamera=x,this.emitOnDeviceChange(tA,G,r.TRTCDeviceState.TRTCDeviceStateActive),$A.label=6;case 6:return G!==r.TRTCDeviceType.TRTCDeviceTypeMic?[3,12]:(this._setCurrentMicrophoneId(tA),[4,this._updateLocalAudio()]);case 7:$A.sent(),$A.label=8;case 8:return $A.trys.push([8,10,,11]),[4,this._testTrtc.updateLocalAudio({option:{microphoneId:tA}})];case 9:return $A.sent(),[3,11];case 10:return wA=$A.sent(),console.log("testTRTC error",JSON.stringify(wA)),wA.code,U.default.ERROR_CODE.OPERATION_ABORT,[3,11];case 11:this._currentMicrophoneId=tA,this._currentMicrophone=x,this.emitOnDeviceChange(tA,G,r.TRTCDeviceState.TRTCDeviceStateActive),$A.label=12;case 12:return G!==r.TRTCDeviceType.TRTCDeviceTypeSpeaker?[3,14]:[4,U.default.setCurrentSpeaker(tA)];case 13:$A.sent(),this._currentSpeakerId=tA,this._currentSpeaker=x,this.emitOnDeviceChange(tA,G,r.TRTCDeviceState.TRTCDeviceStateActive),$A.label=14;case 14:return[2]}})})},L.prototype.emitOnDeviceChange=function(G,x,tA){this.emit("onDeviceChange",G,x,tA)},L.prototype.getMediaMixingManager=function(){return new Fl({logger:this.logger,trtc:this._trtc,trtcCloud:this})},L.prototype.getAITranscriberManager=function(){return new xE({logger:this.logger,trtc:this._trtc})},L.shareInstance=null,L.subCloudMap=new Map,L.enableSEI=!1,L.assetsPath="",mA([(oA="exitRoom",function(G,x,tA){var uA=tA.value;return tA.value=function(){for(var wA,$A,me,p,B=[],v=0;v<arguments.length;v++)B[v]=arguments[v];var N=[];return($A=(wA=DI.get(this))===null||wA===void 0?void 0:wA.queue)===null||$A===void 0||$A.forEach(function(O){return N.push(O)}),(me=tu.get(this))===null||me===void 0||me.forEach(function(O){return O?.queue.forEach(function(z){return N.push(z)})}),(p=Ba.get(this))===null||p===void 0||p.forEach(function(O){return O?.queue.forEach(function(z){return N.push(z)})}),N.forEach(function(O){O.reject(new Error("aborted ".concat(oA)))}),DI.delete(this),tu.delete(this),Ba.delete(this),uA.apply(this,B)},tA})],L.prototype,"exitRoom",null),mA([cl(function(G){return G})],L.prototype,"muteRemoteAudio",null),mA([cl(function(G){return G})],L.prototype,"muteRemoteVideoStream",null),mA([cl(function(G){var x=G||{},tA=x.quality,uA=x.stream_list,wA=uA===void 0?[]:uA,$A=wA.some(function(me){return me.name===tA});return tA&&$A?wA.map(function(me){return me.user_id}):(console.warn("[QualitySwitch] Invalid params: target ".concat(tA," not found in list")),[])},{deduplicate:!0})],L.prototype,"_switchPlaybackQuality",null),L}(XA);r.Rect=Ai,r.TRTCDeviceInfo=Ut,r.TRTCImageBuffer=Ft,r.TRTCLocalStatistics=io,r.TRTCMixUser=vt,r.TRTCNetworkQosParam=Ve,r.TRTCParams=Fi,r.TRTCPublishCDNParam=Wt,r.TRTCQualityInfo=jo,r.TRTCRemoteStatistics=bi,r.TRTCRenderParams=Eo,r.TRTCScreenCaptureProperty=Oi,r.TRTCScreenCaptureSourceInfo=It,r.TRTCStatistics=vs,r.TRTCTranscodingConfig=ei,r.TRTCVideoEncParam=To,r.TRTCVolumeInfo=$i,r.default=fC,Object.defineProperty(r,"__esModule",{value:!0})})}(RL,RL.exports)),RL.exports}var rY={exports:{}},DEA=rY.exports,JZ;function SEA(){return JZ||(JZ=1,function(t,i){(function(r,l){t.exports=l()})(DEA,function(){function r(H,BA){var yA=Object.keys(H);if(Object.getOwnPropertySymbols){var NA=Object.getOwnPropertySymbols(H);BA&&(NA=NA.filter(function(zA){return Object.getOwnPropertyDescriptor(H,zA).enumerable})),yA.push.apply(yA,NA)}return yA}function l(H){for(var BA=1;BA<arguments.length;BA++){var yA=arguments[BA]!=null?arguments[BA]:{};BA%2?r(Object(yA),!0).forEach(function(NA){_(H,NA,yA[NA])}):Object.getOwnPropertyDescriptors?Object.defineProperties(H,Object.getOwnPropertyDescriptors(yA)):r(Object(yA)).forEach(function(NA){Object.defineProperty(H,NA,Object.getOwnPropertyDescriptor(yA,NA))})}return H}function I(H){return(I=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(BA){return typeof BA}:function(BA){return BA&&typeof Symbol=="function"&&BA.constructor===Symbol&&BA!==Symbol.prototype?"symbol":typeof BA})(H)}function h(H,BA,yA,NA,zA,we,Ie){try{var Ge=H[we](Ie),ce=Ge.value}catch(Fe){return void yA(Fe)}Ge.done?BA(ce):Promise.resolve(ce).then(NA,zA)}function f(H){return function(){var BA=this,yA=arguments;return new Promise(function(NA,zA){var we=H.apply(BA,yA);function Ie(ce){h(we,NA,zA,Ie,Ge,"next",ce)}function Ge(ce){h(we,NA,zA,Ie,Ge,"throw",ce)}Ie(void 0)})}}function w(H,BA){for(var yA=0;yA<BA.length;yA++){var NA=BA[yA];NA.enumerable=NA.enumerable||!1,NA.configurable=!0,"value"in NA&&(NA.writable=!0),Object.defineProperty(H,NA.key,NA)}}function _(H,BA,yA){return BA in H?Object.defineProperty(H,BA,{value:yA,enumerable:!0,configurable:!0,writable:!0}):H[BA]=yA,H}function b(H,BA){return function(yA){if(Array.isArray(yA))return yA}(H)||function(yA,NA){var zA=yA==null?null:typeof Symbol<"u"&&yA[Symbol.iterator]||yA["@@iterator"];if(zA!=null){var we,Ie,Ge=[],ce=!0,Fe=!1;try{for(zA=zA.call(yA);!(ce=(we=zA.next()).done)&&(Ge.push(we.value),!NA||Ge.length!==NA);ce=!0);}catch(St){Fe=!0,Ie=St}finally{try{ce||zA.return==null||zA.return()}finally{if(Fe)throw Ie}}return Ge}}(H,BA)||function(yA,NA){if(yA){if(typeof yA=="string")return U(yA,NA);var zA=Object.prototype.toString.call(yA).slice(8,-1);if(zA==="Object"&&yA.constructor&&(zA=yA.constructor.name),zA==="Map"||zA==="Set")return Array.from(yA);if(zA==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(zA))return U(yA,NA)}}(H,BA)||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 U(H,BA){(BA==null||BA>H.length)&&(BA=H.length);for(var yA=0,NA=new Array(BA);yA<BA;yA++)NA[yA]=H[yA];return NA}var j=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof mg<"u"?mg:typeof self<"u"?self:{};function IA(H,BA){return H(BA={exports:{}},BA.exports),BA.exports}IA(function(H){var BA=function(yA){var NA=Object.prototype,zA=NA.hasOwnProperty,we=typeof Symbol=="function"?Symbol:{},Ie=we.iterator||"@@iterator",Ge=we.asyncIterator||"@@asyncIterator",ce=we.toStringTag||"@@toStringTag";function Fe(Ri,oi,yo){return Object.defineProperty(Ri,oi,{value:yo,enumerable:!0,configurable:!0,writable:!0}),Ri[oi]}try{Fe({},"")}catch{Fe=function(oi,yo,on){return oi[yo]=on}}function St(Ri,oi,yo,on){var os=oi&&oi.prototype instanceof ft?oi:ft,Eg=Object.create(os.prototype),Ol=new sc(on||[]);return Eg._invoke=function(fd,Lc,Mr){var SI="suspendedStart";return function(su,Og){if(SI==="executing")throw new Error("Generator is already running");if(SI==="completed"){if(su==="throw")throw Og;return mm()}for(Mr.method=su,Mr.arg=Og;;){var nu=Mr.delegate;if(nu){var MI=Wn(nu,Mr);if(MI){if(MI===ci)continue;return MI}}if(Mr.method==="next")Mr.sent=Mr._sent=Mr.arg;else if(Mr.method==="throw"){if(SI==="suspendedStart")throw SI="completed",Mr.arg;Mr.dispatchException(Mr.arg)}else Mr.method==="return"&&Mr.abrupt("return",Mr.arg);SI="executing";var Uc=jt(fd,Lc,Mr);if(Uc.type==="normal"){if(SI=Mr.done?"completed":"suspendedYield",Uc.arg===ci)continue;return{value:Uc.arg,done:Mr.done}}Uc.type==="throw"&&(SI="completed",Mr.method="throw",Mr.arg=Uc.arg)}}}(Ri,yo,Ol),Eg}function jt(Ri,oi,yo){try{return{type:"normal",arg:Ri.call(oi,yo)}}catch(on){return{type:"throw",arg:on}}}yA.wrap=St;var ci={};function ft(){}function Bi(){}function Ao(){}var Is={};Fe(Is,Ie,function(){return this});var Uo=Object.getPrototypeOf,ii=Uo&&Uo(Uo(Hu([])));ii&&ii!==NA&&zA.call(ii,Ie)&&(Is=ii);var Fr=Ao.prototype=ft.prototype=Object.create(Is);function Zo(Ri){["next","throw","return"].forEach(function(oi){Fe(Ri,oi,function(yo){return this._invoke(oi,yo)})})}function jn(Ri,oi){var yo;this._invoke=function(on,os){function Eg(){return new oi(function(Ol,fd){(function Lc(Mr,SI,su,Og){var nu=jt(Ri[Mr],Ri,SI);if(nu.type!=="throw"){var MI=nu.arg,Uc=MI.value;return Uc&&typeof Uc=="object"&&zA.call(Uc,"__await")?oi.resolve(Uc.__await).then(function(qu){Lc("next",qu,su,Og)},function(qu){Lc("throw",qu,su,Og)}):oi.resolve(Uc).then(function(qu){MI.value=qu,su(MI)},function(qu){return Lc("throw",qu,su,Og)})}Og(nu.arg)})(on,os,Ol,fd)})}return yo=yo?yo.then(Eg,Eg):Eg()}}function Wn(Ri,oi){var yo=Ri.iterator[oi.method];if(yo===void 0){if(oi.delegate=null,oi.method==="throw"){if(Ri.iterator.return&&(oi.method="return",oi.arg=void 0,Wn(Ri,oi),oi.method==="throw"))return ci;oi.method="throw",oi.arg=new TypeError("The iterator does not provide a 'throw' method")}return ci}var on=jt(yo,Ri.iterator,oi.arg);if(on.type==="throw")return oi.method="throw",oi.arg=on.arg,oi.delegate=null,ci;var os=on.arg;return os?os.done?(oi[Ri.resultName]=os.value,oi.next=Ri.nextLoc,oi.method!=="return"&&(oi.method="next",oi.arg=void 0),oi.delegate=null,ci):os:(oi.method="throw",oi.arg=new TypeError("iterator result is not an object"),oi.delegate=null,ci)}function ta(Ri){var oi={tryLoc:Ri[0]};1 in Ri&&(oi.catchLoc=Ri[1]),2 in Ri&&(oi.finallyLoc=Ri[2],oi.afterLoc=Ri[3]),this.tryEntries.push(oi)}function qr(Ri){var oi=Ri.completion||{};oi.type="normal",delete oi.arg,Ri.completion=oi}function sc(Ri){this.tryEntries=[{tryLoc:"root"}],Ri.forEach(ta,this),this.reset(!0)}function Hu(Ri){if(Ri){var oi=Ri[Ie];if(oi)return oi.call(Ri);if(typeof Ri.next=="function")return Ri;if(!isNaN(Ri.length)){var yo=-1,on=function os(){for(;++yo<Ri.length;)if(zA.call(Ri,yo))return os.value=Ri[yo],os.done=!1,os;return os.value=void 0,os.done=!0,os};return on.next=on}}return{next:mm}}function mm(){return{value:void 0,done:!0}}return Bi.prototype=Ao,Fe(Fr,"constructor",Ao),Fe(Ao,"constructor",Bi),Bi.displayName=Fe(Ao,ce,"GeneratorFunction"),yA.isGeneratorFunction=function(Ri){var oi=typeof Ri=="function"&&Ri.constructor;return!!oi&&(oi===Bi||(oi.displayName||oi.name)==="GeneratorFunction")},yA.mark=function(Ri){return Object.setPrototypeOf?Object.setPrototypeOf(Ri,Ao):(Ri.__proto__=Ao,Fe(Ri,ce,"GeneratorFunction")),Ri.prototype=Object.create(Fr),Ri},yA.awrap=function(Ri){return{__await:Ri}},Zo(jn.prototype),Fe(jn.prototype,Ge,function(){return this}),yA.AsyncIterator=jn,yA.async=function(Ri,oi,yo,on,os){os===void 0&&(os=Promise);var Eg=new jn(St(Ri,oi,yo,on),os);return yA.isGeneratorFunction(oi)?Eg:Eg.next().then(function(Ol){return Ol.done?Ol.value:Eg.next()})},Zo(Fr),Fe(Fr,ce,"Generator"),Fe(Fr,Ie,function(){return this}),Fe(Fr,"toString",function(){return"[object Generator]"}),yA.keys=function(Ri){var oi=[];for(var yo in Ri)oi.push(yo);return oi.reverse(),function on(){for(;oi.length;){var os=oi.pop();if(os in Ri)return on.value=os,on.done=!1,on}return on.done=!0,on}},yA.values=Hu,sc.prototype={constructor:sc,reset:function(Ri){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(qr),!Ri)for(var oi in this)oi.charAt(0)==="t"&&zA.call(this,oi)&&!isNaN(+oi.slice(1))&&(this[oi]=void 0)},stop:function(){this.done=!0;var Ri=this.tryEntries[0].completion;if(Ri.type==="throw")throw Ri.arg;return this.rval},dispatchException:function(Ri){if(this.done)throw Ri;var oi=this;function yo(Lc,Mr){return Eg.type="throw",Eg.arg=Ri,oi.next=Lc,Mr&&(oi.method="next",oi.arg=void 0),!!Mr}for(var on=this.tryEntries.length-1;on>=0;--on){var os=this.tryEntries[on],Eg=os.completion;if(os.tryLoc==="root")return yo("end");if(os.tryLoc<=this.prev){var Ol=zA.call(os,"catchLoc"),fd=zA.call(os,"finallyLoc");if(Ol&&fd){if(this.prev<os.catchLoc)return yo(os.catchLoc,!0);if(this.prev<os.finallyLoc)return yo(os.finallyLoc)}else if(Ol){if(this.prev<os.catchLoc)return yo(os.catchLoc,!0)}else{if(!fd)throw new Error("try statement without catch or finally");if(this.prev<os.finallyLoc)return yo(os.finallyLoc)}}}},abrupt:function(Ri,oi){for(var yo=this.tryEntries.length-1;yo>=0;--yo){var on=this.tryEntries[yo];if(on.tryLoc<=this.prev&&zA.call(on,"finallyLoc")&&this.prev<on.finallyLoc){var os=on;break}}os&&(Ri==="break"||Ri==="continue")&&os.tryLoc<=oi&&oi<=os.finallyLoc&&(os=null);var Eg=os?os.completion:{};return Eg.type=Ri,Eg.arg=oi,os?(this.method="next",this.next=os.finallyLoc,ci):this.complete(Eg)},complete:function(Ri,oi){if(Ri.type==="throw")throw Ri.arg;return Ri.type==="break"||Ri.type==="continue"?this.next=Ri.arg:Ri.type==="return"?(this.rval=this.arg=Ri.arg,this.method="return",this.next="end"):Ri.type==="normal"&&oi&&(this.next=oi),ci},finish:function(Ri){for(var oi=this.tryEntries.length-1;oi>=0;--oi){var yo=this.tryEntries[oi];if(yo.finallyLoc===Ri)return this.complete(yo.completion,yo.afterLoc),qr(yo),ci}},catch:function(Ri){for(var oi=this.tryEntries.length-1;oi>=0;--oi){var yo=this.tryEntries[oi];if(yo.tryLoc===Ri){var on=yo.completion;if(on.type==="throw"){var os=on.arg;qr(yo)}return os}}throw new Error("illegal catch attempt")},delegateYield:function(Ri,oi,yo){return this.delegate={iterator:Hu(Ri),resultName:oi,nextLoc:yo},this.method==="next"&&(this.arg=void 0),ci}},yA}(H.exports);try{regeneratorRuntime=BA}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=BA:Function("r","regeneratorRuntime = r")(BA)}});var nA,mA,lA=function(H){return H&&H.Math==Math&&H},cA=lA(typeof globalThis=="object"&&globalThis)||lA(typeof window=="object"&&window)||lA(typeof self=="object"&&self)||lA(typeof j=="object"&&j)||function(){return this}()||Function("return this")(),TA=function(H){try{return!!H()}catch{return!0}},WA=!TA(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),Ee={}.propertyIsEnumerable,de=Object.getOwnPropertyDescriptor,Pe={f:de&&!Ee.call({1:2},1)?function(H){var BA=de(this,H);return!!BA&&BA.enumerable}:Ee},pe=function(H,BA){return{enumerable:!(1&H),configurable:!(2&H),writable:!(4&H),value:BA}},gt={}.toString,pt=function(H){return gt.call(H).slice(8,-1)},We="".split,Dt=TA(function(){return!Object("z").propertyIsEnumerable(0)})?function(H){return pt(H)=="String"?We.call(H,""):Object(H)}:Object,Kt=function(H){if(H==null)throw TypeError("Can't call method on "+H);return H},ut=function(H){return Dt(Kt(H))},ge=function(H){return typeof H=="function"},XA=function(H){return typeof H=="object"?H!==null:ge(H)},_e=function(H){return ge(H)?H:void 0},je=function(H,BA){return arguments.length<2?_e(cA[H]):cA[H]&&cA[H][BA]},Ut=je("navigator","userAgent")||"",gi=cA.process,Fi=cA.Deno,To=gi&&gi.versions||Fi&&Fi.version,to=To&&To.v8;to?mA=(nA=to.split("."))[0]<4?1:nA[0]+nA[1]:Ut&&(!(nA=Ut.match(/Edge\/(\d+)/))||nA[1]>=74)&&(nA=Ut.match(/Chrome\/(\d+)/))&&(mA=nA[1]);var Eo=mA&&+mA,Vs=!!Object.getOwnPropertySymbols&&!TA(function(){var H=Symbol();return!String(H)||!(Object(H)instanceof Symbol)||!Symbol.sham&&Eo&&Eo<41}),ki=Vs&&!Symbol.sham&&typeof Symbol.iterator=="symbol",ns=ki?function(H){return typeof H=="symbol"}:function(H){var BA=je("Symbol");return ge(BA)&&Object(H)instanceof BA},jo=function(H){try{return String(H)}catch{return"Object"}},$i=function(H){if(ge(H))return H;throw TypeError(jo(H)+" is not a function")},Wt=function(H,BA){var yA=H[BA];return yA==null?void 0:$i(yA)},io=function(H,BA){try{Object.defineProperty(cA,H,{value:BA,configurable:!0,writable:!0})}catch{cA[H]=BA}return BA},bi=cA["__core-js_shared__"]||io("__core-js_shared__",{}),vs=IA(function(H){(H.exports=function(BA,yA){return bi[BA]||(bi[BA]=yA!==void 0?yA:{})})("versions",[]).push({version:"3.18.2",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})}),HA=function(H){return Object(Kt(H))},le={}.hasOwnProperty,Ve=Object.hasOwn||function(H,BA){return le.call(HA(H),BA)},Ft=0,nt=Math.random(),It=function(H){return"Symbol("+String(H===void 0?"":H)+")_"+(++Ft+nt).toString(36)},Ai=vs("wks"),ei=cA.Symbol,ke=ki?ei:ei&&ei.withoutSetter||It,Ze=function(H){return Ve(Ai,H)&&(Vs||typeof Ai[H]=="string")||(Vs&&Ve(ei,H)?Ai[H]=ei[H]:Ai[H]=ke("Symbol."+H)),Ai[H]},vt=Ze("toPrimitive"),_t=function(H,BA){if(!XA(H)||ns(H))return H;var yA,NA=Wt(H,vt);if(NA){if(yA=NA.call(H,BA),!XA(yA)||ns(yA))return yA;throw TypeError("Can't convert object to primitive value")}return function(zA,we){var Ie,Ge;if(ge(Ie=zA.toString)&&!XA(Ge=Ie.call(zA))||ge(Ie=zA.valueOf)&&!XA(Ge=Ie.call(zA)))return Ge;throw TypeError("Can't convert object to primitive value")}(H)},Oi=function(H){var BA=_t(H,"string");return ns(BA)?BA:String(BA)},po=cA.document,No=XA(po)&&XA(po.createElement),oo=function(H){return No?po.createElement(H):{}},Go=!WA&&!TA(function(){return Object.defineProperty(oo("div"),"a",{get:function(){return 7}}).a!=7}),An=Object.getOwnPropertyDescriptor,rn={f:WA?An:function(H,BA){if(H=ut(H),BA=Oi(BA),Go)try{return An(H,BA)}catch{}if(Ve(H,BA))return pe(!Pe.f.call(H,BA),H[BA])}},Es=function(H){if(XA(H))return H;throw TypeError(String(H)+" is not an object")},an=Object.defineProperty,Do={f:WA?an:function(H,BA,yA){if(Es(H),BA=Oi(BA),Es(yA),Go)try{return an(H,BA,yA)}catch{}if("get"in yA||"set"in yA)throw TypeError("Accessors not supported");return"value"in yA&&(H[BA]=yA.value),H}},pA=WA?function(H,BA,yA){return Do.f(H,BA,pe(1,yA))}:function(H,BA,yA){return H[BA]=yA,H},Jn=Function.toString;ge(bi.inspectSource)||(bi.inspectSource=function(H){return Jn.call(H)});var Qr,ds,zr,Pi=bi.inspectSource,Rs=cA.WeakMap,or=ge(Rs)&&/native code/.test(Pi(Rs)),en=vs("keys"),wn=function(H){return en[H]||(en[H]=It(H))},Ht={},yg=cA.WeakMap;if(or||bi.state){var On=bi.state||(bi.state=new yg),Gn=On.get,Js=On.has,pr=On.set;Qr=function(H,BA){if(Js.call(On,H))throw new TypeError("Object already initialized");return BA.facade=H,pr.call(On,H,BA),BA},ds=function(H){return Gn.call(On,H)||{}},zr=function(H){return Js.call(On,H)}}else{var Pn=wn("state");Ht[Pn]=!0,Qr=function(H,BA){if(Ve(H,Pn))throw new TypeError("Object already initialized");return BA.facade=H,pA(H,Pn,BA),BA},ds=function(H){return Ve(H,Pn)?H[Pn]:{}},zr=function(H){return Ve(H,Pn)}}var mr={set:Qr,get:ds,has:zr,enforce:function(H){return zr(H)?ds(H):Qr(H,{})},getterFor:function(H){return function(BA){var yA;if(!XA(BA)||(yA=ds(BA)).type!==H)throw TypeError("Incompatible receiver, "+H+" required");return yA}}},mo=Function.prototype,gn=WA&&Object.getOwnPropertyDescriptor,Sl=Ve(mo,"name"),cn={PROPER:Sl&&function(){}.name==="something",CONFIGURABLE:Sl&&(!WA||WA&&gn(mo,"name").configurable)},fr=IA(function(H){var BA=cn.CONFIGURABLE,yA=mr.get,NA=mr.enforce,zA=String(String).split("String");(H.exports=function(we,Ie,Ge,ce){var Fe,St=!!ce&&!!ce.unsafe,jt=!!ce&&!!ce.enumerable,ci=!!ce&&!!ce.noTargetGet,ft=ce&&ce.name!==void 0?ce.name:Ie;ge(Ge)&&(String(ft).slice(0,7)==="Symbol("&&(ft="["+String(ft).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Ve(Ge,"name")||BA&&Ge.name!==ft)&&pA(Ge,"name",ft),(Fe=NA(Ge)).source||(Fe.source=zA.join(typeof ft=="string"?ft:""))),we!==cA?(St?!ci&&we[Ie]&&(jt=!0):delete we[Ie],jt?we[Ie]=Ge:pA(we,Ie,Ge)):jt?we[Ie]=Ge:io(Ie,Ge)})(Function.prototype,"toString",function(){return ge(this)&&yA(this).source||Pi(this)})}),Ls=Math.ceil,Jc=Math.floor,ms=function(H){var BA=+H;return BA!=BA||BA===0?0:(BA>0?Jc:Ls)(BA)},as=Math.max,Mu=Math.min,Wa=Math.min,Cs=function(H){return H>0?Wa(ms(H),9007199254740991):0},sg=function(H){return Cs(H.length)},JI=function(H){return function(BA,yA,NA){var zA,we=ut(BA),Ie=sg(we),Ge=function(ce,Fe){var St=ms(ce);return St<0?as(St+Fe,0):Mu(St,Fe)}(NA,Ie);if(H&&yA!=yA){for(;Ie>Ge;)if((zA=we[Ge++])!=zA)return!0}else for(;Ie>Ge;Ge++)if((H||Ge in we)&&we[Ge]===yA)return H||Ge||0;return!H&&-1}},$o={indexOf:JI(!1)},Xi=$o.indexOf,pc=function(H,BA){var yA,NA=ut(H),zA=0,we=[];for(yA in NA)!Ve(Ht,yA)&&Ve(NA,yA)&&we.push(yA);for(;BA.length>zA;)Ve(NA,yA=BA[zA++])&&(~Xi(we,yA)||we.push(yA));return we},ng=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Dg=ng.concat("length","prototype"),ua={f:Object.getOwnPropertyNames||function(H){return pc(H,Dg)}},bo={f:Object.getOwnPropertySymbols},Zr=je("Reflect","ownKeys")||function(H){var BA=ua.f(Es(H)),yA=bo.f;return yA?BA.concat(yA(H)):BA},_o=function(H,BA){for(var yA=Zr(BA),NA=Do.f,zA=rn.f,we=0;we<yA.length;we++){var Ie=yA[we];Ve(H,Ie)||NA(H,Ie,zA(BA,Ie))}},Hc=/#|\.prototype\./,Hn=function(H,BA){var yA=Sg[Hs(H)];return yA==fn||yA!=mc&&(ge(BA)?TA(BA):!!BA)},Hs=Hn.normalize=function(H){return String(H).replace(Hc,".").toLowerCase()},Sg=Hn.data={},mc=Hn.NATIVE="N",fn=Hn.POLYFILL="P",Ga=Hn,In=rn.f,fs=function(H,BA){var yA,NA,zA,we,Ie,Ge=H.target,ce=H.global,Fe=H.stat;if(yA=ce?cA:Fe?cA[Ge]||io(Ge,{}):(cA[Ge]||{}).prototype)for(NA in BA){if(we=BA[NA],zA=H.noTargetGet?(Ie=In(yA,NA))&&Ie.value:yA[NA],!Ga(ce?NA:Ge+(Fe?".":"#")+NA,H.forced)&&zA!==void 0){if(typeof we==typeof zA)continue;_o(we,zA)}(H.sham||zA&&zA.sham)&&pA(we,"sham",!0),fr(yA,NA,we,H)}},Ea=Array.isArray||function(H){return pt(H)=="Array"},yn=function(H,BA,yA){var NA=Oi(BA);NA in H?Do.f(H,NA,pe(0,yA)):H[NA]=yA},ba={};ba[Ze("toStringTag")]="z";var Sa=String(ba)==="[object z]",$=Ze("toStringTag"),K=pt(function(){return arguments}())=="Arguments",vA=Sa?pt:function(H){var BA,yA,NA;return H===void 0?"Undefined":H===null?"Null":typeof(yA=function(zA,we){try{return zA[we]}catch{}}(BA=Object(H),$))=="string"?yA:K?pt(BA):(NA=pt(BA))=="Object"&&ge(BA.callee)?"Arguments":NA},qA=[],ee=je("Reflect","construct"),fe=/^\s*(?:class|function)\b/,xe=fe.exec,Oe=!fe.exec(function(){}),rt=function(H){if(!ge(H))return!1;try{return ee(Object,qA,H),!0}catch{return!1}},dt=!ee||TA(function(){var H;return rt(rt.call)||!rt(Object)||!rt(function(){H=!0})||H})?function(H){if(!ge(H))return!1;switch(vA(H)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return Oe||!!xe.call(fe,Pi(H))}:rt,Mt=Ze("species"),xt=function(H,BA){return new(function(yA){var NA;return Ea(yA)&&(NA=yA.constructor,(dt(NA)&&(NA===Array||Ea(NA.prototype))||XA(NA)&&(NA=NA[Mt])===null)&&(NA=void 0)),NA===void 0?Array:NA}(H))(BA===0?0:BA)},Ii=Ze("species"),ct=function(H){return Eo>=51||!TA(function(){var BA=[];return(BA.constructor={})[Ii]=function(){return{foo:1}},BA[H](Boolean).foo!==1})},Pt=Ze("isConcatSpreadable"),Ji=Eo>=51||!TA(function(){var H=[];return H[Pt]=!1,H.concat()[0]!==H}),Ki=ct("concat"),qs=function(H){if(!XA(H))return!1;var BA=H[Pt];return BA!==void 0?!!BA:Ea(H)};fs({target:"Array",proto:!0,forced:!Ji||!Ki},{concat:function(H){var BA,yA,NA,zA,we,Ie=HA(this),Ge=xt(Ie,0),ce=0;for(BA=-1,NA=arguments.length;BA<NA;BA++)if(qs(we=BA===-1?Ie:arguments[BA])){if(ce+(zA=sg(we))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(yA=0;yA<zA;yA++,ce++)yA in we&&yn(Ge,ce,we[yA])}else{if(ce>=9007199254740991)throw TypeError("Maximum allowed index exceeded");yn(Ge,ce++,we)}return Ge.length=ce,Ge}});var Mi,zo=Object.keys||function(H){return pc(H,ng)},Mg=WA?Object.defineProperties:function(H,BA){Es(H);for(var yA,NA=zo(BA),zA=NA.length,we=0;zA>we;)Do.f(H,yA=NA[we++],BA[yA]);return H},sr=je("document","documentElement"),yr=wn("IE_PROTO"),xn=function(){},Ml=function(H){return"<script>"+H+"<\/script>"},Ks=function(H){H.write(Ml("")),H.close();var BA=H.parentWindow.Object;return H=null,BA},aI=function(){try{Mi=new ActiveXObject("htmlfile")}catch{}var H,BA;aI=typeof document<"u"?document.domain&&Mi?Ks(Mi):((BA=oo("iframe")).style.display="none",sr.appendChild(BA),BA.src="javascript:",(H=BA.contentWindow.document).open(),H.write(Ml("document.F=Object")),H.close(),H.F):Ks(Mi);for(var yA=ng.length;yA--;)delete aI.prototype[ng[yA]];return aI()};Ht[yr]=!0;var Wg=Object.create||function(H,BA){var yA;return H!==null?(xn.prototype=Es(H),yA=new xn,xn.prototype=null,yA[yr]=H):yA=aI(),BA===void 0?yA:Mg(yA,BA)},fc=Ze("unscopables"),vu=Array.prototype;vu[fc]==null&&Do.f(vu,fc,{configurable:!0,value:Wg(null)});var Ma,vl,De,ye=function(H){vu[fc][H]=!0},vg={},rg=!TA(function(){function H(){}return H.prototype.constructor=null,Object.getPrototypeOf(new H)!==H.prototype}),Rg=wn("IE_PROTO"),Dn=Object.prototype,Dr=rg?Object.getPrototypeOf:function(H){var BA=HA(H);if(Ve(BA,Rg))return BA[Rg];var yA=BA.constructor;return ge(yA)&&BA instanceof yA?yA.prototype:BA instanceof Object?Dn:null},ui=Ze("iterator"),so=!1;[].keys&&("next"in(De=[].keys())?(vl=Dr(Dr(De)))!==Object.prototype&&(Ma=vl):so=!0),(Ma==null||TA(function(){var H={};return Ma[ui].call(H)!==H}))&&(Ma={}),ge(Ma[ui])||fr(Ma,ui,function(){return this});var qc={IteratorPrototype:Ma,BUGGY_SAFARI_ITERATORS:so},zg=Do.f,wg=Ze("toStringTag"),Yr=function(H,BA,yA){H&&!Ve(H=yA?H:H.prototype,wg)&&zg(H,wg,{configurable:!0,value:BA})},yc=qc.IteratorPrototype,Kc=function(){return this},ag=Object.setPrototypeOf||("__proto__"in{}?function(){var H,BA=!1,yA={};try{(H=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(yA,[]),BA=yA instanceof Array}catch{}return function(NA,zA){return Es(NA),function(we){if(typeof we=="object"||ge(we))return we;throw TypeError("Can't set "+String(we)+" as a prototype")}(zA),BA?H.call(NA,zA):NA.__proto__=zA,NA}}():void 0),Ru=cn.PROPER,SE=cn.CONFIGURABLE,_g=qc.IteratorPrototype,ka=qc.BUGGY_SAFARI_ITERATORS,Dc=Ze("iterator"),ME=function(){return this},La=function(H,BA,yA,NA,zA,we,Ie){(function(Uo,ii,Fr){var Zo=ii+" Iterator";Uo.prototype=Wg(yc,{next:pe(1,Fr)}),Yr(Uo,Zo,!1),vg[Zo]=Kc})(yA,BA,NA);var Ge,ce,Fe,St=function(Uo){if(Uo===zA&&Ao)return Ao;if(!ka&&Uo in ft)return ft[Uo];switch(Uo){case"keys":case"values":case"entries":return function(){return new yA(this,Uo)}}return function(){return new yA(this)}},jt=BA+" Iterator",ci=!1,ft=H.prototype,Bi=ft[Dc]||ft["@@iterator"]||zA&&ft[zA],Ao=!ka&&Bi||St(zA),Is=BA=="Array"&&ft.entries||Bi;if(Is&&(Ge=Dr(Is.call(new H)))!==Object.prototype&&Ge.next&&(Dr(Ge)!==_g&&(ag?ag(Ge,_g):ge(Ge[Dc])||fr(Ge,Dc,ME)),Yr(Ge,jt,!0)),Ru&&zA=="values"&&Bi&&Bi.name!=="values"&&(SE?pA(ft,"name","values"):(ci=!0,Ao=function(){return Bi.call(this)})),zA)if(ce={values:St("values"),keys:we?Ao:St("keys"),entries:St("entries")},Ie)for(Fe in ce)(ka||ci||!(Fe in ft))&&fr(ft,Fe,ce[Fe]);else fs({target:BA,proto:!0,forced:ka||ci},ce);return ft[Dc]!==Ao&&fr(ft,Dc,Ao,{name:zA}),vg[BA]=Ao,ce},sa=mr.set,Tg=mr.getterFor("Array Iterator"),gI=La(Array,"Array",function(H,BA){sa(this,{type:"Array Iterator",target:ut(H),index:0,kind:BA})},function(){var H=Tg(this),BA=H.target,yA=H.kind,NA=H.index++;return!BA||NA>=BA.length?(H.target=void 0,{value:void 0,done:!0}):yA=="keys"?{value:NA,done:!1}:yA=="values"?{value:BA[NA],done:!1}:{value:[NA,BA[NA]],done:!1}},"values");vg.Arguments=vg.Array,ye("keys"),ye("values"),ye("entries");var hs=ua.f,Lo={}.toString,da=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],nr={f:function(H){return da&&Lo.call(H)=="[object Window]"?function(BA){try{return hs(BA)}catch{return da.slice()}}(H):hs(ut(H))}},Yt=!TA(function(){return Object.isExtensible(Object.preventExtensions({}))}),qt=IA(function(H){var BA=Do.f,yA=!1,NA=It("meta"),zA=0,we=Object.isExtensible||function(){return!0},Ie=function(ce){BA(ce,NA,{value:{objectID:"O"+zA++,weakData:{}}})},Ge=H.exports={enable:function(){Ge.enable=function(){},yA=!0;var ce=ua.f,Fe=[].splice,St={};St[NA]=1,ce(St).length&&(ua.f=function(jt){for(var ci=ce(jt),ft=0,Bi=ci.length;ft<Bi;ft++)if(ci[ft]===NA){Fe.call(ci,ft,1);break}return ci},fs({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:nr.f}))},fastKey:function(ce,Fe){if(!XA(ce))return typeof ce=="symbol"?ce:(typeof ce=="string"?"S":"P")+ce;if(!Ve(ce,NA)){if(!we(ce))return"F";if(!Fe)return"E";Ie(ce)}return ce[NA].objectID},getWeakData:function(ce,Fe){if(!Ve(ce,NA)){if(!we(ce))return!0;if(!Fe)return!1;Ie(ce)}return ce[NA].weakData},onFreeze:function(ce){return Yt&&yA&&we(ce)&&!Ve(ce,NA)&&Ie(ce),ce}};Ht[NA]=!0}),Ng=(qt.enable,qt.fastKey,qt.getWeakData,qt.onFreeze,Ze("iterator")),cI=Array.prototype,rr=function(H,BA,yA){if($i(H),BA===void 0)return H;switch(yA){case 0:return function(){return H.call(BA)};case 1:return function(NA){return H.call(BA,NA)};case 2:return function(NA,zA){return H.call(BA,NA,zA)};case 3:return function(NA,zA,we){return H.call(BA,NA,zA,we)}}return function(){return H.apply(BA,arguments)}},HI=Ze("iterator"),za=function(H){if(H!=null)return Wt(H,HI)||Wt(H,"@@iterator")||vg[vA(H)]},na=function(H,BA,yA){var NA,zA;Es(H);try{if(!(NA=Wt(H,"return"))){if(BA==="throw")throw yA;return yA}NA=NA.call(H)}catch(we){zA=!0,NA=we}if(BA==="throw")throw yA;if(zA)throw NA;return Es(NA),yA},un=function(H,BA){this.stopped=H,this.result=BA},Sn=function(H,BA,yA){var NA,zA,we,Ie,Ge,ce,Fe,St,jt=yA&&yA.that,ci=!(!yA||!yA.AS_ENTRIES),ft=!(!yA||!yA.IS_ITERATOR),Bi=!(!yA||!yA.INTERRUPTED),Ao=rr(BA,jt,1+ci+Bi),Is=function(ii){return NA&&na(NA,"normal",ii),new un(!0,ii)},Uo=function(ii){return ci?(Es(ii),Bi?Ao(ii[0],ii[1],Is):Ao(ii[0],ii[1])):Bi?Ao(ii,Is):Ao(ii)};if(ft)NA=H;else{if(!(zA=za(H)))throw TypeError(String(H)+" is not iterable");if((St=zA)!==void 0&&(vg.Array===St||cI[Ng]===St)){for(we=0,Ie=sg(H);Ie>we;we++)if((Ge=Uo(H[we]))&&Ge instanceof un)return Ge;return new un(!1)}NA=function(ii,Fr){var Zo=arguments.length<2?za(ii):Fr;if($i(Zo))return Es(Zo.call(ii));throw TypeError(String(ii)+" is not iterable")}(H,zA)}for(ce=NA.next;!(Fe=ce.call(NA)).done;){try{Ge=Uo(Fe.value)}catch(ii){na(NA,"throw",ii)}if(typeof Ge=="object"&&Ge&&Ge instanceof un)return Ge}return new un(!1)},wu=function(H,BA,yA){if(H instanceof BA)return H;throw TypeError("Incorrect "+(yA?yA+" ":"")+"invocation")},Gg=Ze("iterator"),Ua=!1;try{var jc=0,qI={next:function(){return{done:!!jc++}},return:function(){Ua=!0}};qI[Gg]=function(){return this},Array.from(qI,function(){throw 2})}catch{}var vE=function(H,BA){if(!Ua)return!1;var yA=!1;try{var NA={};NA[Gg]=function(){return{next:function(){return{done:yA=!0}}}},H(NA)}catch{}return yA},lI=function(H,BA,yA){for(var NA in BA)fr(H,NA,BA[NA],yA);return H},_u=Ze("species"),Rl=function(H){var BA=je(H),yA=Do.f;WA&&BA&&!BA[_u]&&yA(BA,_u,{configurable:!0,get:function(){return this}})},Sc=Do.f,Tu=qt.fastKey,Nu=mr.set,wl=mr.getterFor,rs=(function(H,BA,yA){var NA=H.indexOf("Map")!==-1,zA=H.indexOf("Weak")!==-1,we=NA?"set":"add",Ie=cA[H],Ge=Ie&&Ie.prototype,ce=Ie,Fe={},St=function(Is){var Uo=Ge[Is];fr(Ge,Is,Is=="add"?function(ii){return Uo.call(this,ii===0?0:ii),this}:Is=="delete"?function(ii){return!(zA&&!XA(ii))&&Uo.call(this,ii===0?0:ii)}:Is=="get"?function(ii){return zA&&!XA(ii)?void 0:Uo.call(this,ii===0?0:ii)}:Is=="has"?function(ii){return!(zA&&!XA(ii))&&Uo.call(this,ii===0?0:ii)}:function(ii,Fr){return Uo.call(this,ii===0?0:ii,Fr),this})};if(Ga(H,!ge(Ie)||!(zA||Ge.forEach&&!TA(function(){new Ie().entries().next()}))))ce=yA.getConstructor(BA,H,NA,we),qt.enable();else if(Ga(H,!0)){var jt=new ce,ci=jt[we](zA?{}:-0,1)!=jt,ft=TA(function(){jt.has(1)}),Bi=vE(function(Is){new Ie(Is)}),Ao=!zA&&TA(function(){for(var Is=new Ie,Uo=5;Uo--;)Is[we](Uo,Uo);return!Is.has(-0)});Bi||((ce=BA(function(Is,Uo){wu(Is,ce,H);var ii=function(Fr,Zo,jn){var Wn,ta;return ag&&ge(Wn=Zo.constructor)&&Wn!==jn&&XA(ta=Wn.prototype)&&ta!==jn.prototype&&ag(Fr,ta),Fr}(new Ie,Is,ce);return Uo!=null&&Sn(Uo,ii[we],{that:ii,AS_ENTRIES:NA}),ii})).prototype=Ge,Ge.constructor=ce),(ft||Ao)&&(St("delete"),St("has"),NA&&St("get")),(Ao||ci)&&St(we),zA&&Ge.clear&&delete Ge.clear}Fe[H]=ce,fs({global:!0,forced:ce!=Ie},Fe),Yr(ce,H),zA||yA.setStrong(ce,H,NA)}("Map",function(H){return function(){return H(this,arguments.length?arguments[0]:void 0)}},{getConstructor:function(H,BA,yA,NA){var zA=H(function(ce,Fe){wu(ce,zA,BA),Nu(ce,{type:BA,index:Wg(null),first:void 0,last:void 0,size:0}),WA||(ce.size=0),Fe!=null&&Sn(Fe,ce[NA],{that:ce,AS_ENTRIES:yA})}),we=wl(BA),Ie=function(ce,Fe,St){var jt,ci,ft=we(ce),Bi=Ge(ce,Fe);return Bi?Bi.value=St:(ft.last=Bi={index:ci=Tu(Fe,!0),key:Fe,value:St,previous:jt=ft.last,next:void 0,removed:!1},ft.first||(ft.first=Bi),jt&&(jt.next=Bi),WA?ft.size++:ce.size++,ci!=="F"&&(ft.index[ci]=Bi)),ce},Ge=function(ce,Fe){var St,jt=we(ce),ci=Tu(Fe);if(ci!=="F")return jt.index[ci];for(St=jt.first;St;St=St.next)if(St.key==Fe)return St};return lI(zA.prototype,{clear:function(){for(var ce=we(this),Fe=ce.index,St=ce.first;St;)St.removed=!0,St.previous&&(St.previous=St.previous.next=void 0),delete Fe[St.index],St=St.next;ce.first=ce.last=void 0,WA?ce.size=0:this.size=0},delete:function(ce){var Fe=we(this),St=Ge(this,ce);if(St){var jt=St.next,ci=St.previous;delete Fe.index[St.index],St.removed=!0,ci&&(ci.next=jt),jt&&(jt.previous=ci),Fe.first==St&&(Fe.first=jt),Fe.last==St&&(Fe.last=ci),WA?Fe.size--:this.size--}return!!St},forEach:function(ce){for(var Fe,St=we(this),jt=rr(ce,arguments.length>1?arguments[1]:void 0,3);Fe=Fe?Fe.next:St.first;)for(jt(Fe.value,Fe.key,this);Fe&&Fe.removed;)Fe=Fe.previous},has:function(ce){return!!Ge(this,ce)}}),lI(zA.prototype,yA?{get:function(ce){var Fe=Ge(this,ce);return Fe&&Fe.value},set:function(ce,Fe){return Ie(this,ce===0?0:ce,Fe)}}:{add:function(ce){return Ie(this,ce=ce===0?0:ce,ce)}}),WA&&Sc(zA.prototype,"size",{get:function(){return we(this).size}}),zA},setStrong:function(H,BA,yA){var NA=BA+" Iterator",zA=wl(BA),we=wl(NA);La(H,BA,function(Ie,Ge){Nu(this,{type:NA,target:Ie,state:zA(Ie),kind:Ge,last:void 0})},function(){for(var Ie=we(this),Ge=Ie.kind,ce=Ie.last;ce&&ce.removed;)ce=ce.previous;return Ie.target&&(Ie.last=ce=ce?ce.next:Ie.state.first)?Ge=="keys"?{value:ce.key,done:!1}:Ge=="values"?{value:ce.value,done:!1}:{value:[ce.key,ce.value],done:!1}:(Ie.target=void 0,{value:void 0,done:!0})},yA?"entries":"values",!yA,!0),Rl(BA)}}),Sa?{}.toString:function(){return"[object "+vA(this)+"]"});Sa||fr(Object.prototype,"toString",rs,{unsafe:!0});var gs=function(H){if(vA(H)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return String(H)},ud=function(H){return function(BA,yA){var NA,zA,we=gs(Kt(BA)),Ie=ms(yA),Ge=we.length;return Ie<0||Ie>=Ge?H?"":void 0:(NA=we.charCodeAt(Ie))<55296||NA>56319||Ie+1===Ge||(zA=we.charCodeAt(Ie+1))<56320||zA>57343?H?we.charAt(Ie):NA:H?we.slice(Ie,Ie+2):zA-56320+(NA-55296<<10)+65536}},II={charAt:ud(!0)},uI=II.charAt,RE=mr.set,Ed=mr.getterFor("String Iterator");La(String,"String",function(H){RE(this,{type:"String Iterator",string:gs(H),index:0})},function(){var H,BA=Ed(this),yA=BA.string,NA=BA.index;return NA>=yA.length?{value:void 0,done:!0}:(H=uI(yA,NA),BA.index+=H.length,{value:H,done:!1})});var _l={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},Sr=oo("span").classList,Mc=Sr&&Sr.constructor&&Sr.constructor.prototype,Wc=Mc===Object.prototype?void 0:Mc,tn=Ze("iterator"),ws=Ze("toStringTag"),Ca=gI.values,Xr=function(H,BA){if(H){if(H[tn]!==Ca)try{pA(H,tn,Ca)}catch{H[tn]=Ca}if(H[ws]||pA(H,ws,BA),_l[BA]){for(var yA in gI)if(H[yA]!==gI[yA])try{pA(H,yA,gI[yA])}catch{H[yA]=gI[yA]}}}};for(var zc in _l)Xr(cA[zc]&&cA[zc].prototype,zc);Xr(Wc,"DOMTokenList");var dd,Zg,gg=function(){var H=Es(this),BA="";return H.global&&(BA+="g"),H.ignoreCase&&(BA+="i"),H.multiline&&(BA+="m"),H.dotAll&&(BA+="s"),H.unicode&&(BA+="u"),H.sticky&&(BA+="y"),BA},wE=cA.RegExp,Xg={UNSUPPORTED_Y:TA(function(){var H=wE("a","y");return H.lastIndex=2,H.exec("abcd")!=null}),BROKEN_CARET:TA(function(){var H=wE("^r","gy");return H.lastIndex=2,H.exec("str")!=null})},qn=cA.RegExp,Ar=TA(function(){var H=qn(".","s");return!(H.dotAll&&H.exec(`
|
||
`)&&H.flags==="s")}),Fa=cA.RegExp,Cd=TA(function(){var H=Fa("(?<a>b)","g");return H.exec("b").groups.a!=="b"||"b".replace(H,"$<a>c")!=="bc"}),lC=mr.get,Gu=RegExp.prototype.exec,KI=vs("native-string-replace",String.prototype.replace),Zc=Gu,Xc=(dd=/a/,Zg=/b*/g,Gu.call(dd,"a"),Gu.call(Zg,"a"),dd.lastIndex!==0||Zg.lastIndex!==0),jI=Xg.UNSUPPORTED_Y||Xg.BROKEN_CARET,EI=/()??/.exec("")[1]!==void 0;(Xc||EI||jI||Ar||Cd)&&(Zc=function(H){var BA,yA,NA,zA,we,Ie,Ge,ce=this,Fe=lC(ce),St=gs(H),jt=Fe.raw;if(jt)return jt.lastIndex=ce.lastIndex,BA=Zc.call(jt,St),ce.lastIndex=jt.lastIndex,BA;var ci=Fe.groups,ft=jI&&ce.sticky,Bi=gg.call(ce),Ao=ce.source,Is=0,Uo=St;if(ft&&((Bi=Bi.replace("y","")).indexOf("g")===-1&&(Bi+="g"),Uo=St.slice(ce.lastIndex),ce.lastIndex>0&&(!ce.multiline||ce.multiline&&St.charAt(ce.lastIndex-1)!==`
|
||
`)&&(Ao="(?: "+Ao+")",Uo=" "+Uo,Is++),yA=new RegExp("^(?:"+Ao+")",Bi)),EI&&(yA=new RegExp("^"+Ao+"$(?!\\s)",Bi)),Xc&&(NA=ce.lastIndex),zA=Gu.call(ft?yA:ce,Uo),ft?zA?(zA.input=zA.input.slice(Is),zA[0]=zA[0].slice(Is),zA.index=ce.lastIndex,ce.lastIndex+=zA[0].length):ce.lastIndex=0:Xc&&zA&&(ce.lastIndex=ce.global?zA.index+zA[0].length:NA),EI&&zA&&zA.length>1&&KI.call(zA[0],yA,function(){for(we=1;we<arguments.length-2;we++)arguments[we]===void 0&&(zA[we]=void 0)}),zA&&ci)for(zA.groups=Ie=Wg(null),we=0;we<ci.length;we++)Ie[(Ge=ci[we])[0]]=zA[Ge[1]];return zA});var $c=Zc;fs({target:"RegExp",proto:!0,forced:/./.exec!==$c},{exec:$c});var Al=`[
|
||
\v\f\r \u2028\u2029\uFEFF]`,va=RegExp("^"+Al+Al+"*"),bg=RegExp(Al+Al+"*$"),ys=function(H){return function(BA){var yA=gs(Kt(BA));return 1&H&&(yA=yA.replace(va,"")),2&H&&(yA=yA.replace(bg,"")),yA}},Kn={trim:ys(3)}.trim,vc=cA.parseFloat,WI=cA.Symbol,zI=WI&&WI.iterator,_E=1/vc(`
|
||
\v\f\r \u2028\u2029\uFEFF-0`)!=-1/0||zI&&!TA(function(){vc(Object(zI))})?function(H){var BA=Kn(gs(H)),yA=vc(BA);return yA===0&&BA.charAt(0)=="-"?-0:yA}:vc;fs({global:!0,forced:parseFloat!=_E},{parseFloat:_E});var rh=Ze("species"),IC=RegExp.prototype,ah=II.charAt,el=function(H,BA,yA){return BA+(yA?ah(H,BA).length:1)},kg=function(H,BA){var yA=H.exec;if(ge(yA)){var NA=yA.call(H,BA);return NA!==null&&Es(NA),NA}if(pt(H)==="RegExp")return $c.call(H,BA);throw TypeError("RegExp#exec called on incompatible receiver")};(function(H,BA,yA,NA){var zA=Ze(H),we=!TA(function(){var Fe={};return Fe[zA]=function(){return 7},""[H](Fe)!=7}),Ie=we&&!TA(function(){var Fe=!1,St=/a/;return H==="split"&&((St={}).constructor={},St.constructor[rh]=function(){return St},St.flags="",St[zA]=/./[zA]),St.exec=function(){return Fe=!0,null},St[zA](""),!Fe});if(!we||!Ie||yA){var Ge=/./[zA],ce=BA(zA,""[H],function(Fe,St,jt,ci,ft){var Bi=St.exec;return Bi===$c||Bi===IC.exec?we&&!ft?{done:!0,value:Ge.call(St,jt,ci)}:{done:!0,value:Fe.call(jt,St,ci)}:{done:!1}});fr(String.prototype,H,ce[0]),fr(IC,zA,ce[1])}})("match",function(H,BA,yA){return[function(NA){var zA=Kt(this),we=NA==null?void 0:Wt(NA,H);return we?we.call(NA,zA):new RegExp(NA)[H](gs(zA))},function(NA){var zA=Es(this),we=gs(NA),Ie=yA(BA,zA,we);if(Ie.done)return Ie.value;if(!zA.global)return kg(zA,we);var Ge=zA.unicode;zA.lastIndex=0;for(var ce,Fe=[],St=0;(ce=kg(zA,we))!==null;){var jt=gs(ce[0]);Fe[St]=jt,jt===""&&(zA.lastIndex=el(we,Cs(zA.lastIndex),Ge)),St++}return St===0?null:Fe}]});var no=window.navigator&&window.navigator.userAgent||"",uC=/AppleWebKit\/([\d.]+)/i.exec(no),TE=(uC&&parseFloat(uC.pop()),/iPad/i.test(no)),NE=/iPhone/i.test(no)&&!TE,hd=/iPod/i.test(no),GE=NE||TE||hd,tl=(GE&&function(){var H=no.match(/OS (\d+)_/i);H&&H[1]&&H[1]}(),/Android/i.test(no));tl&&function(){var H=no.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!H)return null;var BA=H[1]&&parseFloat(H[1]),yA=H[2]&&parseFloat(H[2]);return BA&&yA?parseFloat("".concat(H[1],".").concat(H[2])):BA||null}();var dI=/Firefox/i.test(no),bu=dI&&function(){var H=no.match(/Firefox\/(\d+)/);return H&&H[1]?parseFloat(H[1]):null}(),ku=/Edge\//i.test(no),EC=ku&&function(){var H=no.match(/Edge\/(\d+)/i);if(H&&H[1])return H[1]}(),Rr=/Edg\//i.test(no),cg=Rr&&function(){var H=no.match(/Edg\/(\d+)/);return H&&H[1]?parseFloat(H[1]):null}(),Rc=/SogouMobileBrowser\//i.test(no),Lu=Rc&&function(){var H=no.match(/SogouMobileBrowser\/(\d+)/);return H&&H[1]?parseFloat(H[1]):null}(),Tl=/MetaSr\s/i.test(no),Bd=Tl&&function(){var H=no.match(/MetaSr(\s\d+(\.\d+)+)/);return H&&H[1]?parseFloat(H[1]):null}(),$r=/TBS\/\d+/i.test(no),CI=$r&&function(){var H=no.match(/TBS\/(\d+)/i);if(H&&H[1])return H[1]}(),_n=/XWEB\/\d+/i.test(no),dC=_n&&function(){var H=no.match(/XWEB\/(\d+)/i);if(H&&H[1])return H[1]}(),il=(/MSIE\/\d+/i.test(no)&&function(){var H=/MSIE\s(\d+)\.\d/.exec(no);H&&parseFloat(H[1])}(),/(micromessenger|webbrowser)/i.test(no)),Qd=il&&function(){var H=no.match(/MicroMessenger\/(\d+)/i);if(H&&H[1])return H[1]}(),hI=!$r&&/MQQBrowser\/\d+/i.test(no)&&/COVC\/\d+/i.test(no),Oa=!$r&&/MQQBrowser\/\d+/i.test(no)&&!/COVC\/\d+/i.test(no),CC=(Oa||hI)&&function(){var H=no.match(/ MQQBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Pa=!$r&&/ QQBrowser\/\d+/i.test(no),ur=Pa&&function(){var H=no.match(/ QQBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),pd=!$r&&/QQBrowserLite\/\d+/i.test(no),Uu=pd&&function(){var H=no.match(/QQBrowserLite\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Er=!$r&&/MQBHD\/\d+/i.test(no),wc=Er&&function(){var H=no.match(/MQBHD\/([\d.]+)/);return H&&H[1]?H[1]:null}(),ol=/Windows/i.test(no),Lg=!GE&&/MAC OS X/i.test(no),Oo=!tl&&/Linux/i.test(no),$g=/UCBrowser/i.test(no),Za=/MiuiBrowser/i.test(no),Nl=Za&&function(){var H=no.match(/MiuiBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Aa=/HuaweiBrowser/i.test(no),gh=Aa&&function(){var H=no.match(/HuaweiBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),js=/SamsungBrowser/i.test(no),ZI=js&&function(){var H=no.match(/SamsungBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Us=/HeyTapBrowser/i.test(no),_c=Us&&function(){var H=no.match(/HeyTapBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Ac=/VivoBrowser/i.test(no),dr=Ac&&function(){var H=no.match(/VivoBrowser\/([\d.]+)/);return H&&H[1]?H[1]:null}(),Vr=/Chrome/i.test(no),Xa=!ku&&!Tl&&!Rc&&!$r&&!_n&&!Rr&&!Pa&&!Za&&!Aa&&!js&&!Us&&!Ac&&/Chrome/i.test(no),bE=(Xa&&function(){var H=no.match(/Chrome\/(\d+)/);H&&H[1]&&parseFloat(H[1])}(),Xa&&function(){var H=no.match(/Chrome\/([\d.]+)/);return H&&H[1]?H[1]:null}()),hC=!Vr&&!Oa&&!hI&&!pd&&!Er&&/Safari/i.test(no),ch=hC&&function(){var H=no.match(/Version\/([\d.]+)/);return H&&H[1]?H[1]:null}(),ro=location.protocol==="file:"||location.hostname==="localhost"||/^\d+\.\d+\.\d+\.\d+$/.test(location.hostname),Tc=new Map([[tl,"Android"],[GE,"iOS"],[ol,"Windows"],[Lg,"MacOS"],[Oo,"Linux"]]),Gl=new Map([[dI,["Firefox",bu]],[Rr,["Edg",cg]],[Xa,["Chrome",bE]],[hC,["Safari",ch]],[$r,["TBS",CI]],[_n,["XWEB",dC]],[il&&NE,["WeChat",Qd]],[Pa,["QQ(Win)",ur]],[Oa,["QQ(Mobile)",CC]],[hI,["QQ(Mobile X5)",CC]],[pd,["QQ(Mac)",Uu]],[Er,["QQ(iPad)",wc]],[Za,["MI",Nl]],[Aa,["HW",gh]],[js,["Samsung",ZI]],[Us,["OPPO",_c]],[Ac,["VIVO",dr]],[ku,["EDGE",EC]],[Rc,["SogouMobile",Lu]],[Tl,["Sogou",Bd]]]),BC=function(){var H="unknown",BA="unknown";if(Gl.get(!0)){var yA=b(Gl.get(!0),2);H=yA[0],BA=yA[1]}return{name:H,version:BA}},QC=navigator.userAgent,bl=function(){var H=void 0;return screen.width&&(H={width:screen.width?screen.width*window.devicePixelRatio:"",height:screen.height?screen.height*window.devicePixelRatio:""}),H},XI=[].push,BI=function(H){var BA=H==1,yA=H==2,NA=H==3,zA=H==4,we=H==6,Ie=H==7,Ge=H==5||we;return function(ce,Fe,St,jt){for(var ci,ft,Bi=HA(ce),Ao=Dt(Bi),Is=rr(Fe,St,3),Uo=sg(Ao),ii=0,Fr=jt||xt,Zo=BA?Fr(ce,Uo):yA||Ie?Fr(ce,0):void 0;Uo>ii;ii++)if((Ge||ii in Ao)&&(ft=Is(ci=Ao[ii],ii,Bi),H))if(BA)Zo[ii]=ft;else if(ft)switch(H){case 3:return!0;case 5:return ci;case 6:return ii;case 2:XI.call(Zo,ci)}else switch(H){case 4:return!1;case 7:XI.call(Zo,ci)}return we?-1:NA||zA?zA:Zo}},QI={forEach:BI(0),map:BI(1),filter:BI(2),find:BI(5),findIndex:BI(6)},kE=QI.filter,kl=ct("filter");fs({target:"Array",proto:!0,forced:!kl},{filter:function(H){return kE(this,H,arguments.length>1?arguments[1]:void 0)}});var Ll=function(H,BA){var yA=[][H];return!!yA&&TA(function(){yA.call(null,BA||function(){throw 1},1)})},Ug=QI.forEach,ec=Ll("forEach")?[].forEach:function(H){return Ug(this,H,arguments.length>1?arguments[1]:void 0)};fs({target:"Array",proto:!0,forced:[].forEach!=ec},{forEach:ec});var md=function(){for(var H={isSupported:!1},BA=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"],yA=0;yA<BA.length;yA++)if(BA[yA]in window){H.isSupported=!0;break}return H.isSupported},LE=function(){var H=!1;return dI&&window.mozRTCPeerConnection!==void 0?"getSenders"in window.mozRTCPeerConnection.prototype&&(H=!0):Xa&&window.webkitRTCPeerConnection!==void 0&&"getSenders"in window.webkitRTCPeerConnection.prototype&&(H=!0),H},Nc=function(H){if(H&&H.forEach!==ec)try{pA(H,"forEach",ec)}catch{H.forEach=ec}};for(var $I in _l)_l[$I]&&Nc(cA[$I]&&cA[$I].prototype);Nc(Wc);var lo=$o.indexOf,UE=[].indexOf,$a=!!UE&&1/[1].indexOf(1,-0)<0,Au=Ll("indexOf");fs({target:"Array",proto:!0,forced:$a||!Au},{indexOf:function(H){return $a?UE.apply(this,arguments)||0:lo(this,H,arguments.length>1?arguments[1]:void 0)}});var Fu=QI.map,Gc=ct("map");fs({target:"Array",proto:!0,forced:!Gc},{map:function(H){return Fu(this,H,arguments.length>1?arguments[1]:void 0)}});var pI=TA(function(){Dr(1)});fs({target:"Object",stat:!0,forced:pI,sham:!rg},{getPrototypeOf:function(H){return Dr(HA(H))}}),fs({target:"Array",stat:!0},{isArray:Ea});var sl=Object.prototype.hasOwnProperty;function nl(H){if(H==null)return!0;if(typeof H=="boolean")return!1;if(typeof H=="number")return H===0;if(typeof H=="string"||typeof H=="function"||Array.isArray(H))return H.length===0;if(H instanceof Error)return H.message==="";if(function(yA){if(!yA||I(yA)!=="object"||Object.prototype.toString.call(yA)!="[object Object]")return!1;var NA=Object.getPrototypeOf(yA);if(NA===null)return!0;var zA=Object.prototype.hasOwnProperty.call(NA,"constructor")&&NA.constructor;return typeof zA=="function"&&zA instanceof zA&&Function.prototype.toString.call(zA)===Function.prototype.toString.call(Object)}(H))switch(Object.prototype.toString.call(H)){case"[object File]":case"[object Map]":case"[object Set]":return H.size===0;case"[object Object]":for(var BA in H)if(sl.call(H,BA))return!1;return!0}return!1}var xa=function(H){return H===void 0},FE=function(){var H=f(regeneratorRuntime.mark(function BA(yA){var NA;return regeneratorRuntime.wrap(function(zA){for(;;)switch(zA.prev=zA.next){case 0:if(!kc()){zA.next=2;break}return zA.abrupt("return");case 2:return zA.next=4,ra(yA);case 4:if(!(NA=zA.sent).audio){zA.next=11;break}return zA.next=8,Pu();case 8:if(zA.sent.length!==0){zA.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(!NA.video){zA.next=17;break}return zA.next=14,lh();case 14:if(zA.sent.length!==0){zA.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 zA.next=19,navigator.mediaDevices.getUserMedia(NA);case 19:return zA.abrupt("return",zA.sent);case 20:case"end":return zA.stop()}},BA)}));return function(BA){return H.apply(this,arguments)}}();function ra(H){return Mn.apply(this,arguments)}function Mn(){return(Mn=f(regeneratorRuntime.mark(function H(BA){var yA,NA,zA,we;return regeneratorRuntime.wrap(function(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:if(yA={echoCancellation:BA.echoCancellation,autoGainControl:BA.autoGainControl,noiseSuppression:BA.noiseSuppression},BA.audio){Ie.next=5;break}yA=!1,Ie.next=15;break;case 5:if(nl(BA.microphoneId)){Ie.next=9;break}yA=l({deviceId:{exact:BA.microphoneId},sampleRate:BA.sampleRate,channelCount:BA.channelCount},yA),Ie.next=15;break;case 9:return yA=l({sampleRate:BA.sampleRate,channelCount:BA.channelCount},yA),Ie.next=12,Pu();case 12:NA=Ie.sent,(zA=NA.filter(function(Ge){var ce=Ge.deviceId;return ce.length>0&&ce!=="default"})).length>0&&(yA.deviceId={exact:zA[0].deviceId});case 15:return we={},we=!xa(BA.facingMode)&&BA.video?{facingMode:BA.facingMode,width:BA.width,height:BA.height,frameRate:BA.frameRate}:!nl(BA.cameraId)&&BA.video?{deviceId:{exact:BA.cameraId},width:BA.width,height:BA.height,frameRate:BA.frameRate}:!!BA.video&&(!!xa(BA.width)||{width:BA.width,height:BA.height,frameRate:BA.frameRate}),Ie.abrupt("return",{audio:yA,video:we});case 18:case"end":return Ie.stop()}},H)}))).apply(this,arguments)}var kr,rl,Ul,bc,OE=function(){var H=f(regeneratorRuntime.mark(function BA(yA){var NA,zA,we,Ie,Ge,ce,Fe,St,jt,ci,ft;return regeneratorRuntime.wrap(function(Bi){for(;;)switch(Bi.prev=Bi.next){case 0:return zA=[7680,4320],Bi.prev=1,Bi.next=4,FE({cameraId:yA,video:!0,audio:!1,width:zA[0],height:zA[1]});case 4:if(NA=Bi.sent,!(we=NA.getTracks()[0])||!we.getCapabilities){Bi.next=13;break}if(Fe=we.getCapabilities(),St=Fe==null||(Ie=Fe.width)===null||Ie===void 0?void 0:Ie.max,jt=Fe==null||(Ge=Fe.height)===null||Ge===void 0?void 0:Ge.max,ci=Fe==null||(ce=Fe.frameRate)===null||ce===void 0?void 0:ce.max,!(St&&jt&&ci)){Bi.next=13;break}return Bi.abrupt("return",{maxWidth:St,maxHeight:jt,maxFrameRate:ci});case 13:return ft=we.getSettings(),we.stop(),Bi.abrupt("return",{maxWidth:ft.width,maxHeight:ft.height});case 18:Bi.prev=18,Bi.t0=Bi.catch(1),console.error(Bi.t0);case 21:case"end":return Bi.stop()}},BA,null,[[1,18]])}));return function(BA){return H.apply(this,arguments)}}(),kc=function(){return!!xa(navigator.mediaDevices)&&(console.error("navigator.mediaDevices is not supported on your browser"),!0)},Ou=function(){return location.protocol==="http:"&&!ro&&(console.error("you should use https"),!0)},pC=function(){if(!navigator.mediaDevices)return!1;var H=["getUserMedia","enumerateDevices"];return H.filter(function(BA){return BA in navigator.mediaDevices}).length===H.length},eu=function(){var H=f(regeneratorRuntime.mark(function BA(){var yA,NA,zA,we,Ie,Ge,ce,Fe,St;return regeneratorRuntime.wrap(function(jt){for(;;)switch(jt.prev=jt.next){case 0:if(!Ou()&&!kc()){jt.next=2;break}return jt.abrupt("return",[]);case 2:return yA=!1,NA=!1,zA=[],we=[],Ie=[],Ge={},jt.next=13,navigator.mediaDevices.enumerateDevices();case 13:if(jt.sent.forEach(function(ci){var ft={};for(var Bi in ci)try{typeof ci[Bi]!="function"&&(ft[Bi]=ci[Bi])}catch{}Ge[ft.deviceId+ft.label+ft.kind]||(ft.kind==="audio"&&(ft.kind="audioinput"),ft.kind==="video"&&(ft.kind="videoinput"),ft.deviceId||(ft.deviceId=ft.id),ft.label?(ft.kind!=="videoinput"||yA||(yA=!0),ft.kind!=="audioinput"||NA||(NA=!0)):ft.kind==="videoinput"?ft.label="Camera ".concat(Ie.length+1):ft.kind==="audioinput"?ft.label="Microphone ".concat(zA.length+1):ft.kind==="audiooutput"?ft.label="Speaker ".concat(we.length+1):ft.label="Please invoke getUserMedia once.",ft.kind==="audioinput"&&zA.indexOf(ft)===-1&&zA.push(ft),ft.kind==="audiooutput"&&we.indexOf(ft)===-1&&we.push(ft),ft.kind==="videoinput"&&Ie.indexOf(ft)===-1&&Ie.push(ft),Ge[ft.deviceId+ft.label+ft.kind]=ft)}),!yA&&Ie.length>1&&(yA=!0),!NA&&zA.length>1&&(NA=!0),!yA){jt.next=28;break}ce=0;case 19:if(!(ce<Ie.length)){jt.next=28;break}return Fe=Ie[ce],jt.next=23,OE(Fe.deviceId);case 23:St=jt.sent,Fe.resolution=St;case 25:ce++,jt.next=19;break;case 28:return jt.abrupt("return",{hasCameraPermission:yA,hasMicrophonePermission:NA,cameras:Ie,speakers:we,microphones:zA});case 29:case"end":return jt.stop()}},BA)}));return function(){return H.apply(this,arguments)}}(),lh=function(){var H=f(regeneratorRuntime.mark(function BA(){var yA;return regeneratorRuntime.wrap(function(NA){for(;;)switch(NA.prev=NA.next){case 0:if(!Ou()&&!kc()){NA.next=2;break}return NA.abrupt("return",[]);case 2:return NA.next=4,navigator.mediaDevices.enumerateDevices();case 4:return yA=NA.sent,NA.abrupt("return",yA.filter(function(zA){return zA.kind==="videoinput"}).map(function(zA,we){var Ie=zA.label;zA.label||(Ie="camera_".concat(we));var Ge={label:Ie,deviceId:zA.deviceId,kind:zA.kind};return zA.groupId&&(Ge.groupId=zA.groupId),Ge}));case 6:case"end":return NA.stop()}},BA)}));return function(){return H.apply(this,arguments)}}(),Pu=function(){var H=f(regeneratorRuntime.mark(function BA(){var yA;return regeneratorRuntime.wrap(function(NA){for(;;)switch(NA.prev=NA.next){case 0:if(!Ou()&&!kc()){NA.next=2;break}return NA.abrupt("return",[]);case 2:return NA.next=4,navigator.mediaDevices.enumerateDevices();case 4:return yA=NA.sent,NA.abrupt("return",yA.filter(function(zA){return zA.kind==="audioinput"}).map(function(zA,we){var Ie=zA.label;zA.label||(Ie="microphone_".concat(we));var Ge={label:Ie,deviceId:zA.deviceId,kind:zA.kind};return zA.groupId&&(Ge.groupId=zA.groupId),Ge}));case 6:case"end":return NA.stop()}},BA)}));return function(){return H.apply(this,arguments)}}(),mI=cA.Promise,al=Ze("species"),mC=function(H,BA){var yA,NA=Es(H).constructor;return NA===void 0||(yA=Es(NA)[al])==null?BA:function(zA){if(dt(zA))return zA;throw TypeError(jo(zA)+" is not a constructor")}(yA)},aa=/(?:ipad|iphone|ipod).*applewebkit/i.test(Ut),tc=pt(cA.process)=="process",lg=cA.setImmediate,fI=cA.clearImmediate,PE=cA.process,xu=cA.MessageChannel,Yu=cA.Dispatch,yI=0,gl={};try{kr=cA.location}catch{}var Lr=function(H){if(gl.hasOwnProperty(H)){var BA=gl[H];delete gl[H],BA()}},Ur=function(H){return function(){Lr(H)}},Ig=function(H){Lr(H.data)},ar=function(H){cA.postMessage(String(H),kr.protocol+"//"+kr.host)};lg&&fI||(lg=function(H){for(var BA=[],yA=arguments.length,NA=1;yA>NA;)BA.push(arguments[NA++]);return gl[++yI]=function(){(ge(H)?H:Function(H)).apply(void 0,BA)},rl(yI),yI},fI=function(H){delete gl[H]},tc?rl=function(H){PE.nextTick(Ur(H))}:Yu&&Yu.now?rl=function(H){Yu.now(Ur(H))}:xu&&!aa?(bc=(Ul=new xu).port2,Ul.port1.onmessage=Ig,rl=rr(bc.postMessage,bc,1)):cA.addEventListener&&ge(cA.postMessage)&&!cA.importScripts&&kr&&kr.protocol!=="file:"&&!TA(ar)?(rl=ar,cA.addEventListener("message",Ig,!1)):rl="onreadystatechange"in oo("script")?function(H){sr.appendChild(oo("script")).onreadystatechange=function(){sr.removeChild(this),Lr(H)}}:function(H){setTimeout(Ur(H),0)});var wr,ic,Fg,Ya,Fl,ha,DI,tu,Ba={set:lg},cl=/ipad|iphone|ipod/i.test(Ut)&&cA.Pebble!==void 0,xE=/web0s(?!.*chrome)/i.test(Ut),iu=rn.f,YE=Ba.set,Jr=cA.MutationObserver||cA.WebKitMutationObserver,ou=cA.document,Ot=cA.process,Vu=cA.Promise,Ju=iu(cA,"queueMicrotask"),fC=Ju&&Ju.value;fC||(wr=function(){var H,BA;for(tc&&(H=Ot.domain)&&H.exit();ic;){BA=ic.fn,ic=ic.next;try{BA()}catch(yA){throw ic?Ya():Fg=void 0,yA}}Fg=void 0,H&&H.enter()},aa||tc||xE||!Jr||!ou?!cl&&Vu&&Vu.resolve?((DI=Vu.resolve(void 0)).constructor=Vu,tu=DI.then,Ya=function(){tu.call(DI,wr)}):Ya=tc?function(){Ot.nextTick(wr)}:function(){YE.call(cA,wr)}:(Fl=!0,ha=ou.createTextNode(""),new Jr(wr).observe(ha,{characterData:!0}),Ya=function(){ha.data=Fl=!Fl}));var q,L,oA,G,x=fC||function(H){var BA={fn:H,next:void 0};Fg&&(Fg.next=BA),ic||(ic=BA,Ya()),Fg=BA},tA=function(H){var BA,yA;this.promise=new H(function(NA,zA){if(BA!==void 0||yA!==void 0)throw TypeError("Bad Promise constructor");BA=NA,yA=zA}),this.resolve=$i(BA),this.reject=$i(yA)},uA={f:function(H){return new tA(H)}},wA=function(H){try{return{error:!1,value:H()}}catch(BA){return{error:!0,value:BA}}},$A=typeof window=="object",me=Ba.set,p=Ze("species"),B="Promise",v=mr.get,N=mr.set,O=mr.getterFor(B),z=mI&&mI.prototype,X=mI,rA=z,DA=cA.TypeError,GA=cA.document,VA=cA.process,te=uA.f,Ce=te,Ke=!!(GA&&GA.createEvent&&cA.dispatchEvent),ot=ge(cA.PromiseRejectionEvent),at=!1,kt=Ga(B,function(){var H=Pi(X),BA=H!==String(X);if(!BA&&Eo===66)return!0;if(Eo>=51&&/native code/.test(H))return!1;var yA=new X(function(zA){zA(1)}),NA=function(zA){zA(function(){},function(){})};return(yA.constructor={})[p]=NA,!(at=yA.then(function(){})instanceof NA)||!BA&&$A&&!ot}),Vt=kt||!vE(function(H){X.all(H).catch(function(){})}),Ui=function(H){var BA;return!(!XA(H)||!ge(BA=H.then))&&BA},ao=function(H,BA){if(!H.notified){H.notified=!0;var yA=H.reactions;x(function(){for(var NA=H.value,zA=H.state==1,we=0;yA.length>we;){var Ie,Ge,ce,Fe=yA[we++],St=zA?Fe.ok:Fe.fail,jt=Fe.resolve,ci=Fe.reject,ft=Fe.domain;try{St?(zA||(H.rejection===2&&As(H),H.rejection=1),St===!0?Ie=NA:(ft&&ft.enter(),Ie=St(NA),ft&&(ft.exit(),ce=!0)),Ie===Fe.promise?ci(DA("Promise-chain cycle")):(Ge=Ui(Ie))?Ge.call(Ie,jt,ci):jt(Ie)):ci(NA)}catch(Bi){ft&&!ce&&ft.exit(),ci(Bi)}}H.reactions=[],H.notified=!1,BA&&!H.rejection&&Ei(H)})}},Zi=function(H,BA,yA){var NA,zA;Ke?((NA=GA.createEvent("Event")).promise=BA,NA.reason=yA,NA.initEvent(H,!1,!0),cA.dispatchEvent(NA)):NA={promise:BA,reason:yA},!ot&&(zA=cA["on"+H])?zA(NA):H==="unhandledrejection"&&function(we,Ie){var Ge=cA.console;Ge&&Ge.error&&(arguments.length===1?Ge.error(we):Ge.error(we,Ie))}("Unhandled promise rejection",yA)},Ei=function(H){me.call(cA,function(){var BA,yA=H.facade,NA=H.value;if(Po(H)&&(BA=wA(function(){tc?VA.emit("unhandledRejection",NA,yA):Zi("unhandledrejection",yA,NA)}),H.rejection=tc||Po(H)?2:1,BA.error))throw BA.value})},Po=function(H){return H.rejection!==1&&!H.parent},As=function(H){me.call(cA,function(){var BA=H.facade;tc?VA.emit("rejectionHandled",BA):Zi("rejectionhandled",BA,H.value)})},pi=function(H,BA,yA){return function(NA){H(BA,NA,yA)}},ji=function(H,BA,yA){H.done||(H.done=!0,yA&&(H=yA),H.value=BA,H.state=2,ao(H,!0))},Ws=function(H,BA,yA){if(!H.done){H.done=!0,yA&&(H=yA);try{if(H.facade===BA)throw DA("Promise can't be resolved itself");var NA=Ui(BA);NA?x(function(){var zA={done:!1};try{NA.call(BA,pi(Ws,zA,H),pi(ji,zA,H))}catch(we){ji(zA,we,H)}}):(H.value=BA,H.state=1,ao(H,!1))}catch(zA){ji({done:!1},zA,H)}}};if(kt&&(rA=(X=function(H){wu(this,X,B),$i(H),q.call(this);var BA=v(this);try{H(pi(Ws,BA),pi(ji,BA))}catch(yA){ji(BA,yA)}}).prototype,(q=function(H){N(this,{type:B,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=lI(rA,{then:function(H,BA){var yA=O(this),NA=te(mC(this,X));return NA.ok=!ge(H)||H,NA.fail=ge(BA)&&BA,NA.domain=tc?VA.domain:void 0,yA.parent=!0,yA.reactions.push(NA),yA.state!=0&&ao(yA,!1),NA.promise},catch:function(H){return this.then(void 0,H)}}),L=function(){var H=new q,BA=v(H);this.promise=H,this.resolve=pi(Ws,BA),this.reject=pi(ji,BA)},uA.f=te=function(H){return H===X||H===oA?new L(H):Ce(H)},ge(mI)&&z!==Object.prototype)){G=z.then,at||(fr(z,"then",function(H,BA){var yA=this;return new X(function(NA,zA){G.call(yA,NA,zA)}).then(H,BA)},{unsafe:!0}),fr(z,"catch",rA.catch,{unsafe:!0}));try{delete z.constructor}catch{}ag&&ag(z,rA)}fs({global:!0,wrap:!0,forced:kt},{Promise:X}),Yr(X,B,!1),Rl(B),oA=je(B),fs({target:B,stat:!0,forced:kt},{reject:function(H){var BA=te(this);return BA.reject.call(void 0,H),BA.promise}}),fs({target:B,stat:!0,forced:kt},{resolve:function(H){return function(BA,yA){if(Es(BA),XA(yA)&&yA.constructor===BA)return yA;var NA=uA.f(BA);return(0,NA.resolve)(yA),NA.promise}(this,H)}}),fs({target:B,stat:!0,forced:Vt},{all:function(H){var BA=this,yA=te(BA),NA=yA.resolve,zA=yA.reject,we=wA(function(){var Ie=$i(BA.resolve),Ge=[],ce=0,Fe=1;Sn(H,function(St){var jt=ce++,ci=!1;Ge.push(void 0),Fe++,Ie.call(BA,St).then(function(ft){ci||(ci=!0,Ge[jt]=ft,--Fe||NA(Ge))},zA)}),--Fe||NA(Ge)});return we.error&&zA(we.value),yA.promise},race:function(H){var BA=this,yA=te(BA),NA=yA.reject,zA=wA(function(){var we=$i(BA.resolve);Sn(H,function(Ie){we.call(BA,Ie).then(yA.resolve,NA)})});return zA.error&&NA(zA.value),yA.promise}});var Te=[].slice,Rt=/MSIE .\./.test(Ut),FA=function(H){return function(BA,yA){var NA=arguments.length>2,zA=NA?Te.call(arguments,2):void 0;return H(NA?function(){(ge(BA)?BA:Function(BA)).apply(this,zA)}:BA,yA)}};fs({global:!0,bind:!0,forced:Rt},{setTimeout:FA(cA.setTimeout),setInterval:FA(cA.setInterval)});var zt=QI.findIndex,En=!0;"findIndex"in[]&&Array(1).findIndex(function(){En=!1}),fs({target:"Array",proto:!0,forced:En},{findIndex:function(H){return zt(this,H,arguments.length>1?arguments[1]:void 0)}}),ye("findIndex");var Xt=IA(function(H){var BA=H.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(yA){return yA.encoding?"rtpmap:%d %s/%s/%s":yA.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(yA){return yA.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(yA){return yA.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(yA){return"extmap:%d"+(yA.direction?"/%s":"%v")+(yA["encrypt-uri"]?" %s":"%v")+" %s"+(yA.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(yA){return yA.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(yA){var NA="candidate:%s %d %s %d %s %d typ %s";return NA+=yA.raddr!=null?" raddr %s rport %d":"%v%v",NA+=yA.tcptype!=null?" tcptype %s":"%v",yA.generation!=null&&(NA+=" generation %d"),NA+=yA["network-id"]!=null?" network-id %d":"%v",NA+=yA["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(yA){var NA="ssrc:%d";return yA.attribute!=null&&(NA+=" %s",yA.value!=null&&(NA+=":%s")),NA}},{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(yA){return yA.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(yA){return yA.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(yA){return"imageattr:%s %s %s"+(yA.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(yA){return"simulcast:%s %s"+(yA.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(yA){return"ts-refclk:%s"+(yA.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(yA){var NA="mediaclk:";return NA+=yA.id!=null?"id=%s %s":"%v%s",NA+=yA.mediaClockValue!=null?"=%s":"",NA+=yA.rateNumerator!=null?" rate=%s":"",NA+=yA.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(BA).forEach(function(yA){BA[yA].forEach(function(NA){NA.reg||(NA.reg=/(.*)/),NA.format||(NA.format="%s")})})}),us=(Xt.v,Xt.o,Xt.s,Xt.i,Xt.u,Xt.e,Xt.p,Xt.z,Xt.r,Xt.t,Xt.c,Xt.b,Xt.m,Xt.a,IA(function(H,BA){var yA=function(Ie){return String(Number(Ie))===Ie?Number(Ie):Ie},NA=function(Ie,Ge,ce){var Fe=Ie.name&&Ie.names;Ie.push&&!Ge[Ie.push]?Ge[Ie.push]=[]:Fe&&!Ge[Ie.name]&&(Ge[Ie.name]={});var St=Ie.push?{}:Fe?Ge[Ie.name]:Ge;(function(jt,ci,ft,Bi){if(Bi&&!ft)ci[Bi]=yA(jt[1]);else for(var Ao=0;Ao<ft.length;Ao+=1)jt[Ao+1]!=null&&(ci[ft[Ao]]=yA(jt[Ao+1]))})(ce.match(Ie.reg),St,Ie.names,Ie.name),Ie.push&&Ge[Ie.push].push(St)},zA=RegExp.prototype.test.bind(/^([a-z])=(.*)/);BA.parse=function(Ie){var Ge={},ce=[],Fe=Ge;return Ie.split(/(\r\n|\r|\n)/).filter(zA).forEach(function(St){var jt=St[0],ci=St.slice(2);jt==="m"&&(ce.push({rtp:[],fmtp:[]}),Fe=ce[ce.length-1]);for(var ft=0;ft<(Xt[jt]||[]).length;ft+=1){var Bi=Xt[jt][ft];if(Bi.reg.test(ci))return NA(Bi,Fe,ci)}}),Ge.media=ce,Ge};var we=function(Ie,Ge){var ce=Ge.split(/=(.+)/,2);return ce.length===2?Ie[ce[0]]=yA(ce[1]):ce.length===1&&Ge.length>1&&(Ie[ce[0]]=void 0),Ie};BA.parseParams=function(Ie){return Ie.split(/;\s?/).reduce(we,{})},BA.parseFmtpConfig=BA.parseParams,BA.parsePayloads=function(Ie){return Ie.toString().split(" ").map(Number)},BA.parseRemoteCandidates=function(Ie){for(var Ge=[],ce=Ie.split(" ").map(yA),Fe=0;Fe<ce.length;Fe+=3)Ge.push({component:ce[Fe],ip:ce[Fe+1],port:ce[Fe+2]});return Ge},BA.parseImageAttributes=function(Ie){return Ie.split(" ").map(function(Ge){return Ge.substring(1,Ge.length-1).split(",").reduce(we,{})})},BA.parseSimulcastStreamList=function(Ie){return Ie.split(";").map(function(Ge){return Ge.split(",").map(function(ce){var Fe,St=!1;return ce[0]!=="~"?Fe=yA(ce):(Fe=yA(ce.substring(1,ce.length)),St=!0),{scid:Fe,paused:St}})})}})),vi=(us.parse,us.parseParams,us.parseFmtpConfig,us.parsePayloads,us.parseRemoteCandidates,us.parseImageAttributes,us.parseSimulcastStreamList,/%[sdv%]/g),ho=function(H){var BA=1,yA=arguments,NA=yA.length;return H.replace(vi,function(zA){if(BA>=NA)return zA;var we=yA[BA];switch(BA+=1,zA){case"%%":return"%";case"%s":return String(we);case"%d":return Number(we);case"%v":return""}})},Ct=function(H,BA,yA){var NA=[H+"="+(BA.format instanceof Function?BA.format(BA.push?yA:yA[BA.name]):BA.format)];if(BA.names)for(var zA=0;zA<BA.names.length;zA+=1){var we=BA.names[zA];BA.name?NA.push(yA[BA.name][we]):NA.push(yA[BA.names[zA]])}else NA.push(yA[BA.name]);return ho.apply(null,NA)},Bt=["v","o","s","i","u","e","p","c","b","t","r","z","a"],ug=["i","c","b","a"],ks={write:function(H,BA){BA=BA||{},H.version==null&&(H.version=0),H.name==null&&(H.name=" "),H.media.forEach(function(we){we.payloads==null&&(we.payloads="")});var yA=BA.outerOrder||Bt,NA=BA.innerOrder||ug,zA=[];return yA.forEach(function(we){Xt[we].forEach(function(Ie){Ie.name in H&&H[Ie.name]!=null?zA.push(Ct(we,Ie,H)):Ie.push in H&&H[Ie.push]!=null&&H[Ie.push].forEach(function(Ge){zA.push(Ct(we,Ie,Ge))})})}),H.media.forEach(function(we){zA.push(Ct("m",Xt.m[0],we)),NA.forEach(function(Ie){Xt[Ie].forEach(function(Ge){Ge.name in we&&we[Ge.name]!=null?zA.push(Ct(Ie,Ge,we)):Ge.push in we&&we[Ge.push]!=null&&we[Ge.push].forEach(function(ce){zA.push(Ct(Ie,Ge,ce))})})})}),zA.join(`\r
|
||
`)+`\r
|
||
`},parse:us.parse,parseParams:us.parseParams,parseFmtpConfig:us.parseFmtpConfig,parsePayloads:us.parsePayloads,parseRemoteCandidates:us.parseRemoteCandidates,parseImageAttributes:us.parseImageAttributes,parseSimulcastStreamList:us.parseSimulcastStreamList},Wi=function(){var H=f(regeneratorRuntime.mark(function BA(){var yA,NA,zA,we,Ie,Ge;return regeneratorRuntime.wrap(function(ce){for(;;)switch(ce.prev=ce.next){case 0:return yA="",NA=!1,zA=!1,ce.prev=3,we=new RTCPeerConnection,(Ie=document.createElement("canvas")).getContext("2d"),Ge=Ie.captureStream(0),we.addTrack(Ge.getVideoTracks()[0],Ge),ce.next=11,we.createOffer();case 11:return(yA=ce.sent).sdp.toLowerCase().indexOf("h264")!==-1&&(NA=!0),yA.sdp.toLowerCase().indexOf("vp8")!==-1&&(zA=!0),we.close(),ce.abrupt("return",{isH264EncodeSupported:NA,isVp8EncodeSupported:zA});case 18:return ce.prev=18,ce.t0=ce.catch(3),ce.abrupt("return",{isH264EncodeSupported:!1,isVp8EncodeSupported:!1});case 21:case"end":return ce.stop()}},BA,null,[[3,18]])}));return function(){return H.apply(this,arguments)}}(),Hr=function(){var H=f(regeneratorRuntime.mark(function BA(){var yA,NA,zA,we;return regeneratorRuntime.wrap(function(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:return yA="",NA=!1,zA=!1,Ie.prev=3,we=new RTCPeerConnection,Ie.next=7,we.createOffer({offerToReceiveAudio:1,offerToReceiveVideo:1});case 7:return(yA=Ie.sent).sdp.toLowerCase().indexOf("h264")!==-1&&(NA=!0),yA.sdp.toLowerCase().indexOf("vp8")!==-1&&(zA=!0),we.close(),Ie.abrupt("return",{isH264DecodeSupported:NA,isVp8DecodeSupported:zA});case 14:return Ie.prev=14,Ie.t0=Ie.catch(3),Ie.abrupt("return",{isH264DecodeSupported:!1,isVp8DecodeSupported:!1});case 17:case"end":return Ie.stop()}},BA,null,[[3,14]])}));return function(){return H.apply(this,arguments)}}(),oc=function(){var H=f(regeneratorRuntime.mark(function BA(){return regeneratorRuntime.wrap(function(yA){for(;;)switch(yA.prev=yA.next){case 0:return yA.abrupt("return",new Promise(function(){var NA=f(regeneratorRuntime.mark(function zA(we){var Ie,Ge,ce,Fe,St,jt,ci,ft,Bi,Ao,Is,Uo,ii,Fr;return regeneratorRuntime.wrap(function(Zo){for(;;)switch(Zo.prev=Zo.next){case 0:return Ie={encode:!1,decode:!1},Ge=null,Zo.prev=2,ce=document.createElement("canvas"),Fe=ce.getContext("2d"),ce.width=640,ce.height=480,St=setInterval(function(){Fe.fillText("test",Math.floor(640*Math.random()),Math.floor(480*Math.random()))},33),jt=-1,ci=-1,Ge=function(){clearInterval(jt),clearInterval(St),clearTimeout(ci),Bi.close(),Ao.close(),ft.getTracks().forEach(function(jn){return jn.stop()})},ci=setTimeout(function(){Ge(),we(Ie)},3e3),ft=ce.captureStream(),Bi=new RTCPeerConnection({}),Ao=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),Bi.addEventListener("icecandidate",function(jn){return Ao.addIceCandidate(jn.candidate)}),Ao.addEventListener("icecandidate",function(jn){return Bi.addIceCandidate(jn.candidate)}),Bi.addTrack(ft.getVideoTracks()[0],ft),Zo.next=20,Bi.createOffer();case 20:return Is=Zo.sent,Zo.next=23,Bi.setLocalDescription(Is);case 23:return Zo.next=25,Ao.setRemoteDescription(Is);case 25:return Zo.next=27,Ao.createAnswer();case 27:return Uo=Zo.sent,ii=ks.parse(Uo.sdp),Fr=ii.media[0].rtp.findIndex(function(jn){return jn.codec==="H264"}),ii.media[0].rtp=[ii.media[0].rtp[Fr]],ii.media[0].fmtp=ii.media[0].fmtp.filter(function(jn){return jn.payload===ii.media[0].rtp[0].payload}),ii.media[0].rtcpFb=ii.media[0].rtcpFb.filter(function(jn){return jn.payload===ii.media[0].rtp[0].payload}),Uo.sdp=ks.write(ii),Zo.next=36,Ao.setLocalDescription(Uo);case 36:return Zo.next=38,Bi.setRemoteDescription(Uo);case 38:jt=setInterval(f(regeneratorRuntime.mark(function jn(){var Wn,ta;return regeneratorRuntime.wrap(function(qr){for(;;)switch(qr.prev=qr.next){case 0:return Ie.encode&&Ie.decode&&(Ge(),we(Ie)),qr.next=3,Bi.getStats();case 3:return Wn=qr.sent,qr.next=6,Ao.getStats();case 6:ta=qr.sent,Ie.encode||Wn.forEach(function(sc){sc.type==="outbound-rtp"&&sc.mediaType==="video"&&sc.framesEncoded>0&&(Ie.encode=!0)}),Ie.decode||ta.forEach(function(sc){sc.type==="inbound-rtp"&&sc.mediaType==="video"&&sc.framesDecoded>0&&(Ie.decode=!0)});case 9:case"end":return qr.stop()}},jn)})),500),Zo.next=45;break;case 41:Zo.prev=41,Zo.t0=Zo.catch(2),Ge(),we(Ie);case 45:case"end":return Zo.stop()}},zA,null,[[2,41]])}));return function(zA){return NA.apply(this,arguments)}}()));case 1:case"end":return yA.stop()}},BA)}));return function(){return H.apply(this,arguments)}}(),is=QI.find,ga=!0;function Qa(){return ea.apply(this,arguments)}function ea(){return(ea=f(regeneratorRuntime.mark(function H(){return regeneratorRuntime.wrap(function(BA){for(;;)switch(BA.prev=BA.next){case 0:return BA.abrupt("return",new Promise(function(){var yA=f(regeneratorRuntime.mark(function NA(zA,we){var Ie,Ge,ce,Fe,St,jt,ci,ft,Bi,Ao,Is,Uo,ii,Fr;return regeneratorRuntime.wrap(function(Zo){for(;;)switch(Zo.prev=Zo.next){case 0:return Zo.prev=0,Ie=function(){clearInterval(ii),clearInterval(Fe),clearTimeout(Fr),jt.close(),ci.close(),St.getTracks().forEach(function(jn){return jn.stop()})},Ge=document.createElement("canvas"),ce=Ge.getContext("2d"),Ge.width=640,Ge.height=480,Fe=setInterval(function(){ce.fillText("test",0,0)},33),St=Ge.captureStream(15),jt=new RTCPeerConnection({}),ci=new RTCPeerConnection({}),jt.addEventListener("icecandidate",function(jn){ci.addIceCandidate(jn.candidate)}),ci.addEventListener("icecandidate",function(jn){jt.addIceCandidate(jn.candidate)}),ft=RTCRtpSender.getCapabilities("video"),Bi=ft.codecs,Ao=Bi.find(function(jn){return jn.mimeType==="video/H264"}),jt.addTransceiver(St.getVideoTracks()[0],{direction:"sendonly",streams:[St],sendEncodings:[{maxBitrate:5e5}]}),ci.addTransceiver("video",{direction:"recvonly"}),jt.getTransceivers()[0].setCodecPreferences([Ao]),Zo.next=19,jt.createOffer();case 19:return Is=Zo.sent,Zo.next=22,jt.setLocalDescription(Is);case 22:return Zo.next=24,ci.setRemoteDescription(Is);case 24:return Zo.next=26,ci.createAnswer();case 26:return Uo=Zo.sent,Zo.next=29,ci.setLocalDescription(Uo);case 29:return Zo.next=31,jt.setRemoteDescription(Uo);case 31:ii=-1,Fr=-1,Fr=setTimeout(function(){Ie(),zA(!1)},3e4),ii=setInterval(f(regeneratorRuntime.mark(function jn(){return regeneratorRuntime.wrap(function(Wn){for(;;)switch(Wn.prev=Wn.next){case 0:return Wn.next=2,jt.getStats();case 2:Wn.sent.forEach(function(ta){ta.type==="outbound-rtp"&&ta.mediaType==="video"&&(ta.encoderImplementation===void 0&&(Ie(),we(new Error("your browser does not support to detect HW acceleration enabled."))),ta.encoderImplementation==="ExternalEncoder"&&(Ie(),zA(!0)))});case 4:case"end":return Wn.stop()}},jn)})),500),Zo.next=40;break;case 37:Zo.prev=37,Zo.t0=Zo.catch(0),we(Zo.t0);case 40:case"end":return Zo.stop()}},NA,null,[[0,37]])}));return function(NA,zA){return yA.apply(this,arguments)}}()));case 1:case"end":return BA.stop()}},H)}))).apply(this,arguments)}return"find"in[]&&Array(1).find(function(){ga=!1}),fs({target:"Array",proto:!0,forced:ga},{find:function(H){return is(this,H,arguments.length>1?arguments[1]:void 0)}}),ye("find"),function(){function H(){(function(ce,Fe){if(!(ce instanceof Fe))throw new TypeError("Cannot call a class as a function")})(this,H),this.system=null,this.APISupported=null,this.devices=null,this.codecsSupported=null,this.report=null}var BA,yA,NA,zA,we,Ie,Ge;return BA=H,(yA=[{key:"isTRTCSupported",value:(Ge=f(regeneratorRuntime.mark(function ce(){var Fe,St,jt,ci,ft,Bi,Ao,Is,Uo;return regeneratorRuntime.wrap(function(ii){for(;;)switch(ii.prev=ii.next){case 0:return ii.next=2,this.getReportAsync();case 2:if(Fe=this.APISupported,St=Fe.isWebRTCSupported,jt=Fe.isUserMediaSupported,ci=Fe.isWebSocketSupported,St){ii.next=5;break}return ii.abrupt("return",{result:!1,reason:"Your browser does not support WebRTC."});case 5:if(ci){ii.next=7;break}return ii.abrupt("return",{result:!1,reason:"Your browser does not support WebSocket."});case 7:if(jt){ii.next=9;break}return ii.abrupt("return",{result:!1,reason:"Your browser does not support getUserMedia."});case 9:if(ft=this.codecsSupported,Bi=ft.isH264EncodeSupported,Ao=ft.isVp8EncodeSupported,Is=ft.isH264DecodeSupported,Uo=ft.isVp8DecodeSupported,Bi||Ao){ii.next=12;break}return ii.abrupt("return",{result:!1,reason:"isH264EncodeSupported: ".concat(Bi," isVp8EncodeSupported: ").concat(Ao," ")});case 12:if(Is||Uo){ii.next=14;break}return ii.abrupt("return",{result:!1,reason:"isH264DecodeSupported: ".concat(Is," isVp8DecodeSupported: ").concat(Uo," ")});case 14:if(!($g||ku||Rr&&cg<80||dI&&bu<56)){ii.next=16;break}return ii.abrupt("return",{result:!1,reason:"your browser does not qualify, it is recommended to use Chrome and firefox."});case 16:return ii.abrupt("return",{result:!0});case 17:case"end":return ii.stop()}},ce,this)})),function(){return Ge.apply(this,arguments)})},{key:"getReportAsync",value:(Ie=f(regeneratorRuntime.mark(function ce(){return regeneratorRuntime.wrap(function(Fe){for(;;)switch(Fe.prev=Fe.next){case 0:return this.getSystem(),this.getAPISupported(),Fe.next=4,this.getCodecAsync();case 4:return Fe.next=6,this.getDevicesAsync();case 6:return this.report={system:this.system,APISupported:this.APISupported,codecsSupported:this.codecsSupported,devices:this.devices},Fe.abrupt("return",this.report);case 8:case"end":return Fe.stop()}},ce,this)})),function(){return Ie.apply(this,arguments)})},{key:"getCodecAsync",value:(we=f(regeneratorRuntime.mark(function ce(){var Fe,St,jt,ci,ft,Bi,Ao,Is,Uo;return regeneratorRuntime.wrap(function(ii){for(;;)switch(ii.prev=ii.next){case 0:return ii.next=2,Wi();case 2:return Fe=ii.sent,St=Fe.isH264EncodeSupported,jt=Fe.isVp8EncodeSupported,ii.next=7,Hr();case 7:if(ci=ii.sent,ft=ci.isH264DecodeSupported,Bi=ci.isVp8DecodeSupported,!St||!ft||!Us&&!Ac){ii.next=18;break}return ii.next=13,oc();case 13:Ao=ii.sent,Is=Ao.encode,Uo=Ao.decode,St=Is,ft=Uo;case 18:return this.codecsSupported={isH264EncodeSupported:St,isVp8EncodeSupported:jt,isH264DecodeSupported:ft,isVp8DecodeSupported:Bi},ii.abrupt("return",this.codecsSupported);case 20:case"end":return ii.stop()}},ce,this)})),function(){return we.apply(this,arguments)})},{key:"getDevicesAsync",value:(zA=f(regeneratorRuntime.mark(function ce(){var Fe,St,jt,ci,ft,Bi;return regeneratorRuntime.wrap(function(Ao){for(;;)switch(Ao.prev=Ao.next){case 0:return Ao.next=2,eu();case 2:return Fe=Ao.sent,St=Fe.hasCameraPermission,jt=Fe.hasMicrophonePermission,ci=Fe.cameras,ft=Fe.microphones,Bi=Fe.speakers,this.devices={cameras:ci,microphones:ft,speakers:Bi,hasCameraPermission:St,hasMicrophonePermission:jt},Ao.abrupt("return",this.devices);case 10:case"end":return Ao.stop()}},ce,this)})),function(){return zA.apply(this,arguments)})},{key:"getSystem",value:function(){var ce,Fe;return this.system={UA:QC,OS:(Fe="unknown",Tc.get(!0)&&(Fe=Tc.get(!0)),Fe),browser:BC(),displayResolution:bl(),hardwareConcurrency:(ce=window.navigator)===null||ce===void 0?void 0:ce.hardwareConcurrency},this.system}},{key:"getAPISupported",value:function(){var ce,Fe,St;return this.APISupported={isUserMediaSupported:pC(),isWebRTCSupported:["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(function(jt){return jt in window}).length>0,isWebSocketSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebAudioSupported:md(),isScreenCaptureAPISupported:!((St=navigator.mediaDevices)===null||St===void 0||!St.getDisplayMedia),isCanvasCapturingSupported:(Fe=!1,["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(jt){typeof document<"u"&&typeof document.createElement=="function"&&!Fe&&jt in document.createElement("canvas")&&(Fe=!0)}),Fe),isVideoCapturingSupported:(ce=!1,["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(jt){typeof document<"u"&&typeof document.createElement=="function"&&!ce&&jt in document.createElement("video")&&(ce=!0)}),ce),isRTPSenderReplaceTracksSupported:LE(),isApplyConstraintsSupported:typeof MediaStreamTrack<"u"&&"applyConstraints"in MediaStreamTrack.prototype},this.APISupported}},{key:"isHardWareAccelerationEnabled",value:(NA=f(regeneratorRuntime.mark(function ce(){return regeneratorRuntime.wrap(function(Fe){for(;;)switch(Fe.prev=Fe.next){case 0:return Fe.next=2,Qa();case 2:return Fe.abrupt("return",Fe.sent);case 3:case"end":return Fe.stop()}},ce)})),function(){return NA.apply(this,arguments)})}])&&w(BA.prototype,yA),H}()})}(rY)),rY.exports}var MEA=vL.exports,HZ;function vEA(){return HZ||(HZ=1,function(t,i){(function(r,l){l(i,S9(),yEA(),SEA())})(MEA,function(r,l,I,h){function f(Q){return Q&&typeof Q=="object"&&"default"in Q?Q:{default:Q}}var w=f(l),_=f(I),b=f(h);function U(Q,R,F,eA){var sA,_A=arguments.length,ZA=_A<3?R:eA===null?eA=Object.getOwnPropertyDescriptor(R,F):eA;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")ZA=Reflect.decorate(Q,R,F,eA);else for(var QA=Q.length-1;QA>=0;QA--)(sA=Q[QA])&&(ZA=(_A<3?sA(ZA):_A>3?sA(R,F,ZA):sA(R,F))||ZA);return _A>3&&ZA&&Object.defineProperty(R,F,ZA),ZA}function j(Q,R,F,eA){return new(F||(F=Promise))(function(sA,_A){function ZA(jA){try{PA(eA.next(jA))}catch(ie){_A(ie)}}function QA(jA){try{PA(eA.throw(jA))}catch(ie){_A(ie)}}function PA(jA){var ie;jA.done?sA(jA.value):(ie=jA.value,ie instanceof F?ie:new F(function(Le){Le(ie)})).then(ZA,QA)}PA((eA=eA.apply(Q,[])).next())})}typeof SuppressedError=="function"&&SuppressedError;var IA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof mg<"u"?mg:typeof self<"u"?self:{};function nA(Q){return Q&&Q.__esModule&&Object.prototype.hasOwnProperty.call(Q,"default")?Q.default:Q}var mA={};(function(Q){var R=Object.prototype.hasOwnProperty,F="~";function eA(){}function sA(PA,jA,ie){this.fn=PA,this.context=jA,this.once=ie||!1}function _A(PA,jA,ie,Le,Ne){if(typeof ie!="function")throw new TypeError("The listener must be a function");var Be=new sA(ie,Le||PA,Ne),lt=F?F+jA:jA;return PA._events[lt]?PA._events[lt].fn?PA._events[lt]=[PA._events[lt],Be]:PA._events[lt].push(Be):(PA._events[lt]=Be,PA._eventsCount++),PA}function ZA(PA,jA){--PA._eventsCount===0?PA._events=new eA:delete PA._events[jA]}function QA(){this._events=new eA,this._eventsCount=0}Object.create&&(eA.prototype=Object.create(null),new eA().__proto__||(F=!1)),QA.prototype.eventNames=function(){var PA,jA,ie=[];if(this._eventsCount===0)return ie;for(jA in PA=this._events)R.call(PA,jA)&&ie.push(F?jA.slice(1):jA);return Object.getOwnPropertySymbols?ie.concat(Object.getOwnPropertySymbols(PA)):ie},QA.prototype.listeners=function(PA){var jA=F?F+PA:PA,ie=this._events[jA];if(!ie)return[];if(ie.fn)return[ie.fn];for(var Le=0,Ne=ie.length,Be=new Array(Ne);Le<Ne;Le++)Be[Le]=ie[Le].fn;return Be},QA.prototype.listenerCount=function(PA){var jA=F?F+PA:PA,ie=this._events[jA];return ie?ie.fn?1:ie.length:0},QA.prototype.emit=function(PA,jA,ie,Le,Ne,Be){var lt=F?F+PA:PA;if(!this._events[lt])return!1;var ai,et,qe=this._events[lt],dA=arguments.length;if(qe.fn){switch(qe.once&&this.removeListener(PA,qe.fn,void 0,!0),dA){case 1:return qe.fn.call(qe.context),!0;case 2:return qe.fn.call(qe.context,jA),!0;case 3:return qe.fn.call(qe.context,jA,ie),!0;case 4:return qe.fn.call(qe.context,jA,ie,Le),!0;case 5:return qe.fn.call(qe.context,jA,ie,Le,Ne),!0;case 6:return qe.fn.call(qe.context,jA,ie,Le,Ne,Be),!0}for(et=1,ai=new Array(dA-1);et<dA;et++)ai[et-1]=arguments[et];qe.fn.apply(qe.context,ai)}else{var Qt,$e=qe.length;for(et=0;et<$e;et++)switch(qe[et].once&&this.removeListener(PA,qe[et].fn,void 0,!0),dA){case 1:qe[et].fn.call(qe[et].context);break;case 2:qe[et].fn.call(qe[et].context,jA);break;case 3:qe[et].fn.call(qe[et].context,jA,ie);break;case 4:qe[et].fn.call(qe[et].context,jA,ie,Le);break;default:if(!ai)for(Qt=1,ai=new Array(dA-1);Qt<dA;Qt++)ai[Qt-1]=arguments[Qt];qe[et].fn.apply(qe[et].context,ai)}}return!0},QA.prototype.on=function(PA,jA,ie){return _A(this,PA,jA,ie,!1)},QA.prototype.once=function(PA,jA,ie){return _A(this,PA,jA,ie,!0)},QA.prototype.removeListener=function(PA,jA,ie,Le){var Ne=F?F+PA:PA;if(!this._events[Ne])return this;if(!jA)return ZA(this,Ne),this;var Be=this._events[Ne];if(Be.fn)Be.fn!==jA||Le&&!Be.once||ie&&Be.context!==ie||ZA(this,Ne);else{for(var lt=0,ai=[],et=Be.length;lt<et;lt++)(Be[lt].fn!==jA||Le&&!Be[lt].once||ie&&Be[lt].context!==ie)&&ai.push(Be[lt]);ai.length?this._events[Ne]=ai.length===1?ai[0]:ai:ZA(this,Ne)}return this},QA.prototype.removeAllListeners=function(PA){var jA;return PA?(jA=F?F+PA:PA,this._events[jA]&&ZA(this,jA)):(this._events=new eA,this._eventsCount=0),this},QA.prototype.off=QA.prototype.removeListener,QA.prototype.addListener=QA.prototype.on,QA.prefixed=F,QA.EventEmitter=QA,Q.exports=QA})({get exports(){return mA},set exports(Q){mA=Q}});var lA,cA,TA,WA,Ee,de,Pe,pe,gt,pt,We,Dt=mA;(function(Q){Q.CAMERA="camera",Q.SPEAKER="speaker",Q.MICROPHONES="microphones",Q.MICROPHONE="microphone",Q.AUDIO="audio",Q.VIDEO="video"})(lA||(lA={})),r.TUIErrorCode=void 0,(cA=r.TUIErrorCode||(r.TUIErrorCode={}))[cA.ERR_SUCC=0]="ERR_SUCC",cA[cA.ERR_FAILED=-1]="ERR_FAILED",cA[cA.ERR_INVALID_PARAMETER=-1001]="ERR_INVALID_PARAMETER",cA[cA.ERR_SDK_NOT_INITIALIZED=-1002]="ERR_SDK_NOT_INITIALIZED",cA[cA.ERR_PERMISSION_DENIED=-1003]="ERR_PERMISSION_DENIED",cA[cA.ERR_REQUIRE_PAYMENT=-1004]="ERR_REQUIRE_PAYMENT",cA[cA.ERR_CAMERA_START_FAILED=-1100]="ERR_CAMERA_START_FAILED",cA[cA.ERR_CAMERA_NOT_AUTHORIZED=-1101]="ERR_CAMERA_NOT_AUTHORIZED",cA[cA.ERR_CAMERA_OCCUPIED=-1102]="ERR_CAMERA_OCCUPIED",cA[cA.ERR_CAMERA_DEVICE_EMPTY=-1103]="ERR_CAMERA_DEVICE_EMPTY",cA[cA.ERR_MICROPHONE_START_FAILED=-1104]="ERR_MICROPHONE_START_FAILED",cA[cA.ERR_MICROPHONE_NOT_AUTHORIZED=-1105]="ERR_MICROPHONE_NOT_AUTHORIZED",cA[cA.ERR_MICROPHONE_OCCUPIED=-1106]="ERR_MICROPHONE_OCCUPIED",cA[cA.ERR_MICROPHONE_DEVICE_EMPTY=-1107]="ERR_MICROPHONE_DEVICE_EMPTY",cA[cA.ERR_ROOM_NAME_INVALID=-2107]="ERR_ROOM_NAME_INVALID",cA[cA.ERR_USER_NOT_EXIST=-2200]="ERR_USER_NOT_EXIST",cA[cA.ERR_REQUEST_ID_INVALID=-2311]="ERR_REQUEST_ID_INVALID",r.TUIVideoQuality=void 0,(TA=r.TUIVideoQuality||(r.TUIVideoQuality={}))[TA.kVideoQuality_360p=1]="kVideoQuality_360p",TA[TA.kVideoQuality_540p=2]="kVideoQuality_540p",TA[TA.kVideoQuality_720p=3]="kVideoQuality_720p",TA[TA.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,(Ee=r.TUINetworkQuality||(r.TUINetworkQuality={}))[Ee.kQualityUnknown=0]="kQualityUnknown",Ee[Ee.kQualityExcellent=1]="kQualityExcellent",Ee[Ee.kQualityGood=2]="kQualityGood",Ee[Ee.kQualityPoor=3]="kQualityPoor",Ee[Ee.kQualityBad=4]="kQualityBad",Ee[Ee.kQualityVeryBad=5]="kQualityVeryBad",Ee[Ee.kQualityDown=6]="kQualityDown",r.TUIKickedOutOfRoomReason=void 0,(de=r.TUIKickedOutOfRoomReason||(r.TUIKickedOutOfRoomReason={}))[de.kKickedByAdmin=0]="kKickedByAdmin",de[de.kKickedByLoggedOnOtherDevice=1]="kKickedByLoggedOnOtherDevice",de[de.kKickedByServer=2]="kKickedByServer",r.TUIResolutionMode=void 0,(Pe=r.TUIResolutionMode||(r.TUIResolutionMode={}))[Pe.kResolutionMode_Landscape=0]="kResolutionMode_Landscape",Pe[Pe.kResolutionMode_Portrait=1]="kResolutionMode_Portrait",r.TUICallEvent=void 0,(pe=r.TUICallEvent||(r.TUICallEvent={})).ERROR="onError",pe.SDK_READY="sdkReady",pe.KICKED_OUT="onKickedOffLine",pe.onUserSigExpired="onUserSigExpired",pe.ON_CALL_BEGIN="onCallBegin",pe.INVITED="onInvited",pe.ON_CALL_RECEIVED="onCallReceived",pe.USER_ACCEPT="onUserAccept",pe.USER_ENTER="onUserJoin",pe.USER_LEAVE="onUserLeave",pe.REJECT="onUserReject",pe.NO_RESP="onUserNoResponse",pe.LINE_BUSY="onUserLineBusy",pe.CALLING_CANCEL="onCallingCancel",pe.ON_CALL_CANCELED="onCallCancelled",pe.ON_CALL_END="onCallEnd",pe.CALL_END="onCallEnd",pe.CALLING_END="onCallEnd",pe.USER_VIDEO_AVAILABLE="onUserVideoAvailable",pe.USER_AUDIO_AVAILABLE="onUserAudioAvailable",pe.USER_VOICE_VOLUME="onUserVoiceVolumeChanged",pe.GROUP_CALL_INVITEE_LIST_UPDATE="onGroupCallInviteeListUpdate",pe.CALL_TYPE_CHANGED="onCallMediaTypeChanged",pe.DEVICED_UPDATED="onDeviceUpdated",pe.ON_USER_NETWORK_QUALITY_CHANGED="onUserNetworkQualityChanged",pe.MESSAGE_SENT_BY_ME="onMessageSentByMe",pe.onDeviceChange="onDeviceChange",pe.ON_CALL_NOT_CONNECTED="onCallNotConnected",pe.ON_USER_INVITING="onUserInviting",r.TUIRoomDeviceMangerEvents=void 0,(r.TUIRoomDeviceMangerEvents||(r.TUIRoomDeviceMangerEvents={})).onDeviceChanged="onDeviceChanged",r.TUICamera=void 0,(gt=r.TUICamera||(r.TUICamera={}))[gt.kFront=0]="kFront",gt[gt.kBack=1]="kBack",r.TUICallCameraPosition=void 0,(pt=r.TUICallCameraPosition||(r.TUICallCameraPosition={}))[pt.FRONT=0]="FRONT",pt[pt.BACK=1]="BACK",r.AUDIO_PLAYBACK_DEVICE=void 0,(We=r.AUDIO_PLAYBACK_DEVICE||(r.AUDIO_PLAYBACK_DEVICE={}))[We.SPEAKER=0]="SPEAKER",We[We.EAR=1]="EAR";var Kt;r.CallEndReason=void 0,(Kt=r.CallEndReason||(r.CallEndReason={}))[Kt.UnKnown=0]="UnKnown",Kt[Kt.Hangup=1]="Hangup",Kt[Kt.Reject=2]="Reject",Kt[Kt.NoResponse=3]="NoResponse",Kt[Kt.Offline=4]="Offline",Kt[Kt.LineBusy=5]="LineBusy",Kt[Kt.Canceled=6]="Canceled",Kt[Kt.OtherDeviceAccepted=7]="OtherDeviceAccepted",Kt[Kt.OtherDeviceReject=8]="OtherDeviceReject",Kt[Kt.EndByServer=9]="EndByServer";var ut="3.5.9";const ge="boolean",XA="string",_e="object",je="array",Ut="function",gi="undefined",Fi="video",To="audio",to="web",Eo="unknown",Vs="cover",ki="enableVirtualBackground",ns="blur",jo="image",$i={ELECTRON:"electron",WEB:"web",MINI_PROGRAM:"miniProgram"};function Wt(Q,R){(R==null||R>Q.length)&&(R=Q.length);for(var F=0,eA=Array(R);F<R;F++)eA[F]=Q[F];return eA}function io(Q,R){if(!(Q instanceof R))throw new TypeError("Cannot call a class as a function")}function bi(Q,R){for(var F=0;F<R.length;F++){var eA=R[F];eA.enumerable=eA.enumerable||!1,eA.configurable=!0,"value"in eA&&(eA.writable=!0),Object.defineProperty(Q,nt(eA.key),eA)}}function vs(Q,R,F){return R&&bi(Q.prototype,R),F&&bi(Q,F),Object.defineProperty(Q,"prototype",{writable:!1}),Q}function HA(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var Q,R,F=typeof Symbol=="function"?Symbol:{},eA=F.iterator||"@@iterator",sA=F.toStringTag||"@@toStringTag";function _A(Be,lt,ai,et){var qe=lt&<.prototype instanceof QA?lt:QA,dA=Object.create(qe.prototype);return le(dA,"_invoke",function(Qt,$e,Vi){var li,eo,xo,Jt=0,Xe=Vi||[],Si=!1,So={p:0,n:0,v:Q,a:uo,f:uo.bind(Q,4),d:function(Io,Yo){return li=Io,eo=0,xo=Q,So.n=Yo,ZA}};function uo(Io,Yo){for(eo=Io,xo=Yo,R=0;!Si&&Jt&&!hn&&R<Xe.length;R++){var hn,Zn=Xe[R],qa=So.p,es=Zn[2];Io>3?(hn=es===Yo)&&(xo=Zn[(eo=Zn[4])?5:(eo=3,3)],Zn[4]=Zn[5]=Q):Zn[0]<=qa&&((hn=Io<2&&qa<Zn[1])?(eo=0,So.v=Yo,So.n=Zn[1]):qa<es&&(hn=Io<3||Zn[0]>Yo||Yo>es)&&(Zn[4]=Io,Zn[5]=Yo,So.n=es,eo=0))}if(hn||Io>1)return ZA;throw Si=!0,Yo}return function(Io,Yo,hn){if(Jt>1)throw TypeError("Generator is already running");for(Si&&Yo===1&&uo(Yo,hn),eo=Yo,xo=hn;(R=eo<2?Q:xo)||!Si;){li||(eo?eo<3?(eo>1&&(So.n=-1),uo(eo,xo)):So.n=xo:So.v=xo);try{if(Jt=2,li){if(eo||(Io="next"),R=li[Io]){if(!(R=R.call(li,xo)))throw TypeError("iterator result is not an object");if(!R.done)return R;xo=R.value,eo<2&&(eo=0)}else eo===1&&(R=li.return)&&R.call(li),eo<2&&(xo=TypeError("The iterator does not provide a '"+Io+"' method"),eo=1);li=Q}else if((R=(Si=So.n<0)?xo:Qt.call($e,So))!==ZA)break}catch(Zn){li=Q,eo=1,xo=Zn}finally{Jt=1}}return{value:R,done:Si}}}(Be,ai,et),!0),dA}var ZA={};function QA(){}function PA(){}function jA(){}R=Object.getPrototypeOf;var ie=[][eA]?R(R([][eA]())):(le(R={},eA,function(){return this}),R),Le=jA.prototype=QA.prototype=Object.create(ie);function Ne(Be){return Object.setPrototypeOf?Object.setPrototypeOf(Be,jA):(Be.__proto__=jA,le(Be,sA,"GeneratorFunction")),Be.prototype=Object.create(Le),Be}return PA.prototype=jA,le(Le,"constructor",jA),le(jA,"constructor",PA),PA.displayName="GeneratorFunction",le(jA,sA,"GeneratorFunction"),le(Le),le(Le,sA,"Generator"),le(Le,eA,function(){return this}),le(Le,"toString",function(){return"[object Generator]"}),(HA=function(){return{w:_A,m:Ne}})()}function le(Q,R,F,eA){var sA=Object.defineProperty;try{sA({},"",{})}catch{sA=0}le=function(_A,ZA,QA,PA){function jA(ie,Le){le(_A,ie,function(Ne){return this._invoke(ie,Le,Ne)})}ZA?sA?sA(_A,ZA,{value:QA,enumerable:!PA,configurable:!PA,writable:!PA}):_A[ZA]=QA:(jA("next",0),jA("throw",1),jA("return",2))},le(Q,R,F,eA)}function Ve(Q,R){return function(F){if(Array.isArray(F))return F}(Q)||function(F,eA){var sA=F==null?null:typeof Symbol<"u"&&F[Symbol.iterator]||F["@@iterator"];if(sA!=null){var _A,ZA,QA,PA,jA=[],ie=!0,Le=!1;try{if(QA=(sA=sA.call(F)).next,eA!==0)for(;!(ie=(_A=QA.call(sA)).done)&&(jA.push(_A.value),jA.length!==eA);ie=!0);}catch(Ne){Le=!0,ZA=Ne}finally{try{if(!ie&&sA.return!=null&&(PA=sA.return(),Object(PA)!==PA))return}finally{if(Le)throw ZA}}return jA}}(Q,R)||Ai(Q,R)||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 Ft(Q){return function(R){if(Array.isArray(R))return Wt(R)}(Q)||function(R){if(typeof Symbol<"u"&&R[Symbol.iterator]!=null||R["@@iterator"]!=null)return Array.from(R)}(Q)||Ai(Q)||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 nt(Q){var R=function(F,eA){if(typeof F!="object"||!F)return F;var sA=F[Symbol.toPrimitive];if(sA!==void 0){var _A=sA.call(F,eA);if(typeof _A!="object")return _A;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(F)}(Q,"string");return typeof R=="symbol"?R:R+""}function It(Q){return It=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R},It(Q)}function Ai(Q,R){if(Q){if(typeof Q=="string")return Wt(Q,R);var F={}.toString.call(Q).slice(8,-1);return F==="Object"&&Q.constructor&&(F=Q.constructor.name),F==="Map"||F==="Set"?Array.from(Q):F==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(F)?Wt(Q,R):void 0}}var ei=function(Q){return Q&&Q.Math===Math&&Q},ke=ei(typeof globalThis=="object"&&globalThis)||ei(typeof window=="object"&&window)||ei(typeof self=="object"&&self)||ei(typeof IA=="object"&&IA)||ei(typeof IA=="object"&&IA)||function(){return this}()||Function("return this")(),Ze={},vt=function(Q){try{return!!Q()}catch{return!0}},_t=!vt(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Oi=!vt(function(){var Q=function(){}.bind();return typeof Q!="function"||Q.hasOwnProperty("prototype")}),po=Oi,No=Function.prototype.call,oo=po?No.bind(No):function(){return No.apply(No,arguments)},Go={},An={}.propertyIsEnumerable,rn=Object.getOwnPropertyDescriptor,Es=rn&&!An.call({1:2},1);Go.f=Es?function(Q){var R=rn(this,Q);return!!R&&R.enumerable}:An;var an,Do,pA=function(Q,R){return{enumerable:!(1&Q),configurable:!(2&Q),writable:!(4&Q),value:R}},Jn=Oi,Qr=Function.prototype,ds=Qr.call,zr=Jn&&Qr.bind.bind(ds,ds),Pi=Jn?zr:function(Q){return function(){return ds.apply(Q,arguments)}},Rs=Pi,or=Rs({}.toString),en=Rs("".slice),wn=function(Q){return en(or(Q),8,-1)},Ht=vt,yg=wn,On=Object,Gn=Pi("".split),Js=Ht(function(){return!On("z").propertyIsEnumerable(0)})?function(Q){return yg(Q)==="String"?Gn(Q,""):On(Q)}:On,pr=function(Q){return Q==null},Pn=pr,mr=TypeError,mo=function(Q){if(Pn(Q))throw new mr("Can't call method on "+Q);return Q},gn=Js,Sl=mo,cn=function(Q){return gn(Sl(Q))},fr=typeof document=="object"&&document.all,Ls=fr===void 0&&fr!==void 0?function(Q){return typeof Q=="function"||Q===fr}:function(Q){return typeof Q=="function"},Jc=Ls,ms=function(Q){return typeof Q=="object"?Q!==null:Jc(Q)},as=ke,Mu=Ls,Wa=function(Q,R){return arguments.length<2?(F=as[Q],Mu(F)?F:void 0):as[Q]&&as[Q][R];var F},Cs=Pi({}.isPrototypeOf),sg=ke.navigator,JI=sg&&sg.userAgent,$o=JI?String(JI):"",Xi=ke,pc=$o,ng=Xi.process,Dg=Xi.Deno,ua=ng&&ng.versions||Dg&&Dg.version,bo=ua&&ua.v8;bo&&(Do=(an=bo.split("."))[0]>0&&an[0]<4?1:+(an[0]+an[1])),!Do&&pc&&(!(an=pc.match(/Edge\/(\d+)/))||an[1]>=74)&&(an=pc.match(/Chrome\/(\d+)/))&&(Do=+an[1]);var Zr=Do,_o=Zr,Hc=vt,Hn=ke.String,Hs=!!Object.getOwnPropertySymbols&&!Hc(function(){var Q=Symbol("symbol detection");return!Hn(Q)||!(Object(Q)instanceof Symbol)||!Symbol.sham&&_o&&_o<41}),Sg=Hs&&!Symbol.sham&&typeof Symbol.iterator=="symbol",mc=Wa,fn=Ls,Ga=Cs,In=Object,fs=Sg?function(Q){return typeof Q=="symbol"}:function(Q){var R=mc("Symbol");return fn(R)&&Ga(R.prototype,In(Q))},Ea=String,yn=function(Q){try{return Ea(Q)}catch{return"Object"}},ba=Ls,Sa=yn,$=TypeError,K=function(Q){if(ba(Q))return Q;throw new $(Sa(Q)+" is not a function")},vA=K,qA=pr,ee=function(Q,R){var F=Q[R];return qA(F)?void 0:vA(F)},fe=oo,xe=Ls,Oe=ms,rt=TypeError,dt={},Mt={get exports(){return dt},set exports(Q){dt=Q}},xt=ke,Ii=Object.defineProperty,ct=function(Q,R){try{Ii(xt,Q,{value:R,configurable:!0,writable:!0})}catch{xt[Q]=R}return R},Pt=ke,Ji=ct,Ki="__core-js_shared__",qs=Mt.exports=Pt[Ki]||Ji(Ki,{});(qs.versions||(qs.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 Mi=dt,zo=function(Q,R){return Mi[Q]||(Mi[Q]=R||{})},Mg=mo,sr=Object,yr=function(Q){return sr(Mg(Q))},xn=yr,Ml=Pi({}.hasOwnProperty),Ks=Object.hasOwn||function(Q,R){return Ml(xn(Q),R)},aI=Pi,Wg=0,fc=Math.random(),vu=aI(1.1.toString),Ma=function(Q){return"Symbol("+(Q===void 0?"":Q)+")_"+vu(++Wg+fc,36)},vl=zo,De=Ks,ye=Ma,vg=Hs,rg=Sg,Rg=ke.Symbol,Dn=vl("wks"),Dr=rg?Rg.for||Rg:Rg&&Rg.withoutSetter||ye,ui=function(Q){return De(Dn,Q)||(Dn[Q]=vg&&De(Rg,Q)?Rg[Q]:Dr("Symbol."+Q)),Dn[Q]},so=oo,qc=ms,zg=fs,wg=ee,Yr=function(Q,R){var F,eA;if(R==="string"&&xe(F=Q.toString)&&!Oe(eA=fe(F,Q))||xe(F=Q.valueOf)&&!Oe(eA=fe(F,Q))||R!=="string"&&xe(F=Q.toString)&&!Oe(eA=fe(F,Q)))return eA;throw new rt("Can't convert object to primitive value")},yc=TypeError,Kc=ui("toPrimitive"),ag=function(Q,R){if(!qc(Q)||zg(Q))return Q;var F,eA=wg(Q,Kc);if(eA){if(R===void 0&&(R="default"),F=so(eA,Q,R),!qc(F)||zg(F))return F;throw new yc("Can't convert object to primitive value")}return R===void 0&&(R="number"),Yr(Q,R)},Ru=ag,SE=fs,_g=function(Q){var R=Ru(Q,"string");return SE(R)?R:R+""},ka=ms,Dc=ke.document,ME=ka(Dc)&&ka(Dc.createElement),La=function(Q){return ME?Dc.createElement(Q):{}},sa=La,Tg=!_t&&!vt(function(){return Object.defineProperty(sa("div"),"a",{get:function(){return 7}}).a!==7}),gI=_t,hs=oo,Lo=Go,da=pA,nr=cn,Yt=_g,qt=Ks,Ng=Tg,cI=Object.getOwnPropertyDescriptor;Ze.f=gI?cI:function(Q,R){if(Q=nr(Q),R=Yt(R),Ng)try{return cI(Q,R)}catch{}if(qt(Q,R))return da(!hs(Lo.f,Q,R),Q[R])};var rr={},HI=_t&&vt(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),za=ms,na=String,un=TypeError,Sn=function(Q){if(za(Q))return Q;throw new un(na(Q)+" is not an object")},wu=_t,Gg=Tg,Ua=HI,jc=Sn,qI=_g,vE=TypeError,lI=Object.defineProperty,_u=Object.getOwnPropertyDescriptor,Rl="enumerable",Sc="configurable",Tu="writable";rr.f=wu?Ua?function(Q,R,F){if(jc(Q),R=qI(R),jc(F),typeof Q=="function"&&R==="prototype"&&"value"in F&&Tu in F&&!F[Tu]){var eA=_u(Q,R);eA&&eA[Tu]&&(Q[R]=F.value,F={configurable:Sc in F?F[Sc]:eA[Sc],enumerable:Rl in F?F[Rl]:eA[Rl],writable:!1})}return lI(Q,R,F)}:lI:function(Q,R,F){if(jc(Q),R=qI(R),jc(F),Gg)try{return lI(Q,R,F)}catch{}if("get"in F||"set"in F)throw new vE("Accessors not supported");return"value"in F&&(Q[R]=F.value),Q};var Nu=rr,wl=pA,rs=_t?function(Q,R,F){return Nu.f(Q,R,wl(1,F))}:function(Q,R,F){return Q[R]=F,Q},gs={},ud={get exports(){return gs},set exports(Q){gs=Q}},II=_t,uI=Ks,RE=Function.prototype,Ed=II&&Object.getOwnPropertyDescriptor,_l=uI(RE,"name"),Sr={EXISTS:_l,PROPER:_l&&function(){}.name==="something",CONFIGURABLE:_l&&(!II||II&&Ed(RE,"name").configurable)},Mc=Ls,Wc=dt,tn=Pi(Function.toString);Mc(Wc.inspectSource)||(Wc.inspectSource=function(Q){return tn(Q)});var ws,Ca,Xr,zc=Wc.inspectSource,dd=Ls,Zg=ke.WeakMap,gg=dd(Zg)&&/native code/.test(String(Zg)),wE=Ma,Xg=zo("keys"),qn=function(Q){return Xg[Q]||(Xg[Q]=wE(Q))},Ar={},Fa=gg,Cd=ke,lC=ms,Gu=rs,KI=Ks,Zc=dt,Xc=qn,jI=Ar,EI="Object already initialized",$c=Cd.TypeError,Al=Cd.WeakMap;if(Fa||Zc.state){var va=Zc.state||(Zc.state=new Al);va.get=va.get,va.has=va.has,va.set=va.set,ws=function(Q,R){if(va.has(Q))throw new $c(EI);return R.facade=Q,va.set(Q,R),R},Ca=function(Q){return va.get(Q)||{}},Xr=function(Q){return va.has(Q)}}else{var bg=Xc("state");jI[bg]=!0,ws=function(Q,R){if(KI(Q,bg))throw new $c(EI);return R.facade=Q,Gu(Q,bg,R),R},Ca=function(Q){return KI(Q,bg)?Q[bg]:{}},Xr=function(Q){return KI(Q,bg)}}var ys={set:ws,get:Ca,has:Xr,enforce:function(Q){return Xr(Q)?Ca(Q):ws(Q,{})},getterFor:function(Q){return function(R){var F;if(!lC(R)||(F=Ca(R)).type!==Q)throw new $c("Incompatible receiver, "+Q+" required");return F}}},Kn=Pi,vc=vt,WI=Ls,zI=Ks,_E=_t,rh=Sr.CONFIGURABLE,IC=zc,ah=ys.enforce,el=ys.get,kg=String,no=Object.defineProperty,uC=Kn("".slice),TE=Kn("".replace),NE=Kn([].join),hd=_E&&!vc(function(){return no(function(){},"length",{value:8}).length!==8}),GE=String(String).split("String"),tl=ud.exports=function(Q,R,F){uC(kg(R),0,7)==="Symbol("&&(R="["+TE(kg(R),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),F&&F.getter&&(R="get "+R),F&&F.setter&&(R="set "+R),(!zI(Q,"name")||rh&&Q.name!==R)&&(_E?no(Q,"name",{value:R,configurable:!0}):Q.name=R),hd&&F&&zI(F,"arity")&&Q.length!==F.arity&&no(Q,"length",{value:F.arity});try{F&&zI(F,"constructor")&&F.constructor?_E&&no(Q,"prototype",{writable:!1}):Q.prototype&&(Q.prototype=void 0)}catch{}var eA=ah(Q);return zI(eA,"source")||(eA.source=NE(GE,typeof R=="string"?R:"")),Q};Function.prototype.toString=tl(function(){return WI(this)&&el(this).source||IC(this)},"toString");var dI=Ls,bu=rr,ku=gs,EC=ct,Rr=function(Q,R,F,eA){eA||(eA={});var sA=eA.enumerable,_A=eA.name!==void 0?eA.name:R;if(dI(F)&&ku(F,_A,eA),eA.global)sA?Q[R]=F:EC(R,F);else{try{eA.unsafe?Q[R]&&(sA=!0):delete Q[R]}catch{}sA?Q[R]=F:bu.f(Q,R,{value:F,enumerable:!1,configurable:!eA.nonConfigurable,writable:!eA.nonWritable})}return Q},cg={},Rc=Math.ceil,Lu=Math.floor,Tl=Math.trunc||function(Q){var R=+Q;return(R>0?Lu:Rc)(R)},Bd=Tl,$r=function(Q){var R=+Q;return R!=R||R===0?0:Bd(R)},CI=$r,_n=Math.max,dC=Math.min,il=function(Q,R){var F=CI(Q);return F<0?_n(F+R,0):dC(F,R)},Qd=$r,hI=Math.min,Oa=function(Q){var R=Qd(Q);return R>0?hI(R,9007199254740991):0},CC=Oa,Pa=function(Q){return CC(Q.length)},ur=cn,pd=il,Uu=Pa,Er=function(Q){return function(R,F,eA){var sA=ur(R),_A=Uu(sA);if(_A===0)return!Q&&-1;var ZA,QA=pd(eA,_A);if(Q&&F!=F){for(;_A>QA;)if((ZA=sA[QA++])!=ZA)return!0}else for(;_A>QA;QA++)if((Q||QA in sA)&&sA[QA]===F)return Q||QA||0;return!Q&&-1}},wc={includes:Er(!0),indexOf:Er(!1)},ol=Ks,Lg=cn,Oo=wc.indexOf,$g=Ar,Za=Pi([].push),Nl=function(Q,R){var F,eA=Lg(Q),sA=0,_A=[];for(F in eA)!ol($g,F)&&ol(eA,F)&&Za(_A,F);for(;R.length>sA;)ol(eA,F=R[sA++])&&(~Oo(_A,F)||Za(_A,F));return _A},Aa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],gh=Nl,js=Aa.concat("length","prototype");cg.f=Object.getOwnPropertyNames||function(Q){return gh(Q,js)};var ZI={};ZI.f=Object.getOwnPropertySymbols;var Us=Wa,_c=cg,Ac=ZI,dr=Sn,Vr=Pi([].concat),Xa=Us("Reflect","ownKeys")||function(Q){var R=_c.f(dr(Q)),F=Ac.f;return F?Vr(R,F(Q)):R},bE=Ks,hC=Xa,ch=Ze,ro=rr,Tc=function(Q,R,F){for(var eA=hC(R),sA=ro.f,_A=ch.f,ZA=0;ZA<eA.length;ZA++){var QA=eA[ZA];bE(Q,QA)||F&&bE(F,QA)||sA(Q,QA,_A(R,QA))}},Gl=vt,BC=Ls,QC=/#|\.prototype\./,bl=function(Q,R){var F=BI[XI(Q)];return F===kE||F!==QI&&(BC(R)?Gl(R):!!R)},XI=bl.normalize=function(Q){return String(Q).replace(QC,".").toLowerCase()},BI=bl.data={},QI=bl.NATIVE="N",kE=bl.POLYFILL="P",kl=bl,Ll=ke,Ug=Ze.f,ec=rs,md=Rr,LE=ct,Nc=Tc,$I=kl,lo=function(Q,R){var F,eA,sA,_A,ZA,QA=Q.target,PA=Q.global,jA=Q.stat;if(F=PA?Ll:jA?Ll[QA]||LE(QA,{}):Ll[QA]&&Ll[QA].prototype)for(eA in R){if(_A=R[eA],sA=Q.dontCallGetSet?(ZA=Ug(F,eA))&&ZA.value:F[eA],!$I(PA?eA:QA+(jA?".":"#")+eA,Q.forced)&&sA!==void 0){if(typeof _A==typeof sA)continue;Nc(_A,sA)}(Q.sham||sA&&sA.sham)&&ec(_A,"sham",!0),md(F,eA,_A,Q)}},UE={};UE[ui("toStringTag")]="z";var $a=String(UE)==="[object z]",Au=$a,Fu=Ls,Gc=wn,pI=ui("toStringTag"),sl=Object,nl=Gc(function(){return arguments}())==="Arguments",xa=Au?Gc:function(Q){var R,F,eA;return Q===void 0?"Undefined":Q===null?"Null":typeof(F=function(sA,_A){try{return sA[_A]}catch{}}(R=sl(Q),pI))=="string"?F:nl?Gc(R):(eA=Gc(R))==="Object"&&Fu(R.callee)?"Arguments":eA},FE=xa,ra=String,Mn=function(Q){if(FE(Q)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return ra(Q)},kr={},rl=Nl,Ul=Aa,bc=Object.keys||function(Q){return rl(Q,Ul)},OE=_t,kc=HI,Ou=rr,pC=Sn,eu=cn,lh=bc;kr.f=OE&&!kc?Object.defineProperties:function(Q,R){pC(Q);for(var F,eA=eu(R),sA=lh(R),_A=sA.length,ZA=0;_A>ZA;)Ou.f(Q,F=sA[ZA++],eA[F]);return Q};var Pu,mI=Wa("document","documentElement"),al=Sn,mC=kr,aa=Aa,tc=Ar,lg=mI,fI=La,PE="prototype",xu="script",Yu=qn("IE_PROTO"),yI=function(){},gl=function(Q){return"<"+xu+">"+Q+"</"+xu+">"},Lr=function(Q){Q.write(gl("")),Q.close();var R=Q.parentWindow.Object;return Q=null,R},Ur=function(){try{Pu=new ActiveXObject("htmlfile")}catch{}var Q,R,F;Ur=typeof document<"u"?document.domain&&Pu?Lr(Pu):(R=fI("iframe"),F="java"+xu+":",R.style.display="none",lg.appendChild(R),R.src=String(F),(Q=R.contentWindow.document).open(),Q.write(gl("document.F=Object")),Q.close(),Q.F):Lr(Pu);for(var eA=aa.length;eA--;)delete Ur[PE][aa[eA]];return Ur()};tc[Yu]=!0;var Ig=Object.create||function(Q,R){var F;return Q!==null?(yI[PE]=al(Q),F=new yI,yI[PE]=null,F[Yu]=Q):F=Ur(),R===void 0?F:mC.f(F,R)},ar={},wr=Pi([].slice),ic=wn,Fg=cn,Ya=cg.f,Fl=wr,ha=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];ar.f=function(Q){return ha&&ic(Q)==="Window"?function(R){try{return Ya(R)}catch{return Fl(ha)}}(Q):Ya(Fg(Q))};var DI=gs,tu=rr,Ba=function(Q,R,F){return F.get&&DI(F.get,R,{getter:!0}),F.set&&DI(F.set,R,{setter:!0}),tu.f(Q,R,F)},cl={},xE=ui;cl.f=xE;var iu=ke,YE=iu,Jr=Ks,ou=cl,Ot=rr.f,Vu=oo,Ju=Wa,fC=ui,q=Rr,L=rr.f,oA=Ks,G=ui("toStringTag"),x=function(Q,R,F){Q&&!F&&(Q=Q.prototype),Q&&!oA(Q,G)&&L(Q,G,{configurable:!0,value:R})},tA=wn,uA=Pi,wA=function(Q){if(tA(Q)==="Function")return uA(Q)},$A=K,me=Oi,p=wA(wA.bind),B=function(Q,R){return $A(Q),R===void 0?Q:me?p(Q,R):function(){return Q.apply(R,arguments)}},v=wn,N=Array.isArray||function(Q){return v(Q)==="Array"},O=Pi,z=vt,X=Ls,rA=xa,DA=zc,GA=function(){},VA=Wa("Reflect","construct"),te=/^\s*(?:class|function)\b/,Ce=O(te.exec),Ke=!te.test(GA),ot=function(Q){if(!X(Q))return!1;try{return VA(GA,[],Q),!0}catch{return!1}},at=function(Q){if(!X(Q))return!1;switch(rA(Q)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Ke||!!Ce(te,DA(Q))}catch{return!0}};at.sham=!0;var kt=!VA||z(function(){var Q;return ot(ot.call)||!ot(Object)||!ot(function(){Q=!0})||Q})?at:ot,Vt=N,Ui=kt,ao=ms,Zi=ui("species"),Ei=Array,Po=function(Q){var R;return Vt(Q)&&(R=Q.constructor,(Ui(R)&&(R===Ei||Vt(R.prototype))||ao(R)&&(R=R[Zi])===null)&&(R=void 0)),R===void 0?Ei:R},As=function(Q,R){return new(Po(Q))(R===0?0:R)},pi=_t,ji=rr,Ws=pA,Te=function(Q,R,F){pi?ji.f(Q,R,Ws(0,F)):Q[R]=F},Rt=B,FA=Js,zt=yr,En=Pa,Xt=As,us=Te,vi=function(Q){var R=Q===1,F=Q===2,eA=Q===3,sA=Q===4,_A=Q===6,ZA=Q===7,QA=Q===5||_A;return function(PA,jA,ie){for(var Le,Ne,Be=zt(PA),lt=FA(Be),ai=En(lt),et=Rt(jA,ie),qe=0,dA=0,Qt=R?Xt(PA,ai):F||ZA?Xt(PA,0):void 0;ai>qe;qe++)if((QA||qe in lt)&&(Ne=et(Le=lt[qe],qe,Be),Q))if(R)us(Qt,qe,Ne);else if(Ne)switch(Q){case 3:return!0;case 5:return Le;case 6:return qe;case 2:us(Qt,dA++,Le)}else switch(Q){case 4:return!1;case 7:us(Qt,dA++,Le)}return _A?-1:eA||sA?sA:Qt}},ho={forEach:vi(0),map:vi(1),filter:vi(2),some:vi(3),every:vi(4),find:vi(5),findIndex:vi(6)},Ct=lo,Bt=ke,ug=oo,ks=Pi,Wi=_t,Hr=Hs,oc=vt,is=Ks,ga=Cs,Qa=Sn,ea=cn,H=_g,BA=Mn,yA=pA,NA=Ig,zA=bc,we=cg,Ie=ar,Ge=ZI,ce=Ze,Fe=rr,St=kr,jt=Go,ci=Rr,ft=Ba,Bi=zo,Ao=Ar,Is=Ma,Uo=ui,ii=cl,Fr=function(Q){var R=YE.Symbol||(YE.Symbol={});Jr(R,Q)||Ot(R,Q,{value:ou.f(Q)})},Zo=function(){var Q=Ju("Symbol"),R=Q&&Q.prototype,F=R&&R.valueOf,eA=fC("toPrimitive");R&&!R[eA]&&q(R,eA,function(sA){return Vu(F,this)},{arity:1})},jn=x,Wn=ys,ta=ho.forEach,qr=qn("hidden"),sc="Symbol",Hu="prototype",mm=Wn.set,Ri=Wn.getterFor(sc),oi=Object[Hu],yo=Bt.Symbol,on=yo&&yo[Hu],os=Bt.RangeError,Eg=Bt.TypeError,Ol=Bt.QObject,fd=ce.f,Lc=Fe.f,Mr=Ie.f,SI=jt.f,su=ks([].push),Og=Bi("symbols"),nu=Bi("op-symbols"),MI=Bi("wks"),Uc=!Ol||!Ol[Hu]||!Ol[Hu].findChild,qu=function(Q,R,F){var eA=fd(oi,R);eA&&delete oi[R],Lc(Q,R,F),eA&&Q!==oi&&Lc(oi,R,eA)},fm=Wi&&oc(function(){return NA(Lc({},"a",{get:function(){return Lc(this,"a",{value:7}).a}})).a!==7})?qu:Lc,ym=function(Q,R){var F=Og[Q]=NA(on);return mm(F,{type:sc,tag:Q,description:R}),Wi||(F.description=R),F},Dm=function(Q,R,F){Q===oi&&Dm(nu,R,F),Qa(Q);var eA=H(R);return Qa(F),is(Og,eA)?(F.enumerable?(is(Q,qr)&&Q[qr][eA]&&(Q[qr][eA]=!1),F=NA(F,{enumerable:yA(0,!1)})):(is(Q,qr)||Lc(Q,qr,yA(1,NA(null))),Q[qr][eA]=!0),fm(Q,eA,F)):Lc(Q,eA,F)},Sm=function(Q,R){Qa(Q);var F=ea(R),eA=zA(F).concat(lD(F));return ta(eA,function(sA){Wi&&!ug(gD,F,sA)||Dm(Q,sA,F[sA])}),Q},gD=function(Q){var R=H(Q),F=ug(SI,this,R);return!(this===oi&&is(Og,R)&&!is(nu,R))&&(!(F||!is(this,R)||!is(Og,R)||is(this,qr)&&this[qr][R])||F)},cD=function(Q,R){var F=ea(Q),eA=H(R);if(F!==oi||!is(Og,eA)||is(nu,eA)){var sA=fd(F,eA);return!sA||!is(Og,eA)||is(F,qr)&&F[qr][eA]||(sA.enumerable=!0),sA}},kv=function(Q){var R=Mr(ea(Q)),F=[];return ta(R,function(eA){is(Og,eA)||is(Ao,eA)||su(F,eA)}),F},lD=function(Q){var R=Q===oi,F=Mr(R?nu:ea(Q)),eA=[];return ta(F,function(sA){!is(Og,sA)||R&&!is(oi,sA)||su(eA,Og[sA])}),eA};Hr||(yo=function(){if(ga(on,this))throw new Eg("Symbol is not a constructor");var Q=arguments.length&&arguments[0]!==void 0?BA(arguments[0]):void 0,R=Is(Q),F=function(eA){var sA=this===void 0?Bt:this;sA===oi&&ug(F,nu,eA),is(sA,qr)&&is(sA[qr],R)&&(sA[qr][R]=!1);var _A=yA(1,eA);try{fm(sA,R,_A)}catch(ZA){if(!(ZA instanceof os))throw ZA;qu(sA,R,_A)}};return Wi&&Uc&&fm(oi,R,{configurable:!0,set:F}),ym(R,Q)},ci(on=yo[Hu],"toString",function(){return Ri(this).tag}),ci(yo,"withoutSetter",function(Q){return ym(Is(Q),Q)}),jt.f=gD,Fe.f=Dm,St.f=Sm,ce.f=cD,we.f=Ie.f=kv,Ge.f=lD,ii.f=function(Q){return ym(Uo(Q),Q)},Wi&&(ft(on,"description",{configurable:!0,get:function(){return Ri(this).description}}),ci(oi,"propertyIsEnumerable",gD,{unsafe:!0}))),Ct({global:!0,constructor:!0,wrap:!0,forced:!Hr,sham:!Hr},{Symbol:yo}),ta(zA(MI),function(Q){Fr(Q)}),Ct({target:sc,stat:!0,forced:!Hr},{useSetter:function(){Uc=!0},useSimple:function(){Uc=!1}}),Ct({target:"Object",stat:!0,forced:!Hr,sham:!Wi},{create:function(Q,R){return R===void 0?NA(Q):Sm(NA(Q),R)},defineProperty:Dm,defineProperties:Sm,getOwnPropertyDescriptor:cD}),Ct({target:"Object",stat:!0,forced:!Hr},{getOwnPropertyNames:kv}),Zo(),jn(yo,sc),Ao[qr]=!0;var ID=Hs&&!!Symbol.for&&!!Symbol.keyFor,Lv=lo,dT=Wa,yd=Ks,CT=Mn,uD=zo,hT=ID,ED=uD("string-to-symbol-registry"),BT=uD("symbol-to-string-registry");Lv({target:"Symbol",stat:!0,forced:!hT},{for:function(Q){var R=CT(Q);if(yd(ED,R))return ED[R];var F=dT("Symbol")(R);return ED[R]=F,BT[F]=R,F}});var Uv=lo,QT=Ks,Fv=fs,pT=yn,mT=ID,dD=zo("symbol-to-string-registry");Uv({target:"Symbol",stat:!0,forced:!mT},{keyFor:function(Q){if(!Fv(Q))throw new TypeError(pT(Q)+" is not a symbol");if(QT(dD,Q))return dD[Q]}});var CD=Oi,TQ=Function.prototype,Mm=TQ.apply,vm=TQ.call,Dd=typeof Reflect=="object"&&Reflect.apply||(CD?vm.bind(Mm):function(){return vm.apply(Mm,arguments)}),fT=ms,yT=ys.get,Rm=Pi,hD=Ks,Ih=SyntaxError,DT=parseInt,ST=String.fromCharCode,wm=Rm("".charAt),Ov=Rm("".slice),BD=Rm(/./.exec),_m={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":`
|
||
`,"\\r":"\r","\\t":" "},Pv=/^[\da-f]{4}$/i,MT=/^[\u0000-\u001F]$/,vT=!vt(function(){var Q="9007199254740993",R=JSON.rawJSON(Q);return!JSON.isRawJSON(R)||JSON.stringify(R)!==Q}),xv=lo,Sd=Wa,Tm=Dd,Md=oo,VE=Pi,Nm=vt,yC=N,uh=Ls,Ku=function(Q){if(!fT(Q))return!1;var R=yT(Q);return!!R&&R.type==="RawJSON"},Yi=fs,Gm=wn,dn=Mn,Yv=wr,ju=function(Q,R){for(var F=!0,eA="";R<Q.length;){var sA=wm(Q,R);if(sA==="\\"){var _A=Ov(Q,R,R+2);if(hD(_m,_A))eA+=_m[_A],R+=2;else{if(_A!=="\\u")throw new Ih('Unknown escape sequence: "'+_A+'"');var ZA=Ov(Q,R+=2,R+4);if(!BD(Pv,ZA))throw new Ih("Bad Unicode escape at: "+R);eA+=ST(DT(ZA,16)),R+=4}}else{if(sA==='"'){F=!1,R++;break}if(BD(MT,sA))throw new Ih("Bad control character in string literal at: "+R);eA+=sA,R++}}if(F)throw new Ih("Unterminated string at: "+R);return{value:eA,end:R}},zs=Ma,Eh=Hs,Pl=vT,nc=String,JE=Sd("JSON","stringify"),NQ=VE(/./.exec),cB=VE("".charAt),RT=VE("".charCodeAt),wT=VE("".replace),GQ=VE("".slice),bQ=VE([].push),Vv=VE(1.1.toString),Jv=/[\uD800-\uDFFF]/g,QD=/^[\uD800-\uDBFF]$/,DC=/^[\uDC00-\uDFFF]$/,lB=zs(),pD=lB.length,kQ=!Eh||Nm(function(){var Q=Sd("Symbol")("stringify detection");return JE([Q])!=="[null]"||JE({a:Q})!=="{}"||JE(Object(Q))!=="{}"}),vd=Nm(function(){return JE("\uDF06\uD834")!=='"\\udf06\\ud834"'||JE("\uDEAD")!=='"\\udead"'}),Rd=kQ?function(Q,R){var F=Yv(arguments),eA=LQ(R);if(uh(eA)||Q!==void 0&&!Yi(Q))return F[1]=function(sA,_A){if(uh(eA)&&(_A=Md(eA,this,nc(sA),_A)),!Yi(_A))return _A},Tm(JE,null,F)}:JE,Hv=function(Q,R,F){var eA=cB(F,R-1),sA=cB(F,R+1);return NQ(QD,Q)&&!NQ(DC,sA)||NQ(DC,Q)&&!NQ(QD,eA)?"\\u"+Vv(RT(Q,0),16):Q},LQ=function(Q){if(uh(Q))return Q;if(yC(Q)){for(var R=Q.length,F=[],eA=0;eA<R;eA++){var sA=Q[eA];typeof sA=="string"?bQ(F,sA):typeof sA!="number"&&Gm(sA)!=="Number"&&Gm(sA)!=="String"||bQ(F,dn(sA))}var _A=F.length,ZA=!0;return function(QA,PA){if(ZA)return ZA=!1,PA;if(yC(this))return PA;for(var jA=0;jA<_A;jA++)if(F[jA]===QA)return PA}}};JE&&xv({target:"JSON",stat:!0,arity:3,forced:kQ||vd||!Pl},{stringify:function(Q,R,F){var eA=LQ(R),sA=[],_A=Rd(Q,function(Ne,Be){var lt=uh(eA)?Md(eA,this,nc(Ne),Be):Be;return!Pl&&Ku(lt)?lB+(bQ(sA,lt.rawJSON)-1):lt},F);if(typeof _A!="string"||(vd&&(_A=wT(_A,Jv,Hv)),Pl))return _A;for(var ZA="",QA=_A.length,PA=0;PA<QA;PA++){var jA=cB(_A,PA);if(jA==='"'){var ie=ju(_A,++PA).end-1,Le=GQ(_A,PA,ie);ZA+=GQ(Le,0,pD)===lB?sA[GQ(Le,pD)]:'"'+Le+'"',PA=ie}else ZA+=jA}return ZA}});var mD=ZI,bm=yr;lo({target:"Object",stat:!0,forced:!Hs||vt(function(){mD.f(1)})},{getOwnPropertySymbols:function(Q){var R=mD.f;return R?R(bm(Q)):[]}});var qv=lo,_T=_t,km=Pi,IB=Ks,Lm=Ls,TT=Cs,fD=Mn,yD=Ba,UQ=Tc,HE=ke.Symbol,Wu=HE&&HE.prototype;if(_T&&Lm(HE)&&(!("description"in Wu)||HE().description!==void 0)){var DD={},dh=function(){var Q=arguments.length<1||arguments[0]===void 0?void 0:fD(arguments[0]),R=TT(Wu,this)?new HE(Q):Q===void 0?HE():HE(Q);return Q===""&&(DD[R]=!0),R};UQ(dh,HE),dh.prototype=Wu,Wu.constructor=dh;var Um=String(HE("description detection"))==="Symbol(description detection)",Kv=km(Wu.valueOf),FQ=km(Wu.toString),jv=/^Symbol\((.*)\)[^)]+$/,SD=km("".replace),vn=km("".slice);yD(Wu,"description",{configurable:!0,get:function(){var Q=Kv(this);if(IB(DD,Q))return"";var R=FQ(Q),F=Um?vn(R,7,-1):SD(R,jv,"$1");return F===""?void 0:F}}),qv({global:!0,constructor:!0,forced:!0},{Symbol:dh})}var OQ=TypeError,wd=function(Q){if(Q>9007199254740991)throw OQ("Maximum allowed index exceeded");return Q},MD=_t,NT=N,GT=TypeError,bT=Object.getOwnPropertyDescriptor,uB=MD&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(Q){return Q instanceof TypeError}}()?function(Q,R){if(NT(Q)&&!bT(Q,"length").writable)throw new GT("Cannot set read only .length");return Q.length=R}:function(Q,R){return Q.length=R},Wv=vt,kT=Zr,qE=ui("species"),Ch=function(Q){return kT>=51||!Wv(function(){var R=[];return(R.constructor={})[qE]=function(){return{foo:1}},R[Q](Boolean).foo!==1})},vD=lo,RD=vt,LT=N,UT=ms,PQ=yr,zv=Pa,hh=wd,zu=Te,xQ=uB,Fm=As,wD=Ch,FT=Zr,Bh=ui("isConcatSpreadable"),EB=FT>=51||!RD(function(){var Q=[];return Q[Bh]=!1,Q.concat()[0]!==Q}),Qh=function(Q){if(!UT(Q))return!1;var R=Q[Bh];return R!==void 0?!!R:LT(Q)};vD({target:"Array",proto:!0,arity:1,forced:!EB||!wD("concat")},{concat:function(Q){var R,F,eA,sA,_A,ZA=PQ(this),QA=Fm(ZA,0),PA=0;for(R=-1,eA=arguments.length;R<eA;R++)if(Qh(_A=R===-1?ZA:arguments[R]))for(sA=zv(_A),hh(PA+sA),F=0;F<sA;F++,PA++)F in _A&&zu(QA,PA,_A[F]);else hh(PA+1),zu(QA,PA++,_A);return xQ(QA,PA),QA}});var YQ=vt,dB=function(Q,R){var F=[][Q];return!!F&&YQ(function(){F.call(null,R||function(){return 1},1)})},Zv=ho.forEach,Pg=dB("forEach")?[].forEach:function(Q){return Zv(this,Q,arguments.length>1?arguments[1]:void 0)};lo({target:"Array",proto:!0,forced:[].forEach!==Pg},{forEach:Pg}),lo({target:"Array",stat:!0},{isArray:N});var Xv=ui,OT=Ig,$v=rr.f,Om=Xv("unscopables"),Pm=Array.prototype;Pm[Om]===void 0&&$v(Pm,Om,{configurable:!0,value:OT(null)});var _d,AR,eR,xm=function(Q){Pm[Om][Q]=!0},Ag={},Ym=!vt(function(){function Q(){}return Q.prototype.constructor=null,Object.getPrototypeOf(new Q)!==Q.prototype}),CB=Ks,hB=Ls,vI=yr,PT=Ym,tR=qn("IE_PROTO"),ph=Object,Vm=ph.prototype,SC=PT?ph.getPrototypeOf:function(Q){var R=vI(Q);if(CB(R,tR))return R[tR];var F=R.constructor;return hB(F)&&R instanceof F?F.prototype:R instanceof ph?Vm:null},VQ=vt,iR=Ls,oR=ms,sR=SC,Jm=Rr,_D=ui("iterator"),Hm=!1;[].keys&&("next"in(eR=[].keys())?(AR=sR(sR(eR)))!==Object.prototype&&(_d=AR):Hm=!0);var TD=!oR(_d)||VQ(function(){var Q={};return _d[_D].call(Q)!==Q});TD&&(_d={}),iR(_d[_D])||Jm(_d,_D,function(){return this});var ND={IteratorPrototype:_d,BUGGY_SAFARI_ITERATORS:Hm},mh=ND.IteratorPrototype,nR=Ig,GD=pA,bD=x,qm=Ag,fh=function(){return this},BB=Pi,yh=K,Dh=ms,QB=function(Q){return Dh(Q)||Q===null},pB=String,MC=TypeError,JQ=function(Q,R,F){try{return BB(yh(Object.getOwnPropertyDescriptor(Q,R)[F]))}catch{}},HQ=ms,xT=mo,rR=function(Q){if(QB(Q))return Q;throw new MC("Can't set "+pB(Q)+" as a prototype")},Sh=Object.setPrototypeOf||("__proto__"in{}?function(){var Q,R=!1,F={};try{(Q=JQ(Object.prototype,"__proto__","set"))(F,[]),R=F instanceof Array}catch{}return function(eA,sA){return xT(eA),rR(sA),HQ(eA)&&(R?Q(eA,sA):eA.__proto__=sA),eA}}():void 0),mB=lo,kD=oo,Km=Ls,qQ=function(Q,R,F,eA){var sA=R+" Iterator";return Q.prototype=nR(mh,{next:GD(1,F)}),bD(Q,sA,!1),qm[sA]=fh,Q},KQ=SC,jQ=Sh,aR=x,YT=rs,ll=Rr,gR=Ag,cR=Sr.PROPER,LD=Sr.CONFIGURABLE,lR=ND.IteratorPrototype,Mh=ND.BUGGY_SAFARI_ITERATORS,WQ=ui("iterator"),IR="keys",vh="values",zQ="entries",uR=function(){return this},fB=function(Q,R,F,eA,sA,_A,ZA){qQ(F,R,eA);var QA,PA,jA,ie=function(qe){if(qe===sA&&ai)return ai;if(!Mh&&qe&&qe in Be)return Be[qe];switch(qe){case IR:case vh:case zQ:return function(){return new F(this,qe)}}return function(){return new F(this)}},Le=R+" Iterator",Ne=!1,Be=Q.prototype,lt=Be[WQ]||Be["@@iterator"]||sA&&Be[sA],ai=!Mh&<||ie(sA),et=R==="Array"&&Be.entries||lt;if(et&&(QA=KQ(et.call(new Q)))!==Object.prototype&&QA.next&&(KQ(QA)!==lR&&(jQ?jQ(QA,lR):Km(QA[WQ])||ll(QA,WQ,uR)),aR(QA,Le,!0)),cR&&sA===vh&<&<.name!==vh&&(LD?YT(Be,"name",vh):(Ne=!0,ai=function(){return kD(lt,this)})),sA)if(PA={values:ie(vh),keys:_A?ai:ie(IR),entries:ie(zQ)},ZA)for(jA in PA)(Mh||Ne||!(jA in Be))&&ll(Be,jA,PA[jA]);else mB({target:R,proto:!0,forced:Mh||Ne},PA);return Be[WQ]!==ai&&ll(Be,WQ,ai,{name:sA}),gR[R]=ai,PA},yB=function(Q,R){return{value:Q,done:R}},UD=cn,vC=xm,ZQ=Ag,jm=ys,DB=rr.f,SB=fB,XQ=yB,$Q=_t,ru="Array Iterator",MB=jm.set,Ap=jm.getterFor(ru),ep=SB(Array,"Array",function(Q,R){MB(this,{type:ru,target:UD(Q),index:0,kind:R})},function(){var Q=Ap(this),R=Q.target,F=Q.index++;if(!R||F>=R.length)return Q.target=null,XQ(void 0,!0);switch(Q.kind){case"keys":return XQ(F,!1);case"values":return XQ(R[F],!1)}return XQ([F,R[F]],!1)},"values"),rc=ZQ.Arguments=ZQ.Array;if(vC("keys"),vC("values"),vC("entries"),$Q&&rc.name!=="values")try{DB(rc,"name",{value:"values"})}catch{}var FD=lo,Cr=Date,ER=Pi(Cr.prototype.getTime);FD({target:"Date",stat:!0},{now:function(){return ER(new Cr)}});var dR=$r,VT=Mn,Rh=mo,Kr=RangeError,Zu=Pi,KE=Oa,OD=Mn,PD=mo,CR=Zu(function(Q){var R=VT(Rh(this)),F="",eA=dR(Q);if(eA<0||eA===1/0)throw new Kr("Wrong number of repetitions");for(;eA>0;(eA>>>=1)&&(R+=R))1&eA&&(F+=R);return F}),Xu=Zu("".slice),hR=Math.ceil,tp=function(Q){return function(R,F,eA){var sA,_A,ZA=OD(PD(R)),QA=KE(F),PA=ZA.length,jA=eA===void 0?" ":OD(eA);return QA<=PA||jA===""?ZA:((_A=CR(jA,hR((sA=QA-PA)/jA.length))).length>sA&&(_A=Xu(_A,0,sA)),Q?ZA+_A:_A+ZA)}},au=Pi,jE=vt,Td={start:tp(!1)}.start,Nd=RangeError,Wm=isFinite,BR=Math.abs,Gd=Date.prototype,xD=Gd.toISOString,QR=au(Gd.getTime),ip=au(Gd.getUTCDate),pR=au(Gd.getUTCFullYear),mR=au(Gd.getUTCHours),YD=au(Gd.getUTCMilliseconds),zm=au(Gd.getUTCMinutes),Zm=au(Gd.getUTCMonth),VD=au(Gd.getUTCSeconds),JT=jE(function(){return xD.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!jE(function(){xD.call(new Date(NaN))})?function(){if(!Wm(QR(this)))throw new Nd("Invalid time value");var Q=this,R=pR(Q),F=YD(Q),eA=R<0?"-":R>9999?"+":"";return eA+Td(BR(R),eA?6:4,0)+"-"+Td(Zm(Q)+1,2,0)+"-"+Td(ip(Q),2,0)+"T"+Td(mR(Q),2,0)+":"+Td(zm(Q),2,0)+":"+Td(VD(Q),2,0)+"."+Td(F,3,0)+"Z"}:xD,RC=JT;lo({target:"Date",proto:!0,forced:Date.prototype.toISOString!==RC},{toISOString:RC});var JD=yr,op=ag;lo({target:"Date",proto:!0,arity:1,forced:vt(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1})},{toJSON:function(Q){var R=JD(this),F=op(R,"number");return typeof F!="number"||isFinite(F)?R.toISOString():null}});var sp=Pi,vB=Rr,RB=Date.prototype,fR="Invalid Date",yR="toString",np=sp(RB[yR]),HD=sp(RB.getTime);String(new Date(NaN))!==fR&&vB(RB,yR,function(){var Q=HD(this);return Q==Q?np(this):fR});var wh=Ls,_h=ms,wB=Sh,Th=function(Q,R,F){var eA,sA;return wB&&wh(eA=R.constructor)&&eA!==F&&_h(sA=eA.prototype)&&sA!==F.prototype&&wB(Q,sA),Q},Xm=Pi(1.1.valueOf),_B=`
|
||
\v\f\r \u2028\u2029\uFEFF`,qD=mo,HT=Mn,KD=_B,jD=Pi("".replace),DR=RegExp("^["+KD+"]+"),SR=RegExp("(^|[^"+KD+"])["+KD+"]+$"),MR=function(Q){return function(R){var F=HT(qD(R));return 1&Q&&(F=jD(F,DR,"")),2&Q&&(F=jD(F,SR,"$1")),F}},$m={trim:MR(3)},qT=lo,Af=_t,vR=ke,Nh=iu,Gh=Pi,WD=kl,RR=Ks,KT=Th,jT=Cs,zD=fs,RI=ag,xl=vt,ZD=cg.f,XD=Ze.f,WT=rr.f,bh=Xm,wR=$m.trim,ef="Number",bd=vR[ef];Nh[ef];var $u=bd.prototype,_R=vR.TypeError,TR=Gh("".slice),WE=Gh("".charCodeAt),$D=function(Q){var R,F,eA,sA,_A,ZA,QA,PA,jA=RI(Q,"number");if(zD(jA))throw new _R("Cannot convert a Symbol value to a number");if(typeof jA=="string"&&jA.length>2){if(jA=wR(jA),(R=WE(jA,0))===43||R===45){if((F=WE(jA,2))===88||F===120)return NaN}else if(R===48){switch(WE(jA,1)){case 66:case 98:eA=2,sA=49;break;case 79:case 111:eA=8,sA=55;break;default:return+jA}for(ZA=(_A=TR(jA,2)).length,QA=0;QA<ZA;QA++)if((PA=WE(_A,QA))<48||PA>sA)return NaN;return parseInt(_A,eA)}}return+jA},tf=WD(ef,!bd(" 0o1")||!bd("0b1")||bd("+0x1")),of=function(Q){var R,F=arguments.length<1?0:bd(function(eA){var sA=RI(eA,"number");return typeof sA=="bigint"?sA:$D(sA)}(Q));return jT($u,R=this)&&xl(function(){bh(R)})?KT(Object(F),this,of):F};of.prototype=$u,tf&&($u.constructor=of),qT({global:!0,constructor:!0,wrap:!0,forced:tf},{Number:of}),tf&&function(Q,R){for(var F,eA=Af?ZD(R):"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(","),sA=0;eA.length>sA;sA++)RR(R,F=eA[sA])&&!RR(Q,F)&&WT(Q,F,XD(R,F))}(Nh[ef],bd);var AS=yr,rp=SC,zT=Ym;lo({target:"Object",stat:!0,forced:vt(function(){rp(1)}),sham:!zT},{getPrototypeOf:function(Q){return rp(AS(Q))}});var sf=yr,NR=bc;lo({target:"Object",stat:!0,forced:vt(function(){NR(1)})},{keys:function(Q){return NR(sf(Q))}});var ZT=xa,XT=$a?{}.toString:function(){return"[object "+ZT(this)+"]"};$a||Rr(Object.prototype,"toString",XT,{unsafe:!0});var eS=ke,$T=vt,AN=Pi,tS=Mn,kd=$m.trim,wC=_B,Ld=eS.parseInt,iS=eS.Symbol,oS=iS&&iS.iterator,sS=/^[+-]?0x/i,s=AN(sS.exec),n=Ld(wC+"08")!==8||Ld(wC+"0x16")!==22||oS&&!$T(function(){Ld(Object(oS))})?function(Q,R){var F=kd(tS(Q));return Ld(F,R>>>0||(s(sS,F)?16:10))}:Ld;lo({global:!0,forced:parseInt!==n},{parseInt:n});var g,u,E,m,D=ke,M=$o,T=wn,P=function(Q){return M.slice(0,Q.length)===Q},W=P("Bun/")?"BUN":P("Cloudflare-Workers")?"CLOUDFLARE":P("Deno/")?"DENO":P("Node.js/")?"NODE":D.Bun&&typeof Bun.version=="string"?"BUN":D.Deno&&typeof Deno.version=="object"?"DENO":T(D.process)==="process"?"NODE":D.window&&D.document?"BROWSER":"REST",iA=W==="NODE",EA=Wa,RA=Ba,kA=_t,xA=ui("species"),LA=function(Q){var R=EA(Q);kA&&R&&!R[xA]&&RA(R,xA,{configurable:!0,get:function(){return this}})},SA=Cs,OA=TypeError,JA=function(Q,R){if(SA(R,Q))return Q;throw new OA("Incorrect invocation")},ae=kt,re=yn,_i=TypeError,Ti=function(Q){if(ae(Q))return Q;throw new _i(re(Q)+" is not a constructor")},Lt=Sn,Ni=Ti,cs=pr,Me=ui("species"),mt=TypeError,UA=function(Q,R){if(Q<R)throw new mt("Not enough arguments");return Q},si=/(?:ipad|iphone|ipod).*applewebkit/i.test($o),_s=ke,Gi=Dd,Or=B,xi=Ls,gr=Ks,Tt=vt,Nt=mI,AE=wr,ln=La,Bo=UA,Il=si,_C=iA,_r=_s.setImmediate,xg=_s.clearImmediate,wI=_s.process,ac=_s.Dispatch,nf=_s.Function,ap=_s.MessageChannel,Va=_s.String,Yl=0,_I={},eE="onreadystatechange";Tt(function(){g=_s.location});var Yg=function(Q){if(gr(_I,Q)){var R=_I[Q];delete _I[Q],R()}},dg=function(Q){return function(){Yg(Q)}},nS=function(Q){Yg(Q.data)},GR=function(Q){_s.postMessage(Va(Q),g.protocol+"//"+g.host)};_r&&xg||(_r=function(Q){Bo(arguments.length,1);var R=xi(Q)?Q:nf(Q),F=AE(arguments,1);return _I[++Yl]=function(){Gi(R,void 0,F)},u(Yl),Yl},xg=function(Q){delete _I[Q]},_C?u=function(Q){wI.nextTick(dg(Q))}:ac&&ac.now?u=function(Q){ac.now(dg(Q))}:ap&&!Il?(m=(E=new ap).port2,E.port1.onmessage=nS,u=Or(m.postMessage,m)):_s.addEventListener&&xi(_s.postMessage)&&!_s.importScripts&&g&&g.protocol!=="file:"&&!Tt(GR)?(u=GR,_s.addEventListener("message",nS,!1)):u=eE in ln("script")?function(Q){Nt.appendChild(ln("script"))[eE]=function(){Nt.removeChild(this),Yg(Q)}}:function(Q){setTimeout(dg(Q),0)});var bR={set:_r},kR=ke,eN=_t,_V=Object.getOwnPropertyDescriptor,ZU=function(){this.head=null,this.tail=null};ZU.prototype={add:function(Q){var R={item:Q,next:null},F=this.tail;F?F.next=R:this.head=R,this.tail=R},get:function(){var Q=this.head;if(Q)return(this.head=Q.next)===null&&(this.tail=null),Q.item}};var gp,tN,iN,oN,sN,XU=ZU,TV=/ipad|iphone|ipod/i.test($o)&&typeof Pebble<"u",$U=/web0s(?!.*chrome)/i.test($o),rf=ke,nN=function(Q){if(!eN)return kR[Q];var R=_V(kR,Q);return R&&R.value},af=B,rN=bR.set,NV=XU,GV=si,bV=TV,kV=$U,LR=iA,AF=rf.MutationObserver||rf.WebKitMutationObserver,aN=rf.document,eF=rf.process,rS=rf.Promise,gN=nN("queueMicrotask");if(!gN){var UR=new NV,FR=function(){var Q,R;for(LR&&(Q=eF.domain)&&Q.exit();R=UR.get();)try{R()}catch(F){throw UR.head&&gp(),F}Q&&Q.enter()};GV||LR||kV||!AF||!aN?!bV&&rS&&rS.resolve?((oN=rS.resolve(void 0)).constructor=rS,sN=af(oN.then,oN),gp=function(){sN(FR)}):LR?gp=function(){eF.nextTick(FR)}:(rN=af(rN,rf),gp=function(){rN(FR)}):(tN=!0,iN=aN.createTextNode(""),new AF(FR).observe(iN,{characterData:!0}),gp=function(){iN.data=tN=!tN}),gN=function(Q){UR.head||gp(),UR.add(Q)}}var LV=gN,cN=function(Q){try{return{error:!1,value:Q()}}catch(R){return{error:!0,value:R}}},OR=ke.Promise,tF=ke,gf=OR,UV=Ls,TB=kl,cf=zc,FV=ui,iF=W,lf=Zr;gf&&gf.prototype;var oF=FV("species"),lN=!1,IN=UV(tF.PromiseRejectionEvent),OV=TB("Promise",function(){var Q=cf(gf),R=Q!==String(gf);if(!R&&lf===66)return!0;if(!lf||lf<51||!/native code/.test(Q)){var F=new gf(function(sA){sA(1)}),eA=function(sA){sA(function(){},function(){})};if((F.constructor={})[oF]=eA,!(lN=F.then(function(){})instanceof eA))return!0}return!(R||iF!=="BROWSER"&&iF!=="DENO"||IN)}),tE={CONSTRUCTOR:OV,REJECTION_EVENT:IN,SUBCLASSING:lN},NB={},sF=K,nF=TypeError,PV=function(Q){var R,F;this.promise=new Q(function(eA,sA){if(R!==void 0||F!==void 0)throw new nF("Bad Promise constructor");R=eA,F=sA}),this.resolve=sF(R),this.reject=sF(F)};NB.f=function(Q){return new PV(Q)};var uN,GB,EN,dN,If=lo,cp=iA,bB=ke,xV=iu,uf=oo,rF=Rr,aF=Sh,YV=x,VV=LA,JV=K,lp=Ls,CN=ms,HV=JA,qV=function(Q,R){var F,eA=Lt(Q).constructor;return eA===void 0||cs(F=Lt(eA)[Me])?R:Ni(F)},gF=bR.set,aS=LV,hN=function(Q,R){try{arguments.length===1?console.error(Q):console.error(Q,R)}catch{}},cF=cN,BN=XU,gS=ys,PR=OR,lF=NB,xR="Promise",IF=tE.CONSTRUCTOR,uF=tE.REJECTION_EVENT,KV=tE.SUBCLASSING,YR=gS.getterFor(xR),jV=gS.set,Ef=PR&&PR.prototype,df=PR,VR=Ef,EF=bB.TypeError,QN=bB.document,pN=bB.process,mN=lF.f,WV=mN,dF=!!(QN&&QN.createEvent&&bB.dispatchEvent),fN="unhandledrejection",CF=function(Q){var R;return!(!CN(Q)||!lp(R=Q.then))&&R},yN=function(Q,R){var F,eA,sA,_A=R.value,ZA=R.state===1,QA=ZA?Q.ok:Q.fail,PA=Q.resolve,jA=Q.reject,ie=Q.domain;try{QA?(ZA||(R.rejection===2&&ZV(R),R.rejection=1),QA===!0?F=_A:(ie&&ie.enter(),F=QA(_A),ie&&(ie.exit(),sA=!0)),F===Q.promise?jA(new EF("Promise-chain cycle")):(eA=CF(F))?uf(eA,F,PA,jA):PA(F)):jA(_A)}catch(Le){ie&&!sA&&ie.exit(),jA(Le)}},DN=function(Q,R){Q.notified||(Q.notified=!0,aS(function(){for(var F,eA=Q.reactions;F=eA.get();)yN(F,Q);Q.notified=!1,R&&!Q.rejection&&hF(Q)}))},zV=function(Q,R,F){var eA,sA;dF?((eA=QN.createEvent("Event")).promise=R,eA.reason=F,eA.initEvent(Q,!1,!0),bB.dispatchEvent(eA)):eA={promise:R,reason:F},!uF&&(sA=bB["on"+Q])?sA(eA):Q===fN&&hN("Unhandled promise rejection",F)},hF=function(Q){uf(gF,bB,function(){var R,F=Q.facade,eA=Q.value;if(JR(Q)&&(R=cF(function(){cp?pN.emit("unhandledRejection",eA,F):zV(fN,F,eA)}),Q.rejection=cp||JR(Q)?2:1,R.error))throw R.value})},JR=function(Q){return Q.rejection!==1&&!Q.parent},ZV=function(Q){uf(gF,bB,function(){var R=Q.facade;cp?pN.emit("rejectionHandled",R):zV("rejectionhandled",R,Q.value)})},Cf=function(Q,R,F){return function(eA){Q(R,eA,F)}},hf=function(Q,R,F){Q.done||(Q.done=!0,F&&(Q=F),Q.value=R,Q.state=2,DN(Q,!0))},SN=function(Q,R,F){if(!Q.done){Q.done=!0,F&&(Q=F);try{if(Q.facade===R)throw new EF("Promise can't be resolved itself");var eA=CF(R);eA?aS(function(){var sA={done:!1};try{uf(eA,R,Cf(SN,sA,Q),Cf(hf,sA,Q))}catch(_A){hf(sA,_A,Q)}}):(Q.value=R,Q.state=1,DN(Q,!1))}catch(sA){hf({done:!1},sA,Q)}}};if(IF&&(VR=(df=function(Q){HV(this,VR),JV(Q),uf(uN,this);var R=YR(this);try{Q(Cf(SN,R),Cf(hf,R))}catch(F){hf(R,F)}}).prototype,(uN=function(Q){jV(this,{type:xR,done:!1,notified:!1,parent:!1,reactions:new BN,rejection:!1,state:0,value:null})}).prototype=rF(VR,"then",function(Q,R){var F=YR(this),eA=mN(qV(this,df));return F.parent=!0,eA.ok=!lp(Q)||Q,eA.fail=lp(R)&&R,eA.domain=cp?pN.domain:void 0,F.state===0?F.reactions.add(eA):aS(function(){yN(eA,F)}),eA.promise}),GB=function(){var Q=new uN,R=YR(Q);this.promise=Q,this.resolve=Cf(SN,R),this.reject=Cf(hf,R)},lF.f=mN=function(Q){return Q===df||Q===EN?new GB(Q):WV(Q)},lp(PR)&&Ef!==Object.prototype)){dN=Ef.then,KV||rF(Ef,"then",function(Q,R){var F=this;return new df(function(eA,sA){uf(dN,F,eA,sA)}).then(Q,R)},{unsafe:!0});try{delete Ef.constructor}catch{}aF&&aF(Ef,VR)}If({global:!0,constructor:!0,wrap:!0,forced:IF},{Promise:df}),EN=xV.Promise,YV(df,xR,!1),VV(xR);var BF=Ag,XV=ui("iterator"),QF=Array.prototype,HR=function(Q){return Q!==void 0&&(BF.Array===Q||QF[XV]===Q)},$V=xa,qR=ee,AJ=pr,eJ=Ag,MN=ui("iterator"),vN=function(Q){if(!AJ(Q))return qR(Q,MN)||qR(Q,"@@iterator")||eJ[$V(Q)]},RN=oo,tJ=K,iJ=Sn,pF=yn,mF=vN,oJ=TypeError,fF=function(Q,R){var F=arguments.length<2?mF(Q):R;if(tJ(F))return iJ(RN(F,Q));throw new oJ(pF(Q)+" is not iterable")},sJ=oo,yF=Sn,nJ=ee,rJ=B,DF=oo,KR=Sn,aJ=yn,gJ=HR,cJ=Pa,SF=Cs,lJ=fF,IJ=vN,MF=function(Q,R,F){var eA,sA;yF(Q);try{if(!(eA=nJ(Q,"return"))){if(R==="throw")throw F;return F}eA=sJ(eA,Q)}catch(_A){sA=!0,eA=_A}if(R==="throw")throw F;if(sA)throw eA;return yF(eA),F},Ip=TypeError,jR=function(Q,R){this.stopped=Q,this.result=R},vF=jR.prototype,WR=function(Q,R,F){var eA,sA,_A,ZA,QA,PA,jA,ie=F&&F.that,Le=!(!F||!F.AS_ENTRIES),Ne=!(!F||!F.IS_RECORD),Be=!(!F||!F.IS_ITERATOR),lt=!(!F||!F.INTERRUPTED),ai=rJ(R,ie),et=function(dA){return eA&&MF(eA,"normal"),new jR(!0,dA)},qe=function(dA){return Le?(KR(dA),lt?ai(dA[0],dA[1],et):ai(dA[0],dA[1])):lt?ai(dA,et):ai(dA)};if(Ne)eA=Q.iterator;else if(Be)eA=Q;else{if(!(sA=IJ(Q)))throw new Ip(aJ(Q)+" is not iterable");if(gJ(sA)){for(_A=0,ZA=cJ(Q);ZA>_A;_A++)if((QA=qe(Q[_A]))&&SF(vF,QA))return QA;return new jR(!1)}eA=lJ(Q,sA)}for(PA=Ne?Q.next:eA.next;!(jA=DF(PA,eA)).done;){try{QA=qe(jA.value)}catch(dA){MF(eA,"throw",dA)}if(typeof QA=="object"&&QA&&SF(vF,QA))return QA}return new jR(!1)},RF=ui("iterator"),wF=!1;try{var uJ=0,zR={next:function(){return{done:!!uJ++}},return:function(){wF=!0}};zR[RF]=function(){return this},Array.from(zR,function(){throw 2})}catch{}var wN=function(Q,R){try{if(!R&&!wF)return!1}catch{return!1}var F=!1;try{var eA={};eA[RF]=function(){return{next:function(){return{done:F=!0}}}},Q(eA)}catch{}return F},EJ=OR,_F=tE.CONSTRUCTOR||!wN(function(Q){EJ.all(Q).then(void 0,function(){})}),_N=oo,ZR=K,TF=NB,dJ=cN,CJ=WR;lo({target:"Promise",stat:!0,forced:_F},{all:function(Q){var R=this,F=TF.f(R),eA=F.resolve,sA=F.reject,_A=dJ(function(){var ZA=ZR(R.resolve),QA=[],PA=0,jA=1;CJ(Q,function(ie){var Le=PA++,Ne=!1;jA++,_N(ZA,R,ie).then(function(Be){Ne||(Ne=!0,QA[Le]=Be,--jA||eA(QA))},sA)}),--jA||eA(QA)});return _A.error&&sA(_A.value),F.promise}});var NF=lo,hJ=tE.CONSTRUCTOR,XR=OR,BJ=Wa,QJ=Ls,TN=Rr,NN=XR&&XR.prototype;if(NF({target:"Promise",proto:!0,forced:hJ,real:!0},{catch:function(Q){return this.then(void 0,Q)}}),QJ(XR)){var GF=BJ("Promise").prototype.catch;NN.catch!==GF&&TN(NN,"catch",GF,{unsafe:!0})}var pJ=oo,mJ=K,fJ=NB,yJ=cN,DJ=WR;lo({target:"Promise",stat:!0,forced:_F},{race:function(Q){var R=this,F=fJ.f(R),eA=F.reject,sA=yJ(function(){var _A=mJ(R.resolve);DJ(Q,function(ZA){pJ(_A,R,ZA).then(F.resolve,eA)})});return sA.error&&eA(sA.value),F.promise}});var bF=NB;lo({target:"Promise",stat:!0,forced:tE.CONSTRUCTOR},{reject:function(Q){var R=bF.f(this);return(0,R.reject)(Q),R.promise}});var SJ=Sn,gu=ms,Bf=NB,$R=lo,GN=tE.CONSTRUCTOR,MJ=function(Q,R){if(SJ(Q),gu(R)&&R.constructor===Q)return R;var F=Bf.f(Q);return(0,F.resolve)(R),F.promise};Wa("Promise"),$R({target:"Promise",stat:!0,forced:GN},{resolve:function(Q){return MJ(this,Q)}});var bN=Dd,TI=K,kF=Sn;lo({target:"Reflect",stat:!0,forced:!vt(function(){Reflect.apply(function(){})})},{apply:function(Q,R,F){return bN(TI(Q),R,kF(F))}});var LF=Sn,Qf=function(){var Q=LF(this),R="";return Q.hasIndices&&(R+="d"),Q.global&&(R+="g"),Q.ignoreCase&&(R+="i"),Q.multiline&&(R+="m"),Q.dotAll&&(R+="s"),Q.unicode&&(R+="u"),Q.unicodeSets&&(R+="v"),Q.sticky&&(R+="y"),R},Aw=vt,kN=ke.RegExp,LN=Aw(function(){var Q=kN("a","y");return Q.lastIndex=2,Q.exec("abcd")!==null}),UN=LN||Aw(function(){return!kN("a","y").sticky}),UF={BROKEN_CARET:LN||Aw(function(){var Q=kN("^r","gy");return Q.lastIndex=2,Q.exec("str")!==null}),MISSED_STICKY:UN,UNSUPPORTED_Y:LN},vJ=vt,FN=ke.RegExp,up=vJ(function(){var Q=FN(".","s");return!(Q.dotAll&&Q.test(`
|
||
`)&&Q.flags==="s")}),RJ=vt,wJ=ke.RegExp,ON=RJ(function(){var Q=wJ("(?<a>b)","g");return Q.exec("b").groups.a!=="b"||"b".replace(Q,"$<a>c")!=="bc"}),kh=oo,pf=Pi,FF=Mn,OF=Qf,TC=UF,Ud=Ig,_J=ys.get,PN=up,PF=ON,xN=zo("native-string-replace",String.prototype.replace),cS=RegExp.prototype.exec,Fd=cS,xF=pf("".charAt),kB=pf("".indexOf),YF=pf("".replace),ew=pf("".slice),Od=function(){var Q=/a/,R=/b*/g;return kh(cS,Q,"a"),kh(cS,R,"a"),Q.lastIndex!==0||R.lastIndex!==0}(),YN=TC.BROKEN_CARET,lS=/()??/.exec("")[1]!==void 0;(Od||lS||YN||PN||PF)&&(Fd=function(Q){var R,F,eA,sA,_A,ZA,QA,PA=this,jA=_J(PA),ie=FF(Q),Le=jA.raw;if(Le)return Le.lastIndex=PA.lastIndex,R=kh(Fd,Le,ie),PA.lastIndex=Le.lastIndex,R;var Ne=jA.groups,Be=YN&&PA.sticky,lt=kh(OF,PA),ai=PA.source,et=0,qe=ie;if(Be&&(lt=YF(lt,"y",""),kB(lt,"g")===-1&&(lt+="g"),qe=ew(ie,PA.lastIndex),PA.lastIndex>0&&(!PA.multiline||PA.multiline&&xF(ie,PA.lastIndex-1)!==`
|
||
`)&&(ai="(?: "+ai+")",qe=" "+qe,et++),F=new RegExp("^(?:"+ai+")",lt)),lS&&(F=new RegExp("^"+ai+"$(?!\\s)",lt)),Od&&(eA=PA.lastIndex),sA=kh(cS,Be?F:PA,qe),Be?sA?(sA.input=ew(sA.input,et),sA[0]=ew(sA[0],et),sA.index=PA.lastIndex,PA.lastIndex+=sA[0].length):PA.lastIndex=0:Od&&sA&&(PA.lastIndex=PA.global?sA.index+sA[0].length:eA),lS&&sA&&sA.length>1&&kh(xN,sA[0],F,function(){for(_A=1;_A<arguments.length-2;_A++)arguments[_A]===void 0&&(sA[_A]=void 0)}),sA&&Ne)for(sA.groups=ZA=Ud(null),_A=0;_A<Ne.length;_A++)ZA[(QA=Ne[_A])[0]]=sA[QA[1]];return sA});var tw=Fd;lo({target:"RegExp",proto:!0,forced:/./.exec!==tw},{exec:tw});var TJ=vt,VF=ke.RegExp,Ep=!TJ(function(){var Q=!0;try{VF(".","d")}catch{Q=!1}var R={},F="",eA=Q?"dgimsy":"gimsy",sA=function(QA,PA){Object.defineProperty(R,QA,{get:function(){return F+=PA,!0}})},_A={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var ZA in Q&&(_A.hasIndices="d"),_A)sA(ZA,_A[ZA]);return Object.getOwnPropertyDescriptor(VF.prototype,"flags").get.call(R)!==eA||F!==eA}),JF=oo,NJ=Ks,GJ=Cs,HF={correct:Ep},bJ=Qf,kJ=RegExp.prototype,iw=HF.correct?function(Q){return Q.flags}:function(Q){return HF.correct||!GJ(kJ,Q)||NJ(Q,"flags")?Q.flags:JF(bJ,Q)},LJ=Sr.PROPER,qF=Rr,UJ=Sn,KF=Mn,FJ=vt,OJ=iw,ow="toString",jF=RegExp.prototype,WF=jF[ow],PJ=FJ(function(){return WF.call({source:"a",flags:"b"})!=="/a/b"}),xJ=LJ&&WF.name!==ow;(PJ||xJ)&&qF(jF,ow,function(){var Q=UJ(this);return"/"+KF(Q.source)+"/"+KF(OJ(Q))},{unsafe:!0});var zF=oo,ZF=Rr,YJ=tw,XF=vt,$F=ui,VJ=rs,JJ=$F("species"),sw=RegExp.prototype,VN=function(Q,R,F,eA){var sA=$F(Q),_A=!XF(function(){var jA={};return jA[sA]=function(){return 7},""[Q](jA)!==7}),ZA=_A&&!XF(function(){var jA=!1,ie=/a/;if(Q==="split"){var Le={};Le[JJ]=function(){return ie},(ie={constructor:Le,flags:""})[sA]=/./[sA]}return ie.exec=function(){return jA=!0,null},ie[sA](""),!jA});if(!_A||!ZA||F){var QA=/./[sA],PA=R(sA,""[Q],function(jA,ie,Le,Ne,Be){var lt=ie.exec;return lt===YJ||lt===sw.exec?_A&&!Be?{done:!0,value:zF(QA,ie,Le,Ne)}:{done:!0,value:zF(jA,Le,ie,Ne)}:{done:!1}});ZF(String.prototype,Q,PA[0]),ZF(sw,sA,PA[1])}eA&&VJ(sw[sA],"sham",!0)},JN=Pi,HJ=$r,qJ=Mn,AO=mo,KJ=JN("".charAt),eO=JN("".charCodeAt),jJ=JN("".slice),WJ=function(Q){return function(R,F){var eA,sA,_A=qJ(AO(R)),ZA=HJ(F),QA=_A.length;return ZA<0||ZA>=QA?Q?"":void 0:(eA=eO(_A,ZA))<55296||eA>56319||ZA+1===QA||(sA=eO(_A,ZA+1))<56320||sA>57343?Q?KJ(_A,ZA):eA:Q?jJ(_A,ZA,ZA+2):sA-56320+(eA-55296<<10)+65536}},tO={charAt:WJ(!0)},zJ=tO.charAt,HN=function(Q,R,F){return R+(F?zJ(Q,R).length:1)},iO=oo,oO=Sn,ZJ=Ls,sO=wn,nO=tw,rO=TypeError,aO=function(Q,R){var F=Q.exec;if(ZJ(F)){var eA=iO(F,Q,R);return eA!==null&&oO(eA),eA}if(sO(Q)==="RegExp")return iO(nO,Q,R);throw new rO("RegExp#exec called on incompatible receiver")},XJ=oo,IS=VN,gO=Sn,cO=ms,$J=Oa,LB=Mn,AH=mo,eH=ee,lO=HN,qN=iw,IO=aO,KN=Pi("".indexOf);IS("match",function(Q,R,F){return[function(eA){var sA=AH(this),_A=cO(eA)?eH(eA,Q):void 0;return _A?XJ(_A,eA,sA):new RegExp(eA)[Q](LB(sA))},function(eA){var sA=gO(this),_A=LB(eA),ZA=F(R,sA,_A);if(ZA.done)return ZA.value;var QA=LB(qN(sA));if(KN(QA,"g")===-1)return IO(sA,_A);var PA=KN(QA,"u")!==-1;sA.lastIndex=0;for(var jA,ie=[],Le=0;(jA=IO(sA,_A))!==null;){var Ne=LB(jA[0]);ie[Le]=Ne,Ne===""&&(sA.lastIndex=lO(_A,$J(sA.lastIndex),PA)),Le++}return Le===0?null:ie}]});var dp=Pi,tH=yr,jN=Math.floor,WN=dp("".charAt),iH=dp("".replace),zN=dp("".slice),nw=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,oH=/\$([$&'`]|\d{1,2})/g,uO=Dd,EO=oo,rw=Pi,sH=VN,dO=vt,CO=Sn,hO=Ls,nH=ms,ZN=$r,rH=Oa,Cp=Mn,BO=mo,aH=HN,XN=ee,QO=function(Q,R,F,eA,sA,_A){var ZA=F+Q.length,QA=eA.length,PA=oH;return sA!==void 0&&(sA=tH(sA),PA=nw),iH(_A,PA,function(jA,ie){var Le;switch(WN(ie,0)){case"$":return"$";case"&":return Q;case"`":return zN(R,0,F);case"'":return zN(R,ZA);case"<":Le=sA[zN(ie,1,-1)];break;default:var Ne=+ie;if(Ne===0)return jA;if(Ne>QA){var Be=jN(Ne/10);return Be===0?jA:Be<=QA?eA[Be-1]===void 0?WN(ie,1):eA[Be-1]+WN(ie,1):jA}Le=eA[Ne-1]}return Le===void 0?"":Le})},gH=iw,cH=aO,mf=ui("replace"),pO=Math.max,mO=Math.min,uS=rw([].concat),ES=rw([].push),hp=rw("".indexOf),aw=rw("".slice),gw=function(Q){return Q===void 0?Q:String(Q)},fO="a".replace(/./,"$0")==="$0",$N=!!/./[mf]&&/./[mf]("a","$0")==="";sH("replace",function(Q,R,F){var eA=$N?"$":"$0";return[function(sA,_A){var ZA=BO(this),QA=nH(sA)?XN(sA,mf):void 0;return QA?EO(QA,sA,ZA,_A):EO(R,Cp(ZA),sA,_A)},function(sA,_A){var ZA=CO(this),QA=Cp(sA);if(typeof _A=="string"&&hp(_A,eA)===-1&&hp(_A,"$<")===-1){var PA=F(R,ZA,QA,_A);if(PA.done)return PA.value}var jA=hO(_A);jA||(_A=Cp(_A));var ie,Le=Cp(gH(ZA)),Ne=hp(Le,"g")!==-1;Ne&&(ie=hp(Le,"u")!==-1,ZA.lastIndex=0);for(var Be,lt=[];(Be=cH(ZA,QA))!==null&&(ES(lt,Be),Ne);)Cp(Be[0])===""&&(ZA.lastIndex=aH(QA,rH(ZA.lastIndex),ie));for(var ai="",et=0,qe=0;qe<lt.length;qe++){for(var dA,Qt=Cp((Be=lt[qe])[0]),$e=pO(mO(ZN(Be.index),QA.length),0),Vi=[],li=1;li<Be.length;li++)ES(Vi,gw(Be[li]));var eo=Be.groups;if(jA){var xo=uS([Qt],Vi,$e,QA);eo!==void 0&&ES(xo,eo),dA=Cp(uO(_A,void 0,xo))}else dA=QO(Qt,QA,$e,Vi,eo,_A);$e>=et&&(ai+=aw(QA,et,$e)+dA,et=$e+Qt.length)}return ai+aw(QA,et)}]},!!dO(function(){var Q=/./;return Q.exec=function(){var R=[];return R.groups={a:"7"},R},"".replace(Q,"$<a>")!=="7"})||!fO||$N);var cw,yO=ms,DO=wn,lH=ui("match"),SO=function(Q){var R;return yO(Q)&&((R=Q[lH])!==void 0?!!R:DO(Q)==="RegExp")},IH=SO,uH=TypeError,AG=function(Q){if(IH(Q))throw new uH("The method doesn't accept regular expressions");return Q},EH=ui("match"),eG=function(Q){var R=/./;try{"/./"[Q](R)}catch{try{return R[EH]=!1,"/./"[Q](R)}catch{}}return!1},dH=lo,MO=wA,vO=Ze.f,tG=Oa,RO=Mn,CH=AG,hH=mo,wO=eG,BH=MO("".slice),iG=Math.min,oG=wO("startsWith");dH({target:"String",proto:!0,forced:!!(oG||(cw=vO(String.prototype,"startsWith"),!cw||cw.writable))&&!oG},{startsWith:function(Q){var R=RO(hH(this));CH(Q);var F=tG(iG(arguments.length>1?arguments[1]:void 0,R.length)),eA=RO(Q);return BH(R,F,F+eA.length)===eA}});var sG={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},nG=La("span").classList,_O=nG&&nG.constructor&&nG.constructor.prototype,lw=_O===Object.prototype?void 0:_O,TO=ke,NO=sG,rG=lw,aG=Pg,QH=rs,gG=function(Q){if(Q&&Q.forEach!==aG)try{QH(Q,"forEach",aG)}catch{Q.forEach=aG}};for(var cG in NO)NO[cG]&&gG(TO[cG]&&TO[cG].prototype);gG(rG);var lG=ke,IG=sG,pH=lw,dS=ep,ff=rs,yf=x,uG=ui("iterator"),Iw=dS.values,GO=function(Q,R){if(Q){if(Q[uG]!==Iw)try{ff(Q,uG,Iw)}catch{Q[uG]=Iw}if(yf(Q,R,!0),IG[R]){for(var F in dS)if(Q[F]!==dS[F])try{ff(Q,F,dS[F])}catch{Q[F]=dS[F]}}}};for(var EG in IG)GO(lG[EG]&&lG[EG].prototype,EG);GO(pH,"DOMTokenList");var CS=function(Q){return It(Q)===XA},dG=function(Q){return Q!==null&&It(Q)===_e},CG=function(Q){return It(Array.isArray)===Ut?Array.isArray(Q):fH(Q)===je},mH=function(Q){return CG(Q)||dG(Q)},bO=function(Q){return It(Q)===Ut},hS=function(Q){return Q instanceof Error},fH=function(Q){return Object.prototype.toString.call(Q).match(/^\[object (.*)\]$/)[1].toLowerCase()},BS=0;Date.now||(Date.now=function(){return new Date().getTime()});var kO=function(){BS===0&&(BS=Date.now()-1);var Q=Date.now()-BS;return Q>4294967295?(BS+=4294967295,Date.now()-BS):Q},yH=function(Q){return JSON.stringify(Q,["message","code"])};function LO(Q){return Reflect.apply(Object.prototype.toString,Q,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}function Pd(Q){if(typeof Q!="string")return Q;var R;try{var F=JSON.parse(Q);R=It(F)==="object"&&F?F:Q}catch{R=Q}return R}function QS(){var Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},R={title:Q.title,desc:Q.description||"",extension:Q.extension||"",is_disable_push:Q.isDisablePush||!1,ios_push_type:Q.iOSPushType||0,android_push_type:Q.androidPushType||0,ignore_ios_badge:!!Q.ignoreIOSBadge,android_vivo_classification:Q.androidVIVOClassification};return Q.iOSSound&&(R.ios_sound=Q.iOSSound),Q.androidSound&&(R.android_sound=Q.androidSound),Q.androidOPPOChannelID&&(R.android_oppo_channel_id=Q.androidOPPOChannelID),Q.androidFCMChannelID&&(R.android_fcm_channel_id=Q.androidFCMChannelID),Q.androidXiaoMiChannelID&&(R.android_xiaomi_channel_id=Q.androidXiaoMiChannelID),Q.androidHuaWeiCategory&&(R.android_huawei_category=Q.androidHuaWeiCategory),R}const DH={[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 hG(Q,R){const F=Pd(R),eA=DH[Q],sA={};return Q===r.TUICallEvent.ON_CALL_RECEIVED?eA.forEach((_A,ZA)=>{sA[_A]=_A==="userIDList"&&ZA===1?Array.from(new Set(Pd(F[ZA]))):F[ZA]}):eA.forEach((_A,ZA)=>{sA[_A]=F[ZA]}),sA}var uw=yn,UO=TypeError,BG=function(Q,R){if(!delete Q[R])throw new UO("Cannot delete property "+uw(R)+" of "+uw(Q))},SH=lo,MH=yr,FO=il,OO=$r,vH=Pa,Ew=uB,RH=wd,PO=As,QG=Te,dw=BG,xO=Ch("splice"),wH=Math.max,pS=Math.min;SH({target:"Array",proto:!0,forced:!xO},{splice:function(Q,R){var F,eA,sA,_A,ZA,QA,PA=MH(this),jA=vH(PA),ie=FO(Q,jA),Le=arguments.length;for(Le===0?F=eA=0:Le===1?(F=0,eA=jA-ie):(F=Le-2,eA=pS(wH(OO(R),0),jA-ie)),RH(jA+F-eA),sA=PO(PA,eA),_A=0;_A<eA;_A++)(ZA=ie+_A)in PA&&QG(sA,_A,PA[ZA]);if(Ew(sA,eA),F<eA){for(_A=ie;_A<jA-eA;_A++)QA=_A+F,(ZA=_A+eA)in PA?PA[QA]=PA[ZA]:dw(PA,QA);for(_A=jA;_A>jA-eA+F;_A--)dw(PA,_A-1)}else if(F>eA)for(_A=jA-eA;_A>ie;_A--)QA=_A+F-1,(ZA=_A+eA-1)in PA?PA[QA]=PA[ZA]:dw(PA,QA);for(_A=0;_A<F;_A++)PA[_A+ie]=arguments[_A+2];return Ew(PA,jA-eA+F),sA}});var mS={},_H={get exports(){return mS},set exports(Q){mS=Q}},pG=vt(function(){if(typeof ArrayBuffer=="function"){var Q=new ArrayBuffer(8);Object.isExtensible(Q)&&Object.defineProperty(Q,"a",{value:8})}}),mG=vt,YO=ms,fG=wn,yG=pG,fS=Object.isExtensible,TH=mG(function(){fS(1)})||yG?function(Q){return!!YO(Q)&&(!yG||fG(Q)!=="ArrayBuffer")&&(!fS||fS(Q))}:fS,NH=!vt(function(){return Object.isExtensible(Object.preventExtensions({}))}),GH=lo,bH=Pi,kH=Ar,LH=ms,DG=Ks,UH=rr.f,VO=cg,JO=ar,Cw=TH,FH=NH,SG=!1,Lh=Ma("meta"),OH=0,hw=function(Q){UH(Q,Lh,{value:{objectID:"O"+OH++,weakData:{}}})},PH=_H.exports={enable:function(){PH.enable=function(){},SG=!0;var Q=VO.f,R=bH([].splice),F={};F[Lh]=1,Q(F).length&&(VO.f=function(eA){for(var sA=Q(eA),_A=0,ZA=sA.length;_A<ZA;_A++)if(sA[_A]===Lh){R(sA,_A,1);break}return sA},GH({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:JO.f}))},fastKey:function(Q,R){if(!LH(Q))return typeof Q=="symbol"?Q:(typeof Q=="string"?"S":"P")+Q;if(!DG(Q,Lh)){if(!Cw(Q))return"F";if(!R)return"E";hw(Q)}return Q[Lh].objectID},getWeakData:function(Q,R){if(!DG(Q,Lh)){if(!Cw(Q))return!0;if(!R)return!1;hw(Q)}return Q[Lh].weakData},onFreeze:function(Q){return FH&&SG&&Cw(Q)&&!DG(Q,Lh)&&hw(Q),Q}};kH[Lh]=!0;var HO=lo,qO=ke,xH=Pi,KO=kl,YH=Rr,VH=mS,JH=WR,jO=JA,WO=Ls,HH=pr,MG=ms,vG=vt,RG=wN,qH=x,KH=Th,jH=Rr,zO=function(Q,R,F){for(var eA in R)jH(Q,eA,R[eA],F);return Q},Bp=Ig,ZO=Ba,XO=zO,WH=B,zH=JA,ZH=pr,XH=WR,$H=fB,$O=yB,Aq=LA,yS=_t,AP=mS.fastKey,eP=ys.set,wG=ys.getterFor,eq={getConstructor:function(Q,R,F,eA){var sA=Q(function(jA,ie){zH(jA,_A),eP(jA,{type:R,index:Bp(null),first:null,last:null,size:0}),yS||(jA.size=0),ZH(ie)||XH(ie,jA[eA],{that:jA,AS_ENTRIES:F})}),_A=sA.prototype,ZA=wG(R),QA=function(jA,ie,Le){var Ne,Be,lt=ZA(jA),ai=PA(jA,ie);return ai?ai.value=Le:(lt.last=ai={index:Be=AP(ie,!0),key:ie,value:Le,previous:Ne=lt.last,next:null,removed:!1},lt.first||(lt.first=ai),Ne&&(Ne.next=ai),yS?lt.size++:jA.size++,Be!=="F"&&(lt.index[Be]=ai)),jA},PA=function(jA,ie){var Le,Ne=ZA(jA),Be=AP(ie);if(Be!=="F")return Ne.index[Be];for(Le=Ne.first;Le;Le=Le.next)if(Le.key===ie)return Le};return XO(_A,{clear:function(){for(var jA=ZA(this),ie=jA.first;ie;)ie.removed=!0,ie.previous&&(ie.previous=ie.previous.next=null),ie=ie.next;jA.first=jA.last=null,jA.index=Bp(null),yS?jA.size=0:this.size=0},delete:function(jA){var ie=this,Le=ZA(ie),Ne=PA(ie,jA);if(Ne){var Be=Ne.next,lt=Ne.previous;delete Le.index[Ne.index],Ne.removed=!0,lt&&(lt.next=Be),Be&&(Be.previous=lt),Le.first===Ne&&(Le.first=Be),Le.last===Ne&&(Le.last=lt),yS?Le.size--:ie.size--}return!!Ne},forEach:function(jA){for(var ie,Le=ZA(this),Ne=WH(jA,arguments.length>1?arguments[1]:void 0);ie=ie?ie.next:Le.first;)for(Ne(ie.value,ie.key,this);ie&&ie.removed;)ie=ie.previous},has:function(jA){return!!PA(this,jA)}}),XO(_A,F?{get:function(jA){var ie=PA(this,jA);return ie&&ie.value},set:function(jA,ie){return QA(this,jA===0?0:jA,ie)}}:{add:function(jA){return QA(this,jA=jA===0?0:jA,jA)}}),yS&&ZO(_A,"size",{configurable:!0,get:function(){return ZA(this).size}}),sA},setStrong:function(Q,R,F){var eA=R+" Iterator",sA=wG(R),_A=wG(eA);$H(Q,R,function(ZA,QA){eP(this,{type:eA,target:ZA,state:sA(ZA),kind:QA,last:null})},function(){for(var ZA=_A(this),QA=ZA.kind,PA=ZA.last;PA&&PA.removed;)PA=PA.previous;return ZA.target&&(ZA.last=PA=PA?PA.next:ZA.state.first)?$O(QA==="keys"?PA.key:QA==="values"?PA.value:[PA.key,PA.value],!1):(ZA.target=null,$O(void 0,!0))},F?"entries":"values",!F,!0),Aq(R)}},tq=function(Q,R,F){var eA=Q.indexOf("Map")!==-1,sA=Q.indexOf("Weak")!==-1,_A=eA?"set":"add",ZA=qO[Q],QA=ZA&&ZA.prototype,PA=ZA,jA={},ie=function(et){var qe=xH(QA[et]);YH(QA,et,et==="add"?function(dA){return qe(this,dA===0?0:dA),this}:et==="delete"?function(dA){return!(sA&&!MG(dA))&&qe(this,dA===0?0:dA)}:et==="get"?function(dA){return sA&&!MG(dA)?void 0:qe(this,dA===0?0:dA)}:et==="has"?function(dA){return!(sA&&!MG(dA))&&qe(this,dA===0?0:dA)}:function(dA,Qt){return qe(this,dA===0?0:dA,Qt),this})};if(KO(Q,!WO(ZA)||!(sA||QA.forEach&&!vG(function(){new ZA().entries().next()}))))PA=F.getConstructor(R,Q,eA,_A),VH.enable();else if(KO(Q,!0)){var Le=new PA,Ne=Le[_A](sA?{}:-0,1)!==Le,Be=vG(function(){Le.has(1)}),lt=RG(function(et){new ZA(et)}),ai=!sA&&vG(function(){for(var et=new ZA,qe=5;qe--;)et[_A](qe,qe);return!et.has(-0)});lt||((PA=R(function(et,qe){jO(et,QA);var dA=KH(new ZA,et,PA);return HH(qe)||JH(qe,dA[_A],{that:dA,AS_ENTRIES:eA}),dA})).prototype=QA,QA.constructor=PA),(Be||ai)&&(ie("delete"),ie("has"),eA&&ie("get")),(ai||Ne)&&ie(_A),sA&&QA.clear&&delete QA.clear}return jA[Q]=PA,HO({global:!0,constructor:!0,forced:PA!==ZA},jA),qH(PA,Q),sA||F.setStrong(PA,Q,eA),PA};tq("Map",function(Q){return function(){return Q(this,arguments.length?arguments[0]:void 0)}},eq);var DS,_G,iq=tO.charAt,tP=Mn,UB=ys,TG=fB,iP=yB,NG="String Iterator",oP=UB.set,sP=UB.getterFor(NG);TG(String,"String",function(Q){oP(this,{type:NG,string:tP(Q),index:0})},function(){var Q,R=sP(this),F=R.string,eA=R.index;return eA>=F.length?iP(void 0,!0):(Q=iq(F,eA),R.index+=Q.length,iP(Q,!1))}),DS=typeof console<"u"?console:typeof mg<"u"&&mg.console?mg.console:typeof window<"u"&&window.console?window.console:{};for(var oq=function(){},FB=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],Bw=FB.length;Bw--;)_G=FB[Bw],console[_G]||(DS[_G]=oq);DS.methods=FB;var Qw,iE=DS;const OB=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,pa=window?.navigator&&((Qw=window?.navigator)===null||Qw===void 0?void 0:Qw.userAgent)||"",nP=/iPad/i.test(pa),sq=/iPhone/i.test(pa)&&!nP,rP=/iPod/i.test(pa),GG=sq||nP||rP;(function(){const Q=pa.match(/OS (\d+)_/i);Q&&Q[1]&&Q[1]})();const nq=/Android/i.test(pa);(function(){const Q=pa.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!Q)return null;const R=Q[1]&&parseFloat(Q[1]),F=Q[2]&&parseFloat(Q[2]);R&&F&&parseFloat(`${Q[1]}.${Q[2]}`)})(),function(){const Q=pa.match(/Firefox\/(\d+)/);Q&&Q[1]&&parseFloat(Q[1])}(),/Edge\//i.test(pa)&&function(){const Q=pa.match(/Edge\/(\d+)/i);Q&&Q[1]&&Q[1]}(),function(){const Q=pa.match(/Edg\/(\d+)/);Q&&Q[1]&&parseFloat(Q[1])}(),function(){const Q=pa.match(/Chrome\/(\d+)/);Q&&Q[1]&&parseFloat(Q[1])}(),function(){const Q=pa.match(/Chrome\/([\d.]+)/);Q&&Q[1]&&Q[1]}(),function(){const Q=/MSIE\s(\d+)\.\d/.exec(pa);Q&&parseFloat(Q[1])}(),function(){const Q=pa.match(/Version\/([\d.]+)/);Q&&Q[1]&&Q[1]}();const aP=/TBS\/\d+/i.test(pa);(function(){const Q=pa.match(/TBS\/(\d+)/i);Q&&Q[1]&&Q[1]})();const rq=!aP&&/MQQBrowser\/\d+/i.test(pa)&&/COVC\/\d+/i.test(pa);(!aP&&/MQQBrowser\/\d+/i.test(pa)||rq)&&function(){const Q=pa.match(/ MQQBrowser\/([\d.]+)/);Q&&Q[1]&&Q[1]}(),/(micromessenger|webbrowser)/i.test(pa)&&function(){const Q=pa.match(/MicroMessenger\/(\d+)/i);Q&&Q[1]&&Q[1]}(),/HuaweiBrowser/i.test(pa)&&function(){const Q=pa.match(/HuaweiBrowser\/([\d.]+)/);Q&&Q[1]&&Q[1]}();const aq=new RegExp("HeadlessChrome","i").test(pa);var Uh=0,SS=new Map,MS="%cCallEngine%c%s",Qp="padding: 1px 4px;border-radius: 3px;color: #fff;background: #444;",Df="display: inline",pp=!(GG||nq||aq);function bG(){var Q=new Date;return"[".concat(Q.toLocaleTimeString("en-US",{hour12:!1}),".").concat(function(R){var F;switch(R.toString().length){case 1:F="00".concat(R);break;case 2:F="0".concat(R);break;default:F=R}return F}(Q.getMilliseconds()),"]")}var Fs={_data:[],_length:0,_visible:!1,arguments2String:function(Q,R){var F;if(R.length===1)F="".concat(bG()," <").concat(Q,"> ").concat(R[0]);else{F="".concat(bG()," <").concat(Q,"> ");for(var eA=0,sA=R.length;eA<sA;eA++)mH(R[eA])?hS(R[eA])?F+=yH(R[eA]):F+=JSON.stringify(R[eA]):F+=R[eA],F+=" "}return F},debug:function(){if(Uh<=-1){var Q=this.arguments2String("DEBUG",arguments);Fs.record(Q,"debug"),pp?iE.debug(MS,Qp,Df,Q):iE.debug(Q)}},log:function(){if(Uh<=0){var Q=this.arguments2String("LOG",arguments);Fs.record(Q,"log"),pp?iE.log(MS,Qp,Df,Q):iE.log(Q)}},info:function(){if(Uh<=1){var Q=this.arguments2String("INFO",arguments);Fs.record(Q,"info"),pp?iE.info(MS,Qp,Df,Q):iE.info(Q)}},warn:function(){if(Uh<=2){var Q=this.arguments2String("WARN",arguments);Fs.record(Q,"warn"),pp?iE.warn(MS,Qp,Df,Q):iE.warn(Q)}},error:function(){if(Uh<=3){var Q=this.arguments2String("ERROR",arguments);Fs.record(Q,"error"),pp?iE.error(MS,Qp,Df,Q):iE.error(Q)}},time:function(Q){SS.set(Q,kO())},timeEnd:function(Q){if(SS.has(Q)){var R=kO()-SS.get(Q);return SS.delete(Q),R}return iE.warn("未找到对应label: ".concat(Q,", 请在调用 logger.timeEnd 前,调用 logger.time")),0},setLevel:function(Q){Q<4&&iE.log("".concat(bG(),"set level from ").concat(Uh," to ").concat(Q)),Uh=Q},getLevel:function(){return Uh},record:function(Q,R){Fs._length===1100&&(Fs._data.splice(0,100),Fs._length=1e3),Fs._length++,Fs._data.push("".concat(Q," [").concat(R,`]
|
||
`))},getLog:function(){return Fs._data}},oE={};(function(Q){var R;R=()=>(()=>{var F={902:function(ZA,QA,PA){var jA=this&&this.__assign||function(){return jA=Object.assign||function(Jt){for(var Xe,Si=1,So=arguments.length;Si<So;Si++)for(var uo in Xe=arguments[Si])Object.prototype.hasOwnProperty.call(Xe,uo)&&(Jt[uo]=Xe[uo]);return Jt},jA.apply(this,arguments)},ie=this&&this.__awaiter||function(Jt,Xe,Si,So){return new(Si||(Si=Promise))(function(uo,Io){function Yo(qa){try{Zn(So.next(qa))}catch(es){Io(es)}}function hn(qa){try{Zn(So.throw(qa))}catch(es){Io(es)}}function Zn(qa){var es;qa.done?uo(qa.value):(es=qa.value,es instanceof Si?es:new Si(function(Fc){Fc(es)})).then(Yo,hn)}Zn((So=So.apply(Jt,Xe||[])).next())})},Le=this&&this.__generator||function(Jt,Xe){var Si,So,uo,Io,Yo={label:0,sent:function(){if(1&uo[0])throw uo[1];return uo[1]},trys:[],ops:[]};return Io={next:hn(0),throw:hn(1),return:hn(2)},typeof Symbol=="function"&&(Io[Symbol.iterator]=function(){return this}),Io;function hn(Zn){return function(qa){return function(es){if(Si)throw new TypeError("Generator is already executing.");for(;Io&&(Io=0,es[0]&&(Yo=0)),Yo;)try{if(Si=1,So&&(uo=2&es[0]?So.return:es[0]?So.throw||((uo=So.return)&&uo.call(So),0):So.next)&&!(uo=uo.call(So,es[1])).done)return uo;switch(So=0,uo&&(es=[2&es[0],uo.value]),es[0]){case 0:case 1:uo=es;break;case 4:return Yo.label++,{value:es[1],done:!1};case 5:Yo.label++,So=es[1],es=[0];continue;case 7:es=Yo.ops.pop(),Yo.trys.pop();continue;default:if(!((uo=(uo=Yo.trys).length>0&&uo[uo.length-1])||es[0]!==6&&es[0]!==2)){Yo=0;continue}if(es[0]===3&&(!uo||es[1]>uo[0]&&es[1]<uo[3])){Yo.label=es[1];break}if(es[0]===6&&Yo.label<uo[1]){Yo.label=uo[1],uo=es;break}if(uo&&Yo.label<uo[2]){Yo.label=uo[2],Yo.ops.push(es);break}uo[2]&&Yo.ops.pop(),Yo.trys.pop();continue}es=Xe.call(Jt,Yo)}catch(Fc){es=[6,Fc],So=0}finally{Si=uo=0}if(5&es[0])throw es[1];return{value:es[0]?es[1]:void 0,done:!0}}([Zn,qa])}}};Object.defineProperty(QA,"__esModule",{value:!0});var Ne,Be=PA(266),lt=PA(466),ai=PA(402),et=PA(882),qe=PA(271),dA=PA(884),Qt=PA(900),$e=PA(172);(function(Jt){Jt[Jt.DEBUG=0]="DEBUG",Jt[Jt.INFO=1]="INFO",Jt[Jt.WARING=2]="WARING",Jt[Jt.ERROR=3]="ERROR"})(Ne||(Ne={}));var Vi={metric:!0,context:!0},li=function(Jt,Xe,Si){return Si===void 0&&(Si=0),(0,Be.isPlainObject)(Jt)?((0,Be.isPlainObject)(Xe)&&Object.keys(Xe).forEach(function(So){var uo=Jt[So],Io=Xe[So];Jt[So]=Vi[So]&&Si===0?li(uo,Io,1):Io}),Jt):(0,Be.isPlainObject)(Xe)?Xe:{}},eo={clsConfig:{endpoint:"",topicId:""}},xo=function(){function Jt(Xe){var Si=this;this.url="",this.uploadChannel="",this.sendClsPipe=null,this.sendEsPipe=null,this._logLevel=Ne.INFO,this._getReportDataList=[],this._blacklist=[];var So=Xe||eo,uo=So.clsConfig,Io=So.esConfig,Yo=uo.endpoint,hn=uo.topicId;this.esConfig=Io,this.endpoint=Yo,this.topicId=hn;var Zn=this.buildUploadUrl();this.url=Zn,this.initPageUnloadMonitor(),Zn&&(this.sendClsPipe=(0,ai.createPipeline)([(0,Qt.filterSdkappIdPipe)(this),(0,dA.createThrottlePipe)(this,5),(0,et.formatClsLog)(),(0,qe.limitLengthPipe)(),function(qa){return ie(Si,void 0,void 0,function(){var es,Fc,ay=this;return Le(this,function(yM){return es=0,Fc=function(){return ie(ay,void 0,void 0,function(){var gy;return Le(this,function(aQ){switch(aQ.label){case 0:return aQ.trys.push([0,2,,3]),[4,this.send({url:Zn,data:qa})];case 1:return aQ.sent(),[3,3];case 2:return gy=aQ.sent(),es<=2?(es++,setTimeout(function(){Fc()},1e3)):console.debug(gy),[3,3];case 3:return[2]}})})},Fc(),[2]})})}])),this.updateBlacklist()}return Jt.prototype.initPageUnloadMonitor=function(){var Xe=this,Si=this;!(0,Be.isMiniProgram)()&&document&&typeof document.addEventListener=="function"&&document.addEventListener("visibilitychange",function(){if(document.visibilityState==="hidden"){var So=Xe.getCommonReportData(),uo=li(So,{level:Ne.WARING,method:"PAGE_UNLOAD",type:"event"});if(Si.esConfig)try{var Io=Si.esConfig,Yo=Io.url,hn=Io.table;(0,ai.createPipeline)([(0,Qt.filterSdkappIdPipe)(Si),(0,dA.createThrottlePipe)(Si,1),(0,et.formatESLog)({table:hn}),(0,qe.limitLengthPipe)(),function(Zn){return ie(Xe,void 0,void 0,function(){var qa;return Le(this,function(es){try{qa=new Blob([JSON.stringify(Zn)],{type:"application/x-www-form-urlencoded"}),navigator?.sendBeacon(Yo,qa)}catch(Fc){console.debug(Fc)}return[2]})})}])(uo)}catch(Zn){console.debug(Zn)}}})},Jt.prototype.updateEsConfig=function(Xe){var Si=this;try{if(Xe){this.esConfig=Xe;var So=Xe.url,uo=Xe.table;So&&uo&&(this.uploadChannel=So,this.sendEsPipe=(0,ai.createPipeline)([(0,Qt.filterSdkappIdPipe)(this),(0,dA.createThrottlePipe)(this,5),(0,et.formatESLog)({table:uo}),(0,qe.limitLengthPipe)(),function(Io){return ie(Si,void 0,void 0,function(){var Yo,hn,Zn=this;return Le(this,function(qa){return Yo=0,hn=function(){return ie(Zn,void 0,void 0,function(){var es;return Le(this,function(Fc){switch(Fc.label){case 0:return Fc.trys.push([0,2,,3]),[4,this.send({url:So,data:Io})];case 1:return Fc.sent(),[3,3];case 2:return es=Fc.sent(),Yo<=2?(Yo++,setTimeout(function(){hn()},1e3)):console.debug(es),[3,3];case 3:return[2]}})})},hn(),[2]})})}]))}}catch(Io){console.debug(Io)}},Jt.prototype.updateGetReportData=function(Xe){typeof Xe=="function"&&this._getReportDataList.push(Xe)},Jt.prototype.updateBlacklist=function(){return ie(this,void 0,void 0,function(){var Xe,Si,So;return Le(this,function(uo){switch(uo.label){case 0:return uo.trys.push([0,2,,3]),[4,(0,lt.request)({url:$e.RAINBOW_BLACK_LIST_API})];case 1:return Xe=uo.sent().data,typeof(Si=Xe?.blackList)=="string"&&(this._blacklist=Si.split(",")),[3,3];case 2:return So=uo.sent(),console.debug("update blacklist fail",So),[3,3];case 3:return[2]}})})},Jt.prototype.getBlackList=function(){return this._blacklist},Jt.prototype.setLogLevel=function(Xe){typeof Xe!="number"&&(Xe=Ne.INFO),this._logLevel=Xe},Jt.prototype.createLogFunc=function(Xe){var Si=this;return function(So,uo){Si.log(So,uo,{level:Xe})}},Jt.prototype.buildUploadUrl=function(){return this.endpoint&&this.topicId?"".concat(this.endpoint,"/tracklog?topic_id=").concat(this.topicId):""},Jt.prototype.sendPipe=function(Xe){typeof this.sendClsPipe=="function"&&this.sendClsPipe(Xe),typeof this.sendEsPipe=="function"&&this.sendEsPipe(Xe)},Jt.prototype.info=function(Xe,Si){this.log(Xe,Si,{level:Ne.INFO})},Jt.prototype.debug=function(Xe,Si){this.log(Xe,Si,{level:Ne.DEBUG})},Jt.prototype.warn=function(Xe,Si){this.log(Xe,Si,{level:Ne.WARING})},Jt.prototype.error=function(Xe,Si){this.log(Xe,Si,{level:Ne.ERROR})},Jt.prototype.log=function(Xe,Si,So){try{var uo=So||{},Io=uo.level;if(uo.topicId,this._logLevel<=Io){var Yo=this.getCommonReportData(),hn=li(Yo,jA({level:Io,method:Xe},Si));this.sendPipe(hn)}}catch(Zn){console.debug(Zn)}},Jt.prototype.getCommonReportData=function(){for(var Xe={},Si=0;Si<this._getReportDataList.length;Si++)Xe=li(Xe,this._getReportDataList[Si]());return Xe},Jt.prototype.send=function(Xe){return ie(this,void 0,void 0,function(){var Si,So,uo,Io;return Le(this,function(Yo){switch(Yo.label){case 0:So=(Si=Xe||{}).url,uo=Si.data,Yo.label=1;case 1:return Yo.trys.push([1,4,,5]),So?[4,(0,lt.request)({url:So,data:uo,method:"post"})]:[3,3];case 2:Yo.sent(),Yo.label=3;case 3:return[3,5];case 4:throw Io=Yo.sent(),console.debug(Io),new Error(Io);case 5:return[2]}})})},Jt}();QA.default=xo},900:(ZA,QA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.filterSdkappIdPipe=void 0,QA.filterSdkappIdPipe=function(PA){return function(jA,ie){try{var Le=jA.sdkappid,Ne=PA.getBlackList();if(Ne?.includes(String(Le)))throw new Error("this sdkappid in blacklist");ie(jA)}catch(Be){console.debug(Be)}}}},793:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.formatClsLog=void 0;var jA=PA(266);QA.formatClsLog=function(){return function(ie,Le){try{Le({logs:ie?.map(function(Ne){var Be={};return Object.keys(Ne).forEach(function(lt){if((0,jA.isPlainObject)(Ne[lt]))try{Be[lt]=(0,jA.stringifyPlus)(Ne[lt])}catch(ai){console.debug(ai)}else lt==="time"&&(Be[lt]=new Date(Ne[lt]).toISOString()),Be[lt]=Ne[lt]+""}),{contents:Be,time:Ne.time}}),source:""})}catch(Ne){console.debug(Ne)}}}},713:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.formatESLog=void 0;var jA=PA(266);QA.formatESLog=function(ie){var Le=ie.table;return function(Ne,Be){try{var lt=Ne?.map(function(ai){var et={};return Object.keys(ai).forEach(function(qe){if((0,jA.isPlainObject)(ai[qe]))try{et[qe]=(0,jA.stringifyPlus)(ai[qe])}catch(dA){console.debug(dA)}else et[qe]=qe==="level"?ai[qe]+"":qe==="time"?new Date(ai[qe]).toISOString():ai[qe]}),et});Be({table:Le,report:lt})}catch(ai){console.debug(ai)}}}},882:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.formatClsLog=QA.formatESLog=void 0;var jA=PA(793);Object.defineProperty(QA,"formatClsLog",{enumerable:!0,get:function(){return jA.formatClsLog}});var ie=PA(713);Object.defineProperty(QA,"formatESLog",{enumerable:!0,get:function(){return ie.formatESLog}})},402:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.createPipeline=void 0;var jA=PA(266);QA.createPipeline=function(ie){if(!ie||!ie.reduce||!ie.length)throw new TypeError("createPipeline need at least one function param");return ie.length===1?function(Le,Ne){ie[0](Le,Ne||jA.noop)}:ie.reduce(function(Le,Ne){return function(Be,lt){return lt===void 0&&(lt=jA.noop),Le(Be,function(ai){return Ne?.(ai,lt)})}})}},271:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.limitLengthPipe=QA.MAX_LOG_LENGTH=void 0;var jA=PA(266);QA.MAX_LOG_LENGTH=102400,QA.limitLengthPipe=function(){return function(ie,Le){try{var Ne=(ie=ie||{}).logs,Be=Ne===void 0?[]:Ne;ie.logs=Be?.map(function(lt){var ai=QA.MAX_LOG_LENGTH,et=lt.contents;return Object.keys(et).forEach(function(qe){var dA=et[qe];try{dA&&dA.length>ai&&(et[qe]=dA?.substring(0,ai))}catch{console.debug("size of content > limitSize"),et[qe]=(0,jA.stringifyPlus)(dA).substring(0,ai)}}),lt}),Le(ie)}catch(lt){console.debug(lt)}}}},884:(ZA,QA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.createThrottlePipe=void 0,QA.createThrottlePipe=function(PA,jA){var ie,Le=[];return function(Ne,Be){if(Array.isArray(Ne)?Le=Le.concat(Ne):Le.push(Ne),jA&&Le.length>=jA||PA.sendNow&&Le.length>0)return Be(Le.splice(0,Le.length)),void(ie&&clearTimeout(ie));ie&&clearTimeout(ie),ie=setTimeout(function(){ie=null,Le.length>0&&Be(Le.splice(0,Le.length))},PA.delay||1e3)}}},466:function(ZA,QA,PA){var jA=this&&this.__assign||function(){return jA=Object.assign||function(et){for(var qe,dA=1,Qt=arguments.length;dA<Qt;dA++)for(var $e in qe=arguments[dA])Object.prototype.hasOwnProperty.call(qe,$e)&&(et[$e]=qe[$e]);return et},jA.apply(this,arguments)},ie=this&&this.__awaiter||function(et,qe,dA,Qt){return new(dA||(dA=Promise))(function($e,Vi){function li(Jt){try{xo(Qt.next(Jt))}catch(Xe){Vi(Xe)}}function eo(Jt){try{xo(Qt.throw(Jt))}catch(Xe){Vi(Xe)}}function xo(Jt){var Xe;Jt.done?$e(Jt.value):(Xe=Jt.value,Xe instanceof dA?Xe:new dA(function(Si){Si(Xe)})).then(li,eo)}xo((Qt=Qt.apply(et,qe||[])).next())})},Le=this&&this.__generator||function(et,qe){var dA,Qt,$e,Vi,li={label:0,sent:function(){if(1&$e[0])throw $e[1];return $e[1]},trys:[],ops:[]};return Vi={next:eo(0),throw:eo(1),return:eo(2)},typeof Symbol=="function"&&(Vi[Symbol.iterator]=function(){return this}),Vi;function eo(xo){return function(Jt){return function(Xe){if(dA)throw new TypeError("Generator is already executing.");for(;Vi&&(Vi=0,Xe[0]&&(li=0)),li;)try{if(dA=1,Qt&&($e=2&Xe[0]?Qt.return:Xe[0]?Qt.throw||(($e=Qt.return)&&$e.call(Qt),0):Qt.next)&&!($e=$e.call(Qt,Xe[1])).done)return $e;switch(Qt=0,$e&&(Xe=[2&Xe[0],$e.value]),Xe[0]){case 0:case 1:$e=Xe;break;case 4:return li.label++,{value:Xe[1],done:!1};case 5:li.label++,Qt=Xe[1],Xe=[0];continue;case 7:Xe=li.ops.pop(),li.trys.pop();continue;default:if(!(($e=($e=li.trys).length>0&&$e[$e.length-1])||Xe[0]!==6&&Xe[0]!==2)){li=0;continue}if(Xe[0]===3&&(!$e||Xe[1]>$e[0]&&Xe[1]<$e[3])){li.label=Xe[1];break}if(Xe[0]===6&&li.label<$e[1]){li.label=$e[1],$e=Xe;break}if($e&&li.label<$e[2]){li.label=$e[2],li.ops.push(Xe);break}$e[2]&&li.ops.pop(),li.trys.pop();continue}Xe=qe.call(et,li)}catch(Si){Xe=[6,Si],Qt=0}finally{dA=$e=0}if(5&Xe[0])throw Xe[1];return{value:Xe[0]?Xe[1]:void 0,done:!0}}([xo,Jt])}}},Ne=this&&this.__rest||function(et,qe){var dA={};for(var Qt in et)Object.prototype.hasOwnProperty.call(et,Qt)&&qe.indexOf(Qt)<0&&(dA[Qt]=et[Qt]);if(et!=null&&typeof Object.getOwnPropertySymbols=="function"){var $e=0;for(Qt=Object.getOwnPropertySymbols(et);$e<Qt.length;$e++)qe.indexOf(Qt[$e])<0&&Object.prototype.propertyIsEnumerable.call(et,Qt[$e])&&(dA[Qt[$e]]=et[Qt[$e]])}return dA};Object.defineProperty(QA,"__esModule",{value:!0}),QA.request=void 0;var Be=PA(732),lt=PA(377),ai=PA(266);QA.request=function(et){return ie(void 0,void 0,void 0,function(){var qe=et.url,dA=et.data,Qt=et.header,$e=Qt===void 0?{}:Qt,Vi=et.method,li=Vi===void 0?"GET":Vi,eo=et.dataType,xo=et.responseType,Jt=Ne(et,["url","data","header","method","dataType","responseType"]);return Le(this,function(Xe){return(0,ai.isBrowser)()?[2,(0,lt.requestXHR)(qe,dA,{headers:$e,method:li,responseType:xo,dataType:eo})]:(0,ai.isMiniProgram)()?[2,(0,Be.requestWeapp)(jA({url:qe,data:dA,header:$e,method:li,dataType:eo,responseType:xo},Jt))]:(console.debug("unsupport env"),[2])})})}},732:function(ZA,QA,PA){var jA=this&&this.__assign||function(){return jA=Object.assign||function(ai){for(var et,qe=1,dA=arguments.length;qe<dA;qe++)for(var Qt in et=arguments[qe])Object.prototype.hasOwnProperty.call(et,Qt)&&(ai[Qt]=et[Qt]);return ai},jA.apply(this,arguments)},ie=this&&this.__awaiter||function(ai,et,qe,dA){return new(qe||(qe=Promise))(function(Qt,$e){function Vi(xo){try{eo(dA.next(xo))}catch(Jt){$e(Jt)}}function li(xo){try{eo(dA.throw(xo))}catch(Jt){$e(Jt)}}function eo(xo){var Jt;xo.done?Qt(xo.value):(Jt=xo.value,Jt instanceof qe?Jt:new qe(function(Xe){Xe(Jt)})).then(Vi,li)}eo((dA=dA.apply(ai,et||[])).next())})},Le=this&&this.__generator||function(ai,et){var qe,dA,Qt,$e,Vi={label:0,sent:function(){if(1&Qt[0])throw Qt[1];return Qt[1]},trys:[],ops:[]};return $e={next:li(0),throw:li(1),return:li(2)},typeof Symbol=="function"&&($e[Symbol.iterator]=function(){return this}),$e;function li(eo){return function(xo){return function(Jt){if(qe)throw new TypeError("Generator is already executing.");for(;$e&&($e=0,Jt[0]&&(Vi=0)),Vi;)try{if(qe=1,dA&&(Qt=2&Jt[0]?dA.return:Jt[0]?dA.throw||((Qt=dA.return)&&Qt.call(dA),0):dA.next)&&!(Qt=Qt.call(dA,Jt[1])).done)return Qt;switch(dA=0,Qt&&(Jt=[2&Jt[0],Qt.value]),Jt[0]){case 0:case 1:Qt=Jt;break;case 4:return Vi.label++,{value:Jt[1],done:!1};case 5:Vi.label++,dA=Jt[1],Jt=[0];continue;case 7:Jt=Vi.ops.pop(),Vi.trys.pop();continue;default:if(!((Qt=(Qt=Vi.trys).length>0&&Qt[Qt.length-1])||Jt[0]!==6&&Jt[0]!==2)){Vi=0;continue}if(Jt[0]===3&&(!Qt||Jt[1]>Qt[0]&&Jt[1]<Qt[3])){Vi.label=Jt[1];break}if(Jt[0]===6&&Vi.label<Qt[1]){Vi.label=Qt[1],Qt=Jt;break}if(Qt&&Vi.label<Qt[2]){Vi.label=Qt[2],Vi.ops.push(Jt);break}Qt[2]&&Vi.ops.pop(),Vi.trys.pop();continue}Jt=et.call(ai,Vi)}catch(Xe){Jt=[6,Xe],dA=0}finally{qe=Qt=0}if(5&Jt[0])throw Jt[1];return{value:Jt[0]?Jt[1]:void 0,done:!0}}([eo,xo])}}};Object.defineProperty(QA,"__esModule",{value:!0}),QA.requestWeapp=function(ai){return ie(this,void 0,void 0,function(){var et;return Le(this,function(qe){switch(qe.label){case 0:qe.trys.push([0,5,6,7]),qe.label=1;case 1:return lt>=Be?[4,(0,Ne.startBlocking)()]:[3,3];case 2:return qe.sent(),[3,1];case 3:return lt++,[4,new Promise(function(dA,Qt){wx.request(jA(jA({},ai),{success:function($e){dA($e)},fail:function($e){Qt($e)}}))})];case 4:return[2,qe.sent()];case 5:return et=qe.sent(),[2,Promise.reject(et)];case 6:return lt--,(0,Ne.resolveFirstBlock)(),[7];case 7:return[2]}})})};var Ne=PA(640),Be=2,lt=0},377:function(ZA,QA,PA){var jA=this&&this.__awaiter||function(et,qe,dA,Qt){return new(dA||(dA=Promise))(function($e,Vi){function li(Jt){try{xo(Qt.next(Jt))}catch(Xe){Vi(Xe)}}function eo(Jt){try{xo(Qt.throw(Jt))}catch(Xe){Vi(Xe)}}function xo(Jt){var Xe;Jt.done?$e(Jt.value):(Xe=Jt.value,Xe instanceof dA?Xe:new dA(function(Si){Si(Xe)})).then(li,eo)}xo((Qt=Qt.apply(et,qe||[])).next())})},ie=this&&this.__generator||function(et,qe){var dA,Qt,$e,Vi,li={label:0,sent:function(){if(1&$e[0])throw $e[1];return $e[1]},trys:[],ops:[]};return Vi={next:eo(0),throw:eo(1),return:eo(2)},typeof Symbol=="function"&&(Vi[Symbol.iterator]=function(){return this}),Vi;function eo(xo){return function(Jt){return function(Xe){if(dA)throw new TypeError("Generator is already executing.");for(;Vi&&(Vi=0,Xe[0]&&(li=0)),li;)try{if(dA=1,Qt&&($e=2&Xe[0]?Qt.return:Xe[0]?Qt.throw||(($e=Qt.return)&&$e.call(Qt),0):Qt.next)&&!($e=$e.call(Qt,Xe[1])).done)return $e;switch(Qt=0,$e&&(Xe=[2&Xe[0],$e.value]),Xe[0]){case 0:case 1:$e=Xe;break;case 4:return li.label++,{value:Xe[1],done:!1};case 5:li.label++,Qt=Xe[1],Xe=[0];continue;case 7:Xe=li.ops.pop(),li.trys.pop();continue;default:if(!(($e=($e=li.trys).length>0&&$e[$e.length-1])||Xe[0]!==6&&Xe[0]!==2)){li=0;continue}if(Xe[0]===3&&(!$e||Xe[1]>$e[0]&&Xe[1]<$e[3])){li.label=Xe[1];break}if(Xe[0]===6&&li.label<$e[1]){li.label=$e[1],$e=Xe;break}if($e&&li.label<$e[2]){li.label=$e[2],li.ops.push(Xe);break}$e[2]&&li.ops.pop(),li.trys.pop();continue}Xe=qe.call(et,li)}catch(Si){Xe=[6,Si],Qt=0}finally{dA=$e=0}if(5&Xe[0])throw Xe[1];return{value:Xe[0]?Xe[1]:void 0,done:!0}}([xo,Jt])}}};Object.defineProperty(QA,"__esModule",{value:!0}),QA.default=ai,QA.requestXHR=function(et){return jA(this,arguments,void 0,function(qe,dA,Qt){var $e,Vi=this;return dA===void 0&&(dA={}),Qt===void 0&&(Qt={}),ie(this,function(li){switch(li.label){case 0:return li.trys.push([0,2,3,4]),[4,new Promise(function(eo,xo){return jA(Vi,void 0,void 0,function(){var Jt,Xe,Si,So,uo,Io;return ie(this,function(Yo){switch(Yo.label){case 0:return lt>=Be?[4,(0,Ne.startBlocking)()]:[3,2];case 1:return Yo.sent(),[3,0];case 2:return lt++,Jt=Qt.method,Xe=Qt.headers,Si=Xe===void 0?{}:Xe,So=Qt.responseType,uo=So===void 0?"json":So,Jt=(Jt||"get").toUpperCase(),Object.assign(Si,{"Content-type":"application/json"}),(Io=new window.XMLHttpRequest).responseType=uo,Io.timeout=1e4,Io.onreadystatechange=function(){Io.readyState===4&&(Io.status===200?eo({data:Io.response}):xo({code:Io.status,msg:Io.statusText}))},Io.ontimeout=function(hn){xo({code:Io.status,msg:Io.statusText})},Io.onloadend=function(){Io&&(ai(function(hn){eo(hn)},function(hn){xo(hn)},{status:Io.status,statusText:Io.statusText}),Io=null)},Io.onabort=function(){Io&&(xo(new Error("Request aborted")),Io=null)},Io.onerror=function(){xo(new Error("Network Error")),Io=null},Jt==="GET"?qe="".concat(qe).concat(qe.indexOf("?")===-1?"?":"&").concat(Le.default.stringify(dA)):Jt==="POST"&&(dA=JSON.stringify(dA)),Io.open(Jt,qe,!0),Object.keys(Si).forEach(function(hn){Io.setRequestHeader(hn,Si[hn])}),Io.send(Jt==="POST"?dA:null),[2]}})})})];case 1:return[2,li.sent()];case 2:throw $e=li.sent(),new Error($e);case 3:return lt--,(0,Ne.resolveFirstBlock)(),[7];case 4:return[2]}})})};var Le=PA(383),Ne=PA(640),Be=2,lt=0;function ai(et,qe,dA){dA.status?qe(new Error("Request failed with status code "+dA.status)):et(dA)}},172:(ZA,QA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.RAINBOW_BLACK_LIST_API=void 0,QA.RAINBOW_BLACK_LIST_API="https://jsonschema.qpic.cn/87084b1b6d263426b92926cfa5fa23af/18f29786d25587b5eb162d5e9f724b1e/blackList"},266:(ZA,QA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.date2ISOString=QA.stringifyPlus=QA.noop=QA.isBrowser=QA.isMiniProgram=QA.isPlainObject=QA.appendParams=void 0,QA.appendParams=function(jA,ie){ie===void 0&&(ie={});var Le=[];return Object.keys(ie).forEach(function(Ne){var Be=ie[Ne];if(Be!==void 0){if((0,QA.isPlainObject)(Be))try{Be=JSON.stringify(Be)}catch{}Le.push("".concat(Ne,"=").concat(encodeURIComponent(Be)))}}),Le.length?(jA.indexOf("?")>-1?"".concat(jA,"&"):"".concat(jA,"?"))+Le.join("&"):jA},QA.isPlainObject=function(jA){if(typeof jA!="object"||jA===null)return!1;var ie=Object.getPrototypeOf(jA);if(ie===null)return!0;for(var Le=ie;Object.getPrototypeOf(Le)!==null;)Le=Object.getPrototypeOf(Le);return ie===Le},QA.isMiniProgram=function(){try{return!(!(wx!=null&&wx.request)||!(wx!=null&&wx.connectSocket))}catch{return!1}},QA.isBrowser=function(){try{return!(0,QA.isMiniProgram)()&&typeof window<"u"&&window.document!==void 0}catch{return!1}},QA.noop=function(){};var PA=function(){var jA=new WeakSet;return function(ie,Le){if(Le instanceof Error)return"Error.message: ".concat(Le.message,`
|
||
Error.stack: `).concat(Le.stack);if(typeof Le=="object"&&Le!==null){if(jA.has(Le))return"[Circular ".concat(ie||"root","]");jA.add(Le)}return Le}};QA.stringifyPlus=function(jA){if(typeof jA=="string")return jA;try{return jA instanceof Error?(JSON.stringify(jA,PA())||"undefined").replace(/"/gim,""):JSON.stringify(jA,PA())||"undefined"}catch(ie){return`error happen when aegis stringify:
|
||
`.concat(ie.message,`
|
||
`).concat(ie.stack)}},QA.date2ISOString=function(){var jA,ie=new Date,Le=ie.toISOString(),Ne=ie.getTimezoneOffset()/60;return jA=Ne<0?Ne>-10?"+0".concat(Math.abs(100*Ne)):"+".concat(Math.abs(100*Ne)):Ne>=10?"-".concat(100*Ne):"-0".concat(100*Ne),Le.replace("Z",jA)}},383:(ZA,QA,PA)=>{Object.defineProperty(QA,"__esModule",{value:!0});var jA=PA(266);QA.default={stringify:function(ie){return ie?Object.keys(ie).map(function(Le){var Ne=ie[Le];if((0,jA.isPlainObject)(Ne))Ne=JSON.stringify(Ne);else{if(typeof Ne!="string"&&typeof Ne!="number")return"";Ne=+Ne}return encodeURIComponent(Le)+"="+encodeURIComponent(Ne)}).filter(function(Le){return Le.length>0}).join("&"):""}}},640:(ZA,QA)=>{Object.defineProperty(QA,"__esModule",{value:!0}),QA.startBlocking=QA.resolveFirstBlock=void 0;var PA=[];QA.startBlocking=function(){var jA,ie=new Promise(function(Le){jA=Le});return PA.push({promise:ie,resolve:jA}),ie},QA.resolveFirstBlock=function(){PA.length&&(PA[0].resolve(),PA.shift())}}},eA={};function sA(ZA){var QA=eA[ZA];if(QA!==void 0)return QA.exports;var PA=eA[ZA]={exports:{}};return F[ZA].call(PA.exports,PA,PA.exports,sA),PA.exports}var _A={};return(()=>{var ZA=_A;Object.defineProperty(ZA,"__esModule",{value:!0});var QA=sA(902),PA=null;ZA.default=function(jA){return PA||(PA=new QA.default(jA)),PA}})(),_A})(),Q.exports=R()})({get exports(){return oE},set exports(Q){oE=Q}});var Sf=nA(oE);const kG=65535,gP=60003,gq=60004,cq=-1101,lq=-1204,Iq=3e4;var vS;(function(Q){Q[Q.UNKNOWN=65535]="UNKNOWN",Q[Q.NO_NETWORK=2805]="NO_NETWORK",Q[Q.FAILURE_SWITCH_TO_AUDIO=60001]="FAILURE_SWITCH_TO_AUDIO",Q[Q.FAILURE_SWITCH_TO_VIDEO=60002]="FAILURE_SWITCH_TO_VIDEO",Q[Q.NOT_MICROPHONE_LIST=60003]="NOT_MICROPHONE_LIST",Q[Q.NOT_CAMERA_LIST=60004]="NOT_CAMERA_LIST",Q[Q.NOT_SUPPORT=60006]="NOT_SUPPORT",Q[Q.ERROR_PACKAGE_NOT_PURCHASED=-1001]="ERROR_PACKAGE_NOT_PURCHASED",Q[Q.ERROR_PACKAGE_NOT_SUPPORTED=-1002]="ERROR_PACKAGE_NOT_SUPPORTED",Q[Q.ERROR_TIM_VERSION_OUTDATED=-1003]="ERROR_TIM_VERSION_OUTDATED",Q[Q.ERROR_PERMISSION_DENIED=-1101]="ERROR_PERMISSION_DENIED",Q[Q.ERROR_GET_DEVICE_LIST_FAIL=-1102]="ERROR_GET_DEVICE_LIST_FAIL",Q[Q.ERROR_INIT_FAIL=-1201]="ERROR_INIT_FAIL",Q[Q.ERROR_PARAM_INVALID=-1202]="ERROR_PARAM_INVALID",Q[Q.ERROR_REQUEST_REFUSED=-1203]="ERROR_REQUEST_REFUSED",Q[Q.ERROR_REQUEST_REPEATED=-1204]="ERROR_REQUEST_REPEATED",Q[Q.ERROR_SCENE_NOT_SUPPORTED=-1205]="ERROR_SCENE_NOT_SUPPORTED",Q[Q.INVALID_PARAMETER_REQUIRED=-120200]="INVALID_PARAMETER_REQUIRED",Q[Q.INVALID_PARAMETER_TYPE=-120201]="INVALID_PARAMETER_TYPE",Q[Q.INVALID_PARAMETER_EMPTY=-120202]="INVALID_PARAMETER_EMPTY",Q[Q.INVALID_PARAMETER_RANGE=-120203]="INVALID_PARAMETER_RANGE",Q[Q.ERROR_SIGNALING_SEND_FAIL=-1401]="ERROR_SIGNALING_SEND_FAIL",Q[Q.ERROR_INVALID_INVITE_ID=8010]="ERROR_INVALID_INVITE_ID",Q[Q.ERROR_INVALID_SEND_FAIL=8021]="ERROR_INVALID_SEND_FAIL",Q[Q.ERROR_HTTP=3e4]="ERROR_HTTP",Q[Q.ERROR_BLACKLIST=20007]="ERROR_BLACKLIST"})(vS||(vS={}));const cP="switch to audio call error",LG="The package you purchased does not support this ability. You can refer to here to purchase: ${purchaseAddress}",uq="TIM SDK version is too old, Please upgrade version",Eq="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",dq="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",Cq="In the current call scene, this function is not supported",lP="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",Vl="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",hq="切换语音通话失败",IP="您暂不支持使用该能力,请前往如下购买页购买开通: ${purchaseAddress}",uP="TIM SDK 版本太旧,请升级版本",Bq="TUICallEngine 初始化登录未完成,需要在 init 或 login 完成后使用此 API 。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#3a61f42b-e06f-49af-88bf-362d40025887",pw="当前通话状态无法使用该 API。解决方案请前往: https://cloud.tencent.com/document/product/647/78769#5e65043d-e3dc-4bd3-8220-3ac7694dfa42",Mf="当前通话场景不支持该功能",Qq="消息发送失败,常见原因:被叫用户 userID 或群 groupID 不存在。解决方案请前往: https://cloud.tencent.com/document/product/647/84363#661be1b0-f649-4199-a343-958c3f4f4bbb",pq="检测到当前页面正处于 http 协议下,为确保生产环境用户顺畅接入和体验 TUICallEngine SDK 的全部功能,请使用 https 协议(或 localhost)访问音视频应用页面。详情请前往:https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/zh-cn/tutorial-05-info-browser.html#h2-3";function mp({code:Q,params:R,enableDocLink:F=!1,languageList:eA=["en","zh-CN"]}){let sA,_A="";const ZA=vS[Q];try{eA.forEach(QA=>{switch(QA){case"en":sA=UG[ZA];break;case"zh-CN":sA=EP[ZA]}bO(sA)?(_A=_A&&`${_A} `,_A+=sA(R)):CS(sA)&&(_A=sA)})}catch{sA=UG.UNKNOWN_ERROR}return F&&(_A+=" doc:"),_A}const UG={ERROR_INIT_FAIL:({fnName:Q})=>`${Q}: ${Eq}.`,ERROR_SCENE_NOT_SUPPORTED:({fnName:Q})=>`${Q}: ${Cq}.`,ERROR_REQUEST_REFUSED:({value:Q})=>`${dq}. customStatus: ${Q}.`,ERROR_PARAM_INVALID:({fnName:Q})=>`the parameters of the '${Q}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:Q,rule:R,fnName:F,value:eA})=>`'${Q||R.name}' is a required param when calling ${F}(), received: ${eA}.`,INVALID_PARAMETER_TYPE({key:Q,rule:R,fnName:F,value:eA}){const sA=`${Q||R.name}`;let _A="";return _A=Array.isArray(R.type)?R.type.join("|"):R.type,`'${sA}' must be type of ${_A} when calling ${F}(), received type: ${LO(eA)}.`},INVALID_PARAMETER_EMPTY:({key:Q,rule:R,fnName:F})=>`'${Q||R.name}' cannot be empty when calling ${F}().`,INVALID_PARAMETER_RANGE:({key:Q,rule:R,fnName:F,value:eA})=>CG(R.values)?`'${Q||R.name}' must be one of ${R.values.join("|")} when calling ${F}(), received: ${eA}.`:CS(R.values)&&R.values.indexOf("~")!==-1?`'${Q||R.name}' must be the range of ${R.values} when calling ${F}(), received: ${eA}.`:void 0,ERROR_REQUEST_REPEATED:({fnName:Q})=>`you are already ${Q}(), cannot repeated call '${Q}'.`,ERROR_HTTP:()=>`${Vl}.`,ERROR_TIM_VERSION_OUTDATED:()=>`${uq} >= 2.21.2.`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${LG}.`,FAILURE_SWITCH_TO_AUDIO:()=>`${cP}.`,NOT_MICROPHONE_LIST:({fnName:Q,error:R})=>`NotFoundError, no microphone detected, please check your device and the configuration on '${Q}'${R?`, error: ${R.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:Q,error:R})=>`NotFoundError, no camera detected, please check your device and the configuration on '${Q}'${R?`, error: ${R.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:Q,error:R})=>`NotAllowedError, you have disabled camera/microphone access, please allow the current application ${Q} to use the camera/microphone. ${R?`, error: ${R.toString()}.`:"."}`,ERROR_INVALID_SEND_FAIL:()=>`${lP}.`,UNKNOWN_ERROR:({fnName:Q,error:R})=>`'${Q}' throw unknown exception${R?`, error: ${R.toString()}.`:"."}`},EP={ERROR_INIT_FAIL:({fnName:Q})=>`${Q}: ${Bq}。`,ERROR_SCENE_NOT_SUPPORTED:({fnName:Q})=>`${Q}: ${Mf}。`,ERROR_REQUEST_REFUSED:({value:Q})=>`${pw}. customStatus: ${Q}。`,ERROR_PARAM_INVALID:({fnName:Q})=>`the parameters of the '${Q}' you called does not meet the requirements, please check the API documentation.`,INVALID_PARAMETER_REQUIRED:({key:Q,rule:R,fnName:F,value:eA})=>`调用 ${F}() 方法的时候 '${Q||R.name}' 是必须的参数, 收到的值为: ${eA}。`,INVALID_PARAMETER_TYPE({key:Q,rule:R,fnName:F,value:eA}){const sA=`${Q||R.name}`;let _A="";return _A=Array.isArray(R.type)?R.type.join("|"):R.type,`调用 ${F}() 方法的时候 '${sA}' 必须是 ${_A} 类型, 收到的类型是: ${LO(eA)}。`},INVALID_PARAMETER_EMPTY:({key:Q,rule:R,fnName:F,value:eA})=>`调用 ${F}() 的时候 '${Q||R.name}' 不能是空。`,INVALID_PARAMETER_RANGE:({key:Q,rule:R,fnName:F,value:eA})=>CG(R.values)?`调用 ${F}() 的时候 '${Q||R.name}' 必须是 ${R.values.join("|")} 的其中一种, 收到的是: ${eA}。`:CS(R.values)&&R.values.indexOf("~")!==-1?`调用 ${F}() 的时候 '${Q||R.name}' 范围是 ${R.values}, 收到的是: ${eA}。`:void 0,ERROR_REQUEST_REPEATED:({fnName:Q})=>`你已经调用 ${Q}(), 请勿重复调用 '${Q}'。`,ERROR_HTTP:()=>`${pq}。`,ERROR_TIM_VERSION_OUTDATED:()=>`${uP} >= 2.21.2。`,ERROR_PACKAGE_NOT_SUPPORTED:()=>`${IP}。`,FAILURE_SWITCH_TO_AUDIO:()=>`${hq}。`,NOT_MICROPHONE_LIST:({fnName:Q,error:R})=>`NotFoundError,未检测到麦克风设备,请检查您的设备和麦克风上的配置 '${Q}'${R?`, error: ${R.toString()}.`:"."}`,NOT_CAMERA_LIST:({fnName:Q,error:R})=>`NotFoundError,未检测到摄像头设备,请检查您的设备和摄像头上的配置 '${Q}'${R?`, error: ${R.toString()}.`:"."}`,ERROR_PERMISSION_DENIED:({fnName:Q,error:R})=>"NotAllowedError, 您已禁用摄像头/麦克风访问权限,请允许当前应用程序使用摄像头/麦克风。"+(R?`, error: ${R.toString()}.`:"."),ERROR_INVALID_SEND_FAIL:()=>`${Qq}.`};class ul extends Error{constructor({name:R="",code:F=kG,message:eA="",messageParams:sA={},extraCode:_A="",fnName:ZA=""}){super(eA||mp({code:F,params:Object.assign({fnName:ZA},sA)})),this.name="TUICallEngineError",this.message="",this.functionName="",this.name=R||this.name,this.code=F,this.functionName=ZA||this.functionName,this.message=eA||this.message}getCode(){return this.code}}function Fh(){const Q=Sf();return function(R,F,eA){const sA=eA.value,_A=new Set;return eA.value=function(...ZA){return j(this,void 0,void 0,function*(){if(_A.has(this))throw Q.error("avoidRepeatedCall.fail",{text:{error:`previous ${F}() is ongoing, please avoid repeated calls`}}),new ul({code:lq,fnName:F});try{_A.add(this);const QA=yield sA.apply(this,ZA);return _A.delete(this),QA}catch(QA){throw Q.error("avoidRepeatedCall.fail",{text:{error:QA}}),_A.delete(this),QA}})},eA.value.clearCallState=function(ZA){_A.delete(ZA)},eA}}var dP=yr,vf=il,RS=Pa,FG=BG,CP=Math.min,hP=[].copyWithin||function(Q,R){var F=dP(this),eA=RS(F),sA=vf(Q,eA),_A=vf(R,eA),ZA=arguments.length>2?arguments[2]:void 0,QA=CP((ZA===void 0?eA:vf(ZA,eA))-_A,eA-sA),PA=1;for(_A<sA&&sA<_A+QA&&(PA=-1,_A+=QA-1,sA+=QA-1);QA-- >0;)_A in F?F[sA]=F[_A]:FG(F,sA),sA+=PA,_A+=PA;return F},mq=xm;lo({target:"Array",proto:!0},{copyWithin:hP}),mq("copyWithin");var fq=ho.filter;lo({target:"Array",proto:!0,forced:!Ch("filter")},{filter:function(Q){return fq(this,Q,arguments.length>1?arguments[1]:void 0)}});var yq=lo,Dq=ho.findIndex,mw=xm,fw="findIndex",Oh=!0;fw in[]&&Array(1)[fw](function(){Oh=!1}),yq({target:"Array",proto:!0,forced:Oh},{findIndex:function(Q){return Dq(this,Q,arguments.length>1?arguments[1]:void 0)}}),mw(fw);var BP=wc.includes,Sq=xm;lo({target:"Array",proto:!0,forced:vt(function(){return!Array(1).includes()})},{includes:function(Q){return BP(this,Q,arguments.length>1?arguments[1]:void 0)}}),Sq("includes");var QP=lo,pP=wc.indexOf,mP=dB,OG=wA([].indexOf),fP=!!OG&&1/OG([1],1,-0)<0;QP({target:"Array",proto:!0,forced:fP||!mP("indexOf")},{indexOf:function(Q){var R=arguments.length>1?arguments[1]:void 0;return fP?OG(this,Q,R)||0:pP(this,Q,R)}});var Mq=lo,yP=Js,vq=cn,Rq=dB,DP=Pi([].join);Mq({target:"Array",proto:!0,forced:yP!==Object||!Rq("join",",")},{join:function(Q){return DP(vq(this),Q===void 0?",":Q)}});var wq=Dd,_q=cn,Tq=$r,SP=Pa,PG=dB,MP=Math.min,Rf=[].lastIndexOf,fp=!!Rf&&1/[1].lastIndexOf(1,-0)<0,Nq=PG("lastIndexOf"),xG=fp||!Nq?function(Q){if(fp)return wq(Rf,this,arguments)||0;var R=_q(this),F=SP(R);if(F===0)return-1;var eA=F-1;for(arguments.length>1&&(eA=MP(eA,Tq(arguments[1]))),eA<0&&(eA=F+eA);eA>=0;eA--)if(eA in R&&R[eA]===Q)return eA||0;return-1}:Rf;lo({target:"Array",proto:!0,forced:xG!==[].lastIndexOf},{lastIndexOf:xG});var vP=ho.map;lo({target:"Array",proto:!0,forced:!Ch("map")},{map:function(Q){return vP(this,Q,arguments.length>1?arguments[1]:void 0)}});var YG=lo,sE=N,Gq=kt,VG=ms,RP=il,JG=Pa,wP=cn,zE=Te,yw=uB,ZE=ui,bq=wr,HG=Ch("slice"),qG=ZE("species"),PB=Array,xd=Math.max;YG({target:"Array",proto:!0,forced:!HG},{slice:function(Q,R){var F,eA,sA,_A=wP(this),ZA=JG(_A),QA=RP(Q,ZA),PA=RP(R===void 0?ZA:R,ZA);if(sE(_A)&&(F=_A.constructor,(Gq(F)&&(F===PB||sE(F.prototype))||VG(F)&&(F=F[qG])===null)&&(F=void 0),F===PB||F===void 0))return bq(_A,QA,PA);for(eA=new(F===void 0?PB:F)(xd(PA-QA,0)),sA=0;QA<PA;QA++,sA++)QA in _A&&zE(eA,sA,_A[QA]);return yw(eA,sA),eA}});var KG=typeof ArrayBuffer<"u"&&typeof DataView<"u",kq=$r,Ph=Oa,Lq=RangeError,_P=function(Q){if(Q===void 0)return 0;var R=kq(Q),F=Ph(R);if(R!==F)throw new Lq("Wrong length or index");return F},TP=Math.sign||function(Q){var R=+Q;return R===0||R!=R?R:R<0?-1:1},jG=4503599627370496,Uq=TP,Dw=function(Q){return Q+jG-jG},Fq=Math.abs,Oq=function(Q,R,F,eA){var sA=+Q,_A=Fq(sA),ZA=Uq(sA);if(_A<eA)return ZA*Dw(_A/eA/R)*eA*R;var QA=(1+R/2220446049250313e-31)*_A,PA=QA-(QA-_A);return PA>F||PA!=PA?1/0*ZA:ZA*PA},wf=Math.fround||function(Q){return Oq(Q,11920928955078125e-23,34028234663852886e22,11754943508222875e-54)},WG=Array,Sw=Math.abs,xh=Math.pow,NP=Math.floor,XE=Math.log,Yd=Math.LN2,wS={pack:function(Q,R,F){var eA,sA,_A,ZA=WG(F),QA=8*F-R-1,PA=(1<<QA)-1,jA=PA>>1,ie=R===23?xh(2,-24)-xh(2,-77):0,Le=Q<0||Q===0&&1/Q<0?1:0,Ne=0;for((Q=Sw(Q))!=Q||Q===1/0?(sA=Q!=Q?1:0,eA=PA):(eA=NP(XE(Q)/Yd),Q*(_A=xh(2,-eA))<1&&(eA--,_A*=2),(Q+=eA+jA>=1?ie/_A:ie*xh(2,1-jA))*_A>=2&&(eA++,_A/=2),eA+jA>=PA?(sA=0,eA=PA):eA+jA>=1?(sA=(Q*_A-1)*xh(2,R),eA+=jA):(sA=Q*xh(2,jA-1)*xh(2,R),eA=0));R>=8;)ZA[Ne++]=255&sA,sA/=256,R-=8;for(eA=eA<<R|sA,QA+=R;QA>0;)ZA[Ne++]=255&eA,eA/=256,QA-=8;return ZA[Ne-1]|=128*Le,ZA},unpack:function(Q,R){var F,eA=Q.length,sA=8*eA-R-1,_A=(1<<sA)-1,ZA=_A>>1,QA=sA-7,PA=eA-1,jA=Q[PA--],ie=127&jA;for(jA>>=7;QA>0;)ie=256*ie+Q[PA--],QA-=8;for(F=ie&(1<<-QA)-1,ie>>=-QA,QA+=R;QA>0;)F=256*F+Q[PA--],QA-=8;if(ie===0)ie=1-ZA;else{if(ie===_A)return F?NaN:jA?-1/0:1/0;F+=xh(2,R),ie-=ZA}return(jA?-1:1)*F*xh(2,ie-R)}},Pq=yr,GP=il,_f=Pa,Mw=function(Q){for(var R=Pq(this),F=_f(R),eA=arguments.length,sA=GP(eA>1?arguments[1]:void 0,F),_A=eA>2?arguments[2]:void 0,ZA=_A===void 0?F:GP(_A,F);ZA>sA;)R[sA++]=Q;return R},vw=ke,zG=Pi,yp=_t,Rw=KG,xq=rs,ZG=Ba,xB=zO,ww=vt,_S=JA,Yq=$r,XG=Oa,_w=_P,Vq=wf,bP=wS,kP=SC,LP=Sh,Jq=Mw,Hq=wr,Kq=Th,jq=Tc,Tf=x,Nf=ys,UP=Sr.PROPER,$G=Sr.CONFIGURABLE,YB="ArrayBuffer",Vd="DataView",Yh="prototype",Gf="Wrong index",Ab=Nf.getterFor(YB),TS=Nf.getterFor(Vd),FP=Nf.set,nE=vw[YB],cu=nE,VB=cu&&cu[Yh],NC=vw[Vd],JB=NC&&NC[Yh],Tw=Object.prototype,OP=vw.Array,NS=vw.RangeError,Nw=zG(Jq),Gw=zG([].reverse),bw=bP.pack,kw=bP.unpack,Lw=function(Q){return[255&Q]},Uw=function(Q){return[255&Q,Q>>8&255]},eb=function(Q){return[255&Q,Q>>8&255,Q>>16&255,Q>>24&255]},Fw=function(Q){return Q[3]<<24|Q[2]<<16|Q[1]<<8|Q[0]},bf=function(Q){return bw(Vq(Q),23,4)},GC=function(Q){return bw(Q,52,8)},GS=function(Q,R,F){ZG(Q[Yh],R,{configurable:!0,get:function(){return F(this)[R]}})},lu=function(Q,R,F,eA){var sA=TS(Q),_A=_w(F),ZA=!!eA;if(_A+R>sA.byteLength)throw new NS(Gf);var QA=sA.bytes,PA=_A+sA.byteOffset,jA=Hq(QA,PA,PA+R);return ZA?jA:Gw(jA)},Jl=function(Q,R,F,eA,sA,_A){var ZA=TS(Q),QA=_w(F),PA=eA(+sA),jA=!!_A;if(QA+R>ZA.byteLength)throw new NS(Gf);for(var ie=ZA.bytes,Le=QA+ZA.byteOffset,Ne=0;Ne<R;Ne++)ie[Le+Ne]=PA[jA?Ne:R-Ne-1]};if(Rw){var Ow=UP&&nE.name!==YB;ww(function(){nE(1)})&&ww(function(){new nE(-1)})&&!ww(function(){return new nE,new nE(1.5),new nE(NaN),nE.length!==1||Ow&&!$G})?Ow&&$G&&xq(nE,"name",YB):(cu=function(Q){return _S(this,VB),Kq(new nE(_w(Q)),this,cu)},cu[Yh]=VB,VB.constructor=cu,jq(cu,nE)),LP&&kP(JB)!==Tw&&LP(JB,Tw);var Vh=new NC(new cu(2)),Hl=zG(JB.setInt8);Vh.setInt8(0,2147483648),Vh.setInt8(1,2147483649),!Vh.getInt8(0)&&Vh.getInt8(1)||xB(JB,{setInt8:function(Q,R){Hl(this,Q,R<<24>>24)},setUint8:function(Q,R){Hl(this,Q,R<<24>>24)}},{unsafe:!0})}else cu=function(Q){_S(this,VB);var R=_w(Q);FP(this,{type:YB,bytes:Nw(OP(R),0),byteLength:R}),yp||(this.byteLength=R,this.detached=!1)},VB=cu[Yh],JB=(NC=function(Q,R,F){_S(this,JB),_S(Q,VB);var eA=Ab(Q),sA=eA.byteLength,_A=Yq(R);if(_A<0||_A>sA)throw new NS("Wrong offset");if(_A+(F=F===void 0?sA-_A:XG(F))>sA)throw new NS("Wrong length");FP(this,{type:Vd,buffer:Q,byteLength:F,byteOffset:_A,bytes:eA.bytes}),yp||(this.buffer=Q,this.byteLength=F,this.byteOffset=_A)})[Yh],yp&&(GS(cu,"byteLength",Ab),GS(NC,"buffer",TS),GS(NC,"byteLength",TS),GS(NC,"byteOffset",TS)),xB(JB,{getInt8:function(Q){return lu(this,1,Q)[0]<<24>>24},getUint8:function(Q){return lu(this,1,Q)[0]},getInt16:function(Q){var R=lu(this,2,Q,arguments.length>1&&arguments[1]);return(R[1]<<8|R[0])<<16>>16},getUint16:function(Q){var R=lu(this,2,Q,arguments.length>1&&arguments[1]);return R[1]<<8|R[0]},getInt32:function(Q){return Fw(lu(this,4,Q,arguments.length>1&&arguments[1]))},getUint32:function(Q){return Fw(lu(this,4,Q,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(Q){return kw(lu(this,4,Q,arguments.length>1&&arguments[1]),23)},getFloat64:function(Q){return kw(lu(this,8,Q,arguments.length>1&&arguments[1]),52)},setInt8:function(Q,R){Jl(this,1,Q,Lw,R)},setUint8:function(Q,R){Jl(this,1,Q,Lw,R)},setInt16:function(Q,R){Jl(this,2,Q,Uw,R,arguments.length>2&&arguments[2])},setUint16:function(Q,R){Jl(this,2,Q,Uw,R,arguments.length>2&&arguments[2])},setInt32:function(Q,R){Jl(this,4,Q,eb,R,arguments.length>2&&arguments[2])},setUint32:function(Q,R){Jl(this,4,Q,eb,R,arguments.length>2&&arguments[2])},setFloat32:function(Q,R){Jl(this,4,Q,bf,R,arguments.length>2&&arguments[2])},setFloat64:function(Q,R){Jl(this,8,Q,GC,R,arguments.length>2&&arguments[2])}});Tf(cu,YB),Tf(NC,Vd);var ql={ArrayBuffer:cu,DataView:NC},PP=LA,Pw="ArrayBuffer",xP=ql[Pw];lo({global:!0,constructor:!0,forced:ke[Pw]!==xP},{ArrayBuffer:xP}),PP(Pw);var YP=lo,xw=wA,bS=vt,HB=Sn,VP=il,Wq=Oa,Yw=ql.ArrayBuffer,kS=ql.DataView,tb=kS.prototype,ib=xw(Yw.prototype.slice),ob=xw(tb.getUint8),JP=xw(tb.setUint8);YP({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:bS(function(){return!new Yw(2).slice(1,void 0).byteLength})},{slice:function(Q,R){if(ib&&R===void 0)return ib(HB(this),Q);for(var F=HB(this).byteLength,eA=VP(Q,F),sA=VP(R===void 0?F:R,F),_A=new Yw(Wq(sA-eA)),ZA=new kS(this),QA=new kS(_A),PA=0;eA<sA;)JP(QA,PA++,ob(ZA,eA++));return _A}}),lo({global:!0,constructor:!0,forced:!KG},{DataView:ql.DataView});var sb=Pi,HP=K,qP=ms,KP=Ks,nb=wr,jP=Oi,rb=Function,WP=sb([].concat),zP=sb([].join),LS={},ZP=jP?rb.bind:function(Q){var R=HP(this),F=R.prototype,eA=nb(arguments,1),sA=function(){var _A=WP(eA,nb(arguments));return this instanceof sA?function(ZA,QA,PA){if(!KP(LS,QA)){for(var jA=[],ie=0;ie<QA;ie++)jA[ie]="a["+ie+"]";LS[QA]=rb("C,a","return new C("+zP(jA,",")+")")}return LS[QA](ZA,PA)}(R,_A.length,_A):R.apply(Q,_A)};return qP(F)&&(sA.prototype=F),sA},ab=ZP;lo({target:"Function",proto:!0,forced:Function.bind!==ab},{bind:ab});var XP=_t,$P=Sr.EXISTS,Vw=Pi,Ax=Ba,gb=Function.prototype,ex=Vw(gb.toString),cb=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,tx=Vw(cb.exec);XP&&!$P&&Ax(gb,"name",{configurable:!0,get:function(){try{return tx(cb,ex(this))[1]}catch{return""}}});var ix=lo,ox=Math.floor,sx=Math.log,nx=Math.LOG2E;ix({target:"Math",stat:!0},{clz32:function(Q){var R=Q>>>0;return R?31-ox(sx(R+.5)*nx):32}}),lo({target:"Math",stat:!0},{fround:wf});var rx=lo,ax=vt,lb=Math.imul;rx({target:"Math",stat:!0,forced:ax(function(){return lb(4294967295,5)!==-5||lb.length!==2})},{imul:function(Q,R){var F=65535,eA=+Q,sA=+R,_A=F&eA,ZA=F&sA;return 0|_A*ZA+((F&eA>>>16)*ZA+_A*(F&sA>>>16)<<16>>>0)}}),lo({target:"Math",stat:!0},{trunc:Tl});var Ib=_t,gx=Pi,cx=oo,lx=vt,Jw=bc,Ix=ZI,ux=Go,Ex=yr,dx=Js,Jd=Object.assign,Cx=Object.defineProperty,Hw=gx([].concat),ub=!Jd||lx(function(){if(Ib&&Jd({b:1},Jd(Cx({},"a",{enumerable:!0,get:function(){Cx(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var Q={},R={},F=Symbol("assign detection"),eA="abcdefghijklmnopqrst";return Q[F]=7,eA.split("").forEach(function(sA){R[sA]=sA}),Jd({},Q)[F]!==7||Jw(Jd({},R)).join("")!==eA})?function(Q,R){for(var F=Ex(Q),eA=arguments.length,sA=1,_A=Ix.f,ZA=ux.f;eA>sA;)for(var QA,PA=dx(arguments[sA++]),jA=_A?Hw(Jw(PA),_A(PA)):Jw(PA),ie=jA.length,Le=0;ie>Le;)QA=jA[Le++],Ib&&!cx(ZA,PA,QA)||(F[QA]=PA[QA]);return F}:Jd,US=ub;lo({target:"Object",stat:!0,arity:2,forced:Object.assign!==US},{assign:US}),lo({target:"Object",stat:!0,sham:!_t},{create:Ig});var qw=lo,Eb=_t,Kw=rr.f;qw({target:"Object",stat:!0,forced:Object.defineProperty!==Kw,sham:!Eb},{defineProperty:Kw});var jw=lo,Ww=vt,zq=cn,go=Ze.f,hx=_t;jw({target:"Object",stat:!0,forced:!hx||Ww(function(){go(1)}),sham:!hx},{getOwnPropertyDescriptor:function(Q,R){return go(zq(Q),R)}});var FS=rr.f,Zq=_t,zw=ke,OS=Pi,Xq=kl,Zw=Th,Bx=rs,db=Ig,Qx=cg.f,px=Cs,PS=SO,Xw=Mn,mi=iw,Qo=UF,mx=function(Q,R,F){F in Q||FS(Q,F,{configurable:!0,get:function(){return R[F]},set:function(eA){R[F]=eA}})},Jh=Rr,Hh=vt,gc=Ks,Ci=ys.enforce,Y=LA,NI=up,KA=ON,Kl=ui("match"),bC=zw.RegExp,kf=bC.prototype,$q=zw.SyntaxError,AK=OS(kf.exec),xS=OS("".charAt),fx=OS("".replace),yx=OS("".indexOf),Cb=OS("".slice),eK=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,qB=/a/g,Et=/a/g,Dx=new bC(qB)!==qB,ri=Qo.MISSED_STICKY,hb=Qo.UNSUPPORTED_Y,Sx=Zq&&(!Dx||ri||NI||KA||Hh(function(){return Et[Kl]=!1,bC(qB)!==qB||bC(Et)===Et||String(bC(qB,"i"))!=="/a/i"}));if(Xq("RegExp",Sx)){for(var KB=function(Q,R){var F,eA,sA,_A,ZA,QA,PA=px(kf,this),jA=PS(Q),ie=R===void 0,Le=[],Ne=Q;if(!PA&&jA&&ie&&Q.constructor===KB)return Q;if((jA||px(kf,Q))&&(Q=Q.source,ie&&(R=mi(Ne))),Q=Q===void 0?"":Xw(Q),R=R===void 0?"":Xw(R),Ne=Q,NI&&"dotAll"in qB&&(eA=!!R&&yx(R,"s")>-1)&&(R=fx(R,/s/g,"")),F=R,ri&&"sticky"in qB&&(sA=!!R&&yx(R,"y")>-1)&&hb&&(R=fx(R,/y/g,"")),KA&&(_A=function(Be){for(var lt,ai=Be.length,et=0,qe="",dA=[],Qt=db(null),$e=!1,Vi=!1,li=0,eo="";et<ai;et++){if((lt=xS(Be,et))==="\\")lt+=xS(Be,++et);else if(lt==="]")$e=!1;else if(!$e)switch(!0){case lt==="[":$e=!0;break;case lt==="(":if(qe+=lt,Cb(Be,et+1,et+3)==="?:")continue;AK(eK,Cb(Be,et+1))&&(et+=2,Vi=!0),li++;continue;case(lt===">"&&Vi):if(eo===""||gc(Qt,eo))throw new $q("Invalid capture group name");Qt[eo]=!0,dA[dA.length]=[eo,li],Vi=!1,eo="";continue}Vi?eo+=lt:qe+=lt}return[qe,dA]}(Q),Q=_A[0],Le=_A[1]),ZA=Zw(bC(Q,R),PA?this:kf,KB),(eA||sA||Le.length)&&(QA=Ci(ZA),eA&&(QA.dotAll=!0,QA.raw=KB(function(Be){for(var lt,ai=Be.length,et=0,qe="",dA=!1;et<ai;et++)(lt=xS(Be,et))!=="\\"?dA||lt!=="."?(lt==="["?dA=!0:lt==="]"&&(dA=!1),qe+=lt):qe+="[\\s\\S]":qe+=lt+xS(Be,++et);return qe}(Q),F)),sA&&(QA.sticky=!0),Le.length&&(QA.groups=Le)),Q!==Ne)try{Bx(ZA,"source",Ne===""?"(?:)":Ne)}catch{}return ZA},Mx=Qx(bC),Lf=0;Mx.length>Lf;)mx(KB,bC,Mx[Lf++]);kf.constructor=KB,KB.prototype=kf,Jh(zw,"RegExp",KB,{constructor:!0})}Y("RegExp");var vx=lo,Bb=wA,Hd=Ze.f,Rx=Oa,$w=Mn,qd=AG,_x=mo,Qb=eG,rE=Bb("".slice),A0=Math.min,e0=Qb("endsWith"),tK=!e0&&!!function(){var Q=Hd(String.prototype,"endsWith");return Q&&!Q.writable}();vx({target:"String",proto:!0,forced:!tK&&!e0},{endsWith:function(Q){var R=$w(_x(this));qd(Q);var F=arguments.length>1?arguments[1]:void 0,eA=R.length,sA=F===void 0?eA:A0(Rx(F),eA),_A=$w(Q);return rE(R,sA-_A.length,sA)===_A}});var pb=lo,YS=AG,Tx=mo,Nx=Mn,iK=eG,oK=Pi("".indexOf);pb({target:"String",proto:!0,forced:!iK("includes")},{includes:function(Q){return!!~oK(Nx(Tx(this)),Nx(YS(Q)),arguments.length>1?arguments[1]:void 0)}});var qh=Sr.PROPER,sK=vt,t0=_B,mb=$m.trim;lo({target:"String",proto:!0,forced:function(Q){return sK(function(){return!!t0[Q]()||"
"[Q]()!=="
"||qh&&t0[Q].name!==Q})}("trim")},{trim:function(){return mb(this)}});var GI,Dp,VS,bI={},jB={get exports(){return bI},set exports(Q){bI=Q}},WB=KG,Gx=_t,aE=ke,i0=Ls,o0=ms,Sp=Ks,kC=xa,JS=yn,bx=rs,fb=Rr,YA=Ba,zn=Cs,Uf=SC,Ff=Sh,HS=ui,yb=Ma,qS=ys.enforce,KS=ys.get,Of=aE.Int8Array,jS=Of&&Of.prototype,kx=aE.Uint8ClampedArray,Db=kx&&kx.prototype,zB=Of&&Uf(Of),Iu=jS&&Uf(jS),Lx=Object.prototype,s0=aE.TypeError,Sb=HS("toStringTag"),Mb=yb("TYPED_ARRAY_TAG"),n0="TypedArrayConstructor",ZB=WB&&!!Ff&&kC(aE.opera)!=="Opera",Ux=!1,Pf={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Fx={BigInt64Array:8,BigUint64Array:8},Ox=function(Q){var R=Uf(Q);if(o0(R)){var F=KS(R);return F&&Sp(F,n0)?F[n0]:Ox(R)}},Kh=function(Q){if(!o0(Q))return!1;var R=kC(Q);return Sp(Pf,R)||Sp(Fx,R)};for(GI in Pf)(VS=(Dp=aE[GI])&&Dp.prototype)?qS(VS)[n0]=Dp:ZB=!1;for(GI in Fx)(VS=(Dp=aE[GI])&&Dp.prototype)&&(qS(VS)[n0]=Dp);if((!ZB||!i0(zB)||zB===Function.prototype)&&(zB=function(){throw new s0("Incorrect invocation")},ZB))for(GI in Pf)aE[GI]&&Ff(aE[GI],zB);if((!ZB||!Iu||Iu===Lx)&&(Iu=zB.prototype,ZB))for(GI in Pf)aE[GI]&&Ff(aE[GI].prototype,Iu);if(ZB&&Uf(Db)!==Iu&&Ff(Db,Iu),Gx&&!Sp(Iu,Sb))for(GI in Ux=!0,YA(Iu,Sb,{configurable:!0,get:function(){return o0(this)?this[Mb]:void 0}}),Pf)aE[GI]&&bx(aE[GI],Mb,GI);var Co={NATIVE_ARRAY_BUFFER_VIEWS:ZB,TYPED_ARRAY_TAG:Ux&&Mb,aTypedArray:function(Q){if(Kh(Q))return Q;throw new s0("Target is not a typed array")},aTypedArrayConstructor:function(Q){if(i0(Q)&&(!Ff||zn(zB,Q)))return Q;throw new s0(JS(Q)+" is not a typed array constructor")},exportTypedArrayMethod:function(Q,R,F,eA){if(Gx){if(F)for(var sA in Pf){var _A=aE[sA];if(_A&&Sp(_A.prototype,Q))try{delete _A.prototype[Q]}catch{try{_A.prototype[Q]=R}catch{}}}Iu[Q]&&!F||fb(Iu,Q,F?R:ZB&&jS[Q]||R,eA)}},getTypedArrayConstructor:Ox,isTypedArray:Kh,TypedArray:zB,TypedArrayPrototype:Iu},vb=ke,r0=vt,xf=wN,Mp=Co.NATIVE_ARRAY_BUFFER_VIEWS,nK=vb.ArrayBuffer,Ja=vb.Int8Array,rK=!Mp||!r0(function(){Ja(1)})||!r0(function(){new Ja(-1)})||!xf(function(Q){new Ja,new Ja(null),new Ja(1.5),new Ja(Q)},!0)||r0(function(){return new Ja(new nK(2),1,void 0).length!==1}),Px=ms,xx=Math.floor,WS=Number.isInteger||function(Q){return!Px(Q)&&isFinite(Q)&&xx(Q)===Q},a0=$r,g0=RangeError,Yx=function(Q){var R=a0(Q);if(R<0)throw new g0("The argument can't be less than 0");return R},Rb=RangeError,Vx=function(Q,R){var F=Yx(Q);if(F%R)throw new Rb("Wrong offset");return F},aK=Math.round,gK=xa,wb=ag,XB=TypeError,Jx=function(Q){var R=wb(Q,"number");if(typeof R=="number")throw new XB("Can't convert number to bigint");return BigInt(R)},cK=B,vp=oo,zS=Ti,c0=yr,lK=Pa,IK=fF,Hx=vN,ZS=HR,XS=function(Q){var R=gK(Q);return R==="BigInt64Array"||R==="BigUint64Array"},_b=Co.aTypedArrayConstructor,l0=Jx,I0=Pa,Tb=function(Q,R,F){for(var eA=0,sA=arguments.length>2?F:I0(R),_A=new Q(sA);sA>eA;)_A[eA]=R[eA++];return _A},qx=lo,u0=ke,E0=oo,Nb=_t,Yf=rK,$S=Co,d0=ql,C0=JA,Kx=pA,Vf=rs,uu=WS,jx=Oa,Jf=_P,AM=Vx,Gb=function(Q){var R=aK(Q);return R<0?0:R>255?255:255&R},h0=_g,jh=Ks,eM=xa,bb=ms,kb=fs,Wx=Ig,zx=Cs,Kd=Sh,Hf=cg.f,Lb=function(Q){var R,F,eA,sA,_A,ZA,QA,PA,jA=zS(this),ie=c0(Q),Le=arguments.length,Ne=Le>1?arguments[1]:void 0,Be=Ne!==void 0,lt=Hx(ie);if(lt&&!ZS(lt))for(PA=(QA=IK(ie,lt)).next,ie=[];!(ZA=vp(PA,QA)).done;)ie.push(ZA.value);for(Be&&Le>2&&(Ne=cK(Ne,arguments[2])),F=lK(ie),eA=new(_b(jA))(F),sA=XS(eA),R=0;F>R;R++)_A=Be?Ne(ie[R],R):ie[R],eA[R]=sA?l0(_A):+_A;return eA},B0=ho.forEach,uK=LA,Zx=Ba,Ub=rr,Q0=Ze,qf=Tb,Xx=Th,p0=ys.get,Fb=ys.set,$x=ys.enforce,m0=Ub.f,A2=Q0.f,Wd=u0.RangeError,gE=d0.ArrayBuffer,Kf=gE.prototype,Rp=d0.DataView,Cg=$S.NATIVE_ARRAY_BUFFER_VIEWS,Ra=$S.TYPED_ARRAY_TAG,Je=$S.TypedArray,Yn=$S.TypedArrayPrototype,bn=$S.isTypedArray,Tr="BYTES_PER_ELEMENT",$E="Wrong length",wa=function(Q,R){Zx(Q,R,{configurable:!0,get:function(){return p0(this)[R]}})},Ob=function(Q){var R;return zx(Kf,Q)||(R=eM(Q))==="ArrayBuffer"||R==="SharedArrayBuffer"},Pb=function(Q,R){return bn(Q)&&!kb(R)&&R in Q&&uu(+R)&&R>=0},jf=function(Q,R){return R=h0(R),Pb(Q,R)?Kx(2,Q[R]):A2(Q,R)},Wf=function(Q,R,F){return R=h0(R),!(Pb(Q,R)&&bb(F)&&jh(F,"value"))||jh(F,"get")||jh(F,"set")||F.configurable||jh(F,"writable")&&!F.writable||jh(F,"enumerable")&&!F.enumerable?m0(Q,R,F):(Q[R]=F.value,Q)};Nb?(Cg||(Q0.f=jf,Ub.f=Wf,wa(Yn,"buffer"),wa(Yn,"byteOffset"),wa(Yn,"byteLength"),wa(Yn,"length")),qx({target:"Object",stat:!0,forced:!Cg},{getOwnPropertyDescriptor:jf,defineProperty:Wf}),jB.exports=function(Q,R,F){var eA=Q.match(/\d+/)[0]/8,sA=Q+(F?"Clamped":"")+"Array",_A="get"+Q,ZA="set"+Q,QA=u0[sA],PA=QA,jA=PA&&PA.prototype,ie={},Le=function(Be,lt){m0(Be,lt,{get:function(){return function(ai,et){var qe=p0(ai);return qe.view[_A](et*eA+qe.byteOffset,!0)}(this,lt)},set:function(ai){return function(et,qe,dA){var Qt=p0(et);Qt.view[ZA](qe*eA+Qt.byteOffset,F?Gb(dA):dA,!0)}(this,lt,ai)},enumerable:!0})};Cg?Yf&&(PA=R(function(Be,lt,ai,et){return C0(Be,jA),Xx(bb(lt)?Ob(lt)?et!==void 0?new QA(lt,AM(ai,eA),et):ai!==void 0?new QA(lt,AM(ai,eA)):new QA(lt):bn(lt)?qf(PA,lt):E0(Lb,PA,lt):new QA(Jf(lt)),Be,PA)}),Kd&&Kd(PA,Je),B0(Hf(QA),function(Be){Be in PA||Vf(PA,Be,QA[Be])}),PA.prototype=jA):(PA=R(function(Be,lt,ai,et){C0(Be,jA);var qe,dA,Qt,$e=0,Vi=0;if(bb(lt)){if(!Ob(lt))return bn(lt)?qf(PA,lt):E0(Lb,PA,lt);qe=lt,Vi=AM(ai,eA);var li=lt.byteLength;if(et===void 0){if(li%eA)throw new Wd($E);if((dA=li-Vi)<0)throw new Wd($E)}else if((dA=jx(et)*eA)+Vi>li)throw new Wd($E);Qt=dA/eA}else Qt=Jf(lt),qe=new gE(dA=Qt*eA);for(Fb(Be,{buffer:qe,byteOffset:Vi,byteLength:dA,length:Qt,view:new Rp(qe)});$e<Qt;)Le(Be,$e++)}),Kd&&Kd(PA,Je),jA=PA.prototype=Wx(Yn)),jA.constructor!==PA&&Vf(jA,"constructor",PA),$x(jA).TypedArrayConstructor=PA,Ra&&Vf(jA,Ra,sA);var Ne=PA!==QA;ie[sA]=PA,qx({global:!0,constructor:!0,forced:Ne,sham:!Cg},ie),Tr in PA||Vf(PA,Tr,eA),Tr in jA||Vf(jA,Tr,eA),uK(sA)}):jB.exports=function(){},bI("Float32",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Float64",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Int8",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Int16",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Int32",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Uint8",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Uint8",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}},!0),bI("Uint16",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}}),bI("Uint32",function(Q){return function(R,F,eA){return Q(this,R,F,eA)}});var tM=Co,e2=Pi(hP),t2=tM.aTypedArray;(0,tM.exportTypedArrayMethod)("copyWithin",function(Q,R){return e2(t2(this),Q,R,arguments.length>2?arguments[2]:void 0)});var iM=ho.every,ko=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("every",function(Q){return iM(ko(this),Q,arguments.length>1?arguments[1]:void 0)});var i2=Mw,o2=Jx,EK=xa,f0=oo,wp=vt,s2=Co.aTypedArray,oM=Co.exportTypedArrayMethod,Wh=Pi("".slice);oM("fill",function(Q){var R=arguments.length;s2(this);var F=Wh(EK(this),0,3)==="Big"?o2(Q):+Q;return f0(i2,this,F,R>1?arguments[1]:void 0,R>2?arguments[2]:void 0)},wp(function(){var Q=0;return new Int8Array(2).fill({valueOf:function(){return Q++}}),Q!==1}));var zf=Tb,sM=Co.getTypedArrayConstructor,xb=function(Q,R){return zf(sM(Q),R)},n2=ho.filter,zd=xb,y0=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("filter",function(Q){var R=n2(y0(this),Q,arguments.length>1?arguments[1]:void 0);return zd(this,R)});var D0=ho.find,Yb=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("find",function(Q){return D0(Yb(this),Q,arguments.length>1?arguments[1]:void 0)});var nM=ho.findIndex,Vb=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("findIndex",function(Q){return nM(Vb(this),Q,arguments.length>1?arguments[1]:void 0)});var S0=ho.forEach,LC=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("forEach",function(Q){S0(LC(this),Q,arguments.length>1?arguments[1]:void 0)});var Jb=wc.includes,Hb=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("includes",function(Q){return Jb(Hb(this),Q,arguments.length>1?arguments[1]:void 0)});var qb=wc.indexOf,M0=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("indexOf",function(Q){return qb(M0(this),Q,arguments.length>1?arguments[1]:void 0)});var $B=ke,r2=vt,Zf=Pi,v0=Co,AQ=ep,rM=ui("iterator"),R0=$B.Uint8Array,a2=Zf(AQ.values),_p=Zf(AQ.keys),dK=Zf(AQ.entries),w0=v0.aTypedArray,Xf=v0.exportTypedArrayMethod,Tp=R0&&R0.prototype,eQ=!r2(function(){Tp[rM].call([1])}),Kb=!!Tp&&Tp.values&&Tp[rM]===Tp.values&&Tp.values.name==="values",g2=function(){return a2(w0(this))};Xf("entries",function(){return dK(w0(this))},eQ),Xf("keys",function(){return _p(w0(this))},eQ),Xf("values",g2,eQ||!Kb,{name:"values"}),Xf(rM,g2,eQ||!Kb,{name:"values"});var Np=Co.aTypedArray,Ad=Co.exportTypedArrayMethod,jb=Pi([].join);Ad("join",function(Q){return jb(Np(this),Q)});var c2=Dd,Wb=xG,l2=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("lastIndexOf",function(Q){var R=arguments.length;return c2(Wb,l2(this),R>1?[Q,arguments[1]]:[Q])});var aM=ho.map,zb=xb,I2=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("map",function(Q){var R=aM(I2(this),Q,arguments.length>1?arguments[1]:void 0);return zb(this,R)});var ed=K,Ts=yr,hg=Js,_0=Pa,Zb=TypeError,u2="Reduce of empty array with no initial value",Gp=function(Q){return function(R,F,eA,sA){var _A=Ts(R),ZA=hg(_A),QA=_0(_A);if(ed(F),QA===0&&eA<2)throw new Zb(u2);var PA=Q?QA-1:0,jA=Q?-1:1;if(eA<2)for(;;){if(PA in ZA){sA=ZA[PA],PA+=jA;break}if(PA+=jA,Q?PA<0:QA<=PA)throw new Zb(u2)}for(;Q?PA>=0:QA>PA;PA+=jA)PA in ZA&&(sA=F(sA,ZA[PA],PA,_A));return sA}},T0={left:Gp(!1),right:Gp(!0)},bp=T0.left,E2=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("reduce",function(Q){var R=arguments.length;return bp(E2(this),Q,R,R>1?arguments[1]:void 0)});var eg=T0.right,gM=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("reduceRight",function(Q){var R=arguments.length;return eg(gM(this),Q,R,R>1?arguments[1]:void 0)});var Ha=Co.aTypedArray,N0=Co.exportTypedArrayMethod,CK=Math.floor;N0("reverse",function(){for(var Q,R=this,F=Ha(R).length,eA=CK(F/2),sA=0;sA<eA;)Q=R[sA],R[sA++]=R[--F],R[F]=Q;return R});var d2=ke,er=oo,cM=Co,G0=Pa,$f=Vx,Xb=yr,Ay=vt,$b=d2.RangeError,b0=d2.Int8Array,lM=b0&&b0.prototype,k0=lM&&lM.set,L0=cM.aTypedArray,Ak=cM.exportTypedArrayMethod,td=!Ay(function(){var Q=new Uint8ClampedArray(2);return er(k0,Q,{length:1,0:3},1),Q[1]!==3}),ek=td&&cM.NATIVE_ARRAY_BUFFER_VIEWS&&Ay(function(){var Q=new b0(2);return Q.set(1),Q.set("2",1),Q[0]!==0||Q[1]!==2});Ak("set",function(Q){L0(this);var R=$f(arguments.length>1?arguments[1]:void 0,1),F=Xb(Q);if(td)return er(k0,this,F,R);var eA=this.length,sA=G0(F),_A=0;if(sA+R>eA)throw new $b("Wrong length");for(;_A<sA;)this[R+_A]=F[_A++]},!td||ek);var kp=wr,tk=Co.aTypedArray,hK=Co.getTypedArrayConstructor;(0,Co.exportTypedArrayMethod)("slice",function(Q,R){for(var F=kp(tk(this),Q,R),eA=hK(this),sA=0,_A=F.length,ZA=new eA(_A);_A>sA;)ZA[sA]=F[sA++];return ZA},vt(function(){new Int8Array(1).slice()}));var C2=ho.some,BK=Co.aTypedArray;(0,Co.exportTypedArrayMethod)("some",function(Q){return C2(BK(this),Q,arguments.length>1?arguments[1]:void 0)});var tQ=wr,ik=Math.floor,Lp=function(Q,R){var F=Q.length;if(F<8)for(var eA,sA,_A=1;_A<F;){for(sA=_A,eA=Q[_A];sA&&R(Q[sA-1],eA)>0;)Q[sA]=Q[--sA];sA!==_A++&&(Q[sA]=eA)}else for(var ZA=ik(F/2),QA=Lp(tQ(Q,0,ZA),R),PA=Lp(tQ(Q,ZA),R),jA=QA.length,ie=PA.length,Le=0,Ne=0;Le<jA||Ne<ie;)Q[Le+Ne]=Le<jA&&Ne<ie?R(QA[Le],PA[Ne])<=0?QA[Le++]:PA[Ne++]:Le<jA?QA[Le++]:PA[Ne++];return Q},IM=Lp,ey=$o.match(/firefox\/(\d+)/i),U0=!!ey&&+ey[1],ok=/MSIE|Trident/.test($o),uM=$o.match(/AppleWebKit\/(\d+)\./),sk=!!uM&&+uM[1],F0=wA,EM=vt,ty=K,iQ=IM,iy=U0,nk=ok,h2=Zr,rk=sk,QK=Co.aTypedArray,O0=Co.exportTypedArrayMethod,Up=ke.Uint16Array,zh=Up&&F0(Up.prototype.sort),ak=!(!zh||EM(function(){zh(new Up(2),null)})&&EM(function(){zh(new Up(2),{})})),gk=!!zh&&!EM(function(){if(h2)return h2<74;if(iy)return iy<67;if(nk)return!0;if(rk)return rk<602;var Q,R,F=new Up(516),eA=Array(516);for(Q=0;Q<516;Q++)R=Q%4,F[Q]=515-Q,eA[Q]=Q-2*R+3;for(zh(F,function(sA,_A){return(sA/4|0)-(_A/4|0)}),Q=0;Q<516;Q++)if(F[Q]!==eA[Q])return!0});O0("sort",function(Q){return Q!==void 0&&ty(Q),gk?zh(this,Q):iQ(QK(this),function(R){return function(F,eA){return R!==void 0?+R(F,eA)||0:eA!=eA?-1:F!=F?1:F===0&&eA===0?1/F>0&&1/eA<0?1:-1:F>eA}}(Q))},!gk||ak);var ck=Oa,dM=il,lk=Co.aTypedArray,CM=Co.getTypedArrayConstructor;(0,Co.exportTypedArrayMethod)("subarray",function(Q,R){var F=lk(this),eA=F.length,sA=dM(Q,eA);return new(CM(F))(F.buffer,F.byteOffset+sA*F.BYTES_PER_ELEMENT,ck((R===void 0?eA:dM(R,eA))-sA))});var Ik=Dd,hM=Co,BM=vt,oy=wr,P0=ke.Int8Array,QM=hM.aTypedArray,pM=hM.exportTypedArrayMethod,cE=[].toLocaleString,x0=!!P0&&BM(function(){cE.call(new P0(1))});pM("toLocaleString",function(){return Ik(cE,x0?oy(QM(this)):QM(this),oy(arguments))},BM(function(){return[1,2].toLocaleString()!==new P0([1,2]).toLocaleString()})||!BM(function(){P0.prototype.toLocaleString.call([1,2])}));var B2=Co.exportTypedArrayMethod,id=vt,sy=Pi,Y0=ke.Uint8Array,Q2=Y0&&Y0.prototype||{},Bg=[].toString,Fp=sy([].join);id(function(){Bg.call({})})&&(Bg=function(){return Fp(this)});var oQ=Q2.toString!==Bg;B2("toString",Bg,oQ);var uk=ke;lo({global:!0,forced:uk.globalThis!==uk},{globalThis:uk});var kI=ke,Ek=Dd,ny=Ls,Zd=W,pK=$o,p2=wr,m2=UA,f2=kI.Function,Op=/MSIE .\./.test(pK)||Zd==="BUN"&&function(){var Q=kI.Bun.version.split(".");return Q.length<3||Q[0]==="0"&&(Q[1]<3||Q[1]==="3"&&Q[2]==="0")}(),sQ=function(Q,R){var F=2;return Op?function(eA,sA){var _A=m2(arguments.length,1)>F,ZA=ny(eA)?eA:f2(eA),QA=_A?p2(arguments,F):[],PA=_A?function(){Ek(ZA,this,QA)}:ZA;return Q(PA,sA)}:Q},nQ=lo,dk=ke,Pr=sQ(dk.setInterval);nQ({global:!0,bind:!0,forced:dk.setInterval!==Pr},{setInterval:Pr});var V0=lo,UC=ke,mM=sQ(UC.setTimeout);V0({global:!0,bind:!0,forced:UC.setTimeout!==mM},{setTimeout:mM});var fM,Pp,ry,y2,mK=(fM=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0,function(Q){var R,F;(Q=(Q=Q||{})!==void 0?Q:{}).ready=new Promise(function(AA,Z){R=AA,F=Z}),["_main","___getTypeName","___embind_register_native_and_builtin_types","_fflush","onRuntimeInitialized"].forEach(function(AA){Object.getOwnPropertyDescriptor(Q.ready,AA)||Object.defineProperty(Q.ready,AA,{get:function(){return dl("You are getting "+AA+" 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 dl("You are setting "+AA+" 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 eA=Object.assign({},Q),sA="./this.program",_A=(typeof window>"u"?"undefined":It(window))=="object",ZA=typeof importScripts=="function",QA=(typeof process>"u"?"undefined":It(process))=="object"&&It(process.versions)=="object"&&typeof process.versions.node=="string",PA=!_A&&!QA&&!ZA;if(Q.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 jA,ie,Le="";if(PA){if((typeof process>"u"?"undefined":It(process))=="object"&&typeof MrA=="function"||(typeof window>"u"?"undefined":It(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?)");ie=function(AA){var Z;return(Z=kM(AA))?Z:typeof readbuffer=="function"?new Uint8Array(readbuffer(AA)):($e(It(Z=read(AA,"binary"))=="object"),Z)},jA=function(AA,Z,hA){setTimeout(function(){return Z(ie(AA))},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(!_A&&!ZA)throw new Error("environment detection error");if(ZA?Le=self.location.href:typeof document<"u"&&document.currentScript&&(Le=document.currentScript.src),fM&&(Le=fM),Le=Le.indexOf("blob:")!==0?Le.substr(0,Le.replace(/[?#].*/,"").lastIndexOf("/")+1):"",(typeof window>"u"?"undefined":It(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?)");ZA&&(ie=function(AA){try{var Z=new XMLHttpRequest;return Z.open("GET",AA,!1),Z.responseType="arraybuffer",Z.send(null),new Uint8Array(Z.response)}catch(bA){var hA=kM(AA);if(hA)return hA;throw bA}}),jA=function(AA,Z,hA){var bA=new XMLHttpRequest;bA.open("GET",AA,!0),bA.responseType="arraybuffer",bA.onload=function(){if(bA.status==200||bA.status==0&&bA.response)Z(bA.response);else{var ue=kM(AA);ue?Z(ue.buffer):hA()}},bA.onerror=hA,bA.send(null)}}var Ne,Be,lt,ai=Q.print||console.log.bind(console),et=Q.printErr||console.warn.bind(console);function qe(AA,Z){Object.getOwnPropertyDescriptor(Q,AA)||Object.defineProperty(Q,AA,{configurable:!0,get:function(){dl("Module."+AA+" has been replaced with plain "+Z+" (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 dA(AA,Z){Object.getOwnPropertyDescriptor(Q,AA)||Object.defineProperty(Q,AA,{configurable:!0,get:function(){dl(function(hA,bA){var ue="'"+hA+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";return bA&&(ue+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),ue}(AA,Z))}})}Object.assign(Q,eA),eA=null,Ne="fetchSettings",Object.getOwnPropertyDescriptor(Q,Ne)&&dl("`Module."+Ne+"` was supplied but `"+Ne+"` not included in INCOMING_MODULE_JS_API"),Q.arguments&&Q.arguments,qe("arguments","arguments_"),Q.thisProgram&&(sA=Q.thisProgram),qe("thisProgram","thisProgram"),Q.quit&&Q.quit,qe("quit","quit_"),$e(Q.memoryInitializerPrefixURL===void 0,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),$e(Q.pthreadMainPrefixURL===void 0,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),$e(Q.cdInitializerPrefixURL===void 0,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),$e(Q.filePackagePrefixURL===void 0,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),$e(Q.read===void 0,"Module.read option was removed (modify read_ in JS)"),$e(Q.readAsync===void 0,"Module.readAsync option was removed (modify readAsync in JS)"),$e(Q.readBinary===void 0,"Module.readBinary option was removed (modify readBinary in JS)"),$e(Q.setWindowTitle===void 0,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),$e(Q.TOTAL_MEMORY===void 0,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),qe("read","read_"),qe("readAsync","readAsync"),qe("readBinary","readBinary"),qe("setWindowTitle","setWindowTitle"),$e(!ZA,"worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable."),$e(!QA,"node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."),$e(!PA,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),Q.wasmBinary&&(Be=Q.wasmBinary),qe("wasmBinary","wasmBinary"),Q.noExitRuntime,qe("noExitRuntime","noExitRuntime"),(typeof WebAssembly>"u"?"undefined":It(WebAssembly))!="object"&&dl("no native wasm support detected");var Qt=!1;function $e(AA,Z){AA||dl("Assertion failed"+(Z?": "+Z:""))}var Vi,li,eo,xo,Jt,Xe,Si,So,uo,Io=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Yo(AA,Z,hA){for(var bA=Z+hA,ue=Z;AA[ue]&&!(ue>=bA);)++ue;if(ue-Z>16&&AA.buffer&&Io)return Io.decode(AA.subarray(Z,ue));for(var Se="";Z<ue;){var Re=AA[Z++];if(128&Re){var Ue=63&AA[Z++];if((224&Re)!=192){var st=63&AA[Z++];if((240&Re)==224?Re=(15&Re)<<12|Ue<<6|st:((248&Re)!=240&&Vp("Invalid UTF-8 leading byte 0x"+Re.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),Re=(7&Re)<<18|Ue<<12|st<<6|63&AA[Z++]),Re<65536)Se+=String.fromCharCode(Re);else{var He=Re-65536;Se+=String.fromCharCode(55296|He>>10,56320|1023&He)}}else Se+=String.fromCharCode((31&Re)<<6|Ue)}else Se+=String.fromCharCode(Re)}return Se}function hn(AA,Z){return AA?Yo(eo,AA,Z):""}function Zn(AA,Z,hA,bA){if(!(bA>0))return 0;for(var ue=hA,Se=hA+bA-1,Re=0;Re<AA.length;++Re){var Ue=AA.charCodeAt(Re);if(Ue>=55296&&Ue<=57343&&(Ue=65536+((1023&Ue)<<10)|1023&AA.charCodeAt(++Re)),Ue<=127){if(hA>=Se)break;Z[hA++]=Ue}else if(Ue<=2047){if(hA+1>=Se)break;Z[hA++]=192|Ue>>6,Z[hA++]=128|63&Ue}else if(Ue<=65535){if(hA+2>=Se)break;Z[hA++]=224|Ue>>12,Z[hA++]=128|Ue>>6&63,Z[hA++]=128|63&Ue}else{if(hA+3>=Se)break;Ue>1114111&&Vp("Invalid Unicode code point 0x"+Ue.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)."),Z[hA++]=240|Ue>>18,Z[hA++]=128|Ue>>12&63,Z[hA++]=128|Ue>>6&63,Z[hA++]=128|63&Ue}}return Z[hA]=0,hA-ue}function qa(AA){for(var Z=0,hA=0;hA<AA.length;++hA){var bA=AA.charCodeAt(hA);bA>=55296&&bA<=57343&&(bA=65536+((1023&bA)<<10)|1023&AA.charCodeAt(++hA)),bA<=127?++Z:Z+=bA<=2047?2:bA<=65535?3:4}return Z}var es=5242880;Q.TOTAL_STACK&&$e(es===Q.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Fc,ay=Q.INITIAL_MEMORY||16777216;function yM(){if(!Qt){var AA=Wp(),Z=Si[AA>>2],hA=Si[AA+4>>2];Z==34821223&&hA==2310721022||dl("Stack overflow! Stack cookie has been overwritten at 0x"+AA.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+hA.toString(16)+" 0x"+Z.toString(16)),Si[0]!==1668509029&&dl("Runtime error: The application has corrupted its heap memory area (address zero)!")}}qe("INITIAL_MEMORY","INITIAL_MEMORY"),$e(ay>=es,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+ay+"! (TOTAL_STACK="+es+")"),$e(typeof Int32Array<"u"&&typeof Float64Array<"u"&&Int32Array.prototype.subarray!=null&&Int32Array.prototype.set!=null,"JS engine does not provide full typed array support"),$e(!Q.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally"),$e(ay==16777216,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically"),function(){var AA=new Int16Array(1),Z=new Int8Array(AA.buffer);if(AA[0]=25459,Z[0]!==115||Z[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var gy=[],aQ=[],hk=[],J0=!1;function fK(AA){gy.unshift(AA)}function S2(AA){hk.unshift(AA)}$e(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$e(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$e(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$e(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 gQ=0,cQ=null,cy=null,ly={};function dl(AA){Q.onAbort&&Q.onAbort(AA),et(AA="Aborted("+AA+")"),Qt=!0;var Z=new WebAssembly.RuntimeError(AA);throw F(Z),Z}var lE={error:function(){dl("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(){lE.error()},createDataFile:function(){lE.error()},createPreloadedFile:function(){lE.error()},createLazyFile:function(){lE.error()},open:function(){lE.error()},mkdev:function(){lE.error()},registerDevice:function(){lE.error()},analyzePath:function(){lE.error()},loadFilesFromDB:function(){lE.error()},ErrnoError:function(){lE.error()}};Q.FS_createDataFile=lE.createDataFile,Q.FS_createPreloadedFile=lE.createPreloadedFile;var Wl,Bk="data:application/octet-stream;base64,";function H0(AA){return AA.startsWith(Bk)}function q0(AA){return AA.startsWith("file://")}function Qg(AA,Z){return function(){var hA=AA,bA=Z;return bA=Q.asm,$e(J0,"native function `"+hA+"` called before runtime initialization"),bA[AA]||$e(bA[AA],"exported native function `"+hA+"` not found"),bA[AA].apply(null,arguments)}}function Qk(AA){try{if(AA==Wl&&Be)return new Uint8Array(Be);var Z=kM(AA);if(Z)return Z;if(ie)return ie(AA);throw"both async and sync fetching of the wasm failed"}catch(hA){dl(hA)}}function od(AA){for(;AA.length>0;)AA.shift()(Q)}function Vp(AA){Vp.shown||(Vp.shown={}),Vp.shown[AA]||(Vp.shown[AA]=1,et(AA))}function pk(AA){switch(AA){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+AA)}}H0(Wl="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+AAKJCi4DZW52DV9fYXNzZXJ0X2ZhaWwABQNlbnYFYWJvcnQADwNlbnYaX2VtdmFsX2dldF9tb2R1bGVfcHJvcGVydHkAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUABANlbnYNX2VtdmFsX2RlY3JlZgABA2VudhdfZW12YWxfY2FsbF92b2lkX21ldGhvZAAFA2VudhhfZW12YWxfZ2V0X21ldGhvZF9jYWxsZXIABANlbnYNX2VtdmFsX2luY3JlZgABA2VudhNfZW12YWxfZ2V0X3Byb3BlcnR5AAQDZW52EF9lbXZhbF9pc19zdHJpbmcAAgNlbnYJX2VtdmFsX2FzACQDZW52EV9lbXZhbF9nZXRfZ2xvYmFsAAIDZW52El9lbXZhbF9uZXdfY3N0cmluZwACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALwNlbnYWX2VtdmFsX3J1bl9kZXN0cnVjdG9ycwABA2Vudg1fZW12YWxfdHlwZW9mAAIDZW52Cl9lbXZhbF9uZXcACgNlbnYRX2VtdmFsX2luc3RhbmNlb2YABANlbnYQX2VtdmFsX2lzX251bWJlcgACA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzADADZW52C19lbXZhbF9jYWxsAAoDZW52Gl9lbWJpbmRfcmVnaXN0ZXJfc21hcnRfcHRyADEDZW52JV9lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY2xhc3NfZnVuY3Rpb24ADANlbnYiX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jb25zdHJ1Y3RvcgAIA2Vudh9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2Z1bmN0aW9uAA4DZW52FV9lbWJpbmRfcmVnaXN0ZXJfdm9pZAAAA2VudhVfZW1iaW5kX3JlZ2lzdGVyX2Jvb2wABgNlbnYYX2VtYmluZF9yZWdpc3Rlcl9pbnRlZ2VyAAYDZW52Fl9lbWJpbmRfcmVnaXN0ZXJfZmxvYXQAAwNlbnYbX2VtYmluZF9yZWdpc3Rlcl9zdGRfc3RyaW5nAAADZW52HF9lbWJpbmRfcmVnaXN0ZXJfc3RkX3dzdHJpbmcAAwNlbnYWX2VtYmluZF9yZWdpc3Rlcl9lbXZhbAAAA2VudhxfZW1iaW5kX3JlZ2lzdGVyX21lbW9yeV92aWV3AAMDZW52FWVtc2NyaXB0ZW5fbWVtY3B5X2JpZwADA2VudhRfZW1zY3JpcHRlbl9kYXRlX25vdwAlA2VudiBfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYwANA2VudhJlbXNjcmlwdGVuX2dldF9ub3cAJRZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAKA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAIWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MRFlbnZpcm9uX3NpemVzX2dldAAEFndhc2lfc25hcHNob3RfcHJldmlldzELZW52aXJvbl9nZXQABANlbnYKc3RyZnRpbWVfbAALA2VudgtzZXRUZW1wUmV0MAABA2VudhdfZW1iaW5kX3JlZ2lzdGVyX2JpZ2ludAAMFndhc2lfc25hcHNob3RfcHJldmlldzEHZmRfc2VlawALA9oW2BYPAQICAQEEBwIHAgICAgMCAQEAAgACAwICBAUCBAIAAAAAAQICAAAAAAIAAQIHAAcABQQBBAIHBAAABAAFAgQABwQDAwIAAgcECwAEAgIAAAMEBAQABAcSEhYHBAQCAgcPAhUCAAIEAgQEAgEBBAMCAgACBAQAAAQEAgIBAQICAgABAgICAQQEAAEEAQMEBwAFAAEABAQEAwQEJiYEBAQEBAQEAQQEBzIVAgIVGxsnBAICAgIEBAcBBAQABAECCgABDwIAAgIEAwADAgAAAAAAAAQAAgIEAg0EAgQAAQICAwADAgICAQICBAEAAgABAQAHAAAEBAACAQECAQIBAAIBAgICBwAAAAIAAgAHBQIDBwIHBwMBBAQHBAIPBAIBAQACAgAABgAABAQCAQIBAgMAAgQECgAAAQAHAwcABwQHAQEEAAcEBwIEAgkCAgcCBAcCBAAKBAACBwEEAwICAgIBAQEBAgEBAQECAAIBBAQDAQQAAAQBAAICAQAAAwQAAgQXBAQBBQEBBAEBAwgFAgUAAQQABwQEAAIBAQQAAgAAAQICAgcAAgEBAQcEBwIEBwEACgoEBwcFAwAABAABAAMBAAMDAAEBAQoACwUBAQIHAgAHBAQHBwcCBAcBAwEHBAEHBwAEAQIACQACBQcBAAcGBgwCBAACAAQCAQAHBwIBAAIGAgkAAwICAAECAwAEAQEAAQQDAAEAAwABAQIAAQECAwIEAQECAAABBwQABwIEBQABBAAABQAFBQoEAAAAAAQEAgEAAgEAAAIBAAIBAAAEAAAEAgEBAAcFAgUCBAQFBAIBAgECAQIAAAMKCwoDCgAFAwADAAMHBAMEBAMAAAcBAgAEAAMAAAMEAQQABwQHAgQCAgIBAgsCBAAACQQAAgECAAEAAQIEBwAHAQACAg0DAwIBAAEAMwQDBAICAgIAAgIAAQEYAAEEAQIDAgEBAQACAgQCAwQDAgAABBYBAgEPAQINAQ0BDQENARUCFgICFQAAAAEBBAEAAgEEBxcFAxkDAgECAQEBBAIHBwIEAQIEAQIAAQsDAQQBAQEBAAACAAMCAQEBAQAcAAEAAAAFAgAGBwUEAwQABgUGAwUIAgAAAAECAgMDAQEBAQIFBgcABgcDCAYDCAMGDAYADgUGBQYFBgUGDgMGAxgGBQEBAwIBAAUCAQEFAgEAAQADAgEBBAABAgABAAMEBwQACgACAQADBAQAAAcAAAAEBAAAAQAEAQEAAAcBBQUDAwMDBQgDBgUGBQUGAwUFBQYFAwYDBQIBAQECAQICAgIBAAEDAgcDAQMEAAMBAQECAQAAAwEFBgYDAwQBCAQBAgADAAEEAgMEAQMCAgAEAwICAQECAgEEAQIDAgECAwABAQEEAwACAgECAwADBQUCAwIBAgMAAQEAAwABAgMCAQIDAAEBAwQDAgECAwAAAQIBAgMAAwEAAQICAQECAQEBAAAAAAAACAgCAwAFCAAABQYAAwUIAgUABQIGAAYFBggDAwQFAgMFBgoDBQAIBgMBBQMCAAMAAwMGAwgDAwMBBA4GBwQNBgAFCAUFBQYIAAAAAwICAgMEDQMDAAAAAAMDAAADAwMDAwMDAwYEBgAAAQEFBQAAAAABAQEBAgUCAAAAAAEDAQABAwMDAwQAAgMAAAEBAQEDAwAAAAAAAAUFBgYGBgMFAgMBAgICAQEBAwIBBgMFAQECAQMCAQMCAQAAAQACAQEHBwAEAwEHAgADAAcCAQIDAAEBBAECAgECAwADBAcCAAIEAAIBAAMBAgACAQIDAAUKAQMBAQEEBQAFAgIAAQAABAEFAQEBAQEDDQcHAgEBAQIFAQACAgEBAQEDBQgBAQAFAgECAwIBAQEABAAAAQENAgIAAgIAAgICBAYDBAADBQQAAQUDAgIBAQMBAgICAgEBAAQBBQUAAAAAAwMCAQECAgEAAgEFDAIBAAQDAAMDAQMCBAEFDwIDAQABAAcHAQABDwMHAwcCBQoGBwYCAgIBAAMAAQYBBAMAAQAFBQMCAQUBBQUAAAAFAwMBBAIDAgECAwABAQMDAgECAgECAwAAAgECAQIDAAEDAgMCAQIDAAEAAwEABAEAAAAAAAMCAQICBAIAAA0BAQ8CAQADAwMDAAAABAMCAQIDAAEBAQMAAgECAwABAgECAwADAgECAwADAgIBAgMAAAIBAgMAAAIBAgMAAgcAAwEBAQIBBgwEAQYEDAkMEh0bAwYIBAQEBwgCAQEAAAUDAgEDAgEFAgECAwABAQEABwICDQEFBwAAAAcKAAkJBwUDAgQCBAABAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwAFBAUFBAEAAwEIAgEBAwMEAwYABwYBAAABAAIBAQIBAgECAQIBAQMCAQIDAAEBAQMCAQIDAAMCAQIDAAEBAQIBAgMAAAUCAQIDAAUCAQIDAAUDAAAAAAADAwYAAAUAAAAFAAIAAQIEAQACBAQBAgECAQAAAAABAAAAAAAABQUAAwAAAwAFAAMBAwMDAwMDAwAFAwYFBAMBAwAAAwECAgEBAQEBDAIBAAAABQQDBgcABgYBAQUFAQUDAQMBAAAFBQYAAAEBAQEIBggFBQUFBQUDAwUBAg4GAgEABQUCAQACAQIDAAMCAQIDAAEBAQMCAQIDAAIBAgMAAgECAwADAwMDAwMDBQMFBAAEAQAMAAIBAgEBDAAABQQEBAMIAwUGBwYAAAADAQUFAwMBAAAFBgAAAQEBAQgBCAUFBQUFBQMDAQUCAQAFAgEAAAABAgECAwACAQIDAAIBAgMAAgECAwACAQIDAAMAAAUFBQYDAwMDAwMAAwMFBAMABAMBAgICAQEBAQEACAAAAQQBAAUBAwEGAwYOAAMFAAEMBAAABgYDAwMDAwMFBQUFBQUAAAEBAQEBAQMAAAEABgUABgMDBQEDAgEMDAIBAQACAQIDAAIBAgMAAgECAwACAQIDAAIBAgMABAcAAAMFAAAAAAAAAAYGDAYMBQMICAwMCAYGBgACAQEFBQ4CAQUCAQUCAQIBBQIBAQIBAgMAAAIBAgMAAAIBAg0EAQIBAAYGAAIBBAIBBAIBBAIBBAEAAQEEBAQHAAACAQEDAggIBAIBBQIBAgEFAgEDAAIBAQIBAQIBAgMAAQEFAQIBAgMAAQEFAgEDAgIBAgMAAwEAAg8CBwMHDQQCAgcHCgMEAgceBAICNAsRAwIFNQYoAAMKBwISAicTHxMFNgoZBwcCBAQCAQQAAgITHzc4ExYAAB8TExM5OgQCBwQEAgIBAgECGhIFBwQDAgIEBwICAQEBBAICBAICBAIEAgIBAQQBBAIEBBIAAgICAQEBAwIEAgcCBAQCAgAFAwAACgIEAgQaAQUBAgECAQECAQECAQICBAACBAIEAgQBAgoCIDsFCwUHCwUDBwkCAAARBAcABAEJAgMhCgUJKQkKCQoJKQkGKjwJJAkFCQUNBwQBCQIRBAkEAyEJCQkJCQYqCQkJBQcCAgAHCwsFCwcMFAsUKwcKDCILCwILDAkUCxQrDCILBwAAEAQJCQkICQgJBgsQEAQJCQkICQgJBgsQEQgAEQIAAAACAAIAESwAAwMRAAIAAAICABEsABEAAgIAAgQjLS4ABwkjLS4JBwgIAgIAAQIDAgIDAQIEAQEBAQcKCgoEBwQHCgcLAgEEBwQHCgcLEAsLARAHEAsLAgILAhAQCxAQCwIBAgECAgAAAAAAAAACAQIBAAIBAgECAQIBAgECAQIBAgECAQIBAgECAQECAgQAAAECAgQDICABAgIABAQEBAQEBAMOBQIGAwADAAcHAAcEDgYAAwAAEgEFAQ8HBwMFBQUEBQUDBggGBgYICAgNAQIPDQ0NCwYIBg4LDBE9IT4EBwFwAZgOmA4FBgEBgAKAAgYTA38BQfDSwwILfwFBAAt/AUEACwfyAxoGbWVtb3J5AgARX193YXNtX2NhbGxfY3RvcnMALgRmcmVlAKoTBm1hbGxvYwCpExlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQANX19nZXRUeXBlTmFtZQD3EipfX2VtYmluZF9yZWdpc3Rlcl9uYXRpdmVfYW5kX2J1aWx0aW5fdHlwZXMA+BIQX19lcnJub19sb2NhdGlvbgD9EgZmZmx1c2gAwhMVZW1zY3JpcHRlbl9zdGFja19pbml0APcWGWVtc2NyaXB0ZW5fc3RhY2tfZ2V0X2ZyZWUA+BYZZW1zY3JpcHRlbl9zdGFja19nZXRfYmFzZQD5FhhlbXNjcmlwdGVuX3N0YWNrX2dldF9lbmQA+hYJc3RhY2tTYXZlAPQWDHN0YWNrUmVzdG9yZQD1FgpzdGFja0FsbG9jAPYWDGR5bkNhbGxfamlpagD7FgxkeW5DYWxsX3ZpaWoA/BYNZHluQ2FsbF92aWppaQD9FgxkeW5DYWxsX3ZpamkA/hYPZHluQ2FsbF92aWppaWlpAP8WDGR5bkNhbGxfamlqaQCAFw5keW5DYWxsX3ZpaWppaQCBFw5keW5DYWxsX2lpaWlpagCCFw9keW5DYWxsX2lpaWlpamoAgxcQZHluQ2FsbF9paWlpaWlqagCEFwn0GwEAQQELlw63AYIChAKkAqUCjQL4AaYC9wE5igLhFpUDsgO8A4wDkgMyuAMyMjIytwOyArkDugO6A7oDuAM5uQEyxQPHAzm5ATm5AdQDpAjVAzm5AZAEuAO5AbICuQHUA9UDkwSSBJQEkgS5AZIEogSSBKQEpgSnBKgEqwSsBK0EkgTBFu8E8ATxBPIE8wT0BJIE9QT2BPcE+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/QQEhAwJAAkACQAJAIAAtAAhBAWsOAwMAAQILIAApAwBCAFkMAwtBACEDIAArAwAiAUQAAAAAAADgw2ZFIAFEAAAAAAAA4ENjRXINASABENYBDAILQQAhAwsgAwtFDQYLIAApAwAhBAwECyAAKwMAIgFEAAAAAAAA4ENlIAFEAAAAAAAA4MNmcUUNBSABmUQAAAAAAADgQ2NFDQIgAbAhBAwDCyAAMQAAIQQMAgsgAkEYahBrIgBBldcBEGwaDAQLQoCAgICAgICAgH8hBAsgAkGgAWokACAEDwsgAkEYahBrIgBB5oIBEGwaDAELIAJBGGoQayIAQYWDARBsGgsgAkEIaiAAEG0AC7kCAwF8An8BfiMAQaABayICJAACQAJAAkACQAJAAkACQAJAAkAgAC0ACA4GBQABAgMEAwsCf0EBIQMCQAJAAkACQCAALQAIQQFrDgMAAwECCyAAKQMAQgBZDAMLQQAhAyAAKwMAIgFEAAAAAAAAAABmRSABRAAAAAAAAPBDY0VyDQEgARDWAQwCC0EAIQMLIAMLRQ0FCyAAKQMAIQQMAwsgACsDACIBRAAAAAAAAPBDZSABRAAAAAAAAAAAZnFFDQQgAUQAAAAAAADwQ2MgAUQAAAAAAAAAAGZxRQ0CIAGxIQQMAgsgAkEYahBrIgBB8dYBEGwaDAQLIAAxAAAhBAsgAkGgAWokACAEDwsgAkEYahBrIgBBrIIBEGwaDAELIAJBGGoQayIAQcuCARBsGgsgAkEIaiAAEG0AC4sBAgF8AX8jAEGgAWsiAiQAAkACQAJAAkACQAJAIAAtAAgOBgUEAAEDAgMLIAApAwC6IQEMBAsgACsDACEBDAMLRAAAAAAAAPA/RAAAAAAAAAAAIAAtAAAbIQEMAgsgAkEYahBrIgBBmNEBEGwaIAJBCGogABBtAAsgACkDALkhAQsgAkGgAWokACABC+oDAQJ/IwBBEGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4IAAECAwUEBgcJCyAAEN4BBEBBASEBIAAQ3AFEAAAAAAAAAABhDQgLIAAtAAgiAkEFRgRAQQEhASAALQAARQ0ICwJAIAIiAUEERgRAIAMgABCCAUEBIQEgAxBDDQEgAC0ACCEBCwJAIAFBBkYEQCAAKAIAEJ4BRQ0BIAAtAAghAQsgAUEHRgR/IAAoAgAQngFFDQEgAC0ACAUgAQtFIQEgAkEERg0BDAkLQQEhASACQQRHDQgLIAMQzBYaDAcLQQEhASAAEI8BDQYgAC0ACCICQQNGBEAgACsDABCQAQ0HCyACRSACQQVGciEBDAYLQQEhASAAENgBDQUgAC0ACCICQQNGBEAgACsDABDZAQ0GCyACRSACQQVGciEBDAULQQEhASAAEN4BDQQgAC0ACCIAQQVGIABFciEBDAQLQQEhASAAEN4BDQMgAC0ACCIAQQVGIABFciEBDAMLQQEhASAAEN4BDQJBACEBIAAvAQgiAEH/AXFBBk8NAkExIAB2QQFxIQEMAgsgAC0ACCIAQQZGIABFciEBDAELIAAtAAgiAEEHRiAARXIhAQsgA0EQaiQAIAEPC0GX9QBB1ZwBQbcZQeA+EAAACw0AIAAtAAhBAWtBA0kLTAECfyAAAn8gACgCACIBKAIAIgJFBEAgARDKAgRAA0AgASgCCCIBEMoCDQALCyABKAIIDAELA0AgAiIBKAIEIgINAAsgAQs2AgAgAAslAAJ/AkAgABDhAQ0AIAAQRQ0AQQAgABBGRQ0BGgsgABCYAUULCwgAIAAtAAhFCzQBAX8jAEEQayICJAAgAkEIaiAAIAEgABC1AiAAELcCEIEDEKYBKAIAIQAgAkEQaiQAIAALGAAgACABEL8BIABBCGpB0LYDEM4BGiAAC/EFAQh/IwBBEGsiCCQAIwBBEGsiByQAIAdBCGohCSMAQSBrIgQkACAEQRhqIQUjAEEgayIDJAAgAyABNgIYAkACQAJAAkACQCADQRhqIANBEGogABCnARCmARCWAUUEQCAAEKsBIAIgA0EYahCyARD9AkUNAQsgAyADKAIYNgIQIANBEGogA0EIaiAAEPABEKYBEJYBRQRAIAAQqwEgA0EQahDfARCyASACEP0CRQ0CCyADKAIYIgUoAgBFDQMgBCADKAIQIgE2AhwgAUEEaiEFDAQLIAAQqwEgA0EYahCyASACEP0CRQ0BIAMgAygCGBD+AjYCECADQRBqIANBCGogABCnARCmARCWAUUEQCAAEKsBIAIgA0EQahCyARD9AkUNAQsgAygCGCgCBEUEQCAEIAMoAhgiATYCHCABQQRqIQUMBAsgAygCECEFDAILIAAQtQIhBiAAELcCIQUCQCAGBEADQCAAEKsBIAIgBiIBQRBqIgYQ/QIEQCABIQUgASgCACIGDQEMAwsgABCrASAGIAIQ/QJFDQIgAUEEaiEFIAEoAgQiBg0ADAILAAsgABC3AiIBIQULIAQgATYCHAwCCyAEIAMoAhgiATYCHCAFIAE2AgAMAQsgBCAFNgIcCyADQSBqJAAgBSgCACEBIARBADoAFyABRQRAIwBBEGsiASQAIAAQtwIhAyAEQQhqIgZBMBDAFiABQQhqIANBABC/AhDAAiIDKAIAQRBqIgogAhC/ASAKQQhqIAJBCGoQzgEaIAMQtwJBAToABCABQRBqJAAgACAEKAIcIAUgBigCABC6AiAGELsCIQEgBEEBOgAXIAYoAgAhACAGQQA2AgAgAARAIAYQtwIiAi0ABARAIAIoAgAaIABBEGoQ5QELIAAEQCACKAIAGiAAEKoTCwsLIAkgBEEIaiABEKYBIARBF2oQvAIgBEEgaiQAIAcoAgghACAHQRBqJAAgCEEIaiAAEKYBKAIAIQAgCEEQaiQAIAALDwAgAEEIahDRASAAEMABC6UBAQJ/IwBBoAFrIgIkAAJAAkAgAC0ACCIDBEAgA0EGRg0BIAJBGGoQayIAQZnsABBsGiACQQhqIAAQbQALEI4BQdC2AyEADAELIAJBGGoiAyABEL0BAn8gAkEIaiAAKAIAIAMQ5wEQoQEiASACIAAoAgAQlQEQoQEQtQEEQBCOAUHQtgMMAQsgARCyAUEIagshACACQRhqEMABCyACQaABaiQAIAALigEBAn8jAEEQayIDJAAjAEEQayICJAAgAiAAIAEgABC1AiAAELcCEIEDNgIIIAIgABCnATYCAAJ/AkAgAkEIaiACELQBRQ0AIAAQqwEgASACQQhqELIBEP0CDQAgAigCCAwBCyAAEKcBCyEAIAJBEGokACADQQhqIAAQpgEoAgAhACADQRBqJAAgAAszAQJ/IwBBIGsiAiQAIAJBCGoiAyABEM4BGiAAIAAQmAEQbyADEGkgAxDRASACQSBqJAALEQAgACABIAEQihMgAWoQiAELCAAgABCwARoLRAEBfyMAQRBrIgEkACAAEKsBGiABQdWq1aoBNgIMIAFB/////wc2AgggAUEMaiABQQhqEMIBKAIAIQAgAUEQaiQAIAALZQECfyMAQRBrIgUkACAFQQA2AgwgAEEMaiADEOkCIAEEQCAAKAIQIAEQggMhBAsgACAENgIAIAAgBCACQQxsaiICNgIIIAAgAjYCBCAAEK4CIAQgAUEMbGo2AgAgBUEQaiQAIAALjwEBBX8gABCpASAAEKsBIQUgAUEEaiECIAAoAgAiBiAAKAIEIgNHBEAgAigCACEEA0AgBSAEQQxrIANBDGsiAxDBAiACIAIoAgBBDGsiBDYCACADIAZHDQALCyAAIAIQwQEgAEEEaiABQQhqEMEBIAAQqwEgARCuAhDBASABIAEoAgQ2AgAgACAAEJMBEIMDC14BA38gACgCBCIBIAAoAghHBEADQCAAKAIQIQIgACAAKAIIQQxrIgM2AgggAiADENMCIAAoAgggAUcNAAsLIAAoAgAEQCAAKAIQGiAAKAIAIQEgABCEAxogARCqEwsLBgAQyAIACygBAX8jAEEQayIBJAAgAUEIaiAAKAIAEKYBKAIAIQAgAUEQaiQAIAALCAAgABCwARoLCgAgAC0ACEEFRgsKACAALQAIQQRGCx4AIAAoAgwiAEUEQEEADwsgACABQQJ0aigCAEEARwspACABIAIQ9AEEQCAAIAEoAgwgAkECdGooAgAQRxoPCyAAQbbmARBHGgthAQN/IwBBQGoiAyQAIANBCGoiBBCMAiICQdTmATYCACACQQRqEJ0BGiACQRBqEDAaIAJBHGoQMBogAkEAOgAwIAJCyoCAgDA3AiggACAEIAEQ9wEgBBD4ARogA0FAayQAC0EBAX8gAUEQaiIDED4gAUEAOgAwIAFBHGoQPiABIAIQ+QEgASACEPoBIAEgAhD7ASADQazmARD8ASAAIAMQuAEaCycAIABB1OYBNgIAIABBHGoQzBYaIABBEGoQzBYaIABBBGoQmQEgAAv1AQEDfyMAQTBrIgIkACABQQAQ9AEEQCAAQRBqIgNBrOYBEPwBIAAQkwIgAkEgaiIEIAFBABD1ASACIAQQlAI2AhggAiAEEJUCNgIQIAJBGGogAkEQahC0AQRAA0AgAyACKAIYLAAAEGcCQCACKAIYLQAAQQpHDQAgAiACQSBqEJUCNgIQIAJBGGogAkEQahC0AUUNACACIAJBGGpBARCWAjYCCCACKAIILQAAQS9HDQAgABCTAgsgAkEYaiIBEJcCIAIgAkEgahCVAjYCECABIAJBEGoQtAENAAsLIANBrOYBEPwBIAJBIGoQzBYaCyACQTBqJAALtA4BC38jAEEwayIEJAACQAJAAkACQAJAAkACQAJAAkAgAS0ACA4IAAECAwQFBgcICyAAIARBIGpB/dkAEEciABCYAiAAEMwWGgwHCyAEQSBqIgIgARDaARCFASAAIAIQmAIgAhDMFhoMBgsgBEEgaiICIAEQ2wEQhgEgACACEJgCIAIQzBYaDAULIARBIGoiAiABENwBEIcBIAAgAhCYAiACEMwWGgwECyABIARBCGogBEEYahDUAQRAIARBIGoiAiAEKAIIIgEgBCgCGCABaxCPAiAAIAIQmAIgAhDMFhoMBAsgACAEQSBqQbbmARBHIgAQmAIgABDMFhoMAwsgBEEgaiICIAEQiwEQgAIgACACEJgCIAIQzBYaDAILIwBBEGsiBSQAAkACQAJAIAEQmAEiDEUEQCAAIAVB5agBEEciABCYAiAAEMwWGgwBCyABEJgBIQcgACgCKCEKIABBBGoiBiIDEJMBIQIgAxCqASADIAIQnwIgB0EDbCICIApPIQgCQCAHRSACIApPcg0AQQAhAgNAAn8gASACEOYBIgMQRUUEQEEAIAMQRkUNARoLIAMQmAFBAEcLIggNASACQQFqIgIgB0kNAAsLAkAgCAR/QQEFIAYgBxCfASAAQQE6ADAgB0EBdEECaiEIQQAhAgJAIAdFBEBBACEKDAELQQAhCgNAAn9BASABIAIQ5gEiA0EAEPQBDQAaQQEgA0EBEPQBDQAaIANBAhD0AQshAyAAIAEgAhDmARD6ASADIApyIQogBiACEJQBED0gCGohCCACQQFqIgIgB0cNAAsLIABBADoAMCAKIAggACgCKE9yC0EBcQRAIAAgBUG5qQEQRyICEJoCIAIQzBYaIAAQmwIgAEEQaiEKQQAhAiAAQQRqIgYQmQIhAwNAIAAgASACEOYBIggQ+QECQCADRQRAIAAgBiACEJQBEJoCDAELIAAQkwIgACAIEPoBCyACQQFqIgIgDEYNAiAKQSwQZyAAIAgQ+wEMAAsACyAAQQRqIgEQkwEgDEcNAiAAQRBqIgJBvtkBEPwBQQAhAANAIAAEQCACQafmARD8AQsgAiABIAAQlAEQZiAAQQFqIgAgDEcNAAsgAkHoqAEQ/AEMAQsgACAIEPsBIAAQnAIgACAFQemoARBHIgAQmgIgABDMFhoLIAVBEGokAAwBC0Hw6gBB1ZwBQZAjQZbtABAAAAsMAQsgBEEgaiICIAEQkgECQCACEJkCBEAgACAEQQhqQYAIEEciABCYAgwBCyAAIARBCGpBhQgQRyICEJoCIAIQzBYaIAAQmwIgBCAEQSBqEJACNgIYIABBEGohCANAIAAgASAEQRhqIgooAgAiAhCXASIMEPkBIARBCGohByACEDghAiMAQbABayIJJAACQCACRQRAIAdBtuYBEEcaDAELQa7mASEDIwBBIGsiBSQAAkACQEGu5gEsAAAiBgRAQa/mAS0AAA0BCyACIAYQiRMhAwwBCyAFQQBBIBD8EhpBruYBLQAAIgsEQANAIAUgC0EDdkEccWoiBiAGKAIAQQEgC3RyNgIAIAMtAAEhCyADQQFqIQMgCw0ACwsgAiIDLQAAIgtFDQADQCAFIAtBA3ZBHHFqKAIAIAt2QQFxDQEgAy0AASELIANBAWohAyALDQALCyAFQSBqJAACQCACIAMgAmtqIgNBACADLQAAGw0AIAIhAwNAIAMtAAAiBgRAIANBAWohAyAGQRh0QRh1EIECRQ0BCwsgBg0AIAlBGGoiBiAJQaABakGe2QEQRyIDIAIQcSAHIAZBntkBEHEgBhDMFhogAxDMFhoMAQsgAhCKEyEDIAlBoAFqEDAiBSADQQF0QQNqENEWIAVBntkBEPwBIAItAAAiBgRAA0AgAiEDAkACQAJAAkACQAJAAkACQCAGQRh0QRh1IgJBCGsOBgEFAwYCBAALIAJB3ABHBEAgAkEiRw0GIAVBndkBEPwBDAcLIAVB66gBEPwBDAYLIAVB5qEBEPwBDAULIAVB4+oAEPwBDAQLIAVBl80AEPwBDAMLIAVBiDgQ/AEMAgsgBUGDJhD8AQwBCyACEIECBEAgCUEYahBrIgZB7BQQbEECEIMCQQMQgwIhAiAJEIUCOgAQIAIgCUEQahCGAiECIAlBBBCHAjYCACACIAkQiAIgAywAABDoExogCSAGEG0gBSAJEGYgCRDMFhogBhCtARoMAQsgBSACEGcLIANBAWohAiADLQABIgYNAAsLIAVBntkBEPwBIAcgBRB2GiAFEMwWGgsgCUGwAWokACAAIAcQmgIgBxDMFhogCEHT5QEQ/AEgACAMEPoBIAoQkgIhAiAEIARBIGoQkQI2AgggAiAHEJYBRQRAIAhBLBBnIAAgDBD7AQwBCwsgACAMEPsBIAAQnAIgACAEQQhqQYEIEEciABCaAgsgABDMFhogBEEgahCZAQsgBEEwaiQAC4YBAQJ/IwBBIGsiAiQAIAFBARD0AQRAIAIgAUEBEPUBIAJBEGoiA0Go5gEgAhBwIABBEGogAxBmIAMQzBYaIAIQzBYaCyABQQIQ9AEEQCAAQRBqIgBBrOYBEPwBIAJBEGoiAyABQQIQ9QEgACADEGYgAxDMFhogAEGs5gEQ/AELIAJBIGokAAsKACAAIAEQ1hYaC00BAX8jAEEQayICJAACQAJAIAEvAQhB/gFxQQZHDQAgASgCACIBRQ0AIAIgARCgATYCCCAAIAJBCGoQtgEMAQsgABCvAQsgAkEQaiQAC00BAX8jAEEQayICJAACQAJAIAEvAQhB/gFxQQZHDQAgASgCACIBRQ0AIAIgARCVATYCCCAAIAJBCGoQtgEMAQsgABCvAQsgAkEQaiQAC4MLAQ1/An8gACABLAAAIgJFDQAaAkAgACACEIkTIgBBACAALQAAIAJB/wFxRhsiAEUNACAAIAEtAAFFDQEaIAAtAAFFDQAgAS0AAkUEQCAALQABIgJBAEchAwJAIAJFDQAgAC0AAEEIdCACciICIAEtAAEgAS0AAEEIdHIiBEYNACAAQQFqIQEDQCABIgAtAAEiBUEARyEDIAVFDQEgAEEBaiEBIAJBCHRBgP4DcSAFciICIARHDQALCyAAQQAgAxsMAgsgAC0AAkUNACABLQADRQRAIAEhAiAAQQJqIQEgAC0AAiIDQQBHIQQCQAJAIANFDQAgAC0AAUEQdCAALQAAQRh0ciADQQh0ciIDIAItAAFBEHQgAi0AAEEYdHIgAi0AAkEIdHIiAkYNAANAIAFBAWohACABLQABIgVBAEchBCAFRQ0CIAAhASADIAVyQQh0IgMgAkcNAAsMAQsgASEACyAAQQJrQQAgBBsMAgsgAC0AA0UNACABLQAERQRAIAEhAiAAQQNqIQEgAC0AAyIDQQBHIQQCQAJAIANFDQAgAC0AAUEQdCAALQAAQRh0ciAALQACQQh0ciADciIDIAIoAAAiAEEYdCAAQQh0QYCA/AdxciAAQQh2QYD+A3EgAEEYdnJyIgJGDQADQCABQQFqIQAgAS0AASIFQQBHIQQgBUUNAiAAIQEgA0EIdCAFciIDIAJHDQALDAELIAEhAAsgAEEDa0EAIAQbDAILIAAhA0EAIQIjAEGgCGsiCSQAIAlBmAhqQgA3AwAgCUGQCGpCADcDACAJQgA3A4gIIAlCADcDgAgCQAJAAkACQAJAIAEiCC0AACIBRQRAQX8hCkEBIQAMAQsDQCADIAZqLQAARQ0EIAkgAUH/AXEiAEECdGogBkEBaiIGNgIAIAlBgAhqIABBA3ZBHHFqIgAgACgCAEEBIAF0cjYCACAGIAhqLQAAIgENAAtBASEAQX8hCiAGQQFLDQELQX8hB0EBIQIMAQtBASEEQQEhAQNAAn8gCCABIApqai0AACIHIAAgCGotAAAiBUYEQCABIARGBEAgAiAEaiECQQEMAgsgAUEBagwBCyAFIAdJBEAgACAKayEEIAAhAkEBDAELIAIhCiACQQFqIQJBASEEQQELIgEgAmoiACAGSQ0AC0EBIQJBfyEHIAZBAU0EQCAEIQAMAQtBACEAQQEhBUEBIQEDQAJ/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/IwBBEGsiBCQAIAQgACADENoEIQMgABCrASABIAIgA0EEahDmBCADEIYDIARBEGokAAspACACIAFrIgBBAEoEQCADKAIAIAEgABD6EhogAyADKAIAIABqNgIACwu4BAEBfwJAAkACQCABIAJHBH8CQAJAAkACQAJAAkACQAJAAkACQCABLAAAIgRB7gBrDgsBCQkJAgkDBgQJBwALAkAgBEHjAGsOBAUJCQAICwJAIAMEQCADQQwQzxYMAQsgAEEMEOoECwwMCwJAIAMEQCADQQoQzxYMAQsgAEEKEOoECwwLCwJAIAMEQCADQQ0QzxYMAQsgAEENEOoECwwKCwJAIAMEQCADQQkQzxYMAQsgAEEJEOoECwwJCwJAIAMEQCADQQsQzxYMAQsgAEELEOoECwwICyABQQEQjAQiASACRg0FIAEtAAAiAkHfAXFBwQBrQf8BcUEZSw0FIAJBH3EhAgJAIAMEQCADIAIQzxYMAQsgACACEOoECwwHCyABQQFqIAJGDQQgASwAAUEQEO0EQX9GDQQgAUECaiIBIAJGDQQgASwAAEEQEO0EQX9GDQQLIAFBAWogAkYNAyABLAABQRAQ7QQiBEF/RiABQQJqIAJGcg0DIAEsAAJBEBDtBCICQX9GDQMgAiAEQQR0aiECAkAgAwRAIAMgAkEYdEEYdRDPFgwBCyAAIAJBGHRBGHUQ6gQLIAFBA2oPCyAEQTBGDQMLIARB3wBGDQEgACAEQeAAEKkEDQEgASwAACECAkAgAwRAIAMgAkEYdEEYdRDPFgwBCyAAIAJBGHRBGHUQ6gQLIAFBAWoFIAELDwsQyAIACwJAIAMEQCADQQAQzxYMAQsgAEEAEOoECyABQQFqDwsgAUEBaguBAgEFf0HcABDAFiECIAAoAiQQtwIoAgAhAyAAKAIMQQEQoQRBAEchBCAAKAIMQQgQoQRBAEchBiMAQSBrIgUkACACIAMQhgQiAkGo7AE2AgAgAkEIaiAAEKUEIQMgAkEUahCdARogAkEgahCdARogAkEsahCdARogAkE4ahCdARogAkHEAGoQnQEaIAIgBjoAWiACIAQ6AFkgAiABOgBYIAJCADcCUCAFQQhqIgEgAxDbFRogBUEQaiIDIAEoAgBBmAFqELgBGiADQfGsARCABSEEIAMQzBYaIAEQ3BUgAiAEOgBbIAVBIGokACAAKAIkELcCIAI2AgAgACACNgIkIAILcAECfyMAQRBrIgIkACACIAE6AA8CQCAALQBZBEAgAiAAQQhqIAEQ7gQ6AA4gAEEUaiACQQ5qEP4EDAELIABBFGohAyAALQBaBEAgAiABOgANIAMgAkENahD+BAwBCyADIAJBD2oQ/wQLIAJBEGokAAvOAQEBfwJ/IAAoAgxBARChBARAQRgQwBYgACgCJBC3AigCABCGBCICQZjrATYCACACQQhqIAAQpQQaIAIgACABEO4EOgAUIAIMAQsgACgCDEEIEKEEBEBBGBDAFiAAKAIkELcCKAIAEIYEIgJBsOsBNgIAIAJBCGogABClBBogAiABOgAUIAIMAQtBDBDAFiAAKAIkELcCKAIAEIYEIgIgAToACCACQcjrATYCACACCyEBIAAoAiQQtwIgATYCACAAIAAoAiQQtwIoAgA2AiQLyQEBAX8CfyAAKAIMQQEQoQQEQEEYEMAWIAAoAiQQtwIoAgAQhgQiAkHg6wE2AgAgAkEIaiAAEKUEGiACIAE2AhQgAgwBCyAAKAIMQQgQoQQEQEEYEMAWIAAoAiQQtwIoAgAQhgQiAkH46wE2AgAgAkEIaiAAEKUEGiACIAE2AhQgAgwBC0EMEMAWIAAoAiQQtwIoAgAQhgQiAiABNgIIIAJBkOwBNgIAIAILIQEgACgCJBC3AiABNgIAIAAgACgCJBC3AigCADYCJAsPACAAIAAoAlAgAXI2AlALYgEBfwJ/IABB/wFxIgBBMGsgAEH4AXFBMEYNABpBfyECAkAgAUEIRg0AIABBMGsgAEH+AXFBOEYNARogAUEQRw0AIABBIHIiAEHhAGtB/wFxQQVLDQAgAEHXAGshAgsgAgsLFgAgACgCBCIAIAEgACgCACgCFBEEAAsYACAAQZjrATYCACAAQQhqENwVIAAQkwQLCgAgABDvBBCqEwtdAQF/IAECfwJAIAEoAggiAiABKAIMRg0AIABBCGogAiwAABDuBEH/AXEgAC0AFEcNACABQZ14NgIAIAEgASgCCEEBajYCCCAAKAIEDAELIAFBn3g2AgBBAAs2AigLGAAgAEGw6wE2AgAgAEEIahDcFSAAEJMECwoAIAAQ8gQQqhMLUQEBfyABAn8CQCABKAIIIgIgASgCDEYNACAALQAUIAItAABHDQAgAUGdeDYCACABIAEoAghBAWo2AgggACgCBAwBCyABQZ94NgIAQQALNgIoC04BAX8gAQJ/AkAgASgCCCICIAEoAgxGDQAgAi0AACAALQAIRw0AIAFBnXg2AgAgASACQQFqNgIIIAAoAgQMAQsgAUGfeDYCAEEACzYCKAsYACAAQeDrATYCACAAQQhqENwVIAAQkwQLCgAgABD2BBCqEwuzAQEEfyABAn8CQCABQRBqIAAoAhRBAWsQlAEiAy0ACEUNACADKAIEIAMoAgBrIgQgASgCDCABKAIIIgJrSg0AIARBAEoEQCAAQQhqIQVBACECA0AgBSADKAIAIAJqLAAAEO4EIAUgASgCCCACaiwAABDuBEcNAiAEIAJBAWoiAkcNAAsgASgCCCECCyABQZ54NgIAIAEgAiAEajYCCCAAKAIEDAELIAFBn3g2AgBBAAs2AigLGAAgAEH46wE2AgAgAEEIahDcFSAAEJMECwoAIAAQ+QQQqhMLogEBA38gAQJ/AkAgAUEQaiAAKAIUQQFrEJQBIgMtAAhFDQAgAygCBCADKAIAayIEIAEoAgwgASgCCCICa0oNACAEQQBKBEBBACECA0AgAygCACACaiwAACABKAIIIAJqLAAARw0CIAQgAkEBaiICRw0ACyABKAIIIQILIAFBnng2AgAgASACIARqNgIIIAAoAgQMAQsgAUGfeDYCAEEACzYCKAvLAQEGfyAAKAIIIAFBEGoiAhCTAU0EQCABAn8gAiAAKAIIQQFrEJQBIgItAAgEQAJAIAIoAgQiBCACKAIAIgNrIgYgASgCDCABKAIIIgJrSg0AIwBBEGsiByQAAkAgAyAERgRAQQEhBQwBCwNAIAMgAhD9BCIFRQ0BIAJBAWohAiADQQFqIgMgBEcNAAsLIAdBEGokACAFRQ0AIAFBnng2AgAgASABKAIIIAZqNgIIIAAoAgQMAgsLIAFBn3g2AgBBAAs2AigPCxDIAgALDQAgAC0AACABLQAARgsiACAAKAIEIAAQqwEoAgBJBEAgACABEJUFDwsgACABEJYFCyIAIAAoAgQgABCrASgCAEcEQCAAIAEQlQUPCyAAIAEQlgULDAAgACABEKICQQFzC+gBAQN/IABBqOwBNgIAIABBxABqEJkBIABBOGoiARCPBSABKAIABEAgASgCBCICIAEoAgAiA0cEQANAIAEQqwEaIAMgAkECayICRw0ACwsgASADNgIEIAEQqwEaIAEoAgAhAiABEJAFGiACEKoTCyAAQSxqIgEQkQUgASgCAARAIAEoAgQiAiABKAIAIgNHBEADQCABEKsBGiACQRhrIgIQzQMgAiADRw0ACwsgASADNgIEIAEQqwEaIAEoAgAhAiABEJIFGiACEKoTCyAAQSBqEIIFIABBFGoQggUgAEEIahDcFSAAEJMEC1cBAn8gABCTBSAAKAIABEAgACgCBCIBIAAoAgAiAkcEQANAIAAQqwEaIAIgAUEBayIBRw0ACwsgACACNgIEIAAQqwEaIAAoAgAhASAAEJQFGiABEKoTCwsKACAAEIEFEKoTC6gKAQh/IwBBIGsiBCQAAn8gASgCCCICIAEoAgxHBEACQCAALQBbRQ0AIAJBARCMBCICIAEoAgxGDQAgBEEIaiABKAIIIAIQhQUhAwJAIAAtAFkEQCADIABBCGoiAiADLAAAEO4EOgAAIAMgAiADLAABEO4EOgABDAELIAAtAFpFDQAgAyADLAAAOgAAIAMgAywAAToAAQsgBEEQaiICIABBCGoiBiADIANBAmoiBxCGBSACEEMhBSACEMwWGiAFDQACQCAAQThqIggQhwUEQEEAIQJBASEFA0AgAy0AACAIKAIAIAJBAXRqIgktAABGIAMtAAEgCS0AAUZxDQIgCBCHBSACQQFqIgJLDQALCwJAIAAtAFpFDQAgAEEsaiIFEJkCDQAgBEEQaiAGIAMgBxCIBSAFEIkFBEBBACECA0ACQCAFIAIQigUgBEEQahCLBUUNACAEQRBqIAUgAhCKBUEMahCLBUUNACAEQRBqEMwWGkEBIQUMBAsgBRCJBSACQQFqIgJLDQALCyAEQRBqEMwWGgsgAEHEAGoiBRCZAkUEQCAEQRBqIAYgAyAHEIwFAkAgBRCTAUUNAEEAIQIDQCAEQRBqIAUgAhCUARCNBUUEQCAFEJMBIAJBAWoiAksNAQwCCwsgBEEQahDMFhpBASEFDAILIARBEGoQzBYaCyAGIAMsAAAgACgCUBCpBARAQQEhBSAGIAMsAAEgACgCUBCpBA0BCyAGIAMsAAAgACgCVBCpBEUEQEEBIQUgBiADLAABIAAoAlQQqQRFDQELQQAhBQtBAgwCCyAEIAEoAggtAAAiAzoADwJAIAQCfyAALQBZBEAgAEEIaiADQRh0QRh1EO4EDAELIAAtAFpFDQEgA0EYdEEYdQsiAzoADwsCQCAAQRRqIgYQjgUEQEEAIQIgA0H/AXEhB0EBIQUDQCAHIAYoAgAgAmotAABGDQIgBhCOBSACQQFqIgJLDQALCwJAIABBCGogA0EYdEEYdSAAKAJUIgIEfyACBSAAQSBqEJkCDQEgACgCVAsQqQQhBSAAQSBqIgMQkAIhBiADEJECIQcjAEEQayICJAAgAiAHNgIAIAIgBjYCCAJAIAJBCGogAhC0AUUNAANAIAIoAggtAAAgBC0AD0YNASACQQhqIgYQlwIgBiACELQBDQALCyACKAIIIQYgAkEQaiQAIAQgBjYCECAEIAMQkQI2AgggBEEQaiAEQQhqELQBIQIgBQ0AQQEhBSACRQ0BCyAAQSxqIgMQmQJFBEACQCAALQBaBEAgBEEQaiICIABBCGogBEEPaiACEIgFDAELIARBEGpBASAELAAPEJ4CGgsgAxCJBQRAQQAhAgNAAkAgAyACEIoFIARBEGoQiwVFDQAgBEEQaiADIAIQigVBDGoQiwVFDQAgBEEQahDMFhpBASEFDAQLIAMQiQUgAkEBaiICSw0ACwsgBEEQahDMFhoLIABBxABqIgMQmQJFBEAgBEEQaiICIABBCGogBEEPaiACEIwFAkAgAxCTAUUNAEEAIQIDQCAEQRBqIAMgAhCUARCNBUUEQCADEJMBIAJBAWoiAksNAQwCCwsgBEEQahDMFhpBASEFDAILIARBEGoQzBYaCyAAQQhqIAQsAA8gACgCUBCpBCEFC0EBDAELIAAtAFghBUEACyECIAECfyAALQBYIAVB/wFxRwRAIAFBnXg2AgAgASABKAIIIAJqNgIIIAAoAgQMAQsgAUGfeDYCAEEACzYCKCAEQSBqJAALGAAgACABLQAAOgAAIAAgAi0AADoAASAAC9ECAQd/IwBBIGsiBCQAIARBEGogAiADEDchAiAAEDAhAAJAIAIQQw0AIAIQOCEKIwBBEGsiByQAIAcgCjYCDCMAQRBrIgMkAEHApwMhBUHvACEGA0AgBgRAIAYQ0w0hCCADIAU2AgwgA0EMaiAIENYFIAMoAgwiCUEIaiAFIAkgBygCDBDCFiIJGyEFIAYgCEF/c2ogCCAJGyEGDAELCyADQRBqJAAgBSEDIAQQMCEFAkAgA0G4rgNGDQAgCiADKAIAEJkUDQAgBSADLAAEEM8WCyAHQRBqJAAgACAEEF4gBBDMFhogABBDRQ0AIAIQPUECSw0AIAQgASgCCCIBIAIQOCACEDggAhA9aiABKAIAKAIQEQUAIAAgBBBeIAQQzBYaAkAgABA9QQFHBEAgABA9QQxHDQELIAAgAhBYDAELIAAQPgsgAhDMFhogBEEgaiQACxAAIAAoAgQgACgCAGtBAXULRQEBfyMAQRBrIgQkACAEIAIgAxA3IQIgACABKAIIIgAgAhA4IAIQOCACED1qIAAoAgAoAhARBQAgAhDMFhogBEEQaiQACxAAIAAoAgQgACgCAGtBGG0LDQAgACgCACABQRhsagsMACABIAAQwwJBAXMLdwEBfyMAQRBrIgQkACAEIAIgAxA3IQIgACABKAIIIgEgAhA4IAIQOCACED1qIAEoAgAoAhARBQACQCAAED0iAUEBRg0AIAFBDEYEQCAAQQMQeS0AACEBIABBCxB5IAE6AAAMAQsgABA+CyACEMwWGiAEQRBqJAALcQEEfwJAIAAQPSICIAEQPUcNACAAEDghAyABEDghAQJAIAAQOkUEQCACDQFBAQ8LIAMgASACEMUCRQ8LA0AgAy0AACIAIAEtAAAiBEYhBSAAIARHDQEgAUEBaiEBIANBAWohAyACQQFrIgINAAsLIAULDQAgACgCBCAAKAIAaws1ACAAKAIAGiAAKAIAIAAQkAVBAXRqGiAAKAIAIAAQhwVBAXRqGiAAKAIAIAAQkAVBAXRqGgsTACAAEKsBKAIAIAAoAgBrQQF1CzUAIAAoAgAaIAAoAgAgABCSBUEYbGoaIAAoAgAgABCJBUEYbGoaIAAoAgAgABCSBUEYbGoaCxMAIAAQqwEoAgAgACgCAGtBGG0LLAAgACgCABogACgCACAAEJQFahogACgCACAAEI4FahogACgCACAAEJQFahoLEAAgABCrASgCACAAKAIAawtWAQJ/IwBBEGsiAyQAIAMgADYCACADIAAoAgQiAjYCBCADIAJBAWo2AgggAyECIAAQqwEgAigCBCABEJcFIAIgAigCBEEBajYCBCACEIYDIANBEGokAAuJBAEHfyMAQSBrIgckACAAEKsBIggCfyAHQQhqIQICfyAAEI4FQQFqIQYjAEEQayIFJAAgBSAGNgIMIwBBEGsiAyQAIAAQqwEaIANBfzYCDCADQf////8HNgIIIANBDGogA0EIahDCASgCACEEIANBEGokACAEIAZPBEAgABCUBSIDIARBAXZJBEAgBSADQQF0NgIIIAVBCGogBUEMahDgAigCACEECyAFQRBqJAAgBAwBCxDvAQALIQUgABCOBSEGQQAhBCMAQRBrIgMkACADQQA2AgwgAkEMaiAIEOkCIAUEQCACKAIQGiAFEMAWIQQLIAIgBDYCACACIAQgBmoiBjYCCCACIAY2AgQgAhCuAiAEIAVqNgIAIANBEGokACACKAIICyABEJcFIAIgAigCCEEBajYCCCAAEJMFIAAQqwEgACgCACAAKAIEIAJBBGoiARDdBCAAIAEQwQEgAEEEaiACQQhqEMEBIAAQqwEgAhCuAhDBASACIAIoAgQ2AgAgABCOBRogACgCABogACgCACAAEJQFahogACgCACAAEJQFahogACgCABogAigCBCIAIAIoAghHBEADQCACKAIQGiACIAIoAghBAWs2AgggAigCCCAARw0ACwsgAigCAARAIAIoAhAaIAIoAgAhACACEK4CKAIAIAIoAgBrGiAAEKoTCyAHQSBqJAALDAAgASACLQAAOgAAC3ABAn8jAEEQayIEJAAgBEGuugE7AQ4CQCACIAEgAiAEQQ5qIARBEGoQnAUiBUcEQCAEIAAgASAFEIYFIAMgBBBeIAQQzBYaIAMQPUEBa0ECTw0BIAVBAhCMBCEAIARBEGokACAADwsQyAIACxDIAgALyAIBAX8CQCABIAJHBEACQAJAAkACQAJAAkACQAJAIAEsAAAiBUHhAEwEQAJAIAVB0wBrDgUGCQkJCAALIAVFDQEgBUHEAEcNCCAEQcAAEJ0FDAoLAkAgBUHiAGsOAwIIAwALIAVB8wBrDgUDBwcHBQcLIAMgBRDPFgwICyADQQgQzxYMBwsgBEHAABDsBAwGCyAEQQEQ7AQMBQsgBEEBEJ0FDAQLIARB4AAQ7AQgBEHfABDpBAwDCyAEQeAAEJ0FIwBBEGsiACQAIABB3wA6AA8CQCAELQBZBEAgACAEQQhqQd8AEO4EOgAOIARBIGogAEEOahD+BAwBCyAEQSBqIQIgBC0AWgRAIABB3wA6AA0gAiAAQQ1qEP4EDAELIAIgAEEPahD/BAsgAEEQaiQADAILIAAgASACIAMQ5wQPCxDIAgALIAFBAWoL7wMBA38CQAJAIAEgAkYNAAJAAkACQAJAAkACQAJAAkACQCABLAAAIgRB7QBMBEAgBEHgAEwEQCAEQSJGIARBL0ZyRSAEQdwAR3ENCiADRQ0CIAMgBBDPFgwMCyAEQeEAaw4GAgMJCQkECQsgBEHuAGsOCQQICAgFCAYIBwgLIAAgBBDqBAwJCwJAIAMEQCADQQcQzxYMAQsgAEEHEOoECwwICwJAIAMEQCADQQgQzxYMAQsgAEEIEOoECwwHCwJAIAMEQCADQQwQzxYMAQsgAEEMEOoECwwGCwJAIAMEQCADQQoQzxYMAQsgAEEKEOoECwwFCwJAIAMEQCADQQ0QzxYMAQsgAEENEOoECwwECwJAIAMEQCADQQkQzxYMAQsgAEEJEOoECwwDCwJAIAMEQCADQQsQzxYMAQsgAEELEOoECwwCCyAEQXhxQTBHDQAgBEEwayEFAkAgAUEBaiIEIAJGDQAgBC0AACIGQfgBcUEwRwRAIAQhAgwBCyAFQQN0IAZqQTBrIQUgAUECaiIEIAJGDQAgBC0AACIGQfgBcUEwRwRAIAQhAgwBCyABQQNqIQIgBUEDdCAGakEwayEFCyADBEAgAyAFQRh0QRh1EM8WIAIPCyAAIAVBGHRBGHUQ6gQgAg8LEMgCAAsgAUEBagu/AQECfyMAQSBrIgMkACADIAI6AB4gAyABOgAfAkAgAC0AWQRAIAMgAEEIaiIEIAEQ7gQ6ABcgAyAEIAIQ7gQ6ABYgA0EYaiIBIANBF2ogA0EWahChBSAAQThqIAEQogUMAQsgAEE4aiEEIAAtAFoEQCADIAE6AA8gAyACOgAOIANBEGoiACADQQ9qIANBDmoQoQUgBCAAEKIFDAELIANBCGoiACADQR9qIANBHmoQoQUgBCAAEKIFCyADQSBqJAAL/QEBBX8jAEEQayIFJAAjAEEQayIEJAAgBCABNgIIIAQgADYCDAJAIAIgA0YEQCAFIARBDGoiACAAEKMFDAELIAMgAmsiBiABIABrSgRAIAUgBEEIaiIAIAAQowUMAQsgBCAAIAEgBmtBAWoiB0cEfwNAIAAhCCAAIAIiARD9BARAA0AgAyABQQFqIgFGBEAgBCAANgIMIAQgACAGajYCBCAFIARBDGogBEEEahCjBQwFCyAIQQFqIgggARD9BA0ACwsgAEEBaiIAIAdHDQALIAcFIAALNgIMIAUgBEEIaiIAIAAQowULIARBEGokACAFKAIAIQAgBUEQaiQAIAALDwAgACAAKAJUIAFyNgJUC0YBAX8jAEEQayIEJAAgBCACIAMQpAUhAiAAIAEoAggiACACEDggAhA4IAIQPWogACgCACgCEBEFACACEMwWGiAEQRBqJAALEAAgACABEHZBDGogAhB2Ggu3BQEHfyAAKAIEIAAQqwEoAgBJBEAjAEEQayICJAAgAiAANgIAIAIgACgCBCIDNgIEIAIgA0EYajYCCCAAEKsBIAIoAgQgARCmBSACIAIoAgRBGGo2AgQgAhCGAyACQRBqJAAPCyMAQSBrIgckACAAEKsBIggCfyAHQQhqIQICfyAAEIkFQQFqIQYjAEEQayIEJAAgBCAGNgIMIwBBEGsiBSQAIAAQqwEaIAVBqtWq1QA2AgwgBUH/////BzYCCCAFQQxqIAVBCGoQwgEoAgAhAyAFQRBqJAAgAyAGTwRAIAAQkgUiBSADQQF2SQRAIAQgBUEBdDYCCCAEQQhqIARBDGoQ4AIoAgAhAwsgBEEQaiQAIAMMAQsQ7wEACyEEIAAQiQUhBkEAIQMjAEEQayIFJAAgBUEANgIMIAJBDGogCBDpAiAEBEAgAigCECAEEKcFIQMLIAIgAzYCACACIAMgBkEYbGoiBjYCCCACIAY2AgQgAhCuAiADIARBGGxqNgIAIAVBEGokACACKAIICyABEKYFIAIgAigCCEEYajYCCCAAEJEFIAAQqwEhBSACQQRqIQEgACgCACIGIAAoAgQiA0cEQCABKAIAIQQDQCAFIARBGGsgA0EYayIDEKYFIAEgASgCAEEYayIENgIAIAMgBkcNAAsLIAAgARDBASAAQQRqIAJBCGoQwQEgABCrASACEK4CEMEBIAIgAigCBDYCACAAEIkFGiAAKAIAGiAAKAIAIAAQkgVBGGxqGiAAKAIAIAAQkgVBGGxqGiAAKAIAGiACKAIEIgAgAigCCEcEQANAIAIoAhAaIAIgAigCCEEYayIBNgIIIAEQzQMgAigCCCAARw0ACwsgAigCAARAIAIoAhAaIAIoAgAhACACEK4CKAIAIAIoAgBrGiAAEKoTCyAHQSBqJAALDAAgACABIAIQhQUaC4wFAQd/IAAoAgQgABCrASgCAEkEQCMAQRBrIgIkACACIAA2AgAgAiAAKAIEIgM2AgQgAiADQQJqNgIIIAAQqwEgAigCBCABEKkFIAIgAigCBEECajYCBCACEIYDIAJBEGokAA8LIwBBIGsiByQAIAAQqwEiCAJ/IAdBCGohAgJ/IAAQhwVBAWohBiMAQRBrIgQkACAEIAY2AgwjAEEQayIFJAAgABCrARogBUH/////BzYCDCAFQf////8HNgIIIAVBDGogBUEIahDCASgCACEDIAVBEGokACADIAZPBEAgABCQBSIFIANBAXZJBEAgBCAFQQF0NgIIIARBCGogBEEMahDgAigCACEDCyAEQRBqJAAgAwwBCxDvAQALIQQgABCHBSEGQQAhAyMAQRBrIgUkACAFQQA2AgwgAkEMaiAIEOkCIAQEQCACKAIQGiAEQf////8HSwRAEMgCAAsgBEEBdBDAFiEDCyACIAM2AgAgAiADIAZBAXRqIgY2AgggAiAGNgIEIAIQrgIgAyAEQQF0ajYCACAFQRBqJAAgAigCCAsgARCpBSACIAIoAghBAmo2AgggABCPBSAAEKsBIAAoAgAgACgCBCACQQRqIgEQ3QQgACABEMEBIABBBGogAkEIahDBASAAEKsBIAIQrgIQwQEgAiACKAIENgIAIAAQhwUaIAAoAgAaIAAoAgAgABCQBUEBdGoaIAAoAgAgABCQBUEBdGoaIAAoAgAaIAIoAgQiACACKAIIRwRAA0AgAigCEBogAiACKAIIQQJrNgIIIAIoAgggAEcNAAsLIAIoAgAEQCACKAIQGiACKAIAIQAgAhCuAigCACACKAIAaxogABCqEwsgB0EgaiQACxYAIAAgASgCADYCACAAIAIoAgA2AgQL8AEBA38jAEEQayIFJAAjAEEgayIDJAAgAyACNgIQIAMgATYCGCMAQRBrIgQkACAEIAI2AgAgBCABNgIIIAQgBEEIahClBSECIARBEGokAAJAIAJBb00EQAJAIAIQzgIEQCAAIAIQTyAAIQEMAQsgACACEM8CQQFqIgQQwBYiARDQAiAAIAQQ0QIgACACEE4LIANBGGogA0EQahC0AQRAA0AgASADQRhqIgIoAgAQTSABQQFqIQEgAhCXAiACIANBEGoQtAENAAsLIANBADoADyABIANBD2oQTSADQSBqJAAMAQsQ7wEACyAFQRBqJAAgAAsNACAAKAIAIAEoAgBrCxMAIAEgAhB2QQxqIAJBDGoQdhoLCQAgACABEKgFCxoAIAFBqtWq1QBLBEAQyAIACyABQRhsEMAWCwwAIAEgAi8AADsAAAsyAQF/IAFBnng2AgAgASgCCCECIAFBEGogACgCCEEBaxCUASACNgIAIAEgACgCBDYCKAtGAQJ/IAFBnng2AgAgASgCCCECIAFBEGoiAyAAKAIIQQFrEJQBIAI2AgQgAyAAKAIIQQFrEJQBQQE6AAggASAAKAIENgIoCxsAIAAgARCGBCIAIAI2AgggAEGI7QE2AgAgAAsKACAAEK4FEKoTCykBAX8gAEGI7QE2AgAgACgCCCIBBEAgASABKAIAKAIEEQEACyAAEJMEC/gBAQZ/IAEoAgAhAyABQRxqIgQgACgCFBCwBSECAkAgA0GheEYEQCACIAIoAgBBAWoiAjYCACACIAAoAhAiBUkhAyAEIAAoAhQQsAUoAgAiBiAAKAIMIgdJIAIgBU9yRQRAIAQgACgCFBCwBSgCBCABKAIIRyACIAVJcSEDCyADRSAGIAdJckUEQCABQaB4NgIADwsgAUGeeDYCACADDQEgASAAKAIINgIoDwsgAkEANgIAAkAgACgCECICRQ0AIAAoAgwNACABQaB4NgIADwsgAUGeeDYCACACDQAgASAAKAIINgIoDwsgASAAKAIENgIoIAAgARCxBQsNACAAKAIAIAFBA3RqC4kBAQN/IAEoAgghAiABQRxqIAAoAhQQsAUgAjYCBCAAKAIYIgIgACgCHEcEQCABQRBqIQQgAkEBayECA0AgASgCDCEDIAQgAhCUASADNgIAIAEoAgwhAyAEIAIQlAEgAzYCBCAEIAIQlAFBADoACCACIAAoAhxBAmtGIQMgAkEBaiECIANFDQALCwsxACACQZ54NgIAIAEgAC0AIEcEQCACIAAoAgQ2AiggACACELEFDwsgAiAAKAIINgIoCxQAIAFBoXg2AgAgASAAKAIENgIoCwoAIAFBoHg2AgALIwAgAkGeeDYCACACAn8gAQRAIAAoAggMAQsgACgCBAs2AigLOgACQCAAIAFGDQAgASAAQQEQjAQiAUYNACAALQAAQdwARw0AIAFBAWogACABLQAAQf0ARhshAAsgAAs9AQF/QQgQwBYgACgCJBC3AigCABCGBCIBQejtATYCACAAKAIkELcCIAE2AgAgACAAKAIkELcCKAIANgIkCzYBAX8CQCABQQoQ7QQiAUEBayICQQhNBEAgASAAKAIQSw0BIAAgARDrBAsgAkEJSQ8LEMgCAAtJAQF/IAECfwJAIAEoAggiAiABKAIMRg0AIAItAABFDQAgAUGdeDYCACABIAJBAWo2AgggACgCBAwBCyABQZ94NgIAQQALNgIoC9IEAQZ/IAAoAhAhByAAKAIkIQgCQAJAAkACfwJAAn8CQCABIAJGDQACQAJAIAEsAAAiA0EkayIEQRtLDQBBASAEdEHRiYDAAHENAiAEQQVHDQAgACgCGEUNAQwCCyADQdsAa0ECSSADQd4AayIEQR5NQQBBASAEdEGBgICABnEbcg0BCyAAIAMQ6gQgAUEBagwBCyABCyIDIAFHDQACfwJAIAIgASIDRg0AIANBARCMBCIEIAJGDQAgAy0AAEHcAEcNAAJAAkAgBCwAACIFQSRrIgZBG01BAEEBIAZ0QfGJgMAAcRsNACAFQdsAa0ECSSAFQd4AayIGQR9NQQBBASAGdEGBgICAfnEbcg0AIAAoAgwQ/QNBwABHDQEgACADQQFqIAJBABCaBQwDCyAAIAUQ6gQgBEEBagwCCyAEQQFqIAMgACAELAAAELgFGyEDCyADCyIDIAFHDQACQCABIAJGDQAgAS0AAEEuRw0AIAAQtwUgAUEBagwCCyAAIAEgAhCZBCEDCyADCyIDIAFHIAIgA0ZyRQRAAkACQAJAIAEsAAAiA0Ekaw4FAQUFBQIACyADQd4ARw0EIAAQigQgAUEBaiEDDAMLIAAQjQQgAUEBaiEDDAILIAAQmgQgACAAKAIYQQFqNgIYIAAoAhAhBCAAIAFBAWogAhCCBCIDIAJGDQMgAy0AAEEpRw0DIAAgBBCbBCAAIAAoAhhBAWs2AhggA0EBaiEDCyABIANGDQELIAAgAyACIAggB0EBaiAAKAIQQQFqEJUEIQELIAEPCxDIAgALvgEBA38CQCAAQRBqIgMQxQUEQEEBIQIgAUEQahDFBQ0BC0EAIQIgAxDFBQ0AIAFBEGoiBBDFBQ0AIAAgARCWAUUNACAAQQRqIAFBBGoQlgFFDQAgACgCCCABKAIIRw0AIAAoAgwgASgCDEcNACADQQAQxgUhAiAEQQAQxgUhAyMAQSBrIgAkACAAQRBqIgEgAhDZBSAAIAMQ2QUgASAAEMQCIQIgABDMFhogARDMFhogAEEgaiQAIAJFIQILIAILUwEBfyAAENoFIQAgARDaBSEDIwBBEGsiASQAIAEgAjYCCCAAIANHBEADQCABQQhqIAAQxwUgAEEBaiIAIANHDQALIAEoAgghAgsgAUEQaiQAIAILGQAgABCwASIAQQRqELABGiAAQQA6AAggAAsMACAAIAEQuwVBAXMLBwAgAEEQagsHACAAQRhqCwcAIABBJGoLCgAgAEEQahC/BAtLAQF/IwBBEGsiASQAIAAgAUEIahDABCIAQQxqEL0FGiAAQRhqEL0FGiAAQSRqEL0FGiAAQQA6ADAgAEE0ahCwARogAUEQaiQAIAALwggBCX8jAEHQAGsiByQAIAcgATYCQCAHIAA2AkggB0EIahCuBCEAIAcoAkghBiAHQUBrKAIAIQUjAEEQayIBJAAgASAENgIMIARBgAEQoQQEQEEBQQQQgAQQsAQhCCABIAEoAgwgCBChBDYCDAtBASEIIAAgAygCEEEBaiAGIAUgASgCDEGAEBChBEEARxCvBAJAIAMgBiAFIAAgASgCDCIKIApBgBAQoQRFEMkFBEAgACAAQQAQxgUoAgAiAzYCHCAAIAMgACgCGEc6ACAgACAAQQAQxgUoAgQiAzYCJCAAIAMgACgCKEc6ACwMAQsCQCAFIAZGDQAgASgCDEHAABChBA0AIAFBDGpBgAEQ/gMgBkEBaiIGIAVGDQAgAEEMaiEIA0AgACAAEJMBIAgQswQgAyAGIAUgACABKAIMQQAQyQUEQCAAIABBABDGBSgCACIDNgIcIAAgAyAAKAIYRzoAICAAIABBABDGBSgCBCIDNgIkIAAgAyAAKAIoRzoALEEBIQgMAwsgACAAEJMBIAgQswQgBkEBaiIGIAVHDQALCyAAEMcEQQAhCAsgAUEQaiQAIAcoAkghAyAHKAJAIQogBEGAEBChBEEARyENQQAhASAAEMAFKAIAIQQgABCTASEFAkAgBSACEJMBIgZLBEAjAEEgayIMJAACQCAFIAZrIgUgAhCrASgCACACKAIEa0EMbU0EQCMAQRBrIgkkACAJIAIgBRCFAyIGKAIEIgUgBigCCCILRwRAA0AgAhCrARogBRDYBSAGIAVBDGoiBTYCBCAFIAtHDQALCyAGEIYDIAlBEGokAAwBCyACEKsBIQYgDEEIaiACIAIQkwEgBWoQhwMgAhCTASAGEOwBIQYjAEEQayIJJAAgCSAGQQhqIAUQ1wQiBSgCACAFKAIERwRAA0AgBigCEBogBSgCABDYBSAFIAUoAgBBDGoiCzYCACALIAUoAgRHDQALCyAFEO4CIAlBEGokACACIAYQ1QQgBhDWBAsgDEEgaiQADAELIAUgBkkEQCACIAIoAgAgBUEMbGoQwgQLCyACEJMBBEADQCADIAQgACABEMYFKAIAENUCEMoFIQUgAiABEJQBIAU2AgAgAyAEIAAgARDGBSgCBBDVAhDKBSEFIAIgARCUASAFNgIEIAAgARDGBS0ACCEFIAIgARCUASAFOgAIIAIQkwEgAUEBaiIBSw0ACwsgAiAKNgIMIAJBADoAFCACIAo2AhAgAiADIAQgABDABSgCABDVAhDKBTYCGCACIAMgBCAAEMAFKAIEENUCEMoFNgIcIAIgABDABS0ACDoAICACIAMgBCAAEMEFKAIAENUCEMoFNgIkIAIgAyAEIAAQwQUoAgQQ1QIQygU2AiggAiAAEMEFLQAIOgAsIA1FBEAgAiACKAIYNgI0CyACIAAtADA6ADAgABC/BCAHQdAAaiQAIAgLCAAgABCTAUULGgAgABCTASABSwRAIAAgARCUAQ8LIABBDGoLDwAgACgCACABLAAAENQWC3oBAX8gABDDBCAAIAEQ7gMgACABKAIANgIAIAAgASgCBDYCBCABEKsBKAIAIQIgABCrASACNgIAIAEQqwFBADYCACABQgA3AgAgAEEMaiABQQxqELIEIABBGGogAUEYahCyBCAAQSRqIAFBJGoQsgQgACABKQIwNwIwC5MSAQx/IAAoAgwQ/QNBgARGBEAgACABIAIgAyAEIAUQsQQPCyAAKAIQRQRAIwBB0ABrIgskACALQThqEDEhBiABIAIQ1QIhEAJ/QQAgACgCHCIHRQ0AGiAGIAsQtQQiCRDLBSAJELcEIAYQzAVBADYCACAGEMwFIAE2AgQgBhDMBSABNgIIIAYQzAUgAjYCDCAGEMwFQRxqIAAoAhQQugQgBhDMBSAHNgIoIAYQzAUgBDYCLCAGEMwFIAU6ADAgAiABayERQQAhAANAAkACQCAKQQFqIgpB/x9xRSAKQQx2IBFOcUUEQCAGEMwFIgkoAigiBQRAIAUgCSAFKAIAKAIIEQAACwJAAkACQAJAAkAgCSgCAEHoB2oOCgAHAwMDAQcGAgcDCyAEQSAQoQQEQCAJKAIIIAFGDQYLIARBgCAQoQRBACAJKAIIIgUgAkcbDQUgBSAJKAIEayIFIAAgACAFSBsgBSAOGyIAIBBHDQMgBhDQBUEBIQ4gECEADAYLIwBBEGsiDCQAIAYQeiEPIAYoAhBFBEAjAEEwayIHJAAgBhB6IQUCQCAGEM4FQc4ATwRAIAYgBigCEEHOAGo2AhAgByAGENkCKAIANgIYIAYQ2gIgBiAHQRhqEOUCDAELIAYQrAIgBhCvAkkEQAJAIAYQ0wUEQCAHIAVBzgAQ0AQ2AhggBiAHQRhqEOUCDAELIAcgBUHOABDQBDYCGCAGIAdBGGoiBRDdAiAHIAYQ2QIoAgA2AhggBhDaAiAGIAUQ5QILIAYQrAIhBSAGQScgBigCEEHOAGogBUEBRhs2AhAMAQsgByAGEK8CQQF0NgIIIAdBATYCACAHQRhqIAdBCGoiDSAHEOACKAIAQQAgBhCuAhDhAiEIIAcgDSAFQc4AENAEIAcgBUHOABCxAhDAAiINKAIANgIAIAggBxDiAiANELsCGiAGKAIEIgUgBigCCEcEQANAIAggBRDiAiAFQQRqIgUgBigCCEcNAAsLIAYgCBDBASAGQQRqIAhBBGoQwQEgBkEIaiAIQQhqEMEBIAYQrgIgCBCuAhDBASAGEKwCIQUgBkEnIAYoAhBBzgBqIAVBAUYbNgIQIA0Q0gUgCBDkAgsgB0EwaiQACyAMQQhqIAYQ0QUgDCAMKAIMIgUgDCgCCCIHKAIARgR/IAwgB0EEayIFNgIIIAUoAgBB2B9qBSAFC0E0azYCDCAPIAwoAgwgCRDOBCAGIAYoAhBBAWs2AhAgBhB6IgUgBSgCAEEBajYCACAMQRBqJAAMBAsgCyAJELsEIQUgCSgCKCIHQQEgCSAHKAIAKAIMEQMAIAsoAigiB0EAIAUgBygCACgCDBEDACAGIAUQywUgBRC3BAwECxDIAgALIAYQzQVBASEODAILEMgCAAsgBhDNBQsgBhBRRQ0AC0EAIA5FDQAaIANBABCUASABNgIAIAEgABCMBCEAIANBABCUASAANgIEIANBABCUAUEBOgAIQQELIQEgBhDQBSAGKAIEIgAgBigCCCICRwRAA0AgBhB6GiAAKAIAEKoTIABBBGoiACACRw0ACwsgBhCqAiALQdAAaiQAIAEPCyMAQZABayIMJAAgDEGAAWoQnQEhBiAMQcgAahC1BCEJIAEgAhDVAiEQAn8CQCAAKAIcIg5FDQAgDEE4ahC0BCIHQQA6AAggByACNgIEIAcgAjYCACAGIAwQtQQiCBC2BCAIELcEIAYQuARBADYCACAGELgEIAE2AgQgBhC4BCABNgIIIAYQuAQgAjYCDCAGELgEQRBqIAAoAhAgBxC5BCAGELgEQRxqIAAoAhQQugQgBhC4BCAONgIoIAYQuAQgBDYCLCAGELgEIAU6ADAgAiABayERQQAhDkEAIQADQAJAAkAgDkEBaiIOQf8fcUUgDkEMdiARTnFFBEAgBhC4BCIHKAIoIgUEQCAFIAcgBSgCACgCCBEAAAsCQAJAAkACQCAHKAIAQegHag4KAAICAgIGBgUBBgILIARBIBChBARAIAcoAgggAUYNBQsgBEGAIBChBEEAIAcoAggiBSACRxsNBCAKIAUgBygCBGsiBSAATHFFBEAgCSAHKQIANwIAIAkgBykCCDcCCCAJQRBqIgAgB0EQakcEQCAHKAIQIQogBygCFCELIwBBEGsiCCQAAkAgCiALENQFIg0gABCsAU0EQCAAEJMBIA1JBEAgCCAKNgIMIAAQkwEhDyAIIAgoAgwgD0EMbGo2AgwgCiAIKAIMIAAoAgAQ1QUaIAAgCCgCDCALIA0gABCTAWsQ4wQMAgsgACAKIAsgACgCABDVBRDCBAwBCyAAEMMEIAAgACANEIcDEMQEIAAgCiALIA0Q4wQLIAhBEGokAAsgCUEcaiIAIAdBHGpHBEAgBygCHCEIIAcoAiAhCyMAQRBrIgokAAJAIAAQ0wQgCyAIa0EDdSINTwRAIAAQyQQgDUkEQCAKIAg2AgwgCkEMaiAAEMkEENYFIAggCigCDCAAKAIAENcFGiAAIAooAgwgCyANIAAQyQRrEOUEDAILIAAgCCALIAAoAgAQ1wUQygQMAQsgACgCAARAIAAQyQQhDyAAENIEIAAgDxDZBCAAEKsBGiAAKAIAIQ8gABDTBBogDxCqEyAAEKsBQQA2AgAgAEIANwIACyAAIAAgDRDYBBDkBCAAIAggCyANEOUECyAKQRBqJAALIAkgBy0AMDoAMCAJIAcpAig3AiggBSEACyAAIBBHDQIgBhDPBCEAIAYQzAQgBiAAEOIEQQEhCiAQIQAMBQsgDCAHELsEIQUgBygCKCIIQQEgByAIKAIAKAIMEQMAIAwoAigiB0EAIAUgBygCACgCDBEDACAGIAUQtgQgBRC3BAwECxDIAgALIAYQvARBASEKDAILEMgCAAsgBhC8BAsgBhCZAkUNAAsgCkUNAEEAIQIgA0EAEJQBIAE2AgAgASAAEIwEIQAgA0EAEJQBIAA2AgQgA0EAEJQBQQE6AAggCUEQaiIAEJMBBEADQCAAIAIQlAEhASADIAJBAWoiAhCUASABELIEIAAQkwEgAksNAAsLQQEMAQtBAAshACAJELcEIAYQvQQgDEGQAWokACAACy4BAX8jAEEQayICJAAgAiAANgIIIAJBCGogARCgAiACKAIIIQAgAkEQaiQAIAALxwMBBn8jAEEQayIGJAAgABB6IQcgABDOBUUEQCMAQTBrIgIkACAAEHohBAJAIAAoAhBBzgBPBEAgACAAKAIQQc4AazYCECACIAAoAgQoAgA2AhggABCtAiAAIAJBGGoQ3QIMAQsCQCAAEKwCIAAQrwJJBEAgABDeAkUNASACIARBzgAQ0AQ2AhggACACQRhqEN0CDAILIAIgABCvAkEBdDYCCCACQQE2AgAgAkEYaiACQQhqIgUgAhDgAigCACAAEKwCIAAQrgIQ4QIhAyACIAUgBEHOABDQBCACIARBzgAQsQIQwAIiBSgCADYCACADIAIQ4gIgBRC7AhogACgCCCIEIAAoAgRHBEADQCADIARBBGsiBBDjAiAEIAAoAgRHDQALCyAAIAMQwQEgAEEEaiADQQRqEMEBIABBCGogA0EIahDBASAAEK4CIAMQrgIQwQEgBRDSBSADEOQCDAELIAIgBEHOABDQBDYCGCAAIAJBGGoiAxDlAiACIAAoAgQoAgA2AhggABCtAiAAIAMQ3QILIAJBMGokAAsgBkEIaiAAEM8FIAcgBigCDCABEM4EIAAQeiIAIAAoAgBBAWo2AgAgBkEQaiQACzkBAX8gABB6IQEgACgCBCAAKAIQIAEoAgBqQQFrIgBBzgBuIgFBAnRqKAIAIAAgAUHOAGxrQTRsagt2AQJ/IAAQehogABB6IQEgACgCBCAAKAIQIAEoAgBqQQFrIgFBzgBuIgJBAnRqKAIAIAEgAkHOAGxrQTRsahC3BCAAEHoiASABKAIAQQFrNgIAIAAQzgVBzgBuQQFLBEAgABB6GiAAENkCKAIAEKoTIAAQ2gILCycAIAAQrAIEfyAAEKwCQc4AbEEBawVBAAsgACgCECAAEHooAgBqawtLAQJ/IAEQeigCACECIAAgASgCBCABKAIQIAJqIgBBzgBuIgJBAnRqIgMgARCwAgR/QQAFIAMoAgAgACACQc4AbGtBNGxqCxCxAhoL3QEBA38jAEEQayICJAAgABB6GiACQQhqIgEgABDRBSACIAAQzwUgASACEIABBEADQCACQQhqIgEoAgQQtwQgASABKAIEQTRqIgM2AgQgAyABKAIAIgMoAgBrQdgfRgRAIAEgA0EEajYCACABIAMoAgQ2AgQLIAEgAhCAAQ0ACwsgABB6QQA2AgAgABCsAkECSwRAA0AgACgCBCgCABCqEyAAEK0CIAAQrAJBAksNAAsLQSchAQJAAkACQCAAEKwCQQFrDgIBAAILQc4AIQELIAAgATYCEAsgAkEQaiQACzkAIAAgASgCBCABKAIQQc4AbkECdGoiACABELACBH9BAAUgACgCACABKAIQQc4AcEE0bGoLELECGgstAQF/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/IwBBEGsiAiQAIAAQqwEhAyABKAIEIQQgASABEKcDIAAQqwEiACAAKAIAQQFrNgIAIAMgAUEIahCoAyABEKoTIAJBCGogBBCmASgCACEAIAJBEGokACAACzQBAX8jAEEQayICJAAgABDKAyEAIAJBADYCDCAAQQhqIAJBDGogARDzAhogAkEQaiQAIAALVwEBfyMAQRBrIgIkACACIAAQqwEQxQcgAigCAEEIaiABEMYHIAAgAigCACACKAIAEOwDIAAQqwEiACAAKAIAQQFqNgIAIAIQuwIaIAIQ0wcgAkEQaiQACy4AIAEEQCAAIAEoAgAQygcgACABKAIEEMoHIAAQtwIaIAFBEGoQywcgARCqEwsLEAAgAEEQahC7BiAAEMwWGguUAwEGfyAAIAFHBEAgARCrARogABCrARogARDwASEDIAEQpwEhAiMAQSBrIgEkACABIAI2AhAgASADNgIYIAAQqwEoAgAEQAJAIAEgABDNByIDKAIIRQ0AA0AgAUEYaiABQRBqELQBRQ0BIAFBGGoiBRCyASEEIAMoAghBEGohBiMAQRBrIgIkACACQQhqIgcgBhDQByAHIAQQ0QcgAkEQaiQAIAMoAgghBCMAQRBrIgIkACAAIAJBBGogBEEQahDSByEGIAAgAigCBCAGIAQQugIgAkEIaiAEEKYBKAIAGiACQRBqJAAgAxDOByAFELMBIAMoAggNAAsLIAMQzwcLIAFBGGogAUEQahC0AQRAA0AgAUEYaiIEELIBIQUjAEEgayIDJAAgA0EI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ahCtCBDAAiICKAIAIABBCGogARC0CCACELsCIQAgAhCuCCABQSBqJAAgAAscACAAEK8IIgBB8PsBNgIAIABBCGogASACELoICxAAIAEgAEEIaiIAIAAQtAgLCgAgAEEIahCVCAsPACAAQQhqEJUIIAAQqhMLGQAgAEEIaiIAEO4FBEAgACAAQRhqELsICwtUAQF/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+QMgABDMFhoMAQsCQCADQcgAaiABIANBMGpBABDEASIEENwDRQRAIANByABqQeqgAUGBAkECIANBIGpBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEGU5gEQbCABEKECGiACEPkDIAAQzBYaDAELIANBGGoiAiAAQRxqEKMDIAIQlgMEQCADKAIYIgIgBCACKAIAKAIIEQAACyADEKoLNgIQAkAgAygCECAEELQLRQRAIANByABqQeqgAUGRAkECIANBIGpBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEH45QEQbCABEKECGiACEPkDIAAQzBYaDAELAkAgA0EgaiADKAIQEK4LELgBIgYQQwRAIANByABqQeqgAUGYAkECIANBteYBEEciABD3AyICQYMIEGxBh6UBEGxBgwgQbEHm5QEQbCABEKECGiACEPkDIAAQzBYaDAELENwFIQIgA0EQaiEHIwBBQGoiASQAIAFBMGoiBUHcigIgBhDdBSABIAIgBRC5CTYCKCABELoJNgIYIAFBKGogAUEYahC1AUUEQCABIAFBGGogAUEoahClA0EMahClCyIFEKQDNgIQIAEgBRCHAjYCCCABQRBqIAFBCGoQtAEEQANAIAEgAUEQahClAyICEKMDAkAgARCWA0UNACACQQhqEJYDRQ0AIAIoAggiAkUNACACEJYDBEAgAigCACAHIAIoAgAoAgQRAAALCyABEJgDGiABQRBqIgIQpgMgAiABQQhqELQBDQALCyAFEOIFCyABQTBqEMwWGiABQUBrJAAjAEHAAWsiASQAIAFBGGoQqwsiAiAEELQLGiABIABBEGoiABCkAzYCECABIAAQhwI2AgggAUEQaiABQQhqELQBBEADQCABIAFBEGoQpQMQowMgARCWAwRAIAEoAgAiACACEK4LIAIgACgCACgCABEDAAsgARCYAxogAUEQaiIAEKYDIAAgAUEIahC0AQ0ACwsgAhCsCxogAUHAAWokAAsgBhDMFhoLIANBEGoQmQsgA0EYahCYAxoLIAQQ0QELIANB8AFqJAAL5QECBn8BfiMAQRBrIgYkACAGIAE2AgwgAEEQaiIBIQQgARCrASEHIAEQrgIhCCMAQSBrIgEkACABQRhqIgUgBBCjAyAFEJYDBEAgASgCGCEEIAEgACkCCCIKNwMIIAEgCjcDECMAQRBrIgAkACAEIAEoAgwiCUEBdWohBSABKAIIIQQgCUEBcQRAIAUoAgAgBGooAgAhBAsgAEEIaiAHEMIDIQcgACAIEL8DIQggBSAHKAIAIAgoAgAgBigCDCACIAMgBBEIACAAQRBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALIQEBfyAAQRBqIgFBDGoQnQMgAUEIahCYCyABEJEDGiAACwoAIAAQnAsQqhMLJwEBfyMAQRBrIgEkACAAQQE2AgQgAEEkEMAWNgIIIAFBEGokACAACyYAIAAQigMiACACNgIEIAAgATYCACAAIAFBBGpBACABGyABEJwDCw0AIABBjIsCNgIAIAALCgAgABCgCxCqEwsLACAAEK4CEIcLGgsRACAAQQxqIgAgACgCABCkCwsSACABBEAgARCQCxogARCqEwsLvwEBA38jAEEgayICJAAgARCrARogACACQRhqEMgHIQMgAiABEKQDNgIQIAIgARCHAjYCCCACQRBqIAJBCGoQtAEEQANAIAJBEGoiARClAyEEIwBBEGsiACQAIAAgAxCrARCmCyAAKAIAQQhqIAQQpwsgAyAAKAIAIAAoAgAQ7AMgAxCrASIEIAQoAgBBAWo2AgAgABC7AhogABDSBSAAQRBqJAAgARCmAyABIAJBCGoQtAENAAsLIAJBIGokACADCzQBAn8jAEEQayICJABBJBDAFiIDQQA2AgAgACADIAJBCGogAUEBELECEMACGiACQRBqJAALJAAgACABEKEDIgBBCGogAUEIahCaAxogAEEQaiABQRBqEPYDCxkAIABBADYCACAAQQRqEDAaIABBEGoQMBoLFAAgAEEQahDMFhogAEEEahDMFhoLMQECfyMAQRBrIgEkAEGoARDAFiIAEKsLGiABQQhqIAAQmwMoAgAhACABQRBqJAAgAAtiACAAQQA2AgAgAEEEahAwGiAAQRBqEDAaIABBHGoQMBogAEEoahAwGiAAQTRqEDAaIABBQGsQMBogAEHMAGoQMBogAEHYAGoQqAsgAEH0AGoQqAsgAEGQAWpBABDEARogAAtfACAAQZABahDRASAAQfQA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CiAFELcCQQE6AAQgAUEQaiQAIAAgAigCHCAHIAMoAgAQugIgAxC7AiEBIAJBAToAGyADKAIAIQAgA0EANgIAIAAEQCADELcCIgMtAAQEQCADKAIAGiAAQRBqELQJCyAABEAgAygCABogABCqEwsLCyAEQRhqIgAgAkEIaiABEKYBIAJBG2oQvAIgAkEgaiQAIAAQsgEhACAEQSBqJAAgAEEMagu8AgEDfyMAQTBrIgQkACMAQSBrIgMkACADQRBqIgUgASACELYLEPALIANBlLoDIAUQrwM2AggQ8AsgA0GUugMQlQE2AgAgA0EIaiADEKIBIQEQ8AsgBUH4uQMgARsQ8QshASAFEMwWGiADQSBqJAAgBEEgaiABEM8BIQIgARDwASEDIAEQpwEhBSMAQRBrIgEkACABIAU2AgAgASADNgIIIAIQpwEhBSABQQhqIAEQtAEEQANAIAIgBSABQQhqIgMQsgEQ6AsgAxCzASADIAEQtAENAAsLIAFBEGokACAEIAIQoAE2AhggBCACEJUBNgIQIARBGGogBEEQahC0AQRAA0AgACAEIARBGGoiARCyARC4ASIDEOQLIAMQzBYaIAEQswEgASAEQRBqELQBDQALCyACEJoBIARBMGokAAsuACABBEAgACABKAIAEOcLIAAgASgCBBDnCyAAELcCGiABQRBqELQJIAEQqhMLC+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+AjYCECABQRBqIAFBCGogAxCnARCmARCWAUUEQCADEKsBIAAgAUEQahCyARD4C0UNAQsgASgCGCgCBEUEQCAEIAEoAhgiAjYCACACQQRqIQIMBAsgASgCECECDAILIAMgBCAAEPcLIQIMAgsgBCABKAIYIgQ2AgAgAiAENgIADAELIAQgAjYCAAsgAUEgaiQAIAIoAgAhASAFQQA6ABcgAUUEQCAFQQhqIgQgAyAAEKQMIAMgBSgCHCACIAQoAgAQugIgBBC7AiEBIAVBAToAFyAEEKUMCyAGQQhqIAVBCGogARCmASAFQRdqELwCIAVBIGokACAGKAIIIQEgBkEQaiQAIApBCGogARCmASgCABogCkEQaiQAIABBEGoiACAIRw0ACwsgCUEQaiQAIAdBEGokACADCxEAIABBDGoiACAAKAIAENIMC2oAIAEEQCABQZABahDRASABQYABahDMFhogAUH0AGoQzBYaIAFB5ABqEMwWGiABQdgAahDMFhogAUE0ahDMFhogAUEoahDMFhogAUEcahDMFhogAUEQahDMFhogAUEEahDMFhogARCqEwsLLQAgAQRAIAAgASgCABDTDCAAIAEoAgQQ0wwgABC3AiABQRBqEKEMIAEQqhMLCy0AIAEEQCAAIAEoAgAQ1AwgACABKAIEENQMIAAQtwIgAUEQahChDCABEKoTCwstACABBEAgACABKAIAENUMIAAgASgCBBDVDCAAELcCIAFBEGoQoQwgARCqEwsLLQAgAQRAIAAgASgCABDWDCAAIAEoAgQQ1gwgABC3AiABQRBqEKEMIAEQqhMLCyEAIwBBEGsiACQAIAAgAjYCCCAAQQhqEJ0DIABBEGokAAsNACAAQcCaAjYCACAACwoAIAAQ2AwQqhML0gMBC38jAEEQayIGJAAgABAwIghBDGoQMBogCEEYahAwGiAIQShqEJEBIQMgCEEANgIkIAYgBkEIahCKAykCADcDACAGKAIAIQAgBhCHDCEJIwBBIGsiByQAIAMQqwEoAgAEQAJAIAdBEGogAxDNByICKAIIRSAAIAlGcg0AA0AgAigCCCEEIwBBEGsiASQAIAMgAUEMaiAAENcDIgooAgAhBSABQQA6AAsgB0EIaiABIAUEfyAFBSMAQRBrIgUkACAFQQhqIgsgBEEQahDQByALIAAQ0QcgBUEQaiQAIAMgASgCDCAKIAQQugIgAUEBOgALIAQLEKYBIAFBC2oQvAIgAUEQaiQAIActAAwEQCACEM4HCyAAQRRqIQAgAigCCEUNASAAIAlHDQALCyACEM8HCyAAIAlHBEADQCMAQSBrIgEkACADIAFBHGogABDXAyIFKAIAIQIgAUEAOgAbIAJFBEAgAUEIaiIEIAMgABDDBiADIAEoAhwgBSAEKAIAELoCIAQQuwIhAiABQQE6ABsgBBDEBgsgB0EQaiABQQhqIAIQpgEgAUEbahC8AiABQSBqJAAgAEEUaiIAIAlHDQALCyAHQSBqJAAgBkEQaiQAIAgLGAAgAEKPgICAwLsBNwIIIABBAzYCACAACxgAIAAgASkCADcCACAAIAEpAgg3AgggAAsWACAAEDAiAEIANwIMIABCADcCFCAACyYBAX9B8D4hAiAAIAFBAk0EfyABQQJ0QdSaAmooAgAFIAILEEcaCxIAIABBwMoAQc/qACABGxBHGgu4AQEBf0HAuwMtAABFBEBBpLoDQaTvABBHIgBBDGpBvPkAEEcaIABBGGpB5ywQRxogAEEkakHELBBHGiAAQTBqQbrAABBHGiAAQTxqQZTAABBHGiAAQcgAakHIgwEQRxogAEHUAGpBxigQRxogAEHgAGpB0esAEEcaIABB7ABqQacwEEcaIABB+ABqQd8LEEcaIABBhAFqQfWpARBHGiAAQZABakGd4QAQRxpBwLsDQQE6AAALQaS6AwtqAEG0uwMQzBYaQai7AxDMFhpBnLsDEMwWGkGQuwMQzBYaQYS7AxDMFhpB+LoDEMwWGkHsugMQzBYaQeC6AxDMFhpB1LoDEMwWGkHIugMQzBYaQby6AxDMFhpBsLoDEMwWGkGkugMQzBYaCysBAX8jAEEQayIBJAAgAUEBNgIMEOMMIAFBDGoQ5AwgADYCACABQRBqJAALHgBB0LsDLQAARQRAQcS7AxCRARpB0LsDQQE6AAALC5YCAQh/IwBBIGsiAyQAIAMgABCsAzYCECMAQSBrIgEkAEHEuwMgAUEcaiAAEPcLIgcoAgAhACABQQA6ABsgAEUEQCMAQRBrIgUkACABQQhqIgJBxLsDELcCIgBBARCnBSAFQQhqIABBABC/AhDAAiIIKAIAIQYgAygCECEEIwBBEGsiACQAIAAgBDYCCCAAKAIIKAIAIQQgBkEANgIUIAYgBDYCECAAQRBqJAAgCBC3AkEBOgAEIAVBEGokAEHEuwMgASgCHCAHIAIoAgAQugIgAhC7AiEAIAFBAToAGyACEMAKCyADQRhqIgIgAUEIaiAAEKYBIAFBG2oQvAIgAUEgaiQAIAIQsgEhACADQSBqJAAgAEEEagsQAEHEuwNBxLsDELUCEOYMCyYAIAEEQCAAIAEoAgAQ5gwgACABKAIEEOYMIAAQtwIaIAEQqhMLC3YBA38jAEEgayIEJAAgAkG15gEQowICQCAAIAEQOBCDBkUNACAEQRBqIgMgACABEOgMIAMQhQYhBSADEPQFIAVFDQAgBEEIaiIDIAAgARDoDCAEQRBqIgAgAxCGBiACIAAQXiAAEMwWGiADEPQFCyAEQSBqJAALWQEDfyMAQRBrIgMkACABKAIAIQQjAEEQayIBJAAgA0EIaiIFQai4AyABQQhqIAIQtQYQAzYCACABQRBqJAAgACAEIAMoAggQCBCmARogBRD0BSADQRBqJAALYQEDfyMAQRBrIgMkACACQQA2AgACQCAAIAEQOBCDBkUNACADQQhqIgQgACABEOgMIAQQoQghBSAEEPQFIAVFDQAgAyAAIAEQ6AwgAiADEKIINgIAIAMQ9AULIANBEGokAAuGAQEDfyMAQRBrIgMkACACQQA6AAACQAJAIAAgARA4EIMGBEAgA0EIaiIEIAAgARDoDCAEKAIAQQNGIQUgBBD0BUEBIQQgBQ0BCyAAIAEQOBCDBkUNASADIAAgARDoDCADKAIAQQRGIQAgAxD0BUEAIQQgAEUNAQsgAiAEOgAACyADQRBqJAALWwECfyMAQRBrIgIkACACIAAQqwEiAxDrAyADIAIoAgBBCGogARDBAiAAIAIoAgAgAigCABDsAyAAEKsBIgAgACgCAEEBajYCACACELsCGiACEO0DIAJBEGokAAuZAgEGfyMAQdAAayIDJAAgA0EwaiABEKgGIQQjAEEQayIFJAAjAEEgayIBJAAgA0E4aiIGQQA2AhAgAUEIaiABQRhqIgJBARDgBCABIAJBARCxAhDAAiICKAIAEK8IIgdB7JoCNgIAIAdBBGogBCABEO8MIAYgAhC7AjYCECACENIFIAFBIGokACAFQRBqJAAgBBD0BSADIANBGGogBhDnBSICENwIIQQjAEEgayIBJAAgAEEANgIQIAFBCGpBIBDAFiABIAFBGGoQrQgQwAIiBSgCABCvCCIHQZCbAjYCACAHQQhqIAQgARDTCCAAIAUQuwI2AhAgBRCuCCABQSBqJAAgBBCSCCACEJIIIAYQ6wUaIANB0ABqJAALmQIBBn8jAEHQAGsiAyQAIANBMGogARCoBiEEIwBBEGsiBSQAIwBBIGsiASQAIANBOGoiBkEANgIQIAFBCGogAUEYaiICQQEQ4AQgASACQQEQsQIQwAIiAigCABDSCCIHQbSbAjYCACAHQQRqIAQgARDvDCAGIAIQuwI2AhAgAhDSBSABQSBqJAAgBUEQaiQAIAQQ9AUgAyADQRhqIAYQ5wUiAhDcCCEEIwBBIGsiASQAIABBADYCECABQQhqQSAQwBYgASABQRhqEK0IEMACIgUoAgAQvAgiB0HgmwI2AgAgB0EIaiAEIAEQ0wggACAFELsCNgIQIAUQrgggAUEgaiQAIAQQkgggAhCSCCAGEOsFGiADQdAAaiQAC3YBBH8jAEEQayIEJAAjAEEgayICJAAgAEEANgIQIAJBCGogAkEYaiIDQQEQ4AQgAiADQQEQsQIQwAIiAygCABCMDSIFQYScAjYCACAFQQRqIAEgAhDvDCAAIAMQuwI2AhAgAxDSBSACQSBqJAAgBEEQaiQAIAALPAEBfyABEKwDIQMgAhCsAyECIwBBEGsiASQAIAEgAzYCCCAAIAEoAggQtQchACABQRBqJAAgACACEMUKCxUAIABB7JoCNgIAIABBBGoQ9AUgAAsKACAAEPAMEKoTC1IBAn8jAEEgayIBJAAgAEEEaiECIAFBCGogAUEYaiIAQQEQ4AQgASAAQQEQsQIQwAIiACgCACACIAEQ8wwgABC7AiECIAAQ0gUgAUEgaiQAIAILHAAgABCvCCIAQeyaAjYCACAAQQRqIAEgAhD4DAsQACABIABBBGoiACAAEPMMCwoAIABBBGoQ9AULIQEBfyMAQRBrIgEkACAAQQRqEPQFIAAQqhMgAUEQaiQACygBAn8jAEEQayIBJAAgAUEIaiICIABBBGoQ+QwgAhD0BSABQRBqJAALPAEBfyABEKwDIQMgAhCsAyECIwBBEGsiASQAIAEgAzYCCCAAIAEoAggQqAYhACABQRBqJAAgACACEMUKCwwAIAAgAUH7BRDOBgsVACAAQZCbAjYCACAAQQhqEJIIIAALCgAgABD6DBCqEwtIAQJ/IwBBIGsiASQAIAFBCGpBIBDAFiABIAFBGGoQrQgQwAIiAigCACAAQQhqIAEQ/QwgAhC7AiEAIAIQrgggAUEgaiQAIAALHAAgABCvCCIAQZCbAjYCACAAQQhqIAEgAhDdCAsQACABIABBCGoiACAAEP0MCwoAIABBCGoQ8QULFQAgAEG0mwI2AgAgAEEEahD0BSAACwoAIAAQgA0QqhMLUgECfyMAQSBrIgEkACAAQQRqIQIgAUEIaiABQRhqIgBBARDgBCABIABBARCxAhDAAiIAKAIAIAIgARCDDSAAELsCIQIgABDSBSABQSBqJAAgAgscACAAENIIIgBBtJsCNgIAIABBBGogASACEPgMCxAAIAEgAEEEaiIAIAAQgw0LfAEFfyMAQRBrIgQkACMAQSBrIgUkACMAQRBrIgMkACADIAVBCGoiBjYCDCADQQxqIgcgASgCABD9BSAHIAIQtgYQ/QUgA0EQaiQAIARBCGoiASAAKAIEQQJB0JsCIAZB+wURCgAQpgEaIAVBIGokACABEPQFIARBEGokAAsVACAAQeCbAjYCACAAQQhqEJIIIAALCgAgABCGDRCqEwtIAQJ/IwBBIGsiASQAIAFBCGpBIBDAFiABIAFBGGoQrQgQwAIiAigCACAAQQhqIAEQiQ0gAhC7AiEAIAIQrgggAUEgaiQAIAALHAAgABC8CCIAQeCbAjYCACAAQQhqIAEgAhDdCAsQACABIABBCGoiACAAEIkNCxEAIABBCGogASgCACACEJAICw0AIABBqJwCNgIAIAALFQAgAEGEnAI2AgAgAEEEahD0BSAACwoAIAAQjQ0QqhMLUgECfyMAQSBrIgEkACAAQQRqIQIgAUEIaiABQRhqIgBBARDgBCABIABBARCxAhDAAiIAKAIAIAIgARCQDSAAELsCIQIgABDSBSABQSBqJAAgAgscACAAEIwNIgBBhJwCNgIAIABBBGogASACEPgMCxAAIAEgAEEEaiIAIAAQkA0LUAEDfyMAQRBrIgIkACMAQRBrIgMkACADIAEQtQYhASACQQhqIgQgACgCBEEBQcScAiABQfsFEQoAEKYBGiADQRBqJAAgBBD0BSACQRBqJAALFQAgAEHQnAI2AgAgAEEIahCSCCAACwoAIAAQkw0QqhMLSAECfyMAQSBrIgEkACABQQhqQSAQwBYgASABQRhqEK0IEMACIgIoAgAgAEEIaiABEJYNIAIQuwIhACACEK4IIAFBIGokACAACxwAIAAQjA0iAEHQnAI2AgAgAEEIaiABIAIQ3QgLEAAgASAAQQhqIgAgABCWDQsMACAAQQhqIAEQuwgLFQAgAEH0nAI2AgAgAEEIahCSCCAACwoAIAAQmQ0QqhMLSAECfyMAQSBrIgEkACABQQhqQSAQwBYgASABQRhqEK0IEMACIgIoAgAgAEEIaiABEJwNIAIQuwIhACACEK4IIAFBIGokACAACxwAIAAQjA0iAEH0nAI2AgAgAEEIaiABIAIQ3QgLEAAgASAAQQhqIgAgABCcDQsNACAAQZidAjYCACAACyIAIAAgARDnBSIAQRhqIAIQ5wUaAn8gAEEwahC7AwsaIAALSAEBfyMAQRBrIgIkACAAEO4FBEAgACABELsICyAAQTBqIgAQlgMEQCAAQQAgAkHtJxBHIgAgARDpBiAAEMwWGgsgAkEQaiQAC1QBAn8jAEEQayIEJAAgAEEYaiIDEO4FBEAgAyABIAIQkAgLIABBMGoiAxCWAwRAIARBCGoiAEECEKYBGiADIAEgAiAAEOkGIAAQ9AULIARBEGokAAsKAEHUuwMQzBYaC6ACAQd/IwBBEGsiBSQAQei7Ay0AAEUEQEHouwNBAToAAAtB4LsDEJYDRQRAQdwAEMAWIgJBBGoQigMaIAIQiQMiAUEANgIMIAFBvJ0CNgIAIAFBEGoQMBogAUEcahAwGiABQShqENoMGiMAQRBrIgYkACAFQQhqIgMgAjYCACAGQQhqIAIQmwMhB0EQEMAWIQQjAEEgayIBJAAgASACNgIMIAQQ0AMiBEHQngI2AgAgBEEMaiABQQhqIAFBDGogAUEYahDzAiABQRBqEPMCGiABQSBqJAAgAyAENgIEIAcQuwIaIAMgAkEEakEAIAIbIAIQnAMgBxCdAyAGQRBqJABB4LsDIAMQlwMgAxCYAxoLIABB4LsDEJoDGiAFQRBqJAALCgBB4LsDEJgDGgswACAAQbydAjYCACAAQShqELsGIABBHGoQzBYaIABBEGoQzBYaIABBBGoQkQMaIAALDQAgABClDRogABCqEwuLDAIPfwJ+IwBB0AFrIg0kACANQShqIglB5JoBQc0AQQAgDUEYakG15gEQRyIIEPcDIgdB3uEBEGwgAhChAkHpqAEQbBogBxD5AyAIEMwWGiAAIAE2AgwjAEHwAGsiCCQAIABBKGoiBSAIQThqENoMIgEQwgcgARC7BiAAQRBqIAMQWCAFIAIQWCAIQSBqEOgFIQogCEEIahDoBSELIwBB4AFrIgEkACABQThqIgNB5JoBQZICQQAgAUEoaiIHQbXmARBHIgIQ9wMiBkHV4gEQbCAFEKECQemoARBsGiAGEPkDIAIQzBYaIAcgBRC4ASECIAFBATYCJCABIAI2AiAgASABKQMgNwMIIAMgAUEIaiABQRhqELkNIQwgAhDMFhogBxDIBiAHKAIAIQ4gAUEANgIcIAFBtwY2AhggAUEQaiIPIABBBGoiExCgAyMAQRBrIgMkACADIANBCGogDxCeAykCADcDACMAQRBrIhAkACAQQQhqIAMQoQMhESMAQSBrIgIkACACQQA2AhAgAkEQahC7AyEFIAJBvgY2AgQjAEEQayISJABByAAQwBYgAigCBBDDAyIGQcCeAjYCACAGIAEpAhg3AwggBkEQaiARIAogCxCpCiASQQhqIAYQmwMoAgAhBiASQRBqJAAgAiAGNgIIIAUgAkEIaiIGEL0DIAYQnQogAkEYaiAFEL8DIQYgBRCdAyAGKAIAIQUgAkEgaiQAIBEQkQMaIAMQmAMaIBBBEGokACADQRBqJAAgDiAMIAUgDigCACgCLBEDACAPEJgDGiAHEJgDGiAMEJoBIAFB4AFqJAAgCxDqBRogChDqBRogCEHwAGokACAAEJkDIAkQkgsgCSgCACECIwBB0AFrIgAkAAJAIAItAAwEQCAAQShqQeqgAUHRAEEBIABBGGpBteYBEEciAhD3AyIDQYMIEGxB1B8QbEGDCBBsQZGQARBsGgwBCyAAQShqIgMQyAYgAygCACEBIABBGGoiCCACQQRqEKADIABBEGogCBChAyEHIAEoAgAoAhghBSAAIAcpAgA3AwggASAAQQhqIAURAAAgCBCYAxogAxCYAxogAigCJCEHIwBBIGsiASQAIAdBDGoQigsgAUEYaiIFEMgGIAUoAgAhBiABQQhqIgogB0EEahCgAyABQRBqIAoQoQMhCyAGKAIAKAIIIQwgASALKQIANwMAIAYgASAMEQAAIAoQmAMaIAUQmAMaIAcQiQsgAUEgaiQAIAJBAToADCADQeqgAUHZAEEAIAhBteYBEEciAhD3AyIDQYMIEGxB1B8QbEGDCBBsQegnEGwaCyADEPkDIAIQzBYaIABB0AFqJAAgCRCYAxogCRCTAyANKAIoELEDIAkQmAMaIA0gBBC5CCEJIwBB0AFrIgAkACAAQShqIgEQoQYgASgCACICQdS7A0J/IAIoAgAoAhARFwAhFCABEJgDGhDgDCAUELANIAFB5JoBQeMAQQAgAEEYakG15gEQRyIBEPcDIgJBybcBEGwgFBDqEyACEPkDIAEQzBYaQhAhFANAIABCASAUhjcDKCAAQRhqIggQyAYgCCgCACEHIAApAyghFSAAQQA2AhQgAEG2BjYCECAAQQhqIgUgExCgAyMAQRBrIgIkACACIAJBCGogBRCeAykCADcDACMAQRBrIgYkACAGQQhqIAIQoQMhCiMAQSBrIgEkACABQQA2AhAgAUEQahC7AyEDIAFBugY2AgQjAEEQayILJABBOBDAFiABKAIEEMMDIgRBgJ4CNgIAIAQgACkCEDcDCCAEQRBqIAoQyAMiDEEIaiAAQShqEOUFGiAMQRBqIAkQkQgaIAtBCGogBBCbAygCACEEIAtBEGokACABIAQ2AgggAyABQQhqIgQQvQMgBBCrCiABQRhqIAMQvwMhBCADEJ0DIAQoAgAhAyABQSBqJAAgChCRAxogAhCYAxogBkEQaiQAIAJBEGokACAHIBUgAyAHKAIAKAJUERgAIAUQmAMaIAgQmAMaIBRCAXwiFEIgUg0ACyAAQdABaiQAIAkQ6wUaIA1B0AFqJAALQAAgACABKQIANwMAIABBCGogAhDIAyIAQQhqIAMQyQIaIABBDGogBBCmByAAQRhqIAUQpgcgAEEoaiAGENwIGgvoAQEHfyMAQRBrIgckACMAQSBrIgIkACAAQQA2AhAgAkEIakHQABDAFiACIAJBGGpBARCxAhDAAiIFKAIAEK8IIgNB7J4CNgIAIAEQrAMhASACEKwDIQgjAEEQayIEJAAgBCABNgIIIANBCGoiBiAEKAIIIgEpAwA3AwAgBkEIaiABQQhqIgEQyAMiAyABKAIINgIIIANBDGogAUEMahDQDSADQRhqIAFBGGoQ0A0gA0EoaiABQShqENwIGiAEQRBqJAAgBiAIEMUKIAAgBRC7AjYCECAFENIFIAJBIGokACAHQRBqJAAgAAsmACAAQQhqIgBBKGoQkgggAEEYahDMFhogAEEMahDMFhogABDPCguoAQEFfyMAQcABayIFJAAgBUEYaiIHQeSaAUHLAUEAIAVBCGoiCEG15gEQRyIGEPcDIglBweIBEGwgARChAkHpqAEQbBogCRD5AyAGEMwWGiAHEMgGIAcoAgAhBiAFQQA2AgwgBUG1BjYCCCAFIABBBGoQoAMgBiABIAIgCCAFIAEgAiADIAQQrg0gBigCACgCIBEFACAFEJgDGiAHEJgDGiAFQcABaiQAC5IBAQJ/IwBBIGsiAiQAIAJBEGoiAyAAEL4NIAIgARC+DUEAIQECQCADENMFIAIQ0wVHDQAgAkEQahDTBUUEQEEBIQEMAQtBACEAA0AgAkEQaiAAEMAHKAIAIAIgABDABygCAE8iAUUNASACQRBqENMFIABBAWoiAEsNAAsLIAIQ8AcgAkEQahDwByACQSBqJAAgAQuVAQEDfyMAQfABayIHJAAgB0HIAGpB5JoBQYwCQQAgB0E4akG15gEQRyIIEPcDIglBgwgQbEH6MhBsQYMIEGxB9d8BEGwgBRDoE0HW3gEQbCAGEKECGiAJEPkDIAgQzBYaIAAgASACIAdBIGogAxC5CCIAIAdBCGogBBC5CCIBEKsNIAEQ6wUaIAAQ6wUaIAdB8AFqJAALswIBBn8jAEEQayIGJAAgBiAGQQhqIAEQngMpAgA3AwAjAEEQayIJJAAgCUEIaiAGEKEDIQojAEEgayIBJAAgAUEANgIQIAFBEGoQuwMhByABQbwGNgIEIwBBEGsiCyQAQeAAEMAWIAEoAgQQwwMiCEGgngI2AgAgCCAAKQIANwMIIAhBEGogChDIAyIAQQhqIAIQpgcgAEEUaiADEKYHIABBIGogBBDcCBogAEE4aiAFENwIGiALQQhqIAgQmwMoAgAhACALQRBqJAAgASAANgIIIAcgAUEIaiIAEL0DIAAoAgAhAiAAQQA2AgAgAgRAIAIQxQ0QqhMLIAFBGGogBxC/AyEAIAcQnQMgACgCACEAIAFBIGokACAKEJEDGiAGEJgDGiAJQRBqJAAgBkEQaiQAIAAL/gEBAX8jAEHAAWsiACQAIABBGGpB5JoBQdgBQQAgAEEIakG15gEQRyICEPcDIgdBwt8BEGwgBRDoE0HW3gEQbCAGEKECQffiARBsIAEQoQJB6agBEGwaIAcQ+QMgAhDMFhoCQCAFRQRAIABBGGpB5JoBQdsBQQAgAEEIakG15gEQRyIBEPcDIgJB7c0BEGwaIAIQ+QMgARDMFhogAxDuBUUNASADEPEFDAELIABBGGpB5JoBQd4BQQIgAEEIakG15gEQRyIBEPcDIgJBj9oBEGwgBhChAhogAhD5AyABEMwWGiAEEO4FRQ0AIAQgBRC/BiAGEJAICyAAQcABaiQAC1MBBH8jAEEQayICJAAgAkEIaiIDEJMDIAMoAgAhBCMAQcABayIFJAAgBEEYaiAAEKoDIAE3AwAgBCAAEKsDIAVBwAFqJAAgAxCYAxogAkEQaiQAC4kCAQF+IwBBwAFrIgAkAAJAIAMEQCAAQRhqQeSaAUHzAEEAIABBCGpBteYBEEciAhD3AyIFQYMIEGxBh+8AEGxBgwgQbEHKvAEQbCADEOgTQfe6ARBsIAQQoQJBqLIBEGwgARDqEyAFEPkDIAIQzBYaDAELEOAMELINIQYQ4AwgBiABQgAgBRuEIgYQsA0gAUKAgICACFINACAAQRhqIgNB5JoBQf4AQQAgAEEIakG15gEQRyIEEPcDIgVBw7cBEGwgBhDqEyAFEPkDIAQQzBYaIAMQoQYgAygCACIEQdS7AyAGIAQoAgAoAhwRGQAgAxCYAxogAhDuBUUNACACEPEFCyAAQcABaiQACzYCAn8BfiMAQRBrIgEkACABQQhqIgIQkwMgAigCACAAQgAQrgMhAyACEJgDGiABQRBqJAAgAwv8AwELfyMAQfABayIGJAAgBkHIAGpB5JoBQYUBQQAgBkE4akG15gEQRyIDEPcDIgRBhhUQbBogBBD5AyADEMwWGiAGQSBqIAEQuQghByAGQQhqIAIQuQghCCMAQcABayIBJAAgAUEYaiICQeSaAUHlAUEAIAFBCGoiDUG15gEQRyIDEPcDIgRBkqsBEGwaIAQQ+QMgAxDMFhogAhCTAyACKAIAELYDIAIQmAMaIAIQyAYgAigCACEJIAFBADYCDCABQbgGNgIIIAEgAEEEahCgAyMAQRBrIgMkACADIANBCGogARCeAykCADcDACMAQRBrIgokACAKQQhqIAMQoQMhCyMAQSBrIgAkACAAQQA2AhAgAEEQahC7AyEEIABBvQY2AgQjAEEQayIMJABByAAQwBYgACgCBBDDAyIFQbCeAjYCACAFIA0pAgA3AwggBUEQaiALIAcgCBCpCiAMQQhqIAUQmwMoAgAhBSAMQRBqJAAgACAFNgIIIAQgAEEIaiIFEL0DIAUQnQogAEEYaiAEEL8DIQUgBBCdAyAFKAIAIQQgAEEgaiQAIAQhACALEJEDGiADEJgDGiAKQRBqJAAgA0EQaiQAIAkgACAJKAIAKAIkEQAAIAEQmAMaIAIQmAMaIAFBwAFqJAAgCBDrBRogBxDrBRogBkHwAWokAAvHAgEGfyMAQcABayIIJAAgCEEYaiIFQeSaAUHwAUEAIAhBCGpBteYBEEciBhD3AyIHQajfARBsIAMQ6BNB1t4BEGwgBBChAkHpqAEQbBogBxD5AyAGEMwWGiAFEJILIAUoAgAQlAsgBRCYAxogAEEANgIMIABBEGpBteYBEKMCIABBKGpBteYBEKMCIABBNGpBteYBEKMCIABBQGtBteYBEKMCIABBHGpBteYBEKMCIwBBIGsiBSQAIAVBGGoiBhDIBiAGKAIAIQcgBUEIaiIJIABBBGoQoAMgBUEQaiAJEKEDIQAgBygCACgCDCEKIAUgACkCADcDACAHIAUgChEAACAJEJgDGiAGEJgDGiAFQSBqJAACQCADRQRAIAEQ7gVFDQEgARDxBQwBCyACEO4FRQ0AIAIgAxC/BiAEEJAICyAIQcABaiQAC9IBAQR/IwBBwAFrIgYkACAGQRhqQeSaAUGfAUEAIAZBCGpBteYBEEciBxD3AyIIQYvfARBsIAQQ6BNB1t4BEGwgBRChAkH34gEQbCABEKECQcjeARBsIAFBDGoiCRChAkHpqAEQbBogCBD5AyAHEMwWGgJAIARFBEAgAEE0aiAJEFggAEFAayABQRhqEFggAEHQAGogAUEoahDMByAAIAEoAiQ2AkwgAhDuBUUNASACEPEFDAELIAMQ7gVFDQAgAyAEEL8GIAUQkAgLIAZBwAFqJAALSAEBfyAAIAE2AgBBASECA0AgACACQQJ0aiABIAFBHnZzQeWSnuAGbCACaiIBNgIAIAJBAWoiAkHwBEcNAAsgAEEANgLAEyAACwsAIABBACABELECC5EBAQN/IwBBMGsiAyQAAn8gACgCBCICIAAoAgAiBEYEQCAAKAIADAELIAIgBGtBAWoiAkUEQCADQQhqIAFBIBDRDRDSDQwBCyADQQhqIAFBIEEfQX8gAmdBICACGyIBQQFqdiACcRsgAWsQ0Q0hAQNAIAEQ0g0iBCACTw0ACyAEIAAoAgBqCyEAIANBMGokACAAC0QBAX8gACACEJsBIQIgASgCACEAIAEQuw0hASACEKcBIQMgACABRwRAA0AgAiADIAAQ6AsgAEEMaiIAIAFHDQALCyACC8QCAQN/IwBBwAFrIgYkACAGQRhqQeSaAUGfAkEAIAZBCGpBteYBEEciBxD3AyIIQdvfARBsIAMQ6BNB1t4BEGwgBBChAkHpqAEQbBogCBD5AyAHEMwWGgJAIANFBEAgBiAFIABBKGoiAhCvAzYCACAGIAUQlQE2AhggBiAGQRhqEKIBBEAgAiAGELIBQQxqEFggAEE0aiIDIAYQsgFBGGoQWCAAQUBrIAYQsgFBJGoQWCAAQdAAaiAGELIBQTRqEMwHIAAgBhCyASgCMDYCTCAGQRhqQeSaAUGpAkEAIAZBCGpBteYBEEciABD3AyIEQbLhARBsIAIQoQJByN4BEGwgAxChAkHpqAEQbBogBBD5AyAAEMwWGgsgARDuBUUNASABEPEFDAELIAIQ7gVFDQAgAiADEL8GIAQQkAgLIAZBwAFqJAALEAAgACgCACAAKAIEQQxsagtuAQN/IwBB8AFrIgEkACABQcgAakHkmgFBvAJBACABQThqQbXmARBHIgIQ9wMiA0Hm+gAQbBogAxD5AyACEMwWGiAAIAFBIGoQ6AUiACABQQhqEOgFIgIQsw0gAhDrBRogABDrBRogAUHwAWokAAtuAQN/IwBB8AFrIgEkACABQcgAakHkmgFBwQJBACABQThqQbXmARBHIgIQ9wMiA0HxkgEQbBogAxD5AyACEMwWGiAAIAFBIGoQ6AUiACABQQhqEOgFIgIQsw0gAhDrBRogABDrBRogAUHwAWokAAujAQECfyMAQSBrIgIkACAAEJ0BIQMgAkEQaiABELgBIgBBLkEAENMWIgFBf0cEQANAIAIgAEEAIAEQ+AMgAiACEDgQ+RI2AgwgAyACQQxqEL8NIAIQzBYaIAIgACABQQFqQX8Q+AMgACACEF4gAhDMFhogAEEuQQAQ0xYiAUF/Rw0ACwsgAiAAEDgQ+RI2AgAgAyACEL8NIAAQzBYaIAJBIGokAAv0AQECfyAAKAIEIAAQqwEoAgBJBEAjAEEQayIDJAAgAyAAQQEQtgchAiAAEKsBIAIoAgQgARDcAiACIAIoAgRBBGo2AgQgAhCGAyADQRBqJAAPCyMAQSBrIgMkACAAEKsBIgIgA0EIaiAAIAAQ0wVBAWoQtwcgABDTBSACEOECIgIoAgggARDcAiACIAIoAghBBGo2AgggABD2BiAAEKsBIAAoAgAgACgCBCACQQRqIgEQ3QQgACABEMEBIABBBGogAkEIahDBASAAEKsBIAIQrgIQwQEgAiACKAIENgIAIAAgABDTBRCzByACEOQCIANBIGokAAvnAQIFfwF+IwBBEGsiBSQAIAUgAzoACyAFIAE2AgwgAEEQaiIBIQMgARCrASEGIAEQvwUhByMAQSBrIgEkACABQRhqIgQgAxCjAyAEEJYDBEAgASgCGCEEIAEgACkCCCIJNwMIIAEgCTcDECMAQSBrIgMkACAEIAEoAgwiCEEBdWohBCABKAIIIQAgCEEBcQRAIAQoAgAgAGooAgAhAAsgBCAGKQMAIANBCGogBxC5CCIEIAUoAgwgAiAFLQALIAARHQAgBBDqBRogA0EgaiQACyABQRhqEJgDGiABQSBqJAAgBUEQaiQAC+8BAgd/AX4jAEEQayIFJAAgBSABNgIMIABBEGoiASEDIAEQqwEhBiABQUBrIQcgAUHYAGohCCMAQSBrIgEkACABQRhqIgQgAxCjAyAEEJYDBEAgASgCGCEDIAEgACkCCCIKNwMIIAEgCjcDECMAQTBrIgAkACADIAEoAgwiCUEBdWohBCABKAIIIQMgCUEBcQRAIAQoAgAgA2ooAgAhAwsgBCAGIABBGGogBxC5CCIEIAAgCBC5CCIGIAUoAgwgAiADEQgAIAYQ6gUaIAQQ6gUaIABBMGokAAsgAUEYahCYAxogAUEgaiQAIAVBEGokAAsqAQF/IABBEGoiAUHYAGoQkgggAUFAaxCSCCABQQhqELsGIAEQkQMaIAALCgAgABDCDRCqEwv2AQIIfwF+IwBBEGsiBSQAIAUgATYCDCAAQRBqIgEhAyABEKsBIQYgARB6IQcgARCeCiEIIAEQnwohCSMAQSBrIgEkACABQRhqIgQgAxCjAyAEEJYDBEAgASgCGCEDIAEgACkCCCILNwMIIAEgCzcDECMAQTBrIgAkACADIAEoAgwiCkEBdWohBCABKAIIIQMgCkEBcQRAIAQoAgAgA2ooAgAhAwsgBCAGIAcgAEEYaiAIELkIIgQgACAJELkIIgYgBSgCDCACIAMRDAAgBhDqBRogBBDqBRogAEEwaiQACyABQRhqEJgDGiABQSBqJAAgBUEQaiQACzMBAX8gAEEQaiIBQThqEJIIIAFBIGoQkgggAUEUahDMFhogAUEIahDMFhogARCRAxogAAsKACAAEMUNEKoTC+cBAgZ/AX4jAEEQayIGJAAgBiABNgIMIABBEGoiASEEIAEQqwEhByABEJ4KIQgjAEEgayIBJAAgAUEYaiIFIAQQowMgBRCWAwRAIAEoAhghBCABIAApAggiCjcDCCABIAo3AxAjAEEwayIAJAAgBCABKAIMIglBAXVqIQUgASgCCCEEIAlBAXEEQCAFKAIAIARqKAIAIQQLIAUgAEEYaiAHELkIIgUgACAIELkIIgcgBigCDCACIAMgBBEIACAHEOoFGiAFEOoFGiAAQTBqJAALIAFBGGoQmAMaIAFBIGokACAGQRBqJAALFQAgAEHsngI2AgAgAEEIahCqDSAACwoAIAAQyA0QqhMLTwECfyMAQSBrIgEkACAAQQhqIQIgAUEIakHQABDAFiABIAFBGGpBARCxAhDAAiIAKAIAIAIgARDLDSAAELsCIQIgABDSBSABQSBqJAAgAguXAQECfyAAEK8IIgBB7J4CNgIAIAEQrAMhAyACEKwDIQQjAEEQayIBJAAgASADNgIIIABBCGoiAyABKAIIIgApAwA3AwAgA0EIaiAAQQhqIgAQzgoiAiAAKAIINgIIIAJBDGogAEEMahCmByACQRhqIABBGGoQpgcgAkEoaiAAQShqEJEIGiADIQAgAUEQaiQAIAAgBBDFCgsQACABIABBCGoiACAAEMsNCwoAIABBCGoQqg0LIQEBfyMAQRBrIgEkACAAQQhqEKoNIAAQqhMgAUEQaiQAC5EBAQh/IwBBEGsiBCQAIABBEGoiARCrASEFIAEQrgIhBiABEMAFIQcjAEEgayICJAAgASgCACAAKAIMIghBAXVqIQMgACgCCCEAIAhBAXEEQCADKAIAIABqKAIAIQALIAMgBSgCACAGIAcgAkEIaiABQShqEOcFIgEgABEGACABEOsFGiACQSBqJAAgBEEQaiQACwkAIAAgARB2Ggt2AQF/IAAgAjYCBCAAIAE2AgAgAEIANwIUIAAgAkEFdiACQR9xQQBHaiIBNgIMIAAgAiABbiIDNgIIIABBf0EfIANrdkF/IANBH0kbNgIgIABBAEF/QSAgA2t2IAEgAksbNgIcIAAgASABIANsIAJrajYCECAAC7sBAQV/IAAoAgAiASgCwBMiAkGNA2pB8ARwQQJ0IAFqKAIAIQMgASACQQFqQfAEcCIEQQJ0aigCACIFQf////8HcSABIAJBAnRqKAIAQYCAgIB4cXIQ0w0hAiABIAEoAsATQQJ0akEAIAVBAXFrQd/hosh5cSACIANzcyICNgIAIAEgBDYCwBMgACgCHCACQQt2IAJzIgFBB3RBgK2x6XlxIAFzIgFBD3RBgICY/n5xIAFzIgFBEnYgAXNxCwcAIABBAXYLLQBBhLwDLQAARQRAQey7A0GL3gAQR0EMakHRHRBHGkGEvANBAToAAAtB7LsDCwkAQey7AxDNAwtpAQF/IwBBIGsiBCQAAkACQCABEEUEQCABEJgBIAJPDQELIABBABDEARoMAQsCQCAEQQhqIAEgAhDmARDOASIBIAMQ3QFFBEAgAEEAEMQBGgwBCyAAIAEQ0AEaCyABENEBCyAEQSBqJAALXQEDfyMAQSBrIgMkACAAIANBCGpBABDEASIEENIBIQUgBBDRAQJ/IAVFBEAgASAAEIwBIgA2AgBBASAAQQFrQQJJDQEaCyACQYOMARCjAkEACyEAIANBIGokACAACzwAIAAgARDZDSAAQRBqIAFBEGoQ2g0gACABLQD4AToA+AEgACABKAL0ATYC9AEgAEH8AWogAUH8AWoQWAsYACAAIAEoAgA2AgAgAEEEaiABQQRqEFgLigIAIAAgARBYIABBDGogAUEMahBYIAAgASkBHjcBHiAAIAEpAhg3AhggAEEoaiABQShqEFggAEE0aiABQTRqEFggAEFAayABQUBrEFggAEHMAGogAUHMAGoQWCAAQdgAaiABQdgAahBYIABB5ABqIAFB5ABqEFggACABKAJwNgJwIABB9ABqIAFB9ABqEFggAEGAAWogAUGAAWoQWCAAQYwBaiABQYwBahBYIAAgASgCmAE2ApgBIABBnAFqIAFBnAFqEFggAEGoAWogAUGoAWoQWCAAQbQBaiABQbQBahBYIABBwAFqIAFBwAFqEFggAEHMAWogAUHMAWoQWCAAQdgBaiABQdgBahBYC7MDAQV/IwBBMGsiBSQAIAAgBUEYakEAEMQBIgMQ0gEhBCADENEBAkAgBARAIAJB64sBEKMCDAELIAVBGGoiAyAAEOYDIAEgAxDnAyADEOoDIAMgARCkAyABEIcCIAVBCGoiABDcDSEDIAUQyAYgACAFKAIAIgQgBCgCACgCNBEAACADIAAQ3Q0gABDMFhogBRCYAxogAxCgASEEIAMQlQEhBiMAQUBqIgAkACAAIAY2AjAgACAENgI4IAAgARCkAzYCKCAAIAEQhwI2AiACQCAAQThqIABBMGoQtAFFDQADQCAAQShqIABBIGoQtAFFDQEgAEE4aiIEELIBIQYgAEEoaiIHEKUDIAYQWCAEELMBIAcQpgMgBCAAQTBqELQBDQALCwJAIABBKGogAEEgahCWAQRAIAEgAEEYaiAAQSBqEMkCKAIAIAAoAjggACgCMBDhDQwBCyAAQRBqIABBKGoQyQIhBCAAQQhqIABBIGoQyQIhBiABIAQoAgAgBigCABDiDQsgAEFAayQAIAEQqAEiAARAIAJBytUAEKMCCyADEJoBIABBAXMhBgsgBUEwaiQAIAYLYQAgACADEJsBIQMjAEEQayIAJAAgACACNgIAIAAgATYCCCADEKcBIQIgAEEIaiAAELQBBEADQCADIAIgAEEIaiIBEKUDEOgLIAEQpgMgASAAELQBDQALCyAAQRBqJAAgAwuIAQEDfyMAQSBrIgIkACACIAAgARClATYCGCACIAAQpwE2AhAgAkEYaiACQRBqEJYBRQRAIAJBCGogAigCGBCmASgCACEDIwBBEGsiASQAIAEgAzYCCCAAIAFBCGoiAygCACIEENsDGiAAELcCIAMQsgEQuAIgBBCqEyABQRBqJAALIAJBIGokAAvTAgECfyMAQeACayIAJAACQCACEEMEQCAFQd3WABCjAkEAIQEMAQsgAEHIAmoiBhDIBiAAQQhqIgcgBigCACIGIAYoAgAoAjQRAAACQCABQShqIAcQ4QYEQCABKAJIIQEgAEEIahDMFhogAEHIAmoQmAMaIAFBAkYNASAFQfzNARCjAkEAIQEMAgsgAEEIahDMFhogAEHIAmoQmAMaC0EAIQECQCAAQcACaiACIABByAJqQQAQxAEiAhDcA0UEQCAFQcEuEKMCDAELIABBqAJqIgEgAkEAQQYQ1g0gASADIAUQ2w0iAQRAIABBkAJqIgMgAkEBQQcQ1g0gAyAAQQhqQQAQxAEiAxDTASEFIAMQ0QEgBQRAIAQgAEEIaiAAQZACahDrDiIDENgNIAMQ7A4LIABBkAJqENEBCyAAQagCahDRAQsgAhDRAQsgAEHgAmokACABC4QCAQJ/IwBBwAFrIgAkACAAQRhqIgYQyAYgAEGwAWogBigCACIHIAcoAgAoAjQRAAAgBhCYAxoCQAJAAkAgARBDDQAgAhBDDQAgAxCoAQ0AIAQQQ0UNAQsgBUHY2AAQowJBACEBDAELIABBsAFqIAIQjQUEQCAFQYLqABCjAkEAIQEMAQsgAEEYaiAEEIUPQZmTASECAn8gAC0AkQFFBEAgACADEKQDIAMQhwIgAEGwAWoQ4A02AhAgACADEIcCNgIIQcz9ACECQQEgAEEQaiAAQQhqEJYBRQ0BGgsgBSACEKMCQQALIQEgAEEYahDnDgsgAEGwAWoQzBYaIABBwAFqJAAgAQtgAQF/IwBBEGsiAyQAIAMgATYCACADIAA2AggCQCADQQhqIAMQtAFFDQADQCADQQhqEKUDIAIQjQUNASADQQhqIgAQpgMgACADELQBDQALCyADKAIIIQAgA0EQaiQAIAALuAIBBX8jAEEwayIEJAAgBCADNgIYIAQgAjYCICAEQShqIAEQpgEhAyAEQSBqIARBGGoQtAEEQCAEQQhqIgIgABCrASIHEOsDIAcgAigCAEEIaiAEQSBqIgUQsgEQiAMgAyAEIAIoAgAQpgEoAgA2AgAgAhC7AhogBCADKAIAIgY2AgAgBRCzAUEBIQIgBSAEQRhqELQBBEADQCAEQQhqIgVBFBDAFhDxAyAHIAUoAgBBCGogBEEgaiIGELIBEIgDIAQoAgAiCCAFKAIANgIEIAUoAgAgCDYCACACQQFqIQIgBRC7AhogBhCzASAEEKYDIAYgBEEYahC0AQ0ACyAEKAIAIQYLIAEgAygCACAGEPADIAAQqwEiACAAKAIAIAJqNgIAIARBCGoQ7QMLIAMoAgAaIARBMGokAAuuAQEDfyMAQSBrIgMkACADIAI2AgggAyABNgIQAkAgA0EQaiADQQhqELQBRQ0AIAAQqwEhAiADKAIQIAMoAggoAgAQpwMgA0EQaiADQQhqELQBRQ0AA0AgAygCECEBIANBEGoiBBCmAyAAEKsBIgUgBSgCAEEBazYCACACIAFBCGoQuAIgARCqEyAEIANBCGoQtAENAAsLIANBGGogAygCCBCmASgCABogA0EgaiQACxMAIABBADYCACAAQQRqEDAaIAALfQEEfyMAQTBrIgIkACAAQQA2AgAgAEEEahAwIQUgACABIAJBIGoiA0H8jAEQRyIEQQAQ4gM2AgAgBBDMFhogAyABIAJBEGpBiI0BEEciASACQbXmARBHIgQQ5AMgBSADEF4gAxDMFhogBBDMFhogARDMFhogAkEwaiQAIAALZAAgABAwIgBBDGoQMBogAEEYahDjDRogAEEoahAwGiAAQTRqEIsDGiAAQgA3A1AgAEEANgJIIABCADcDQCAAQgA3A1ggAEIANwNgIABBADYCaCAAQewAahAwGiAAQQA6AHggAAtvAQF/IwBBIGsiAiQAIAEQqwEaIAAgAkEYahDIByEAIAIgARCkAzYCECACIAEQhwI2AgggAkEQaiACQQhqELQBBEADQCAAIAJBEGoiARClAxDnDSABEKYDIAEgAkEIahC0AQ0ACwsgAkEgaiQAIAALWwECfyMAQRBrIgIkACACIAAQqwEiAxDrAyADIAIoAgBBCGogARCIAyAAIAIoAgAgAigCABDsAyAAEKsBIgAgACgCAEEBajYCACACELsCGiACEO0DIAJBEGokAAs1ACAAQewAahDMFhogAEE0ahDqAyAAQShqEMwWGiAAQRhqEIEMGiAAQQxqEMwWGiAAEMwWGgvXRQIVfwF+IwBBEGsiFSQAIwBBEGsiFiQAQZC8Ay0AAEUEQEGQvANBAToAAAsgFUEIaiITQYi8AxCjAyATEJYDRQRAQfgAEMAWIgUhASMAQYAEayICJAAgAUGwnwI2AgAgAUEEahCKAxogAUGQnwI2AgAgAUEMahCUAyABQRRqEJQDIAFBHGoQlAMgAUEkahCRASEGIAFBMGoQkQEhCSABQTxqEJQDIAFBxABqEJQDIAFBzABqEJQDIAFB1ABqEJQDIAFBADYCXCABQeAAakEAEMQBGiACQQA2ApwBIAJB2gY2ApgBIAJBoAFqQbDLACACQZgBahD+CyEEIAJBADYClAEgAkHbBjYCkAEgBEEUakGGFSACQZABahD+CxogAkEANgKMASACQdwGNgKIASAEQShqQYk+IAJBiAFqEP4LGiACQQA2AoQBIAJB3QY2AoABIARBPGpBhwsgAkGAAWoQ/gsaIAJBADYCfCACQd4GNgJ4IARB0ABqQYoUIAJB+ABqEP4LGiACQQA2AnQgAkHfBjYCcCAEQeQAakGqFCACQfAAahD+CxogAkEANgJsIAJB4AY2AmggBEH4AGpB2aUBIAJB6ABqEP4LGiACQQA2AmQgAkHhBjYCYCAEQYwBakGfpgEgAkHgAGoQ/gsaIAJBADYCXCACQeIGNgJYIARBoAFqQZKmASACQdgAahD+CxogAkEANgJUIAJB4wY2AlAgBEG0AWpB3PkAIAJB0ABqEP4LGiACQQA2AkwgAkHkBjYCSCAEQcgBakGW+gAgAkHIAGoQ/gsaIAJBADYCRCACQeUGNgJAIARB3AFqQdeIASACQUBrEP4LGiACQQA2AjwgAkHmBjYCOCAEQfABakGSKSACQThqEP4LGiACQQA2AjQgAkHnBjYCMCAEQYQCakHmKCACQTBqEP4LGiACQQA2AiwgAkHoBjYCKCAEQZgCakG+iQEgAkEoahD+CxogAkEANgIkIAJB6QY2AiAgBEGsAmpB4okBIAJBIGoQ/gsaIAJBADYCHCACQeoGNgIYIARBwAJqQb6rASACQRhqEP4LGiACQRE2AvwDIAIgBDYC+AMgAiACKQP4AzcDCCACQQhqIgEoAgAhCiABEIcMIQcjAEEgayIIJAAgBhCrASgCAARAAkAgCEEQaiAGEM0HIgwoAghFIAcgCkZyDQADQCAIQQhqIAYgCiAMKAIIEKIMIAgtAAwEQCAMEM4HCyAKQRRqIQogDCgCCEUNASAHIApHDQALCyAMKAIAIAwoAggQlg4gDCgCBCIDBEAgAygCCCIBBEADQCABIgMoAggiAQ0ACyAMIAM2AgQLIAwoAgAgAxCWDgsLIAcgCkcEQANAIAhBEGogBiAKEKMMIApBFGoiCiAHRw0ACwsgCEEgaiQAIARB1AJqIQMDQCADQRRrEMwWIgMgBEcNAAsgAkEANgKcASACQesGNgKYASACQaABakGg4AAgAkGYAWoQ/gshDCACQQA2ApQBIAJB7AY2ApABIAxBFGpB4BMgAkGQAWoQ/gsaIAJBADYCjAEgAkHtBjYCiAEgDEEoakHZpQEgAkGIAWoQ/gsaIAJBADYChAEgAkHuBjYCgAEgDEE8akG8JyACQYABahD+CxogAkEENgIUIAIgDDYCECACIAIpAxA3AwAgAigCACEKIAIQhwwhBiMAQSBrIggkACAJEKsBKAIABEACQCAIQRBqIAkQzQciBCgCCEUgBiAKRnINAANAIAhBCGogCSAKIAQoAggQogwgCC0ADARAIAQQzgcLIApBFGohCiAEKAIIRQ0BIAYgCkcNAAsLIAQoAgAgBCgCCBCXDiAEKAIEIgMEQCADKAIIIgEEQANAIAEiAygCCCIBDQALIAQgAzYCBAsgBCgCACADEJcOCwsgBiAKRwRAA0AgCEEQaiAJIAoQowwgCkEUaiIKIAZHDQALCyAIQSBqJAAgDEHQAGohAwNAIANBFGsQzBYiAyAMRw0ACyACQYAEaiQAIwBBEGsiBCQAIBZBCGoiAyAFNgIAIARBCGogBRCbAyECQRAQwBYhCiMAQSBrIgEkACABIAU2AgwgChDQAyIKQcyfAjYCACAKQQxqIAFBCGogAUEMaiABQRhqEPMCIAFBEGoQ8wIaIAFBIGokACADIAo2AgQgAhC7AhogAyAFQQRqQQAgBRsgBRCcAyACKAIAIQEgAkEANgIAIAEEQCACIAEQmQ4LIARBEGokACATIAMQlwMgAxCYAxogEygCACEKIwBB0ABrIgwkACMAQRBrIgQkACMAQRBrIgEkACABEKoIIgIoAgghAyMAQRBrIgUkACADENADIgNB6J8CNgIAIAMQrgIQ2wVBFGoQiwMaIAVBEGokACAMQSBqIgMgAhD3BSIFEK4CIAUQ+AUgAhCwBiABQRBqJAAgBEEQaiQAIApBDGoiDyADEJcDIAMQmAMaIAxBAjYCMCMAQRBrIgUkACMAQRBrIgIkACACEKoIIgQoAgghASMAQRBrIggkACABENADIgFBhKACNgIAIAEQrgIhASAMKAIwIQYgAUEEahCKAxogAUHgkAI2AgAgAUEANgIQIAEgBjYCDCABQciQAjYCACABQRRqEJEBGiAIQRBqJAAgAyAEEPcFIgEQrgIgARCfCyAEELAGIAJBEGokACAFQRBqJAAgCkEUaiINIAMQlwMgAxCYAxoQ4AwhAiMAQRBrIgEkACABQQhqIgMQkwMgAygCACACQeAAakIBEK4DIRcgAxCYAxogAUEQaiQAAkAgF0IAUgRAIwBBIGsiAyQAIANBGGoiAhDrCCACKAIAIQEgA0EQakEAEIkIDAELIwBBIGsiAyQAIANBGGoiAhDrCCACKAIAIQEgA0EQakEBEIkICyADIAMpAxA3AwgjAEEgayIEJAAgAUEYaiADQQhqIgkQ7AggASgCGCEIIARBEGoiBSABQQhqEKADIAQgBSgCACIGQQRqQQAgBhs2AhggBCAFKAIEIgY2AhwgBgRAIAYQogMLIAgoAgAoAighBiAEIAQpAhg3AwggCCAEQQhqIAYRAAAgBRCYAxogASABKAIYIgUgBSgCACgCPBECAEEBRiIFNgJEIAFBAxD6CCABQoqAgIDgxAA3AmggASAFNgJkIAFBATYCYCABIAU2AlQjAEFAaiIFJAAgBUEoakEAEMQBIQggBUEQakEBEM0BIQYgCEGIgAEQiQEgBhBpIAYQ0QEgASAFQbQ1EEciBiAIIAEoAgAoAsQBEQMAIAYQzBYaIAgQ0QEgBUFAayQAIwBBQGoiBSQAIAVBKGpBABDEASEIIAVBEGpBARDGASEGIAhB5uAAEIkBIAYQaSAGENEBIAEgBUGN0AAQRyIGIAggASgCACgCxAERAwAgBhDMFhogCBDRASAFQUBrJAAjAEFAaiIFJAAgBUEoakEAEMQBIQggBUEQakEAEMYBIQYgCEGAMBCJASAGEGkgBhDRASABIAVBkDAQRyIGIAggASgCACgCxAERAwAgBhDMFhogCBDRASAFQUBrJAAgCRCYAxogBEEgaiQAIAxBIGoiASACEJ4DGiACEJgDGiADQSBqJAAgCkEcaiIQIAEQlwMgARCYAxojAEEQayIOJAAjAEEQayIGJAAjAEEQayIBJAAgBkEBNgIEIAZB0AEQwBY2AgggAUEQaiQAIAYoAgghASMAQRBrIhIkACABENADIgFBoKACNgIAIAEQrgIhASMAQcABayICJAAgAUEEahCKAxogARDHCyIBQQxqEIkDIQMgAUH8owI2AgAgA0GIpQI2AgAgAUEANgIQIAFBFGoQkQEhByABQSBqEIcPIAFBKGoQ5Q4aIAFBADoAwAEgAkEANgI8IAJBygc2AjggAkFAa0GM3AAgAkE4ahD+CyEFIAJBADYCNCACQcsHNgIwIAVBFGpBpBwgAkEwahD+CxogAkEANgIsIAJBzAc2AiggBUEoakGzIiACQShqEP4LGiACQQA2AiQgAkHNBzYCICAFQTxqQcSlAiACQSBqEP4LGiACQQA2AhwgAkHOBzYCGCAFQdAAakHC9QAgAkEYahD+CxogAkEANgIUIAJBzwc2AhAgBUHkAGpBlPkAIAJBEGoQ/gsaIAJBBjYCvAEgAiAFNgK4ASACIAIpA7gBNwMIIAJBCGoiASgCACEEIAEQhwwhCyMAQSBrIgkkACAHEKsBKAIABEACQCAJQRBqIAcQzQciCCgCCEUgBCALRnINAANAIAlBCGogByAEIAgoAggQogwgCS0ADARAIAgQzgcLIARBFGohBCAIKAIIRQ0BIAQgC0cNAAsLIAgoAgAgCCgCCBDdDyAIKAIEIgMEQCADKAIIIgEEQANAIAEiAygCCCIBDQALIAggAzYCBAsgCCgCACADEN0PCwsgBCALRwRAA0AgCUEQaiAHIAQQowwgBEEUaiIEIAtHDQALCyAMQSBqIQggCUEgaiQAIAVB+ABqIQMDQCADQRRrEMwWIgMgBUcNAAsgAkHAAWokACASQRBqJAAgCCAGEPcFIgEQrgIgARCfCyAGKAIIIgEEQCAGKAIEGiABEKoTCyAGQRBqJAAgDkEQaiQAIApBPGogCBCXAyAIEJgDGiMAQRBrIhIkACMAQRBrIgkkACMAQRBrIgEkACAJQQE2AgQgCUGAAhDAFjYCCCABQRBqJAAgCSgCCCEBIwBBEGsiESQAIAEQ0AMiAUG8oAI2AgAgARCuAiEBIwBB4AFrIgIkACABQQRqEIoDGiABEMcLIgFBDGoQiQMhAyABQbSoAjYCACADQcCpAjYCACABQQA2AhAgAUEUahCRASELIAFBIGoQhw8gAUEoahDlDhogAUEAOgDAASABQcQBahCLAxogAUHQAWoQiwMaIAFB3AFqEJEBGiABQegBahCRARogAkEANgJEIAJBrAg2AkAgAkHIAGpBm9wAIAJBQGsQ/gshBCACQQA2AjwgAkGtCDYCOCAEQRRqQaQcIAJBOGoQ/gsaIAJBADYCNCACQa4INgIwIARBKGpBsyIgAkEwahD+CxogAkEANgIsIAJBrwg2AiggBEE8akGzOCACQShqEP4LGiACQQA2AiQgAkGwCDYCICAEQdAAakHC9QAgAkEgahD+CxogAkEANgIcIAJBsQg2AhggBEHkAGpBjDMgAkEYahD+CxogAkEANgIUIAJBsgg2AhAgBEH4AGpBpdwAIAJBEGoQ/gsaIAJBBzYC3AEgAiAENgLYASACIAIpA9gBNwMIIAJBCGoiASgCACEFIAEQhwwhDiMAQSBrIgckACALEKsBKAIABEACQCAHQRBqIAsQzQciBigCCEUgBSAORnINAANAIAdBCGogCyAFIAYoAggQogwgBy0ADARAIAYQzgcLIAVBFGohBSAGKAIIRQ0BIAUgDkcNAAsLIAYoAgAgBigCCBDIECAGKAIEIgMEQCADKAIIIgEEQANAIAEiAygCCCIBDQALIAYgAzYCBAsgBigCACADEMgQCwsgBSAORwRAA0AgB0EQaiALIAUQowwgBUEUaiIFIA5HDQALCyAHQSBqJAAgBEGMAWohAwNAIANBFGsQzBYiAyAERw0ACyACQeABaiQAIBFBEGokACAIIAkQ9wUiARCuAiABEJ8LIAkoAggiAQRAIAkoAgQaIAEQqhMLIAlBEGokACASQRBqJAAgCkHEAGogCBCXAyAIEJgDGiMAQRBrIhIkACMAQRBrIgkkACMAQRBrIgEkACAJQQE2AgQgCUHkABDAFjYCCCABQRBqJAAgCSgCCCEBIwBBEGsiESQAIAEQ0AMiAUHYoAI2AgAgARCuAiEBIwBBwAFrIgIkACABQQRqEIoDGiABEMcLIgFBDGoQiQMhAyABQeCuAjYCECABQaysAjYCACADQcytAjYCACABQZCuAjYCECABQQA2AhQgAUEYahCRASELIAFBJGoQiwMaIAFBMGoQMBogAUE8ahAwGiMAQRBrIgUkACMAQRBrIgMkACADEKoIIgQoAgghBiMAQRBrIgckACAGENADIgZBpLACNgIAIAYQrgIQigMiBkEIahCKAxogBkEQahAwGiAHQRBqJAAgAUHIAGogBBD3BSIGEK4CIAYQqQcgBBCwBiADQRBqJAAgBUEQaiQAIAFB0ABqEIcPIAJBADYCPCACQY4JNgI4IAJBQGtBgSogAkE4ahD+CyEFIAJBADYCNCACQY8JNgIwIAVBFGpBpBwgAkEwahD+CxogAkEANgIsIAJBkAk2AiggBUEoakGzIiACQShqEP4LGiACQQA2AiQgAkGRCTYCICAFQTxqQbM4IAJBIGoQ/gsaIAJBADYCHCACQZIJNgIYIAVB0ABqQYwzIAJBGGoQ/gsaIAJBADYCFCACQZMJNgIQIAVB5ABqQZPKACACQRBqEP4LGiACQQY2ArwBIAIgBTYCuAEgAiACKQO4ATcDCCACQQhqIgEoAgAhBCABEIcMIQ4jAEEgayIHJAAgCxCrASgCAARAAkAgB0EQaiALEM0HIgYoAghFIAQgDkZyDQADQCAHQQhqIAsgBCAGKAIIEKIMIActAAwEQCAGEM4HCyAEQRRqIQQgBigCCEUNASAEIA5HDQALCyAGKAIAIAYoAggQxxEgBigCBCIDBEAgAygCCCIBBEADQCABIgMoAggiAQ0ACyAGIAM2AgQLIAYoAgAgAxDHEQsLIAQgDkcEQANAIAdBEGogCyAEEKMMIARBFGoiBCAORw0ACwsgB0EgaiQAIAVB+ABqIQMDQCADQRRrEMwWIgMgBUcNAAsgAkHAAWokACARQRBqJAAgCCAJEPcFIgEQrgIgARCfCyAJKAIIIgEEQCAJKAIEGiABEKoTCyAJQRBqJAAgEkEQaiQAIApBzABqIAgQlwMgCBCYAxpBsAEQwBYhASAMQcgAaiAPEKEDIQMgDEFAayAQEKEDIQIgDEE4aiANEKEDIQQgDCADKQIANwMYIAwgAikCADcDECAMIAQpAgA3AwggAUGcowI2AgAgAUGAowI2AgAgAUEEaiAMQRhqIgMQoQMaIAFBDGogDEEIaiICEKEDGiABQRRqIAxBEGoiBBChAxogAUEcahCKAxogAUEAOgAkIAFBKGoQ5Q0aIAFBAToAqAEgAhCRAxogBBCRAxogAxCRAxogCiABNgJcIA0oAgAhAiAKKAJcIQEjAEEgayIDJAAgAiABNgIQIANBGGoiBCABIAEoAgAoAggRAAAgBCgCACEGIANBCGoiBSACQQRqEKADIAMgA0EQaiAFEKEDKQIANwMAIwBBIGsiASQAIAFBGGoiAiADEKMDAkAgAhCWA0UNACABIAZBFGoiAhCkAzYCECABIAIQhwI2AggCQCABQRBqIAFBCGoQtAEEQANAIAEgAUEQahClAxCjAyABEJYDBEAgASABQRhqEJYBDQMLIAEQmAMaIAFBEGoiBhCmAyAGIAFBCGoQtAENAAsLIAIgAxDJBwwBCyABEJgDGgsgAUEYahCYAxogAxCRAxogAUEgaiQAIAUQmAMaIAQQmAMaIANBIGokACAQKAIAIgEgCigCXCABKAIAKAIMEQAAIAooAjwiAyAKKAJcNgIQIAMQoA8jAEGgAWsiASQAIAEgA0EUaiICEKABNgKYASABIAIQlQE2ApABIAFBmAFqIAFBkAFqEKIBBEAgA0EEaiEFA0AgAUGYAWoiBhCyASEJIAFBiAFqIgcgAygCECICIAIoAgAoAggRAAAgBygCACENIAFB+ABqQZUnQdabAUHOABD1AyEQIAFB6ABqIgsgBRCgAyABQfAAaiALEKEDIQ8gAUE4aiAFEKADIAEgCSkCDDcDMCABIAEpAzg3AyggASABKQMwNwMgIAFBQGsgAUEoaiABQSBqEIwMIAEgASkDSDcDGCABIAEpA0A3AxAjAEEQayISJAAjAEEgayICJAAgAUHQAGoiBEEANgIQIAJBCGpBFBDAFiACIAJBGGpBARCxAhDAAiIOKAIAEKcMIhFBgKcCNgIAIBFBBGogAUEQaiIRIAIQqAwgBCAOELsCNgIQIA4Q7QMgAkEgaiQAIBJBEGokACAREJEDGiABIA8pAgA3AwggDSAJIBAgAUEIaiAEELULIAQQ6gUaIAsQmAMaIAcQmAMaIAYQswEgBiABQZABahCiAQ0ACwsgAUGgAWokACADEKEPIAooAkQiAyAKKAJcNgIQIAMQoA8jAEGgAWsiASQAIAEgA0EUaiICEKABNgKYASABIAIQlQE2ApABIAFBmAFqIAFBkAFqEKIBBEAgA0EEaiEFA0AgAUGYAWoiBhCyASEJIAFBiAFqIgcgAygCECICIAIoAgAoAggRAAAgBygCACENIAFB+ABqQZUnQZSbAUHQABD1AyEQIAFB6ABqIgsgBRCgAyABQfAAaiALEKEDIQ8gAUE4aiAFEKADIAEgCSkCDDcDMCABIAEpAzg3AyggASABKQMwNwMgIAFBQGsgAUEoaiABQSBqEIwMIAEgASkDSDcDGCABIAEpA0A3AxAjAEEQayISJAAjAEEgayICJAAgAUHQAGoiBEEANgIQIAJBCGpBFBDAFiACIAJBGGpBARCxAhDAAiIOKAIAEKcMIhFB9KoCNgIAIBFBBGogAUEQaiIRIAIQqAwgBCAOELsCNgIQIA4Q7QMgAkEgaiQAIBJBEGokACAREJEDGiABIA8pAgA3AwggDSAJIBAgAUEIaiAEELULIAQQ6gUaIAsQmAMaIAcQmAMaIAYQswEgBiABQZABahCiAQ0ACwsgAUGgAWokACADEKEPIAooAkwhBiAKKAJcIQEjAEEgayIJJAAgBiABNgIUIAYoAkghBSMAQbABayIBJAAgAUGgAWoiB0GQsgIQRyENIAFBkAFqIgtB1B9BqqABQS0Q9QMhECABQYABaiICIAUQoAMgAUGIAWogAhChAyEPIAFBADYCdCABQY0KNgJwIAFB6ABqIgQgBRCgAyABQfgAaiIDIAFB8ABqIg4gBBDlESABIA8pAgA3AzAgDSAQIAFBMGogAxDmESADEM8KIAQQmAMaIAIQmAMaIA0QzBYaIAdBwLICEEchDSALQdQfQaqgAUExEPUDIRAgAiAFEKADIAFB4ABqIAIQoQMhDyABQQA2AnQgAUGOCjYCcCAEIAUQoAMgAyAOIAQQ5REgASAPKQIANwMoIA0gECABQShqIAMQ5hEgAxDPCiAEEJgDGiACEJgDGiANEMwWGiAHQfCyAhBHIQ0gC0HUH0GqoAFBNRD1AyEQIAIgBRCgAyABQdgAaiACEKEDIQ8gAUEANgJ0IAFBjwo2AnAgBCAFEKADIAMgDiAEEOURIAEgDykCADcDICANIBAgAUEgaiADEOYRIAMQzwogBBCYAxogAhCYAxogDRDMFhogB0GgswIQRyENIAtB1B9BqqABQTkQ9QMhECACIAUQoAMgAUHQAGogAhChAyEPIAFBADYCdCABQZAKNgJwIAQgBRCgAyADIA4gBBDlESABIA8pAgA3AxggDSAQIAFBGGogAxDmESADEM8KIAQQmAMaIAIQmAMaIA0QzBYaIAdB0LMCEEchDSALQdQfQaqgAUE+EPUDIRAgAiAFEKADIAFByABqIAIQoQMhDyABQQA2AnQgAUGRCjYCcCAEIAUQoAMgAyAOIAQQ5REgASAPKQIANwMQIA0gECABQRBqIAMQ5hEgAxDPCiAEEJgDGiACEJgDGiANEMwWGiAHQYC0AhBHIQ0gC0HUH0GqoAFBwgAQ9QMhECACIAUQoAMgAUFAayACEKEDIQ8gAUEANgJ0IAFBkgo2AnAgBCAFEKADIAMgDiAEEOURIAEgDykCADcDCCANIBAgAUEIaiADEOYRIAMQzwogBBCYAxogAhCYAxogDRDMFhogB0GgtAIQRyEHIAtB1B9BqqABQcYAEPUDIQsgAiAFEKADIAFBOGogAhChAyECIAFBADYCdCABQZMKNgJwIAQgBRCgAyADIA4gBBDlESABIAIpAgA3AwAgByALIAEgAxDmESADEM8KIAFB6ABqEJgDGiABQYABahCYAxogBxDMFhogAUGwAWokACAGKAJIIQIgCUEQaiIBIAZBBGoQoAMgCSABKAIAIgNBEGpBACADGzYCGCAJIAEoAgQiAzYCHCADBEAgAxCiAwsgCSAJKQIYNwMIIAIgCUEIahC9ByABEJgDGiMAQaACayIBJAAgAUGAAWoiAyAGKAIUIgIgAigCACgCEBEAACADKAIAIQUgAUG4AWoiAiAGQQRqIgQQoAMgAUGYAmogAhChAyEHIAUoAgAoAhAhCyABIAcpAgA3A1ggBSABQdgAaiALEQAAIAIQmAMaIAMQmAMaIAYoAhQaIAMQyAYgAygCACEFIAIgBBCgAyABQZACaiACEM0LIQcgBSgCACgCCCELIAEgBykCADcDUCAFIAFB0ABqIAsRAAAgAhCYAxogAxCYAxogASAGQRhqIgMQoAE2AsgBIAEgAxCVATYCmAEgAUHIAWogAUGYAWoQogEEQANAIAFByAFqIgUQsgEhByABQbgBaiILIAYoAhQiAyADKAIAKAIIEQAAIAsoAgAhECABQYABakGsJ0GZnAFBNBD1AyEPIAFBqAFqIg4gBBCgAyABQYgCaiAOEKEDIRIgAUHYAWogBBCgAyABIAcpAgw3A9ABIAEgASkD2AE3A0ggASABKQPQATcDQCABQeABaiABQcgAaiABQUBrEIwMIAEgASkD6AE3AzggASABKQPgATcDMCMAQRBrIhEkACMAQSBrIgMkACABQfABaiICQQA2AhAgA0EIakEUEMAWIAMgA0EYakEBELECEMACIg0oAgAQpwwiFEHAsAI2AgAgFEEEaiABQTBqIhQgAxCoDCACIA0QuwI2AhAgDRDtAyADQSBqJAAgEUEQaiQAIBQQkQMaIAEgEikCADcDKCAQIAcgDyABQShqIAIQtQsgAhDqBRogDhCYAxogCxCYAxogBRCzASAFIAFBmAFqEKIBDQALCyABQcgBaiIFIAYoAhQiAyADKAIAKAIIEQAAIAUoAgAhCyABQbgBakG15gEQRyEGIAFBqAFqQawnQZmcAUE3EPUDIQ4gAUGYAWoiByAEEKADIAFBoAFqIAcQoQMhDSABQegAaiAEEKADIAFBADYCZCABQZoJNgJgIAEgASkDaDcDICABIAEpA2A3AxggAUHwAGogAUEgaiABQRhqEIwMIAEgASkDeDcDECABIAEpA3A3AwgjAEEQayIQJAAjAEEgayIDJAAgAUGAAWoiAkEANgIQIANBCGpBFBDAFiADIANBGGpBARCxAhDAAiIEKAIAEK8IIg9B5LACNgIAIA9BBGogAUEIaiIPIAMQqAwgAiAEELsCNgIQIAQQ7QMgA0EgaiQAIBBBEGokACAPEJEDGiABIA0pAgA3AwAgCyAGIA4gASACEI8MIAIQ6gUaIAcQmAMaIAYQzBYaIAUQmAMaIAFBoAJqJAAgCUEgaiQAIwBBgAFrIgEkAEEeIQIQlgZBw6EBEKICRQRAQQNBARCWBkGG0QAQogIbIQILIAFB6ABqQQAQxAEhAyABQdAAaiACEMYBIQIgA0GW4AAQiQEgAhBpIAIQ0QEgAUE4akEREMYBIQIgA0GrHhCJASACEGkgAhDRASABQSBqQQAQxgEhAiADQb+DARCJASACEGkgAhDRASAKQeAAaiABQQhqIAMQzgEiAhBpIAIQ0QEgAxDRASABQYABaiQAIAxBMGoiASAKKAJcIgMgAygCACgCCBEAACABKAIAQaCcASAIQbXmARBHIgMQjQ4gAxDMFhogARCYAxogDEHQAGokAEGIvAMgExDSAwsgFkEQaiQAIAAgExCeAxogExCYAxogFUEQaiQAC6kRARR/IwBBoARrIgMkAAJAIANBgARqIAEgA0GIBGpBABDEASINENwDRQRAIAIQ7gVFDQEgAkF/IANB4AFqQdcvEEciASADQegDakG15gEQRyIAEIIMIAAQzBYaIAEQzBYaDAELIANB6ANqIgEgDUEAQQEQ1g0gA0HQA2ogDUEBQQQQ1g0gA0G4A2ogDUECQQQQ1g0gA0GgA2ogDUEDQQQQ1g0gA0GIA2ogDUEEQQQQ1g0gASADQeABakEAEMQBIgcQ0gEhASAHENEBAkAgAQRAIANB4AFqQZGhAUGRAUECIANByAFqQbXmARBHIgEQ9wMiAEGDCBBsQeTLABBsQYMIEGxBk9UAEGwaIAAQ+QMgARDMFhogAhDuBUUNASACQc52IANB4AFqQaHVABBHIgEgA0HIAWpBteYBEEciABCCDCAAEMwWGiABEMwWGgwBCyADQdADaiADQeABakEAEMQBIgcQ0gEhASAHENEBIAEEQCADQeABakGRoQFBlwFBAiADQcgBakG15gEQRyIBEPcDIgBBgwgQbEHkywAQbEGDCBBsQd/UABBsGiAAEPkDIAEQzBYaIAIQ7gVFDQEgAkHOdiADQeABakHt1AAQRyIBIANByAFqQbXmARBHIgAQggwgABDMFhogARDMFhoMAQsgA0G4A2ogA0HgAWpBABDEASIHENIBIQEgBxDRASABBEAgA0HgAWpBkaEBQZ0BQQIgA0HIAWpBteYBEEciARD3AyIAQYMIEGxB5MsAEGxBgwgQbEGq1AAQbBogABD5AyABEMwWGiACEO4FRQ0BIAJBznYgA0HgAWpBuNQAEEciASADQcgBakG15gEQRyIAEIIMIAAQzBYaIAEQzBYaDAELIANByAFqEDAiAUEMahAwGiADQeABaiIFIANBoANqEIIBIAEgBRBeIAUQzBYaIAUgA0GIA2oQggEgAUEMaiAFEF4gBRDMFhogA0HoA2oQjAEhBCADQbgBaiIKIANB0ANqEIIBIAVBkaEBQakBQQAgA0GoAWoiEkG15gEQRyIMEPcDIgdBgwgQbEHkywAQbEGDCBBsQYy/ARBsIAQQ6BNB9r4BEGwgChChAkHpqAEQbBogBxD5AyAMEMwWGiASEKMNIBIoAgAhDCADQegDahCMASEHIAUgA0G4A2oQggEgA0EANgJkIANB7wY2AmAgA0HYAGoiEyAAQQRqIgQQoAMgA0HoAGoiFCADQeAAaiATIAIQgA4gA0GQAWogFBCBDiEAIANBADYCFCADQfAGNgIQIANBCGoiFSAEEKADIANBGGoiFiADQRBqIBUgAhCDDiAFIQIgA0FAayAWEIQOIQ4jAEHAA2siBiQAIAYgBzYCvAMgBkGQAmpB5JoBQS5BACAGQYACakG15gEQRyIEEPcDIgVBgwgQbEHkywAQbEGDCBBsQZHiARBsIAoQoQJB87QBEGxBu8sBEGxB6agBEGwaIAUQ+QMgBBDMFhojAEGAAmsiCCQAIAhB8AFqQbTLARBHIQkgCEHgAWpBgskBEEchCwJAAkAgCRBDRQRAIAsQQ0UNAQsgCEE4akHkmgFB6gJBASAIQShqQbXmARBHIgQQ9wMiBUHs2wEQbCAJEKECQYLcARBsIAsQoQIaIAUQ+QMgBBDMFhoMAQsgCEEoaiIPENMGIAhBOGoiEUHkmgFB7wJBACAIQRhqIhBBteYBEEciBBD3AyIFQcLbARBsIA8QoQJBmtwBEGwgCRChAhogBRD5AyAEEMwWGiAQEPUIIBFB5JoBQfICQQAgCEEIakG15gEQRyIEEPcDIgVB1tsBEGwgEBChAkGa3AEQbCALEKECGiAFEPkDIAQQzBYaIA8gCRCsDQRAIAhBGGogCxCsDRoLIAhBGGoQzBYaIAhBKGoQzBYaCyALEMwWGiAJEMwWGiAIQYACaiQAAkACQAJAIAdFDQAgChBDDQAgAhBDRQ0BCyAOEO4FRQ0BIA5Bl3ggBkGQAmpBrc4BEEciAhCQCCACEMwWGgwBCyAGQZACaiIEEMgGIAQoAgAiBSAHrCABIAFBDGogBSgCACgCEBEcACAEEJgDGiAEEMgGIAZBgAJqIgUgBigCkAIiByAHKAIAKAI0EQAAIAQQmAMaAkACQCAFEEMNACAGQYACaiAKEOEGRQ0AIAZBkAJqIgRB5JoBQTlBACAGQfABaiILQbXmARBHIgUQ9wMiB0GDCBBsQeTLABBsQYMIEGxBtr0BEGwgBkGAAmoQoQJBzrIBEGwgChChAhogBxD5AyAFEMwWGiAEEJILIAQoAgAQlAsgBBCYAxogBBCTAyAGKAKQAhC2AyAEEJgDGiAGQQA2ApQCIAZBswY2ApACIAsgDEEEaiIHEKADIAZBkAFqIg8gBCALIAZBvANqIAogAiAAEKgNIAZB2AFqIA8QqQ0hECAGQfgAaiAOELkIIREjAEEgayIJJAAgCUEYaiIEEMgGIAQoAgAhBSAJQQA2AhQgCUG0BjYCECAJQQhqIgwgBxCgAyAFIAlBEGogDCAKIAIgECAREK4NIAUoAgAoAiQRAAAgDBCYAxogBBCYAxogCUEgaiQAIBEQ6wUaIBAQ6wUaIA8Qqg0gCxCYAxoMAQsgBkEANgKUAiAGQbMGNgKQAiAGQfABaiIEIAxBBGoQoAMgBkEYaiIFIAZBkAJqIAQgBkG8A2ogCiACIAAQqA0gDCAKIAIgBkHgAGogBRCpDSIHIAYgDhC5CCICEKsNIAIQ6wUaIAcQ6wUaIAUQqg0gBBCYAxoLIAZBgAJqEMwWGgsgBkHAA2okACAOEOsFGiAWEIUOIBUQmAMaIAAQ6wUaIBQQhQ4gExCYAxogA0HgAWoQzBYaIBIQmAMaIAoQzBYaIAEQzQMLIANBiANqENEBIANBoANqENEBIANBuANqENEBIANB0ANqENEBIANB6ANqENEBCyANENEBIANBoARqJAAL1AEBBn8jAEGwAWsiASQAIAFBqAFqIgQQow0gBCgCACEIIAFBADYCZCABQfEGNgJgIAFB2ABqIgUgAEEEaiIDEKADIAFB6ABqIgAgAUHgAGogBSACEIAOIAFBkAFqIAAQgQ4hBiABQQA2AhQgAUHwBjYCECABQQhqIgcgAxCgAyABQRhqIgMgAUEQaiAHIAIQgw4gCCAGIAFBQGsgAxCEDiICELMNIAIQ6wUaIAMQhQ4gBxCYAxogBhDrBRogABCFDiAFEJgDGiAEEJgDGiABQbABaiQAC7QHARZ/IwBBwAJrIgMkAAJAIANBoAJqIAEgA0GoAmpBABDEASILENwDRQRAIAIQ7gVFDQEgAkF/IANBuAFqQdcvEEciASADQYgCakG15gEQRyIAEIIMIAAQzBYaIAEQzBYaDAELIANBiAJqIg4gC0EAQQQQ1g0gA0HwAWoiDyALQQFBBBDWDSADQbgBahDaDCEBIANBqAFqIhAiBBCjDSABIAQoAgAQjwYQWCAEEJgDGiAEIA4QggEgAUEMaiIFIAQQXiAEEMwWGiAEIA8QggEgAUEYaiIGIAQQXiAQEMwWGiAEEKMNIAMoAqgBIQkgA0EANgJkIANB8QY2AmAgA0HYAGoiESAAQQRqIgAQoAMgA0HoAGoiEiADQeAAaiARIAIQgA4gA0GQAWogEhCBDiETIANBADYCFCADQfAGNgIQIANBCGoiFCAAEKADIANBGGoiFSADQRBqIBQgAhCDDiADQUBrIBUQhA4hFiMAQdABayIHJAAgB0EoaiIKQeSaAUGMAUEAIAdBGGoiDEG15gEQRyIEEPcDIgJB+eEBEGwgARChAkHI3gEQbCAFIgAQoQJB6agBEGwaIAIQ+QMgBBDMFhogChC5BiIIIAEQWCAIQQxqIAAQWCAIQRhqIAYQWCAIIAEoAiQ2AiQgCEEoaiABQShqEMwHIAwQyAYgDCgCACEXIAdBADYCFCAHQbkGNgIQIAdBCGoiGCAJQQRqEKADIwBBEGsiBiQAIAYgBkEIaiAYEJ4DKQIANwMAIwBBEGsiCiQAIApBCGogBhChAyEEIwBBIGsiBSQAIAVBADYCECAFQRBqELsDIQ0gBUG7BjYCBCMAQRBrIgIkAEGAARDAFiAFKAIEEMMDIglBkJ4CNgIAIAkgBykCEDcDCCAJQRBqIAQQyAMiAEEIaiABELoGGiAAQUBrIBMQ3AgaIABB2ABqIBYQ3AgaIAJBCGogCRCbAygCACEAIAJBEGokACAFIAA2AgggDSAFQQhqEL0DIAUoAgghACAFQQA2AgggAARAIAAQwg0QqhMLIAVBGGogDRC/AyEAIA0QnQMgACgCACEAIAVBIGokACAEEJEDGiAGEJgDGiAKQRBqJAAgBkEQaiQAIBcgCEF/IAAgFygCACgCKBEFACAYEJgDGiAMEJgDGiAIELsGIAdB0AFqJAAgFhDrBRogFRCFDiAUEJgDGiATEOsFGiASEIUOIBEQmAMaIBAQmAMaIAEQuwYgDxDRASAOENEBCyALENEBIANBwAJqJAAL7AQBBH8jAEHwAWsiAyQAQZi0ChDyAyADQThqIgQQyAYgA0HgAWoiBSAEKAIAIgYgBigCACgCNBEAACAEEJgDGgJAIAUQQwRAIANBOGpBkaEBQdMBQQAgA0EgakG15gEQRyIAEPcDIgFBgwgQbEGgCxBsQYMIEGxB9ssAEGwaIAEQ+QMgABDMFhogAhDuBUUNASACQX8gA0E4akGEzAAQRyIAIANBIGpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCxDgDBCyDUKAgAiDUARAIANBOGpBkaEBQdcBQQIgA0EgakG15gEQRyIAEPcDIgFBgwgQbEGgCxBsQYMIEGxB1rwBEGxBlngQ6BNBpbsBEGxB6YUBEGxB6agBEGwaIAEQ+QMgABDMFhpBx7AKEPIDIAIQ7gVFDQEgAkGWeCADQThqQemFARBHIgAgA0EgakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELIANBGGogASADQSBqQQAQxAEiARDcAxoCQAJAIAEQRQRAIAFBABBiEPIBDQELIANBOGpBkaEBQeEBQQIgA0EIakG15gEQRyIAEPcDIgRBgwgQbEGgCxBsQYMIEGxBlZYBEGwaIAQQ+QMgABDMFhogAhDuBUUNASACQc52IANBOGpBo5YBEEciACADQQhqQbXmARBHIgIQggwgAhDMFhogABDMFhoMAQsgACgCXCABQQAQYhCLAToAJCACEO4FRQ0AIAJBACADQThqQe0nEEciACADQQhqQbXmARBHIgIQggwgAhDMFhogABDMFhoLIAEQ0QELIANB4AFqEMwWGiADQfABaiQAC70HARB/IwBB0ANrIgMkAAJAIANBsANqIAEgA0G4A2pBABDEASIBENwDRQRAIAIQ7gVFDQEgAkF/IANB2AFqQdcvEEciACADQZgDakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANBmANqIgQgAUEAQQQQ1g0gA0GAA2ogAUEBQQQQ1g0gBCADQdgBakEAEMQBIgQQ0gEhBSAEENEBAkAgBQRAIANB2AFqQZGhAUH2AUECIANByAFqQbXmARBHIgAQ9wMiBEGDCBBsQZoUEGxBgwgQbEHf1AAQbBogBBD5AyAAEMwWGiACEO4FRQ0BIAJBznYgA0HYAWpB7dQAEEciACADQcgBakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANBgANqIANB2AFqQQAQxAEiBBDSASEFIAQQ0QEgBQRAIANB2AFqQZGhAUH8AUECIANByAFqQbXmARBHIgAQ9wMiBEGDCBBsQZoUEGxBgwgQbEHH0wAQbBogBBD5AyAAEMwWGiACEO4FRQ0BIAJBznYgA0HYAWpB1dMAEEciACADQcgBakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANB2AFqIgkgA0GAA2oQggEgACgCHCEKIANByAFqIgsgA0GYA2oiBBCCASADQQA2AnQgA0HyBjYCcCADQegAaiIMIABBBGoiDxCgAyADQdgAaiINIAQQggEgA0H4AGoiBCADKQJwNwMAIARBCGogDBDIAyIAQQhqIAIQkQgaIABBIGogDRDQDSMAQRBrIhAkACMAQSBrIgAkACADQbABaiIFQQA2AhAgAEEIakHAABDAFiAAIABBGGpBARCxAhDAAiIOKAIAEK8IIgZBvKECNgIAIAQQrAMhByAAEKwDIREjAEEQayIIJAAgCCAHNgIIIAZBCGoiBiAIKAIIIgcpAwA3AwAgBkEIaiAHQQhqIgcQyAMiEkEIaiAHQQhqENwIGiASQSBqIAdBIGoQ0A0gCEEQaiQAIAYgERDFCiAFIA4QuwI2AhAgDhDSBSAAQSBqJAAgEEEQaiQAIANBADYCFCADQfAGNgIQIANBCGoiACAPEKADIANBGGoiCCADQRBqIAAgAhCDDiAKIAtBACAJIAUgA0FAayAIEIQOIgIgCigCACgCLBEIACACEOsFGiAIEIUOIAAQmAMaIAUQ6wUaIAQQiA4gDRDMFhogDBCYAxogCxDMFhogCRDMFhoLIANBgANqENEBIANBmANqENEBCyABENEBIANB0ANqJAAL/QMBB38jAEGQA2siAyQAAkAgA0HwAmogASADQfgCakEAEMQBIgEQ3ANFBEAgAhDuBUUNASACQX8gA0GwAWpB1y8QRyIAIANB2AJqQbXmARBHIgIQggwgAhDMFhogABDMFhoMAQsgA0HYAmoiBCABQQBBBBDWDSAEIANBsAFqQQAQxAEiBBDSASEFIAQQ0QECQCAFBEAgA0GwAWpBkaEBQbgCQQIgA0GgAWpBteYBEEciABD3AyIEQYMIEGxBuRQQbEGDCBBsQd/UABBsGiAEEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiADQbABakHt1AAQRyIAIANBoAFqQbXmARBHIgIQggwgAhDMFhogABDMFhoMAQsgACgCHCEEIANBsAFqIgUgA0HYAmoQggEgA0EANgKkASADQfEGNgKgASADQdgAaiIHIABBBGoiBhCgAyADQeAAaiIAIANBoAFqIAcgAhCADiADQYgBaiAAEIEOIQggA0EANgIUIANB8AY2AhAgA0EIaiIJIAYQoAMgA0EYaiIGIANBEGogCSACEIMOIAQgBUEAIAggA0FAayAGEIQOIgIgBCgCACgCpAERBgAgAhDrBRogBhCFDiAJEJgDGiAIEOsFGiAAEIUOIAcQmAMaIAUQzBYaCyADQdgCahDRAQsgARDRASADQZADaiQAC5cFAQx/IwBB4AJrIgMkAAJAIANBwAJqIAEgA0HIAmpBBhDEASIBENwDRQRAIAIQ7gVFDQEgAkF/IANBiAFqQdcvEEciACADQbACakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANBsAJqEDAhCSABQQEgA0GIAWpB0qUBEEciBSAJEOADIQQgBRDMFhoCQCAERQRAIANBiAFqQZGhAUHKAkECIANB+ABqQbXmARBHIgAQ9wMiBUGDCBBsQeSlARBsQYMIEGxB1+UBEGwgCRChAhogBRD5AyAAEMwWGiACEO4FRQ0BIAJBznYgCSADQYgBakG15gEQRyIAEIIMIAAQzBYaDAELIANBiAFqQQcQxAEhBSADQeAAaiABQQEQYhDOASEEIAVB1hMQiQEgBBBpIAQQ0QEgA0EANgJ8IANB8wY2AnggA0EQaiIKIABBBGoQoAMgAyABQQAQYhCMATYCDCADQRhqIgQgAykCeDcDACAEQQhqIAoQyAMiCEEIaiACEJEIGiAIQSBqIANBDGoQyQIaIAAgBQJ/IwBBEGsiDCQAIwBBIGsiACQAIANByABqIgJBADYCECAAQQhqQTgQwBYgACAAQRhqQQEQsQIQwAIiCygCABCeDSIGQaiiAjYCACAEEKwDIQcgABCsAyENIwBBEGsiCCQAIAggBzYCCCAGQQhqIgYgCCgCCCIHKQMANwMAIAZBCGogB0EIaiIHEMgDIg5BCGogB0EIahDcCBogDiAHKAIgNgIgIAhBEGokACAGIA0QxQogAiALELsCNgIQIAsQ0gUgAEEgaiQAIAxBEGokACACCxD8DSACEOsFGiAEEIUOIAoQmAMaIAUQ0QELIAkQzBYaCyABENEBIANB4AJqJAALyAEBBH8jAEGgAWsiASQAIAAoAhwhBCABQQA2AlwgAUHxBjYCWCABQdAAaiIFIABBBGoiAxCgAyABQeAAaiIAIAFB2ABqIAUgAhCADiABQYgBaiAAEIEOIQYgAUEANgIMIAFB8AY2AgggASADEKADIAFBEGoiAyABQQhqIAEgAhCDDiAEQQAgBiABQThqIAMQhA4iAiAEKAIAKAJcEQUAIAIQ6wUaIAMQhQ4gARCYAxogBhDrBRogABCFDiAFEJgDGiABQaABaiQAC8QCAQd/IwBB4AFrIgMkAAJAIANBwAFqIAEgA0HIAWpBABDEASIBENwDRQRAIAIQ7gVFDQEgAkF/IANBmAFqQdcvEEciACADQbABakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANBmAFqIgUgAUEAQQUQ1g0gACgCHCEGIAUQiwEhCSADQQA2ArQBIANB8QY2ArABIANB0ABqIgcgAEEEaiIEEKADIANB2ABqIgAgA0GwAWogByACEIAOIANBgAFqIAAQgQ4hCCADQQA2AgwgA0HwBjYCCCADIAQQoAMgA0EQaiIEIANBCGogAyACEIMOIAYgCSAIIANBOGogBBCEDiICIAYoAgAoAswBEQUAIAIQ6wUaIAQQhQ4gAxCYAxogCBDrBRogABCFDiAHEJgDGiAFENEBCyABENEBIANB4AFqJAAL0gEBBH8jAEGgAWsiASQAIAAoAlxBARD7DiAAKAIcIQQgAUEANgJcIAFB8QY2AlggAUHQAGoiBSAAQQRqIgMQoAMgAUHgAGoiACABQdgAaiAFIAIQgA4gAUGIAWogABCBDiEGIAFBADYCDCABQfAGNgIIIAEgAxCgAyABQRBqIgMgAUEIaiABIAIQgw4gBEEAIAYgAUE4aiADEIQOIgIgBCgCACgCaBEFACACEOsFGiADEIUOIAEQmAMaIAYQ6wUaIAAQhQ4gBRCYAxogAUGgAWokAAvSAQEEfyMAQaABayIBJAAgACgCXEEAEPsOIAAoAhwhBCABQQA2AlwgAUHxBjYCWCABQdAAaiIFIABBBGoiAxCgAyABQeAAaiIAIAFB2ABqIAUgAhCADiABQYgBaiAAEIEOIQYgAUEANgIMIAFB8AY2AgggASADEKADIAFBEGoiAyABQQhqIAEgAhCDDiAEQQAgBiABQThqIAMQhA4iAiAEKAIAKAJsEQUAIAIQ6wUaIAMQhQ4gARCYAxogBhDrBRogABCFDiAFEJgDGiABQaABaiQAC5sBAQF/IwBB0ABrIgMkAAJAIANBMGogASADQThqQQAQxAEiARDcA0UEQCACEO4FRQ0BIAJBfyADQQhqQdcvEEciACADQSBqQbXmARBHIgIQggwgAhDMFhogABDMFhoMAQsgA0EIaiICIAFBAEEBENYNIAAoAhwiACACEIwBIAAoAgAoAtwBEQAAIAIQ0QELIAEQ0QEgA0HQAGokAAu3CAEIfyMAQdAEayIDJAACQCADQbAEaiABIANBuARqQQAQxAEiARDcA0UEQCACEO4FRQ0BIAJBfyADQcACakHXLxBHIgAgA0GYBGpBteYBEEciAhCCDCACEMwWGiAAEMwWGgwBCyADQZgEaiIGIAFBAEEEENYNIANBgARqIAFBAUEBENYNIANB6ANqIAFBAkEBENYNIAYgA0HAAmpBABDEASIGENIBIQQgBhDRAQJAIAQEQCADQcACakGRoQFBmwNBAiADQbACakG15gEQRyIAEPcDIgZBgwgQbEGnKRBsQYMIEGxB39QAEGwaIAYQ+QMgABDMFhogAhDuBUUNASACQc52IANBwAJqQfMIEEciACADQbACakG15gEQRyICEIIMIAIQzBYaIAAQzBYaDAELIANBsAJqEPYHIQYgA0GABGogA0HAAmpBABDEASIEENMBIQUgBBDRAQJAIAVFDQAgA0GABGoQjAEiBEEBTQRAIAYgBDYCBAwBCyADQcACakGRoQFBpwNBASADQaACakG15gEQRyIEEPcDIgVBgwgQbEGnKRBsQYMIEGxB+soBEGwaIAUQ+QMgBBDMFhoLIANB6ANqIANBwAJqQQAQxAEiBBDTASEFIAQQ0QECQCAFRQ0AIANB6ANqEIwBIgRBA00EQCAGIAQ2AgAMAQsgA0HAAmpBkaEBQa8DQQEgA0GgAmpBteYBEEciBBD3AyIFQYMIEGxBpykQbEGDCBBsQc7JARBsGiAFEPkDIAQQzBYaCyADQcACaiIEIANBmARqEIIBIANBoAJqIgUgACgCXBD6DiAEIAUQjQUhByAFEMwWGiAEEMwWGiAAKAIcIQQCQCAHBEAgA0EANgLEAiADQfEGNgLAAiADQaACaiIFIABBBGoiCBCgAyADQeABaiIAIANBwAJqIAUgAhCADiADQYgCaiAAEIEOIQcgA0EANgKcASADQfAGNgKYASADQZABaiIJIAgQoAMgA0GgAWoiCCADQZgBaiAJIAIQgw4gBCAGIAcgA0HIAWogCBCEDiICIAQoAgAoAkQRBQAgAhDrBRogCBCFDiAJEJgDGiAHEOsFGiAAEIUOIAUQmAMaDAELIANBwAJqIgUgA0GYBGoQggEgA0EANgKkAiADQfEGNgKgAiADQZgBaiIHIABBBGoiChCgAyADQdAAaiIAIANBoAJqIAcgAhCADiADQfgAaiAAEIEOIQkgA0EANgKUASADQfAGNgKQASADQQhqIgggChCgAyADQRBqIgogA0GQAWogCCACEIMOIAQgBUEAIAYgCSADQThqIAoQhA4iAiAEKAIAKAJIEQgAIAIQ6wUaIAoQhQ4gCBCYAxogCRDrBRogABCFDiAHEJgDGiAFEMwWGgsLIANB6ANqENEBIANBgARqENEBIANBmARqENEBCyABENEBIANB0ARqJAAL7QQBB38jAEGwA2siAyQAAkAgA0GQA2ogASADQZgDakEAEMQBIgEQ3ANFBEAgAhDuBUUNASACQX8gA0GoAWpB1y8QRyIAIANB+AJqQbXmARBHIgIQggwgAhDMFhogABDMFhoMAQsgA0H4AmoiBCABQQBBARDWDSADQeACaiABQQFBARDWDSADQdACahDbDCEHIAQgA0GoAWpBABDEASIEENMBIQUgBBDRAQJAIAVFDQAgA0H4AmoQjAEiBEEBa0EDTQRAIAcgBDYCAAwBCyADQagBakGRoQFB0wNBASADQZgBakG15gEQRyIEEPcDIgVBgwgQbEH8KBBsQYMIEGxBkMkBEGwaIAUQ+QMgBBDMFhoLIANB4AJqIANBqAFqQQAQxAEiBBDTASEFIAQQ0QECQCAFRQ0AIANB4AJqEIwBIgRBAU0EQCAHIAQ2AgQMAQsgA0GoAWpBkaEBQdsDQQEgA0GYAWpBteYBEEciBBD3AyIFQYMIEGxB/CgQbEGDCBBsQbrKARBsGiAFEPkDIAQQzBYaCyAAKAIcIQQgA0EANgKsASADQfEGNgKoASADQZgBaiIFIABBBGoiBhCgAyADQdgAaiIAIANBqAFqIAUgAhCADiADQYABaiAAEIEOIQggA0EANgIUIANB8AY2AhAgA0EIaiIJIAYQoAMgA0EYaiIGIANBEGogCSACEIMOIARBACAHIAggA0FAayAGEIQOIgIgBCgCACgCOBEGACACEOsFGiAGEIUOIAkQmAMaIAgQ6wUaIAAQhQ4gBRCYAxogA0HgAmoQ0QEgA0H4AmoQ0QELIAEQ0QEgA0GwA2okAAvdBwEEfyMAQeACayIDJABBjrQKEPIDIANBqAFqIgUQyAYgA0HQAmoiBCAFKAIAIgYgBigCACgCNBEAACAFEJgDGgJAIAQQQwRAIANBqAFqQZGhAUHpA0EAIANBkAFqQbXmARBHIgAQ9wMiAUGDCBBsQdCJARBsQYMIEGxB9ssAEGwaIAEQ+QMgABDMFhogAhDuBUUNASACQX8gA0GoAWpBhMwAEEciACADQZABakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELEOAMELINQoCAEINQBEAgA0GoAWpBkaEBQewDQQIgA0GQAWpBteYBEEciABD3AyIBQYMIEGxB0IkBEGxBgwgQbEHBChBsGiABEPkDIAAQzBYaQcewChDyAyACEO4FRQ0BIAJBlnggA0GoAWpBzwoQRyIAIANBkAFqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsCQCADQYgBaiABIANBkAFqQQAQxAEiBRDcA0UEQCACEO4FRQ0BIAJBfyADQagBakHXLxBHIgAgA0HwAGpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCyADQfAAaiIBIAVBAEEBENYNIAEgA0GoAWpBABDEASIBENIBIQQgARDRAQJAIAQEQCADQagBakGRoQFB+QNBAiADQeAAakG15gEQRyIAEPcDIgFBgwgQbEHQiQEQbEGDCBBsQfjTABBsGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkHOdiADQagBakGG1AAQRyIAIANB4ABqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsCQCADQfAAahCMAUEATgRAIANB8ABqEIwBQQRIDQELIANBqAFqQZGhAUGABEECIANB4ABqQbXmARBHIgAQ9wMiAUGDCBBsQdCJARBsQYMIEGxBicoBEGwaIAEQ+QMgABDMFhogAhDuBUUNASACQc52IANBqAFqQZfKARBHIgAgA0HgAGpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCyADQagBakEAEMQBIQECfyADQfAAahCMAQRAIANByABqQQEQzQEhAiABQYiAARCJASACEGkgAhDRASADQTBqQQMQxwEhAiABQfr4ABCJASACEGkgAhDRAUGm3QAhAiADQRhqIANB8ABqEIwBEMYBDAELQYiAASECIANBABDNAQshBCABIAIQiQEgBBBpIAQQ0QEgACgCHCIAIANB4ABqQYyKARBHIgIgASAAKAIAKALEAREDACACEMwWGiABENEBCyADQfAAahDRAQsgBRDRAQsgA0HQAmoQzBYaIANB4AJqJAAL9wUBBH8jAEGAA2siAyQAQYS0ChDyAyADQcgBaiIFEMgGIANB8AJqIgQgBSgCACIGIAYoAgAoAjQRAAAgBRCYAxoCQCAEEEMEQCADQcgBakGRoQFBlQRBACADQagBakG15gEQRyIAEPcDIgFBgwgQbEH3iQEQbEGDCBBsQfbLABBsGiABEPkDIAAQzBYaIAIQ7gVFDQEgAkF/IANByAFqQYTMABBHIgAgA0GoAWpBteYBEEciARCCDCABEMwWGiAAEMwWGgwBCxDgDBCyDUKAgBCDUARAIANByAFqQZGhAUGYBEECIANBqAFqQbXmARBHIgAQ9wMiAUGDCBBsQfeJARBsQYMIEGxBwQoQbBogARD5AyAAEMwWGkHHsAoQ8gMgAhDuBUUNASACQZZ4IANByAFqQc8KEEciACADQagBakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELAkAgA0HAAWogASADQcgBakEAEMQBIgUQ3ANFBEAgAhDuBUUNASACQX8gA0GoAWpB1y8QRyIAIANBkAFqQbXmARBHIgEQggwgARDMFhogABDMFhoMAQsgA0GoAWoiAiAFQQBBBBDWDSADQZABakEAEMQBIQECQAJAIAIgA0H4AGpBABDEASICENMBRQRAIAIQ0QEMAQsgA0HoAGoiBCADQagBahCCASAEEEMhBiAEEMwWGiACENEBIAYNACADQdAAakEBEM0BIQIgAUGIgAEQiQEgAhBpIAIQ0QEgA0E4akECEMcBIQIgAUH6+AAQiQEgAhBpIAIQ0QEgA0H4AGoiAiADQagBahCCASADQSBqIAIQzAEhBCABQYfiABCJASAEEGkgBBDRASACEMwWGgwBCyADQQhqQQAQzQEhAiABQYiAARCJASACEGkgAhDRAQsgACgCHCIAIANB+ABqQYyKARBHIgIgASAAKAIAKALEAREDACACEMwWGiABENEBIANBqAFqENEBCyAFENEBCyADQfACahDMFhogA0GAA2okAAuFBwEHfyMAQcACayIDJAACQCADQaACaiIFIAEgA0GoAmpBABDEASIHENwDRQRAIAIQ7gVFDQEgAkF/IANB6ABqQdcvEEciACADQdAAakG15gEQRyIBEIIMIAEQzBYaIAAQzBYaDAELIANBkAJqEDAhASAHQQQgA0HoAGpBxdEAEEciBiABEOADIQQgBhDMFhoCQCAERQRAIANB6ABqQZGhAUG3BEECIANB0ABqQbXmARBHIgAQ9wMiBkGDCBBsQdKrARBsQYMIEGxB1+UBEGwgARChAhogBhD5AyAAEMwWGiACEO4FRQ0BIAJBznYgASADQegAakG15gEQRyIAEIIMIAAQzBYaDAELIANB0ABqQQAQxAEh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IQMgAiAGEKADIAFB2ABqIAIQzQshAiADKAIAKAIMIQQgASACKQIANwMYIAMgAUEYaiAEEQAAIAFB4ABqEJgDGiABQThqEJgDGiABIAVBGGoiAhCgATYCKCABIAIQlQE2AlAgAUEoaiABQdAAahCiAQRAA0AgAUEoaiICELIBIQggAUE4aiIDIAUoAhQiBCAEKAIAKAIIEQAAIAMoAgAhByABQeAAaiIEIAYQoAMgASABQcgAaiAEEKEDKQIANwMQIAcgCCABQRBqELkLIAQQmAMaIAMQmAMaIAIQswEgAiABQdAAahCiAQ0ACwsgAUHgAGoiAiAFKAIUIgMgAygCACgCCBEAACACKAIAIQggAUE4akG15gEQRyEDIAFBKGoiBCAGEKADIAEgAUEwaiAEEKEDKQIANwMIIAhBopwBIAMgAUEIahC6CyAEEJgDGiADEMwWGiACEJgDGiABQfAAaiQAIAVBADYCFAsgACgCXCIBBEAgASABKAIAKAIEEQEACyAAQSRqIgIiASABELUCEJYOIAEQqwFBADYCACABIAEQtwI2AgAgARC3AkEANgIAIABBMGoiASABELUCEJcOIAEQqwFBADYCACABIAEQtwI2AgAgARC3AkEANgIAIABBADYCXCAAQeAAahDRASAAQdQAahCYAxogAEHMAGoQmAMaIABBxABqEJgDGiAAQTxqEJgDGiABIAEQtQIQlw4gAiACELUCEJYOIABBHGoQmAMaIABBFGoQmAMaIABBDGoQmAMaIABBBGoQkQMaIAALDQAgABCKDhogABCqEwsKAEGIvAMQkQMaC/EEAQV/IwBB0ABrIgMkACADIABBFGoiBBCkAzYCICADIAQQhwI2AhAgA0EgaiADQRBqELQBBEADQCADQUBrIgUgA0EgahClAxCjAyAFEJYDBEAgA0FAaygCACIFIAEgAiAFKAIAKAIAEQMACyADQUBrEJgDGiADQSBqIgUQpgMgBSADQRBqELQBDQALCyADQUBrIgUgASACELYLIAMgACAFELkJNgI4IAMQugk2AiACQCADQThqIANBIGoQtQEEQCADIAQQpAM2AhAgAyAEEIcCNgIwIANBEGogA0EwahC0AUUNAQNAIANBIGoiACADQRBqEKUDEKMDIAAQlgMEQCADKAIgIgAgASACIAAoAgAoAgQRAwALIANBIGoQ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C4MCAQN/IAAgAUcEQCABEKQDIQIgARCHAiEDIwBBQGoiASQAIAEgAzYCMCABIAI2AjggASAAEKQDNgIoIAEgABCHAjYCIAJAIAFBOGogAUEwahC0AUUNAANAIAFBKGogAUEgahC0AUUNASABQThqIgIQpQMhAyABQShqIgQQpQMgAxBYIAIQpgMgBBCmAyACIAFBMGoQtAENAAsLAkAgAUEoaiABQSBqEJYBBEAgACABQRhqIAFBIGoQyQIoAgAgASgCOCABKAIwEPwODAELIAFBEGogAUEoahDJAiECIAFBCGogAUEgahDJAiEDIAAgAigCACADKAIAEOINCyABQUBrJAALCyoBAX8jAEGAAWsiASQAIABBKGogARDlDSIAEPMOIAAQ6A0gAUGAAWokAAsMACAAIAFBBGoQowMLDAAgACABQQxqEKMDCwwAIAAgAUEUahCjAwsMACAAIAFBHGoQowMLMgEBfyMAQRBrIgEkACABQQhqIgIQow0gACACKAIAEI8GELgBGiACEJgDGiABQRBqJAALCgAgACABOgCoAQu4AgEFfyMAQTBrIgQkACAEIAM2AhggBCACNgIgIARBKGogARCmASEDIARBIGogBEEYahC0AQRAIARBCGoiAiAAEKsBIgcQ6wMgByACKAIAQQhqIARBIGoiBRClAxCIAyADIAQgAigCABCmASgCADYCACACELsCGiAEIAMoAgAiBjYCACAFEKYDQQEhAiAFIARBGGoQtAEEQANAIARBCGoiBUEUEMAWEPEDIAcgBSgCAEEIaiAEQSBqIgYQpQMQiAMgBCgCACIIIAUoAgA2AgQgBSgCACAINgIAIAJBAWohAiAFELsCGiAGEKYDIAQQpgMgBiAEQRhqELQBDQALIAQoAgAhBgsgASADKAIAIAYQ8AMgABCrASIAIAAoAgAgAmo2AgAgBEEIahDtAwsgAygCABogBEEwaiQAC7oBAQJ/IwBB8ABrIgUkACAFQRBqEOIOIQQgBSABKAJAEP4OIARBKGogBRBeIAUQzBYaIAQgASgCGDYCGCAEQRxqIAFBHGoQWCAEIAFBKGoQWCAEIAM6AEQCfyABQTRqIgMQpAMLAn8gAxCHAgsgBEEMahCHAhD/DiAAEOUOIgBBBGoQlAYQWCAAIAEoAhg2AhwgACABKAJANgIgIABBKGogAhBYIABB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KAIABSAACxEDAAsgAUEYahCYAxogAUEgaiQAIARBEGokAAuuAQIEfwF+IwBBEGsiBSQAIAUgATYCDCAAQRBqIgEhBCABEKsBIQcjAEEgayIBJAAgAUEYaiIGIAQQowMgBhCWAwRAIAEoAhghBCABIAApAggiCDcDCCABIAg3AxAgASgCCCEAIAQgASgCDCIGQQF1aiIEIAcgBSgCDCACIAMgBkEBcQR/IAQoAgAgAGooAgAFIAALEQYACyABQRhqEJgDGiABQSBqJAAgBUEQaiQACx8BAX8gACgCACEBIABBADYCACABBEAgARDAERCqEwsLEQAgACABEMgDQQhqIAIQpgcLGgEBfyAAQRBqIgFBCGoQzBYaIAEQkQMaIAALCgAgABDAERCqEwvhAQIEfwF+IwBBEGsiCCQAIAggBjoACyAIIAE2AgwgAEEQaiIBIQYgARCrASEJIwBBIGsiASQAIAFBGGoiByAGEKMDIAcQlgMEQCABKAIYIQcgASAAKQIIIgs3AwggASALNwMQIwBBIGsiBiQAIAcgASgCDCIKQQF1aiEHIAEoAgghACAKQQFxBEAgBygCACAAaigCACEACyAHIAZBCGogCRC5CCIHIAgoAgwgAiADIAQgBSAILQALIAARDgAgBxDqBRogBkEgaiQACyABQRhqEJgDGiABQSBqJAAgCEEQaiQAC6UBAgN/AX4jAEEQayIIJAAgCCABNgIMIwBBIGsiASQAIAFBGGoiByAAQRBqEKMDIAcQlgMEQCABKAIYIQcgASAAKQIIIgo3AwggASAKNwMQIAEoAgghACAHIAEoAgwiCUEBdWoiByAIKAIMIAIgAyAEIAUgBiAJQQFxBH8gBygCACAAaigCAAUgAAsRDAALIAFBGGoQmAMaIAFBIGokACAIQRBqJAALDQAgAEGksAI2AgAgAAsKACAAEMQREKoTCx8AIAAQrgIiAEEQahDMFhogAEEIahCRAxogABCRAxoLLQAgAQRAIAAgASgCABDHESAAIAEoAgQQxxEgABC3AiABQRBqELgCIAEQqhMLCxUAIABBwLACNgIAIABBBGoQxgMgAAsKACAAEMgREKoTC04BAn8jAEEgayIBJAAgAEEEaiECIAFBCGpBFBDAFiABIAFBGGpBARCxAhDAAiIAKAIAIAIgARDLESAAELsCIQIgABDtAyABQSBqJAAgAgscACAAEKcMIgBBwLACNgIAIABBBGogASACELEMCxAAIAEgAEEEaiIAIAAQyxELFQAgAEHksAI2AgAgAEEEahDGAyAACwoAIAAQzREQqhMLTgECfyMAQSBrIgEkACAAQQRqIQIgAUEIakEUEMAWIAEgAUEYakEBELECEMACIgAoAgAgAiABENARIAAQuwIhAiAAEO0DIAFBIGokACACCxwAIAAQrwgiAEHksAI2AgAgAEEEaiABIAIQsQwLEAAgASAAQQRqIgAgABDQEQsVACAAQYixAjYCACAAQQhqEJYPIAALCgAgABDSERCqEwtPAQJ/IwBBIGsiASQAIABBCGohAiABQQhqQbgCEMAWIAEgAUEYakEBELECEMACIgAoAgAgAiABENURIAAQuwIhAiAAENIFIAFBIGokACACCxwAIAAQrwgiAEGIsQI2AgAgAEEIaiABIAIQ7A8LEAAgASAAQQhqIgAgABDVEQsVACAAQayxAjYCACAAQQhqEIUOIAALCgAgABDXERCqEwtOAQJ/IwBBIGsiASQAIABBCGohAiABQQhqQTAQwBYgASABQRhqQQEQsQIQwAIiACgCACACIAEQ2hEgABC7AiECIAAQ0gUgAUEgaiQAIAILHAAgABC8CCIAQayxAjYCACAAQQhqIAEgAhCvDgsQACABIABBCGoiACAAENoRCxUAIABB0LECNgIAIABBCGoQhQ4gAAsKACAAENwREKoTC04BAn8jAEEgayIBJAAgAEEIaiECIAFBCGpBMBDAFiABIAFBGGpBARCxAhDAAiIAKAIAIAIgARDfESAAELsCIQIgABDSBSABQSBqJAAgAgscACAAEK8IIgBB0LECNgIAIABBCGogASACEK8OCxAAIAEgAEEIaiIAIAAQ3xELGwAgASgCACEBIwBBEGsiACQAIABBEGokACABCwkAIAEgAhCWAQvGAgEIfyAAELcCIQICQCABBEAgACACIAEQ3wIQ4AogABC3AiABNgIAA0AgACADEMAHQQA2AgAgA0EBaiIDIAFHDQALIABBCGoiAigCACIERQ0BIAAgBCgCBCABENcKIgYQwAcgAjYCACAEKAIAIgJFDQEDQAJAIAYgAigCBCABENcKIgVGBEAgAiEEDAELAkACQCAAIAUQwAcoAgAEQEEAIQcgAiEDIAIoAgANAQwC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D2pBASAAKAIgEQcAQQFHDQAgAi0ADyEBCyACQRBqJAAgASIDQQBODQEgACgCBCEBIAAoAiwhAgsgAEJ/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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")||(Wl=function(AA){return Q.locateFile?Q.locateFile(AA,Le):Le+AA}(Wl));var mk=void 0;function Cl(AA){for(var Z="",hA=AA;eo[hA];)Z+=mk[eo[hA++]];return Z}var Jp={},lQ={},DM={};function SM(AA){if(AA===void 0)return"_unknown";var Z=(AA=AA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return Z>=48&&Z<=57?"_"+AA:AA}function K0(AA,Z){return AA=SM(AA),new Function("body","return function "+AA+`() {
|
||
"use strict"; return body.apply(this, arguments);
|
||
};
|
||
`)(Z)}function j0(AA,Z){var hA=K0(Z,function(bA){this.name=Z,this.message=bA;var ue=new Error(bA).stack;ue!==void 0&&(this.stack=this.toString()+`
|
||
`+ue.replace(/^Error(:[^\n]*)?\n/,""))});return hA.prototype=Object.create(AA.prototype),hA.prototype.constructor=hA,hA.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},hA}var Hp=void 0;function cr(AA){throw new Hp(AA)}var fk=void 0;function Iy(AA){throw new fk(AA)}function Mo(AA,Z,hA){function bA(Ue){var st=hA(Ue);st.length!==AA.length&&Iy("Mismatched type converter count");for(var He=0;He<AA.length;++He)cc(AA[He],st[He])}AA.forEach(function(Ue){DM[Ue]=Z});var ue=new Array(Z.length),Se=[],Re=0;Z.forEach(function(Ue,st){lQ.hasOwnProperty(Ue)?ue[st]=lQ[Ue]:(Se.push(Ue),Jp.hasOwnProperty(Ue)||(Jp[Ue]=[]),Jp[Ue].push(function(){ue[st]=lQ[Ue],++Re===Se.length&&bA(ue)}))}),Se.length===0&&bA(ue)}function cc(AA,Z){var hA=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!("argPackAdvance"in Z))throw new TypeError("registerType registeredInstance requires argPackAdvance");var bA=Z.name;if(AA||cr('type "'+bA+'" must have a positive integer typeid pointer'),lQ.hasOwnProperty(AA)){if(hA.ignoreDuplicateRegistrations)return;cr("Cannot register type '"+bA+"' twice")}if(lQ[AA]=Z,delete DM[AA],Jp.hasOwnProperty(AA)){var ue=Jp[AA];delete Jp[AA],ue.forEach(function(Se){return Se()})}}function M2(AA){if(!(this instanceof Eu)||!(AA instanceof Eu))return!1;for(var Z=this.$$.ptrType.registeredClass,hA=this.$$.ptr,bA=AA.$$.ptrType.registeredClass,ue=AA.$$.ptr;Z.baseClass;)hA=Z.upcast(hA),Z=Z.baseClass;for(;bA.baseClass;)ue=bA.upcast(ue),bA=bA.baseClass;return Z===bA&&hA===ue}function yk(AA){cr(AA.$$.ptrType.registeredClass.name+" instance already deleted")}var Xo=!1;function Bs(AA){}function Bn(AA){AA.count.value-=1,AA.count.value===0&&function(Z){Z.smartPtr?Z.smartPtrType.rawDestructor(Z.smartPtr):Z.ptrType.registeredClass.rawDestructor(Z.ptr)}(AA)}function Dk(AA,Z,hA){if(Z===hA)return AA;if(hA.baseClass===void 0)return null;var bA=Dk(AA,Z,hA.baseClass);return bA===null?null:hA.downcast(bA)}var Sk={};function v2(){return Object.keys(Zh).length}function R2(){var AA=[];for(var Z in Zh)Zh.hasOwnProperty(Z)&&AA.push(Zh[Z]);return AA}var uy=[];function W0(){for(;uy.length;){var AA=uy.pop();AA.$$.deleteScheduled=!1,AA.delete()}}var Ey=void 0;function yK(AA){Ey=AA,uy.length&&Ey&&Ey(W0)}var Zh={};function ti(AA,Z){return Z=function(hA,bA){for(bA===void 0&&cr("ptr should not be undefined");hA.baseClass;)bA=hA.upcast(bA),hA=hA.baseClass;return bA}(AA,Z),Zh[Z]}function Qs(AA,Z){return Z.ptrType&&Z.ptr||Iy("makeClassHandle requires ptr and ptrType"),!!Z.smartPtrType!=!!Z.smartPtr&&Iy("Both smartPtrType and smartPtr must be specified"),Z.count={value:1},MM(Object.create(AA,{$$:{value:Z}}))}function w2(AA){var Z=this.getPointee(AA);if(!Z)return this.destructor(AA),null;var hA=ti(this.registeredClass,Z);if(hA!==void 0){if(hA.$$.count.value===0)return hA.$$.ptr=Z,hA.$$.smartPtr=AA,hA.clone();var bA=hA.clone();return this.destructor(AA),bA}function ue(){return this.isSmartPointer?Qs(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:Z,smartPtrType:this,smartPtr:AA}):Qs(this.registeredClass.instancePrototype,{ptrType:this,ptr:AA})}var Se,Re=this.registeredClass.getActualType(Z),Ue=Sk[Re];if(!Ue)return ue.call(this);Se=this.isConst?Ue.constPointerType:Ue.pointerType;var st=Dk(Z,this.registeredClass,Se.registeredClass);return st===null?ue.call(this):this.isSmartPointer?Qs(Se.registeredClass.instancePrototype,{ptrType:Se,ptr:st,smartPtrType:this,smartPtr:AA}):Qs(Se.registeredClass.instancePrototype,{ptrType:Se,ptr:st})}function MM(AA){return typeof FinalizationRegistry>"u"?(MM=function(Z){return Z},AA):(Xo=new FinalizationRegistry(function(Z){console.warn(Z.leakWarning.stack.replace(/^Error: /,"")),Bn(Z.$$)}),MM=function(Z){var hA=Z.$$;if(hA.smartPtr){var bA={$$:hA},ue=hA.ptrType.registeredClass;bA.leakWarning=new Error("Embind found a leaked C++ instance "+ue.name+" <0x"+hA.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(bA.leakWarning,w2),Xo.register(Z,bA,Z)}return Z},Bs=function(Z){return Xo.unregister(Z)},MM(AA))}function Mk(){if(this.$$.ptr||yk(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var AA,Z=MM(Object.create(Object.getPrototypeOf(this),{$$:{value:(AA=this.$$,{count:AA.count,deleteScheduled:AA.deleteScheduled,preservePointerOnDelete:AA.preservePointerOnDelete,ptr:AA.ptr,ptrType:AA.ptrType,smartPtr:AA.smartPtr,smartPtrType:AA.smartPtrType})}}));return Z.$$.count.value+=1,Z.$$.deleteScheduled=!1,Z}function z0(){this.$$.ptr||yk(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&cr("Object already scheduled for deletion"),Bs(this),Bn(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function vk(){return!this.$$.ptr}function _2(){return this.$$.ptr||yk(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&cr("Object already scheduled for deletion"),uy.push(this),uy.length===1&&Ey&&Ey(W0),this.$$.deleteScheduled=!0,this}function Eu(){}function vM(AA,Z,hA){if(AA[Z].overloadTable===void 0){var bA=AA[Z];AA[Z]=function(){return AA[Z].overloadTable.hasOwnProperty(arguments.length)||cr("Function '"+hA+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+AA[Z].overloadTable+")!"),AA[Z].overloadTable[arguments.length].apply(this,arguments)},AA[Z].overloadTable=[],AA[Z].overloadTable[bA.argCount]=bA}}function DK(AA,Z,hA,bA,ue,Se,Re,Ue){this.name=AA,this.constructor=Z,this.instancePrototype=hA,this.rawDestructor=bA,this.baseClass=ue,this.getActualType=Se,this.upcast=Re,this.downcast=Ue,this.pureVirtualFunctions=[]}function RM(AA,Z,hA){for(;Z!==hA;)Z.upcast||cr("Expected null or instance of "+hA.name+", got an instance of "+Z.name),AA=Z.upcast(AA),Z=Z.baseClass;return AA}function Rk(AA,Z){if(Z===null)return this.isReference&&cr("null is not a valid "+this.name),0;Z.$$||cr('Cannot pass "'+FC(Z)+'" as a '+this.name),Z.$$.ptr||cr("Cannot pass deleted object as a pointer of type "+this.name);var hA=Z.$$.ptrType.registeredClass;return RM(Z.$$.ptr,hA,this.registeredClass)}function wk(AA,Z){var hA;if(Z===null)return this.isReference&&cr("null is not a valid "+this.name),this.isSmartPointer?(hA=this.rawConstructor(),AA!==null&&AA.push(this.rawDestructor,hA),hA):0;Z.$$||cr('Cannot pass "'+FC(Z)+'" as a '+this.name),Z.$$.ptr||cr("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&Z.$$.ptrType.isConst&&cr("Cannot convert argument of type "+(Z.$$.smartPtrType?Z.$$.smartPtrType.name:Z.$$.ptrType.name)+" to parameter type "+this.name);var bA=Z.$$.ptrType.registeredClass;if(hA=RM(Z.$$.ptr,bA,this.registeredClass),this.isSmartPointer)switch(Z.$$.smartPtr===void 0&&cr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:Z.$$.smartPtrType===this?hA=Z.$$.smartPtr:cr("Cannot convert argument of type "+(Z.$$.smartPtrType?Z.$$.smartPtrType.name:Z.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:hA=Z.$$.smartPtr;break;case 2:if(Z.$$.smartPtrType===this)hA=Z.$$.smartPtr;else{var ue=Z.clone();hA=this.rawShare(hA,ia.toHandle(function(){ue.delete()})),AA!==null&&AA.push(this.rawDestructor,hA)}break;default:cr("Unsupporting sharing policy")}return hA}function SK(AA,Z){if(Z===null)return this.isReference&&cr("null is not a valid "+this.name),0;Z.$$||cr('Cannot pass "'+FC(Z)+'" as a '+this.name),Z.$$.ptr||cr("Cannot pass deleted object as a pointer of type "+this.name),Z.$$.ptrType.isConst&&cr("Cannot convert argument of type "+Z.$$.ptrType.name+" to parameter type "+this.name);var hA=Z.$$.ptrType.registeredClass;return RM(Z.$$.ptr,hA,this.registeredClass)}function qp(AA){return this.fromWireType(Xe[AA>>2])}function MK(AA){return this.rawGetPointee&&(AA=this.rawGetPointee(AA)),AA}function _k(AA){this.rawDestructor&&this.rawDestructor(AA)}function T2(AA){AA!==null&&AA.delete()}function sd(AA,Z,hA,bA,ue,Se,Re,Ue,st,He,Gt){this.name=AA,this.registeredClass=Z,this.isReference=hA,this.isConst=bA,this.isSmartPointer=ue,this.pointeeType=Se,this.sharingPolicy=Re,this.rawGetPointee=Ue,this.rawConstructor=st,this.rawShare=He,this.rawDestructor=Gt,ue||Z.baseClass!==void 0?this.toWireType=wk:bA?(this.toWireType=Rk,this.destructorFunction=null):(this.toWireType=SK,this.destructorFunction=null)}function Tk(AA){return Fc.get(AA)}function wM(AA,Z,hA){return AA.includes("j")?function(bA,ue,Se){$e("dynCall_"+bA in Q,"bad function pointer type - no table for sig '"+bA+"'"),Se&&Se.length?$e(Se.length===bA.substring(1).replace(/j/g,"--").length):$e(bA.length==1);var Re=Q["dynCall_"+bA];return Se&&Se.length?Re.apply(null,[ue].concat(Se)):Re.call(null,ue)}(AA,Z,hA):($e(Tk(Z),"missing table entry in dynCall: "+Z),Tk(Z).apply(null,hA))}function nd(AA,Z){var hA=(AA=Cl(AA)).includes("j")?function(bA,ue){$e(bA.includes("j")||bA.includes("p"),"getDynCaller should only be called with i64 sigs");var Se=[];return function(){return Se.length=0,Object.assign(Se,arguments),wM(bA,ue,Se)}}(AA,Z):Tk(Z);return typeof hA!="function"&&cr("unknown function pointer with signature "+AA+": "+Z),hA}var Nk=void 0;function Gk(AA){var Z=UM(AA),hA=Cl(Z);return OC(Z),hA}function _M(AA,Z){var hA=[],bA={};throw Z.forEach(function ue(Se){bA[Se]||lQ[Se]||(DM[Se]?DM[Se].forEach(ue):(hA.push(Se),bA[Se]=!0))}),new Nk(AA+": "+hA.map(Gk).join([", "]))}function Z0(AA,Z){if(!(AA instanceof Function))throw new TypeError("new_ called with constructor type "+It(AA)+" which is not a function");var hA=K0(AA.name||"unknownFunctionName",function(){});hA.prototype=AA.prototype;var bA=new hA,ue=AA.apply(bA,Z);return ue instanceof Object?ue:bA}function bk(AA){for(;AA.length;){var Z=AA.pop();AA.pop()(Z)}}function TM(AA,Z,hA,bA,ue){var Se=Z.length;Se<2&&cr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var Re=Z[1]!==null&&hA!==null,Ue=!1,st=1;st<Z.length;++st)if(Z[st]!==null&&Z[st].destructorFunction===void 0){Ue=!0;break}var He=Z[0].name!=="void",Gt="",fi="";for(st=0;st<Se-2;++st)Gt+=(st!==0?", ":"")+"arg"+st,fi+=(st!==0?", ":"")+"arg"+st+"Wired";var wi="return function "+SM(AA)+"("+Gt+`) {
|
||
if (arguments.length !== `+(Se-2)+`) {
|
||
throwBindingError('function `+AA+" called with ' + arguments.length + ' arguments, expected "+(Se-2)+` args!');
|
||
}
|
||
`;Ue&&(wi+=`var destructors = [];
|
||
`);var Ds=Ue?"destructors":"null",Tn=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],oa=[cr,bA,ue,bk,Z[0],Z[1]];for(Re&&(wi+="var thisWired = classParam.toWireType("+Ds+`, this);
|
||
`),st=0;st<Se-2;++st)wi+="var arg"+st+"Wired = argType"+st+".toWireType("+Ds+", arg"+st+"); // "+Z[st+2].name+`
|
||
`,Tn.push("argType"+st),oa.push(Z[st+2]);if(Re&&(fi="thisWired"+(fi.length>0?", ":"")+fi),wi+=(He?"var rv = ":"")+"invoker(fn"+(fi.length>0?", ":"")+fi+`);
|
||
`,Ue)wi+=`runDestructors(destructors);
|
||
`;else for(st=Re?1:2;st<Z.length;++st){var Oc=st===1?"thisWired":"arg"+(st-2)+"Wired";Z[st].destructorFunction!==null&&(wi+=Oc+"_dtor("+Oc+"); // "+Z[st].name+`
|
||
`,Tn.push(Oc+"_dtor"),oa.push(Z[st].destructorFunction))}return He&&(wi+=`var ret = retType.fromWireType(rv);
|
||
return ret;
|
||
`),wi+=`}
|
||
`,Tn.push(wi),Z0(Function,Tn).apply(null,oa)}function kk(AA,Z){for(var hA=[],bA=0;bA<AA;bA++)hA.push(Si[Z+4*bA>>2]);return hA}var dy=[],LI=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function IQ(AA){AA>4&&--LI[AA].refcount===0&&(LI[AA]=void 0,dy.push(AA))}function Xd(){for(var AA=0,Z=5;Z<LI.length;++Z)LI[Z]!==void 0&&++AA;return AA}function NM(){for(var AA=5;AA<LI.length;++AA)if(LI[AA]!==void 0)return LI[AA];return null}var ia={toValue:function(AA){return AA||cr("Cannot use deleted val. handle = "+AA),LI[AA].value},toHandle:function(AA){switch(AA){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var Z=dy.length?dy.pop():LI.length;return LI[Z]={refcount:1,value:AA},Z}}};function FC(AA){if(AA===null)return"null";var Z=It(AA);return Z==="object"||Z==="array"||Z==="function"?AA.toString():""+AA}function N2(AA,Z){switch(Z){case 2:return function(hA){return this.fromWireType(So[hA>>2])};case 3:return function(hA){return this.fromWireType(uo[hA>>3])};default:throw new TypeError("Unknown float type: "+AA)}}function Lk(AA,Z,hA){switch(Z){case 0:return hA?function(bA){return li[bA]}:function(bA){return eo[bA]};case 1:return hA?function(bA){return xo[bA>>1]}:function(bA){return Jt[bA>>1]};case 2:return hA?function(bA){return Xe[bA>>2]}:function(bA){return Si[bA>>2]};default:throw new TypeError("Unknown integer type: "+AA)}}var Uk=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Cy(AA,Z){$e(AA%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var hA=AA,bA=hA>>1,ue=bA+Z/2;!(bA>=ue)&&Jt[bA];)++bA;if((hA=bA<<1)-AA>32&&Uk)return Uk.decode(eo.subarray(AA,hA));for(var Se="",Re=0;!(Re>=Z/2);++Re){var Ue=xo[AA+2*Re>>1];if(Ue==0)break;Se+=String.fromCharCode(Ue)}return Se}function G2(AA,Z,hA){if($e(Z%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),$e(typeof hA=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),hA===void 0&&(hA=2147483647),hA<2)return 0;for(var bA=Z,ue=(hA-=2)<2*AA.length?hA/2:AA.length,Se=0;Se<ue;++Se){var Re=AA.charCodeAt(Se);xo[Z>>1]=Re,Z+=2}return xo[Z>>1]=0,Z-bA}function b2(AA){return 2*AA.length}function Kp(AA,Z){$e(AA%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var hA=0,bA="";!(hA>=Z/4);){var ue=Xe[AA+4*hA>>2];if(ue==0)break;if(++hA,ue>=65536){var Se=ue-65536;bA+=String.fromCharCode(55296|Se>>10,56320|1023&Se)}else bA+=String.fromCharCode(ue)}return bA}function X0(AA,Z,hA){if($e(Z%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),$e(typeof hA=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),hA===void 0&&(hA=2147483647),hA<4)return 0;for(var bA=Z,ue=bA+hA-4,Se=0;Se<AA.length;++Se){var Re=AA.charCodeAt(Se);if(Re>=55296&&Re<=57343&&(Re=65536+((1023&Re)<<10)|1023&AA.charCodeAt(++Se)),Xe[Z>>2]=Re,(Z+=4)+4>ue)break}return Xe[Z>>2]=0,Z-bA}function Fk(AA){for(var Z=0,hA=0;hA<AA.length;++hA){var bA=AA.charCodeAt(hA);bA>=55296&&bA<=57343&&++hA,Z+=4}return Z}function hy(AA,Z){var hA=lQ[AA];return hA===void 0&&cr(Z+" has unknown type "+Gk(AA)),hA}function $0(AA,Z){for(var hA=new Array(AA),bA=0;bA<AA;++bA)hA[bA]=hy(Si[Z+4*bA>>2],"parameter "+bA);return hA}var k2={};function By(AA){var Z=k2[AA];return Z===void 0?Cl(AA):Z}var GM=[];function L2(){return(typeof globalThis>"u"?"undefined":It(globalThis))=="object"?globalThis:Function("return this")()}var Ok,Pk=[],xk={};Ok=function(){return performance.now()};var jp={};function uQ(){if(!uQ.strings){var AA={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:((typeof navigator>"u"?"undefined":It(navigator))=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:sA||"./this.program"};for(var Z in jp)jp[Z]===void 0?delete AA[Z]:AA[Z]=jp[Z];var hA=[];for(var Z in AA)hA.push(Z+"="+AA[Z]);uQ.strings=hA}return uQ.strings}var U2=[null,[],[]];function F2(AA,Z){var hA=U2[AA];$e(hA),Z===0||Z===10?((AA===1?ai:et)(Yo(hA,0)),hA.length=0):hA.push(Z)}function bM(AA){return AA%4==0&&(AA%100!=0||AA%400==0)}var Yk=[31,29,31,30,31,30,31,31,30,31,30,31],Vk=[31,28,31,30,31,30,31,31,30,31,30,31];function O2(AA,Z,hA,bA){var ue=Xe[bA+40>>2],Se={tm_sec:Xe[bA>>2],tm_min:Xe[bA+4>>2],tm_hour:Xe[bA+8>>2],tm_mday:Xe[bA+12>>2],tm_mon:Xe[bA+16>>2],tm_year:Xe[bA+20>>2],tm_wday:Xe[bA+24>>2],tm_yday:Xe[bA+28>>2],tm_isdst:Xe[bA+32>>2],tm_gmtoff:Xe[bA+36>>2],tm_zone:ue?hn(ue):""},Re=hn(hA),Ue={"%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 st in Ue)Re=Re.replace(new RegExp(st,"g"),Ue[st]);var He=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Gt=["January","February","March","April","May","June","July","August","September","October","November","December"];function fi(di,vo,Vg){for(var Ln=typeof di=="number"?di.toString():di||"";Ln.length<vo;)Ln=Vg[0]+Ln;return Ln}function wi(di,vo){return fi(di,vo,"0")}function Ds(di,vo){function Vg(du){return du<0?-1:du>0?1:0}var Ln;return(Ln=Vg(di.getFullYear()-vo.getFullYear()))===0&&(Ln=Vg(di.getMonth()-vo.getMonth()))===0&&(Ln=Vg(di.getDate()-vo.getDate())),Ln}function Tn(di){switch(di.getDay()){case 0:return new Date(di.getFullYear()-1,11,29);case 1:return di;case 2:return new Date(di.getFullYear(),0,3);case 3:return new Date(di.getFullYear(),0,2);case 4:return new Date(di.getFullYear(),0,1);case 5:return new Date(di.getFullYear()-1,11,31);case 6:return new Date(di.getFullYear()-1,11,30)}}function oa(di){var vo=function(Zp,ad){for(var UI=new Date(Zp.getTime());ad>0;){var P2=bM(UI.getFullYear()),s_=UI.getMonth(),Kk=(P2?Yk:Vk)[s_];if(!(ad>Kk-UI.getDate()))return UI.setDate(UI.getDate()+ad),UI;ad-=Kk-UI.getDate()+1,UI.setDate(1),s_<11?UI.setMonth(s_+1):(UI.setMonth(0),UI.setFullYear(UI.getFullYear()+1))}return UI}(new Date(di.tm_year+1900,0,1),di.tm_yday),Vg=new Date(vo.getFullYear(),0,4),Ln=new Date(vo.getFullYear()+1,0,4),du=Tn(Vg),$d=Tn(Ln);return Ds(du,vo)<=0?Ds($d,vo)<=0?vo.getFullYear()+1:vo.getFullYear():vo.getFullYear()-1}var Oc={"%a":function(di){return He[di.tm_wday].substring(0,3)},"%A":function(di){return He[di.tm_wday]},"%b":function(di){return Gt[di.tm_mon].substring(0,3)},"%B":function(di){return Gt[di.tm_mon]},"%C":function(di){return wi((di.tm_year+1900)/100|0,2)},"%d":function(di){return wi(di.tm_mday,2)},"%e":function(di){return fi(di.tm_mday,2," ")},"%g":function(di){return oa(di).toString().substring(2)},"%G":function(di){return oa(di)},"%H":function(di){return wi(di.tm_hour,2)},"%I":function(di){var vo=di.tm_hour;return vo==0?vo=12:vo>12&&(vo-=12),wi(vo,2)},"%j":function(di){return wi(di.tm_mday+function(vo,Vg){for(var Ln=0,du=0;du<=Vg;Ln+=vo[du++]);return Ln}(bM(di.tm_year+1900)?Yk:Vk,di.tm_mon-1),3)},"%m":function(di){return wi(di.tm_mon+1,2)},"%M":function(di){return wi(di.tm_min,2)},"%n":function(){return`
|
||
`},"%p":function(di){return di.tm_hour>=0&&di.tm_hour<12?"AM":"PM"},"%S":function(di){return wi(di.tm_sec,2)},"%t":function(){return" "},"%u":function(di){return di.tm_wday||7},"%U":function(di){var vo=di.tm_yday+7-di.tm_wday;return wi(Math.floor(vo/7),2)},"%V":function(di){var vo=Math.floor((di.tm_yday+7-(di.tm_wday+6)%7)/7);if((di.tm_wday+371-di.tm_yday-2)%7<=2&&vo++,vo){if(vo==53){var Vg=(di.tm_wday+371-di.tm_yday)%7;Vg==4||Vg==3&&bM(di.tm_year)||(vo=1)}}else{vo=52;var Ln=(di.tm_wday+7-di.tm_yday-1)%7;(Ln==4||Ln==5&&bM(di.tm_year%400-1))&&vo++}return wi(vo,2)},"%w":function(di){return di.tm_wday},"%W":function(di){var vo=di.tm_yday+7-(di.tm_wday+6)%7;return wi(Math.floor(vo/7),2)},"%y":function(di){return(di.tm_year+1900).toString().substring(2)},"%Y":function(di){return di.tm_year+1900},"%z":function(di){var vo=di.tm_gmtoff,Vg=vo>=0;return vo=(vo=Math.abs(vo)/60)/60*100+vo%60,(Vg?"+":"-")+("0000"+vo).slice(-4)},"%Z":function(di){return di.tm_zone},"%%":function(){return"%"}};for(var st in Re=Re.replace(/%%/g,"\0\0"),Oc)Re.includes(st)&&(Re=Re.replace(new RegExp(st,"g"),Oc[st](Se)));var YC=function(di,vo,Vg){var Ln=qa(di)+1,du=new Array(Ln);return Zn(di,du,0,du.length),du}(Re=Re.replace(/\0\0/g,"%"));return YC.length>Z?0:(function(di,vo){$e(di.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),li.set(di,vo)}(YC,AA),YC.length-1)}(function(){for(var AA=new Array(256),Z=0;Z<256;++Z)AA[Z]=String.fromCharCode(Z);mk=AA})(),Hp=Q.BindingError=j0(Error,"BindingError"),fk=Q.InternalError=j0(Error,"InternalError"),Eu.prototype.isAliasOf=M2,Eu.prototype.clone=Mk,Eu.prototype.delete=z0,Eu.prototype.isDeleted=vk,Eu.prototype.deleteLater=_2,Q.getInheritedInstanceCount=v2,Q.getLiveInheritedInstances=R2,Q.flushPendingDeletes=W0,Q.setDelayFunction=yK,sd.prototype.getPointee=MK,sd.prototype.destructor=_k,sd.prototype.argPackAdvance=8,sd.prototype.readValueFromPointer=qp,sd.prototype.deleteObject=T2,sd.prototype.fromWireType=w2,Nk=Q.UnboundTypeError=j0(Error,"UnboundTypeError"),Q.count_emval_handles=Xd,Q.get_first_emval=NM;var vK=typeof atob=="function"?atob:function(AA){var Z,hA,bA,ue,Se,Re,Ue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",st="",He=0;AA=AA.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Z=Ue.indexOf(AA.charAt(He++))<<2|(ue=Ue.indexOf(AA.charAt(He++)))>>4,hA=(15&ue)<<4|(Se=Ue.indexOf(AA.charAt(He++)))>>2,bA=(3&Se)<<6|(Re=Ue.indexOf(AA.charAt(He++))),st+=String.fromCharCode(Z),Se!==64&&(st+=String.fromCharCode(hA)),Re!==64&&(st+=String.fromCharCode(bA));while(He<AA.length);return st};function kM(AA){if(H0(AA))return function(Z){try{for(var hA=vK(Z),bA=new Uint8Array(hA.length),ue=0;ue<hA.length;++ue)bA[ue]=hA.charCodeAt(ue);return bA}catch{throw new Error("Converting base64 string to bytes failed.")}}(AA.slice(Bk.length))}var LM={__assert_fail:function(AA,Z,hA,bA){dl("Assertion failed: "+hn(AA)+", at: "+[Z?hn(Z):"unknown filename",hA,bA?hn(bA):"unknown function"])},_embind_register_bigint:function(AA,Z,hA,bA,ue){},_embind_register_bool:function(AA,Z,hA,bA,ue){var Se=pk(hA);cc(AA,{name:Z=Cl(Z),fromWireType:function(Re){return!!Re},toWireType:function(Re,Ue){return Ue?bA:ue},argPackAdvance:8,readValueFromPointer:function(Re){var Ue;if(hA===1)Ue=li;else if(hA===2)Ue=xo;else{if(hA!==4)throw new TypeError("Unknown boolean type size: "+Z);Ue=Xe}return this.fromWireType(Ue[Re>>Se])},destructorFunction:null})},_embind_register_class:function(AA,Z,hA,bA,ue,Se,Re,Ue,st,He,Gt,fi,wi){Gt=Cl(Gt),Se=nd(ue,Se),Ue&&(Ue=nd(Re,Ue)),He&&(He=nd(st,He)),wi=nd(fi,wi);var Ds=SM(Gt);(function(Tn,oa,Oc){Q.hasOwnProperty(Tn)?(cr("Cannot register public name '"+Tn+"' twice"),vM(Q,Tn,Tn),Q.hasOwnProperty(Oc)&&cr("Cannot register multiple overloads of a function with the same number of arguments ("+Oc+")!"),Q[Tn].overloadTable[Oc]=oa):Q[Tn]=oa})(Ds,function(){_M("Cannot construct "+Gt+" due to unbound types",[bA])}),Mo([AA,Z,hA],bA?[bA]:[],function(Tn){var oa,Oc;Tn=Tn[0],Oc=bA?(oa=Tn.registeredClass).instancePrototype:Eu.prototype;var YC=K0(Ds,function(){if(Object.getPrototypeOf(this)!==di)throw new Hp("Use 'new' to construct "+Gt);if(vo.constructor_body===void 0)throw new Hp(Gt+" has no accessible constructor");var $d=vo.constructor_body[arguments.length];if($d===void 0)throw new Hp("Tried to invoke ctor of "+Gt+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(vo.constructor_body).toString()+") parameters instead!");return $d.apply(this,arguments)}),di=Object.create(Oc,{constructor:{value:YC}});YC.prototype=di;var vo=new DK(Gt,YC,di,wi,oa,Se,Ue,He),Vg=new sd(Gt,vo,!0,!1,!1),Ln=new sd(Gt+"*",vo,!1,!1,!1),du=new sd(Gt+" const*",vo,!1,!0,!1);return Sk[AA]={pointerType:Ln,constPointerType:du},function($d,Zp,ad){Q.hasOwnProperty($d)||Iy("Replacing nonexistant public symbol"),Q[$d].overloadTable!==void 0&&ad!==void 0?Q[$d].overloadTable[ad]=Zp:(Q[$d]=Zp,Q[$d].argCount=ad)}(Ds,YC),[Vg,Ln,du]})},_embind_register_class_class_function:function(AA,Z,hA,bA,ue,Se,Re){var Ue=kk(hA,bA);Z=Cl(Z),Se=nd(ue,Se),Mo([],[AA],function(st){var He=(st=st[0]).name+"."+Z;function Gt(){_M("Cannot call "+He+" due to unbound types",Ue)}Z.startsWith("@@")&&(Z=Symbol[Z.substring(2)]);var fi=st.registeredClass.constructor;return fi[Z]===void 0?(Gt.argCount=hA-1,fi[Z]=Gt):(vM(fi,Z,He),fi[Z].overloadTable[hA-1]=Gt),Mo([],Ue,function(wi){var Ds=[wi[0],null].concat(wi.slice(1)),Tn=TM(He,Ds,null,Se,Re);return fi[Z].overloadTable===void 0?(Tn.argCount=hA-1,fi[Z]=Tn):fi[Z].overloadTable[hA-1]=Tn,[]}),[]})},_embind_register_class_constructor:function(AA,Z,hA,bA,ue,Se){$e(Z>0);var Re=kk(Z,hA);ue=nd(bA,ue),Mo([],[AA],function(Ue){var st="constructor "+(Ue=Ue[0]).name;if(Ue.registeredClass.constructor_body===void 0&&(Ue.registeredClass.constructor_body=[]),Ue.registeredClass.constructor_body[Z-1]!==void 0)throw new Hp("Cannot register multiple constructors with identical number of parameters ("+(Z-1)+") for class '"+Ue.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return Ue.registeredClass.constructor_body[Z-1]=function(){_M("Cannot construct "+Ue.name+" due to unbound types",Re)},Mo([],Re,function(He){return He.splice(1,0,null),Ue.registeredClass.constructor_body[Z-1]=TM(st,He,null,ue,Se),[]}),[]})},_embind_register_class_function:function(AA,Z,hA,bA,ue,Se,Re,Ue){var st=kk(hA,bA);Z=Cl(Z),Se=nd(ue,Se),Mo([],[AA],function(He){var Gt=(He=He[0]).name+"."+Z;function fi(){_M("Cannot call "+Gt+" due to unbound types",st)}Z.startsWith("@@")&&(Z=Symbol[Z.substring(2)]),Ue&&He.registeredClass.pureVirtualFunctions.push(Z);var wi=He.registeredClass.instancePrototype,Ds=wi[Z];return Ds===void 0||Ds.overloadTable===void 0&&Ds.className!==He.name&&Ds.argCount===hA-2?(fi.argCount=hA-2,fi.className=He.name,wi[Z]=fi):(vM(wi,Z,Gt),wi[Z].overloadTable[hA-2]=fi),Mo([],st,function(Tn){var oa=TM(Gt,Tn,He,Se,Re);return wi[Z].overloadTable===void 0?(oa.argCount=hA-2,wi[Z]=oa):wi[Z].overloadTable[hA-2]=oa,[]}),[]})},_embind_register_emval:function(AA,Z){cc(AA,{name:Z=Cl(Z),fromWireType:function(hA){var bA=ia.toValue(hA);return IQ(hA),bA},toWireType:function(hA,bA){return ia.toHandle(bA)},argPackAdvance:8,readValueFromPointer:qp,destructorFunction:null})},_embind_register_float:function(AA,Z,hA){var bA=pk(hA);cc(AA,{name:Z=Cl(Z),fromWireType:function(ue){return ue},toWireType:function(ue,Se){if(typeof Se!="number"&&typeof Se!="boolean")throw new TypeError('Cannot convert "'+FC(Se)+'" to '+this.name);return Se},argPackAdvance:8,readValueFromPointer:N2(Z,bA),destructorFunction:null})},_embind_register_integer:function(AA,Z,hA,bA,ue){Z=Cl(Z),ue===-1&&(ue=4294967295);var Se=pk(hA),Re=function(Gt){return Gt};if(bA===0){var Ue=32-8*hA;Re=function(Gt){return Gt<<Ue>>>Ue}}var st=Z.includes("unsigned"),He=function(Gt,fi){if(typeof Gt!="number"&&typeof Gt!="boolean")throw new TypeError('Cannot convert "'+FC(Gt)+'" to '+fi);if(Gt<bA||Gt>ue)throw new TypeError('Passing a number "'+FC(Gt)+'" from JS side to C/C++ side to an argument of type "'+Z+'", which is outside the valid range ['+bA+", "+ue+"]!")};cc(AA,{name:Z,fromWireType:Re,toWireType:st?function(Gt,fi){return He(fi,this.name),fi>>>0}:function(Gt,fi){return He(fi,this.name),fi},argPackAdvance:8,readValueFromPointer:Lk(Z,Se,bA!==0),destructorFunction:null})},_embind_register_memory_view:function(AA,Z,hA){var bA=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][Z];function ue(Se){var Re=Si,Ue=Re[Se>>=2],st=Re[Se+1];return new bA(Vi,st,Ue)}cc(AA,{name:hA=Cl(hA),fromWireType:ue,argPackAdvance:8,readValueFromPointer:ue},{ignoreDuplicateRegistrations:!0})},_embind_register_smart_ptr:function(AA,Z,hA,bA,ue,Se,Re,Ue,st,He,Gt,fi){hA=Cl(hA),Se=nd(ue,Se),Ue=nd(Re,Ue),He=nd(st,He),fi=nd(Gt,fi),Mo([AA],[Z],function(wi){return wi=wi[0],[new sd(hA,wi.registeredClass,!1,!1,!0,wi,bA,Se,Ue,He,fi)]})},_embind_register_std_string:function(AA,Z){var hA=(Z=Cl(Z))==="std::string";cc(AA,{name:Z,fromWireType:function(bA){var ue,Se=Si[bA>>2],Re=bA+4;if(hA)for(var Ue=Re,st=0;st<=Se;++st){var He=Re+st;if(st==Se||eo[He]==0){var Gt=hn(Ue,He-Ue);ue===void 0?ue=Gt:(ue+="\0",ue+=Gt),Ue=He+1}}else{var fi=new Array(Se);for(st=0;st<Se;++st)fi[st]=String.fromCharCode(eo[Re+st]);ue=fi.join("")}return OC(bA),ue},toWireType:function(bA,ue){var Se;ue instanceof ArrayBuffer&&(ue=new Uint8Array(ue));var Re=typeof ue=="string";Re||ue instanceof Uint8Array||ue instanceof Uint8ClampedArray||ue instanceof Int8Array||cr("Cannot pass non-string to std::string"),Se=hA&&Re?qa(ue):ue.length;var Ue,st,He,Gt=A_(4+Se+1),fi=Gt+4;if(Si[Gt>>2]=Se,hA&&Re)Ue=ue,st=fi,$e(typeof(He=Se+1)=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Zn(Ue,eo,st,He);else if(Re)for(var wi=0;wi<Se;++wi){var Ds=ue.charCodeAt(wi);Ds>255&&(OC(fi),cr("String has UTF-16 code units that do not fit in 8 bits")),eo[fi+wi]=Ds}else for(wi=0;wi<Se;++wi)eo[fi+wi]=ue[wi];return bA!==null&&bA.push(OC,Gt),Gt},argPackAdvance:8,readValueFromPointer:qp,destructorFunction:function(bA){OC(bA)}})},_embind_register_std_wstring:function(AA,Z,hA){var bA,ue,Se,Re,Ue;hA=Cl(hA),Z===2?(bA=Cy,ue=G2,Re=b2,Se=function(){return Jt},Ue=1):Z===4&&(bA=Kp,ue=X0,Re=Fk,Se=function(){return Si},Ue=2),cc(AA,{name:hA,fromWireType:function(st){for(var He,Gt=Si[st>>2],fi=Se(),wi=st+4,Ds=0;Ds<=Gt;++Ds){var Tn=st+4+Ds*Z;if(Ds==Gt||fi[Tn>>Ue]==0){var oa=bA(wi,Tn-wi);He===void 0?He=oa:(He+="\0",He+=oa),wi=Tn+Z}}return OC(st),He},toWireType:function(st,He){typeof He!="string"&&cr("Cannot pass non-string to C++ string type "+hA);var Gt=Re(He),fi=A_(4+Gt+Z);return Si[fi>>2]=Gt>>Ue,ue(He,fi+4,Gt+Z),st!==null&&st.push(OC,fi),fi},argPackAdvance:8,readValueFromPointer:qp,destructorFunction:function(st){OC(st)}})},_embind_register_void:function(AA,Z){cc(AA,{isVoid:!0,name:Z=Cl(Z),argPackAdvance:0,fromWireType:function(){},toWireType:function(hA,bA){}})},_emscripten_date_now:function(){return Date.now()},_emscripten_get_now_is_monotonic:function(){return!0},_emval_as:function(AA,Z,hA){AA=ia.toValue(AA),Z=hy(Z,"emval::as");var bA=[],ue=ia.toHandle(bA);return Si[hA>>2]=ue,Z.toWireType(bA,AA)},_emval_call:function(AA,Z,hA,bA){AA=ia.toValue(AA);for(var ue=$0(Z,hA),Se=new Array(Z),Re=0;Re<Z;++Re){var Ue=ue[Re];Se[Re]=Ue.readValueFromPointer(bA),bA+=Ue.argPackAdvance}var st=AA.apply(void 0,Se);return ia.toHandle(st)},_emval_call_method:function(AA,Z,hA,bA,ue){return(AA=GM[AA])(Z=ia.toValue(Z),hA=By(hA),function(Se){var Re=[];return Si[Se>>2]=ia.toHandle(Re),Re}(bA),ue)},_emval_call_void_method:function(AA,Z,hA,bA){(AA=GM[AA])(Z=ia.toValue(Z),hA=By(hA),null,bA)},_emval_decref:IQ,_emval_get_global:function(AA){return AA===0?ia.toHandle(L2()):(AA=By(AA),ia.toHandle(L2()[AA]))},_emval_get_method_caller:function(AA,Z){var hA=$0(AA,Z),bA=hA[0],ue=bA.name+"_$"+hA.slice(1).map(function(wi){return wi.name}).join("_")+"$",Se=Pk[ue];if(Se!==void 0)return Se;for(var Re=["retType"],Ue=[bA],st="",He=0;He<AA-1;++He)st+=(He!==0?", ":"")+"arg"+He,Re.push("argType"+He),Ue.push(hA[1+He]);var Gt="return function "+SM("methodCaller_"+ue)+`(handle, name, destructors, args) {
|
||
`,fi=0;for(He=0;He<AA-1;++He)Gt+=" var arg"+He+" = argType"+He+".readValueFromPointer(args"+(fi?"+"+fi:"")+`);
|
||
`,fi+=hA[He+1].argPackAdvance;for(Gt+=" var rv = handle[name]("+st+`);
|
||
`,He=0;He<AA-1;++He)hA[He+1].deleteObject&&(Gt+=" argType"+He+".deleteObject(arg"+He+`);
|
||
`);return bA.isVoid||(Gt+=` return retType.toWireType(destructors, rv);
|
||
`),Gt+=`};
|
||
`,Re.push(Gt),Se=function(wi){var Ds=GM.length;return GM.push(wi),Ds}(Z0(Function,Re).apply(null,Ue)),Pk[ue]=Se,Se},_emval_get_module_property:function(AA){return AA=By(AA),ia.toHandle(Q[AA])},_emval_get_property:function(AA,Z){return AA=ia.toValue(AA),Z=ia.toValue(Z),ia.toHandle(AA[Z])},_emval_incref:function(AA){AA>4&&(LI[AA].refcount+=1)},_emval_instanceof:function(AA,Z){return(AA=ia.toValue(AA))instanceof(Z=ia.toValue(Z))},_emval_is_number:function(AA){return typeof(AA=ia.toValue(AA))=="number"},_emval_is_string:function(AA){return typeof(AA=ia.toValue(AA))=="string"},_emval_new:function(AA,Z,hA,bA){AA=ia.toValue(AA);var ue=xk[Z];return ue||(ue=function(Se){for(var Re="",Ue=0;Ue<Se;++Ue)Re+=(Ue!==0?", ":"")+"arg"+Ue;var st="return function emval_allocator_"+Se+`(constructor, argTypes, args) {
|
||
`;for(Ue=0;Ue<Se;++Ue)st+="var argType"+Ue+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+Ue+`');
|
||
var arg`+Ue+" = argType"+Ue+`.readValueFromPointer(args);
|
||
args += argType`+Ue+`['argPackAdvance'];
|
||
argTypes += 4;
|
||
`;return st+="var obj = new constructor("+Re+`);
|
||
return valueToHandle(obj);
|
||
}
|
||
`,new Function("requireRegisteredType","Module","valueToHandle","HEAPU32",st)(hy,Q,ia.toHandle,Si)}(Z),xk[Z]=ue),ue(AA,hA,bA)},_emval_new_cstring:function(AA){return ia.toHandle(By(AA))},_emval_run_destructors:function(AA){bk(ia.toValue(AA)),IQ(AA)},_emval_take_value:function(AA,Z){var hA=(AA=hy(AA,"_emval_take_value")).readValueFromPointer(Z);return ia.toHandle(hA)},_emval_typeof:function(AA){return AA=ia.toValue(AA),ia.toHandle(It(AA))},abort:function(){dl("native code called abort()")},emscripten_get_now:Ok,emscripten_memcpy_big:function(AA,Z,hA){eo.copyWithin(AA,Z,Z+hA)},emscripten_resize_heap:function(AA){eo.length,function(Z){dl("Cannot enlarge memory arrays to size "+Z+" bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value "+li.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")}(AA>>>=0)},environ_get:function(AA,Z){var hA=0;return uQ().forEach(function(bA,ue){var Se=Z+hA;Si[AA+4*ue>>2]=Se,function(Re,Ue,st){for(var He=0;He<Re.length;++He)$e(Re.charCodeAt(He)===(255&Re.charCodeAt(He))),li[0|Ue++]=Re.charCodeAt(He);li[0|Ue]=0}(bA,Se),hA+=bA.length+1}),0},environ_sizes_get:function(AA,Z){var hA=uQ();Si[AA>>2]=hA.length;var bA=0;return hA.forEach(function(ue){bA+=ue.length+1}),Si[Z>>2]=bA,0},fd_close:function(AA){dl("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(AA,Z,hA,bA,ue){return 70},fd_write:function(AA,Z,hA,bA){for(var ue=0,Se=0;Se<hA;Se++){var Re=Si[Z>>2],Ue=Si[Z+4>>2];Z+=8;for(var st=0;st<Ue;st++)F2(AA,eo[Re+st]);ue+=Ue}return Si[bA>>2]=ue,0},setTempRet0:function(AA){},strftime_l:function(AA,Z,hA,bA){return O2(AA,Z,hA,bA)}};(function(){var AA={env:LM,wasi_snapshot_preview1:LM};function Z(Se,Re){var Ue,st,He=Se.exports;Q.asm=He,$e(lt=Q.asm.memory,"memory not found in wasm exports"),Ue=lt.buffer,Vi=Ue,Q.HEAP8=li=new Int8Array(Ue),Q.HEAP16=xo=new Int16Array(Ue),Q.HEAP32=Xe=new Int32Array(Ue),Q.HEAPU8=eo=new Uint8Array(Ue),Q.HEAPU16=Jt=new Uint16Array(Ue),Q.HEAPU32=Si=new Uint32Array(Ue),Q.HEAPF32=So=new Float32Array(Ue),Q.HEAPF64=uo=new Float64Array(Ue),$e(Fc=Q.asm.__indirect_function_table,"table not found in wasm exports"),st=Q.asm.__wasm_call_ctors,aQ.unshift(st),function(Gt){if(gQ--,Q.monitorRunDependencies&&Q.monitorRunDependencies(gQ),$e(ly[Gt]),delete ly[Gt],gQ==0&&(cQ!==null&&(clearInterval(cQ),cQ=null),cy)){var fi=cy;cy=null,fi()}}("wasm-instantiate")}(function(Se){gQ++,Q.monitorRunDependencies&&Q.monitorRunDependencies(gQ),$e(!ly[Se]),ly[Se]=1,cQ===null&&typeof setInterval<"u"&&(cQ=setInterval(function(){if(Qt)return clearInterval(cQ),void(cQ=null);var Re=!1;for(var Ue in ly)Re||(Re=!0,et("still waiting on run dependencies:")),et("dependency: "+Ue);Re&&et("(end of list)")},1e4))})("wasm-instantiate");var hA=Q;function bA(Se){$e(Q===hA,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),hA=null,Z(Se.instance)}function ue(Se){return function(){if(!Be&&(_A||ZA)){if(typeof fetch=="function"&&!q0(Wl))return fetch(Wl,{credentials:"same-origin"}).then(function(Re){if(!Re.ok)throw"failed to load wasm binary file at '"+Wl+"'";return Re.arrayBuffer()}).catch(function(){return Qk(Wl)});if(jA)return new Promise(function(Re,Ue){jA(Wl,function(st){Re(new Uint8Array(st))},Ue)})}return Promise.resolve().then(function(){return Qk(Wl)})}().then(function(Re){return WebAssembly.instantiate(Re,AA)}).then(function(Re){return Re}).then(Se,function(Re){et("failed to asynchronously prepare wasm: "+Re),q0(Wl)&&et("warning: Loading from a file URI ("+Wl+") 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"),dl(Re)})}if(Q.instantiateWasm)try{return Q.instantiateWasm(AA,Z)}catch(Se){return et("Module.instantiateWasm callback failed with error: "+Se),!1}(Be||typeof WebAssembly.instantiateStreaming!="function"||H0(Wl)||q0(Wl)||typeof fetch!="function"?ue(bA):fetch(Wl,{credentials:"same-origin"}).then(function(Se){return WebAssembly.instantiateStreaming(Se,AA).then(bA,function(Re){return et("wasm streaming compile failed: "+Re),et("falling back to ArrayBuffer instantiation"),ue(bA)})})).catch(F)})(),Q.___wasm_call_ctors=Qg("__wasm_call_ctors");var OC=Q._free=Qg("free"),A_=Q._malloc=Qg("malloc"),UM=Q.___getTypeName=Qg("__getTypeName");Q.___embind_register_native_and_builtin_types=Qg("__embind_register_native_and_builtin_types"),Q.___errno_location=Qg("__errno_location"),Q._fflush=Qg("fflush");var lc=Q._emscripten_stack_init=function(){return(lc=Q._emscripten_stack_init=Q.asm.emscripten_stack_init).apply(null,arguments)};Q._emscripten_stack_get_free=function(){return(Q._emscripten_stack_get_free=Q.asm.emscripten_stack_get_free).apply(null,arguments)},Q._emscripten_stack_get_base=function(){return(Q._emscripten_stack_get_base=Q.asm.emscripten_stack_get_base).apply(null,arguments)};var e_,Wp=Q._emscripten_stack_get_end=function(){return(Wp=Q._emscripten_stack_get_end=Q.asm.emscripten_stack_get_end).apply(null,arguments)};function Zs(){lc(),function(){var AA=Wp();$e(!(3&AA)),Xe[AA>>2]=34821223,Xe[AA+4>>2]=2310721022,Si[0]=1668509029}()}function t_(AA){function Z(){e_||(e_=!0,Q.calledRun=!0,Qt||($e(!J0),J0=!0,yM(),od(aQ),R(Q),Q.onRuntimeInitialized&&Q.onRuntimeInitialized(),$e(!Q._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(yM(),Q.postRun)for(typeof Q.postRun=="function"&&(Q.postRun=[Q.postRun]);Q.postRun.length;)S2(Q.postRun.shift());od(hk)}()))}gQ>0||(Zs(),function(){if(Q.preRun)for(typeof Q.preRun=="function"&&(Q.preRun=[Q.preRun]);Q.preRun.length;)fK(Q.preRun.shift());od(gy)}(),gQ>0||(Q.setStatus?(Q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Q.setStatus("")},1),Z()},1)):Z(),yM()))}if(Q.stackSave=Qg("stackSave"),Q.stackRestore=Qg("stackRestore"),Q.stackAlloc=Qg("stackAlloc"),Q.dynCall_jiij=Qg("dynCall_jiij"),Q.dynCall_viij=Qg("dynCall_viij"),Q.dynCall_vijii=Qg("dynCall_vijii"),Q.dynCall_viji=Qg("dynCall_viji"),Q.dynCall_vijiiii=Qg("dynCall_vijiiii"),Q.dynCall_jiji=Qg("dynCall_jiji"),Q.dynCall_viijii=Qg("dynCall_viijii"),Q.dynCall_iiiiij=Qg("dynCall_iiiiij"),Q.dynCall_iiiiijj=Qg("dynCall_iiiiijj"),Q.dynCall_iiiiiijj=Qg("dynCall_iiiiiijj"),dA("run",!1),dA("UTF8ArrayToString",!1),dA("UTF8ToString",!1),dA("stringToUTF8Array",!1),dA("stringToUTF8",!1),dA("lengthBytesUTF8",!1),dA("addOnPreRun",!1),dA("addOnInit",!1),dA("addOnPreMain",!1),dA("addOnExit",!1),dA("addOnPostRun",!1),dA("addRunDependency",!0),dA("removeRunDependency",!0),dA("FS_createFolder",!1),dA("FS_createPath",!0),dA("FS_createDataFile",!0),dA("FS_createPreloadedFile",!0),dA("FS_createLazyFile",!0),dA("FS_createLink",!1),dA("FS_createDevice",!0),dA("FS_unlink",!0),dA("getLEB",!1),dA("getFunctionTables",!1),dA("alignFunctionTables",!1),dA("registerFunctions",!1),dA("prettyPrint",!1),dA("getCompilerSetting",!1),dA("print",!1),dA("printErr",!1),dA("getTempRet0",!1),dA("setTempRet0",!1),dA("callMain",!1),dA("abort",!1),dA("keepRuntimeAlive",!1),dA("wasmMemory",!1),dA("stackSave",!1),dA("stackRestore",!1),dA("stackAlloc",!1),dA("writeStackCookie",!1),dA("checkStackCookie",!1),dA("intArrayFromBase64",!1),dA("tryParseAsDataURI",!1),dA("ptrToString",!1),dA("zeroMemory",!1),dA("stringToNewUTF8",!1),dA("exitJS",!1),dA("getHeapMax",!1),dA("abortOnCannotGrowMemory",!1),dA("emscripten_realloc_buffer",!1),dA("ENV",!1),dA("ERRNO_CODES",!1),dA("ERRNO_MESSAGES",!1),dA("setErrNo",!1),dA("inetPton4",!1),dA("inetNtop4",!1),dA("inetPton6",!1),dA("inetNtop6",!1),dA("readSockaddr",!1),dA("writeSockaddr",!1),dA("DNS",!1),dA("getHostByName",!1),dA("Protocols",!1),dA("Sockets",!1),dA("getRandomDevice",!1),dA("warnOnce",!1),dA("traverseStack",!1),dA("UNWIND_CACHE",!1),dA("convertPCtoSourceLocation",!1),dA("readAsmConstArgsArray",!1),dA("readAsmConstArgs",!1),dA("mainThreadEM_ASM",!1),dA("jstoi_q",!1),dA("jstoi_s",!1),dA("getExecutableName",!1),dA("listenOnce",!1),dA("autoResumeAudioContext",!1),dA("dynCallLegacy",!1),dA("getDynCaller",!1),dA("dynCall",!1),dA("setWasmTableEntry",!1),dA("getWasmTableEntry",!1),dA("handleException",!1),dA("runtimeKeepalivePush",!1),dA("runtimeKeepalivePop",!1),dA("callUserCallback",!1),dA("maybeExit",!1),dA("safeSetTimeout",!1),dA("asmjsMangle",!1),dA("asyncLoad",!1),dA("alignMemory",!1),dA("mmapAlloc",!1),dA("writeI53ToI64",!1),dA("writeI53ToI64Clamped",!1),dA("writeI53ToI64Signaling",!1),dA("writeI53ToU64Clamped",!1),dA("writeI53ToU64Signaling",!1),dA("readI53FromI64",!1),dA("readI53FromU64",!1),dA("convertI32PairToI53",!1),dA("convertI32PairToI53Checked",!1),dA("convertU32PairToI53",!1),dA("getCFunc",!1),dA("ccall",!1),dA("cwrap",!1),dA("uleb128Encode",!1),dA("sigToWasmTypes",!1),dA("convertJsFunctionToWasm",!1),dA("freeTableIndexes",!1),dA("functionsInTableMap",!1),dA("getEmptyTableSlot",!1),dA("updateTableMap",!1),dA("addFunction",!1),dA("removeFunction",!1),dA("reallyNegative",!1),dA("unSign",!1),dA("strLen",!1),dA("reSign",!1),dA("formatString",!1),dA("setValue",!1),dA("getValue",!1),dA("PATH",!1),dA("PATH_FS",!1),dA("intArrayFromString",!1),dA("intArrayToString",!1),dA("AsciiToString",!1),dA("stringToAscii",!1),dA("UTF16Decoder",!1),dA("UTF16ToString",!1),dA("stringToUTF16",!1),dA("lengthBytesUTF16",!1),dA("UTF32ToString",!1),dA("stringToUTF32",!1),dA("lengthBytesUTF32",!1),dA("allocateUTF8",!1),dA("allocateUTF8OnStack",!1),dA("writeStringToMemory",!1),dA("writeArrayToMemory",!1),dA("writeAsciiToMemory",!1),dA("SYSCALLS",!1),dA("getSocketFromFD",!1),dA("getSocketAddress",!1),dA("JSEvents",!1),dA("registerKeyEventCallback",!1),dA("specialHTMLTargets",!1),dA("maybeCStringToJsString",!1),dA("findEventTarget",!1),dA("findCanvasEventTarget",!1),dA("getBoundingClientRect",!1),dA("fillMouseEventData",!1),dA("registerMouseEventCallback",!1),dA("registerWheelEventCallback",!1),dA("registerUiEventCallback",!1),dA("registerFocusEventCallback",!1),dA("fillDeviceOrientationEventData",!1),dA("registerDeviceOrientationEventCallback",!1),dA("fillDeviceMotionEventData",!1),dA("registerDeviceMotionEventCallback",!1),dA("screenOrientation",!1),dA("fillOrientationChangeEventData",!1),dA("registerOrientationChangeEventCallback",!1),dA("fillFullscreenChangeEventData",!1),dA("registerFullscreenChangeEventCallback",!1),dA("JSEvents_requestFullscreen",!1),dA("JSEvents_resizeCanvasForFullscreen",!1),dA("registerRestoreOldStyle",!1),dA("hideEverythingExceptGivenElement",!1),dA("restoreHiddenElements",!1),dA("setLetterbox",!1),dA("currentFullscreenStrategy",!1),dA("restoreOldWindowedStyle",!1),dA("softFullscreenResizeWebGLRenderTarget",!1),dA("doRequestFullscreen",!1),dA("fillPointerlockChangeEventData",!1),dA("registerPointerlockChangeEventCallback",!1),dA("registerPointerlockErrorEventCallback",!1),dA("requestPointerLock",!1),dA("fillVisibilityChangeEventData",!1),dA("registerVisibilityChangeEventCallback",!1),dA("registerTouchEventCallback",!1),dA("fillGamepadEventData",!1),dA("registerGamepadEventCallback",!1),dA("registerBeforeUnloadEventCallback",!1),dA("fillBatteryEventData",!1),dA("battery",!1),dA("registerBatteryEventCallback",!1),dA("setCanvasElementSize",!1),dA("getCanvasElementSize",!1),dA("demangle",!1),dA("demangleAll",!1),dA("jsStackTrace",!1),dA("stackTrace",!1),dA("ExitStatus",!1),dA("getEnvStrings",!1),dA("checkWasiClock",!1),dA("flush_NO_FILESYSTEM",!1),dA("dlopenMissingError",!1),dA("setImmediateWrapped",!1),dA("clearImmediateWrapped",!1),dA("polyfillSetImmediate",!1),dA("Browser",!1),dA("setMainLoop",!1),dA("wget",!1),dA("FS",!1),dA("MEMFS",!1),dA("TTY",!1),dA("PIPEFS",!1),dA("SOCKFS",!1),dA("_setNetworkCallback",!1),dA("tempFixedLengthArray",!1),dA("miniTempWebGLFloatBuffers",!1),dA("heapObjectForWebGLType",!1),dA("heapAccessShiftForWebGLHeap",!1),dA("GL",!1),dA("emscriptenWebGLGet",!1),dA("computeUnpackAlignedImageSize",!1),dA("emscriptenWebGLGetTexPixelData",!1),dA("emscriptenWebGLGetUniform",!1),dA("webglGetUniformLocation",!1),dA("webglPrepareUniformLocationsBeforeFirstUse",!1),dA("webglGetLeftBracePos",!1),dA("emscriptenWebGLGetVertexAttrib",!1),dA("writeGLArray",!1),dA("AL",!1),dA("SDL_unicode",!1),dA("SDL_ttfContext",!1),dA("SDL_audio",!1),dA("SDL",!1),dA("SDL_gfx",!1),dA("GLUT",!1),dA("EGL",!1),dA("GLFW_Window",!1),dA("GLFW",!1),dA("GLEW",!1),dA("IDBStore",!1),dA("runAndAbortIfError",!1),dA("ALLOC_NORMAL",!1),dA("ALLOC_STACK",!1),dA("allocate",!1),dA("InternalError",!1),dA("BindingError",!1),dA("UnboundTypeError",!1),dA("PureVirtualError",!1),dA("init_embind",!1),dA("throwInternalError",!1),dA("throwBindingError",!1),dA("throwUnboundTypeError",!1),dA("ensureOverloadTable",!1),dA("exposePublicSymbol",!1),dA("replacePublicSymbol",!1),dA("extendError",!1),dA("createNamedFunction",!1),dA("embindRepr",!1),dA("registeredInstances",!1),dA("getBasestPointer",!1),dA("registerInheritedInstance",!1),dA("unregisterInheritedInstance",!1),dA("getInheritedInstance",!1),dA("getInheritedInstanceCount",!1),dA("getLiveInheritedInstances",!1),dA("registeredTypes",!1),dA("awaitingDependencies",!1),dA("typeDependencies",!1),dA("registeredPointers",!1),dA("registerType",!1),dA("whenDependentTypesAreResolved",!1),dA("embind_charCodes",!1),dA("embind_init_charCodes",!1),dA("readLatin1String",!1),dA("getTypeName",!1),dA("heap32VectorToArray",!1),dA("requireRegisteredType",!1),dA("getShiftFromSize",!1),dA("integerReadValueFromPointer",!1),dA("enumReadValueFromPointer",!1),dA("floatReadValueFromPointer",!1),dA("simpleReadValueFromPointer",!1),dA("runDestructors",!1),dA("new_",!1),dA("craftInvokerFunction",!1),dA("embind__requireFunction",!1),dA("tupleRegistrations",!1),dA("structRegistrations",!1),dA("genericPointerToWireType",!1),dA("constNoSmartPtrRawPointerToWireType",!1),dA("nonConstNoSmartPtrRawPointerToWireType",!1),dA("init_RegisteredPointer",!1),dA("RegisteredPointer",!1),dA("RegisteredPointer_getPointee",!1),dA("RegisteredPointer_destructor",!1),dA("RegisteredPointer_deleteObject",!1),dA("RegisteredPointer_fromWireType",!1),dA("runDestructor",!1),dA("releaseClassHandle",!1),dA("finalizationRegistry",!1),dA("detachFinalizer_deps",!1),dA("detachFinalizer",!1),dA("attachFinalizer",!1),dA("makeClassHandle",!1),dA("init_ClassHandle",!1),dA("ClassHandle",!1),dA("ClassHandle_isAliasOf",!1),dA("throwInstanceAlreadyDeleted",!1),dA("ClassHandle_clone",!1),dA("ClassHandle_delete",!1),dA("deletionQueue",!1),dA("ClassHandle_isDeleted",!1),dA("ClassHandle_deleteLater",!1),dA("flushPendingDeletes",!1),dA("delayFunction",!1),dA("setDelayFunction",!1),dA("RegisteredClass",!1),dA("shallowCopyInternalPointer",!1),dA("downcastPointer",!1),dA("upcastPointer",!1),dA("validateThis",!1),dA("char_0",!1),dA("char_9",!1),dA("makeLegalFunctionName",!1),dA("emval_handle_array",!1),dA("emval_free_list",!1),dA("emval_symbols",!1),dA("init_emval",!1),dA("count_emval_handles",!1),dA("get_first_emval",!1),dA("getStringOrSymbol",!1),dA("Emval",!1),dA("emval_newers",!1),dA("craftEmvalAllocator",!1),dA("emval_get_global",!1),dA("emval_lookupTypes",!1),dA("emval_allocateDestructors",!1),dA("emval_methodCallers",!1),dA("emval_addMethodCaller",!1),dA("emval_registeredMethods",!1),cy=function AA(){e_||t_(),e_||(cy=AA)},Q.preInit)for(typeof Q.preInit=="function"&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();t_();var Jk,hl=this&&this.__awaiter||function(AA,Z,hA,bA){return new(hA||(hA=Promise))(function(ue,Se){function Re(He){try{st(bA.next(He))}catch(Gt){Se(Gt)}}function Ue(He){try{st(bA.throw(He))}catch(Gt){Se(Gt)}}function st(He){var Gt;He.done?ue(He.value):(Gt=He.value,Gt instanceof hA?Gt:new hA(function(fi){fi(Gt)})).then(Re,Ue)}st((bA=bA.apply(AA,Z||[])).next())})};function zp(AA){if(typeof AA!="string")return AA;var Z;try{var hA=JSON.parse(AA);Z=It(hA)==="object"&&hA?hA:AA}catch{Z=AA}return Z}function Qy(AA){return typeof AA?.use=="function"||typeof AA?.addSignalingListener=="function"}(function(AA){AA[AA.APNs=0]="APNs",AA[AA.VoIP=1]="VoIP"})(Jk||(Jk={}));var Nr=function(){return vs(function AA(){io(this,AA)},null,[{key:"getDeviceInfo",value:function(){var AA={osName:"",osVersion:"",deviceName:"",framework:""};if(Q.isWXMiniProgram){var Z=wx.getSystemInfoSync(),hA=Ve(Z.system.split(" "),2),bA=hA[0],ue=hA[1];return AA.osName=bA,AA.osVersion=ue,AA.deviceName=Z.model,AA.framework="wxMiniProgram",AA}var Se=Q.rtcDetect.getSystem().browser,Re=Q.rtcDetect.getSystem().OS,Ue=Q.isElectron?"electron":"web";return AA.osName=Se.name,AA.osVersion=Se.version,AA.deviceName=Re,AA.framework=Ue,AA}}])}(),fo=function(){function AA(){io(this,AA)}return vs(AA,null,[{key:"startInterval",value:function(Z,hA,bA){var ue=setInterval(function(){var Se;!((Se=AA?.timerMap)===null||Se===void 0)&&Se.has(Z)&&AA.timerMap.get(Z).callback.onInterval(Z)},hA);AA.timerMap.set(Z,{timer:ue,callback:bA})}},{key:"stopInterval",value:function(Z){var hA;if(!((hA=AA?.timerMap)===null||hA===void 0)&&hA.has(Z)){var bA=AA.timerMap.get(Z);bA&&bA.timer&&(clearInterval(bA.timer),bA.callback.delete(),AA.timerMap.delete(Z))}}},{key:"startTimeout",value:function(Z,hA){return hl(this,void 0,void 0,HA().m(function bA(){return HA().w(function(ue){for(;;)switch(ue.n){case 0:setTimeout(function(){hA.onTimeout(),hA.delete()},Z);case 1:return ue.a(2)}},bA)}))}}])}();fo.timerMap=new Map;var Hk=function(){return vs(function AA(){io(this,AA)},null,[{key:"getValue",value:function(AA,Z){try{if(!this.isValidKey(AA))return Q.logger.debug("[localstorage] getValue failed, invalid key:",AA),Z;AA="__tuikit_room_engine__"+AA;var hA=localStorage.getItem(AA);return hA===null?Z:JSON.parse(hA)}catch{return Q.logger.debug("[localstorage] getValue failed, key:",AA),Z}}},{key:"setValue",value:function(AA,Z){try{if(!this.isValidKey(AA))return Q.logger.debug("[localstorage] setValue failed, invalid key:",AA),!1;AA="__tuikit_room_engine__"+AA;var hA=JSON.stringify(Z);return localStorage.setItem(AA,hA),!0}catch{return Q.logger.debug("[localstorage] setValue failed, key:",AA),!1}}},{key:"isKeyExist",value:function(AA){try{if(!this.isValidKey(AA))return!1;AA="__tuikit_room_engine__"+AA;var Z=localStorage.getItem(AA);if(Z===null)return!1;try{return JSON.parse(Z)!==null}catch{return!1}}catch{return Q.logger.debug("[localstorage] isKeyExist failed, key:",AA),!1}}},{key:"isValidKey",value:function(AA){return typeof AA=="string"&&AA.trim().length>0}}])}();Q.JSTimer=fo,Q.JSSystemInfo=Nr,Q.JSLocalStorage=Hk,hl=this&&this.__awaiter||function(AA,Z,hA,bA){return new(hA||(hA=Promise))(function(ue,Se){function Re(He){try{st(bA.next(He))}catch(Gt){Se(Gt)}}function Ue(He){try{st(bA.throw(He))}catch(Gt){Se(Gt)}}function st(He){var Gt;He.done?ue(He.value):(Gt=He.value,Gt instanceof hA?Gt:new hA(function(fi){fi(Gt)})).then(Re,Ue)}st((bA=bA.apply(AA,Z||[])).next())})};var Xh=Q.TIM,rd=function(){function AA(Z){return io(this,AA),this.waitingReadyQueue=[],this.logger=Z&&Z.logger||console,this.onTIMReadyStateUpdate=this.onTIMReadyStateUpdate.bind(this),AA.chatLoginManager||(AA.chatLoginManager=this),AA.chatLoginManager}return vs(AA,[{key:"login",value:function(Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA,ue,Se,Re,Ue,st=this;return HA().w(function(He){for(;;)switch(He.n){case 0:if(bA=Object.assign({},Z),ue=bA.userId,Se=bA.userSig,Qy(Re=bA.chat)){He.n=1;break}throw new Error("Current chat version is not supported, please use v3.");case 1:if(AA.chat=Re,this.bindTIMEvent(),!(Ue=AA.chat.getLoginUser())){He.n=7;break}if(Ue!==ue){He.n=4;break}if(!AA.chat.isReady()){He.n=2;break}return He.a(2);case 2:return He.a(2,new Promise(function(Gt,fi){st.addLoginHandler({userId:ue,resolve:Gt,reject:fi})}));case 3:He.n=6;break;case 4:return He.n=5,this.doLogout();case 5:return He.n=6,this.doLogin({userId:ue,userSig:Se});case 6:He.n=8;break;case 7:return He.n=8,this.doLogin({userId:ue,userSig:Se});case 8:return He.a(2)}},hA,this)}))}},{key:"doLogin",value:function(Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA,ue,Se,Re=this;return HA().w(function(Ue){for(;;)if(Ue.n===0)return bA=Object.assign({},Z),ue=bA.userId,Se=bA.userSig,Ue.a(2,new Promise(function(st,He){return hl(Re,void 0,void 0,HA().m(function Gt(){var fi,wi;return HA().w(function(Ds){for(;;)switch(Ds.p=Ds.n){case 0:return Ds.p=0,this.logger.debug("[tim] chat.login with userId: ",ue),Ds.n=1,AA.chat.login({userID:ue,userSig:Se});case 1:if(fi=Ds.v,this.logger.info("[tim] chat.login success:",fi),!fi.data.repeatLogin||!AA.chat.isReady()){Ds.n=2;break}return st(!0),Ds.a(2);case 2:this.addLoginHandler({userId:ue,resolve:st,reject:He}),Ds.n=4;break;case 3:Ds.p=3,wi=Ds.v,this.logger.debug("[tim] chat.login error: ",wi,wi.code),wi.code===2025?this.addLoginHandler({userId:ue,resolve:st,reject:He}):He(wi);case 4:return Ds.a(2)}},Gt,this,[[0,3]])}))}))},hA)}))}},{key:"logout",value:function(){return hl(this,void 0,void 0,HA().m(function Z(){return HA().w(function(hA){for(;;)switch(hA.n){case 0:return hA.n=1,this.doLogout();case 1:AA.chat=null;case 2:return hA.a(2)}},Z,this)}))}},{key:"doLogout",value:function(){return hl(this,void 0,void 0,HA().m(function Z(){return HA().w(function(hA){for(;;)switch(hA.n){case 0:if(AA.chat){hA.n=1;break}return hA.a(2);case 1:return this.logger.debug("[tim] chat.logout."),hA.n=2,AA.chat.logout();case 2:this.logger.info("[tim] chat.logout success.");case 3:return hA.a(2)}},Z,this)}))}},{key:"addLoginHandler",value:function(Z){var hA=this;this.waitingReadyQueue.push(Z),setTimeout(function(){var bA=hA.waitingReadyQueue.findIndex(function(ue){return ue===Z});bA<0||(hA.waitingReadyQueue.splice(bA,1),Z.reject(new Error("login timeout")))},2e3)}},{key:"onTIMReadyStateUpdate",value:function(Z){if(this.logger.debug("onTIMReadyStateUpdate event:",Z.name),Z.name===Xh.EVENT.SDK_READY){var hA=AA.chat.getLoginUser();this.waitingReadyQueue.forEach(function(bA){bA.userId===hA?bA.resolve():bA.reject(new Error("user ".concat(hA," has Logged")))})}else this.waitingReadyQueue.forEach(function(bA){return bA.reject(new Error("sdk not ready"))});this.waitingReadyQueue=[]}},{key:"bindTIMEvent",value:function(){var Z,hA,bA,ue;(Z=AA.chat)===null||Z===void 0||Z.off(Xh.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(hA=AA.chat)===null||hA===void 0||hA.off(Xh.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate),(bA=AA.chat)===null||bA===void 0||bA.on(Xh.EVENT.SDK_READY,this.onTIMReadyStateUpdate),(ue=AA.chat)===null||ue===void 0||ue.on(Xh.EVENT.SDK_NOT_READY,this.onTIMReadyStateUpdate)}}])}(),kn=(hl=this&&this.__awaiter||function(AA,Z,hA,bA){return new(hA||(hA=Promise))(function(ue,Se){function Re(He){try{st(bA.next(He))}catch(Gt){Se(Gt)}}function Ue(He){try{st(bA.throw(He))}catch(Gt){Se(Gt)}}function st(He){var Gt;He.done?ue(He.value):(Gt=He.value,Gt instanceof hA?Gt:new hA(function(fi){fi(Gt)})).then(Re,Ue)}st((bA=bA.apply(AA,Z||[])).next())})},Q.TIM),sn=kn.TSignaling,PC=["callExperimentalAPI","invite","inviteInGroup","accept","reject","cancel","modifyInvitation","getUserStatus"],$h=function(){return vs(function AA(){io(this,AA),this.chatLoginManager=new rd({logger:Q.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(AA){this.nativeObserver=AA}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"getLoginUser",value:function(){var AA,Z=(AA=this.tim)===null||AA===void 0?void 0:AA.getLoginUser();return Z??""}},{key:"callJS",value:function(AA,Z,hA){return hl(this,void 0,void 0,HA().m(function bA(){var ue,Se;return HA().w(function(Re){for(;;)switch(Re.p=Re.n){case 0:if(Re.p=0,!Q.tim||Qy(Q.tim)){Re.n=1;break}return hA.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."),Re.a(2);case 1:if(Q.tim||AA==="login"){Re.n=2;break}return hA.onError(2024,"please login firstly"),Re.a(2);case 2:ue=zp(Z),AA!=="invite"&&AA!=="inviteInGroup"||(ue.offlinePushInfo=zp(ue.offlinePushInfo)||{}),AA!=="callExperimentalAPI"&&Q.logger.debug("[tim] ".concat(AA," with params"),ue),AA=="getUserStatus"&&(ue.userIDList=zp(ue.userIDList)),Se=AA,Re.n=Se==="logout"?3:Se==="login"||Se==="updateMyProfile"?5:7;break;case 3:return Re.n=4,this.logout(hA);case 4:case 6:return Re.a(3,8);case 5:return Re.n=6,this[AA](ue,hA);case 7:return Re.n=8,this.timFunction(AA,ue,hA);case 8:return Re.p=8,hA.delete(),Re.f(8);case 9:return Re.a(2)}},bA,this,[[0,,8,9]])}))}},{key:"syncCallJS",value:function(AA,Z){var hA=zp(Z);AA!=="callExperimentalAPI"&&Q.logger.debug("[tim] syncCallJs ".concat(AA," with params"),hA);try{var bA,ue=null;if(ue=hA instanceof Array?(bA=this.tim)[AA].apply(bA,Ft(hA)):this.tim[AA](hA))return ue}catch(Se){throw Q.logger.warn("[tim] ".concat(AA," error:"),Se),Se}}},{key:"login",value:function(AA,Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA,ue,Se,Re,Ue,st;return HA().w(function(He){for(;;)switch(He.p=He.n){case 0:return bA=Object.assign({},AA),ue=bA.sdkAppId,Se=bA.userId,Re=bA.userSig,Ue=bA.testEnv,Q.logger.debug("[tim] login with params",ue,Se),this.tim||(Q.tim?(this.tim=Q.tim,this.isExternalIncomingTim=!0):(this.tim=kn.create({SDKAppID:ue,testEnv:Ue}),Q.tim=this.tim,this.isExternalIncomingTim=!1),this.bindTIMEvent()),He.p=1,He.n=2,this.chatLoginManager.login({sdkAppId:ue,userId:Se,userSig:Re,testEnv:Ue,chat:this.tim});case 2:Z.onSuccess(null),He.n=4;break;case 3:He.p=3,st=He.v,Z.onError(st.code||-1,st.message);case 4:return He.a(2)}},hA,this,[[1,3]])}))}},{key:"logout",value:function(AA){return hl(this,void 0,void 0,HA().m(function Z(){var hA;return HA().w(function(bA){for(;;)switch(bA.p=bA.n){case 0:if(Q.logger.debug("[tim] logout. isExternalIncomingTim: ",this.isExternalIncomingTim),this.unbindTIMEvent(),!this.isExternalIncomingTim){bA.n=1;break}Q.tim=this.tim=null,AA.onSuccess(null),bA.n=4;break;case 1:return bA.p=1,bA.n=2,this.chatLoginManager.logout();case 2:Q.tim=this.tim=null,AA.onSuccess(null),bA.n=4;break;case 3:bA.p=3,hA=bA.v,AA.onError(hA.code||-1,hA.message);case 4:return bA.a(2)}},Z,this,[[1,3]])}))}},{key:"updateMyProfile",value:function(AA,Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA,ue,Se,Re;return HA().w(function(Ue){for(;;)switch(Ue.p=Ue.n){case 0:return bA=Object.assign({},AA),ue=bA.nick,Se=bA.avatar,Ue.p=1,Ue.n=2,this.tim.updateMyProfile({nick:ue,avatar:Se,gender:kn.TYPES.GENDER_UNKNOWN,allowType:kn.TYPES.ALLOW_TYPE_ALLOW_ANY});case 2:Z.onSuccess(null),Ue.n=4;break;case 3:Ue.p=3,Re=Ue.v,Z.onError(Re.code||-1,Re.message);case 4:return Ue.a(2)}},hA,this,[[1,3]])}))}},{key:"timFunction",value:function(AA,Z,hA){return hl(this,void 0,void 0,HA().m(function bA(){var ue,Se,Re,Ue,st;return HA().w(function(He){for(;;)switch(He.p=He.n){case 0:if(He.p=0,Re=null,!(Z instanceof Array)){He.n=2;break}return He.n=1,(Ue=this.tim)[AA].apply(Ue,Ft(Z));case 1:Re=He.v,He.n=4;break;case 2:return He.n=3,this.tim[AA](Z);case 3:Re=He.v;case 4:AA!=="callExperimentalAPI"&&Q.logger.info("[tim] call ".concat(AA," success")),AA!=="invite"&&AA!=="inviteInGroup"&&AA!=="modifyInvitation"||(Re=((Se=(ue=Re?.data)===null||ue===void 0?void 0:ue.message)===null||Se===void 0?void 0:Se.payload)||{data:""}),this.handleTimFunctionResponse(AA,Re.data,hA),He.n=6;break;case 5:He.p=5,st=He.v,Q.logger.warn("[tim] ".concat(AA," error:"),st),hA.onError(st.code||-1,st.message);case 6:return He.a(2)}},bA,this,[[0,5]])}))}},{key:"handleTimFunctionResponse",value:function(AA,Z,hA){PC.includes(AA)&&Z?typeof Z=="string"?hA.onSuccess({response:Z}):hA.onSuccess({response:JSON.stringify(Z)}):hA.onSuccess(Z)}},{key:"onKickedOut",value:function(AA){var Z,hA;switch(AA.data.type){case kn.TYPES.KICKED_OUT_MULT_ACCOUNT:case kn.TYPES.KICKED_OUT_MULT_DEVICE:case kn.TYPES.KICKED_OUT_REST_API:(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onKickedOffline",{});break;case kn.TYPES.KICKED_OUT_USERSIG_EXPIRED:(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onUserSigExpired",{})}}},{key:"onNetStateChange",value:function(AA){var Z,hA;switch(AA.data.state){case kn.TYPES.NET_STATE_CONNECTED:(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onConnectSuccess",{});break;case kn.TYPES.NET_STATE_DISCONNECTED:(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onConnectFailed",{})}}},{key:"onRoomCustomDataReceived",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onRoomCustomDataReceived",AA)}},{key:"onError",value:function(AA){console.error("".concat(TIMService.logPrefix," onError error:"),AA)}},{key:"onServerConfigUpdated",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onServerConfigUpdated",JSON.stringify(AA?.data)||"")}},{key:"onNewMessageReceived",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onNewMessageReceived",JSON.stringify(AA?.data)||"")}},{key:"onNewInvitationReceived",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onNewInvitationReceived",AA?.data||{})}},{key:"onInviteeAccepted",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onInviteeAccepted",AA?.data||{})}},{key:"onInviteeRejected",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onInviteeRejected",AA?.data||{})}},{key:"onInvitationCancelled",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onInvitationCancelled",AA?.data||{})}},{key:"onInvitationTimeout",value:function(AA){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onInvitationTimeout",AA?.data||{})}},{key:"bindTIMEvent",value:function(){var AA,Z,hA,bA,ue,Se,Re,Ue,st,He,Gt,fi,wi,Ds,Tn,oa;(AA=this.tim)===null||AA===void 0||AA.on(kn.EVENT.ERROR,this.onError),(Z=this.tim)===null||Z===void 0||Z.on(kn.EVENT.KICKED_OUT,this.onKickedOut),(hA=this.tim)===null||hA===void 0||hA.on(kn.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(bA=this.tim)===null||bA===void 0||bA.on(kn.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(ue=this.tim)===null||ue===void 0||ue.on(kn.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(Se=this.tim)===null||Se===void 0||Se.on(kn.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(Ue=(Re=this.tim)===null||Re===void 0?void 0:Re.addSignalingListener)===null||Ue===void 0||Ue.call(Re,sn.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(He=(st=this.tim)===null||st===void 0?void 0:st.addSignalingListener)===null||He===void 0||He.call(st,sn.INVITEE_ACCEPTED,this.onInviteeAccepted),(fi=(Gt=this.tim)===null||Gt===void 0?void 0:Gt.addSignalingListener)===null||fi===void 0||fi.call(Gt,sn.INVITEE_REJECTED,this.onInviteeRejected),(Ds=(wi=this.tim)===null||wi===void 0?void 0:wi.addSignalingListener)===null||Ds===void 0||Ds.call(wi,sn.INVITATION_CANCELLED,this.onInvitationCancelled),(oa=(Tn=this.tim)===null||Tn===void 0?void 0:Tn.addSignalingListener)===null||oa===void 0||oa.call(Tn,sn.INVITATION_TIMEOUT,this.onInvitationTimeout)}},{key:"unbindTIMEvent",value:function(){var AA,Z,hA,bA,ue,Se,Re,Ue,st,He,Gt,fi,wi,Ds,Tn,oa;(AA=this.tim)===null||AA===void 0||AA.off(kn.EVENT.ERROR,this.onError),(Z=this.tim)===null||Z===void 0||Z.off(kn.EVENT.KICKED_OUT,this.onKickedOut),(hA=this.tim)===null||hA===void 0||hA.off(kn.EVENT.NET_STATE_CHANGE,this.onNetStateChange),(bA=this.tim)===null||bA===void 0||bA.off(kn.EVENT.ROOM_CUSTOM_DATA_RECEIVED,this.onRoomCustomDataReceived),(ue=this.tim)===null||ue===void 0||ue.off(kn.EVENT.SERVER_CONFIG_UPDATED,this.onServerConfigUpdated),(Se=this.tim)===null||Se===void 0||Se.off(kn.EVENT.MESSAGE_RECEIVED,this.onNewMessageReceived),(Ue=(Re=this.tim)===null||Re===void 0?void 0:Re.removeSignalingListener)===null||Ue===void 0||Ue.call(Re,sn.NEW_INVITATION_RECEIVED,this.onNewInvitationReceived),(He=(st=this.tim)===null||st===void 0?void 0:st.removeSignalingListener)===null||He===void 0||He.call(st,sn.INVITEE_ACCEPTED,this.onInviteeAccepted),(fi=(Gt=this.tim)===null||Gt===void 0?void 0:Gt.removeSignalingListener)===null||fi===void 0||fi.call(Gt,sn.INVITEE_REJECTED,this.onInviteeRejected),(Ds=(wi=this.tim)===null||wi===void 0?void 0:wi.removeSignalingListener)===null||Ds===void 0||Ds.call(wi,sn.INVITATION_CANCELLED,this.onInvitationCancelled),(oa=(Tn=this.tim)===null||Tn===void 0?void 0:Tn.removeSignalingListener)===null||oa===void 0||oa.call(Tn,sn.INVITATION_TIMEOUT,this.onInvitationTimeout)}}],[{key:"getSDKVersion",value:function(){return kn.VERSION}}])}();$h.logPrefix="[JSTim]",Q.JSTim=$h;var i_=Q.TRTCDefine.TRTCVideoResolutionMode;function xC(AA){return typeof AA=="string"?AA.split(",").length>1?AA.split(",").map(function(Z){return document.getElementById(Z)}).filter(function(Z){return!!Z}):PM?document.getElementById(AA):AA:AA}function AB(AA,Z){var hA=Z;return AA==="startLocalPreview"&&(hA.length===1&&(hA[0]=xC(hA[0])),hA.length===2&&(hA[1]=xC(hA[1]))),AA!=="updateLocalView"&&AA!=="startScreenCapture"||(hA[0]=xC(hA[0])),AA!=="startRemoteView"&&AA!=="updateRemoteView"||(hA[1]=xC(hA[1])),hA}function qk(AA,Z){var hA=Z;if(AA==="enterRoom"&&Q.TRTCDefine.TRTCParams&&Z instanceof Array&&Z.length>0&&(hA[0]=new Q.TRTCDefine.TRTCParams(Z[0].sdkAppId,Z[0].userId,Z[0].userSig,Z[0].roomId,Z[0].strRoomId,Z[0].role)),AA==="setVideoEncoderParam"&&Q.TRTCDefine.TRTCVideoEncParam&&Z instanceof Array&&Z.length>0&&(hA[0]=new Q.TRTCDefine.TRTCVideoEncParam(Z[0].videoResolution,i_.TRTCVideoResolutionModeLandscape,Z[0].videoFps,Z[0].videoBitrate,Z[0].minVideoBitrate)),AA==="selectScreenCaptureTarget"&&Q.TRTCDefine.TRTCScreenCaptureSourceInfo&&Q.TRTCDefine.TRTCScreenCaptureProperty&&Z instanceof Array&&Z.length===3&&Q.tempResult.screenSharingTargetList&&Q.tempResult.screenSharingTargetList.length>0){var bA=Q.tempResult.screenSharingTargetList.filter(function(ue){return ue.sourceId===Z[0].sourceId});bA.length>0&&(hA[0]=bA[0],hA[1]=new Q.TRTCDefine.Rect(Z[1].left,Z[1].top,Z[1].right,Z[1].bottom),hA[2]=new Q.TRTCDefine.TRTCScreenCaptureProperty(Z[2].enableCaptureMouse,Z[2].enableHighLight,Z[2].enableHighPerformance,Z[2].highLightColor,Z[2].highLightWidth,Z[2].enableCaptureChildWindow))}return AA==="startScreenCapture"&&Q.TRTCDefine.TRTCVideoEncParam&&Z instanceof Array&&Z.length===3&&(hA[2]=new Q.TRTCDefine.TRTCVideoEncParam(Z[2].videoResolution,Z[2].resMode,Z[2].videoFps,Z[2].videoBitrate,Z[2].minVideoBitrate,Z[2].enableAdjustRes)),AA==="enableSmallVideoStream"&&Q.TRTCDefine.TRTCVideoEncParam&&Z instanceof Array&&Z.length===2&&(hA[1]=new Q.TRTCDefine.TRTCVideoEncParam(Z[1].videoResolution,Z[1].resMode,Z[1].videoFps,Z[1].videoBitrate,Z[1].minVideoBitrate,!1)),hA}function FM(AA,Z){AA==="getScreenCaptureSources"&&(Q.tempResult.screenSharingTargetList=Z)}hl=this&&this.__awaiter||function(AA,Z,hA,bA){return new(hA||(hA=Promise))(function(ue,Se){function Re(He){try{st(bA.next(He))}catch(Gt){Se(Gt)}}function Ue(He){try{st(bA.throw(He))}catch(Gt){Se(Gt)}}function st(He){var Gt;He.done?ue(He.value):(Gt=He.value,Gt instanceof hA?Gt:new hA(function(fi){fi(Gt)})).then(Re,Ue)}st((bA=bA.apply(AA,Z||[])).next())})};var OM=Q.TRTCCloud,PM=Q.currentFrameWork===Q.FRAMEWORK.ELECTRON,o_=function(){function AA(Z){io(this,AA),this.trtcCloud=Z?OM.getTRTCShareInstance():OM.getTRTCShareInstance().createSubCloud(),this.isMainTRTCCloud=Z,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 vs(AA,[{key:"destroyTRTC",value:function(){this.unbindTRTCEvent(),this.isMainTRTCCloud||this.trtcCloud.destroy()}},{key:"getTRTCCloud",value:function(){return this.trtcCloud}},{key:"bindObserver",value:function(Z){this.nativeObserver=Z}},{key:"unBindObserver",value:function(){this.nativeObserver&&this.nativeObserver.delete(),this.nativeObserver=null}},{key:"callJS",value:function(Z,hA,bA){return hl(this,void 0,void 0,HA().m(function ue(){var Se,Re,Ue,st,He,Gt,fi;return HA().w(function(wi){for(;;)switch(wi.p=wi.n){case 0:if(wi.p=0,Se=zp(hA),Re=AB(Z,Se),Re=PM?qk(Z,Re):Re,Q.logger.debug("[trtcCloud] ".concat(Z," params"),Re,It(Re)),Ue=null,!(Re instanceof Array)){wi.n=2;break}return wi.n=1,(st=this.trtcCloud)[Z].apply(st,Ft(Re));case 1:Ue=wi.v,wi.n=4;break;case 2:return wi.n=3,this.trtcCloud[Z](Re);case 3:Ue=wi.v;case 4:Q.logger.info("[trtcCloud] ".concat(Z," success")),PM&&FM(Z,Ue),bA&&bA.onSuccess(Ue),wi.n=6;break;case 5:wi.p=5,fi=wi.v,Q.logger&&Q.logger.warn("[trtcCloud] ".concat(Z," error"),fi),He=fi&&fi.code,Gt=fi&&fi.message,Z==="startScreenShare"&&(He=fi&&fi.extraCode,Gt=JSON.stringify({name:fi.originError.name,message:Gt})),bA&&bA.onError(He,Gt);case 6:bA.delete();case 7:return wi.a(2)}},ue,this,[[0,5]])}))}},{key:"onError",value:function(Z,hA){var bA;Q.logger.warn("[trtcCloud] onError",Z,hA),(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onError",{errCode:Z,errMsg:hA})}},{key:"onWarning",value:function(Z,hA,bA){var ue;(ue=this.nativeObserver)===null||ue===void 0||ue.onJSEvent("onWarning",{warningCode:Z,warningMsg:hA,extraInfo:JSON.stringify({extraInfo:bA})})}},{key:"onEnterRoom",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onEnterRoom",{result:Z})}},{key:"onExitRoom",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onExitRoom",{reason:Z})}},{key:"onSwitchRole",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onSwitchRole",{errorCode:Z,errorMessage:hA})}},{key:"onUserVideoAvailable",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onUserVideoAvailable",{userId:Z,available:!!hA})}},{key:"onUserSubStreamAvailable",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onUserSubStreamAvailable",{userId:Z,available:!!hA})}},{key:"onUserAudioAvailable",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onUserAudioAvailable",{userId:Z,available:!!hA})}},{key:"onFirstVideoFrame",value:function(Z,hA,bA,ue){var Se;(Se=this.nativeObserver)===null||Se===void 0||Se.onJSEvent("onFirstVideoFrame",{userId:Z,streamType:hA,width:bA,height:ue})}},{key:"onRemoteUserEnterRoom",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onRemoteUserEnterRoom",{userId:Z})}},{key:"onRemoteUserLeaveRoom",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onRemoteUserLeaveRoom",{userId:Z,reason:hA})}},{key:"onUserVoiceVolume",value:function(Z,hA,bA){var ue;(ue=this.nativeObserver)===null||ue===void 0||ue.onJSEvent("onUserVoiceVolume",{userVolumes:Z,userVolumesCount:hA,totalVolume:bA})}},{key:"onNetworkQuality",value:function(Z,hA){var bA;(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onNetworkQuality",{localQuality:Z,remoteQuality:hA,remoteQualityCount:hA.length})}},{key:"onStatistics",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onStatistics",{statistics:Z})}},{key:"onMicDidReady",value:function(){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onMicDidReady",{})}},{key:"onCameraDidReady",value:function(){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onCameraDidReady",{})}},{key:"onScreenCapturePaused",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onScreenCapturePaused",{reason:Z})}},{key:"onScreenCaptureResumed",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onScreenCaptureResumed",{reason:Z})}},{key:"onScreenCaptureStopped",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onScreenCaptureStopped",{reason:Z})}},{key:"onSendFirstLocalAudioFrame",value:function(){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onSendFirstLocalAudioFrame",{})}},{key:"onSendFirstLocalVideoFrame",value:function(Z){var hA;(hA=this.nativeObserver)===null||hA===void 0||hA.onJSEvent("onSendFirstLocalVideoFrame",{streamType:Z})}},{key:"onReceiveSEIMessage",value:function(Z,hA){var bA;try{var ue=JSON.parse(hA);(bA=this.nativeObserver)===null||bA===void 0||bA.onJSEvent("onReceiveSEIMessage",{message:JSON.stringify(Object.assign(Object.assign({},ue),{userId:Z,data:ue.stringData}))})}catch(Se){Q.logger&&Q.logger.warn("[trtcCloud] onReceiveSEIMessage error",Se)}}},{key:"onConnectionLost",value:function(){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.onJSEvent("onConnectionLost",{})}},{key:"onConnectionRecovery",value:function(){var Z;(Z=this.nativeObserver)===null||Z===void 0||Z.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(Z){return new AA(Z)}},{key:"getSDKVersion",value:function(){return OM.getTRTCShareInstance().getSDKVersion()}},{key:"log",value:function(Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA,ue,Se;return HA().w(function(Re){for(;;)switch(Re.n){case 0:if(It(bA=zp(Z))==="object"){Re.n=1;break}return Re.a(2);case 1:if(ue="[".concat(bA.file,": ").concat(bA.line,"] ").concat(bA.message),!Q.isElectron){Re.n=3;break}return Se={api:"TuikitLog",params:bA},Q.logger.info(ue),Re.n=2,AA.callExperimentalAPI(JSON.stringify(Se));case 2:Re.n=4;break;case 3:bA.level===2?Q.logger.error(ue):console.log("[tuikit engine wasm] ["+bA.file+":"+bA.line+"] "+bA.message);case 4:return Re.a(2)}},hA)}))}},{key:"callExperimentalAPI",value:function(Z){return hl(this,void 0,void 0,HA().m(function hA(){var bA;return HA().w(function(ue){for(;;)switch(ue.n){case 0:return bA=OM.getTRTCShareInstance(),ue.n=1,bA.callExperimentalAPI(Z);case 1:return ue.a(2)}},hA)}))}}])}();return Q.JSTRTC=o_,Q.ready});(function(Q){Q[Q.APNs=0]="APNs",Q[Q.VoIP=1]="VoIP"})(Pp||(Pp={})),function(Q){Q[Q.UNKNOWN=0]="UNKNOWN",Q[Q.AUDIO_CALL=1]="AUDIO_CALL",Q[Q.VIDEO_CALL=2]="VIDEO_CALL"}(ry||(ry={})),function(Q){Q[Q.NORMAL=0]="NORMAL",Q[Q.RELEASE=1]="RELEASE",Q[Q.WARNING=2]="WARNING",Q[Q.ERROR=3]="ERROR",Q[Q.NONE=4]="NONE"}(y2||(y2={}));const rQ={"480p":r.TUIVideoQuality.kVideoQuality_540p,"720p":r.TUIVideoQuality.kVideoQuality_720p,"1080p":r.TUIVideoQuality.kVideoQuality_1080p},Ck={TRTCDeviceInfo:I.TRTCDeviceInfo,TRTCAudioQuality:I.TRTCAudioQuality,TRTCScreenCaptureSourceInfo:I.TRTCScreenCaptureSourceInfo,Rect:I.Rect,TRTCScreenCaptureSourceType:I.TRTCScreenCaptureSourceType,TRTCVideoEncParam:I.TRTCVideoEncParam,TRTCVideoResolution:I.TRTCVideoResolution,TRTCVideoResolutionMode:I.TRTCVideoResolutionMode,TRTCVideoQosPreference:I.TRTCVideoQosPreference,TRTCBeautyStyle:I.TRTCBeautyStyle,TRTCVideoStreamType:I.TRTCVideoStreamType,TRTCVolumeInfo:I.TRTCVolumeInfo,TRTCDeviceType:I.TRTCDeviceType,TRTCDeviceState:I.TRTCDeviceState,TRTCQualityInfo:I.TRTCQualityInfo,TRTCStatistics:I.TRTCStatistics,TRTCVideoFillMode:I.TRTCVideoFillMode,TRTCAppScene:I.TRTCAppScene,TRTCRoleType:I.TRTCRoleType,TRTCParams:I.TRTCParams,TRTCQuality:I.TRTCQuality},D2=OB?$i.MINI_PROGRAM:$i.WEB,El={};El.TIM=w.default,El.TRTCCloud=_.default,El.currentFrameWork=D2,El.TRTCDefine=Ck,El.TIMDefine=w.default.TYPES,El.FRAMEWORK=$i;const xp=Sf();El.loggerManager=xp,El.logger=xp,El.rtcDetect=new b.default,Fs.info(`SDK Version:${ut}.`),function(){j(this,void 0,void 0,function*(){yield mK(El),Cn.setModule(El)})}();const jl=new Dt,Yp={cover:I.TRTCVideoFillMode.TRTCVideoFillMode_Fill,fill:I.TRTCVideoFillMode.TRTCVideoFillMode_Fill,contain:I.TRTCVideoFillMode.TRTCVideoFillMode_Fit};class Cn{constructor(R){var F,eA;if(this._logger=xp,this._logLevel=1,this._uniqueLoginId="",this._isExternalTim=!1,this._excludeFromHistoryMessage=!1,this._localRenderFillMode=I.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._remoteRenderFillMode=I.TRTCVideoFillMode.TRTCVideoFillMode_Fill,this._callMediaType=ry.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,!Cn.isWasmReady)throw new ul({code:r.TUIErrorCode.ERR_FAILED,message:"Please listen to the ready event and then execute the constructor method."});const{isSharedInstance:sA=!0,framework:_A=30,component:ZA=17,language:QA=0}=R;this._callEngineWASM=new Cn.Module.TUICallEngineWASM(sA),Cn.sdkAppId=R.SDKAppID||R.sdkAppID||0,this.trtcCloud=this._callEngineWASM.getTRTCCloud();const PA={api:"setFramework",params:{framework:_A,component:ZA,language:QA}};(F=this==null?void 0:this.callExperimentalAPI)===null||F===void 0||F.call(this,JSON.stringify(PA)),R.tim&&(this._isExternalTim=!0,El.tim=R.tim,this.tim=R.tim,bO((eA=R.tim)===null||eA===void 0?void 0:eA.addSignalingListener)||(El.tim.addSignalingListener=()=>{},this.tim.addSignalingListener=()=>{})),this._initLogger(R),this._logger.info("constructor.start",{text:{data:R},type:"api"}),this._observerFunction=this._observerFunction.bind(this),this._callEngineWASM.setObserver(this._observerFunction)}static setModule(R){Fs.info("TUICallEngineWASM ready!"),this.Module=R,this.isWasmReady=!0,jl.emit("ready")}JSCallNativeFunctionPromise(R,...F){return new Promise((eA,sA)=>{const _A=QA=>{eA({code:0,message:"success",data:Pd(QA)})},ZA=(QA,PA)=>{this._logger.info(`callEngine.${R} fail.`,{text:{data:{code:QA,message:PA}},type:"api"}),sA(new ul({code:QA,message:PA}))};try{if(F.length>0)if(R==="startRemoteView"){const QA=jA=>{Fs.info("callEngine startRemoteView playingCallback ",Pd(jA)),eA(Pd(jA))},PA=jA=>{Fs.info("callEngine startRemoteView loadingCallback ",Pd(jA)),eA(Pd(jA))};this._callEngineWASM[R](...F,QA,PA,ZA)}else this._callEngineWASM.callAPI(R,...F,_A,ZA);else this._callEngineWASM.callAPI(R,"{}",_A,ZA)}catch(QA){this._logger.info(`callEngine.${R} fail.`,{text:{error:QA},type:"api"}),Fs.error(`callEngine.${R} fail.`,QA.code,QA.message),sA(new ul({code:QA.code||r.TUIErrorCode.ERR_FAILED,message:QA.message}))}})}static createInstance(R){return Cn.sdkAppId=R.SDKAppID||R.sdkAppID||0,xp.updateEsConfig({url:`https://webim.tim.qq.com/v4/imopenstat/tweb_trtccalling_report?sdkappid=${Cn.sdkAppId}`,table:"timweb-trtccalling"}),Cn.instance||(Cn.instance=new Cn(R)),Cn.instance}static once(R,F){jl.once(R,F),R==="ready"&&Cn.isWasmReady&&jl.emit("ready")}destroyInstance(){return j(this,void 0,void 0,function*(){Cn.instance=null,yield this.logout(),this._callEngineWASM.delete()})}login(R){return j(this,void 0,void 0,function*(){this._uniqueLoginId=function(ZA){ZA=ZA||32;for(var QA="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",PA="",jA=0;jA<ZA;jA++)PA+=QA.charAt(Math.floor(48*Math.random()));return PA}(6),this._logger.updateGetReportData(()=>({userid:R.userID,uniqueloginid:this._uniqueLoginId})),this._logger.info("login.start",{text:{data:Object.assign(Object.assign({},R),{userSig:""})},type:"api"}),Cn.isWasmReady||(yield El.ready);const{userID:F,userSig:eA,assetsPath:sA}=R;Cn.userId=F,Cn.userSig=eA;const _A=[Cn.sdkAppId,F,eA];yield this.JSCallNativeFunctionPromise("login",JSON.stringify(_A)),jl.emit(r.TUICallEvent.SDK_READY,{name:"ts_im_ready"})})}logout(){return j(this,void 0,void 0,function*(){const R={userID:Cn.userId,timExternal:this._isExternalTim};this._logger.info("logout.start",{text:{data:R},type:"api"}),yield this.JSCallNativeFunctionPromise("logout")})}call(R){return j(this,void 0,void 0,function*(){this._logger.info("call.start",{text:{data:R},type:"api"}),Fs.info("call - params:",R),this._callMediaType=R.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:R.type});const F={room_id:{int_room_id:R?.roomID||0,str_room_id:R?.strRoomID||""},timeout:R?.timeout||30,offline_push_info:QS(R?.offlinePushInfo),user_data:R?.userData||""},eA=[R.userID,R.type,F];return yield this.JSCallNativeFunctionPromise("call",JSON.stringify(eA))})}groupCall(R){return j(this,void 0,void 0,function*(){this._logger.info("groupCall.start",{text:{data:R},type:"api"}),Fs.info("groupCall - params:",R),this._callMediaType=R.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:R.type});const F={room_id:{int_room_id:R?.roomID||0,str_room_id:R?.strRoomID||""},timeout:R?.timeout||30,offline_push_info:QS(R?.offlinePushInfo),user_data:R?.userData||""},eA=[R.groupID,R.userIDList,R.type,F];return yield this.JSCallNativeFunctionPromise("groupCall",JSON.stringify(eA))})}calls(R){return j(this,void 0,void 0,function*(){this._logger.info("calls.start",{text:{data:R},type:"api"}),Fs.info("calls - params:",R),this._callMediaType=R.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:R.type});const F={room_id:{int_room_id:R?.roomID||0,str_room_id:R?.strRoomID||""},timeout:R?.timeout||30,offline_push_info:QS(R?.offlinePushInfo),user_data:R?.userData||""},eA=[R.chatGroupID||"",R.userIDList,R.type,F];return yield this.JSCallNativeFunctionPromise("calls",JSON.stringify(eA))})}accept(){return j(this,void 0,void 0,function*(){return this._logger.info("accept.start",{text:{data:{callMediaType:this._callMediaType}},type:"api"}),Fs.info("accept.start"),yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:this._callMediaType}),yield this.JSCallNativeFunctionPromise("accept")})}reject(){return j(this,void 0,void 0,function*(){return this._logger.info("reject.start",{text:{},type:"api"}),Fs.info("reject.start"),yield this.JSCallNativeFunctionPromise("reject")})}hangup(){return j(this,void 0,void 0,function*(){return this._logger.info("hangup.start",{text:{},type:"api"}),Fs.info("hangup.start"),yield this.closeCamera(),yield this.closeMicrophone(),yield this.JSCallNativeFunctionPromise("hangup")})}inviteUser(R){return j(this,void 0,void 0,function*(){this._logger.info("inviteUser.start",{text:{data:R},type:"api"}),Fs.info(`inviteUser, params:${JSON.stringify(R)}`);const{userIDList:F,offlinePushInfo:eA={}}=R,sA=[F,{timeout:R?.timeout||30,offline_push_info:QS(R?.offlinePushInfo),user_data:R?.userData||""}];yield this.JSCallNativeFunctionPromise("inviteUser",JSON.stringify(sA))})}joinInGroupCall(R){return j(this,void 0,void 0,function*(){this._logger.info("joinInGroupCall.start",{text:{data:R},type:"api"}),Fs.info(`joinInGroupCall, params:${R}`),this._callMediaType=R.type,yield this==null?void 0:this._checkDevicePermission({audio:!0,callMediaType:R.type});const F=[{int_room_id:R?.roomID||0,str_room_id:R?.strRoomID||""},R.groupID,R.type];yield this.JSCallNativeFunctionPromise("joinInGroupCall",JSON.stringify(F))})}join(R){return j(this,void 0,void 0,function*(){this._logger.info("join.start",{text:{data:R},type:"api"}),Fs.info(`join, params:${R}`),yield this==null?void 0:this._checkDevicePermission({audio:!0});const F=[R.callId];yield this.JSCallNativeFunctionPromise("join",JSON.stringify(F))})}openCamera(R,F){return j(this,void 0,void 0,function*(){let eA;this._logger.info("openCamera.start",{type:"api",text:{data:R,isFrontCamera:F}}),Fs.info(`openCamera.start, videoViewDomID:${R}, isFrontCamera:${F}}`),yield this==null?void 0:this._checkDevicePermission({video:!0}),eA=It(F)===gi?-1:F?1:0;const sA=[eA,R];yield this.JSCallNativeFunctionPromise("openCamera",JSON.stringify(sA))})}closeCamera(){return j(this,void 0,void 0,function*(){this._logger.info("closeCamera.start",{type:"api"}),Fs.info("closeCamera.start"),yield this.JSCallNativeFunctionPromise("closeCamera")})}switchCamera(R){return j(this,void 0,void 0,function*(){this._logger.info("switchCamera.start",{type:"api",text:{data:R}}),Fs.info(`switchCamera.start, cameraPosition: ${R}`);const F=[R===r.TUICallCameraPosition.FRONT?1:0];yield this.JSCallNativeFunctionPromise("switchCamera",JSON.stringify(F))})}setVideoQuality(R){return j(this,void 0,void 0,function*(){this._logger.info("setVideoQuality.start",{type:"api",text:{data:R}}),Fs.info(`setVideoQuality.start, profile:${R}`);const F=[rQ[R],this._localRenderFillMode];Fs.info(`setVideoQuality.start, jsonParams:${F}`),yield this.JSCallNativeFunctionPromise("setVideoEncoderParams",JSON.stringify(F))})}setVideoRenderParams(R){return j(this,void 0,void 0,function*(){this._logger.info("setVideoRenderParams.start",{type:"api",text:{data:R}}),Fs.info("setVideoRenderParams.start",R);const F=this._analyzeVideoRenderParams(R);R.userID===Cn.userId?this._localRenderFillMode=F.fillMode:this._remoteRenderFillMode=F.fillMode;const eA=[R.userID,F.fillMode,F.rotation];yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(eA))})}openMicrophone(){return j(this,void 0,void 0,function*(){this._logger.info("openMicrophone.start",{type:"api"}),Fs.info("openMicrophone.start"),yield this.JSCallNativeFunctionPromise("openMicrophone")})}closeMicrophone(){return j(this,void 0,void 0,function*(){this._logger.info("closeMicrophone.start",{type:"api"}),Fs.info("closeMicrophone.start"),yield this.JSCallNativeFunctionPromise("closeMicrophone")})}startRemoteView(R){var F,eA;return j(this,void 0,void 0,function*(){this._logger.info("startRemoteView.start",{type:"api",text:{data:R}}),Fs.info(`startRemoteView.start params: ${JSON.stringify(R)}`);let sA=[R.userID,R.videoViewDomID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(sA)),this._remoteRenderFillMode=((F=R?.options)===null||F===void 0?void 0:F.fillMode)&&Yp[(eA=R.options)===null||eA===void 0?void 0:eA.fillMode]||this._remoteRenderFillMode,sA=[R.userID,this._remoteRenderFillMode,0],yield this.JSCallNativeFunctionPromise("setVideoRenderParams",JSON.stringify(sA))})}stopRemoteView(R){return j(this,void 0,void 0,function*(){this._logger.info("stopRemoteView.start",{text:{data:R},type:"api"});const F=[R.userID];yield this.JSCallNativeFunctionPromise("startRemoteView",JSON.stringify(F))})}setBlurBackground(R){return j(this,void 0,void 0,function*(){this._logger.info("setBlurBackground.start",{type:"api",text:{data:R}}),yield this._setVirtualBackground({enable:R!==0,type:ns,blurLevel:R})})}setVirtualBackground(R){return j(this,void 0,void 0,function*(){this._logger.info("setVirtualBackground.start",{type:"api",text:{data:R}}),yield this._setVirtualBackground({enable:!!R,type:jo,imagePath:R})})}_setVirtualBackground(R){var F,eA;return j(this,void 0,void 0,function*(){try{const{enable:sA}=R;!this._isRegisterVirtualBackgroundModelFile&&sA&&(yield(F=this.trtcCloud)===null||F===void 0?void 0:F.useVirtualBackground(Cn._assetsPath),this._isRegisterVirtualBackgroundModelFile=!0);const _A={api:ki,params:Object.assign({sdkAppId:Cn.sdkAppId,userId:Cn.userId,userSig:Cn.userSig},R)};yield(eA=this.trtcCloud)===null||eA===void 0?void 0:eA.callExperimentalAPI(JSON.stringify(_A))}catch(sA){throw Fs.error(`setVirtualBackground.fail, ${sA}`),this._logger.error("setVirtualBackground.fail",{text:{error:sA},type:"api"}),sA}})}enableMultiDeviceAbility(R){this._logger.info("enableMultiDeviceAbility.start",{text:{data:{enable:R}},type:"api"});const F=[R];this.JSCallNativeFunctionPromise("enableMultiDeviceAbility",JSON.stringify(F))}setSelfInfo(R){return j(this,void 0,void 0,function*(){this._logger.info("setSelfInfo.start",{type:"api",text:{data:R}});const F=[R.nickName,R.avatar];yield this.JSCallNativeFunctionPromise("setSelfInfo",JSON.stringify(F))})}setBeautyLevel(R){var F,eA;return j(this,void 0,void 0,function*(){try{this._logger.info("setBeautyLevel.start",{type:"api",text:{data:R}});const{style:sA,beautyLevel:_A,whitenessLevel:ZA,ruddinessLevel:QA}=R||{};if(!R||sA!==I.TRTCBeautyStyle.TRTCBeautyStyleSmooth&&sA!==I.TRTCBeautyStyle.TRTCBeautyStyleNature)return void Fs.error("setBeautyLevel.fail style valid, ",sA);this._isUseBasicBeautyPlugin||(yield(F=this.trtcCloud)===null||F===void 0?void 0:F.useBeautyStyle(),this._isUseBasicBeautyPlugin=!0),yield(eA=this.trtcCloud)===null||eA===void 0?void 0:eA.setBeautyStyle(sA,_A,ZA,QA)}catch(sA){this._logger.info("setBeautyLevel.fail",{type:"api",text:{data:sA}}),Fs.error("setBeautyLevel.fail",sA)}})}setLogLevel(R){var F,eA,sA;Fs.info(`setLogLevel level: ${R}`),this._logLevel=R,Fs.setLevel(R),(eA=(F=this==null?void 0:this.tim)===null||F===void 0?void 0:F.setLogLevel)===null||eA===void 0||eA.call(F,R),(sA=_.default===null||_.default===void 0?void 0:_.default.setLogLevel)===null||sA===void 0||sA.call(_.default,R)}init(R){return j(this,void 0,void 0,function*(){return this.login(R)})}on(R,F,eA){if(jl.on(R,F,eA||this),R===r.TUICallEvent.onDeviceChange||R===r.TUICallEvent.DEVICED_UPDATED){const sA=r.TUICallEvent.onDeviceChange;return void this._handleTrtcCloudBindEvent(sA)}}off(R,F,eA){jl.off(R,F)}getTRTCCloudInstance(){return this.trtcCloud}getTim(){return El.tim}static callExperimentalAPI(R){return j(this,void 0,void 0,function*(){const F=Pd(R);if(F===R)return;const{api:eA,params:sA}=F;if(eA&&sA){sA?.assetsPath&&eA==="setAssetsPath"&&(this._assetsPath=sA.assetsPath);try{yield _.default.callExperimentalAPI(R)}catch(_A){console.warn("static callExperimentalAPI error: ",_A)}}})}callExperimentalAPI(R){return j(this,void 0,void 0,function*(){this._logger.info("callExperimentalAPI",{text:{data:R},type:"api"});const F=Pd(R);if(F===R)return;const{api:eA,params:sA={}}=F;if(eA&&sA)try{const _A=[R];return yield this.JSCallNativeFunctionPromise("callExperimentalAPI",JSON.stringify(_A))}catch(_A){throw _A}})}reportLog(R){var F,eA;try{if(dG(R)){const{name:sA="",data:_A,error:ZA,type:QA="api",level:PA="info"}=R||{},jA=PA==="error"?{error:ZA,data:_A}:{data:_A};(eA=(F=this._logger)===null||F===void 0?void 0:F[PA])===null||eA===void 0||eA.call(F,sA,{text:jA,type:QA})}}catch(sA){console.debug("reportLog fail: ",sA)}}_cleanupAvoidRepeatCallState(R){var F,eA;(eA=(F=this._logger)===null||F===void 0?void 0:F.log)===null||eA===void 0||eA.call(F,{name:"TUICallEngine._cleanupAvoidRepeatCallState",data:{methodName:R}});let sA=[];sA=R?[this[R]]:[this.calls,this.accept,this.hangup,this.reject,this.join,this.inviteUser],sA?.forEach(_A=>{var ZA;(ZA=_A?.clearCallState)===null||ZA===void 0||ZA.call(_A,this)})}getDeviceList(R){var F,eA,sA;return j(this,void 0,void 0,function*(){this._logger.info("getDeviceList.start",{text:{data:{deviceType:R}},type:"api"}),(R=R===lA.MICROPHONES?lA.MICROPHONE:R)!==lA.MICROPHONE&&R!==lA.SPEAKER||(yield this._checkDevicePermission({audio:!0})),R===lA.CAMERA&&(yield this._checkDevicePermission({video:!0,isThrowVideoError:!0}));let _A=[];switch(R){case lA.CAMERA:this.getDevicePermission().video&&(_A=yield(F=this.trtcCloud)===null||F===void 0?void 0:F.getCameraDevicesList());break;case lA.MICROPHONE:this.getDevicePermission().audio&&(_A=yield(eA=this.trtcCloud)===null||eA===void 0?void 0:eA.getMicDevicesList());break;case lA.SPEAKER:this.getDevicePermission().audio&&(_A=yield(sA=this.trtcCloud)===null||sA===void 0?void 0:sA.getSpeakerDevicesList())}return this._devices[R]=_A,_A})}switchDevice(R){var F,eA,sA;return j(this,void 0,void 0,function*(){this._logger.info("switchDevice.start",{text:{data:{params:R}},type:"api"}),Fs.info("switchDevice.start",R);let _A=!1,{deviceType:ZA,deviceId:QA}=R;return ZA!==lA.VIDEO&&ZA!==lA.CAMERA||(ZA=lA.CAMERA,_A=yield(F=this.trtcCloud)===null||F===void 0?void 0:F.setCurrentCameraDevice(QA)),ZA!==lA.AUDIO&&ZA!==lA.MICROPHONES&&ZA!==lA.MICROPHONE||(_A=yield(eA=this.trtcCloud)===null||eA===void 0?void 0:eA.setCurrentMicDevice(QA)),ZA===lA.SPEAKER&&(_A=yield(sA=this.trtcCloud)===null||sA===void 0?void 0:sA.setCurrentSpeakerDevice(QA)),this._updateCurrentDevice(),this._onDeviceUpdated(this._devices,this._currentDevices),_A})}_updateCurrentDevice(){var R,F,eA;this._logger.info("_updateCurrentDevice.start",{text:{data:Object.assign({},this._currentDevices)},type:"api"}),this._currentDevices.camera=(R=this.trtcCloud)===null||R===void 0?void 0:R.getCurrentCameraDevice(),this._currentDevices.microphone=(F=this.trtcCloud)===null||F===void 0?void 0:F.getCurrentMicDevice(),this._currentDevices.speaker=(eA=this.trtcCloud)===null||eA===void 0?void 0:eA.getCurrentSpeakerDevice()}switchCallMediaType(R){return j(this,void 0,void 0,function*(){this._logger.info("switchCallMediaType.start",{text:{data:{newMediaType:R}},type:"api"});const F=[R];yield this.JSCallNativeFunctionPromise("switchCallMediaType",JSON.stringify(F))})}_checkDevicePermission(R={}){return j(this,void 0,void 0,function*(){return yield this._getMediaDevicesAuth(R)})}_getMediaDevicesAuth(R={}){return j(this,void 0,void 0,function*(){if(this._logger.info("_getMediaDevicesAuth.start",{text:{data:{params:R}},type:"api"}),function(){if(!window||!window.location)return!1;const{protocol:eA,hostname:sA}=window.location;return eA==="http:"&&sA!=="localhost"&&sA!=="127.0.0.1"}())throw this._logger.error("_getMediaDevicesAuth.fail",{text:{error:Vl},type:"api"}),new ul({code:Iq});const F=this.getDevicePermission();if(R.audio){if(GG&&F.audio)return F;try{const eA=yield navigator.mediaDevices.getUserMedia({audio:!0});this._releaseStream(eA),this._setDevicePermission(To,!0)}catch(eA){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:eA},type:"api"}),this._setDevicePermission(To,!1),this._handleMediaError(eA,"_getMediaDevicesAuth",To)}}if(R.video){if(GG&&F.video)return F;try{const eA=yield navigator.mediaDevices.getUserMedia({video:!0});this._releaseStream(eA),this._setDevicePermission(Fi,!0)}catch(eA){this._logger.error("_getMediaDevicesAuth.fail",{text:{error:eA},type:"api"}),this._setDevicePermission(Fi,!1),R.isThrowVideoError&&this._handleMediaError(eA,"_getMediaDevicesAuth",Fi)}}return this.getDevicePermission()})}_releaseStream(R){const F=R.getTracks();for(let eA=0;eA<F.length;eA++)F[eA].stop()}_handleMediaError(R,F,eA){let sA=kG,_A=Eo;switch(R?.name){case"NotFoundError":eA===lA.AUDIO&&(sA=gP),eA===lA.VIDEO&&(sA=gq);break;case"NotAllowedError":sA=cq}throw _A=mp({code:sA,params:{error:R,fnName:F}}),new ul({code:sA,message:_A})}_analyzeVideoRenderParams(R){const F={};return F.rotation=R.rotation,R.objectFit&&(R.objectFit===Vs?F.fillMode=I.TRTCVideoFillMode.TRTCVideoFillMode_Fill:F.fillMode=I.TRTCVideoFillMode.TRTCVideoFillMode_Fit),It(R.mirror)===ge&&(F.mirrorType=R.mirror?I.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:I.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable),F}_handleTrtcCloudBindEvent(R){var F,eA;return j(this,void 0,void 0,function*(){(F=this.trtcCloud)===null||F===void 0||F.removeAllListeners(R),(eA=this.trtcCloud)===null||eA===void 0||eA.on(R,(...sA)=>j(this,void 0,void 0,function*(){let _A=hG(R,sA);if(R===r.TUICallEvent.onDeviceChange){const{type:ZA}=_A||{},QA={[I.TRTCDeviceType.TRTCDeviceTypeMi]:lA.MICROPHONE,[I.TRTCDeviceType.TRTCDeviceTypeSpeaker]:lA.SPEAKER,[I.TRTCDeviceType.TRTCDeviceTypeCamera]:lA.CAMERA};if(this._callMediaType!==ry.VIDEO_CALL&&QA[ZA]===lA.CAMERA)return;yield this.getDeviceList(QA[ZA]),this._updateCurrentDevice();const{microphone:PA,speaker:jA,camera:ie}=this._devices,{microphone:Le,speaker:Ne,camera:Be}=this._currentDevices;_A={microphoneList:PA,cameraList:ie,speakerList:jA,currentMicrophone:Le,currentCamera:Be,currentSpeaker:Ne}}JSON.stringify(_A)==="{}"?jl.emit(R):R===r.TUICallEvent.onDeviceChange?jl.emit(r.TUICallEvent.DEVICED_UPDATED,_A):jl.emit(R,_A)}))})}_observerFunction(R,F){const eA=hG(R,F);if(JSON.stringify(eA)==="{}")jl.emit(R);else switch(jl.emit(R,eA),R!==r.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&R!==r.TUICallEvent.USER_VOICE_VOLUME&&this._logger.info(`${R}`,{text:{data:{emitterData:eA}},type:"api"}),R){case r.TUICallEvent.ON_CALL_RECEIVED:jl.emit(r.TUICallEvent.INVITED,eA),this._callMediaType=eA.callMediaType;break;case r.TUICallEvent.ON_CALL_NOT_CONNECTED:jl.emit(r.TUICallEvent.ON_CALL_CANCELED,eA),jl.emit(r.TUICallEvent.CALLING_CANCEL,eA),this._reset();break;case r.TUICallEvent.ON_CALL_END:this._reset()}[r.TUICallEvent.USER_VOICE_VOLUME,r.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED].includes(R)||Fs.info(`callEngine received event: [${R}] ${JSON.stringify(eA)}`)}_reset(){this==null||this._cleanupAvoidRepeatCallState(),this._callMediaType=ry.UNKNOWN}_onDeviceUpdated(R,F){const{microphone:eA,speaker:sA,camera:_A}=R,{microphone:ZA,speaker:QA,camera:PA}=F;this._logger.info("TUICallEvent.DEVICED_UPDATED",{type:"event",text:{data:Object.assign(Object.assign({},R),F)}}),jl.emit(r.TUICallEvent.DEVICED_UPDATED,{microphoneList:eA,cameraList:_A,speakerList:sA,currentMicrophone:ZA,currentCamera:PA,currentSpeaker:QA})}_initLogger(R){this._logger.updateGetReportData(()=>({app:"TUICallEngine-web",version:ut,useragent:{userAgent:window.navigator.userAgent,language:window.navigator.language,platform:window.navigator.platform},platform:R.scene||to,sdkappid:R.SDKAppID,time:+new Date,userid:Cn.userId,uniqueloginid:this._uniqueLoginId,roomid:"",callinfo:{inviteid:"",callrole:"",groupid:"",calltype:"",handledInviteeList:[],unHandledInviteeList:[]},callkitversion:R.callkitVersion||Eo,framework:R.frameWork||Eo,isfromchat:R.tim?"true":"false"}))}getDevicePermission(){return this._permission}_setDevicePermission(R,F){this._permission[R]=F}}Cn.className="TUICallEngine",Cn.isWasmReady=!1,Cn._assetsPath="",U([Fh()],Cn.prototype,"call",null),U([Fh()],Cn.prototype,"groupCall",null),U([Fh()],Cn.prototype,"calls",null),U([Fh()],Cn.prototype,"accept",null),U([Fh()],Cn.prototype,"reject",null),U([Fh()],Cn.prototype,"hangup",null),U([Fh()],Cn.prototype,"inviteUser",null),U([Fh()],Cn.prototype,"joinInGroupCall",null),U([Fh()],Cn.prototype,"join",null),Cn.once("ready",()=>j(void 0,void 0,void 0,function*(){})),Object.defineProperty(r,"TIM",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(r,"TencentCloudChat",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(r,"Rect",{enumerable:!0,get:function(){return I.Rect}}),Object.defineProperty(r,"TRTCBeautyStyle",{enumerable:!0,get:function(){return I.TRTCBeautyStyle}}),Object.defineProperty(r,"TRTCCloud",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(r,"TRTCDeviceInfo",{enumerable:!0,get:function(){return I.TRTCDeviceInfo}}),Object.defineProperty(r,"TRTCDeviceState",{enumerable:!0,get:function(){return I.TRTCDeviceState}}),Object.defineProperty(r,"TRTCDeviceType",{enumerable:!0,get:function(){return I.TRTCDeviceType}}),Object.defineProperty(r,"TRTCLogLevel",{enumerable:!0,get:function(){return I.TRTCLogLevel}}),Object.defineProperty(r,"TRTCScreenCaptureSourceInfo",{enumerable:!0,get:function(){return I.TRTCScreenCaptureSourceInfo}}),Object.defineProperty(r,"TRTCScreenCaptureSourceType",{enumerable:!0,get:function(){return I.TRTCScreenCaptureSourceType}}),Object.defineProperty(r,"TRTCVideoEncParam",{enumerable:!0,get:function(){return I.TRTCVideoEncParam}}),Object.defineProperty(r,"TRTCVideoFillMode",{enumerable:!0,get:function(){return I.TRTCVideoFillMode}}),Object.defineProperty(r,"TRTCVideoMirrorType",{enumerable:!0,get:function(){return I.TRTCVideoMirrorType}}),Object.defineProperty(r,"TRTCVideoResolution",{enumerable:!0,get:function(){return I.TRTCVideoResolution}}),Object.defineProperty(r,"TRTCVideoResolutionMode",{enumerable:!0,get:function(){return I.TRTCVideoResolutionMode}}),Object.defineProperty(r,"TRTCVideoRotation",{enumerable:!0,get:function(){return I.TRTCVideoRotation}}),Object.defineProperty(r,"TRTCVideoStreamType",{enumerable:!0,get:function(){return I.TRTCVideoStreamType}}),Object.defineProperty(r,"TRTCVolumeInfo",{enumerable:!0,get:function(){return I.TRTCVolumeInfo}}),r.TUICallEngine=Cn,r.TUICallType={AUDIO_CALL:1,VIDEO_CALL:2,DEVCIED_CAMERA:"camera",DEVCIED_MICROPHONES:"microphones"},r.VIDEO_ENCODER_MAP=rQ,r.default=Cn,Object.defineProperty(r,"__esModule",{value:!0})})}(vL,vL.exports)),vL.exports}var qo=vEA(),REA=S9();const rU=QW(REA),wEA=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&(wx.getSystemInfoSync().platform==="mac"||wx.getSystemInfoSync().platform==="windows"),T$=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting||wEA,N$=typeof qq<"u"&&typeof qq.getSystemInfoSync=="function"&&!!qq.getSystemInfoSync().fontSizeSetting,G$=typeof tt<"u"&&typeof tt.getSystemInfoSync=="function"&&!!tt.getSystemInfoSync().fontSizeSetting,b$=typeof swan<"u"&&typeof swan.getSystemInfoSync=="function"&&!!swan.getSystemInfoSync().fontSizeSetting,k$=typeof my<"u"&&typeof my.getSystemInfoSync=="function"&&!!my.getSystemInfoSync().fontSizeSetting,L$=typeof jd<"u"&&typeof jd.getSystemInfoSync=="function",U$=typeof uni<"u"&&typeof window>"u",_EA=T$||N$||G$||b$||k$||L$||U$,TEA=typeof uni<"u",NEA=(typeof uni<"u"||typeof window<"u")&&!_EA,oB=N$?qq:G$?tt:b$?swan:k$?my:T$?wx:U$?uni:L$?jd:NEA?window:{};class GEA{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:l,params:I,callback:h}=i,f=this.getService(r);if(console.log(`TUIServiceManager.callService serviceName:${r}, service:`,f),f)return f.onCall(l,I,h)}}class bEA{constructor(){this.extensionMap=new Map}registerExtension(i,r){if(console.log(`TUIExtensionManager.registerExtension extensionID:${i}`),!this.extensionMap.has(i)){const I=[];this.extensionMap.set(i,I)}const l=this.extensionMap.get(i);l.indexOf(r)===-1&&l.push(r)}unregisterExtension(i,r){if(console.log(`TUIExtensionManager.unregisterExtension extensionID:${i}`),this.extensionMap.has(i)){const l=this.extensionMap.get(i),I=l.indexOf(r);I>-1&&l.splice(I,1)}}getExtensionList(i,r){const l=r?`params:${JSON.stringify(r)}`:"";console.log(`TUIExtensionManager.getExtensionList extensionID:${i} ${l}`);let I=[],h=[];if(this.extensionMap.has(i)){I=this.extensionMap.get(i);for(let f=0;f<I.length;f++){const w=I[f].onGetExtension(i,r);h=h.concat(w)}}return h}}const kEA=["vue2","vue3","rn"],Un={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"}}},qZ={[Un.TUITranslatePlugin.SERVICE.NAME]:Math.pow(2,38),[Un.TUIVoiceToTextPlugin.SERVICE.NAME]:Math.pow(2,39),[Un.TUICustomerServicePlugin.SERVICE.NAME]:Math.pow(2,40),[Un.TUIPushPlugin.SERVICE.NAME]:Math.pow(2,41),[Un.TUIChatbotPlugin.SERVICE.NAME]:Math.pow(2,42),[Un.TUIEmojiPlugin.SERVICE.NAME]:Math.pow(2,48)};class xy{constructor(i){this.loginStatusPromise=new Map,this.SDKAppID=0,this.userID="",this.userSig="",this.TUICore=i,this.isOnChatEvent=!1}static getInstance(i){return oB.__$RTC_TUICore__&&oB.__$RTC_TUILogin__?oB.__$RTC_TUILogin__:(!xy.instance&&i&&(xy.instance=new xy(i)),oB.__$RTC_TUILogin__=xy.instance,xy.instance)}login(i){const{SDKAppID:r,userID:l,userSig:I,scene:h="",framework:f}=i,w=Object.assign(Object.assign({},i),{scene:h||this.getStatScene(f)});return this.chat=rU.create(w),this.EVENT=rU.EVENT,this.TYPES=rU.TYPES,this.SDKAppID=r,this.userID=l,this.userSig=I,this.offChatEvent(),this.onChatEvent(),this._addSDKExtensions(),this.loginChat(i)}logout(){return this.chat.logout().then(i=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS),Promise.resolve(i)))}destroy(){return this.chat.destroy().then(i=>(this.userID="",this.userSig="",this.TUICore.notifyEvent(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.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 qZ)this.TUICore.getService(r)&&((i=this.chat.callExperimentalAPI("isFeatureEnabledForStat",qZ[r]))===null||i===void 0||i.catch(()=>{}))}loginChat(i){const{userID:r,userSig:l}=i;return new Promise((I,h)=>{this.chat.login({userID:r,userSig:l}).then(f=>{f.data.repeatLogin&&this.chat.isReady()&&I(f),this.reportPlugin(),this.loginStatusPromise.set("login",{resolve:I,reject:h,imResponse:f})}).catch(f=>{h(f)})})}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(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.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(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.TUILogin.EVENT_SUB_KEY.USER_KICKED_OFFLINE):this.TUICore.notifyEvent(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.TUILogin.EVENT_SUB_KEY.USER_SIG_EXPIRED)}_addSDKExtensions(){Array.isArray(oB.__$RTC_CHAT__)&&oB.__$RTC_CHAT__.length>0&&this.chat.use(oB.__$RTC_CHAT__)}getStatScene(i){return i&&kEA.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,l){const I=this.getKey(i,r);if(console.log(`TUIEventManager.registerEvent eventName:${i} subKey:${r}`),!this.eventMap.has(I)){const f=[];this.eventMap.set(I,f)}const h=this.eventMap.get(I);h.indexOf(l)===-1&&(h.push(l),this.renotify(i,r,l))}unregisterEvent(i,r,l){console.log(`TUIEventManager.unregisterEvent eventName:${i} subKey:${r}`);const I=this.getKey(i,r);if(this.eventMap.has(I)){const h=this.eventMap.get(I),f=h.indexOf(l);f>-1&&h.splice(f,1)}}notifyEvent(i,r,l){const I=this.getKey(i,r),h=l?`params:${JSON.stringify(l)}`:"";console.log(`TUIEventManager.notifyEvent eventName:${i} subKey:${r} ${h}`),this.eventMap.has(I)&&this.eventMap.get(I).forEach(f=>{f.onNotifyEvent(i,r,l)})}getKey(i,r){let l=i;return r&&(l=`${i}-${l}`),l}renotify(i,r,l){if(i===Un.TUILogin.EVENT.LOGIN_STATE_CHANGED&&r===Un.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:I}=xy.getInstance().getContext();I&&I.isReady()&&(l.onNotifyEvent(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS),console.log("TUIEventManager.renotify success."))}}}class lv{constructor(){this.serviceManager=new GEA,this.extensionManager=new bEA,this.eventManager=new LEA}static getInstance(){return oB.__$RTC_TUICore__&&oB.__$RTC_TUILogin__?oB.__$RTC_TUICore__:(lv.instance||(console.log("TUICore.getInstance ok."),lv.instance=new lv),oB.__$RTC_TUICore__=lv.instance,lv.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,l){return this.eventManager.registerEvent(i,r,l)}unregisterEvent(i,r,l){return this.eventManager.unregisterEvent(i,r,l)}notifyEvent(i,r,l){return this.eventManager.notifyEvent(i,r,l)}}console.log("TUICore-Lite.VERSION:1.0.0");const G_=lv.getInstance(),UEA=xy.getInstance(G_);(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 oe=(t=>(t.CALL="call",t.CUSTOM="custom",t))(oe||{}),tr=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.AUDIO=1]="AUDIO",t[t.VIDEO=2]="VIDEO",t))(tr||{}),Vc=(t=>(t.UNKNOWN="unknown",t.CALLEE="callee",t.CALLER="caller",t))(Vc||{}),ss=(t=>(t.IDLE="idle",t.CALLING="calling",t.CONNECTED="connected",t))(ss||{}),y4=(t=>(t.CONTAIN="contain",t.COVER="cover",t.FILL="fill",t))(y4||{}),D4=(t=>(t.RESOLUTION_480P="480p",t.RESOLUTION_720P="720p",t.RESOLUTION_1080P="1080p",t))(D4||{}),F$=(t=>(t.EN="en",t["ZH-CN"]="zh-cn",t.JA_JP="ja_JP",t))(F$||{});const Bu={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"},FEA={unknown:0,audio:1,video:2};var mu=(t=>(t.MICROPHONE="microphone",t.CAMERA="camera",t.SPEAKER="speaker",t))(mu||{}),Iv=(t=>(t[t.FRONT=0]="FRONT",t[t.BACK=1]="BACK",t))(Iv||{}),Sv=(t=>(t.Camera="camera",t.Microphone="microphone",t.SwitchCamera="switchCamera",t.InviteUser="inviteUser",t))(Sv||{}),vU=(t=>(t.Open="open",t.Close="close",t))(vU||{}),gm=(t=>(t.LOCAL="local",t.REMOTE="remote",t))(gm||{}),LY=(t=>(t.LocalInLargeView="local",t.RemoteInLargeView="remote",t))(LY||{}),b_=(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))(b_||{});const KZ={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},jZ={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 O$=(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))(O$||{});const aY={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"},PEA={INITIAL_PUSHER:"initialPusher",NEW_PUSHER:"newPusher"},fA={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",...PEA,...aY,...OEA},xEA="https://web.sdk.qcloud.com/component/TUIKit/assets/call.png",YEA="https://web.sdk.qcloud.com/component/TUIKit/assets/call-video-reverse.svg",VEA=3,JEA=4;var tW=(t=>(t.MAC="mac",t.WIN="win",t))(tW||{}),S4=(t=>(t[t.TUI_CALL_KIT=14]="TUI_CALL_KIT",t[t.TIM_CALL_KIT=15]="TIM_CALL_KIT",t))(S4||{}),iW=(t=>(t[t.NUMBER_ROOM_ID=1]="NUMBER_ROOM_ID",t[t.STRING_ROOM_ID=2]="STRING_ROOM_ID",t))(iW||{});async function HEA(t){if(!t)return!1;try{const i=await new Promise((r,l)=>{const I=new XMLHttpRequest;I.open("HEAD",t,!0),I.onload=()=>r(I),I.onerror=()=>l(I),I.send()});return i.status===200&&i.getResponseHeader("Content-Type")==="audio/mpeg"}catch(i){return console.warn(i),!1}}function UY(t){if(typeof t!="object"||t===null)return t;let i=Array.isArray(t)?[]:{};for(let r in t)t.hasOwnProperty(r)&&(i[r]=UY(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®ionId=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®ionId=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®ionId=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":"認識と翻訳の設定"},FY=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,P$=typeof uni<"u"&&typeof uni>"u",WEA=FY||P$,x$=typeof uni<"u",Y$=function(){return(typeof uni<"u"||typeof window<"u")&&!WEA}(),zEA=function(){return FY?wx:x$?uni:window}(),Zy=Y$&&window&&window.navigator&&window.navigator.userAgent||"",ZEA=/Android/i.test(Zy),XEA=/(?:Windows Phone)/.test(Zy),$EA=/(?:SymbianOS)/.test(Zy),AdA=/iPad/i.test(Zy)||/iPhone/i.test(Zy)||/iPod/i.test(Zy),V$=ZEA||XEA||$EA||AdA,M4=Y$&&!V$,edA=M4&&Zy.includes("Windows NT"),tdA=M4&&Zy.includes("Mac");let J$=class OL{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 OL.instance||(OL.instance=new OL),OL.instance}initEnv(){this.isPC=M4,this.isH5=V$,this.isWeChat=FY,this.isApp=P$&&!FY,this.isUniPlatform=x$,this.isWIN=edA,this.isMAC=tdA}initOfficial(i){this.isOfficial=i===1400187352||i===1400188366}};const v4=function(t){return typeof t===fA.UNDEFINED},R4=function(t){if(typeof t!==fA.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},H$=function(t){return typeof t===fA.STRING},idA=function(t){return typeof t===fA.BOOLEAN},odA=function(t){return t!==null&&(typeof t===fA.NUMBER&&!isNaN(t-0)||typeof t===fA.OBJECT&&t.constructor===Number)};function q$(t){const i=Math.floor(t/3600),r=Math.floor(t%3600/60),l=Math.floor(t%60);let I=i>9?`${i}`:`0${i}`;return I+=r>9?`:${r}`:`:0${r}`,I+=l>9?`:${l}`:`:0${l}`,I}function sdA(t){if(typeof t===fA.STRING)try{return!!JSON.parse(t)}catch(i){return console.debug(i),!1}return!1}const Y1=function(t){return!t||!sdA(t)?t:JSON.parse(t)};function WZ(t){var i;return((i=t?.message)==null?void 0:i.indexOf("is ongoing, please avoid repeated calls"))!==-1}function ndA(t){const{message:i}=t;return i?.indexOf("NotAllowedError: Permission denied")!==-1}function a3(){return Date.now()}const gY=function(t){return typeof t===fA.FUNCTION},rdA=()=>{if(J$.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 adA(t){}function gdA(t,i){return t.replace(/{{\s*(\w+)(\s*,\s*[^}]+)?\s*}}/g,(r,l)=>{const I=l.trim();return i[I]!==void 0?String(i[I]):r})}function cdA(t){window!=null&&window.addEventListener&&window.addEventListener("beforeunload",i=>{const r=(performance?.getEntriesByType("navigation")||[])[0];r&&r.type==="navigate"||t(i)})}const BE={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"},V1={"zh-cn":qEA,en:KEA,ja_JP:jEA};function _Q(t){var i,r;const l=it.getData(oe.CALL,fA.LANGUAGE);let I="";if(H$(t))I=((i=V1?.[l])==null?void 0:i[t])||"";else if(R4(t)){const{key:h,options:f}=t;I=((r=V1?.[l])==null?void 0:r[h])||"",I=gdA(I,f)}return I}class ldA{constructor(){this.defaultStore={callStatus:ss.IDLE,callRole:Vc.UNKNOWN,callMediaType:tr.UNKNOWN,localUserInfo:{userId:""},localUserInfoExcludeVolume:{userId:""},remoteUserInfoList:[],remoteUserInfoExcludeVolumeList:[],callerUserInfo:{userId:""},isGroup:!1,callDuration:"00:00:00",callTips:"",toastInfo:{text:""},isMinimized:!1,enableFloatWindow:!1,bigScreenUserId:"",language:rdA(),isClickable:!1,deviceList:{cameraList:[],microphoneList:[],currentCamera:{},currentMicrophone:{}},showPermissionTip:!1,netWorkQualityList:[],isMuteSpeaker:!1,callID:"",groupID:"",roomID:0,roomIdType:0,cameraPosition:Iv.FRONT,groupCallMembers:[],displayMode:y4.COVER,videoResolution:D4.RESOLUTION_720P,showSelectUser:!1,pusher:{},player:[],isEarPhone:!1,pusherId:"",isShowEnableVirtualBackground:!1,enableVirtualBackground:!1,customUIConfig:{button:{},viewBackground:{},layoutMode:LY.RemoteInLargeView},translate:_Q,isForceUseV2API:!1,transcriberRobotId:null,realtimeMessageList:[],isAITranscriberEnabled:!1,isAITranscriberRunning:!1},this.store=UY(this.defaultStore),this.prevStore=UY(this.defaultStore)}update(i,r){switch(i){case fA.CALL_TIPS:const l=this.getData(i);this.prevStore[i]=l;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((l,I)=>({...l,[I]:this.defaultStore[I]}),{});this.store={...this.defaultStore,...this.store,...r}}}let ET=class PL{constructor(){this.timerId=-1,this.storeMap={[oe.CALL]:new ldA},this.task={}}static getInstance(){return PL.instance||(PL.instance=new PL),PL.instance}watch(i,r,l){this.task[i]||(this.task[i]={});const I=this.task[i];Object.keys(r).forEach(h=>{const f=r[h];I[h]||(I[h]=new Map),I[h].set(f,1);const{notifyRangeWhenWatch:w}=l||{};if(w===fA.ALL&&this.notify(i,h),w===fA.MYSELF){const _=this.getData(i,h);f.call(this,_)}})}unwatch(i,r){if(!this.task[i])return;const l=this.task[i];Object.keys(r).forEach(I=>{l[I].delete(r[I])})}update(i,r,l){var I;(H$(l)||odA(l)||idA(l))&&this.storeMap[i].store[r]===l||((I=this.storeMap[i])==null||I.update(r,l),this.notify(i,r))}getPrevData(i,r){var l;return(l=this.storeMap[i])==null?void 0:l.getPrevData(r)}getData(i,r){var l;return(l=this.storeMap[i])==null?void 0:l.getData(r)}notify(i,r){if(!this.task[i])return;const l=this.task[i];if(l[r]){const I=l[r],h=this.getData(i,r);for(const[f]of I.entries())f.call(this,h)}}reset(i,r=[],l=!1){if(i in this.storeMap){const I=this.storeMap[i];r.length===0&&(r=Object.keys(I?.store)),I.reset(r),l&&r.forEach(h=>{this.notify(i,h)})}}updateStore(i,r){const l=r||oe.CALL;Object.keys(i).forEach(I=>{this.update(l,I,i[I])})}};const IdA=ET.getInstance(),udA=[-1001,-1002,-1101,60003,60004,60006,-1201,3e4,20007,101002],EdA={"-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 fL(t){!t||!(t!=null&&t.code)||ddA(t)}function ddA(t){if(!udA.includes(t.code))return;const i=EdA[t.code.toString()];if(i){let r=_Q(i.key);IdA.update(oe.CALL,fA.MODAL_ERROR,{id:i.id,content:r,title:_Q("error")})}}const CdA="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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",zZ="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//7FGQLAADOJFuGCKACEQQLMMEIAAGcH3acIQAAMw6sA4pQAMSEikv/yOCn/6frj7f/X4/wQDrJoAtoYAHpR1+Af8N//Jf/4Z//+Mb///wg/tJV/V+ocf//4dDb4Wv/9//7FGQGj/BXHdiBoC2QDCPK0BwFsgGEd2gUUoAANY8rgopQAAn//+o+W+Egw+n/+cBv//wCFP///Gv//Ewg3//wi////mBOtfk5EhcRcQf3fTKYrCVYl4JHN6/2VU+W+P/7FGQMAADTI1qGFOACE0QLAMKUAAGgSXK8IoAAL46sQ45QALyE//fCbBFxB/9fobDMv6f8pfg+oLgcED//Dr7//UBR//yv/6HBOv//wpv///ElAAgMAH+vqAy/Chf/6//7FGQGi/BoElwgoDugC6PKwBwCsgF8R2YUdQAAMIirwo5wAP/6gAf//UmMfURwD//MAJP//+A8NLP+n/9BwFp///qIf/rdQv/WBxhIsF2/ymU1CVYbSJQIf2aNBT/1cP/7FEQMAACqFFoGHOAAHAR7IMKoAEHoUXAYIoAAN4ouwwJQAJMo4L+/GGRO5GDSsD6QvjG9fNboTfJPksA//C1e/+mM1DFieDM2ev6P/znv/TTUFWfBvry+rRX//Av//f/7FGQCj/BsHdqHCOAADOO64OKcAAFoeWYGgFZALo8rAFAeyU0FoaSv//8eb//BP//oBxb///mikv//l3//6goCl9xsv//QB///wDBOsgH11f/Lut0AUMOtP//x9gABgP/7FGQHg7BiHVoAIDuiDKO7KBQCsoFMR3ShAPBQLA7rwFAeyAA//w9f//wv8E4XP9PQKb34R//k//6gO///wIPbwsWVCQAH+vqEz/BaM//J//ooLn//zANEjecHf/1CHf/7FGQOD/BhEduo4DugDAO60CgHsgGAd2YFAazAMo8rQKAdmECUIWv//+cP//ygIPB+LdP//4XGHQKLSAB8sp9///gRz/1f/0BL//6gRf///qIW6d9Kj0GAOV6X4woKy//7FGQTgABrEV4lBEAADKO68KOcAAP0jWwYVQAAYxCsQwpQAXAtahrDftmZs3zB+574qD6cse/9MRcBIeDP8bl0EsFxX9dkG+oozcPjTz5K/v8wMJ//8BHT///QS//oA//7FGQID5BmHVsHHKAADWOq8OOIAAF0d2QGgFZAKQ7r1KAKyFl//6O3///KF8x//UG+///qE2NPghkC//nhE///xf/H//qAn//1Acd///8d//KgUb//5H///8g+jtSyH//7FGQOAABfHdqFFKAADKPLAKOIAAQMjWgYc4AIXJHs1w4gAHFZYQsxfPm9an5UMLFJFwLHfTz+qkfhO5MzGhOKAwIIAB/+eWEJo1J//8fTL//6D/EW4ur/+oa9H/+oCv/7FGQED5BpHdsHHKAADGAba+AIAAFcd2YGgLZAKo6rgKAeyD////OKgAACgCAPywNf5D/5H/+weG//+MQ/8LHf/ygKW//+RlvQFP/fKAv///CIhp///K//rOB7v//4h//7FGQKgABlHVoFHOAADYO60KacAAPgjWoYdQAISRGsgw4gAP//+Fm0fS6nKwoLipAoLfN6ZzRJELiHPPAuT6+iakSfJZnKgP/5YuIHOM/1+iY2D/T/g1+P8JX/+YA////7FGQCj/BlHdwHFOAADIPLAOEcAAF4d2YFAPZAMg7qwNAqyPmhCX///8o//9Rf//4UZ///+KyK//yoTv//oAYJ3xAd//RBYf/+6yOUX8EZ6gg//wL//+ERD/5DR//EAv/7FGQHgABdEdwNFOAADWPLEKKUAANkkWgYJoAAPhAtQwQgAN///UL///+Ii+v/tYFRj/flWZZWHNXD2qMEgv1f7sY/I7+SCBv/+CmZW/1+hMbP+v/Q3xtd//GuzhD/m//7FGQDgACKFF2GFOAADSKLcMCIAAGsdXAcc4AAMo6sA5RQAJTOBDGuCbP5XTq//ObA/9dePkxv8toyv/84Hf//1CQNHV///lf/54d//+YBgVv//+FK//jMJBhn//UEyP/7FEQFAABrElkFKaAADKO7UKK0AAJsUW4YU4AAUxHtwwSgAblH/X//OAX//0A7K///8xf/8Jjgi5R/vymdisa4NSJX/+XAn/4Xu/vxdvjMX4bJIv1/6HfLfI3EVf/7o//7FGQBgAB3FF6GCKAADoKLYMEIAAGwSW68JQAANQkrg4pQAIL/iOmgIsFxf/Rr0//hnByv/rrx9Mb/TIdF4CAA//oBt//8JA2O/9f/9QCdP/9EA4KX/0u0Kv/6AR//+v/7FEQDAABsEdiFFUAAC4I7MKE0AAI4UWwYI4AASBAtwwJwAKgDgpBhz/mf/8F//9YbQ8HHP+n/8zB2Cv/jmUyoFVhPhMz/0a//84f+OY9lQlWBdITJ//7/La7/+6OC///7FGQCgAB9IF4GCKAAD6QLUMCIAAGgd2wcdQAAMo7rg45wAIn9BxYZr//9/jtf/6mwP/66jpNjfr/1b47av/5wO1//84ETf//+Uf/+oFv//wjLaf//xOsAf8cAcIMWsf/7FGQED/BqAF6gARigDIO7FRwCsgGMd2oUVQAAKwjsgoogABu/pd/6gEAB//YEG//+KT/g3//sAP//zwdN///8o3/8YEz//+QI//w26c3jECBQkKa20K5mLhhYIVjP5f/7FGQJgADFFFuGFUAAEWKbMMKUAAGwR2gcdoAAMQjrg45wAHFX1Ay4r/+EHNT/prqL4tgnL7bT209o//jwGmtq//UDwoOf+R//ngH///gvI//O9iLeAc///sCEGjqZ/v/7FGQFj/BcElkAC1KACkI7NAgFZgFwR2gUdoAANQjrgo5QAKA/4AAHtW/qE4Rf/9FCX//5mGMs/+Q//QwAl//+iAIG//DequnoujOwN/XieaP6g8wckXFx37c/2/JmF//7FGQMAADaI1uGCOACEyRrMMEUAEGwd2ocUoAAMw7sQ4ogADGixn/8Ndgb/6a8HxJ47//7/KduGzy+vV+oV//+Ij///+gkC//ygJ//+Cb///qUV03/+UAt///CgL/Ew//7FGQFj/BaHdkBQC2QC0PK0BwFsgGMdWoUcoAIMQ7sAo5QAD/+UA3//6nt8KB+n/+ga///AYn///UJsf/zwDv//qN///9Ag6r6a7FdHCDeR5TORWEnF7uCafX0RWQ0Wf/7FGQLgADqI1qGFOACEURrQMEIAEGUdWwccQAAM47sA4RQAPHZ5+JR0P/8K5HBf9fom3/T1+L+b4mef/T3B36f/qIFP///wv/9R///xJv//+gSHej/+Viaf//UKivlH//7FGQFj/BWHdkBoBWQDOPKsDQHsgGgd2gUcoAAMg7rwo4gAP/oA5G//9Y/mvsTBj/+mwOf//qDAm3//9B//8UBc///4V////BjVf+04Suzk9G2ymPw1WR4Jsn/XfL/M//7FGQKgAC8I9oGFUACFCRrAMOUAAJIUXAYU4AAPpAtAwQgAOWZn/8KOPMVb/XXQWxTFf/p5wyr5/hv+vVxBwpl/lczKCRhKsS/9enR/+DOzgv/14vNiP1/8nxOlf/48P/7FGQBj/BgEdqHHUAAC+O68OUIAAGYd2wUc4AANg7sAo5wAC9v//hIJj3/mv/54F///4sT///7D//zwdf//guIN///yrf/qKwgMb//wr///6Djqv/xCaaXKP/ppPhnF//7FEQGAACTFFsGHOAAE6O7YMCcAAHgS3QYIQAAOgluwwQgAOJT/4Y+op/+GTf/KZTUJcNpEp//T0Ic7ngQ//RwkEyf0+pcee2/BXfu//ZwUzf6fUuPPbfiXPbq//iQCv/7FGQCCfBpHdqHFOAADWOq4OUUAAF8d2qgFEoALQjrQAOJQFb//mgr///8o3/6HAr///CD///+NflUKoAz///ED9f//zjSoQN//6BhH/wW703//B8Dka3//8VurAAMAP/7FGQHD7BWHVoAQDswDEOrGAgCsgFIR24AAOEANI7sAAAIIAP/8Bb//4dvhKhPTt/80KM3/wXqBN//6g///16AQh69aqw3G/6/5LEHT//+Qf/+YBKt//6Y7T/x8M//yv/7FGQNj/BiHdmADRLQDGO6wDQHsgFsd2IGgLZAMQ7rQNAeyIQP//6wg0fhRv/1mQLN///kgf+B5ar/+4S//+gFF//hzs//j4g///CTf//+EfMf83FZYDzhSL86ui0F+f/7FGQTAABcEdsFFKAADOO68KOUAAPkjWwYdQAAVBGsgwpQAQBawuFYDq/7TfrP4+LkRyRyr/8LYRr/0+NLg6Tfr0/NJzlKyxa42v6c8KFwOMLjHrxdn4zEPgqSLBOuzf/7FGQKgAC8FVuGHUAAFsKK8MOcAAF4A3CcAQAoMYBqQ4AAABE+n/8TlxQXC3/NyligMxJw2zb4osIIuKrAH+c4H/83QUFBcgrxKCrlHvg0DT//iIO1TEFNRTMuMTAwVQ==";class hdA{constructor(){this._bellContext=null,this._isMuteBell=!1,this._calleeBellFilePath=zZ,this._callRole=Vc.UNKNOWN,this._callStatus=ss.IDLE,this._isPlaying=!1,this._bellContext=new Audio,this._bellContext.loop=!0}setBellSrc(){try{let i=CdA;this._callRole===Vc.CALLEE&&(i=this._calleeBellFilePath||zZ),this._bellContext.src=i}catch(i){console.warn(`${fA.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=v4(i.isMuteBell)?this._isMuteBell:i.isMuteBell}async play(){try{if(this._callStatus!==ss.CALLING)return;if(this._callStatus!==ss.CALLING||this._isPlaying){console.warn(`${fA.PREFIX}play skipped, callStatus: ${this._callStatus}, isPlaying: ${this._isPlaying}`);return}if(this._isPlaying=!0,this.setBellSrc(),this._callRole===Vc.CALLEE&&!this._isMuteBell){if(!this._isPlaying||this._callStatus!==ss.CALLING)return;await this._bellContext.play();return}if(this._callRole===Vc.CALLER){if(!this._isPlaying||this._callStatus!==ss.CALLING)return;await this._bellContext.play();return}}catch(i){console.warn(`${fA.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(`${fA.PREFIX}Failed to stop audio file, ${r}`)}}async setBellMute(i){this._callStatus!==ss.CALLING&&this._callRole!==Vc.CALLEE||(i?await this.stop():await this.play())}destroy(){try{this._isMuteBell=!1,this._calleeBellFilePath="",this._callRole=Vc.UNKNOWN,this._callStatus=ss.IDLE,this._isPlaying=!1,this._bellContext.pause(),this._bellContext=null}catch(i){console.warn(`${fA.PREFIX}Failed to destroy, ${i}`)}}_delay(i){return new Promise(r=>setTimeout(r,i))}_delayCallback(i,r){setTimeout(i,r)}}function nI(){return function(t,i,r){const l=r.value,I=new Set;return r.value=async function(...h){var f,w;if(I.has(this)){console.warn(`${fA.PREFIX}previous ${i}() is ongoing, please avoid repeated calls`),(w=(f=this==null?void 0:this.getTUICallEngineInstance())==null?void 0:f.reportLog)==null||w.call(f,{name:"TUICallKit.avoidRepeatedCall.fail",data:{name:i},error:`previous ${i}() is ongoing`});return}try{I.add(this);const _=await l.apply(this,h);return I.delete(this),_}catch(_){throw I.delete(this),_}},r.value.clearCallState=function(h){I.delete(h)},r}}const la=ET.getInstance();function cY(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 BdA(t,i){var r,l,I,h,f;let w=cY(t,fA.LOCAL_VIDEO);try{if(!i)return w;const _=await i.getMyProfile(),b=la?.getData(oe.CALL,fA.LOCAL_USER_INFO);return _?.code===0&&(w={...w,...b,userId:(r=_?.data)==null?void 0:r.userID,nick:(l=_?.data)==null?void 0:l.nick,avatar:(I=_?.data)==null?void 0:I.avatar,displayUserInfo:((h=_?.data)==null?void 0:h.nick)||((f=_?.data)==null?void 0:f.userID)}),w}catch(_){return console.error(`${fA.PREFIX}getMyProfile failed, error: ${_}.`),w}}async function RU(t,i){let r=t.map(l=>cY(l));try{if(!i)return r;if(i!=null&&i.getFriendProfile){const l=await i.getFriendProfile({userIDList:t});if(l.code===0){const{friendList:I=[],failureUserIDList:h=[]}=l.data;let f=h.map(U=>U.userID);if(h.length>0){const U=await i.getUserProfile({userIDList:h.map(j=>j.userID)});U?.code===0&&(f=U?.data||[])}const w=la?.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST),_=I.map(U=>U.userID),b=f.map(U=>U.userID);r=t.map(U=>{var j,IA,nA,mA,lA,cA,TA;const WA=cY(U),Ee=_.indexOf(U),de=b.indexOf(U);let Pe="",pe="",gt="",pt="";Ee!==-1&&(Pe=((j=I[Ee])==null?void 0:j.remark)||"",pe=((nA=(IA=I[Ee])==null?void 0:IA.profile)==null?void 0:nA.nick)||"",gt=Pe||pe||WA.userId||"",pt=((lA=(mA=I[Ee])==null?void 0:mA.profile)==null?void 0:lA.avatar)||""),de!==-1&&(pe=((cA=f[de])==null?void 0:cA.nick)||"",gt=pe||WA.userId||"",pt=((TA=f[de])==null?void 0:TA.avatar)||"");const We=w.find(Dt=>Dt.userId===U)||{};return{...WA,...We,remark:Pe,nick:pe,displayUserInfo:gt,avatar:pt}})}return r}else{const l=await i.getUserProfile({userIDList:t}),I=la?.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);return r=t.map(h=>{const f=cY(h),w=I.find(b=>b.userId===h)||{},_=(l.data||[]).find(b=>b.userID===h)||{};return{...f,...w,nick:_?.nick||"",displayUserInfo:_?.nick||h,avatar:_?.avatar||""}}),r}}catch(l){return console.error(`${fA.PREFIX}getRemoteUserProfile failed, error: ${l}.`),r}}function J1(){const t=la.getData(oe.CALL,fA.CALL_STATUS);if(t===ss.IDLE)return Bu.IDLE;const i=la.getData(oe.CALL,fA.IS_GROUP);if(t===ss.CALLING)return i?Bu.DIALING_GROUP:Bu.DIALING_C2C;const r=la.getData(oe.CALL,fA.CALL_MEDIA_TYPE);return i?r===tr.AUDIO?Bu.CALLING_GROUP_AUDIO:Bu.CALLING_GROUP_VIDEO:r===tr.AUDIO?Bu.CALLING_C2C_AUDIO:Bu.CALLING_C2C_VIDEO}async function QdA(t,i,r,l){let I=[];try{const h=await i.getGroupMemberList({groupID:t,count:r,offset:l});if(h.code===0)return h.data.memberList||I}catch(h){return console.error(`${fA.PREFIX}getGroupMember failed, error: ${h}.`),I}}async function pdA(t,i){let r={};try{return(await i.getGroupProfile({groupID:t})).data.group||r}catch(l){return console.warn(`${fA.PREFIX}getGroupProfile failed, error: ${l}.`),r}}function K$(t,i){t===0&&i?(la.update(oe.CALL,fA.ROOM_ID,i),la.update(oe.CALL,fA.ROOM_ID_TYPE,iW.STRING_ROOM_ID)):(la.update(oe.CALL,fA.ROOM_ID,t),la.update(oe.CALL,fA.ROOM_ID_TYPE,iW.NUMBER_ROOM_ID))}function HC(t){return t||{}}function g3(t){if(t.length===0)return;let i=la.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);t.forEach(r=>{i=i.filter(l=>l.userId!==r)}),la.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,i),la.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,i)}function c3(t){t?.getDeviceList("speaker").then(i=>{const r=la.getData(oe.CALL,fA.DEVICE_LIST),l=i?.[0]||{};la.update(oe.CALL,fA.DEVICE_LIST,{...r,speakerList:i,currentSpeaker:l})}).catch(i=>{console.error(`${fA.PREFIX}updateSpeakerList failed, error: ${JSON.stringify(i)}.`)}),la.getData(oe.CALL,fA.CALL_MEDIA_TYPE)===tr.VIDEO&&t?.getDeviceList("camera").then(i=>{const r=la.getData(oe.CALL,fA.DEVICE_LIST),l=i?.[0]||{};la.update(oe.CALL,fA.DEVICE_LIST,{...r,cameraList:i,currentCamera:l})}).catch(i=>{console.error(`${fA.PREFIX}updateCameraList failed, error: ${i}.`)}),t?.getDeviceList("microphones").then(i=>{const r=la.getData(oe.CALL,fA.DEVICE_LIST),l=i?.[0]||{};la.update(oe.CALL,fA.DEVICE_LIST,{...r,microphoneList:i,currentMicrophone:l})}).catch(i=>{console.error(`${fA.PREFIX}updateMicrophoneList failed, error: ${i}.`)})}function l3(t,i,r){let l="";if(ndA(t)){i===tr.AUDIO&&(l=BE.NO_MICROPHONE_DEVICE_PERMISSION),i===tr.VIDEO&&(l=BE.NO_CAMERA_DEVICE_PERMISSION);const I=r?.getDevicePermission();I!=null&&I.audio||la.update(oe.CALL,fA.SHOW_PERMISSION_TIP,!0),l&&la.update(oe.CALL,fA.TOAST_INFO,{content:l,type:fA.ERROR}),console.error(`${fA.PREFIX}call failed, error: ${t.message}.`)}}function sv(t,i){let r=la.getData(oe.CALL,fA.LOCAL_USER_INFO);i===fA.AUDIO&&(r={...r,isAudioAvailable:t}),i===fA.VIDEO&&(r={...r,isVideoAvailable:t}),la.update(oe.CALL,fA.LOCAL_USER_INFO,r),la.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,r)}const oW=class{static generateTaskID(){return this.currentTaskID++}static run(i=fA.TIMEOUT,r,l){i===fA.INTERVAL?l={delay:2e3,count:0,backgroundTask:!0,...l}:l={delay:2e3,count:0,backgroundTask:!0,...l},R4(r)&&(l={...l,...r}),gY(i)&&(r=i,i=fA.TIMEOUT);const I={taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,taskName:i,callback:r,...l};return this.taskMap.set(I.taskID,I),i===fA.INTERNAL?this.interval(I):this.timeout(I),I.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:l,onVisibilitychange:I}=this.taskMap.get(i);return r&&clearInterval(r),l&&clearTimeout(l),I&&document.removeEventListener("visibilitychange",I),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}};oW.taskMap=new Map,oW.currentTaskID=1;let ZZ=oW;const mdA=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(R4(t)){for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i))return!1;return!0}return!1},I3="_local_user_id";class hv{constructor(){this._viewConfig={viewBackground:{local:{},remote:{}}},this._isSetViewBackgroundConfig={remote:!1,local:!1},this._tuiCallEngine=null,this._tuiStore=null}static getInstance(){return hv.instance||(hv.instance=new hv),hv.instance}_updateViewBackground(){var i,r,l;const I=(i=this._tuiStore)==null?void 0:i.getData(oe.CALL,fA.CUSTOM_UI_CONFIG),{userId:h}=(r=this._tuiStore)==null?void 0:r.getData(oe.CALL,fA.LOCAL_USER_INFO);Object.keys(this._viewConfig.viewBackground.remote).includes(h)&&delete this._viewConfig.viewBackground.remote[h],(l=this._tuiStore)==null||l.update(oe.CALL,fA.CUSTOM_UI_CONFIG,{...I,viewBackground:{...this._viewConfig.viewBackground.remote,...this._viewConfig.viewBackground.local}})}setEngineInstance(i){this._tuiCallEngine=i}setTUIStore(i){this._tuiStore=i}updateViewBackgroundUserId(i){var r,l;if(i==="local"){const{userId:I}=(r=this._tuiStore)==null?void 0:r.getData(oe.CALL,fA.LOCAL_USER_INFO);if(Object.keys(this._viewConfig.viewBackground.remote).includes(I)&&(delete this._viewConfig.viewBackground.remote[I],this._updateViewBackground()),!this._isSetViewBackgroundConfig.local)return;const h=this._viewConfig.viewBackground.local,f=h[I]||h[I3];h[I]=h[I3],this._viewConfig.viewBackground.local={[I]:f},this._updateViewBackground()}else{let I=this._viewConfig.viewBackground.remote;this._isSetViewBackgroundConfig.remote&&Object.keys(I).includes("*")&&(((l=this._tuiStore)==null?void 0:l.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST)).map(h=>h.userId).forEach(h=>{Object.keys(I).includes(h)||(I[h]=I["*"])}),this._viewConfig.viewBackground.remote=I,this._updateViewBackground())}}hideFeatureButton(i){var r,l,I,h,f;(l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallKit.hideFeatureButton.start",data:{buttonName:i}});const w=(I=this._tuiStore)==null?void 0:I.getData(oe.CALL,fA.CUSTOM_UI_CONFIG);(f=this._tuiStore)==null||f.update(oe.CALL,fA.CUSTOM_UI_CONFIG,{...w,button:{...w.button,[i]:{...((h=w.button)==null?void 0:h[i])||{},show:!1}}})}setLocalViewBackgroundImage(i){var r,l,I;(l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallKit.setLocalViewBackgroundImage.start",data:{url:i}}),this._isSetViewBackgroundConfig.local=!0;let{userId:h}=(I=this._tuiStore)==null?void 0:I.getData(oe.CALL,fA.LOCAL_USER_INFO);mdA(h)&&(h=I3),this._viewConfig.viewBackground.local={[h]:i},this._updateViewBackground()}setRemoteViewBackgroundImage(i,r){var l,I;(I=(l=this._tuiCallEngine)==null?void 0:l.reportLog)==null||I.call(l,{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,l;(l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallKit.setLayoutMode.start",data:{layoutMode:i}});const I=this._tuiStore.getData(oe.CALL,fA.CUSTOM_UI_CONFIG);this._tuiStore.update(oe.CALL,fA.CUSTOM_UI_CONFIG,{...I,layoutMode:i})}setCameraDefaultState(i){var r,l;(l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallKit.setCameraDefaultState.start",data:{isOpen:i}});const I=UY(this._tuiStore.getData(oe.CALL,fA.CUSTOM_UI_CONFIG));Object.keys(I.button).includes(Sv.Camera)||(I.button[Sv.Camera]={}),I.button[Sv.Camera].state=i?vU.Open:vU.Close,this._tuiStore.update(oe.CALL,fA.CUSTOM_UI_CONFIG,I)}}const H1=ET.getInstance(),nv={audioCall:()=>"Voice call",videoCall:()=>"Video call",switchToAudio:()=>"Switch audio call",switchToVideo:()=>"Switch video call",hangup:({callDuration:t})=>`${_Q("Call duration")}:${t}`};class O_{constructor(i){var r,l,I;this._callService=i.callService,G_.registerEvent(Un.TUILogin.EVENT.LOGIN_STATE_CHANGED,Un.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS,this),(r=Un.TUIChat)!=null&&r.EVENT&&G_.registerEvent((l=Un.TUIChat.EVENT)==null?void 0:l.CHAT_STATE_CHANGED,(I=Un.TUIChat.EVENT_SUB_KEY)==null?void 0:I.CHAT_OPENED,this),G_.registerService(Un.TUICalling.SERVICE.NAME,this),G_.registerExtension(Un.TUIChat.EXTENSION.INPUT_MORE.EXT_ID,this)}static getInstance(i){return O_.instance||(O_.instance=new O_(i)),O_.instance}callTUIService(i){const{message:r}=i||{};G_.callService({serviceName:Un.TUIChat.SERVICE.NAME,method:Un.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST,params:{message:r}})}onGetExtension(i,r){var l,I;if(i===Un.TUIChat.EXTENSION.INPUT_MORE.EXT_ID){if((I=(l=this._callService.getTUICallEngineInstance())==null?void 0:l.reportLog)==null||I.call(l,{name:"TUICallKit.onGetExtension",data:{extensionID:i,params:r}}),v4(r))return[];if([Un.TUIChat.TYPE.ROOM,Un.TUIChat.TYPE.CUSTOMER_SERVICE].includes(r.chatType))return[];let h=[];const f={weight:1e3,text:"语音通话",icon:xEA,data:{name:"voiceCall"},listener:{onClicked:async _=>await this._handleTUICoreOnClick(_,_.type||tr.AUDIO)}},w={weight:900,text:"视频通话",icon:YEA,data:{name:"videoCall"},listener:{onClicked:async _=>await this._handleTUICoreOnClick(_,_.type||tr.VIDEO)}};return r!=null&&r.chatType?h=[f,w]:(!(r!=null&&r.filterVoice)&&h.push(f),!(r!=null&&r.filterVideo)&&h.push(w)),h}}async onCall(i,r){i===Un.TUICalling.SERVICE.METHOD.START_CALL&&await this._handleTUICoreOnClick(r,r.type)}async onNotifyEvent(i,r,l){var I,h,f,w,_,b,U,j;try{if(i===Un.TUILogin.EVENT.LOGIN_STATE_CHANGED)if(r===Un.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS){const{chat:IA,userID:nA,userSig:mA,SDKAppID:lA}=UEA.getContext();await((I=this._callService)==null?void 0:I.init({tim:IA,userID:nA,userSig:mA,sdkAppID:lA,isFromChat:!0,component:S4.TIM_CALL_KIT})),(h=this._callService)==null||h.setIsFromChat(!0),(f=this._callService)==null||f.setLogLevel(O$.NORMAL),this._addListenChatEvent()}else r===Un.TUILogin.EVENT_SUB_KEY.USER_LOGOUT_SUCCESS&&(this._removeListenChatEvent(),await((w=this._callService)==null?void 0:w.destroyed()));if((_=Un.TUIChat)!=null&&_.EVENT&&i===Un.TUIChat.EVENT.CHAT_STATE_CHANGED&&r===Un.TUIChat.EVENT_SUB_KEY.CHAT_OPENED){if((b=this._callService)==null||b.setCurrentGroupId(l?.groupID||""),H1.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE)return;const IA=(U=this._callService)==null?void 0:U.getCurrentGroupId(),nA=IA?await this.getGroupAttributes((j=this._callService)==null?void 0:j.getTim(),IA):{};await this.updateStoreBasedOnGroupAttributes(nA)}}catch(IA){console.error(`${fA.PREFIX}TUICore onNotifyEvent failed, error: ${IA}.`)}}async updateStoreBasedOnGroupAttributes(i){var r,l,I,h;(I=(l=(r=this._callService)==null?void 0:r.getTUICallEngineInstance())==null?void 0:l.reportLog)==null||I.call(l,{name:"TUICallKit.getJoinGroupCallInfo.success",data:{groupAttributes:i}});try{const{call_id:f="",group_id:w="",room_id:_=0,room_id_type:b=0,call_media_type:U=fA.UNKNOWN,user_list:j}=i[fA.INNER_ATTR_KIT_INFO]?JSON.parse(i[fA.INNER_ATTR_KIT_INFO]):{};let IA=(j||[]).map(mA=>mA.userid);IA.length>0&&(IA=await RU(IA,(h=this._callService)==null?void 0:h.getTim()));const nA={[fA.CALL_ID]:f,[fA.GROUP_ID]:w,[fA.GROUP_CALL_MEMBERS]:IA,[fA.ROOM_ID]:_,[fA.CALL_MEDIA_TYPE]:FEA[U],[fA.ROOM_ID_TYPE]:b};H1.updateStore(nA,oe.CALL)}catch(f){console.warn(`${fA.PREFIX}updateStoreBasedOnGroupAttributes fail, error: ${f}`)}}async getGroupAttributes(i,r){if(!r)return{};try{const{data:l}=await i.getGroupAttributes({groupID:r,keyList:[]});return l?.groupAttributes||{}}catch(l){return console.warn(`${fA.PREFIX}getGroupAttributes fail: ${l}`),{}}}isLineBusy(i){var r;const l=Y1(i.payload.data),I=Y1(l?.data);return I?.line_busy==="line_busy"||I?.line_busy===""||((r=I?.data)==null?void 0:r.message)==="lineBusy"}async getCallKitMessage(i,r){var l,I,h,f;const w=Y1(i.payload.data);if(w?.businessID!==1)return{};let _="";const b=Y1(w?.data),U=b.call_type,j=w.inviteeList,IA=(l=b?.data)==null?void 0:l.inviter,nA=H1.getData(oe.CALL,fA.LOCAL_USER_INFO).userId,mA=IA===nA,lA=(I=b?.data)==null?void 0:I.cmd;switch(w?.actionType){case b_.INVITE:{_=nv[lA]({callDuration:q$(b?.call_end)});break}case b_.CANCEL_INVITE:_=mA?"Call Cancel":"Other Side Cancel";break;case b_.ACCEPT_INVITE:["switchToAudio","switchToVideo"].includes(lA)?_=(h=nv?.[lA])==null?void 0:h.call(nv):_=_Q("Answered");break;case b_.REJECT_INVITE:this.isLineBusy(i)?_=mA?"Line Busy":"Other Side Line Busy":_=mA?"Other Side Decline":"Decline";break;case b_.INVITE_TIMEOUT:["switchToAudio","switchToVideo"].includes(lA)?_=(f=nv?.[lA])==null?void 0:f.call(nv):_=mA?"Other Side No Answer":"No answer";break}return{messageCardContent:_,callMediaType:U,inviteeList:j}}_addListenChatEvent(){var i,r;if(!((i=this._callService)!=null&&i.getTim())){console.warn(`${fA.PREFIX}add tim event listener failed, tim is empty.`);return}(r=this._callService)==null||r.getTim().on(rU.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}_removeListenChatEvent(){var i,r;if(!((i=this._callService)!=null&&i.getTim())){console.warn(`${fA.PREFIX}remove tim event listener failed, tim is empty.`);return}(r=this._callService)==null||r.getTim().off(rU.EVENT.GROUP_ATTRIBUTES_UPDATED,this._handleGroupAttributesUpdated,this)}async _handleTUICoreOnClick(i,r){var l;try{const{groupID:I,userIDList:h=[],version:f="",...w}=i;await((l=this._callService)==null?void 0:l.calls({chatGroupID:I,userIDList:h,type:r,...w}))}catch(I){i!=null&&i.version||console.warn("Please upgrade to the latest Chat UIKit components."),console.debug(I)}}async _handleGroupAttributesUpdated(i){var r;if(H1.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE)return;const l=i?.data||{},{groupID:I="",groupAttributes:h={}}=l;I===((r=this._callService)==null?void 0:r.getCurrentGroupId())&&await this.updateStoreBasedOnGroupAttributes(h)}}const fdA=0,ydA=1,XZ=2;function DdA({retryFunction:t,settings:i,onError:r,onRetrying:l,onRetryFailed:I,context:h}){return function(...f){const w=i.retries||5;let _=0,b=-1,U=fdA;const j=async(IA,nA)=>{const mA=this;try{const lA=await t.apply(mA,f);_=0,IA(lA)}catch(lA){const cA=()=>{clearTimeout(b),_=0,U=XZ,nA(lA)},TA=()=>{U!==XZ&&_<w?(_++,U=ydA,gY(l)&&l.call(mA,_,cA),b=setTimeout(()=>{b=-1,j(IA,nA)},v4(i.timeout)?1e3:i.timeout)):(cA(),gY(I)&&I.call(mA,lA))};gY(r)?r.call(mA,lA,TA,nA,f):TA()}};return new Promise(j)}}function SdA(t){return function(i,r,l){const{retries:I=5,timeout:h=2e3,onError:f,onRetrying:w,onRetryFailed:_}=t,b=DdA({retryFunction:l.value,settings:{retries:I,timeout:h},onError:f,onRetrying:w,onRetryFailed:_,context:null});return l.value=function(...U){return b.apply(this,U)},l}}var MdA=Object.defineProperty,vdA=Object.getOwnPropertyDescriptor,RdA=(t,i,r,l)=>{for(var I=vdA(i,r),h=t.length-1,f;h>=0;h--)(f=t[h])&&(I=f(i,r,I)||I);return I&&MdA(i,r,I),I};const nn=ET.getInstance(),wdA=hv.getInstance(),j$=class xL{constructor(i){this._callService=i.callService}static getInstance(i){return xL.instance||(xL.instance=new xL(i)),xL.instance}addListenTuiCallEngineEvent(){var i,r;const l=(i=this._callService)==null?void 0:i.getTUICallEngineInstance();if(!l){console.warn(`${fA.PREFIX}add engine event listener failed, engine is empty.`);return}l.on(qo.TUICallEvent.ERROR,this._handleError,this),l.on(qo.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(r=qo.TUICallEvent)!=null&&r.ON_CALL_BEGIN&&l.on(qo.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),l.on(qo.TUICallEvent.USER_ENTER,this._handleUserEnter,this),l.on(qo.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),l.on(qo.TUICallEvent.REJECT,this._handleInviteeReject,this),l.on(qo.TUICallEvent.NO_RESP,this._handleNoResponse,this),l.on(qo.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),l.on(qo.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),l.on(qo.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),l.on(qo.TUICallEvent.SDK_READY,this._handleSDKReady,this),l.on(qo.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),l.on(qo.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),qo.TUICallEvent.CALL_MESSAGE&&l.on(qo.TUICallEvent.CALL_MESSAGE,this._handleCallMessage,this),qo.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&l.on(qo.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),l.on(qo.TUICallEvent.CALLING_END,this._handleCallingEnd,this),l.on(qo.TUICallEvent.CALL_TYPE_CHANGED,this._handleCallTypeChange,this),l.on(qo.TUICallEvent.USER_VOICE_VOLUME,this._handleUserVoiceVolume,this),l.on(qo.TUICallEvent.DEVICED_UPDATED,this._handleDeviceUpdate,this),l.on(qo.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),l.on(qo.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this)}removeListenTuiCallEngineEvent(){var i,r;const l=(i=this._callService)==null?void 0:i.getTUICallEngineInstance();l.off(qo.TUICallEvent.ERROR,this._handleError,this),l.off(qo.TUICallEvent.ON_CALL_RECEIVED,this._handleNewInvitationReceived,this),(r=qo.TUICallEvent)!=null&&r.ON_CALL_BEGIN&&l.off(qo.TUICallEvent.ON_CALL_BEGIN,this._handleOnCallBegin,this),l.off(qo.TUICallEvent.USER_ENTER,this._handleUserEnter,this),l.off(qo.TUICallEvent.USER_LEAVE,this._handleUserLeave,this),l.off(qo.TUICallEvent.REJECT,this._handleInviteeReject,this),l.off(qo.TUICallEvent.NO_RESP,this._handleNoResponse,this),l.off(qo.TUICallEvent.LINE_BUSY,this._handleLineBusy,this),l.off(qo.TUICallEvent.ON_CALL_NOT_CONNECTED,this._handleCallNotConnected,this),l.off(qo.TUICallEvent.ON_USER_INVITING,this._handleOnUserInviting,this),l.off(qo.TUICallEvent.SDK_READY,this._handleSDKReady,this),l.off(qo.TUICallEvent.KICKED_OUT,this._handleKickedOut,this),l.off(qo.TUICallEvent.MESSAGE_SENT_BY_ME,this._messageSentByMe,this),qo.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED&&l.off(qo.TUICallEvent.ON_USER_NETWORK_QUALITY_CHANGED,this._handleNetworkQuality,this),l.off(qo.TUICallEvent.CALLING_END,this._handleCallingEnd,this),l.off(qo.TUICallEvent.CALL_TYPE_CHANGED,this._handleCallTypeChange,this),l.off(qo.TUICallEvent.USER_VOICE_VOLUME,this._handleUserVoiceVolume,this),l.off(qo.TUICallEvent.DEVICED_UPDATED,this._handleDeviceUpdate,this),l.off(qo.TUICallEvent.USER_VIDEO_AVAILABLE,this._handleUserVideoAvailable,this),l.off(qo.TUICallEvent.USER_AUDIO_AVAILABLE,this._handleUserAudioAvailable,this)}_callerChangeToConnected(){var i,r,l;const I=nn.getData(oe.CALL,fA.CALL_ROLE);nn.getData(oe.CALL,fA.CALL_STATUS)===ss.CALLING&&I===Vc.CALLER&&((r=(i=this._callService)==null?void 0:i._bellContext)==null||r.stop(),nn.update(oe.CALL,fA.CALL_STATUS,ss.CONNECTED),(l=this._callService)==null||l.startTimer())}_unNormalEventsManager(i,r){var l,I;console.log(`${fA.PREFIX}${r} event data: ${JSON.stringify(i)}.`);const h=nn.getData(oe.CALL,fA.IS_GROUP),f=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);switch(r){case qo.TUICallEvent.REJECT:case qo.TUICallEvent.LINE_BUSY:{const{userID:w}=HC(i);let _=r===qo.TUICallEvent.REJECT?BE.OTHER_SIDE_REJECT_CALL:BE.OTHER_SIDE_LINE_BUSY,b="";h&&(b=(f.find(U=>U.userId===w)||{}).displayUserInfo||w,_=r===qo.TUICallEvent.REJECT?BE.REJECT_CALL:BE.IN_BUSY),nn.update(oe.CALL,fA.TOAST_INFO,{content:{key:_,options:{userList:b}}}),w&&g3([w]),nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST).length===0&&((l=this._callService)==null||l._resetCallStore());break}case qo.TUICallEvent.NO_RESP:{const{userIDList:w=[]}=HC(i),_=h?BE.TIMEOUT:BE.CALL_TIMEOUT,b=w.map(U=>(f.find(j=>j.userId===U)||{}).displayUserInfo||U);nn.update(oe.CALL,fA.TOAST_INFO,{content:{key:_,options:{userList:b.join()}}}),w.length>0&&g3(w);break}case qo.TUICallEvent.ON_CALL_NOT_CONNECTED:{(I=this._callService)==null||I._resetCallStore();break}}}_handleError(i){var r;const{code:l,message:I}=i||{},h=Object.values(KZ).indexOf(l);let f="";if(h!==-1){const w=Object.keys(KZ)[h];f=_Q(jZ[w]),f&&nn.update(oe.CALL,fA.TOAST_INFO,{content:jZ[w],type:fA.ERROR})}(r=this._callService)==null||r.executeExternalAfterCalling(),console.error(`${fA.PREFIX}_handleError, errorCode: ${l}; errorMessage: ${f||I}.`)}async _handleNewInvitationReceived(i){var r,l,I,h;console.log(`${fA.PREFIX}onCallReceived event data: ${JSON.stringify(i)}.`);const{callerId:f="",callMediaType:w,inviteData:_={},calleeIdList:b=[],chatGroupID:U="",roomID:j,strRoomID:IA}=HC(i),nA=nn.getData(oe.CALL,fA.LOCAL_USER_INFO),mA=[f,...b.filter(de=>de!==nA.userId)],lA=w||_.callType,cA=lA===tr.AUDIO?BE.CALLEE_CALLING_AUDIO_MSG:BE.CALLEE_CALLING_VIDEO_MSG;let TA={[fA.CALL_ROLE]:Vc.CALLEE,[fA.IS_GROUP]:!!U||b.length>1,[fA.CALL_STATUS]:ss.CALLING,[fA.CALL_MEDIA_TYPE]:lA,[fA.CALL_TIPS]:cA,[fA.CALLER_USER_INFO]:{userId:f},[fA.GROUP_ID]:U};K$(j,IA),nn.updateStore(TA,oe.CALL),(r=this._callService)==null||r.executeExternalBeforeCalling(),(l=this._callService)!=null&&l.statusChanged&&((I=this._callService)==null||I.statusChanged({oldStatus:Bu.IDLE,newStatus:Bu.BE_INVITED}));const WA=await RU(mA,(h=this._callService)==null?void 0:h.getTim()),[Ee]=WA.filter(de=>de.userId===f);WA.length>0&&nn.updateStore({[fA.REMOTE_USER_INFO_LIST]:WA,[fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:WA,[fA.CALLER_USER_INFO]:{userId:f,nick:Ee?.nick||"",avatar:Ee?.avatar||"",displayUserInfo:Ee?.remark||Ee?.nick||f}},oe.CALL)}async _handleOnCallBegin(i){var r,l;(l=(r=this._callService)==null?void 0:r._bellContext)==null||l.stop(),this._callerChangeToConnected(),nn.update(oe.CALL,fA.CALL_TIPS,{text:"answered",duration:2e3}),await this._callService.openMicrophone(),console.log(`${fA.PREFIX}accept event data: ${JSON.stringify(i)}.`)}async _handleUserEnter(i){const{userID:r,data:l}=HC(i);this._callerChangeToConnected(),await this._addUserToRemoteUserInfoList(r);let I=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);I=I.map(h=>(h.userId===r&&(h.isEnter=!0),h)),I.length>0&&(nn.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,I),nn.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,I),wdA.updateViewBackgroundUserId("remote")),console.log(`${fA.PREFIX}userEnter event data: ${JSON.stringify(i)}.`)}_handleUserLeave(i){console.log(`${fA.PREFIX}userLeave event data: ${JSON.stringify(i)}.`);const{data:r,userID:l}=HC(i);if(nn.getData(oe.CALL,fA.IS_GROUP)){const I=(nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST).find(h=>h.userId===l)||{}).displayUserInfo||l;nn.update(oe.CALL,fA.TOAST_INFO,{content:{key:BE.END_CALL,options:{userList:I}}})}l&&g3([l])}_handleInviteeReject(i){this._unNormalEventsManager(i,qo.TUICallEvent.REJECT)}_handleNoResponse(i){this._unNormalEventsManager(i,qo.TUICallEvent.NO_RESP)}_handleLineBusy(i){this._unNormalEventsManager(i,qo.TUICallEvent.LINE_BUSY)}_handleCallNotConnected(i){var r,l,I;(l=(r=this==null?void 0:this._callService)==null?void 0:r._cleanupAvoidRepeatCallState)==null||l.call(r),(I=this._callService)==null||I.executeExternalAfterCalling(),this._unNormalEventsManager(i,qo.TUICallEvent.ON_CALL_NOT_CONNECTED)}async _handleOnUserInviting(i){const{userID:r}=HC(i);r&&r!==nn.getData(oe.CALL,fA.LOCAL_USER_INFO).userId&&await this._addUserToRemoteUserInfoList(r)}_handleCallingEnd(i){var r,l;console.log(`${fA.PREFIX}callEnd event data: ${JSON.stringify(i)}.`),(r=this._callService)==null||r.executeExternalAfterCalling(),(l=this._callService)==null||l._resetCallStore()}async _handleSDKReady(i){var r;let l=nn.getData(oe.CALL,fA.LOCAL_USER_INFO);l=await BdA(l.userId,(r=this._callService)==null?void 0:r.getTim()),nn.update(oe.CALL,fA.LOCAL_USER_INFO,l),nn.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,l)}_handleKickedOut(i){var r,l,I;console.log(`${fA.PREFIX}kickOut event data: ${JSON.stringify(i)}.`),(r=this._callService)!=null&&r.kickedOut&&((l=this._callService)==null||l.kickedOut(i)),nn.update(oe.CALL,fA.CALL_TIPS,BE.KICK_OUT),(I=this._callService)==null||I._resetCallStore()}_messageSentByMe(i){var r,l;const I=i?.data;(r=this._callService)!=null&&r.onMessageSentByMe&&((l=this._callService)==null||l.onMessageSentByMe(I))}_handleCallMessage(i){const r=HC(i);this._callService._chatCombine.callTUIService({message:r})}_handleCallTypeChange(i){const{newCallType:r,type:l}=HC(i);nn.update(oe.CALL,fA.CALL_MEDIA_TYPE,r||l)}_handleNetworkQuality(i){const{networkQualityList:r=[]}=HC(i);nn.update(oe.CALL,fA.NETWORK_STATUS,r);const l=nn.getData(oe.CALL,fA.IS_GROUP),I=nn.getData(oe.CALL,fA.LOCAL_USER_INFO);if(nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST),!l&&r.find(h=>I?.userId===h?.userId&&h?.quality>=JEA)){nn.update(oe.CALL,fA.CALL_TIPS,BE.LOCAL_NETWORK_IS_POOR);return}}async _startRemoteView(i){var r;if(!i){console.warn(`${fA.PREFIX}_startRemoteView userID is empty`);return}if(!document.getElementById(i))return console.warn(`${fA.PREFIX}_startRemoteView can't find HTMLElement sid: ${i}`),Promise.reject();try{const l=nn.getData(oe.CALL,fA.DISPLAY_MODE);await((r=this._callService)==null?void 0:r.getTUICallEngineInstance().startRemoteView({userID:i,videoViewDomID:i,options:{objectFit:l}}))}catch(l){return console.error(`${fA.PREFIX}_startRemoteView error: ${l}.`),Promise.reject(l)}}_setRemoteUserInfoAudioVideoAvailable(i,r,l){let I=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);I=I.map(h=>{if(h.userId===l){if(r===fA.AUDIO)return{...h,isAudioAvailable:i};if(r===fA.VIDEO)return{...h,isVideoAvailable:i}}return h}),I.length>0&&(nn.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,I),nn.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,I))}async _handleUserVideoAvailable(i){const{userID:r,isVideoAvailable:l}=HC(i);console.log(`${fA.PREFIX}_handleUserVideoAvailable event data: ${JSON.stringify(i)}.`),this._setRemoteUserInfoAudioVideoAvailable(l,fA.VIDEO,r);try{l&&await this._startRemoteView(r)}catch(I){console.error(`${fA.PREFIX}_startRemoteView failed, error: ${I}.`)}}_handleUserAudioAvailable(i){const{userID:r,isAudioAvailable:l}=HC(i);console.log(`${fA.PREFIX}_handleUserAudioAvailable event data: ${JSON.stringify(i)}.`),this._setRemoteUserInfoAudioVideoAvailable(l,fA.AUDIO,r)}_handleUserVoiceVolume(i){try{const{volumeMap:r}=HC(i);if((r||[]).length===0)return;const l=nn.getData(oe.CALL,fA.LOCAL_USER_INFO);let I=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);const[h]=r.filter(_=>_.userId===l.userId),f=r.reduce((_,b)=>b.userId!==l.userId?{..._,[b.userId]:b.audioVolume}:_,{});l.volume=h.audioVolume,I=I.map(_=>({..._,volume:f[_.userId]}));const w={[fA.LOCAL_USER_INFO]:l,[fA.REMOTE_USER_INFO_LIST]:I};nn.updateStore(w,oe.CALL)}catch(r){console.debug(r)}}_handleDeviceUpdate(i){const{cameraList:r,microphoneList:l,speakerList:I,currentCamera:h,currentMicrophone:f,currentSpeaker:w}=i;nn.update(oe.CALL,fA.DEVICE_LIST,{cameraList:r,microphoneList:l,speakerList:I,currentCamera:h,currentMicrophone:f,currentSpeaker:w})}async _addUserToRemoteUserInfoList(i){var r;let l=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);if(!l.find(I=>I?.userId===i)){l.push({userId:i}),nn.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,l),nn.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,l);const[I]=await RU([i],(r=this._callService)==null?void 0:r.getTim());l=nn.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST),l.forEach(h=>{h?.userId===i&&(h=Object.assign(h,I))}),nn.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,l),nn.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,l)}}};RdA([SdA({retries:5,timeout:200,onRetrying(t){console.warn(`${fA.PREFIX}_startRemoteView, retrying [${t}]`)}})],j$.prototype,"_startRemoteView");let _dA=j$;const qC=ET.getInstance();class P_{constructor(i){this.eventListeners=new Map,this.getTranscriberManager=()=>{var r,l;const I=(r=this._callService)==null?void 0:r.getTUICallEngineInstance();if(!I)return console.warn(`${fA.PREFIX}Failed to get call engine instance.`),null;const h=(l=I.getTRTCCloudInstance)==null?void 0:l.call(I);return!h||!h.getAITranscriberManager?(console.warn(`${fA.PREFIX}AI Transcriber not supported.`),null):h.getAITranscriberManager()},this.triggerEvent=(r,l)=>{const I=this.eventListeners.get(r);I&&I.forEach(h=>{try{h(l)}catch(f){console.error(`${fA.PREFIX}Error in event callback for ${r}:`,f)}})},this.startRealtimeTranscriber=async r=>{const l=this.getTranscriberManager();if(!l)return null;try{const I=await l.startRealtimeTranscriber(r);return qC.update(oe.CALL,fA.TRANSCRIBER_ROBOT_ID,I),qC.update(oe.CALL,fA.IS_AI_TRANSCRIBER_RUNNING,!0),I}catch(I){throw console.error(`${fA.PREFIX}startRealtimeTranscriber error:`,I),I}},this.stopRealtimeTranscriber=async()=>{const r=this.getTranscriberManager();if(r)try{const l=qC.getData(oe.CALL,fA.TRANSCRIBER_ROBOT_ID);l&&await r.stopRealtimeTranscriber(l),qC.update(oe.CALL,fA.TRANSCRIBER_ROBOT_ID,null),qC.update(oe.CALL,fA.IS_AI_TRANSCRIBER_RUNNING,!1)}catch(l){throw console.error(`${fA.PREFIX}stopRealtimeTranscriber error:`,l),l}},this.updateRealTimeTranscriber=async r=>{const l=this.getTranscriberManager();if(!l)return null;try{const I=qC.getData(oe.CALL,fA.TRANSCRIBER_ROBOT_ID);I&&await l.stopRealtimeTranscriber(I);const h=await l.startRealtimeTranscriber(r);return qC.update(oe.CALL,fA.TRANSCRIBER_ROBOT_ID,h),h}catch(I){throw console.error(`${fA.PREFIX}updateRealTimeTranscriber error:`,I),I}},this.subscribeEvent=(r,l)=>{var I;this.eventListeners.has(r)||this.eventListeners.set(r,[]),(I=this.eventListeners.get(r))==null||I.push(l)},this.unsubscribeEvent=(r,l)=>{const I=this.eventListeners.get(r);if(I){const h=I.indexOf(l);h>-1&&I.splice(h,1),I.length===0&&this.eventListeners.delete(r)}},this.onReceiveTranscriberMessage=(r,l)=>{const{segmentId:I}=l;let h=qC.getData(oe.CALL,fA.REALTIME_MESSAGE_LIST)||[];const f=h.findIndex(w=>w.segmentId===I);f>=0?h[f]=l:h.push(l),qC.update(oe.CALL,fA.REALTIME_MESSAGE_LIST,[...h]),this.triggerEvent("onReceiveTranscriberMessage",{roomId:r,message:l})},this.onRealtimeTranscriberStarted=(r,l,I)=>{this.triggerEvent("onRealtimeTranscriberStarted",{roomId:r,transcriberRobotId:l,sourceLanguage:I})},this.onRealtimeTranscriberStopped=(r,l)=>{this.triggerEvent("onRealtimeTranscriberStopped",{roomId:r,transcriberRobotId:l})},this.onRealtimeTranscriberError=(r,l,I,h)=>{this.triggerEvent("onRealtimeTranscriberError",{roomId:r,transcriberRobotId:l,error:I,errorMessage:h})},this.bindEvent=()=>{const r=this.getTranscriberManager();if(r)try{r.addListener({onReceiveTranscriberMessage:this.onReceiveTranscriberMessage,onRealtimeTranscriberStarted:this.onRealtimeTranscriberStarted,onRealtimeTranscriberStopped:this.onRealtimeTranscriberStopped,onRealtimeTranscriberError:this.onRealtimeTranscriberError})}catch(l){console.error(`${fA.PREFIX}bindEvent error:`,l)}},this.unbindEvent=()=>{const r=this.getTranscriberManager();if(r)try{r.removeListener({onReceiveTranscriberMessage:this.onReceiveTranscriberMessage,onRealtimeTranscriberStarted:this.onRealtimeTranscriberStarted,onRealtimeTranscriberStopped:this.onRealtimeTranscriberStopped,onRealtimeTranscriberError:this.onRealtimeTranscriberError})}catch(l){console.error(`${fA.PREFIX}unbindEvent error:`,l)}},this.reset=()=>{qC.update(oe.CALL,fA.TRANSCRIBER_ROBOT_ID,null),qC.update(oe.CALL,fA.REALTIME_MESSAGE_LIST,[]),qC.update(oe.CALL,fA.IS_AI_TRANSCRIBER_ENABLED,!1),this.eventListeners.clear()},this._callService=i.callService}static getInstance(i){return P_.instance||(P_.instance=new P_(i)),P_.instance}}var TdA=Object.defineProperty,NdA=Object.getOwnPropertyDescriptor,rI=(t,i,r,l)=>{for(var I=NdA(i,r),h=t.length-1,f;h>=0;h--)(f=t[h])&&(I=f(i,r,I)||I);return I&&TdA(i,r,I),I};const Ko=J$.getInstance(),it=ET.getInstance(),Gy=hv.getInstance();Gy.setTUIStore(it);const $Z="4.4.6",A6="vue3",Dl=class YL{constructor(){this._aiAssistant=null,this._tim=null,this._TUICore=null,this._timerId=-1,this._startTimeStamp=a3(),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,l,I,h,f,w;try{const _={callRole:it.getData(oe.CALL,fA.CALL_ROLE),callStatus:it.getData(oe.CALL,fA.CALL_STATUS)};if((l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallkit._handleCallStatusChange.start",data:{bellParams:_}}),this._bellContext.setBellProperties(_),i===ss.CALLING)(I=this==null?void 0:this._bellContext)==null||I.play();else{if((f=(h=this._tuiCallEngine)==null?void 0:h.reportLog)==null||f.call(h,{name:"TUICallkit._bellContext.stop"}),i===ss.CONNECTED){const b=it.getData(oe.CALL,fA.IS_GROUP),U=it.getData(oe.CALL,fA.CALL_MEDIA_TYPE),j=it.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST),IA=b?Bu.DIALING_GROUP:Bu.DIALING_C2C;it.update(oe.CALL,fA.CALL_TIPS,""),this.statusChanged&&this.statusChanged({oldStatus:IA,newStatus:J1()}),!b&&U===tr.VIDEO&&this.switchScreen(j[0].domId)}await((w=this==null?void 0:this._bellContext)==null?void 0:w.stop())}}catch(_){console.warn(`${fA.PREFIX}handleCallStatusChange, ${_}.`)}},console.log(`${fA.PREFIX}version: ${$Z}`),this._wasmReadyPromise=new Promise(i=>{this._wasmReadyResolve=i}),this._loadWasm(),this._watchTUIStore(),this._engineEventHandler=_dA.getInstance({callService:this}),this._chatCombine=O_.getInstance({callService:this}),this._aiAssistant=P_.getInstance({callService:this}),cdA(this.handleExceptionExit.bind(this))}static getInstance(){return YL.instance||(YL.instance=new YL),YL.instance}_loadWasm(){qo.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,l,I,h,f,w;try{if(this._tuiCallEngine)return;let{userID:_,tim:b,userSig:U,sdkAppID:j,SDKAppID:IA,isFromChat:nA,component:mA=S4.TUI_CALL_KIT}=i;this._TUICore&&(j=this._TUICore.SDKAppID,b=this._TUICore.tim),this._tim=b,console.log(`${fA.PREFIX}init sdkAppId: ${j||IA}, userId: ${_}`);let lA="web";lA=`${lA}-${A6}`,this._tuiCallEngine=qo.TUICallEngine.createInstance({tim:b,SDKAppID:j||IA,frameWork:A6,language:6,callkitVersion:$Z,isFromChat:nA||!1,component:mA,scene:lA}),Gy.setEngineInstance(this._tuiCallEngine),this._addListenTuiCallEngineEvent(),this._bellContext&&((r=this._bellContext)==null||r.destroy()),this._bellContext=new hdA,it.update(oe.CALL,fA.LOCAL_USER_INFO,{userId:_}),it.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{userId:_}),Gy.updateViewBackgroundUserId("local"),(l=this._aiAssistant)==null||l.bindEvent(),await this._tuiCallEngine.login({userID:_,userSig:U,assetsPath:""});const cA=it.getData(oe.CALL,fA.CUSTOM_UI_CONFIG),TA=(h=(I=this._tuiCallEngine)==null?void 0:I.getTRTCCloudInstance)==null?void 0:h.call(I);TA?.callExperimentalAPI(JSON.stringify({api:"enableAutoPlayDialog",params:{enable:0}})),(w=(f=this._tuiCallEngine)==null?void 0:f.reportLog)==null||w.call(f,{name:"TUICallkit.init",data:{uiConfig:cA}})}catch(_){throw console.error(`${fA.PREFIX}init failed, error: ${_}.`),_}}async destroyed(){var i,r,l;try{this._isInitialized=!1;const I=it.getData(oe.CALL,fA.CALL_STATUS);if(I!==ss.IDLE)throw new Error(`please destroyed when status is idle, current status: ${I}`);this._tuiCallEngine&&(this._removeListenTuiCallEngineEvent(),await this._tuiCallEngine.destroyInstance(),this._tuiCallEngine=null),(i=this._aiAssistant)==null||i.unbindEvent(),(r=this._aiAssistant)==null||r.reset(),(l=this._bellContext)==null||l.destroy(),this._bellContext=null}catch(I){throw console.error(`${fA.PREFIX}destroyed failed, error: ${I}.`),I}}async inviteUser(i){if(it.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE)try{const{userIDList:r}=i;let l=await RU(r,this.getTim());const I=it.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST);if(r.filter(h=>!I.some(f=>f.userId===h)).length===0)return;it.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,[...I,...l]),it.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[...I,...l]),this._tuiCallEngine&&await this._tuiCallEngine.inviteUser(i)}catch(r){console.error(`${fA.PREFIX}inviteUser failed, error: ${r}.`)}}async calls(i){if(it.getData(oe.CALL,fA.CALL_STATUS)===ss.IDLE)try{it.update(oe.CALL,fA.PUSHER_ID,fA.NEW_PUSHER);const{userIDList:r,type:l,chatGroupID:I,offlinePushInfo:h}=i;if(it.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE)return;const f=r.map(_=>({userId:_}));await this._updateCallStoreBeforeCall(l,f,I),this.executeExternalBeforeCalling(),i.offlinePushInfo={...this.getDefaultOfflinePushInfo(),...h};const w=await this._tuiCallEngine.calls(i);await this._updateCallStoreAfterCall(r,w)}catch(r){fL(r),this._handleCallError(r,"calls")}}async join(i){if(it.getData(oe.CALL,fA.CALL_STATUS)!==ss.CONNECTED)try{it.update(oe.CALL,fA.PUSHER_ID,fA.NEW_PUSHER);const r={[fA.CALL_ROLE]:Vc.CALLEE,[fA.IS_GROUP]:!0,[fA.CALL_STATUS]:ss.CONNECTED,[fA.CALL_MEDIA_TYPE]:it.getData(oe.CALL,fA.CALL_MEDIA_TYPE)||tr.AUDIO};it.updateStore(r,oe.CALL);const l=await this._tuiCallEngine.join(i);it.update(oe.CALL,fA.IS_CLICKABLE,!0),this.startTimer(),c3(this._tuiCallEngine),await this._tuiCallEngine.setVideoQuality(it.getData(oe.CALL,fA.VIDEO_RESOLUTION));const I=it.getData(oe.CALL,fA.LOCAL_USER_INFO);it.update(oe.CALL,fA.LOCAL_USER_INFO,{...I,isEnter:!0}),it.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...I,isEnter:!0}),await this.openMicrophone(),sv(!0,fA.AUDIO)}catch(r){fL(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(F$).includes(i)&&(it.update(oe.CALL,fA.LANGUAGE,i),it.update(oe.CALL,fA.TRANSLATE,_Q.bind(null)))}enableFloatWindow(i){it.update(oe.CALL,fA.ENABLE_FLOAT_WINDOW,i)}async setSelfInfo(i){const{nickName:r,avatar:l}=i;try{await this._tuiCallEngine.setSelfInfo({nickName:r,avatar:l})}catch(I){console.error(`${fA.PREFIX}setSelfInfo failed, error: ${I}.`)}}async enableVirtualBackground(i){it.update(oe.CALL,fA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND,i)}async enableAIVoice(i){try{await this._tuiCallEngine.enableAIVoice(i),console.log(`${fA.PREFIX}enableAIVoice: ${i}.`)}catch(r){throw console.error(`${fA.PREFIX}enableAIVoice failed, error: ${r}.`),r}}async enableAITranscriber(i){try{it.update(oe.CALL,fA.IS_AI_TRANSCRIBER_ENABLED,i),console.log(`${fA.PREFIX}enableAITranscriber: ${i}.`)}catch(r){throw console.error(`${fA.PREFIX}enableAITranscriber failed, error: ${r}.`),r}}async setCallingBell(i){let r=!0;if(r=await HEA(i),!r){console.warn(`${fA.PREFIX}setCallingBell failed, filePath: ${i}.`);return}const l={calleeBellFilePath:i};this._bellContext.setBellProperties(l)}async enableMuteMode(i){try{const r={isMuteBell:i};this._bellContext.setBellProperties(r),await this._bellContext.setBellMute(i)}catch(r){console.warn(`${fA.PREFIX}enableMuteMode failed, error: ${r}.`)}}hideFeatureButton(i){Gy.hideFeatureButton(i)}setLocalViewBackgroundImage(i){Gy.setLocalViewBackgroundImage(i)}setRemoteViewBackgroundImage(i,r){Gy.setRemoteViewBackgroundImage(i,r)}setLayoutMode(i){Gy.setLayoutMode(i)}setCameraDefaultState(i){Gy.setCameraDefaultState(i)}callExperimentalAPI(i){var r,l,I,h;const f=JSON.parse(i);if(f===i)return;const{api:w,params:_}=f;if(!(!w||!_))try{switch(w){case"setAssetsPath":(l=(r=qo.TUICallEngine)==null?void 0:r.callExperimentalAPI)==null||l.call(r,i);break;case"forceUseV2API":const{enable:b}=_;it.update(oe.CALL,fA.IS_FORCE_USE_V2_API,!!b);break;default:break}}catch(b){(h=(I=this._tuiCallEngine)==null?void 0:I.reportLog)==null||h.call(I,{name:"TUICallKit.callExperimentalAPI.fail",data:{error:b}})}}async accept(){var i,r,l,I;const h=it.getData(oe.CALL,fA.CALL_STATUS);if((r=(i=this._tuiCallEngine)==null?void 0:i.reportLog)==null||r.call(i,{name:"TUICallKit.accept.start",data:{callStatus:h}}),h!==ss.CONNECTED)try{it.update(oe.CALL,fA.CALL_STATUS,ss.CONNECTED),c3(this._tuiCallEngine);const f=await this._tuiCallEngine.accept();await this._handleAcceptResponse(f)}catch(f){if((I=(l=this._tuiCallEngine)==null?void 0:l.reportLog)==null||I.call(l,{name:"TUICallKit.accept.fail",level:"error",error:f}),WZ(f))return;fL(f),l3(f,tr.AUDIO,this._tuiCallEngine),this._resetCallStore()}}async _handleAcceptResponse(i){var r,l;if(i){(l=this._chatCombine)==null||l.callTUIService({message:(r=i?.data)==null?void 0:r.message}),it.update(oe.CALL,fA.IS_CLICKABLE,!0),this.startTimer();const I=it.getData(oe.CALL,fA.CALL_MEDIA_TYPE),h=this._getFeatureButtonDefaultState(Sv.Camera)===vU.Close;I===tr.VIDEO&&!h&&await this.openCamera(fA.LOCAL_VIDEO),await this._tuiCallEngine.setVideoQuality(it.getData(oe.CALL,fA.VIDEO_RESOLUTION));const f=it.getData(oe.CALL,fA.LOCAL_USER_INFO);it.update(oe.CALL,fA.LOCAL_USER_INFO,{...f,isEnter:!0}),it.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...f,isEnter:!0}),sv(!0,fA.AUDIO)}}async hangup(){if(it.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE){try{const i=await this._tuiCallEngine.hangup();i?.forEach(r=>{var l,I;r?.code===0&&((I=this._chatCombine)==null||I.callTUIService({message:(l=r?.data)==null?void 0:l.message}))})}catch(i){fL(i),console.debug(i)}this._resetCallStore()}}async reject(){var i,r;if(it.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE){try{const l=await this._tuiCallEngine.reject();l?.code===0&&((r=this._chatCombine)==null||r.callTUIService({message:(i=l?.data)==null?void 0:i.message}))}catch(l){fL(l),console.debug(l)}this._resetCallStore()}}async openCamera(i){try{if(Ko.isH5||Ko.isWeChat){const r=it.getData(oe.CALL,fA.CAMERA_POSITION)===Iv.FRONT;this._tuiCallEngine.openCamera(i,r)}else await this._tuiCallEngine.openCamera(i);sv(!0,fA.VIDEO)}catch(r){l3(r,tr.VIDEO,this._tuiCallEngine),console.error(`${fA.PREFIX}openCamera error: ${r}.`)}}async closeCamera(){try{await this._tuiCallEngine.closeCamera(),sv(!1,fA.VIDEO)}catch(i){console.error(`${fA.PREFIX}closeCamera error: ${i}.`)}}async openMicrophone(){try{await this._tuiCallEngine.openMicrophone(),sv(!0,fA.AUDIO)}catch(i){console.error(`${fA.PREFIX}openMicrophone failed, error: ${i}.`)}}async closeMicrophone(){try{await this._tuiCallEngine.closeMicrophone(),sv(!1,fA.AUDIO)}catch(i){console.error(`${fA.PREFIX}closeMicrophone failed, error: ${i}.`)}}unMuteSpeaker(){var i,r;try{const l=(r=(i=this._tuiCallEngine)==null?void 0:i.getTRTCCloudInstance)==null?void 0:r.call(i);l&&(l.muteAllRemoteAudio(!1),it.update(oe.CALL,fA.IS_MUTE_SPEAKER,!1))}catch(l){console.error(`${fA.PREFIX}unMuteSpeaker failed, error: ${l}.`)}}muteSpeaker(){var i,r;try{const l=(r=(i=this._tuiCallEngine)==null?void 0:i.getTRTCCloudInstance)==null?void 0:r.call(i);l&&(l.muteAllRemoteAudio(!0),it.update(oe.CALL,fA.IS_MUTE_SPEAKER,!0))}catch(l){console.error(`${fA.PREFIX}muteSpeaker failed, error: ${l}.`)}}switchScreen(i){i&&it.update(oe.CALL,fA.BIG_SCREEN_USER_ID,i)}async switchCallMediaType(){var i,r;try{const l=it.getData(oe.CALL,fA.CALL_MEDIA_TYPE);if(l===tr.AUDIO){console.warn(`${fA.PREFIX}switchCallMediaType failed, ${l} not support.`);return}const I=await this._tuiCallEngine.switchCallMediaType(tr.AUDIO);I?.code===0&&((r=this._chatCombine)==null||r.callTUIService({message:(i=I?.data)==null?void 0:i.message})),it.update(oe.CALL,fA.CALL_MEDIA_TYPE,tr.AUDIO);const h=it.getData(oe.CALL,fA.IS_GROUP)?Bu.CALLING_GROUP_VIDEO:Bu.CALLING_C2C_VIDEO,f=J1();this.statusChanged&&this.statusChanged({oldStatus:h,newStatus:f})}catch(l){console.error(`${fA.PREFIX}switchCallMediaType failed, error: ${l}.`)}}async switchCamera(){const i=it.getData(oe.CALL,fA.CAMERA_POSITION)===Iv.BACK?Iv.FRONT:Iv.BACK;try{await this._tuiCallEngine.switchCamera(i),it.update(oe.CALL,fA.CAMERA_POSITION,i)}catch(r){console.error(`${fA.PREFIX}_switchCamera failed, error: ${r}.`)}}async setBlurBackground(i){try{await this._tuiCallEngine.setBlurBackground(i?VEA:0),it.update(oe.CALL,fA.ENABLE_VIRTUAL_BACKGROUND,i)}catch(r){console.error(`${fA.PREFIX}_setBlurBackground failed, error: ${r}.`)}}async switchDevice(i){try{await this._tuiCallEngine.switchDevice(i)}catch(r){console.error(`${fA.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:l,onMinimized:I,onMessageSentByMe:h,kickedOut:f,statusChanged:w}=i;r&&(this.beforeCalling=r),l&&(this.afterCalling=l),I&&(this.onMinimized=I),h&&(this.onMessageSentByMe=h),f&&(this.kickedOut=f),w&&(this.statusChanged=w)}toggleMinimize(){const i=it.getData(oe.CALL,fA.IS_MINIMIZED);it.update(oe.CALL,fA.IS_MINIMIZED,!i),console.log(`${fA.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,l;try{const I=it.getData(oe.CALL,fA.CALL_STATUS),h=it.getData(oe.CALL,fA.CALL_ROLE);if((l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallkit.handleExceptionExit",data:{callStatus:I,callRole:h}}),I===ss.IDLE)return;I===ss.CALLING&&(h===Vc.CALLER?await(this==null?void 0:this.hangup()):await(this==null?void 0:this.reject())),I===ss.CONNECTED&&await(this==null?void 0:this.hangup()),this==null||this._resetCallStore()}catch(I){console.error(`${fA.PREFIX} handleExceptionExit failed, error: ${I}.`)}i&&(i.returnValue="")}setVideoDisplayMode(i){it.update(oe.CALL,fA.DISPLAY_MODE,i)}async setVideoResolution(i){var r;try{if(!i)return;it.update(oe.CALL,fA.VIDEO_RESOLUTION,i),await((r=this._tuiCallEngine)==null?void 0:r.setVideoQuality(i))}catch(l){console.warn(`${fA.PREFIX}setVideoResolution failed, error: ${l}.`)}}startTimer(){this._timerId===-1&&(this._startTimeStamp=a3(),this._timerId=ZZ.run(fA.TIMEOUT,this._updateCallDuration.bind(this),{delay:1e3}))}_handleCallError(i,r){if(this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),!WZ(i))throw l3(i,tr.AUDIO,this._tuiCallEngine),console.error(`${fA.PREFIX}${r} failed, error: ${i}.`),this._resetCallStore(),i}async _updateCallStoreBeforeCall(i,r,l){let I=BE.CALLER_CALLING_MSG;(l||it.getData(oe.CALL,fA.IS_MINIMIZED)||r.length>1)&&(I=BE.CALLER_GROUP_CALLING_MSG),console.warn(`呼叫前更新 call status: ${!!l||r.length>1}, ${l}, ${JSON.stringify(r)}`);let h={[fA.CALL_MEDIA_TYPE]:i,[fA.CALL_ROLE]:Vc.CALLER,[fA.REMOTE_USER_INFO_LIST]:r,[fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:r,[fA.IS_GROUP]:!!l||r.length>1,[fA.CALL_TIPS]:I,[fA.GROUP_ID]:l};it.updateStore({...h,[fA.CALL_STATUS]:ss.CALLING},oe.CALL),this.statusChanged&&this.statusChanged({oldStatus:Bu.IDLE,newStatus:l||r.length>1?Bu.DIALING_GROUP:Bu.DIALING_C2C}),c3(this._tuiCallEngine);const f=await RU(r.map(w=>w.userId),this.getTim());f.length>0&&(it.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,f),it.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,f))}async _updateCallStoreAfterCall(i,r){var l,I;if(r){it.update(oe.CALL,fA.IS_CLICKABLE,!0),K$(r?.roomID,r?.strRoomID);const h=it.getData(oe.CALL,fA.CALL_MEDIA_TYPE);if(r.code===0){(I=this._chatCombine)==null||I.callTUIService({message:(l=r?.data)==null?void 0:l.message});try{await this._tuiCallEngine.setVideoQuality(it.getData(oe.CALL,fA.VIDEO_RESOLUTION))}catch(_){console.warn(`${fA.PREFIX}setVideoQuality failed, error: ${_}.`)}}else{this._resetCallStore();return}const f=this._getFeatureButtonDefaultState(Sv.Camera)===vU.Close;h===tr.VIDEO&&!f&&await this.openCamera(fA.LOCAL_VIDEO);const w=it.getData(oe.CALL,fA.LOCAL_USER_INFO);it.update(oe.CALL,fA.LOCAL_USER_INFO,{...w,isEnter:!0}),it.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...w,isEnter:!0}),sv(!0,fA.AUDIO)}else this._permissionCheckTimer&&clearInterval(this._permissionCheckTimer),this._permissionCheckTimer=null,this._resetCallStore()}_getFeatureButtonDefaultState(i){var r;const{button:l}=it.getData(oe.CALL,fA.CUSTOM_UI_CONFIG);return(r=l?.[i])==null?void 0:r.state}_updateCallDuration(){const i=Math.round((a3()-this._startTimeStamp)/1e3),r=q$(i);it.update(oe.CALL,fA.CALL_DURATION,r)}_stopTimer(){this._timerId!==-1&&(ZZ.clearTask(this._timerId),this._timerId=-1)}_cleanupAvoidRepeatCallState(i){var r,l;(l=(r=this._tuiCallEngine)==null?void 0:r.reportLog)==null||l.call(r,{name:"TUICallkit._cleanupAvoidRepeatCallState",data:{methodName:i}});let I=[];i?I=[this[i]]:I=[this.calls,this.accept,this.hangup,this.reject,this.join,this.inviteUser],I?.forEach(h=>{var f;(f=h?.clearCallState)==null||f.call(h,this)})}_resetCallStore(){var i;this._cleanupAvoidRepeatCallState(),(i=this._bellContext)==null||i.stop();const r=J1();this._stopTimer();let l=Object.keys(aY).filter(h=>{switch(aY[h]){case fA.CALL_STATUS:case fA.LANGUAGE:case fA.IS_GROUP:case fA.DISPLAY_MODE:case fA.VIDEO_RESOLUTION:case fA.ENABLE_FLOAT_WINDOW:case fA.LOCAL_USER_INFO:case fA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND:case fA.IS_AI_TRANSCRIBER_ENABLED:case fA.IS_FORCE_USE_V2_API:case fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN:return!1;default:return!0}});l=l.map(h=>aY[h]),it.reset(oe.CALL,l),it.getData(oe.CALL,fA.CALL_STATUS)!==ss.IDLE&&it.reset(oe.CALL,[fA.CALL_STATUS],!0),it.reset(oe.CALL,[fA.IS_MINIMIZED],!0),it.reset(oe.CALL,[fA.IS_EAR_PHONE],!0),it.reset(oe.CALL,[fA.PUSHER_ID],!0),it.reset(oe.CALL,[fA.ENABLE_VIRTUAL_BACKGROUND],!0),it.reset(oe.CALL,[fA.IS_MUTE_SPEAKER],!0),it.update(oe.CALL,fA.LOCAL_USER_INFO,{...it.getData(oe.CALL,fA.LOCAL_USER_INFO),isVideoAvailable:!1,isAudioAvailable:!1}),it.update(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN,{...it.getData(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN),isVideoAvailable:!1,isAudioAvailable:!1}),it.update(oe.CALL,fA.REMOTE_USER_INFO_LIST,[]),it.update(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST,[]),it.update(oe.CALL,fA.CAMERA_POSITION,Iv.FRONT);const I=J1();r!==I&&this.statusChanged&&this.statusChanged({oldStatus:r,newStatus:I})}async getGroupMemberList(i,r){const l=it.getData(oe.CALL,fA.GROUP_ID);return await QdA(l,this.getTim(),i,r)}async getGroupProfile(){const i=it.getData(oe.CALL,fA.GROUP_ID);return await pdA(i,this.getTim())}_watchTUIStore(){it?.watch(oe.CALL,{[fA.CALL_STATUS]:this._handleCallStatusChange})}_unwatchTUIStore(){it?.unwatch(oe.CALL,{[fA.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(`${fA.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=it.getData(oe.CALL,fA.LOCAL_USER_INFO);return this._offlinePushInfo?this._offlinePushInfo:{title:i?.displayUserInfo||"",description:_Q("you have a new call")}}async getCallMessage(i){return await this._chatCombine.getCallKitMessage(i,this.getTim())}};rI([nI()],Dl.prototype,"init");rI([nI()],Dl.prototype,"inviteUser");rI([nI()],Dl.prototype,"calls");rI([nI()],Dl.prototype,"join");rI([nI()],Dl.prototype,"accept");rI([nI()],Dl.prototype,"hangup");rI([nI()],Dl.prototype,"reject");rI([nI()],Dl.prototype,"openCamera");rI([nI()],Dl.prototype,"closeCamera");rI([nI()],Dl.prototype,"openMicrophone");rI([nI()],Dl.prototype,"closeMicrophone");rI([nI()],Dl.prototype,"unMuteSpeaker");rI([nI()],Dl.prototype,"muteSpeaker");rI([nI()],Dl.prototype,"switchScreen");rI([nI()],Dl.prototype,"switchCallMediaType");rI([nI()],Dl.prototype,"switchCamera");rI([nI()],Dl.prototype,"setBlurBackground");rI([nI()],Dl.prototype,"switchDevice");let GdA=Dl;const ts=GdA.getInstance(),W$="CallInfoContextKey",z$="CallerUserInfoContextKey",Z$="UserInfoExcludeVolumeContextKey",X$="FocusContextKey",$$="ButtonPanelContextKey",AAA="FloatWindowContextKey",eAA="IsClickableContextKey",tAA="PopoverContextKey",iAA="CustomUIConfigContextKey",oAA="translateContextKey";function bdA(){return VI(z$)}function jg(){return VI(W$)}function yV(t){const i=ze([]),r=ze(""),l=h=>{var f,w,_;switch(t){case mu.CAMERA:i.value=h?.cameraList||[],r.value=((f=h?.currentCamera)==null?void 0:f.deviceId)||"";break;case mu.MICROPHONE:i.value=h?.microphoneList||[],r.value=((w=h?.currentMicrophone)==null?void 0:w.deviceId)||"";break;case mu.SPEAKER:i.value=h?.speakerList||[],r.value=((_=h?.currentSpeaker)==null?void 0:_.deviceId)||"";break}},I=h=>{r.value=h};return hc(()=>{it.watch(oe.CALL,{[fA.DEVICE_LIST]:l},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.DEVICE_LIST]:l})}),[{deviceList:i,currentDeviceId:r},{updateCurrentDeviceId:I}]}const e6=t=>typeof t=="object"&&t!==null,sAA=(t,i)=>{if(!e6(t)||!e6(i))return t===i;if(t===i)return!0;const r=Object.keys(t),l=Object.keys(i);if(r.length!==l.length)return!1;for(let I in t)if(!sAA(t[I],i[I]))return!1;return!0};function kdA(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 DV(t){if(typeof t!="object"||t===null)return t;let i=Array.isArray(t)?[]:{};for(let r in t)t.hasOwnProperty(r)&&(i[r]=DV(t[r]));return i}const LdA=500;function w4(t,i){if(typeof t!="function"||i!=null&&typeof i!="function")throw new TypeError("Expected a function");const r=function(...l){const I=i?i.apply(this,l):l[0],h=r.cache;if(h.has(I))return h.get(I);const f=t.apply(this,l);return r.cache=h.set(I,f)||h,f};return r.cache=new(w4.Cache||Map),r}w4.Cache=Map;function UdA(t){const i=w4(t,r=>{const{cache:l}=i;return l.size===LdA&&l.clear(),r});return i}const FdA=46,OdA=/\\(\\)?/g,PdA=RegExp(`[^.[\\]]+|\\[(?:([^"'][^[]*)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))`,"g"),nAA=UdA(t=>{const i=[];return t.charCodeAt(0)===FdA&&i.push(""),t.replace(PdA,(r,l,I,h)=>{let f=r;I?f=h.replace(OdA,"$1"):l&&(f=l.trim()),i.push(f)}),i});function uv(t,i,r){if(typeof t!="object"||!i)return;const l=nAA(i);let I=t;for(let h=0;h<l.length;h++){if(I==null)return;const f=l[h];h!==l.length-1?I=I?.[f]:Object.assign(I,{[f]:r})}}function yL(t,i,r){if(typeof t!="object")return;const l=nAA(i);let I=t;for(let h=0;h<l.length;h++){if(I==null)return;const f=l[h];h!==l.length-1?I=I?.[f]:Array.isArray(I)&&I.splice(f,0,r)}}function rAA(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 sW(t,i,r,l,I){Object.keys(t).forEach(h=>{const f=t[h],w=rAA(r)?h:`${r}.${h}`;if(typeof f=="object")if(Array.isArray(f))for(let _=0;_<f.length;_++){const b=`${w}.${_}`;sW(f[_],i,b,l,I)}else sW(f,i,w,l,I);else if(i(f)){const _=typeof I=="function"?I({key:f,value:w}):w;l.push(_)}})}function aAA(){const t=ze(),i=ze(it.getData(oe.CALL,fA.REMOTE_USER_INFO_LIST)),r=h=>{(Ko.isWeChat?h?.enableMic:h?.isAudioAvailable)&&(t.value={...t.value,localVideo:h?.volume})},l=h=>{const f={};(h.length!==i.value.length||!sAA(h,i.value))&&(i.value=h,i.value.forEach(w=>{if(Ko.isWeChat?w.hasAudio:w.isAudioAvailable){const _=Ko.isWeChat?w.userID:w.domId;f[_]=w.volume}}),t.value={...t.value,...f})};let I={[fA.LOCAL_USER_INFO]:r,[fA.REMOTE_USER_INFO_LIST]:l};return Ko.isUniPlatform&&(I={[fA.PUSHER]:r,[fA.PLAYER]:l}),hc(()=>{it.watch(oe.CALL,I,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,I)}),t}function xdA(){const t=ze(""),i=ze(!0),r=ze(0),l=I=>{typeof I=="object"?(t.value=I.text,r.value=I.duration||0):t.value=I};return hc(()=>{it.watch(oe.CALL,{[fA.CALL_TIPS]:l},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.CALL_TIPS]:l})}),{tip:t,show:i,duration:r}}function YdA(){const t=ze(it.getData(oe.CALL,fA.NETWORK_STATUS)),i=r=>{t.value=r};return hc(()=>{it.watch(oe.CALL,{[fA.NETWORK_STATUS]:i},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.NETWORK_STATUS]:i})}),{netWorkQualityList:t}}function gAA(){const t=ze(it.getData(oe.CALL,fA.PLAYER)),i=l=>{t.value=l?.map(I=>{const{userID:h,hasVideo:f,hasAudio:w}=I;return{userID:h,hasVideo:f,hasAudio:w}})},r={[fA.PLAYER]:i};return hc(()=>{it.watch(oe.CALL,r,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,r)}),t}function cC(){return VI(Z$)}function _4(){const t=ze(it.getData(oe.CALL,fA.CALL_DURATION)),i=r=>{t.value=r};return hc(()=>{it.watch(oe.CALL,{[fA.CALL_DURATION]:i},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.CALL_DURATION]:i})}),{callDuration:t}}function JU(){return VI($$,{status:ze("open")})}function cAA(){return VI(X$,ze("open"))}function gB(){return VI(AAA)}function VdA(){return VI(eAA)}function SV(){return VI(tAA)}const JdA=(t,i)=>{const r=[{i:0,x:0,y:0,w:i,h:i}];for(let l=1;l<t;l++){const I=r[l-1].x+i===12;r[l]={i:l,x:r[l-1].x+i===12?0:r[l-1].x+i,y:r[l-1].y+(I?i:0),w:i,h:i}}return t===3&&(r[t-1].x+=3),t>3&&Ko.isPC&&t%3===2&&(r[t-1].x+=2,r[t-2].x+=2),r};function HdA(t,i){const{isFloatWindow:r}=Gs(gB()),l=ze();return br([t,i,r],()=>{if(r.value){const b=[];for(let U=0;U<i.value;U++)b[U]={i:U,x:0,y:0,w:12,h:12};l.value=b;return}const I=Object.keys(Array.from({length:i.value})),h=i.value<=4?6:4,f=JdA(i.value,h);l.value=f;let w,_;if(t.value!==null){if(I.length<5){const b=I.concat();b.splice(t.value,1),b.unshift(t.value)}else _=t.value%3,w=Math.floor(t.value/3);if(I.length<5){const b=f.findIndex(U=>U.i===t.value);if(b!==-1){const U=f[0];f[0]=f[b],f[b]=U;for(let j=0;j<f.length;j++){const IA=f[j];j===0?(IA.w+=6,IA.h+=6,IA.x=0,IA.y=0):(IA.x=(j-1)*4,IA.y=12,IA.w=4,IA.h=4)}}}else{let b;_===0?(f[t.value+1]&&(f[t.value+1].x+=4),f[t.value+2]&&(f[t.value+2].y+=4),b={i:t.value,x:0,y:w*4,w:8,h:8}):_===2?(b={i:t.value,x:4,y:w*4,w:8,h:8},f[t.value-1].x=0,f[t.value-1].y+=4):_===1&&(b={i:t.value,x:4,y:w*4,w:8,h:8},f[t.value+1]&&(f[t.value+1].x=0,f[t.value+1].y+=4));const U=3-_;for(let j=t.value+U;j<f.length;j++){const IA=f[j];IA.y+=4}f[t.value]=b}l.value=f}},{immediate:!0}),l}function HU(){return VI(iAA)}const qdA={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:{}}]]},KdA={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"}]]}}},jdA={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"}]]}}},t6={pc:jdA,mobile:KdA};function lAA(t){const i=DV(t);return uv(i,"mobile.singleCall.video",qdA),yL(i,"pc.singleCall.video.calling[0][2]",{name:"virtualBackground",props:{}}),yL(i,"pc.singleCall.video.accept[0][1]",{name:"virtualBackground",props:{}}),yL(i,"pc.singleCall.video.connected[0][3]",{name:"virtualBackground",props:{}}),yL(i,"pc.groupCall.video.calling[0][3]",{name:"virtualBackground",props:{}}),yL(i,"pc.groupCall.video.connected[0][4]",{name:"virtualBackground",props:{}}),i}function WdA(t,i,r){let l=DV(t);return i?(uv(l,"mobile.singleCall.video.connected[1][2].props.show",!0),r&&lAA(l)):(uv(l,"mobile.singleCall.video.connected[1][2].props.show",!1),r&&(uv(l,"mobile.singleCall.video.connected[1][0].props.show",!1),uv(l,"pc.singleCall.video.connected[0][3].props.show",!1),uv(l,"pc.groupCall.video.connected[0][4].props.show",!1))),l}function zdA(){const{isShowEnableVirtualBackground:t,callStatus:i}=Gs(jg()),r=HU(),{localUserInfoExcludeVolume:l}=Gs(cC()),I=wt(()=>l?.value.isVideoAvailable||!1),h=wt(()=>t.value&&!Ko.isH5),f=ze([]);return br([r,t,I],()=>{let w=DV(t6);h.value&&(w=lAA(t6)),i.value===ss.CONNECTED&&(w=WdA(w,I.value,h.value));const{button:_}=r.value,b=[];function U(IA){return Object.keys(_).includes(IA)}function j({key:IA,value:nA}){var mA;const lA=nA.split(".");let cA=lA.slice(0,lA.length-1);const TA=lA.slice(0,lA.length-2);if(TA[TA.length-1]==="0")for(let WA=0;WA<3;WA++){let Ee=TA.slice();Ee.push(WA),Ee.push("customStyle"),Ee.push("justifyContent"),Ee=Ee.join("."),b.push({path:Ee,value:"center"})}return cA.push("props"),cA.push("show"),cA=cA.join("."),{path:cA,value:(mA=_?.[IA])==null?void 0:mA.show}}sW(w,U,"",b,j),b?.forEach(IA=>{uv(w,IA.path,IA.value)}),f.value=w},{immediate:!0}),f}function IAA(){const t=HU(),i=ze(t.value.viewBackground);return br(t,()=>{i.value=t.value.viewBackground}),i}function ZdA(){const t=ze(it.getData(oe.CALL,fA.ROOM_ID)),i=ze(it.getData(oe.CALL,fA.ROOM_ID_TYPE)),r=ze(it.getData(oe.CALL,fA.GROUP_ID)),l=ze(it.getData(oe.CALL,fA.CALL_MEDIA_TYPE)),I=ze(it.getData(oe.CALL,fA.GROUP_CALL_MEMBERS)),h=ze(it.getData(oe.CALL,fA.CALL_STATUS)),f=ze(it.getData(oe.CALL,fA.CALL_ID)),w=lA=>{t.value=lA},_=lA=>{r.value=lA},b=lA=>{l.value=lA},U=lA=>{I.value=lA},j=lA=>{h.value=lA},IA=lA=>{i.value=lA},nA=lA=>{f.value=lA},mA={[fA.ROOM_ID]:w,[fA.GROUP_ID]:_,[fA.CALL_MEDIA_TYPE]:b,[fA.GROUP_CALL_MEMBERS]:U,[fA.CALL_STATUS]:j,[fA.ROOM_ID_TYPE]:IA,[fA.CALL_ID]:nA};return hc(()=>{it.watch(oe.CALL,mA,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,mA)}),{roomId:t,roomIdType:i,groupId:r,callMediaType:l,groupCallMembers:I,callStatus:h,callId:f}}function og(){return VI(oAA,ze(adA))}function qU(){const t=ze(it.getData(oe.CALL,fA.IS_AI_TRANSCRIBER_ENABLED)),i=ze(it.getData(oe.CALL,fA.IS_AI_TRANSCRIBER_RUNNING)),r=ze([]),l=b=>b?b instanceof Map?Array.from(b.entries()).map(([U,j])=>({language:String(U),text:I(j)})):typeof b=="object"?Object.entries(b).map(([U,j])=>({language:String(U),text:I(j)})):[]:[],I=b=>{if(b==null)return"";if(typeof b=="string")return b;if(typeof b=="object")try{return JSON.stringify(b)}catch(U){return console.warn("Failed to stringify translation content:",U),"[Invalid Object]"}return String(b)},h=b=>b.map(U=>({roundId:U.segmentId,sender:U.speakerUserId,nick:"",text:U.sourceText,end:U.isCompleted,translation:l(U.translationTexts)})),f=b=>{t.value=b||!1},w=b=>{i.value=b||!1},_=b=>{if(b&&b.length>0){const U=h(b);r.value=U}else r.value=[]};return hc(()=>{it.watch(oe.CALL,{[fA.IS_AI_TRANSCRIBER_ENABLED]:f,[fA.IS_AI_TRANSCRIBER_RUNNING]:w,[fA.REALTIME_MESSAGE_LIST]:_});const b=it.getData(oe.CALL,fA.REALTIME_MESSAGE_LIST);b&&_(b)}),Kg(()=>{it.unwatch(oe.CALL,{[fA.IS_AI_TRANSCRIBER_ENABLED]:f,[fA.IS_AI_TRANSCRIBER_RUNNING]:w,[fA.REALTIME_MESSAGE_LIST]:_})}),{isAITranscriberEnabled:t,isAITranscriberRunning:i,subtitleInfoList:r}}const XdA={customStyle:{type:Object},customClass:{type:String}},$dA=["start","center","end","space-around","space-between","space-evenly"],ACA=["top","middle","bottom"],eCA={gutter:{type:Number,default:0},justify:{type:String,values:$dA,default:"start"},align:{type:String,values:ACA,default:"top"},customStyle:{type:Object,default:()=>{}}};function ja(...t){const i=[],r={}.hasOwnProperty;for(let l=0;l<t.length;l++){const I=t[l];if(!I)continue;const h=typeof I;if(h==="string"||h==="number")i.push(I);else if(Array.isArray(I)){if(I.length){const f=ja.apply(null,I);f&&i.push(f)}}else if(h==="object"){if(I.toString!==Object.prototype.toString&&!I.toString.toString().includes("[native code]")){i.push(I.toString());continue}for(const f in I)r.call(I,f)&&I[f]&&i.push(f)}}return i.join(" ")}const Mv=typeof wx<"u"&&typeof wx.getSystemInfoSync=="function"&&!!wx.getSystemInfoSync().fontSizeSetting,tCA=typeof uni<"u"&&typeof uni>"u",uAA=Mv||tCA,iCA=typeof uni<"u",EAA=function(){return(typeof uni<"u"||typeof window<"u")&&!uAA}();(function(){return Mv?wx:iCA?uni:window})();const Xy=EAA&&window&&window.navigator&&window.navigator.userAgent||"",oCA=/Android/i.test(Xy),sCA=/(?:Windows Phone)/.test(Xy),nCA=/(?:SymbianOS)/.test(Xy),rCA=/iPad/i.test(Xy)||/iPhone/i.test(Xy)||/iPod/i.test(Xy),dAA=oCA||sCA||nCA||rCA,oD=EAA&&!dAA;oD&&Xy.includes("Windows NT");oD&&Xy.includes("Mac");function OY(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 aCA(){let t="unknow";return t=T3.split(".")[0],{version:T3,majorVersion:t}}function i6(t,i){const{key:r,value:l}=i;return t.find(I=>I[r]===l)}const CAA="RowContextKey",Nn="tk",VL={SUCCESS:"success",INFO:"info",WARNING:"warning",ERROR:"error"},gCA={options:{virtualHost:!0}},aU=zi({...gCA,__name:"Row",props:eCA,setup(t){const i=t,r=wt(()=>i.gutter);cd(CAA,{gutter:r});const l=ja([`${Nn}-row`,`${Nn}-justify-${i.justify}`,`${Nn}-align-${i.align}`]);return(I,h)=>(se(),At("div",{class:qi(aA(l)),style:Br([I.customStyle])},[Fn(I.$slots,"default")],6))}}),cCA=["start","center","end","space-around","space-between","space-evenly"],lCA=["top","middle","bottom"],ICA={span:{type:Number,default:24},justify:{type:String,values:cCA,default:"start"},align:{type:String,values:lCA,default:"middle"},offset:{type:Number,default:0}},uCA={options:{virtualHost:!0}},zC=zi({...uCA,__name:"Col",props:ICA,setup(t){const i=t,{gutter:r}=VI(CAA,{gutter:wt(()=>0)}),l=ja([`${Nn}-col`,`${Nn}-justify-${i.justify}`,`${Nn}-align-${i.align}`]),I=wt(()=>`${i.span/24*100}%`),h=wt(()=>`${i.offset/24*100}%`),f=wt(()=>`${r.value/2}px`),w=f;return(_,b)=>(se(),At("div",{class:qi(aA(l)),style:Br({width:aA(I),marginLeft:aA(h),paddingLeft:aA(f),paddingRight:aA(w)})},[Fn(_.$slots,"default")],6))}}),ECA={width:{type:String,default:"40px"},height:{type:String,default:"40px"},color:{type:String}},dCA={options:{virtualHost:!0}},CCA=zi({...dCA,__name:"Dot",props:ECA,setup(t){const i=t,r=`${Nn}-loading_dot-container`,l=`${Nn}-loading_dot`,I=wt(()=>({width:i.width,height:i.height})),h=wt(()=>{const f={};return i.color&&(f.backgroundColor=i.color),f});return(f,w)=>(se(),At("div",{class:qi(r),style:Br([aA(I)])},[ne("div",{class:qi(l),style:Br([aA(h)])},null,4),ne("div",{class:qi(l),style:Br([aA(h)])},null,4),ne("div",{class:qi(l),style:Br([aA(h)])},null,4)],4))}}),hCA={width:{type:String,default:"40px"},height:{type:String,default:"40px"},color:{type:String}},BCA={options:{virtualHost:!0}},QCA=zi({...BCA,__name:"Circle",props:hCA,setup(t){const i=t,r=wt(()=>{const I={width:i.width,height:i.height};return i.color&&(I["--tk-loading-primary-color"]=i.color),I}),l=`${Nn}-loading_circle-container`;return(I,h)=>(se(),At("div",{class:qi(l),style:Br([aA(r)])},null,4))}}),pCA=["circle","dot"],mCA=["row","column"],fCA={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:mCA,default:"column"}},yCA={options:{virtualHost:!0}},T4=zi({...yCA,__name:"Loading",props:fCA,setup(t){const i=t,r=`${Nn}-loading ${Nn}-loading--${i.mode}`,l=`${Nn}-loading_text`,I=wt(()=>({flexDirection:i.layout}));return(h,f)=>(se(),At("div",{class:qi(r),style:Br([aA(I)])},[h.mode==="dot"?(se(),Qi(CCA,{key:0,width:h.loadingWidth,height:h.loadingHeight,color:h.color},null,8,["width","height","color"])):(se(),Qi(QCA,{key:1,width:h.loadingWidth,height:h.loadingHeight,color:h.color},null,8,["width","height","color"])),h.text?(se(),At("div",{key:2,class:qi(l)},ni(h.text),1)):$t("",!0)],4))}}),DCA={src:{type:String},size:{type:Number,default:20}},SCA=["fill","contain","cover"],o6={fill:"scaleToFill",contain:"aspectFit",cover:"aspectFill"},MCA={width:{type:String,default:"320px"},height:{type:String,default:"240px"},src:{type:String},fit:{type:String,values:SCA,default:"fill"},customStyle:{type:Object},defaultSrc:{type:String}},vCA={error:t=>t},RCA=["src"],wCA=["src","mode"],_CA={options:{virtualHost:!0}},fl=zi({..._CA,__name:"TKImage",props:MCA,emits:vCA,setup(t,{emit:i}){const r=t,l=i,I=ze(!1),h=ze(r.src);br(()=>r.src,()=>{I.value=!1,h.value=r.src});const f=wt(()=>ja([`${Nn}-image`])),w=wt(()=>({width:r.width,height:r.height,...r.customStyle})),_=wt(()=>ja([`${Nn}-image_inner`])),b=wt(()=>Mv?o6[r.fit]||o6.cover:r.fit);function U(j){I.value=!0,h.value=r.defaultSrc,l("error",j)}return(j,IA)=>(se(),At("div",{class:qi(aA(f)),style:Br([aA(w)])},[aA(I)&&!j.defaultSrc?Fn(j.$slots,"error",{key:0}):(se(),At(vr,{key:1},[aA(Mv)?$t("",!0):(se(),At("img",{key:0,class:qi(aA(_)),src:aA(h),style:Br({objectFit:aA(b)}),onError:U},null,46,RCA)),aA(Mv)?(se(),At("image",{key:1,class:qi(aA(_)),src:aA(h),mode:aA(b),onError:U},null,42,wCA)):$t("",!0)],64))],6))}}),TCA={options:{virtualHost:!0}},vQ=zi({...TCA,__name:"Icon",props:DCA,setup(t){const i=t,r=wt(()=>`${i.size}px`),l=wt(()=>`${i.size}px`);return(I,h)=>(se(),Qi(fl,{src:I.src,width:aA(r),height:aA(l)},null,8,["src","width","height"]))}}),NCA=["small","middle","large"],GCA=["row","column"],bCA=["circle","round"],kCA={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:NCA,default:"middle"},width:{type:String},height:{type:String},color:{type:String},direction:{type:String,values:GCA,default:"row"},shape:{type:String,values:bCA},buttonStyle:{type:Object},buttonTextStyle:{type:Object}},LCA={options:{virtualHost:!0}},Id=zi({...LCA,__name:"Button",props:kCA,emits:["click"],setup(t,{emit:i}){const r=t,l=`${Nn}-button--content`,I=wt(()=>({width:r.width,height:r.height,backgroundColor:r.color,flexDirection:r.direction,cursor:oD?"pointer":"auto",...r.buttonStyle})),h=ja([`${Nn}-button`,{[`${Nn}-${r.shape}`]:r.shape},`${Nn}-button--${r.size}`]),f=i,w=_=>{!r.loading&&f("click",_)};return(_,b)=>(se(),At("div",{style:Br([aA(I)]),class:qi(aA(h)),onClick:w},[_.loading?(se(),Qi(T4,{key:0,loadingWidth:_.loadingWidth,loadingHeight:_.loadingHeight,color:_.loadingColor},null,8,["loadingWidth","loadingHeight","color"])):$t("",!0),_.iconSrc&&!_.loading?(se(),Qi(vQ,{key:1,size:_.iconSize,src:_.iconSrc},null,8,["size","src"])):$t("",!0),_.text?(se(),At("div",{key:2,style:Br([_.buttonTextStyle]),class:qi(l)},ni(_.text),5)):$t("",!0)],6))}}),nW="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwIDE2LjA1YzAtMi4yMzUtMS4yMjgtNC4zMy0zLjMxNC01LjEzNUEzMi40MjMgMzIuNDIzIDAgMCAwIDE1IDguNzUxYy00LjEyIDAtOC4wNi43NjYtMTEuNjg1IDIuMTY0QzEuMjI4IDExLjcxOSAwIDEzLjgxNSAwIDE2LjA1MXYzLjU5N2ExLjUgMS41IDAgMCAwIDEuNiAxLjQ5Nmw2LjM3NS0uNDI1YTEuNSAxLjUgMCAwIDAgMS40LTEuNDk2di0zLjAxNGMwLS4zNTMuMjQ1LS42NTkuNTkxLS43MjZBMjYuMzgyIDI2LjM4MiAwIDAgMSAxNSAxNS4wMDFjMS43MjIgMCAzLjQwNC4xNjYgNS4wMzQuNDgyYS43MzYuNzM2IDAgMCAxIC41OTEuNzI2djMuMDE0YTEuNSAxLjUgMCAwIDAgMS40IDEuNDk2bDYuMzc1LjQyNWExLjUgMS41IDAgMCAwIDEuNi0xLjQ5NlYxNi4wNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",hAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguOTE2IDguMmguODVWNC44SDMuOTg0djMuNGg0LjkzM3ptLTcuOS02LjUzM2EuMTUuMTUgMCAwIDEgLjE1LS4xNWgxNi42NjdhLjE1LjE1IDAgMCAxIC4xNS4xNXYxNi42NjZhLjE1LjE1IDAgMCAxLS4xNS4xNUgxLjE2N2EuMTUuMTUgMCAwIDEtLjE1LS4xNVYxLjY2N3ptMjAuMTk4IDMuMzU1YS4xNS4xNSAwIDAgMSAuMDg3LS4xMzZsMy40NjktMS42MThhLjE1LjE1IDAgMCAxIC4yMTMuMTM1djEzLjE5M2EuMTUuMTUgMCAwIDEtLjIxMy4xMzZsLTMuNDctMS42MThhLjE1LjE1IDAgMCAxLS4wODYtLjEzNlY1LjAyMnoiIGZpbGw9IiMyMjI2MkUiIHN0cm9rZT0iIzIyMjYyRSIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==",BAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIGZpbGw9IiNmZmYiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45NTIgMjMuMzM0aDguODgxYTEgMSAwIDAgMCAxLTFWMTEuNDNMOS45NTIgMjMuMzM0ek0yMS4zNjQgOS41ODVsMS42MjYtMS45NTggMi40Mi0xLjEzYTEgMSAwIDAgMSAxLjQyMy45MDd2MTMuMTkzYTEgMSAwIDAgMS0xLjQyMy45MDZsLTIuOTUyLTEuMzc4LS41MTYtLjI0YTEgMSAwIDAgMS0uNTc4LS45MDdWOS41ODV6bS0zLjUtNC45MThMMi4zNjcgMjMuMzM0aC0uMjAxYTEgMSAwIDAgMS0xLTFWNS42NjdhMSAxIDAgMCAxIDEtMWgxNS42OTZ6TTUuODMzIDExLjM1aDQuMDgydi0xLjdINS44MzN2MS43eiIvPjwvbWFzaz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuOTUyIDIzLjMzNGg4Ljg4MWExIDEgMCAwIDAgMS0xVjExLjQzTDkuOTUyIDIzLjMzNHpNMjEuMzY0IDkuNTg1bDEuNjI2LTEuOTU4IDIuNDItMS4xM2ExIDEgMCAwIDEgMS40MjMuOTA3djEzLjE5M2ExIDEgMCAwIDEtMS40MjMuOTA2bC0yLjk1Mi0xLjM3OC0uNTE2LS4yNGExIDEgMCAwIDEtLjU3OC0uOTA3VjkuNTg1em0tMy41LTQuOTE4TDIuMzY3IDIzLjMzNGgtLjIwMWExIDEgMCAwIDEtMS0xVjUuNjY3YTEgMSAwIDAgMSAxLTFoMTUuNjk2ek01LjgzMyAxMS4zNWg0LjA4MnYtMS43SDUuODMzdjEuN3oiIGZpbGw9IiNmZmYiIHN0eWxlPSJmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjEiLz48cGF0aCBkPSJtOS45NTIgMjMuMzM0LTEuMzA4LTEuMDg2LTIuMzEzIDIuNzg2aDMuNjJ2LTEuN3ptOS44ODEtMTEuOTA0aDEuN1Y2LjcybC0zLjAwOCAzLjYyNCAxLjMwOCAxLjA4NnptMy4xNTctMy44MDMtLjcyLTEuNTQtLjM0NS4xNjEtLjI0NC4yOTQgMS4zMDkgMS4wODV6bS0xLjYyNiAxLjk1OEwyMC4wNTYgOC41bC0uMzkyLjQ3MnYuNjE0aDEuN3ptNC4wNDYtMy4wODcuNzIgMS41NC0uNzItMS41NHptMS40MjMuOTA2aDEuNy0xLjd6bTAgMTMuMTkzaC0xLjcgMS43em0tMS40MjMuOTA2LS43MTkgMS41NC43Mi0xLjU0em0tMi45NTItMS4zNzguNzItMS41NC0uNzIgMS41NHptLS41MTYtLjI0LS43MiAxLjU0LjcyLTEuNTR6bS0uNTc4LS45MDdoLTEuNyAxLjd6TTIuMzY4IDIzLjMzNHYxLjdoLjc5OGwuNTEtLjYxNC0xLjMwOC0xLjA4NnpNMTcuODYzIDQuNjY3bDEuMzA4IDEuMDg2IDIuMzEzLTIuNzg2aC0zLjYydjEuN3pNOS45MTYgMTEuMzV2MS43aDEuN3YtMS43aC0xLjd6bS00LjA4MyAwaC0xLjd2MS43aDEuN3YtMS43em00LjA4My0xLjdoMS43di0xLjdoLTEuN3YxLjd6bS00LjA4MyAwdi0xLjdoLTEuN3YxLjdoMS43em0xMyAxMS45ODRIOS45NTJ2My40aDguODgxdi0zLjR6bS0uNy43YS43LjcgMCAwIDEgLjctLjd2My40YTIuNyAyLjcgMCAwIDAgMi43LTIuN2gtMy40em0wLTEwLjkwNHYxMC45MDRoMy40VjExLjQzaC0zLjR6bS4zOTItMS4wODZMOC42NDQgMjIuMjQ4bDIuNjE2IDIuMTcxIDkuODgxLTExLjkwMy0yLjYxNi0yLjE3MnptMy4xNTctMy44MDItMS42MjYgMS45NTcgMi42MTYgMi4xNzIgMS42MjYtMS45NTgtMi42MTYtMi4xNzF6bTMuMDEtMS41ODUtMi40MjEgMS4xMyAxLjQzOCAzLjA4IDIuNDItMS4xMjktMS40MzgtMy4wOHptMy44NDEgMi40NDdjMC0xLjk3Ni0yLjA1Mi0zLjI4Mi0zLjg0Mi0yLjQ0N2wxLjQzOCAzLjA4MWEuNy43IDAgMCAxLS45OTYtLjYzNGgzLjR6bTAgMTMuMTkzVjcuNDA0aC0zLjR2MTMuMTkzaDMuNHptLTMuODQyIDIuNDQ3YzEuNzkuODM1IDMuODQyLS40NzIgMy44NDItMi40NDdoLTMuNGEuNy43IDAgMCAxIC45OTYtLjYzNWwtMS40MzggMy4wODJ6bS0yLjk1Mi0xLjM3OCAyLjk1MiAxLjM3OCAxLjQzOC0zLjA4Mi0yLjk1Mi0xLjM3Ny0xLjQzOCAzLjA4em0tLjUxNi0uMjQxLjUxNi4yNCAxLjQzOC0zLjA4LS41MTctLjI0MS0xLjQzNyAzLjA4em0tMS41NTktMi40NDdhMi43IDIuNyAwIDAgMCAxLjU1OSAyLjQ0N2wxLjQzOC0zLjA4MWEuNy43IDAgMCAxIC40MDMuNjM0aC0zLjR6bTAtOS4zOTN2OS4zOTNoMy40VjkuNTg1aC0zLjR6TTMuNjc2IDI0LjQyIDE5LjE3MSA1Ljc1MyAxNi41NTUgMy41OCAxLjA2IDIyLjI0OGwyLjYxNiAyLjE3MXptLTEuMzA4LTIuNzg1aC0uMjAxdjMuNGguMjAxdi0zLjR6bS0uMjAxIDBhLjcuNyAwIDAgMSAuNy43aC0zLjRhMi43IDIuNyAwIDAgMCAyLjcgMi43di0zLjR6bS43LjdWNS42NjdoLTMuNHYxNi42NjdoMy40em0wLTE2LjY2N2EuNy43IDAgMCAxLS43Ljd2LTMuNGEyLjcgMi43IDAgMCAwLTIuNyAyLjdoMy40em0tLjcuN2gxNS42OTZ2LTMuNEgyLjE2NnYzLjR6bTcuNzUgMy4yODNINS44MzJ2My40aDQuMDgzdi0zLjR6bS0xLjcgMHYxLjdoMy40di0xLjdoLTMuNHptLTIuMzg0IDEuN2g0LjA4M3YtMy40SDUuODMzdjMuNHptMS43IDB2LTEuN2gtMy40djEuN2gzLjR6IiBmaWxsPSIjZmZmIiBzdHlsZT0iZmlsbDojZmZmO2ZpbGwtb3BhY2l0eToxIiBtYXNrPSJ1cmwoI2EpIi8+PHBhdGggZD0iTTQuNTYzIDI1LjI2OSAyMi4xNCA0LjA4NCIgc3Ryb2tlPSIjZmZmIiBzdHlsZT0ic3Ryb2tlOiNmZmY7c3Ryb2tlLW9wYWNpdHk6MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",QAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDE1LjYyNVYxMy43NWgydjEuODc1YTkgOSAwIDEgMCAxOCAwVjEzLjc1aDJ2MS44NzVjMCA1LjczOC00LjM5MyAxMC40NS0xMCAxMC45NTVWMzBoLTJ2LTMuNDJjLTUuNjA3LS41MDUtMTAtNS4yMTctMTAtMTAuOTU1eiIgZmlsbD0iIzIyMjYyRSIvPjxyZWN0IHg9IjguNzUiIHk9IjEuMjUiIHdpZHRoPSIxMi41IiBoZWlnaHQ9IjIwLjYyNSIgcng9IjYuMjUiIGZpbGw9IiMyMjI2MkUiLz48L3N2Zz4=",pAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljc1IDcuNWE2LjI1IDYuMjUgMCAwIDEgMTEuMTMzLTMuOTAyTDguODczIDE2Ljg2MmE2LjI4IDYuMjggMCAwIDEtLjEyMy0xLjIzN1Y3LjV6TTYuODA2IDE5LjM1MkE4Ljk2NyA4Ljk2NyAwIDAgMSA2IDE1LjYyNVYxMy43NUg0djEuODc1YzAgMS45NjMuNTE0IDMuODA2IDEuNDE2IDUuNDAybDEuMzktMS42NzV6bTIuNDA2IDUuNjI5IDEuMjkyLTEuNTU4QTkgOSAwIDAgMCAyNCAxNS42MjV2LTEuODc0aDJ2MS44NzVjMCA1LjczOC00LjM5MyAxMC40NS0xMCAxMC45NTVWMzBoLTJ2LTMuNDJhMTAuOTM0IDEwLjkzNCAwIDAgMS00Ljc4OC0xLjZ6bTMuMDg2LTMuNzE5IDguOTUyLTEwLjc4NHY1LjE0N2E2LjI1IDYuMjUgMCAwIDEtOC45NTIgNS42Mzd6IiBmaWxsPSIjZmZmIiBzdHlsZT0iZmlsbDojZmZmO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZD0iTTYuNDE5IDI0LjA4NCAyMi4wOTQgNS4yMDkiIHN0cm9rZT0iI2ZmZiIgc3R5bGU9InN0cm9rZTojZmZmO3N0cm9rZS1vcGFjaXR5OjEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==",mAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0yMC4xMzUuMzczLjg2Ni41QzI1LjE4MyAzLjI5NCAyOCA3LjgxOCAyOCAxM2MwIDUuMTgzLTIuODE3IDkuNzA3LTcgMTIuMTI3bC0uODY1LjUtMS4wMDEtMS43MzEuODY1LS41QzIzLjU5IDIxLjMxOCAyNiAxNy40NCAyNiAxM3MtMi40MTEtOC4zMTktNi0xMC4zOTVsLS44NjYtLjVMMjAuMTM1LjM3MnptLTYuNDkgMS4wMTZhMS4wNzEgMS4wNzEgMCAwIDEgMS43MS44NlYyMy43NWMwIC44ODEtMS4wMDMgMS4zODYtMS43MS44NmwtNi42NS00Ljk0NWExLjA3MSAxLjA3MSAwIDAgMC0uNjM5LS4yMTFIMS4yNTJjLS41OTIgMC0xLjA3Mi0uNDgtMS4wNzItMS4wNzJWNy42MzRjMC0uNTkuNDc4LTEuMDcgMS4wNjgtMS4wNzFsNS4xMS0uMDE3Yy4yMyAwIC40NTItLjA3NS42MzYtLjIxMWw2LjY1LTQuOTQ2em01LjkxIDQuNzgtLjgzMS0uNTU2LTEuMTExIDEuNjYzLjgzMi41NTZDMTkuOTM3IDguODI4IDIxIDEwLjc0MiAyMSAxM2MwIDIuMjU5LTEuMDYzIDQuMTcyLTIuNTU1IDUuMTY4bC0uODMyLjU1NiAxLjExIDEuNjYzLjgzMi0uNTU1QzIxLjY1IDE4LjQzMiAyMyAxNS44NjkgMjMgMTNjMC0yLjg2OS0xLjM1LTUuNDMzLTMuNDQ1LTYuODMyeiIgZmlsbD0iIzJFMzMzRCIvPjwvc3ZnPg==",fAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0xMC4zNiAyMi44NDIgNC4yMzUgMy41NmMuNjk3LjU4NyAxLjc2LjA5MSAxLjc2LS44MlYxNS42MmwtNS45OTUgNy4yMjN6bTEzLjM1Ni0xNi4wOSAxLjI4NS0xLjU0OEExMy45NTUgMTMuOTU1IDAgMCAxIDI5IDE1YzAgNS4xODMtMi44MTcgOS43MDctNyAxMi4xMjdsLS44NjUuNS0xLjAwMS0xLjczMS44NjUtLjVDMjQuNTkgMjMuMzE4IDI3IDE5LjQ0IDI3IDE1YzAtMy4xOTQtMS4yNDgtNi4wOTctMy4yODQtOC4yNDh6bS0zLjI3OCAzLjk1IDEuMjg4LTEuNTUzQzIzLjE0IDEwLjYxMyAyNCAxMi43MSAyNCAxNWMwIDIuODY5LTEuMzUgNS40MzMtMy40NDUgNi44MzJsLS44MzEuNTU1LTEuMTEtMS42NjMuODMtLjU1NkMyMC45MzggMTkuMTcyIDIyIDE3LjI1OCAyMiAxNWMwLTEuNzE2LS42MTMtMy4yMzItMS41NjItNC4yOTl6bS00LjA4Mi00LjIyTDMuOTI4IDIxLjQ1NkgyLjI1MmMtLjU5MiAwLTEuMDcyLS40OC0xLjA3Mi0xLjA3MlY5LjYzNWMwLS41OTEuNDc4LTEuMDcgMS4wNjktMS4wNzJsNi4wNzMtLjAxN2MuMjUxIDAgLjQ5NC0uMDkuNjg3LS4yNTFsNS41ODYtNC42OTdjLjY5Ny0uNTg2IDEuNzYtLjA5MSAxLjc2LjgydjIuMDY1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik00LjU2NCAyNS4yNjggMjIuMTQgNC4wODQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+",UCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBvcGFjaXR5PSIuNSIgY3g9IjE1IiBjeT0iMTUiIHI9IjE1IiBmaWxsPSIjMjIyNjJFIiBzdHlsZT0iZmlsbDpjb2xvcihkaXNwbGF5LXAzIC4xMzMzIC4xNDkgLjE4MDQpO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC41MTYgMTcuNDUyYS40LjQgMCAwIDEtLjAxNC41NjVsLS44Ny44MjdhLjQuNCAwIDAgMS0uNTY2LS4wMTVMMTUgMTQuNTVsLTQuMDY2IDQuMjhhLjQuNCAwIDAgMS0uNTY2LjAxNWwtLjg3LS44MjdhLjQuNCAwIDAgMS0uMDE0LS41NjVsNS4wMzMtNS4yOThhLjY2Ny42NjcgMCAwIDEgLjk2NiAwbDUuMDMzIDUuMjk4eiIgZmlsbD0iI2ZmZiIgc3R5bGU9ImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MSIvPjwvc3ZnPg==",FCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNNC4xNjIgNS42NzdDMi41OCA3LjI1OCAxLjk2NyA5LjYwOCAyLjg3NCAxMS42NTJhMzIuNDIyIDMyLjQyMiAwIDAgMCA2LjczMyA5Ljc5MyAzMi40MjMgMzIuNDIzIDAgMCAwIDkuNzkzIDYuNzMzYzIuMDQ0LjkwNyA0LjM5NC4yOTMgNS45NzUtMS4yODhsMi41NDMtMi41NDNhMS41IDEuNSAwIDAgMC0uMDczLTIuMTlsLTQuODA4LTQuMjA3YTEuNSAxLjUgMCAwIDAtMi4wNDguMDY4bC0yLjEzMSAyLjEzMWEuNzM2LjczNiAwIDAgMS0uOTMyLjA5NSAyNi4zODUgMjYuMzg1IDAgMCAxLTMuOS0zLjIxOCAyNi4zODUgMjYuMzg1IDAgMCAxLTMuMjE4LTMuOS43MzYuNzM2IDAgMCAxIC4wOTUtLjkzMmwyLjEzLTIuMTNhMS41IDEuNSAwIDAgMCAuMDY5LTIuMDVMOC44OTUgMy4yMDhhMS41IDEuNSAwIDAgMC0yLjE5LS4wNzNMNC4xNjIgNS42Nzd6IiBmaWxsPSIjZmZmIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzMHYzMEgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==",Yy="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDJhMSAxIDAgMCAxIDEtMWgyNGExIDEgMCAwIDEgMSAxdjI0YTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjJ6bTE0LjY1MyAxNC44MDFhNC4xOCA0LjE4IDAgMSAwLTMuMzA2IDBoLS4yMDRhNS41NzEgNS41NzEgMCAwIDAtNS41NzIgNS41NzJ2Mi4yNWExIDEgMCAwIDAgMSAxSDIwLjQzYTEgMSAwIDAgMCAxLTF2LTIuMjVhNS41NzEgNS41NzEgMCAwIDAtNS41NzItNS41NzJoLS4yMDR6bS0xMy4yNi05LjE4TDcuNjIgMi4zOTNoMi4yMzJsLTcuNDYgNy40NlY3LjYyMXptMCA4LjEzdi0yLjIzMkwxMy41MTggMi4zOTNoMi4yMzNMMi4zOTMgMTUuNzV6bTAgNS44OTh2LTIuMjMzbDUuNDU5LTUuNDU5Yy4wNjIuNjI2LjIxNyAxLjIyNC40NTIgMS43OEwyLjM5MyAyMS42NXpNMTYuMzk4IDcuNjQ0YTYuMTQgNi4xNCAwIDAgMC0xLjc4LS40NTJsNC43OTgtNC44aDIuMjMzbC01LjI1MSA1LjI1MnpNMi44NCAyNC44NjdsMS43MzEtMS43MzJWMjVjMCAuMTE4LjAwNy4yMzQuMDIuMzQ4bC0uMjU4LjI1OGExLjk5NiAxLjk5NiAwIDAgMS0xLjQ5My0uNzM5ek0xOC41NDkgOS4xNThjLjM2LjM5My42NzIuODMzLjkyMyAxLjMxbDYuMTM0LTYuMTM1YTEuOTk2IDEuOTk2IDAgMCAwLS43MzktMS40OTNsLTYuMzE5IDYuMzE4em0uOTcgNi45NjMuMTI1LjA3MSA1Ljk2My01Ljk2M1Y3Ljk5N2wtNS40MyA1LjQzYTYuMTQ5IDYuMTQ5IDAgMCAxLS42NTkgMi42OTR6bTIuMTIgMS43NDFjLjM0Ni40MDkuNjUuODU0LjkwMyAxLjMzbDMuMDY1LTMuMDY1di0yLjIzMmwtMy45NjcgMy45Njd6bTEuNzkgNC44ODh2MS40NTNsMi4xNzgtMi4xNzh2LTIuMjMzbC0yLjIxNSAyLjIxNWMuMDI0LjI0NC4wMzcuNDkyLjAzNy43NDN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",rW="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDFhMSAxIDAgMCAxIDEtMWgyNGExIDEgMCAwIDEgMSAxdjI0YTEgMSAwIDAgMS0xIDFIMWExIDEgMCAwIDEtMS0xVjF6bTEzIDEzYTQuMTc5IDQuMTc5IDAgMSAwIDAtOC4zNTdBNC4xNzkgNC4xNzkgMCAwIDAgMTMgMTR6bS0xLjg1NyAxLjM0NmE1LjU3MSA1LjU3MSAwIDAgMC01LjU3MiA1LjU3MXYyLjI1YTEgMSAwIDAgMCAxIDFIMTkuNDNhMSAxIDAgMCAwIDEtMXYtMi4yNWE1LjU3MSA1LjU3MSAwIDAgMC01LjU3Mi01LjU3MUwxMyAxOC4wMTlsLTEuODU3LTIuNjczem0tOS43NS03LjMxIDYuNjQzLTYuNjQzaDIuMjMybC04Ljg3NSA4Ljg3NVY4LjAzNnptMCAxMi4yMzJ2LTIuMjMzbDYuNjQyLTYuNjQxTDkuMTUgMTIuNTFsLTcuNzU4IDcuNzU4em0yMy4yMTQtNS40NDd2Mi4yMzNsLTIuNDczIDIuNDczLTEuMTE2LTEuMTE2IDMuNTktMy41OXptMC0xMHYyLjIzM2wtNy4wOTIgNy4wOTItMS4xMTYtMS4xMTYgOC4yMDgtOC4yMDl6bS00LjMzOS0zLjQyOC0zLjg5NSAzLjg5NS0xLjExNy0xLjExNiAyLjc4LTIuNzhoMi4yMzJ6IiBmaWxsPSIjMDAwIiBzdHlsZT0iZmlsbDojMDAwO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+",OCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00LjY2NjgzIDkuMzMzMzdIMy4zMzM1VjQuMDAwMDRDMy4zMzM1IDMuNjMxODUgMy42MzE5NyAzLjMzMzM3IDQuMDAwMTYgMy4zMzMzN0w5LjMzMzUgMy4zMzMzN1Y0LjY2NjcxSDUuNjA5NjNMOS44MDQ5IDguODYxOTlMOC44NjIwOSA5LjgwNDhMNC42NjY4MyA1LjYwOTUyVjkuMzMzMzdaTTE1LjMzMzMgMTAuNjY2N0gxNi42NjY3VjE2QzE2LjY2NjcgMTYuMzY4MiAxNi4zNjgyIDE2LjY2NjcgMTYgMTYuNjY2N0wxMC42NjY3IDE2LjY2NjdMMTAuNjY2NyAxNS4zMzMzSDE0LjM5MDVMMTAuMTk1MyAxMS4xMzhMMTEuMTM4MSAxMC4xOTUyTDE1LjMzMzMgMTQuMzkwNVYxMC42NjY3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTAuNjY2NjY3IDEuMzMzMzNDMC42NjY2NjcgMC45NjUxNDQgMC45NjUxNDQgMC42NjY2NjcgMS4zMzMzMyAwLjY2NjY2N0gxOC42NjY3QzE5LjAzNDkgMC42NjY2NjcgMTkuMzMzMyAwLjk2NTE0NCAxOS4zMzMzIDEuMzMzMzNWMTguNjY2N0MxOS4zMzMzIDE5LjAzNDkgMTkuMDM0OSAxOS4zMzMzIDE4LjY2NjcgMTkuMzMzM0gxLjMzMzMzQzAuOTY1MTQzIDE5LjMzMzMgMC42NjY2NjcgMTkuMDM0OSAwLjY2NjY2NyAxOC42NjY3VjEuMzMzMzNaIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMzMzMzMiLz4KPC9zdmc+",PCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxyZWN0IHg9IjAuNzY5MjMxIiB5PSIwLjc2OTIzMSIgd2lkdGg9IjE4LjQ2MTUiIGhlaWdodD0iMTguNDYxNSIgcng9IjAuNzY5MjMxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuNTM4NDYiLz4KICAgIDxwYXRoIGQ9Ik0xMS41Mzg1IDEyLjMwNzdDMTEuNTM4NSAxMS44ODI5IDExLjg4MjkgMTEuNTM4NSAxMi4zMDc3IDExLjUzODVIMTkuMjMwOFYxOC40NjE1QzE5LjIzMDggMTguODg2NCAxOC44ODY0IDE5LjIzMDggMTguNDYxNiAxOS4yMzA4SDExLjUzODVWMTIuMzA3N1oiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS41Mzg0NiIvPgogICAgPHBhdGggZD0iTTAuNzY5Mjg3IDAuNzY5MjI2TDguOTcyMyA4LjkyNDEyIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuNTM4NDYiLz4KICAgIDxwYXRoIGQ9Ik05LjQ5NjcgNC43MTcxNlY5LjQ0ODZINC43NDE0NiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjUzODQ2IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICA8L3N2Zz4=",xCA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzA4NDAwODQ5NTMxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjgyNjciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48cGF0aCBkPSJNMTIxLjUxIDQ2MC4xNWg3NzkuNjR2MTAwLjZIMTIxLjUxeiIgcC1pZD0iODI2OCIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik00NjEuMDM1IDkwMC4yNzF2LTc3OS42NGgxMDAuNnY3NzkuNjR6IiBwLWlkPSI4MjY5IiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+",YCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguNSA0SDNhMSAxIDAgMCAwLTEgMXYxMmExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTUuNSIgc3Ryb2tlPSIjRDVFMEYyIiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNSAzLjV2NWg1di01aC01ek0xMSAyYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMVYzYTEgMSAwIDAgMC0xLTFoLTZ6IiBmaWxsPSIjRDVFMEYyIi8+PC9zdmc+",Py="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNS4wMTggNS43NjNhMiAyIDAgMCAxIDIgMnYxNS41MjhhMiAyIDAgMCAxLTIgMkgyLjk4MmEyIDIgMCAwIDEtMi0yVjcuNzYzYTIgMiAwIDAgMSAyLTJoNC4yNjJhMiAyIDAgMCAwIDEuNDk0LS42N2wxLjQxLTEuNTg3YTIgMiAwIDAgMSAxLjQ5NS0uNjcyaDQuNzE0YTIgMiAwIDAgMSAxLjQ5NC42NzFsMS40MSAxLjU4N2EyIDIgMCAwIDAgMS40OTUuNjcxaDQuMjYyek0xMS43MjMgOS41ODVhNS45MDcgNS45MDcgMCAwIDEgMi4xODYtLjQxN2MxLjcxOSAwIDMuMjcuNzMzIDQuMzQxIDEuOTAzVjkuOTE4aDEuNXY1LjAwMWgtMS41di0uMDA1Yy0uMDAyLTIuMzMyLTEuOTMyLTQuMjQ1LTQuMzQtNC4yNDUtLjU4IDAtMS4xMy4xMS0xLjYzMy4zMWwtLjU1NC0xLjM5NHpNOC4yNSAxOS45MTl2LTVoMS41YzAgMi4zMzQgMS45MyA0LjI1IDQuMzQgNC4yNS41OCAwIDEuMTMtLjExMSAxLjYzMy0uMzFsLjU1NCAxLjM5M2E1LjkwOCA1LjkwOCAwIDAgMS0yLjE4Ni40MTcgNS44NzMgNS44NzMgMCAwIDEtNC4zNDEtMS45MDN2MS4xNTNoLTEuNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=",VCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMC41IDExLjA1YTQuNSA0LjUgMCAxIDAgMC05IDQuNSA0LjUgMCAwIDAgMCA5em0tMiAxLjQ1YTYgNiAwIDAgMC02IDZWMjFhMSAxIDAgMCAwIDEgMWgxNGExIDEgMCAwIDAgMS0xdi0yLjVhNiA2IDAgMCAwLTYtNmwtMiAyLjg4LTItMi44OHoiLz48L21hc2s+PHBhdGggZD0ibTguNSAxMi41IDEuMzk2LS45Ny0uNTA3LS43M0g4LjV2MS43em00IDB2LTEuN2gtLjg4OWwtLjUwNy43MyAxLjM5Ni45N3ptLTIgMi44OC0xLjM5Ni45NjkgMS4zOTYgMi4wMSAxLjM5Ni0yLjAxLTEuMzk2LS45N3ptMi44LTguODNhMi44IDIuOCAwIDAgMS0yLjggMi44djMuNGE2LjIgNi4yIDAgMCAwIDYuMi02LjJoLTMuNHptLTIuOC0yLjhhMi44IDIuOCAwIDAgMSAyLjggMi44aDMuNGE2LjIgNi4yIDAgMCAwLTYuMi02LjJ2My40em0tMi44IDIuOGEyLjggMi44IDAgMCAxIDIuOC0yLjhWLjM1YTYuMiA2LjIgMCAwIDAtNi4yIDYuMmgzLjR6bTIuOCAyLjhhMi44IDIuOCAwIDAgMS0yLjgtMi44SDQuM2E2LjIgNi4yIDAgMCAwIDYuMiA2LjJ2LTMuNHpNNC4yIDE4LjVhNC4zIDQuMyAwIDAgMSA0LjMtNC4zdi0zLjRhNy43IDcuNyAwIDAgMC03LjcgNy43aDMuNHptMCAyLjV2LTIuNUguOFYyMWgzLjR6bS0uNy0uN2EuNy43IDAgMCAxIC43LjdILjhhMi43IDIuNyAwIDAgMCAyLjcgMi43di0zLjR6bTE0IDBoLTE0djMuNGgxNHYtMy40em0tLjcuN2EuNy43IDAgMCAxIC43LS43djMuNGEyLjcgMi43IDAgMCAwIDIuNy0yLjdoLTMuNHptMC0yLjVWMjFoMy40di0yLjVoLTMuNHptLTQuMy00LjNhNC4zIDQuMyAwIDAgMSA0LjMgNC4zaDMuNGE3LjcgNy43IDAgMCAwLTcuNy03Ljd2My40em0tLjYwNCAyLjE0OSAyLTIuODc5LTIuNzkyLTEuOTQtMiAyLjg4IDIuNzkyIDEuOTM5ek03LjEwNCAxMy40N2wyIDIuODc5IDIuNzkyLTEuOTQtMi0yLjg3OS0yLjc5MiAxLjk0eiIgZmlsbD0iI0Q1RTBGMiIgbWFzaz0idXJsKCNiKSIvPjwvZz48cGF0aCBkPSJNMTYgMTFoN20tMy41LTMuNXY3IiBzdHJva2U9IiNENUUwRjIiIHN0cm9rZS13aWR0aD0iMS43Ii8+PGRlZnM+PGZpbHRlciBpZD0iYSIgeD0iLTUuNSIgeT0iLTUuOTQ5IiB3aWR0aD0iMzIiIGhlaWdodD0iMzUuOTUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjQiLz48ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMjU4NF8yMzYiLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzI1ODRfMjM2IiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",JCA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBvcGFjaXR5PSIuNSIgY3g9IjE1IiBjeT0iMTUiIHI9IjE1IiBmaWxsPSIjMjIyNjJFIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjQ4NCAxNC4zMTNhLjQuNCAwIDAgMSAuMDE0LS41NjVsLjg3LS44MjdhLjQuNCAwIDAgMSAuNTY2LjAxNUwxNSAxNy4yMTZsNC4wNjYtNC4yOGEuNC40IDAgMCAxIC41NjUtLjAxNWwuODcuODI3YS40LjQgMCAwIDEgLjAxNS41NjVsLTUuMDMzIDUuMjk4YS42NjcuNjY3IDAgMCAxLS45NjYgMGwtNS4wMzMtNS4yOTh6IiBmaWxsPSIjZmZmIi8+PC9zdmc+",Xl=!Ko.isPC;let yAA=YCA,DAA=VCA;Xl||(yAA=PCA,DAA=xCA);const xr={width:Xl?"60px":"40px",height:Xl?"60px":"40px",shape:"circle",iconSize:Xl?30:20,showText:!0,textColor:"#D5E0F2",textSize:"12px",textStyle:{marginTop:"5px"}},Fo={accept:{basicConfig:{...xr,color:"#51C271",iconSrc:FCA},loadingConfig:{...xr,color:"#51C271",loadingWidth:Xl?"30px":"20px",loadingHeight:Xl?"30px":"20px"}},hangup:{basicConfig:{...xr,color:"#ED4651",iconSrc:nW},loadingConfig:{...xr,color:"#ED4651",loadingWidth:Xl?"30px":"20px",loadingHeight:Xl?"30px":"20px"}},reject:{basicConfig:{...xr,color:"#ED4651",iconSrc:nW}},camera:{basicConfig:{...xr,color:"#FFFFFF",iconSrc:hAA,shape:"circle"},closedConfig:{...xr,color:"#6b758a4d",iconSrc:BAA},loadingConfig:{...xr,color:"#6b758a4d",loadingWidth:Xl?"30px":"20px",loadingHeight:Xl?"30px":"20px"}},microphone:{basicConfig:{...xr,color:"#FFFFFF",iconSrc:QAA},closedConfig:{...xr,color:"#6b758a4d",iconSrc:pAA}},speaker:{basicConfig:{...xr,color:"#FFFFFF",iconSrc:mAA},closedConfig:{...xr,color:"#6b758a4d",iconSrc:fAA}},fullScreen:{basicConfig:{iconSize:20,iconSrc:OCA}},minimize:{basicConfig:{iconSize:Xl?24:20,iconSrc:yAA}},switchCamera:{basicConfig:{...xr,color:"transparent",iconSrc:Py,shape:"circle"}},inviteUser:{basicConfig:{...xr,color:Xl?"":"#6b758a4d",width:Xl?"24px":"40px",height:Xl?"24px":"40px",shape:Xl?"":"circle",iconSize:Xl?24:20,iconSrc:DAA}},toggleButtonPanel:{basicConfig:{color:"transparent",width:"40px",height:"40px",shape:"circle",iconSize:40,iconSrc:JCA}},virtualBackground:{basicConfig:{...xr,color:"#6b758a4d",iconSrc:Yy,shape:"circle"},closedConfig:{...xr,color:"#FFFFFF",iconSrc:rW},loadingConfig:{...xr,color:"#6b758a4d",loadingWidth:Xl?"30px":"20px",loadingHeight:Xl?"30px":"20px"},disableConfig:{...xr,color:"#6b758a4d",iconSrc:Yy,buttonStyle:{opacity:.6}}}},by={singleCall:{video:{calling:{...Fo,switchCamera:{basicConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle",showText:!0},disableConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle",showText:!0,buttonStyle:{opacity:.6}}},hangup:{basicConfig:{...Fo.hangup.basicConfig},loadingConfig:{...Fo.hangup.loadingConfig}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},accept:{...Fo,switchCamera:{basicConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle"},disableConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle",showText:!0,buttonStyle:{opacity:.6}}},accept:{basicConfig:{...Fo.accept.basicConfig,showText:!1},loadingConfig:{...Fo.accept.loadingConfig,showText:!1}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},connected:{...Fo,virtualBackground:{basicConfig:{...xr,color:"transparent",iconSrc:Yy,shape:"circle",showText:!1},closedConfig:{...xr,color:"transparent",iconSrc:Yy,showText:!1},disableConfig:{...xr,color:"transparent",iconSrc:Yy,showText:!1,buttonStyle:{opacity:.6}}},hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},switchCamera:{basicConfig:{...Fo.switchCamera.basicConfig,showText:!1},disableConfig:{...Fo.switchCamera.basicConfig,showText:!1,buttonStyle:{opacity:.6}}}}},audio:{calling:Fo,accept:Fo,connected:Fo}},groupCall:{video:{calling:{...Fo,switchCamera:{basicConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle"}},hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{...Fo.accept.basicConfig,showText:!1},loadingConfig:{...Fo.accept.loadingConfig,showText:!1}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},accept:{...Fo,hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{...Fo.accept.basicConfig,showText:!1},loadingConfig:{...Fo.accept.loadingConfig,showText:!1}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},connected:{...Fo,virtualBackground:{basicConfig:{...xr,color:"transparent",iconSrc:Yy,shape:"circle",showText:!1},closedConfig:{...xr,color:"transparent",iconSrc:rW,showText:!1}},hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}}}},audio:{calling:{...Fo,switchCamera:{basicConfig:{...xr,color:"#6b758a4d",iconSrc:Py,shape:"circle"}},hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{...Fo.accept.basicConfig,showText:!1},loadingConfig:{...Fo.accept.loadingConfig,showText:!1}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},accept:{...Fo,hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},accept:{basicConfig:{...Fo.accept.basicConfig,showText:!1},loadingConfig:{...Fo.accept.loadingConfig,showText:!1}},reject:{basicConfig:{...Fo.reject.basicConfig,showText:!1}}},connected:{...Fo,hangup:{basicConfig:{...Fo.hangup.basicConfig,showText:!1},loadingConfig:{...Fo.hangup.loadingConfig,showText:!1}},virtualBackground:{basicConfig:{...xr,color:"transparent",iconSrc:Yy,shape:"circle"},closedConfig:{...xr,color:"transparent",iconSrc:rW}}}}}},HCA={singleCall:{video:{calling:Fo,accept:Fo,connected:Fo},audio:{calling:Fo,accept:Fo,connected:Fo}},groupCall:{video:{calling:Fo,accept:Fo,connected:Fo},audio:{calling:Fo,accept:Fo,connected:Fo}}},qCA={pc:HCA,mobile:by},Ny={width:"40px",height:"40px",shape:"circle",iconSize:20,textColor:"#D5E0F2"},q1={microphone:{basicConfig:{...Ny,color:"#FFFFFF",iconSrc:QAA},closedConfig:{...Ny,color:"#6b758a4d",iconSrc:pAA}},speaker:{basicConfig:{...Ny,color:"#FFFFFF",iconSrc:mAA},closedConfig:{...Ny,color:"#6b758a4d",iconSrc:fAA}},camera:{basicConfig:{...Ny,color:"#FFFFFF",iconSrc:hAA},closedConfig:{...Ny,color:"#6b758a4d",iconSrc:BAA}},hangup:{basicConfig:{...Ny,color:"#ED4651",iconSrc:nW},loadingConfig:{...Ny,color:"#ED4651",loadingWidth:"20px",loadingHeight:"20px"}},toggleButtonPanel:{basicConfig:{color:"transparent",width:"40px",height:"40px",shape:"circle",iconSize:40,iconSrc:UCA}}},KCA={mobile:{...by,groupCall:{video:{...by.groupCall.video,calling:{...by.groupCall.video.calling,...q1},connected:{...by.groupCall.video.connected,...q1}},audio:{...by.groupCall.audio,calling:{...by.groupCall.audio.calling,...q1},connected:{...by.groupCall.audio.connected,...q1}}}}},gC=(t,i)=>{var r;const l=Ko.isPC?"pc":"mobile",{status:I}=JU(),{callStatus:h,callRole:f,isGroupCall:w,callType:_}=Gs(jg()),b=ze((r=Fo?.[t])==null?void 0:r[i.value]);return br([i,I,h,w,_],()=>{var U,j,IA,nA,mA;const lA=w.value?"groupCall":"singleCall",cA=_.value===tr.AUDIO?"audio":"video";let TA="";h.value===ss.CALLING?TA=f.value===Vc.CALLER?"calling":"accept":h.value===ss.CONNECTED&&(TA="connected");let WA=qCA;I.value==="close"&&(WA=KCA),b.value=((mA=(nA=(IA=(j=(U=WA?.[l])==null?void 0:U[lA])==null?void 0:j[cA])==null?void 0:IA[TA])==null?void 0:nA[t])==null?void 0:mA[i.value])||{}},{immediate:!0}),b},jCA={options:{virtualHost:!0}},WCA=zi({...jCA,__name:"Minimize",setup(t){const i=gC("minimize",ze("basicConfig")),r=async()=>{if(document!=null&&document.fullscreenElement)try{document?.exitFullscreen()}catch(l){console.debug(l)}await ts.toggleMinimize()};return(l,I)=>(se(),Qi(Id,{iconSrc:aA(i).iconSrc,iconSize:aA(i).iconSize,onClick:r},null,8,["iconSrc","iconSize"]))}}),bs=(t,i)=>{const r=t.__vccOpts||t;for(const[l,I]of i)r[l]=I;return r},s6=bs(WCA,[["__scopeId","data-v-744bd8dc"]]),zCA={options:{virtualHost:!0}},ZCA=zi({...zCA,__name:"FullScreen",setup(t){const i=gC("fullScreen",ze("basicConfig")),r=async()=>{await kdA("tuicallkit-id")};return(l,I)=>(se(),Qi(Id,{iconSrc:aA(i).iconSrc,iconSize:aA(i).iconSize,onClick:r},null,8,["iconSrc","iconSize"]))}}),XCA=bs(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}},AhA={options:{virtualHost:!0}},yl=zi({...AhA,__name:"TKText",props:$CA,emits:["click"],setup(t,{emit:i}){const r=t,l=i,I=ja([`${Nn}-text`,{[`${Nn}-text--line-clamp`]:r.lineClamp}]),h=wt(()=>OY({maxWidth:r.width,fontSize:r.size,fontWeight:r.weight,color:r.color,textOverflow:r.truncated?"ellipsis":"auto","-webkit-line-clamp":r.lineClamp,...r.textStyle})),f=()=>{l("click")};return(w,_)=>(se(),At("span",{class:qi(aA(I)),style:Br([aA(h)]),onClick:f},[Fn(w.$slots,"default")],6))}}),pm={width:{type:String},height:{type:String},showText:{type:Boolean,default:!0},iconSize:{type:String}},ehA={class:"btn-content"},thA={options:{virtualHost:!0}},ihA=zi({...thA,__name:"InviteUser",props:pm,setup(t){const i=t,r=gC("inviteUser",ze("basicConfig")),l=og(),I=async()=>{it.update(oe.CALL,fA.SHOW_SELECT_USER,!0)};return(h,f)=>(se(),At("div",ehA,[bt(Id,{iconSrc:aA(r).iconSrc,color:aA(r).color,iconSize:aA(r).iconSize,width:i.width||aA(r).width,height:i.height||aA(r).height,shape:aA(r).shape,onClick:I},null,8,["iconSrc","color","iconSize","width","height","shape"]),h.showText?(se(),Qi(yl,{key:0,textStyle:aA(r).textStyle,color:aA(r).textColor,size:aA(r).textSize},{default:Li(()=>[Ia(ni(aA(l)("invite member")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),SAA=bs(ihA,[["__scopeId","data-v-7c062dcf"]]),ohA={color:{type:String,default:"#FFF"},callDuration:{type:String,default:""},fontSize:{type:String,default:"16px"}},shA={options:{virtualHost:!0}},PY=zi({...shA,__name:"Timer",props:ohA,setup(t){const i=t,r=wt(()=>({color:i.color,fontSize:i.fontSize}));return(l,I)=>(se(),At("span",{style:Br([aA(r)])},ni(l.callDuration),5))}}),nhA=t=>(gT("data-v-5c010454"),t=t(),cT(),t),rhA={class:"ai-transcriber-switch"},ahA={class:"ai-transcriber-switch__label"},ghA=nhA(()=>ne("div",{class:"ai-transcriber-switch__slider"},null,-1)),chA=[ghA],lhA=zi({__name:"AITranscriberSwitchPC",setup(t){const i=og(),{isAITranscriberRunning:r}=qU(),l=async()=>{try{r.value?await ts._aiAssistant.stopRealtimeTranscriber():await ts._aiAssistant.startRealtimeTranscriber({sourceLanguage:"zh",translationLanguages:["en"]})}catch(I){console.error("Failed to toggle AI transcriber:",I)}};return(I,h)=>(se(),At("div",rhA,[ne("span",ahA,ni(aA(i)("ai-subtitle")),1),ne("div",{class:qi(["ai-transcriber-switch__toggle",{"ai-transcriber-switch__toggle--active":aA(r)}]),onClick:l},chA,2)]))}}),IhA=bs(lhA,[["__scopeId","data-v-5c010454"]]),uhA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEyLjExODJIMTcuMzMzVjMuNjY2OTlIMi42NjY5OVYxNi4zMzNIOC4xODk0NVYxOEgxVjJIMTlWMTIuMTE4MloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOSIvPgo8cGF0aCBkPSJNMTUuNjY2NyA4LjAyMjAyQzE1LjY2NjcgOC4wMjIwMiAxNC45Njc3IDcuNzI1MzMgMTMuNzg0OSA3Ljc3NDc4QzEzLjA4NiA3LjgyNDIyIDEyLjU0ODQgNy45NzI1NyAxMi4xNzIgOC4zNjgxNUMxMS43NDE5IDguODEzMTkgMTEuNTI2OSA5LjM1NzExIDExLjUyNjkgMTAuMDQ5NEMxMS41MjY5IDEwLjc0MTcgMTEuNzQxOSAxMS4yMzYxIDEyLjExODMgMTEuNjMxN0MxMi40OTQ2IDExLjk3NzkgMTIuOTc4NSAxMi4xMjYyIDEzLjYyMzcgMTIuMTc1N0MxNC40MzAxIDEyLjI3NDUgMTUuNjY2NyAxMS45Nzc5IDE1LjY2NjcgMTEuOTc3OVYxMy4yNjM1QzE1LjY2NjcgMTMuMjYzNSAxNC43NTI3IDEzLjQ2MTMgMTMuNTE2MSAxMy40NjEzQzEyLjQ5NDYgMTMuNDYxMyAxMS42ODgyIDEzLjExNTIgMTEuMDQzIDEyLjUyMThDMTAuNDUxNiAxMS44NzkgMTAuMTI5IDExLjA4NzggMTAuMTI5IDEwLjA5ODhDMTAuMTI5IDkuMDYwNDMgMTAuNDUxNiA4LjE3MDM2IDExLjE1MDUgNy41Mjc1NEMxMS44NDk1IDYuODg0NzEgMTIuNzA5NyA2LjUzODU3IDEzLjc4NDkgNi41Mzg1N0MxNC43NTI3IDYuNTM4NTcgMTUuNjY2NyA2LjczNjM3IDE1LjY2NjcgNi43MzYzN1Y4LjAyMjAyWiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjxwYXRoIGQ9Ik05LjUzNzYzIDguMDIyMDJDOS41Mzc2MyA4LjAyMjAyIDguODM4NzEgNy43MjUzMyA3LjY1NTkyIDcuNzc0NzhDNi45NTY5OSA3LjgyNDIyIDYuNDE5MzYgNy45NzI1NyA2LjA0MzAxIDguMzY4MTVDNS42MTI5IDguODEzMTkgNS4zOTc4NSA5LjM1NzExIDUuMzk3ODUgMTAuMDQ5NEM1LjM5Nzg1IDEwLjc0MTcgNS42MTI5IDExLjIzNjEgNS45ODkyNSAxMS42MzE3QzYuMzY1NTkgMTEuOTc3OSA2Ljg0OTQ2IDEyLjEyNjIgNy40OTQ2MiAxMi4xNzU3QzguMzAxMDggMTIuMjc0NSA5LjUzNzYzIDExLjk3NzkgOS41Mzc2MyAxMS45Nzc5VjEzLjI2MzVDOS41Mzc2MyAxMy4yNjM1IDguNjIzNjYgMTMuNDYxMyA3LjM4NzEgMTMuNDYxM0M2LjM2NTU5IDEzLjQ2MTMgNS41NTkxNCAxMy4xMTUyIDQuOTEzOTggMTIuNTIxOEM0LjMyMjU4IDExLjg3OSA0IDExLjA4NzggNCAxMC4wOTg4QzQgOS4wNjA0MyA0LjMyMjU4IDguMTcwMzYgNS4wMjE1MSA3LjUyNzU0QzUuNzIwNDMgNi44ODQ3MSA2LjU4MDY1IDYuNTM4NTcgNy42NTU5MiA2LjUzODU3QzguNjIzNjYgNi41Mzg1NyA5LjUzNzYzIDYuNzM2MzcgOS41Mzc2MyA2LjczNjM3VjguMDIyMDJaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkiLz4KPHBhdGggZD0iTTEwIDE3LjA5MTZDMTAgMTUuNzEwOCAxMS4xMTkzIDE0LjU5MTYgMTIuNSAxNC41OTE2SDE3LjVDMTguODgwNyAxNC41OTE2IDIwIDE1LjcxMDggMjAgMTcuMDkxNkMyMCAxOC40NzIzIDE4Ljg4MDcgMTkuNTkxNiAxNy41IDE5LjU5MTZIMTIuNUMxMS4xMTkzIDE5LjU5MTYgMTAgMTguNDcyMyAxMCAxNy4wOTE2WiIgZmlsbD0iIzQ1ODhGNSIvPgo8cmVjdCB4PSIxNS41MDQyIiB5PSIxNS4wOTE2IiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiByeD0iMiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",EhA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEyLjExODJIMTcuMzMzVjMuNjY2OTlIMi42NjY5OVYxNi4zMzNIOC4xODk0NVYxOEgxVjJIMTlWMTIuMTE4MloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOSIvPgo8cGF0aCBkPSJNMTUuNjY2NyA4LjAyMjAyQzE1LjY2NjcgOC4wMjIwMiAxNC45Njc3IDcuNzI1MzMgMTMuNzg0OSA3Ljc3NDc4QzEzLjA4NiA3LjgyNDIyIDEyLjU0ODQgNy45NzI1NyAxMi4xNzIgOC4zNjgxNUMxMS43NDE5IDguODEzMTkgMTEuNTI2OSA5LjM1NzExIDExLjUyNjkgMTAuMDQ5NEMxMS41MjY5IDEwLjc0MTcgMTEuNzQxOSAxMS4yMzYxIDEyLjExODMgMTEuNjMxN0MxMi40OTQ2IDExLjk3NzkgMTIuOTc4NSAxMi4xMjYyIDEzLjYyMzcgMTIuMTc1N0MxNC40MzAxIDEyLjI3NDUgMTUuNjY2NyAxMS45Nzc5IDE1LjY2NjcgMTEuOTc3OVYxMy4yNjM1QzE1LjY2NjcgMTMuMjYzNSAxNC43NTI3IDEzLjQ2MTMgMTMuNTE2MSAxMy40NjEzQzEyLjQ5NDYgMTMuNDYxMyAxMS42ODgyIDEzLjExNTIgMTEuMDQzIDEyLjUyMThDMTAuNDUxNiAxMS44NzkgMTAuMTI5IDExLjA4NzggMTAuMTI5IDEwLjA5ODhDMTAuMTI5IDkuMDYwNDMgMTAuNDUxNiA4LjE3MDM2IDExLjE1MDUgNy41Mjc1NEMxMS44NDk1IDYuODg0NzEgMTIuNzA5NyA2LjUzODU3IDEzLjc4NDkgNi41Mzg1N0MxNC43NTI3IDYuNTM4NTcgMTUuNjY2NyA2LjczNjM3IDE1LjY2NjcgNi43MzYzN1Y4LjAyMjAyWiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjxwYXRoIGQ9Ik05LjUzNzYzIDguMDIyMDJDOS41Mzc2MyA4LjAyMjAyIDguODM4NzEgNy43MjUzMyA3LjY1NTkyIDcuNzc0NzhDNi45NTY5OSA3LjgyNDIyIDYuNDE5MzYgNy45NzI1NyA2LjA0MzAxIDguMzY4MTVDNS42MTI5IDguODEzMTkgNS4zOTc4NSA5LjM1NzExIDUuMzk3ODUgMTAuMDQ5NEM1LjM5Nzg1IDEwLjc0MTcgNS42MTI5IDExLjIzNjEgNS45ODkyNSAxMS42MzE3QzYuMzY1NTkgMTEuOTc3OSA2Ljg0OTQ2IDEyLjEyNjIgNy40OTQ2MiAxMi4xNzU3QzguMzAxMDggMTIuMjc0NSA5LjUzNzYzIDExLjk3NzkgOS41Mzc2MyAxMS45Nzc5VjEzLjI2MzVDOS41Mzc2MyAxMy4yNjM1IDguNjIzNjYgMTMuNDYxMyA3LjM4NzEgMTMuNDYxM0M2LjM2NTU5IDEzLjQ2MTMgNS41NTkxNCAxMy4xMTUyIDQuOTEzOTggMTIuNTIxOEM0LjMyMjU4IDExLjg3OSA0IDExLjA4NzggNCAxMC4wOTg4QzQgOS4wNjA0MyA0LjMyMjU4IDguMTcwMzYgNS4wMjE1MSA3LjUyNzU0QzUuNzIwNDMgNi44ODQ3MSA2LjU4MDY1IDYuNTM4NTcgNy42NTU5MiA2LjUzODU3QzguNjIzNjYgNi41Mzg1NyA5LjUzNzYzIDYuNzM2MzcgOS41Mzc2MyA2LjczNjM3VjguMDIyMDJaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkiLz4KPHJlY3QgeD0iMTAiIHk9IjE0LjU5MTYiIHdpZHRoPSIxMCIgaGVpZ2h0PSI1IiByeD0iMi41IiBmaWxsPSIjNjc2QTcwIi8+CjxyZWN0IHg9IjEwLjQ5OTciIHk9IjE1LjA5MTYiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHJ4PSIyIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",dhA=zi({__name:"AITranscriberSwitchH5",setup(t){const{isAITranscriberRunning:i}=qU(),r=async()=>{try{i.value?await ts._aiAssistant.stopRealtimeTranscriber():await ts._aiAssistant.startRealtimeTranscriber({sourceLanguage:"zh",translationLanguages:["en"]})}catch(l){console.error("Failed to toggle AI transcriber:",l)}};return(l,I)=>(se(),At("div",{onClick:r},[aA(i)?(se(),Qi(fl,{key:0,src:aA(uhA),width:"24px",height:"24px"},null,8,["src"])):(se(),Qi(fl,{key:1,src:aA(EhA),width:"24px",height:"24px"},null,8,["src"]))]))}}),ChA={class:"topbar-right-controls"},hhA={class:"top-bar-left-controls"},BhA={class:"control-item"},QhA={class:"control-item"},phA={options:{virtualHost:!0}},mhA=zi({...phA,__name:"TopBar",props:XdA,setup(t){const i=Ko.isPC,{callStatus:r,isGroupCall:l,callRole:I,allowedFullScreen:h}=Gs(jg()),{callDuration:f}=_4(),{isAITranscriberEnabled:w}=qU(),_=HU(),b=wt(()=>r.value===ss.CONNECTED),U=ze(it.getData(oe.CALL,fA.ENABLE_FLOAT_WINDOW)),j=wt(()=>r.value===ss.CONNECTED&&w.value),IA=wt(()=>{var lA,cA;return!l.value||((cA=(lA=_.value.button)==null?void 0:lA[Sv.InviteUser])==null?void 0:cA.show)===!1?!1:r.value===ss.CALLING?I.value===Vc.CALLER:!0});function nA(lA){U.value=lA}const mA={[fA.ENABLE_FLOAT_WINDOW]:nA};return hc(()=>{it.watch(oe.CALL,mA,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{...mA})}),(lA,cA)=>(se(),At("div",{style:Br(lA.customStyle),class:"top-bar-container"},[aA(i)?(se(),Qi(aU,{key:0},{default:Li(()=>[bt(zC,{span:8}),bt(zC,{span:8,justify:"center",align:"center"},{default:Li(()=>[aA(b)?(se(),Qi(PY,{key:0,"call-duration":aA(f)},null,8,["call-duration"])):$t("",!0)]),_:1}),bt(zC,{span:8,justify:"end",align:"center"},{default:Li(()=>[ne("div",ChA,[aA(j)?(se(),Qi(IhA,{key:0})):$t("",!0),aA(U)?(se(),Qi(s6,{key:1})):$t("",!0),aA(h)?(se(),Qi(XCA,{key:2})):$t("",!0)])]),_:1})]),_:1})):$t("",!0),aA(i)?$t("",!0):(se(),Qi(aU,{key:1},{default:Li(()=>[bt(zC,{span:8,align:"center"},{default:Li(()=>[ne("div",hhA,[ne("div",BhA,[!aA(i)&&aA(U)?(se(),Qi(s6,{key:0})):$t("",!0)]),ne("div",QhA,[aA(j)?(se(),Qi(dhA,{key:0})):$t("",!0)])])]),_:1}),bt(zC,{span:8,justify:"center",align:"center"},{default:Li(()=>[aA(b)?(se(),Qi(PY,{key:0,"call-duration":aA(f)},null,8,["call-duration"])):$t("",!0)]),_:1}),bt(zC,{span:8,justify:"end",align:"center"},{default:Li(()=>[bt(aU,null,{default:Li(()=>[bt(zC,{span:16}),bt(zC,{span:8,justify:"center"},{default:Li(()=>[aA(IA)?(se(),Qi(SAA,{key:0,"show-text":aA(i)},null,8,["show-text"])):$t("",!0)]),_:1})]),_:1})]),_:1})]),_:1}))],4))}}),MAA=bs(mhA,[["__scopeId","data-v-3317b720"]]),fhA={key:0,class:"auto-play-dialog"},yhA={options:{virtualHost:!0}},DhA=zi({...yhA,__name:"AutoPlayDialog",setup(t){const i=og(),r=ze(!1);hc(()=>{ts.getTUICallEngineInstance().getTRTCCloudInstance().on("onAutoPlayFailed",l)}),Kg(()=>{ts.getTUICallEngineInstance().getTRTCCloudInstance().off("onAutoPlayFailed",l)});const l=()=>{r.value=!0},I=()=>{r.value=!1};return(h,f)=>aA(r)&&aA(Ko).isH5?(se(),At("div",fhA,[ne("div",null,ni(aA(i)("auto play failed")),1),ne("div",{class:"auto-play-action",onClick:I},ni(aA(i)("click to resume")),1)])):$t("",!0)}}),vAA=bs(DhA,[["__scopeId","data-v-5493446f"]]),ShA={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}},MhA=["click","error"],vhA={options:{virtualHost:!0}},RAA=zi({...vhA,__name:"Overlay",props:ShA,emits:MhA,setup(t,{emit:i}){const r=t,l=i,I=ja([`${Nn}-overlay`,r.customClass]),h=`${Nn}-overlay_mask-container`,f=wt(()=>ja([`${Nn}-overlay_mask`,{[`${Nn}-blur`]:r.blur}])),w=`${Nn}-overlay_slot`,_=wt(()=>({zIndex:r.zIndex,...r.customStyle})),b=wt(()=>({backgroundColor:r.bgColor,...r.customMaskStyle}));function U(){l("click")}const j=IA=>{l("error",IA)};return(IA,nA)=>IA.show?(se(),At("div",{key:0,class:qi(aA(I)),style:Br([aA(_)]),onClick:U},[ne("div",{class:qi(h)},[IA.showMask?(se(),At("div",{key:0,class:qi(aA(f)),style:Br([aA(b)])},null,6)):$t("",!0),IA.showBackgroundImage?(se(),Qi(fl,{key:1,fit:IA.fit,src:IA.bgImage,width:"100%",height:"100%",defaultSrc:IA.defaultSrc,onError:j},null,8,["fit","src","defaultSrc"])):$t("",!0)]),ne("div",{class:qi(w)},[Fn(IA.$slots,"default")])],6)):$t("",!0)}}),RhA=["fill","contain","cover"],whA=["circle","square"],_hA={icon:{type:String},size:{type:[Number,String],default:100},shape:{type:String,values:whA,default:"square"},src:{type:String},defaultSrc:{type:String},text:{type:String},fit:{type:String,values:RhA,default:"cover"},customClass:{type:String}},ThA={options:{virtualHost:!0}},wAA=zi({...ThA,__name:"Avatar",props:_hA,setup(t){const i=t,r=ze("");br(()=>i.src,()=>{r.value=i.src},{immediate:!0});const l=wt(()=>ja([`${Nn}-avatar`,`${Nn}-avatar--${i.shape}`,`${Nn}-avatar--${i.size}`,i.customClass])),I=wt(()=>typeof i.size=="number"?`${i.size}px`:i.size),h=wt(()=>typeof i.size=="number"?`${i.size}px`:i.size),f=wt(()=>({width:I.value,height:h.value}));function w(_){console.error(_),i.defaultSrc&&(r.value=i.defaultSrc)}return(_,b)=>(se(),At("div",{class:qi(aA(l)),style:Br([aA(f)])},[aA(r)?(se(),Qi(fl,{key:0,fit:_.fit,width:aA(I),height:aA(h),src:aA(r),onError:w},null,8,["fit","width","height","src"])):Fn(_.$slots,"default",{key:1})],6))}}),NhA="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjE0OTkgMTFWMTIuNUMzLjE0OTkgMTcuMzg3NyA3LjExMjE4IDIxLjM1IDExLjk5OTkgMjEuMzVDMTYuODg3NiAyMS4zNSAyMC44NDk5IDE3LjM4NzcgMjAuODQ5OSAxMi41VjExSDE5LjE0OTlWMTIuNUMxOS4xNDk5IDE2LjQ0ODggMTUuOTQ4NyAxOS42NSAxMS45OTk5IDE5LjY1QzguMDUxMDcgMTkuNjUgNC44NDk5IDE2LjQ0ODggNC44NDk5IDEyLjVWMTFIMy4xNDk5WiIgZmlsbD0iI2ZmZiIvPgogIDxyZWN0IHg9IjcuODUiIHk9IjEuODUiIHdpZHRoPSI4LjMiIGhlaWdodD0iMTQuOCIgcng9IjQuMTUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPC9zdmc+",GhA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguNzM3MDggMTIuOTk2M0M4LjcxMjY2IDEyLjgzNDQgOC43IDEyLjY2ODcgOC43IDEyLjVWNkM4LjcgNC4xNzc0NiAxMC4xNzc1IDIuNyAxMiAyLjdDMTMuNTQ4OCAyLjcgMTQuODQ4NCAzLjc2Njk1IDE1LjIwMzggNS4yMDU5MkwxNi40NDU4IDMuNzA5NzRDMTUuNjE1IDIuMTAwMzMgMTMuOTM2IDEgMTIgMUM5LjIzODU4IDEgNyAzLjIzODU4IDcgNlYxMi41QzcgMTMuMjMzMyA3LjE1Nzg2IDEzLjkyOTcgNy40NDE0NSAxNC41NTcyTDguNzM3MDggMTIuOTk2M1pNMTEuMzM4NSAxNS43MzM3TDEwLjE2MTggMTcuMTUxM0MxMC43MzA4IDE3LjM3NjMgMTEuMzUwOSAxNy41IDEyIDE3LjVDMTQuNzYxNCAxNy41IDE3IDE1LjI2MTQgMTcgMTIuNVY4LjkxMzNMMTUuMyAxMC45NjEzVjEyLjVDMTUuMyAxNC4zMjI1IDEzLjgyMjUgMTUuOCAxMiAxNS44QzExLjc3MzQgMTUuOCAxMS41NTIyIDE1Ljc3NzIgMTEuMzM4NSAxNS43MzM3Wk01Ljk2NTE5IDE2LjMzNTZDNS4yNTkzMyAxNS4yMjczIDQuODUwMzkgMTMuOTExNCA0Ljg1MDM5IDEyLjVWMTFIMy4xNTAzOVYxMi41QzMuMTUwMzkgMTQuNDQxNiAzLjc3NTYyIDE2LjIzNzEgNC44MzU3MiAxNy42OTYzTDUuOTY1MTkgMTYuMzM1NlpNNy42MzIxOCAyMC4xOTg2TDguNzM5NCAxOC44NjQ3QzkuNzE3MTggMTkuMzY2NyAxMC44MjU3IDE5LjY1IDEyLjAwMDQgMTkuNjVDMTUuOTQ5MiAxOS42NSAxOS4xNTA0IDE2LjQ0ODggMTkuMTUwNCAxMi41VjExSDIwLjg1MDRWMTIuNUMyMC44NTA0IDE3LjA0OTggMTcuNDE3MSAyMC43OTc2IDEzIDIxLjI5NDJWMjRIMTFWMjEuMjk0MUM5Ljc4NjEzIDIxLjE1NzUgOC42NDY1OCAyMC43NzU0IDcuNjMyMTggMjAuMTk4NloiIGZpbGw9IiNmZmYiIC8+CiAgPHBhdGggZD0iTTUuNzM2ODIgMTkuNTUxM0wxOC4yNjY3IDQuNDYzNzEiIHN0cm9rZT0iI0VENDE0RCIgc3R5bGU9InN0cm9rZTojRUQ0MTREO3N0cm9rZTpjb2xvcihkaXNwbGF5LXAzIDAuOTI5MiAwLjI1NTUgMC4zMDA0KTtzdHJva2Utb3BhY2l0eToxOyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4KCg==",bhA={isMuted:{type:Boolean,default:!1},volume:{type:Number,default:0}},khA={class:"mic-container"},LhA={class:"mic-level-container"},UhA={options:{virtualHost:!0}},FhA=zi({...UhA,__name:"MicrophoneVolume",props:bhA,setup(t){const i=t,r=wt(()=>i.isMuted?GhA:NhA),l=wt(()=>i.isMuted||!i.volume?"":`height: ${i.volume*4}%`);return(I,h)=>(se(),At("div",khA,[ne("div",LhA,[ne("div",{class:"mic-level",style:Br(aA(l))},null,4)]),bt(vQ,{src:aA(r)},null,8,["src"])]))}}),_AA=bs(FhA,[["__scopeId","data-v-ea062939"]]),Em="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJ1cmwoI2EpIiBkPSJNLTUtNWgxMTB2MTEwSC01eiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjUgNzEuNWMwLTEwLjI2NCA3LjkzLTE4LjY3NiAxNy45OTgtMTkuNDQzLjQ5Ni0uMDM4Ljk5Ny0uMDU3IDEuNTAyLS4wNTdoMTNjLjUwNSAwIDEuMDA2LjAyIDEuNTAxLjA1N0M2OS4wNyA1Mi44MjQgNzcgNjEuMjM2IDc3IDcxLjV2Ni43ODNIMjVWNzEuNXpNNDQuNSA0NS42MDVhMTQuMDc1IDE0LjA3NSAwIDAgMS0uMjA1LS4xMDRjLTQuNzA0LTIuNDMxLTcuOTItNy4zNC03LjkyLTEzLjAwMSAwLTguMDc3IDYuNTQ4LTE0LjYyNSAxNC42MjUtMTQuNjI1UzY1LjYyNSAyNC40MjMgNjUuNjI1IDMyLjVjMCA1LjY2LTMuMjE2IDEwLjU3LTcuOTIgMTMtLjA2OC4wMzYtLjEzNi4wNy0uMjA1LjEwNWExNC41NjUgMTQuNTY1IDAgMCAxLTYuNSAxLjUyYy0yLjMzNSAwLTQuNTQyLS41NDctNi41LTEuNTJ6IiBmaWxsPSIjRDVFMEYyIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNzMuNSIgeTE9Ii01IiB4Mj0iNSIgeTI9Ijk4LjUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjN0M4NTlCIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzQ3QzkwIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+",OhA={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:Em},overlayZIndex:{type:Number},customOverlayClass:{type:String},fit:{type:String},showLoading:{type:Boolean,default:!1},showAvatar:{type:Boolean,default:!0},avatar:{type:String,default:Em},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}},PhA=["error"],xhA={class:"overlay-stream-content-container"},YhA={class:"overlay-stream-content"},VhA={class:"overlay-stream-avatar"},JhA={class:"overlay-stream-info"},HhA={class:"overlay-stream-tip"},qhA={key:0},KhA={options:{virtualHost:!0}},jhA=zi({...KhA,__name:"OverlayStream",props:OhA,emits:PhA,setup(t,{emit:i}){const r=i,l=t,I=ze(100),{isFloatWindow:h}=Gs(gB()),f=Ko.isPC?"40px":"20px";br([()=>l.isSmallWindow,h],()=>{h.value?I.value=l.isSmallWindow?20:40:I.value=l.isSmallWindow?40:100},{immediate:!0});const w=wt(()=>ja(["overlay-stream-container",{pc:Ko.isPC,mobile:!Ko.isPC,float:h.value}])),_=b=>{r("error",b)};return(b,U)=>b.showOverlayStream?(se(),At("div",{key:0,class:qi(aA(w)),style:Br([b.customStyle])},[bt(RAA,{show:b.showOverlay,"show-background-image":b.showBackgroundImage,"show-mask":b.showMask,blur:b.blur,zIndex:b.overlayZIndex,bgColor:b.bgColor,bgImage:b.bgImage||aA(Em),fit:b.fit,defaultSrc:aA(Em),customStyle:{position:"absolute",width:"100%",height:"100%"},"custom-mask-style":{"backdrop-filter":"blur(12px)","-webkit-backdrop-filter":"blur(12px)"},customClass:b.customOverlayClass,onError:_},{default:Li(()=>[ne("div",xhA,[ne("div",YhA,[b.showLoading?(se(),Qi(T4,{key:0,mode:"dot"})):$t("",!0),ne("div",VhA,[b.showAvatar?(se(),Qi(wAA,{key:0,src:b.avatar||aA(Em),size:aA(I)},null,8,["src","size"])):$t("",!0)]),ne("div",JhA,[b.showUserName?(se(),Qi(yl,{key:0,truncated:!0,size:aA(f),color:b.color,width:"200px",weight:500},{default:Li(()=>[Ia(ni(b.username),1)]),_:1},8,["size","color"])):$t("",!0),b.showMicVolume?(se(),Qi(_AA,{key:1,isMuted:b.isMuted,volume:b.volume},null,8,["isMuted","volume"])):$t("",!0)]),ne("div",HhA,[b.showTip&&b.tip?(se(),At("div",qhA,ni(b.tip),1)):$t("",!0)])]),Fn(b.$slots,"default",{},void 0,!0)])]),_:3},8,["show","show-background-image","show-mask","blur","zIndex","bgColor","bgImage","fit","defaultSrc","customClass"])],6)):$t("",!0)}}),TAA=bs(jhA,[["__scopeId","data-v-a2512d7c"]]),WhA={class:"waiting-container"},zhA={key:0,class:"groupcall-info"},ZhA={class:"tip"},XhA={class:"avatar-group"},$hA={class:"avatar-item"},ABA=zi({__name:"Waiting",setup(t){const{localUserInfoExcludeVolume:i,remoteUserListExcludeVolume:r}=Gs(cC()),{callerUserInfo:l}=Gs(bdA()),{isGroupCall:I}=Gs(jg()),h=IAA(),f=og(),w=wt(()=>{var cA,TA;return I.value?l.value.displayUserInfo:(TA=(cA=r.value)==null?void 0:cA[0])==null?void 0:TA.displayUserInfo}),_=wt(()=>{var cA,TA;return I.value?l.value.avatar:(TA=(cA=r.value)==null?void 0:cA[0])==null?void 0:TA.avatar}),b=wt(()=>I.value?!0:!i.value.isVideoAvailable),U=wt(()=>I.value?f.value("Invited group call"):null),j=wt(()=>{var cA,TA;return I.value?h.value[l.value.userId]||_.value:h.value[(TA=(cA=r.value)==null?void 0:cA[0])==null?void 0:TA.userId]||_.value}),IA=ze(!1),nA=ze("fill");let mA=ze(!1);lT(()=>{var cA,TA,WA,Ee;if(mA.value){IA.value=I.value?!0:!i.value.isVideoAvailable,nA.value="cover";return}I.value?(IA.value=!h.value[l.value.userId],nA.value=h.value[l.value.userId]?"fill":"cover"):(IA.value=!i.value.isVideoAvailable&&!h.value[(TA=(cA=r.value)==null?void 0:cA[0])==null?void 0:TA.userId],nA.value=h.value[(Ee=(WA=r.value)==null?void 0:WA[0])==null?void 0:Ee.userId]?"fill":"cover")});const lA=()=>{mA.value=!0};return(cA,TA)=>(se(),At("div",WhA,[bt(TAA,{username:aA(w),avatar:aA(_),"bg-image":aA(j),"show-avatar":!aA(Ko).isPC,"show-loading":!1,"bg-color":"#22262ed9","show-mask":aA(IA),"show-background-image":aA(b),tip:aA(U),fit:aA(nA),onError:lA},{default:Li(()=>[!aA(Ko).isPC&&aA(I)?(se(),At("div",zhA,[ne("div",ZhA,[bt(yl,{color:"#FFF"},{default:Li(()=>[Ia(ni(aA(r).length)+ni(aA(f)("people in the call")),1)]),_:1})]),ne("div",XhA,[(se(!0),At(vr,null,fE(aA(r),WA=>(se(),At("div",$hA,[bt(wAA,{size:"100%",src:WA.avatar||aA(Em)},null,8,["src"])]))),256))])])):$t("",!0)]),_:1},8,["username","avatar","bg-image","show-avatar","show-mask","show-background-image","tip","fit"])]))}}),NAA=bs(ABA,[["__scopeId","data-v-8dc3669f"]]),eBA={bigWindow:{type:String},showSmallWindow:{type:Boolean,default:!0},smallWindowWidth:{type:String,default:"30%"},smallWindowHeight:{type:String,default:"30%"}},tBA=["toggle"],GAA="ToggleWindowContextKey",iBA={options:{virtualHost:!0}},oBA=zi({...iBA,__name:"ToggleWindow",props:eBA,emits:tBA,setup(t,{emit:i}){const r=t,l=i,I=ze(r.bigWindow),h=`${Nn}-toggle-window`,f=w=>{I.value=w,l("toggle",w)};return br(()=>r.bigWindow,()=>{I.value=r.bigWindow}),cd(GAA,{bigWindow:I,toggleWindow:f,smallWindowWidth:vj(r,"smallWindowWidth"),smallWindowHeight:vj(r,"smallWindowHeight"),showSmallWindow:vj(r,"showSmallWindow")}),(w,_)=>(se(),At("div",{class:qi(h)},[Fn(w.$slots,"default")]))}}),sBA={options:{virtualHost:!0}},nBA=zi({...sBA,__name:"Portal",props:["disabled"],setup(t){return(i,r)=>{const l=tnA("root-portal");return se(),Qi(l,{enable:!t.disabled},{default:Li(()=>[Fn(i.$slots,"default")]),_:3},8,["enable"])}}}),rBA={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 aBA(t,i,r,l,I,h){return se(),At("div",null,[Fn(t.$slots,"default")])}const gBA=bs(rBA,[["render",aBA]]),cBA={options:{virtualHost:!0}},lBA=zi({...cBA,__name:"Portal",props:["disabled","to"],setup(t){return(i,r)=>(se(),Qi(xsA,{disabled:t.disabled,to:t.to},[Fn(i.$slots,"default")],8,["disabled","to"]))}}),IBA={disabled:{type:Boolean,default:!1},to:{type:String,default:"body"},source:{type:String,default:"body"}},bAA=zi({__name:"Portal",props:IBA,setup(t){const{majorVersion:i}=aCA();wt(()=>i==="3");const r=wt(()=>i==="2");return(l,I)=>(se(),At("div",null,[aA(uAA)?(se(),Qi(nBA,{key:0,disabled:l.disabled},{default:Li(()=>[Fn(l.$slots,"default")]),_:3},8,["disabled"])):aA(r)?(se(),Qi(gBA,{key:1,disabled:l.disabled,to:l.to,source:l.source},{default:Li(()=>[Fn(l.$slots,"default")]),_:3},8,["disabled","to","source"])):(se(),Qi(lBA,{key:2,disabled:l.disabled,to:l.to},{default:Li(()=>[Fn(l.$slots,"default")]),_:3},8,["disabled","to"]))]))}}),uBA={value:{type:String}},EBA={options:{virtualHost:!0}},n6=zi({...EBA,__name:"ToggleWindowItem",props:uBA,setup(t){const i=t,{bigWindow:r,toggleWindow:l,smallWindowWidth:I,smallWindowHeight:h,showSmallWindow:f}=VI(GAA),w=wt(()=>ja([`${Nn}-toggle-window-item`,`${Nn}-toggle-window-item--${r.value===i.value?"big":"small"}`,{pc:oD,mobile:!oD}])),_=wt(()=>{let b={};return r.value!==i.value&&(b={width:I.value,height:h.value},f.value?b.visibility="":b.visibility="hidden"),b});return(b,U)=>(se(),At("div",{class:qi(aA(w)),style:Br([aA(_)]),onClick:U[0]||(U[0]=()=>aA(l)(b.value))},[Fn(b.$slots,"default")],6))}}),N4={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}},kAA="data:image/png;base64,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",dBA={class:"stream-userInfo"},CBA={class:"nickname"},hBA={key:0},BBA={options:{virtualHost:!0}},QBA=zi({...BBA,__name:"StreamInfoPC",props:N4,setup(t){const i=og();return(r,l)=>(se(),Qi(aU,null,{default:Li(()=>[bt(zC,{span:12,justify:"start",align:"center"},{default:Li(()=>[ne("div",dBA,[bt(_AA,{class:"mic-volume","is-muted":r.isMuted,volume:r.volume},null,8,["is-muted","volume"]),ne("div",CBA,[bt(yl,{color:"#fff",truncated:!0,width:"80px",size:"14px"},{default:Li(()=>[Ia(ni(r.nickName),1)]),_:1}),Ta(bt(yl,{color:"#fff",size:"14px"},{default:Li(()=>[Ia(ni(aA(i)("me")),1)]),_:1},512),[[Ka,r.isSelf]])])])]),_:1}),bt(zC,{span:12,justify:"center"},{default:Li(()=>[r.showNetWorkStatus?(se(),At("div",hBA,[bt(fl,{width:"24px",height:"24px",src:aA(kAA)},null,8,["src"])])):$t("",!0)]),_:1})]),_:1}))}}),pBA=bs(QBA,[["__scopeId","data-v-73beaeef"]]),mBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48Y2lyY2xlIGN4PSIxNCIgY3k9IjE0IiByPSIxMiIgZmlsbD0iI2ZmZiIvPjwvZz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1LjgxMiAyMi41MzhjNC43MTYtNC43MTUgNC43MTYtMTIuMzYgMC0xNy4wNzZsLTEuNzY3IDEuNzY3YTkuNTc1IDkuNTc1IDAgMCAxIDAgMTMuNTQxbDEuNzY3IDEuNzY4eiIgZmlsbD0iIzFDNjZFNSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMTg4IDE5LjEzNmE3LjI2NCA3LjI2NCAwIDAgMCAwLTEwLjI3M2wtMS43NjggMS43NjhhNC43NjQgNC43NjQgMCAwIDEgMCA2LjczN2wxLjc2OCAxLjc2OHpNOS4xMjEgMTYuMDdhMi45MjcgMi45MjcgMCAwIDAgMC00LjE0bC0yLjAxOCAyLjAxOGEuMDczLjA3MyAwIDAgMSAwIC4xMDNsMi4wMTggMi4wMTh6IiBmaWxsPSIjMUM2NkU1Ii8+PGRlZnM+PGZpbHRlciBpZD0iYSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+PGZlT2Zmc2V0Lz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+PGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfMTI0XzY0NyIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd18xMjRfNjQ3IiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",fBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48Y2lyY2xlIGN4PSIxNCIgY3k9IjE0IiByPSIxMiIgZmlsbD0iI2ZmZiIvPjwvZz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjY2NyAxMGEzLjMzMyAzLjMzMyAwIDAgMSA1LjkzNy0yLjA4bC01Ljg3MiA3LjA3M2EzLjM0NSAzLjM0NSAwIDAgMS0uMDY1LS42NlYxMHpNOS42MyAxNi4zMjFhNC43ODIgNC43ODIgMCAwIDEtLjQzLTEuOTg4di0xSDguMTMzdjFjMCAxLjA0Ny4yNzUgMi4wMy43NTUgMi44ODFsLjc0Mi0uODkzem0xLjI4MyAzLjAwMi42OS0uODNhNC44IDQuOCAwIDAgMCA3LjE5OC00LjE2di0xaDEuMDY2djFhNS44NjcgNS44NjcgMCAwIDEtNS4zMzQgNS44NDNWMjJoLTEuMDY2di0xLjgyNGE1LjgzMSA1LjgzMSAwIDAgMS0yLjU1NC0uODUzem0xLjY0Ni0xLjk4MyA0Ljc3NC01Ljc1MXYyLjc0NGEzLjMzMyAzLjMzMyAwIDAgMS00Ljc3NCAzLjAwN3oiIGZpbGw9IiNFNjM5NUMiLz48cGF0aCBkPSJtOS40MjMgMTguODQ1IDguMzYtMTAuMDY3IiBzdHJva2U9IiNFNjM5NUMiIHN0cm9rZS13aWR0aD0iMS4wNjciIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48ZGVmcz48ZmlsdGVyIGlkPSJhIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz48ZmVPZmZzZXQvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz48ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJvdXQiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjUgMCIvPjxmZUJsZW5kIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18xNzQxXzEwNjc4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzE3NDFfMTA2NzgiIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+",yBA={key:0},DBA={options:{virtualHost:!0}},SBA=zi({...DBA,__name:"StreamInfoMobile",props:N4,setup(t){const{enableVirtualBackground:i}=Gs(jg()),r=async()=>{await ts.switchCamera()},l=async()=>{await ts.setBlurBackground(!i.value)};return(I,h)=>(se(),Qi(aU,{"custom-style":{padding:"2px 5px"}},{default:Li(()=>[bt(zC,{span:12,justify:"start",align:"center"},{default:Li(()=>[I.showNickName?(se(),Qi(yl,{key:0,width:"100px",truncated:!0,color:"#FFF"},{default:Li(()=>[Ia(ni(I.nickName),1)]),_:1})):$t("",!0),Ta(ne("div",null,[bt(vQ,{size:24,src:aA(mBA)},null,8,["src"])],512),[[Ka,!I.isMuted&&I.volume]]),Ta(ne("div",null,[bt(vQ,{size:24,src:aA(fBA)},null,8,["src"])],512),[[Ka,I.isMuted]])]),_:1}),bt(zC,{span:12,justify:"end",align:"center"},{default:Li(()=>[I.showNetWorkStatus?(se(),At("div",yBA,[bt(fl,{width:"24px",height:"24px",src:aA(kAA)},null,8,["src"])])):$t("",!0),I.showSwitchCameraButton?(se(),At("div",{key:1,class:"switch-camera stream-icon",onClick:yE(r,["stop"])},[bt(fl,{width:"15px",height:"15px",src:aA(Py)},null,8,["src"])])):$t("",!0),I.showVirtualBackgroundButton?(se(),At("div",{key:2,class:"stream-icon",onClick:yE(l,["stop"])},[bt(fl,{width:"15px",height:"15px",src:aA(Yy)},null,8,["src"])])):$t("",!0)]),_:1})]),_:1}))}}),MBA=bs(SBA,[["__scopeId","data-v-46cc5655"]]),vBA={options:{virtualHost:!0}},xY=zi({...vBA,__name:"TKStreamInfo",props:N4,setup(t){const{isGroupCall:i}=jg(),r=Ko.isPC;return(l,I)=>(se(),At("div",null,[aA(r)?(se(),Qi(pBA,{key:0,nickName:l.nickName,isSelf:l.isSelf,isMuted:l.isMuted,volume:l.volume,showNetWorkStatus:l.showNetWorkStatus},null,8,["nickName","isSelf","isMuted","volume","showNetWorkStatus"])):$t("",!0),aA(i)&&!aA(r)?(se(),Qi(MBA,{key:1,showSwitchCameraButton:l.showSwitchCameraButton,showVirtualBackgroundButton:l.showVirtualBackgroundButton,showNetWorkStatus:l.showNetWorkStatus,nickName:l.nickName,showNickName:l.showNickName,isSelf:l.isSelf,isMuted:l.isMuted,volume:l.volume},null,8,["showSwitchCameraButton","showVirtualBackgroundButton","showNetWorkStatus","nickName","showNickName","isSelf","isMuted","volume"])):$t("",!0)]))}}),RBA={show:{type:Boolean,default:!0},domId:{type:String},loading:{type:Boolean},showStreamInfo:{type:Boolean},showAudioStream:{type:Boolean}},wBA=["id"],_BA={class:"audio-stream-container"},TBA={options:{virtualHost:!0}},NBA=zi({...TBA,__name:"Pusher",props:RBA,setup(t){const i=ze(it.getData(oe.CALL,fA.PUSHER_ID)),r=ja(["stream-info-container",{mobile:!Ko.isPC}]),l=h=>{i.value=h},I={[fA.PUSHER_ID]:l};return hc(()=>{it.watch(oe.CALL,I,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,I)}),(h,f)=>Ta((se(),At("div",{id:h.domId,class:"pusher-container"},[Ta(ne("div",_BA,[Fn(h.$slots,"audio-stream",{},void 0,!0)],512),[[Ka,h.showAudioStream]]),Fn(h.$slots,"loading",{},void 0,!0),ne("div",{class:qi(aA(r))},[Fn(h.$slots,"stream-info",{},void 0,!0)],2)],8,wBA)),[[Ka,h.show]])}}),LAA=bs(NBA,[["__scopeId","data-v-8cf5d7b3"]]),GBA={show:{type:Boolean,default:!0},domId:{type:String},loading:{type:Boolean},showStreamInfo:{type:Boolean},showAudioStream:{type:Boolean}},bBA=["id"],kBA={class:"audio-stream-container"},LBA={options:{virtualHost:!0}},UBA=zi({...LBA,__name:"Player",props:GBA,setup(t){const i=ja(["stream-info-container",{mobile:!Ko.isPC}]);return(r,l)=>Ta((se(),At("div",{id:r.domId,class:"player-container"},[Ta(ne("div",kBA,[Fn(r.$slots,"audio-stream",{},void 0,!0)],512),[[Ka,r.showAudioStream]]),Fn(r.$slots,"loading",{},void 0,!0),ne("div",{class:qi(aA(i))},[Fn(r.$slots,"stream-info",{},void 0,!0)],2)],8,bBA)),[[Ka,r.show]])}}),UAA=bs(UBA,[["__scopeId","data-v-1bb63b56"]]),FBA={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}},OBA={options:{virtualHost:!0}},YY=zi({...OBA,__name:"AudioStream",props:FBA,setup(t){const i=t,r=IAA(),{callType:l,isGroupCall:I}=Gs(jg()),{isFloatWindow:h}=Gs(gB()),f=wt(()=>!I.value&&!Ko.isPC),w=wt(()=>I.value?Ko.isPC:l.value===tr.AUDIO),_=wt(()=>!I.value&&Ko.isPC&&l.value===tr.AUDIO),b=wt(()=>({zIndex:1})),U=wt(()=>r.value[i.userId]||i.avatar),j=ze(!r.value[i.userId]),IA=ze(r.value[i.userId]?"fill":"cover");br([()=>i.userId,r],()=>{r.value[i.userId]?(IA.value="fill",j.value=!1):(IA.value="cover",j.value=!0)},{immediate:!0});const nA=()=>{j.value=!0,IA.value="cover"};return(mA,lA)=>(se(),Qi(TAA,{avatar:mA.avatar,"bg-image":aA(U),"show-avatar":aA(f),username:mA.username,"show-user-name":aA(w),"show-mask":!aA(I)&&aA(j),fit:aA(IA),blur:!aA(I),"show-mic-volume":aA(_),"show-tip":!aA(I)&&!aA(h),"custom-style":aA(b),"is-small-window":mA.isSmallWindow,"is-muted":mA.isMuted,volume:mA.volume,"bg-color":"rgba(0, 0, 0, 0.5)",onError:nA},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"]))}}),PBA="data:image/svg+xml;base64,IDxzdmcgd2lkdGg9IjI2IiBoZWlnaHQ9IjI2IiB2aWV3Qm94PSIwIDAgMjYgMjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgPHBhdGggZD0iTTE4LjQ0MzcgMTIuNDQ5QzE4LjQ0MzcgMTQuMTE0MiAxOC4yMzM2IDE1LjM1MTUgMjEuNTA4OSAxNS43MTI2QzI0Ljc4NzUgMTYuMDczNyAyNC4zNjY2IDEzLjY3OTQgMjQuMzY2MiAxMi4wNjY5QzI0LjM2NDkgMTAuMjA2MSAyMC4wNjAyIDcuNjE4OTUgMTMuMjcyNiA3LjYxNzNDNi40ODY2MiA3LjYxNzM1IDIuMTc4OSAxMC4yMDUgMi4xNzg4OCAxMi4wNjdDMi4xNzg4NyAxMy42OCAxLjc1NjIxIDE2LjA3MjYgNS4wMzMxNSAxNS43MTIzQzguMzEwMDkgMTUuMzUzNyA4LjEwMDA1IDE0LjExNTUgOC4wOTgzNyAxMi40NDk1QzguMTAxMzQgMTEuMjg2MiAxMC43NTg3IDExLjAzMTYgMTMuMjcyNSAxMS4wMjk4QzE1Ljc4NjMgMTEuMDI4MSAxOC40NDU0IDExLjI4NDQgMTguNDQzNyAxMi40NDlaIiBmaWxsPSIjRkUzQzQ0Ii8+CiAgICA8L3N2Zz4=",xBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02LjY2NjY2IDQuMTY2NjhDNi42NjY2NiAyLjMyODM0IDguMTYxNjYgMC44MzMzNDQgOS45OTk5OSAwLjgzMzM0NEMxMS44MzgzIDAuODMzMzQ0IDEzLjMzMzMgMi4zMjgzNCAxMy4zMzMzIDQuMTY2NjhWOS4xNjY2OEMxMy4zMzMzIDExLjAwNSAxMS44MzgzIDEyLjUgOS45OTk5OSAxMi41QzguMTYxNjYgMTIuNSA2LjY2NjY2IDExLjAwNSA2LjY2NjY2IDkuMTY2NjhWNC4xNjY2OFpNNi42NjY2NiAxOC4zMzMzQzYuNjY2NjYgMTcuODcyNSA3LjAzOTk5IDE3LjUgNy40OTk5OSAxNy41SDEyLjVDMTIuOTYwOCAxNy41IDEzLjMzMzMgMTcuODcyNSAxMy4zMzMzIDE4LjMzMzNDMTMuMzMzMyAxOC43OTQyIDEyLjk2MDggMTkuMTY2NyAxMi41IDE5LjE2NjdINy40OTk5OUM3LjAzOTk5IDE5LjE2NjcgNi42NjY2NiAxOC43OTQyIDYuNjY2NjYgMTguMzMzM1oiIGZpbGw9IiMxMDE0MTkiLz4KPHBhdGggZD0iTTE1LjgzMzMgOC4zNTEyVjkuNTA4MjVDMTUuODMzMyAxMi4wODEgMTMuMjIxNyAxNSA5Ljk5OTk5IDE1QzYuNzc4MzMgMTUgNC4xNjY2NiAxMi4wODEgNC4xNjY2NiA5LjUwODI1VjguMzMzMzQiIHN0cm9rZT0iIzEwMTQxOSIgc3Ryb2tlLXdpZHRoPSIxLjY2NjY3IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+",YBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAxNSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC42MjQ3IDAuNzE5MTY4QzE0LjE5MzQgMC4zNzQxNTggMTMuNTY0MSAwLjQ0NDA4IDEzLjIxOTEgMC44NzUzNDJMMTAuODE2OCAzLjgzMjAzQzEwLjE3ODkgMy4wMjQ1NSA5LjE1Mzg3IDIuNTAwMDQgOC4wMDAwMSAyLjUwMDA0QzYuMDY5NzYgMi41MDAwNCA0LjUwMDAxIDMuOTY3ODUgNC41MDAwMSA1Ljc3Mjc2VjEwLjY4MTlDNC41MDAwMSAxMC45NTYzIDQuNTM2MyAxMS4yMjI5IDQuNjA0NjMgMTEuNDc3OEwzLjM4OCAxMi45NzUyQzIuOTg0NDkgMTIuMzQzMyAyLjc1MDAxIDExLjY1MjIgMi43NTAwMSAxMC45NzE3VjkuODE4MTlMMi43NDMxOSA5LjcxNTU2QzIuNjg5MiA5LjMxMjEzIDIuMzIxMDggOS4wMDAwMSAxLjg3NTAxIDkuMDAwMDFDMS4zOTE3NiA5LjAwMDAxIDEuMDAwMDEgOS4zNjYzMiAxLjAwMDAxIDkuODE4MTlWMTAuOTcxN0wxLjAwNDY2IDExLjE3NjFDMS4wNTU1NyAxMi4yOTY4IDEuNTIxNjEgMTMuNDAxNiAyLjI2OTM5IDE0LjM1MTlMMC4yMTkxMzcgMTYuODc1M0wwLjE0Njg2MSAxNi45NzgyQy0wLjExMjk3NyAxNy40MDE3IC0wLjAyMjc3NjcgMTcuOTYyNCAwLjM3NTMxMSAxOC4yODA5QzAuODA2NTczIDE4LjYyNTkgMS40MzU4NyAxOC41NTYgMS43ODA4OCAxOC4xMjQ3TDMuNzE2NjEgMTUuNzQyM0MzLjcxODQ5IDE1Ljc0MzcgMy43MjAzOCAxNS43NDUgMy43MjIyNyAxNS43NDY0TDQuMjk5NyAxNS4wMjQ2TDguMjgwODggMTAuMTI0N0wxNC43ODA5IDIuMTI0NzNMMTQuODUzMiAyLjAyMTkxQzE1LjExMyAxLjU5ODM0IDE1LjAyMjggMS4wMzc2NCAxNC42MjQ3IDAuNzE5MTY4Wk03LjcyNDk5IDEzLjk0NDZMMTEuNSA5LjIyNTgyVjEwLjY4MTlDMTEuNSAxMi40ODY4IDkuOTMwMjYgMTMuOTU0NiA4LjAwMDAxIDEzLjk1NDZDNy45MDc0NiAxMy45NTQ2IDcuODE1NzUgMTMuOTUxMiA3LjcyNDk5IDEzLjk0NDZaTTYuNjA0NDUgMTUuMzQ1M0w1LjUwNzk4IDE2LjcxNTlDNi4yOTIyNSAxNy4wMTM2IDcuMTM1MzIgMTcuMTgxOCA4LjAwMDAxIDE3LjE4MThDMTEuNjk3NiAxNy4xODE4IDE1IDE0LjEwNjQgMTUgMTAuOTcxN1Y5LjgzNTcyTDE0Ljk5MzIgOS43MzMwOUMxNC45MzkyIDkuMzI5NjYgMTQuNTcxMSA5LjAxNzU0IDE0LjEyNSA5LjAxNzU0QzEzLjY0MTggOS4wMTc1NCAxMy4yNSA5LjM4Mzg1IDEzLjI1IDkuODM1NzJWMTAuOTcxN0wxMy4yNDQ1IDExLjE1MjdDMTMuMTEzOCAxMy4zMjYyIDEwLjY1ODkgMTUuNTQ1NSA4LjAwMDAxIDE1LjU0NTVDNy41MjQyNCAxNS41NDU1IDcuMDU1MDEgMTUuNDc0NCA2LjYwNDQ1IDE1LjM0NTNaTTUuMzc1MDEgMTguODYzN0M0Ljg5MjAxIDE4Ljg2MzcgNC41MDAwMSAxOS4yMjk0IDQuNTAwMDEgMTkuNjgxOUM0LjUwMDAxIDIwLjEzNDMgNC44OTIwMSAyMC41IDUuMzc1MDEgMjAuNUgxMC42MjVDMTEuMTA4OSAyMC41IDExLjUgMjAuMTM0MyAxMS41IDE5LjY4MTlDMTEuNSAxOS4yMjk0IDExLjEwODkgMTguODYzNyAxMC42MjUgMTguODYzN0g1LjM3NTAxWiIgZmlsbD0iIzEwMTQxOSIvPgo8L3N2Zz4=",VBA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjMzMzM3IDkuMzMzMzFIMC4zMzMzNzRWMC45OTk5OEMwLjMzMzM3NCAwLjYzMTc5IDAuNjMxODUxIDAuMzMzMzEzIDEuMDAwMDQgMC4zMzMzMTNMOS4zMzMzOCAwLjMzMzMxM1YyLjMzMzMxSDMuNzQ3NThMMTAuMDQwNSA4LjYyNjI0TDguNjI2MjcgMTAuMDQwNEwyLjMzMzM3IDMuNzQ3NTNWOS4zMzMzMVpNMTguMzMzMSAxMS4zMzMzSDIwLjMzMzFWMTkuNjY2NkMyMC4zMzMxIDIwLjAzNDggMjAuMDM0NyAyMC4zMzMzIDE5LjY2NjUgMjAuMzMzM0wxMS4zMzMxIDIwLjMzMzNMMTEuMzMzMSAxOC4zMzMzSDE2LjkxODlMMTAuNjI2IDEyLjA0MDNMMTIuMDQwMiAxMC42MjYxTDE4LjMzMzEgMTYuOTE5VjExLjMzMzNaIiBmaWxsPSIjMTAxNDE5Ii8+Cjwvc3ZnPg==",JBA={class:"float-window-container"},HBA={class:"float-control-panel"},qBA={class:"float-control-item-icon"},KBA=["src"],jBA={class:"float-control-item-icon"},WBA=["src"],zBA=["src"],ZBA={class:"float-control-item-icon"},XBA=["src"],$BA={options:{virtualHost:!0}},AQA=zi({...$BA,__name:"FloatWindow",setup(t){const{localUserInfoExcludeVolume:i}=Gs(cC()),{callRole:r,callStatus:l}=Gs(jg()),{isFloatWindow:I}=Gs(gB());function h(){ts.toggleMinimize()}async function f(){r.value===Vc.CALLEE&&l.value===ss.CALLING?await ts.reject():await ts.hangup()}async function w(){i.value.isAudioAvailable?await ts.closeMicrophone():await ts.openMicrophone()}return(_,b)=>(se(),At("div",JBA,[Ta(ne("div",HBA,[ne("div",qBA,[ne("div",{class:"float-control-item-icon-container",onClick:f},[ne("img",{src:aA(PBA)},null,8,KBA)])]),Ta(ne("div",jBA,[ne("div",{class:"float-control-item-icon-container",onClick:w},[aA(i).isAudioAvailable?(se(),At("img",{key:0,src:aA(xBA)},null,8,WBA)):(se(),At("img",{key:1,src:aA(YBA)},null,8,zBA))])],512),[[Ka,aA(I)]]),Ta(ne("div",ZBA,[ne("div",{class:"float-control-item-icon-container",onClick:h},[ne("img",{src:aA(VBA)},null,8,XBA)])],512),[[Ka,aA(I)]])],512),[[Ka,aA(I)]]),Ta(ne("div",null,[Fn(_.$slots,"default",{},void 0,!0)],512),[[Ka,!aA(I)]])]))}}),eQA=bs(AQA,[["__scopeId","data-v-89ef9c99"]]),FAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTS43NjEgOS4zMzJDLjAwMSA3LjEzNC45NjMgNC43NzMgMi44MzMgMy4zOSA0LjI1MiAyLjM0MyA1LjY3NiAxLjI4NSA2LjQ5LjY4MWEuOTEyLjkxMiAwIDAgMSAxLjI0LjE0MWw0LjQyOSA1LjIxYy4yOS4zNC4yOS44NDEgMCAxLjE4MmwtMi43MTYgMy4xOThhLjg5My44OTMgMCAwIDAtLjA5MyAxLjAzNCAxOS45NDYgMTkuOTQ2IDAgMCAwIDMuMTUxIDQuMDQ4IDE5LjYyIDE5LjYyIDAgMCAwIDQuMDY0IDMuMTM3Ljg5NS44OTUgMCAwIDAgMS4wMzMtLjA5NGwzLjE4Ni0yLjcwMmEuOTEzLjkxMyAwIDAgMSAxLjE4MSAwbDUuMjE0IDQuNDMxYy4zNjYuMzExLjQyOS44NTIuMTQzIDEuMjM4bC0yLjcyNyAzLjY5Yy0xLjM3MiAxLjg1NS0zLjcxNCAyLjc5OC01Ljg5NSAyLjA0N2EyOC44NjUgMjguODY1IDAgMCAxLTExLjA0LTYuOTA4QTI4Ljg1NSAyOC44NTUgMCAwIDEgLjc2MSA5LjMzMnoiIGZpbGw9IiMxMkI5NjkiLz48L3N2Zz4=",tQA={class:"float-window-tip-container"},iQA={options:{virtualHost:!0}},oQA=zi({...iQA,__name:"FloatWindowSingleCall",setup(t){const{callType:i,callStatus:r}=Gs(jg()),{isFloatWindow:l}=Gs(gB()),{callDuration:I}=_4(),h=og(),f=wt(()=>ja(["float-window-container",{"singlecall-video-float":i.value===tr.VIDEO&&l.value,"singlecall-audio-float":i.value===tr.AUDIO&&l.value}]));function w(){l.value&&ts.toggleMinimize()}return(_,b)=>(se(),At("div",{class:qi(aA(f))},[Ta(ne("div",{class:"singlecall-video-float-content",onClick:w},[Fn(_.$slots,"default",{},void 0,!0),ne("div",tQA,[aA(r)===aA(ss).CALLING&&aA(l)?(se(),Qi(yl,{key:0,color:"#FFF",size:"12px"},{default:Li(()=>[Ia(ni(aA(h)("wait to be called")),1)]),_:1})):$t("",!0)])],512),[[Ka,!(aA(l)&&aA(i)===aA(tr).AUDIO)]]),Ta(ne("div",{class:"singlecall-audio-float-content",onClick:w},[bt(fl,{width:"36px",height:"36px",src:aA(FAA)},null,8,["src"]),aA(r)===aA(ss).CONNECTED?(se(),Qi(PY,{key:0,fontSize:"12px",callDuration:aA(I),color:"#12b969"},null,8,["callDuration"])):$t("",!0),aA(r)===aA(ss).CALLING&&aA(l)?(se(),Qi(yl,{key:1,color:"#12b969",size:"12px"},{default:Li(()=>[Ia(ni(aA(h)("wait to be called")),1)]),_:1})):$t("",!0)],512),[[Ka,aA(l)&&aA(i)===aA(tr).AUDIO]])],2))}}),sQA=bs(oQA,[["__scopeId","data-v-9dbb05f9"]]),nQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNyA3LjU3di0uNzMxaDEuNXYuNzNhNC41ODMgNC41ODMgMCAxIDAgOS4xNjYgMHYtLjczaDEuNXYuNzNhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMgNi4wMzh2MS4zMDJoLTEuNXYtMS4zMDJhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMtNi4wMzh6IiBmaWxsPSIjMTJCOTY5Ii8+PHJlY3QgeD0iNC42NjciIHk9IjEuMDkxIiB3aWR0aD0iNi42NjciIGhlaWdodD0iOS44OTciIHJ4PSIzLjMzMyIgZmlsbD0iIzEyQjk2OSIvPjwvc3ZnPg==",rQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzIgNi4xMTdhLjYuNiAwIDAgMC0uMzMxLjUzNnYyLjY5M2EuNi42IDAgMCAwIC4zMy41MzdsMi44MDMgMS40MDVhLjIuMiAwIDAgMCAuMjktLjE3OFY0Ljg5YS4yLjIgMCAwIDAtLjI5LS4xNzlsLTIuODAyIDEuNDA2eiIgZmlsbD0iIzEyQjk2OSIvPjxnIGZpbHRlcj0idXJsKCNhKSI+PHJlY3QgeD0iLjY2NyIgeT0iMi44OTQiIHdpZHRoPSIxMC42NjciIGhlaWdodD0iMTAuMjEzIiByeD0iMS41IiBmaWxsPSIjMTJCOTY5Ii8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9ImEiIHg9Ii03LjMzMyIgeT0iLTUuMTA2IiB3aWR0aD0iMjYuNjY3IiBoZWlnaHQ9IjI2LjIxMyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iNCIvPjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIi8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xOTc3XzExNjMwIiByZXN1bHQ9InNoYXBlIi8+PC9maWx0ZXI+PC9kZWZzPjwvc3ZnPg==",aQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjkxNyA3LjU3di0uNzMxaDEuNXYuNzNhNC41ODMgNC41ODMgMCAxIDAgOS4xNjYgMHYtLjczaDEuNXYuNzNhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMgNi4wMzh2MS4zMDJoLTEuNXYtMS4zMDJhNi4wODQgNi4wODQgMCAwIDEtNS4zMzMtNi4wMzh6IiBmaWxsPSIjQURBREFEIi8+PHJlY3QgeD0iNC42NjciIHk9IjEuMDkxIiB3aWR0aD0iNi42NjciIGhlaWdodD0iOS44OTciIHJ4PSIzLjMzMyIgZmlsbD0iI0FEQURBRCIvPjwvc3ZnPg==",gQA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi42NzIgNS43NzdhLjYuNiAwIDAgMC0uMzMxLjUzNnYyLjY5M2EuNi42IDAgMCAwIC4zMy41MzZsMi44MDMgMS40MDZhLjIuMiAwIDAgMCAuMjktLjE3OVY0LjU1YS4yLjIgMCAwIDAtLjI5LS4xNzhsLTIuODAyIDEuNDA2eiIgZmlsbD0iI0FEQURBRCIvPjxnIGZpbHRlcj0idXJsKCNhKSI+PHJlY3QgeD0iLjY2NyIgeT0iMi41NTMiIHdpZHRoPSIxMC42NjciIGhlaWdodD0iMTAuMjEzIiByeD0iMS41IiBmaWxsPSIjQURBREFEIi8+PC9nPjxkZWZzPjxmaWx0ZXIgaWQ9ImEiIHg9Ii03LjMzMyIgeT0iLTUuNDQ3IiB3aWR0aD0iMjYuNjY3IiBoZWlnaHQ9IjI2LjIxMyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iNCIvPjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xMzFfMTQ0OSIvPjxmZUJsZW5kIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMTMxXzE0NDkiIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48L2RlZnM+PC9zdmc+",cQA={class:"stream-container"},lQA={class:"video"},IQA={class:"audio"},uQA={class:"device-status"},EQA={options:{virtualHost:!0}},dQA=zi({...EQA,__name:"FloatWindowGroupCall",setup(t){const{isFloatWindow:i}=Gs(gB()),{callDuration:r}=_4(),{localUserInfoExcludeVolume:l}=Gs(cC()),{callStatus:I}=Gs(jg()),h=og(),f=wt(()=>l.value.isAudioAvailable?nQA:aQA),w=wt(()=>l.value.isVideoAvailable?rQA:gQA),_=wt(()=>ja(["groupcall-video-float",{"not-float":!i.value,float:i.value}]));function b(){i.value&&ts.toggleMinimize()}return(U,j)=>(se(),At("div",{class:qi(aA(_))},[aA(i)?(se(),At("div",{key:0,class:"click-container",onClickCapture:yE(b,["stop"])},null,32)):$t("",!0),ne("div",cQA,[ne("div",lQA,[Fn(U.$slots,"default",{},void 0,!0)]),Ta(ne("div",IQA,[bt(fl,{width:"36px",height:"36px",src:aA(FAA)},null,8,["src"]),aA(I)===aA(ss).CONNECTED?(se(),Qi(PY,{key:0,fontSize:"12px",callDuration:aA(r),color:"#12b969"},null,8,["callDuration"])):$t("",!0),aA(I)===aA(ss).CALLING?(se(),Qi(yl,{key:1,size:"12px",color:"#12b969"},{default:Li(()=>[Ia(ni(aA(h)("wait to be called")),1)]),_:1})):$t("",!0)],512),[[Ka,aA(i)]])]),Ta(ne("div",uQA,[bt(fl,{width:"16px",height:"16px",src:aA(f)},null,8,["src"]),bt(fl,{width:"16px",height:"16px",src:aA(w)},null,8,["src"])],512),[[Ka,aA(i)]])],2))}}),CQA=bs(dQA,[["__scopeId","data-v-ea7a3e81"]]),hQA={id:"float-window-id"},BQA={options:{virtualHost:!0}},QQA=zi({...BQA,__name:"FloatWindow",setup(t){const{isGroupCall:i}=Gs(jg());return(r,l)=>(se(),At("div",hQA,[aA(i)?(se(),Qi(CQA,{key:1},{default:Li(()=>[Fn(r.$slots,"default")]),_:3})):(se(),Qi(sQA,{key:0},{default:Li(()=>[Fn(r.$slots,"default")]),_:3}))]))}}),pQA={options:{virtualHost:!0}},mQA=zi({...pQA,__name:"FloatWindow",setup(t){const{isFloatWindow:i}=Gs(gB()),r=wt(()=>ja(["float-window-container",{float:i.value,"not-float":!i.value,pc:Ko.isPC,mobile:!Ko.isPC}]));return(l,I)=>(se(),At("div",{class:qi(aA(r))},[aA(Ko).isPC?(se(),Qi(eQA,{key:0},{default:Li(()=>[Fn(l.$slots,"default",{},void 0,!0)]),_:3})):$t("",!0),aA(Ko).isPC?$t("",!0):(se(),Qi(QQA,{key:1},{default:Li(()=>[Fn(l.$slots,"default",{},void 0,!0)]),_:3}))],2))}}),OAA=bs(mQA,[["__scopeId","data-v-794f0a9b"]]);function fQA(){const t=HU(),{callStatus:i}=Gs(jg()),r=ze(gm.LOCAL),{remoteUserListExcludeVolume:l}=Gs(cC());return br([l,t,i],()=>{var I,h,f,w;if(i.value===ss.CALLING)return;const _=[LY.RemoteInLargeView,LY.LocalInLargeView],b=(I=t.value)==null?void 0:I.layoutMode;if(_.includes(b)){r.value=(h=t.value)==null?void 0:h.layoutMode;return}(w=(f=l.value)==null?void 0:f[0])!=null&&w.isEnter&&(r.value=gm.REMOTE)},{immediate:!0}),r}const yQA={options:{virtualHost:!0}},DQA=zi({...yQA,__name:"MediaContainer",setup(t){const i=fQA(),r=ze(!0),{isFloatWindow:l}=Gs(gB()),{localUserInfoExcludeVolume:I,remoteUserListExcludeVolume:h}=Gs(cC()),f=aAA(),{callType:w,callStatus:_}=Gs(jg());gAA();const b=wt(()=>{var mA,lA;return(lA=(mA=h.value)==null?void 0:mA[0])==null?void 0:lA.isVideoAvailable}),U=wt(()=>{var mA,lA;return(lA=(mA=h.value)==null?void 0:mA[0])==null?void 0:lA.domId}),j=wt(()=>{var mA,lA,cA;return(cA=f.value)==null?void 0:cA[(lA=(mA=h.value)==null?void 0:mA[0])==null?void 0:lA.domId]});br([w,_],()=>{w.value===tr.AUDIO||_.value===ss.CALLING?r.value=!1:r.value=!0},{immediate:!0});const IA=wt(()=>ja(["singlecall-media-container",{mobile:!Ko.isPC,pc:Ko.isPC,float:l.value}]));function nA(mA){i.value=mA}return(mA,lA)=>(se(),Qi(bAA,{id:"source",disabled:!aA(l),source:"#source",to:"body"},{default:Li(()=>[bt(OAA,null,{default:Li(()=>[ne("div",{class:qi(aA(IA))},[bt(oBA,{"big-window":aA(i),"show-small-window":aA(r),onToggle:nA},{default:Li(()=>[(se(),Qi(n6,{value:aA(gm).LOCAL,key:aA(gm).LOCAL},{default:Li(()=>[bt(LAA,{domId:aA(I).domId,"show-audio-stream":!aA(I).isVideoAvailable},{"audio-stream":Li(()=>[bt(YY,{userId:aA(I).userId,username:aA(I).displayUserInfo,avatar:aA(I).avatar,"is-video-available":aA(I).isVideoAvailable,"is-small-window":aA(i)!==aA(gm).LOCAL,"is-muted":!aA(I).isAudioAvailable,volume:aA(f)&&aA(f)[aA(I).domId]},null,8,["userId","username","avatar","is-video-available","is-small-window","is-muted","volume"])]),"stream-info":Li(()=>[aA(w)===aA(tr).VIDEO?(se(),Qi(xY,{key:0,"nick-name":aA(I).displayUserInfo,"is-self":!0,"is-muted":!aA(I).isAudioAvailable,volume:aA(f)&&aA(f)[aA(I).domId]},null,8,["nick-name","is-muted","volume"])):$t("",!0)]),_:1},8,["domId","show-audio-stream"])]),_:1},8,["value"])),(se(),Qi(n6,{value:aA(gm).REMOTE,key:aA(gm).REMOTE},{default:Li(()=>[bt(UAA,{"dom-id":aA(U),"show-audio-stream":!aA(b)},{"audio-stream":Li(()=>[bt(YY,{userId:aA(h)[0]&&aA(h)[0].userId,username:aA(h)[0]&&aA(h)[0].displayUserInfo,avatar:aA(h)[0]&&aA(h)[0].avatar,"is-video-available":aA(b),"is-small-window":aA(i)!==aA(gm).REMOTE,"is-muted":aA(h)[0]&&!aA(h)[0].isAudioAvailable,volume:aA(j)},null,8,["userId","username","avatar","is-video-available","is-small-window","is-muted","volume"])]),"stream-info":Li(()=>[aA(w)===aA(tr).VIDEO?(se(),Qi(xY,{key:0,"nick-name":aA(h)[0]&&aA(h)[0].displayUserInfo,"is-muted":aA(h)[0]&&!aA(h)[0].isAudioAvailable,volume:aA(j)},null,8,["nick-name","is-muted","volume"])):$t("",!0)]),_:1},8,["dom-id","show-audio-stream"])]),_:1},8,["value"]))]),_:1},8,["big-window","show-small-window"])],2)]),_:1})]),_:1},8,["disabled"]))}}),SQA=bs(DQA,[["__scopeId","data-v-852a25f0"]]),MQA=[VL.SUCCESS,VL.INFO,VL.WARNING,VL.ERROR],k_={isShow:{type:Boolean,default:!1},message:{type:String,default:""},type:{type:String,values:MQA,default:VL.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}},vQA={onClose:null};function RQA(t,i){const r=ze(t?.message||k_.message.default),l=ze(t?.duration||k_.duration.default),I=ze(t?.type||k_.type.default),h=ze(t?.offset||k_.offset.default),f=ze(t?.showClose||k_.showClose.default),w=ze(!1);let _=-1;const b=IA=>{_>-1&&(clearTimeout(_),_=-1),w.value=!0,j(IA||{}),l.value&&(_=setTimeout(()=>{U()},l.value))},U=()=>{w.value=!1,_>-1&&(clearTimeout(_),_=-1)},j=IA=>{const{message:nA=r.value,type:mA=I.value,offset:lA=h.value,duration:cA=l.value,showClose:TA=f.value}=IA;l.value=t?.duration===0?t?.duration:cA,r.value=nA,I.value=mA,h.value=lA,f.value=TA};return br(()=>t?.isShow,IA=>{IA&&b()},{immediate:!0}),br(w,IA=>{IA||i("onClose")}),{messageContent:r,messageDuration:l,messageType:I,messageOffset:h,isShowCloseIcon:f,visible:w,show:b,close:U}}const wQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMzQ5NzM4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTEyOS4yOTIxOSAyMzMuNDQ3NjE5bC0xMjkuMjY3ODA5IDEyOS4yOTIxOS0xMjkuMzE2NTcxLTEyOS4yOTIxOS01MS43MzYzODEgNTEuNzM2MzgxIDEyOS4zMTY1NzEgMTI5LjI2NzgwOS0xMjkuMzE2NTcxIDEyOS4zMTY1NzEgNTEuNzM2MzgxIDUxLjczNjM4MUw1MTIgNTYzLjY4NzYxOWwxMjkuMjkyMTkgMTI5LjMxNjU3MSA1MS43MzYzODEtNTEuNzM2MzhMNTYzLjY4NzYxOSA1MTJsMTI5LjMxNjU3MS0xMjkuMjkyMTktNTEuNzM2MzgtNTEuNzM2MzgxeiIgcC1pZD0iNjMwMSIgZmlsbD0iI2Q1NDk0MSI+PC9wYXRoPjwvc3ZnPgo=",_QA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIxNTM5Nzg4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQwMTgiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTE5My4xOTQ2NjcgMjE4LjMzMTQyOEw0NDcuMjE5ODEgNTgxLjMxNTA0OGwtMTAzLjkzNi0xMDcuODEyNTcyLTUyLjY2Mjg1OCA1MC43NjExNDMgMTU2LjM3OTQyOSAxNjIuMjMwODU3IDMxMC42NjIwOTUtMzE5LjY4MzA0Ny01Mi40Njc4MDktNTAuOTU2MTkxeiIgcC1pZD0iNDAxOSIgZmlsbD0iIzJiYTQ3MSI+PC9wYXRoPjwvc3ZnPgo=",TQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiNlMzczMTgiPjwvcGF0aD48L3N2Zz4K",NQA="data:image/svg+xml;base64,PHN2ZyB0PSIxNzAwMTIzMjc0Njg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwNTAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5Ny41MjM4MWMyMjguOTEyNzYyIDAgNDE0LjQ3NjE5IDE4NS41NjM0MjkgNDE0LjQ3NjE5IDQxNC40NzYxOXMtMTg1LjU2MzQyOSA0MTQuNDc2MTktNDE0LjQ3NjE5IDQxNC40NzYxOVM5Ny41MjM4MSA3NDAuOTEyNzYyIDk3LjUyMzgxIDUxMiAyODMuMDg3MjM4IDk3LjUyMzgxIDUxMiA5Ny41MjM4MXogbTM2LjU3MTQyOSAzNDEuMzMzMzMzaC03My4xNDI4NTh2MjkyLjU3MTQyOGg3My4xNDI4NThWNDM4Ljg1NzE0M3ogbTAtMTIxLjkwNDc2MmgtNzMuMTQyODU4djczLjE0Mjg1N2g3My4xNDI4NTh2LTczLjE0Mjg1N3oiIHAtaWQ9IjUwNTEiIGZpbGw9IiMwMDUyZDkiPjwvcGF0aD48L3N2Zz4K",GQA="data:image/svg+xml;base64,ICAgIAo8c3ZnIHQ9IjE3MDAxMjM3NjYyNDciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYzMDEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+CiAgICA8cGF0aCBkPSJNNTU3LjIgNTEybDIzMy40LTIzMy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4ycy0zMi44LTEyLjUtNDUuMiAwTDUxMiA0NjYuOCAyNzguNiAyMzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4yIDBzLTEyLjUgMzIuOCAwIDQ1LjJMNDY2LjggNTEyIDIzMy40IDc0NS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuMiA2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40TDUxMiA1NTcuMmwyMzMuNCAyMzMuNGM2LjIgNi4yIDE0LjQgOS40IDIyLjYgOS40czE2LjQtMy4xIDIyLjYtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4yTDU1Ny4yIDUxMnoiIHAtaWQ9IjYzMDEiIGZpbGw9IiM3Mzc2N2EiPjwvcGF0aD4KPC9zdmc+Cg==",bQA={options:{virtualHost:!0}},PAA=zi({...bQA,__name:"Message",props:k_,emits:vQA,setup(t,{expose:i,emit:r}){const l=t,I=r,{messageContent:h,messageType:f,messageOffset:w,isShowCloseIcon:_,visible:b,show:U,close:j}=RQA(l,I),IA=wt(()=>ja([`${Nn}-message`,`${Nn}-message--${f.value}`,l.customClass])),nA=wt(()=>ja([`${Nn}-message_icon`])),mA=wt(()=>ja([`${Nn}-message_close`])),lA=wt(()=>`${w.value}px`),cA=wt(()=>({top:lA.value,...l.customStyle})),TA={info:NQA,waring:TQA,success:_QA,error:wQA};return i({show:U,close:j}),(WA,Ee)=>aA(b)?(se(),At("div",{key:0,class:qi(aA(IA)),style:Br([aA(cA)])},[Ta(ne("div",{class:qi(aA(nA))},[bt(vQ,{src:TA[aA(f)]},null,8,["src"])],2),[[Ka,WA.showIcon]]),ne("span",null,ni(aA(h)),1),Ta(ne("div",{class:qi(aA(mA)),onClick:Ee[0]||(Ee[0]=(...de)=>aA(j)&&aA(j)(...de))},[bt(vQ,{src:aA(GQA)},null,8,["src"])],2),[[Ka,aA(_)]])],6)):$t("",!0)}}),kQA={customClass:{type:String}},LQA={options:{virtualHost:!0,styleIsolation:"shared"}},xAA=zi({...LQA,__name:"Tip",props:kQA,setup(t){const{isFloatWindow:i}=Gs(gB()),{tip:r,duration:l}=xdA(),I=og(),{isGroupCall:h}=Gs(jg()),f=ze(null),w=t,_=Ko.isPC,b=wt(()=>[w.customClass]),U=wt(()=>OY({color:"white",background:"none",position:"absolute","z-index":4,"align-items":"center",left:"50%",top:`${_?"60%":"70%"}`,transform:"translate(-50%, -50%)","font-size":i.value?"12px":void 0})),j=wt(()=>OY({color:"white",background:"none",position:"static",transform:"none","font-size":i.value?"12px":void 0})),IA=wt(()=>h.value?j.value:U.value);return br([r,I,l],()=>{var nA;(nA=f.value)==null||nA.show({message:I.value(r.value),duration:l.value,offset:0})}),(nA,mA)=>(se(),At("div",null,[bt(PAA,{showIcon:!1,class:qi(aA(b)),ref_key:"message",ref:f,customStyle:aA(IA)},null,8,["class","customStyle"])]))}}),UQA=["%","vw"],FQA={length:{type:Number,default:0},unit:{type:String,values:UQA,default:"%"},enableFocus:{type:Boolean,default:!1},layout:{type:Array},focus:{type:[String,Number]}},OQA=["change","toggle"],YAA="GridContextKey",PQA={style:{height:"100%"}},xQA={options:{virtualHost:!0}},VAA=zi({...xQA,__name:"Grid",props:FQA,emits:OQA,setup(t,{emit:i}){const r=t,l=ze(r.focus),I=ze(r.layout),h=ze(r.unit),f=i;function w(_){f("toggle",_)}return br(()=>r.focus,()=>l.value=r.focus),br(()=>r.layout,()=>I.value=r.layout),br(()=>r.unit,()=>h.value=r.unit),cd(YAA,{layout:I,enableFocus:r.enableFocus,handleFocusChange:w,focus:l,unit:h}),(_,b)=>(se(),At("div",PQA,[Fn(_.$slots,"default")]))}}),YQA={options:{virtualHost:!0}},iB=zi({...YQA,__name:"GridItem",props:["index","height","customStyle"],setup(t){const i=t,{layout:r,enableFocus:l,handleFocusChange:I,focus:h,unit:f}=VI(YAA),w=100/12,_=w,b=ze({}),U=ja([`${Nn}-grid-item`,{pc:oD,mobile:!oD,h5:dAA}]),j=()=>{const nA=String(i.index)===String(h.value)?null:i.index;l&&I(nA)},IA=wt(()=>!!i6(r.value,{key:"i",value:i.index}));return lT(()=>{const nA=i6(r.value,{key:"i",value:i.index});if(!nA)return;const{x:mA,y:lA,w:cA,h:TA,customStyle:WA,customProps:Ee}=nA;b.value={width:cA*w+f.value,height:i.height||TA*_+f.value,left:mA*w+f.value,top:lA*_+f.value,position:"absolute",visibility:Ee?.show===!1?"hidden":"",...i.customStyle,...WA}}),Kg(()=>{String(i.index)===String(h.value)&&l&&I(null)}),(nA,mA)=>aA(IA)?(se(),At("div",{key:0,class:qi(aA(U)),style:Br([aA(b)]),onClick:j},[Fn(nA.$slots,"default")],6)):$t("",!0)}});function VQA(){const t=ze([]),i=ze([]),{callStatus:r,isGroupCall:l,callType:I,callRole:h}=Gs(jg()),{status:f}=JU()||{},w=zdA();return br([r,l,I,h,f,w],()=>{var _,b,U;let j=w.value;const IA=Ko.isPC?"pc":"mobile",nA=l.value?"groupCall":"singleCall",mA=I.value===tr.AUDIO?"audio":"video";let lA=r.value===ss.CALLING?h.value===Vc.CALLER?"calling":"accept":r.value;l&&f?.value==="close"&&(lA="close_"+lA);const cA=((U=(b=(_=j?.[IA])==null?void 0:_[nA])==null?void 0:b[mA])==null?void 0:U[lA])||[];i.value=cA;const TA=[];let WA=0;for(let de=0;de<cA.length;de++){const Pe=de===0?cA[de].filter(pt=>{var We;return((We=pt?.props)==null?void 0:We.show)!==!1}):cA[de];cA[de]=Pe;const pe=12/Pe.length,gt=3;for(let pt=0;pt<Pe.length;pt++)TA[WA++]={i:Pe[pt].name,x:pt*pe,y:de*pe,w:pe,h:gt,customStyle:Pe[pt].customStyle,customProps:Pe[pt].props}}WA=0;let Ee=[];for(let de=0;de<cA.flat().length;de++)Ee[de]=TA[WA++];Ee=Ee.filter(de=>de.i),t.value=Ee},{immediate:!0}),{layout:t,config:i}}function JQA(...t){let i=window?.document,r="",l=()=>{},I={};if(typeof t[0]=="string"?[r,l,I]=t:[i,r,l,I]=t,!!i)return i?.addEventListener(r,l,I),()=>{i?.removeEventListener(r,l,I)}}function HQA(t,i){let r=()=>{};hc(()=>{r=JQA("click",l=>{const I=t.map(w=>aA(w)),h=l.composedPath(),f=[];for(let w=0;w<I.length;w++)f[w]=h.includes(I[w]);f.every(w=>!w)&&i()},{passive:!0})}),Kg(()=>{r?.()})}const qQA=(t,i,r,l,I)=>{const h=r.isShowArrow?r.arrowSize:0,f=`${t.width/2-i.width/2}px`,w=`${t.height/2-i.height/2}px`,_=`${h}px solid ${r.color}`,b={...l},U={...I};switch(r.placement){case"top":b.left=f,b.top=`-${i.height+h+r.arrowDistance}px`,U.borderTop=_,U.left=`${t.width/2-h/2}px`,U.top=`-${h+r.arrowDistance}px`;break;case"bottom":b.left=f,b.top=`${t.height+h+r.arrowDistance}px`,U.borderBottom=_,U.left=`${t.width/2-h/2}px`,U.top=`${t.height+r.arrowDistance-h}px`;break;case"left":b.left=`-${i.width+h+r.arrowDistance}px`,b.top=w,U.borderLeft=_,U.left=`-${h*2-r.arrowDistance}px`,U.top=`${t.height/2-h/2}px`;break;case"right":b.left=`${t.width+h+r.arrowDistance}px`,b.top=w,U.borderRight=_,U.left=`${t.width+h*2-r.arrowDistance}px`,U.top=`${t.height/2-h/2}px`;break}return{finalContentStyle:b,finalArrowStyle:U}},KQA=["click","hover"],jQA=["top","bottom","left","right"],JAA={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=zi({...WQA,__name:"PopoverWeb",props:JAA,emits:["hover"],setup(t,{emit:i}){const r=t,l=`${Nn}-popover`,I=`${Nn}-popover_content`,h=`${Nn}-popover_arrow`,f=`${Nn}-popover_trigger`,w=ze(),_=ze(),b=ze(),U=ze(!1),j=ze(null),IA=wt(()=>U.value&&r.isShowArrow&&r.show),nA=OY({left:"0px",top:"0px",backgroundColor:r.color}),mA=ze(nA),lA=`${r.arrowSize}px solid transparent`,cA={borderLeft:lA,borderRight:lA,borderTop:lA,borderBottom:lA,top:"0px",left:"0px"},TA=ze(cA),WA=i,Ee=()=>{Vy(()=>{var pt,We,Dt,Kt;if(!U.value||!r.show)return;const ut=(We=(pt=_.value).getBoundingClientRect)==null?void 0:We.call(pt),ge=(Kt=(Dt=b.value).getBoundingClientRect)==null?void 0:Kt.call(Dt),{finalContentStyle:XA,finalArrowStyle:_e}=qQA(ut,ge,r,nA,cA);mA.value={...nA,...XA},TA.value={...cA,..._e}})},de=()=>{clearTimeout(j.value)},Pe=()=>{r.trigger==="click"&&(U.value=!U.value,Ee())},pe=()=>{r.trigger==="hover"&&(WA("hover"),de(),U.value=!0,Ee())},gt=()=>{r.trigger==="hover"&&(j.value=setTimeout(()=>{U.value=!1,Ee()},1e3))};return HQA([w],()=>{U.value=!1}),(pt,We)=>(se(),At("div",{class:qi(l),ref_key:"popoverRef",ref:w},[aA(U)&&pt.show?(se(),At("div",{key:0,ref_key:"contentRef",ref:b,onMouseenter:de,onMouseleave:gt,class:qi(I),style:Br([aA(mA)])},[Fn(pt.$slots,"content")],36)):$t("",!0),aA(IA)?(se(),At("div",{key:1,style:Br([aA(TA)]),class:qi(h)},null,4)):$t("",!0),ne("div",{ref_key:"triggerRef",ref:_,class:qi(f),onClick:Pe,onMouseenter:pe,onMouseleave:gt},[Fn(pt.$slots,"trigger")],544)],512))}}),ZQA={options:{virtualHost:!0}};function XQA(t,i,r,l,I,h){return null}const $QA=bs(ZQA,[["render",XQA]]),ApA={options:{virtualHost:!0}},G4=zi({...ApA,__name:"Popover",props:JAA,emits:["hover"],setup(t,{emit:i}){const r=i,l=()=>{r("hover")};return(I,h)=>(se(),At(vr,null,[aA(Mv)?$t("",!0):(se(),Qi(zQA,w3({key:0,onHover:l},I.$props),{trigger:Li(()=>[Fn(I.$slots,"trigger")]),content:Li(()=>[Fn(I.$slots,"content")]),_:3},16)),aA(Mv)?(se(),Qi($QA,tsA(w3({key:1},I.$props)),{trigger:Li(()=>[Fn(I.$slots,"trigger")]),content:Li(()=>[Fn(I.$slots,"content")]),_:3},16)):$t("",!0)],64))}}),epA={deviceType:{type:String},isShowControlBtn:{type:Boolean,default:!1}},tpA=t=>(gT("data-v-31eef133"),t=t(),cT(),t),ipA={class:"device-selector-container"},opA={class:"scroll-container"},spA={class:"scroll-content"},npA=tpA(()=>ne("div",{class:"control-item"},null,-1)),rpA={options:{virtualHost:!0}},apA=zi({...rpA,__name:"DeviceSelect",props:epA,setup(t){const i=t,[{deviceList:r,currentDeviceId:l},{updateCurrentDeviceId:I}]=yV(i.deviceType),{localUserInfoExcludeVolume:h}=Gs(cC()),{isMuteSpeaker:f}=Gs(jg()),w=SV(),_=og(),b=async nA=>{try{IA(),await ts.switchDevice({deviceType:i.deviceType,deviceId:nA}),I(nA)}catch(mA){console.debug(mA)}},U=async()=>{var nA,mA;IA(),i.deviceType===mu.CAMERA&&((nA=h.value)!=null&&nA.isVideoAvailable?await ts.closeCamera():await ts.openCamera("localVideo")),i.deviceType===mu.MICROPHONE&&((mA=h.value)!=null&&mA.isAudioAvailable?await ts.closeMicrophone():await ts.openMicrophone()),i.deviceType===mu.SPEAKER&&(f.value?await ts.unMuteSpeaker():await ts.muteSpeaker())},j=wt(()=>{var nA;if(i.deviceType===mu.CAMERA)return h!=null&&h.value.isVideoAvailable?_.value("close camera"):_.value("open camera");if(i.deviceType===mu.MICROPHONE)return(nA=h?.value)!=null&&nA.isAudioAvailable?_.value("close microphone"):_.value("open microphone");if(i.deviceType===mu.SPEAKER)return f.value?_.value("open speaker"):_.value("close speaker")}),IA=()=>{w.value="close"};return(nA,mA)=>(se(),At("div",ipA,[ne("div",opA,[ne("div",spA,[(se(!0),At(vr,null,fE(aA(r),lA=>(se(),At("div",{key:lA.deviceId},[bt(yl,{width:"100%",color:"#ffff",truncated:!0,size:"14px",class:qi(["device-item",{select:aA(l)===lA.deviceId}]),onClick:()=>b(lA.deviceId)},{default:Li(()=>[Ia(ni(lA.label),1)]),_:2},1032,["class","onClick"])]))),128))])]),npA,nA.isShowControlBtn?(se(),Qi(yl,{key:0,width:"100%",color:"#ffff",truncated:!0,size:"14px",class:"device-item",onClick:U},{default:Li(()=>[Ia(ni(aA(j)),1)]),_:1})):$t("",!0)]))}}),b4=bs(apA,[["__scopeId","data-v-31eef133"]]),gpA={class:"btn-content"},cpA={options:{virtualHost:!0}},lpA=zi({...cpA,__name:"Camera",props:pm,setup(t){const i=og(),r=t,l=ze(!0),I=Ko.isPC,{localUserInfoExcludeVolume:h}=Gs(cC()),f=ze(h?.value.isVideoAvailable),w=wt(()=>h?.value.isVideoAvailable),_=SV(),[{deviceList:b}]=yV(mu.CAMERA),U=wt(()=>{var cA;return((cA=b.value)==null?void 0:cA.length)>0&&_.value==="camera"}),j=wt(()=>l.value?w.value?"basicConfig":"closedConfig":"loadingConfig"),IA=wt(()=>h!=null&&h.value.isVideoAvailable?i.value("camera enabled"):i.value("camera disabled")),nA=gC("camera",j),mA=async()=>{l.value=!1,f.value=!w.value,w.value?await ts.closeCamera():await ts.openCamera("localVideo"),l.value=!0},lA=()=>{_.value="camera"};return(cA,TA)=>(se(),At("div",gpA,[aA(I)?(se(),Qi(G4,{key:0,color:"rgba(107, 117, 138, 0.5)",show:aA(U),onHover:lA,trigger:"hover"},{content:Li(()=>[bt(b4,{isShowControlBtn:!0,deviceType:aA(mu).CAMERA},null,8,["deviceType"])]),trigger:Li(()=>[bt(Id,{loading:!aA(l),iconSrc:aA(nA).iconSrc,color:aA(nA).color,iconSize:aA(nA).iconSize,width:r.width||aA(nA).width,height:r.height||aA(nA).height,loadingWidth:aA(nA).loadingWidth,loadingHeight:aA(nA).loadingHeight,shape:aA(nA).shape,onClick:mA},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])]),_:1},8,["show"])):$t("",!0),aA(I)?$t("",!0):(se(),Qi(Id,{key:1,loading:!aA(l),iconSrc:aA(nA).iconSrc,color:aA(nA).color,iconSize:r.iconSize||aA(nA).iconSize,width:r.width||aA(nA).width,height:r.height||aA(nA).height,loadingWidth:aA(nA).loadingWidth,loadingHeight:aA(nA).loadingHeight,shape:"circle",onClick:mA},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight"])),aA(nA).showText?(se(),Qi(yl,{key:2,textStyle:aA(nA).textStyle,color:aA(nA).textColor,size:aA(nA).textSize},{default:Li(()=>[Ia(ni(aA(IA)),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),IpA=bs(lpA,[["__scopeId","data-v-84cd42ba"]]),upA={class:"btn-content"},EpA={options:{virtualHost:!0}},dpA=zi({...EpA,__name:"Hangup",props:pm,setup(t){const i=t,r=VdA(),l=wt(()=>r.value?"basicConfig":"loadingConfig"),I=gC("hangup",l),h=og(),f=async()=>{await ts.hangup()};return(w,_)=>(se(),At("div",upA,[bt(Id,{loading:!aA(r),loadingWidth:aA(I).loadingWidth,loadingHeight:aA(I).loadingHeight,iconSrc:aA(I).iconSrc,color:aA(I).color,iconSize:i.iconSize||aA(I).iconSize,width:i.width||aA(I).width,height:i.height||aA(I).height,shape:aA(I).shape,onClick:f},null,8,["loading","loadingWidth","loadingHeight","iconSrc","color","iconSize","width","height","shape"]),aA(I).showText?(se(),Qi(yl,{key:0,textStyle:aA(I).textStyle,color:aA(I).textColor,size:aA(I).textSize},{default:Li(()=>[Ia(ni(aA(h)("hangup")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),CpA=bs(dpA,[["__scopeId","data-v-d2aaa623"]]),hpA={class:"btn-content"},BpA={options:{virtualHost:!0}},QpA=zi({...BpA,__name:"Accept",props:pm,setup(t){const i=ze(!0),r=t,l=wt(()=>i.value?"basicConfig":"loadingConfig"),I=gC("accept",l),h=og(),f=async()=>{i.value=!1,await ts.accept(),i.value=!0};return(w,_)=>(se(),At("div",hpA,[bt(Id,{iconSrc:aA(I).iconSrc,color:aA(I).color,iconSize:r.iconSize||aA(I).iconSize,width:r.width||aA(I).width,height:r.height||aA(I).height,shape:aA(I).shape,loading:!aA(i),loadingWidth:aA(I).loadingWidth,loadingHeight:aA(I).loadingHeight,onClick:f},null,8,["iconSrc","color","iconSize","width","height","shape","loading","loadingWidth","loadingHeight"]),aA(I).showText?(se(),Qi(yl,{key:0,textStyle:aA(I).textStyle,color:aA(I).textColor,size:aA(I).textSize},{default:Li(()=>[Ia(ni(aA(h)("accept")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),ppA=bs(QpA,[["__scopeId","data-v-884ec28b"]]),mpA={class:"btn-content"},fpA={options:{virtualHost:!0}},ypA=zi({...fpA,__name:"Microphone",props:pm,setup(t){const i=Ko.isPC,r=ze(!0),{localUserInfoExcludeVolume:l}=Gs(cC()),I=SV(),[{deviceList:h}]=yV(mu.MICROPHONE),f=wt(()=>{var nA;return((nA=h.value)==null?void 0:nA.length)>0&&I.value==="microphone"}),w=wt(()=>r.value?l!=null&&l.value.isAudioAvailable?"basicConfig":"closedConfig":"loadingConfig"),_=gC("microphone",w),b=og(),U=wt(()=>l!=null&&l.value.isAudioAvailable?b.value("microphone enabled"):b.value("microphone disabled")),j=async()=>{l!=null&&l.value.isAudioAvailable?await ts.closeMicrophone():await ts.openMicrophone()},IA=()=>{I.value="microphone"};return(nA,mA)=>(se(),At("div",mpA,[aA(i)?(se(),Qi(G4,{key:0,color:"rgba(107, 117, 138, 0.5)",show:aA(f),onHover:IA,trigger:"hover"},{content:Li(()=>[bt(b4,{isShowControlBtn:!0,deviceType:aA(mu).MICROPHONE},null,8,["deviceType"])]),trigger:Li(()=>[bt(Id,{loading:!aA(r),iconSrc:aA(_).iconSrc,color:aA(_).color,iconSize:aA(_).iconSize,width:aA(_).width,height:aA(_).height,loadingWidth:aA(_).loadingWidth,loadingHeight:aA(_).loadingHeight,shape:aA(_).shape,onClick:j},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])]),_:1},8,["show"])):$t("",!0),aA(i)?$t("",!0):(se(),Qi(Id,{key:1,loading:!aA(r),iconSrc:aA(_).iconSrc,color:aA(_).color,iconSize:aA(_).iconSize,width:aA(_).width,height:aA(_).height,loadingWidth:aA(_).loadingWidth,loadingHeight:aA(_).loadingHeight,shape:aA(_).shape,onClick:j},null,8,["loading","iconSrc","color","iconSize","width","height","loadingWidth","loadingHeight","shape"])),aA(_).showText?(se(),Qi(yl,{key:2,textStyle:aA(_).textStyle,color:aA(_).textColor,size:aA(_).textSize},{default:Li(()=>[Ia(ni(aA(U)),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),DpA=bs(ypA,[["__scopeId","data-v-e78303e9"]]),SpA={class:"btn-content"},MpA={options:{virtualHost:!0}},vpA=zi({...MpA,__name:"Reject",props:pm,setup(t){const i=t,r=gC("reject",ze("basicConfig")),l=og(),I=async()=>{await ts.reject()};return(h,f)=>(se(),At("div",SpA,[bt(Id,{iconSrc:aA(r).iconSrc,color:aA(r).color,iconSize:aA(r).iconSize,width:i.width||aA(r).width,height:i.height||aA(r).height,shape:aA(r).shape,onClick:I},null,8,["iconSrc","color","iconSize","width","height","shape"]),aA(r).showText?(se(),Qi(yl,{key:0,textStyle:aA(r).textStyle,color:aA(r).textColor,size:aA(r).textSize},{default:Li(()=>[Ia(ni(aA(l)("reject")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),RpA=bs(vpA,[["__scopeId","data-v-1a266441"]]),wpA={class:"btn-content"},_pA={options:{virtualHost:!0}},TpA=zi({..._pA,__name:"Speaker",props:pm,setup(t){const i=Ko.isWeChat,r=Ko.isPC,l=t,{isEarPhone:I,isMuteSpeaker:h}=Gs(jg()),f=SV(),w=og(),_=wt(()=>I.value?"closedConfig":"basicConfig"),b=wt(()=>h.value?"closedConfig":"basicConfig"),[{deviceList:U,currentDeviceId:j}]=yV(mu.SPEAKER),IA=wt(()=>{var TA;return((TA=U.value)==null?void 0:TA.length)>0&&f.value==="speaker"&&r}),nA=i?gC("speaker",_):gC("speaker",b);wt(()=>I.value?w.value("speaker disabled"):w.value("speaker enabled"));const mA=async()=>{h.value?await ts.unMuteSpeaker():await ts.muteSpeaker()},lA=()=>{if(r){const TA=U.value.find(WA=>WA.deviceId===j.value);return TA?TA.label:w.value("speaker enabled")}else return h.value?w.value("speaker disabled"):w.value("speaker enabled")},cA=()=>{f.value="speaker"};return(TA,WA)=>(se(),At("div",wpA,[bt(G4,{color:"rgba(107, 117, 138, 0.5)",show:aA(IA),onHover:cA,trigger:"hover"},{content:Li(()=>[bt(b4,{isShowControlBtn:!0,deviceType:aA(mu).SPEAKER},null,8,["deviceType"])]),trigger:Li(()=>[bt(Id,{iconSrc:aA(nA).iconSrc,color:aA(nA).color,iconSize:l.iconSize||aA(nA).iconSize,width:l.width||aA(nA).width,height:l.height||aA(nA).height,shape:aA(nA).shape,onClick:mA},null,8,["iconSrc","color","iconSize","width","height","shape"])]),_:1},8,["show"]),aA(nA).showText?(se(),Qi(yl,{key:0,width:"60px",truncated:!0,textStyle:aA(nA).textStyle,color:aA(nA).textColor,size:aA(nA).textSize,lineClamp:2},{default:Li(()=>[Ia(ni(lA()),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),NpA=bs(TpA,[["__scopeId","data-v-001b7a7b"]]),GpA={class:"btn-content"},bpA={options:{virtualHost:!0}},kpA=zi({...bpA,__name:"SwitchCamera",setup(t){const{localUserInfoExcludeVolume:i}=Gs(cC()),r=wt(()=>i?.value.isVideoAvailable),l=wt(()=>r.value?"basicConfig":"disableConfig"),I=gC("switchCamera",l),h=og(),f=async()=>{r.value&&await ts.switchCamera()};return(w,_)=>(se(),At("div",GpA,[bt(Id,{iconSrc:aA(I).iconSrc,iconSize:aA(I).iconSize,color:aA(I).color,width:aA(I).width,height:aA(I).height,buttonStyle:aA(I).buttonStyle,shape:"circle",onClick:f},null,8,["iconSrc","iconSize","color","width","height","buttonStyle"]),aA(I).showText?(se(),Qi(yl,{key:0,textStyle:aA(I).textStyle,color:aA(I).textColor,size:aA(I).textSize},{default:Li(()=>[Ia(ni(aA(h)("switch camera")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),LpA=bs(kpA,[["__scopeId","data-v-5a074e02"]]),UpA={class:"btn-content"},FpA={options:{virtualHost:!0}},OpA=zi({...FpA,__name:"VirtualBackground",props:pm,setup(t){const i=t,r=ze(!0),{localUserInfoExcludeVolume:l}=Gs(cC()),I=wt(()=>l?.value.isVideoAvailable),{enableVirtualBackground:h}=Gs(jg()),f=wt(()=>r.value?h.value?"closedConfig":I.value?"basicConfig":"disableConfig":"loadingConfig"),w=gC("virtualBackground",f),_=og(),b=async()=>{I.value&&(r.value=!1,await ts.setBlurBackground(!h.value),r.value=!0)};return(U,j)=>(se(),At("div",UpA,[bt(Id,{loading:!aA(r),iconSrc:aA(w).iconSrc,color:aA(w).color,iconSize:i.iconSize||aA(w).iconSize,width:i.width||aA(w).width,height:i.height||aA(w).height,shape:aA(w).shape,loadingWidth:aA(w).loadingWidth,loadingHeight:aA(w).loadingHeight,buttonStyle:aA(w).buttonStyle,onClick:b},null,8,["loading","iconSrc","color","iconSize","width","height","shape","loadingWidth","loadingHeight","buttonStyle"]),aA(w).showText?(se(),Qi(yl,{key:0,width:"70px",lineClamp:2,textStyle:aA(w).textStyle,color:aA(w).textColor,size:aA(w).textSize},{default:Li(()=>[Ia(ni(aA(_)("virtual-background")),1)]),_:1},8,["textStyle","color","size"])):$t("",!0)]))}}),PpA=bs(OpA,[["__scopeId","data-v-1d790d2d"]]),xpA={class:"btn-content"},YpA={options:{virtualHost:!0}},VpA=zi({...YpA,__name:"ToggleButtonPanel",props:pm,setup(t){const{status:i}=JU(),r=t,l=gC("toggleButtonPanel",ze("basicConfig")),I=async()=>{i.value=i.value==="close"?"open":"close"};return(h,f)=>(se(),At("div",xpA,[bt(Id,{iconSrc:aA(l).iconSrc,color:aA(l).color,iconSize:r.iconSize||aA(l).iconSize,width:r.width||aA(l).width,height:r.height||aA(l).height,shape:aA(l).shape,onClick:I},null,8,["iconSrc","color","iconSize","width","height","shape"])]))}}),JpA=bs(VpA,[["__scopeId","data-v-f7839a20"]]),HpA={class:"button-group"},qpA={options:{virtualHost:!0}},KpA=zi({...qpA,__name:"ButtonPanel",setup(t){const i=ze(null),r=ze({}),{isGroupCall:l}=Gs(jg()),{status:I}=JU()||{},h=ze(!1),f=ze(!1),w=ze(""),_=cAA();lT(()=>{h.value||(l.value&&!Ko.isPC&&_.value!==null?h.value=!0:h.value=!1)});const b=wt(()=>ja(["button-panel-container",{pc:Ko.isPC,mobile:!Ko.isPC,h5:Ko.isH5,groupCall:l.value,singleCall:!l.value,close:I?.value==="close",open:I?.value==="open",showBackGround:h.value}])),U=ja(["toggle-button-container",{h5:Ko.isH5}]),j=Ko.isH5?{transitionProperty:"width,height,left,top",transitionDuration:"0.3s",transitionTimingFunction:"ease-in"}:{};function IA(TA){i.value=TA}const{layout:nA,config:mA}=VQA();br(mA,()=>{const TA={},WA=mA.value.flat();for(let Ee of WA){const{name:de,props:Pe={}}=Ee;Pe.showText!==!1&&(Pe.showText=!0),TA[de]=Pe}r.value=TA},{immediate:!0});function lA(TA){f.value=TA}const cA={[fA.IS_CLICKABLE]:lA};return hc(()=>{it.watch(oe.CALL,cA,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,cA)}),cd(eAA,f),cd(tAA,w),(TA,WA)=>(se(),At("div",{class:qi(aA(b))},[ne("div",HpA,[bt(VAA,{unit:"%",onToggle:IA,layout:aA(nA),focus:aA(i)},{default:Li(()=>[bt(iB,{index:"accept",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(ppA)]),_:1},8,["customStyle"]),bt(iB,{index:"reject",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(RpA)]),_:1},8,["customStyle"]),bt(iB,{index:"microphone",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(DpA)]),_:1},8,["customStyle"]),bt(iB,{index:"hangup",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(CpA)]),_:1},8,["customStyle"]),bt(iB,{index:"speaker",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(NpA)]),_:1},8,["customStyle"]),bt(iB,{index:"camera",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(IpA)]),_:1},8,["customStyle"]),bt(iB,{index:"virtualBackground",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(PpA)]),_:1},8,["customStyle"]),bt(iB,{index:"switchCamera",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(LpA)]),_:1},8,["customStyle"]),bt(iB,{index:"inviteUser",height:"auto",customStyle:aA(j)},{default:Li(()=>[bt(SAA)]),_:1},8,["customStyle"])]),_:1},8,["layout","focus"])]),aA(h)?(se(),At("div",{key:0,class:qi(aA(U))},[bt(JpA)],2)):$t("",!0)],2))}}),HAA=bs(KpA,[["__scopeId","data-v-6582c17d"]]),jpA={class:"singlecall-container"},WpA=zi({__name:"SingleCall",setup(t){const{callStatus:i}=Gs(jg());return(r,l)=>(se(),At("div",jpA,[bt(MAA),bt(vAA),aA(i)===aA(ss).CALLING?(se(),Qi(NAA,{key:0})):$t("",!0),bt(SQA),bt(xAA),bt(HAA)]))}}),zpA=bs(WpA,[["__scopeId","data-v-0fa5f69a"]]),ZpA={class:"stream-loading-container"},XpA=zi({__name:"StreamLoading",setup(t){return(i,r)=>(se(),At("div",ZpA,[bt(T4,{mode:"dot",color:"#FFF",loadingWidth:"50px",loadingHeight:"50px"})]))}}),r6=bs(XpA,[["__scopeId","data-v-56b8bc56"]]),$pA={options:{virtualHost:!0}},AmA=zi({...$pA,__name:"MediaContainer",setup(t){const i=ze("local"),r=ze(!1);HU();const{localUserInfoExcludeVolume:l,remoteUserListExcludeVolume:I}=Gs(cC()),{callStatus:h,callType:f,isShowEnableVirtualBackground:w,callRole:_}=Gs(jg()),b=ze(Ko.isPC?null:f.value===tr.VIDEO?0:null),{netWorkQualityList:U}=YdA(),j=wt(()=>I.value.length+1);gAA();const IA=HdA(b,j),nA=aAA(),{isFloatWindow:mA}=Gs(gB()),lA=cAA(),{status:cA}=JU()||{},TA=!Ko.isPC,WA=wt(()=>String(b.value)==="0"),Ee=wt(()=>!Ko.isPC&&WA.value&&l.value.isVideoAvailable),de=wt(()=>Ee.value),Pe=wt(()=>Ee.value&&w.value&&Ko.isWeChat),pe=wt(()=>Ko.isPC||WA.value),gt=wt(()=>Ko.isPC||mA.value?"%":"vw"),pt=wt(()=>[l.value,...I.value].map(Ut=>{var gi;if(mA.value){if(((gi=nA.value)==null?void 0:gi[Ut.domId])>=10)return Ut.domId}else return Ut.domId})),We=wt(()=>!(_.value===Vc.CALLEE&&h.value===ss.CALLING&&!mA.value)),Dt=wt(()=>{let Ut="";return _.value===Vc.CALLEE&&h.value===ss.CALLING&&!mA.value&&(Ut="hidden"),{visibility:Ut}});function Kt(Ut){b.value=Ut,lA.value=Ut,cA.value=Ut!==null?"close":"open"}function ut(Ut){return!Ut.isVideoAvailable}function ge(Ut){return!Ut.isAudioAvailable}function XA(Ut){if(!U.value)return;const gi=Ut!==l.value.userId;if(!Ko.isWeChat&&gi)return;const Fi=U.value.find(To=>To.userId===Ut);return Fi&&Fi?.quality>=4}br([I,f],()=>{var Ut,gi;(gi=(Ut=I.value)==null?void 0:Ut[0])!=null&&gi.isEnter&&(i.value="remote"),f.value===tr.AUDIO?r.value=!1:r.value=!0});const _e=wt(()=>ja(["groupcall-media-container",{mobile:!Ko.isPC,pc:Ko.isPC,"two-layout":j.value===2&&b.value===null,float:mA.value}])),je=wt(()=>h.value===ss.CALLING&&(f.value===tr.AUDIO&&!l.value.isAudioAvailable||f.value===tr.VIDEO&&!l.value.isVideoAvailable));return(Ut,gi)=>(se(),Qi(bAA,{id:"source",disabled:!aA(mA),source:"#source",to:"body"},{default:Li(()=>[bt(OAA,null,{default:Li(()=>[ne("div",{class:qi(aA(_e)),style:Br([aA(Dt)])},[bt(VAA,{unit:aA(gt),"enable-focus":TA,focus:aA(b),length:aA(j),layout:aA(IA),onToggle:Kt},{default:Li(()=>[(se(),Qi(iB,{index:0,key:aA(l).userId},{default:Li(()=>[bt(LAA,{domId:aA(l).domId,"show-audio-stream":!aA(l).isVideoAvailable,show:aA(pt).includes(aA(l).domId)&&aA(We)},{"audio-stream":Li(()=>[bt(YY,{"user-id":aA(l).userId,username:aA(l).displayUserInfo,avatar:aA(l).avatar,"is-video-available":aA(l).isVideoAvailable},null,8,["user-id","username","avatar","is-video-available"])]),loading:Li(()=>[aA(je)?(se(),Qi(r6,{key:0})):$t("",!0)]),"stream-info":Li(()=>[aA(mA)?$t("",!0):(se(),Qi(xY,{key:0,"is-self":!0,"show-nick-name":aA(pe),showSwitchCameraButton:aA(de),showVirtualBackgroundButton:aA(Pe),showNetWorkStatus:XA(aA(l).userId),nickName:aA(l).displayUserInfo,isMuted:!aA(l).isAudioAvailable,volume:aA(nA)&&aA(nA)[aA(l).domId]},null,8,["show-nick-name","showSwitchCameraButton","showVirtualBackgroundButton","showNetWorkStatus","nickName","isMuted","volume"]))]),_:1},8,["domId","show-audio-stream","show"])]),_:1})),(se(!0),At(vr,null,fE(aA(I),(Fi,To)=>(se(),Qi(iB,{key:Fi.userId,index:To+1},{default:Li(()=>[bt(UAA,{domId:Fi.domId,"show-audio-stream":ut(Fi),show:aA(pt).includes(Fi.domId)&&aA(We)},{"audio-stream":Li(()=>[bt(YY,{"user-id":Fi.userId,username:Fi.displayUserInfo,avatar:Fi.avatar},null,8,["user-id","username","avatar"])]),loading:Li(()=>[Fi.isEnter?$t("",!0):(se(),Qi(r6,{key:0}))]),"stream-info":Li(()=>[aA(mA)?$t("",!0):(se(),Qi(xY,{key:0,"show-nick-name":aA(Ko).isPC||String(aA(b))===String(To+1),"show-control-button":!1,showNetWorkStatus:XA(Fi.userId),nickName:Fi.displayUserInfo,"is-muted":ge(Fi),volume:aA(nA)&&aA(nA)[Fi.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"]))}}),emA=bs(AmA,[["__scopeId","data-v-aee2b0d9"]]),tmA={key:0,class:"dialog-main-header"},imA={class:"dialog-main-title"},omA={key:1,class:"dialog-main-footer"},smA=zi({__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"},l=t,I=ze(!0),h=ze(!0),f=ze(!0),w=ze(""),_=og();lT(()=>{w.value=l.title,I.value=l.isHeaderShow,h.value=l.isFooterShow,f.value=l.background});const b=i,U=nA=>{nA===r.OUTSIDE&&j()},j=()=>{b("cancel")},IA=()=>{b("submit")};return(nA,mA)=>(se(),At("div",{class:qi(["dialog",[l.isH5?"dialog-h5":"",t.center?"center":""]]),onClick:mA[1]||(mA[1]=yE(lA=>U(r.OUTSIDE),["stop","prevent"]))},[ne("main",{class:qi(["dialog-main",[aA(f)?"":"dialog-main-back"]]),onClick:mA[0]||(mA[0]=yE(lA=>U(r.INSIDE),["stop","prevent"]))},[aA(I)?(se(),At("header",tmA,[ne("h1",imA,ni(aA(w)),1),ne("i",{class:"icon icon-close",onClick:j})])):$t("",!0),ne("div",{class:qi(["dialog-main-content",[l.isH5?"dialog-main-content-uniapp":""]])},[Fn(nA.$slots,"default",{},void 0,!0)],2),aA(h)?(se(),At("footer",omA,[ne("button",{class:"btn btn-cancel",onClick:j},ni(aA(_)("Cancel")),1),ne("button",{class:"btn btn-default",onClick:IA},ni(aA(_)("Done")),1)])):$t("",!0)],2)],2))}}),nmA=bs(smA,[["__scopeId","data-v-26735e82"]]),rmA=["src"],amA=["src"],gmA=zi({__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,l=t,I=()=>{r("click")};return(h,f)=>(se(),At("div",{class:"icon",onClick:I},[l.isApp?(se(),At("image",{key:0,class:"icon",src:l.file,style:Br({width:l.width,height:l.height})},null,12,rmA)):(se(),At("img",{key:1,class:"icon",src:l.file,style:Br({width:l.width,height:l.height})},null,12,amA))]))}}),K1=bs(gmA,[["__scopeId","data-v-b989a330"]]),a6="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPue8lue7hCAxNDwvdGl0bGU+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii0xMC42JSIgeT0iLTUuNCUiIHdpZHRoPSIxMjEuMiUiIGhlaWdodD0iMTEwLjklIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMSI+CiAgICAgIDxmZU9mZnNldCBkeD0iMCIgZHk9IjciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjEgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSIgcmVzdWx0PSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVDb2xvck1hdHJpeD4KICAgICAgPGZlTWVyZ2U+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJzaGFkb3dNYXRyaXhPdXRlcjEiPjwvZmVNZXJnZU5vZGU+CiAgICAgICAgPGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIj48L2ZlTWVyZ2VOb2RlPgogICAgICA8L2ZlTWVyZ2U+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+CiAgPGcgaWQ9Im5ldyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0i6Ieq5a6a5LmJ5raI5oGvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDU4LjAwMDAwMCwgLTMxOC4wMDAwMDApIj4KICAgICAgPGcgaWQ9Iue8lue7hC0zMiIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0xKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDQuMDAwMDAwLCA2MC4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0i57yW57uELTI0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMC4wMDAwMDAsIDI1MC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSLnvJbnu4QtMTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM4NC4wMDAwMDAsIDguMDAwMDAwKSI+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9IuakreWchuW9oiIgZmlsbD0iIzAwNkVGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBjeD0iOCIgY3k9IjgiIHI9IjgiPjwvY2lyY2xlPgogICAgICAgICAgICA8cG9seWxpbmUgaWQ9Iui3r+W+hC00IiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC4wNDI2NDEsIDYuMjQyNjQxKSByb3RhdGUoLTMxNS4wMDAwMDApIHRyYW5zbGF0ZSgtOC4wNDI2NDEsIC02LjI0MjY0MSkgIiBwb2ludHM9IjYuMDQyNjQwNjkgMTAuMjQyNjQwNyAxMC4wNDI2NDA3IDEwLjI0MjY0MDcgMTAuMDQyNjQwNyAyLjI0MjY0MDY5Ij48L3BvbHlsaW5lPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==",cmA="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDhweCIgaGVpZ2h0PSI0OHB4IiB2aWV3Qm94PSIwIDAgNDggNDgiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPmljX2JhY2tfd2hpdGU8L3RpdGxlPgogIDxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0iMDIuLeafpeeci+S/oeaBry3npLrkvovlpb3lj4siIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi4wMDAwMDAsIC0yMDAuMDAwMDAwKSI+CiAgICAgIDxnIGlkPSLnvJbnu4QtNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDE3Ni4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iaWNfYmFja193aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIuMDAwMDAwLCAyNC4wMDAwMDApIj4KICAgICAgICAgIDxnIGlkPSJpY19iYWNrX2JsYWNrIiBmaWxsPSIjNDQ0NDQ0IiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8cGF0aCBkPSJNOS41MTIzMTA3MSwyNCBMMjMuNTE5ODI4NiwzOC43MjkwNDExIEMyMy43ODUzNzgsMzkuMDA4MjY4OSAyMy43NzUzMTY4LDM5LjQ0OTYwODIgMjMuNDk3MzE4NywzOS43MTY0NDQ4IEwyMS42MjU1OTE1LDQxLjUxMzAyMjYgQzIxLjM0NjY4MjcsNDEuNzgwNzMzMiAyMC45MDM1NjAyLDQxLjc3MTY1NTMgMjAuNjM1ODQ5Niw0MS40OTI3NDY2IEMyMC42MzUxMDMyLDQxLjQ5MTk2OSAyMC42MzQzNTg2LDQxLjQ5MTE4OTYgMjAuNjMzNjE1Nyw0MS40OTA0MDg1IEw0LjQ1ODc2Mzk5LDI0LjQ4MjM5NDggQzQuMjAxNzU0NCwyNC4yMTIxNDY3IDQuMjAxNzU0NCwyMy43ODc4NTMzIDQuNDU4NzYzOTksMjMuNTE3NjA1MiBMMjAuNjMzNjE1Nyw2LjUwOTU5MTUyIEMyMC45MDAwMzUsNi4yMjk0NDkwNiAyMS4zNDMxMTA5LDYuMjE4MzI0MjIgMjEuNjIzMjUzMyw2LjQ4NDc0MzUxIEMyMS42MjQwMzQ0LDYuNDg1NDg2MzQgMjEuNjI0ODEzOCw2LjQ4NjIzMDk3IDIxLjYyNTU5MTUsNi40ODY5Nzc0MSBMMjMuNDk3MzE4Nyw4LjI4MzU1NTI0IEMyMy43NzUzMTY4LDguNTUwMzkxNzUgMjMuNzg1Mzc4LDguOTkxNzMxMTQgMjMuNTE5ODI4Niw5LjI3MDk1ODkzIEw5LjUxMjMxMDcxLDI0IEw5LjUxMjMxMDcxLDI0IFoiIGlkPSJQYXRoLTIiPjwvcGF0aD4KICAgICAgICAgIDwvZz4KICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==",lmA="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSI+CiAgPHRpdGxlPua4hemZpDwvdGl0bGU+CiAgPGcgaWQ9Iumhtemdoi0y5aSH5Lu9IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgIDxnIGlkPSLliJvlu7rnvqTogYoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjQzLjAwMDAwMCwgLTQxMy4wMDAwMDApIj4KICAgICAgPGcgaWQ9Ikdyb3VwLTEzNjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY1MC4wMDAwMDAsIDM0My4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iR3JvdXAtMTM2MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjkwLjAwMDAwMCwgNDYuMDAwMDAwKSI+CiAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTM1OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDI0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0i5riF6ZmkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDMuMDAwMDAwLCAwLjAwMDAwMCkiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLDAgTDE2LDAgTDE2LDE2IEwwLDE2IEwwLDAgWiIgaWQ9IuefqeW9oiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDggQzEsMTEuODY1OTk5OSA0LjEzNDAwMDA2LDE1IDgsMTUgQzExLjg2NTk5OTksMTUgMTUsMTEuODY1OTk5OSAxNSw4IEMxNSw0LjEzNDAwMDA2IDExLjg2NTk5OTksMSA4LDEgTDgsMSBDNC4xMzQwMDAwNiwxIDEsNC4xMzQwMDAwNiAxLDggWiIgZmlsbD0iIzk5OTk5OSI+PC9wYXRoPgogICAgICAgICAgICAgIDxnIGlkPSLnvJbnu4QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguMDAwMDAwLCA4LjAwMDAwMCkgcm90YXRlKC0zMTUuMDAwMDAwKSB0cmFuc2xhdGUoLTguMDAwMDAwLCAtOC4wMDAwMDApIHRyYW5zbGF0ZSg0LjAwMDAwMCwgNC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDAwMDAwLCA0LjAwMDAwMCkgcm90YXRlKC05MC4wMDAwMDApIHRyYW5zbGF0ZSgtNC4wMDAwMDAsIC00LjAwMDAwMCkgIiB4PSIxLjgxODk4OTRlLTEyIiB5PSIzLjUiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiIHJ4PSIwLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaLlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuMDAwMDAwLCA0LjAwMDAwMCkgcm90YXRlKC0zNjAuMDAwMDAwKSB0cmFuc2xhdGUoLTQuMDAwMDAwLCAtNC4wMDAwMDApICIgeD0iMCIgeT0iMy41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxIiByeD0iMC41Ij48L3JlY3Q+CiAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9yZWN0PgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K",ImA=t=>(gT("data-v-cc0325fc"),t=t(),cT(),t),umA={class:"title"},EmA=ImA(()=>ne("span",{class:"space"},null,-1)),dmA={class:"main"},CmA={class:"left"},hmA={class:"transfer-header"},BmA=["value","placeholder"],QmA=["placeholder","value"],pmA={class:"transfer-left-main"},mmA={class:"transfer-list"},fmA={key:1,class:"icon-unselected"},ymA={class:"select-all"},DmA=["onClick"],SmA=["src"],MmA={class:"name"},vmA={key:0},RmA={class:"right"},wmA={key:0,class:"transfer-header"},_mA={key:1,class:"transfer-list"},TmA={key:0,class:"transfer-text"},NmA={class:"transfer-list-item-content"},GmA=["src"],bmA={key:0,class:"name"},kmA=["onClick"],LmA={class:"transfer-right-footer"},UmA=zi({__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,l=i,I=ze(""),h=ze([]),f=ze(0),w=ze([]),_=ze(!0),b=ze(!1),U=ze(""),j=ze(""),IA=og();lT(()=>{const{list:de,isCustomItem:Pe,isSearch:pe,title:gt,total:pt,selectedList:We}=r;if(Pe)for(let Dt=0;Dt<de.length;Dt++)de[Dt].conversationID.indexOf("@TIM#SYSTEM")>-1&&de.splice(Dt,1),h.value=de;else h.value=de;f.value=pt||de.length,w.value=We&&We.length>0?We:w.value,_.value=pe,b.value=Pe,U.value=gt,I.value=r.type});const nA=wt(()=>h.value.filter(de=>!de.isDisabled)),mA=de=>{j.value=de.target.value,l("search",de.target.value)},lA=de=>{if(de.isDisabled)return;let Pe=w.value;const pe=Pe.indexOf(de);if(pe>-1)return w.value.splice(pe,1);r.isRadio&&(Pe=[]),Pe.push(de),w.value=Pe},cA=()=>{w.value.length===nA.value.length?w.value=[]:w.value=[...nA.value]},TA=()=>{l("submit",w.value),j.value="",w.value=[]},WA=()=>{l("cancel"),j.value="",w.value=[]},Ee=()=>{l("getMore")};return(de,Pe)=>(se(),At("div",{class:qi(["transfer",[r.isH5?"transfer-h5":""]])},[r.isH5?(se(),At("header",{key:0,class:"transfer-header transfer-h5-header",onClick:WA},[bt(K1,{class:"icon",file:aA(cmA),width:"18px",height:"18px"},null,8,["file"]),ne("span",umA,ni(aA(U)),1),EmA])):$t("",!0),ne("main",dmA,[ne("div",CmA,[ne("header",hmA,[!r.isH5&&aA(_)?(se(),At("input",{key:0,type:"text",value:aA(j),onKeyup:y9(mA,["enter"]),placeholder:aA(IA)("Please enter userID"),enterkeyhint:"search",class:qi([r.isH5?"left-uniapp-input":""])},null,42,BmA)):$t("",!0),r.isH5&&aA(_)?(se(),At("input",{key:1,type:"text",onBlur:mA,onConfirm:mA,placeholder:aA(IA)("Please enter userID"),enterkeyhint:"search",value:aA(j),class:qi([r.isH5?"left-uniapp-input":""])},null,42,QmA)):$t("",!0)]),ne("main",pmA,[ne("ul",mmA,[aA(nA).length>1&&!t.isRadio?(se(),At("li",{key:0,class:"transfer-list-item",onClick:cA},[aA(w).length===aA(nA).length?(se(),Qi(K1,{key:0,file:aA(a6),width:"18px",height:"18px"},null,8,["file"])):(se(),At("i",fmA)),ne("span",ymA,ni(aA(IA)("Select all")),1)])):$t("",!0),(se(!0),At(vr,null,fE(aA(h),pe=>(se(),At("li",{class:"transfer-list-item",key:pe.userID,onClick:gt=>lA(pe)},[aA(w).indexOf(pe)>-1?(se(),Qi(K1,{key:0,file:aA(a6),class:qi([pe.isDisabled&&"disabled"]),width:"18px",height:"18px"},null,8,["file","class"])):(se(),At("i",{key:1,class:qi([pe.isDisabled&&"disabled","icon-unselected"])},null,2)),aA(b)?Fn(de.$slots,"left",{key:3,data:pe},void 0,!0):(se(),At(vr,{key:2},[ne("img",{class:"avatar",src:pe.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,SmA),ne("span",MmA,ni(pe.nick||pe.userID),1),pe.isDisabled?(se(),At("span",vmA)):$t("",!0)],64))],8,DmA))),128)),aA(f)>aA(h).length?(se(),At("li",{key:1,class:"transfer-list-item more",onClick:Ee},ni(aA(IA)("View more")),1)):$t("",!0)])])]),ne("div",RmA,[r.isH5?$t("",!0):(se(),At("header",wmA,ni(aA(U)),1)),t.resultShow?(se(),At("ul",_mA,[aA(w).length>0&&!r.isH5?(se(),At("p",TmA,ni(aA(w).length)+" "+ni(aA(IA)("people selected")),1)):$t("",!0),(se(!0),At(vr,null,fE(aA(w),(pe,gt)=>(se(),At("li",{class:"transfer-list-item space-between",key:gt},[ne("aside",NmA,[aA(b)?Fn(de.$slots,"right",{key:1,data:pe},void 0,!0):(se(),At(vr,{key:0},[ne("img",{class:"avatar",src:pe.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,GmA),r.isH5?$t("",!0):(se(),At("span",bmA,ni(pe.nick||pe.userID),1))],64))]),r.isH5?$t("",!0):(se(),At("span",{key:0,onClick:pt=>lA(pe)},[bt(K1,{file:aA(lmA),width:"18px",height:"18px"},null,8,["file"])],8,kmA))]))),128))])):$t("",!0),ne("footer",LmA,[ne("button",{class:"btn btn-cancel",onClick:WA},ni(aA(IA)("Cancel")),1),aA(w).length>0?(se(),At("button",{key:0,class:"btn",onClick:TA},ni(aA(IA)("Done")),1)):(se(),At("button",{key:1,class:"btn btn-no",onClick:TA},ni(aA(IA)("Done")),1))])])])],2))}}),FmA=bs(UmA,[["__scopeId","data-v-cc0325fc"]]),OmA=zi({__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,l=t,I=()=>{r("cancel")},h=_=>{r("confirm",_)},f=_=>{r("search",_)},w=()=>{r("getMore")};return(_,b)=>(se(),Qi(nmA,{isH5:!t.isPC,isHeaderShow:!1,isFooterShow:!1,background:!1,onCancel:I},{default:Li(()=>[bt(FmA,{isSearch:l.isNeedSearch,title:l.title,list:l.userList,isH5:!t.isPC,isRadio:l.isRadio,total:l.total,onGetMore:w,onSearch:f,onSubmit:h,onCancel:I},null,8,["isSearch","title","list","isH5","isRadio","total"])]),_:1},8,["isH5"]))}}),PmA={options:{virtualHost:!0}},xmA=zi({...PmA,__name:"BackGround",setup(t){return(i,r)=>(se(),Qi(RAA,{bgColor:"#22262ed9",bgImage:aA(Em),customStyle:{position:"absolute",zIndex:0}},null,8,["bgImage"]))}}),YmA={class:"groupcall-container"},g6=30,VmA=zi({__name:"GroupCall",setup(t){const i=ze(null),r=ze("open"),l=ze(!1),I=ze(0),h=ze([]),f=ze([]),w=ze(0),_=i,b={status:r},{callRole:U,callStatus:j}=Gs(jg()),{isFloatWindow:IA}=Gs(gB()),{localUserInfoExcludeVolume:nA,remoteUserListExcludeVolume:mA}=Gs(cC()),lA=async pe=>{if(l.value=pe,l.value){await WA();const gt=await ts.getGroupProfile();I.value=gt.memberCount}},cA=()=>{l.value=!1,it.update(oe.CALL,fA.SHOW_SELECT_USER,!1),w.value=0,h.value=[]},TA=async()=>{w.value+=g6,await WA()},WA=async()=>{const pe=await ts.getGroupMemberList(g6,w.value),gt=[...mA.value,nA.value].map(pt=>pt.userId);h.value.push(...pe),h.value=h.value.map(pt=>(gt.includes(pt.userID)&&(pt={...pt,isDisabled:!0}),pt)),f.value=h.value},Ee=async pe=>{try{if(pe.length<=0)return;l.value=!1,it.update(oe.CALL,fA.SHOW_SELECT_USER,!1),w.value=0;const gt=pe.map(pt=>pt.userID);await ts.inviteUser({userIDList:gt}),h.value=[]}catch(gt){console.debug(gt)}},de=pe=>{pe?h.value=h.value.filter(gt=>gt.userID.includes(pe)||gt.nick.includes(pe)):h.value=f.value},Pe={[fA.SHOW_SELECT_USER]:lA};return hc(()=>{it.watch(oe.CALL,Pe,{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,Pe)}),b.status=ze("open"),_.value=null,cd($$,b),cd(X$,_),(pe,gt)=>(se(),At("div",YmA,[bt(MAA),bt(vAA),aA(j)===aA(ss).CALLING&&aA(U)===aA(Vc).CALLEE&&!aA(IA)?(se(),Qi(NAA,{key:0})):$t("",!0),bt(emA),bt(xAA),bt(HAA),bt(xmA),aA(l)?(se(),Qi(OmA,{key:1,isNeedSearch:!0,userList:aA(h),isPC:aA(Ko).isPC,total:aA(I),onConfirm:Ee,onCancel:cA,onGetMore:TA,onSearch:de},null,8,["userList","isPC","total"])):$t("",!0)]))}}),JmA=bs(VmA,[["__scopeId","data-v-5655d849"]]),HmA={},qmA={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg","data-v-ea893728":""},KmA=ne("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),jmA=[KmA];function WmA(t,i){return se(),At("svg",qmA,jmA)}const zmA=bs(HmA,[["render",WmA]]),c6="data:image/jpeg;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApo2cKDRs4UCFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBTRs4UGjZwoBcFNGzhQaNnCgFwU0bOFBo2cKAXBRI2cKACwAAAAAAAAAAAAAAAAAAAAAAAAA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",ZmA="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+Lwo0Kljp4tVvriVeE5Z1E4RiudRWpZtrLXszO1rUaVxSlSr041actsZJNP2M1o4Th0KLpRsaCpuSk46CabWx9qzfeB5uIfxZhH+yr/az3yqVvRnWhXnShKrTTUJtJuKayeT5s0WgAABhR9HH2/mZmMI6MdHPPLnMgPN4QfuK9+6Zq4HhuH1cGs6lWxtpzlTTlKVKLbe9trWe1Upwq05U6sIzhJZSjJJprc09opwhSpxp0oRhCKyjGKSSW5JakB4HCxLicOSSSV3DJLsZliH8WYR/sq/2s9urQo11FVqVOooyUoqcVLJrY1nsfWJUKMqsK0qUJVYJqE3FOUU9Tye1Z9QHJToW1LhLf08Ruq9qq+jUo1IVXTjJZa03s1bFnuZ6OFU8LjjNRWdxcXVzCllKpOpxkFFtatLfnzdp7NzZ213BQurenWinmlOKeT6txNta21pTcLahToxbzahFLN73ltA8HhVTnbys8YopudpUSnlzwb2Pqz1f+zLeDVOVy7vF6sWp3lRqGe1QjqS8MvYj3KtOnWpyp1qcKkJL60ZxTT7U9TJpwhSpxp0oRhCKyjGKSSW5JakBz+N31z9MWuGU7tWNGpBznXaWb2/VTepPUuda37H52Hq2hwwowtburdRjRlGVWrU03KWTbyexpLLZ1nV3Vla3kYxurenWUXnHTinl2bhCytKcqcqdrRjKkmqclTScE880nlq2vZvA5/DLu2sOEGNQvK9Og6k4zi6klFNLN6m+fKSMsCuqd7wjxW4otunKMFFtZZpLJPseWftPcucPsrucZ3NrSqyjqUpwTaW7Pd1FtO2t6U5VKVGnCckoylGCTaSySbS1pJJLcB4fBP0WI/wDMn/go4N3lravEaFzcUqNXlc2o1JKLaeS1Z7da5jpKNCjQUlRpU6alJyloRUdJva3ltfWUVsNsK9fj61pRnVWT05QTby2Z7/aBtgACun/r/wBzLDGMdHPXnm2zIAcxya3u+Gl3TuaMK0FaqSjOKaTzis8nz5N9505UrajG4lcqlBVpR0ZVNFaTW5vblqXcBhbWdraaXJbelR08tLQilnlnlnluzfeczhf7h4QfeV/7DriiFnbQpVaVO3pxp1m3UiopKTayea580BocGUlwfs0kktB7FzuTzPBsrWj9L4lbXeJXdjWdeU4RpVlTjUi22nrWt5PufUzsKNKnQpxpUYRhTisoxiskl1Ipu8Osr7J3dtTquKyUpLWluzWvIDy8Eo4fDEryVne3V3WUYxqzqzU4vdlJJZtZZbWeDQozWNPAdFqhG95Rllq0FHNJ9WWXtZ21ta29pS4q1owpQzzcYLLN73vYVtbq4dyqNNV3HR4zRWk1uz25AcTUo1I4tPg/oviKl7GutWpwaba7Msvame9j+IXVC7srC1r07XlLelXmk9FLmWerN/5Ww9jk1u7lXLoU3XS0VUcVpJbs9uWsxu7K1vaap3VCFaKeaUlnk+p7V7AOVUKVHhVh1KOIVrypHTdSdSopKLcXkklqWzZ1o9Cw/jPFfuqf9sT16WG2NFUuKtKMXSbcGoLOLeWbT25vLb1F0bahCvO4jShGtNJTmopSkllkm+fYu4Dw+C/pcW/5c/zZ0JVRt6Nu5ujShT4yTlNxilpN7W97LQBfZeZU/wB/+EUF1nJJ1IPbnn7Msv8AAG2AAhx3CK0oX3C7CbW6hp0alKWlHSazy0mtnWkdBh+C4bhsnKytIUptZOeuUu96zZna21S5hczo05V6eqFRxzlHsZsAcxa//uDe581kvzgTwu9Ng3/Oh+Z78bW3V1K6jQpqvKOi6mj9Zrdn7EK9tb3DpuvRhVdOSnDTjnotc66wPA4X0KlKhbYvbLOvYVVPJc8G8mvy9mZjwZzxPEb7HqkWo1XxNumtkI7e95e1M6SrTp1qUqVWCnCa0ZRks00Y29CjbUo0belClTjnlCKyS9gHLVb26xPG76yqYo8NtLTJZQajOpvek9i6+tdpr8FlSr3PCGlaVqlSE1GNOrUlpSlqmtJvn16zqLnCMNvK6r3VlRq1V/qlHNv4l9G0tqFWdWjQp06lRJTlCKTklszA5zghiNnb4FG0ua9KhXtpzjVhUkotfWbz1/Oo9q2ubPHMNqSpqU7aqpU3pRazWx5Zi5wbDLus61zY0alTnk46327xf1rjD7On9G4dypqSgqMJqmoxyevPLm/yBxVtG8ua1DgnXUnC3uZSqzz20lrS9uby3fV3H0RJRWSWSR4OA4fdwu7vFcUhGF5dNJU4vNU4LYs/Z4LrOgAAADRuP2z/AP5r8yBVkpXcmv8ATFRfbmAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABno61zbQRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiUVJbmtjMcpbs+xmYAw+t0X4D63RfgZgDD63RfgPrdH8jMAYfW6L8B9bovwMwBh9bovwH1ui/AzAGH1uj+Q+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+A+t0X4GYAw+t0X4D63RfgZgDD63RfgPrdF+BmAMPrdF+Bi1PNSh9WS59RaACu7iKydCMnvU8viOW1/VV7z9AAHLa/qq95+g5bX9VXvP0AActr+qr3n6Dltf1Ve8/QABy2v6qvefoOW1/VV7z9AAHLa/qq95+g5bX9VXvP0AActr+qr3n6Dltf1Ve8/QABy2v6qvefoOW1/VV7z9AAHLa/qq95+hEri5qLRjBUlvzzZIAxhBQjku1t85kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAA8PHcbdg+T26Uq7Wbb2QRzVVFMYy9bNmu9VuUPcBwSxDGa314VriSfPCOrwJ5XjfTu/wALPHPjo0eV1R3TXDvAcFyrG+nd/hY5XjfTu/wv4DPjocrq1w70HBcqxvp3f4WOVY307v8ACxnx0OV1a4d6DguVY307v8LHKsb6d3+FjPjocrq1w70HBcqxvp3f4X8ByrG+nd/hfwGfHQ5XVrh3oOC5VjfTu/wscqxvp3f4WM+OhyurXDvQcFyrG+nd/hY5VjfTu/wsZ8dDldWuHeg4LlWN9O7/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/BjTjv8GBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTjv8GBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTj19wEgjTj19w049fcBII049fcNOPX3ASCNOPX3DTjv8ABgSCNOO/wY047/BgSCNOO/wYUo7MwJAAAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAA4C6XKcfqQq61O50H2aWWR35wD/iP/APuf9yvf+kNbsycJrmOjqbnHY4fWlZwsoyjSSSanktmezLrKvKv+RXvf0PKxz97XH/r/AGo88uRTGCxa2OzVRFUx3um8q/5Fe9/QeVf8ive/ocyCd2HfA2On7dN5V/yC97+g8q/5Be9/Q5+NrcTWcLerJPY4wbX5E8ivPVK/u5fAbsOOG2WP/r3/ACr/AJBe9/QeVf8AIL3v6HgcivPVK/u5fAcjvPVa/u5fAbtKOG2X3L3/ACr/AJBe9/QeVf8AIL3v6HPytbmCbnb1Ypbc4PL8ikndh1Gx7PV4R+3TeVf8ive/oPKv+RXvf0OZBG7DrgbHT9um8q/5Fe9/QeVf8ive/ocyBuwcDY6ft03lX/Ir3v6Dyr/kV739DmQN2DgbHT9um8q/5Fe9/QeVf8ive/ocyBuwcDY6ft03lX/Ir3v6Dyr/AJFe9/Q5kDdg4Gx0/bpvKv8AkV739B5V/wAive/ocyBuwcDY6ft03lX/ACK97+g8q/5Fe9/Q5kE7sHA2On7dN5V/yK97+g8q/wCRXvf0OZBG7BwNjp+3TeVf8ive/oPKv+RXvf0OZA3YOBsdP26byr/kV739B5V/yK97+hzIG7BwNjp+3TeVf8ive/oPKv8AkV739DmQN2DgbHT9um8q/wCRXvf0HlX/ACK97+hzIG7BwNjp+3TeVf8AIr3v6Dyr/kV739DmQN2DgbHT9um8q/5Fe9/QeVf8ive/ocyBuwcDY6ft03lX/Ir3v6Dyr/kV739DmQN2DgbHT9um8q/5Fe9/QeVf8ive/ocyBuwcDY6ft03lX/Ir3v6Dyr/kV739DmQN2DgbHT9um8q/5Fe9/QeVf8ive/ocyBuwcDY6ft03lX/Ir3v6Dyr/AJFe9/Q5kDdg4Gx0/bpvKv8AkV739B5V/wAive/ocyBuwcDY6ft03lX/ACK97+g8q/5Fe9/Q5kDdg4Gx0/bpvKv+RXvf0HlW/UV739DmQN2DgbHT9uoxKpDFOD9W6qUlB6LlFZ56LTezUeVwPk1c3MFscE37M8j0Kf8ACVT7uf8AczzuB/7Zcfdr8ylXERdh40Rhst2n6RLrJ55ZLnIyJntXtILDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAEwzyafMZGMNr9hkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8Rv/AJn/AHO/OAf8Rv8A5n/cr3vo1uzf7Ps38c/e1x/6/wBqPPPQxz97XH/r/ajzy/Hg0bHwqfsHSYNh1OlRhcVYqVWa0o5rNRT2ZdfWc09jO2i1GKitiSSOZlQ7Su1U0xTT9V+kNI8q5xvDrWq6Ve6jGcdTiouTT3PJPJlPlJhHrf8ATn8DjFhd729IaR4nlJhHrf8ATn8DetL62vabna1o1Ip5PLNNdqetDE727pHkYxh1OrRncUoqNWC0pZLLSS259fWejpdZEmpRcXrTTTJiXrZu1W64qiXFAhbESej6yAAAAAAABKQABAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRU/4Sqfdz/uZ5/A/9suPu1+Z6NP+Eqn3c/7medwP/bLj7tfmULnxYZ1Py977usntXtIJltXtIPdhgAAAAADHTgp6DlHTazUc1nl2GNWrTo0pVa04wpx1ylJ5JLrYFgKJXltBUXK4ppV2lSbkvrt7Mt+ea2by8AAAAAAAAACqhXo3NLjberCrTbaUoNNNrbrRaAAAAAAAAAAAAAAAV169K2pOrcVIU6ayTlNpJZvJa2ZrJrNPNPWmBIAAAq5RRVxyZ1Ycc46Sp6S0st+W3ItAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYbX7DIxhtl7DIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAcA/4jf/M/7nfnAP8AiN/8z/uV730a3Zv9n2b+Ofva4/8AX+1HnnoY5+9rj/1/tR55ejwaNj4VP2Q9jOx0jjpbH2HVaXWc1sztT/xfNpSlKUpSbcpPNt87ZAB5soPe4KVlRvbmVSWjTjQlOT5kk1r9ibPBPTwZ5fSHXZ1F+QhC/F8fr3lTQtpzo0IvVotqUuttfkdfYVZVMPtZzk5TlShKTe1txzbPmx9Bw2X/AMbaLP8A/hh/aiYlMR3ueWwkiOz2Ens+sp8G9hFnG9voUqmfFpaU8udfLNmtjdenV0LJU6NvBtRjGC+suvtJ4NNcvqRz1zoyS70eRKLjJxkmpJtNPamiPqrbsXL1UV/Twbl5Up31zCVpQcKlRJThFanLq1/O0slgmIKDfFRbSzcVNZlOH07t3lJWi0azT0ZNL4bj1sNt7Wji0NO9lWunKWcYR+rnk8833kTODi5cm1GFE90erxbezuLlVXQpOfFLOSXMtfzkbFbB7+hRdWpR+qlm0mm0enh85UZY3OnqlDNx6snIq4O1pxnezcnJ8U5fW15veMZc1bRc76o8IwaNTB7+nbuvOj9VLNrS1pdhr2tpXvKjhb03Nra9x6XB6pOpiVXTk5OpSlpZva9Wv53l1qranwezrVKlONaq1OVNZt9XUskMU1X66MaZ8e55d3h13ZwU69NKD2Si81+hlRwu9rRpTp0M41dcZZrI3I3OH0MOurajVrVOOSyjOOpPq3cxZf1qkOD1hThJxjPPSy1Zrd2DGU513upw75l50cMu5XNS2jSznTy03nqWezWLrDbu0p8bVguL2aUZZpF+H0bqvZ11yiNCzT/8spb/AJ60b1GnaxwO/hbVp1orRblKOis+pewYld+umrCZifBzwAOl0ABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFD+Eqn3c/wC5nn8D/wBsuPu1+Z6NP+Eqn3c/7medwP8A2y4+7X5lC58WGdT8ve+7rJbV7SCZbV7SD3YYAABDajFyk0klm2+ZEnjcJ7qdDDeT0Nde7mqNNJ69ep+Gr2oDmqte45bDhNnLiHc8XGOWvi0ss+rNJrtOo4RSjLg9dyi04ummmtjTa1nlTwzHZYT9GOlh3EKCimnPS1PPPPZnnr2bSuldyueBN1SqZqrbR4qae1ZNZeGS9jAm9/Z+Cv8Avo/9D2sRxmlZXELSlRq3V3NZqlSWbS3t8x4t7+z8Ff8AfR/6G1hzhT4X4nCs0qtSEXTb1ZxSWaW/9HuA38PxmleXE7SpQq213BaTpVVk2t6fPt/yWWeMW93h9e8UZ04UHJVIzS0k4rN6k3zHmYi4VOF2Fwo5OtThJ1Gtqi08k92rPvW88nEuMtMQxLCqOaWI1KcqeWxaT+t3ttewDqbDGLa+w6pfwUoU6elpqWScclm88nlsyftNjD7yN/Z07qFOcIVFnGM0s8k2s9Te3LM43EdLCrjEcJt09G+VN0VzJt5SXt1r2HbW1CNta0remvq04KC7EsgPL4SYhWscPlyelXdScXlVpxzjTaa1yfNnnq9plgeJVb22pQq2t1CcaMXKtVhlGo8lm4vnz29hnwjTeA3qSzehn3PMuwZp4NYtNNcnprVvUUmBzXB7GVaYRC3oWdxd1YSlKapReUE3qze97jo7LFrS9w6V/GbhSgnxmnqcGlm08upp6t6PP4GQjDA4yikpTqScnvayX5I8RQm+DWMqknkrzOSS/wBKcc+7UwPb8po8Wrl4ddqyby49xWWWeWeW7rzPdp1IVaUKtKSlCcVKMlsaazTRzMcPu62EKb4QpWMqOTTtoqKhlk03nqyWresj3cKpQo4ZbUqVZV4QppRqJZKS5mlm/wAwJxG/t8NtZXNy2opqMYxWbk3sSW/U+486OPyp1aMb3Drm1p15KEKk8ms3sTS1r53F/CDEFh1jCpGhCtUqVFCnGeWipNN5vu8Tn+EMMRhRs3iN9SnOdeLjb0qaSjknm09ryzS9oHvX2PULK+dlKhXq1nBShGnFPSb2Ja889r3aibLGoV73kNza1bS4cdKEKmTU11NbXqfczz5zpQ4cx41pOVuowb6Tz8cs17TPHWp49gtKk068arlLLaoZpvPtSfiBsVOENLllezoWlxXuaUtFQgllLLPN556ktWt70bGGYvSxCpVt3SqW91R8+jUWTS3reta71vR5mBTpR4SY1CTSqymnFPa0m88u9GUpxlw10qUlo0bVqs1ryebeT69cQLp8JIyVWpa4fcXNtRbU60ElHVta3o9eyuqV7aU7qg26dRZrNZNa8mn1prI5ujZ3Npa1LzAMUpysk5T4mtHOKy2pN61s6utnuYLfSxHC6N3OChOaaklszTabXVqA0uF38P3H+6H9yMHwijSoxrLD7qVksk7jRST5s0nry69Rnwuy8n7jXtlD+5F1xXtVwanVUo8nds1FJrJpxySXXnkst4Gzd4naWlgr2pUzoyScHHW55rNJLezRo8II8oo0rywuLSNdqNOpUX1W3sT3M564p1lg3B51azoQVSWdVxUlBuScG09TSSb18x6eJ4VdSt4LEeESVJzTi5W8VnLXlk0889oGzL+N6f8Aw3+bLrjH4Ru6lrZWde9qUdVR0stGL51nv1FM/wCN6f8AxP8ALK+B0oxtLuhNpXULiTqpvW3kln2ZprtzA3qGO2tewubuEKmlbJurRaSnHLbmm8uZ9zM7jGbahhFPE5Rm6U1HRiktJt823LNa89fMzzMPjTueFOL8VlK2lRVOpk805NJP8pLtzPJw2E7qvaYDWjpQs7ipOrmsk4x2d7cl7UB1dxi9tQwiGJyU5UpxjKMYpaT0stWt5ZrPXr5mb8G5QjJxcc0m09qz5mcNacbVuLPg/Vzatrucpt7HCOtZ9Tzl3o7sDl8Sxu6oY9b0qdtecVByU6caebrZJ5OK50tp7E8Wo0cM+kLunVt4PNcXUjlPPNpLLe8s11azzsVaXCnB22kmprNvnaZHC3KNLD6lVZ0IXMXUzWaS6+rLPvAsXCONPi53mHXVrb1GlGtOOaWextLZ4nupprNNNNZpp5po8jhNVt44BcurKLjUilT156Um81lv39iNvCYzjhNnGqmpqjBNPanorUwMcTxSjhsaSnCpVq1paNOlTWcpP4a13mvbY3p3tOyvLKtaVqqzp6eTjLLak1z/ADzoxxvEKttc2lpZ0aU7u4k1CdXzYJbXv5+bdznk3ELunwlwqF7fQuarlKWhCmoqmmtSWWt55PW9wHsXuOQt712Vta1ry5S0pQpJZRXW+bU13otw/GKF7G4U4VLerb66tOqsnFZZ59mp/OR52ASjDHMapVWlXlWUopvW4ZtrLqSa70beMVaFXDcTo204SuYUm6kYrOSWXP7MwNdcJVUhOvb4bd1rSDelWjFJZLa0ntS7Vlz5G/Xxmzo4bDEHOUqVRJU1FZyk3zJb9TK8DrW/k/azU4KlCilUeayTS+tn7c8zx+EThXrYNVtriNG1dSWjWjBSjCWayeTyT1p9zYHpUMfi7mlQvbG4s3XeVKdRfVk+ZN8z17Osuv8AGY2t4rK3tat3cuOm4U8kore29n/43nmYhhdw4UHiXCBOmqsZQUqEY5yWeWTTzzyzNm8so3WLVa2F4k7bEKcFGrDR0k1tWafs382oDbsMat7uhczqQnbztddaFTU4rJvPrWp9xpy4TKNLlUsNu1ZN5Ku0sss8k8t2fWV2eJVLinidhjUqWjbxUalalmk4yTTzy2PsXs1GtUjiWC4dG7ssRpXVhGMXGnWjk9FvUk1rfZmuwDq4SjUhGcHnGSTTXOnrTNbEr6OHWc7qdKpUhBrSUEm0m8s9bWrPItta3KLSjcaLjxtOM9F7Vmk8vZmZV6MLihUo1YqUKkXGS3prJgYq6ou05WpriXT4zSezRyzz7jz/AKdtY4THEq0KlOnNtQhJLTm82lkk8teT59hzKuLqNnPgy9LlDuFSjPm4pvNv/PYz1cfpU7S6wJSSjZ0Kug90ctHJv2Jv2MDahwijCpSjf2FzZ06zyhUqL6ub2Z7vnmPRqYhTp4lRsHCbqVoOcZLLRSWep6889R5nC+pRWBVITcXOcoqks9baeba9mfeUzk6XCTB41m1OVq4NvpZPPP2rxA9i6xGlbX1paThNzuW1GUUslltz19fMaV1whoW95WsoW1xWuabSjTpxzc81nmstiSyzz3mpi1anPhThFGMk503JzSeeWa1Z9ep+BbhcIvhRjM2lpRVNJ5a0nFN/ku4D2rWtK4tqdaVKdGU4punNZSi9z6zVxTFqGGqnGcKlatVeVOlTWcpdfYegc5duNPhpZzr5KErdxpSlsUs5al15PL2oDds8aVa8jZ3VpWs684uVONTJqaWt5Nc+owqY7pXFajYWFe84iWjUnDJRT50m9r1Ho1K9rC6pUas6auJpunF5aTSzzy7meFb3mIYpVuvo+pQsLSjNwlVcFKcmtryeSWrXr2b3zB6FLHLWrhNbEYwqaFF6NSm0lKLT1rLPLnXOaU+FVLi43FOwup2qyU6yikotrZueT1PWtfsPJsmnwVxpqemnWbU9ml5uvLr2nsVoRjwJUVFJOzjLZzuObfe8wJrcJ6FPOrSs7mtaRkozuIxyim92e3Xq5tfsPQvMVtbOyhd1JSnCqlxUYLOU21mkl2HnVYRjwJUYxSTs4yyy52k2+95nkXsakqXByTueTw4pKNZxUlCWUcm09XMtr5uoD3rfHoyu6VteWNxZyrPKlKqvqyfMs+Z7NXWL7hBb2d9Oylb16ldRTjGnFPTb2JZPPPLXs5maN7hdxp2rxLH1KMa0ZU4yoRi5ST1JNPPMst4xlw4um0m42qab5nnFZ9z8QNupjsKNpQqVrSvC5uJONO20frtp5ZvPLJbO8m1xrjb6Fld2Va0rVE3TU8nGSSzeTXPqMMav61vd2lpZUaM7u4bUJ1fNglterX/+Oc8ycbqnwowune38bqstOTjGmoqmnF5LVreeT29QHWgAAAAAAAAAAAAAAAAAAAAAAAmG2XsMjGG2XsMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAABwD/iN/wDM/wC535wD/iN/8z/uV730a3Zv9n2b+Ofva4/9f7Ueeehjn72uP/X+1Hnl6PBo2PhU/ZD2M6TSObexnuwqKUFJPPNJo5rZ3acTO7LhKlOVKpKnNNSi2mnzNGJ3NShb1npVaNKct8oJvxRhyOz9Uoe7j8DzZDiT2+DNJyuq85Rzp8VoSzWabbWruTPb5HZ+qUPdx+BdCMKcdGnCMIrYopJdyA8DE8DnCfGWMXOnJ64Z649me1HQ2alSs6FKeSlCnGLSfOkkxpETqKMJSb1JNsJiMZweFHZ7CSFsRJ7vq6fBZQrTt60K1J5Tg8187j0p32GXMuOurGoqz87i56pdp5IGGLiu1TXOMvU+mJrEKdzTpRhTpR0I0k/9PaZ0sUtbW65RaWOU2/rOc3q3pbjyARg44a30b9LEuL5dlRz5Xn/q83PPv2mGH33IuP8A/HxnG09DzssjTAwdZNGExh4tvDr3kNw63F6ecXHLPL2mVjfq3o1LatRVa2qNOUG8snvXzu2GkCcE1WaKpmZejWv7aFtUoWNpxaq+fOb0mVXF+69hbWrp6PEZ/W0tppgjAizRGD0LG/p0bStZ3NF1aFV6X1ZZNPV8EWfStONnXs6FqqdGosl9dtp73nt5jywMHM2KJnEABL2AASkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0/wCEqn3c/wC5nncD/wBsuPu1+Z6NP+Eqn3c/7medwP8A2y4+7X5lC58WGdT8ve+7rJ7YkEz2xIPdhgAAGtWsbevd0LqrByq0M+Lbk8o57Xlsz+CNkADz/oewyu1xTSu3nWSm0pPPPPLPVrb2bz0ABpTwy0qQtIyptqzcXRWk/qtbM9evYtpjiGFWeI6Ermm3OHm1IycZL2r/ACb4A0MPwmyw3SlbU3xk1lKpOTlJrdm+bsLK2HWle9pXtWlnXorKEs2slr2rY9r2m2ANS5w60urqhdV6SlVoPOnLNrJ55rVseT16zbAAxqQhVpyp1YqUJrRlFrNNPU0zzrDA7HD7jjraNRSSaUZTbjFPbkmemANeysrewtlb2sHCmm2k5N63t1vWYWuH2trTrU6NNKFabnUjJuSk2snt5nuNsAeJ5L4TpuSpVFBvN01Ukot9mf8Ak9mEI04RhCKjCKSjFLJJLUkkZADWvrK2xC3dvdU1Om2mlm001saa2M0FwbwzQ0Z0qlWSaaqTqScllnkk+Za9iyPYAHM3WH073hXUhc0ZToStVlLJpKSayya2NHq4fgtjh9WVahTk6slk6lSTlJLcs9h6IA5SywmjfYtjPLKNRJVoypVE3FrPSzafOtmfsPdw7C7PDYTjaU2nN5zlJtyl2t83UbwA8WpwYwupUlLiqkIyelKnCo1Fvs5vZkevRpU6FKFKjBQpwSUYxWSSRmANe9sre/tnb3UHOm2m0pNa1rWtazzpcGcKlW4x0ZqOlpOmptQb35fDUeyAKLm0t7q2lbV6UZ0WktDLJJLZllsy6jzrbg5htvXhWjTnOVN5wVSbkovqWzvzPYAGtyG3d+r9wfKFDi1LSeWjnnlls5zUvcBw+9ru4qU5wqtZSnTm4uS68tvbtPUAGtY2Frh9DibSkqcM83k223vbetsxo4daUb6rfU6WVxWWU5Zt5rVzbFsWw2wBpww20hiE8QjSyuZx0ZSzeTWWWzPLPUtZuAAaWI4XaYlCEbqm5ODbhKMmpRb25Ndi7kKWF2lKxdk6fG0JZuUajcm23nm2+f8AI3QB41Dg1hdGtGoqU56DzhCpNyjF9Sf+cz2QANLEcLtMShCN1BtwbcJxk1KLe3Jrs8EUUcBw6jVpVoUZOtSk5qo5ycm3vfPs2PVt3s9QAebiGC2OIVY1q9OUa0VkqlOTjLLc8tvtLrDDLTDqU6drS0VN5zlJtuT629v6m4APFnwYwqVSUlSqQjJ5ypwqNRb7E9XsyPRrWFpXsuR1aEHQSSUEskktmWWtNb0bIA8i14O4bbV4Vo06k503nDjJuSi+bJbNXWW3+CWN/W46tCcayWTqU5uLa3PLUz0gBo2eFWVna1LajQiqdTPjFJuTnmstbe3sNKPBfCozjJ0qkoReapyqNxT7Pie2AISSWSSSWpJcxrX97Gwt+PnSrVVpKOjSjpS18+Wa1G0AOewm3rX2MV8ZubaVvHRVOhCccpZZZOTW/LV7WtiR7V1a0Ly3lb3NONSnLbF/mntT60XgDyLXg5hltXjWjSnOUHnBVJuSjuyT1aus2cSwqzxOEI3dNycG3CUZNOOe3Jrs5zeAHl22AYbbVKNWlQaq0ZOUZubbbe1t8/tNyjZW9G6r3VODVWvlxknJvPJZLVsWrcbAAGpiGHWmJUVSvKWmovOLTacX1NazbAHm2GCWNhWdejCcqzWSqVJuTS3LPYV1OD2G1Lmdd0pp1HnUhGo1GbzzzaXXzbNZ6wA8+GDWFO1uLWFFxo3EtKpBSaTfVr1LUtSNiVlbyseQyg3QVNU9HSeeikklnt2LabAA15WVvKx5DKDdBU1T0dJ56KSSWe3YtpXUw2zrWEbGrRUreEVGMW3mklkmntTW83AB5Npwew60rwrQpznODzg6k3JQ7FsN2Njbwv538YNXE4cXKWk8nHdls5kbIA0cRwu0xKMFcwk5U23CcJOMot7muxFVHAsOo1aVanRlx1KTkqjm3Jt7W3nr2bH1npgAAAAAAAAAAAAAAAAAAAAAAAACYec/YZGMNsvYZAAAAIl5r7CSJea+wC0AAAAAAAAAAAAAKo+b7C0qj5vsAkAADgH/ABG/+Z/3O/OAf8Rv/mf9yve+jW7N/s+zfxz97XH/AK/2o889DHP3tcf+v9qPPL0eDRsfCp+wbFtdcTHQmm4J6mtbX6GuCZjEu2qbtO7U9RXVFrNVYLtaX5jlNH7Wn+JHlZLqGS3I43FCezafpL1eU0ftaf4kOU0ftaf4keVorchorchuHLaer1XdUUs3Vg+xp/kadzdcbHQprKD2t6m/0NbJdRJMUYPW1sFFud7xAAdL4ACUgACAABIAAAACAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo6f8JVPu5/3M87gf+2XH3a/M9Gn/AAlU+7n/AHM87gf+2XH3a/MoXPiwzqfl733dZLzl7SCZecvaQe7DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEw2y9hkYw2y9hkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8Rv/mf9zvzgH/Eb/wCZ/wByve+jW7N/s+zq7vg8725lcq60NP8A08Xnlkst/UU+Sb9eXuv1Oko+jiWFqKpUo2y9TG7FTl/JN+vL3X6jyTfry91+p1AG9KeNv6nL+Sb9eXuv1Hkm/Xl7r9TptOK2yXeOMh0l3jek46/qcz5Jv15e6/UeSb9eXuv1Om4yHSXeOMh0l3jek46/qcz5Jv15e6/UeSb9eXuv1OmU4PZJd5kN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv15e6/UeSb9eXuv1OoA3pONv6nL+Sb9eXuv1Hkm/Xl7r9TqAN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv15e6/UeSb9eXuv1OoA3pONv6nL+Sb9eXuv1Hkm/Xl7r9TqAN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv15e6/UeSb9eXuv1OoA3pONv6nL+Sb9eXuv1Hkm/Xl7r9TqAN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv15e6/UeSb9eXuv1OoA3pONv6nL+Sb9eXuv1Hkm/Xl7r9TqAN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv15e6/UeSb9eXuv1OoA3pONv6nL+Sb9eXuv1Hkm/Xl7r9TqAN6Tjb+py/km/Xl7r9R5Jv15e6/U6gDek42/qcv5Jv17+l+o8k368vdfqdQBvScbf1OX8k368vdfqPJN+vL3X6nUAb0nG39Tl/JN+vL3X6jyTfry91+p1AG9Jxt/U5fyTfry91+o8k368vdfqdQBvScbf1OX8k368vdfqPJN+vL3X6nUAb0nG39Tl/JN+vL3X6jyTfry91+p1AG9Jxt/U528teQ8H7i209PQpy+tll1ni8D/2y4+7X5nSY/wDu28+7f5HNcD/2yv8Adr8yrc77sL1iZq2O7MutntiQTPbEgsMcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATDbL2GRjDbLsRkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8Rv/mf9zvzgH/Eb/wCZ/wByve+jW7N/s+z6VR9HH55ywro+jj885YWGTKDSr1nKTinlFau03JaoM8jS6yYcSu0hpFOl1mljF5Ozwu4uKTynGKUXlsbeSfszzOsXL09IaR8o5Tccdx/H1ONzz09J6We/PafRMHvJ3mF29xVec5Rak8trTab9uWZESnDB6WkXUKzjJRbzi3l2GppdY0usSiMXsgxh5qZkcvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB42P8A7tvfu3+RzfA/9suPu1+Z0mP/ALtvfu3+RzfA/wDbLj7tfmV6/iQ19m+SuOsntXtIJntXtILDJAABlCLm8l3GfJ6m4W/pF87zcCGnyepuHJ6m43QDFpcnqbhyepuN0AxaXJ6m4cnqbjdAMWlyepuHJ6m43QDFpcnqbhyepuN0AxaXJ6m4cnqbjdAMWlyepuHJ6m43QDFpcnqbhyepuN0AxaXJ6m4cnqbjdAMWlyepuHJ6m43QDFpcnqbhyepuN0AxaXJ6m4cnqbjdAMWlyepu8UOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLS5PU3Dk9TcboBi0uT1Nw5PU3G6AYtLk9TcOT1NxugGLz5xcHkzEtuPSv53FQAABKYbX7DIxhtfsMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAABwD/iN/wDM/wC535wD/iN/8z/uV730a3Zv9n2fSqPo4/POWFdH0cfnnLCwyZ8WM/MfYeFpHuz8x9hzel1kw5lbUqwp051KktGEIuUm+ZJZtnkY3c0rrg7WrUJ6VOai4yyazymk9T17Uzavk6lhcwjrlKlKKW9tNHiWylc8Ep0KS0pxzTS2tqell25DFEOYO4wS5pWvB2jWrz0KcFJylk3lnNpalr2tHD69mWs6e6UrXgnChVWjOWSSe1Ny0su3IQnxdRTqxqU41IS0oSSlF701mmZaRo2WcLK3hLU40oxa3NJIv0usnFGDpIeYuwyMYeYuwyOXTneF2JXmGWVtVsZ6NSddRa0VLSWT1a+xbNZ7NjdQvbOjdUn9StFSXV1Hj8KEnUwZPJp4jS1d55tvfS4P0sUwvNudJ8ZZR6Sm8kuvKT1+0DdsMZuLzhbc2UZ5WVOlLRjor60lJJvPLPbpL2HsWKrcZdcdfQuVxr0IxjFOlHoPLbl1ngYXZLD+E9nabZQwz68t8nUbk+9ldjcVLSz4UXFF5VKd1VcXuevX/kDp6mIWNGtxNW8t6dXoTqJS7sy2pVp0knVqRgpPJOTyzZ4mEYHh30NQVa1pVqlelGdWrKKlKUpLNvPbzmhwmsVaYHhllRr1ZKF5ThCpNpyWqWWvJbP8AdPG6tp15W8K9KVeKzlTjNOUVva2oxqYhZUqyoVby3hW+zlUipd2eZ5WI2ltguDXl3h9CFK4jRcVVXnvNrW3tb2PWThuAYasJp0q9tSrzq01KrVlFOUpPW3pbVz5Ae3OpCnBzqTjCC2yk8kUTvrOlVjSq3dCFSXmxlUSb9mZyUalXyQxi0q1HUVnWnQhNvNuKkss/H2Hu22B4fUwqFG4t4VpVKadSrOK05Sa26W1AYcLq9a34P3FW3q1KNVOGU6cnFr6yT1o9LltpTlToVbqjCtJLKnKolJ+xvM464r1a3/6fVo1puc6FVUtJ7WlNZeGS9h62I4Fh9Pg7dSlQhUrwoSqOvNZ1JTUW889u1bNgHSNpJtvJbzXoX9lcVHTt7uhVmtsYVIya9iZzF3Uq39jwcw+rVkqd7FSry0snNRink31595vY/hFlSwirc2lCna3FpHjKVWlFRaa15Zrbnr2ge9KrThOEJ1IxlPVGLeTl2FdK9tK1aVCjdUKlWPnQhUTkvZtOWxfPE7ngxKpKVPlMJSm4PJrSjBtLLZzovx/DLKwp4fc2NtTt61K7px0qcdFuL1ZPf7QOnq1KdGnKpVqRpwjtlOSSXtMLe6trqDna3FKvFc9OakvA5nF6krnhLTta1nWvbW2oqrxFPJqU28tJptZpIzpUav05Z3VjhFexh9aFw3GEYzi1qzUXzPqA6oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHjY/8Au29+7f5HN8D/ANsuPu1+Z0mP/u29+7f5HN8D/wBsuPu1+ZXr+JDX2b5K46ye1e0gme1e0gsMkAAFtt6VfPMzdNK29KvnmZuhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANK49K/nmKi249K/nmKgmAAATDa/YZGMNr9hkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8Rv/mf9zvzgH/Eb/wCZ/wByve+jW7N/s+z6VR9HH55ywro+jj885YWGTPixn5j7DldLrOqn5rRyM84zlF6nFtP2Bys0jw50LvCrmpWsqbrW1R5zpLbF9X6Z9e89bSNG+rYjCpFWVCnUg45ycnk089m1c2QGr9L2PG6X0bPlGf2cdLPt2+BnCjdYpc0617TdG2pvOFJ7ZPr/AF9m81FHGFfO85LT4xx0ctJZZdmln4np2NbEZzkr2hTpwSzi4vNt57NrA9PS6xpdZTpGUM5zjFa3JpL2jEddDzF2GRjDzUjIJeTjNhWvp4e6DjlbXcK09J5fVjns6y+5wqyu72heXFBTr0HnTlm1lk814m+APJlYVnwljiWcOIVpxOWf1tLSb2btZRh+DTp08Yo3jg6V9XqTjoPXoyz25rU9Z7oA5y1o8IbC0VhRp2dxCnHQo3Eqji4xWpaUcnnkvlmeI4TfXeG4fbyuY17ihcwrVas1oqWWlnqXadAANe8tqd7aVrWt6OrFweXWeLb0uEVjaqxows7iNOOhSuJzcWktmlHJ5vLr5jogBy2IYbHC+B9/RdTjas06lWo15821m8i6nDHqOH0rW0jbVI8Wo07mpUalGPNpRy1tb0z2r60pX9nVta+lxdVZS0Xk9pdTgqdOMI7IpJewDn7rAKnkr9D2k4Sq5xbnPNKT0tJs9e/t53GFXNrBx4ypQlTWezNxaX5m4AOfrYJXqYRh1GnVhSvrBRdOotcdJJJp6tj+BXd2uOYtQ5FdwtrS3k//ADVKVRzlNLmimtXtz+PSADxL7C6tbEcHrW6hGhYuelFtp5NJJLV1F+OWNbELajSoOCcLiFR6Ty1Ree49QAeLieHXTxClimGSpq6hDi6lOo2o1YZ55ZrY8zK3WM3F5Tq3fE2ltTT0qVKenKo3vbWpLqPYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHjY/wDu29+7f5HN8D/2y4+7X5nSY/8Au29+7f5HN8D/ANsuPu1+ZXr+JDX2b5K46ye1e0gme1e0gsMkAAFtt6VfPMzdNK29KvnmZuhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANK49K/nmKi249K/nmKgmAAATDa/YZGMNr9hkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8Rv/AJn/AHO/OAf8Rv8A5n/cr3vo1uzf7Ps+lUfRx+ecsK6Po4/POWFhkz4h4mJYZOpN1rdZyfnRPbAQ5B2d2tttV/A3+SI5Ld+q1vdv4HYADj+S3fqtb3b+A5Ld+q1vdv4HYADkFZ3b2W1X8DX5o9TDMMnTmq1wspLzYntgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPGx/923v3b/I5vgh+2XH3a/M6TH/3be/dv8jm+CH7ZX+7X5lev4kNfZvkrjrJ7V7SCZ7V2MgsMkAAFtt6VfPMzdNK29KvnmZuhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANK49K/nmKi249K/nmKgmAAATDa/YZGMNr9hkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAOAf8AEb/5n/c784B/xG/+Z/3K976Nbs3+z7PpVH0cfnnLCuj6OPzzlhYZM+IAQ2ks28ggBrSvbWDancUotb5Ix+krL1ql+NHO9T1dblXRtg1PpGy9apfjQ+krL1ql+NDfp6m5V0bYNaF9a1HlCvTk+qaNhNNZp5kxMT4ImmY8WQAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8bH/wB23v3b/I5vgh+2V/u1+Z0mP/u29+7f5HN8D/2y4+7X5lev4kNfZvkrjrJ7V7SCZ7V7SCwyQAouru3s4adzVjTT2Z7WRjER3pppmqcKYblv6RfO83DnKXCTC4TzdaXu5F/lVhP20/dv4HOZT1e/CX9EvcB4flVhP20/dy+A8qsJ+2n7uXwGZT1Rwl/RP4e4Dw/KrCftp+7l8B5VYT9tP3cvgMynqcJf0T+HuA8Pyqwn7afu5fAeVWE/bT93L4DMp6nCX9E/h7gPD8qsJ+2n7uXwHlVhP20/dy+AzKepwl/RP4e4Dw/KrCftp+7l8B5VYT9tP3cvgMynqcJf0T+HuA8Pyqwn7afu5Dyqwn7afu5DMp6nCX9E/h7gPD8qsJ+2n7uQ8qsJ+2n7uQzKepwl/RP4e4Dw/KrCftp+7kPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB4flVhP20/dy+A8qsJ+2n7uXwGZT1OEv6J/D3AeH5VYT9tP3cvgPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB4flVhP20/dy+A8qsJ+2n7uXwGZT1OEv6J/D3AeH5VYT9tP3cvgPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB4flVhP20/dy+A8qsJ+2n7uXwGZT1OEv6J/D3AeH5VYT9tP3cvgPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB4flVhP20/dy+A8qsJ+2n7uXwGZT1OEv6J/D3AeH5VYT9tP3cvgPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB4flVhP20/dy+A8qsJ+2n7uXwGZT1OEv6J/D3AeH5VYT9tP3cvgPKrCftp+7l8BmU9ThL+ifw9wHh+VWE/bT93L4Dyqwn7afu5fAZlPU4S/on8PcB41LhLhNWairlxb55RaXeetCUZxUoNNPWmiYqifB5V2q7f84wWAA6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSuPSv55iotuPSv55ioJgAAEw2y7EZGMNsuxGQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAA4B/xG/wDmf9zvzgH/ABG/+Z/3K976Nbs3+z7PpVH0cfnnLCuj6OPzzlhYZMoeo5HGsUqVq8qFKTjSg8nl/qfwOsn5r7D51KelJybzzbzKm1VTEYQ0ezrVNdU1T9E5mdOFSo9GnCU5borM28Kw/ljnVrS4u2p+fLebVbGoW64jDKUadNf62tbKVNqMMapadd2d7ctxjP8A00/o2/0c+S1Muw15wnTlo1IShLdJNGx9M4hnnyqWfYvgblDGoXC4nE6MatN/60taJi3bq7olEzfo76qYmP8Ah5GZ6+C4pUo14UKs3KjN5LN+a/gauKYfyNxrUZcZbVPMlty6szQhPRkpRex5oimKrVbqqmjaLfc+jrWiTGHmLsMjYfMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAACG0mk2s3sJAAAAAAAAAAAAAAAAAAAAAAAAA8bH/AN23v3b/ACOb4H/tlx92vzOkx/8Adt792/yOb4H/ALZcfdr8yvX8SGvs3yVx1k9q9pBM9q7GQWGSxqTVOnKcn9WKzbODSucaxN6/rVHz61CJ219+wXH3cvyOU4K/vWX3UvzRXu99UUtfYJy7Ny7Ed8PSpcEac2lK8lnl0C7yLo+uz/Cj36Hn/O42tJ/KO8mjoqz2jtOP8nLeRlL12f4EPIul67P8KOp0n8oaT+UMqjocx2nW5byMo+uz/Ah5GUfXZ/gR1Ok/lDSfyhlUdDmG063LeRdL12f4UPIul67P8B1Ok/lDSfyhlUdDmO063LeRlH12f4EPIul67P8ACjqdJ/KGk/lDKo6HMdp1uW8jKPrs/wACHkXS9dn+FHU6T+UNJ/KGVR0OY7Trct5GUfXZ/gQ8i6Xrs/wo6nSfyhpP5QyqOhzHadblvIyj67P8CHkZR9dn+BHU6T+UNJ/KGVR0OY7Trct5GUfXZ/gQ8i6Xrs/wHU6T+UNJ/KGVR0OYbTrct5GUfXZ/gQ8i6Xrs/wAKOp0n8oaT+UMqjocx2nW5byLpeuz/AADyLpeuz/AdTpP5Q0n8oZVHQ5htOty3kZR9dn+BDyMo+uz/AAI6nSfyhpP5QyqOhzDadblvIul67P8AAPIyj67P8COp0n8oaT+UMqjocw2nW5byLpeuz/APIul67P8AAdTpP5Q0n8oZVHQ5htOty3kXS9dn+AeRlH12f4EdTpP5Q0n8oZVHQ5htOty3kZR9dn+BDyLpeuz/AAHU6T+UNJ/KGVR0OYbTrct5GUfXZ/gQ8i6Xrs/wo6nSfyhpP5QyqOhzHadblvIul67P8A8i6Xrs/wAB1Ok/lDSfyhlUdDmG063LeRdL12f4UPIul67P8B1Ok/lDSfyhlUdDmO063LeRdL12f4B5GUfXZ/gR1Ok/lDSfyhlUdDmG063LeRdL12f4B5F0vXZ/gOp0n8oaT+UMqjocw2nW5byMo+uz/Ah5F0vXZ/hR1Ok/lDSfyhlUdDmO063LeRdL12f4UPIul67P8B1Ok/lDSfyhlUdDmO063LeRdL12f4UPIul67P8AAdTpP5Q0n8oZVHQ5jtOty3kXS9dn+AeRlL12f4EdTpP5Q0n8oZVHQ5jtOtxmIcEp29tOtbXPGygs3CUcszLgbiFRXE7Gbcqco6UM3se7sOtqv/w1M+izgeCn78pf7ZfkedVMUVxurtq7VtOzXIuzjh4PowK9KW/wGlLf4FliLAV6Ut/gNKW/wAsBXpS3+A0pb/ACwFelLf4DSlv8ALAV6Ut/gNKW/wAALAV6Ut/gNKW/wAsBXpS3+A0pb/ACwFelLf4DSlv8ALAV6Ut/gNKW/wAALAV6Ut/gNKW/wAsBXpS3+A0pb/ACwFelLf4DSlv8ALAV6Ut/gNKW/wAALAV6Ut/gNKW/wAsBXpS3+A0pb/ADWuPSv55iosrtubb+dRWEwAACYbZdiMjGG2XYjIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAcA/4jf/ADP+535wD/iN/wDM/wC5XvfRrdm/2fZ9Ko+jj885YV0fRx+ecsLDJnxYT8yXYfNU89S1t8x9KqeZLsPmlCaVem29Sks8+0q7RGODY7L8K5+3/t72NVOQ2VthtN5fV0qjXP8AL1niUoTq1FTpxcpyeSSPT4U5rFE3sdOOXiUcH61Kni9F1Wknmk3zM8a6ca8JXLH+GzZkd8+Le8mrzidLjKen0df5ni1I1KNWVOrFxlF5NM+k56tpwXCCtSq4tVdJppZJtc7R3ds00xjCvsO1XL1c01N/BanLrG5wyo8/q6dNvm1/HI8LPLU9q5j1eC2bxVtbFTlmeTXmnXqSi/quby72edUY00zK3bp3b1dMeHdL6ZT8yPYZGFP0cewzNF8xLxeFN3cWOBXFe1k41dUdNbY5vLM1I8GcNr2katrWrK5nBOF4q0pSb5nty9mo6CtClVpSpV4xlTmsnGWyRzVzgd1hNOrdYBe1KagnOVrUelTktuSz2bP1CHvqrGxsIzvrmLVKCVStP6uk973ZmnbcIsKua1OlTuWpVdVNzpygpvqbWs8e9vYYzbcH51I6NC6uP/LB5tOUc1ovqzzR011Z295SVK5pKpBSUknzNbGBr3OMYfaV6tC4uY06lKnxs1KLyUW8s88tevmMqGLWNxh7v4V0rVZp1JpxSyeXOeNxFKvw9m6kVLi7NTjnzPSSz7myeFPH1b/B7WlCnUhUrTm4VJOMJSik0m8nverID0rXH8MvLiFCjcPjKizgp05R011ZrWbd9fWthbuvd1o0obE3rzfUuc8PFrLHMTtFQlbWFKcJxnTqRrSbhJPavq7tXtK8Sd3V4YW9O3p0a0re142nCtJxim5NNrU9eWXN+QHs2WMWF/VlRtqz42KzdOcJQllvyaIuMaw22q3FKvdRhO30XUi081nrWWrW+pHn1bLFrzErC6r0LOi7ao5OdOrKUnFrJx1x2MosLelV4cYtWqRUp0YUtBtbG4LNoD2cOxiwxOVSNnX050/Oi4uMl7HrPQOfqwjDhtbzispVLOSk1z5S1fPUdABzvCudWNPDadOtVpKreQpzdObi3F5561rNTHrKpg1j9J2GIXcalCUc6dWtKcKibyyab6/z7S/hjGU6WGRhUdOcr6CjNZPReT15Pcal9b17XF7GON3dS9sKk0qbklCMKvNpRSyfV2vdrDp6l3RoWaurmcaNPRUpOWrLM1bTHsNvK8bejcNVZrOEakJQ0l1ZrWeZwl4+ri+DW1KFOopTqVFTqycYSlFJrN5Pfu5zLEbPGsSp0YVLaypypVY1IVI1pNxafNnED2b/ABGzw2mql5XjTjJ5RWtuT3JLWyqyxiwv6sqNtWfGxWbpzhKEst+TR5ujGvw4arNS5PZ6VGLWxuWTl/g9qpaW9W6pXU6SdekmoT50ntA173GcPsKsaNxXfHSWapwi5yy35LYW2OIWmI0XVs66qxWp5anF7mnrR4/BWEZyxO7m9K5neThOT2pLLJCMI2/DhxoZRVxZ6daKWptSeUvADcq8I8IoUZVZ3iyjUdJrQlnpLLNJZZ8617NZsXmMWFjGk7mvouqk4RjFylLsS1nj8DqFJRxO40FxrvakHLn0Vk8vFluGxjW4XYvVq5OdvClTpZrzYuOby9uXeBTd3ttf8IMAq2tTjIqddS1NOL0FqaetHq2k7RYriHFXderWjocdRm3oUtWrR1c617Webi1GlHhhglWOXGT41Sy3KOr/ACThn8S8If8AbS/tYG3PhLg8KFOu7vONRNxyhJvJZpvLLNLNc56NpeW95bRubatGpRks9NbPbuPC4D29KGAU60YLjKs5Oct+Uml+R5cpTt+DnCWFunGMb2cIxS1KLlGLSXZmB0VPhHhNWtxNO6Tekoaeg9DSexaWWXib9neW99R461qadPNx0tFrWnr2lNraWqwilaKEHauiouPM45HmcCslwfgotyjxs8m9Wf1gOiAAAAAAAAAAAAAAAAAAHjY/+7b37t/kc3wP/bLj7tfmdJj/AO7b37t/kc3wP/bLj7tfmV6/iQ19m+SuOsntj2Mgme2PYyCwyWvffsFx93L8jlOCv71f3UvzR1d9+wXH3cvyOU4K/vV/dS/NFe5/Olr7H8rddvR882DXoeebBYY4AAAAAAAAAAABlFN69iAxBm4pL9TQuMWw62k41biOktsY5ya9iImYjxdU0VV91MNwHmQ4QYXOWSrTj1ypyX+D0bevQuYcZQqxqRfPGWZEVRPg6rtV0fyjBkDPRXMzDWtT2o6eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK3oan+1/kcFwV/flL/bL8jva3oan+1/kcFwV/flL/bL8ivd/nS19g+Xvfb/b6AACwyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr1/PKyyt57KwmAAATDbLsRkYw2y7EZAAAAIl5r7CSJea+wC0AAAAAAAAAAAAAKo+b7C0qj5vsAkAADgH/Eb/AOZ/3O/OAf8AEb/5n/cr3vo1uzP7Ps+lUfRx+ecsK6Po4/POWFhkz4sKno5dh8r0j6pPXF9h8suKbpV6tN6nGTXieF6PBt9jzGNcT/w6O4h9NYJSuKP1rq2WjUitrXzkzmtLI2MPv6+H3CrUJf7ovZJHtTeCYv8A+SVR2Ny/Oz81v8vyZ54RV916N7ZZmJjGn/p5H0pfcTxXK6uhsy0v87TU0s2dB5NUtv0rQ4vpZfqZw+g8H/8AJCpy+5Xm5ean+SI3Jn+UpjabMd1mnGZ6QytofQuC1bmv9W6uVo04c8Vzf5ZzWkbGIX9fELh1q7/2xWyKKbem61xTprW5zUfEThOER9HpZtTbpqrr8Z8X1On6OPYZmMFlBLqMi4+Ql5+L4ZTxSz4idSVOUZqpTqRWuElsaPPrYbjd1bytbjFqKozWjOdOhlOUefnyXcdAAPIucDta+FUcPg50o2+i6NSPnQkv9We8pWFYnXdKGIYtxtCnJScaNLi5VN2bT2dSPdAHmQwzRx6pivHZ6dDieK0dmtPPPPq2ZFmKYbSxO3VOpOVOpTmp06sPOhJbGjfAHhfRWJ3OhSxDFuMoQknKNGlxcqmXSebyXZkbOKYXy6pRube4la3lD0daMVLU9qae1M9QAeNQw2+nd0rjEcRdZUXnClSp8XFvfLW2+wvtcM4jGb3EXW0uVRhHi9HLR0Vltz17D0gB588P08Zo4jxuXF0ZUuL0dubzzzPQAA83FsM+kuSf+biuTXEa3maWllnq26jLFsOpYph9WzqvR01nGWWejLmfsPQAHkXWEO8w+3oXF1N3Vu1KndQjoyUl/qyzftWesqWFYlXnSjiGKcZQpyUnCjS4t1Gtmk83q6ke4APIxPCZXdzRvbW5dpe0VoxqqOkpR6Mk9qFph14r6N5iF+686cXGFOnDQhHPa2s9bPXAHiVsHuKN9WvMJvVayr66tKdNThOXS2rJ/mXYZhPI7iteXNxK6va2qdWUdHKPMklsR6oA8zB8M+i6VzTVbjuPuJVs9HR0c0llt6tpXe4VWnfrEMPu+S3WjoVNKGnGoubNZnrgDwYYFWnilpid1furcUXLSyp5RlFrJRSz+rlm3z7WbVrhXJ8SxC94/S5YorQ0MtDRWW3PXtPUAHnYJh30ThtOy47jtByeno6Oebb2ZveasbC2wyxxSpeVXVtrmrUr1Fxb+rGW1c7fae2YtKSaks0+YDnLfDuJw9N47UnhChmoOMc9Do6e3LLclq1ajY4IU5U8AoycHBVJTqRjui5PLwNhcHsGVXjVh1DSzz83Vn2bD00klktS3AZAAAAAAAAAAAAAAAAAADxsf/dt792/yOb4H/tlx92vzOkx/wDdt792/wAjm+B/7Zcfdr8yvX8SGvs3yVx1k9q7GQTPauxkFhkte+/YLj7uX5HKcFf3q/upfmjq779guPu5fkcpwV/er+6l+aK9z+dLX2T5W67eh55sGvQ882CwxwAABmg3kszk7u7qXNWUpSejzR3fqTEYvexYm9OEOr0lvJzRxeZtULS4q0Z16eqMNeee0ndWqthimMZqdUDzMGup16U4VHpSp8+9cx6ZExgo3KJoqmmR6k3uRnmoQzbSSRhLY+w8nhLduhYqjB5SrPR9nP8AD2nM90PKuuKKd6fB4eL47VvKk6VvOULZPJaLyc+vs/PwPHTSWS1LdzGE04z1ZtPWkl4dueruPcdK1winTVxQjc300puM9caa+Pzq1Ir0Wq79eEPoZ2vZtl2em5HhLxlUjzTj7Giyhdztqqq0K3Fzz2xe3t3nrU8c0pZXVnb1Kez6kMmj0qtChoU61BRlRqrOLyONss3dkjemMYeFjteztONMQ3MExaOJUZaWiq9Pz4p6n1o9SXnHgWso29eM4JJbHq5j3pa3HsJ2Tac+ln7RRFNf+PhKAAW1cB4GL4tefSVPCMHpwldyjpVKk9caUd769j59qWTzNe5qcJMIou8r3NDEKFPXVpqChJR52mktm/wA6cFFrd0rqyp3dOSVKpBTTbyyW157jChieH3FXire9t6tTmjCpFt9iT1gbQMalWnRpyqVZxhCKzcpNJJdbepFFtiFldycbW7o1pJZuNOopNLfknsA2QYVq9G3pOrcVYUqa2ynJRS9rKIYlYTpqpC9t5QlJQUlVjk5PYs89ry2bQNoHiVry4jwwt7ONWSt5WrnKnqycs5LPwXcepc3tpaJO7uaVFS2cZNRz7M3rAvBhRrUq9JVKFWFWnLZKElJPsa1GcpKMXKTSSWeb2JAAcrQxDGserVqmFVaVlY05OMas4KUqnsaa/LLrNmyxPEbPFaeGY0qU3XTdC4p6lJramt/sW1bc8wOhB4FviM4cJsUo3V1GFpQp03FTkoxi3GLbze9tntW11bXcHO1uKVaKeTdOakk+vLYBaDVqYlYU4zlUvreKhJwk3VjqktqevU+raWVru2t6Sq17ilSpvLKU5qKeezWwLgU213bXcHO1uKVaKeTdOakk+vLYYVMQsqXGcZeUI8U1GedSK0W89T3N5bGBsg1pYhZRt1cyu6CoPUqjqLRb3Z55PsLaFxRuaXGW9WnWpt5KUJKSz7UBYDVuMSsLapxVzeUKVR/6Z1En3NmzGUZRUotSi1mmnnqAkAAAAAAAGFb0NT/AGv8jguCv78pf7Zfkd7W9DU/2v8AI4Lgr+/KX+2X5Fe7/Olr7B8ve+3+30AAFhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXr+eVllbzysJgAAEw2y7EZGMNsuxGQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAA4B/wAR/wD9z/ud+cBWfE8IZSqZRSutJtvYtLaV730a3ZnfvxHR9Ko+jj885YVUfRR+ectLDJnxQzmcf4PSuqjurPLjX50HskdMQRNMVRhL0s3q7NW9Q+Z1MKxCm2pWdb/1jn+Rh9H33qdx7tn0/Jbhktx5ZMNTnFzTD5h9H33qdx7qQ+j771O490z6hktwyW5DKg5vc0w+ZU8KxCo8o2dbXvjo/mdPgHB6VpUV1eZOql9WK/0nS5IHVNuI71e/2ldu07vhDIAHozgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHjY/8Au29+7f5HN8D/ANsuPu1+Z0XCKcYYZduTSzhkuvcc7wPTd1cS5lBZv2lev4kNfZu7YrjrJ7V2Mgme2PYyCwyWvffsFx93L8jlOCv71f3UvzR1d9+wXH3cvyOU4K/vV/dS/NFe5/Olr7J8rddvR882DXoeebBYY4AAIn5rORsrSpezlCm4rRWev9Drpeazire5qWdwqsHlKLya39R1S0diiqaat3xX0rStUvVaNaM89fUj1cWuYWltCwt9Ta+t1IveK2XJndx0OPcdHRz+t2HMVas61WVSo85yebOoiZlZt01368a4wiP+3u8Hn9a47I/5PdPA4N5//UPmejl4nvnM+LP2z40olsfYc1wuf/1FqubRl+aOll5rPE4VWzqWkK8VrpPX2P5R51d8M3aqZqtS5a30Xd0HJ5RVWDz/APbX4G7j8Zxxi4089bTT6sv0PNzR60L60vrenQxTThUprKFxDXq6/nuPXY71NmvGpm03JuWsqqfDweTmdRh6ccBt1NPNzk49mZ5sbbBaEtOrf1LrdSp02nLq+Wj1p1Z1VFyiqaikowWyKOO2dvt1WMun6tDszZ5i7vTLF8578fNh2HhU4OpVhBa9J5eznPfay0VuRj9lUzFNVTW2qY7oQADYU3M4OlHhhjSqZca4wcd+jkn/AJibeLX2M2cq9S3srepZ0oabqTqZPLLN6u3MYvg1e5vKWJYbcK3vqa0c5LOM47pan+T/ACa0rjDuEWKQ5NiF1a29q2lU4hNymt2vmfaux7ANbFL+timD4PTmuTxxG4UKqpvUoqWWWb355+w2eEGCYfa4NUubKhG2r2yjOnUp6pZp872v4npYlglG7wqlZUJOhK3cXQmv9EorU3/k86thWP4lThaYpd20bRSXGcQnp1Nex5rL8uxga9/OWL32A2Vy5KhcUePqwzyU3o5pPLsfeZcJcPtcJt7bE8OpRtq9CtFf+NZKcXnmmufZ3ZnqYvg0ruFrVsaqt7uzf/gk83HLUtF7dWo03hOL4lc0Hjdxb8moSU1St8/ryXO81s/UDDFqMMS4WWWH3Wk7WFB1lTbyU5Zta9+xdz3mrwowuysquHXFpSjQc7mEJQgsoy508tma2Z9Z6HCSlY1LuydW+lYXybdCuotxyW1N6llm+drb1niYrayldYdGti/0jfTuIKEYJKMIZ63km0s3lreWrsA9u4/ju0/4T/ukeLSrwu8cxO4vcKucR4uq6VOMIaUacU2ssnqz1HTVcNrz4S0MTU6ao07d0nFt6Tbbea1ZZa1zmpcYTidpiVa9wSvQirnKVajXz0dLesl297A1eDULijjN7ClYXdph9WCnCFaDSjNZJ5PZzvn2JbjoMWUnhF6oee6FRR7dF5GrhNliVKrWucUveOq1MlGlTbVOmupPs25b956uSyaaTT1NMDxOB7g+DdoqfNpqW/PSeZ7M5U1KKqOCk/NT2vs8DmoYNi2EXFaWB1qE7WrLSdCvnlB9TXxXNnnlmbFjg99VxOGJ41cU6takmqNKkvqQzWt61t+c9QGhTw+3v+G+JcqpqrTp06cuLlri5aMUm1z5LPvLre2pYdw2jQs4KlRuLTTnTj5uabWaWxeb4veelaYbXo8IL/EZyp8TcQhGMU3pJpJPPVlzPnFXDa8+EtHE1OmqMLd0nFt6Tecnmlls1rnA8XAMKs73EsYr3lGNdwu5xhGazjHNtt5bG3qLla0cV4W3VG8hp29jSiqVGXm5tJt5c61/luPUwXDa2H1cQnWnTkrm4lVhoNtqLbyTzS195RiWE3v0msUwivTpXThoVYVdcKkebYm89S8PaGlcW1HB+FOGysIcTTvFOnVpQ1ReWx5c2tp+ztK8Kw61vuEeN1LulGsqVWKjCazjm8821sb1au1noWGE39TFI4njNelOtSjo0aVHPQhnnm9fPlnv8DYwrDa1lieKXVWdNwu6kZwUW20lnt1LJ61sbA8PBcIsamP4rQq0VUt7aa4qlPNwi5Z5vJ6s8kl2F+DqOG4xwgo20MqNGEasaa1pPRbyS9uXsR6uHYbXtMXxO8qTpundyg4KLeayTTzTSXPzNiywyrRxvEr2rKnKjdxgoxTbkslk881l3Ngcrg7t61jKve4HeYjXuJSlO4VNST1tZReerLLm58zoOCCu6VjcW9zRuKVOnVfEKvFqWg9i17mn3lNDCccwp1LfCLm1nZyk3CNwpOVPq1LX86j2MJtLmztXG8vJ3VecnKc5N5J7o7kgN4AAAAAAAGFb0NT/AGv8jguCv78pf7Zfkd7W9DU/2s4Lgr+/KX+2X5Fe7/Olr7B8ve+3+30AAFhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXr+eVllfzysJgAAEw2y7EZGMNsuxf5MgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAABznCHBKlxUd5aLSm1/5ILa9zOjBzVRFUYS9rF+qxXv0uDpX+NW0FShUuYRjsi4Z5d6M/pjHft6/u18D6HSS4uOozyW5HjkzqX+Y258bUe/R85+mMd+3r+7XwH0xjv29f3a+B9HyW5EZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+c/TGO/b1/dr4D6Yx37ev7tfA+jZLchktyGTVqOY2/Kj36PnP0xjv29f3a+A+mMd+3r+7XwPo2S3IZLchk1ajmNvyo9+j5z9MY79vX92vgPpjHft6/u18D6NktyGS3IZNWo5jb8qPfo+aVPpfFJxhVjXrPmzjkk/wAjrMEwxYbauMmpVp5ObX5dh6tb0jMDui1uzjMvHaNtqu0blMYR0Yz2x7GQTPbHsZB6qDXvv2C4+7l+RynBX96y+6l+aOrvv2C4+7l+RynBX96v7qX5or3P50tfZPlbrt6Pnmwa9DzzYLDHAAAetHj32CU7irKrTnxcpPXqzT9h7AJiZh6W7tVucaXO+T0/WV+D9SY8Hnn9a51btDJ/mdCCd6Xvxt7q17O0p2dFU6a1b95sAHKrNUzOMjWprehUhGvRcZJOMo5NcwMU5QzyWlF824InvcPiuFVbCrKUYylbt6pLW49T+J52prefR6kqNROM09zzizyLnBMOrSclBwbebcE1n3HlNHRnXdixnGh4GE22nUdxNfVi8o6tr3nsaS0tCKcp8yWs2qGF2tKnGmqlVxWxNvtN+hStaC/8ccuvRevwM65sVd65vVz3NbZpo2e1FMeLDDrN0k6tXJ1JLu6jdk859i1/PsMeNzX1ISfashFNL6zzZpW7cW6d2lxVVNU4ykAHo5AAAAAAAAUXdnbXtLiruhCtDPUprPJ71ufYUWWEYdYTdS0tKdKb/wBSzcsudZvWbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK3oan+1nBcFf35S/wBsvyO9rehqf7X+RwXBX9+Uv9svyK93+dLX2D5e99v9voAALDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGvX88rLK/nlYTAAAJhtl2L/JkYw2y7EZAAAAIl5r7CSJea+wC0AAAAAAAAAAAAAKo+b7C0qj5vsAkAAAABt0fRx+ecsK6Po4/POWBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1K3pZFZZW9LIrCWM9q7GQTPbHsZAFN1B1bWtTjtlBpduTOM4P3NO0xROvLQjKLg29STe/cdyc7i3B53FaVxZyjGctcoPUm/8ADPG7TPdVDS2G9bimq1c7oqdLQnFyz0llvzNjTh0o9587XB7FXLKNrpdlSPxMvJrGfUv6kfic5tWl6cBY86Pfq+hacOlHvGnDpR7z575NYz6n/Uj8R5NYz6n/AFI/EZtWk4Cx50e/V9C04dKPeNOHSj3nz3yaxn1P+pH4jyaxn1P+pH4jNq0nAWPOj36voWnDpLvGnDpR7z575NYz6n/Uj8R5NYz6k/eR+IzatJwFjzo9+r6Fpw6Ue8acOlHvPnvk1jPqf9SPxHk1jPqf9SPxGbVpOAsedHv1fQtOHSj3jTh0o95898msZ9T/AKkfiPJrGfU/6kfiM2rScBY86Pfq+hacOlHvGnDpR7z575NYz6n/AFI/EeTWM+p/1I/EZtWk4Cx50e/V9C04dKPeNOHSj3nz3yaxn1P+pH4jyaxn1P8AqR+IzatJwFjzo9+r6Fpw6Ue8acOlHvPnvk1jPqf9SPxHk1jPqf8AUj8Rm1aTgLHnR79X0LTh0o9404dKPefPfJrGfU/6kfiPJrGfUn7yPxGbXpOAsedHv1fQtOHSj3jTh0o95898msZ9T/qR+I8msZ9T/qR+Iza9JwFjzo9+r6Fpw6Ue8acOlHvPnvk1jPqf9SPxHk1jPqT95H4jNq0nAWPOj36voWnDpR7xpw6Ue8+e+TWM+p/1I/EeTWM+p/1I/EZtWk4Cx50e/V9C04dKPeNOHSj3nz3yaxn1P+pH4jyaxn1P+pH4jNq0nAWPOj36voWnDpR7xpw6Ue8+e+TWM+p/1I/EeTWM+p/1I/EZtWk4Cx50e/V9C04dKPeNOHSj3nz3yaxn1P8AqR+I8msZ9T/qR+IzatJwFjzo9+r6Fpx6Ue8acelHvPnvk1jPqf8AUj8R5NYz6n/Uj8Sc2rScBY86Pfq+hacOlHvGnDpR7z575NYz6n/Uj8R5NYz6n/Uj8SM2rScBY86Pfq+hacOlHvGnDpR7z575NYz6n/Uj8R5NYz6n/Uj8Rm1aTgLHnR79X0LTh0o9404dKPefPfJrGfU/6kfiPJrGfU/6kfiM2rScBY86Pfq+hacelHvGnHpR7z575NYz6n/Uj8R5NYz6n/Uj8Sc2rScBY86Pfq+hacOlHvGnDpR7z575NYz6n/Uj8R5NYz6n/Uj8SM2rScBY86Pfq+hacOlHvGnDpR7z575NYz6n/Uj8R5NYz6m/eR+IzatJwFjzo9+r6Fpx6Ue8acelHvPnvk1jPqf9SPxHk1jPqf8AUj8Sc2rScBY86Pfq+hacelHvGnHpR7z575NYz6n/AFI/EeTWM+p/1I/EZtWk4Cx50e/V2+I3tCzs6lWtUivqtKOazk9yON4JU5TxmMks404Nvq5iKPBfFqksp0Y0lvlNP8jr8HwinhdBwg9OpPJznlt/Q5/yrqiZjB1VVZ2WzVRRVvTU9AGWjLd4jRlu8SyxmIMtGW7xGjLd4gYgy0ZbvEaMt3iBiDLRlu8Roy3eIGIMtGW7xGjLd4gYgy0ZbvEaMt3iBiDLRlu8Roy3eIGIMtGW7xGjLd4gYgy0ZbvEaMt3iBiDLRlu8Roy3eIGIMtGW7xGjLd4gYgy0ZbvEaMt3iBiDLRlu8Roy3eIGIMtGW7xGjLd4gYgy0ZbvEaMt3iBq1vPKyyumptP51FYTAAAJhtl2IyMYbZdiMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAAAAA26Po4/POWFdH0cfnnLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalb0sissrelkVhMMZ7V2Mgme2PYyAAAAttvSr55mbppW3pV88zN0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpXHpX88xUW3HpX88xUEwAACYbZdi/yZGMNsuxGQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAAAbdH0cfnnLCuj6OPzzlgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSt6WRWWVvSyKwmGM9q7GQTPauxkAAABbbelXzzM3TStvSr55mboQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSuPSv55iotuPSv55ioJgAAEw2y7F/kyMYbZdiMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAAAAA26Po4/POWFdH0cfnnLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalb0sissrelkVhMMZ7V2Mgme2PYyAAAAttvSr55mbppW3pV88zN0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpXHpX88xUW3HpX88xUEwAACYbZdiMjGG2XYv8mQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAAAbdH0cfnnLCuj6OPzzlgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSt6WRWWVvSyKwmGM9sexkEz2rsZAAAAW23pV88zN00rb0q+eZm6EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0rj0r+eYqLbj0r+eYqCYAABMNsuxGRjDbLsX+TIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAAANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9LIrLK3pJFYTDGe1djIJntXYyAAAAttvSr55mbppW3pV88zN0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpXHpX88xUW3HpX88xUEwAACYbZdiMjGG2XYjIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAAANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9JIrLK3pJFYTDGe2PYyCZ7V2MgAAALKDanmvnUbWlLf4GrR882AhlpS3+A0pb/AxAGWlLf4DSlv8AAxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AxAGWlLf4DSlv8AAxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AxAGWlLf4DSlv8AAxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AxAGWlLf4DSlv8AAxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AxAGWlLf4DSlv8AAxAE6Ut/gNKW/wACABlpS3+A0pb/AAMQBlpS3+A0pb/AxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AAMQBlpS3+A0pb/AxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AAMQBlpS3+A0pb/AxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AAMQBlpS3+A0pb/AxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AAMQBlpS3+A0pb/AxAGWlLf4DSlv8DEAZaUt/gNKW/wMQBlpS3+A0pb/AAMQBr123Nt/OorLK/nlYTAAAJhtl2IyMYbZdiMgAAAES2PsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAAAG3R9HH55ywro+jj885YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUrell7PyKyyt6WXs/IrCYYz2rsZBM9sexkAAABZQ882DXoeebAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXr+eVllbzysJgAAEw2y7EZGMNsuxGQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAAAbdH0cfnnLCuj6OPzzlgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSt6WXs/IrLK3pZez8isJhjPauxkEz2x7GQAAAFlHzzYNeh55sBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANev55WWV/PKwmAAATDbLsRkYw2y7F/kyAAAARLzX2EkS819gFoAAAAAAAAAAAAAVR832FpVHzfYBIAAAADbo+jj885YV0fRx+ecsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqVvSyKyyt6WRWEwxntj2Mgme2PYyAAAAso+ejYNeh55sBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANet57Kyyv55WEwAACYbZdi/yZGMNsuxf5MgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAAAAA26Po4/POWFdH0cfnnLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalb0sissrelkVhMMZ7V2Mgme1djIAAACyh55sGvQ882AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGvW89lZZX88rCYAABMNsuxGRjDbLsRkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAAAG3R9HH55ywro+jj885YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUrelkVllb0sisJhjPbHsZBM9sexkAAABZQTc8l86ja0ZbvE1rb0q+eZm6EK9GW7xGjLd4lgAr0ZbvEaMt3iWACvRlu8Roy3eJYAK9GW7xGjLd4lgAr0ZbvEaMt3iWACvRlu8Roy3eJYAK9GW7xGjLd4lgAr0ZbvEaMt3iWACvRlu8Roy3eJYAK9GW7xGjLd4lgAr0ZbvEaMt3iWACrRlu8Roy3eJaAK9GW7xGjLd4lgAr0ZbvEaMt3iWACvRlu8Roy3eJYAK9GW7xI0XuLQBVovcNGW7xLQBXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAV6Mt3iNGW7xLABXoy3eI0ZbvEsAFejLd4jRlu8SwAaNdNTafzqKy249K/nmKgmAAATDa/YZGMNsuxGQAAACJea+wkiXmvsAtAAAAAAAAAAAAACqPm+wtKo+b7AJAAAAAbdH0cfnnLCuj6OPzzlgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSt6WRWWVvSyKwmGM9sexkEz2rsZAAAAW2/pF87zcNCEnB5oz5RU3hDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3SG0tpp8oqbyOPntz19iBg29J80WM5dB+Bq8oqbxyipvBg2s5dB+Azl0H4GryipvHKKm8GDbUt6yMjS5RU3hV55ZJ+CBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GDdBpcoqbxyipvBg3QaXKKm8coqbwYN0GlyipvHKKm8GBcelfzuKjKcnN5sxAAAJTDbLsRkYw2y7F/kyAAAARLzX2EkS819gFoAAAAAAAAAAAAAVR832FpVHzfYBIAAAADbo+jj885YV0fRx+ecsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqVvSyKyyt6WRWEwxntj2Mgme1djIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhtl2IyMYbZdi/yZAAAAIl5r7CSJea+wC0AAAAAAAAAAAAAKo+b7C0qj5vsAkAAAABt0fRx+ecsK6Po4/POWBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1K3pZFZZW9LIrCYYz2x7GQTPbHsZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMNsuxf5MjGG2XYv8AJkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAAAG3R9HH55ywro+jj885YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUrelkVllb0sisJhjPbHsZBM9q7GQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATDbLsRkYw2y7F/kyAAAARLzX2EkS819gFoAAAAAAAAAAAAAVR832FpVHzfYBIAAcwHMANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9LIrLK3pZFYTDGe1djIJntj2MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmG2XYjIxhtl2IyAAAARLzX2EkS819gFoAAAAAAAAAAAAAVR832FpVHzfYBIAAcwHMANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9LIrLK3pZFYTDGe1djIJntXYyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYbZdiMjGG2XYv8AJkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAAAG3R9HH55ywro+jj885YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUrelkVllb0sisJhjPavaQTPavaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATDbLsX+TIxhtl2L/JkAAAAiXmvsJIl5r7ALQAAAAAAAAAAAAAqj5vsLSqPm+wCQAAAAG3R9HH55ywro+jj885YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUrelkVllb0sisJhjPavaQTPavaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATDbLsRkYw2y7F/kyAAAARLzX2EkS819gFoAAAAAAAAAAAAAVR832FpVHzfYBIAAAADbo+jj885YV0fRx+ecsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqVvSyKyyt6WRWEwxntj2Mgme1djIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhtl2IyMYbZdiMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAAAAA26Po4/POWFdH0cfnnLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalb0sissrelkVhMMZ7V7SCZ7V7SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYbX7DIxhtfsMgAAAES819hJEvNfYBaAAAAAAAAAAAAAFUfN9haVR832ASAAAAA26Po4/POWFdH0cfnnLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalb0sissrelkVhMMZ7V7SCZ7V2MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmG1+wyMYbX7DIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAAANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9LIrLK3pZFYTDGe1e0gme1e0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmG1+wyMYbX7DIAAABEvNfYSRLzX2AWgAAAAAAAAAAAABVHzfYWlUfN9gEgAAAANuj6OPzzlhXR9HH55ywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpW9LIrLK3pZFYTDGe1e0gme2JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMNsuxGRjDbLsRkAAAAiXmvsJIl5r7ALQAAAAAAAf/Z",XmA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwIAAAHYCAYAAAD+hl/YAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZWlDQ1BEaXNwbGF5IFAzAAB4nHWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QfBIQM2AABNJUlEQVR4Ae3dCbyM9eLH8e84cxZbJF1SkftPqFs3hXQrXEVCiFK0CVkTEtq43bRKlijltitLSsguskYoUmnRTSkiS3bnHMeZ//P75cw9x9lmzpkzM+c8n7fXvGbmmd/Mc2Yx8/v+tsez+3CST8gTj/KOFx1AQcvPd1Qg+B7Lu1C8N7z+APLJV0wAAAAAXIcgAAAAALgQQQAAAABwIYIAAAAA4EIEAQAACqGCngwOoOgjCAAAUEgRBgDkB0EAAAAAcCGCAAAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAAAALkQQAACgEGMJUQB5RRAAAKCQIwwAyAuCAAAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAFAEMGEYQLAIAgAAhJlPBYMwACAYBAEAACKgoMIAAASKIBABfPkDAAAg0ggCeZTX7ldCAAAAAKIBQSAPCAEACgO+c6If7xGASCIIhAlf9gAige+e6Md7BCBSCAIAUMRR0Yx+vEcAIoEgAAAuQEUz+vEeAQg3gkAY8OUOIBrwXRT9eI8AhBNBoIDxpQ4gmvCdFP14jwCEC0GgAPjSnQAg2vDdFP14jwCEA0EgxPjyBlAY8F0V/XiPABQ0r5BvfFkDKIzSf3fl9fgoKFi8RwAKEj0C+UQIAFAU8F0W/XiPAIQaQSAf+FIGUJTwnRb9mIMGIJRCGgQ2ff2VmjS4Ul9/9aVCISUlJdO2jxbM19xZHyopKUmRkNY1e/KX8Lgxo3XzDS115MgRhYp5ju3btLKnvDzfF58fpbWfrs6xzMGDBwMqB8AdqGAWHrxXAPIr4DkCF1armuX2BUtX6IxKZ9pK+6MPPaCzK1fWBX+7ULnZv2+fZs2cbs/3/fGHjh49qt27ftcfzuW9e/bot+3b9NyYF9Wk6XUZ7jfimaec23er8Unbs2Iq5fv3OY+3d68OHTigXbt2KTY2Vtc2a668yu6L98r6DfXyC2P1xKOD9cSw55Rf5vV8aMB92uO8Fr/v3KkPp3+gG2++JajHMOHEqHNZvQzbf9+5Q+VOKy+v16tDBw9kWw6AOzEuvfAw7xXvEYC8CmqycOu2N2no08Ps5WeffFzvvPWmSpU+xV43lclvNn1tL2cVGp4aPlItWrX2X4+Ni9OqFct1arnTVLx4cX37zdf6dtMmW67iGWeoTNmyznmlDI9hwsEvW3/WP69pbCuxWXnysUc1f84sGybSlClTVtVr1nTOy+icv/6fDQK7d+/SseRk5cRUluPj4+1l03JuKs3ZKX96eSecNNXSxYv19ZdfOvctl2W5BOe5nnpquRz3a0LAoPv6aOWypXpz8lRt+PwzPf6vwc5rUkaNr809AOWmTfPrdPEll2js+FcFADmhohn9eI8A5FWeVg0yFVXTmn/NtdeqdOnSmudUvMe/OFbPjh6rpie1tvft2V2rP1mhv1309wzbS5QokaEiOviBgTYIpA8LJ1u3Zo09v+zyf2Rbpne//rqry922wp3o9DKYoUod7rhTPe/tm6HcQ/ffp1UrVygnbzmV8FqX1raXJ7z+qr/lPDe3tGmZ7W3pw1RWTC+G+dvMa/biK6+reo2a9vTrL79oQJ979a/Hn9QNN96kvNq4Yb3279+nKxv8UwAQCCqa0Y/3CEBe5CkImJZq0+Leus2N+nzdWj1wXz/d3rFTphAwccKbWrRwvg0I51Stqvxas3qVPb+yfoNsy5hgYk7Gb0e3KSdnV66iOYuWZNo+a8Z0PXh/vyzvkzYUKlimN8OEkpz8tGWL+vfuqZ07dtgQcEntOv7b+g960D6vIQ8O1Ddff6X+Dzzk763IydLFi/TxRwv18utvOb0Upzm9JbPt9ivr1xcABIqKZvTjPQIQrDwFgfffnWwrw6eUKaOuHW9XQkK8bYE3k07TmF6D18a/rLPOrqwff9jsv+32uzrbCm3a+P00pvXeMBXmNDExMfpLhYr+65+u+sRW3quck/9QEUofvDdVP3z/ne7tPyCgynlWpkx8WyOHPa0zzzpbkz+Y6bxuZ2cq07XnPTr3vPM05IFB+mztGj36xNO68O8Ze1rMkKehgx/RHZ262Ot1612uT1YsV+/ud+vVCe9o3uxZdvt1jTKGKdPbcXKPR3ZBCYA7UdGMfkwgBhCMoIOA6QlYtmSJunTvYSvkPU4MuTl86FDGB/Z6nYprL//1dWs+tSvTmGEtJggsXrggy1b39K3m6SuiP/+0xYaEdh1uVU7eeesNOwHZOHTwoH/f6UNKm5vaKVjXNGmqylXOUZmyp2bYbvb13NNP6oILL8wxBJj7mfkPJhil918nJA0d8oit2N92513qO2BQjo/T6JomunDO3zXc2WeHG1vb19MEhLTH/e/332vxRwucwNXJXi9eooRGjxuvl18Yo+nvv6fff9+pfw19Ujfe0t7entZT0aN3n0zDpwDgZIQBACg6gg4CG9Z/ruPHU3Re9Rp2Qu+dJ1qec3PyEpVmLkD6+QCmMpqUlKilq9dlef8lixfZ80ZXN1agzFj4UDmvRg17OtnY0SN0yAlB/Qc9lOP9zZyI9M/XTD4eMewpfTB1qs6/4AJNfG96ptb97Jz+lwp6ZsRotWt/mxNCnlCLxler/W23a9AjQ/Ttt9/YMtVrnu8vb3oXzLyEm1tfbydON2vZSgCQV7Q6A0DREHQQaHRNY11ap65GPvuMGjS62rZefzh9mn7ZujXH+5lW+eysXrnStkybHoDsrFqxwtlXgmpfVk/Lly5xQsUq3TfwwUzlbr2jo//yiGFP2/PadS/LV2t3disM7dy5U1MnTVKjxo1V+pTSGYY15cSsmFTW6SEw4WD482Nsb0OzqxvaFZGCYSYeT3x/ug1YKSnH7LYvPv9M5/z1r/55EmlMkDLHebin7312vwAAAHC3PM0ReGjIv9X2+uv03pRJGSreeTV54gT/sQjMePuTV8Ux8wlMkPjHVVfZ4LH5u+/0+n/G6/pWbVStevUsH9McgGvau1MUCrmtMLRw3lx7CtTlV1yp8W9M0IAHH/Fvy24svlmKNa18dtKv/392lXN0wYUXZSpjwptZcejaZi0EAAAA5CkImCEy5//tQs35cKYNAte3bpPrfbI7eu2vv2x1egRW6KoG/9Tnn63VG6+O1+pPVtpKa1rL9YplS+2wobRhQS1atdLzI4bbScsPDP5XlvszIaVK1ap2ucz3pkzWjt9+05ChT2R7/IGcZFUJN0umDujTWw8OeVQdbr8zy/uNfu5ZvfLSi3p3xizVPP8ChUO/AYOy3G56CG68ub0AAAAAI09BwPj7xbX07qSJ9nL6ibjZyW5o0IvPj9blV15lVx0yQ3+eHzdenW5trx6dO2rcq2/YMLBk0UeKifHaA4kZZiWhK5zegbmzP1S/gQ9kmlxrxt+b4xp0uru7DQJmONOyJR+r8+0d/I+ZH3Z8/zNP68KL/q527bOevGwmEU91Xh9zzINwhYDcmPcpu2MhZLVqEBOIAQAAiq5iyqNSTguzmTScHTM0Jz0zTt9ULNOORGx8+cUXdn5B25tu9m8zKxG99s4k7d27x7l9g32cxQvnq94/rrCTk9O0aHWDXcFo6YlJxOm9OHqkvE5wMGP3DbN+/n/enKBft25Vx/bt7FCj/DCPb+YDmMm52fUwDHtyqJ1E3Kf/QEULU6n/cvOWDCdzXATDvDcn30YIAAAAKLry1CNgKudmmE/1mjXt9ZMrjPd066IEp3V/+PNjM2w3reRpk1hNZXzwAwNsq/qVDRpq/tw5/nImDHw4/88KvqnoHz58ONPByho1bqKSJUtqxrT31OS6Zv7tK5cv1dtvvq4nhj2XoZJuHnPyBzO0auXKfPcInFW5sv7ylwrqdXdntWp7o267s2OGg4yZoUgzP5hmX5dAVgIyR1We/v7UbG838xPMXIGsmCVJczoaMwAAAJCVoIKAWes+rUJqKr6PPvmUHujfT23b3WwrvuZ2M+nVrIffvVNHe2ThtPHzjwwaoK82fqEp0z+0Q3mmTZ1ij6Q7Ycp7Oe7TBAQzZChtWFAa8xiNGl9r5yn8vnOHHS606/edemhAf11+xVVqeUObTKv4mGU3zfb8MvMibu5wm933W6+9onfefEPXNmtm1/PfuGGDHv/XYBtO7u7RK6DHM0t7mlNWApksDAAAAAQrqKFBtS691A4lWf/NZnt+1GnVnz1zuj1oVXpmGE/v+/rbVXvMSkC//vKLPcCVqfibsftGqzY36rGnnsmxxdyMxTfDghpefXWGYUFpzOpCZnjSrBkz7PVTy52miy+5VE8/N1IFzfQ2mFDx3odzNOrFl7Tt11/VtkUzDXlwoO0peWLY8DxNTAYAAADCIaiaarFiMRmGwLz56iuqXqOm/nbhRTp5oc7OXbvbnoHk5GS1vq6JXc3GjEM3E1KbXd9S/3dutUyt82ZloPTeeGW8HRZ0tdPyb8KEafE/eOCADjgn0wtw6MTRjM08g05du9mK9+gXX1agDuzfn+VE5++/+1aBMsOktv36iz0GwF8qVLBhaf6cObqpZQvdctvtTlhpx7r9AAAAiDp5brL+bO1arf9snR2Ln8ZUrE0PQFpLuBm+s+zjxbaCf/7f/ua0/l+sPXt2Z9tS/vvOnf7LpoJtjilgDOx3rz03IaRMmTJOy385lXNa/82BuUzFe/1nn+mbTV+HdXWebzdtsgFkltMjcjzluO3x6HBHRzsHou/9A/X2m29o5LBnNO750bqpfQfd3rGTnbScnunxOHTwQK77Mq9FbgcrK3da+UyrJ6VngtPx48czbd/1++/2/JDzt2S1jzInDnwGAACAoiXPQSA21muXzrz2xCRec5RhM+H1/j736LzqNew2U4FdMHeOal7wZwgwAeChIY8G9PimUjvu1ddtsKhQsaLKlz89y3Jm0nKn29pr1vQPgg4CpzihIquVcWbNmK5FC+Zn2GaWIf1y4xd2DoDZp+mdqF23nu3laN6ydYYj+ZrAMuDBh9W1Ry+9O3miJk94SxNef03Xt26tBwY/6q+wT3j91WyX80zv83Vr1aTBlTmWeWvyVCcU1c729o4dbsnxyMUT3njNnk7GZGQAAICiKc9B4KKLa9lTmmuaXKu3331fn676xFbeDVPhHfDQI7riqvp5Gi9vhh3lxhxV987Od+ufVzdWMK5vfYMdYpQVE2RMBf+MSpX820wImPzOBF1c61I7zOmyyy+3E5RzYuY13N29p+64q7Pmz5mt//6wOUOrvQkh4VqiM7sjFwMAAMCdPLsPJ/kEAAAAwE18eT6gGAAAAIDCiyAAAAAAuBBBAAAAAHAhggAAAADgQhz6FgAAAPnnCbAcy9REDXoEAAAAkH8+BVbJDzQwoMARBAAAABBehIGoQBAAAABA6NAzUGgQBAAAABAZhIGIYrIwAAAAQu/kXoHsKv0eMYE4QugRAAAAQGTRMxAR9AgAAACg4OXWQ0DPQNjRIwAAAIDoQM9AWOWrR+D3nTt1W7u2mrNoibzejA+147ftmjb13Rzvf02TpjqvRg39tn2bmjS4Ul9u3pJj+Y8/WqhvNn1tL59dubIOHDig/fv2ZSjT5qZ2qnhGJQEAACCKZddDQM9A2AQVBA4ePKgJr7+aYduB/fv09NB/q9xpp/m39by3r1O5364Nn3+m8W9MsNtefH6U/zaja8fbVbnKOTYIpH/8Pj266siRw6rfsJHdtuO33/Tlxi/0wex5WuwEgcsu/4e2b9umz9au1ZrVq/TqhHd0RqUz/Y95+RVXEgQAAAAKM8JAWAQVBA4dPKBxY0ZnaLlPq9jnlWnlX71qpb1sQsbfa12in7f86H/cKe+8LZ8v4ydh0cL5uv+Bh2wQmPD6aypVurTd/svWrQIAAEAhRMU/7PI0NGjl8mU69dRyOrVcOd3Zvp0WLF1ht/fo3FFDn3lW5cufbq+binlaT8C6NZ/a87TraZX2f17TWImJifpo/jxb+f/5py26p1sX/75MSGjStJn/+u87d2jbL7+o1qW17fXb7+rk7xEwPRAAAAAAcpenIGAq8bNnztCTzz6nlJQUO8Y/JibGDuNJCwGGGcef1rJ/8tCg9JX2GR+879zfqyf+/S8Neniw3WYq/KVKn2Jb/Z8Y9py/rNlW/vTT9dXGjfY6PQIAAABA8IIOAvHxCWp0zTUaN2aUDQF1LqvnVOo/t5XwBo2uVrA+XfWJvE6IMHMN6tarpw+nT1PLG9pq7uxZdgJy67Y3qUSJEv7y5nLHzndr0ttv2evNrm+pLnfcqhXrNtiQsfn77wQAAAAgZ0EFgf3796vSmWfqLxUqqlr1Gtr01Ze6sn4DbXd6BBbMna0hQ5/wl93266/a6bTq5zY0aPbM6era8x4t/XixGl97nd125MgRO/E3KTFRr7z1Tqa/o0rVqpoza6a9fFr58rq0Tl0tWjDfTiaudt55zqm6AAAAAGQvqCBghvP87aK/28sDH3zEDtG56OJa2vzdd3ZSr7mc5ofN3+uKK+vnOjTosaeG2aFF6X276WulpqbaHof//rBZl9Su479txdIl2rNnt+pdcaV+nTLZbhvw0GDdcsP1evGV1zOUBQAAAJC1gIOAqZS/8+Yb6nBHR3+lPs36z9apTNky/u3tb7/D9hA8NXykgjVl4tuaPWOGho18XsePp2jwoIFq066dHSJkXNmgoVq0am0vv+8EgWVLPtb3335jQ8CYkSP0wOAhql6jpgAAAABkL+AgkJycrN733a8mTa/LtawZBnRutep2KdA0ZcqWtedzPpxhhw3FJySodt26Ge731GOP2om//3nrbcXHx9tt5rJZVtQM/UkvMfGoSpYsaQPKg0P+becTjHphnF77z8s69dRT7fAlAAAAAFnz7D6cxKqtAAAAgLv4igkAAACA6xAEAAAAABciCAAAAAAuRBAAAAAAXIggAAAAALhQUAcUAwAAAPLEc+K8KK1X6VGhFlQQ8Pl8OnbsmHOeKgAAACBgBIEC4lFMTIw9plawAr6HDQDHklU8Pk7FitGRAAAAAESDZKeenpicpPjiJeTxBJ5OAqrRp6am2hBwapnSTghgWgEAAAAQLRISEnTk6FEdSXLCgHM5UAHV6lNSUk70BBACAAAAgGiTEB8vHT8e1H0CqtmbOQHFihXy2RAAAABAEWUa7IOdx0sTPwAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAAAALkQQAAAAAFyIIAAAAAC4EEEAAAAAcCGCAAAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAAAALkQQAAAAAFwoqoLA4sWLdG3ja7Rzxw4BAAAAKDheRYHt27frsX8/ql2/79KPP/6osmXLCgAAAEDBiWiPQEpKisa//LLatG6lBg0a6plnn9WFF16k+IQEAQAAACg4EQsCn3yyUs2aXqv//vCD5i1YqPYdOuibTZt04UUXKpSmTXtfe3bv9l9f9NFHAgAAACJt7969iqSwDw0ylfInn3hCm5xK/9PPDNMll17qv23DhvX6299CFwSSEhP15uuvq02btv59fzhzpv773/+qa7du/nJvvPaaVn+6WjVq1NT0D6ap9Q1t9NOWLUpMSrTbPnDCxMxZs1WmTBkBAAAA+eXz+TRowAB17d5NderUVSSELQiYYUDvvD1B/xk/Xp06d7bDgLzejLtf//l6tbv5ZoXKokWLdIvT0/CGEwb27dtnt51TtaqOHDmiUSNH2uu33367AAAAgHDyeDwaNXq07rmnl3r2UkTCQFiCwBcbNuhfQ4aoyjlV9P4H01WhQoVMZUxQ2Lr1Z/3f/52rUHnnnbfVuUsXVa9eQ4MfeVivvf6G/7bRThAwcxFOK19eF9eqpXqXX64aNWuqb79+6tm9ux4ePFhnnnmmLVu5SmUlxMcLAAAACJWSpUpp7NgXIhYGCjwIDBn8iCZNnKh+/e6zrfPlypXLstx///uDqp13XqZegrxavmyZPlm50gYBU6HfvWu3Dh48oNKlT7G3r1ixQsOcXgkzfGjJkiV227x58+z55h8267VXX/GXNT766CM1b9FCAAAAQKikhYG7Ot6p4SNGqnLlygqXAp8sfJ5Tue9w66367PPP1O7Gtqp9SS3n/Eb1v6+fVq9a5S+38YuNOv/88xUqc+fO1W3phv1cVf8qJxwst5dNIDhwYL+q/vWvtlfA9AJ8vHiRv2zz5i38IcDMFbDbCAEAAAAoAMucBuxKTsN1pUqVFE4F3iNw2+13ZLhuhgD98ssv+urLjXr4oQc1f+FHthfgq6++VO3adRQqTz71lH8egHFt06Z69ZVX1Kx5c33k7LNZs+YCAAAAImnunDmaP3+ehj83ImQjYwIV9uVDzROsWrWqrm/Zyg4Fmjljht2+Yf161Qxhj8DJLrro73auwp9DgT5W02bXCQAAAIiUSIYAI6IHFOvbt59eGDtGhw4d0rZt23TuuaGbKJyVJcuWK/lYsrb8uMVOIAYAAAAiZfPm7yMWAgzP7sNJvtwKJSUlqlScVwkFcMTf7t266uyzz9bm7zfrjbfeUiiZoUHVq1fXd999l22Z3G5PY5579x49BAAAAESjXXv/UEKp0oEW90U8CHz7zTe6rum1urtrVz308CMCAAAAELxgg0BEhwYZZu1+syJPvXqXCwAAAEB4RLxHAAAAAED+FboeAQAAAADhRxAAAAAAXIggAAAAABQVvhOnABAEAAAAABeKzNELAAAAABSck3sFPJmL0CMAAAAAuBA9AgAAAEBRl8W8AXoEAAAAABciCAAAAAAuRBAAAAAAXIggAAAAALgQQQAAAABwIYIAAAAA4EIEAQAAAMCFAgoCHk8xpab6BAAAACD6pKam2jp7MAIqHRsbq6NJyXYHAAAAAKJLUlKSU7OPCeo+AR1Z2OPxyBMbpz/2H1Tx+DgVK+YRAAAAgMhLPpaipOPHFZ9QIqj7BRQEDNMrkBoTo6MpKfKlHBcipCAyGKO+ABR1Bd1+xfdo0ZXTZ4f3HVHBI2+MVwlxCQpWwEHAKFasmOLi4oQIIggAQN4QBpBfJ3+GeM9RyLFqUGHhUeh/xHziSwyAexT09x2jZou+kz9DBfHbDIRRUD0CPp9Px44dc86ZNBx29AQAQGjQM4BQSfss8Z4jojyKiYmR1xtUtd4K+B42ABxLPjFZOPgdAQAAAAi9ZKeenng0yU4WNov8BCqgGr1ZNtSEgFPLlLbzBAAAAABEh4SEBB05elRHkkwYCHzScEC1+pSUlBM9AYQAAAAAINokxMc7rffBrewZUM3ezAng2AEAAABAdDIN9sHO46WJHwAAAHAhggAAAADgQgQBAAAAwIUIAgAAAIALEQQAAAAAFyIIAAAAAC5EEAAAAABciCAAAAAAuBBBAAAAAHAhrwAAAAAUDZ7Ai9IjAAAAALgQQQAAAABwIYIAAAAA4EIEAQAAAMCFwh4EFi36SH87v6aqVqnsP5nrZjsAAACA8AjLqkF79+7V0aNH7eUnH39c770/TTVq1vTf/u0336hXzx6qUePPbcWLF1e5cuUEAAAAIAi+wIsWeBB4adw4vfH6a0pISLDXG119TYYQYJjrDRr+U7e2v8VeP3TokLrc3VXde/QQAAAAgNDz7D6clGtuSEpKVKk4r78yH4ya552nz9avV4mSJTNs37Ztm3777TedU6WKyp9+eobbjhw+rEtr1dI333+v/Fi6ZImqOfuvVKlSrmX37N6tzz//XI2bNNHq1avstnr1Ls+y7MoVK3TFlVfay6Zs2TJlM4UbAAAAICdm1EwoR8Hs2vuHEkqWDrS4r8B7BBKdEJE+BJhK/oMPPqAN6zeocuXK2rp1qy6udbGeeuppfzlzbu6XXyYIlCxVSgvmz3d6Jl7ULe07+G/7YNr7ata8ufr27ad4J+C8995UnX12ZRsIenTrpjZt22r1qtU2/JzcM/H5559pwoS39NLL422Zc86pQhAAAABAwHw+nwYNGKCu3bupTp26ioSwTxY2IaBixYpa9PHHmvDOO/bcXDfbQ2nSpIlav2G9pk6Z4rTs18uyN6N7j542BBiLPlqkq6++Wo899m/NnjtPg4f8S6mpx1WiRPFM9+t9bx91vOsu9b33XgEAAADB8ng8GjV6tF584QWtXbtGkRDWIGCGA5megAEDB8nr/bMzwpyb62b77l27FCrtndb/WhfX0k0335xra/3aNWtUvnx5jRjxnD5dvVrvOuHBJLTly5c7XTZ/qOOdd2j6B9OUlJiorl06a5rTm2CGDY16/nk7bCo+PvghUwAAAHA3M3Jl7NgXIhYGcg8CnhOnEDBzAsxwoLQQkMZcN9t/+vlnhdpv27dru3My4/j79utnT2nMcCFzmzk3HnzoYX/Pwc7fd6pChQoZHsv0Hox/5VV7+S4nHBhJiUnO9ngBAAAAwUoLA88+84wdMh9OOc8RCFEASGMmBpsnmJKSkiEMmOtbtvyoM844Q6GyZcsWOzSoVOlSOnT4kBo2aqRRI0fa20wY+GzdOjs0aPP336txk2u1bOlSe9tdd3XS+vXrdeTwEY0ZO1alS5/i9FasV5myZf2P3aZNW3syzGPTIwAAAIC8WrZsmSqdeWZAC9yE0v9q4yGu9GfFrA5kJgY/O+wZ//AgEwLM9Utr19aZzgsQKqal3wwNqt+goVYsX+7fXtap0JtAYPY3aeJEOxH4DOdFN0HAzCvYtGmTOnfpopEjRzh/17Py+VJ11llnqcOtt2rhggX6+uuvM+zH3K906dJ2eFGadjffHPY3EgAAAIXP3DlzNH/+PA1/bkSmUTN5EkSd3hvsHfLLrA5kJgZf/c9/Zlo1KJSuuOIKLVq40F7+44+9ds7AkMGDdWfHjnZbk2uv1bCnM+7TlNm/b7+mTp2qPn362rkBjz/xpJ3bYHoGzNKi5pRm2vvvaefOnUpOTlYPJ1DEJ9AzAAAAgMCEPAQEyRvOEGCYpUFHPz/GfxwB09puVg0qSPcPGKD6V16pFtdfr+YtWtjx/Ws+/VRDH388QznTI9CyVSstXbrEDg8ylf6La9XShx/OtJX+Nm1vtOVMb4MJEaVPKa0tP2+1xxLoeOeduunmdv4hQwAAAEBONm/+PmIhwPDsPhLgAcVi835AsTWfrbMt6oHat2+fLq9bN18HFJs9a5benjBBXe6+2x5HoHvPnvph82at+uQTO7nXjOv/7bftdk5A6VNO0RNDh+qaJo3105YtOu208k4vwh/6YsMGvf7mm/bxzLAg4yOnl8EMJercpXOm52T2aULDs8OHB/V8AQAAgPyyBxQrFfgBxQo8CEyeNEmjRo4I6r6JiYnq2+8+3dK+vQAAAADkLuqCgGEmBJux9IEyy3ZGqosEAAAAKIyCDQJhqW2bSn0oVwQCAAAAkD9hPbIwAAAAgOhAEAAAAABciCAAAAAAuBBBAAAAAHAhggAAAADgQgQBAAAAwIUIAgAAAIALEQQAAAAAFyIIAAAAAC5EEAAAAABciCAAAAAAuFC2QcAnAAAAAEUVPQIAAACAC2UbBDwCAAAAUFQF1CPg8RRTqo/BQgAAAEA0Sk1NtXX2YARUOjY2VkeTku0OAAAAAESXpKQkKSYmqPt4Aynk8XjkiY3THwcOqnh8nIp5GDgEAAAARIPkYylKOn5c8cVLBHW/gIKAYXoFUp2UcTQlRT7fcQWtMIwsivZ8U1RGZ5Ejs8f/k7zJy+vG5zCyitJo00h8liLx+kXT/5lwP//snjujpkOjMH8f5/QZCNvz8sgb41VCfIKCFXAQMIoVK6a4uDgFLZL/UQr7j31R/JKhApa1wvReF5UKAZ/FyCrKlahwfLYi9frx/yYjwkD+ZfOZivaX1v9nR0UYyJuggkDQIv0OEgKiAz8aRY/5bEbD+5rf/yPR8jzcKv1rX9QqU+H4bHlEJTQaFOXPcbhk8/8lFP+FwvKW5PQZiPLPRFBBwOfz6dixY855LpOG6QHIO3oA3KswvveRfG9D+XrxGY0O9BDkDT0D0YUwkHcF9JkK11sSUA9BAe05JiZGXm/w7fsB38MGgGPJJyYLF2xHAgAAAIDAJDv19MSjSYpPKGEX+QlUQDV6s2yoCQGnnlLazhMAAAAAEB0SEhJ05OhRHUkyYSDwScMB1epTUlL+7AkgBAAAAABRJyE+3mm9D25lz4Bq9mZOAMcOAAAAAKKTabDPdR7vyfcRAAAAANchCAAAAAAuRBAAAAAAXIggAAAAALhQYEGAg2MAAAAARUpgQYAFgwAAAIAixZvW2E9dHwAAACjkgqjU+48snNPoH0YGAQAAAEULk4UBAAAAFwooCDBsCAAAACha6BEAAAAAXMhLaz8AAADgPl4BAAAAKBqCWOWHoUEAAACAC0UkCKxfv143tGqpqlUq23NzHQAAAED4hD0IHDl8WL179VS//v215eetun/AQHvdbAcAAAAQHoEFgRAeUWz9hg2qXaeO6tdvYK9fceWVqlXrErsdAAAAQHgUs5X83Cr6IVxaaNfvOxUXF5dhW/ESxe32grR//37dfuutAZVduGCB9uzeLQAAAKCg7N27V5H0v1WDTBgoQmuJbtmyRTOmT/dfT0pK1NatP2vUyJEZyrW7+Wa9O2VKhm0LFy7QJZdcotNOK+/fVrlKZbVp01ZNmzRW0+uaZdrfwYMH9Nv23/TiSy8JAAAAyInP59OgAQPUtXs31alTVyETRH3ee/KdsuocCOHIoLCpWrWqKlSsoJ07su9pqFWrlipVqqS+/fpl2L59+zbddvsdql69eqb7JMQnOG9WHW3atEl3d+2qpMREtby+hUaPGaPnR40WAAAAkBuPx6NRo0frnnt6qWcvhTYMBMhblHoBTta+fQf/ZTM06Ksvv8pU6U/TsP5Van1DG3u5UqUzNXfOHHv6bft2lSxZUkMefdRf1sxrmDDhLZ235DytW7dWbW+8SaVLnyIAAAAgUCVLldLYsS9ELAx4w9Xa/+iQIWp3yy065ZQyWd5utptW9ncnT9ajjz2m/DLj/L/++mv/9ZyGBplegbJlymYZEtatW6c5s2Zl2v7s8OG6qW1bxXi9mj1nrrZt2yYAAAAgGGlh4K6Od2r4iJGqXLmywiVsRxaO8cbo88/WqX6Dhvpk8CN2udASTku7Of909afq07efPl68yJYLhcZNmtiTmfTbo3t3TXj7bQ164MFsy+/bvy9TSDDSegROZnoASpYslWniMwAAABCMZcuWqdKZZ9rG6XAK23EEmrdoofemvmdTTtdu3XRd06YaOOB+NWl8jTp36awznSc/ZfIUWy6UujiPffjIYY0bN85W9M2p8TVXa8zzGcfzd+/Rw/YIrPpkpb9n4KK/X6Q+zuUGDRv6y5Up+2ePxqSJE/WPK/6hiy66SGPHjCEQAAAAIGhmKPr8+fM0/LkR8nrD1kZvhW1vl1xyqSpWrKinnnxCDz70sJpc21Q///ST7QkwIcBsN+emXCiYSbx9+tyrp556WnPmzLbLMz388MMaNHCg/vGPf6j3vX0ylL+lfQdt+fFHVTzjjAzbTTI7rVw53XZrB7366ms6npqq7U4vwcR33tGHs2fbMs2bXWcnEBsb1q93wkJZO1kZAAAAyE4kQ4AR1iMLj3Ba43/+6Wdd37y5Plq4wI6vN8OBzHWzfUQWQ3Pyav2G9errhIwaNWuqUaOrtfn772wwSEpO0r8fG5qpvFn+85lnnvYPH6pYsYL279tvL5uKf+nSpbVo0SJdddVVeunFF/X82LH++/7nlVdVpkwZHTp0UKtXr7blAQAAgJxs3vx9xEKA4dl1JCnX+cJmom3pWK8SEhIUCp9//plmz5ql1159VZ06d7bDgULVE5Am7TgC5oUtVaqUOt51l91uKunmuAGxzvM5dixFderW1eJFH9mhPT179fKv/mN6FMxwojRmUvHwZ4c5vQqP6LTy5bPc54jnhuvLjV86IWEMqwgBAAAgrHbt/UMJpUoHWtwXkSCQpmqVytry81YBAAAAyJ9gg4A3kMMIFNShBipUqCAAAAAA4RfWOQInW71mrQAAAACEX0SDAAAAAIDIIAgAAAAALkQQAAAAAFyIIAAAAAC4UGSOXgAAAAAgpHwnTlnJahVQegQAAACAIi6rgECPAAAAAOAC6cOA6SGgRwAAAABwIW+maAAAAACg0PEouOo8PQIAAACAC3npBQAAAADchx4BAAAAwIUIAgAAAIALEQQAAAAAFwooCHg8xZTq8wkAAABA9ElNTbV19mAEVDo2NlZHk5LtDgAAAABEl6SkJCkmJqj7BHRkYY/HI09snP44cFDF4+NUzMNSQwAAAEA0SD6WoqTjxxVfvERQ9wsoCBimVyDVSRlHU1Lk8x1X1DAjlsglrsfANUQrvp4A9wnXb5In3DvMtOOCw+967jzpLnljvEqIT1CwAg4CRrFixRQXFycg0viCQGFFMADcqSB+tzzh2lHAOw8dfufDI6ggAAAAgOCZenOoK7e+LPZRIDvKbecFEAo8WewGoRdUEPD5fEpJSVFqahQNDYIr8EWAooaeAQBGKH/fimIPAb//ufM4/2K8XsWcmCgczFsRcBAwAcCXnKT4uFjFxNKRAAAAAESaCUvJyclKSpbiEhLsIj+BCqhGb5YNTXVCQJlSJeX1EgIAAACAaJEQH68jR47qqFNfjztp0nBOsSCg4wiY3oAEpyeAEAAAAABEF9MLkJAQL19KEMP3fQEGAZ8vlWMHAAAAAFHKhAFTZz9ZlvMsTmwM7jjEAAAAAAoVX7qTdaJ93xvIbGxmbAMAAABFiIfjCAAAAACukb6Bn6FBAAAAgAsRBAAAAAAXIggAAAAALkQQAAAAAIqAYBf7z3WysEfBPygAAACA8Aum3l4sVA8EAAAAoPDwUtkHAAAAioggDgDGHAEAAADAhQgCAAAAQFERxHAfggAAAABQlAQYBryBDCMKYqgRAAAAgAjIUGcPIAxEpEfgqy+/1A2tWqpqlcr2fP369QIAAACQd6bu7wviFPYgcOTwYXXv1lX9+vfXlp+32vPevXra7QAAAADyzhPEKexBYP2GDapdp47q129gr5tzc91sBwAAABAeYQ8Cu37fqbi4uAzbzHWzPZQOHjygLVu2KC9mz5qlpMTETNu3b99uT4a5vd2NN/pv+/abb+wpzfJly7J9/JfGjdOokSO1gSFRAAAArrV3715FkldF1LZft2nI4MEa99JL+vDDD7Vv3z5N/2CaWt/Qxl8mISFB3Xv00LRp72vrz1v92ydPmqipU9/VxRfX8m9rd/PN2rr1Zz31xBPOfXrqk09W6ljKMVuhb9q0qebPm6eWrVr5y2/a9LWefvopPfX001q8aLHd9pMTTHbu3KE33nxL8c6+swobAAAAKPp8Pp8GDRigrt27qU6duooEz64jSbkuCpSUlKhS3hgVL15c+WUq45MmTlT7Dh3829Kup6+kh8Knq1fblvn7Bw601++8/Ta9OeHtbMv3v6+fHnroYZ1Wvry9bir91zRurDp1//fmmFb/tWvXaNGiRTYobNiwXq1bt9by5ct19tmVbYiYNOVdVa1a1bb4/9+5/6fSpU+x9128eJE2frFRffv1EwAAANzt8KFDuueeXurZq1e+w0Bqaqr27NuvhFKlA72LLyI9AmvWrLGn9NIHg1C5rF49e1q4YIFWr16l3Xv22BZ84wOnF2DmrNk6fPiw3p0yxW7b49zev/99toJvws+MGdNVvEQJrVy5UpWrVHZa9hepS5e7nYp9xhf44MGD+vqrr/Tkk0/pyy83aveuXXrogUF6buQoff7Z5/5VkdJ6BEb9+SeobNmy6njXXQIAAID7lCxVSmPHvnAiDCjsPQNhCwKPDhmidrfcolNOKZPl7Wb7pk2b9O7kyXr0sceUX5OclvnXXn3VDsNp3KSJSpQsqVOclvk+J1rjP1u3zp5XqlQp2xb6QQ88mOF6vXqXa/AjD2vAgIHq3Lm87Q3o27efJk+epNjYOG3/7TedccYZtgfB7KdP796a+v77atCwob0/PQIAAABILy0M3NXxTg0fMVKVK1dWuIQtCMR4Y5zW8XX6Z6Or5fV6lZKS8r8/wrlevUYNfexUlE25UGjfvoOWL/1zwm5aL0D6y5fWrq3XX3vNju+vUbNmhjIna+hU5C+uVcuGhldfe91f1gxzOn48VTVq1FRJJ2jMmztXl15a295mQoMJAQAAAEBOli1bpkpnnmnrmuEUtiDQvEUL/WvwEN12+x0a7PQODHVa/U0YMCHAXD/TefJTJk/Rv4fmvzfgZIG0wJsQMuPDWZm2m8q+GetvgoCZ3NurZ0+94gSIbnd30ZJly/3lVq5YoXt69dRHJyYGGze1bWvDQNMmjdX0umb+7SZIpA1NKlOmjAAAAOBOc+fM0fz58zT8uRG2XhxOYdvbJZdcaiv7Tz35hB586GFdfU1j/frLLzrr7LP92825KRdq27ZtU8c771Dz5i3827799hvVu6yeOnbqZK/v3Lkzy16BtHLGTz//pCrnVLGXd+zYYcsvXbpETz8zTFX/+lfFx8erlNO9Y6xbu1alT/lzLkFCfEKmMJI2NAkAAADuFMkQYIR1jyOcivN9ToX4+ubNdfMtN6tGzfNtS7zpCTAhYEQOw3PyavSokTr/ggtU7dxqGSrjpqV/3x/7/NcrVKiQZc9B+nKrPlmlv/3tQi366CO7mlDve/vou+++Vbly5TTw/vvtnII333xTXbt1sxONr7++pQAAAICsbN78fcRCgBHWvZoJuy+NH6/PP//MHrRr8COPqFPnznY4UEH0BBw6dNBWyk//y1/0zttvZ2jxT9/SbwTSI2AmB3fq1FnPPPO0Xhz3ki1vJiIPf3aY+vTta4cPjXhuuL7YsMFOCh44aJC9X2JSYqbHNsckAAAAgHvd26evIinsxxFIr2qVytqS7kBeAAAAAIJnjiOwO8jjCBRTBJnhOAAAAADCL6JBYPWatQIAAAAQfhENAgAAAAAigyAAAAAAuBBBAAAAAHChyCxaCgAAACCkPCdOgaJHAAAAAHAhggAAAADgQgQBAAAAwIUIAgAAAIALEQQAAAAAF2LVIAAAAKAI8J04BYoeAQAAAMCFCAIAAACACxEEAAAAABciCAAAAAAuFFAQ8HiKKdUXzNQDAAAAAOHic+rqps4ejIBKx8bGKjH5mFJSUgQAAAAgepgQkJiUJI83Jqj7BbR8qMfjkScuXvsPHVZCXKxiijGiCAAAAIg0M2Yn2WmwT3YuxCUkBHXfgI8j4PV65YuJUaLTK5B6rGB7BjxCYcGAMQDp8f3tPuH+HYjUZ4zfO0Qrp7leMbFxio8JrjfACOqAYqZnwAwTkmJVkPghKRz4UgSQFb7D3SdSvwfh/Kzxm4eiKORHFuYHoGjjixBAbtJ/T/Cb4A7mfY7E74NP4fuMueWzXJh+56PhPSns9aKAg4CZhJCSnCzf8RSlpqZmup0ve3cgCAAIBr8N7hTO3wo+Y6FFEAhctLxWdi5vsRjFxMUpJqYAJgsbyYlHVSLWq+IlS6sYk4UBAACAiDON9ceOHdOhI0d1PC5eMd7AB/wEVKM3y4bGFfOoRPHihAAAAAAgSpgegTinN6BUieI6fiw5qPsGVKs/fvy44px0YXYEAAAAILqYFT5TnTp7MAJs3mdkOAAAAFCUMM4HAAAAcCGCAAAAAOBCBAEAAADAhQgCAAAAgAt5068DxJRgAAAAwB3oEQAAAABcyEsvAAAAAOA+9AgAAAAARUCwh/4lCAAAAABFRDBhgCAAAAAAFBHBDPsnCAAAAABFQLBzfwkCAAAAgAsRBAAAAAAX8ioCtm7dqmVLl2j37j0qX/401W/QUJUrVxYAAACA8Ahrj8DBgwfU597euv3WW20YMMy5uW62Hzl8WAAAAAAKnmfXkaRc5xUkJSWqlDdGxYsXV16ZSn7bNm3UqnUrdbm7q7ze/3VGpKSk6JX/jNesWbP07rtTVaJkSQEAAAAITGpqqnbv26+EUqUDvYsvbD0C48e/rPr166t7j54ZQoBhrpvt9a+qb8sBAAAAKFhh6xGoV7eO5i1YqLJly2ZbZt++fWrapLFWr1mr/Nqze7cefvghvfTyeM12eho2b96cqcwFF1ygxk2aaN3atZoxY7qGPv6EAAAAgHB4fvQo9ex1T6ZG8rzIS49AWCYL79ixQwkJCTmGAMPcbsqZ8hUrVlR+nFa+vKpVq6ZJEyeqfYcO2rJli7b+/LPq1aunxx8fastccskl9tyEgF27dmnUyJH2esOGDdW9W1fd0r6Dvb5hw3q1bt1arW9oIwAAACAUqlU7T/f3v0/DnxsRkjAQrLAMDTp+/HiBls/OPff01llnnaXVq1fptVdf0ZDBj6hG9fPsbaedVt7ZvtpOYP7u2+/0zLBn9f1336lvv366uFYtVahQwV42p4YNGgoAAAAIpeuaNdO11za1YcDMmQ23InscgUmTJmrcuHH6v3PP1epVq/XPRo20dPkKXXTRRXYI0E3t2tkhQ2YJ0/vu769Dhw4JAAAACKdIhoEiGwTat++gA/v3a/v27fb6zOkz7NCfnTt32nPTQ2DEx8fboGCu/7z1Z3vbwgULBAAAAISDWVBn+7Zt/npruIQlCOzZs1tnnHFGQGVNOVM+1Fq2bmWH+aQN+enUuYvdXqlSJXv9ttvv0KmnnmovmwnEAAAAQEE7fOiQ7rmnlwYMGhT2A+yGJQi8/dYENWveIqCyppwpH2rZ9QikMfMIfv3lF017/z0BAAAABS0tBPTs1Ut16tRVuIVlevKcObPV4vrrtW7dulzLVqlSRc88/ZSefPrpfM+eTj6W7L9segQaNbpaHy9eZFcTMhX/mufX/N/fOGuWpr4/TV063aV6l/9DAAAAQEHx+Xzq26dPxEKAEZbjCDw+dKi++/Zb/3Wzbv+FF11kx+cnJSXpy40bVbtOHf/t1WvU0CODBys/TMv+p6s/dZ6hNHDgILucaHbMEqMHDx5U127d9MWGDfpw5kzNmvUhy4cCAACgwOzdu1flypVTKOTlOAJhO6BYen3u7a26dS/Trbfdpnfefltr1nyq0c+PUSitXLlSV1xxhb2cdnyArJxRsaJWrVqlUc8/n2G7WXWofVoQWL/eHt+gRs2aAgAAAKJNoQkC5qi/3bp21Q8/bNa551bTy+PH59hiDwAAACB7hSYIAAAAAAidvASBInscAQAAAADZIwgAAAAALkQQAAAAAFyIIAAAAAC4EEEAAAAAcCGCAAAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAAAALkQQAAAAAFyIIAAAAAC4EEEAAAAAcCGCAAAAAOBCAQYBjwAAAAAUHQEFgZiYGCWnpMjn8wkAAABAdElx6urFnDp7MAIKAl6vV8mpPh09elSpqakCAAAAEHmmof7YsWM6dOSoYmLjgrqvZ9eRpICa+e1OkpOl4yk5hoFQDiKKhv6HUD2fotSXUpADxehzAgqHvHwP8P87eAzMDUy4P1u8L4WHG753PB6PPMViFBMXZ0fxBMHnDbSk2UlcfLxzKT7ncgqNaHnjQvF8iuKHsCC+BKkkAIVLMN8D/P/Ou0hUOiP1fuX1uUbi7/VEeP9AKAQcBMKpKP2HKqpfDnzpAeB7IDzc9Dqb55qXMOBR+F8nPv8oCqIyCBQVfEkAABCcQH47PQFuy8tjA24SVBAw8wTMjOTU1OPZlslvF2a0/SctTN2UAAC4Bb/PwJ88zr8YrzfY+QFWwEHABABfcpIS4mIVE0tHAgAAABBpJtwmJycrKdmnuITidl5voAKq0ZtVgkwIKFOqpF1KFAAAAEB0SIiP15EjR3XUqa/HxScEfL+AjiNgegNMTwAhAAAAAIguphcgISFevpTjQd0voCDg86WqmCcSC5gBAAAAyI0JA6bOHoyAggAAAACAooUgAAAAABQBwY7fYdA/AAAAUMQEEgroEQAAAACKAF82l7NDjwAAAABQBOUWBugRAAAAAFyIIAAAAAC4EEEAAAAAcCGCAAAAAOBCBAEAAADAhQgCAAAAgAsRBAAAAAAXIggAAAAALkQQAAAAAFyIIAAAAAC4UNiCgM/n0++//67Eo0cFAAAAILK8CoMjhw/rnl49tXnzZnv9wYceVrPmze3lgwcP6Ntvv8t0n1PLltW51aopGplQ4/F4sr0OAAAARLuw9AhMmPCWzjq7spav/ERTpr6nx/79qFJSUuxtCxYs0JjRozOdhj/7rEJh0qSJ/suzZ82ywSPN2jVrsrzPyhUrlJPOne7Stm3b7GXzeD26d7NhIDum7NIlSwQAAACk2bNnjyIpLD0C27dvV82aNezlM844w54fPXpEpUuforZtb7SngmAq55MnTtQtt7S3LfYmCFxcq5bd7wtjx8jU3evUresvm9aq/5//jNfWrVvVvkOHTLeZir+5tNAJMPv27bPbvv3mGz0+9DH7uEar1q1VtWpVjRo50l7fsGG9ypYpq/Xr1/v/tnqX11O9epcLAAAA7mPqlw8OGqS7u3VVnTp1FQmeXUeSfLkVSkpKVClvjIoXL668+GLDBjs0qFv37rYyfOTIEY176WUVpDdee02rP12tDc7+TKX87m7d9N67U/Xw4MGa/sE05zkl6b7+99uypsW+4513qHnzFlk+1mSnV2H1mrX28ssvjdPZTu9G2tCmnNSrW0e3tO+QaftPW7boHOdv6tuvnwAAAOBOhw8dUu/e96hHz575DgOpqanavW+/EkqVDvQuvrD0CPz94ottxX/evHmqXaeO2tzQxn+baU03209Wvvxpuu32O5QfTZs21W9Ob8Rl6VreTw4BaaqdWy3bivnHixfZc9Mb8LoTMMa+OE5bnMr8jOnTM5WtXKWy2rRpay9XqFAhy8dc7Dzexi82CgAAAO5VslQpjRkz1oYB9VTYewYKPAhs/flnzZw5084J8Hq92rljp8aNG6cqVarohjZt/MNrTpaYmKhQmjl9hjb/sFlnVDrDDuFJG7bTuUvngB9j/MsvO70Lf82xTHxcvP/yzp07/ftJL61HAAAAAO6WFgbu6ninho8YqcqVKytcCjwImCd1XbPmNgSk9847bysmJkYtW7VSvcsLfqx8y9atlJycrE6du6hfnz569733/LcdOHDQhoSsKu2GWfbUaNCgodOFc9hersrQHgAAAOSTmSuwdOlSVTrzTFWqVEnhVOBBYO/everTt69iY2MzbDc9BGZCrpHdijsFtSRn9RrVtebTT1X3ssvsdRMQLnMuZ1exT9tuhjXNmT3bXjYToN+dMiVT2QsuuECNmzSxz6mPc7+0icqLFy3SPxs1spfNsKKdO3cIAAAA7mXqi3PnzNGCBfM1/LkRmRrOC1qBLx96xVVX6emnnrQHEjNP1py+3LhRM6Z/oGuuucY++Ttuuy3Tqfc9vRQqaz5drarnnBiK4+z/uuua6dlhw/wHNzMTii+9tLaCYYLAgf37bUhIO13XrJkWLlxgbzdLita6uJZuaNnSXt/5+049MHCgkhIT9cPmzXrn7bftykMAAABwp3lz50YsBBgFvsdhzwzT448P1VVXXqG/Vv2r9vyxV96YGD3+xJOqUbOmTi1XTqf/5S+Z7leiRAnlR8dOney5mdw7cfKfLfdJyUkaPvxZdevWXf0H3G+HLb3x5lu28j506OMKFXN8guIJxe3zS9O+fQd72rjxC320cKHGjH3BrkYEAAAAd/rhh80RCwFGWJYPNczRhc1BExKcxzj99NMVLq1bXq/pMz+0l3v26G4r/KeVL2+vmxWLTMX8l19+Uf/7BwT0eI89+qiatfhzmdEnn3hc9es38N+2Z89uJScl6Zlnh/u3mQOJpT9+gGEmKKcdcwAAAADIr7wsHxq2IAAAAACgYOQlCBT4HAEAAAAA0YcgAAAAALgQQQAAAABwIYIAAAAA4EIEAQAAAMCFCAIAAACACxEEAAAAABciCAAAAAAuRBAAAAAAXIggAAAAALgQQQAAAABwIYIAAAAA4EIEAQAAAMCFCAIAAABAEeBRcAgCAAAAQBHhUeCBgCAAAAAAFDGBhAFvAGXk8RRTqs8nAAAAANHHZ+rqTp09mBp7QD0CsbGxSkw+ppSUFAEAAACIHiYEJCYlyeONCep+AfYIeOSJi9f+Q4eVEBermGKMKAIAAAAizfQAJDsN9slOGIhLKB7UfQMKArag1ytfTIwSnV6B1GP0DAQrbZxWtA+wyu/fmdV4tFA855zGuYX6NQ12xn1ufGHYByInlJ+/UH4uCuq7xhPm/QGRlv4zz+cc0chprldMbJziY4LrDTACDgJ2R07PgBkmJMWqKDP/6Qvix72whAAjFEGgICtIoXrscFXIfeHYJ79QwQvRm1GQL30o/sRwhQI+giiKCAIoyoIKAkVZqCpnhaWltzC1SBdEZSPcz5/Kf5QKUUIryB4rn/L/+SmonrpA9hOO/QIF6eTPbKgbC4FICioImIkIZsJwaupxFSWh+pEM5/CV/Mjtxzo/f2uoez9C1RJTZIfi8GsUOgX4IQnH25TfPz+cAZuPLQCEjh0a5PUqpiCHBpkA4EtO+nOycCwdCQAAAECk/TlZOFlJyVJcQoIdyh+ogGr0qampNgSUKVXSThoGAAAAEB0S4uN15MhRHXXq63HxCQHfL6B1QE1vgOkJIAQAAAAA0cX0AiQkxMuXEtzw/YCCgM+XqmKeIjvKGgAAACjUTBgwdfZgcGQwAAAAwIUIAgAAAIALEQQAAAAAFyIIAAAAAC5EEAAAAABciCAAAAAAuBBBAAAAAHAhggAAAADgQgQBAAAAwIUIAgAAAIALeQUAJ3hU9PgEAACyQo8AAAAA4EL0CAAukNbSn1vruBtbzwN9bQAAKGrCHgR8vv/93Ho8RXEgAgAAABD9wjY06NixY3pu+LOqW/tSXVCjhnp076bdu3YJQMHziRbv7PDaAADcKmxB4Kknn9CO33Zo8ZIl2vj117r66mt0+223KSkx0d5uegp+++03JR49KgAAAAAFy2sG5xR0a9iRw4c1c8YMrfxkleITEuy2m9q104oVy7Vs2TJdccUV6njnnU4Q2K6UlBQ9+u/HdG3TpgKiVUGPKw/HuHUG5tETAABwN9sjkFuFIL8VhgMHD6pUqVL+EJCmUqVK2r9/n14aN06XXnqplq/8RBMnT9HQx/6tUEibj5B2vnLlSv9tCxcs8PdGnHwfc5o0aaJGjRzpP2VV9uDBA7YcAAAAEKw9e/YokvyThf/XM+BT+qp/KFoNK1asqBivV5s2fa3zz7/AbjNDgJZ8vERt296oDRs26IIL/tx+1llnKdGpdJueAa8373OZ33zjDb399gQ1b95Ck53K+sAHHtCB/Qe0etUnuqV9Bxs+zq1WTVWrVtXSJUu0fv16e7+ftmzRzJkzNGfuPNWoWdOGguwmNe/evUcfLVyo9s7jIbpk97kNtgXYk83989qSnNv/p/w+fiD7wP8E+lrRcwAACDVTx3xw0CDd3a2r6tSpq0jIMEfg5B/FUFYoHntsqHr16KEXxoyxFfObb26nfzZqZCvjbdq01YsvvGC339//Pl151VX5CgHGNY0bq9q51dS3Xz9VrFBR59c8X/v27VNMjFdd7+6i8y843wYAo0HDhrZcgwYNlJiUqEVOQDEhwISVuzreqbVr1mS5j+3bt+u0004TokuoPrehrlBTQQcAAGlMQ/PIUaM07sUXtXbtGkWCZ/eRpFwbu5KcynFJb4yKFy+u/Ni6davmzJ6tQ4cOqdHVjXTJJZf6b/vqyy81b948nXnWmbrppnb5DgLbtm1TxzvvsD0C0z+YpiXLltvtixcv0sYvNtqKf3qTJk7U6FEjbW9Bmp9+2qLu3XvYUJCV0SNH2seb8eEsIXICqWD7Inz/vDxuKPeD8KDnAAAQrMNOvbh373vUo2fPfPUMpKamas++/UooVTrHcul+q3wFfhwBUyH/YNo0O9QnjankL1u6zJ6MOnXq6LJ69bRixQrt3LFTY51egzZt2qhylSrKj7QegSWLF2fYXrZMmQzXt2zZop07d2ro40844eQSPT50qK5qUF+tWrdWXFxcto9v/t4zKlXSlh9/VNW//lUAAABAMEqWKqUxY8baUSjDR4xU5cqVlVfBLokd4PKheW/n6tO7t/74Y2+OZfrf189WxM3kYcOEBvNi5NfmHzbbib779u/T7Fmz7OW33nxTU9+b6p8EbIb3mHkCJjAkJyfrvalTNcLpprnhhjbav2+f7VWYNu39TI9tKv9x8XHq27efJk58Rwgfz0mnnKT/D+HJ5lSQ98/u8QJ53PzsB5HBewYACJaZK7B06VJVOvNMf104XLwnTw5O91cpFD77bJ3ec3oEcrJ9+zb9+ssvatmqlX/byy+NU36l7xFo3qKF3Tbw/vtt0Eg/NOjbb77RwoULdPx4qr1uDnZmJixffHEtO7TIrDDkcf7d4PRSpBnthIW0YUO7ft9lez7OdN5AAAAAIBAmBMydM0cLFszX8OdG5HtofLBO9AicVOk/OQPkIxNUqVLFTtLNyS9OCCh7aln/9TWffqratWsrFDasX68dO3fojddf14ED+3X48CG7yk/6Vn5Tmb/qqvra9PVXNiA0bdpUDRs0VLVq1bR37169OO6lDCFg1oczFZ8Qr6vq17fXzYpEjzz0oH+ZUoRWXlpZs2ptz+++Q4GWfnfJz3vN5wMAir55c+dGLAQYJw0NOnnQQv41btJEr77yn2xvNxX1Xb//rurVa9iK9KpPPrFDhfred5/yY9mypTqvenXt37/frhp0Z8eOGvLIYN0/cJDtHVjudMH8+OOPtuy099/Tyy+/pPGvvGqvm96AhOIJtlyz5s3U6a67tGf3bnubWWnotdde0zPDnvXvy3TjdLyrkx3ORBgAAABAIH74YXPEQoDh2X0k8UTN9aRjDKe7aFcNivXmadUgc1Th1q1b6dprr9Udd9yp8qef/udjOpXtOU5XyJjnR2vEqNHauWOHBj/ysG2Fv+/++50egToKlRtatlT1mjV03XXN7FKhhjkYWJ/e96pnr152foKp9JtJwzOmT7e39+jRw38ANDOP4OuvvtL333/nlP1djw0dmuV+Vq9epRfGjnVuf9zOO0BG6Vs3C2oVHqAwCqT5wJPP+wf7+DRpAEDhYlYN2h3AqkHp+Dy7DycGtnxoHoOAYcLAyJEjbPeHGZ+f4FSwzXChK6+8Svf27eNU/s/Trl27dErp0pmOPoyigyAAZC0ag0CoHhcAEB6hDQJpvwq+/AeBk+X3qMEoHAKtWFDxBzLKbzDIz+Pm9viEAwCITnkJAtkvHxraqQIZEAIAoHAiuANA0UGNHCEXaEWBCgWQtUBa430B3ifYMmmPndPjBzrMDwAQ3QI8oBgAAJkR6AGg8PKevFgQkJ3cWgFzm8zIuuhA/gTTop+f/2tZrSAUaA9B+vsAAKJbMb6tAQChRugHgOjnnyOQbpEgFFIFNW7Xk8/bAy0DIDRC/f8t2B6CrLaF6juJ3yoACB3mCLiYRwzXARAefM8AQPTJtGoQrS3Ro6AOwMWqPgDyI5I9BLnth98uAAgcPQIAgLArqIYGGjAAIHD+HoGTV5kItGeAHoTg5aVVLKvX2VPA5QP5ewAgFD0E6e8bjKz2wypGANwq2CHf9AgAAKIGjQwAED4Z5giktZic3DMQzPrwtLoEJxpb7vkhBpAfee0hyOm2QL/zAu3FDrQ8ABRl9AgUUoyvBeAmfDcBQOh5A20dOblnIKdyOd2eF3lZPSfS+8+qfChb+gGgsMhvD0FWZUK16hAAuFnEewRo5QEABIvfDgDIv2yPI5Bhm6eYUlN9WZZL37LjyeFxsmqF8WRRNlSrFAVSLlSr9xREeQAoqrL7ngu0BzWnMrT4A3Arn89n6+zBCKh0bGysEpOTlZKSosKGg2cBgHvwXQ7AjUwISExMkscbE9T9vIEU8ng8KhYXr/2HDish1quYmMw7Ofk4BNn+oSc/dgDlgnnc3MoG+rihLgcAiIyC7CUoqLlpABAo892TnHxMx5wLcQkJQd03oCBgC3q98jkBIMnpFUh1dpbVH5GXICDlHgaCfdxwVvAJAkZeXq3sygf+U+oJ4lGBSMhfxTDv/zcCf8zoFqrvV4JAtAj35y+Id4QfjYwK5Ye5iL+J9un5srnJo5jYWMX7G+oDfwO9wVTiTM+AGSYkxSpUggkQoSwXbfsr3AL5DIX2WyWnH1/eD4RbTt8Dhef3tPD8zwnl93yoBNsE4l7h/Jz5IrPbosJNYaDQfD5C/6Z4M+8gvK9GtL72zC3Iq6w+QwUXAoK5DSgogX4m8/8/waOC+3WmWaNIyetbWeCVP2JRoVGQXzcFJq9/sHu/+5wg4PFlfOGy/jHwOZtTjiUpNSXFuZwqAACiQagjTH7qPsH8HVSJgWhQ2EJAFt8cZi5vsRjFxMVlOY83pwf7f18ecK7cWIBtAAAAAElFTkSuQmCC",$mA="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//24PBmWee6f0GRQPF0KFD7f777/cQofMRvd+QIUPsvPPOs9GjR1uLFi38NRrMiwb3b7/9tgcorcIoiHTp0sXDQECBQo+fc845HiJuuukmP64oiDzyyCMezu666y678cYbrVy5cgYAAIDYqlixom/qo0nhWISEmJYbadCrgbMGvhq4BrPY+vekk06yli1b+oC5QYMGUQeEgAbcKjlSWZHKdo477jibM2eOv1fwHs2aNfOVg8JUltS8efOCc9yyZYvXin300UfWp08f38I12J0poEF87969fSA/ffp0Lz3ScbR6sC9/7N/85je+6qHVlB9//NHOPfdcX+VQ4FCQUXmRHt9bF7xWEvR5dN6lSpXy4BWECIWEEiVKWOXKlT2gFXejOAAAAPafJn41hmzfvr2Pl2MhpisJCgL/+Mc/fAZeM9qaeddgWoPoTp06+UBeIUIXWisuqtXXYFilPSeccIKVL1/eB+wa0AeU2Ipe7Tkofapatar/rgG3ypTuvvtuq127tpcUFS2HUqmR+iv0Od944w1/X72fwoIG9hqg741WPhRehg0b5u+vVQaVIKmXQCsUCxcu9JWWvdF5KhRUqVLF31PhpkyZMgYAAID4oxJzBQRV2rRp0yZmpeAxDQmauVfJjur7NUhX6Y8Sk2bLVV6jmnmVwBxzzDFWXDTYVumNtpcaOHCgf/Gq+X/ggQe8hl+DaQWTe+65J/S62267zcuRtPOQynauueYa69ixo9eK6T7N2Hfo0CF0ruq3UGmTBvVqzNaMvnoA9B5qRlEoUmho166dlyypn0BlQ4XpP4hKmNSLoFCi12rVQuc4derUgoZpBZ3hw4f7/Q0bNix4fefOna1Xr15+HP2nU/+DVhNmz55tAAAAiC/9+/ePeUCQhPT09HyLgGbF1WSrmepoP4BKe9RcG2xFqhl2DWQVELTEUtxfkHYA+umnn7wpWANv0Qz7xIkTfWcjzfxrMK0SHA3u1eyrQKPmYu1AVK1aNWvdurUHDg3UFXC0+qHXFd52VK9XuZR6EhQeFC6aNm3q96t8SCsK+l3lVGp81nMVJDTjr+PoNVqhUO/EqaeeWlDOpF4OnYsasbUcpfPTKsb48eP9ca0+aMWh6Hmrtk0Nyur/0G5H+sx6f9F3r/PX3xMAAACxoXL40qVLF8v4VxvyaLyn8eB+bgCUHxchIaDBs2b5BwwY4GVBAAAAACITTUiIm+skiD6AQgez2QAAAEDsxFVIEG0NqrIYAAAAALER08bl3VHNPAAAAIDYibuVBAAAAACxRUgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQQkgAAAAAEEJIAAAAABBCSAAAAAAQEnFISEhIsPz8fAMAAAAQnzRmj0TEISEpKclyc3MtLy/PAAAAAMQPTeZnZ2d7SIgkKCRbhBITE/0Nd+zYYWlpaR4aAAAAAMSeAkJmZqaP0SMJCQnp6elR1QzpBLSawIoCAAAAEB8UDoJbBPIjXkkIpKSkGAAAAIDDB7sbAQAAAAiJaiVBDRG65eTkUG4EAAAAxImg1Eh9xJGIKiRodyPdSpQoQeMyAAAAEAeCSfysrCwfp0cSFCIOCVo5UEDQzkZ6cwAAAADxITU11Xbt2uW3kiVL2v6KuCdBIUGrBzQuAwAAAPEnmMiPpC0gqpAQ6RXcAAAAABxYGqur9CgS7G4EAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAIISQAAAAACCEkAAAAAAghJAAAAAAICTZ4kRGRoZt3brVsrOzLSUlxcqXL29paWkGAAAA4OCKeUjIycmxiRMn2n/+8x9bunSpbdiwwUqWLGk1atSwq666yi699FIPDQAAAAAOjpiGhLy8PBs0aJANHz7crr32WjvnnHN8BUGrCVOmTLG+ffvaTz/9ZA899JClpqYaAAAAgAMvpj0JP/74o40cOdJ69uxp7du394AgWjk4+eSTrU+fPrZp0yYbPHiwAQAAADg4YhoS3n33Xbv++uutQYMGu328VKlSdv/999uQIUNs27ZtVhzy8/MtWgsWLLDFixf7z1oNWb16tW3evNnLprZs2WKRWrFihc2ePdsAAABwZJozZ46PL2MtZiFhx44dtnDhQmvVqtVen3f00UdbYmKiD6CLw5NPPmnjx48P3ffqq6/azp079/q6jRs3Fvw8adIkGzZsmP/85ZdfWo8ePezjjz/2MDN9+nTbHwo/6ssQ/afQqonKrQAAAHDkGTFihP3zn/+MeVCIWUjQbkYa/CclJf3qc7XLUXp6uhUHzfY/++yzoRn/77///hchoeiKw2OPPWYrV670n9U/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",AfA={key:0,class:"card"},efA={class:"card-body"},tfA={class:"card-wrapper"},ifA={class:"title"},ofA={class:"button"},sfA={class:"allow"},nfA={class:"image-wrapper"},rfA=["src"],afA=zi({__name:"SystemPermitTip",props:{platform:{},language:{}},setup(t){const i={mac:{"zh-cn":c6,en:ZmA},win:{"zh-cn":XmA,en:$mA}},r=t,l=wt(()=>r.platform==="mac"?"mac-privacy":"win-privacy"),I=wt(()=>r.platform==="mac"?"mac-preferences":"win-preferences"),h=ze(c6),f=ze(!0),w=og(),_=U=>{U&&Ko.isPC&&(f.value=!0)},b=()=>{f.value=!1};return br(()=>r.language,()=>{h.value=i[r.platform][r.language]},{immediate:!0}),hc(()=>{it.watch(oe.CALL,{[fA.SHOW_PERMISSION_TIP]:_},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.SHOW_PERMISSION_TIP]:_})}),(U,j)=>aA(f)?(se(),At("div",AfA,[ne("div",efA,[ne("div",{class:"close",onClick:b},[bt(zmA)]),ne("div",tfA,[ne("div",ifA,ni(aA(w)("browser-authorization")),1),ne("div",ofA,ni(aA(w)(aA(I))),1),ne("div",sfA,ni(aA(w)(aA(l))),1),ne("div",nfA,[ne("img",{src:aA(h),class:"image",alt:"system permit"},null,8,rfA)])])])])):$t("",!0)}}),gfA=bs(afA,[["__scopeId","data-v-9982fa76"]]),cfA={class:"tip"},lfA={class:"card"},IfA=zi({__name:"PermitTip",setup(t){const i=wt(()=>Ko.isMAC?tW.MAC:tW.WIN),r=ze(it.getData(oe.CALL,fA.LANGUAGE)),l=I=>r.value=I;return hc(()=>{it.watch(oe.CALL,{[fA.LANGUAGE]:l},{notifyRangeWhenWatch:fA.MYSELF})}),Kg(()=>{it.unwatch(oe.CALL,{[fA.LANGUAGE]:l})}),(I,h)=>(se(),At("div",cfA,[ne("div",lfA,[bt(gfA,{platform:aA(i),language:aA(r)},null,8,["platform","language"])])]))}}),ufA=bs(IfA,[["__scopeId","data-v-cd63c32e"]]),qAA={};let u3=null,EfA=1;const dfA=()=>{const t=document.body,i=document.createElement("div");u3&&(t.removeChild(u3.el),Qv(null,i));const r=bt(ufA,{index:`permit-item-${EfA++}`,destroy(){Qv(null,i)}});Qv(r,i),t.appendChild(i.firstElementChild),u3=r};qAA.show=()=>dfA();const CfA={class:"toast-content"},hfA=zi({__name:"Toast",props:{type:{},duration:{},message:{},index:{},showClose:{type:Boolean},destroy:{type:Function},close:{type:Function}},setup(t){const i=t,r=ze(!1),l=ze(null),I=wt(()=>`toast-container ${i.type}`),h=()=>{i.destroy()},f=()=>{i.close(),r.value=!1},w=()=>{l.value&&clearTimeout(l.value),i.duration&&(l.value=setTimeout(()=>{f()},i.duration))};return hc(()=>{r.value=!0,w()}),Kg(()=>{l.value&&clearTimeout(l.value)}),(_,b)=>(se(),Qi(XnA,{name:"slide-up",onAfterLeave:h},{default:Li(()=>[Ta((se(),At("div",{key:_.index,class:qi(aA(I))},[ne("div",CfA,ni(_.message),1),Ta(ne("i",{onClick:f,class:"toast-close-icon"},null,512),[[Ka,_.showClose]])],2)),[[Ka,aA(r)]])]),_:1}))}}),BfA=bs(hfA,[["__scopeId","data-v-27fc22c5"]]),x_={},ZC=[];let QfA=1;function pfA(){var t,i,r;const l=ZC.length;return l>0?(r=(i=(t=ZC[l-1])==null?void 0:t.el)==null?void 0:i.style)==null?void 0:r.top:"30px"}function mfA(){var t,i;const r=ZC.length;return r>0?(i=(t=ZC[r-1])==null?void 0:t.el)==null?void 0:i.offsetHeight:0}const KAA=t=>{const{type:i,duration:r=3e3,message:l,showClose:I=!1,onClose:h}=t,f=document.body,w=document.createElement("div"),_=bt(BfA,{type:i,duration:r,message:l,showClose:I,index:`toast-item-${QfA++}`,close(){var j,IA,nA,mA;const lA=ZC.findIndex(TA=>TA===_);console.log((IA=(j=ZC[lA])==null?void 0:j.el)==null?void 0:IA.offsetHeight);const cA=parseInt((mA=(nA=ZC[lA])==null?void 0:nA.el)==null?void 0:mA.offsetHeight)+20;for(let TA=0;TA<ZC.length;TA++)TA<lA||(ZC[TA].el.style.top=parseInt(ZC[TA].el.style.top)-cA+"px");ZC.splice(lA,1)},destroy(){Qv(null,w)}});Qv(_,w),f.appendChild(w.firstElementChild);const b=pfA(),U=mfA();_.el.style.top=parseInt(b)+parseInt(U)+20+"px",ZC.push(_)};["info","waring","error","success"].forEach(t=>{let i={};x_[t]=r=>{typeof r=="string"?i.message=r:i=r,KAA({type:t,...i})}});x_.show=t=>{let i={};return typeof t=="string"?(i.message=t,i.type="info"):i=t,KAA({type:"info",...i})};const ffA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMyAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuMDYyMTggNi43NUM5LjA2MjE4IDguNDA2ODUgNy43MTkwMyA5Ljc1IDYuMDYyMTggOS43NUM0LjQwNTMyIDkuNzUgMy4wNjIxOCA4LjQwNjg1IDMuMDYyMTggNi43NUMzLjA2MjE4IDUuMDkzMTUgNC40MDUzMiAzLjc1IDYuMDYyMTggMy43NUM3LjcxOTAzIDMuNzUgOS4wNjIxOCA1LjA5MzE1IDkuMDYyMTggNi43NVpNOC4wNjIxOCA2Ljc1QzguMDYyMTggNS42NDU0MyA3LjE2Njc1IDQuNzUgNi4wNjIxOCA0Ljc1QzQuOTU3NjEgNC43NSA0LjA2MjE4IDUuNjQ1NDMgNC4wNjIxOCA2Ljc1QzQuMDYyMTggNy44NTQ1NyA0Ljk1NzYxIDguNzUgNi4wNjIxOCA4Ljc1QzcuMTY2NzUgOC43NSA4LjA2MjE4IDcuODU0NTcgOC4wNjIxOCA2Ljc1WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC43NSIvPgo8cGF0aCBkPSJNNi4wNjIxOCAwTDEyLjEyNDQgMy4zNzVWMTAuMTI1TDYuMDYyMTggMTMuNUwwIDEwLjEyNVYzLjM3NUw2LjA2MjE4IDBaTTEgMy45NjI4VjkuNTM3Mkw2LjA2MjE4IDEyLjM1NTVMMTEuMTI0NCA5LjUzNzJWMy45NjI4TDYuMDYyMTggMS4xNDQ1M0wxIDMuOTYyOFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNzUiLz4KPC9zdmc+Cg==",yfA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDYgMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xLjg0NTI5IDkuMzQ0NDhMMS4xNTU4NiA4LjY1NTA1TDMuODExMTQgNS45OTk3N0wxLjE1NTg2IDMuMzQ0NDhMMS44NDUyOSAyLjY1NTA1TDUuMTkgNS45OTk3N0wxLjg0NTI5IDkuMzQ0NDhaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQyIi8+Cjwvc3ZnPgo=",DfA={key:0,style:{height:"16px"}},SfA={class:"sender-name"},l6="16px",MfA=zi({__name:"SubtitleContent",emits:["open-settings"],setup(t,{emit:i}){const r=ze(!1),l=ze(null),{subtitleInfoList:I,isAITranscriberRunning:h}=qU(),f=Ko.isH5,w=wt(()=>f?yfA:ffA),_=i,b=()=>{_("open-settings")},U=()=>{l.value&&Vy(()=>{l.value.scrollTop=l.value.scrollHeight})};br(()=>I.value,(nA,mA)=>{nA&&mA&&nA.length>mA.length&&U()},{deep:!0}),br(()=>h.value&&I.value.length>0,nA=>{nA&&U()});const j=nA=>{if(nA==null)return{language:"Unknown",text:""};if(typeof nA=="string")try{const mA=JSON.parse(nA);return mA&&typeof mA=="object"?{language:mA.language||"Unknown",text:mA.text||nA}:{language:"Unknown",text:nA}}catch{return{language:"Unknown",text:nA}}return{language:"Unknown",text:String(nA)}},IA=nA=>j(nA).text;return(nA,mA)=>aA(h)&&aA(I).length>0?(se(),At("div",{key:0,ref_key:"subtitleContainer",ref:l,class:qi(["subtitle-content",{"subtitle-content--h5":aA(f)}]),onMouseenter:mA[0]||(mA[0]=lA=>!aA(f)&&(r.value=!0)),onMouseleave:mA[1]||(mA[1]=lA=>!aA(f)&&(r.value=!1))},[Ta(ne("div",{class:qi(["subtitle-content__settings-btn",{"subtitle-content__settings-btn--h5":aA(f)}]),onClick:b},[bt(fl,{src:aA(w),width:l6,height:l6},null,8,["src"])],2),[[Ka,aA(f)||aA(r)]]),(se(!0),At(vr,null,fE(Array.isArray(aA(I))?aA(I):[],(lA,cA)=>(se(),At("div",{key:lA.roundId},[cA!==0?(se(),At("div",DfA)):$t("",!0),ne("div",SfA,ni(`${lA?.nick||lA?.sender}:`),1),ne("div",null,ni(lA?.text),1),(se(!0),At(vr,null,fE(Array.isArray(lA?.translation)?lA.translation:[],TA=>(se(),At("div",{key:TA?.language},[ne("span",null,ni(IA(TA?.text)),1)]))),128))]))),128))],34)):$t("",!0)}}),vfA=bs(MfA,[["__scopeId","data-v-9ba522cb"]]),RfA={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%"}},wfA={input:t=>!0,change:t=>!0,clear:()=>!0},_fA=t=>(gT("data-v-8cbeab17"),t=t(),cT(),t),TfA={class:"select-text"},NfA=_fA(()=>ne("path",{d:"M1 1L6 6L11 1",stroke:"#C0C4CC","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)),GfA=[NfA],bfA={class:"custom-options"},kfA=["onClick"],LfA=zi({__name:"CustomSelect",props:RfA,emits:wfA,setup(t,{emit:i}){const r=t,l=i,I=ze(!1),h=ze(null),f=wt(()=>{const U=r.options.find(j=>j.value===r.value);return U?U.label:r.placeholder}),w=()=>{r.disabled||(I.value=!I.value)},_=U=>{l("input",U),l("change",U),I.value=!1},b=U=>{if(!h.value)return;const j=U.target;h.value.contains(j)||(I.value=!1)};return hc(()=>{document.addEventListener("click",b)}),Kg(()=>{document.removeEventListener("click",b)}),(U,j)=>(se(),At("div",{class:"custom-select-wrapper",ref_key:"wrapperRef",ref:h},[ne("div",{class:qi(["custom-select",{"is-open":aA(I),"is-disabled":U.disabled}]),onClick:yE(w,["stop"])},[ne("span",TfA,ni(aA(f)),1),(se(),At("svg",{class:qi(["select-arrow",{"is-open":aA(I)}]),width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},GfA,2))],2),Ta(ne("div",bfA,[(se(!0),At(vr,null,fE(U.options,IA=>(se(),At("div",{key:IA.value,class:qi(["custom-option",{"is-selected":U.value===IA.value}]),onClick:yE(nA=>_(IA.value),["stop"])},ni(IA.label),11,kfA))),128))],512),[[Ka,aA(I)]])],512))}}),E3=bs(LfA,[["__scopeId","data-v-8cbeab17"]]),UfA=t=>(gT("data-v-b03aa36f"),t=t(),cT(),t),FfA={class:"modal-header"},OfA={class:"modal-title"},PfA=UfA(()=>ne("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ne("path",{d:"M12 4L4 12M4 4L12 12",stroke:"#666","stroke-width":"2","stroke-linecap":"round"})],-1)),xfA=[PfA],YfA={class:"modal-content"},VfA={class:"setting-item"},JfA={class:"setting-label"},HfA={class:"setting-item"},qfA={class:"setting-label"},KfA={class:"setting-item"},jfA={class:"setting-label"},WfA={class:"modal-footer"},zfA=zi({__name:"SubtitleSettingsPC",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","confirm"],setup(t,{emit:i}){const r=i,l=og(),I=ze("zh"),h=ze("en"),f=ze("both"),w=ze({recognitionLanguage:"zh",translationLanguage:"en",subtitleDisplay:"both"}),_=wt(()=>[{value:"zh",label:"中文"},{value:"en",label:"English"}]),b=wt(()=>[{value:"",label:l.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 (俄语)"}]),U=wt(()=>b.value.filter(WA=>WA.value===""||WA.value!==I.value)),j=wt(()=>[{value:"both",label:l.value("show-bilingual")},{value:"original",label:l.value("show-original-only")}]),IA=WA=>{I.value=WA},nA=WA=>{h.value=WA},mA=WA=>{f.value=WA},lA=()=>{I.value=w.value.recognitionLanguage,h.value=w.value.translationLanguage,f.value=w.value.subtitleDisplay,r("update:visible",!1)},cA=()=>{lA()},TA=async()=>{try{const WA=h.value?[h.value]:[];await ts._aiAssistant.updateRealTimeTranscriber({sourceLanguage:I.value,translationLanguages:WA}),w.value={recognitionLanguage:I.value,translationLanguage:h.value,subtitleDisplay:f.value},r("confirm",{recognitionLanguage:I.value,translationLanguage:h.value,subtitleDisplay:f.value})}catch(WA){console.error("Failed to update AI transcriber settings:",WA)}lA()};return br(I,WA=>{h.value===WA&&(h.value="")}),(WA,Ee)=>WA.visible?(se(),At("div",{key:0,class:"subtitle-settings-overlay",onClick:cA},[ne("div",{class:"subtitle-settings-modal",onClick:Ee[0]||(Ee[0]=yE(()=>{},["stop"]))},[ne("div",FfA,[ne("h3",OfA,ni(aA(l)("ai-subtitle-settings")),1),ne("button",{class:"close-btn",onClick:lA},xfA)]),ne("div",YfA,[ne("div",VfA,[ne("label",JfA,ni(aA(l)("recognition-language")),1),bt(E3,{value:aA(I),onInput:IA,options:aA(_),onChange:IA},null,8,["value","options"])]),ne("div",HfA,[ne("label",qfA,ni(aA(l)("translation-language")),1),bt(E3,{value:aA(h),onInput:nA,options:aA(U),onChange:nA},null,8,["value","options"])]),ne("div",KfA,[ne("label",jfA,ni(aA(l)("subtitle-display-settings")),1),bt(E3,{value:aA(f),onInput:mA,options:aA(j),onChange:mA},null,8,["value","options"])])]),ne("div",WfA,[ne("button",{class:"btn btn-cancel",onClick:lA},ni(aA(l)("Cancel")),1),ne("button",{class:"btn btn-confirm",onClick:TA},ni(aA(l)("save")),1)])])])):$t("",!0)}}),ZfA=bs(zfA,[["__scopeId","data-v-b03aa36f"]]),KU=t=>(gT("data-v-50f476c3"),t=t(),cT(),t),XfA={key:0,class:"subtitle-settings-overlay"},$fA={class:"modal-header"},AyA={class:"modal-title"},eyA={class:"modal-content"},tyA={class:"setting-group"},iyA={class:"group-title"},oyA={class:"group-content"},syA={class:"setting-section"},nyA={class:"section-title"},ryA={class:"section-value"},ayA=KU(()=>ne("svg",{class:"arrow-icon",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ne("path",{d:"M6 4L10 8L6 12",stroke:"#999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),gyA={class:"setting-section"},cyA={class:"section-title"},lyA={class:"section-value"},IyA=KU(()=>ne("svg",{class:"arrow-icon",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[ne("path",{d:"M6 4L10 8L6 12",stroke:"#999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),uyA={class:"setting-section"},EyA={class:"section-header"},dyA={class:"section-title"},CyA=KU(()=>ne("div",{class:"toggle-slider"},null,-1)),hyA=[CyA],ByA={class:"modal-footer"},QyA={class:"selector-header"},pyA={class:"selector-title"},myA=KU(()=>ne("div",{class:"header-placeholder"},null,-1)),fyA={class:"language-list"},yyA=["onClick"],DyA={class:"selector-header"},SyA={class:"selector-title"},MyA=KU(()=>ne("div",{class:"header-placeholder"},null,-1)),vyA={class:"language-list"},RyA=["onClick"],wyA=zi({__name:"SubtitleSettingsH5",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","confirm"],setup(t,{emit:i}){const r=i,l=og(),I=ze({recognitionLanguage:"zh",translationLanguage:"en",subtitleEnabled:!0}),h=ze("zh"),f=ze("en"),w=ze(!0),_=ze(!1),b=ze(!1),U=wt(()=>[{value:"zh",label:"中文"},{value:"en",label:"English"}]),j=wt(()=>[{value:"",label:l.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 (俄语)"}]),IA=wt(()=>j.value.filter(Ee=>Ee.value===""||Ee.value!==h.value)),nA=Ee=>{const de=[...Array.isArray(U.value)?U.value:[],...Array.isArray(IA.value)?IA.value:[]].find(Pe=>Pe.value===Ee);return de?.label||""},mA=()=>{h.value=I.value.recognitionLanguage,f.value=I.value.translationLanguage,w.value=I.value.subtitleEnabled,_.value=!1,b.value=!1,r("update:visible",!1)},lA=async()=>{try{I.value={recognitionLanguage:h.value,translationLanguage:f.value,subtitleEnabled:w.value};const Ee=f.value?[f.value]:[];await ts._aiAssistant.updateRealTimeTranscriber({sourceLanguage:h.value,translationLanguages:Ee}),r("confirm",{recognitionLanguage:h.value,translationLanguage:f.value,subtitleEnabled:w.value})}catch(Ee){console.error("Failed to update AI transcriber settings:",Ee)}r("update:visible",!1)},cA=Ee=>{h.value=Ee,_.value=!1},TA=Ee=>{f.value=Ee,b.value=!1},WA=()=>{w.value=!w.value};return br(h,Ee=>{f.value===Ee&&(f.value="")}),(Ee,de)=>Ee.visible?(se(),At("div",XfA,[ne("div",{class:"subtitle-settings-modal",onClick:de[2]||(de[2]=yE(()=>{},["stop"]))},[ne("div",$fA,[ne("h3",AyA,ni(aA(l)("ai-subtitle-settings")),1)]),ne("div",eyA,[ne("div",tyA,[ne("div",iyA,ni(aA(l)("recognition-and-translation-settings")),1),ne("div",oyA,[ne("div",syA,[ne("div",{class:"section-header",onClick:de[0]||(de[0]=Pe=>_.value=!0)},[ne("span",nyA,ni(aA(l)("recognition-language")),1),ne("span",ryA,[Ia(ni(nA(aA(h)))+" ",1),ayA])])]),ne("div",gyA,[ne("div",{class:"section-header",onClick:de[1]||(de[1]=Pe=>b.value=!0)},[ne("span",cyA,ni(aA(l)("translation-language")),1),ne("span",lyA,[Ia(ni(nA(aA(f))||aA(l)("no-translation"))+" ",1),IyA])])]),ne("div",uyA,[ne("div",EyA,[ne("span",dyA,ni(aA(l)("subtitle-display-bilingual")),1),ne("div",{class:qi(["toggle-switch",{active:aA(w)}]),onClick:WA},hyA,2)])])])])]),ne("div",ByA,[ne("button",{class:"btn btn-cancel",onClick:mA},ni(aA(l)("Cancel")),1),ne("button",{class:"btn btn-confirm",onClick:lA},ni(aA(l)("confirm")),1)])]),aA(_)?(se(),At("div",{key:0,class:"language-selector-overlay",onClick:de[4]||(de[4]=Pe=>_.value=!1)},[ne("div",{class:"language-selector",onClick:de[3]||(de[3]=yE(()=>{},["stop"]))},[ne("div",QyA,[ne("h3",pyA,ni(aA(l)("select-recognition-language")),1),myA]),ne("div",fyA,[(se(!0),At(vr,null,fE(Array.isArray(aA(U))?aA(U):[],Pe=>(se(),At("div",{key:Pe.value,class:qi(["language-item",{selected:aA(h)===Pe.value}]),onClick:pe=>cA(Pe.value)},[ne("span",null,ni(Pe.label),1)],10,yyA))),128))])])])):$t("",!0),aA(b)?(se(),At("div",{key:1,class:"language-selector-overlay",onClick:de[6]||(de[6]=Pe=>b.value=!1)},[ne("div",{class:"language-selector",onClick:de[5]||(de[5]=yE(()=>{},["stop"]))},[ne("div",DyA,[ne("h3",SyA,ni(aA(l)("select-translation-language")),1),MyA]),ne("div",vyA,[(se(!0),At(vr,null,fE(Array.isArray(aA(IA))?aA(IA):[],Pe=>(se(),At("div",{key:Pe.value,class:qi(["language-item",{selected:aA(f)===Pe.value}]),onClick:pe=>TA(Pe.value)},[ne("span",null,ni(Pe.label),1)],10,RyA))),128))])])])):$t("",!0)])):$t("",!0)}}),_yA=bs(wyA,[["__scopeId","data-v-50f476c3"]]),TyA={options:{virtualHost:!0}},NyA=zi({...TyA,__name:"AISubtitle",props:{customClass:{type:String},customStyle:{type:Object}},setup(t){const i=Ko.isPC,{isAITranscriberEnabled:r}=qU(),l=ze(!1),I=()=>{l.value=!0},h=f=>{l.value=!1};return(f,w)=>aA(r)?(se(),At("div",{key:0,class:qi([aA(i)?"ai-subtitle-pc":"ai-subtitle-h5",t.customClass,{"ai-subtitle-pc--expanded":aA(l)&&aA(i),"ai-subtitle-h5--expanded":aA(l)&&!aA(i)}]),style:Br([t.customStyle])},[Ta(bt(vfA,{onOpenSettings:I,class:qi(aA(i)?"ai-subtitle-pc__content":"ai-subtitle-h5__content")},null,8,["class"]),[[Ka,!aA(l)]]),aA(i)?(se(),Qi(ZfA,{key:0,visible:aA(l),"onUpdate:visible":w[0]||(w[0]=_=>l.value=_),onConfirm:h,class:"ai-subtitle-pc__settings"},null,8,["visible"])):(se(),Qi(_yA,{key:1,visible:aA(l),"onUpdate:visible":w[1]||(w[1]=_=>l.value=_),onConfirm:h,class:"ai-subtitle-h5__settings"},null,8,["visible"]))],6)):$t("",!0)}}),GyA=bs(NyA,[["__scopeId","data-v-02339ead"]]),byA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTUxMiA5Ny41MjRjMjI4LjkxMyAwIDQxNC40NzYgMTg1LjU2MyA0MTQuNDc2IDQxNC40NzZTNzQwLjkxMyA5MjYuNDc2IDUxMiA5MjYuNDc2IDk3LjUyNCA3NDAuOTEzIDk3LjUyNCA1MTIgMjgzLjA4NyA5Ny41MjQgNTEyIDk3LjUyNHptMTkzLjE5NSAyMTguMzMxTDQ0Ny4yMiA1ODEuMzE1IDM0My4yODQgNDczLjUwMmwtNTIuNjYzIDUwLjc2MiAxNTYuMzggMTYyLjIzIDMxMC42NjEtMzE5LjY4My01Mi40NjctNTAuOTU2eiIgZmlsbD0iIzJiYTQ3MSIvPjwvc3ZnPg==",kyA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6bTM2LjU3MSAzNDEuMzMzSDQ3NS40M1Y3MzEuNDNoNzMuMTQyVjQzOC44NTd6bTAtMTIxLjkwNUg0NzUuNDN2NzMuMTQzaDczLjE0MnYtNzMuMTQzeiIgZmlsbD0iIzAwNTJkOSIvPjwvc3ZnPg==",LyA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6TTY0MS4yOTIgMzMwLjk3IDUxMi4wMjQgNDYwLjI2NCAzODIuNzA4IDMzMC45N2wtNTEuNzM3IDUxLjczNyAxMjkuMzE3IDEyOS4yNjgtMTI5LjMxNyAxMjkuMzE2IDUxLjczNyA1MS43MzdMNTEyIDU2My42ODhsMTI5LjI5MiAxMjkuMzE2IDUxLjczNy01MS43MzZMNTYzLjY4OCA1MTJsMTI5LjMxNi0xMjkuMjkyLTUxLjczNi01MS43Mzd6IiBmaWxsPSIjZDU0OTQxIi8+PC9zdmc+",UyA="data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxwYXRoIGQ9Ik01MTIgOTcuNTI0YzIyOC45MTMgMCA0MTQuNDc2IDE4NS41NjMgNDE0LjQ3NiA0MTQuNDc2Uzc0MC45MTMgOTI2LjQ3NiA1MTIgOTI2LjQ3NiA5Ny41MjQgNzQwLjkxMyA5Ny41MjQgNTEyIDI4My4wODcgOTcuNTI0IDUxMiA5Ny41MjR6bTM2LjU3MSAzNDEuMzMzSDQ3NS40M1Y3MzEuNDNoNzMuMTQyVjQzOC44NTd6bTAtMTIxLjkwNUg0NzUuNDN2NzMuMTQzaDczLjE0MnYtNzMuMTQzeiIgZmlsbD0iI2UzNzMxOCIvPjwvc3ZnPg==",FyA={class:"uikit-modal-header"},OyA={class:"uikit-modal-title"},PyA=["innerHTML"],xyA={class:"uikit-modal-footer"},YyA=zi({__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,l=i,I=oD,h=wt(()=>_Q("reject")),f=wt(()=>_Q("accept")),w=/^(https?:\/\/)?([da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/i,_=/(https?:\/\/[^\s]+)/g,b=wt(()=>{const cA=["uikit-modal-default","uikit-modal-container"];return I||cA.push("uikit-modal-container-mobile"),cA.join(" ")}),U=wt(()=>{const{content:cA}=r;if(!cA||typeof cA!="string")return cA;if(w.test(cA.trim())){const TA=cA.trim(),WA=TA.startsWith("http")?TA:`https://${TA}`;return`<a href="${j(WA)}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${j(TA)}</a>`}return cA.includes("<a ")||cA.includes("<a>")?IA(cA):_.test(cA)?j(cA).replace(_,TA=>`<a href="${TA}" target="_blank" rel="noopener noreferrer" class="uikit-modal-link">${TA}</a>`):j(cA)});function j(cA){const TA=document.createElement("div");return TA.textContent=cA,TA.innerHTML}function IA(cA){const TA=new DOMParser().parseFromString(cA,"text/html");return TA.querySelectorAll("a").forEach(WA=>{if(WA.getAttribute("href")){WA.setAttribute("target","_blank"),WA.setAttribute("rel","noopener noreferrer"),WA.classList.add("uikit-modal-link");const Ee=WA.textContent||"";WA.innerHTML=`<span style="padding: 0 0.2em; display: inline-block;">${Ee}</span>`}}),TA.body.innerHTML}function nA(){mA()}function mA(){var cA;(cA=r.onConfirm)==null||cA.call(r),l("confirm")}function lA(){var cA;(cA=r.onCancel)==null||cA.call(r),l("cancel")}return(cA,TA)=>cA.visible?(se(),At("div",{key:0,class:"uikit-modal-mask",onClick:yE(nA,["self"])},[ne("div",{class:qi(aA(b))},[ne("div",FyA,[cA.type==="success"?(se(),Qi(vQ,{key:0,class:"uikit-modal-type-icon",src:aA(byA),size:20},null,8,["src"])):$t("",!0),cA.type==="info"?(se(),Qi(vQ,{key:1,class:"uikit-modal-type-icon",src:aA(kyA),size:20},null,8,["src"])):$t("",!0),cA.type==="error"?(se(),Qi(vQ,{key:2,class:"uikit-modal-type-icon",src:aA(LyA),size:20},null,8,["src"])):$t("",!0),cA.type==="warning"?(se(),Qi(vQ,{key:3,class:"uikit-modal-type-icon",src:aA(UyA),size:20},null,8,["src"])):$t("",!0),ne("span",OyA,ni(cA.title),1)]),ne("div",{class:"uikit-modal-body",innerHTML:aA(U)},null,8,PyA),ne("div",xyA,[ne("button",{class:"uikit-modal-btn uikit-modal-btn-cancel",onClick:lA},ni(aA(h)||"Cancel"),1),ne("button",{class:"uikit-modal-btn uikit-modal-btn-confirm",onClick:mA},ni(aA(f)||"Confirm"),1)])],2)])):$t("",!0)}}),VyA=bs(YyA,[["__scopeId","data-v-1d6740ac"]]);let aW=null,cm=null;const JyA=()=>{if(typeof window>"u")return!1;const t=window.location.hostname;return t==="localhost"||t==="127.0.0.1"||t.startsWith("192.168.")},I6=()=>{aW&&cm&&(Qv(null,cm),cm.parentNode&&cm.parentNode.removeChild(cm),aW=null,cm=null)},HyA=t=>new Promise(i=>{I6();const r=ts.getTim();if(r&&typeof r.callExperimentalAPI=="function"){const f={id:t.id,title:t.title,type:t.type,content:t.content};r.callExperimentalAPI("reportModalView",JSON.stringify(f))}if(!JyA()){i({action:"confirm"});return}const l=f=>{I6(),i({action:f})},I={...t,visible:!0,onConfirm:()=>{var f;(f=t.onConfirm)==null||f.call(t),l("confirm")},onCancel:()=>{var f;(f=t.onCancel)==null||f.call(t),l("cancel")}};cm=document.createElement("div");const h=bt(VyA,I);Qv(h,cm),document.body.appendChild(cm),aW=h}),qyA={openModal:t=>HyA(t)},jU=zi({__name:"TUICallKit",props:{beforeCalling:{},afterCalling:{},onMinimized:{},onMessageSentByMe:{},kickedOut:{},statusChanged:{},allowedMinimized:{type:Boolean,default:!1},allowedFullScreen:{type:Boolean,default:!0},videoDisplayMode:{default:y4.COVER},videoResolution:{default:D4.RESOLUTION_720P}},setup(t){const i=!Ko.isPC,r=i?"TUICallKit-mobile transition-animation":"TUICallKit-desktop",l=ze(""),I=ze(""),h=ze(""),f=ze(!1),w=t,_=ze(it.getData(oe.CALL,fA.CALL_STATUS)),b=ze(it.getData(oe.CALL,fA.CALL_ROLE)),U=ze(it.getData(oe.CALL,fA.CALL_MEDIA_TYPE)),j=ze(it.getData(oe.CALL,fA.IS_GROUP)),IA=ze(it.getData(oe.CALL,fA.IS_EAR_PHONE)),nA=ze(null),mA=ze(it.getData(oe.CALL,fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN)),lA=ze(it.getData(oe.CALL,fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST)),cA=ze(it.getData(oe.CALL,fA.CALLER_USER_INFO)),TA=ze(it.getData(oe.CALL,fA.IS_MINIMIZED)),WA=ze(it.getData(oe.CALL,fA.ENABLE_VIRTUAL_BACKGROUND)),Ee=ze(it.getData(oe.CALL,fA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND)),de=ze(it.getData(oe.CALL,fA.CUSTOM_UI_CONFIG)),Pe=ze(it.getData(oe.CALL,fA.IS_MUTE_SPEAKER)),pe=ze(it.getData(oe.CALL,fA.TRANSLATE)),gt=Ev({callStatus:_,callRole:b,callType:U,isGroupCall:j,isEarPhone:IA,focusElement:nA,allowedFullScreen:w.allowedFullScreen,enableVirtualBackground:WA,isShowEnableVirtualBackground:Ee,isMuteSpeaker:Pe}),pt=Ev({callerUserInfo:cA}),We=Ev({localUserInfoExcludeVolume:mA,remoteUserListExcludeVolume:lA}),Dt=Ev({isFloatWindow:TA}),Kt=ze(pe),{beforeCalling:ut,afterCalling:ge,onMinimized:XA,onMessageSentByMe:_e,videoDisplayMode:je,videoResolution:Ut,kickedOut:gi,statusChanged:Fi,allowedMinimized:To}=Gs(w),to=ke=>{gt.callStatus=ke},Eo=ke=>{gt.isGroupCall=ke},Vs=ke=>{if(typeof ke=="object"){const{content:Ze,type:vt="info"}=ke;!rAA(Ze)&&ei(pe.value(Ze),vt)}},ki=ke=>{gt.callType=ke,i&&f.value&&(h.value="miniMized-mobile-audio",I.value=""),i&&!f.value&&(I.value="mobile-audio")},ns=ke=>{Dt.isFloatWindow=ke,ke?i?gt.callType===tr.AUDIO?I.value="miniMized-mobile-audio":h.value="miniMized-mobile-video":l.value="miniMized":(I.value="mobile-audio",l.value="",h.value="")},jo=ke=>{if(ke&&Ko.isPC)try{qAA.show()}catch(Ze){console.debug(Ze)}},$i=ke=>{gt.callRole=ke},Wt=ke=>{We.localUserInfoExcludeVolume=ke},io=ke=>{We.remoteUserListExcludeVolume=[...ke]},bi=ke=>{pt.callerUserInfo=ke},vs=ke=>{gt.isEarPhone=ke},HA=ke=>{gt.enableVirtualBackground=ke},le=ke=>{gt.isShowEnableVirtualBackground=ke},Ve=ke=>{de.value=ke},Ft=ke=>{gt.isMuteSpeaker=ke},nt=ke=>{pe.value=ke},It=ke=>{ke&&qyA.openModal({id:ke?.id,title:ke?.title,content:ke?.content,type:"error"})};lT(()=>{ts.setCallback({beforeCalling:ut&&ut.value,afterCalling:ge&&ge.value,onMinimized:XA&&XA.value,onMessageSentByMe:_e&&_e.value,kickedOut:gi&&gi.value,statusChanged:Fi&&Fi.value})});const Ai={[fA.CALL_STATUS]:to,[fA.IS_GROUP]:Eo,[fA.TOAST_INFO]:Vs,[fA.CALL_MEDIA_TYPE]:ki,[fA.SHOW_PERMISSION_TIP]:jo,[fA.CALL_ROLE]:$i,[fA.LOCAL_USER_INFO_EXCLUDE_VOLUMN]:Wt,[fA.REMOTE_USER_INFO_EXCLUDE_VOLUMN_LIST]:io,[fA.CALLER_USER_INFO]:bi,[fA.IS_EAR_PHONE]:vs,[fA.ENABLE_VIRTUAL_BACKGROUND]:HA,[fA.IS_SHOW_ENABLE_VIRTUAL_BACKGROUND]:le,[fA.CUSTOM_UI_CONFIG]:Ve,[fA.IS_MUTE_SPEAKER]:Ft,[fA.TRANSLATE]:nt,[fA.MODAL_ERROR]:It};hc(()=>{To.value&&ts.enableFloatWindow(To.value),ts.setVideoDisplayMode(je.value),ts.setVideoResolution(Ut.value),it.watch(oe.CALL,Ai,{notifyRangeWhenWatch:fA.MYSELF}),it.watch(oe.CALL,{[fA.IS_MINIMIZED]:ns})});function ei(ke,Ze){switch(Ze){case"info":x_?.info(ke);break;case"error":x_?.error(ke);break}}return Kg(async()=>{it.unwatch(oe.CALL,{...Ai,[fA.IS_MINIMIZED]:ns})}),cd(W$,gt),cd(z$,pt),cd(Z$,We),cd(AAA,Dt),cd(iAA,de),cd(oAA,Kt),(ke,Ze)=>aA(gt).callStatus!==aA(ss).IDLE?(se(),At("div",{key:0,style:Br([{visibility:aA(Dt).isFloatWindow?"hidden":""}]),id:"tuicallkit-id",class:qi([aA(r),aA(l),aA(h),aA(I)])},[aA(gt).isGroupCall?(se(),Qi(JmA,{key:1,class:"singCall"})):(se(),Qi(zpA,{key:0,class:"singCall"})),bt(GyA)],6)):$t("",!0)}}),jAA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNTM2IDYuNjgyYy0uMzMtLjk1NS4wODgtMS45OC45LTIuNTgxLjYxNy0uNDU2IDEuMjM2LS45MTYgMS41ODktMS4xNzhhLjM5Ni4zOTYgMCAwIDEgLjUzOS4wNjJsMS45MjUgMi4yNjRhLjM5Ni4zOTYgMCAwIDEgMCAuNTEzbC0xLjE4IDEuMzlhLjM4OC4zODggMCAwIDAtLjA0MS40NSA4LjY2NyA4LjY2NyAwIDAgMCAxLjM3IDEuNzU4Yy41Ny41NyAxLjEyLjk4MiAxLjc2NSAxLjM2NGEuMzg5LjM4OSAwIDAgMCAuNDUtLjA0MWwxLjM4My0xLjE3NGEuMzk3LjM5NyAwIDAgMSAuNTE0IDBsMi4yNjYgMS45MjVjLjE1OS4xMzUuMTg2LjM3LjA2Mi41MzhsLTEuMTg1IDEuNjA0Yy0uNTk2LjgwNi0xLjYxNCAxLjIxNi0yLjU2Mi44OWExMi41NDUgMTIuNTQ1IDAgMCAxLTQuNzk3LTMuMDAzIDEyLjU0IDEyLjU0IDAgMCAxLTIuOTk4LTQuNzh6IiBmaWxsPSIjMUM2NkU1Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljg4OSAyLjEzM2EuMzU2LjM1NiAwIDAgMC0uMzU2LjM1NnYzLjY4NWMwIC4xOTYuMTYuMzU1LjM1Ni4zNTVoMy42ODVjLjE5NiAwIC4zNTUtLjE1OS4zNTUtLjM1NXYtLjE4NmEuMzIuMzIgMCAwIDEgLjQ1NS0uMjlsLjY4Ny4zMmEuMzU2LjM1NiAwIDAgMCAuNTA2LS4zMjJ2LTIuNzNjMC0uMjYtLjI3LS40MzItLjUwNi0uMzIybC0uNjg3LjMyYS4zMi4zMiAwIDAgMS0uNDU1LS4yOVYyLjQ5YS4zNTYuMzU2IDAgMCAwLS4zNTUtLjM1Nkg4Ljg4OXoiIGZpbGw9IiMxQzY2RTUiLz48L3N2Zz4=",KyA={class:"banner-pc"},jyA={class:"text"},WyA={class:"content"},zyA=ne("div",{class:"content-arrows"},null,-1),ZyA={class:"avatar-box"},XyA=zi({__name:"JoinGroupCard",props:{userListInfo:{type:Array,default:[]}},emits:["joinGroupCall"],setup(t,{emit:i}){const r=i,l=ze(!1),I=og(),h=()=>{r("joinGroupCall"),l.value=!1},f=()=>{l.value=!l.value};return(w,_)=>(se(),At("div",KyA,[ne("div",{class:"top",onClick:f},[bt(fl,{class:"call-icon",src:aA(jAA),width:"16px",height:"16px"},null,8,["src"]),ne("span",jyA,ni(t.userListInfo.length)+" "+ni(aA(I)("people on the call")),1)]),Ta(ne("div",WyA,[zyA,ne("div",ZyA,[(se(!0),At(vr,null,fE(t.userListInfo,b=>(se(),Qi(fl,{class:"avatar",src:b?.avatar,defaultSrc:aA(Em),fit:"cover",width:"32px",height:"32px"},null,8,["src","defaultSrc"]))),256))]),ne("div",{class:"btn",onClick:h},ni(aA(I)("join")||"join"),1)],512),[[Ka,aA(l)]])]))}}),$yA="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuNSAwIDUgMy43NS41IDB2MS41NjJsNC4xMTYgMy40My4zODQuMzIuMzg0LS4zMkw5LjUgMS41NjJWMHoiIGZpbGw9IiM2NjYiLz48L3N2Zz4=",ADA={class:"banner-h5"},eDA={class:"left"},tDA={class:"text"},iDA={class:"content-box"},oDA={class:"content"},sDA={class:"avatar-box"},nDA=zi({__name:"JoinGroupCard",props:{userListInfo:{type:Array,default:[]}},emits:["joinGroupCall"],setup(t,{emit:i}){const r=og(),l=ze({margin:"8px 10px 8px 0px"}),I=ze({margin:"6px",borderRadius:"4px"}),h=ze(!1),f=i,w=()=>{f("joinGroupCall"),h.value=!1},_=()=>{h.value=!h.value};return(b,U)=>(se(),At("div",ADA,[ne("div",{class:"top",onClick:_},[ne("div",eDA,[bt(fl,{class:"call-icon",src:aA(jAA),width:"16px",height:"16px",customStyle:aA(l)},null,8,["src","customStyle"]),ne("span",tDA,ni(t.userListInfo.length)+" "+ni(aA(r)("people on the call")),1)]),bt(fl,{src:aA($yA),width:"9px",height:"9px"},null,8,["src"])]),Ta(ne("div",iDA,[ne("div",oDA,[ne("div",sDA,[(se(!0),At(vr,null,fE(t.userListInfo,j=>(se(),Qi(fl,{src:j?.avatar,customStyle:aA(I),defaultSrc:aA(Em),fit:"cover",width:"50px",height:"50px"},null,8,["src","customStyle","defaultSrc"]))),256))]),ne("div",{class:"btn",onClick:yE(w,["stop"])},ni(aA(r)("join")||"join"),1)])],512),[[Ka,aA(h)]])]))}}),rDA=zi({__name:"JoinGroupCard",setup(t){const i=ze(Ko.isPC),r=ze(null),{groupId:l,roomId:I,roomIdType:h,callMediaType:f,groupCallMembers:w,callStatus:_,callId:b}=Gs(ZdA()),U=wt(()=>l&&_?.value===ss.IDLE&&w.value.length),j=async()=>{if(w.value.length>9){r.value.show({message:"Supports a maximum of 9 people for simultaneous calls",type:"success"});return}if(it.getData(oe.CALL,fA.IS_FORCE_USE_V2_API)){const IA={type:f.value,groupID:l.value,roomID:h.value===1?Number(I.value):0,strRoomID:String(I.value)};try{await ts.joinInGroupCall(IA)}catch(nA){console.error(`${fA.PREFIX}joinInGroupCall fail: ${nA}`)}}else{const IA={callId:b.value};try{await ts.join(IA)}catch(nA){console.error(`${fA.PREFIX}join fail: ${nA}`)}}};return(IA,nA)=>Ta((se(),At("div",null,[aA(i)?(se(),Qi(XyA,{key:0,userListInfo:aA(w),onJoinGroupCall:j},null,8,["userListInfo"])):(se(),Qi(nDA,{key:1,userListInfo:aA(w),onJoinGroupCall:j},null,8,["userListInfo"])),bt(PAA,{ref_key:"message",ref:r},null,512)],512)),[[Ka,aA(U)]])}}),aDA=t=>(t.component("TUICallKit",{server:ts}),ts.bindTUICore(t),jU),gDA=t=>{t.component("TUICallKit",jU).component("JoinGroupCard",rDA),console.log("TUICallKit&mini installed",t)};jU.plugin=aDA;jU.install=gDA;const cDA={AUDIO_CALL:1,VIDEO_CALL:2},lDA={key:0,class:"chat-panel"},IDA={class:"chat-header"},uDA={class:"patient-avatar","aria-hidden":"true"},EDA={class:"chat-heading"},dDA=["disabled"],CDA=["disabled"],hDA=["disabled"],BDA={key:1,class:"empty-chat"},QDA=["aria-label"],pDA={class:"message-meta"},mDA={class:"message-bubble"},fDA={key:0},yDA=["src"],DDA=["href"],SDA=["src"],MDA=["src"],vDA={key:5},RDA={class:"composer"},wDA={class:"composer-toolbar"},_DA=["disabled"],TDA={class:"composer-row"},NDA=["disabled","onKeydown"],GDA=["disabled"],bDA={class:"video-stage"},kDA={key:0,class:"status-card"},LDA={key:1,class:"live-status",role:"status"},UDA={key:2,class:"video-actions"},FDA=["disabled"],ODA=["disabled"],PDA={key:0,class:"consultation-rail","aria-label":"患者病例与实时对话"},xDA={class:"consultation-rail__header"},YDA={class:"consultation-rail__avatar","aria-hidden":"true"},VDA={class:"consultation-rail__identity"},JDA={class:"consultation-rail__actions"},HDA={class:"diagnosis-chip"},qDA=["disabled"],KDA={class:"case-panel","aria-labelledby":"patient-case-title"},jDA={class:"rail-section-heading"},WDA={class:"case-panel__content"},zDA={key:0,class:"case-field-list"},ZDA={key:1,class:"rail-empty rail-empty--case"},XDA={class:"transcript-panel","aria-labelledby":"live-transcript-title"},$DA={class:"rail-section-heading"},ASA={key:0,class:"rail-empty"},eSA={class:"screenshot-dialog"},tSA=["disabled"],iSA={class:"screenshot-preview-frame"},oSA=["src"],sSA=["disabled"],nSA=["disabled"],rSA=zi({__name:"App",props:{phase:{},statusText:{},patientName:{},mode:{},messages:{},chatReady:{},chatBusy:{},notice:{},hasMoreMessages:{},transcriptionState:{},localRecordingState:{},liveCaptions:{},patientCase:{},onSendText:{type:Function},onSendAttachment:{type:Function},onLoadMore:{type:Function},onReconnectChat:{type:Function},onStartVideo:{type:Function},onHangup:{type:Function},onOpenDiagnosis:{type:Function},onSaveScreenshot:{type:Function}},setup(t){const i=t,r=ze(""),l=ze(!1),I=ze(""),h=ze(null),f=ze(null),w=ze(""),_=ze(!0),b=ze(null),U=wt(()=>i.mode.value==="chat"),j=wt(()=>["starting","dialing","connected"].includes(i.phase.value)),IA=wt(()=>!U.value||j.value),nA=wt(()=>i.phase.value==="connected"),mA=wt(()=>i.chatReady.value?["starting","dialing","connected","ended","error"].includes(i.phase.value)?`IM 已连接 · ${i.statusText.value}`:"IM 已连接":i.statusText.value),lA=wt(()=>i.transcriptionState.value==="recording"||i.localRecordingState.value==="recording"),cA=wt(()=>i.transcriptionState.value==="error"||i.localRecordingState.value==="error"),TA=wt(()=>{const XA=i.localRecordingState.value,_e=i.transcriptionState.value;return XA==="uploading"?"正在上传本机录音到 COS…":XA==="stopping"||_e==="stopping"?"正在保存录音与转写文字…":XA==="starting"||_e==="starting"?"自动录音与转写启动中…":XA==="recording"&&_e==="recording"?"本机录音与实时转写中":XA==="recording"?"本机录音中,实时转写未就绪":_e==="recording"?"实时转写中,本机录音未就绪":XA==="error"&&_e==="error"?"本机录音与实时转写均失败":XA==="error"?"本机录音失败,实时转写仍在运行":_e==="error"?"实时转写失败,本机录音仍在运行":"录音与转写已结束"}),WA=wt(()=>{const XA=i.patientCase.value;return[XA.gender,XA.age?`${XA.age}岁`:"",XA.height?`${XA.height} cm`:"",XA.weight?`${XA.weight} kg`:""].filter(Boolean).join(" · ")||"基础资料待补充"}),Ee=wt(()=>{const XA=i.patientCase.value;return XA.appointmentDate?`预约 ${XA.appointmentDate}`:XA.diagnosisDate?`诊断 ${XA.diagnosisDate}`:`诊单 ${XA.diagnosisId||"—"}`}),de=wt(()=>{const XA=i.patientCase.value,_e=!!XA.allergyHistory&&!/^(无|否|未发现|无过敏史|none|no)$/i.test(XA.allergyHistory.trim());return[{label:"临床诊断",value:XA.clinicalDiagnosis},{label:"主诉",value:XA.chiefComplaint},{label:"现病史",value:XA.presentIllness},{label:"当前用药",value:XA.currentMedication},{label:"过敏史",value:XA.allergyHistory,risk:_e},{label:"既往史",value:XA.pastHistory},{label:"个人史",value:XA.personalHistory},{label:"家族史",value:XA.familyHistory},{label:"舌象",value:XA.tongue},{label:"脉象",value:XA.pulse},{label:"处方意见",value:XA.prescriptionOpinion},{label:"病例备注",value:XA.remark}].filter(je=>!!je.value)});br(()=>i.messages.value.length,async()=>{_.value&&(await Vy(),h.value&&(h.value.scrollTop=h.value.scrollHeight))}),br(()=>[i.patientName.value,i.mode.value],async()=>{_.value=!0,await Vy(),h.value&&(h.value.scrollTop=h.value.scrollHeight)}),br(()=>{const XA=i.liveCaptions.value.at(-1);return`${i.liveCaptions.value.length}:${XA?.id||""}:${XA?.text||""}`},async()=>{await Vy(),b.value&&(b.value.scrollTop=b.value.scrollHeight)});function Pe(){const XA=h.value;XA&&(_.value=XA.scrollHeight-XA.scrollTop-XA.clientHeight<=96)}async function pe(){const XA=h.value;if(!XA||l.value)return;const _e=XA.scrollHeight,je=XA.scrollTop;_.value=!1,await gt(i.onLoadMore),await Vy(),XA.scrollTop=je+(XA.scrollHeight-_e),Pe()}async function gt(XA){if(!l.value){l.value=!0,I.value="";try{await XA()}catch(_e){I.value=_e instanceof Error?_e.message:"操作失败,请稍后重试"}finally{l.value=!1}}}async function pt(){const XA=r.value.trim();XA&&await gt(async()=>{await i.onSendText(XA),r.value=""})}async function We(XA){const _e=XA.target,je=_e.files?.[0];_e.value="",je&&await gt(()=>i.onSendAttachment(je))}function Dt(){const XA=Array.from(document.querySelectorAll("video")).filter(_e=>_e.readyState>=2&&_e.videoWidth>0&&_e.videoHeight>0);return XA.length?XA.sort((_e,je)=>{const Ut=_e.getBoundingClientRect().width*_e.getBoundingClientRect().height;return je.getBoundingClientRect().width*je.getBoundingClientRect().height-Ut})[0]:null}async function Kt(){await gt(async()=>{const XA=Dt();if(!XA)throw new Error("尚未检测到患者视频画面");const _e=Math.min(1,1920/XA.videoWidth),je=document.createElement("canvas");je.width=Math.max(1,Math.round(XA.videoWidth*_e)),je.height=Math.max(1,Math.round(XA.videoHeight*_e));const Ut=je.getContext("2d");if(!Ut)throw new Error("无法创建截图画布");Ut.drawImage(XA,0,0,je.width,je.height),w.value=je.toDataURL("image/jpeg",.9)})}function ut(){l.value||(w.value="")}async function ge(){if(!(!w.value||l.value)){l.value=!0,I.value="";try{await i.onSaveScreenshot(w.value),w.value=""}catch(XA){I.value=XA instanceof Error?XA.message:"截图上传失败,请稍后重试"}finally{l.value=!1}}}return br(()=>i.phase.value,XA=>{XA!=="connected"&&(w.value="")}),(XA,_e)=>(se(),At("main",{class:qi(["consultation-shell",{"consultation-shell--video-only":!U.value}])},[U.value?(se(),At("section",lDA,[ne("header",IDA,[ne("div",uDA,ni(XA.patientName.value.slice(0,1)),1),ne("div",EDA,[ne("h1",null,ni(XA.patientName.value),1),ne("p",null,[ne("span",{class:qi(["connection-dot",{"connection-dot--online":XA.chatReady.value}])},null,2),Ia(" "+ni(mA.value),1)])]),XA.chatReady.value?$t("",!0):(se(),At("button",{key:0,class:"secondary-action",type:"button",disabled:l.value,onClick:_e[0]||(_e[0]=je=>gt(XA.onReconnectChat))}," 重新连接 IM ",8,dDA)),ne("button",{class:"primary-action",type:"button",disabled:l.value||j.value||!XA.chatReady.value,onClick:_e[1]||(_e[1]=je=>gt(XA.onStartVideo))},[_e[6]||(_e[6]=ne("span",{"aria-hidden":"true"},"▣",-1)),Ia(" "+ni(j.value?"视频通话中":"发起视频"),1)],8,CDA)]),ne("div",{ref_key:"messageList",ref:h,class:"message-list","aria-live":"polite",onScroll:Pe},[XA.hasMoreMessages.value?(se(),At("button",{key:0,class:"load-more",type:"button",disabled:XA.chatBusy.value,onClick:pe},ni(XA.chatBusy.value?"正在读取…":"查看更早消息"),9,hDA)):$t("",!0),!XA.messages.value.length&&!XA.chatBusy.value?(se(),At("div",BDA,_e[7]||(_e[7]=[ne("div",{class:"empty-chat__icon","aria-hidden":"true"},"IM",-1),ne("h2",null,"开始问诊沟通",-1),ne("p",null,"消息会通过腾讯云 IM 实时发送给患者。",-1)]))):$t("",!0),(se(!0),At(vr,null,fE(XA.messages.value,je=>(se(),At("article",{key:je.id,class:qi(["message-row",{"message-row--mine":je.mine,"message-row--call-status":je.type==="call-status"}])},[je.type==="call-status"?(se(),At("div",{key:0,class:qi(["call-status-event",`call-status-event--${je.callStatus||"ended"}`]),role:"status","aria-label":`${je.text},${je.time}`},[_e[8]||(_e[8]=ne("span",{class:"call-status-event__icon","aria-hidden":"true"},"▣",-1)),ne("strong",null,ni(je.text),1),ne("time",null,ni(je.time),1)],10,QDA)):(se(),At(vr,{key:1},[ne("div",pDA,ni(je.mine?"我":XA.patientName.value)+" · "+ni(je.time),1),ne("div",mDA,[je.type==="text"?(se(),At("p",fDA,ni(je.text),1)):je.type==="image"&&je.url?(se(),At("img",{key:1,class:"message-image",src:je.url,alt:"问诊图片"},null,8,yDA)):je.type==="file"&&je.url?(se(),At("a",{key:2,class:"message-file",href:je.url,target:"_blank",rel:"noreferrer"},[_e[9]||(_e[9]=ne("span",{"aria-hidden":"true"},"▤",-1)),Ia(ni(je.name||"查看文件"),1)],8,DDA)):je.type==="audio"&&je.url?(se(),At("audio",{key:3,src:je.url,controls:""},null,8,SDA)):je.type==="video"&&je.url?(se(),At("video",{key:4,class:"message-video",src:je.url,controls:""},null,8,MDA)):(se(),At("p",vDA,ni(je.text),1))])],64))],2))),128))],544),ne("footer",RDA,[I.value||XA.notice.value?(se(),At("div",{key:0,class:qi(["inline-notice",{"inline-notice--error":I.value}])},ni(I.value||XA.notice.value),3)):$t("",!0),ne("div",wDA,[ne("button",{type:"button",title:"发送图片或文件",disabled:!XA.chatReady.value||l.value,onClick:_e[2]||(_e[2]=je=>f.value?.click())}," + 图片/文件 ",8,_DA),ne("input",{ref_key:"fileInput",ref:f,type:"file",accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt",hidden:"",onChange:We},null,544),_e[10]||(_e[10]=ne("span",null,"Enter 发送,Shift + Enter 换行",-1))]),ne("div",TDA,[Ta(ne("textarea",{"onUpdate:modelValue":_e[3]||(_e[3]=je=>r.value=je),rows:"3",maxlength:"3000",placeholder:"输入问诊消息…",disabled:!XA.chatReady.value,onKeydown:y9(yE(pt,["exact","prevent"]),["enter"])},null,40,NDA),[[BrA,r.value]]),ne("button",{class:"send-button",type:"button",disabled:!XA.chatReady.value||!r.value.trim()||l.value,onClick:pt}," 发送 ",8,GDA)])])])):$t("",!0),IA.value?(se(),At("section",{key:1,class:qi(["video-layer",{"video-layer--overlay":U.value,"video-layer--with-rail":j.value}])},[ne("div",bDA,[bt(aA(jU),{class:"call-kit","allowed-minimized":!1,"allowed-full-screen":!1}),XA.phase.value==="ready"||XA.phase.value==="starting"||XA.phase.value==="error"?(se(),At("section",kDA,[ne("span",{class:qi(["status-dot",`status-dot--${XA.phase.value}`]),"aria-hidden":"true"},null,2),ne("div",null,[_e[11]||(_e[11]=ne("p",{class:"eyebrow"},"中医视频问诊",-1)),ne("h2",null,ni(XA.statusText.value),1),_e[12]||(_e[12]=ne("p",{class:"status-hint"},"视频通话凭证仅由业务服务器签发",-1))])])):(se(),At("div",LDA,[_e[13]||(_e[13]=ne("span",{class:"status-dot status-dot--live","aria-hidden":"true"},null,-1)),Ia(" "+ni(XA.statusText.value),1)])),j.value?(se(),At("div",UDA,[nA.value?(se(),At("div",{key:0,class:qi(["recording-status",{"recording-status--active":lA.value,"recording-status--error":cA.value}]),role:"status","aria-live":"polite"},[_e[14]||(_e[14]=ne("span",{class:"recording-indicator","aria-hidden":"true"},null,-1)),Ia(" "+ni(TA.value),1)],2)):$t("",!0),ne("button",{class:"capture-button",type:"button",disabled:!nA.value||l.value,onClick:Kt}," 截屏预览 ",8,FDA),ne("button",{class:"hangup-button",type:"button",disabled:l.value,onClick:_e[4]||(_e[4]=je=>gt(XA.onHangup))}," 结束视频 ",8,ODA)])):$t("",!0),I.value||XA.notice.value?(se(),At("div",{key:3,class:qi(["video-notice",{"video-notice--error":I.value}])},ni(I.value||XA.notice.value),3)):$t("",!0)]),j.value?(se(),At("aside",PDA,[ne("header",xDA,[ne("div",YDA,ni((XA.patientCase.value.name||XA.patientName.value).slice(0,1)),1),ne("div",VDA,[ne("strong",null,ni(XA.patientCase.value.name||XA.patientName.value),1),ne("span",null,ni(WA.value),1)]),ne("div",JDA,[ne("span",HDA,"诊单 "+ni(XA.patientCase.value.diagnosisId||"—"),1),ne("button",{class:"open-diagnosis-button",type:"button",disabled:l.value,"aria-label":"打开完整诊单",onClick:_e[5]||(_e[5]=je=>gt(XA.onOpenDiagnosis))},_e[15]||(_e[15]=[Ia(" 打开诊单 "),ne("span",{"aria-hidden":"true"},"↗",-1)]),8,qDA)])]),ne("section",KDA,[ne("header",jDA,[_e[16]||(_e[16]=ne("div",null,[ne("span",{class:"rail-section-heading__index"},"01"),ne("h2",{id:"patient-case-title"},"患者病例")],-1)),ne("span",null,ni(Ee.value),1)]),ne("div",WDA,[de.value.length?(se(),At("div",zDA,[(se(!0),At(vr,null,fE(de.value,je=>(se(),At("article",{key:je.label,class:qi(["case-field",{"case-field--risk":je.risk}])},[ne("span",null,ni(je.label),1),ne("p",null,ni(je.value),1)],2))),128))])):(se(),At("div",ZDA,_e[17]||(_e[17]=[ne("strong",null,"暂无已填写的病例内容",-1),ne("span",null,"可继续通话,已补充的病例会在下次打开时显示。",-1)])))])]),ne("section",XDA,[ne("header",$DA,[_e[18]||(_e[18]=ne("div",null,[ne("span",{class:"rail-section-heading__index"},"02"),ne("h2",{id:"live-transcript-title"},"实时对话")],-1)),ne("span",{class:qi(["transcript-state",{"transcript-state--active":lA.value}])},ni(lA.value?"转写中":"等待语音"),3)]),ne("div",{ref_key:"transcriptList",ref:b,class:"live-captions",role:"log","aria-live":"polite","aria-label":"实时语音字幕"},[XA.liveCaptions.value.length?$t("",!0):(se(),At("div",ASA,_e[19]||(_e[19]=[ne("strong",null,"对话文字会显示在这里",-1),ne("span",null,"接通后自动识别医生与患者语音,并保留本次通话内容。",-1)]))),(se(!0),At(vr,null,fE(XA.liveCaptions.value,je=>(se(),At("article",{key:je.id,class:qi(["caption-entry",{"caption-entry--partial":!je.completed}])},[ne("header",null,[ne("strong",null,ni(je.speaker),1),ne("time",null,ni(je.time),1)]),ne("p",null,ni(je.text),1)],2))),128))],512)])])):$t("",!0),w.value?(se(),At("div",{key:1,class:"screenshot-dialog-backdrop",role:"dialog","aria-modal":"true","aria-labelledby":"screenshot-preview-title",onClick:yE(ut,["self"])},[ne("section",eSA,[ne("header",null,[_e[20]||(_e[20]=ne("div",null,[ne("p",{class:"eyebrow"},"视频截图确认"),ne("h2",{id:"screenshot-preview-title"},"确认画面后再保存到患者资料")],-1)),ne("button",{type:"button","aria-label":"关闭截图预览",disabled:l.value,onClick:ut},"×",8,tSA)]),ne("div",iSA,[ne("img",{src:w.value,alt:"本次视频截图预览"},null,8,oSA)]),_e[21]||(_e[21]=ne("p",{class:"screenshot-dialog__hint"},"只有点击“确认并上传”后,截图才会上传并写入患者资料。",-1)),ne("footer",null,[ne("button",{class:"screenshot-cancel",type:"button",disabled:l.value,onClick:ut},"取消",8,sSA),ne("button",{class:"screenshot-confirm",type:"button",disabled:l.value,onClick:ge},ni(l.value?"正在上传…":"确认并上传"),9,nSA)])])])):$t("",!0)],2)):$t("",!0)],2))}}),rC=ze("ready"),Du=ze("正在连接问诊服务"),k4=ze("患者"),L4=ze("video"),DQ=ze([]),nh=ze(!1),lY=ze(!1),ir=ze(""),U4=ze(!1),AI=ze("idle"),eI=ze("idle"),VY=ze([]),WAA=ze(lSA());let co=null,hr=null,gW=null,JY=null,JL="",pl=!0,IY=!1,HY="",qY="",wU="",cW=0,lW=0,gU=null;const Jy=new Map,Hy=new Map;let xI="",WU=0,_U=!1,vv=null,Z_=null,rT="",av=null,DL=null,eh=null,$y=0,IW=-1,uW=-1,F4=0,O4=0;const zU=new Set,dm=new Map,qy=new Map,Ky=new Map;let YI="",TU="",X_=null,KY=null,jY=null,ky=null,cU=null,lU=null,EW=[],$_=new Set,dW=[],AT=null,aT=!1,MV=!1,NU=0,CW=0,WY=0,uY=Promise.resolve(),L_=null,SL=null,SQ="";function aSA(){const t=window.qt?.webChannelTransport,i=window.QWebChannel;if(!(!t||typeof i!="function"))try{new i(t,r=>{const l=r.objects.qtVideoBridge;l&&(window.qtVideoBridge=l),DE({source:"doctor-call",event:"ready"})})}catch{console.warn("[doctor-consultation] Qt 通信通道初始化失败")}}function gSA(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 DE(t){const i=window.qtVideoBridge;if(i&&typeof i.notify=="function")try{i.notify(JSON.stringify(t));return}catch{}gSA(t)||console.info("[doctor-consultation]",t.event,t.status??t.message??"")}async function cSA(){if(!co)throw new Error("诊单上下文尚未就绪");DE({source:"doctor-call",event:"open-diagnosis-request",diagnosisId:co.diagnosisId})}function d3(t,i){if(typeof t!="string"||t.trim()==="")throw new Error(`${i}不能为空`);return t.trim()}function xc(t,i=2e3){return t==null?"":String(t).trim().slice(0,i)}function lSA(){return{diagnosisId:"",name:"",gender:"",age:"",height:"",weight:"",diagnosisDate:"",appointmentDate:"",clinicalDiagnosis:"",chiefComplaint:"",presentIllness:"",pastHistory:"",allergyHistory:"",personalHistory:"",familyHistory:"",currentMedication:"",tongue:"",pulse:"",prescriptionOpinion:"",remark:""}}function ISA(t,i,r){const l=t&&typeof t=="object"?t:{};return{diagnosisId:xc(l.diagnosisId??i,80),name:xc(l.name||r,120)||r,gender:xc(l.gender,20),age:xc(l.age,20),height:xc(l.height,20),weight:xc(l.weight,20),diagnosisDate:xc(l.diagnosisDate,80),appointmentDate:xc(l.appointmentDate,80),clinicalDiagnosis:xc(l.clinicalDiagnosis),chiefComplaint:xc(l.chiefComplaint),presentIllness:xc(l.presentIllness),pastHistory:xc(l.pastHistory),allergyHistory:xc(l.allergyHistory),personalHistory:xc(l.personalHistory),familyHistory:xc(l.familyHistory),currentMedication:xc(l.currentMedication),tongue:xc(l.tongue),pulse:xc(l.pulse),prescriptionOpinion:xc(l.prescriptionOpinion),remark:xc(l.remark)}}function uSA(t){if(!t||typeof t!="object")throw new Error("问诊配置无效");const i=Number(t.SDKAppID??t.sdkAppId);if(!Number.isSafeInteger(i)||i<=0)throw new Error("SDKAppID 必须是正整数");const r=t.diagnosisId;if(r==null||String(r).trim()==="")throw new Error("诊单ID不能为空");const l=typeof t.patientName=="string"&&t.patientName.trim()?t.patientName.trim():"患者";return{SDKAppID:i,userID:d3(t.userID??t.userId,"医生用户ID"),userSig:d3(t.userSig,"用户签名"),targetUserId:d3(t.targetUserId??t.patientUserId,"患者用户ID"),diagnosisId:typeof r=="string"?r.trim():r,patientName:l,patientCase:ISA(t.patientCase,r,l),mode:t.mode==="chat"?"chat":"video"}}function oI(t,i="问诊服务发生未知错误"){let r=t instanceof Error?t.message:i;return co?.userSig&&(r=r.split(co.userSig).join("[已隐藏]")),r=r.replace(/(user\s*sig\s*[:=]\s*)[^\s,;&]+/gi,"$1[已隐藏]").slice(0,400),/user\s+not\s+logged\s+in|not\s+logged\s+in/i.test(r)?"IM 登录已失效,请关闭其他患者 IM 窗口后重新打开本会话":/sdk.*not.*ready|not.*ready/i.test(r)?"IM 连接尚未就绪,请稍后重试":/user\s*sig.*expired|signature.*expired/i.test(r)?"IM 登录凭证已过期,请关闭窗口后重新打开":r||i}function zAA(t){const i=Number(t);return(Number.isFinite(i)&&i>0?new Date(i*1e3):new Date).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function ESA(t){if(!t||typeof t!="object")return"";if(typeof t.url=="string")return t.url;if(typeof t.fileUrl=="string")return t.fileUrl;if(typeof t.videoUrl=="string")return t.videoUrl;if(typeof t.remoteAudioUrl=="string")return t.remoteAudioUrl;const i=Array.isArray(t.imageInfoArray)?t.imageInfoArray:[],r=i.find(l=>l?.type===0)??i.at(-1)??i[0];return typeof r?.url=="string"?r.url:""}function C3(t){if(t&&typeof t=="object"&&!Array.isArray(t))return t;if(typeof t!="string"||!t.trim())return null;try{const i=JSON.parse(t);return i&&typeof i=="object"&&!Array.isArray(i)?i:null}catch{return null}}function dSA(t){const i=C3(t?.data)??C3(t)??{},r=C3(i.data)??{},l=i.businessID??i.businessId??r.businessID??r.businessId;if(l===1||String(l).toLowerCase().includes("call"))return{hidden:!0,text:""};const I=String(i.command??i.cmd??r.command??r.cmd??"").toLowerCase();if(I.includes("call")||I.includes("invite"))return{hidden:!0,text:""};const h=[t?.description,i.text,i.content,i.message,i.tips,r.text,r.content,r.message].find(f=>typeof f=="string"&&f.trim());return{hidden:!1,text:h?String(h).trim():"系统自定义消息"}}function CSA(t){const i=t?.payload??{},r=String(t?.type??"");let l="system",I="系统消息";if(r===ig.TYPES.MSG_TEXT)l="text",I=String(i.text??"");else if(r===ig.TYPES.MSG_IMAGE)l="image",I="[图片]";else if(r===ig.TYPES.MSG_FILE)l="file",I="[文件]";else if(r===ig.TYPES.MSG_AUDIO)l="audio",I="[语音]";else if(r===ig.TYPES.MSG_VIDEO)l="video",I="[视频]";else if(r===ig.TYPES.MSG_CUSTOM){const h=dSA(i);if(h.hidden)return null;I=h.text}else r===ig.TYPES.MSG_FACE?I="[表情消息]":r===ig.TYPES.MSG_LOCATION?I=`[位置] ${String(i.description??i.name??"").trim()}`.trim():r===ig.TYPES.MSG_MERGER?I=`[合并消息] ${String(i.title??"").trim()}`.trim():r===ig.TYPES.MSG_GRP_TIP?I="[群组通知]":r===ig.TYPES.MSG_GRP_SYS_NOTICE&&(I="[群组系统通知]");return{id:String(t?.ID??t?.id??`${t?.time??Date.now()}-${Math.random()}`),mine:t?.flow==="out"||t?.from===co?.userID,type:l,text:I,url:ESA(i),name:String(i.fileName??i.name??(l==="file"?"文件":"")),time:zAA(t?.time)}}function vV(t,i=!1){const r=t.map(CSA).filter(h=>h!==null),l=i?[...r,...DQ.value]:[...DQ.value,...r],I=new Set;DQ.value=l.filter(h=>I.has(h.id)?!1:(I.add(h.id),!0))}function eT(t,i){if(!co||co.mode!=="chat")return;const r=`local-video-call-${$y}-${t}`,l={id:r,mine:!1,type:"call-status",text:i,url:"",name:"",time:zAA(void 0),callStatus:t},I=DQ.value.findIndex(f=>f.id===r);if(I<0){DQ.value=[...DQ.value,l];return}const h=[...DQ.value];h[I]={...h[I],...l},DQ.value=h}function ZAA(t){if(!co)return;const i=`C2C${co.targetUserId}`,l=(Array.isArray(t?.data)?t.data:[]).filter(I=>String(I?.conversationID??"")===i||I?.from===co?.targetUserId);l.length&&(vV(l),hr?.setMessageRead?.({conversationID:i}))}function XAA(){nh.value=!0,Du.value="IM 已连接",ir.value="",JY?.(),JY=null}function $AA(t){const i=nh.value;nh.value=!1,Du.value="IM 连接已断开",i&&(ir.value=oI(t?.data?.message??t?.message,"IM 连接已断开,请重新打开会话"))}function AeA(t){nh.value=!1,Du.value="IM 已在其他窗口登录";const i=String(t?.data?.type??t?.data??"");ir.value=i.includes("userSigExpired")?"IM 登录凭证已过期,请关闭窗口后重新打开":"当前账号已在另一个 IM 窗口登录,请关闭其他患者 IM 窗口后重新打开本会话"}function eeA(t){const i=String(t?.data?.state??t?.data??"").toUpperCase();i.includes("DISCONNECTED")?Du.value="IM 网络连接中断,正在自动恢复":i.includes("CONNECTED")&&nh.value&&(Du.value="IM 已连接")}async function teA(){if(!co)throw new Error("问诊配置尚未准备好");nh.value=!1,Du.value="正在连接患者 IM",hr=ig.create({SDKAppID:co.SDKAppID}),hr.setLogLevel(2),hr.registerPlugin({"tim-upload-plugin":HoA}),hr.on(ig.EVENT.SDK_READY,XAA),hr.on(ig.EVENT.SDK_NOT_READY,$AA),hr.on(ig.EVENT.KICKED_OUT,AeA),hr.on(ig.EVENT.NET_STATE_CHANGE,eeA),hr.on(ig.EVENT.MESSAGE_RECEIVED,ZAA),gW=new Promise((t,i)=>{JY=t}),await hr.login({userID:co.userID,userSig:co.userSig}),await Promise.race([gW,new Promise((t,i)=>window.setTimeout(()=>i(new Error("IM 连接超时")),15e3))]),await oeA(!1)}async function ieA(){if(hr)try{hr.off(ig.EVENT.SDK_READY,XAA),hr.off(ig.EVENT.SDK_NOT_READY,$AA),hr.off(ig.EVENT.KICKED_OUT,AeA),hr.off(ig.EVENT.NET_STATE_CHANGE,eeA),hr.off(ig.EVENT.MESSAGE_RECEIVED,ZAA),await hr.logout()}catch{}finally{hr=null,nh.value=!1,gW=null,JY=null}}async function hSA(){if(!co||co.mode!=="chat")throw new Error("当前不是 IM 会话");ir.value="",await ieA(),await teA()}async function oeA(t){if(!(!hr||!co||lY.value)){lY.value=!0;try{const i={conversationID:`C2C${co.targetUserId}`,count:30};t&&JL&&(i.nextReqMessageID=JL);const l=(await hr.getMessageList(i))?.data??{},I=Array.isArray(l.messageList)?l.messageList:[];JL=String(l.nextReqMessageID??""),U4.value=!l.isCompleted&&!!JL,vV(I,t),await hr.setMessageRead({conversationID:`C2C${co.targetUserId}`})}catch(i){ir.value=`读取消息失败:${oI(i)}`}finally{lY.value=!1}}}async function BSA(t){if(!hr||!co||!nh.value||!hr.isReady?.()||hr.getLoginUser?.()!==co.userID)throw nh.value=!1,Du.value="IM 登录已失效",new Error("IM 登录已失效,请关闭其他患者 IM 窗口后重新打开本会话");const i=t.trim();if(i)try{const r=hr.createTextMessage({to:co.targetUserId,conversationType:ig.TYPES.CONV_C2C,payload:{text:i}}),l=await hr.sendMessage(r);vV([l?.data?.message??l?.data??r])}catch(r){throw new Error(oI(r,"消息发送失败"))}}async function QSA(t){if(!hr||!co||!nh.value||!hr.isReady?.()||hr.getLoginUser?.()!==co.userID)throw nh.value=!1,Du.value="IM 登录已失效",new Error("IM 登录已失效,请关闭其他患者 IM 窗口后重新打开本会话");if(t.size>20*1024*1024)throw new Error("附件不能超过 20MB");const i={to:co.targetUserId,conversationType:ig.TYPES.CONV_C2C,payload:{file:t}},r=t.type.startsWith("image/")?hr.createImageMessage(i):hr.createFileMessage(i);try{const l=await hr.sendMessage(r);vV([l?.data?.message??l?.data??r])}catch(l){throw new Error(oI(l,"附件发送失败"))}}function pSA(){return`audio-${(window.crypto?.randomUUID?.().replaceAll("-","")||`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`).replace(/[^a-zA-Z0-9]/g,"").slice(0,32)}`}function mSA(){return typeof MediaRecorder>"u"?"":["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg"].find(i=>MediaRecorder.isTypeSupported(i))??""}function fSA(t,i){const r=window.qtVideoBridge;if(!r||typeof r.startLocalAudioRecording!="function")return Promise.resolve(!1);const l=qy.get(t);if(l)return l.promise;const I={};return I.promise=new Promise(h=>{I.resolve=h}),qy.set(t,I),r.startLocalAudioRecording(t,i),window.setTimeout(()=>{qy.get(t)===I&&(qy.delete(t),I.resolve(!1))},15e3),I.promise}function ySA(t,i){const r=window.qtVideoBridge;if(!r||typeof r.finishLocalAudioRecording!="function")return Promise.resolve(!1);const l=Ky.get(t);if(l)return l.promise;const I={};return I.promise=new Promise(h=>{I.resolve=h}),Ky.set(t,I),r.finishLocalAudioRecording(t,i),window.setTimeout(()=>{Ky.get(t)===I&&(Ky.delete(t),I.resolve(!1))},18e4),I.promise}function DSA(t){let i="";for(let r=0;r<t.length;r+=1)i+=String.fromCharCode(t[r]);return window.btoa(i)}async function SSA(t,i){if(!t.size||i!==YI)return;const r=window.qtVideoBridge;if(!r||typeof r.appendLocalAudioChunk!="function")throw new Error("桌面端本地录音分片通道不可用");const l=new Uint8Array(await t.arrayBuffer()),I=8*1024;for(let h=0;h<l.length;h+=I){const f=l.subarray(h,Math.min(h+I,l.length));r.appendLocalAudioChunk(i,CW,DSA(f)),CW+=1,WY+=f.length}}function MSA(){const i=ts.getTUICallEngineInstance?.()?.getTRTCCloudInstance?.();return i||null}function sD(t,i="unknown"){const r=KY,l=jY;if(!r||!l||!t||t.kind!=="audio"||t.readyState==="ended")return!1;if(i==="doctor"&&(aT=!0),i==="patient"&&(MV=!0),$_.has(t.id))return!0;const I=r.createMediaStreamSource(new MediaStream([t]));return I.connect(l),EW.push(I),$_.add(t.id),NU+=1,t.addEventListener("ended",()=>$_.delete(t.id),{once:!0}),!0}function vSA(t){if(typeof t.getAudioTrack!="function")return!1;let i=!1;try{i=sD(t.getAudioTrack({processed:!0}),"doctor")}catch{}if(!i)try{i=sD(t.getAudioTrack(),"doctor")}catch{}return i}function seA(t,i){if(typeof t.getAudioTrack!="function"||!i)return!1;let r=!1;try{r=sD(t.getAudioTrack({userId:i,processed:!0}),"patient")}catch{}if(!r)try{r=sD(t.getAudioTrack(i),"patient")}catch{}return r}function neA(t){if(co){t&&(vSA(t),seA(t,co.targetUserId));for(const i of document.querySelectorAll("video, audio")){const r=i.srcObject;if(!(r instanceof MediaStream))continue;const l=i.muted?"doctor":"patient";for(const I of r.getAudioTracks())sD(I,l)}}}async function RSA(){if(aT||!navigator.mediaDevices?.getUserMedia)return;const i=(await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:!1})).getAudioTracks();dW.push(...i);for(const r of i)sD(r,"doctor")}async function wSA(t,i,r=7e3){const l=Date.now();let I=!1;for(;Date.now()-l<r;){if(i!==YI||pl)throw new Error("视频已结束,本机录音未启动");neA(t);const h=Date.now()-l;if(!aT&&!I&&h>=800){I=!0;try{await RSA()}catch(f){console.warn("[doctor-consultation] 本机麦克风录音兜底不可用",oI(f))}}if($_.size>0&&(aT&&MV||h>=2200))return;await new Promise(f=>window.setTimeout(f,160))}if($_.size<=0)throw new Error("未检测到医生或患者的实时语音音轨,请检查麦克风权限")}function _SA(t){AT!==null&&window.clearInterval(AT),AT=window.setInterval(()=>{neA(t)},500)}async function P4(){if(AT!==null&&(window.clearInterval(AT),AT=null),ky&&cU&&typeof ky.off=="function")try{ky.off("track",cU)}catch{}if(ky&&lU&&typeof ky.off=="function")try{ky.off("remote-audio-available",lU)}catch{}ky=null,cU=null,lU=null;for(const i of EW)try{i.disconnect()}catch{}EW=[],$_.clear();for(const i of dW)i.stop();dW=[],aT=!1,MV=!1,NU=0;const t=KY;if(KY=null,jY=null,t&&t.state!=="closed")try{await t.close()}catch{}X_=null}async function TSA(){if(!co||rC.value!=="connected"||pl)throw new Error("视频接通后才能启动本机录音");if(!window.qtVideoBridge?.startLocalAudioRecording)throw new Error("桌面端本机录音存储通道不可用");const t=mSA();if(!t)throw new Error("当前浏览器不支持 Opus 本机录音");eI.value="starting",SQ="",CW=0,WY=0,uY=Promise.resolve(),NU=0,aT=!1,MV=!1;const i=pSA();YI=i,TU=t;try{const r=window.AudioContext,l=new r;KY=l,jY=l.createMediaStreamDestination();const I=MSA();if(ky=I,cU=_=>{const b=!_.userId||_.userId===co?.userID?"doctor":_.userId===co?.targetUserId?"patient":"unknown";sD(_.track,b)||sD(_.sourceTrack,b)},lU=_=>{const b=_.userId||co?.targetUserId||"";I&&b===co?.targetUserId&&seA(I,b)},typeof I?.on=="function"&&(I.on("track",cU),I.on("remote-audio-available",lU)),l.state==="suspended"&&await l.resume(),await wSA(I,i),_SA(I),!await fSA(i,t)||i!==YI||pl)throw new Error(ir.value||"服务端未能创建本机录音临时文件");const f=jY;if(!f)throw new Error("本机录音混音器未就绪");if(NU<=0)throw new Error("本机录音没有连接到医生或患者语音");const w=new MediaRecorder(f.stream,{mimeType:t});X_=w,w.addEventListener("dataavailable",_=>{!_.data.size||i!==YI||(uY=uY.then(()=>SSA(_.data,i)).catch(b=>{SQ=oI(b,"本机录音分片保存失败"),eI.value="error",ir.value=SQ,window.qtVideoBridge?.abortLocalAudioRecording?.(i),w.state!=="inactive"&&w.stop()}))}),w.addEventListener("error",_=>{SQ=oI(_.error,"浏览器本机录音发生错误"),eI.value="error",ir.value=SQ}),w.start(1e3),eI.value="recording",ir.value="腾讯云混流视频、本机语音录音和实时转写均已启动"}catch(r){throw window.qtVideoBridge?.abortLocalAudioRecording?.(i),await P4(),i===YI&&(YI="",TU="",eI.value="error"),new Error(oI(r,"本机语音录音启动失败"))}}function NSA(){if(L_)return L_;if(eI.value==="recording")return Promise.resolve();const i=TSA().finally(()=>{L_===i&&(L_=null)});return L_=i,i}async function GSA(){const t=L_;if(t)try{await t}catch{return}const i=YI,r=X_;if(!i||!r){eI.value!=="error"&&(eI.value="idle");return}eI.value="stopping";try{if(r.state!=="inactive"&&await new Promise(I=>{r.addEventListener("stop",()=>I(),{once:!0}),r.stop()}),await uY,SQ)throw new Error(SQ);if(NU<=0)throw new Error("本机录音没有连接到有效语音音轨");if(WY<1024)throw new Error("本机录音文件为空或不完整,已阻止上传空文件");if(eI.value="uploading",ir.value="正在把本机语音录音上传到 COS…",!await ySA(i,WY))throw new Error(ir.value||"本机语音录音上传 COS 失败");eI.value="idle",ir.value="混流视频、本机录音和转写文字均已归档到本次通话记录"}catch(l){throw window.qtVideoBridge?.abortLocalAudioRecording?.(i),eI.value="error",new Error(oI(l,"本机语音录音保存失败"))}finally{await P4(),i===YI&&(YI="",TU="")}}function bSA(){if(SL)return SL;if(eI.value==="idle"&&!YI)return Promise.resolve();const i=GSA().finally(()=>{SL===i&&(SL=null)});return SL=i,i}function kSA(t,i,r,l,I){if(t==="start"){const h=qy.get(i);if(!h)return;qy.delete(i),I&&i===YI&&(ir.value=I),h.resolve(!!l)}else if(t==="finish"){const h=Ky.get(i);if(!h)return;Ky.delete(i),I&&i===YI&&(ir.value=I),h.resolve(!!l)}else!l&&i===YI&&(SQ=I||"本机录音分片保存失败",eI.value="error",ir.value=SQ,window.qtVideoBridge?.abortLocalAudioRecording?.(i),X_&&X_.state!=="inactive"&&X_.stop())}function LSA(){return`tr-${(window.crypto?.randomUUID?.().replaceAll("-","")||`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`).replace(/[^a-zA-Z0-9]/g,"").slice(0,28)}`}function USA(t){if(!co||!window.qtVideoBridge?.notify)return Promise.resolve(!1);const i=Jy.get(t);if(i)return i.promise;const r={};return r.sessionId=t,r.promise=new Promise(l=>{r.resolve=l}),Jy.set(t,r),DE({source:"doctor-call",event:"transcription-start-request",diagnosisId:co?.diagnosisId,sessionId:t,language:"zh"}),window.setTimeout(()=>{Jy.get(t)===r&&(Jy.delete(t),r.resolve(!1))},15e3),r.promise}function hW(t,i){if(!co||!t||!window.qtVideoBridge?.notify)return Promise.resolve(!1);const r=Hy.get(t);if(r)return r.promise;const l={};return l.sessionId=t,l.promise=new Promise(I=>{l.resolve=I}),Hy.set(t,l),DE({source:"doctor-call",event:"transcription-stop",diagnosisId:co?.diagnosisId,sessionId:t,status:i}),window.setTimeout(()=>{Hy.get(t)===l&&(Hy.delete(t),l.resolve(!1))},15e3),l.promise}function FSA(){const r=ts.getTUICallEngineInstance?.()?.getTRTCCloudInstance?.()?.getAITranscriberManager?.();if(!r||typeof r.addListener!="function"||typeof r.removeListener!="function"||typeof r.startRealtimeTranscriber!="function"||typeof r.stopRealtimeTranscriber!="function")throw new Error("当前视频服务未开通实时语音转写");return r}function RV(){VY.value=[]}function OSA(t){if(!co)return;const i=String(t.sourceText??"").trim();if(!i)return;const r=String(t.speakerUserId??"").trim(),I=String(t.segmentId??"").trim()||`speaker-${r||"unknown"}`,h=r===co.userID?"医生":r===co.targetUserId?k4.value||"患者":"对话",f=Number(t.timestamp),w=Number.isFinite(f)&&f>0?f<1e12?f*1e3:f:Date.now(),_={id:I,speaker:h,text:i.slice(0,500),time:new Date(w).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1}),completed:t.isCompleted===!0},b=VY.value.filter(U=>U.id!==I);VY.value=[...b,_].slice(-120)}function PSA(t,i){if(IU(t),!co||!["recording","stopping"].includes(AI.value)||!xI)return;F4=Date.now();const r=String(i.segmentId??"").trim(),l=String(i.sourceText??"").trim();if(OSA(i),i.isCompleted!==!0||!r||zU.has(r)||dm.has(r)||!l)return;const I=String(i.speakerUserId??"").trim(),h={source:"doctor-call",event:"transcription-segment",diagnosisId:co.diagnosisId,sessionId:xI,segment:{segment_id:r.slice(0,160),speaker_user_id:I.slice(0,160),speaker_role:I===co.userID?"doctor":I===co.targetUserId?"patient":"unknown",timestamp:Math.max(0,Math.trunc(Number(i.timestamp)||0)),text:l.slice(0,4e3)}};dm.set(r,{message:h,attempts:1}),DE(h)}function xSA(){if(vv&&Z_)return{manager:vv,listener:Z_};const t=FSA(),i={onReceiveTranscriberMessage:PSA,onRealtimeTranscriberStarted:r=>{IU(r)},onRealtimeTranscriberStopped:(r,l)=>{IU(r),l===rT&&(_U=!1,O4=Date.now(),AI.value==="recording"&&BW("partial",!0))},onRealtimeTranscriberError:(r,l,I,h)=>{IU(r),!(l!==rT||AI.value==="stopping")&&(ir.value=oI(new Error(h),"实时语音转写发生错误"),BW("partial",!0))}};return t.addListener(i),vv=t,Z_=i,{manager:t,listener:i}}function zY(t=vv,i=Z_){if(t&&i)try{t.removeListener(i)}catch{}vv===t&&Z_===i&&(vv=null,Z_=null)}function h3(t,i){return t===WU&&i===xI&&AI.value==="starting"&&rC.value==="connected"&&!pl}async function YSA(t=3e3,i=300){const r=Date.now(),l=Date.now()+t;for(;Date.now()<l;){const I=O4>0||Date.now()-r>=500,h=Date.now()-F4>=i;if(I&&h&&dm.size===0)return!0;await new Promise(f=>window.setTimeout(f,50))}return!1}async function VSA(){if(!co||rC.value!=="connected")throw new Error("视频接通后才能开始录音");if(AI.value!=="idle"&&AI.value!=="error")throw new Error("录音任务正在处理中");AI.value="starting";const t=LSA(),i=++WU;if(xI=t,zU.clear(),dm.clear(),RV(),F4=Date.now(),O4=0,ir.value="正在准备录音文字存储…",!await USA(t)){if(!h3(i,t))return;throw AI.value="error",xI="",new Error(ir.value||"服务端无法保存本次面诊对话文字")}if(!h3(i,t)){await hW(t,"partial");return}let l=null,I=null;try{const h=xSA(),{manager:f,listener:w}=h;l=f,I=w;const _=await f.startRealtimeTranscriber({sourceLanguage:"zh"});if(!_)throw new Error("当前腾讯云项目未开通实时语音转写");if(!h3(i,t)){await f.stopRealtimeTranscriber(_),zY(f,w);return}rT=_,_U=!0,AI.value="recording",ir.value="正在录音并实时转换为对话文字"}catch(h){zY(l,I),await hW(t,"failed"),t===xI&&(AI.value="error");const f=oI(h,"录音转文字启动失败");throw ir.value=f,t===xI&&(xI=""),new Error(f)}}function JSA(){if(av)return av;const i=VSA().finally(()=>{av===i&&(av=null)});return av=i,av}async function BW(t="completed",i=!1){if(DL)return DL;if(AI.value==="idle")return;if(!xI){AI.value="idle";return}const r=xI,l=av;return WU+=1,AI.value="stopping",DL=(async()=>{if(l)try{await l}catch{}let I=i;const h=vv,f=rT;if(!i&&_U&&h&&f)try{await h.stopRealtimeTranscriber(f),I=!0}catch(U){console.warn("[doctor-consultation] 停止实时转写失败",oI(U))}_U=!1,rT="";const w=await YSA();zY();const b=await hW(r,I&&w?t:"partial");r===xI&&(AI.value=b?"idle":"error",ir.value=b?"本次面诊对话文字已保存到视频记录":"对话文字未能完整确认保存,请稍后在面诊记录中检查",xI="",zU.clear(),dm.clear())})().finally(()=>{DL=null}),DL}function HSA(t,i,r,l,I){if(t==="start"){const h=Jy.get(i);if(!h)return;Jy.delete(i),I&&i===xI&&(ir.value=I),h.resolve(!!l)}else if(t==="stop"){const h=Hy.get(i);if(!h)return;Hy.delete(i),I&&i===xI&&(ir.value=I),h.resolve(!!l)}else if(t==="segment"&&i===xI){const h=dm.get(r);if(!h)return;l?(dm.delete(r),zU.add(r)):h.attempts<3?(h.attempts+=1,window.setTimeout(()=>{dm.get(r)===h&&DE(h.message)},h.attempts*250)):ir.value=I||"部分对话文字保存失败,本次记录将标记为部分保存"}}function x4(t="ended"){return eh||(pl?Promise.resolve():(pl=!0,rC.value="ended",Du.value=L4.value==="chat"?"视频通话已结束,IM 保持连接":"视频问诊已结束",eT("ended","视频通话已结束"),eh=(async()=>{const i=[];(eI.value!=="idle"||YI)&&i.push(bSA()),AI.value!=="idle"&&i.push(BW("completed"));const l=(await Promise.allSettled(i)).filter(I=>I.status==="rejected").map(I=>oI(I.reason,"录音资料收尾失败"));l.length&&(ir.value=l.join(";").slice(0,400),console.warn("[doctor-consultation] 录音资料收尾失败",ir.value)),DE({source:"doctor-call",event:"hangup",diagnosisId:co?.diagnosisId,status:t})})(),eh))}function Y4(t){if(t==null)return"";const i=String(t).trim();return i&&i!=="0"?i:""}function qSA(){return Y4(it.getData(oe.CALL,fA.ROOM_ID))}function IU(t){if(!co||pl)return!1;const i=Y4(t);if(!i)return!1;if(wU)return wU===i;const r=Date.now(),l=Math.min(1e4,750*2**Math.min(lW,4));return qY===i&&r-cW<l||(HY=i,qY=i,cW=r,lW+=1,DE({source:"doctor-call",event:"room",diagnosisId:co.diagnosisId,roomId:i})),!1}function reA(){return IU(qSA())}async function aeA(){const t=$y;for(;co&&!pl&&t===$y;){if(wU)return;reA(),await new Promise(i=>window.setTimeout(i,250))}}function KSA(){reA()}const jSA={[fA.ROOM_ID]:KSA};it.watch(oe.CALL,jSA);function WSA(t){const i=t&&typeof t=="object"?t.newStatus:t,r=typeof i=="string"?i:"unknown";if(r==="connected"||r.startsWith("calling-")){if(pl||!co)return;const l=$y;rC.value="connected",Du.value="视频问诊进行中",eT("connected","视频通话已接通"),aeA(),IW!==l&&(IW=l,JSA().catch(I=>{l!==$y||pl||(ir.value=oI(I,"自动录音转文字启动失败"))})),uW!==l&&(uW=l,NSA().catch(I=>{l!==$y||pl||(ir.value=oI(I,"本机语音录音启动失败"))}))}else if(r==="calling"||r.startsWith("dialing")){if(pl||!co)return;rC.value="dialing",Du.value="正在等待患者接听",eT("dialing","正在等待患者接听")}else r==="idle"&&co&&!IY&&x4(r);DE({source:"doctor-call",event:"status",diagnosisId:co?.diagnosisId,status:r})}ts.setCallback({statusChanged:WSA,afterCalling:()=>{x4("after-calling")}});ts.setLanguage("zh-cn");ts.enableFloatWindow(!1);function zSA(){return co?window.qtVideoBridge?.notify?new Promise(t=>{const i=t;gU=i,DE({source:"doctor-call",event:"call-start-request",diagnosisId:co?.diagnosisId}),window.setTimeout(()=>{gU===i&&(gU=null,t(!1))},15e3)}):Promise.resolve(!0):Promise.resolve(!1)}function ZSA(t,i=""){const r=gU;gU=null,i&&(ir.value=i),r?.(!!t)}async function V4(){if(!co)throw new Error("问诊配置尚未准备好");if(IY||!pl)throw new Error("已有视频通话正在进行");IY=!0;try{if(eh&&await eh,!co||!pl)throw new Error("已有视频通话正在进行");if(eh=null,$y+=1,pl=!1,rC.value="starting",Du.value="正在创建安全视频通话",eT("starting","正在创建安全视频通话"),AI.value="idle",xI="",RV(),eI.value="idle",YI="",TU="",ir.value="",!await zSA())throw new Error(ir.value||"服务器未能创建视频通话记录");await ts.init({SDKAppID:co.SDKAppID,userID:co.userID,userSig:co.userSig,...hr?{tim:hr,isFromChat:!0}:{}}),await Vy(),rC.value="dialing",Du.value="正在呼叫患者",eT("dialing","正在呼叫患者"),HY="",qY="",wU="",cW=0,lW=0,await ts.calls({userIDList:[co.targetUserId],type:cDA.VIDEO_CALL}),aeA(),DE({source:"doctor-call",event:"status",diagnosisId:co.diagnosisId,status:"dialing"})}catch(t){const i=oI(t,"无法发起视频通话");throw rC.value="error",Du.value=i,eT("failed",`视频通话发起失败:${i}`),pl=!0,DE({source:"doctor-call",event:"error",diagnosisId:co.diagnosisId,message:i}),new Error(i)}finally{IY=!1}}async function wV(){if(co){if(pl){eh&&await eh;return}try{await ts.hangup(),await x4("local-hangup")}catch(t){const i=oI(t,"结束视频通话失败");throw DE({source:"doctor-call",event:"error",diagnosisId:co.diagnosisId,message:i}),new Error(i)}}}async function XSA(t){const i=window.qtVideoBridge;if(!i||typeof i.saveScreenshot!="function")throw new Error("桌面端截图保存通道不可用");i.saveScreenshot(t),ir.value="正在保存截图到患者舌像资料…"}function $SA(t,i){ir.value=i||(t?"截图已保存到患者舌像资料":"截图保存失败")}function geA(t,i){ir.value=i||(t?"通话已自动录制,结束后将由云端完成 COS 文件收尾。":"自动云端录制未启动,请结束本次通话并检查 COS 配置。")}function AMA(t,i,r){const l=Y4(t);!l||HY&&l!==HY||(i&&(wU=l,qY=""),geA(i,r))}async function ceA(t){if(co&&await leA(),co=uSA(t),L4.value=co.mode,k4.value=co.patientName,WAA.value=co.patientCase,DQ.value=[],JL="",U4.value=!1,pl=!0,eh=null,$y+=1,IW=-1,uW=-1,rC.value="ready",AI.value="idle",xI="",RV(),WU+=1,_U=!1,rT="",zU.clear(),dm.clear(),eI.value="idle",YI="",TU="",SQ="",ir.value="",co.mode==="chat")try{await teA()}catch(i){const r=oI(i,"IM 连接失败");throw rC.value="error",Du.value=r,DE({source:"doctor-call",event:"error",diagnosisId:co.diagnosisId,message:r}),new Error(r)}else await V4()}async function leA(){pl||await wV(),eh&&await eh,zY(),WU+=1;for(const t of Jy.values())t.resolve(!1);for(const t of Hy.values())t.resolve(!1);Jy.clear(),Hy.clear(),RV();for(const t of qy.values())t.resolve(!1);for(const t of Ky.values())t.resolve(!1);qy.clear(),Ky.clear(),await P4(),await ieA(),co=null,rC.value="ended"}window.doctorConsultation={open:ceA,close:leA,startVideo:V4,hangup:wV,hostCallReady:ZSA,recordingResult:geA,roomBindingResult:AMA,screenshotResult:$SA,transcriptionResult:HSA,localRecordingResult:kSA};window.doctorCall={start:ceA,hangup:wV};aSA();yrA(rSA,{phase:CE(rC),statusText:CE(Du),patientName:CE(k4),mode:CE(L4),messages:CE(DQ),chatReady:CE(nh),chatBusy:CE(lY),notice:CE(ir),hasMoreMessages:CE(U4),transcriptionState:CE(AI),localRecordingState:CE(eI),liveCaptions:CE(VY),patientCase:CE(WAA),onSendText:BSA,onSendAttachment:QSA,onLoadMore:()=>oeA(!0),onReconnectChat:hSA,onStartVideo:V4,onHangup:wV,onOpenDiagnosis:cSA,onSaveScreenshot:XSA}).mount("#app");DE({source:"doctor-call",event:"ready"});
|